웹 서비스 란 무엇입니까? Archi강의, 유형, 예시
웹 서비스란?
웹 서비스 WWW(World Wide Web)에서 클라이언트와 서버 애플리케이션 간의 통신을 전파하기 위한 표준화된 매체입니다. 웹 서비스는 특정 작업 세트를 수행하도록 설계된 소프트웨어 모듈입니다.
- 클라우드 컴퓨팅의 웹 서비스는 네트워크를 통해 검색할 수 있으며 그에 따라 호출할 수도 있습니다.
- 호출되면 웹 서비스는 해당 웹 서비스를 호출하는 클라이언트에 기능을 제공할 수 있습니다.
웹서비스는 어떻게 작동하나요?
위의 다이어그램은 웹 서비스가 실제로 어떻게 작동하는지에 대한 매우 간단한 보기를 보여줍니다. 클라이언트는 실제 웹 서비스를 호스팅하는 서버에 대한 요청을 통해 일련의 웹 서비스 호출을 호출합니다.
이러한 요청은 원격 프로시저 호출을 통해 이루어집니다. 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(웹 서비스 설명 언어)
웹 서비스를 찾을 수 없으면 사용할 수 없습니다.. 웹 서비스를 호출하는 클라이언트는 웹 서비스가 실제로 어디에 있는지 알아야 합니다.
둘째, 클라이언트 애플리케이션은 올바른 웹 서비스를 호출할 수 있도록 웹 서비스가 실제로 수행하는 작업을 알아야 합니다. 이는 웹 서비스 설명 언어로 알려진 WSDL의 도움으로 수행됩니다. 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 정의의 메시지 매개변수는 웹 서비스에서 수행하는 각 작업에 대한 다양한 데이터 요소를 정의하는 데 사용됩니다. 따라서 위의 웹 서비스 예에서 웹 서비스와 클라이언트 애플리케이션 간에 교환할 수 있는 메시지가 2개 있습니다. 하나는 "TutorialRequest"이고 다른 하나는 "TutorialResponse" 작업입니다. TutorialRequest에는 문자열 유형인 "TutorialID"라는 요소가 포함되어 있습니다. 마찬가지로 TutorialResponse 작업에는 역시 문자열 유형인 "TutorialName"이라는 요소가 포함되어 있습니다.
- – 이것은 실제로 웹 서비스에서 수행할 수 있는 작업을 설명하는데, 우리의 경우 Tutorial이라고 합니다. 이 작업은 2개의 메시지를 받을 수 있습니다. 하나는 입력 메시지이고 다른 하나는 출력 메시지입니다.
- – 이 요소에는 사용되는 프로토콜이 포함됩니다. 따라서 우리의 경우에는 http(http://schemas.xmlsoap.org/soap/http). 또한 네임스페이스와 메시지를 인코딩해야 하는지 여부와 같은 작업 본문에 대한 다른 세부 정보도 지정합니다.
여기서는 "WDSL"에 대해 자세히 설명하겠습니다. 지도 시간.
보편적 인 Descript이온, 검색 및 통합(UDDI)
UDDI는 특정 서비스 공급자가 제공하는 웹 서비스를 설명, 게시 및 검색하기 위한 표준입니다. 이는 웹 서비스에 대한 정보를 호스팅하는 데 도움이 되는 사양을 제공합니다.
이제 우리는 이전 주제에서 WSDL과 그것이 웹 서비스가 실제로 하는 일에 대한 정보를 어떻게 포함하는지에 대해 논의했습니다. 하지만 클라이언트 애플리케이션은 웹 서비스가 제공하는 다양한 작업을 이해하기 위해 WSDL 파일을 어떻게 찾을 수 있을까요? 그래서 UDDI가 이에 대한 답이며 WSDL 파일을 호스팅할 수 있는 저장소를 제공합니다. 그래서 클라이언트 애플리케이션은 모든 WSDL 파일을 포함하는 데이터베이스 역할을 하는 UDDI에 대한 완전한 액세스 권한을 갖게 됩니다.
전화번호부에 특정인의 이름, 주소, 전화번호가 있는 것처럼 UDDI 레지스트리에도 웹 서비스에 대한 관련 정보가 있습니다.. 클라이언트 애플리케이션이 찾을 수 있는 위치를 알 수 있도록 합니다.
웹 서비스 장점
우리는 애초에 웹 서비스가 탄생한 이유, 즉 다양한 애플리케이션이 서로 통신할 수 있는 플랫폼을 제공하기 위해 탄생한 이유를 이미 이해하고 있습니다.
하지만 웹 서비스를 사용하는 것이 왜 중요한지에 대한 웹 서비스 장점 목록을 살펴보겠습니다.
- 네트워크에 비즈니스 기능 노출 – 웹 서비스는 클라이언트 애플리케이션이나 최종 사용자에게 일종의 기능을 제공하는 관리 코드 단위입니다. 이 기능은 HTTP 프로토콜을 통해 호출할 수 있습니다. 즉, 인터넷을 통해서도 호출할 수 있습니다. 요즘에는 모든 응용 프로그램이 인터넷에 있으므로 웹 서비스의 목적이 더욱 유용해집니다. 이는 웹 서비스가 인터넷상의 어느 곳에나 있을 수 있고 필요에 따라 필요한 기능을 제공할 수 있음을 의미합니다.
- 애플리케이션 간 상호 운용성 – 웹 서비스를 통해 다양한 애플리케이션이 서로 통신하고 데이터와 서비스를 공유할 수 있습니다. 모든 유형의 애플리케이션은 서로 통신할 수 있습니다. 따라서 특정 애플리케이션에서만 이해할 수 있는 특정 코드를 작성하는 대신 이제 모든 애플리케이션에서 이해할 수 있는 일반 코드를 작성할 수 있습니다.
- 모두가 이해하는 표준화된 프로토콜 – 웹 서비스는 통신을 위해 표준화된 산업 프로토콜을 사용합니다. 4개 계층 모두(서비스 전송, XML 메시징, 서비스 Descript이온 및 서비스 검색 계층)은 웹 서비스 프로토콜 스택에서 잘 정의된 프로토콜을 사용합니다.
- 통신 비용 절감 – 웹 서비스는 SOAP over HTTP 프로토콜을 사용하므로 웹 서비스 구현을 위해 기존의 저렴한 인터넷을 사용할 수 있습니다.
웹 서비스 Archi강의
모든 프레임워크에는 전체 프레임워크가 원하는 대로 작동하도록 하기 위한 어떤 종류의 아키텍처가 필요합니다. 웹 서비스에서도 마찬가지입니다. 웹 서비스 Archi강의 아래와 같이 세 가지 역할로 구성됩니다.
- Provider – 공급자는 웹 서비스를 생성하고 이를 사용하려는 클라이언트 응용 프로그램에서 사용할 수 있도록 합니다.
- 요청자 – 요청자는 웹 서비스에 접속해야 하는 클라이언트 애플리케이션일 뿐입니다. 클라이언트 애플리케이션은 .Net일 수 있습니다. Java, 또는 웹 서비스를 통해 일종의 기능을 찾는 기타 언어 기반 애플리케이션입니다.
- 브로커 – 브로커는 UDDI에 대한 액세스를 제공하는 애플리케이션일 뿐입니다. 이전 주제에서 설명한 대로 UDDI를 사용하면 클라이언트 애플리케이션이 웹 서비스를 찾을 수 있습니다.
아래 다이어그램은 서비스 제공자, 서비스 요청자 및 서비스 레지스트리가 서로 상호 작용하는 방식을 보여줍니다.
- 게시이다. – 공급자는 클라이언트가 서비스에 액세스할 수 있도록 브로커의 게시 인터페이스를 사용하여 웹 서비스의 존재를 브로커(서비스 레지스트리)에 알립니다.
- Find – 요청자는 게시된 웹 서비스를 찾기 위해 브로커와 상의합니다.
- 바인더 – 요청자는 웹 서비스에 대해 브로커(서비스 레지스트리)로부터 얻은 정보를 사용하여 웹 서비스를 바인딩하거나 호출할 수 있습니다.
웹 서비스 특성
웹 서비스에는 다음과 같은 특별한 행동 특성이 있습니다.
- XML 기반입니다. – 웹 서비스는 XML을 사용하여 표현 및 데이터 전송 계층에서 데이터를 표현합니다. XML을 사용하면 XML이 모든 사람이 이해하는 공통 언어이기 때문에 네트워킹, 운영 체제 또는 플랫폼 종류의 종속성이 제거됩니다.
- 느슨한 결합 – 느슨하게 결합된 것은 클라이언트와 웹 서비스가 서로 바인딩되지 않는다는 것을 의미하는데, 즉 웹 서비스가 시간이 지남에 따라 변경되더라도 클라이언트가 웹 서비스를 호출하는 방식은 변경되지 않아야 한다는 것을 의미합니다. 느슨하게 결합된 아키텍처를 채택하면 소프트웨어 시스템을 더 관리하기 쉽게 만들고 서로 다른 시스템 간의 통합을 더 간단하게 할 수 있습니다.
- Synchronous 또는 비동기 기능 - Synchronicity는 클라이언트를 서비스 실행에 바인딩하는 것을 말합니다. 동기 작업에서 클라이언트는 실제로 웹 서비스가 작업을 완료할 때까지 기다립니다. 이에 대한 한 가지 예는 아마도 데이터베이스 읽기 및 쓰기 작업이 수행되는 시나리오일 것입니다. 한 데이터베이스에서 데이터를 읽고 나중에 다른 데이터베이스에 쓰는 경우 작업은 순차적으로 수행해야 합니다. 비동기 작업을 통해 클라이언트는 서비스를 호출한 다음 다른 기능을 병렬로 실행할 수 있습니다. 이는 특정 작업이 수행될 때 다른 서비스가 중지되지 않도록 하는 일반적이고 아마도 가장 선호되는 기술 중 하나입니다.
- RPC(원격 프로시저 호출) 지원 기능 – 웹 서비스를 통해 클라이언트는 XML 기반 프로토콜을 사용하여 원격 개체에 대한 프로시저, 함수 및 메서드를 호출할 수 있습니다. 원격 프로시저는 웹 서비스가 지원해야 하는 입력 및 출력 매개변수를 노출합니다.
- 문서 교환 지원 – XML의 주요 이점 중 하나는 데이터뿐만 아니라 복잡한 문서도 표현하는 일반적인 방식입니다. 이러한 문서는 현재 주소를 표현하는 것처럼 간단할 수도 있고, 전체 책을 표현하는 것처럼 복잡할 수도 있습니다.