작업 영역 파티션 서비스

작업 영역 파티션 서비스는 여러 개의 사용자 정의 작업 영역을 작성할 수 있는 작업 영역 서비스의 확장입니다. 작업 영역 파티션 서비스는 사용자가 선택할 수 있는 서비스입니다. 현재 작업 영역 서비스와 UserWorkArea 파티션을 사용하는 사용자는 같은 방식으로 계속 사용할 수 있습니다. UserWorkArea 파티션은 작업 영역 파티션 서비스에 의해 자동으로 작성됩니다(사용 불가능으로 설정되지 않은 경우). 사용자가 작업 영역 파티션 서비스를 통해 고유한 작업 영역 파티션을 작성할 수 있도록 허용하면, 사용자가 해당 파티션에 대한 액세스 및 구성에 대해 더 많은 제어를 가질 수 있습니다.

특히 작업 영역 파티션 서비스는 UserWorkArea 인터페이스의 인스턴스를 작성하는 데 사용되는 팩토리에 해당합니다. 애플리케이션은 UserWorkArea 인터페이스 및 해당 구현을 사용하여 작업 영역과 상호작용합니다. 이 인터페이스는 작업 영역을 작성, 조작 및 완료하는 데 사용되는 모든 메소드를 정의합니다. 작업 영역 파티션 서비스를 사용하면 UserWorkArea 인터페이스의 고유한 이름이 지정된 인스턴스를 작성할 수 있습니다. 이때 이름 지정된 각 인스턴스는 사용자 정의 작업 영역 파티션 또는 줄여서 파티션이라고 합니다. UserWorkArea 인터페이스의 각 인스턴스(파티션)는 다른 사용자 정의 파티션과는 다릅니다. 또한 개별 사용자의 유스 케이스에 고유한 서비스 품질을 제공하는 다양한 옵션으로 파티션을 구성할 수 있습니다. 작업 영역 파티션 서비스 패널에서 조작하는 구성 옵션은 작업 영역 서비스에 영향을 주지 않습니다.

공개된 UserWorkArea 파티션과는 달리 작업 영역 파티션 서비스가 작성한 작업 영역은 작성자만 액세스 가능하며 작성자만 알 수 있습니다. 그러나 작업 영역 파티션 서비스는 파티션 작성자만 독점적으로 파티션에 액세스 및/또는 조작하도록 엄격하게 강요하지는 않습니다. 작성자가 자신의 작업 영역 파티션을 공개하고 Java 이름 지정이나 다른 수단으로 파티션 참조를 바인딩하여 공개적으로 사용 가능하도록 하려는 경우에는 제한하지 않습니다. 그러나 사용자가 특정 파티션을 다른 사용자에게 공개하지 않으려는 경우에는 작업 영역 파티션 서비스가 가능한 한 많은 파티션을 숨깁니다. 작업 영역 파티션 서비스는 한 개인이 작성된 모든 파티션의 이름을 판별하거나 조회하는 것을 허용하지 않습니다. 그러나 해당 파티션의 작성자가 아닌 사용자가 그 파티션에 액세스하지 못하도록 제한하지는 않습니다. UserWorkArea 파티션이나 사용자 정의 파티션과 같은 파티션 컨텍스트는 범위가 단일 스레드로 지정되므로 여러 스레드가 액세스할 수 없습니다.

사용자에게 리턴되는 작업 영역 파티션 참조는 javax.naming.Referenceable 및 com.ibm.websphere.UserWorkArea를 구현하므로, 사용자가 자신의 파티션을 공용으로 사용할 수 있도록 하려는 경우 해당 파티션을 이름에 바인드할 수 있습니다. 파티션에 바인드하고 액세스하기 위해Java™ 네이밍을 사용하는 대신 작업 영역 파티션 관리자 인터페이스를 사용할 수도 있습니다. 누구나 작업 영역 파티션 관리자 인터페이스에 액세스할 수 있으므로, 사용자는 자신의 파티션을 공용으로 사용 가능하도록 만들고자 할 경우 간단히 파티션 이름을 공개하면 됩니다. 그러면 다른 사용자가 작업 영역 파티션 관리자 인터페이스에서 공개된 이름을 사용하여 getWorkAreaPartition 메소드를 호출할 수 있습니다.

WorkAreaPartitionManager.createWorkAreaPartition 메소드는 Java EE(Java Platform, Enterprise Edition) 클라이언트에서만 사용할 수 있습니다. 서버측에서 작업 영역 파티션을 작성하려면 관리 콘솔을 사용해야 합니다. 서버측에서는 작업 영역 파티션이 서버 시작 중에 작성되어야 합니다. 그 이유는 각 파티션은 서버가 시작되기 전에 해당 웹 및 EJB(JavaBeans) 협력자에 등록해야 하기 때문입니다. 사용자 정의 작업 영역 파티션은 작업 영역 파티션 서비스에 의해 작성되고 UserWorkArea 인터페이스에 의해 정의됩니다.

작업 영역 파티션 서비스를 사용하면 사용자가 작업 영역 파티션 컨텍스트의 양방향 전파 및 지연 속성 직렬화와 같은 추가 특성(UserWorkArea 파티션에서는 사용할 수 없음)으로 파티션을 구성할 수도 있습니다. 이 특성은 파티션을 작성할 때 구성 특성으로 사용할 수 있습니다. 파티션을 작성할 때 사용 가능한 모든 구성 특성 목록은 작업 영역 파티션 관리자 인터페이스 문서의 "구성 가능한 작업 영역 파티션 특성" 절을 참조하십시오. 특성은 다음과 같이 정의됩니다.

작업 영역 컨텍스트의 양방향 전파

원격 호출이 작업 영역과 연관된 스레드에서 발행되는 경우 작업 영역의 사본이 자동으로 대상 오브젝트에 전파되며, 이것은 작업 영역의 정보를 필요에 따라 사용하거나 무시할 수 있습니다. 호출 애플리케이션이 그와 연관된 중첩된 작업 영역을 갖는 경우 중첩된 작업 영역의 사본과 그의 모든 조상이 대상 애플리케이션에 전파됩니다. 대상 애플리케이션은 추가로 중첩된 작업 영역을 작성하여 특성 모드에 의해 허용되는 대로 로컬로 정보를 수정할 수 있습니다. 이 정보가 호출하는 모든 원격 오브젝트에 전파됩니다.

컨텍스트 변경사항이 원격 애플리케이션에서 호출하는 애플리케이션으로 다시 전파되는지 여부는 작업 영역 파티션의 구성에 따라 다릅니다. 사용자가 양방향이 되도록 파티션을 작성하면(파티션 작성 중 양방향 특성 선택), 원격 애플리케이션이 수행한 변경사항이 다시 호출 애플리케이션으로 전파됩니다. 이는 다운스트림 프로세스가 작업 영역 컨텍스트에 수행한 변경사항이 다시 업스트림으로 전파됨을 의미합니다. UserWorkArea 파티션은 양방향이 되도록 구성되지 않습니다(또한 그와 같이 구성할 수 없음). 따라서 컨텍스트 변경사항은 다운스트림 프로세스로만 전달되고 다시 업스트림으로 전파되지 않습니다.

예제: 작업 영역 컨텍스트의 양방향 전파

컨텍스트 변경사항이 원격 애플리케이션에서 호출하는 애플리케이션으로 다시 전파되는지 여부는 작업 영역 파티션의 구성에 따라 다릅니다. 사용자가 양방향 파티션을 작성할 경우, 원격 애플리케이션에서 작성한 변경사항은 다시 호출 애플리케이션에 전파됩니다. 다운스트림 프로세스가 작업 영역 컨텍스트에 수행하는 변경사항은 다시 스트림으로 전파됩니다. 그림 양방향 전파를 위해 구성된 경우의 작업 영역 컨텍스트 분배에서는 서버에 대한 원격 호출 과정에서의 이 관계를 보여줍니다. 이 실례의 경우, 클라이언트 및 서버는 동일한 이름으로 파티션을 작성했어야 합니다.

그림 1. 양방향 전파를 위해 구성된 경우의 작업 영역 컨텍스트 분배. 이 그림에서는 양방향 전파를 위해 서비스가 구성된 경우의 작업 영역 컨텍스트 분배를 보여줍니다. 작업 영역 컨텍스트의 양방향 전파 예

클라이언트가 서버에 대한 원격 호출을 수행할 때 서버는 클라이언트 프로세스가 설정한 컨텍스트를 수신합니다. 그러면 서버는 이 컨텍스트를 변경하거나 추가할 수 있습니다. 이 실례에서, 서버는 key1의 값을 겹쳐쓰고 key2의 특성을 제거하며 key5key6에 있는 두 개의 새로운 특성을 추가합니다. 서버 애플리케이션이 클라이언트로 리턴되는 경우, 작업 영역 컨텍스트는 다시 클라이언트에 전파되지만 역마샬링되지는 않습니다. 현재 작업 영역은 새 컨텍스트로 업데이트됩니다. 파티션이 양방향으로 구성되지 않고 서버가 작업 영역 1에서 컨텍스트를 변경하거나 제거하려고 하면, 클라이언트가 작업 영역의 제안자이므로 com.ibm.websphere.workarea.NotOriginator 예외를 수신합니다. 서버는 작업 영역 1의 컨텍스트를 검색할 수 있습니다. 이는 컨텍스트의 양방향 전파와 양방향이 아닌 전파 사이의 주요 차이점입니다.

예제: 중첩된 작업 영역 컨텍스트의 양방향 전파

원격 애플리케이션이 자체적으로만 사용된 작업 영역 또는 기타 원격 오브젝트에 컨텍스트를 추가해야 할 경우, 원격 애플리케이션에서는 다른 작업 영역을 시작해야 합니다. 새 작업 영역을 시작하면 추가 컨텍스트는 해당 애플리케이션으로 범위가 지정되고 호출 애플리케이션으로는 다시 이동되지 않습니다. 중첩된 작업 영역의 주요 이점은 중첩된 작업 영역을 사용하면 애플리케이션이 작업 영역 컨텍스트 범위를 지정된 애플리케이션으로 지정할 수 있다는 것입니다. 위의 실례에서 한 단계 더 나아가서, 서버가 key1의 값을 겹쳐쓰거나 key2의 특성을 제거하거나 key5key6에서 새 특성을 추가하기 전에 작업 영역을 시작한 경우, 해당 변경사항은 다시 클라이언트로 전파되지 않습니다. 이는 그림 양방향 전파를 위해 구성된 경우의 중첩된 작업 영역 컨텍스트 분배에 나타나 있습니다. 이 그림에서는 또한 클라이언트는 서버가 시작한 중첩된 작업 영역에서 컨텍스트를 수신하지 않음을 확인할 수 있습니다.

그림 2. 양방향 전파를 위해 구성된 경우의 중첩된 작업 영역 컨텍스트 분배. 이 그림에서는 양방향 전파를 위해 서비스가 구성된 경우의 중첩된 작업 영역 컨텍스트 분배를 보여줍니다. 중첩된 작업 영역 컨텍스트의 양방향 전파 예제

작업 영역 컨텍스트의 지연 속성 직렬화

기본적으로, 각각의 set 조작에서 작업 영역에 설정된 속성은 작업 영역 서비스에 의해 자동으로 직렬화됩니다. 동일한 해당 속성에 대한 각각의 후속 get 조작에서는 직렬화가 해제되고 요청자로 리턴됩니다. 이로서 사용자가 명시적으로 속성을 작업 영역으로 재설정하지 않으면, 변경되기 쉬운 오브젝트에 대한 변경사항이 속성의 작업 영역 사본에 반영되지 않도록 하기 위한 속성의 완전한 제어가 작업 영역 서비스에 부여됩니다. 그러나 이로 인해 과도한 직렬화 및 직렬화 해제가 발생할 수 있습니다.

과도한 직렬화 및 직렬화 해제는 결국 과부하로 성능 저하를 가져올 수 있습니다. 지연 속성 직렬화 구성 특성은 직렬화 및 직렬화 해제 조작을 줄이는 캐싱 기능입니다. 지연 속성 직렬화가 작업 영역 작성 중 지연 속성 직렬화 필드를 선택하여 클라이언트 또는 서버 프로세스에서 사용 가능으로 설정된 경우, 작업 영역 서비스에 설정된 속성은 set 조작 중 자동으로 직렬화되지 않습니다. 오히려, 속성 참조가 작업 영역에 저장됩니다. 속성이 변경되기 쉬우면, 오브젝트에 대한 변경사항이 해당 속성에 대한 작업 영역 참조에 반영됩니다. 해당 속성에 대해 get 조작을 수행할 때, 해당 오브젝트에 대한 참조가 리턴되고 더 이상 직렬화 해제는 수행되지 않습니다.

속성이 연관되는 스레드가 원격 IIOP 호출을 수행할 때까지 속성은 직렬화되지 않습니다. 호출이 되는 시점에서 속성이 직렬화되고 속성의 직렬화된 양식은 캐시됩니다. 속성이 작업 영역에 재설정되지 않을 경우, 원래 속성에 대한 변경사항은 작업 영역 내에 포함된 속성에 계속 반영됩니다. 작업 영역은 계속 원래 오브젝트에 대한 캐시된 참조를 보유하기 때문입니다. 그러나 작업 영역에 속성을 재설정하여 속성이 변경되었음을 작업 영역에 알리지 않은 경우, 후속 원격 요청은 계속 속성의 캐시된 직렬화 버전을 사용하므로 변경되기 쉬운 속성에 대한 직접 변경사항은 전파되지 않습니다. 이는 지연 속성 직렬화 구성 특성을 사용 가능할 경우와 그렇지 않을 경우의 중요한 차이점입니다. 사용자는 이러한 차이점과, 지연 속성 직렬화를 가능하게 할 때 변경되기 쉬운 오브젝트가 처리되는 방법에 유의해야 합니다. 작업 영역 서비스는 다음 조건이 발생할 경우에 속성의 캐시된 참조 및 캐시된 직렬화 버전을 해제합니다.

  • 속성이 재설정되거나 제거되었습니다.
  • 작업 영역이 애플리케이션에 의해 명시적으로 완료되었습니다.
  • 서버 컴포넌트는 작업 영역이 시작된 요청의 실행을 종료합니다.
  • 작업 영역을 시작한 클라이언트 프로세스가 종료됩니다.

프로세스 경계에서의 파티션 컨텍스트 전파

작업 영역 컨텍스트는 클라이언트가 서버에 대해 원격 호출을 수행할 때 자동으로 클라이언트에서 서버로 전파됩니다. 예를 들어 클라이언트가 서버(server1)에 대한 원격 호출을 수행할 때 세 개의 서로 다른 작업 영역 파티션으로 구성된 경우, 클라이언트 스레드의 각 파티션과 연관되는 컨텍스트는 server1로 전파됩니다. 동일한 세 개의 파티션이 server1에서 작성된 경우(작성된 경우), 컨텍스트는 적절한 파티션으로 역마샬링되지 않습니다. 그러나 세 개의 파티션 중 어떤 것도 작성되지 않거나 몇 개만 server1에서 작성된 경우, 클라이언트 및 서버 둘 다에 상주하는 파티션과 연관되는 컨텍스트만 역마샬링되지 않습니다. server1에 상주하지 않는 파티션과 연관되는 컨텍스트는 계속 server1에 상주하지만 액세스할 수는 없습니다. server1에 상주하지 않는 파티션과 연관되는 컨텍스트는 다른 서버에 대해 다른 원격 호출이 수행될 경우 server1에 계속 상주하고 있어야 합니다. server1이 클라이언트와 동일 파티션을 가지고 있는 다른 서버(server2)를 호출하고 server2는 server1에 상주하지 않았던 파티션에 대한 컨텍스트를 수신하는 경우에는 한 단계 더 진행합니다. 클라이언트에 상주하지 않았지만 server1에 상주하는 파티션은 이제 server2에 전파된 컨텍스트를 갖습니다.

작업 영역에 대한 추가 정보는 API(Application Programming Interface)의 com.ibm.websphere.workarea 패키지를 참조하십시오. 생성된 API 문서는 참조 > API - 애플리케이션 프로그래밍 인터페이스 경로의 Information Center 목차에서 사용 가능합니다.


주제 유형을 표시하는 아이콘 개념 주제



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