web services tutorial
이 웹 서비스 자습서에서는 중요한 용어 및 SOAP 대 REST 간의 차이점과 함께 웹 서비스의 아키텍처, 유형 및 구성 요소를 설명합니다.
이것에 완전한 API 테스트 튜토리얼 시리즈 , 우리는 API 테스트 이전 튜토리얼에서. 이 튜토리얼을 통해 WSDL 및 UDDI 및 웹 서비스를 저장하고 정의하는 방법에 익숙해 지십시오.
이 튜토리얼은 또한 클라이언트 애플리케이션이 요청을 할 때 웹 서비스가 내부적으로 어떻게 작동하는지 설명합니다. SOAP 서비스의 또 다른 매우 중요한 개념 인 WSS도 여기에 설명되어 있습니다.
학습 내용 :
웹 서비스 테스트의 중요한 용어
웹 서비스 탐색을 시작하기 전에 웹 서비스 테스트에서 사용되는 중요한 용어에 익숙해야합니다.
시작하자!!
# 1) 상호 운용성
웹 서비스는 '하나의 코드 다른 응용 프로그램'을 지원합니다. 이는 서로 다른 플랫폼의 모든 애플리케이션에 대한 하나의 일반 코드를 의미합니다.
따라서 상호 운용성은 여러 응용 프로그램이 다른 플랫폼에있는 다른 응용 프로그램과 통신 할 수 있도록하는 프로세스입니다.
# 2) 인증 및 승인
이들은 주로 SOAP 웹 서비스에서 사용됩니다. 일반적으로 인증은 무언가를 확인하는 것을 의미하고 승인은 무언가에 액세스 할 수있는 권한을 부여 / 가짐을 의미합니다.
예를 들어 – Facebook 페이지가 있으면 Facebook의 인증 된 사용자로 취급 될 수 있습니다. 반면 페이스 북에서 내 사진을 볼 수있는 권한이 있다면 권한이있는 사용자입니다.
이 두 가지를 결합하면 '리소스에 액세스 할 수있는 인증 된 모든 사용자를 해당 리소스에 대한 권한있는 사용자라고합니다.'라고 말할 수 있습니다.
웹 서비스에서도 똑같은 일이 발생합니다. 즉, 토큰을 생성하는 데 사용되는 사용자 ID와 암호가 인증 부분을 덮고 웹 서버에 요청을 보내는 데 사용될이 토큰이 권한 부분을 덮습니다.
# 3) 느슨하게 결합 된 아키텍처
웹 서비스는 느슨하게 결합 된 아키텍처를 기반으로합니다. 이는 웹 서비스의 인터페이스가 본질적으로 동적 (주어진 타임 라인 동안 변경됨)임을 의미합니다. 그러나 클라이언트 논리는 서비스와 상호 작용하는 동안 반드시 변경 될 필요는 없습니다.
이를 통해보다 효율적인 방식으로 여러 소프트웨어를 통합 할 수 있습니다. 긴밀하게 결합 된 아키텍처 인 경우 인터페이스가 변경 될 때마다 클라이언트 로직을 변경하여 서비스와 동기화해야합니다.
# 4) 유물
웹 서비스에서 정보 또는 데이터를 나타내는 데 사용되는 용어입니다. 이것은 전체 데이터가 아니라 URL 또는 URI, 컨텍스트 키, 문서 키, 페이로드 또는 지원 이미지를 포함 할 수있는 정보의 일부입니다.
# 5) 끝점
이것은 웹 서비스의 모든 요청에 사용되는 매우 일반적인 용어입니다. 이것은 웹 서비스의 인스턴스에 도달하는 완전한 URL입니다.
예를 들어 – https://www.facebook.com/imsaket-> URL이 facebook.com이고 특정 주소를 고유하게 식별하기위한 컨텍스트 키로 'imsaket'이 전달되는 완전한 URL 또는 엔드 포인트입니다.
C ++ 소스 코드에서 이진 트리 구현
# 6) 멱 등성
이것은 클라이언트-서버 상호 작용에서 서비스 인스턴스에 몇 번이나 도달했는지는 중요하지 않으며 서버는 항상 동일한 응답을 클라이언트에 반환합니다.
# 7) 마샬링 및 디 마샬링
알다시피 캡슐화는 코드와 데이터를 하나로 묶는 것으로 정의되는 OOPS 원칙입니다. SOAP 웹 서비스에서도 마찬가지입니다. 데이터를 페이로드 (XML)로 랩핑하거나 캡슐화하여 SOAP 메시지를 형성하고 서버로 보낼 때,이 캡슐화 프로세스를 마샬링이라고합니다.
디 마샬링은 마샬링의 역수 일뿐입니다. SOAP 메시지에서 데이터와 코드 (XML)를 decapsulating 또는 unwrapping하는 방법을 'Demarshalling'이라고합니다.
웹 서비스 란?
앞에서 설명한 것처럼 웹 서비스는 네트워크를 통해 한 시스템에서 다른 시스템으로 서비스하는 서비스입니다.
웹 서비스의 예 : 온라인 사용자가 Amazon.com 및 Amazon.in에서 판매되는 다양한 품목의 가격을 볼 수있는 AWS (Amazon Web Services)
웹 서비스의 구성 요소
다음은 웹 서비스의 다양한 구성 요소입니다.
# 1) SOAP
웹 서비스는 XML을 페이로드 또는 요청 본문으로 사용하는 SOAP (Simple Object Access Protocol)를 사용합니다. 이것은 상태 저장 프로토콜 특정 유형의 작업에 대한 독립적 인 방법이 없기 때문입니다.
모든 요청과 응답은 XML을 통해 한 번에 전달되며 GET, PUT, POST 또는 DELETE와 같은 독립적 인 메서드는 명시 적으로 제공되지 않습니다.
# 2) WSDL
이 SOAP 요청은 다음을 사용합니다. WSDL (Web Services Description Language) 이것은 웹 서비스의 매우 유용한 구성 요소입니다.
이것은 웹 서비스가 실제로 상주하는 위치와 특정 요청에 대해 선택 될 웹 서비스 유형을 정의합니다. 이것은 웹 서비스 기능을 설명하는 XML 파일을 사용합니다.
# 3) UDDI
또 다른 유용한 구성 요소는 UDDI . 이것은 Universal Description Discovery and Integration을 의미합니다. 웹 서비스를 제공하는 서비스 제공자가 있습니다. 따라서 특정 서비스 공급자의 경우이 UDDI는 해당 웹 서비스를 설명, 발견 및 게시하는 데 사용됩니다.
UDDI는 클라이언트가 WSDL의 XML 파일이있는 위치를 찾을 수 있도록합니다 (UDDI는 WSDL 용 저장소를 제공함). 이것이 웹 서비스가 정의되고 설명되는 방법입니다.
# 4) XML-RPC
Extensible Markup Language – Remote Procedure를 나타냅니다. 웹 서비스의 또 다른 매우 중요한 구성 요소는 XML (시스템간에 메시지를 보내는 역할을하는 RPC)입니다. 요청 및 응답은 XML 형식이며 HTTP POST를 통해 전송 / 수신됩니다.
XML-RPC의 가장 큰 특징은 다른 플랫폼에있는 클라이언트 응용 프로그램이 다른 서버와 통신 할 수 있다는 것입니다. 웹 서비스의 구성 요소를 형성하지 않기 때문에 기사 후반부에서 설명하는 JSON-RPC라는 것이 있습니다.
웹 서비스의 아키텍처
웹 서비스의 아키텍처는 다음 다이어그램에서 설명 할 수 있습니다.
이미 알고 있듯이 일반적인 웹 서비스 아키텍처는 작업을 수행하기위한 클라이언트, 웹 서버 및 인터넷의 세 가지 엔티티로 구성됩니다. 작업은 클라이언트-서버 아키텍처의 요청과 응답에 불과합니다.
클라이언트는 일반적으로 웹 서비스를 요청하여 서비스 소비자가되는 모든 응용 프로그램 또는 소프트웨어 시스템의 집합입니다.
웹 서버는 웹 서비스를 제공하는 모든 응용 프로그램 또는 소프트웨어 시스템의 집합입니다. 모든 웹 서비스를 수행하려면 네트워크가 필요하며 이로 인해 인터넷이라는 세 번째 엔티티가 생성됩니다.
이것은 웹 서비스의 아키텍처에 대한 개요 일뿐입니다.
웹 서비스의 작업 다이어그램은 아래 표시된 세 가지 구성 요소로 정의됩니다.
- 서비스 요청자 (Find ())
- 서비스 제공 업체 (Publish ())
- 서비스 레지스트리 또는 저장소 (Bind ())
이것은 SOAP 서비스의 아키텍처에서 설명됩니다 (다이어그램으로 자세히 설명).
비즈니스 분석가 인터뷰 질문 및 답변
웹 서비스 유형
아래에서는 두 가지 유형의 웹 서비스에 대해 자세히 설명합니다.
# 1) SOAP 서비스
SOAP Service는 Simple Object Access Protocol의 약자입니다. SOAP 서비스는 XML 언어를 사용하여 봉투를 형성하는 상태 저장 서비스입니다. SOAP 봉투는 두 부분으로 설명 할 수 있습니다. SOAP 헤더 및 본문 , 다른 하나는 실험 계획안 SOAP 메시지를 보내는 데 사용됩니다.
이 SOAP 헤더는 액세스를 허용하는 인증 및 승인으로 구성됩니다. 본문은 WSDL을 사용하여 웹 서비스를 설명하는 요청의 페이로드 섹션 아래에 있으며 프로토콜은 주로 HTTP (HyperText Transmission Protocol)입니다.
웹 서비스 보안
SOAP 서비스에는 전송 중 데이터 유출을 방지하는 SSL 계층 (Secure Socket Layer)이있어 암호화 및 암호 해독을 제공합니다.
한편, SOAP 서비스는 서비스와 응용 프로그램 간의 통신 중에 유출이 없음을 보장하는 WSS (Web Services Security)도 포함되어있어 더욱 안전합니다.
우리 모두 알고 있듯이 모든 웹 서비스 (웹 API와 달리)는 작동을 수행하기 위해 네트워크가 필요합니다. 따라서 웹 서비스는 네트워크에 연결될 때 보안을 제공해야합니다. 따라서 웹 서비스에는 메시지 전송 중 보안 요소를 다루는 세 가지 중요한 엔티티가 있습니다.
- 인증 및 승인 (이미 위에서 설명했습니다).
- 기밀성 : 이것은 SOAP 엔벨로프의 암호화 및 복호화를 제공하는 SSL에 전적으로 의존합니다.
- 네트워크 보안: 이는 서버에서받은 모든 SOAP 및 XML – RPC 응답을 추출하는 것을 의미합니다. 예를 들어 POSTMAN 또는 PARASOFT와 같은 웹 서비스 도구를 사용하면 HTTP 헤더 관리자 아래에 Content-Type의 값을 설정하는 옵션이 있음을 알 수 있습니다. 값을 Application / JSON으로 설정하여 모든 REST를 추출 할 수 있습니다 (SOAP 서비스는 HTTP 헤더 관리자 옵션을 지원하지 않기 때문에). 따라서 콘텐츠 유형 : Application / XML을 유효 탑재량 XML의 형태입니다. 이것은 또한 SOAP 및 XML-RPC를 추출합니다.
이 세 가지 요소는 외부 공격에 대처하기위한 웹 서비스 보안을 구성합니다.
SOAP 서비스의 아키텍처
모든 SOAP 서비스는 궁극적으로 SOAP 서비스의 아키텍처를 형성하는 세 개의 엔티티에 의존합니다.
- 서비스 제공 업체 : 웹 서비스의 일부이거나 제공하는 모든 소프트웨어 시스템 또는 애플리케이션.
- 서비스 요청자 : 서비스 제공자에게 웹 서비스를 요청하는 일부인 모든 소프트웨어 시스템 또는 애플리케이션.
- 서비스 레지스트리 : 서비스 공급자가 웹 서비스에 대한 모든 정보를 제공하는 레지스트리 또는 저장소입니다. (이미 UDDI에서 논의 됨)
설명
이 세 엔터티는 서로 상호 작용하여 성공적인 웹 서비스 구현을 수행합니다. 이것은 세 단계로 이루어집니다. 첫 번째 단계는 게시 () 서비스 공급자가 서비스 레지스트리 또는 리포지토리에서 웹 서비스에 대한 모든 세부 정보를 제공하는 단계입니다.
두 번째 단계는 찾기() 서비스 요청은 주로 클라이언트 응용 프로그램이 저장소 (WSDL XML 파일도 포함)에서 웹 서비스에 대한 세부 정보를 찾습니다. 마지막 단계는 제본() 여기서 클라이언트 응용 프로그램 또는 서비스 요청자는 웹 서비스의 최종 구현을 위해 서비스 공급자와 동기화합니다.
# 2) RESTful 서비스
REST는 Representational State Transfer를 의미합니다. 무국적 서비스.
암호 크래커 소프트웨어 무료 다운로드 풀 버전
웹 서버가 클라이언트 세션에 대한 정보 (클라이언트 응용 프로그램이 연결되고 실행될 때까지의 시간)를 저장하지 않기 때문에 Stateless라고합니다. 즉, 각 요청 유형은 GET과 같은 REST 내장 메서드의 도움으로 쉽게 처리되고 수행됩니다. POST, CUSTOM (PUT), DELETE, HEAD 등.
실제로 이러한 메서드는 SOAP에 없습니다.
방법 또는 동사
REST의 각 방법에는 그 중요성이 있습니다. 아래는 그들 각각에 대한 브리핑입니다.
- 가져 오기: 이 메소드는 PUT 또는 POST와 같은 메소드를 사용하여 서버로 전송되는 정보를 검색하는 데 사용됩니다. 요청 본문이 없습니다. 성공적으로 실행하면 200 개의 응답 개체가 제공됩니다.
- 게시하다: 이 메소드는 요청 본문, 지정된 URL, 문서 키, 컨텍스트 키 등을 사용하여 문서 또는 레코드를 생성하는 데 사용됩니다. GET 메소드를 사용하여 동일한 것을 검색 할 수 있습니다. 성공적인 실행은 201 응답을 제공합니다.
- 놓다: 이것은 POSTMAN 또는 PARASOFT에서 사용할 수있는 CUSTOM 옵션 아래에 있습니다. 이 방법은 이미 존재하는 모든 문서 또는 레코드를 업데이트하는 데 사용됩니다. 성공적인 실행은 201 또는 200 응답을 제공합니다.
- 지우다: 이 방법은 모든 레코드를 삭제하는 데 사용됩니다. 성공적인 실행은 204 응답을 제공합니다 (내용 없음).
노트 : HTTP 응답 코드는 개발자가 코딩하는 방식에 따라 다르며 때때로 조작 될 수 있습니다. 우리는 각 메소드 유형에서 얻는 공통 응답 코드를 나열했습니다.
REST 서비스의 아키텍처
REST 서비스의 아키텍처는 서비스 소비자 또는 요청자 및 서비스 공급자의 두 엔티티에 따라 다릅니다. 서비스 소비자는 웹 서비스를 이용하는 사람이고 서비스 공급자는 웹 서비스를 제공하는 소프트웨어 또는 시스템의 모음입니다.
일반적으로 서비스 소비자 인 클라이언트 애플리케이션은 내장 REST 메서드, URL 또는 URI, HTTP 버전 및 페이로드 (메서드에서 지원하는 경우)를 사용합니다.
SOAP 대 REST
이 두 가지 유형의 웹 서비스는 요청과 응답을 수행하는 데 사용되지만 작동 방식이 완전히 다릅니다.
이들의 차이점은 참고 용으로 나열되어 있습니다.
- SOAP 봉투는 REST에서 사용할 수 있지만 그 반대의 경우는 사용할 수 없습니다. 예 : SOAP에서 생성 된 사용자 토큰은 HTTP 헤더 관리자-> 권한 아래 REST 요청에 전달할 수 있습니다.
- SOAP 서비스는 SSL과 별도로 WSS를 제공하므로 SOAP는 일반적으로 REST 서비스보다 더 안전합니다. 이 SSL은 SOAP와 REST 모두에 있습니다.
- SOAP는 XML 데이터 형식으로 인해 SOAP에서 요청 처리에 더 많은 시간이 걸리므로 REST보다 느립니다. REST는 매우 가벼워서 더 빠르게 만드는 JSON을 사용합니다.
- SOAP에는 내장 메소드가 없지만 REST에는 GET, PUT, POST 등이 있습니다.
- SOAP는 상태 저장이지만 REST는 상태 비 저장입니다.
- SOAP의 요청 및 응답 본문은 XML 데이터 형식 만 지원합니다. REST에서 요청 및 응답 본문은 JSON, XML, 일반 텍스트 등과 같은 다양한 데이터 형식을 지원합니다.
결론
이 웹 서비스 자습서에서는 웹 서비스의 아키텍처, 구성 요소 및 유형에 대해 설명했습니다.
또한 웹 서비스와 관련된 다른 중요한 개념 및 용어와 함께 SOAP와 REST 서비스의 차이점에 대해서도 배웠습니다.
이 튜토리얼이 웹 서비스를 이해하는 데 도움이 되었기를 바랍니다 !!