290 likes | 474 Views
RPC – Remote Procedure Call. RPC – Remote Procedure Call. RPC – Remote Procedure Call. Klient (na počítači A). Server (na počítači B). Lokální volání funkce. Marshalling (serializace) argumentů. Unmarshalling (deserializace) argumentů. Zaslání požadavku. Služba. Klientský program.
E N D
RPC – Remote Procedure Call Klient (na počítači A) Server (na počítači B) Lokální volání funkce Marshalling (serializace) argumentů Unmarshalling (deserializace) argumentů Zaslání požadavku Služba Klientský program Vykonání požadavku Marshalling (serializace) návratové hodnoty Unmarshalling (deserializace) návratové hodnoty
RPC – Remote Procedure Call Sluzba.idl Klient (na počítači A) Server (na počítači B) rpcgen Služba Klientský program Skeleton Stub
RPC – Remote Procedure Call Sluzba.idl Klient (na počítači A) Server (na počítači B) rpcgen Služba Klientský program Skeleton Stub
RPC – Remote Procedure Call Vygenerovaný skeleton:
RPC – Remote Procedure Call Modifikace klienta
CORBA – Common Object Request Broaker Architecture The Object ManagementGroup (OMG) http://www.omg.org/ 1.Locate 3.Execute 2.Activate
CORBA – Common Object Request Broaker Architecture The Object ManagementGroup (OMG) http://www.omg.org/ Object Adaptor IDL Skeleton Dynamic Skeleton Interface ORB interface IDL Stube Dynamic Invocation Interface Object implementation Client ORB Core
CORBA – Common Object Request Broaker Architecture The Object ManagementGroup (OMG) http://www.omg.org/ Příklad CORBA IDL:
CORBA – Common Object Request Broaker Architecture The Object ManagementGroup (OMG) http://www.omg.org/ Object Adaptor IDL Skeleton Dynamic Skeleton Interface ORB interface IDL Stube Dynamic Invocation Interface Object implementation Client ORB Core
CORBA – Common Object Request Broaker Architecture The Object ManagementGroup (OMG) http://www.omg.org/ ORB Core ORB Core IIOP Internet Inter-ORB Protocol
Java RMI ORB Core Java RMI – Remote Method Invocation IIOP
Java RMI – Remote Method Invocation SPUŠTĚNÍ SERVERU
Java RMI – Remote Method Invocation ServerExecutable <<interface>> ServerRemoteObject.class rmic.exe ServerRemoteObject ServerRemoteObject_Stub.class
Java RMI – Remote Method Invocation ServerRemoteObject.class rmic.exe ServerRemoteObject_Stub.class
Java RMI – Remote Method Invocation Client exec:ServerExecutable Toto je ve skutečnosti ServerRemoteObject_Stub ServerRemoteObject add(3+5) add(3+5) 8 8 JVM 2 JVM 1
COM Component Object Model Interface Identifier – např. {A46C12C0-4E88-11CE-A6F1-00AA0037DEFB} GUID – Global Unique Identifier GUIDGEN – nástroj generující GUID IUnknown
COM Deklarace interface (třída) MIDL IDL RPC kód (DCOM)
COM IUnknown SumClassFactory IClassFactory IUnknown SumClass ISum IUnknown SumClass ISum
COM QueryInterface - reflexivnost IUnknown A B C
COM QueryInterface - symetrie IUnknown A B C
COM QueryInterface - transitivita IUnknown A B C