웹 서비스 개론
- 인터넷 환경에서 분산 응용 프로글매을 개발하는 가장 좋은 대안 : 특정 회사의 독자적인 방법으로 제시된 개념이 아니라, 개방형 표준을 따르는 프로토콜과 XML을 가지고 분산 응용 프로그램을 제공하고 있기 때문입니다.
- 개발자가 개발한 다양한 응용 프로그램 로직들을 단순히 웹 서버에 올리는 것만으로 쉽게 웹 서비스를 개발 할 수 있습니다 : 웹 서비스를 제공받는 클라이언트들은 개방형 표준 프로토콜인 HTTP, SOAP, HTML, XML을 사용해서 어디서나 웹 서비스를 제공 받을 수 있습니다.
응용 프로그램 개발의 변화
- 예전 웹 프로그래밍 : HTML 태그를 이용한 정적인 웹 페이지 구성, 디자인에 가까운 개념
- CGL or ASP를 이용한 동적인 페이지 생성이 가능합니다.
- 분산 환경(TCP/IP , DCOM or CORBA등을 이용한 처리)으로 발전되어 짐
- XML 웹서비스 : 분산환경에서 XML or SOAP를 통화 표준을 주도
웹 서비스
- 표준 인터넷 프로토콜을 사용해서 접근이 가능한 응용 프로그램 로직입니다.
- 웹 서버 = 웹 그자체 + 컴포넌트 기반 개발의 장점이 있습니다.
- 재사용이 가능한 컴포넌트 웹이라는 환경에서 접근하고 사용 할 수 있습니다.
웹 서비스 환경을 실현하기 위한 구송 요소
1. XML : 데이터를 표현하는 표준하된 방법
2. SOAP : 일반적이고 확장 가능한 메시지 형식
3. WSDL : 일반적이고 확장가능한 서비스 정의 언어
4. DISCO : 특정 웹 사이트에 위치한 서비스들을 찾는 방법
5. UDDI : 서비스 제공자들을 찾는 방법
웹 서비스의 흐름
SOAP (Simple Access Transfer Protocol)
웹 서비스를 위한 프로토콜
표준화된 XML 기반의 메세징 프로토콜
SOAP메시지, 데이터 인코딩을 위한 표준 및 요청/응답 처리 방법
SOAP메시지를 HTTP에 바인딩하는 필수적인 형식 제공
SOAP 프로토콜은 매우 복잡한 형태의 XML로 이루어졌습니다. 하지만 ASP.NET은 웹 서비스 개발에 SOAP 메시징에 대한 것을 자동으로 처리해줍니다.
WSDL (Web Services Description Language)
웹 서비스에서 제공되는 컴포넌트를 설명하는 XML문서입니다.
DCOM이나 CORBA처럼 독자적인 IDL을 사용하지 않고 XML을 이용해서 객체의 이름, 메서드, 데이터 타입을
개발자에게 알려줍니다.
ASP.NET을 이용하면 자동으로 자신이 만든 컴포넌트에 대한 WSDL을 생성할 수 있습니다.
DISCO
특정 웹 사이트에서 서비스하는 웹 서비스를 검색하는 알고리즘을 정의해 놓은 것입니다.
웹 서비스의 설명이 들어있는 WSDL의 위치를 찾기 위함입니다.
UDDI (Universal Description, Discovery and Integration)
다양한 웹 서비스들을 찾기 위한 디렉토리 역할을 수행합니다.
웹 사이트들 찾기 위한 검색 엔진에 비유됩니다. 즉 전세계의 수많은 웹 사이트들이 제공하는 웹 서비스들을 디렉토리 형태로 관리해줍니다.
ASP.NET에서 바라본 웹 서비스
ASP.NET은 XML 웹 서비스를 보다 쉽게 개발할 수 있도록 하부 구조를 제공합니다. 따라서 단지 제공하고자 하는 서비스에 대한 구현에만 몰두 할 수 있습니다.
개발 단계
- .asmx 확장자를 가진 파일생성
- 생성한 파일에 지시어를 사용해서 XML 웹 서비스를 선언
- 생성한 파일에 개발하려는 XML 웹 서비스가 서비스하는 메서드들을 정리
ASP.NET에서 바라본 웹 서비스의 동작 과정
- 클라이언트가 수행되는 시점에서 웹 프록시 객체를 생성하고, 클라이언트는 이 웹 프록시 객체가 가지고 있는 메서드 호출합니다.
- 웹 프록시는 클라이언트에 투명하게 메서드 호출을 HTTP와 XML을 이용해 마샬링하고 인터넷으로 보냅니다.
- ASP.NET은 XML 형식의 HTTP 요청을 받고, XML 안의 메서드 이름과 인자를 알아내서 해당 .asmx 파일에 명시된 객체를 생성 그리고 객체내의 해당 메서드를 호출합니다.
- 웹 서비스 객체는 ASP.NET에 결과를 리턴합니다
- ASP.NET은 웹 서비스 객체로부터 리턴 받은 값을 인터넷 상에 있는 클라이언트에게 보내기 위해서, 리턴 값을 XML 형식으로 바꾸고 HTTP를 통해서 보냅니다.
- 웹 프록시는 HTTP를 통해서 XML 형식으로 결과값을 받고, 클라이언트가 이해할 수 있는 요청한 메서드의 리턴값으로 변경, 클라이언트는 마치 로컬에 있는 객체의 메서드를 호출해서 리턴값을 얻은 것과 동일하게 리턴값을 처리합니다.
최근댓글