SlideShare a Scribd company logo
1 of 9
Download to read offline
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

More Related Content

What's hot (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 introduction and simple example
Corba introduction and simple example Corba introduction and simple example
Corba introduction and simple example
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecture
 
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
 

Viewers also liked

Energiewetgeving in 2010 en 2011
Energiewetgeving in 2010 en 2011Energiewetgeving in 2010 en 2011
Energiewetgeving in 2010 en 2011Tim Vermeir
 
Interior Design - Greg Hamilton
Interior Design - Greg HamiltonInterior Design - Greg Hamilton
Interior Design - Greg HamiltonGreg Hamilton
 
都市病系列:脂肪肝 Fatty liver 蘋果日報報導:http://bit.ly/AppleBMI 購買:http://bit.ly/rtwzhshp
都市病系列:脂肪肝 Fatty liver 蘋果日報報導:http://bit.ly/AppleBMI 購買:http://bit.ly/rtwzhshp都市病系列:脂肪肝 Fatty liver 蘋果日報報導:http://bit.ly/AppleBMI 購買:http://bit.ly/rtwzhshp
都市病系列:脂肪肝 Fatty liver 蘋果日報報導:http://bit.ly/AppleBMI 購買:http://bit.ly/rtwzhshpPeter Chan
 
Powerpointtema4
Powerpointtema4Powerpointtema4
Powerpointtema4vitita
 
US Obesity Stats Map
US Obesity Stats MapUS Obesity Stats Map
US Obesity Stats MapPeter Chan
 
Os trasnos dos libros recomendan para o verán
Os trasnos dos libros recomendan para o veránOs trasnos dos libros recomendan para o verán
Os trasnos dos libros recomendan para o veránAnxos bibliotequeira
 
The Wise Old Man
The Wise Old ManThe Wise Old Man
The Wise Old ManPeter Chan
 
Smu Guildhall Keynote
Smu Guildhall KeynoteSmu Guildhall Keynote
Smu Guildhall KeynoteMitch Lasky
 
Decentrale Energieproductie
Decentrale EnergieproductieDecentrale Energieproductie
Decentrale EnergieproductieTim Vermeir
 
Micro-Mar
Micro-MarMicro-Mar
Micro-Marpushker
 
Accelerating Particle Image Velocimetry using Hybrid Architectures
Accelerating Particle Image Velocimetry using Hybrid ArchitecturesAccelerating Particle Image Velocimetry using Hybrid Architectures
Accelerating Particle Image Velocimetry using Hybrid ArchitecturesVivek Venugopalan
 
Exhibit Design - Greg Hamilton
Exhibit Design - Greg HamiltonExhibit Design - Greg Hamilton
Exhibit Design - Greg HamiltonGreg Hamilton
 
Professional Identity2
Professional Identity2Professional Identity2
Professional Identity2Halby33
 

Viewers also liked (20)

Energiewetgeving in 2010 en 2011
Energiewetgeving in 2010 en 2011Energiewetgeving in 2010 en 2011
Energiewetgeving in 2010 en 2011
 
Intro to marketing
Intro to marketingIntro to marketing
Intro to marketing
 
Interior Design - Greg Hamilton
Interior Design - Greg HamiltonInterior Design - Greg Hamilton
Interior Design - Greg Hamilton
 
Acrósticos 1º eso d (1)
Acrósticos 1º eso d (1)Acrósticos 1º eso d (1)
Acrósticos 1º eso d (1)
 
Alvarez BláZquez
Alvarez BláZquezAlvarez BláZquez
Alvarez BláZquez
 
都市病系列:脂肪肝 Fatty liver 蘋果日報報導:http://bit.ly/AppleBMI 購買:http://bit.ly/rtwzhshp
都市病系列:脂肪肝 Fatty liver 蘋果日報報導:http://bit.ly/AppleBMI 購買:http://bit.ly/rtwzhshp都市病系列:脂肪肝 Fatty liver 蘋果日報報導:http://bit.ly/AppleBMI 購買:http://bit.ly/rtwzhshp
都市病系列:脂肪肝 Fatty liver 蘋果日報報導:http://bit.ly/AppleBMI 購買:http://bit.ly/rtwzhshp
 
Powerpointtema4
Powerpointtema4Powerpointtema4
Powerpointtema4
 
Leire & Iratxe
Leire & IratxeLeire & Iratxe
Leire & Iratxe
 
US Obesity Stats Map
US Obesity Stats MapUS Obesity Stats Map
US Obesity Stats Map
 
Os trasnos dos libros recomendan para o verán
Os trasnos dos libros recomendan para o veránOs trasnos dos libros recomendan para o verán
Os trasnos dos libros recomendan para o verán
 
Teenroom
TeenroomTeenroom
Teenroom
 
The Wise Old Man
The Wise Old ManThe Wise Old Man
The Wise Old Man
 
Valoración de lectura
Valoración de lecturaValoración de lectura
Valoración de lectura
 
Cng Muthu 2
Cng Muthu 2Cng Muthu 2
Cng Muthu 2
 
Smu Guildhall Keynote
Smu Guildhall KeynoteSmu Guildhall Keynote
Smu Guildhall Keynote
 
Decentrale Energieproductie
Decentrale EnergieproductieDecentrale Energieproductie
Decentrale Energieproductie
 
Micro-Mar
Micro-MarMicro-Mar
Micro-Mar
 
Accelerating Particle Image Velocimetry using Hybrid Architectures
Accelerating Particle Image Velocimetry using Hybrid ArchitecturesAccelerating Particle Image Velocimetry using Hybrid Architectures
Accelerating Particle Image Velocimetry using Hybrid Architectures
 
Exhibit Design - Greg Hamilton
Exhibit Design - Greg HamiltonExhibit Design - Greg Hamilton
Exhibit Design - Greg Hamilton
 
Professional Identity2
Professional Identity2Professional Identity2
Professional Identity2
 

Similar to 3 f6 9a_corba

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
 

Similar to 3 f6 9a_corba (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
 

More from op205

3 f6 security
3 f6 security3 f6 security
3 f6 securityop205
 
3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologies3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologiesop205
 
3 f6 10_testing
3 f6 10_testing3 f6 10_testing
3 f6 10_testingop205
 
3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corbaop205
 
3 f6 9_distributed_systems
3 f6 9_distributed_systems3 f6 9_distributed_systems
3 f6 9_distributed_systemsop205
 
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
 

More from op205 (20)

3 f6 security
3 f6 security3 f6 security
3 f6 security
 
3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologies3 f6 11_softdevmethodologies
3 f6 11_softdevmethodologies
 
3 f6 10_testing
3 f6 10_testing3 f6 10_testing
3 f6 10_testing
 
3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corba
 
3 f6 9_distributed_systems
3 f6 9_distributed_systems3 f6 9_distributed_systems
3 f6 9_distributed_systems
 
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
 

Recently uploaded

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Recently uploaded (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 

3 f6 9a_corba

  • 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