연산 집약적 응용프로그램은 기존 J2EE(Java 2 Platform Enterprise Edition) 요청/응답 방식에 적합하지 않은 연산 집약적 작업을 수행하는 응용프로그램을 가리킵니다.
작업 개념은 모든 장기간 실행 응용프로그램에서 공유하며 다른 곳에서 설명합니다. 다음 섹션은 비동기 Bean 프로그래밍 모델 확장에 관한 추가 정보를 제공합니다.
연산 집약적 작업 단계
모든 장기간 실행 작업과 같이, 연산 집약적 작업은 여러 작업 단계로 분할됩니다. 연산 집약적 작업의 경우, 각 작업 단계는 com.ibm.websphere.ci.CIWork 인터페이스를 구현하는 클래스의 인스턴스로 표시됩니다. CIWork 인터페이스는 WebSphere 비동기 Bean 프로그래밍 모델 및 JSR 237에서 commonj.Work 작업 인터페이스를 확장합니다. 이 확장은 작업에 지정된 작업 단계 특정 특성을 CIWork 오브젝트에 전달하는 방식을 제공하는 두 가지의 메소드로 구성됩니다.
세부사항은 API 문서를 참조하십시오.
비동기 Bean에 대해 학습하려면 WebSphere Application Server InfoCenter의 비동기 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 will be 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 오브젝트를 지원하기 위해 필요한 클래스)는 엔터프라이즈 Bean 모듈에서 J2EE 응용프로그램 EAR(Enterprise Archive) 파일로 패키징됩니다. 엔터프라이즈 Bean 모듈의 전개 설명자는 위에 표시된 Stateless 세션 Bean의 정의를 포함해야 합니다. 응용프로그램 자체가 다른 엔터프라이즈 Bean 또는 자원을 사용할 경우, 해당되는 Bean 및 자원에 대한 정의도 전개 설명자에 표시될 수 있습니다. IBM Rational Application Developer와 같은 J2EE 개발 도구를 사용하여 엔터프라이즈 Bean 모듈 및 비동기 Bean을 포함하는 J2EE 응용프로그램을 구성하기 위해 사용할 경우와 같은 형태로 연산 집약적 응용프로그램을 개발하고 패키징할 수 있습니다.
연산 집약적 응용프로그램의 라이프 사이클
run() 메소드가 리턴되기 전에 작업이 취소될 경우, CIControllerBean은 별도의 스레드에서 CIWork 오브젝트의 release() 메소드를 호출합니다. run() 메소드가 즉시 리턴하도록 release() 메소드에서 논리를 배열하는 것은 장기간 실행 응용프로그램 개발자의 몫입니다. 작업은 run() 메소드가 리턴할 때까지 취소 보류 상태로 남게 됩니다.
예외 발생 없이 작업이 취소되지 않고 run() 메소드가 리턴되면, 작업은 성공적으로 완료된 것입니다. run() 메소드에서 예외가 발생하면 작업은 실행 실패로 표시됩니다. run() 메소드가 리턴하면(정상적으로 또는 예외를 발생하여) CIWork 오브젝트를 더 호출하지 않으며 이 오브젝트에 대한 모든 참조가 제거됩니다.
Related concepts
장기간 실행 응용프로그램 개발