본문 바로가기
프로그래밍/SOAP

웹서비스, XML, UDDI, WSDL, SOAP

by 백룡화검 2010. 4. 24.

XML  웹서비스 아키텍쳐

##########0*

 

 

블로그 > lucky074님의 블로그
http://blog.naver.com/lucky074/40003906307

 

 

 

 

##########3*

 

 

XML 웹서비스 인프라

##########4*

##########5*

 

 

XML 웹 서비스 소비자

  XML 웹서비스 소비자는 XML 웹 서비스를 액세스하는 클라이언트입니다.

  SOAP(Simple Object   Access Protocol) 형태의 데이터를 주고 받습니다.

 

XML 웹 서비스 제공자
  XML 웹 서비스 제공자는 .NET 환경에서 IIS, ASP.NET을 이용해 구현됩니다.

  XML 웹 서비스 제공자는 HTTP 프로토콜을 기반으로 Connectionless, Stateless 환경의

  서비스 액세스 방법을 제공합니다.

 

XML 웹 서비스 브로커
  XML 웹서비스 브로커는 XML 웹 서비스들을 위한 Yellow Page 역할을 수행합니다.

  UDDI(Universal Description, Discovery and Integration)와 DISCO의 두가지 유형의

  검색 메커니즘을 이용합니다.

 

 

XML 웹 서비스 소비자는 object를 직렬화하여 SOAP(Simple Object Access Protocol)이라고 하는 XML 문서를 생성해내고 이것을 네트웍을 통해 전송합니다. XML 웹 서비스 제공자는 이것을 역직렬화 작업을 통해 object를 복원해내어 요청을 처리합니다. 처리된 작업 결과는 다시 직렬화 작업을 통해 SOAP 형태로 XML 웹 서비스 소비자 측으로 전송되게 됩니다.
이 때에 XML 웹 서비스 소비자 측에서 직렬화, 역직렬화 작업을 수행하는 요소를 웹 서비스 프록시라고 부릅니다.

XML 웹서비스 소비자를 ASP.NET 페이지로 가정해서 실행모델을 그림으로 나타내면 다음과 같습니다.
.NET에서 지원하는 ASP.NET 기반의 XML 웹 서비스 제공자는 HTTP-GET이나 HTTP-POST 방식의 Wire Format을 지원하여 XML 웹서비스 제공자를 개발하는 개발자로 하여금 손쉽게 테스트를 수행할 수 있도록 합니다.
##########6*
##########7*

 

================================================================================

 

##########8*

SOAP(Simple Object Access Protocol 또는 Service Oriented Architecture Protocol)
분산환경에서 소프트웨어 서비스 간에 정보를 교환하기 위한 XML 기반의 간단한
프로토콜
입니다. 이는 메시지 내용과 이를 처리하는 방법을 설명하기 위하여 프레임웍을
정의한 Envelope, 응용프로그램에서 정의한 데이터 타입의 인스턴스를 나타내는 일련의
인코딩규칙, 원격 프로시저 호출의 응답 등을 나타내는 규칙으로 구성되어 있습니다.

SOAP 메시지는 루트 엘리먼트로 Envelope를 가지며, SOAP 헤더(header)와 바디(body)를
하위 엘리먼트로 가지고 있습니다. XML 포맷으로 표현된 SOAP 메시지는 전송계층을 통해
전송되는데 일반적으로 HTTP가 이용됩니다. 이 외에도 SMTP, FTP 등과의 바인딩을 통해
전송될 수도 있습니다. 예를 들어 HTTP 바인딩을 통해 SOAP 메시지를 전송할 때는
HTTP 헤더에 SOAP 메시지를 전송할 서버의 IP주소, 메시지 타입과 길이, 문자 셋 등의
추가적인 정보들을 기술하게 됩니다.

※ 아래의 밑줄 글자를 클릭하세요.

##########9*
 

##########10*

SOAP 메시지 작성 예

 

##########11*

 

웹서비스에서는 SOAP을 메시징 프로토콜로 사용함으로써 다음과 같은 장점을
갖습니다.
 
※ ##########12* 아이콘에 마우스를 가져가세요.
- SOAP은 방화벽을 통해서 쉽게 전달 될 수 있습니다.##########13*
- SOAP 데이터는 XML을 사용하여 구조화되어 있습니다.##########14*
- SOAP은 잠재적으로 HTTP, SMTP 및 JMS 등과 같은 여러 전송
프로토콜과 함께 사용
될 수 있습니다.##########15*
- SOAP은 HTTP, HTTP 확장 프레임워크의 요청/응답과 잘 일치하는
구조
입니다.
- SOAP은 경량 프로토콜입니다.##########16*

 

##########17*

WSDL(Web Services Description Language)은 원하는 서비스가 어디에 존재하며,
웹서비스로 무엇을 할 수 있고, 이를 실행하기 위해서는 어떻게 해야 하는가를 XML 형식으로
제공하는 메타언어라 할 수 있습니다. 이해를 돕기 위해 비유하자면 제품의 사용설명서
같습니다.

##########18*
 
WSDL 문서를 기존 기술과 비교하면 COM, CORBA와 같은 기존 분산 컴퓨팅 기술에서의
IDL(Interface Definition Language)이나 타입 라이브러리에 해당하지만, 이 문서에는
서비스의 인터페이스 뿐만 아니라, 서비스의 위치(endpoint)가 나와 있어 위치독립성을
실현하는 이점을 갖습니다.

웹서비스 영역에서 서비스 제공자와 요청자의 입장에 따라, 표준 WSDL 문서로부터 직접
구현 코드를 생성하고, 역으로 구현 코드를 WSDL 문서로 매핑할 수 있는 능력이 필요합니다.

##########19*

 

편집기로 직접 WSDL 문서를 작성할 일은 거의 없겠지만, 웹서비스 개발을 위해서는
WSDL 스펙에서 정의하고 있는 XML 엘리먼트를 정확하게 이해하여, 개발 도구 및 API의
도움을 받아 WSDL 문서를 생성 또는 수정할 수 있어야 합니다.

 

 

개발에 있어서는 WSDL 문서로부터 로컬 프록시 객체를 생성하여 서비스를 호출하는
SOAP 요청을 보내는 방법과, 레지스트리에 있는 서비스를 직접 호출하는 두 가지 방법을
숙지하여야 합니다.

이 과정에서는 기초로서 다음과 같은 WSDL 문서의 주요 엘리먼트를 숙지하도록 합니다.

※ 아래의 밑줄 글자를 클릭하세요.

##########20*

 

 

 

 

##########21*

 

UDDI(Universal Description, Discovery and Integration)는 비즈니스 정보와 서비스에 대한
정보를 등록, 질의, 검색하기 위한 표준입니다. 등록된 정보는 하나 또는 그 이상의
UDDI 레지스트리에 저장되며, 웹 브라우저나 SOAP을 통하여 액세스할 수 있습니다. UDDI는
전화 및 팩스, 주소, 웹사이트 등의 연락처와 위치 뿐만 아니라, 산업분류 코드, 비즈니스
유형과 같은 검색을 위한 세부정보를 포함하여 향후 웹서비스가 널리 보급되었을 때의 동적
비즈니스 실현을 예고하고 있습니다.

 

 

[UDDI 서비스]

웹서비스 개발 구축에서 UDDI 서비스를 반드시 설치하여 운영할 것을 권장합니다.

앞서 WSDL 문서에서 언급하였듯이 WSDL 문서에는 웹서비스 위치를 명시할 수
있으므로, 서비스 제공자와 사용자 간의 사전 협의가 있을 경우 UDDI 레지스트리를
사용하지 않고 클라이언트 프록시로써 위치 투명성을 구현할 수 있지만, 관리의
효율을 극대화하고 재사용성을 높이며, 기업 내 활용 뿐 아니라 외부 협력 및 서비스
판매까지를 위해서는 UDDI 레지스트리를 통한 홍보가 필요합니다.
 
##########22*

 

무엇보다 웹서비스 기술은 사용자의 직접적인 개입없이 애플리케이션 스스로 통신할
수 있어야 하며, 이 때 서비스 중개자 역할을 하는 UDDI는 필수적입니다.

 

 

[UDDI 레지스트리]

UDDI 레지스트리는 공개(Public) 레지스트리와 사설(Private) 레지스트리로
구분됩니다.

현재 IBM, Microsoft, Ariba, SAP, NTT 5개사가 공개(Public) 레지스트리를
운영 중이지만, 이를 통한 비즈니스가 일어나고 있지는 않은 상황이며, Salcentral과
같은 일부 웹서비스 중개 비즈니스의 시도도 있습니다. 하지만, 아직까지는 기업 내
또는 신뢰하는 파트너 간의 사설 UDDI 레지스트리가 주로 사용되고 있습니다.
 
##########23*
 
UDDI 표준 버전 3.0부터는 레지스트리 간의 계층적인 관리체계를 규정하고 있으므로,
버전 3.0 이후의 UDDI를 설치 운영하는 방법을 알고, 저장되는 서비스, 비즈니스
정보들의 정확성과 신뢰성을 보장하기 위한 체계적인 운영 노우하우를 습득할 필요가
있습니다. 개발 측면에서는 UDDI API를 활용하여 SOAP을 통하여 UDDI가 제공하는
각종 서비스에 접근하여 검색, 등록, 동적 바인딩을 수행할 수 있는 방법을 익혀야
합니다.

 

 

 

UDDI는 <businessEntity>, <businessService>, <bindingTemplate>, <tModel>, <publisherAssertion>의 다섯 가지 주요 데이터 유형을 갖고 있습니다.

※ 아래의 밑줄 글자를 클릭하세요.

##########24*

 

 

 

 

 

================================================================================

 

 

6) XML 웹서비스 소개

 

##########25*

 

 

블로그 > lucky074님의 블로그
http://blog.naver.com/lucky074/40003906257

 

 

XML 웹서비스는 인터넷 기반으로 URL을 이용하여 네트웍 상에 공개된 기능들을 이용할 수 있도록 하는 서비스입니다. 예를 들자면 Microsoft Passport를 들 수 있습니다.
Passport는 HTTP 기반으로 인증 기능을 제공해주는 서비스입니다.

 

[XML 웹서비스의 특징]

1. 인터넷 기반(HTTP 이용)

인터넷과 같은 오픈 네트워크을 이용하고 HTTP라는 표준 프로토콜을 이용하므로 인터넷상이라면 어디서나 웹서비스를 액세스할 수 있습니다. 특히 인트라넷과 같이 폐쇄적인 네트워크간에도 방화벽을 거쳐 데이터를 교환할 수 있습니다

 

2. 언어, 플랫폼 독립적

XML 웹서비스는 C#이든, java든 어떠한 언어로 작성되더라도 SOAP(Simple Object Access Protocol)만 준수하면 플랫폼 독립적으로서 서로 다른 시스템간에도 데이터 통신이 가능합니다.

 

3. XML 메시지 기반의 분산환경 가능

XML 웹서비스는 SOAP이라고 하는 XML 기반 프로토콜을 데이터 포맷으로 사용합니다. 이런 XML 메시지를 주고받는 메시지 기반의 분산환경 아키텍처를 가지고 있으므로, 비동기호출과 같은 RPC환경에서 구현하기 힘든 요소들이 쉽게 구현될 수 있습니다.

 

4. Stateless 아키텍쳐

웹 기반이므로 웹 응용프로그램과 마찬가지고 Stateless 아키텍처입니다.

 

 

'프로그래밍 > SOAP' 카테고리의 다른 글

Soap  (0) 2010.04.24
nuSoap을 이용한 서버간의 파일전송  (0) 2010.04.24
nusoap with basic authentication  (0) 2010.04.24
[본문스크랩] SOAP 참고 사이트  (0) 2010.04.24