<div class="information"> 원문 : http://www.ibm.com/developerworks/library/ar-logsoa/index.html?ca=drs- </div>

논리적인 SOA 참조 아키텍처#

다음 그림은 SOA패턴을 UML로 표현한것이다. 가장 간단한 형태로 표현해보면, SOA패턴은 분리된 전사적 서비스 버스(ESB)로 구성된다. 여기서 전사적 서비스 버스는 요청자와 제공자간의 상호작용하는 서비스를 연결하고 제공한다.

그림 1. 논리적인 SOA 참조 아키텍처

logicalSOA.gif

SOA패턴은 서비스 상호작용 지점(SIP)을 가지고 ESB인프라 스트럭처로 구성된다. 다음 표는 서비스 상호작용 지점을 간단히 설명하고 있다.

서비스제공하는 것
Interaction services[1]소비자나 사용자를 위해 포털이나 다른 관련 웹 기술을 사용하여 컨텐츠나 데이터를 전달하기 위한 기능과 함수
Process services[2]비즈니스 프로세스와 흐름에 따라 메시지 흐름과 다중 서비스간의 상호작용을 관리하기 위한 기능을 조절
Information services[3]본질적으로 다른 데이터 소스들을 혼합하고 반복하며 변형하는 기능
Partner services[4]공동 전자 데이터 교환(EDI)과 레거시 시스템을 기업의 전사 아키텍처로 통합하는 기능
Business application services[5]비즈니스 애플리케이션 서비스가 호출하는 서비스 소비자를 위한 기능
Application and data access services[6]외부 데이터 저장소와 패키지형태의 애플리케이션으로 핵심 애플리케이션을 통합하는 기능

ESB#

ESB는 SOA의 연결자 항목 지점을 공급하고 다음의 서비스를 제공한다.
  • 요청및 응답 서비스
  • 변형
  • 컨텐츠 기반 라우팅
  • 사용자 정의된 라우팅
  • 최적화
  • 모니터링

ESB는 서비스의 공통적인 연결과 가상화를 제공한다. 마지막의 비즈니스 애플리케이션 요구사항을 할당하면, ESB는 서비스 컴포넌트 아키텍처(SCA) 프로그래밍 모델에 영향을 끼친다. 다음 그림에서 ESB가 SCA 프로그래밍 모델을 지원하는 것을 볼 수 있다. The ESB uses a mediation component (module) that is based on SCA modules to mediate messages between service requestors and service providers. The mediation services in the ESB can thus be tailored to form complex mediation patterns that implement virtualization in the form of location and identity transparency. They can also improve upon the quality of service (QoS) requirements such as performance, encryption/decryption of messages, and reliable and secure content delivery and transactions.

그림 2. 전사적인 서비스 버스

ESB.gif

중재(mediation) 컴포넌트는 3개의 컴포넌트를 포함한다.

  • 메시지 모델
  • 중재 흐름
  • 커뮤니케이션 프로토콜

The ESB uses the service registry and repository component as a dynamic look-up mechanism to provide information about service endpoints. The registry and repository service thus enables optimized access to service metadata and management of service interactions and policies. It also supports the integration and federation of other standard registries and repositories. In its most elemental state, it is composed of service metadata artifacts documents, such as XML Schema Definition Language (XSD) or Web Services Description Language (WSDL) files. These service metadata files are stored and managed by the service repository.

Interaction(상호작용) services[#1]#

상호작용 서비스 노드는 사용자를 위한 SOA항목 지점으로 공급된다. 상호작용 서비스는 SOA를 위한 표현 계층을 제공한다. SOA를 위한 표현 계층은 인터페이스를 추상화하고 마지막 사용자와 SOA애플리케이션간의 정보 소스를 모은다.

상호작용 서비스는 다음의 3개의 중요 서비스로 분류된다.

  • User interface services
  • User interaction services
  • Deployment services

상호작용 서비스는 복합적인 애플리케이션을 생성하기 쉽도록 템플릿 형태의 컴포넌트를 지원한다. 복잡적인 애플리케이션은 ..

  • 외부자원을 활용하거나 기업내의 서비스 애플리케이션을 위한 기본사항을 제공
  • 리치 클라이언트와 모바일 최종 사용자 클라이언트를 지원
  • 사용자 정의에 의해 변경되고 동적인 데이터를 제공
  • 프로젝트 KPI의 실시간 뷰를 가진 사용자를 제공하는 대시보드처럼 공급

그림 3. 상호작용 서비스

InteractionServices.gif

복합적인 애플리케이션 각각은 특정 함수와 관련된 워크플로우를 가지는 내장된 포틀릿을 포함할것이다. 상호작용 서비스는 내장된 필터링 기능, 브라우저 기반의 설정 마법사, 상호작용하는 웹폼, 검색, 웹 2.0기술 그리고 조합등을 가질수 있다. For example, the collaboration service component is a completely integrated, portal-based collaborative environment that includes e-mail, calendaring and scheduling, instant messaging, Web conferencing, and document and Web content management.

Process services[#2]#

다음 그림은 프로세스 서비스와 SOA도메인에서 함수들을 가지기 위해 사용되는 컴포넌트들을 보여준다. 프로세스 서비스는 비즈니스 프로세스와 비즈니스 플로우 요구사항을 달성하는 중재 모듈을 사용한다. 프로세스 서비스는 비즈니스 데이터를 만들고 소비하는 비즈니스 서비스를 모델링하기 위해 SCA 프로그래밍 모델을 사용한다.

그림 4. 프로세스 서비스

process.jpg

비즈니스 프로세스는 비즈니스 프로세스 실행 언어(BPEL)을 사용하여 정의된다. A business process is the set of business-related activities, rules, and conditions invoked in a predefined sequence to achieve a business goal. Business rules are a means of implementing and enforcing business policy through externalization of business function. Externalization enables the business rules to be managed independently from other aspects of an application. This independence allows a dynamic business rules update capability, providing for a more agile business.

SCA components consist of interfaces, references, and an implementation. Service components can have interfaces either in Java or WSDL port types. The business process type component consists of a process implementation type that can implement one or more SCA interfaces with either Java or WSDL port types. The processes can be long or short running; the short-running processes are called micro flows. The long-running business processes can interact with multiple partners, with interactions performed through standard, stateless Web service calls.

The interaction with each partner occurs through Web service interfaces. BPEL is built on top of WSDL and XML schemas. The process model is validated using an extended XML schema for syntax and a comprehensive set of rules applied for semantic constraints, as defined by the BPEL specification.

Information services[#3]#

다음 그림은 ESB를 위한 정보 서비스 스택을 보여준다.

information.jpg

정보 서비스는 다음의 컴포넌트들을 가진다.

  • Metadata management(메타데이터 관리)
  • Extract, transform, and load(추출, 변형 그리고 채우기-ETL)
  • Federation(연합)
  • Data placement (데이터 배치 - 복제와 캐싱)
  • Data modeling(데이터 모델링)
  • Search(검색)
  • Analytics(분석)

Partner services[#4]#

파트너 서비스는 SOA를 위한 재사용 항목지점처럼 작동한다. 이 말은 어댑터를 사용하거나 ESB에 연결하는 것으로 레거시 시스템과 전자 데이터 교환(EDI) 시스템이 SOA 전사 아키텍처에 접근할수 있다는 것을 의미한다. 어댑터는 EIS와 통합 브로커간의 통신을 제공한다. 백엔드 시스템이나 비즈니스 애플리케이션 각각은 특정 어댑터를 필요로 하게 된다.

Business integration adapters consist of a collection of software APIs, providing native communication with the back-end enterprise information system (EIS), and tools that let you configure business objects and adapters. Partner services using custom adapters depend on various software vendors, including SAP, Siebel, and IBM® WebSphere® (which offers the WebSphere Adapter Toolkit, as well as dozens of adapters, including the WebSphere Adapter for SAP Software and the WebSphere Adapter for Siebel Business Applications).

그림 6. 파트너 서비스

partner.gif

다음 그림은 다양한 백엔드 비즈니스 애플리케이션 시스템간에 유사한 데이터를 동기화할 필요가 있는 비즈니스 통합에서 사용되는 공통적인 패턴을 보여준다. 그리고 두개의 백엔드 시스템을 보여주고 있다. 이 두 시스템은 비즈니스 통합 어댑터를 사용하여 프로세스 서버에서 구동중인 비즈니스 통합 애플리케이션과 각각 통합된다. 다른 통합 애플리케이션이 사용하는 SCA프로그래밍 모델과 컴포넌트의 영향으로 어댑터의 통합이 이루어진다.

그림 7. 비즈니스 통합 어댑터 서비스

bia.gif

그림 7의 핵심은 비즈니스 통합 애플리케이션을 가진 프로세스 서버를 보여준다. The center of Figure 7 shows the process server with a business integration application. The business integration application is made available for invocation to other services, outside of the SCA module, through a JMS export. The business integration application is able to invoke other services outside of the SCA module through the use of a JMS import. The adapters communicate with the back-end systems using the application-specific data structure or business object and are configured using the connector configuration file.

When a business object is passed inbound to the process server through the export, it is converted to a format understood by the process server by a data binding that is part of the export. When a business object is passed outbound to the adapter, it is converted to a format understood by the adapter by a data binding that is part of the import. This data synchronization pattern can also incorporate mapping of the business object from an application-specific format to a generic format.

Some of the vendors who partner in supplying application adapter components include Ariba Buyer, Clarify, MatrixOne (eMatrix), JD Edwards, mySAP.com, Oracle applications, PeopleSoft Portal intranet, QAD MFG/PRO, Retek, SAP Exchange Infrastructure, Siebel, WebSphere Process Server, and WebSphere Enterprise Service Bus (ESB).

Some of the technology adapter components are: ACORD XML, Microsoft® COM, CORBA, e-mail, EJB, Microsoft Exchange, FIX Protocol, IBM iSeries®, WebSphere Business Integration iSoft Peer-to-Peer Agent, Java Database Connectivity (JDBC) (SQL and stored procedure access), JMS, JText, IBM Lotus® Domino®, Society for Worldwide Interbank Financial Telecommunication (SWIFT), WebSphere MQ, WebSphere Business Integration Message Broker, WebSphere MQ Workflow, Web services, and XML.

Some of the technology adapters can use data handlers, including data handlers for EDI, SOAP, XML, and various text formats.

어댑터는 공통 어댑터 프레임워크를 사용하여 빌드되고

  • 양뱡향으로 이벤트 처리와 요청 처리를 할 수 있다.
  • 메타데이터를 통해 설정하고 다중 쓰레드 비즈니스 객체를 처리할 수 있다.

The business integration collaboration component has collaborations with components such as customer relationship management (CRM), Health Insurance Portability and Accountability Act (HIPAA), health care, order management, procurement, telecommunication, life insurance, and so on. Business integration collaboration is done with prebuilt templates that streamline and synchronize information and data related to the respective components.

For example, collaborations for HIPAA transactions enable compliance with required specifications and standards, and ensure that all transactions and interactions interconnect across multiple applications and across enterprise boundaries. The broker plug-in component provides the necessary classes required for creating a user plug-in node. The microbroker plug-in component provides the necessary access-related information, such as broker name, queue name, data source, and so on.

Business application services[#5]#

비즈니스 애플리케이션 서비스는 SOA를 위한 재사용 항목 지점을 구성한다. 비즈니스 애플리케이션은 기업에 비즈니스 가치를 가져오기 위해 웹서비스를 사용하여 느슨하게 결합되어 있다.

웹서비스는 값비싼 비즈니스 애플리케이션을 빌드하는 비용을 줄이고 전사적인 구조에 새로운 비즈니스 모델을 디플로이 하도록 해준다. 대부분의 조직을 위해, 빠른 개발의 주요한 과제는 보안이다. 비즈니스 애플리케이션 서비스는 비즈니스 트랜잭션중에 보안을 확실히하기 위해 몇가지 비즈니스 보안 기능을 포함한다.

다음 그림은 비즈니스 애플리케이션 서비스를 보여준다. 이 비즈니스 애플리케이션 서버는 비즈니스 프로세스와 기업의 비즈니스 애플리케이션을 위한 비즈니스 보안 서비스를 제공하기 위한 정책 관리 컴포넌트를 사용한다.

busapp.jpg

비즈니스 프로세스와 정책 관리 컴포넌트는 비즈니스 애플리케이션을 위한 보안 의무를 다하기 위해 다음의 보안 컴포넌트를 사용한다.

  • Security governance framework(보안 관리 프레임워크)
  • Trust management(신뢰 관리)
  • Identity and access management(주체및 접속 관리)
  • Secure systems and network(보안 시스템과 네트워크)
  • Data protection(데이터 보호)
  • Risk management(위험 관리)
  • Compliance management(수락 관리)
  • Audit trails and records

Application and data access services[#6]#

The application and data access services component serves as the information and reuse entry points of SOA, as shown in Figure 9. Connectivity of services across heterogeneous technologies is the foundation of SOA. Figure 9 shows a scenario of an enterprise application supporting various interaction protocols and QoS with the application and data access services component. The business applications of most organizations must be able to handle a variety of data representations as they start moving toward exposing applications as services in an SOA environment.

Handling the myriad forms of data turns out to be a challenge; there is an imperative need for a common universal API capable of handling the various data sources. The SCA programming model can expose services that interact with the underlying data layer. A robust data access utility called the relational database data access service (RDB DAS) provides a tight integration with Service Data Objects (SDO) to access data within an SCA-based application.

그림 9. 애플리케이션과 데이터 접근 서비스

appdata.gif

요약#

Architects and stakeholders often find it challenging to articulate the SOA architecture pattern and to determine which entry point to choose. As a result, they may want to select several SOA entry points that can address the most pressing and challenging issues that face the enterprise. After reading this article, architects and other key players can help their organization better meet its requirements by drilling down on the various nodes identified at each of the entry points to begin working toward their SOA architecture journey.

In this article, you learned about SOA from a logical perspective and how to create nodes and associated UML components that can represent the SOA reference architecture in a nonpropietary, product-agnostic manner.

Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
gif
ESB.gif 44.4 kB 1 03-Jul-2007 22:04 DongGukLee
gif
EnterpriseServiceBus.gif 44.4 kB 3 03-Jul-2007 22:03 DongGukLee
gif
InteractionServices.gif 44.8 kB 1 03-Jul-2007 22:04 DongGukLee
gif
appdata.gif 55.3 kB 1 03-Jul-2007 22:03 DongGukLee
gif
bia.gif 13.5 kB 1 03-Jul-2007 22:03 DongGukLee
jpg
busapp.jpg 64.7 kB 1 03-Jul-2007 22:03 DongGukLee
jpg
information.jpg 47.7 kB 1 03-Jul-2007 22:04 DongGukLee
gif
logicalSOA.gif 33.9 kB 1 03-Jul-2007 22:04 DongGukLee
gif
partner.gif 65.7 kB 1 03-Jul-2007 22:04 DongGukLee
jpg
process.jpg 36.1 kB 1 03-Jul-2007 22:04 DongGukLee
« This page (revision-9) was last changed on 04-Jul-2007 17:04 by DongGukLee