논문명 : Web Services Are Not Distributed Objects
- Werner Vogels Cornell University -
1. 논문내용
많은 사람들은 웹 서비스가 분산객체기술의 한 부분에 의존한다는 점에서 분산객체의 진화라고 생각한다. 하지만 이런 오해는 전반적으로 퍼져있는 웹 서비스에 대한 오해의 한 부분에 불과하다.
1.1 Fundamental Errors
많은 개발자와, 아키텍트, manager, 학회에서는 웹 서비스를 Corba, DCOM, RMI를 포함하는 분산객체의 일종으로 보고 있다. 그러나 이런 것은 과거에 실패한 분산객체 어플리케이션에서 해당되는 것이다. 이런 오해는 둘 다 공통 architectural view를 사용하기 때문인데 실제적으로 서로 다른 어플리케이션 타입이다.
웹 서비스는 XML문서, 문서 exchange 사용한 document-oriented computing 기반이다, 반면 분산객체의 경우에, 객체 instance를 요구하거나, 함수호출을 요구하거나, 결과값을 받거나, 객체인스턴트를 해체하기 위한 RPC를 사용한다.
1.2 Minimalist Web Service Model
웹 서비스의 대한 오해는 기본 개념의 이해가 적은 여론이나 제조업자의 책임이 있다.
웹 서비스의 3가지 컴포넌트
- the service란 메시지를 트랜스포트, 어플리케이션 프로토콜을 통한 전송을 처리할 수 있는 일종의 소프트웨어이다. 우리는 컴포넌트가 어떻게 구성되었는지, 객체지향기술이 사용되었는지 알 필요가 없다. 유일한 요구 사항은 서비스가 잘 정의된 XML 문서를 잘 처리할 수 있어야 한다는 것이다.
- The XML document는 소비자가 서비스를 통해 프로세스를 처리하기 위해 모든 어플리케이션 정보를 포함하기 때문에 웹 서비스의 핵심이라고 할 수 있다. 웹 서비스가 처리해야 하는 문서는 흔히 XML 스키마로 통용된다.
- address는 쉽게 생각해서 포트 참조자 이다.
또한 선택적으로 envelope가 있는데 이는 message-encapsulation protocol이다.
1.3 The greatest threat to Web services' large-scale success is vendor politics
1.3.1 Web Service Are Just Like Distributed Objects
일반인으로 하여금 웹 서비스의 잘못된 개념을 갖게 하는 주된 이유는 많은 웹 서비스 툴 제작업자가 웹 서비스를 구현함에 편리한 분산객체기술을 제공했다는 것이다. 이런 단순화와 편리성은 사용자에게 구현의 편리함을 제공하지만, 개발자로 하여금 분산객체와 웹 서비스의 대한 명확한 개념의 전달을 막는 요인이 된다.
웹 서비스는 분산객체특성의 어떤 것도 공유하지 않는다. 또한 객체개념, 객체참조, 라이프사이클을 포함하지 않다. 웹 서비스는 method의 인터페이스로 특성 되지 않는다. 웹 서비스는 유일하게 XML 문서 및 문서 캡슐화를 다룬다.
웹 서비스는 대부분 분산객체 시스템에서 제공하는 기본적인 분산컴퓨팅기능을 어떤 것도 제공하고 있지 않다. 두 기술에 대한 주요한 차이점은 client 와 server, producer 와 consumer 사이에 어떻게 통신을 하는 가를 이해하면 분명해 진다.분산 객체 시스템에서 정보는 객체에서 제공하는 인터페이스를 통해 캡슐화가 되지만, 웹 서비스에서 정보는 XML 문서 디자인으로부터 캡슐화가 된다. 두 개의 기술 모두 같은 목적을 수행하기 위해 실행되지만, 서로 다른 기술을 사용한다. 웹 서비스와 분산객체기술은 잘 알려진 접근을 통해 서로 상호작용 가능할 수 있다. 첫째로 우리는 객체시스템(J2EE)으로부터 어떤 객체(CORBA, DCOM)를 캡슐화가 가능하다. 양자택일로 우리는 분산객체 시스템의 트랜스포트 LAYER와 같은 SOAP를 사용할 수 있다.
1.3.2 Web Services Are RPC for the Internet
RPC는 프로그램 언어 안에 실행 프로시저 콜을 사용하기 위한 네트워크 추상화를 제공한다. 기본적으로 웹 서비스는 XML 문서와 전송과 문서를 처리하기 위한 원격 서비스 ENTRY를 위한 네트워킹 추상화를 제공한다. 웹 서비스는 XML 문서 프로세서로 검토될 수 있다. 그러나 이런 패러다임은 현재 어플리케이션 개발에 통합하기는 어렵다. 현재 툴 제작자들은 웹 서비스를 단수화하기 위해 개발자들이 전통적인 프로시저를 콜을 적용할 수 있는 기반을 제공하는데 최선을 다하고 있다.
1.3.3 Web Services Need HTTP
웹 서비스는 트랜스포트 불가론 자다. 이것은 우리가 트랜스포트 프로토콜이나. 어플리케이션 프로토콜을 통해서 웹 서비스를 접근할 수 있는 것이다. 웹 서비스의 경우는 메시지 전송을 위해 SOAP를 사용한다. 이는 웹 서비스가 메시지를 전송함에 있어 프로토콜이 HTTP에 국한될 필요는 없다는 것이다. 실제로 메시지를 보내기 위해서 SOAP를 사용한 TCP or UDP상세서 메시지를 보낼 수 있고 또 메시지는 E-MAIL에 SOAP 메시지를 캡슐화되어 SMTP로 전송될 수 있다.
1.3.4 Web Service Need Web Server
몇몇 사람들은 웹 서비스에서 웹을 뺄 것인지 그대로 둘 것인지에 대해 토론을 해 왔다. 웹 서비스의 개념을 명확히 하고자 했던 이런 노력은 실제적으로 더 많은 혼동을 일으켰다. 이들 enterprise 개념에서는 WEB이라는 용어를 사용하고 있지 않다. 그들은 웹 서버나 HTTP와 같은 기술에 의존하지 않기 때문이다.
…
1.3.5 Web Service Are Reliable Because They Use Tcp
TCP는 메시지를 전송에 신뢰성을 보증해 준다. 이런 점에서 TCP를 사용하는 웹 서비스 또한 신뢰성을 보증해 주는 것처럼 보여 질 수 있다. 그러나 이런 것은 TCP 프로그램에 있어 부분적으로 신뢰성을 보증해 주는 것이다. 일반적으로 웹 서비스나 분산시스템은 end-to-end 신뢰성을 요구한다. TCP는 분실된 메시지에 대한 재전송을 통해 신뢰성 있는 통신을 가능하게 한다. 하지만 중복된 메시지에 대한 선별할 수 있어야 진정한 신뢰성 있는 통신이라고 할 수 있다.
신뢰성 있는 분산 시스템을 구축하고자 한다면 우리는 서버요구의 프로세스 상태를 받아야 한다. 문서 수신여부, 서버의 문서 소비에 대한 피드백 요구는 재전송 기술 선택과 지역 쓰레기 모음에 필수적이다. 또한 추가적으로 순서대로 메시지 처리에 대한 보증이 필요하다. 이런 보증들이 완벽히 추가 보안되지 않는다면, 웹 서비스는 신뢰성이 보증된다고 할 수 없다.
1.3.6 Debugging Web Services ls impossible
웹 서비스는 internet-scale 분산 컴퓨팅이 가능하기 때문에 웹 서비스 개발자는 전통적인 디버깅 과 모니터링 툴을 다룰 수 없는 문제에 직면했다. 비록 전통적인 툴은 이런 문제에 대한 약간의 도움이 되지만 미흡하다. 그래서 SOAP scope와 같은 새로운 진단 툴이 대두되었다.
1.4 Conclusions
웹 서비스는 분산컴퓨팅, 애플리케이션 영향, 시스템개발에 중요한 역할을 할 것이다. 산학에 종사하는 개발자, 연구자는 잘못된 웹 서비스의 개념을 버려야 하며, 우리는 제한된 기능과 실천 구조를 극복해야 한다. 모든 사람들이 웹 서비스를 분산객체 기술이 아닌 interoperable document-centric computing으로 인식한다면 웹 서비스 기술에 많은 노력을 기울이게 될 것이다.
'UP! > Web Service' 카테고리의 다른 글
Web Service (0) | 2008.08.21 |
---|---|
그리드 서비스를 위한 Repository 시스템 개발 (0) | 2008.08.21 |
분산객체시스템 종류 (0) | 2008.08.21 |
웹 서비스와 관련된 10가지 질문 (0) | 2008.08.21 |
XML,SOAP,UDDI,WSDL (0) | 2008.08.21 |