소프트웨어 아키텍처 - 25(SOA & XML-based Web Service)

박승현·2023년 10월 16일
0

아키텍처

목록 보기
25/30
post-thumbnail

SOA & XML-based Web Service


SOA Implementation in Web Services(웹 서비스에서의 SOA)

  • 웹 서비스는 SOAP, XML및 HTTP와 같은 표준 프로토콜과 기술을 사용하여 다른 서비스나 클라이언트와 통신
  • 웹 서비스는 메시지 중심 서비스
  • XML 기반 메시지는 반정형 구조로 되어 있기 때문에 웹 서비스 아키텍처를 보편적으로 접근 가능하게 만듬

Web Service 아키텍처의 기반이 되는 특성

  • SOAP (Simple Object Access Protocol)
    • 웹 서비스 간 통신을 위한 프로토콜로 사용
    • 서버와 클라이언트간의 상호 작용을 가능하게 함
  • UDDI (Universal Description and Discovery Protocol)
    • 웹 서비스 및 설명 및 섬색을 위한 프로토콜
    • 웹 서비스의 위치와 특성을 검색하고 찾을 수 있으며 서비스 검색 및 발견에 사용
  • WSDL (Web Services Description Language)
    • 웹 서비스의 기능, 메시지 형식, 프로토콜 및 기타 세부 정보를 정의(XML 기반)
    • 클라이언트는 WSDL을 통해 웹 서비스의 사용법을 이해하고 상호 작용 가능

Web Service

  • 웹 서비스는 네트워크를 통해 상호 운용 가능한 기계 간 상호 작용을 지원하기 위해 설계된 소프트웨어 시스템이다
  • 일반적으로 WSDL과 같은 기계 처리 가능한 형식으로 설명된 인터페이스를 가짐
  • 다른 시스템은 이 웹 서비스의 설명에 따라 SOAP메시지를 사용하여 상호 작용
  • 이 메시지들은 다른 웹 관련 표준과 함께 XML 직렬화를 사용해 HTTP로 전달

Conversion RPC - SOAP


WS Semantics

  • 웹 서비스의 의미론적 측면
    • 서비스가 어떻게 작동해야 하는지 공유하고 이해해야한다
    • 요청자와 제공자 엔티티 간의 상호 작용의 목적 및 결과에 관한 계약이 있어야 함
    • 법적 계약 또는 비 공식적 계약이 있어야 함

일반적인 웹 서비스 사용 과정


SOAP

  • SOAP의 두 가지 확장, 해석 방식
    • Service Oriented Architecture Protocol (SOA Protocol):
      • SOAP가 서비스를 호출하거나 서비스 호출 결과를 반영하기 위한 정보를 나타냄
      • SOAP 메시지를 통해 서비스를 호출하고 그 결과를 표현
    • Simple Object Access Protocol (SOAP Protocol)
      • 선택적인 SOAP RPC표현을 사용할때
      • SOAP 메시지는 원격 개체에서 메서드 호출을 나타내고 메서드의 인수 목록의 직렬화를 나타내고 로컬 환경에서 원격 환경으로 이동해야 하는 것을 나타냄
      • 객체 지향 프로그래밍에서 원격 메서드 호출을 구현하고 객체 간 통신을 가능하게 하는 데 사용

SOAP message

  • SOAP 헤더
    • SOAP 메시지는 헤더의 보안 정보, 송신자와 수신자의 위치 같은 요소를 포함 이 정보를 중간 서비스에서 사용
  • SOAP 본문
    • SOAP 메시지의 주요 부분을 포함
    • SOAP 메시지의 최종 수신자를 위해 의도된 내용을 포함(실제로 원하는 데이터나 작업의 내용)
  • XML 기반 독집적인 포맷
    • SOAP 메시지는 XML기반 문서
    • 어떤 플랫폼에서든 독립적으로 작동, 다양한 프로토콜을 통해 전송 가능
    • HTTP OR SMTP같은 다양한 통신 프로토콜을 사용하여 전송 가능

SOAP message requesting

  • SOAP 프로토콜을 사용하여 서비스를 요청하는 SOAP 메시지의 예시

Web Service Description Language (WSDL)

  • Web service are self-describing
    • 웹 서비스의 자체 설명
    • 웹 서비스는 자신의 인터페이스 및 사용 가능한 작업과 메서드에 대한 설명을 포함하고 있어 클라이언트가 해당 서비스와 상호 작용하기 위해 필요한 정보를 제공
  • A WSDL document is an interface document that describes the interface of a web service
    • WSDL 문서는 웹 서비스의 인터페이스를 설명하는 인터페이스 문서
    • 서비스의 사용 가능한 작업, 메서드, 메시지 형식등을 포함하여 설명하는 문서
  • 클라이언트가 웹 서비스에 접근하기 위해서 웹 서비스의 위치 또는 엔드포인트를 알아야 함, 이 정보는 직접적으로 제공되거나 웹 서비스 레지스트리 리포지토리를 통해 알아낼 수 있음
  • WSDL 문서에 포함된 인터페이스 정보는 클라이언트 애플리케이션이 웹 서비스와 상호 작용하기 위해 필요한 프로그램 호출을 생성하는 데 사용됨
    • 클라이언트가 서비스에 대한 요청을 만들고 이해할 수 있게 도와줌
  • 주식 가격 검색 웹 서비스로 예를 들면
    • WSDL문서로 getStock과 같은 메서드가 선언되어 있을 수 있음
    • WSDL문서를 통해 클라이언트는 이 작업을 호출 가능

Business Process Execution Language (BPEL)

  • BPEL은 웹 서비스 간의 협업 및 프로세스 관리를 위해 사용되는 XML 기반 언어로 다양한 웹 서비스를 조직하고 협업시키는 데 사용
  • BPEL은 비즈니스 프로세스를 구성하는 웹 서비스들을 기술, 서비스 간의 작업 흐름 및 상호작용을 설명
  • BPEL을 사용한 구매 주문 프로세스의 일부
    • purchaseOrder를 통해 구매 주문을 수신, 이 작업에 대한 입,출력 메시지 형식을 purchaseOrder포트 유형을 통해 정의
    • 구매 주문 수신 후 BPEL은 makeinvoice와 scheduleShipping이라는 2개의 동시 플로우로 작업 흐름을 나눔
    • 이를 통해 구매 주문 프로세스의 다양한 작업이 동시에 수행될 수 있음

분산 아키텍처 요약

  • 멀티티어 아키텍처
    • 데이터 및 처리 업무를 서로 다른 계층으로 분산
    • 각 계층이 고유한 역할과 책임을 가짐
    • 프래픽 감소 및 신뢰성 증가
  • 클라이언트 서버 아키텍처
    • 현재 기업, 산업에서 널리 사용
    • 웹 서버, 데이터 서버 응용 프로그램 서버는 모두 서버 계층의 예시
  • 브로커 아키텍처
    • 브로커는 원격 구성 요소 또는 다른 브로커 간의 메시지를 전달
  • CORBA
    • 원시 브로커 아키텍처
    • CORBA는 초기 브로커 아키텍처 구현 중 하나이며 구성 요소 중심의 아키텍처
  • 서비스 지향 아키텍처
    • 비즈니스 간 기업 애플이케이션에서 널리 사용
    • 각 서비스가 구성요소가 되며 다른 서비스 구성요소나 비즈니스 프로세스 애플리케이션에서 재사용될 수 있음
profile
KMU SW

0개의 댓글