ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 웹서비스란? (XML WebService)
    .NetFramWork/WCF 2022. 4. 20. 18:23

    [ 웹 서비스 개론 ]

     

    - 인터넷 환경에서 분산 응용 프로그램을 개발하는 가장 좋은 대안

        특정 회사의 독자적인 방법으로 제시된 개념이 아니라, 개방형 표준을 따르는 프로토콜과 XML을 가지고 분산 응용        프로그램 환경을 제공하고 있기 때문임

     

    - 개발자가 개발한 다양한 응용 프로그램 로직들을 단순히 웹 서버에 올리는 것만으로 쉽게 웹 서비스를 개발할 수 있다.

         웹 서비스를 제공받는 클라이언트들은 개방형 표준 프로토콜인 HTTP, SOAP,  HTML, XML을 사용해서

         어디서나 웹 서비스를 제공받을 수 있다.

     

     

     

    웹서버는 우리가 직접 만들지 x

    모든 os에서는 웹서버가 만들어져 제공

     

    EX)

    MS : IIS

    Oracle : Tomcat

     

    설치해서 웹서버 구축

     

    웹서버 안에 웹 애플리케이션을 만들고 그안에는 파일들( 함수들이 있다)을 올린다.

     

    클라이언트는 서버와 직접 대화 하는게 아닌

    proxy 와 stub 이 서로 통신

     

    .netframwork가 제공 

     

     

    결론

    웹서비스를 직접 하드코딩 해서 구현 하기 위해선 공부할게 너무 많다

    우린 학습하지않고  닷넷프레임워크에서 제공


     

    [ 웹 서비스 ]

     

    - 표준 인터넷 프로토콜을 사용해서 접근이 가능한 응용 프로그램 로직임

     

    - 웹 서비스 환경을 실현하기 위한 구성 요소

       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

            웹 서비스에서 제공되는 컴포넌트를 설명하는 XML 문서

            DCOM이나 CORBA처럼 독작적인 IDL을 사용하지 않고,

            XML을 이용해서 객체의 이름, 메서드, 데이터 타입등을 개발자에게 알려줌

     

            ASP.NET을 이용하면 자동으로 자신이 만든 컴포넌트에 대한 Web Services Description Language를 생성

            할 수 있음

     

     *DISCO

           특정 웹 사이트에서 서비스하는 웹 서비스를 검색하는 알고리즘을 정의해 놓은 것

           웹 서비스의 설명이 들어있는 WSDL의 위치를 찾기 위함임

     

    *UDDI( Universal Description, Discovery, Integration)

           다양한 웹 서비스들을 찾기 위한 디렉토리 역할

           웹 사이트를 찾기 위한 검색 엔진에 비유됨

           , 전 세계의 수많은 웹 사이트들이 제공하는 웹 서비스들을 디렉터리 형태로 관리해줌

     


    [ 개발자의 입장에서 바라본 웹 서비스 ]

     

    - 분산 프로그래밍을 개발하는 개발자의 관점에서 웹 서비스는 원격지에 있는 객체를 호출해서 그 객체가 가지

    고 있는 기능 이용

       웹 서비스 또한 목적은 동일  하지만 방법의 차이가 존재

         - 훨씬 개방적이고 구현이 용이

         - 통신 프로토콜 : 객체의 요청, 메서드 호출, 리턴값 반환등을 SOAP(HTTP 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 형식으로 결과 값을 받고, 클라이언트가 이해할 수 있는 요청한 메서드의

       리턴값으로 변경

        클라이언트는 마치 로컬에 있는 객체의 메서드를 호출해서 리턴값을 얻은 것과 동일하게 리턴값을 처리

     


    웹 서비스 구현

    1. Web Server( MS : IIS) 설치

    2. Web Server에 가상 디렉토리 구성 (가상디렉토리는 구현된 서비스 객체를 저장할 폴더)

         hosting (서비스를 외부에 제공)

    3. 가상디렉토리에 개발한 서비스파일을 등록 호스팅

    <%@ WebService Language="C#" Class="ShowHelloService" %>
       using System;
       using System.Web.Services;
       // WebService 클래스에서 파생시켜 사용자 클래스 정의
       public class ShowHelloService : WebService
       {
      [WebMethod]   // 웹 메서드 속성을 가진다는 것을 명시
      public string ShowHello()
      {
           return "Hello WebService!!";
      }
       }

     

    결과확인

    '.NetFramWork > WCF' 카테고리의 다른 글

    WCF 구현  (0) 2022.07.06
    WCF 맛보기  (0) 2022.07.06
    WCF란 무엇인가?  (0) 2022.04.20

    댓글

Designed by Tistory.