웹서비스 아키텍처
웹서비스 아키텍처
1. 웹 서비스 기본 블록
- 검색
- 서비스 검색
- 기술
- 서비스를 기술하고 있는 내용 검토
- 호출
- 사용하고자 하는 경우 서비스 호출
2. JIT 통합
- 웹 서비스 시스템
- 모든 컴포넌트는 서비스
- 컴포넌트의 동적인 바인딩과 분리 가능
- 네트워크에 있는 다른 협업 컴포넌트들에게 자신의 메시징 API를 알리고 메시지에 맞추어 동작하는 기능을 캡슐화
- 서비스 애플리케이션이 협업의 동적 바인딩을 하도록 서비스 검색을 이용해서 메세지 마샬링
- 서비스 지향 아키텍처 접근 방식을 이용
- 네트워크에서 이용 가능한 자원 탐색
- 서비스를 결합해서 또 다른 서비스를 제공
- 애플리케이션 디자인 작업
- 특정 기능을 수행하기 위해 네트워크 서비스의 기능을 기술
- 협업 서비스들의 협업 체계를 기술
- 런타임 어플리케이션 수행
- 협업에 대한 요구사항을 실제 서비스의 검색의 입력으로 사용
- 협업 가능한 서비스 탐색
- 실제 서비스를 수행하기 위해 협업에 대한 메세지 전송
- 이러한 새로운 어플리케이션은 또 다른 서비스가 됨
- 서비스를 합쳐서 새로운 서비스를 창조하고 이 서비스를 다시 검색하고 협업 가능
3. 서비스 지향 환경을 위한 조건
- 웹 서비스의 인터페이스와 호출 메서드가 정의 되고 생성
- 웹 서비스는 하나 이상의 인트라넷 또는 인터넷 저장소에 발행되어 있어야 함.
- 더이상 이용 불가능 하거나 필요하지 않는 경우 삭제될수 있어야 함.
4. 웹 서비스의 기본 동작
- Web Service Provider
- 웹 서비스 제공자
- UDDI 레지스트리에 사용 가능한 웹 서비스 등록
- Web Service Broker
- 웹 서비스 중개자
- 제공자와 소비자 사이에서 제공자가 서비스를 출판하고 이를 소비자가 검색할 수 있도록 편의를 제공
- UDDI
- 웹 서비스 검색 기술
- Web Service Broker
- 웹 서비스 사용자
- 서비스 브로커를 통해 원하는 웹 서비스의 위치를 발견 및 사용
- publish
- 등록
- 서비스 제공자는 서비스 브로커(UDDI)에 사용 가능한 웹 서비스 등록
- WSDL
- 어떤 메시지를 생성하고 받아들일 수 있는지 정의
- 네트워크 서비스 기술을 위한 XML 포멧
- Find
- 검색
- 웹 서비스 사용자는 원하는 웹 서비스를 발견하기 위해 서비스 브로커 검색
- Bind
- 연결
- 웹 서비스 사용자는 원하는 웹 서비스에 접근 및 호출을 하기 위해 웹 서비스 제공자와 협의 및 연결
5. Web Service Architecture Stack
- wire stack : 프로토콜 역활, transport
- Description stack : 웹 서비스를 기술, wsdl
- Discovery stack : 웹 서비스를 탐색, registry
6. Simple Object Access Protocol
- 분산 환경에 있는 peer들 사이에 정형화된 정보와 구조를 주고받을 수 있도록 경량화된 프로토콜을 정의
- 웹 서비스의 호출을 책임
- 확장성이 좋은 일정의 메시지 포멧 프로토콜
- Http, SMTP와 같은 다양한 이너넷 표준 통신 프로토콜을 사용하여 전달 가능
- XML 기반의 통신 프로토콜
-
서로 다른 컴퓨터 사이에 OS, 프로그래밍 환경, 객체 모델 프레임워크가 달라도 정보 교환이 가능
- Soap에서 정의하고 있는 것
- 메시지 교환하기 위한 방식
- 모듈화된 패키지를 만드는 방법
- XML 스키마에 기반한 메시지 내부 데이터를 인코딩하는 방법
- 메세지 포멧은 편지와 유사
- 통신할 컴퓨터 주소
- Envelope : Soap를 포장하는 부분
- 메시지
- 기본적으로 송신자가 수신자에게 보내는 단방향 전송
- XML로 구성되며, 자신의 스키마 사용
- Namespace 포함
- Soap를 지원하는 웹사이트와 웹 어필리케이션은 웹서비스를 제공할 수 있음
- 추가적인 프로그래밍 없이 다른 컴퓨터와의 서비스들과 연계 가능
- 메시지 교환하기 위한 방식
7. SOAP와 다른 분산 프로토콜 비교
- CORBA, ORB
- 객체 실행 생명주기 관리, 성능 향상을 위한 객체 폴링 등
- SOAP
- 수많은 분산 프로토콜들과 용이하게 동작할 수 있도록 최대한 가볍고 공통적인 부분만 수용한 프로토콜
- 쉬운 확장성 및 기존 인터넷 인프라 구조에 포함됨.