원격 프로 시저 호출과 웹 서비스의 차이점은 무엇입니까?


80

RPC와 웹 서비스에 대한 명확한 정의가 있습니까? 빠른 위키 백과 검색 결과 :

RPC : RPC (원격 프로 시저 호출)는 프로그래머가 세부 정보를 명시 적으로 코딩하지 않고도 컴퓨터 프로그램이 다른 주소 공간 (일반적으로 공유 네트워크의 다른 컴퓨터에서)에서 서브 루틴 또는 프로 시저를 실행하도록하는 프로세스 간 통신 기술입니다. 이 원격 상호 작용.

웹 서비스 : 웹 서비스는 일반적으로 Hypertext Transfer Protocol을 통해 액세스되고 요청 된 서비스를 호스팅하는 원격 시스템에서 실행되는 API (응용 프로그래밍 인터페이스) 또는 웹 API입니다. 웹 서비스는 빅 웹 서비스 [1]와 RESTful 웹 서비스라는 두 가지 진영 중 하나에 해당하는 경향이 있습니다.

두 가지의 실제 차이점이 무엇인지 잘 모르겠습니다. 하나는 RPC에 속할 수 있고 동시에 일종의 웹 서비스 인 것 같습니다.

웹 서비스는 RPC의 상위 수준 표현입니까?

답변:


60

웹 서비스는 RPC의 상위 수준 표현입니까?

네, 그렇습니다. 웹 서비스는 RPC의 특정 구현입니다. 가장 낮은 수준에서 웹 서비스는 HTTP 프로토콜을 사용하여 소켓에 연결하여 원격 공간에서 실행되는 페이로드 전송을 협상합니다 (원격 공간은 동일한 컴퓨터 일 수 있음). 이러한 모든 원격 호출 추상화의 핵심은 RPC입니다.


1
웨인이 작성한 것 외에 웹 서비스의 추가 속성 : 플랫폼 독립적 인 RPC 방식을 허용하고, 검색 가능하며 자체 설명이 가능합니다 (Win32 RPC와 비교).
알렉스

6
아니요, 정확하지 않습니다. RPC는 웹 서비스의 아키텍처 스타일입니다. 대안은 REST입니다. 참조 : ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5339611
schlamar

@schlamar 웹 서비스가 RPC와 관련이 있습니까? 그렇다면 웹 서비스 환경에 클라이언트 및 서버 스텁이 있습니까?
overexchange

9

나는이 질문을 본다. 이 질문은 오래 전에 요청되었지만이 주제에 대한 더 많은 정보와 명확성을 제공하는이 커뮤니티의 누군가의 답변이 향후 질문자에게 도움이 될 것이라고 생각합니다. 따라서 주요 차이점을 지적하는 개선 사항을 추가하고 향후 독자에게 도움이되기를 바랍니다.

------------------------------------------------------------------------------
| Category             |    RPC              |    Web Services
------------------------------------------------------------------------------
|Operation's Location  | On top of TCP       | on top of HTTP Protocol
------------------------------------------------------------------------------
|Data format           | Binary              | Text, XML, JSON, ect.
------------------------------------------------------------------------------
|Speed                 | Slow (Marshalling)  | Fast
------------------------------------------------------------------------------

RPC 및 웹 서비스에 대한 설명은 다른 사람의 답변에서 명확하게 볼 수 있기 때문에 언급하지 않았습니다.


4

RPC (원격 프로 시저 호출) 및 WebService는 기능 측면에서 모두 병렬로 진행됩니다. 그러나 호출 방식에는 미묘한 차이가 있습니다. 웹 서비스는 진행을 위해 HTTP 프로토콜을 통한 XML 형식을 사용하고 본질적으로 상호 운용 가능한 모든 응용 프로그램에서 호출 할 수 있지만 RPC의 경우 함수는 여러 응용 프로그램에서 호출 될 수 있으므로 직렬화 경로를 따라 개체 데이터를 저장합니다. TCP 프로토콜을 통한 바이너리 형식을 지원합니다. 더 나은 접근 방식에서는 적절한 소켓과 적절한 형식의 메시지를 통해 함수를 실행하는 것처럼 RPC 워크 플로를 간략하게 할 수 있지만 클라이언트 서버에서 특정 함수의 실제 존재를 알지 못합니다. 함수가있는 동일한 서버. 그러나 매번 기능이 로컬에있는 것처럼 느껴집니다.


영어를 향상 시키십시오. 이해할 수없는
Mohit 샤에게

1

• 데이터는 XML을 사용하여 전송하도록 형식이 지정되어 마샬링, 언 마샬링 및 개발자가 일반적으로 코딩하는 다양한 기타 번역 관련 요구 사항을 개선하거나 제거합니다. • 데이터는 잘 정의 된 표준을 게시 한 HTTP 또는 SMTP와 같은 표준화 된 프로토콜을 사용하여 전달됩니다. • 기본 노출 서비스는 알려진 허용 메커니즘 인 WSDL을 사용하여 잘 정의됩니다. • 서비스는 잘 정의 된 표준, UDDI 및 고급 ebXML을 사용하여 검색됩니다.

특히 WSDL은 다음과 같은 여러 주요 정보를 제공합니다.

• 및 요소와 적절한 스키마 정의를 사용하여 두 끝점간에 전달되는 메시지 형식의 정의. • 서비스의 의미 : 동기식 요청 / 응답, 동기식 응답 전용 또는 비동기식 통신을 위해 호출되는 방법. • 요소를 통한 서비스의 종점 및 전송 : 즉 서비스를 제공하는 사람. • 요소를 통한 인코딩, 즉 서비스에 액세스하는 방법입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.