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