User Tools

Site Tools


tanszek:oktatas:iss_t:object_request_broker

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tanszek:oktatas:iss_t:object_request_broker [2026/03/01 17:48] – [Known Implementations] kneheztanszek: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 +<mermaid> 
- +sequenceDiagram 
-Remote Object -> ORB -> Client+Client->>ORB: Method call 
 +ORB->>RemoteObject: Forward request 
 +RemoteObject-->>ORB: Return result 
 +ORB-->>Client: Return response 
 +</mermaid>
  
 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, allowing one interface to extend another.
 +This enables the reuse of method definitions and supports polymorphism in distributed systems.
 +
 +Below is an example from a simplified employee management system.
 +
 +<sxh> 
 +module Company {
 +
 +interface Person {
 +   string getName();
 +   long getId();
 +};
 +
 +interface Employee : Person {
 +   double getSalary();
 +   void setSalary(in double newSalary);
 +};
 +
 +interface Manager : Employee {
 +   void addTeamMember(in Person p);
 +};
 +
 +};
 +</sxh>
 +
 +
 +----
 ==== Marshalling and Unmarshalling ==== ==== Marshalling and Unmarshalling ====
  
 CORBA introduced standardized marshalling and unmarshalling mechanisms. CORBA introduced standardized marshalling and unmarshalling mechanisms.
 +
 +This mechanism is essential in distributed systems because memory representations differ across:
 +
 +  * programming languages
 +  * operating systems
 +  * CPU architectures (32-bit vs 64-bit, little-endian vs big-endian)
 +  * Without marshalling, raw in-memory data could not be safely transmitted between heterogeneous systems.
  
 **Marshalling**: **Marshalling**:
Line 74: 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, and programming language differences are abstracted. 
 +----
  
-  * data types remain consistent across systems, 
-  * different hardware architectures can communicate, 
-  * programming language differences are abstracted. 
- 
-Modern equivalents include: 
- 
-  * JSON serialization (REST), 
-  * Protocol Buffers (gRPC), 
-  * binary encoding in RPC frameworks. 
  
 ==== Service Registry Concept ==== ==== Service Registry Concept ====
Line 100: 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 120: Line 153:
   * legacy enterprise infrastructures.   * legacy enterprise infrastructures.
  
 +----
 ==== Why CORBA Declined ==== ==== Why CORBA Declined ====
  
Line 130: Line 164:
   * verbose tooling   * verbose tooling
   * rise of simpler HTTP-based APIs (REST)   * rise of simpler HTTP-based APIs (REST)
 +
 +Tutorial: https://medium.com/@diremund/understanding-corba-building-a-banking-system-with-java-47c67fc42a66
tanszek/oktatas/iss_t/object_request_broker.1772387327.txt.gz · Last modified: 2026/03/01 17:48 by knehez