모르는 단어

SOAP( Simple Object Access Protocol )

예쁜꽃이피었으면 2014. 7. 31. 11:25

 
http://j2enty.tistory.com/96


 오늘은 그래서 SOAP에 대해서 개념적인 부분만 설명하려고 합니다~ 물론 인터넷을 뒤지면 모두 나오는 내용들이겠죠..ㅋ  물론 영어로된 원문도 해석해봤지만 그냥 혼자 이해할 만큼의 해석만 가능해서 그에 대한 설명은 따로 하지 않습니다 ㅋ 대신 아래 링크로 SOAP에 대해 자.세.히, 살펴볼수 있는 기회를 제공합니다~



 그럼 SOAP란 어떤건지 살펴보고 어떤 특징이 있는지 어떻게 처리되는지 알아보도록 하겠습니다. 그리고 마지막에는 SOAP 라이브러리를 소개하며 마치도록 하겠습니다~!

 1. SOAP란 무엇인가!?
  일단 SOAP는 Simple Object Access Protocol의 약자입니다. 음 말도안되는 직역을 하면 객체를 접근하는 간단한 프로토콜??간단하게 객체에 접근하는 프로토콜?? 뭐 이런 뜻이겠죠... 
  다시 본론으로 돌아와서 SOAP는 XML을 이용해서 분산처리 환경에서 정보교환을 쉽게 할 수 있도록 도와주는 놈이라고 합니다. XML의 장점은 바로 플랫폼에 종속적이지 않기때문에 이기종간의 통신이 용이하죠!! 그래서 쓰나봐요...-_-
  즉 SOAP는 Client가 물리적으로 인접하지 않은 서버에게 객체나 함수를 호출하여 그 값을 반환받는 RPC중에 하나입니다! 무엇보다 아주 표준화가 잘되어있는 HTTP를 사용하기 때문에 거의 모든 기종에서 호환성을 보장합니다!!! 

 2. SOAP의 특징
  이러한 SOAP의 특징을 살펴보면!! HTTP를 이용하기 때문에 다른 RPC에 비해 Proxy와 방화벽에 제약을 받지 않고 쉽게 통신이 가능하다는 점을 들 수있습니다. 물론 HTTP 뿐만 아니라 다른 전송 프로토콜도 이용할 수 있습니다! 또한 위에서 언급했듯이플랫폼에 독립적이며, 프로그래밍 언어에도 독립적입니다. 

 3. SOAP의 전달과정
  SOAP는 몇단계의 전달과정을 가지고 있습니다. 먼저 Client에서 특정한 작업을 요청하게 되면 중계자라는 놈이 받게됩니다. 그리고 자신이 처리할 내용이 있는지 확인 후 다음 중계자에게 전달합니다. 이렇게 중계자를 통해 메시지의 일부를 변경하여 다음 중계자에게 포워딩 하다가 액터를 만나게 되면 해당 작업을 처리하게 됩니다. 이 액터를 Default Actor라고 부르며 SOAP mesage의 최종 수진자라고 말할 수 있습니다.

Client -> 중계자 -> 중계자 -> Default Actor


 이 외에도 SOAP의 메시지 구조와, 혹은 SOAP를 통해 파일을 첨부하는 방법 등에 대해서도 알아야하지만, 오늘 포스팅의 목적은 SOAP가 뭔지만 알기위한 것이기 때문에 자세한 내용을 원한다면 위에 w3c링크를 따라가서 확인하시길 ^^

 4. SOAP Library (C, C++)
   마지막으로 언급할 내용은 공개되어있는 SOAP library에 대한 내용입니다. 일단 Java같은 경우에는 SAAJ(SOAP with Attachment API for JAVA)를 통해 사용이 가능합니다. 
  C나 C++의 경우에는 아래의 몇가지 라이브러리를 통해서 사용이 가능합니다!
  -. gSoap
  : c++로 작성된 라이브러리고 SOAP 1.1/1.2 명세를 충실히 따르는 안정적인 라이브러리로 클라이언트, 서버를 모두 지원합   
   니다. 또한 linux, window, Mac, Solaris 등 다양한 플랫폼을 지원하며 의존라이브러리가 따로 없기때문에 자체적으로 작동
  됩니다. 무엇보다 WSDL 문서를 통해 서버/클라이언트 모두 자동으로 스텁코드를 생성해준다는 점이 강력한 점입니다. 
  -. cSoap
  : 순수 C언어로 구현한 라이브러리로 클라이언트/서버 모두를 지원하며 SOAP 1.1 명세를 지원합니다. 의존라이브러리는 
   libxml, libssl, libpthread가 있으며 ANSI C로 구현했기 떄문에 window, Unix, Linux, Mac, OpenVMS, AIX 등의 아키텍처
   에서 모두 지원합니다. 
  -. libSoap 
  : GNOME환경을 위한 HTTP 클라이언트/서버 라이브러리입니다. 의존 라이브러리로는 libglib, libgntls, libpthread가 있으며    비동기뿐만 아니라 동기 API도 가지고 있어 Thread 프로그래밍도 사용 가능합니다. 

 
 마무리 지으면서 저는 현재 gsoap을 이용해서 작업을 하고 있습니다. 음성인식 솔루션을 제공하는 측에서 WSDL을 제공해서 별다른 수고 없이 스텁코드를 생성해서 바로바로 기능을 추가할 수 있다는 점이 매우 매력적이더군요. 처음에 이게 뭐야 하는 기간이 꽤 길었지만 이제 조금이나마 어떻게 사용하는지 감이 오고있는 단계입니다.

 때문에 다음에는 gsoap에 대해서 어떻게 사용하면 편리한지 알아보겠습니다. 물론. 매우 낮은 단계의 난이도로요 ㅋ 새로운 무엇인가를 배울 때 요즘에는 인터넷검색을 많이 사용하는데 너무 어려운 말로 포장하고 너무 어려운 것들을 다루면 입문하는 과정이 길어지기 마련이죠. 어려운 내용들은 개념이 잡힌 후에 보면 충분히 이해할 수 있지만 개념조차 없을때 어려운 내용을 다룬다면 포기하고 싶어집니다. 
 
 물론 제 실력이 낮기때문에 이것밖에 설명할 수 없는 것도있지만 분명 저와 같은 사람이 있을 것이라는 생각으로 ㅋㅋ 

 그럼 끝! 


반응형

'모르는 단어' 카테고리의 다른 글

벡터 (STL)  (0) 2014.08.06
API, SDK 란? ( 총정리 )  (0) 2014.08.01
QT  (0) 2014.07.31
gSOAP  (0) 2014.07.31
WSDL(Web Service Description Language)  (0) 2014.07.31