XML 웹 서비스
.NET프로그래밍/ASP.NET 3.5 SP1 2009. 10. 27. 00:49 |
* 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);
}
'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글
지역화 (Localization), 전역화 (Glovalization) - 다중 언어 처리 (0) | 2009.10.27 |
---|---|
지역화 (Localization) (0) | 2009.10.27 |
WebUser - 초간단 회원 관리 (인증 및 허가) 기능 구현 (0) | 2009.10.25 |
WebProfile - 인증 기능 적용 (0) | 2009.10.23 |
WebStandardControl - Panel 컨트롤 / MultiViewLogin 컨트롤 / Wizard컨트롤 (0) | 2009.10.23 |