출처 [블로그 : http://blog.naver.com/espreson/120006297240]
왜 Web Service와 Remoting Service가 각각 존재하는 것일까?
우선 Web Service와 Remting Service의 기능상의 차이를 비교해 보자.
기능 |
웹 서비스 |
Remoting |
상태 비저장 개체에서 단일 메서드 호출 |
● |
● |
상태 비저장 개체에서 다수의 메서드 호출 |
○ |
● |
동일한 서버 측 개체에서 모든 클라이언트가 메서드 호출 |
○ |
● |
방화벽 통과 |
● |
● |
통신에 HTTP 사용 |
● |
● |
통신에 원시 TCP 소켓 사용 |
○ |
● |
IIS를 호스트로 사용 |
● |
● |
사용자 지정 호스트 허용 |
○ |
● |
SOAP 호환 형식 데이터 사용 |
● |
● |
작은 이진 형식 데이터 사용 |
○ |
● |
복잡한 개체에서 데이터 부분 복사 검색 |
● |
● |
복잡한 개체에서 전체 복사 검색 |
○ |
● |
[표 7-1] Remoting 과 Web Service의 기능 차이 (MSDN 참조)
웹 서비스는 서로 다른 컴퓨팅 플랫폼과 프로그래밍 언어 사이에 데이터를 주고 받기에 적절한 표준 기반 공개 통신 매체를 제공 하는 반면에, Remoting은 .NET에 보다 적합한 기술로, 더 빠르고 융통성도 크며 .NET 응용 프로그램 간의 데이터 송수신에 최적의 기술인 경우가 많다. 달리 해석하면 Web Service는 과도기적인 지금의 상황에서 사용하기에 적합하게 만들어져 있어서, 향후 Remoting 서비스로 진화 하기 위한 중간 역할과 Remoting의 축소판으로 생각할 수도 있을 것이다. (Remoting Service도 Web Service로 사용될 수 있다.) 그러나 .Net Framework을 설치한 컴퓨터의 양쪽 모두의 OS가 Windows가 아니라면 Web Service를 사용해야 될 것이고, 양쪽이 Windows 환경이라면 .Net Remoting 서비스가 성능이 보다 뛰어나기 때문에 당분간 두 기술의 공존은 불가피 하다. 아직은 베타 버전이지만 .NET Compact Framework에서 XML Web Service는 지원이 되지만 Remoting 서비스는 불행히도 지원하지 않고 있다. .NET Compact Framework에 대해서는 추후 다시 살펴 보도록 하겠다. 결론적으로 세상의 모든 Computer의 OS가 Windows 는 아니기 때문에 Remoting과 Web Service의 공존에는 그 나름대로의 의미가 있다는 것을 알 수 있었을 것이다.