문제

나는 이런 일을 하고 싶(특정 언어로):

print(foo.objects.bookdb.books[12].title);

나이:

book = foo.objects.bookdb.book.new();
book.title = 'RPC for Dummies';
book.save();

는 foo 실제적으로 서비스를 통해 프로그램 일부 IPC 하고 있고,그것의 방법과 개체는 일부 레이어는 실제로 보내고 받는 네트워크를 통해 메시지.

지금,나는 정말 보는 IPC 를 위해 메커니즘으로 많은에서 선택할 수 있다.그것을 가능성이 높지 않을 수 XML 기반으로하지만,오히려 s.th.다음과 같은 구글의 프로토콜 버퍼,그러나 CORBA.내가 잘 모르시는 방법에 대한 구조화하는 응용 프로그램 그래서 액세스할 수 있습 IPC 처럼 나는 모든 개체입니다.

다시 말해서,어떻게 가질 수 OOP 는 지도 위에 투명하게 프로세스 경계를 넘?

하지 않는 것이 이 디자인 질문이고 나는 아직 작업에서 매우 높은 수준의 전반적인 건물입니다.그래서 나는 무관직에 대한 어떤 언어를 이 될 것입니다.C#,Java,Python 는 모든 가능성을 얻는 데 사용,하지만.

도움이 되었습니까?

해결책

당신이하지 말아야 할 것!그것은 매우 중요한 프로그래머를 위한 참고 사이의 차이를 느낄 IPC/RPC 및 로컬 메소드 호출에 코드입니다.는 경우에 당신은 그것을 만들고,그래서 그들은 생각하지 않아도 그것에 대해,그들은 생각하지 않을 것에 대해,그리고 그것을 지도할 것이 제대로 수행하는 코드입니다.

의 생각:

foreach o, o.isGreen in someList { 
   o.makeBlue; 
}

프로그래머로 가정하는 루프 몇 나노초를 완료하는 대신 그것은 가까운 두 번째 경우 someList 발생 원격입니다.

다른 팁

나는 생각을 할 수 있는 방법은 무엇을 요청하려는 모든 개체에 통신으로 간주된 메시지를 전달합니다.이 방법 개체 방법에서 처리됩니다 루비 및 smalltalk,다른 사람의 사이에서.

으로 메시지가 전달(보다는 메소드를 호출하)으로 귀하의 개체 통신 메카니즘,다음과 같은 작업을 호출하는 방법이 존재하지 않았을 때 당신이 쓴 코드가 현명한 개체로 무언가를 할 수 있는 합리적으로 메시지가 어쨌든(확인에 대한 원격 절차를 반환하는 값에 대한 분야와 동일한 이름이 데이터베이스에서,etc.,또는'메서드를 찾을 수 없는'제외,또는 다른 당신이 생각할 수 있).

그것은 주목하는 것이 중요하는 언어를 사용하지 않으로 이것을 기본 메커니즘,당신이 할 수 있는 메시지를 전달하는 어쨌든(모든 개체가'handleMessage'방법)하지만 당신을 얻지 않을 것이 구문을 정확하지 않아도 얻을 수 있 IDE 도움없이는 몇 가지 여분의 노력에 부분을 얻 IDE 을 분석하 handleMessage 방법을 확인하는 유효한 입력을 사용합니다.

에 읽어 Java RMI --한 소개 자료할 수 있는 방법을 보여 줍니다 로컬의 정의는 원격체입니다.

은 두 개의 클래스와 동일한 방법은 서명이 있습니다.의 로컬 버전 클래스는 외부 네트워크 프로토콜입니다.원격 버전는 요청을 받는 네트워크를 통해 고가의 실제 작업체입니다.

을 정의할 수 있습니 한 쌍의 클래스는 그래서 클라이언트가 있을 수 있는

foo= NonLocalFoo( "http://host:port" )
foo.this= "that"
foo.save()

고 받은 서버는 set_this()및 저장()메소드는 클라이언트의 요청에 연결합니다.서버 측면(일반적으로)가 아닌 사소한이 있기 때문에 무리를 발견의 인스턴스 및 관리 문제입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top