SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
CORBA/IDL




Elena Punskaya, op205@cam.ac.uk

                                  1
CORBA
•   CORBA (Common Object Request Broker Architecture) is a set
    of standards for middleware defined by the Object
    Management Group (OMG), a consortium of over 500
    companies, including IBM, Sun, Hewlett-Packard, Oracle,
    Ford, Boeing and Xerox
•   CORBA specifies standards for
    - describing the interface that an application presents to the network
    - mapping that interface into C++, Java, Visual Basic and many other languages
    - using that network interface to communicate between programs

•   There many implementations of the CORBA standard available
•   The 3F6 laboratory experiment uses omniORB, a freely-
    available version for C++ and Python. It supports over 15
    different platforms, including Microsoft Windows, Mac OS X,
    Linux, and most other forms of UniX




                                                                                 © 2012 Elena Punskaya
                                                                                                        2
                                                            Cambridge University Engineering Department

                                                                                                            2
8          Object Request Broker
                                       Engineering Part IIA: 3F6 - Software Engineering and Design


•   The Object Request Broker (ORB)
                   Object Request                                    Broker
     - Enables communication between clients and objects
     - Provides location transparency
     - Provides accessObject Request Broker (ORB)
                  The to a set of built-in object services

                 eg 3F6 Lab PostIt Server                      eg NHS Medical Records

                                    Application                Domain
                                                               Interfaces
                                                                             
                                       Interfaces



                                       Object Request Broker (ORB)




                                                     Object
                     eg Name Server −→              Services


•   There are two classes of interfaces
              • enables communication between clients and objects
     - Domain interfaces - standards agreed by collaborating organisations and registered
                    • provides location transparency
       with the OMG
                    • provides developed for specific applications, interfaces are specific to
     - Application interfaces - access to a set of built-in object services
       each application
                 There are two classes of interfaces                                             © 2012 Elena Punskaya
                                                                                                                        3
                                                                            Cambridge University Engineering Department

                                                                                                                            3
Proxies in CORBA
                                 Proxies in CORBA
          Object-oriented programs consist of linked objects calling meth-
• Object-oriented programs consist of linked objects calling
          ods on each other. For example, here object A is connected to
  methods on B, and calling the For example, results in the method
          object each other. method read on A here object A is
  connected to object B, B:
          open being called on
                               and calling the method read on A
  results in the method open being called on B:
                                                                    b
                       B* b;                       A                       B
                       // ...
                                                +read()                 +open()
                       b-open();

• In a distributed application, we might want these objects to
  live on different computers. This would make calling B::open
          In a distributed application, we might want these objects to live
  rather complex.
          on different computers. This would make calling B::open rather
• CORBA provides a remote proxy mechanism which provides
          complex.
  the necessary location transparency.
          CORBA provides a remote proxy mechanism which provides the
• It also makes programming simple by hiding the proxy class
          necessary location transparency.
  from the programmer. In C++, instead of using standard
    pointer It also makes programming simple by hiding the proxy class from These
             references, CORBA provides smart pointers.
    hide the proxy class and provide built-in reference counting
            the programmer. In C++, instead of using standard pointer
    so that the remote objects can be automatically deallocated
            references, CORBA provides smart pointers. These hide the
    when no longer required.
            proxy class and provide built-in reference counting so that the
                                                                              © 2012 Elena Punskaya
            remote objects can be automatically deallocated when no longer
                                                         Cambridge University Engineering Department
                                                                                                       4


            required.                                                                                      4
Proxies in CORBA
                                                                               •   Using this design pattern, A
10                   Engineering Part IIA: 3F6 - Software Engineering and Design
                                                                                   references B using a smart
Special version of B *b;                                                           pointer b (of type B_var)
                                                         the real thing • Method calls via b- are then
                                                                                   directed to the proxy for B
                                      A                             B
                                                                  When A calls open on the
      B_var b;
      // ...
                                                                               •
      b-open();
                                +read()              +open()
                                                                  B_Proxy object, this contacts
                                   b
                                           stub                   the local ORB, which
                                                                  determines where the real B
     Use my ORB                 B_Proxy
     to contact                                                   object lives. The ORB then
     the remote               +open()                             makes a network connection
     ORB to contact
     the real B                                                   to the ORB on B’s computer
     object                                                       and passes the request on to
                                  ORB                  ORB        it. The remote ORB then
                                           Network
                                                                  contacts the real B object,
                                                                  which services the request.
Using this design pattern, A references B using a smart pointer b The results (any return
(of type B_var).                                                  values) are passed back to A
                                                                  via the same mechanism
                                                                                                          © 2012 Elena Punskaya
Method calls via b- are then directed to the proxy for B.                           Cambridge University Engineering Department
                                                                                                                                 5


                                                                                                                                     5
The Interface Definition Language
•   CORBA provides a language independent mechanism for
    specifying an object’s interface called the Interface Definition
    Language (IDL)
•   The basic structure of an IDL interface definition is as follows:
           module ModName {
               // define constants
               const type ConstName = constant_expression;
               // define types
               typedef type Typename;
               // define interfaces
               interface ObjectName {
                   // define local consts and types
                   ...
                   // define methods
                   returntype functionName(mode Typename arg, ...);
                   ...
               };
           };
•   mode (in, out, inout) is used to allow efficient transfer of
    parameters over netwok, otherwise the IDL is very similar to C++
                                                                       © 2012 Elena Punskaya
                                                                                              6
                                                  Cambridge University Engineering Department

                                                                                                  6
IDL Type Specification
•   IDL defines basic types such as short, float, char, string etc.
    - the types have to be precisely defined to ensure compatibility with mixed programming
      language environments

•   Enumerations, fixed-size arrays and structures are supported
    exactly as in C++
                          enum Colour {red, green, blue};
                          typedef short RGB[3];
                          struct Pixel {
                              RGB rgb;
                              short x; short y;
                          };

•   The IDL does not support pointers. Instead it provides se-
    quences which can be used to define variable length arrays
    and recursive data structures
                          struct TreeNode {
                              string nodeContents;
                              sequenceTreeNode children;
                          };

                                                                               © 2012 Elena Punskaya
                                                                                                      7
                                                          Cambridge University Engineering Department

                                                                                                          7
Interface Inheritance
•   IDL interfaces also support inheritance

      module People {

           interface Person {
               void init(in string name, in short age);
               short getAge();
               string getName();
           };
           // extending the Person interface
           interface Child : Person {
               void init(in string name, in short age,in string guardian);
               string getGuardian();
           };
      };


•   The derived interface Child redefines the init operation and adds a
    new operation getGuardian while inheriting operations getAge and
    getName


                                                                         © 2012 Elena Punskaya
                                                                                                8
                                                    Cambridge University Engineering Department

                                                                                                    8
Factories in CORBA
•   Practically, a scalable system with multiple users needs to
    have multiple instances of the objects providing the services
•   A CORBA server typically follows the Factory design pattern to
    create multiple objects
            // define constants
            module factory {
               // define constants
               interface Hello {
                  wstring helloWorld ();
               };
               // define constants
               interface HelloFactory {
                  Hello create (in wstring message);
               };
            };

•   HelloFactory is used to create new Hello objects. The Hello object
    is just the simple object that returns a greeting String to the client.
    In this example, the factory creates the object with a specified string
    content http://docs.oracle.com/cd/F49540_01/DOC/java.815/a64683/appcorb1.htm
                                                                            © 2012 Elena Punskaya
                                                                                                   9
                                                       Cambridge University Engineering Department

                                                                                                       9

Contenu connexe

Tendances (20)

Corba
CorbaCorba
Corba
 
Lecture4 corba
Lecture4   corbaLecture4   corba
Lecture4 corba
 
Chapter10
Chapter10Chapter10
Chapter10
 
CORBA & RMI in java
CORBA & RMI in javaCORBA & RMI in java
CORBA & RMI in java
 
Corba model ppt
Corba model pptCorba model ppt
Corba model ppt
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecture
 
Corba introduction and simple example
Corba introduction and simple example Corba introduction and simple example
Corba introduction and simple example
 
Itinerary Website (Web Development Document)
Itinerary Website (Web Development Document)Itinerary Website (Web Development Document)
Itinerary Website (Web Development Document)
 
Corba
CorbaCorba
Corba
 
Unit iv
Unit ivUnit iv
Unit iv
 
Linq To The Enterprise
Linq To The EnterpriseLinq To The Enterprise
Linq To The Enterprise
 
Corba
CorbaCorba
Corba
 
Corba in power system
Corba in power systemCorba in power system
Corba in power system
 
CORBA
CORBACORBA
CORBA
 
Corba and-java
Corba and-javaCorba and-java
Corba and-java
 
Common Object Request Broker Architecture
Common Object Request Broker ArchitectureCommon Object Request Broker Architecture
Common Object Request Broker Architecture
 
CORBA
CORBACORBA
CORBA
 
CORBA - Introduction and Details
CORBA - Introduction and DetailsCORBA - Introduction and Details
CORBA - Introduction and Details
 
82159587 case-study-on-corba
82159587 case-study-on-corba82159587 case-study-on-corba
82159587 case-study-on-corba
 
Corba
CorbaCorba
Corba
 

En vedette

3 f6 10_testing
3 f6 10_testing3 f6 10_testing
3 f6 10_testingop205
 
3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologies3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologiesop205
 
3 f6 9_distributed_systems
3 f6 9_distributed_systems3 f6 9_distributed_systems
3 f6 9_distributed_systemsop205
 
3 f6 security
3 f6 security3 f6 security
3 f6 securityop205
 
Privacy and Biometrics: Building a Conceptual Foundation
Privacy and Biometrics:  Building a Conceptual FoundationPrivacy and Biometrics:  Building a Conceptual Foundation
Privacy and Biometrics: Building a Conceptual FoundationDuane Blackburn
 
Using The National Science and Technology Council (NSTC)
Using The National Science and Technology Council (NSTC)Using The National Science and Technology Council (NSTC)
Using The National Science and Technology Council (NSTC)Duane Blackburn
 
Andalucia. Mayo Del 2007.VIAJE
Andalucia. Mayo Del 2007.VIAJEAndalucia. Mayo Del 2007.VIAJE
Andalucia. Mayo Del 2007.VIAJEguestec06fd2
 
Health - Diagnostic and therapeutic tools
Health - Diagnostic and therapeutic toolsHealth - Diagnostic and therapeutic tools
Health - Diagnostic and therapeutic toolsstjulians school
 
23205048
2320504823205048
23205048radgirl
 
Automatic generation of inspection checklist by user profiling
Automatic generation of inspection checklist by user profilingAutomatic generation of inspection checklist by user profiling
Automatic generation of inspection checklist by user profilingNicola Del Gobbo
 
Is A Corporate Criminal Profile Possible
Is A Corporate Criminal Profile PossibleIs A Corporate Criminal Profile Possible
Is A Corporate Criminal Profile Possiblecmhusted
 
Biometric Consortium Conference 2008 - Opening Keynote
Biometric Consortium Conference 2008 - Opening KeynoteBiometric Consortium Conference 2008 - Opening Keynote
Biometric Consortium Conference 2008 - Opening KeynoteDuane Blackburn
 

En vedette (20)

3 f6 10_testing
3 f6 10_testing3 f6 10_testing
3 f6 10_testing
 
3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologies3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologies
 
3 f6 9_distributed_systems
3 f6 9_distributed_systems3 f6 9_distributed_systems
3 f6 9_distributed_systems
 
3 f6 security
3 f6 security3 f6 security
3 f6 security
 
flickr
flickr flickr
flickr
 
Recruitmentadvertising
RecruitmentadvertisingRecruitmentadvertising
Recruitmentadvertising
 
Dia De La Dona
Dia De La DonaDia De La Dona
Dia De La Dona
 
Privacy and Biometrics: Building a Conceptual Foundation
Privacy and Biometrics:  Building a Conceptual FoundationPrivacy and Biometrics:  Building a Conceptual Foundation
Privacy and Biometrics: Building a Conceptual Foundation
 
02 portfolio
02 portfolio02 portfolio
02 portfolio
 
Using The National Science and Technology Council (NSTC)
Using The National Science and Technology Council (NSTC)Using The National Science and Technology Council (NSTC)
Using The National Science and Technology Council (NSTC)
 
Old and/or young
Old and/or youngOld and/or young
Old and/or young
 
Andalucia. Mayo Del 2007.VIAJE
Andalucia. Mayo Del 2007.VIAJEAndalucia. Mayo Del 2007.VIAJE
Andalucia. Mayo Del 2007.VIAJE
 
The kc quiz
The kc quizThe kc quiz
The kc quiz
 
Sistek Chandler Cue10
Sistek Chandler Cue10Sistek Chandler Cue10
Sistek Chandler Cue10
 
Health - Diagnostic and therapeutic tools
Health - Diagnostic and therapeutic toolsHealth - Diagnostic and therapeutic tools
Health - Diagnostic and therapeutic tools
 
23205048
2320504823205048
23205048
 
Automatic generation of inspection checklist by user profiling
Automatic generation of inspection checklist by user profilingAutomatic generation of inspection checklist by user profiling
Automatic generation of inspection checklist by user profiling
 
Is A Corporate Criminal Profile Possible
Is A Corporate Criminal Profile PossibleIs A Corporate Criminal Profile Possible
Is A Corporate Criminal Profile Possible
 
Biometric Consortium Conference 2008 - Opening Keynote
Biometric Consortium Conference 2008 - Opening KeynoteBiometric Consortium Conference 2008 - Opening Keynote
Biometric Consortium Conference 2008 - Opening Keynote
 
2º cuaresma
2º cuaresma2º cuaresma
2º cuaresma
 

Similaire à CORBA/IDL: Enabling Distributed Object Communication

85305524 i-t-case-study
85305524 i-t-case-study85305524 i-t-case-study
85305524 i-t-case-studyhomeworkping3
 
Remote Method Invocation
Remote Method InvocationRemote Method Invocation
Remote Method InvocationSabiha M
 
corba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptxcorba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptxAasimAbdul
 
corbaintroductionandexample-140703005744-phpapp02.pdf
corbaintroductionandexample-140703005744-phpapp02.pdfcorbaintroductionandexample-140703005744-phpapp02.pdf
corbaintroductionandexample-140703005744-phpapp02.pdfBesAli1
 
GWT Jug Stuttgart
GWT Jug StuttgartGWT Jug Stuttgart
GWT Jug Stuttgarthbraun
 
Distributing computing.pptx
Distributing computing.pptxDistributing computing.pptx
Distributing computing.pptxKaviya452563
 
Ch-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptxCh-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptxdagilema
 
Jug Zurich Slides
Jug Zurich SlidesJug Zurich Slides
Jug Zurich Slideshbraun
 
Knowledg graphs yosi mass
Knowledg graphs yosi massKnowledg graphs yosi mass
Knowledg graphs yosi massdiannepatricia
 
Soen 423 Project Report Revised
Soen 423 Project Report   RevisedSoen 423 Project Report   Revised
Soen 423 Project Report RevisedAli Ahmed
 

Similaire à CORBA/IDL: Enabling Distributed Object Communication (20)

85305524 i-t-case-study
85305524 i-t-case-study85305524 i-t-case-study
85305524 i-t-case-study
 
CORBA.ppt
CORBA.pptCORBA.ppt
CORBA.ppt
 
Remote Method Invocation
Remote Method InvocationRemote Method Invocation
Remote Method Invocation
 
corba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptxcorba-151024114450-lva1-app6891.pptx
corba-151024114450-lva1-app6891.pptx
 
005281271.pdf
005281271.pdf005281271.pdf
005281271.pdf
 
Linkers
LinkersLinkers
Linkers
 
corbaintroductionandexample-140703005744-phpapp02.pdf
corbaintroductionandexample-140703005744-phpapp02.pdfcorbaintroductionandexample-140703005744-phpapp02.pdf
corbaintroductionandexample-140703005744-phpapp02.pdf
 
GWT Jug Stuttgart
GWT Jug StuttgartGWT Jug Stuttgart
GWT Jug Stuttgart
 
Android IPC Mechanism
Android IPC MechanismAndroid IPC Mechanism
Android IPC Mechanism
 
Distributing computing.pptx
Distributing computing.pptxDistributing computing.pptx
Distributing computing.pptx
 
CORBA.ppt
CORBA.pptCORBA.ppt
CORBA.ppt
 
Ch-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptxCh-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptx
 
Low Level View of Android System Architecture
Low Level View of Android System ArchitectureLow Level View of Android System Architecture
Low Level View of Android System Architecture
 
Jug Zurich Slides
Jug Zurich SlidesJug Zurich Slides
Jug Zurich Slides
 
Knowledg graphs yosi mass
Knowledg graphs yosi massKnowledg graphs yosi mass
Knowledg graphs yosi mass
 
Net remoting
Net remotingNet remoting
Net remoting
 
009693652.pdf
009693652.pdf009693652.pdf
009693652.pdf
 
MIDELWARE TECH
MIDELWARE TECHMIDELWARE TECH
MIDELWARE TECH
 
Dependency Injection Styles
Dependency Injection StylesDependency Injection Styles
Dependency Injection Styles
 
Soen 423 Project Report Revised
Soen 423 Project Report   RevisedSoen 423 Project Report   Revised
Soen 423 Project Report Revised
 

Plus de op205

3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corbaop205
 
Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design op205
 
Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design op205
 
Lecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design PatternsLecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design Patternsop205
 
Lecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to ProgrammingLecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to Programmingop205
 
Lecture 3 Software Engineering and Design Introduction to UML
Lecture 3 Software Engineering and Design Introduction to UMLLecture 3 Software Engineering and Design Introduction to UML
Lecture 3 Software Engineering and Design Introduction to UMLop205
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...op205
 
Lecture 1 Software Engineering and Design Introduction
Lecture 1 Software Engineering and Design Introduction Lecture 1 Software Engineering and Design Introduction
Lecture 1 Software Engineering and Design Introduction op205
 
More on DFT
More on DFTMore on DFT
More on DFTop205
 
Digital Signal Processing Summary
Digital Signal Processing SummaryDigital Signal Processing Summary
Digital Signal Processing Summaryop205
 
Implementation of Digital Filters
Implementation of Digital FiltersImplementation of Digital Filters
Implementation of Digital Filtersop205
 
Basics of Analogue Filters
Basics of Analogue FiltersBasics of Analogue Filters
Basics of Analogue Filtersop205
 
Design of IIR filters
Design of IIR filtersDesign of IIR filters
Design of IIR filtersop205
 
Design of FIR filters
Design of FIR filtersDesign of FIR filters
Design of FIR filtersop205
 
Basics of Digital Filters
Basics of Digital FiltersBasics of Digital Filters
Basics of Digital Filtersop205
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processingop205
 
Fast Fourier Transform
Fast Fourier TransformFast Fourier Transform
Fast Fourier Transformop205
 
Brief Review of Fourier Analysis
Brief Review of Fourier AnalysisBrief Review of Fourier Analysis
Brief Review of Fourier Analysisop205
 
3F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part13F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part1op205
 

Plus de op205 (19)

3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corba
 
Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design
 
Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design
 
Lecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design PatternsLecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design Patterns
 
Lecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to ProgrammingLecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to Programming
 
Lecture 3 Software Engineering and Design Introduction to UML
Lecture 3 Software Engineering and Design Introduction to UMLLecture 3 Software Engineering and Design Introduction to UML
Lecture 3 Software Engineering and Design Introduction to UML
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
 
Lecture 1 Software Engineering and Design Introduction
Lecture 1 Software Engineering and Design Introduction Lecture 1 Software Engineering and Design Introduction
Lecture 1 Software Engineering and Design Introduction
 
More on DFT
More on DFTMore on DFT
More on DFT
 
Digital Signal Processing Summary
Digital Signal Processing SummaryDigital Signal Processing Summary
Digital Signal Processing Summary
 
Implementation of Digital Filters
Implementation of Digital FiltersImplementation of Digital Filters
Implementation of Digital Filters
 
Basics of Analogue Filters
Basics of Analogue FiltersBasics of Analogue Filters
Basics of Analogue Filters
 
Design of IIR filters
Design of IIR filtersDesign of IIR filters
Design of IIR filters
 
Design of FIR filters
Design of FIR filtersDesign of FIR filters
Design of FIR filters
 
Basics of Digital Filters
Basics of Digital FiltersBasics of Digital Filters
Basics of Digital Filters
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processing
 
Fast Fourier Transform
Fast Fourier TransformFast Fourier Transform
Fast Fourier Transform
 
Brief Review of Fourier Analysis
Brief Review of Fourier AnalysisBrief Review of Fourier Analysis
Brief Review of Fourier Analysis
 
3F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part13F3 – Digital Signal Processing (DSP) - Part1
3F3 – Digital Signal Processing (DSP) - Part1
 

Dernier

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Dernier (20)

"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

CORBA/IDL: Enabling Distributed Object Communication

  • 2. CORBA • CORBA (Common Object Request Broker Architecture) is a set of standards for middleware defined by the Object Management Group (OMG), a consortium of over 500 companies, including IBM, Sun, Hewlett-Packard, Oracle, Ford, Boeing and Xerox • CORBA specifies standards for - describing the interface that an application presents to the network - mapping that interface into C++, Java, Visual Basic and many other languages - using that network interface to communicate between programs • There many implementations of the CORBA standard available • The 3F6 laboratory experiment uses omniORB, a freely- available version for C++ and Python. It supports over 15 different platforms, including Microsoft Windows, Mac OS X, Linux, and most other forms of UniX © 2012 Elena Punskaya 2 Cambridge University Engineering Department 2
  • 3. 8 Object Request Broker Engineering Part IIA: 3F6 - Software Engineering and Design • The Object Request Broker (ORB) Object Request Broker - Enables communication between clients and objects - Provides location transparency - Provides accessObject Request Broker (ORB) The to a set of built-in object services eg 3F6 Lab PostIt Server eg NHS Medical Records Application Domain Interfaces Interfaces Object Request Broker (ORB) Object eg Name Server −→ Services • There are two classes of interfaces • enables communication between clients and objects - Domain interfaces - standards agreed by collaborating organisations and registered • provides location transparency with the OMG • provides developed for specific applications, interfaces are specific to - Application interfaces - access to a set of built-in object services each application There are two classes of interfaces © 2012 Elena Punskaya 3 Cambridge University Engineering Department 3
  • 4. Proxies in CORBA Proxies in CORBA Object-oriented programs consist of linked objects calling meth- • Object-oriented programs consist of linked objects calling ods on each other. For example, here object A is connected to methods on B, and calling the For example, results in the method object each other. method read on A here object A is connected to object B, B: open being called on and calling the method read on A results in the method open being called on B: b B* b; A B // ... +read() +open() b-open(); • In a distributed application, we might want these objects to live on different computers. This would make calling B::open In a distributed application, we might want these objects to live rather complex. on different computers. This would make calling B::open rather • CORBA provides a remote proxy mechanism which provides complex. the necessary location transparency. CORBA provides a remote proxy mechanism which provides the • It also makes programming simple by hiding the proxy class necessary location transparency. from the programmer. In C++, instead of using standard pointer It also makes programming simple by hiding the proxy class from These references, CORBA provides smart pointers. hide the proxy class and provide built-in reference counting the programmer. In C++, instead of using standard pointer so that the remote objects can be automatically deallocated references, CORBA provides smart pointers. These hide the when no longer required. proxy class and provide built-in reference counting so that the © 2012 Elena Punskaya remote objects can be automatically deallocated when no longer Cambridge University Engineering Department 4 required. 4
  • 5. Proxies in CORBA • Using this design pattern, A 10 Engineering Part IIA: 3F6 - Software Engineering and Design references B using a smart Special version of B *b; pointer b (of type B_var) the real thing • Method calls via b- are then directed to the proxy for B A B When A calls open on the B_var b; // ... • b-open(); +read() +open() B_Proxy object, this contacts b stub the local ORB, which determines where the real B Use my ORB B_Proxy to contact object lives. The ORB then the remote +open() makes a network connection ORB to contact the real B to the ORB on B’s computer object and passes the request on to ORB ORB it. The remote ORB then Network contacts the real B object, which services the request. Using this design pattern, A references B using a smart pointer b The results (any return (of type B_var). values) are passed back to A via the same mechanism © 2012 Elena Punskaya Method calls via b- are then directed to the proxy for B. Cambridge University Engineering Department 5 5
  • 6. The Interface Definition Language • CORBA provides a language independent mechanism for specifying an object’s interface called the Interface Definition Language (IDL) • The basic structure of an IDL interface definition is as follows: module ModName { // define constants const type ConstName = constant_expression; // define types typedef type Typename; // define interfaces interface ObjectName { // define local consts and types ... // define methods returntype functionName(mode Typename arg, ...); ... }; }; • mode (in, out, inout) is used to allow efficient transfer of parameters over netwok, otherwise the IDL is very similar to C++ © 2012 Elena Punskaya 6 Cambridge University Engineering Department 6
  • 7. IDL Type Specification • IDL defines basic types such as short, float, char, string etc. - the types have to be precisely defined to ensure compatibility with mixed programming language environments • Enumerations, fixed-size arrays and structures are supported exactly as in C++ enum Colour {red, green, blue}; typedef short RGB[3]; struct Pixel { RGB rgb; short x; short y; }; • The IDL does not support pointers. Instead it provides se- quences which can be used to define variable length arrays and recursive data structures struct TreeNode { string nodeContents; sequenceTreeNode children; }; © 2012 Elena Punskaya 7 Cambridge University Engineering Department 7
  • 8. Interface Inheritance • IDL interfaces also support inheritance module People { interface Person { void init(in string name, in short age); short getAge(); string getName(); }; // extending the Person interface interface Child : Person { void init(in string name, in short age,in string guardian); string getGuardian(); }; }; • The derived interface Child redefines the init operation and adds a new operation getGuardian while inheriting operations getAge and getName © 2012 Elena Punskaya 8 Cambridge University Engineering Department 8
  • 9. Factories in CORBA • Practically, a scalable system with multiple users needs to have multiple instances of the objects providing the services • A CORBA server typically follows the Factory design pattern to create multiple objects // define constants module factory { // define constants interface Hello { wstring helloWorld (); }; // define constants interface HelloFactory { Hello create (in wstring message); }; }; • HelloFactory is used to create new Hello objects. The Hello object is just the simple object that returns a greeting String to the client. In this example, the factory creates the object with a specified string content http://docs.oracle.com/cd/F49540_01/DOC/java.815/a64683/appcorb1.htm © 2012 Elena Punskaya 9 Cambridge University Engineering Department 9