IT 정보/자바/JSP/EJB

[자바/JAVA/SCJP]자바 분산 프로그래밍 - CORBA CALLBACK

김윤석 2007. 12. 17. 14:59
HelloCallback.idl 파일
     1  // Copyright  Choi Jong Myung, Soongsil Univ.
     2  // E-mail: jmchoi@amin.soongsil.ac.kr
     3  module  HelloCallback {
     4      interface Hello {
     5          void writeMsg();
     6      };
     7
     8      interface  HelloCallbackServer {
     9          boolean  register(in Hello  client);
    10          void     broadcast();
    11      };
    12  };

% idl2java HelloCallback.idl
% cd HelloCallback
% javac -d .. *.java
% cd ..


서버 만들기


% vi HelloServer.java

HelloServer.java 파일
     1  // Copyright Choi Jong Myung, Soongsil Univ.
     2  // E-mail: jmchoi@amin.soongsil.ac.kr
     3
     4  import! java.util.*;
     5  import! HelloCallback.*;
     6
     7  public class HelloServer {
     8      public static void main(String args[]) {
     9          try {
    10              org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init();
    11              org.omg.CORBA.BOA boa = orb.BOA_init();
    12              HelloCallbackServerImpl  registor = new HelloCallbackServerImpl("registor");
    13              boa.obj_is_ready(registor);
    14              boa.impl_is_ready();
    15          } catch(Exception e) {
    16              System.out.println(e);
    17          }
    18      }
    19  }
    20
    21
    22  class  HelloCallbackServerImpl extends _sk_HelloCallbackServer implements  HelloCallbackServer {
    23      Vector  clientList;
    24
    25      public HelloCallbackServerImpl(String name) {
    26          super(name);
    27          clientList = new Vector(10);
    28          System.out.println("HelloCallbackServerImpl is ready");
    29      }
    30
    31
    32      public boolean register(Hello  client) {
    33          try {
    34              clientList.addElement(client);
    35              System.out.println("Client registered");
    36              return true;
    37          } catch (Exception e) {
    38              return false;
    39          }
    40      }
    41
    42
    43      public void broadcast() {
    44          Enumeration e = clientList.elements();
    45          while(e.hasMoreElements()) {
    46              Hello client = (Hello)e.nextElement();
    47              client.writeMsg();
    48              System.out.println("broadcast is called..");
    49          }
    50      }
    51  }


% javac -d . HelloServer.java


클라이언트 만들기


% vi HelloClientApplet!.java
     1  // Copyright Choi Jong Myung, Soongsil Univ.
     2  // E-mail: jmchoi@amin.soongsil.ac.kr
     3
출처:
http://www.it-bank.or.kr/prom/java_main.htm