개념: 서비스 지향 아키텍처 소개
이 개념은 공개되어 동적으로 발견할 수 있는 서비스 사용을 기반으로 한 컴포넌트 기반 아키텍처 전문화인 SOA에 대해 소개합니다.
관계
기본 설명

소개

컴포넌트 기반 아키텍처/컴포넌트 기반 개발은 RUP 사례입니다. 컴포넌트는 복잡한 시스템을 관리 가능한 파트로 나눌 수 있는 효과적인 방법이며 컴포넌트는 재사용할 수 있기 때문입니다. 서비스 지향 아키텍처(SOA)는 공개되어 동적으로 발견할 수 있는 서비스 사용을 기반으로 한 컴포넌트 기반 아키텍처를 전문화한 것입니다.

SOA의 개념

서비스는 인터페이스 세트를 정의하며, 정의된 사용자가 아닌 서비스를 공유할 수 있는 여러 클라이언트에게 할당되는 논리 컴포넌트입니다. 서비스 제공자는 서비스 인터페이스를 구현하는 컴포넌트입니다. 서비스 및 서비스 제공자는 공개되며 서비스 브로커라는 저장소를 통해 액세스합니다. 이러한 서비스는 아래 그림에 표시된 원칙에 따라 서비스 브로커를 통해 다른 컴포넌트(사용자 응용프로그램 또는 기타 서비스)에서 발견하고 액세스할 수 있습니다.

함께 표시되는 텍스트에 설명된 다이어그램
그림 1 - SOA 참가자 및 기본 오퍼레이션

서비스 제공자가 서비스 인터페이스와 해당 구현을 이렇게 구분함으로써, 서비스 요청자에게 영향을 주지 않고 동일한 서비스를 사용하는 여러 제공자를 동적으로 추가하거나 바꿀 수 있습니다. 서비스 요청자는 서비스와 필요한 관련 서비스 제공자를 동적으로 발견할 수 있습니다. 이러한 공개/발견 원칙을 통해 SOA의 유연성을 확보할 수 있으며 전통적인 아키텍처보다 아키텍처 결합력이 낮습니다. 이는 특히 패키지 응용프로그램 및 J2EE 또는 .Net 응용프로그램을 사용하는 레거시 시스템과 같이 전혀 다른 시스템을 통합 또는 작성할 때 유용합니다. 이러한 통합 유형은 개념: EAI(Enterprise Application Integration), 응용프로그램 인터페이스 레벨 통합을 참조하십시오.

서비스 특성

다음은 주요 서비스 특성입니다.

  • 덜 세분화되며 비즈니스 지향적: 항상 네트워크 통신으로 인한 어느 정도의 지연이 존재하므로 서비스는 중요한 비즈니스 가치를 한 번의 호출로 고객에게 제공하는 응용프로그램 로직의 상당 부분을 숨겨야 합니다.
  • 인터페이스 기반 디자인: 서비스는 정의된 인터페이스 세트를 구현합니다.
  • 호출 및 발견 가능: 서비스 및 서비스 제공자는 다른 시스템에서 발견하고 호출할 수 있습니다.
  • 분배: 응용프로그램을 작성하는 서비스는 조직 내 다른 시스템이나 조직 간에도 분배될 수 있습니다.
  • 약한 결합력: 서비스는 결합력이 약한 인터페이스를 통해 연결되므로 다른 서비스를 중단하지 않고 인터페이스를 수정할 수 있습니다.

SOA 및 웹 서비스

지금까지 설명한 모든 작업은 CORBA 및 .Net과 같은 다른 기술로도 수행할 수 있습니다. 그렇다면 웹 서비스가 서비스 지향 아키텍처와 밀접한 연관이 있는 이유에 대해 생각해 보아야 합니다.

웹 서비스는 인터넷 표준을 기반으로 합니다. 예를 들어, XML(eXtensible Markup Language)로 데이터를 형식화하고 SOAP(Simple Object Access Protocol)를 통해 통신을 수행하며 WSDL(Web Services Description Language) 및 UDDI(Universal Description, Discovery and Integration)를 통해 설명을 공개합니다. 이렇게 널리 채택되는 표준을 사용함으로써 다른 벤더 솔루션 간의 광범위한 상호운용성을 제공할 수 있으며 결과적으로 SOA를 보다 쉽고 저렴한 비용으로 구현할 수 있습니다.

웹 서비스 및 컴포넌트 기반 개발을 사용한 SOA 구현에 대한 자세한 내용은 백서: 서비스 지향 아키텍처 및 컴포넌트 기반 개발을 사용하여 웹 서비스 응용프로그램 빌드를 참조하십시오.