JavaTM Platform
Standard Ed. 6

패키지 org.omg.PortableServer

클래스와 인터페이스를 제공해, 어플리케이션의 서버측을 복수 벤더간 ORB 로 이식할 수 있도록(듯이) 합니다.

참조처:
          설명

인터페이스의 개요
AdapterActivator 어댑터 activator는, 아이 POA (POA 의 아이의 어떤 것인가)의 이름을 지정하는 요구를 수신했을 때의 부작용으로서 또는 activate 파라미터치를 TRUE 로 설정해 find_POA 를 호출했을 때에, POA 가 필요에 따라서 아이 POA 를 작성할 수 있도록(듯이) 합니다.
AdapterActivatorOperations 어댑터 activator는, 아이 POA (POA 의 아이의 어떤 것인가)의 이름을 지정하는 요구를 수신했을 때의 부작용으로서 또는 activate 파라미터치를 TRUE 로 설정해 find_POA 를 호출했을 때에, POA 가 필요에 따라서 아이 POA 를 작성할 수 있도록(듯이) 합니다.
Current PortableServer::Current 인터페이스는, CORBA::Current 로부터 파생해, 메소드의 각 구현으로 그 메소드 호출의 대상이 되는 객체의 ID 에 액세스 할 수 있도록(듯이) 합니다.
CurrentOperations PortableServer::Current 인터페이스는, CORBA::Current 로부터 파생해, 메소드의 각 구현으로 그 메소드 호출의 대상이 되는 객체의 ID 에 액세스 할 수 있도록(듯이) 합니다.
ID_ASSIGNMENT_POLICY_ID org/omg/PortableServer/ID_ASSIGNMENT_POLICY_ID.java.
ID_UNIQUENESS_POLICY_ID org/omg/PortableServer/ID_UNIQUENESS_POLICY_ID.java.
IdAssignmentPolicy IdAssignmentPolicy 는, 작성된 POA 의 객체 ID 가 어플리케이션 또는 ORB 의 어느 쪽에 의해 생성되는지를 지정합니다.
IdAssignmentPolicyOperations IdAssignmentPolicy 는, 작성된 POA 의 객체 ID 가 어플리케이션 또는 ORB 의 어느 쪽에 의해 생성되는지를 지정합니다.
IdUniquenessPolicy IdUniquenessPolicy 는, 작성된 POA 로 기동되는 서번트에게, 일의의 객체 ID 가 필요한가 어떤가를 나타냅니다.
IdUniquenessPolicyOperations IdUniquenessPolicy 는, 작성된 POA 로 기동되는 서번트에게, 일의의 객체 ID 가 필요한가 어떤가를 나타냅니다.
IMPLICIT_ACTIVATION_POLICY_ID org/omg/PortableServer/IMPLICIT_ACTIVATION_POLICY_ID.java.
ImplicitActivationPolicy 이 정책는, 작성된 POA 로 서번트의 암묵적인 기동이 지원되고 있는지 어떤지를 나타냅니다.
ImplicitActivationPolicyOperations 이 정책는, 작성된 POA 로 서번트의 암묵적인 기동이 지원되고 있는지 어떤지를 나타냅니다.
LIFESPAN_POLICY_ID org/omg/PortableServer/LIFESPAN_POLICY_ID.java.
LifespanPolicy LifespanPolicy 는, 작성된 POA 로 구현된 객체의 유효기간을 나타냅니다.
LifespanPolicyOperations LifespanPolicy 는, 작성된 POA 로 구현된 객체의 유효기간을 나타냅니다.
POA POA 객체는, 객체의 컬렉션의 구현을 관리합니다.
POAManager 각 POA 객체에는, POAManager 객체를 관련지을 수 있고 있습니다.
POAManagerOperations 각 POA 객체에는, POAManager 객체를 관련지을 수 있고 있습니다.
POAOperations POA 객체는, 객체의 컬렉션의 구현을 관리합니다.
REQUEST_PROCESSING_POLICY_ID org/omg/PortableServer/REQUEST_PROCESSING_POLICY_ID.java.
RequestProcessingPolicy 이 정책는, 작성된 POA 가 어떻게 요구를 처리하는지를 나타냅니다.
RequestProcessingPolicyOperations 이 정책는, 작성된 POA 가 어떻게 요구를 처리하는지를 나타냅니다.
SERVANT_RETENTION_POLICY_ID org/omg/PortableServer/SERVANT_RETENTION_POLICY_ID.java.
ServantActivator POA 에 RETAIN 정책가 지정되고 있을 때는, 서번트 매니저로서 ServantActivator 가 사용됩니다.
ServantActivatorOperations POA 에 RETAIN 정책가 지정되고 있을 때는, 서번트 매니저로서 ServantActivator 가 사용됩니다.
ServantLocator POA 에 NON_RETAIN 정책가 지정되고 있을 때는, 서번트 매니저로서 ServantLocator 가 사용됩니다.
ServantLocatorOperations POA 에 NON_RETAIN 정책가 지정되고 있을 때는, 서번트 매니저로서 ServantLocator 가 사용됩니다.
ServantManager 서번트 매니저는, POA 가 정지중의 객체를 타겟으로 한 요구를 수신했을 때에, 필요에 따라서 객체를 기동할 수 있도록(듯이) 합니다.
ServantManagerOperations 서번트 매니저는, POA 가 정지중의 객체를 타겟으로 한 요구를 수신했을 때에, 필요에 따라서 객체를 기동할 수 있도록(듯이) 합니다.
ServantRetentionPolicy 이 정책는, 작성된 POA 가 액티브한 서번트를 Active Object Map 에 보존할지 어떨지를 나타냅니다.
ServantRetentionPolicyOperations 이 정책는, 작성된 POA 가 액티브한 서번트를 Active Object Map 에 보존할지 어떨지를 나타냅니다.
THREAD_POLICY_ID org/omg/PortableServer/THREAD_POLICY_ID.java.
ThreadPolicy ThreadPolicy 는, 작성된 POA 로 사용되는 thread 모델을 나타냅니다.
ThreadPolicyOperations ThreadPolicy 는, 작성된 POA 로 사용되는 thread 모델을 나타냅니다.
 

클래스의 개요
_ServantActivatorStub POA 에 RETAIN 정책가 지정되고 있을 때는, 서번트 매니저로서 ServantActivator 가 사용됩니다.
_ServantLocatorStub POA 에 NON_RETAIN 정책가 지정되고 있을 때는, 서번트 매니저로서 ServantLocator 가 사용됩니다.
CurrentHelper PortableServer::Current 인터페이스는, CORBA::Current 로부터 파생해, 메소드의 각 구현으로 그 메소드 호출의 대상이 되는 객체의 ID 에 액세스 할 수 있도록(듯이) 합니다.
DynamicImplementation 객체 호출의 동적인 처리를 가능하게 합니다.
ForwardRequestHelper org/omg/PortableServer/ForwardRequestHelper.java.
IdAssignmentPolicyValue IdAssignmentPolicyValue 에는, 다음의 값을 지정할 수 있습니다.
IdUniquenessPolicyValue IdUniquenessPolicyValue 에는, 다음의 값을 지정할 수 있습니다.
ImplicitActivationPolicyValue ImplicitActivationPolicyValue 에는, 다음의 시멘틱스를 지정할 수 있습니다.
LifespanPolicyValue LifespanPolicyValue 에는, 다음의 값을 지정할 수 있습니다.
POAHelper POA 객체는, 객체의 컬렉션의 구현을 관리합니다.
RequestProcessingPolicyValue RequestProcessingPolicyValue 에는, 다음의 값을 지정할 수 있습니다.
Servant 네이티브인 Servant 형을 정의합니다.
ServantActivatorHelper POA 에 RETAIN 정책가 지정되고 있을 때는, 서번트 매니저로서 ServantActivator 가 사용됩니다.
ServantActivatorPOA POA 에 RETAIN 정책가 지정되고 있을 때는, 서번트 매니저로서 ServantActivator 가 사용됩니다.
ServantLocatorHelper POA 에 NON_RETAIN 정책가 지정되고 있을 때는, 서번트 매니저로서 ServantLocator 가 사용됩니다.
ServantLocatorPOA POA 에 NON_RETAIN 정책가 지정되고 있을 때는, 서번트 매니저로서 ServantLocator 가 사용됩니다.
ServantRetentionPolicyValue ServantRetentionPolicyValue 에는, 다음의 값을 지정할 수 있습니다.
ThreadPolicyValue ThreadPolicyValue 에는, 다음의 값을 지정할 수 있습니다.
 

예외의 개요
ForwardRequest org/omg/PortableServer/ForwardRequest.java.
 

패키지 org.omg.PortableServer 의 설명

클래스와 인터페이스를 제공해, 어플리케이션의 서버측을 복수 벤더간 ORB 로 이식할 수 있도록(듯이) 합니다.

Java 에서는, POA (Portable Object Adaptor) 베이스의 DSI (Dynamic Skeleton Interface) 서번트는, 표준의 DynamicImplementation 클래스로부터 상속합니다. 이것은,Servant 클래스로부터 상속하고 있습니다. 네이티브인 Servant 형은, POA 의 PortableServer 모듈에 의해 정의됩니다. Java 에서는,Servant 형은 Java 의 org.omg.PortableServer.Servant 클래스에 맵 됩니다. 이 클래스는, 모든 POA 서번트 구현의 base class로서 기능해, 어플리케이션 프로그래머가 호출할 수 있는 몇개의 메소드 외에, POA 그 자체에 의해 불려 가 서번트의 동작을 제어하기 위해서 사용자가 오버라이드(override) 할 수 있는 메소드도 제공합니다.

패키지의 스펙

Java(TM) Platform, Standard Edition 6 이 준거하는 공식의 OMG 스펙의 지원 섹션의 정확한 리스트는,「Java(TM) SE 6 에서의 정식적 CORBA 지원 스펙」을 참조해 주세요.

POA 관련의 인터페이스

PortableServer 모듈은, 다음의 POA 관련의 인터페이스를 정의합니다.

또, POA 는 Servant 네이티브형도 정의합니다.

오퍼레이션 클래스

상기의 각 인터페이스에는,Operations 인터페이스를 관련지을 수 있고 있습니다. Operations 인터페이스는,idlj 컴파일러에 의해 생성되어 거기에 관련지을 수 있었던 인터페이스에 정의되고 있는 메소드의 메소드시그니챠를 포함합니다. Operations 인터페이스는 클라이언트와 서버의 양쪽 모두로부터 액세스 할 수 있습니다만, 거기에 관련지을 수 있었던 인터페이스는 클라이언트로부터 밖에 호출할 수 없습니다.

값클래스

접미사(suffix) PolicyValue 로 끝나는 클래스는, POA 의 정책를 설정하는 create_POA 호출에 사용되는 값을 제공합니다. 데먼스트레이션에 대해서는, 이하의코드예를 참조해 주세요. PolicyValue 파일에는, 다음의 것이 있습니다.

헬퍼 클래스

OMG IDL 인터페이스의 모든 사용자 정의형으로 생성되는 헬퍼 클래스는, 사용자 정의형의 조작에 필요한 static 메소드를 제공합니다. 헬퍼 클래스에는, 어플리케이션 프로그래머가 사용하는 메소드가 1 개만 있습니다. narrow 메소드입니다. IDL 인터페이스로부터 맵 되는 Java 인터페이스만이,narrow 메소드를 포함한 헬퍼 클래스를 갖추고 있습니다. 따라서,PortableServer 패키지에서는, 다음의 클래스에만 narrow 메소드가 있습니다.

POA 클래스

POA 클래스는,ServantActivator 또는 ServantLocator 의 구현에 사용합니다.

예외

ForwardRequest 예외는, 현재의 요구와 후속의 ForwardRequest 요구를 그 예외의 forward_reference 멤버에게 나타난 객체에 전달할 책임이 있는 것을 ORB 에 통지합니다.

어플리케이션 프로그래머에 의해 구현되는 인터페이스

PortableServer 에 의해 행해지는 처리의 대부분은, 사용자에게는 보이지 않습니다. 이 때문에, 상기의 인터페이스 가운데로 프로그래머가 사용하는 것은 그저 정확히 알 수 없는 것입니다. 나머지의 인터페이스는, ORB 구현에 의해 제공됩니다. 어플리케이션 프로그래머가 사용하는 인터페이스는, 다음과 같습니다.

org.omg.PortableServer.ServantLocatorPackage 패키지

이 패키지는,Cookie 형을 out 파라미터로서 건네주기 위한 CookieHolder 클래스를 제공합니다. CookieHolder 클래스는, 기본형외의 홀더 클래스와 완전히 같은 패턴에 따릅니다.

관련 문서

Java IDL 의 개요에 대해서는, 다음을 참조해 주세요.

  • 「Java IDL 의 홈 페이지」

    코드예

    서버 코드의 예

    import javax.naming.InitialContext;
    import javax.naming.Context;
    import javax.rmi.PortableRemoteObject ;
    import com.sun.corba.se.impl.poa.POAORB;
    import org.omg.PortableServer. *;
    import java.util. *;
    import org.omg.CORBA. *;
    import javax.rmi.CORBA.Stub;
    import javax.rmi.CORBA.Util;
    
    
    
    public class HelloServer {
        public HelloServer(String[] args) {
            try {
                Properties p = System.getProperties();
             //   p.put("org.omg.CORBA.ORBClass", "com.sun.corba.ee.internal.POA.POAORB");
                ORB orb = ORB.init( args, p );
    
                POA rootPOA = (POA) orb.resolve_initial_references("RootPOA");
    
                Policy[] tpolicy = new Policy[3];
                tpolicy[0] = rootPOA.create_lifespan_policy(
                    LifespanPolicyValue.TRANSIENT );
                tpolicy[1] = rootPOA.create_request_processing_policy(
                    RequestProcessingPolicyValue.USE_ACTIVE_OBJECT_MAP_ONLY );
                tpolicy[2] = rootPOA.create_servant_retention_policy(
                    ServantRetentionPolicyValue.RETAIN);
                POA tpoa = rootPOA.create_POA("MyTransientPOA", null, tpolicy);
    
    
                String  ObjectId = "MyObjectId";
                byte[] oid = ObjectId.getBytes();
    
                org.omg.CORBA.Object obj = tpoa.create_reference_with_id(oid,
                    new _HelloImpl_Tie(). _all_interfaces(tpoa, oid)[0]);
                HelloInterface helloRef = (HelloInterface) PortableRemoteObject.narrow(
                    obj, HelloInterface.class );
    
                Context initialNamingContext = new InitialContext();
                initialNamingContext.rebind("HelloService", helloRef);
                System.out.println("Hello Server:Ready...");
                orb.run();
             } catch (Exception e) {
                System.out.println("Trouble:" + e );
                e.printStackTrace();
             } 
         }
    
    
         public static void main(String args[]) {
             new HelloServer( args );
         }
    }
    
    
    

    도입된 버젼:
    1.4

    JavaTM Platform
    Standard Ed. 6

    버그의 보고와 기능의 요청
    한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

    Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.