Explaining Corba

Embed Size (px)

Citation preview

  • 8/8/2019 Explaining Corba

    1/18

  • 8/8/2019 Explaining Corba

    2/18

  • 8/8/2019 Explaining Corba

    3/18

    What is an ORB?

    For objects to be used across a network, a client/server relationship must be established.

    The middleware that makes this happen is called the Object Request Broker (ORB). It is

    the ORB's job to:

    intercept a call from the client

    find the correct object

    pass it the parameters

    invoke its method

    return the results to the client

    Because the ORB can make this transaction happen between applications on different

    machines in heterogeneous distributed environments, this process seems transparent to

    the client. ORBs provide the flexibility of communication between different operatingsystems, environments, and languages. They allow existing components to be used by

    developers far and wide.

    CORBA is a standard for ORBs

    Of course, for this process to work well, a standard is required. A consortium of 700+

    companies formed the Object Management Group (OMG) to create just such a standard.

    They introduced this standard as the Common Object Request Broker Architecture(CORBA) in 1991. According to the OMG, "CORBA allows applications to

    communicate with one another no matter where they are located or who has designed

    them."1This standard also defined the Interface Definition Language (IDL) and theApplication Programming Interface (API) that makes client/server object interactions

    work in a specific implementation of an ORB. To top of page

    Why is CORBA important in a networked

    environment?

    CORBA offers many benefits to a networked environment.

    1. Object reuse - CORBA allows wide-spread use of existing components.

    2. Flexibility - CORBA allows developers to choose, for each component of their system,

    the:

    operating system

    execution environment

    programming language

    http://holly.colostate.edu/~mabrake/#tophttp://holly.colostate.edu/~mabrake/#top
  • 8/8/2019 Explaining Corba

    4/18

    3. Processing speed - By directly invoking methods on a server, a client can pass

    parameters using precompiled stubs or can generate them dynamically using CORBA's

    invocation services.

    4. Scalable server-to-server infrastructure - The CORBA ORB communicates with

    pools of server business objects, dispatching requests to the first available object. Thisprovides a load balancing function for the incoming client requests. To top of page

    How does CORBA work?

    The ORB communication functions are central to how CORBA works, so let's look at

    how the ORB works before we get to the details of CORBA.

    First, ORB basics.

    The ORB manages all communication between components. Notice the levels of

    architecture in Figure 2.

    Figure 2, "Distributed Object Computing with CORBA,"http://www.cs.wustl.edu/~schmidt/corba-overview.html

    The OMG ORB model can be divided into two main parts:

    1. Application oriented components

    o Application Interfaces

    o Domain Interfaces

    o Common Facilities

    2. System oriented components

    http://holly.colostate.edu/~mabrake/#tophttp://www.cs.wustl.edu/~schmidt/corba.htmlhttp://www.cs.wustl.edu/~schmidt/corba.htmlhttp://holly.colostate.edu/~mabrake/#tophttp://www.cs.wustl.edu/~schmidt/corba.html
  • 8/8/2019 Explaining Corba

    5/18

  • 8/8/2019 Explaining Corba

    6/18

    objects. The Implementation Repository stores the information that ORBs use to locate

    and activate implementations of objects.To top of page

    CORBA Overall Architecture

    The overall architecture of CORBA is divided into three layers as illustrated in Figure 4.

    Figure 4.

    "DCOM and CORBA Side by Side, Step by Step, and Layer by Layer,"http://www.bell-labs.com/~emerald/dcom_corba/Paper.html

    In the top layer (Basic Programming Architecture) a client may request an object and

    invoke its methods. The server responds by creating an object instance and making it

    available to the client. The middle layer (Remoting Architecture) makes it seem as if theclient and server are in the same address space. Sending data across different address

    spaces requires a standard format for packing and unpacking the transmission.

    Marshaling is the term used when a method call's parameters are packed at a client'sspace or when return values are packed at a server's space. Unmarshaling is the

    unpacking of the standard format to a data presentation appropriate for the address space

    of the receiving process. The ORB serves as the object bus. The Object Adaptor connectsthe Object to the ORB. The Libraries on the client-side and server-side are linked at

    compile time. The bottom layer (Wire Protocol Architecture) is where the wire protocol

    is specified for the support of a client and a server on different machines.

    The basic architectures of CORBA and COM are similar. But they are different in manyways. To top of page

    Why is CORBA better than COM?

    http://holly.colostate.edu/~mabrake/#tophttp://holly.colostate.edu/~mabrake/#tophttp://www.bell-labs.com/~emerald/dcom_corba/Paper.htmlhttp://www.bell-labs.com/~emerald/dcom_corba/Paper.htmlhttp://holly.colostate.edu/~mabrake/#tophttp://holly.colostate.edu/~mabrake/#tophttp://www.bell-labs.com/~emerald/dcom_corba/Paper.htmlhttp://holly.colostate.edu/~mabrake/#top
  • 8/8/2019 Explaining Corba

    7/18

    CORBA and COM both strive to accomplish communication between clients and servers,

    but they do it in different ways and for different reasons.

    COM Background

    Microsoft created Object Linking and Embedding (OLE) technology in 1990 soWindows would have cut-and-paste capabilities. OLE2 permitted embedding of onedocument type inside another. This version was renamed the Common Object Model

    (COM). The following version included a set of code libraries to provide the same

    interfaces, plus it enabled communication between components on both networkedmachines and single platforms. This was called Distributed COM (DCOM). Due to

    Microsoft's Internet focus in 1995 it was renamed again to ActiveX, but is now

    commonly referred to as COM, this time an acronym for the Component Object Model.

    COM Versus CORBA

    Although CORBA and COM both allow applications to communicate in order to useobjects, they do not accomplish this task equally well. The following comparison looks atthe usability of COM and CORBA across the Object Web.

    Comparison COM CORBA

    Architecture,

    Definition,

    Specification

    Lack of overall

    architecture

    Multiple retargeting andredefining in order to

    promote Microsoft

    products

    Opposed to publicspecifications

    One constant vision since

    1989

    Architecture and individualspecifications are vendor

    neutral

    Direction and definition arepublic processes, including

    a broad cross-industry

    consensus

    Specifications are availableto everyone

    Free rights to implement

    software using thespecifications

    Cross-Platform

    Support

    Implementations work on

    Microsoft operatingsystems

    According to Microsoftrepresentatives, where

    specification and

    Microsoftimplementations differ,

    Implementations support

    multiple platforms,including Microsoft.

  • 8/8/2019 Explaining Corba

    8/18

    Microsoft considers its

    own implementation to be

    definitive.3

    Cross-LanguageSupport

    C++

    Support for otherprogramming languages

    is a problem. DCOM

    requires passing C-stylememory pointers between

    applications.

    Designed from thebeginning to be language-

    neutral to accommodate awide range of languages

    including:C, C++, Ada,

    Smalltalk, COBOL, Java,

    Visual Basic, FORTRAN

    Maturity and

    Deployment

    Continuously changed

    specifications and code

    Key documents are

    available in draft form

    only

    Available to end-users inthe last couple years

    Specifications published in

    1991 Broad industry consensus

    and support

    Seven year use around the

    world

    Support for WWW

    Based on native machine

    code, requiring a separate

    version of every objectcontrol for every browser

    platform

    Java mobile code easily

    deals with cross-platformsupport

    Security - All

    distributed

    communication

    involves risk

    Confidentiality

    (using encryption)

    Authentification

    (confirmationmessages came from

    objects entitled to

    issue them)

    Compiled for C++

    without any security

    restrictions No confidentiality

    No authentification

    Java applets are insulated

    from direct contact with thehost system by running on a

    virtual machine. This

    provides a "sandbox"around the applet that

    enforces security

    restrictions.

    Confidentiality system Authentification system

    Non-repudiation system

    ensures that users cannotdeny their commitments

    later, accommodating

    international legal

    requirements for securityauditing

    Scalability Not designed for large- Designed for Internet-scale

  • 8/8/2019 Explaining Corba

    9/18

    scale networks

    Uses reference counts that

    require programmers tomanipulate them by hand

    Uses keep alive messages(pinging) every two

    minutes. After sixminutes of no response,

    the connection between

    client and server issevered.

    applications from thebeginning.

    No reference counts

    necessary

    No keep alive messages

    necessary

    To sum up this comparison, COM was never designed for Internet-scale inter-objectcommunication. It is merely an adaptation of an architecture originally designed for a

    single machine with non-distributed tasks. It falls short in efficiently handling the Object

    Web. Microsoft has tried to scale its architecture to the enterprise and internet to promotethe use of Microsoft products.

    Conversely, CORBA was primarily designed to support interoperability across network

    boundaries. The OMG has worked toward creating standards for object component

    software for the good of all who use these objects. By successfully creatinginteroperability of disparate systems, CORBA is helping the evolution of the Object Web.To top of page

    Conclusion

    This next generation Web must be able to handle Internet, intranet, and extranet

    interactions. Business-to-business and consumer-to-business transactions are pushing the

    use of distributed objects. The Web is evolving into the role of a full-blown client/servermedium of distributed computing. CORBA creates a distributed objects infrastructure

    which makes activating and accessing remote objects transparent. CORBA offers a

    flexibility and adaptability that give it a promising future.

    Footnotes

    1CORBA for Beginners, http://www.omg.org/news/begin.htm2CORBA Overview, Object Management Group, 1995,http://www.infosys.tuwien.ac.at/Research/Corba/OMG/arch2.htm#446864

    http://holly.colostate.edu/~mabrake/#tophttp://www.omg.org/news/begin.htmhttp://www.infosys.tuwien.ac.at/Research/Corba/OMG/arch2.htm#446864http://holly.colostate.edu/~mabrake/#tophttp://www.omg.org/news/begin.htmhttp://www.infosys.tuwien.ac.at/Research/Corba/OMG/arch2.htm#446864
  • 8/8/2019 Explaining Corba

    10/18

    3Comparing ActiveX and CORBA/IIOP, http://www.omg.org/news/activex.htmTo top ofpage

    References

    A Brief Tutorial on CORBA, http://www.cs.indiana.edu/hyplan/kksiazek/tuto.html

    BYTE Magazine - October 1997 / Features / CORBA, Java, and the Object Web,http://www.byte.com/art/9710/sec6/art3.htm

    Comparing ActiveX and CORBA/IIOP, http://www.omg.org/news/activex.htm

    CORBA for Beginners, http://www.omg.org/news/begin.htm

    CORBA Overview, Object Management Group, 1995,

    http://www.infosys.tuwien.ac.at/Research/Corba/OMG/arch2.htm#446864

    CORBA Research Overview,http://www.cs.wustl.edu/~schmidt/corba-research-overview.html

    The Corporate Use of Object Technology,

    http://www.cutter.com/itgroup/reports/corpuse.htm

    DCOM and CORBA Side by Side, Step by Step, and Layer by Layer, http://www.bell-labs.com/~emerald/dcom_corba/Paper.html

    Distributed Object Computing with CORBA,http://www.cs.wustl.edu/~schmidt/corba.html

    Microsoft Finally Consents to Marriage of Software Models,

    http://www.omg.org/news/glea.htm

    OMG's Press Releases 1998, http://www.omg.org/news/pr98/9_9.htm

    Overview of CORBA, http://www.cs.wustl.edu/~schmidt/corba-overview.htmlTo top ofpage

    Last Update 10/9/98

    Next:Client and Server PerspectivesUp:INTEGRATING CONTROL SYSTEMS TO

    Previous:INTRODUCTION

    http://www.omg.org/news/activex.htmhttp://www.omg.org/news/activex.htmhttp://holly.colostate.edu/~mabrake/#tophttp://holly.colostate.edu/~mabrake/#tophttp://www.cs.indiana.edu/hyplan/kksiazek/tuto.htmlhttp://www.byte.com/art/9710/sec6/art3.htmhttp://www.omg.org/news/activex.htmhttp://www.omg.org/news/begin.htmhttp://www.infosys.tuwien.ac.at/Research/Corba/OMG/arch2.htm#446864http://www.cs.wustl.edu/~schmidt/corba.htmlhttp://www.cs.wustl.edu/~schmidt/corba.htmlhttp://www.cs.wustl.edu/~schmidt/corba.htmlhttp://www.cutter.com/itgroup/reports/corpuse.htmhttp://www.bell-labs.com/~emerald/dcom_corba/Paper.htmlhttp://www.bell-labs.com/~emerald/dcom_corba/Paper.htmlhttp://www.cs.wustl.edu/~schmidt/corba.htmlhttp://www.omg.org/news/glea.htmhttp://www.omg.org/news/pr98/9_9.htmhttp://www.cs.wustl.edu/~schmidt/corba.htmlhttp://holly.colostate.edu/~mabrake/#tophttp://holly.colostate.edu/~mabrake/#tophttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node1.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node1.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node1.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://www.omg.org/news/activex.htmhttp://holly.colostate.edu/~mabrake/#tophttp://holly.colostate.edu/~mabrake/#tophttp://www.cs.indiana.edu/hyplan/kksiazek/tuto.htmlhttp://www.byte.com/art/9710/sec6/art3.htmhttp://www.omg.org/news/activex.htmhttp://www.omg.org/news/begin.htmhttp://www.infosys.tuwien.ac.at/Research/Corba/OMG/arch2.htm#446864http://www.cs.wustl.edu/~schmidt/corba.htmlhttp://www.cs.wustl.edu/~schmidt/corba.htmlhttp://www.cutter.com/itgroup/reports/corpuse.htmhttp://www.bell-labs.com/~emerald/dcom_corba/Paper.htmlhttp://www.bell-labs.com/~emerald/dcom_corba/Paper.htmlhttp://www.cs.wustl.edu/~schmidt/corba.htmlhttp://www.omg.org/news/glea.htmhttp://www.omg.org/news/pr98/9_9.htmhttp://www.cs.wustl.edu/~schmidt/corba.htmlhttp://holly.colostate.edu/~mabrake/#tophttp://holly.colostate.edu/~mabrake/#tophttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node1.html
  • 8/8/2019 Explaining Corba

    11/18

    Next:THE CORBA ARCHITECTUREUp:INTEGRATING CONTROL SYSTEMS

    TOPrevious:INTEGRATING CONTROL SYSTEMS TO

    INTRODUCTION

    A considerable number of high-level beam dynamics (BD) applications have been

    developed for the operation and monitoring of the SLS accelerator facilities. Fig. 1

    captures typical components required by BD applications. Their number and demand oncomputer resources motivated, in part, a desire for a distributed computing environment.

    To this end, the Common Object Request Broker (CORBA), an emerging standard for

    Distributed Object Computing (DOC), has been employed. Its use at the SLS has allowed

    to realize the potential benefits of distributed computing, and to simultaneously exploit

    features inherent to CORBA such as the interoperability between objects of different race(language) and creed (platform).

    Figure 1: DOC components serving BD applications

    Complex tasks, such as the modeling of the SLS accelerators, can thus be handled bydedicated computers, and developed into reusable components that can be accessed

    through remote method invocations. Persevering with the notion of DOC and developing

    the entire suite of BD components as CORBA objects, further elevates the level at which

    applications are designed and implemented. Platforms hosting high-level softwareapplications are no longer limited to the libraries and extensions available to the host

    operating system as the introduction of a CORBA middleware layer serves to extendthe

    developers chosen programming language. BD application developers are, henceforth,

    http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node1.html#fig_1http://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node1.html#fig_1
  • 8/8/2019 Explaining Corba

    12/18

    able to focus on the specifics of the application at hand, such as determining user-friendly

    Graphical User Interfaces (GUIs), rather than struggle with the intricate internals of

    numerous Application Program Interfaces (APIs) and low-level communicationprotocols.

    Next:THE CORBA ARCHITECTUREUp:INTEGRATING CONTROL SYSTEMSTOPrevious:INTEGRATING CONTROL SYSTEMS TO

    Michael Boege2003-11-23

    THE CORBA ARCHITECTURE

    The most fundamental component of CORBA is the Object Request Broker (ORB)whose task is to facilitate communication between objects. Given an Interoperable Object

    Reference (IOR), the ORB is able to locate target objects and transmit data to and from

    remote method invocations. The interface to a CORBA object is specified using the

    CORBA Interface Definition Language (IDL). An IDL compiler translates the IDLdefinition into an application programming language, such as C++, Java or Tcl/Tk,

    generating IDL stubs and skeletons that respectively provide the framework for client-

    side and server-side proxy code. Compilation of applications incorporating IDL stubsprovides a strongly-typed Static Invocation Interface (SII). Conversely, the Dynamic

    Invocation Interface (DII) and the Dynamic Skeleton Interface (DSI) allows objects to be

    created withoutpriorknowledge of the IDL interface. Requests and responses between

    objects are delivered in a standard format defined by the Internet Inter-ORB Protocol(IIOP). Requests are marshaled in a platform independent format, by the client stub (or in

    the DII), and unmarshaled on the server-side into a platform specific format by the IDL

    skeleton (or in the DSI) and the object adapter, which serves as a mediator between anobject's implementation, the servant, and its ORB, thereby decoupling user code from

    ORB processing. The Portable Object Adapter (POA) provides CORBA objects with a

    common set of methods for accessing ORB functions, ranging from user authentication toobject activation and object persistence. It's most basic task, however, is to create object

    references and to dispatch ORB requests aimed at target objects to their respective

    servants. The characteristics of the POA are defined at creation time by a set of POApolicies. A server can host any number of POAs, each with its own set of policies to

    govern the processing of requests. Among the more advanced features of the POA is theservant manager which assumes the role of reactivating server objects (servants) as theyare required. It also provides a mechanism to save and restore an object's state. This,

    coupled with the use of the Implementation Repository (IMR), that handles the

    automated start and restart of servers, realizes object persistency. Requests for server

    reactivation can, alternatively, be delegated to a single default servant which providesimplementations for many objects, thereby increasing the scalability for CORBA servers.

    http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.html
  • 8/8/2019 Explaining Corba

    13/18

    Figure 2: The CORBA client-server architecture

    Fig. 2 shows the components of the CORBA architectural model. The ORB core isimplemented as a runtime library linked into client-server applications.

    Subsections

    Client and Server Perspectives Exploiting the POA

    The Event Service

    Next:Client and Server PerspectivesUp:INTEGRATING CONTROL SYSTEMS TO

    Previous:INTRODUCTION

    Michael Boege2003-11-23

    Next:Exploiting the POAUp:THE CORBA ARCHITECTUREPrevious:THECORBA ARCHITECTURE

    Client and Server Perspectives

    Despite the plethora of new terms and concepts introduced, CORBA, nevertheless,

    remains true to the DOC objective of providing developers with familiar object-oriented

    techniques with which to program distributed applications. Indeed, from the client

    perspective, once an IOR is obtained (typically from a Naming Service which mapsnames to object references) a remote method invocation essentially takes on the

    appearance of a local function call: object- operation(arguments);whilst the

    communication details of client-server programming are essentially hidden from the

    client, a more intimate involvement with the ORB is required when developing servers.In particular appropriate POA policies need to be chosen to configure object adapters that

    best fulfill the requirements of the server.

    Michael Boege

    2003-11-23

    http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.html#fig_2http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node4.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node1.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node1.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node4.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node4.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node1.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.html#fig_2http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node4.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node1.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node4.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.html
  • 8/8/2019 Explaining Corba

    14/18

    Next:The Event ServiceUp:THE CORBA ARCHITECTUREPrevious:Client and

    Server Perspectives

    Exploiting the POA

    Transient and persistent objects are two categories of objects that relate to the lifespan

    policies of the POA. A transient object is short-lived with a lifetime that is bounded bythe POA in which it was created. A persistent object, on the other hand, is long-lived with

    a lifetime that is unbounded. It can consequently outlive the very server process wherein

    it was created. This has several advantages. A server may be shutdown whenever it is not

    needed to save resources. Server updates can be implemented transparently by restartingthe server. In developing a DOC environment, the command to start a server may be

    replaced with a remote shell invocation and the next server instance run remotely,

    without the client being aware. Persistent objects also maintain their identify after a

    server crash. Whilst the POA supports and implements persistent objects, it does nothandle the administrative aspects of server activations. This is managed by the IMR

    which stores an activation record for each server process; it is consulted automaticallywhenever a (re-)launch of a server is mandated. Thus, by virtue of the capabilities of the

    POA, and the activation techniques of the IMR, BD applications are never starved of the

    servers they require.

    Next:The Event ServiceUp:THE CORBA ARCHITECTUREPrevious:Client and

    Server PerspectivesMichael Boege

    2003-11-23

    Next:THE SLS CORBA SERVERSUp:THE CORBA ARCHITECTUREPrevious:

    Exploiting the POA

    The Event Service

    A reactive, event-based, form of programming is also supported by the CORBA Event

    Service which provides services for the creation and management of CORBA eventchannels. These may be used by CORBA supplier/consumer clients to propagate events

    asynchronously on a push or pull basis. Event channels are created and registered withthe CORBA Naming Service allowing clients to obtain object references in the usualmanner. Communication is anonymous in that the supplier does not require knowledge of

    the receiving consumers. The CORBA Event Service has been usefully employed in the

    monitoring of hardware devices and in the distribution of recalibrated data to clientconsumers.

    Michael Boege2003-11-23

    http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node6.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node4.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node4.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node6.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node3.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node6.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node2.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node4.html
  • 8/8/2019 Explaining Corba

    15/18

    Next:A COMPLEX CORBA APPLICATIONUp:INTEGRATING CONTROL

    SYSTEMS TOPrevious:The Event Service

    THE SLS CORBA SERVERS

    Server objects, typically of persistent type, have been developed using the CORBA 2.3

    compliant product MICO [1]. The services which these objects provide are briefly

    reported here (for a more details see [2] and [3]):

    Accelerator Model: A dedicated host (`` Model Server'' in Fig.3) runs the servers

    (``TRACY Servers'') that perform the modeling of transfer-lines, booster and storage

    ring. Procedures utilize selected routines from the TRACY accelerator physics

    library [4], enabling clients to employ accelerator optimization methods online.Device Controls: The CDEV C++ class controls library provides the API to the EPICS-

    based accelerator device control system. The ``CDEV Server'' running on the host ``

    CORBA Server'' supplies functionality for both synchronous and asynchronousinteractions with the control system. Monitored devices and recalibrated data are

    propagated to clients through CORBA event channels. Recently an interface to the EZCA

    C controls library (``EZCA Server'') has been added for increased performance.

    Database Access: A database server provides access to Oracle instances through the

    Oracle Template Library (OTL) and the Oracle Call Interface (OCI). Methods executing

    SQL statements that perform database retrieval and modification operations have beenprovided.

    Logging Facility: A CORBA message server has been developed using the the UNIXsyslog logging facility. Run-time messages are sent to the logger with various priority

    levels, the threshold for which can be adjusted dynamically for any given servant.

    Next:A COMPLEX CORBA APPLICATIONUp:INTEGRATING CONTROL

    SYSTEMS TOPrevious:The Event ServiceMichael Boege

    2003-11-23

    Next:The Slow Orbit FeedbackUp:INTEGRATING CONTROL SYSTEMS TO

    Previous:THE SLS CORBA SERVERS

    A COMPLEX CORBA APPLICATION

    http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_mico01http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_corbapac01http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_icalepcs01http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.html#fig_3http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.html#fig_3http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_tracy99http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node6.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node6.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_mico01http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_corbapac01http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_icalepcs01http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.html#fig_3http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_tracy99http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node5.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/TOPB010.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node6.html
  • 8/8/2019 Explaining Corba

    16/18

    One of the most complex CORBA applications at the SLS is the implementation of a

    slow and the system integration of a fast global orbit feedback system. The system is

    based on 72 Beam Position Monitors (BPMs) and 72 correctors in the horizontal andvertical plane distributed around the storage ring. The corrector/BPM response matrix is

    ``inverted'' using SVD in case of a non quadratic response matrix taking into account all

    eigenvalues. The realization of the global orbit feedback has been carried out in two

    steps. A Slow Orbit Feedback (SOFB) with relaxed requirements ( 3 Hz correctionrate) is in operation since August 2001 [5]. The experience gained with the various

    subsystems served as a basis for the implementation of a Fast Orbit Feedback (FOFB)

    (4 KHz orbit sampling rate) which is presently under commissioning [6].

    Subsections

    The Slow Orbit Feedback (SOFB)

    The Fast Orbit Feedback (FOFB)

    Michael Boege

    2003-11-23

    Next:The Fast Orbit FeedbackUp:A COMPLEX CORBA APPLICATIONPrevious:A COMPLEX CORBA APPLICATION

    The Slow Orbit Feedback (SOFB)

    Since the beginning of SLS operation global orbit corrections have been successfully

    applied manually by the operators with the help of the Tcl/Tk CORBA GUI ``oco Client''.Due to the inherent modularity of the CORBA environment, thoroughly tested underlyingCORBA components like the ``TRACY Server'' and the ``CDEV Server'' could be

    combined to implement the SOFB. In this case the operator is ``replaced'' by a C++

    CORBA client (``Feedback Client'') which initiates an orbit correction at a given rate (see

    Fig. 3).

    http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_sofbepac02http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_fofbpac03http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node9.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node9.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.html#fig_3http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node9.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_sofbepac02http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_fofbpac03http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node9.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node9.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.html#fig_3
  • 8/8/2019 Explaining Corba

    17/18

    Figure: Schematic View of the SOFB: the ``Feedback Client'' on the `` Model Server''level replaces the operator driven GUI ``oco Client'' on the `` Console'' level. It gets BPM

    data from the ``BPM Server'', asks the ``TRACY Server'' for the model predicted

    corrector pattern and applies the correction through the ``CDEV Server''.

    For the SOFB the digital BPM system [7] is operated in an injection triggered mode

    which provides ``stroboscopic'' position readings averaged over 2 ms at a rate of 3 Hz

    with a resolution 0.3 m. A ``BPM Server'' monitors, collects and sends the BPM

    data to the ``Feedback Client'' with 2 Hz. A low pass filter is applied to several successiveBPM data sets. The data are then sent to the ``TRACY Server'' which predicts a corrector

    pattern to restore the ``Golden Orbit'' which is defined by the orbit centered in the

    quadrupoles. Additionally, local bumps at the location of the insertion devices are taken

    into account in order to steer the photon beam according to the demands of theexperiments. Finally, the proposed correction is applied by toggling between the

    horizontal and the vertical plane resulting in a SOFB correction rate of 0.4 Hz.

    Next:The Fast Orbit FeedbackUp:A COMPLEX CORBA APPLICATIONPrevious:A COMPLEX CORBA APPLICATION

    http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_bpmpac01http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node9.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node9.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_bpmpac01http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node9.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.html
  • 8/8/2019 Explaining Corba

    18/18

    Michael Boege2003-11-23

    Next:CONCLUSIONUp:A COMPLEX CORBA APPLICATIONPrevious:The Slow

    Orbit Feedback

    The Fast Orbit Feedback (FOFB)

    In the SLS storage ring a properly chosen BPM/corrector layout leads to an ``inverted''

    response matrix where only the diagonal and their adjacent coefficients have non zero

    values. Thus, corrector settings are only determined by position readings from nearbyBPMs [8]. This feature allows to run the FOFB decentralized, integrated in the 12 BPM

    stations of the storage ring where each of the stations handles 6 BPMs and correctors.

    The BPM data are transmitted over fiber optic links between adjacent stations. In order to

    provide well defined starting conditions for the FOFB the SOFB corrects the orbit to

    5 m rms. The FOFB gets initialized and started through the SOFB which downloads

    the ``Golden Orbit'', 6 6 sub-matrices of the ``inverted'' 72 72 response matrix, 1 6

    sub-matrices of the ``inverted'' 72 1 off-energy response matrix and the FOFB loop PID

    parameters to the BPM stations (see Fig. 3). The SOFB continues to run in a ``watchdog''

    like passive mode without touching any corrector other than the RF frequency. But itkeeps monitoring BPM and corrector values. Whenever a BPM is switched off, declared

    faulty or a corrector is close to saturation the FOFB is stopped and restarted with adapted

    settings. The off-energy content of the horizontal orbit is taken into account by the FOFB

    but corrected by the SOFB.

    Next:CONCLUSIONUp:A COMPLEX CORBA APPLICATIONPrevious:The Slow

    Orbit FeedbackMichael Boege

    2003-11-23

    http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node10.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_fofbpac99http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.html#fig_3http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node10.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node10.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node10.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node10.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node11.html#ref_fofbpac99http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.html#fig_3http://slsbd.psi.ch/pub/slsnotes/tmeta030225/node10.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node7.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.htmlhttp://slsbd.psi.ch/pub/slsnotes/tmeta030225/node8.html