WebSphere Enterprise Service Bus, 버전 6.2.0 운영 체제: AIX, HP-UX, i5/OS, Linux, Solaris, Windows


SCA(Service Component Architecture)

SCA는 여러 가지 방식으로 구현할 수 있는 추상적 개념입니다. 특정 기술, 프로그래밍 언어, 호출 프로토콜 또는 전송 메커니즘을 요구하지 않습니다. SCA 컴포넌트는 XML 기반 언어인 SCDL(Service Component Definition Language)을 사용하여 설명됩니다.

SCA 컴포넌트에는 다음과 같은 특성이 있습니다.

WebSphere® Integration Developer는 WebSphere Enterprise Service Bus 및 WebSphere Process Server에 대해 다음과 같은 구현 아티팩트를 지원합니다.
표 1. 구현 아티팩트
WebSphere ESB WebSphere Process Server
중개 플로우 중개 플로우
일반 Java™ 오브젝트 일반 Java 오브젝트
  비즈니스 프로세스
  비즈니스 상태 머신
  비즈니스 규칙
  휴먼 타스크

SCA는 하부 구조에서 비즈니스 로직을 분리하여 응용프로그램 프로그래머가 비즈니스 문제점을 해결하는 데 초점을 둡니다. IBM WebSphere Process Server는 이와 동일한 전제에 기초합니다. 그림 1에서는 WebSphere Process Server의 구조적 모델을 보여줍니다.

그림 1. WebSphere Process Server 컴포넌트 기반 프레임워크
WebSphere
Process Server 컴포넌트 기반 프레임워크

WebSphere 환경에서, SCA 프레임워크는 WebSphere Application Server의 Java 2 Platform, Enterprise Edition (J2EE) 런타임 환경을 토대로 합니다. 전체 WebSphere Process Server 프레임워크는 SOA Core, 지원 서비스 및 서비스 컴포넌트로 구성됩니다. 비즈니스 통합에서의 응용프로그램 통합 요구사항과 연결성에 보다 중점을 둔 이 전체 기능의 서브세트가 있는 동일한 프레임워크를 WebSphere Enterprise Service Bus에서 사용 가능합니다.

SCA 컴포넌트의 인터페이스는 다음 중 하나로 표시될 수 있습니다.
SCA 모듈은 참조 및 구현을 직접 링크하여 함께 연결되는 컴포넌트 그룹입니다. WebSphere Integration Developer에서, 각 SCA 모듈은 SCA 컴포넌트와 연관된 어셈블리 다이어그램을 지니며 SCA 컴포넌트와 이 컴포넌트에 대한 연결로 구성되는 통합된 비즈니스 응용프로그램을 표시합니다. 통합 개발자의 기본 책임 중 하나는 솔루션을 형성하는 컴포넌트를 연결하여 어셈블리 다이어그램을 작성하는 것입니다. WebSphere Integration Developer는 그래픽 어셈블리 편집자를 제공하여 이 타스크를 지원합니다. 어셈블리 다이어그램 작성 시, 통합 개발자는 다음 방법 중 하나로 작성을 수행할 수 있습니다. 고객이 재사용하고 결합하려는 기존의 서비스를 가진 경우 상향식 접근이 더 일반적으로 사용됩니다. 처음부터 새 비즈니스 오브젝트를 작성해야 하는 경우, 일반적으로 하향식 접근을 채택합니다.

SCA 프로그래밍 모델 : 기본

소프트웨어 컴포넌트의 개념은 SCA 프로그래밍 모델의 기초를 형성합니다. 언급한 대로, 컴포넌트는 로직을 구현하는 단위로 인터페이스를 통해 다른 컴포넌트에 로직을 사용할 수 있습니다. 또한 컴포넌트는 다른 컴포넌트에서 서비스를 사용할 수 있도록 요청합니다. 이 경우, 컴포넌트는 해당 서비스에 대한 참조를 나타냅니다.

SCA에서, 모든 컴포넌트는 최소한 하나의 인터페이스를 나타내야 합니다. 그림 2에 표시된 어셈블리 다이어그램에는 세 가지 컴포넌트 C1, C2 및 C3가 있습니다. 각 컴포넌트에는 원 안의 문자 I로 표시되는 인터페이스가 있습니다. 컴포넌트는 또한 다른 컴포넌트를 참조할 수 있습니다. 참조는 정사각형 안의 문자 R로 표시됩니다. 참조 및 인터페이스는 어셈블리 다이어그램에서 링크됩니다. 기본적으로, 통합 개발자는 필요한 로직을 구현하는 컴포넌트의 인터페이스와 컴포넌트를 연결함으로써 참조를 "결정"합니다.

그림 2. 어셈블리 다이어그램
어셈블리 다이어그램

SCA 컴포넌트 호출

호출되는 서비스에 대한 액세스를 제공하기 위해, SCA 프로그래밍 모델은 ServiceManager 클래스를 포함하므로 개발자가 사용 가능한 서비스를 이름별로 찾을 수 있습니다. 여기에는 서비스 찾아보기를 예시하는 일반적인 Java 코드 단편이 있습니다. ServiceManager는 시스템이 제공하는 서비스인 BOFactory 서비스에 대한 참조를 얻는 데 사용됩니다.

//Get service manager singleton
ServiceManager smgr = new ServiceManager();
//Access BOFactory service
BOFactory bof =(BOFactory)
        smgr.locateService("com/ibm/websphere/bo/BOFactory");
주: ServiceManager의 패키지는 com.ibm.websphere.sca입니다.

locateService 메소드에서 참조되는 서비스의 이름을 지정하여 개발자는 자신의 서비스에 대한 참조를 얻기 위해 유사한 메커니즘을 사용할 수 있습니다. ServiceManager 클래스를 사용하여 서비스에 대한 참조를 얻은 후에, 호출 프로토콜 및 구현 유형과 독립적인 방식으로 해당 서비스에서 사용 가능한 조작을 호출할 수 있습니다.

세 가지 다른 호출 스타일을 사용하여 SCA 컴포넌트를 호출할 수 있습니다.
  • 동기 호출: 이 호출 스타일 사용 시, 호출자는 동기적으로 리턴되는 응답을 대기합니다. 이것이 전통적인 호출 메커니즘입니다.
  • 비동기 호출: 이 메커니즘을 통해 호출자는 올바른 방식으로 응답이 생성될 때까지 대기하지 않고 서비스를 호출할 수 있습니다. 응답을 얻는 대신, 호출자는 응답을 검색하기 위해 나중에 사용될 수 있는 “티켓”을 얻습니다. 호출자는 이 목적으로 수신자(callee)가 제공해야 하는 특수 조작을 호출하여 응답을 검색합니다.
  • 콜백을 이용한 비동기 호출: 이 호출 스타일은 이전 호출과 유사하지만, 응답을 리턴하는 책임을 수신자에게 위임합니다. 응답이 준비되었을 때 수신자가 호출할 수 있는 특정 조작(콜백 조작)을 호출자가 나타낼 필요가 있습니다.

가져오기

레거시 응용프로그램이나 기타 외부 구현과 같이, 외부 시스템에서 사용 가능한 기능이나 컴포넌트에서 비즈니스 로직을 제공하는 경우가 있습니다. 이 경우, 통합 개발자는 외부 구현을 "가리키는" 컴포넌트에 대한 참조를 연결하는 데 필요한 구현을 포함하는 컴포넌트에 대한 참조를 연결하여 참조를 해결할 수 없습니다. 그러한 컴포넌트를 가져오기라고 합니다. 가져오기 정의 시, 위치 및 호출 프로토콜의 측면에서 외부 서비스가 액세스될 수 있는 방법을 지정해야 합니다.

내보내기

가져오기와 유사하게, 외부 응용프로그램에서 사용자 컴포넌트에 액세스해야 할 경우가 자주 발생하는데 이때, 액세스가 가능하도록 설정해야 합니다. 이는 사용자 로직을 "외부"에 나타내는 특정 컴포넌트를 사용하여 수행됩니다. 이러한 컴포넌트를 내보내기라고 합니다. 이것은 동기 또는 비동기적으로 호출될 수 있습니다.

독립형 참조

WebSphere ESB에서, SCA 서비스 모듈은 여러 다른 J2EE 서브모듈을 포함하는 J2EE EAR 파일로서 패키지됩니다. WAR 파일과 같은 J2EE 요소는 SCA 모듈과 함께 패키지될 수 있습니다. JSP와 같은 비SCA 아티팩트는 SCA 서비스 모듈과 함께 패키지될 수도 있습니다. 이것은 독립형 참조라고 하는 특수한 컴포넌트 유형을 사용하여 SCA 클라이언트 프로그래밍 모델을 통해 SCA 서비스를 호출하게 합니다.

SCA 프로그래밍 모델은 매우 설명적입니다. 통합 개발자는 어셈블리 다이어그램에서 직접 선언적인 방식으로 동기 또는 비동기적으로 호출되어야 하는지 여부와 관계없이 보안 신임의 호출, 전파의 트랜잭션 동작과 같은 측면을 구성할 수 있습니다. 개발자가 아닌 SCA 런타임이 이 수정자에서 지정된 동작을 구현하는 데 관여합니다. SCA의 선언적인 유연성은 이 프로그래밍 모델에서 가장 강력한 기능 중 하나입니다. 개발자는 비동기 호출 메커니즘을 수용할 수 있는 것과 같이, 주소 지정 기술 측면에 중점을 두기 보다는 비즈니스 로직 구현에 집중할 수 있습니다. 이러한 모든 측면은 SCA 런타임에 의해 자동으로 수행됩니다.

규정자

규정자는 서비스 클라이언트와 대상 서비스 간에 상호작용을 제어합니다. 규정자는 서비스 컴포넌트 참조, 인터페이스 및 구현에서 지정될 수 있으며, 보통 구현과는 무관합니다.

규정자의 다른 카테고리는 다음을 포함합니다.

SCA는 프로그래밍을 수행하거나 서비스 구현 코드를 변경하지 않고 서비스 품질(QoS) 규정자가 선언적으로 컴포넌트에 적용되게 합니다. 이것은 WebSphere Integration Developer에서 수행됩니다. 보통 솔루션 전개를 고려할 준비가 되면 QoS 규정자를 적용합니다. 자세한 정보는 서비스 규정자 참조의 품질을 참조하십시오.


concept 개념 주제

이용약관 | 피드백


시간소인 아이콘 마지막 갱신 날짜: 2010년 7월 7일 수요일


http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic//com.ibm.websphere.wesb620.doc/doc/cdev_pgsca.html
Copyright IBM Corporation 2005, 2010. All Rights Reserved.
이 Information Center는 Eclipse 기술을 기반으로 합니다(http://www.eclipse.org 웹 사이트 참조).