SW/클라우드 서비스 아키텍처

웹 서비스 : 개념, 표준, 구성 요소, 상호작용 : 정의, 개요

얇은생각 2020. 5. 17. 07:30
반응형

웹 서비스 : 개념, 표준, 구성 요소, 상호작용 : 정의, 개요

 

웹 서비스란 무엇인가?

기능들을 API(Application Programming Interface)로 제공을 해서 프로그램에 직접 활용할 수 있는 것들을 웹 서비스라고 일반적으로 부릅니다. 그래서 웹 서비스는 전체적인 SOA의 구성 레이어에서 서비스 컴포넌트와 서비스 클라이언트 간의 Interaction이 웹 표준적인 인터페이스를 통해서 이루어집니다.

웹 서비스라는 것은 어떠한 표준적인 수단입니다. 즉, 서비스 간의 Interaction을 표준적인 수단을 통해서 하게 됩니다. 그런 것들을 통해서 애플리케이션을 개발할 수 있는 환경이 됩니다.

 

 

웹 서비스 디렉토리

이렇게 다양한 웹 서비스들이 웹에 존재합니다. 대표적인 웹 서비스 디렉토리, 웹 서비스를 찾을 수 있는 디렉토리 중에 하나가 programmableweb.com이라는 곳이 있습니다.

이곳에 가시면 원하는 웹 서비스를 키워드를 입력해 찾아서 활용할 수가 있습니다. 여기 구글 맵, 트위터 이런 것들이 웹 서비스 형태로 제공되는 것을 알 수 있습니다.

 

 

웹 서비스와 웹 애플리케이션

먼저 웹 애플리케이션은 애플리케이션의 기능들을 제공하는 쪽에서 미리 잘 정의된 애플리케이션을 만들어서 웹을 통해 사용자가 사용할 수 있는 형태가 되겠습니다. 웹을 통하면 사용자들이 그런 애플리케이션, Google Docs 같은 애플리케이션이 됩니다. 언제 어디서나 어떤 기계를 통해서든지 사용할 수 있는 그런 장점이 있습니다.

그렇지만 이런 웹 애플리케이션들은 그것을 프로그래밍에 활용할 수가 없는 단점이 있습니다. 반면에 웹 서비스는 미리 애플리케이션을 만들어서 그것을 웹을 통해 사용자한테 제공하는 것이 아닙니다. 그 애플리케이션을 만드는 근간이 되는 기본적인 Capability를 하나하나 서비스화를 시켜서 웹을 통해 접근 가능하게 하는 것들을 웹서비스라 합니다.

즉, 사용자들은 그러한 서비스들을 조합해서 자신들이 원하는 애플리케이션들을 다양하게 만들 수 있습니다. 그러한 애플리케이션들을 다양한 형태, 다양한 기기를 통해서 활용할 수 있습니다. 그런데 이런 웹 서비스들은 사용자들이 다양하게 활용하기 위해서 어떤 표준적인 기술을 사용해서 커뮤니케이션하고 데이터를 전달하게 하는 특징이 있습니다.

 

 

웹 서비스의 세가지 표준 기술

이러한 웹 서비스를 표준적인 기술을 통해서 구현돼서 제공이 됩니다.  세 가지 중요한 표준이 있습니다.

첫 번째 표준은 WSDL이라고 부르는 표준입니다. 이것은 웹 서비스를 명세하기 위한 표준이 됩니다. 즉, Web Services Description Language라고 합니다. 이 WSDL은 하나의 언어로서 이걸 통해서 서비스의 기능이나 입력/출력, 이런 데이터에 대해서 상세한 명세를 만들 수 있습니다.

두 번째 표준 기술은 SOAP이라고 부르는 것입니다. Simple Object Access Protocol인데, 서비스 간의 메시지 교환을 이룰 수가 있습니다.즉, 어떻게 메시지를 구성하고 그걸 어떻게 전달할지를 정하는 것이 SOAP 표준이라고 보시면 됩니다.

세 번째는 UDDI(Universal Description Discovery and Integration)이라고 합니다. 이것은 Industry에서 만든 De Facto 표준이 됩니다. 이걸 통하면 원하는 서비스를 publish하고 또 검색할 수 있는 그런 디렉토리 서비스를 제공할 수가 있습니다.

 

 

웹 서비스 아키텍처의 기본 구성 요소와 상호 작용

먼저 서비스 Provider, 서비스 Consumer Entity가 존재합니다. 그런데 웹 서비스 아키텍처에는 또 하나 새롭게 추가된 요소가 있는데, 그것은 바로 디랙토리 서비스입니다.

먼저 서비스 공급자, Provider는 먼저 앞서 설명 드렸던 SOAP이라는 표준을 통해서 어떠한 서비스를 제공할 수 있는지를 명세합니다. 그것을 디랙토리 서비스에 Publish를 하게 됩니다. 그리고 이러한 디랙토리 서비스는 UDDI라는 표준 기술로 구현할 수 있게 됩니다.

이렇게 서비스 공급자가 서비스를 Publish를 하면 서비스를 Consume해야 되는, 소비해야 되는 Consumer는 원하는 서비스를 이 디랙토리 서비스를 통해 검색하게 됩니다. 보통 검색을 할 때는 어떠한 Query, 질의를 보내서 결과를 얻게 됩니다. 그 과정을 똑같이 수행할 수가 있습니다.

그것을 역시 SOAP이라는 메시지 형태로 Query를 만들어서 디랙토리 서비스에 보냅니다. 그럼 디랙토리 서비스는 그 Query에 부합하는 서비스를 찾아서 목록을 만듭니다. 그것을 다시 서비스 Consumer에게 하나의 SOAP 메시지로 전달을 합니다. 그럼 이 서비스 Consumer는 여러 후보 서비스 중에서 ‘어떠한 서비스를 사용해야 되겠다.’ 하는 결정을 내립니다.

다음에 그 이후에는 직접 그 서비스를 제공하는 제공자에게 Contact를 하게 됩니다. 즉, 어떤 요청 메시지를 보내게 되는데 역시 앞서 설명 드렸던 SOAP 표준을 통해서 그 메시지를 만들어 서비스 Provider에게 전달하게 됩니다. 그러면 서비스 Provider는 요청한 서비스의 Capability를 수행합니다. 그 결과를 역시 또 SOAP 메시지로 묶어서 다시 서비스 Consumer에게 전달하는 이러한 과정을 통해서 서비스들이 서로 Interaction을 하게 됩니다.

 

 

SOA의 기본 특징

웹 서비스 아키텍처의 기본 구성 요소와 서로 간의 상호작용에 대해서 설명을 드렸습니다. 그러면 이러한 웹 서비스의 요소들이 상호작용하는 SOA의 기본 특징, Attribute에 대해서 좀 더 살펴봅니다.

먼저 첫 번째 Attribute는 SOA를 구성하는 서비스들이 어떠한 특정 비즈니스와 잘 접목되어 있습니다. Align돼 있다는 특징이 있습니다.

두 번째는 서비스들은 명세를 가지고 있기 때문에 쉽게 찾아서 활용할 수 있다는 특징이 있습니다. 그리고 세 번째는 SOA를 구성하는 서비스들은 서로 협력합니다. 그 특정한 비즈니스에서 추구하는 목표, Goal을 달성할 수 있다는 특징이 있습니다.

그다음에는 이러한 서비스들은 서로 Composition이 돼서, 서로 융합돼서 어떠한 애플리케이션들을 수행할 수 있습니다. 다음으로는 이러한 Composition이 된 서비스들은 기본적인 표준적인 프로토콜을 통해서 사용자들한테 제공될 수 있습니다.

그리고 마지막으로 이러한 Compose된 서비스들은 필요에 따라 Re-configure가 될 수 있습니다. 즉, 다시 재조합이 되는 형태로 변할 수 있다는 특징이 있습니다.

반응형