웹 서비스 란 무엇입니까? Archi강의, 유형, 예시

웹 서비스란?

웹 서비스 WWW(World Wide Web)에서 클라이언트와 서버 애플리케이션 간의 통신을 전파하기 위한 표준화된 매체입니다. 웹 서비스는 특정 작업 세트를 수행하도록 설계된 소프트웨어 모듈입니다.

  • 클라우드 컴퓨팅의 웹 서비스는 네트워크를 통해 검색할 수 있으며 그에 따라 호출할 수도 있습니다.
  • 호출되면 웹 서비스는 해당 웹 서비스를 호출하는 클라이언트에 기능을 제공할 수 있습니다.

웹서비스는 어떻게 작동하나요?

웹서비스 작동 방식
웹서비스 작동 방식

위의 다이어그램은 웹 서비스가 실제로 어떻게 작동하는지에 대한 매우 간단한 보기를 보여줍니다. 클라이언트는 실제 웹 서비스를 호스팅하는 서버에 대한 요청을 통해 일련의 웹 서비스 호출을 호출합니다.

이러한 요청은 원격 프로시저 호출을 통해 이루어집니다. RPC(원격 프로시저 호출)는 관련 웹 서비스에서 호스팅하는 메서드에 대한 호출입니다.

예로서, Amazon 온라인으로 판매되는 제품의 가격을 제공하는 웹 서비스를 제공합니다. amazon.com. 프런트 엔드 또는 프리젠테이션 계층은 .Net 또는 자바 그러나 두 프로그래밍 언어 중 하나는 웹 서비스와 통신할 수 있는 기능을 갖습니다.

웹 서비스 디자인의 주요 구성 요소는 클라이언트와 서버 간에 전송되는 데이터, 즉 XML입니다. XML(확장 가능한 마크업 언어) HTML의 대응 언어이며 많은 프로그래밍 언어에서 이해되는 중간 언어를 이해하기 쉽습니다.

따라서 애플리케이션이 서로 통신할 때 실제로는 XML로 통신합니다. 이는 다양한 프로그래밍 언어로 개발된 애플리케이션이 서로 통신할 수 있는 공통 플랫폼을 제공합니다.

웹 서비스는 애플리케이션 간에 XML 데이터를 전송하기 위해 SOAP(Simple Object Access Protocol)라는 것을 사용합니다. 데이터는 일반 HTTP를 통해 전송됩니다. 웹 서비스에서 애플리케이션으로 전송되는 데이터를 SOAP 메시지라고 합니다. SOAP 메시지는 XML 문서일 뿐입니다. 문서는 XML로 작성되므로 웹 서비스를 호출하는 클라이언트 애플리케이션은 어떤 프로그래밍 언어로도 작성할 수 있습니다.

왜 웹 서비스가 필요한가요?

현대 비즈니스 애플리케이션은 다양한 프로그래밍 플랫폼을 사용하여 웹 기반 애플리케이션을 개발합니다. 일부 애플리케이션은 Java로 개발되고 다른 애플리케이션은 .Net으로 개발될 수 있으며 일부 애플리케이션은 Angular JS, Node.js 등으로 개발될 수 있습니다.

대부분의 경우 이러한 이질적인neo우리 애플리케이션은 그들 사이에서 일종의 통신이 필요합니다. 서로 다른 개발 언어를 사용하여 구축되기 때문에 애플리케이션 간의 정확한 통신을 보장하는 것이 정말 어렵습니다.

여기에 웹 서비스가 등장합니다. 웹 서비스는 다양한 기반으로 구축된 여러 애플리케이션을 허용하는 공통 플랫폼을 제공합니다. 프로그래밍 언어 서로 의사소통할 수 있는 능력을 갖출 것.

웹 서비스 유형

웹 서비스에는 크게 두 가지 유형이 있습니다.

  1. SOAP 웹 서비스.
  2. RESTful 웹 서비스.

웹 서비스가 완벽하게 작동하려면 특정 구성 요소가 있어야 합니다. 이러한 구성 요소는 웹 서비스 프로그래밍에 사용되는 개발 언어에 관계없이 존재해야 합니다.

이러한 구성 요소를 더 자세히 살펴보겠습니다.

SOAP(단순 개체 액세스 프로토콜)

SOAP는 전송 독립적 메시징 프로토콜로 알려져 있습니다. SOAP는 XML 데이터를 SOAP 메시지로 전송하는 것을 기반으로 합니다. 각 메시지에는 XML 문서라는 것이 있습니다. XML 문서의 구조만 특정 패턴을 따르지만 내용은 따르지 않습니다. 웹 서비스와 SOAP의 가장 좋은 점은 모두 표준 웹 프로토콜인 HTTP를 통해 전송된다는 것입니다.

SOAP 메시지의 구성은 다음과 같습니다.

  • 각 SOAP 문서에는 다음과 같은 루트 요소가 있어야 합니다. 요소. 루트 요소는 XML 문서의 첫 번째 요소입니다.
  • "봉투"는 차례로 두 부분으로 나뉩니다. 첫 번째는 헤더이고 다음은 본문입니다.
  • 헤더에는 기본적으로 XML 문서를 어느 클라이언트로 보내야 하는지 알려주는 정보인 라우팅 데이터가 포함되어 있습니다.
  • 본문에는 실제 메시지가 포함됩니다.

아래 다이어그램은 SOAP를 통한 통신의 간단한 예를 보여줍니다.

SOAP 프로토콜

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 선언 예에 대해 주목해야 할 중요한 측면은 다음과 같습니다.

  1. – WSDL 정의의 메시지 매개변수는 웹 서비스에서 수행되는 각 작업에 대한 다양한 데이터 요소를 정의하는 데 사용됩니다. 따라서 위의 웹 서비스 예에는 웹 서비스와 클라이언트 애플리케이션 간에 교환할 수 있는 2개의 메시지가 있습니다. 하나는 "TutorialRequest"이고 다른 하나는 "TutorialResponse" 작업입니다. TutorialRequest에는 문자열 유형인 "TutorialID"라는 요소가 포함되어 있습니다. 마찬가지로 TutorialResponse 작업에는 문자열 유형이기도 한 "TutorialName"이라는 요소가 포함되어 있습니다.
  2. – 이는 실제로 웹 서비스에서 수행할 수 있는 작업을 설명하며, 이 경우에는 Tutorial이라고 합니다. 이 작업에는 2개의 메시지가 포함될 수 있습니다. 하나는 입력 메시지이고 다른 하나는 출력 메시지입니다.
  3. – 이 요소에는 사용되는 프로토콜이 포함됩니다. 따라서 우리의 경우에는 http(http://schemas.xmlsoap.org/soap/http). 우리는 또한 다른 드를 지정합니다tails 네임스페이스 및 메시지 인코딩 여부와 같은 작업 본문의 경우.

여기서는 "WDSL"에 대해 자세히 설명하겠습니다. 지도 시간.

UDDI(Universal Description, Discovery, and Integration)

UDDI는 특정 서비스 공급자가 제공하는 웹 서비스를 설명, 게시 및 검색하기 위한 표준입니다. 이는 웹 서비스에 대한 정보를 호스팅하는 데 도움이 되는 사양을 제공합니다.

이제 우리는 WSDL에 대한 이전 주제와 웹 서비스가 실제로 수행하는 작업에 대한 정보가 WSDL에 포함되는 방법에 대해 논의했습니다. 그러나 웹 서비스가 제공하는 다양한 작업을 이해하기 위해 클라이언트 애플리케이션이 WSDL 파일을 어떻게 찾을 수 있습니까? 따라서 UDDI는 이에 대한 해답이며 WSDL 파일을 호스팅할 수 있는 저장소를 제공합니다. 따라서 클라이언트 애플리케이션은 모든 WSDL 파일을 포함하는 데이터베이스 역할을 하는 UDDI에 대한 완전한 액세스 권한을 갖게 됩니다.

전화번호부에 특정인의 이름, 주소, 전화번호가 있는 것처럼 UDDI 레지스트리에도 웹 서비스에 대한 관련 정보가 있습니다.. 클라이언트 애플리케이션이 찾을 수 있는 위치를 알 수 있도록 합니다.

웹 서비스 장점

우리는 애초에 웹 서비스가 탄생한 이유, 즉 다양한 애플리케이션이 서로 통신할 수 있는 플랫폼을 제공하기 위해 탄생한 이유를 이미 이해하고 있습니다.

하지만 웹 서비스를 사용하는 것이 왜 중요한지에 대한 웹 서비스 장점 목록을 살펴보겠습니다.

  1. 네트워크에 비즈니스 기능 노출 – 웹 서비스는 클라이언트 애플리케이션이나 최종 사용자에게 일종의 기능을 제공하는 관리 코드 단위입니다. 이 기능은 HTTP 프로토콜을 통해 호출할 수 있습니다. 즉, 인터넷을 통해서도 호출할 수 있습니다. 요즘에는 모든 응용 프로그램이 인터넷에 있으므로 웹 서비스의 목적이 더욱 유용해집니다. 이는 웹 서비스가 인터넷상의 어느 곳에나 있을 수 있고 필요에 따라 필요한 기능을 제공할 수 있음을 의미합니다.
  2. 애플리케이션 간 상호 운용성 – 웹 서비스를 통해 다양한 애플리케이션이 서로 통신하고 데이터와 서비스를 공유할 수 있습니다. 모든 유형의 애플리케이션은 서로 통신할 수 있습니다. 따라서 특정 애플리케이션에서만 이해할 수 있는 특정 코드를 작성하는 대신 이제 모든 애플리케이션에서 이해할 수 있는 일반 코드를 작성할 수 있습니다.
  3. 모두가 이해하는 표준화된 프로토콜 – 웹 서비스는 통신을 위해 표준화된 산업 프로토콜을 사용합니다. XNUMX개 계층(서비스 전송, XML 메시징, 서비스 설명 및 서비스 검색 계층)은 모두 웹 서비스 프로토콜 스택에서 잘 정의된 프로토콜을 사용합니다.
  4. 통신 비용 절감 – 웹 서비스는 SOAP over HTTP 프로토콜을 사용하므로 웹 서비스 구현을 위해 기존의 저렴한 인터넷을 사용할 수 있습니다.

웹 서비스 Archi강의

모든 프레임워크에는 일종의 archi전체 프레임워크가 웹 서비스에서도 원하는 대로 작동하는지 확인하는 강의입니다. 그만큼 웹 서비스 Archi강의 아래와 같이 세 가지 역할로 구성됩니다.

  1. Provider – 공급자는 웹 서비스를 생성하고 이를 사용하려는 클라이언트 응용 프로그램에서 사용할 수 있도록 합니다.
  2. 요청자 – 요청자는 웹 서비스에 접속해야 하는 클라이언트 애플리케이션일 뿐입니다. 클라이언트 애플리케이션은 .Net, Java 또는 웹 서비스를 통해 일종의 기능을 찾는 기타 언어 기반 애플리케이션일 수 있습니다.
  3. 브로커 – 브로커는 UDDI에 대한 액세스를 제공하는 애플리케이션일 뿐입니다. 이전 주제에서 설명한 대로 UDDI를 사용하면 클라이언트 애플리케이션이 웹 서비스를 찾을 수 있습니다.

아래 다이어그램은 서비스 제공자, 서비스 요청자 및 서비스 레지스트리가 서로 상호 작용하는 방식을 보여줍니다.

웹 서비스 Archi강의

웹 서비스 Archi강의
  1. 게시이다. – 공급자는 클라이언트가 서비스에 액세스할 수 있도록 브로커의 게시 인터페이스를 사용하여 웹 서비스의 존재를 브로커(서비스 레지스트리)에 알립니다.
  2. Find – 요청자는 게시된 웹 서비스를 찾기 위해 브로커와 상의합니다.
  3. 바인더 – 요청자는 웹 서비스에 대해 브로커(서비스 레지스트리)로부터 얻은 정보를 사용하여 웹 서비스를 바인딩하거나 호출할 수 있습니다.

웹 서비스 특성

웹 서비스에는 다음이 있습니다.wing 특별한 행동 특성:

  1. XML 기반입니다. – 웹 서비스는 XML을 사용하여 표현 및 데이터 전송 계층에서 데이터를 나타냅니다. XML을 사용하면 모든 네트워킹, 운영 체제 또는 플랫폼 종류의 종속성이 제거됩니다. XML은 모든 사람이 이해하는 공통 언어이기 때문입니다.
  2. 느슨한 결합 – 느슨하게 결합이란 클라이언트와 웹 서비스가 서로 바인딩되어 있지 않음을 의미합니다. 즉, 시간이 지남에 따라 웹 서비스가 변경되더라도 클라이언트가 웹 서비스를 호출하는 방식을 변경해서는 안 된다는 의미입니다. 느슨하게 결합된 방식을 채택 archi강의는 소프트웨어 시스템을 더욱 관리하기 쉽게 만들고 서로 다른 시스템 간의 통합을 더 간단하게 만드는 경향이 있습니다.
  3. Synchronous 또는 Async명예로운 기능 - Sync시간성은 서비스 실행에 대한 클라이언트의 바인딩을 나타냅니다. ~ 안에 sync시간이 지남에 따라 클라이언트는 실제로 웹 서비스가 작업을 완료할 때까지 기다립니다. 이에 대한 예는 아마도 데이터베이스 읽기 및 쓰기 작업이 수행되는 시나리오일 것입니다. 한 데이터베이스에서 데이터를 읽고 이어서 다른 데이터베이스에 쓰는 경우 작업은 순차적으로 수행되어야 합니다. ㅏsync시간적 작업을 통해 클라이언트는 서비스를 호출한 다음 다른 기능을 병렬로 실행할 수 있습니다. 이는 특정 작업이 수행될 때 다른 서비스가 중지되지 않도록 하기 위한 일반적이고 아마도 가장 선호되는 기술 중 하나입니다.
  4. RPC(원격 프로시저 호출) 지원 기능 – 웹 서비스를 통해 클라이언트는 XML 기반 프로토콜을 사용하여 원격 개체에 대한 프로시저, 함수 및 메서드를 호출할 수 있습니다. 원격 프로시저는 웹 서비스가 지원해야 하는 입력 및 출력 매개변수를 노출합니다.
  5. 문서 교환 지원 – XML의 주요 이점 중 하나는 데이터뿐만 아니라 정보도 표현하는 일반적인 방법입니다.plex 서류. 이러한 문서는 현재 주소를 나타내는 것처럼 간단할 수도 있고 com과 같은 것일 수도 있습니다.plex 책 전체를 대표하는 것처럼.