728x90
반응형

웹 서비스 개론

  • 인터넷 환경에서 분산 응용 프로글매을 개발하는 가장 좋은 대안 : 특정 회사의 독자적인 방법으로 제시된 개념이 아니라, 개방형 표준을 따르는 프로토콜과 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 웹 서비스를 보다 쉽게 개발할 수 있도록 하부 구조를 제공합니다. 따라서 단지 제공하고자 하는 서비스에 대한 구현에만 몰두 할 수 있습니다.

 

개발 단계

  1. .asmx 확장자를 가진 파일생성
  2. 생성한 파일에 지시어를 사용해서 XML 웹 서비스를 선언
  3. 생성한 파일에 개발하려는 XML 웹 서비스가 서비스하는 메서드들을 정리

ASP.NET에서 바라본 웹 서비스의 동작 과정

  1. 클라이언트가 수행되는 시점에서 웹 프록시 객체를 생성하고, 클라이언트는 이 웹 프록시 객체가 가지고 있는 메서드 호출합니다.
  2. 웹 프록시는 클라이언트에 투명하게 메서드 호출을 HTTP와 XML을 이용해 마샬링하고 인터넷으로 보냅니다.
  3. ASP.NET은 XML 형식의 HTTP 요청을 받고, XML 안의 메서드 이름과 인자를 알아내서 해당 .asmx 파일에 명시된 객체를 생성 그리고 객체내의 해당 메서드를 호출합니다.
  4. 웹 서비스 객체는 ASP.NET에 결과를 리턴합니다
  5. ASP.NET은 웹 서비스 객체로부터 리턴 받은 값을 인터넷 상에 있는 클라이언트에게 보내기 위해서, 리턴 값을 XML 형식으로 바꾸고 HTTP를 통해서 보냅니다.
  6. 웹 프록시는 HTTP를 통해서 XML 형식으로 결과값을 받고, 클라이언트가 이해할 수 있는 요청한 메서드의 리턴값으로 변경, 클라이언트는 마치 로컬에 있는 객체의 메서드를 호출해서 리턴값을 얻은 것과 동일하게 리턴값을 처리합니다. 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기