ORB(Object Request Broker) 서비스에 대한 클라이언트 측 프로그래밍 팁

모든 IIOP(Internet InterORB Protocol) 요청 및 응답 교환은 클라이언트 측 ORB와 서버 측 ORB로 구성됩니다. IIOP를 사용하는 애플리케이션이 클라이언트 측 ORB(Object Request Broker)와 통신할 수 있도록 올바르게 프로그래밍되는 것이 중요합니다.

다음 팁은 요청 및 응답 교환을 처리하는 데 IIOP를 사용하는 애플리케이션이 클라이언트 측 ORB(Object Request Broker)와 통신할 수 있도록 올바르게 프로그래밍되는지 확인하는 데 도움이 됩니다.

서비스에 대한 초기 참조의 분석

클라이언트 애플리케이션은 ORBInitRef 및 ORBDefaultInitRef 특성을 사용하여 ORB 서비스가 이름 지정과 같은 서비스를 찾는 데 사용하는 네트워크 위치를 구성할 수 있습니다. 다음 예제에 설명된 대로 설정이 완료되면 이러한 특성은 ORB를 초기화하는 데 사용되는 매개변수에 포함됩니다.
org.omg.CORBA.ORB.init(java.lang.String[] args, 
                       java.util.Properties props)

이러한 특성은 클라이언트 코드 또는 명령행 인수를 통해 설정할 수 있습니다. 여러 ORBInitRef 특성 설정(각 서비스에 하나씩)을 사용하여 둘 이상의 서비스 위치를 지정할 수 있지만 한 개의 ORBDefaultInitRef 값만 지정할 수 있습니다. ORB가 서비스를 찾는 데 사용하는 우선순위 및 두 가지 특성에 대한 자세한 정보는 CORBA/IIOP 스펙을 읽어 보십시오.

클라이언트 코드로 설정하는 경우 이러한 특성은 각각 com.ibm.CORBA.ORBInitRef.service_name 및 com.ibm.CORBA.ORBDefaultInitRef입니다. 예를 들어, 네이밍 서비스(NameService)가 포트 2809의 sample.server.com에 있는 것으로 지정하려면 com.ibm.CORBA.ORBInitRef.NameService 특성을 corbaloc::sample.server.com:2809/NameService로 설정하십시오.

명령행 인수로 설정하는 경우 이러한 특성은 각각 -ORBInitRef 및 -ORBDefaultInitRef입니다. 이전에 지정한 것과 같은 네이밍 서비스를 찾으려면 다음 Java 명령을 사용하십시오.

ORB가 지원하는 서비스에 대해 이러한 특성이 설정되면 CORBA/IIOP 스펙에서 정의된 대로 Java EE(Java Platform, Enterprise Edition) 애플리케이션이 지정된 서비스에 대한 초기 참조를 얻기 위해 ORB에서 resolve_initial_references 함수를 호출할 수 있습니다.

ORB 인스턴스를 얻기 위해 선호되는 API

Java EE 애플리케이션에 대해서는 다음 접근법 중 하나를 사용할 수 있습니다. 그러나 같은 ORB 인스턴스가 클라이언트 애플리케이션 전체에서 사용되어 다른 ORB 인스턴스가 사용되는 경우 발생할 수 있는 의도치 않은 불일치를 피할 수 있도록 하려면 JNDI(JavaNaming and Directory Interface) 접근법을 사용할 것을 권장합니다.

JNDI 접근법: Java EE 애플리케이션(엔터프라이즈 Bean, Java EE 클라이언트 및 서블릿 포함)의 경우 다음 예제에 설명된 대로 JNDI InitialContext 오브젝트를 작성하고 java:comp/ORB 이름의 ORB를 검색하여 ORB를 얻을 수 있습니다.
javax.naming.Context ctx = new javax.naming.InitialContext();
org.omg.CORBA.ORB orb = 
   (org.omg.CORBA.ORB)javax.rmi.PortableRemoteObject.narrow(ctx.lookup("java:comp/ORB"), 
                                                            org.omg.CORBA.ORB.class);
JNDI를 사용하여 얻은 ORB 인스턴스는 싱글톤 오브젝트이며 같은 JVM(Java Virtual Machine) 프로세스에서 실행되고 있는 모든 Java EE 컴포넌트에서 공유됩니다.
문제점 방지 문제점 방지: 애플리케이션에서 WLM 기능 및 클러스터 장애 복구를 이용하려는 경우 JNDI 접근법을 사용해야 합니다. 서버 클러스터에서 InitialContext를 얻는 방법에 대한 정보는 여러 이름 서버 주소를 포함하는 CORBA 오브젝트 URL 사용 예제를 참조하십시오. 이 예제는 제공자 URL 특성을 설정하여 초기 컨텍스트 가져오기 주제에 있습니다. gotcha
CORBA 접근법: 씬 클라이언트 애플리케이션은 Java EE 컨테이너에서 실행되지 않기 때문에 ORB 검색에 JNDI 인터페이스를 사용할 수 없습니다. 이 경우 다음과 같이 CORBA 프로그래밍 인터페이스를 사용하여 ORB 인스턴스를 얻을 수 있습니다.
java.util.Properties props = new java.util.Properties();
java.lang.String[] args = new java.lang.String[0];
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, props);

JNDI 접근법과는 다르게 CORBA 스펙에서는 ORB.init 메소드가 호출될 때마다 새 ORB 인스턴스가 작성되어야 합니다. ORB 기본 설정을 변경해야 하는 경우 ORB 특성 설정을 ORB.init 메소드 호출로 전달되는 특성 오브젝트에 추가할 수 있습니다.

이 제품의 이전 릴리스에서 지원되는 com.ibm.ejs.oa.EJSORB.getORBinstance 메소드의 사용은 더 이상 사용되지 않습니다.

Java EE 애플리케이션 컴포넌트 간 ORB 공유에 대한 API 제한사항

성능상의 이유로 Java EE 애플리케이션에서 컴포넌트 간 한 개의 ORB 인스턴스를 공유하는 것이 타당한 경우가 많습니다. Java EE 스펙 버전 1.3에서 요구되는 대로 모든 웹 및 EJB 컨테이너는 JNDI 네임스페이스에 java:comp/ORB로 ORB 인스턴스를 제공합니다. 각 컨테이너는 애플리케이션 컴포넌트 사이에 이 인스턴스를 공유할 수 있지만 꼭 공유해야 하는 것은 아닙니다. 애플리케이션 컴포넌트 간 적절한 격리를 위해 애플리케이션 코드는 다음 제한사항을 준수해야 합니다.
  • ORB 종료 또는 영구 삭제 메소드를 호출하지 마십시오.
  • org.omg.CORBA_2_3.ORB 메소드 register_value_factory 또는 unregister_value_factory를 호출하지 마십시오.

또한 서로 다른 Java EE 애플리케이션에 있는 애플리케이션 컴포넌트 사이에 ORB 인스턴스를 공유하지 마십시오.

IBM 개발자 킷과 함께 제공되는 rmic 및 idlj의 필수 사용

이 제품에서 사용되는 JRE(Java Runtime Environment)에는 rmicidlj 도구가 포함됩니다. 이 도구를 사용하여 CORBA/IIOP 프로토콜에 대한 Java 언어 바인딩을 생성합니다.

제품 설치 중에 이러한 도구는 app_server_root/java/ibm_bin 디렉토리에 설치됩니다. 이 제품과 함께 설치된 IBM Developer Kit 외의 Java 개발 킷 $JAVA_HOME/bin 디렉토리에 포함된 이러한 도구의 버전은 이 제품과 호환 가능하지 않습니다.

이 제품 설치 시 app_server_root/java/ibm_bin 디렉토리는 IBM이 제공하는 rmic 및 idlj 스크립트의 사용을 가능하게 하기 위해 $PATH 검색 순서에 포함됩니다. 이러한 스크립트는 JRE 표준 app_server_root/java/bin 디렉토리 대신 app_server_root/java/ibm_bin 디렉토리에 있기 때문에 IBM이 제공하지 않는 JRE에 유지보수를 적용할 때 겹쳐쓰는 것은 거의 불가능합니다.

rmic 및 idlj 도구 외에도 JRE는 IDL(Interface Definition Language) 파일을 포함합니다. 이 파일은 OMG(Object Management Group)에 의해 정의되는 파일이며 선택한 ORB 인터페이스의 IDL 정의가 필요한 애플리케이션에서 사용될 수 있습니다. 이 파일은 app_server_root/java/ibm_lib 디렉토리에 있습니다.

rmic 또는 idlj 도구를 사용하기 전에 app_server_root/java/ibm_bin 디렉토리가 환경에서 적절한 PATH 변수 검색 순서에 포함되는지 확인하십시오. 애플리케이션이 app_server_root/java/ibm_lib 디렉토리에 있는 IDL 파일을 사용하는 경우 이 디렉토리가 PATH 변수에 포함되는지도 확인하십시오.


주제 유형을 표시하는 아이콘 참조 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rorb_orbprog
파일 이름:rorb_orbprog.html