* SOAP

 

XML 데이터의 전송 규약으로 SOAP(Simple Object Access Protocol)를 채택했다.

SOAP를 사용하면 복잡한 데이터 구조, 이를테면 모든 관계가 포함된 데이터의 테이블인 데이터셋을 외부에 제공할 수 있다.

SOAP은 비교적 단순하면 이해하기 쉽다. XML 웹 서비스는 ASP.NET 처럼 HTTP 상단에서 동작하도록 설계되었다. 그러므로 데이터셋은 동일한 인터넷의 유선(HTTP)으로 전송할 수 있으며 80번 통신 포트가 허용된 방화벽을 무사히 통과할 수 있다.

간단히 말해서 방화벽에 구애받지 않고 통신하고, 플랫폼 독립적인 웹 서비스(Web Service)에서 기본적인 메시지를 전달하는 기본이 되는 프로토콜이다.

 

 

 

 

 

* 로직 구현

 

    - 물리적인 파일이 있어야 함

    [1] 메서드 내에서 직접 구현

    [2] 따로 클래스화 시켜서 호출

    [3] DLL 파일로 만들어서 호출

        GAC DLL 파일 보관 후 호출

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

    - 원격에서 호출

    [4] XML WebService로 만들어서 호출

     .NET Remoting 만들어서 호출

     COM_

     MSMQ

 

 

 

 

 

* XML Web Service

 

    데이터(예를 들면 우편번호)를 각각의 컴퓨터에 넣어두지 않고 한 곳에 넣어두고 호출해서 사용.

    로직 자체를 원격에 두고 사용은 여러군데에서 사용하자 XML 웹 서비스는 전세계 공통 표준 기술.

    닷넷으로만든 것을 웹서비스로 해 두고 다른 진영(예를 들면 자바)에서 가져다 쓸 수 있다.

    예를 들면 날씨, 우편번호, 환율 정보를 한곳에서 가져다 쓴다.

    각각의 클라이언트에는 DB가 없어도 중앙관리를 통해서 이용 가능.

    C#을 모르는 다른 진영에서도 사용 가능.

    JQuery쓸 때도 XML WebService 사용.

    한곳에 로직과 데이터를 보관해두고 분산 시켜 사용.

 

 

 

 

 

* 단계

 

    UI ( 다른 진영에서도 사용 가능)

    XML WebService

    BIZ

    DAC

    데이터 저장소

 

 

 

 

 

* Finding an XML Web Service

 

    1. XML WebService URL 찾기

    2. 구축

    3. 위치시키기

    4. 위스트리스트 찾기

    5. 연결하기

    6. 콜하기

 

 

 

 

 

* DLL 파일 만들기

 

    웹사이트 추가 - 새 프로젝트 - 클래스 라이브러리

    클래스 라이브러리 빌드하면 dll 파일이 생성

    복사해서 붙여 넣기 하거나 참조추가 - 프로젝트 - WebXmlWebServiceDLL선택

 

 

 

 

* 웹 참조 추가

 

    웹서비스 파일 추가 MyWebService.asmx

 




    웹 서비스를 참조추가 : 웹참조 추가



   

    원격이라면 경로를 직접 타이핑




    이 솔루션의 웹서비스 클릭



    MyWebService





* 로직 구현 예제


 

protected void Button1_Click(object sender, EventArgs e)

{

    // 메서드 내에서 직접 구현

    //[1] 2개의 정수를 더해서 그 결과값을 출력

    int a = Convert.ToInt32(TextBox1.Text);

    int b = Convert.ToInt32(TextBox2.Text);

 

    //[2] Process를 직접 코드 내에서 출력

    //int r = a + b; // 코드 내 직접 구현 : 매번 만들어서 사용

    //int r = Sum(a, b); // 메서드화 : 해당 웹 폼내에서 여러번 호출 가능

    //MyMath mm = new MyMath(); // 클래스화 : 한 개 이상의 웹폼에서 메서드 호출 가능

    //int r = mm.Sum(a, b);

    //WebXmlWebServiceDLL.MyMath my = new WebXmlWebServiceDLL.MyMath(); // 컴포넌트 화 : 참조추가

    //int r = my.Sum(a, b);

    localhost.MyWebService mws = new localhost.MyWebService();

    int r = mws.Sum(3, 5); // 웹서비스화 : 원격 호출, 웹 참조 추가

 

    //[3] 결과 출력

    TextBox3.Text = r.ToString();

}

 

/// <summary>

/// 두개의 정수를 더하는 함수(메서드)

/// </summary>

private int Sum(int a, int b)

{

    return (a + b);

}

 



 


 

Posted by holland14
: