Upload
puspala-manojkumar
View
239
Download
0
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/#top8/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.html8/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/#top8/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#4468648/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.html8/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_18/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.html8/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.html8/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.html8/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.html8/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_38/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.html8/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