2011-04-26 3 views
1

RPC는 현재 사용 중입니다. 아니면 rpc가 다른 기술로 대체 되었습니까? C++에서 새 프로젝트를 시작한다면 RPC 사용을 고려해야합니까?RPC 또는 다른 것을 사용합니다.

더 많은 정보를 원하시면 내가 RPC 생산 코드에서 여전히 사용되고 있음을 알고 있기 때문에이 :

나는 서로 통신하는 두 개의 응용 프로그램을 가지고있다. 이 두 컴퓨터는 같은 컴퓨터에 있지만 한 컴퓨터는 서비스이고 다른 컴퓨터는 사용자 응용 프로그램입니다. 사용자 앱이 2,3 초마다 서비스 앱에 전송합니다. rpc의 두 번째 용도. 1 클라이언트와 로컬 데이터베이스가있는 많은 컴퓨터가 있습니다. 그리고 그 클라이언트는이 컴퓨터에서 데이터를 가져와야합니다.

두 개의 장면에 대해 스릴 핏과 같은 것을 사용해야합니까? 아니면 너무 큰가?

+3

새 프로젝트의 수행 방식에 따라 다릅니다. –

+0

저는 몇 가지 프로젝트에서 D-Bus를 사용했습니다. – karlphillip

답변

5

Remote Procedure Call은 매우 일반적인 아이디어이며 특정 사항이 아닙니다. ZeroC Ice, CORBA, Java RMI, SOAP, DRb, WCF 및 RPC 아이디어를 기반으로 구축 된 많은 기술이 있습니다. 그들은 실제로 사용되고 있습니다. 예를 들어, CORBA는 일부 Electronic Currency Exchanges (ECN)에서 사용되며, ZeroC는 Skype, Hewlett-Packard, soap으로 사용됩니다 ... 저는 모두가 비누를 사용하기를 바랍니다.

하지만이 기술을 고려해야하는지 여부는 대답하기가 어렵습니다. 그리고 당신이해야 할 해결책이 있다면 꼭 가야합니다. 너무 많은 세부 사항에 달려 있습니다. 그러나 질문 할 주요 질문은 - 무엇을 성취하려고 하는가? 이들은 모두 진지한 기술이며, 일부는 귀중한 시간을 절약 할 수 있고, 일부는 다른 언어로 작성된 응용 프로그램을 통합하는 데 도움을 줄 수 있습니다. 기본적으로 모든 솔루션에는 장단점이 있습니다.

확실한 경우, 두 번 생각해보고 프로젝트에서 필요한 부분과 필요한 부분을 결정하는 것이 좋습니다. RPC를 사용하기로 결정했다면 ZeroC Ice를 권하고 싶습니다. 그것은 자유롭고, 오픈 소스이며, 확장 가능하고 확장 가능하며, 수많은 프로그래밍 언어를 지원하며 그 주변의 커뮤니티는 꽤 활발하게 보입니다.

희망이 있습니다. 행운을 빕니다!

+0

당신은 RPC가 매우 일반적이라고 썼습니다. 이 http://msdn.microsoft.com/en-us/library/aa365574(VS.85).aspx#base.using_rpc_for_ipc이 동일한 일반 개념 또는 다른 것입니까? – userbb

+0

귀하의 질문에 C++과 rpc 태그가 지정되었습니다. 이 컨텍스트에서 "일반"이라고 해석 할 것입니다. –

+0

@userbb : 개념은 일반적이며 구현이 다르며 다른 솔루션과 호환되거나 호환되지 않습니다 (둘 다 서로 호환되지 않습니다) . –

0

RPC는 Windows 운영 체제에서 널리 사용됩니다. 고성능을 이유로 RPC를 사용하여 캐시 서비스를 호출합니다.

+0

메모와 마찬가지로 - RPC는 대체 솔루션보다 빠르지 않습니다. 그리고 대부분의 경우 상당히 느립니다. –

+0

사실이 아닙니다. 직접적인 하드웨어 액세스 만이 rpc 나 공유 메모리보다 빠를 수 있지만이 경우 프로세스간에 격리가 손실됩니다. – lsalamon

0

RPC가 필요하다고 결정하면 가장 일반적인 언어 바인딩을 지원하고 가장 필요한 기능을 제공하는 Apache Thrift을 확인하는 것이 좋습니다. 당신의 요구에 과잉 행동 일지 모르지만, 당신이 그들을 지정하지 않았기 때문에 나는 그것을 밖으로 버릴 것이라고 생각했습니다.

+0

서로 통신 할 수있는 두 개의 앱이 있습니다. 이 두 컴퓨터는 같은 컴퓨터에 있지만 한 컴퓨터는 서비스이고 다른 컴퓨터는 사용자 응용 프로그램입니다. 사용자 응용 프로그램은 2,3 초마다 서비스에 보냅니다. rpc의 두 번째 용도. 1 클라이언트와 로컬 데이터베이스가있는 많은 컴퓨터가 있습니다. 그리고 그 클라이언트는이 컴퓨터에서 데이터를 가져와야합니다. – userbb

관련 문제