계산 집중 프로그래밍 모델

계산 집중 애플리케이션은 일반적인 Java EE(Java™ Platform, Enterprise Edition) 요청 및 응답 패러다임에는 잘 맞지 않는 계산에 집중하는 작업을 수행하는 애플리케이션입니다.

계산 집중 애플리케이션

이런 애플리케이션이 일반적인 Java EE 프로그래밍 모델에 적합하지 않도록 만드는 몇 개의 특성이 있습니다.
  • 비동기 제출 및 작업 시작에 대한 요구
  • 작업이 확장된 기간 동안 실행되도록 하는 요구
  • 운영자 및 관리자에게 개별 작업 단위가 표시되고 관리 가능하도록 하는 요구
계산 집중 프로그래밍 모델은 이런 요구를 처리하는 환경을 제공합니다. 계산 집중 프로그래밍 모델은 두 개의 기본 개념으로 집중됩니다.
  1. 작업을 비동기로 제출 및 관리하는 작업의 사용
  2. 확장된 기간 동안 실행되는 작업을 지원하는 비동기 Bean 프로그래밍 모델에 대한 작은 확장

다음 절에서는 비동기 Bean 프로그래밍 모델에 대한 확장의 추가 정보를 제공합니다.

제어기 Bean

제어기 Bean은 런타임 환경이 애플리케이션에 대해 작업을 제어할 수 있는 계산 집중 애플리케이션 배치 디스크립터에 정의된 Stateless 세션 Bean입니다. 이 Stateless 세션 Bean 구현은 애플리케이션 서버에서 제공됩니다. 애플리케이션에는 해당 엔터프라이즈 Bean 모듈 중 하나의 배치 디스크립터에서 다음 정의에 표시된 것처럼 Stateless 세션 Bean을 포함합니다. 정확하게 한 개의 제어기 Bean만 각 계산 집중 애플리케이션에 대해 정의되어야 합니다. 제어기 Bean 구현이 애플리케이션 서버 런타임에서 제공되고 애플리케이션 배치자는 계산 집중 애플리케이션의 배치 중에 엔터프라이즈 Bean의 배치를 요구하지 않습니다.
<session id="supply a suitable name here">
   <ejb-name>CIController</ejb-name>
   <home>com.ibm.ws.ci.CIControllerHome</home>
   <remote>com.ibm.ws.ci.CIController</remote>
   <ejb-class>com.ibm.ws.ci.CIControllerBean</ejb-class>
   <session-type>Stateless</session-type>
   <transaction-type>Bean</transaction-type>
   <resource-ref id="WorkManager_ResourceRef">
      <description>
         WorkManager that is used to execute jobs.
      
      <res-ref-name>wm/CIWorkManager</res-ref-name>
      <res-type>commonj.work.WorkManager</res-type>
      <res-auth>Container</res-auth>
      <res-sharing-scope>Shareable</res-sharing-scope>
   

계산 집중 애플리케이션 패키징

해당 CIWork 오브젝트를 지원하기 위해 몇 개의 CIWork 오브젝트와 클래스가 포함된 계산 집중 애플리케이션의 로직은 Java EE 엔터프라이즈 아카이브(EAR) 파일에 엔터프라이즈 Bean 모듈로 패키지됩니다. 엔터프라이즈 Bean 모듈의 배치 디스크립터에는 이전에 설명한 Stateless 세션 Bean의 정의가 포함됩니다. 애플리케이션 자체가 다른 엔터프라이즈 Bean이나 자원을 사용하는 경우 해당 Bean 및 자원의 정의도 배치 디스크립터에 있을 수 있습니다. IBM® Rational® Application Developer와 같은 Java EE 개발 도구를 사용하여 엔터프라이즈 Bean 모듈 및 비동기 Bean을 포함하는 Java EE 애플리케이션 구성에 사용되었던 것과 동일하게 계산 집중 애플리케이션을 개발하고 패키지할 수 있습니다. pgcpackager 태스크를 사용해서도 계산 집중 애플리케이션을 패키지할 수 있습니다.

계산 집중 애플리케이션의 라이프사이클

계산 집중 애플리케이션은 다른 Java EE 애플리케이션과 동일한 방식으로 애플리케이션 서버로 시작됩니다. 애플리케이션이 시작 Bean을 정의하는 경우 해당 Bean은 애플리케이션 서버가 시작될 때 실행됩니다. 애플리케이션이 실행되도록 작업이 도달하면 계산 집중 실행 환경은 애플리케이션 EJB 모듈 배치 디스크립터에 정의된 CIControllerBean Stateless 세션 Bean을 호출합니다. 이 Stateless 세션 Bean의 JNDI(Java Naming and Directory Interface) 이름은 작업에 대해 xJCL(XML Job Control Language)에 지정됩니다. 각 작업 단계에 대해 CIControllerBean Stateless 세션 Bean은 다음 조치를 완료합니다.
  1. CIWork 클래스의 비인수 생성자를 사용하여 작업 단계에 대해 xJCL에 클래스 이름 요소로 지정된 애플리케이션 CIWork 오브젝트를 인스턴스화합니다.
  2. CIWork 오브젝트의 setProperties() 메소드를 호출하여 작업 단계에 대해 xJCL에 정의된 모든 특성을 전달합니다.
  3. 엔터프라이즈 Bean 모듈의 배치 디스크립터에 정의된 작업 관리자를 검색하고 이를 CIWork 오브젝트의 run() 메소드를 비동기로 호출하기 위해 사용합니다.

run() 메소드가 리턴되기 전에 작업이 취소되면 CIControllerBean은 CIWork 오브젝트 release() 메소드를 별도의 스레드에서 호출합니다. run() 메소드가 즉시 리턴되도록 하는 release() 메소드의 로직에 대해 장기 실행 애플리케이션이 배열되도록 하는 것은 개발자가 수행합니다. 작업은 run() 메소드가 리턴될 때까지 취소 보류 상태로 유지됩니다.

작업이 취소되지 않고 run() 메소드가 예외를 리턴하지 않은 채 리턴되면 작업이 성공적으로 완료됩니다. run() 메소드가 예외를 리턴하면 작업 상태는 실행 실패입니다. run() 메소드가 성공적으로 또는 예외를 포함하여 리턴된 후에는 CIWork 오브젝트에 대한 후속 호출이 없습니다. run() 메소드에 대한 모든 참조는 삭제됩니다.

계산 집중 작업 단계

다른 일괄처리 작업과는 달리 계산 집중 작업은 한 개의 작업 단계로 구성됩니다. 이 작업 단계는 com.ibm.websphere.ci.CIWork 인터페이스를 구현하는 클래스의 인스턴스로 표시됩니다. CIWork 인터페이스는 애플리케이션 서버 비동기 Bean 프로그래밍 모델 및 JSR(Java Specification Request) 237에서 commonj.Work 작업 인터페이스를 확장합니다. 이 확장은 작업에서 CIWork 오브젝트에 대해 지정된 job-step-specific 특성을 전달하는 방법을 제공합니다.

자세한 내용은 API 문서를 참조하십시오.

비동기 Bean에 대한 자세한 정보는 비동기 Bean 사용을 참조하십시오.


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



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