웹 서비스 란 무엇입니까? Archi강의, 유형, 예시
⚡ 스마트 요약
웹 서비스는 클라이언트와 서버 애플리케이션이 월드 와이드 웹을 통해 통신할 수 있는 표준화된 매체를 제공합니다. 이 자료에서는 웹 서비스의 작동 방식, SOAP 및 RESTful 유형, WSDL 및 UDDI 구성 요소, 아키텍처 역할, 그리고 주요 특징에 대해 설명합니다.
웹 서비스란?
웹 서비스 WWW(World Wide Web)에서 클라이언트와 서버 애플리케이션 간의 통신을 전파하기 위한 표준화된 매체입니다. 웹 서비스는 특정 작업 세트를 수행하도록 설계된 소프트웨어 모듈입니다.
- 클라우드 컴퓨팅의 웹 서비스는 네트워크를 통해 검색할 수 있으며 그에 따라 호출할 수도 있습니다.
- 호출되면 웹 서비스는 해당 웹 서비스를 호출하는 클라이언트에 기능을 제공할 수 있습니다.
웹 서비스는 어떻게 작동할까요?
위의 다이어그램은 웹 서비스가 실제로 어떻게 작동하는지에 대한 매우 간단한 보기를 보여줍니다. 클라이언트는 실제 웹 서비스를 호스팅하는 서버에 대한 요청을 통해 일련의 웹 서비스 호출을 호출합니다.
이러한 요청은 원격 프로시저 호출(RPC)이라는 것을 통해 이루어집니다. 원격 프로시저 호출(RPC)은 해당 웹 서비스에서 호스팅되는 메서드를 호출하는 것입니다.
예로서, Amazon amazon.com을 통해 온라인으로 판매되는 제품에 대한 가격을 제공하는 웹 서비스를 제공합니다. 프런트 엔드 또는 프레젠테이션 계층은 .Net 또는 Java하지만 두 프로그래밍 언어 모두 웹 서비스와 통신할 수 있는 기능을 갖추고 있습니다.
웹 서비스 디자인의 주요 구성 요소는 클라이언트와 서버 간에 전송되는 데이터, 즉 XML입니다. XML(확장 가능한 마크업 언어) HTML의 대응 언어이자, 많은 프로그래밍 언어에서 이해할 수 있는, 배우기 쉬운 중간 단계 언어입니다.
따라서 애플리케이션들이 서로 통신할 때, 실제로는 XML을 사용하여 통신합니다. 이는 다양한 프로그래밍 언어로 개발된 애플리케이션들이 서로 통신할 수 있는 공통 플랫폼을 제공합니다.
웹 서비스는 애플리케이션 간에 XML 데이터를 전송하기 위해 SOAP(Simple Object Access Protocol)라는 것을 사용합니다. 데이터는 일반 HTTP를 통해 전송됩니다. 웹 서비스에서 애플리케이션으로 전송되는 데이터를 SOAP 메시지라고 합니다. SOAP 메시지는 XML 문서일 뿐입니다. 문서는 XML로 작성되므로 웹 서비스를 호출하는 클라이언트 애플리케이션은 어떤 프로그래밍 언어로도 작성할 수 있습니다.
왜 웹 서비스가 필요한가요?
현대 비즈니스 애플리케이션은 다양한 프로그래밍 플랫폼을 사용하여 웹 기반 애플리케이션을 개발합니다. 일부 애플리케이션은 특정 언어로 개발될 수 있습니다. Java일부는 .Net을 사용하고, 또 다른 일부는 Angular JS, Node.js 등을 사용합니다.
대부분의 경우, 이러한 이기종 애플리케이션들은 서로 간의 통신을 필요로 합니다. 하지만 각기 다른 개발 언어로 구축되었기 때문에 애플리케이션 간의 정확한 통신을 보장하는 것은 매우 어렵습니다.
여기에 웹 서비스가 등장합니다. 웹 서비스는 다양한 기반으로 구축된 여러 애플리케이션을 허용하는 공통 플랫폼을 제공합니다. 프로그래밍 언어 서로 의사소통할 수 있는 능력을 갖출 것.
웹 서비스의 종류
웹 서비스는 크게 두 가지 유형으로 나뉩니다.
- SOAP 웹 서비스.
- RESTful 웹 서비스.
웹 서비스가 완벽하게 작동하려면 몇 가지 필수 구성 요소가 갖춰져 있어야 합니다. 이러한 구성 요소는 웹 서비스를 프로그래밍하는 데 사용된 개발 언어와 관계없이 반드시 존재해야 합니다. 이제 이러한 구성 요소를 좀 더 자세히 살펴보겠습니다.
SOAP(단순 개체 액세스 프로토콜)
SOAP는 전송 프로토콜에 독립적인 메시징 프로토콜로 알려져 있습니다. SOAP는 XML 데이터를 SOAP 메시지 형태로 전송하는 것을 기반으로 합니다. 각 메시지에는 XML 문서라는 것이 포함되어 있습니다. XML 문서의 구조만 특정 패턴을 따르고, 내용은 패턴에 얽매이지 않습니다. 웹 서비스와 SOAP의 가장 큰 장점은 모든 데이터가 표준 웹 프로토콜인 HTTP를 통해 전송된다는 점입니다.
SOAP 메시지는 다음과 같은 구성 요소로 이루어져 있습니다.
- 각 SOAP 문서에는 다음과 같은 루트 요소가 있어야 합니다. 요소. 루트 요소는 XML 문서의 첫 번째 요소입니다.
- "봉투"는 차례로 두 부분으로 나뉩니다. 첫 번째는 헤더이고 다음은 본문입니다.
- 헤더에는 라우팅 데이터가 포함되어 있는데, 이는 기본적으로 XML 문서가 어떤 클라이언트로 전송되어야 하는지를 알려주는 정보입니다.
- 본문에는 실제 메시지가 포함됩니다.
아래 다이어그램은 SOAP를 통한 통신의 간단한 예를 보여줍니다.
우리는 이 문서에서 SOAP에 대해 자세히 논의할 것입니다. 지도 시간.
WSDL(웹 서비스 Descript이온 언어)
웹 서비스를 찾을 수 없으면 사용할 수 없습니다. 웹 서비스를 호출하는 클라이언트는 웹 서비스가 실제로 어디에 있는지 알고 있어야 합니다.
둘째로, 클라이언트 애플리케이션은 웹 서비스가 실제로 무엇을 하는지 알아야 올바른 웹 서비스를 호출할 수 있습니다. 이는 웹 서비스 선언문(WSDL)을 통해 이루어집니다. Descript이온 언어. WSDL 파일은 기본적으로 클라이언트 애플리케이션에 웹 서비스의 기능을 알려주는 XML 기반 파일입니다. 클라이언트 애플리케이션은 WSDL 문서를 사용하여 웹 서비스의 위치와 활용 방법을 이해할 수 있습니다.
웹 서비스 예
WSDL 파일의 웹 서비스 예제가 아래에 나와 있습니다.
<definitions> <message name="TutorialRequest"> <part name="TutorialID" type="xsd:string"/> </message> <message name="TutorialResponse"> <part name="TutorialName" type="xsd:string"/> </message> <portType name="Tutorial_PortType"> <operation name="Tutorial"> <input message="tns:TutorialRequest"/> <output message="tns:TutorialResponse"/> </operation> </portType> <binding name="Tutorial_Binding" type="tns:Tutorial_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Tutorial"> <soap:operation soapAction="Tutorial"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </output> </operation> </binding> </definitions>
위의 웹 서비스의 WSDL 선언 예에 대해 주목해야 할 중요한 측면은 다음과 같습니다.
- WSDL 정의의 메시지 매개변수는 웹 서비스에서 수행하는 각 작업에 대한 다양한 데이터 요소를 정의하는 데 사용됩니다. 따라서 위의 웹 서비스 예시에서 웹 서비스와 클라이언트 애플리케이션 간에 교환될 수 있는 메시지는 "TutorialRequest"와 "TutorialResponse" 두 가지입니다. TutorialRequest에는 문자열 형식의 "TutorialID"라는 요소가 포함되어 있습니다. 마찬가지로 TutorialResponse 작업에는 문자열 형식의 "TutorialName"이라는 요소가 포함되어 있습니다.
- – 이것은 실제로 웹 서비스(이 경우 '튜토리얼'이라고 함)가 수행할 수 있는 작업을 설명합니다. 이 작업은 입력 메시지와 출력 메시지, 두 가지 메시지를 받을 수 있습니다.
- 이 요소에는 사용되는 프로토콜이 포함됩니다. 따라서 이 경우에는 HTTP(http://schemas.xmlsoap.org/soap/http)를 사용하도록 정의합니다. 또한 네임스페이스 및 메시지 인코딩 여부와 같은 작업 본문에 대한 기타 세부 정보도 지정합니다.
이 글에서는 “WSDL”에 대해 자세히 논의하겠습니다. 지도 시간.
보편적 인 Descript이온, 검색 및 통합(UDDI)
UDDI는 특정 서비스 공급자가 제공하는 웹 서비스를 설명, 게시 및 검색하기 위한 표준입니다. 이는 웹 서비스에 대한 정보를 호스팅하는 데 도움이 되는 사양을 제공합니다.
이제 우리는 이전 주제에서 WSDL과 그것이 웹 서비스가 실제로 하는 일에 대한 정보를 어떻게 포함하는지에 대해 논의했습니다. 하지만 클라이언트 애플리케이션은 웹 서비스가 제공하는 다양한 작업을 이해하기 위해 WSDL 파일을 어떻게 찾을 수 있을까요? 그래서 UDDI가 이에 대한 답이며 WSDL 파일을 호스팅할 수 있는 저장소를 제공합니다. 그래서 클라이언트 애플리케이션은 모든 WSDL 파일을 포함하는 데이터베이스 역할을 하는 UDDI에 대한 완전한 액세스 권한을 갖게 됩니다.
전화번호부에 특정인의 이름, 주소, 전화번호가 있는 것처럼, UDDI 레지스트리에는 웹 서비스에 필요한 관련 정보가 저장됩니다.클라이언트 애플리케이션이 자신을 찾을 수 있는 위치를 알 수 있도록 하기 위함입니다.
웹 서비스 장점
웹 서비스가 처음 등장한 이유는 여러 애플리케이션이 서로 통신할 수 있는 플랫폼을 제공하기 위해서라는 점은 이미 잘 알려져 있습니다. 하지만 웹 서비스를 사용하는 것이 왜 중요한지, 그리고 웹 서비스의 장점들을 살펴보겠습니다.
- 네트워크에 비즈니스 기능 노출 웹 서비스는 클라이언트 애플리케이션 또는 최종 사용자에게 특정 기능을 제공하는 관리 코드 단위입니다. 이러한 기능은 HTTP 프로토콜을 통해 호출될 수 있으며, 이는 인터넷을 통해서도 호출될 수 있음을 의미합니다. 오늘날 모든 애플리케이션이 인터넷상에 존재하기 때문에 웹 서비스의 유용성이 더욱 커지고 있습니다. 즉, 웹 서비스는 인터넷상의 어디에든 위치하여 필요한 기능을 제공할 수 있습니다.
- 애플리케이션 간 상호 운용성 웹 서비스는 다양한 애플리케이션이 서로 통신하고 데이터 및 서비스를 공유할 수 있도록 해줍니다. 모든 유형의 애플리케이션이 서로 통신할 수 있으므로, 특정 애플리케이션만 이해할 수 있는 특수 코드를 작성하는 대신 모든 애플리케이션이 이해할 수 있는 범용 코드를 작성할 수 있습니다.
- 모두가 이해하는 표준화된 프로토콜 웹 서비스는 통신을 위해 표준화된 산업 프로토콜을 사용합니다. 네 가지 계층(서비스 전송, XML 메시징, 서비스) 모두 마찬가지입니다. Description 및 서비스 검색 계층은 웹 서비스 프로토콜 스택에서 잘 정의된 프로토콜을 사용합니다.
- 통신 비용 절감 – 웹 서비스는 SOAP over HTTP 프로토콜을 사용하므로 웹 서비스 구현을 위해 기존의 저렴한 인터넷을 사용할 수 있습니다.
웹 서비스 Archi강의
모든 프레임워크는 전체 프레임워크가 의도한 대로 작동하도록 보장하는 일종의 아키텍처를 필요로 합니다. 마찬가지로 웹 서비스에서도, 웹 서비스 Archi강의 아래와 같이 세 가지 뚜렷한 역할로 구성됩니다.
- Provider 서비스 제공업체는 웹 서비스를 구축하고, 해당 서비스를 사용하려는 클라이언트 애플리케이션이 이용할 수 있도록 제공합니다.
- 요청자 – 요청자는 웹 서비스에 접속해야 하는 클라이언트 애플리케이션일 뿐입니다. 클라이언트 애플리케이션은 .Net일 수 있습니다. Java또는 웹 서비스를 통해 어떤 기능을 찾는 다른 언어 기반 애플리케이션.
- 브로커 브로커는 UDDI에 대한 접근을 제공하는 애플리케이션일 뿐입니다. 앞서 설명했듯이 UDDI를 통해 클라이언트 애플리케이션은 웹 서비스를 찾을 수 있습니다.
아래 다이어그램은 서비스 제공자, 서비스 요청자 및 서비스 레지스트리가 서로 상호 작용하는 방식을 보여줍니다.
- 게시이다. 서비스 제공자는 브로커(서비스 레지스트리)의 게시 인터페이스를 사용하여 웹 서비스의 존재를 브로커에 알림으로써 클라이언트가 서비스에 접근할 수 있도록 합니다.
- Find 요청자는 브로커에 문의하여 게시된 웹 서비스를 찾습니다.
- 바인더 – 요청자는 브로커(서비스 레지스트리)로부터 웹 서비스에 대한 정보를 얻어 웹 서비스를 바인딩하거나 호출할 수 있습니다.
웹 서비스 특징
웹 서비스에는 다음과 같은 특별한 행동 특성이 있습니다.
- XML 기반입니다. 웹 서비스는 표현 계층과 데이터 전송 계층에서 데이터를 표현하기 위해 XML을 사용합니다. XML은 모든 시스템에서 이해되는 공통 언어이므로, 네트워크, 운영 체제 또는 플랫폼에 대한 종속성을 제거할 수 있습니다.
- 느슨한 결합 – 느슨하게 결합된 것은 클라이언트와 웹 서비스가 서로 바인딩되지 않는다는 것을 의미하는데, 즉 웹 서비스가 시간이 지남에 따라 변경되더라도 클라이언트가 웹 서비스를 호출하는 방식은 변경되지 않아야 한다는 것을 의미합니다. 느슨하게 결합된 아키텍처를 채택하면 소프트웨어 시스템을 더 관리하기 쉽게 만들고 서로 다른 시스템 간의 통합을 더 간단하게 할 수 있습니다.
- Synchronous 또는 비동기 기능 - Synchronicity는 클라이언트를 서비스 실행에 바인딩하는 것을 말합니다. 동기 작업에서 클라이언트는 실제로 웹 서비스가 작업을 완료할 때까지 기다립니다. 이에 대한 한 가지 예는 아마도 데이터베이스 읽기 및 쓰기 작업이 수행되는 시나리오일 것입니다. 한 데이터베이스에서 데이터를 읽고 나중에 다른 데이터베이스에 쓰는 경우 작업은 순차적으로 수행해야 합니다. 비동기 작업을 통해 클라이언트는 서비스를 호출한 다음 다른 기능을 병렬로 실행할 수 있습니다. 이는 특정 작업이 수행될 때 다른 서비스가 중지되지 않도록 하는 일반적이고 아마도 가장 선호되는 기술 중 하나입니다.
- RPC(원격 프로시저 호출) 지원 기능 – 웹 서비스를 통해 클라이언트는 XML 기반 프로토콜을 사용하여 원격 개체에 대한 프로시저, 함수 및 메서드를 호출할 수 있습니다. 원격 프로시저는 웹 서비스가 지원해야 하는 입력 및 출력 매개변수를 노출합니다.
- 문서 교환 지원 – XML의 주요 이점 중 하나는 데이터뿐만 아니라 복잡한 문서도 표현하는 일반적인 방식입니다. 이러한 문서는 현재 주소를 표현하는 것처럼 간단할 수도 있고, 전체 책을 표현하는 것처럼 복잡할 수도 있습니다.




