SOAP - Simple Object Access Protocol
<간단한 정리> l XML 기반의 메시지를 네트워크 상에서 교환하는 형태의 프로토콜로, 전송 프로토콜은 HTTP를 표준 스택으로 사용하고 있다. l XML을 근간으로 헤더와 바디를 조합하는 디자인 패턴으로 설계되어있다. l 플랫폼과 프로그래밍 언어에 독립적이고, HTTP이외의 프로토콜도 사용 가능하며, 프록시와 방화벽에 구애받지 않고 쉽게 통신이 가능하다는 장점을 가진다. l 반면에 XML태그 형태로 보내기 때문에 COBRA같은 미들웨어 기술과 비교해서 상대적으로 느리다. <참고 자료> 확장성 생성 언어(XML)와 하이퍼텍스트 전송 규약(HTTP) 등을 기반으로 하여 다른 컴퓨터에 있는 데이터나 서비스를 호출하기 위한 통신 규약. 마이크로소프트사와 유저랜드 소프트웨어(UserLand Software)사, 디벨롭멘터(Developmentor)사가 중심이 되어 개발하였다. SOAP에 의한 통신에서는 XML 문서에 봉투(envelope)로 불리는 부대 정보가 붙은 메시지를 HTTP 등의 프로토콜로 교환한다. 서비스를 이용하는 클라이언트와 서비스를 제공하는 서버 쌍방이 SOAP의 생성, 해석 엔진을 가지는 것으로 다른 환경 간에서의 객체 호출을 가능하게 하고 있다. SOAP 1.1에서는 실제로 데이터의 송수신에 사용하는 하위 프로토콜은 현재 널리 보급되어 있는 HTTP나 간이 전자 우편 전송 프로토콜(SMTP), 파일 전송 규약(FTP) 등에서 선택할 수 있게 되어 있어 기업 간에 이용하는 경우에도 방화벽 등을 안전하게 통과할 수 있다. 현재 월드 와이드 웹 컨소시엄(W3C)에 의해 표준이 행해지고 IBM, 로터스 등도 자사 제품에서의 대응을 표명하고 있다. 한편, SOAP 메시지의 생성 엔진은 ‘SOAP 프럭시’, 해석 엔진은 ‘SOAP 리스너, SOAP에 의해 외부로부터 이용 가능한 부품화된 웹 기반의 응용 프로그램은 ‘웹 서비스’라고 불린다. 인터넷상에서 각 회사가 제공하고 있는 웹 서비스를 모아 누구라도 검색, 조회할 수 있도록 하는 것이 UDDI이다. 출처 : http://enc.daum.net/dic100/contents.do?query1=15XXXX3351 전송 방식 (Transport Method) SOAP는 인터넷 어플리케이션 계층에 있는 프로토콜을 전송계층의 프로토콜로 사용할 수 있게 만든다. 혹자는 이러한 프로토콜의 의도된 목적과 역할이 맞지 않는 부정이용에 대하여 비판하지만, SOAP의 지지자들은 터널링을 위한 다양한 계층(level)에서 사용되고 있는 다른 프로토콜들과 비슷하다고 말하고 있다. SMTP와 HTTP에서 어플리케이션 계층 프로토콜로 트랜스포트 계층의 역할을 대신하는 것이 SOAP는 올바른 이용이라 할 수 있으나, HTTP는 오늘날 인터넷 인프라와 매우 잘 동작하여 더 폭넓은 지원을 가능하게 한다. 특히나, HTTP는 방화벽이 작동하는 네트워크 안에서도 문제 없이 작동한다. SOAP는 HTTPS(어플리케이션 계층에서는 HTTP와 동일하나 트랜스포트 계층 아래에서는 암호화됨)에서도 간략하게 또는 상호적으로 사용된다. 이는 WS-I방식으로 Basic Profile 1.1에서 서술된 것과 같이 웹서비스의 보안을 제공하고 있다. 이 점은, GIOP/IIOP 혹은 DCOM등과 같은 방화벽에서 쉽게 필터링 당하는 여타의 배포 프로토콜등과의 비교 우위를 점하고 있다. XML은 대다수 회사들과 오픈 소스 개발 진영 쪽의 노력에 힘입어 광범위하게 사용되는 메시지 포맷으로써 표준으로 선택되었다. 추가적으로, 광범위하게 무료로 사용한 툴들이 상당하게 포진하고 있는 점은 SOAP-기반 구현으로 옮겨가기 쉽게 하였다. XML의 문법이 다소 긴 점은 장단점을 모두 가질 수 있다고 할 수 있다. 사람이 쉽게 읽을 수 있는 반면, 불필요한 정보 때문에, 처리속도가 늦어질 수 있다. 예를 들어, CORBA , GIOP , ICE 그리고 DCOM 같은 경우에 바이너리 메시지 포맷을 사용하므로 상대적으로 훨씬 전송량이 적다. 반면에, 하드웨어적인 장치로, XML 메시지 처리를 빠르게 할 수 있다. 바이너리 XML은 스트리밍 전송에 대한 대안으로 (속도를 높이는 수단으로) 검토되고 있는 중이다. 출처 : http://ko.wikipedia.org/wiki/SOAP
REST - representational state transfer <참고 자료> 확장성 생성 언어(XML) 파일로 된 웹 페이지를 읽어 원하는 정보를 수집하는 기능. 웹 페이지를 만드는 사람은 주기적으로 내용을 개정하고 사용자는 그 페이지의 URL만 알면 웹 브라우저로 읽어 정보를 얻을 수 있다. 하이퍼텍스트 전송 규약(HTTP)과 XML을 포함한 웹 기술 및 프로토콜을 사용하는 구조적 형태로서 단순 객체 접근 프로토콜(SOAP)보다 사용이 간편하고, 사이트 내용을 기술하는 RSS(RDF Site Summary)의 정보 편집 기능과 유사하다. RSS는 자원 기술 개념(RDF)을 사용한다. 출처 : http://enc.daum.net/dic100/contents.do?query1=15XXX21008 원리 REST의 지지자들은 웹이 몇 가지 핵심 설계 원칙의 직접적인 결과로서 확장성과 성장성을 갖게 되었다고 주장한다. l 응용 프로그램의 상태와 기능들은 리소스들로 나뉜다. l 모든 리소스는 하이퍼미디어 링크를 사용하는 공통 문법을 이용하여 유일한 방식으로 주소를 지정한다. l 모든 리소스들은 클라이언트와 리소스 사이의 상태 전송을 위한 유일한 인터페이스를 공유한다. 다음과 같이 이루어져 있다. n 잘 정의된(well-defined) 명령어들의 제약 집합. n 콘텐츠 종류와, 코드 온 디멘드를 부분적으로 지원하는 제약 집합 l 프로토콜은 아래와 같다 n 클라이언트/서버 n 무상태(Stateless) n 캐시 처리 가능 n 계층화 출처 : http://ko.wikipedia.org/wiki/REST RDF [Resource Description Framework, RDF] 웹에 있는 자원에 관한 메타 정보를 표현하기 위한 언어. RW3C의 가장 기본적 시맨틱 웹 언어로서 웹 자원을 표현하는데 기본이 되는 제목, 저자, 최종 수정일, 저작권과 같은 웹 문서에 관한 메타 데이터를 XML을 기반으로 매우 간단하게 표현한다. 기본적으로 주어, 동사, 목적어에 해당하는 것을 URI를 써서 대상들을 문장으로 구성하거나 노드와 화살표를 써서 도식적으로 표현하기도 한다. 출처 : http://enc.daum.net/dic100/contents.do?query1=15XXX23287
파란실버라이트
To remember the time when I started learning Silver Light!