tanszek:oktatas:iss_t:object_request_broker
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tanszek:oktatas:iss_t:object_request_broker [2026/03/01 17:51] – [Marshalling and Unmarshalling] knehez | tanszek:oktatas:iss_t:object_request_broker [2026/03/01 17:58] (current) – [Object Request Broker (ORB)] knehez | ||
|---|---|---|---|
| Line 20: | Line 20: | ||
| Conceptually: | Conceptually: | ||
| - | Client -> ORB -> Remote Object | + | < |
| - | + | sequenceDiagram | |
| - | Remote Object | + | Client->>ORB: Method call |
| + | ORB->> | ||
| + | RemoteObject-->>ORB: Return result | ||
| + | ORB-->>Client: Return response | ||
| + | </ | ||
| The ORB handles all low-level details such as transport protocols and data encoding. | The ORB handles all low-level details such as transport protocols and data encoding. | ||
| + | |||
| + | ---- | ||
| ==== Distributed Objects Concept ==== | ==== Distributed Objects Concept ==== | ||
| Line 39: | Line 45: | ||
| This design reflects classic OOP thinking in distributed systems. | This design reflects classic OOP thinking in distributed systems. | ||
| - | + | ---- | |
| - | ==== 4. IDL – Interface Definition Language ==== | + | ==== IDL – Interface Definition Language ==== |
| CORBA introduced a language-independent interface definition mechanism called IDL (Interface Definition Language). | CORBA introduced a language-independent interface definition mechanism called IDL (Interface Definition Language). | ||
| Line 64: | Line 70: | ||
| IDL was one of the early solutions to cross-language service integration. | IDL was one of the early solutions to cross-language service integration. | ||
| + | CORBA IDL supports interface inheritance, | ||
| + | This enables the reuse of method definitions and supports polymorphism in distributed systems. | ||
| + | |||
| + | Below is an example from a simplified employee management system. | ||
| + | |||
| + | < | ||
| + | module Company { | ||
| + | |||
| + | interface Person { | ||
| + | | ||
| + | long getId(); | ||
| + | }; | ||
| + | |||
| + | interface Employee : Person { | ||
| + | | ||
| + | void setSalary(in double newSalary); | ||
| + | }; | ||
| + | |||
| + | interface Manager : Employee { | ||
| + | void addTeamMember(in Person p); | ||
| + | }; | ||
| + | |||
| + | }; | ||
| + | </ | ||
| + | |||
| + | |||
| + | ---- | ||
| ==== Marshalling and Unmarshalling ==== | ==== Marshalling and Unmarshalling ==== | ||
| Line 81: | Line 114: | ||
| reconstructing the original objects from the serialized data on the receiving side. | reconstructing the original objects from the serialized data on the receiving side. | ||
| - | This ensures that: | + | This ensures that data types remain consistent across systems, different hardware architectures can communicate, |
| - | + | ---- | |
| - | * data types remain consistent across systems, | + | |
| - | * different hardware architectures can communicate, | + | |
| - | * programming language differences are abstracted. | + | |
| - | + | ||
| Line 104: | Line 132: | ||
| Services were browsable in a uniform manner, which was advanced for its time. | Services were browsable in a uniform manner, which was advanced for its time. | ||
| + | ---- | ||
| ==== Known Implementations ==== | ==== Known Implementations ==== | ||
| Line 124: | Line 153: | ||
| * legacy enterprise infrastructures. | * legacy enterprise infrastructures. | ||
| + | ---- | ||
| ==== Why CORBA Declined ==== | ==== Why CORBA Declined ==== | ||
tanszek/oktatas/iss_t/object_request_broker.1772387507.txt.gz · Last modified: 2026/03/01 17:51 by knehez
