• No results found

Limitations of Object-Based Middleware. Components in CORBA. The CORBA Component Model. CORBA Component

N/A
N/A
Protected

Academic year: 2021

Share "Limitations of Object-Based Middleware. Components in CORBA. The CORBA Component Model. CORBA Component"

Copied!
6
0
0

Loading.... (view fulltext now)

Full text

(1)

92

Chapter 8: Middleware

Limitations of Object-Based

Middleware

Object-Oriented programming is a standardised technique, but… • Lack of defined interfaces between objects

• It is hard to specify dependencies between objects • Internal configuration of objects

• Long time to install new applications

Components

• Components are functional entities – they must define what they offer and what they need

• Application construction: composition of objects with defined interfaces • Semi-automatic deployment of the application: Run-time environment

configuration

93

Chapter 8: Middleware

Components in CORBA

CORBA Component Model (CCM)

• Distributed, component-oriented model

• Components are binary code fragments for functional entities, maybe implemented in different languages

• Application deployment by definition of functional entities and interactions between entities

• Standardised environment for

• Component management: creation, activation, deactivation, … • CORBAservices for components (Security, Persistence, Event,

Transactions)

• Interoperability with Enterprise Java Beans (EJB)

„CORBA Component Model is a specification for creating server-side scalable, language-neutral, transactional, multi-user and secure enterprise-level

applications“

Lehrstuhl für Informatik 4

Kommunikation und verteilte Systeme

The CORBA Component Model

• Extends the CORBA Object Model • Provides standard run-time environment

for components – application servers – containers

• Component: reusable physical entity • Container: standardised execution

environment for components • Application server: generic server

process

• Adoption of POA • Uses CORBAservices:

Transactions, Security, Event, …

Containers Containers Order Processing Component ASP Component Deployment & Configuration Mechanism Middleware Framework Deployment & Configuration Metadata Component Repository Compose Deploy Client Middleware Bus Central Data Store System Development State/Country Point-of-Sale Processing Centers Market Analysis Team Chicago Data Center Component Assembly San Jose IT Department Online Ordering Server

Lehrstuhl für Informatik 4

Kommunikation und verteilte Systeme

CORBA Component

• Componentis a new CORBA meta-type. – Extension of type Object(with constraints) – Has an interface, and an object reference – Also, a stylized use of CORBA interfaces/objects • Provides component features (also named Ports) • Could support multiple interfaces

Each component instance is created and managed by a unique component home A component describes:

• What functionality a component offers to other components • What functionality a component needs from other components

• What kind of interaction are used between components: synchronous or asynchronous

• Which component properties can be configured

(2)

96

Chapter 8: Middleware

A CORBA Component

OFFERED Component interface Component Facets Event sources Event sinks Attributes Receptacles Facets Event sources Event sinks REQUIRED configurable properties offered operation

interfaces required operation interfaces

consumer events produced events

97

Chapter 8: Middleware

Building CCM Applications is

Assembling Component Instances

Lehrstuhl für Informatik 4

Kommunikation und verteilte Systeme

Facets

• Multiple named interfaces that provide the component’s application functionality to clients - one of these must be the same as the supported interface

• Each facet embodies a view of the component, corresponds to a role in which a client may act relatively to the component

• A facet represents the component itself, not a separate thing contained by the component

• Facets have independent object references

Lehrstuhl für Informatik 4

Kommunikation und verteilte Systeme

Receptacles

• Connection points between components, where one uses an interface of another

• No inherent life cycle dependencies or ownership relationship implied - no operations are inherently transitive across receptacle connection

• “Plug in” to the receptacle one or more references to instances of the required component type

– Explicit client relationship

– Ability to specialize by delegation, compose functions

– IDL compiler generates operations to connect to and disconnect from the receptacle

(3)

100

Chapter 8: Middleware

Events

• Decoupled communication between components

– Receptacle supports direct communication between components

– In contrast, events are indirect: Event channel contacts set of consumers for each event

Simple event model based on channels

• Subset of CORBA Notification Service (“push” model) • Components can declare that they

– Produce a kind of event (event source) • Emit (1:1)

• Publish (1:N)

– Accept a kind of event (event sinks)

101

Chapter 8: Middleware

Attributes

• Named configurable properties

• Allow component configuration on an instance basis

• Determine behavior (within range of possible behaviors) for particular component instance

• “Configurator” objects can configure components by establishing attribute values – Attributes exposed through accessors and mutators

– Signal when completed and then validity checked • Can be configured

– By visual property sheet mechanisms in assembly or deployment environments

– By homes or during implementation initialization – Potentially readonly thereafter

Lehrstuhl für Informatik 4

Kommunikation und verteilte Systeme

Homes

• A home manages a specified component type

– Home definition is distinct from component definition

– More than one home type can manage the same component type (but any given component instance has only one home)

– Allows life cycle characteristics or key type to vary/evolve without changing component definition

• Instantiated at deployment time

Lehrstuhl für Informatik 4

Kommunikation und verteilte Systeme

A CORBA Component Home

MyComponentHome

c1

cN Home interface

(4)

104

Chapter 8: Middleware

HomeFinder

• A HomeFinder is used to find out the reference for the home interface belonging to a component type

• All homes can be registered here (is not done automatically) • A brokerage of homes to clients

– Home implementations register with home finder – Clients request homes from home finder

• Home finder makes determination of what is the “best” home to service a client, based on the client’s request and any available environmental or configuration data

• resolve_initial_reference(”ComponentHomeFinder”) gives back reference to HomeFinder

105

Chapter 8: Middleware

Dining Philosophers Example

Thinking Hungry Starving Eating Dead Kant Thinking Hungry Starving Eating Dead Descartes Thinking Hungry Starving Eating Dead Aristotle Fork Fork Fork

Lehrstuhl für Informatik 4

Kommunikation und verteilte Systeme

PhilosopherHome

IDL Example

component Philosopher

{

attribute string name;

// The left fork receptacle.

uses Fork left;

// The right fork receptacle.

uses Fork right;

// The status info event source.

publishes StatusInfo info; };

home PhilosopherHome manages Philosopher {

factory new(in string name); }; left info name Philosopher right

Lehrstuhl für Informatik 4

Kommunikation und verteilte Systeme

Dining Philosophers as

CORBA Components

Philosopher name = Kant Philosopher name = Aristotle Philosopher name = Descartes Fork Fork Fork Component Base ref. Facet Receptacle Event Source Event Sink Observer

(5)

108

Chapter 8: Middleware

Philosopher State Types

enum PhilosopherState {

EATING, THINKING, HUNGRY, STARVING, DEAD

};

eventtype StatusInfo

{

public string name;

public PhilosopherState state;

public unsigned long ticks_since_last_meal; public boolean has_left_fork;

public boolean has_right_fork; }; Philosopher name

109

Chapter 8: Middleware

PhilosopherHome

Philosopher Component

component Philosopher {

attribute string name; // The left fork receptacle. uses Fork left;

// The right fork receptacle. uses Fork right;

// The status info event source. publishes StatusInfo info;};

home PhilosopherHome manages Philosopher { factory new(in string name);

};

Philosopher

name

Lehrstuhl für Informatik 4

Kommunikation und verteilte Systeme

ForkHome

Fork Component

exception InUse {}; interface Fork {

void get() raises (InUse); void release();

};

// The fork component.

component ForkManager

{

// The fork facet used by philosophers.

provides Fork the_fork; };

// Home for instantiating ForkManager components.

Fork Manager

Lehrstuhl für Informatik 4

Kommunikation und verteilte Systeme

Observer Home

Observer Component

component Observer {

// The status info sink port. consumes StatusInfo info; };

// Home for instantiating observers. home ObserverHome manages Observer {};

(6)

112

Chapter 8: Middleware

Client Programming Model

• Component-aware and -unaware clients • Clients see two design patterns

– Factory – Client finds a home and uses it to create a new component instance

– Finder - Client searches an existing component instance through Name Service, Trader Service, or home finder operations

References

Related documents

For each attribute, attrName , on the original interface named ifaceName , an operation with the following signature is generated on the type-specific ReplyHandler :.

Architecture (CORBA) is an international standard for an Object Request Broker - middleware to manage communications between distributed objects. •  Several implementation of

Crimes against japan in order last days of europe, apostate world government, it will they could be a peak of command had never been accomplished.. Catchy title was not order days

A component model defines (1) the properties of components, such as the version of the component, its dependencies, language of implementation, (2) the set of interfaces that

This paper described how our CCMPerf bench- marking framework (1) addresses the heterogeneity of CCM implementations, such as differences in configura- tion options,

The reflective middleware techniques we are focusing upon currently include (1) select- ing optimal communication mechanisms, (2) managing QoS properties of CORBA components in

[r]

certification process for supervisors. The licensure regulations require that an MFT supervisor be certified as an Approved Supervisor by AAMFT in addition to being a LMFT.