웹 서비스

Web service

웹 서비스(WS)는 다음 중 하나이다.

  • 전자 기기가 다른 전자 기기에 제공하는 서비스, 월드 와이드 웹을 통해 서로 통신하는 서비스, 또는
  • 컴퓨터 장치에서 실행 중인 서버, 네트워크를 통해 특정 포트에서 요청을 수신하는 서버, 웹 문서(HTML, JSON, XML, 이미지)

웹 서비스에서는 HTTP와 같은 웹 기술이 XML과 JSON과 같은 기계 판독이 가능한 파일 형식을 전송하는데 사용된다.

실제로 웹 서비스는 일반적으로 다른 웹 서버나 최종 사용자에게 사용자 인터페이스를 제공하는 모바일 앱에 의해 활용되는 데이터베이스 서버에 객체 지향의 웹 기반 인터페이스를 제공한다.포맷된 HTML 페이지에 데이터를 제공하는 많은 조직들은 또한 그들의 서버에 있는 데이터를 XML이나 JSON으로 제공할 것이며, 종종 신디케이션의 허용을 위한 웹 서비스를 통해서도 제공할 것이다.최종 사용자에게 제공되는 또 다른 애플리케이션은 웹 서버가 서로 다른 컴퓨터에서 여러 웹 서비스를 소비하고 콘텐츠를 하나의 사용자 인터페이스로 컴파일하는 매시업일 수 있다.

웹 서비스(일반)

비동기 JavaScript 및 XML

비동기 자바스크립트와 XML(AjAX)은 웹 서비스의 지배적인 기술이다.HTTP 서버, JavaScript 클라이언트 및 Plean Old XML(SOAP 및 W3C Web Services와는 구별됨)의 조합에서 개발되어 현재는 XML뿐만 아니라 또는 XML 대신 JSON과 함께 자주 사용된다.

쉬다

REST(Represational State Transfer)는 인터넷 규모에서 기능할 수 있는 얌전한 웹 서비스를 위한 아키텍처다.

2004년 문서에서 W3C는 REST를 웹 서비스의 주요 구분 기능으로 설정한다.

우리는 두 가지 주요 웹 서비스 클래스를 식별할 수 있다.

  • REST 인증 웹 서비스(서비스의 주요 목적은 균일한 상태 비저장 작업 세트를 사용하여 웹 리소스의 XML 표현을 조작하는 것이다.
  • 서비스가 임의의 작업 집합을 노출할 수 있는 임의 웹 서비스.
    W3C, Web Services Architecture[1]

마크업 언어를 사용하는 웹 서비스

마크업 언어를 사용하는 많은 웹 서비스가 있다.

웹 API

웹 API는 REST(Represational State Transfer) 기반 통신으로 강조점이 옮겨가고 있는 웹 서비스의 개발이다.[2]Restful API는 그들의 인터페이스를 지원하기 위해 XML 기반 웹 서비스 프로토콜(SOAP 및 WSDL)을 필요로 하지 않는다.

W3C 웹 서비스

W3C 웹 서비스와 관련하여 W3C는 웹 서비스를 다음과 같이 정의하였다.

웹 서비스는 네트워크를 통한 상호운용 가능한 기계와 기계 간 상호작용을 지원하도록 설계된 소프트웨어 시스템이다.기계 가공 가능한 형식(특히 WSDL)으로 기술된 인터페이스를 가지고 있다.다른 시스템들은 SOAP-messages를 사용하여 그것의 설명에 의해 규정된 방식으로 웹 서비스와 상호 작용하며, 일반적으로 다른 웹 관련 표준과 함께 XML 직렬화와 함께 HTTP를 사용하여 전달된다.

W3C, Web Services Glossary[3]

W3C Web Services는 HTTP 프로토콜을 통해 SOAP를 사용할 수 있으며, EDI/B2B와 같은 독점 솔루션을 통한 것보다 인터넷 상에서 비용이 적게 드는(더 효율적인) 상호작용을 허용할 수 있다.HTTP를 통한 SOAP 외에도, 웹 서비스는 FTP와 같은 다른 신뢰할 수 있는 전송 메커니즘에서도 구현될 수 있다.2002년 문서에서 Web Services Architecture Working Group은 "웹 서비스"의 표준화된 구현을 요구하는 웹 서비스 아키텍처를 정의했다.

설명

웹 서비스 아키텍처: 서비스 공급자는 WSDL 파일을 UDDI로 전송한다.서비스 요청자는 UDDI에 연락하여 필요한 데이터의 제공자가 누구인지 파악한 다음 SOAP 프로토콜을 사용하여 서비스 제공업체에 연락한다.서비스 제공자는 서비스 요청을 검증하고 구조화된 데이터를 SOAP 프로토콜을 사용하여 XML 파일로 전송한다.이 XML 파일은 XSD 파일을 사용하여 서비스 요청자에 의해 다시 검증될 것이다.

"웹 서비스"라는 용어는 인터넷 프로토콜 백본에 XML, SOAP, WSDL 및 UDDI 개방형 표준을 사용하여 웹 기반 애플리케이션을 통합하는 표준화된 방법을 설명한다.XML은 데이터를 포함하고 그 주위에 메타데이터를 제공하는 데 사용되는 데이터 형식이며, SOAP는 데이터를 전송하는 데 사용되고, WSDL은 사용 가능한 서비스를 설명하는 데 사용되고, UDDI는 어떤 서비스를 사용할 수 있는지 나열한다.

웹 서비스는 네트워크를 통한 두 전자 기기 사이의 통신 방법이다.유틸리티 컴퓨팅의 개념에서와 같이 서비스를 상시 가동하면서 웹을 통한 네트워크 주소에서 제공되는 소프트웨어 기능이다.

많은 조직들이 관리를 위해 여러 소프트웨어 시스템을 사용한다.[citation needed]서로 다른 소프트웨어 시스템이 서로 데이터를 교환해야 하는 경우가 많으며, 웹 서비스는 두 소프트웨어 시스템이 인터넷을 통해 이 데이터를 교환할 수 있도록 하는 통신 방식이다.데이터를 요청하는 소프트웨어 시스템을 서비스 요청자라고 하는 반면, 요청을 처리하고 데이터를 제공하는 소프트웨어 시스템을 서비스 제공업체라고 한다.

다른 소프트웨어는 다른 프로그래밍 언어를 사용할 수 있으며, 따라서 특정 프로그래밍 언어에 의존하지 않는 데이터 교환 방법이 필요하다.그러나 대부분의 소프트웨어 유형은 XML 태그를 해석할 수 있다.따라서 웹 서비스는 데이터 교환을 위해 XML 파일을 사용할 수 있다.

다음과 같은 서로 다른 시스템 통신 규칙을 정의할 필요가 있다.

  • 한 시스템이 다른 시스템에서 데이터를 요청할 수 있는 방법.
  • 데이터 요청에 필요한 특정 매개 변수.
  • 생산되는 데이터의 구조는 무엇인가?(일반적으로 데이터는 XML 파일로 교환되며, XML 파일의 구조는 .xsd 파일에 대해 검증된다.)
  • 통신에 대한 특정 규칙을 준수하지 않을 경우 문제 해결을 쉽게 하기 위해 표시할 오류 메시지.

통신에 대한 이러한 모든 규칙은 WSDL(Web Services Description Language)이라는 파일에 정의되어 있으며, 이 파일에는 다음과 같은 기능이 있다..wsdl(AWS(Automatic Web Services) 제안은 엄격한 규칙에 의존하지 않는 보다 유연한 웹 서비스 개발을 추구한다.)[a]

UDDI(Universal Description, Discovery, Integration)라는 디렉토리는 어떤 종류의 데이터에 대해 어떤 소프트웨어 시스템에 접속해야 하는지를 정의한다.그래서 한 소프트웨어 시스템이 하나의 특정 보고서/데이터를 필요로 할 때, UDDI로 가서 그 데이터를 받기 위해 어떤 다른 시스템과 접촉할 수 있는지 알아낼 것이다.소프트웨어 시스템이 어떤 다른 시스템과 접촉해야 하는지 알게 되면 SOAP(Simple Object Access Protocol)라는 특수 프로토콜을 사용하여 해당 시스템에 접촉하게 된다.서비스 제공자 시스템은 먼저 WSDL 파일을 참고하여 데이터 요청을 검증한 후, 요청을 처리하여 SOAP 프로토콜에 따라 데이터를 전송한다.

자동화된 설계 방법

서비스 지향 아키텍처의 웹 서비스.

자동화된 도구는 웹 서비스를 만드는 데 도움이 될 수 있다.WSDL을 사용하는 서비스의 경우, 기존 클래스에 대해 WSDL을 자동으로 생성(상향 모델)하거나 기존 WSDL(상향 모델)이 주어진 클래스 스켈레톤을 생성하는 것이 가능하다.

  • 상향식 모델을 사용하는 개발자는 먼저(일부 프로그래밍 언어로) 구현 클래스를 작성한 다음 WSDL 생성 도구를 사용하여 이러한 클래스의 메서드를 웹 서비스로 노출시킨다.이것은 발전하는 것이 더 간단하지만 원래의 계층이 빈번한 변화를 받는다면 유지하기가 더 어려울 수 있다.[5]
  • 하향식 모델을 사용하는 개발자는 WSDL 문서를 먼저 작성한 다음 코드 생성 도구를 사용하여 필요에 따라 클래스 스켈레톤을 작성한다.이 모델은 일반적으로 더 어렵다고 여겨지지만 더 깨끗한 디자인을 만들 수 있고 일반적으로 변화에 더 저항적이다.송신자와 수신자 사이의 메시지 형식이 변하지 않는 한, 송신자와 수신자 자체의 변화는 웹 서비스에 영향을 미치지 않는다.WSDL(또는 송신자와 수신자 사이의 계약)이 출발점이기 때문에 이 기법을 먼저 계약이라고 부르기도 한다.[6]
  • 서브셋 WSDL([7]Subset WSDL)을 사용하는 개발자(즉, 원래 WSDL에서 서브셋 조작이 있는 WSDL)는 웹 서비스 테스트 및 하향식 개발을 수행할 수 있다.

비판

RESTFLEX가 아닌 웹 서비스에 대한 비판자들은 종종 그들이 너무 복잡하고[8] 일반적인 오픈 소스 구현보다는 대형 소프트웨어 공급업체나 통합업체를 기반으로 한다고 불평한다.

웹서비스가 XML을 메시지 포맷으로 사용하고 SOAP/HTTP를 포장과 전송에 활용하기 때문에 성능에 대한 우려도 있다.[9]

웹 서비스의 회귀 테스트

웹 서비스의 기능 및 비기능 테스트는 WSDL 파싱의 도움을 받아 수행된다.소프트웨어 업그레이드에 대한 변경사항을 식별하여 회귀 테스트를 수행한다.웹 서비스 회귀 시험의 필요성은 WSDL의 변경, 코드의 변경, 운영의 선택적 재시험 등 세 가지 방법으로 분류할 수 있다.우리는 위의 세 가지 중간 형태의 서브셋 WSDL,[7] 즉 각각 차이 WSDL(DWSDL), 단위 WSDL(UWSDL), 축소 WSDL(RWSDL)의 세 가지 니즈를 포착할 수 있다.이 세 개의 서브셋 WSDL은 결합되어 웹 서비스의 회귀 테스트에 추가로 사용되는 복합 WSDL(CWSDL)을 형성한다.이는 기존 테스트 제품군에서 축소된 테스트 제품군을 구축하기 위해 관련 테스트 사례를 선택하여 AWSCM([10]Automaticated Web Service Change Management)에 도움이 된다.[11]

SOAP UI, Oracle Application Testing Suite(OATS),[12][13] Unified Functional Testing, Selenium 등과 같은 몇 가지 테스트 자동화 도구를 사용하여 웹 서비스 테스트도 자동화할 수 있다.

웹 서비스 변경 관리

웹 서비스에 대한 변경사항의 캡처 및 시각화와 관련된 작업.변경의 시각화 및 연산은 중간 아티팩트(Subset WSDL)의 형태로 할 수 있다.[7]변경 영향 계산에 대한 통찰력은 테스트, 하향식 개발 및 회귀 테스트 감소에 유용하다.AWSCM은[10] WSDL 파일에서 서브셋 작업을 식별하여 서브셋 WSDL을 구성할 수 있는 툴이다.

참고 항목

메모들

  1. ^ 비교:Oya 2008, "현재의 웹 서비스에서 […] 이해관계자 시스템은 메시지를 주고받기 위한 업무 프로토콜과 시스템 운영에 관한 것을 포함한 특정 비즈니스 서비스에 대해 미리 정의된 규칙을 따라야 한다.[…] 사전 합의된 엄격한 규칙 없이 자유롭게 구축되고 자율적으로 운영되는 시스템이 비즈니스 메시지를 교환할 수 있는 보다 유연한 메커니즘이 필요하다.이를 AWS(Automatic Web Services)라고 부르며, 시스템 간 서로 다른 비즈니스 프로세스 모델을 동적으로 조정하는 알고리즘과 함께 동적 모델 조화(DMH)라는 프레임워크를 제안했다[…]."[4]

참조

  1. ^ "Web Services Architecture § Relationship to the World Wide Web and REST Architectures". W3C. Retrieved 11 November 2017.
  2. ^ Benslimane, D.; Dustdar, S.; Sheth, A. (2008). "Services Mashups: The New Generation of Web Applications". IEEE Internet Computing. 10 (5): 13–15. doi:10.1109/MIC.2008.110. S2CID 8124905.
  3. ^ "Web Services Glossary § Web service". W3C. 11 February 2004. Retrieved 24 January 2017.
  4. ^ Oya, Makoto (2008-09-02). "Autonomous Web Services Based on Dynamic Model Harmonization". In Oya, Makoto; Uda, Ryuya; Yasunobu, Chizuko (eds.). Towards Sustainable Society on Ubiquitous Networks: The 8th IFIP Conference on E-Business, E-Services, and E-Society (I3E 2008), September 24 – 26, 2008, Tokyo, Japan. IFIP Advances in Information and Communication Technology. Vol. 286. Springer Science & Business Media (published 2008). p. 139. ISBN 9780387856902. Retrieved 2015-08-19.
  5. ^ "Creating bottom-up Web services". Eclipse. Retrieved 11 November 2017.
  6. ^ "Creating top-down Web services". Eclipse. Retrieved 11 November 2017.
  7. ^ a b c Chaturvedi, Animesh (2014). Subset WSDL to Access Subset Service for Analysis. 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. p. 688. doi:10.1109/CloudCom.2014.149. ISBN 978-1-4799-4093-6.
  8. ^ Bray, Tim (2004-10-28). "WS-Pagecount". TBray.org. Retrieved 2011-04-22.
  9. ^ Gray, N. A. B. (2005). "Performance of Java Middleware – Java RMI, JAX-RPC, and CORBA". University of Wollongong: 31–39. The results presented in this paper show that the nature of response data has a greater impact on relative performance than has been allowed for in most previous studies.
  10. ^ a b Chaturvedi, Animesh (2014). Automated Web Service Change Management AWSCM - A Tool. 2014 IEEE 6th International Conference on Cloud Computing Technology and Science. p. 715. doi:10.1109/CloudCom.2014.144. ISBN 978-1-4799-4093-6.
  11. ^ Chaturvedi, Animesh; Gupta, Atul (2013). A tool-supported approach to perform efficient regression testing of Web services. 2013 IEEE 7th International Symposium on the Maintenance and Evolution of Service-Oriented and Cloud-Based Systems. p. 50. doi:10.1109/MESOCA.2013.6632734. ISBN 978-1-4673-4889-8.
  12. ^ Oracle Application Testing Suite
  13. ^ Oracle Application Testing Suite를 사용한 웹 서비스 테스트

외부 링크