Web Service
웹 서비스는 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 모든 애플리케이션들이 직접 소통하고 실행될 수 있도록 환경을 구현해 주는 소프트웨어 컴포넌트입니다. 웹 서비스라는 명칭을 가지고 있지만 컴퓨터와 컴퓨터 간의 상호작용을 위한 시스템입니다.
HTTP, XML, SOAP와 같은 표준화된 웹 프로토콜과 데이터 형식을 사용하여 운영체제 등 특정 플랫폼에 독립적이며 모든 컴퓨터 간의 원활한 데이터의 흐름을 보장해줍니다.
웹 서비스는 서비스 지향적 분산 컴퓨팅 기술의 일종으로 SOAP, WSDL, UDDI 등의 주요 표준 기술로 이루어지며 웹 서비스의 모든 메시징에는 주로 XML이 사용됩니다.
SOAP (Simple Object Access Protocol)
HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜입니다. 웹 서비스에서 기본적인 메시지를 전달하는 기반이 되며, 헤더와 바디를 조합하는 디자인 패턴으로 설계되어 있습니다. 헤더는 선택사항으로 반복이나 보안 및 트랜잭션을 정보로 하는 메타 정보를 가지고 있으며 바디 부분은 주요 정보를 가지고 있습니다.
WSDL (Web Service Description Language)
웹 서비스 기술언어 또는 기술된 정의 파일의 총칭으로 XML로 기술됩니다. 웹 서비스의 구체적인 내용이 기술되어 있어 서비스 제공 장소, 서비스 메시지 포맷, 프로토콜 등이 기술됩니다.
UDDI (Universal Description, Discovery, and Integration)
웹 서비스 관련 정보의 공개와 탐색을 위한 표준입니다. 온라인 저장소에 서비스 제공자가 제공하는 서비스 목록을 저장하게 되고 서비스 소비자들은 그 저장소에 접근함으로써 원하는 서비스들의 목록을 찾을 수 있게 됩니다.
ASMX
Active Server Methods로, ASP.NET Web Service 파일입니다. SOAP를 사용하여 HTTP를 통해 메시지를 보내는 웹 서비스를 빌드하는 기능을 제공해줍니다.
SOAP는 HTTP, SMTP, TCP 및 UDP를 비롯하여 많은 전송 프로토콜에서 작동할 수 있지만 ASMX에서는 HTTP를 통해서만 작동할 수 있습니다. HTTP 기반 위에서 작동하기 때문에, 기존 원격 기술들에 비해서 프록시와 방화벽에 구애받지 않고 쉽게 통신이 가능하지만 XML 기반의 메시지이기 때문에 사람이 쉽게 읽을 수 있는 반면, 불필요한 정보때문에 처리속도가 늦어질 수도 있습니다. SOAP는 컴포넌트를 활성화하는 방법이나 호출하는 방법에 대해 전혀 관여하지 않습니다. 상세한 사항은 HTTP Request를 수신하는 수신자에게 위임하고 있기 떄문에 객체지향기술이나 컴포넌트 기술을 사용하지 않는 애플리케이션이라도 SOAP를 통해 객체서비스를 제공하거나 제공받을 수가 있습니다.
그러므로 ASMX 의 소비자는 서비스를 구현하는 데 사용되는 플랫폼과 프로그래밍 언어에 대해 알 필요가 없고 SOAP 메시지를 주고 받는 방법만 이해하면 됩니다.
ASMX는 ASPX와 ASCX와 달리 시각적인 표현을 위한 코드가 없으며, 서버에서 실행되며 데이터베이스 연결, 데이터 검색 및 반환과 같은 작업으로 다양하게 이용됩니다. 마이크로소프트의 독점 파일 형식이며, 웹 서비스 생성을 위한 정의 구문을 가지고 있습니다. 비쥬얼 스튜디오에서 asmx 프로젝트를 만들 수 있으며, 웹 사이트 및 웹 애플리케이션 프로젝트에서도 ASMX 파일을 추가할 수 있습니다. 사용 방법은 서버 상의 메소드들에게 [WebMethod] Attribute들을 붙여 클라이언트가 HTTP를 통해 서버에 있는 메소드들을 호출합니다.
ASMX는 이 후에 유연하고 풍부한 기능을 갖춘 WCF(Windows Communication Foundation)로 이어집니다. WCF에서 ASMX가 제공하는 것과 동일한 기능인 HTTP를 통한 SOAP 메시지를 지원합니다.
웹 서비스가 발전해가면서 REST 서비스가 인기를 끌게 되어 WCF에서도 REST를 지원하게 되었으며,
이후에는 .NET Framework 4.0부터 REST 웹 서비스인 ASP.NET Web API 가 나왔습니다.
참고사이트
Microsoft : https://learn.microsoft.com/ko-kr/xamarin/xamarin-forms/data-cloud/web-services/
위키백과
https://ko.wikipedia.org/wiki/%EC%9B%B9_%EC%84%9C%EB%B9%84%EC%8A%A4
https://ko.wikipedia.org/wiki/SOAP
https://ko.wikipedia.org/wiki/WSDL
http://www.easylaw.go.kr/APIINFO/index.html
https://ojava.tistory.com/63
https://www.dsun.kr/24
https://ko.eyewated.com/asmx-%ED%8C%8C%EC%9D%BC%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C/
.
'개발 > ASP.NET' 카테고리의 다른 글
[Web Form] CORS 허용과 자격 증명이 포함된 Web API를 HttpClient를 사용하여 HTTP 요청하기 (0) | 2023.02.08 |
---|---|
[Web Form] HTML 소스에서 바로 사용할 수 있는 ASP.NET 코드 표시 방법 (0) | 2023.01.29 |
[Web Forms] 리뷰/만족도/평가 별점 표시하기 (0) | 2023.01.26 |
[Web Forms] ajax를 이용하여 파일 업로드 폼 동적으로 생성 후 ASMX를 이용하여 서버에서 파일 저장하기 (0) | 2023.01.10 |
ASP.NET이란? (0) | 2023.01.10 |