CORBA Technologies and Beyond Nanbor Wang [email protected] Tech-X Corporation Boulder, CO ORNL-IU...
-
Upload
alyson-collins -
Category
Documents
-
view
213 -
download
0
Transcript of CORBA Technologies and Beyond Nanbor Wang [email protected] Tech-X Corporation Boulder, CO ORNL-IU...
CORBA Technologies and Beyond
Nanbor [email protected] Corporation
Boulder, CO
ORNL-IU Workshop on Computational Framework in Fusion,
Oak Ridge, TN, June 8, 2005
CORBA and Beyond
Nanbor Wang
Outlines• Overview of CORBA
– CORBA Object Model– Interface Definition Language– Portable Object Adapter– Common Object Services– Domain-specific QoS concerns– CORBA application domains
• CORBA-NG – CORBA Component Model (CCM)
– New paradigm for application development
– Component Implementations Definition Language
– Application assembling, packaging, deployment and configuration
– CCM application domains• Beyond CORBA
– Scientific computation– Distributed and Parallel High-
Performance Computing – Synergy with Common Component
Architecture
Hardware
Domain-SpecificServices
CommonMiddleware Services
DistributionMiddleware
Host InfrastructureMiddleware
Operating Systems & Protocols
Applications
CORBA and Beyond
Nanbor Wang
Driving Force of CORBA
• Traditional programming paradigm for distributed applications– Socket, RPC– Developers implement all aspects of applications
• Distributed middleware abstracts away many aspects of using remote and local objects
• Provide a foundation for higher-level services• CORBA is an OMG specification, there are many
implementations
RTP
DNS
HTTP
UDP TCP
IP
TELNET
Ethernet ATM FDDI
Fibre Channel
FTP
INTERNETWORKING ARCH
TFTP
Win2K Linux LynxOS
Solaris VxWorks
Middleware
MiddlewareServices
MiddlewareApplications
MIDDLEWARE ARCH
CORBA and Beyond
Nanbor Wang
CORBA Object Model
• Location transparency, language interoperability• Parameter marshaling/demarshaling• Connection management• Object activation• Making client simple
CORBA and Beyond
Nanbor Wang
Interface Definition Language• Separate interface and
implementation• External view of objects (as
interfaces)Interface Echo { string echo_string (in string message);
};
• Well-documented standard types– Interface, module, sequence, array,
struct, enum, valuetype, etc.• IDL compiler generates object
proxies and server skeletons• Mappings for “common” languages
– C, C++, Java, Ada, Perl/Python, etc.– Memory management rules
StubFiles
ImplFiles
Generated Hand-Written
SkeletonFiles
Generates Inherits
Server
IDL Compiler
IDL File
CORBA and Beyond
Nanbor Wang
Portable Object Adapter• Demultiplex incoming
invocations• Act as a policy management
domain• Standardize server
configuration interfaces• Enable portable object
implementations (servants) – Object activation strategies– Object reference lifecycle– Sharing an object
implementation among multiple instances
CORBA and Beyond
Nanbor Wang
Common Object Services• Services common for building
applications of various domains– Naming Service – white page directory
service– Trading Service – yellow page directory
service– Messaging Service – asynchronous
method invocation standard– Event/Notification Service – Flexible
publisher/subscriber-based broadcasting mechanisms
– Security Service – secure communication and access authorization, firewall traversal specification
– Transaction Service – atomic execution of a series of operations
– A/V Streaming Service – Managing A/V data streams
GPS IFF FLIR
HUD
Nav
WTSAir
Frame
Publishers
Subscribers
push(event)
push(event)
Event Channel
CORBA and Beyond
Nanbor Wang
Domain-Specific QoS• Real-time CORBA
– Static and dynamic scheduling– Custom transport protocol
• Fault-tolerant CORBA– Fault detection, fail-over and recovery through
redundancy• Load-Balancing CORBA
– Load sharing using multiple object instances• Minimum CORBA
– Small footprint applications• Portable interceptor standard
– Injecting non-functional behaviors– Local interface
CORBA and Beyond
Nanbor Wang
CORBA Application Domains
• Enterprise/civil applications– Financial apps– Real-time stock trading– Workflow planning– Embedded controllers– Air-traffic control
Joint ForcesGlobal Info Grid
Joint ForcesGlobal Info Grid
• Military applications– Network-centric warfare/operation– Logistic planning– 3C (Communication, command and
control)– On-board computers
CORBA and Beyond
Nanbor Wang
CORBA Application Domains(cont.)• Scientific
community– Accelerator
control and data acquisition
– NASA space projects
– Medical Imaging
Modalitiese.g., MRI, CT, CR,
Ultrasound, etc.
Modalitiese.g., MRI, CT, CR,
Ultrasound, etc.
CORBA and Beyond
Nanbor Wang
Real-time Avionic Applications
• Challenges– Real-time periodic
processing– Complex dependencies– Very low latency
CORBA and Beyond
Nanbor Wang
Global PCS Applications
• Challenges– Long latency satellite
links– High-reliability– Prioritization
CORBA and Beyond
Nanbor Wang
Software Design Abstractions for Large-scale Distributed Applications
Problem•Distributed app & middleware functionality is subject to change since it’s often reused in unforeseen contexts, e.g., •Accessed from different clients•Run on different platforms•Configured into different run-time contexts
MIDDLEWARE
Solution•Don‘t structure distributed applications & middleware as a monolithic spagetti
• Instead, decompose them into modular classes, frameworks, & components
Solution•Don‘t structure distributed applications & middleware as a monolithic spagetti
• Instead, decompose them into modular classes, frameworks, & components
CORBA and Beyond
Nanbor Wang
New Paradigm for Application Development
• Separation of apps development concerns– Component Server– Component
Implementation Framework
– Deployment and Configuration
• Composing rather than programming applications
Container
COMPONENTEXECUTORS
ComponentHome
POA
Transaction
Security Notification
Persistent
CallbackInterfaces
Int e
rna
lIn
terf
ace
s
Eve
nt
Sinks
Fa
cet s
Rec
ep
tacl
esE
ven
tS
ou
rce
s
ComponentReference
Co
mpo
nen
t C
ont e
xt
Container
COMPONENTEXECUTORS
ComponentHome
POA
CallbackInterfaces
Int e
rna
lIn
t erf
ace
s
Eve
nt
Sin
ksF
ace
t s
Re
cep
tacl
es
Eve
nt
So
urc
es
ComponentReference
Co
mpo
nen
t C
on
t ext
COMPONENT SERVER 1 COMPONENT SERVER 2
ORB
CORBA 2.x defines interfaces & policies, but not implementations
CORBA and Beyond
Nanbor Wang
• A CORBA component can contain ports:
• Facets (provides)
• Offers operation interfaces
• Receptacles (uses)
• Required operation interfaces
• Event sources (publishes & emits)
• Produced events
• Event sinks (consumes)
• Consumed events
• Attributes (attribute)
• Configurable properties
• Each component instance is created & managed by a unique component home
CORBA Component Ports
Attributes
Event
Sinks
Facets
Rec
epta
cles
Eve
ntS
ourc
esComponentReference
ComponentHome
OfferedP
orts
Req
uire
dP
orts
“Re
ceives
Fro
m” “S
end
s T
o”
CORBA and Beyond
Nanbor Wang
Component Implementation Definition Language (CIDL)
• Automate certain server implementations– Introspection– Collaboration with container– Object lifecycle
management– Connection management– Configuration mechanisms– Component
Stub
Impl
Skel
IDL Compiler
IDL
CIDL
CIDL Compiler
Executor IDL
Servants
Executors
IDL Compiler
XMLComponentDescriptors
CORBA and Beyond
Nanbor Wang
Assembling and Packaging
AssemblyMeta-Model
Component Assembler
ComponentDevelopment
ComponentDeployment
AssemblyConstraints
ComponentPackager
PackageMeta-Model
Component
ResourceRequirements
Impl Impl Impl
PropertiesComponent Assembly
ComponentComponent
ComponentComponent
PackageConstraints
Component Package
Component Assembly Component Assembly
• Assembling tools
– Describe how to interconnect components into applications
• Component packaging tools
– Compose implementation & configuration information into deployable assemblies
CORBA and Beyond
Nanbor Wang
Deployment and Configuration
• Component deployment tools
– Automate the deployment of component assemblies to component servers
– Reconcile application needs with deployment target
COMPONENT REPOSITORY
Getconfiguredpackage
Deploymentplan
Creates
Get resource
Domain Administrator
Planner
Node
Node Node
Bridge
Domain
Node
Node Node
Bridge
Creates
Deploys
Executor
CORBA and Beyond
Nanbor Wang
CCM Application Domains
• Civil applications– Logistic
management– ATC
• Military applications– DARPA ARMS
projects– On-board computer
• Scientific applications– ?
NavDisplayRefresh
GPSLocation
RateGenPulse
Rate
GPS
MyLocation
Refresh Ready
Component Server
Rate Generator
Avionics example used throughout tutorial as
typical DRE application
PositioningSensor
DisplayDevice
$CIAO_ROOT/examples/OEP/Display/
CORBA and Beyond
Nanbor Wang
Beyond CORBA• CCM enables application modeling using
higher-level abstractions (GUI modeling)• Scientific computational needs
– Support for FORTRAN– Performance for tightly-coupled, collocated
modules– Support for MPI and parallel execution of modules
• Common Component Architecture addresses many of these insufficiencies
• Combined distributed and parallel paradigms
CORBA and Beyond
Nanbor Wang
Motivations for Mixing Distributed Tech. and Parallelism
• Provide higher abstractions for HPC infrastructure
• Motivating example scenarios:– Provide a different paradigm for partitioning
problems – multi-physics simulations– Combine computing resources of multiple
clusters/computing centers– Provide better utilization of high-CPU number
hardware– Enable parallel data streaming between computing
task and post-processing task
CORBA and Beyond
Nanbor Wang
Remoting CCA Components• Support distributed computation by composing remote-
capable components into an applications efficiently• Hide the distributed aspect from the localized CCA
framework• Provide low-cost mechanisms for connecting
uncompatible CCA infrastructures, e.g., Ccafeine, Dune, Ccain, and SciRUN
Component BComponent A
Conceptual Component A
Remoting ComponentA
Remoting Component B
Distributed Middleware Bus
Component A Component B
CORBA and Beyond
Nanbor Wang
Deploying and Assembling DPHPC Applications
• Local-CCA component centric view:– Local applications – Employ a distributed “builder service” for
registering/requesting distributed ports
• Distributed component centric view:– Two-tier deployment – remote components
and their implementations
• Grid view:– Making distributed components as grid
services
CORBA and Beyond
Nanbor Wang
Relevant Projects
• Fusion Data Grid Project:– Efficient access of local and remote fusion data in different
formats (HDF5 and MDS+) via a unified interface– http://grid.txcorp.com/confluence/display/fusionGrid/Fusion%2
BData%2BHome– Binding for C/C++ and various viz/data analysis tools (IDL)
• Fusion Simulation Markup Language– Metadata for annotating fusion simulation data– Semantic-based data access interface for structured and
unstructured data– Binding for various viz/data analysis tools (AVS and IDL)– Data interpolation
CORBA and Beyond
Nanbor Wang
Concluding Remarks• CORBA is a mature technology
for distributed application development
• CCM offers a higher-abstraction for large-scale distributed application development
• CORBA and friends do not sufficiently address HPC parallel application needs (many CCA implementations do)
• Looking forward:– Providing distributed and parallel
high-performance computing environment allows integrating existing codes using higher abstractions
– Combining CORBA and CCA takes advantage of well-established technologies
Hardware
Domain-SpecificServices
CommonMiddleware Services
DistributionMiddleware
Host InfrastructureMiddleware
Operating Systems & Protocols
Applications
CORBA and Beyond
Nanbor Wang
Questions