IT for developer (56) 썸네일형 리스트형 Netty 예제 분석 - Telnet Telnet http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/telnet/package-summary.html 우선 클라이언트를 살펴보자. main 함수에서 키보드로 입력한 데이터를 서버에 전송한다. 직접 서버에 데이터를 전송한다. 'bye' 를 칠때 까지 계속 전송한다. 'bye'를 치면 접속을 종료한다. 71 // Read commands from the stdin. 72 ChannelFuture lastWriteFuture = null; 73 BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 74 for (;;) { 75 String line = in.rea.. Netty 예제 분석 - HTTP.snoop HTTP.snoop http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/http/snoop/package-summary.html 간단한 HTTP 클라이언트와 서버를 구현하고 있다. 클라이언트 부터 살펴보자. 기존 다른 예제와 다르게 클라이언트 main 함수에서 하는일들이 참 많다. 79 bootstrap.setPipelineFactory(new HttpClientPipelineFactory(ssl));PipelineFactory는 Anonymous 클래스를 사용하지않고 HttpClientPiplelineFactory 클래스를 별도로 생성했다. PipelineFactory는 결국 핸들러들을 등록하는 역할을 수행하는데 좀 더 많은 핸들러를 조건에 따라.. Netty 예제 분석 - Uptime Uptime http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/uptime/package-summary.html Uptime 예제는 연결을 끊기면 재접속을 시도하는 클라이언트측 프로그램이다. Discard와 Echo 클라이언트 프로그램과 다른 코드 부분을 살펴보면 다음과 같다. 72 bootstrap.setPipelineFactory(new ChannelPipelineFactory() { 73 public ChannelPipeline getPipeline() throws Exception { 74 return Channels.pipeline( 75 new ReadTimeoutHandler(timer, READ_TIMEOUT), 76 new Upt.. Netty 예제 분석 - Echo Echo http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/echo/package-summary.html Discard 와 다른점은 클라이언트가 전달한 데이터를 서버가 응답한다는 것이다. 핸들러에 messageReceived라는 함수가 다음과 같이 구현되었다. 47 @Override 48 public void messageReceived( 49 ChannelHandlerContext ctx, MessageEvent e) { 50 // Send back the received message to the remote peer. 51 transferredBytes.addAndGet(((ChannelBuffer) e.getMessage()).readab.. Netty 예제 분석 - Discard http://docs.jboss.org/netty/3.2/xref/org/jboss/netty/example/discard/package-summary.html 서버 측 프로그램 개발. 프로그램 플로우. 1. ServerBootstrap을 생성한다. 2. ServerBootstrap에 파이프라인을 지정한다. 3. 파이프라인을 다룰 핸들러를 지정한다. 4. 핸들러에서 데이터 처리를 수행한다. 또는 핸들러에서 별도의 데이터 처리를 위해 작성한 컴포넌트를 호출한다. 프로그래밍 플로우. 1. 내가 처리할 데이터가 무엇인지 모델링한다. 주고 받는 포멧(Protocol) 작성 2. 데이터를 받았을 때 무슨 작업을 해야할 지 정의한다. 비즈니스 로직으로 전달 3. 다 처리한 후 또는 예외가 발생했을 때 무엇을 해야할.. WebLogic Remote Debugger with Eclipse 원격 서버를 디버그 하고자 할 때 다음과 같이 설정한다. 웹로직 실행하는 cmd 또는 sh 에 자바옵션을 추가한다. (startManagedWebLogic.sh) -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Xdebug: 디버그 가능하도록 설정 -Xnoagent: sun.tool.debug 디버그 에이전트를 Disable -Xrunjdwp: JDWP 디버그 설정. eclispe에서 Debug configurations 설정. Address와 Port만 정확히 입력해 주면 된다. (6장) JADE PROGRAMMING FOR BEGINNERS 6 THE YELLOW PAGES SERVICE – THE DFSERVICE CLASS 지금까지 사용된 코드를 보면 판매 에이전트가 정해져 있다고 가정했다. 다시말해 각 구매 에이전트가 이미 판매 에이전트를 알고 있다고 가정했다. 이번장에서는 이러한 가정을 어떻게 제거하는지 보여준다. yellow 페이지 서비스로 구매 에이전트가 해당 시간에 판매에이전트를 발견할 수 있도록 한다. 6.1 The DF agent 옐로 페이지 서비스는 에이전트가 하나이상의 서비스를 공개하여 다른 에이전트가 이를 찾을 수 있게 해준다. JADE에서 옐로 페이지 서비스는 DF(Directory Facilitator)라는 에이전트에 의해 제공된다. 6.2 Interacting with the DF DF는 적당한 언어와 온토로지를 .. (5장) JADE PROGRAMMING FOR BEGINNERS AGENT COMMUNICATION – THE ACLMESSAGE CLASS JADE 에이전트의 가장 큰 특징은 통신 기능의 제공이다. 통신 패러다임은 비동기적 메시징 방식을 채택했다. 각 에이전트는 메세지 큐를 가지고 있다 . 메세지큐에 메세지를 쓰면 받으려는 에이전트에서 알려준다. (JADE Runtime이 이를 수행해 준다.) 5.1 The ACL language FIPA (http://www.fipa.org) 에서 정의한 통신을 위한 메세지 형태 - 송신자. - 수신자 리스트 - 통신 의도 (performative) - 컨텐츠 - 언어 - 온톨로지 - 컨트롤 필드 jade.lang.acl.ACLMessage 에 구현되어 있음. 5.2 Sending messages ACLMessage msg = n.. 이전 1 ··· 3 4 5 6 7 다음