SOA(Service-Oriented Architecture)에 대한 웹 서비스 접근 방법
SOA(Service-Oriented Architecture) 환경에서 웹 서비스를 사용할 수 있습니다.
웹 서비스를 사용하여 SOA를 구현할 수 있습니다. 웹 서비스의 주요 목적은 기능 빌딩 블록을 플랫폼과 프로그래밍 언어에서 독립적인 표준 인터넷 프로토콜을 통해 액세스할 수 있도록 만드는 것입니다. 이러한 서비스는 새로운 애플리케이션이거나 단지 기존 레거시 시스템을 네트워크에서 실행 가능하게 만들기 위해 랩핑한 것일 수도 있습니다. 서비스는 이러한 목표를 이루기 위해 다른 서비스에 의존합니다.
- 서비스 제공자
서비스 제공자는 웹 서비스를 작성하고 인터페이스와 액세스 정보를 서비스 레지스트리에 공개합니다. 각 제공자는 공개할 서비스, 보안과 쉬운 가용성 간의 균형 유지 방법, 서비스 가격 책정 방법 또는 기타 용도로 무료 서비스를 이용하는 방법을 결정해야 합니다. 또한 제공자는 주어진 브로커 서비스에 대한 서비스를 나열할 카테고리 및 서비스를 사용하기 위해 필요한 거래 업체 계약의 종류를 결정해야 합니다.
- 서비스 브로커
서비스 레지스트리로도 알려진 서비스 브로커는 웹 서비스 인터페이스와 구현 액세스 정보를 다른 잠재 서비스 요청자가 사용할 수 있도록 만드는 책임이 있습니다. 브로커 구현자는 브로커의 범위에 대해 결정해야 합니다. 공용 브로커는 인터넷 전체에서 사용 가능한 반면, 개인용 브로커에는 회사 인트라넷 사용자 같은 제한된 사용자만 액세스할 수 있습니다. 그리고, 제공되는 정보 양에 대한 몇몇 결정을 내려야 합니다. 일부 브로커는 목록의 범위를 전문으로 합니다. 다른 브로커는 나열된 서비스에 상위 레벨의 신뢰를 제공합니다. 일부는 광범위한 서비스를 다루고 다른 일부는 업계 내에 중점을 둡니다. 일부 브로커는 다른 브로커를 카탈로그합니다. 비즈니스 모델에 따라 브로커는 검색 요청, 목록 수나 목록의 정확성을 최대화하려고 시도할 수 있습니다. UDDI(Universal Description, Discovery and Integration) 스펙은 웹 서비스에 대한 정보를 공개하고 발견하는 방법을 정의합니다.
- 서비스 요청자
서비스 요청자 또는 웹 서비스 클라이언트는 다양한 찾기 조작을 사용하여 브로커 레지스트리에서 항목을 찾은 다음 웹 서비스 중 하나를 호출하기 위해 서비스 제공자로 바인드합니다.

SOA의 특성:
- 클라이언트는 서비스로 결합됩니다. 그러므로 서버의 통합은 클라이언트 애플리케이션 범위 밖에서 발생합니다.
- 이전 및 새로운 기능 블록 또는 애플리케이션 및 시스템은 서비스로서 작동하는 컴포넌트로 캡슐화됩니다.
- 기능 컴포넌트 및 해당 인터페이스는 새 인터페이스를 보다 쉽게 플러그할 수 있도록 분리되어 있습니다.
- 복합 애플리케이션 내에서 비즈니스 프로세스의 제어를 분리할 수 있습니다. 정의된 비즈니스 프로세스의 워크플로우를 제어하기 위해 비즈니스 규칙 엔진을 통합할 수 있습니다. 워크플로우의 상태에 따라 엔진은 각자의 서비스를 호출합니다.
- 서비스는 런타임 동안 동적으로 통합될 수 있습니다.
- 바인딩은 구성 파일을 사용하여 지정되고 새로운 필요사항에 쉽게 적응될 수 있습니다.
SOA(Service-Oriented Architecture)의 특성:
- 웹 서비스는 독립적입니다.
클라이언트측에서는 추가 소프트웨어가 필요하지 않습니다. XML(Extensible Markup Language)을 사용하는 프로그래밍 언어와 HTTP 클라이언트 지원만 있으면 시작할 수 있습니다. 서버 측에서는 웹 서버와 SOAP 서버만 필요합니다. 웹 서비스는 코드를 단 한 줄도 작성하지 않고 기존 애플리케이션을 사용 가능하게 만들 수 있습니다.
- 웹 서비스는 자체 기술적입니다.
클라이언트나 서버는 요청 및 응답 메시지(소결합된 애플리케이션 통합)의 포맷과 내용 이외에는 아무 것도 모르며 관여하지 않습니다. 메시지 포맷의 정의는 메시지에 따라 다릅니다. 외부 메타데이터 저장소나 코드 생성 도구는 필요하지 않습니다.
- 웹 서비스는 인터넷에서 공개, 검색 또는 호출될 수 있습니다.
이 기술은 HTTP와 같은 구축된 경량의 인터넷 표준을 사용하고 기존 인프라를 이용합니다. 필요한 일부 기타 표준으로는 SOAP, WSDL(Web Services Description Language) 및 UDDI가 있습니다.
- 웹 서비스는 언어에 독립적이며 상호운영 가능합니다.
클라이언트와 서버는 서로 다른 환경에서 구현될 수 있습니다. 웹 서비스를 사용 가능하게 설정하기 위해 기존 코드를 변경할 필요는 없습니다.
- 웹 서비스는 본질적으로 공개 및 표준 기반입니다.
XML 및 HTTP는 웹 서비스의 주요 기술 기반입니다. 웹 서비스 기술의 대부분은 오픈 소스 프로젝트를 사용하여 빌드되었습니다.
- 웹 서비스는 동적입니다.
동적 e-business는 웹 서비스를 사용하여 현실이 될 수 있습니다. UDDI 및 WSDL을 사용하면 웹 서비스 설명 및 발견을 자동화할 수 있기 때문입니다.
- 웹 서비스는 구성 가능합니다.
워크플로우 기법을 사용하거나 웹 서비스 구현으로부터 더 낮은 계층의 웹 서비스를 호출하면 단순 웹 서비스는 보다 복잡한 웹 서비스가 될 수 있습니다. 웹 서비스는 높은 레벨의 비즈니스 기능을 수행하기 위해 서로 연결될 수 있습니다. 이 연쇄 호출은 개발 시간을 줄일 수 있고 최상의 구현을 실현할 수 있습니다.
- 웹 서비스는 소결합되어 있습니다.
일반적으로 애플리케이션 설계는 양 끝의 철저한 상호 연결에 의존해 왔습니다. 웹 서비스에서는 서비스 통합을 보다 융통성있게 재구성할 수 있도록 보다 단순한 레벨의 조정이 필요합니다.
- 웹 서비스는 프로그램적 액세스를 제공합니다.
접근 방법은 그래픽 사용자 인터페이스를 제공하지 않습니다. 이것은 코드 레벨에서 작동합니다. 서비스 이용자는 웹 서비스에 대한 인터페이스를 알아야 하지만 서비스의 구현 세부사항은 알 필요가 없습니다.
- 웹 서비스는 기존 애플리케이션을 랩핑하는 기능을 제공합니다.
웹 서비스를 인터페이스로 구현하여 이미 존재하는 독립형 애플리케이션을 SOA로 쉽게 통합할 수 있습니다.