1 06/2000 10/21/2015 ECOOP 2000 Workshop QoS in DOSJohn Zinky BBN Technologies Quality Objects (QuO)...

13
1 06/2000 03/14/22 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies Quality Objects (QuO) Middleware Framework ECOOP 2000 Workshop QoS in DOS June13, 2000 John Zinky BBN Technologies [email protected] Http://www.dist-systems.bbn.com/tech/QuO QuO

Transcript of 1 06/2000 10/21/2015 ECOOP 2000 Workshop QoS in DOSJohn Zinky BBN Technologies Quality Objects (QuO)...

1 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

Quality Objects (QuO) Middleware FrameworkECOOP 2000 Workshop

QoS in DOSJune13, 2000

John Zinky

BBN Technologies

[email protected]

Http://www.dist-systems.bbn.com/tech/QuO

QuOQuO

2 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

Current ORBs Must be Extended for Adaptive QoS Interface and Control

Logical Method Calls

BandwidthControl

StatusCollection

ConfigurationManagement

Client Host Network

Operating System

Middleware

ApplicationsClient

Servant Host

Operating System

Middleware

ApplicationsObject

ResourceManagers

ResourceManagers

Network Based Services

PropertyManagers

PolicyManagers

...

Event Services

Name Services ...

QoS Adaptive LayerQoS Adaptive Layer

Distributed ObjectsCOTS ORBSchedulers

Distributed ObjectsCOTS ORBSchedulers

Specialized ProtocolsGroup Communications

Specialized ProtocolsGroup Communications

3 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

QuO Adds QoS Control and Measurement, and Adaptive Behavior into the DOC Remote Method Call

Client

Network

Server

ApplicationDeveloper

Qosketeer

MechanismDeveloper

Logical Method Call Client

Delegate

ORB Proxy

Specialized ORB

ContractSysCond

SysCond

SysCond SysCond

Object

Delegate

ORB Proxy

Specialized ORB

Contract

Network

Mechanism/PropertyManager

SysCond

SysCond

SysCond

4 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

QuO Delegate Can Change the Method Called Based on the Value of the Contract and SysConds

User Sets Expectation

Application

Client CodeReference

Delegate

Proxy

Call Back

Factory

QuO Kernel

SysCond

ORB

Contract

Network Control Manager

QuO Kernel

Contract

SC SC

ORB

ORB

Proxy

Object

Del.

• The User can change the desired QoS, by setting the value of a SysCond

• The Contract integrates the User’s desires with other information to form a Region

• The Delegate uses the Region to dispatch to a behavior. In this case call a different method on the object

5 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

Contracts Summarize System Conditions into Regions

Each are Appropriate for Different Situations

Panel From QuO GUI

AbundantResources

Low NetworkCapacity

Low ServerCapacity

UnknownBottleneck

• Contract defines nested regions of possible states based on measured conditions

• Predicates using system condition objects determine which regions are valid

• Transitions occur when a region becomes invalid and another becomes valid

• Transitions trigger adaptation by the client, object, ORB, or system

6 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

QuO Contract

ORB

SystemCondition

RemosHost Load

Client

QuO Delegate

SystemCondition

RemosNetwork Load

SystemConditionRemos

Network Load

Darwin

Feedback

Feedback

Feedback

ORB

SystemCondition

RemosHost Load

Server

QuO Delegate

ORB

SystemCondition

RemosHost Load

Server

QuO Delegate

CMU REMOS is an Example of Network Configuration and Status Dissemination Service

7 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

Remos Collects Available Bandwidth andQuO Instrumentation Measures Delivered QoS

Resource Resource Resource

Status

Collect

TranslateIntegrate

Infer

Disseminate

ExpectedQoS

Delegate Delegate

Client ObjectMeasuredQoS

Probes Probes

QuOGateway

QuOGateway

Probes Probes

CorrelateProbes

PiggybackedMeasurements

8 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

The QuO Contract GUI Shows State of the Contract in Real Time

Current Region ProbabilityOf RegionLast Region

System ConditionValues

TransitionLog

9 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

The QuO Toolkit Provides Tools for Building Adaptable Applications

• Quality Description Languages (QDL)

– Support the specification of QoS contracts (CDL), delegates and their adaptive behaviors (SDL), connection, creation, and initialization of QuO application components (CSL)

– QuO includes code generators that parse QDL descriptions and generates Java and C++ code for contracts, delegates, creation, and initialization

soon: capabilities to describe real-time behavior (TAO’s RIDL) and security (TIS’s DTEL++)

• System Condition Objects, implemented as CORBA objects

• QuO instrumentation• QuO Runtime Kernel

– Contract evaluator

CORBA IDL

CodeGenerators

CodeGenerators

Contract DescriptionLanguage (CDL)

Structure DescriptionLanguage (SDL)

QuO RuntimeQuO Runtime

Delegates ContractsConnectors

Connector SetupLanguage (CSL)

10 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

Quality Description Languages are Used to Automatically Generate QuO Contract and Delegate

contract UserAdapt ( // Expectation from users application syscond ValueSC ValueSCImpl userEnableSmall, syscond ValueSC ValueSCImpl userEnableUnprocessed ){ // Intrumentation from Delegate //Network Fits syscond probe instrumentation::PropertyProbe measuredNetworkCapacity("network_Capacity", 100.0); syscond probe instrumentation::PropertyProbe measuredNetworkPropDelay("network_PropDelay", 50.0); //Other Syscond declaration deleted region Big (not userEnableSmall) { region Processed (not userEnableUnprocessed) // Use Big Processed Pictures {} region Unprocessed (userEnableUnprocessed) // Use Big UnProcessed Pictures {} } region Small (userEnableSmall) { region Processed (not userEnableUnprocessed) // Use Small Processed Pictures {} region Unprocessed (userEnableUnprocessed) // Use Small UnProcessed Pictures {} } };

contract UserAdapt ( // Expectation from users application syscond ValueSC ValueSCImpl userEnableSmall, syscond ValueSC ValueSCImpl userEnableUnprocessed ){ // Intrumentation from Delegate //Network Fits syscond probe instrumentation::PropertyProbe measuredNetworkCapacity("network_Capacity", 100.0); syscond probe instrumentation::PropertyProbe measuredNetworkPropDelay("network_PropDelay", 50.0); //Other Syscond declaration deleted region Big (not userEnableSmall) { region Processed (not userEnableUnprocessed) // Use Big Processed Pictures {} region Unprocessed (userEnableUnprocessed) // Use Big UnProcessed Pictures {} } region Small (userEnableSmall) { region Processed (not userEnableUnprocessed) // Use Small Processed Pictures {} region Unprocessed (userEnableUnprocessed) // Use Small UnProcessed Pictures {} } };

Contract Description Language

/* ------------------Connection Specification ------------------- */class "SlideShowUserAdapt"interface "SlideShowUserAdaptConnection"codeloglevel "high"target "client"connectparams (in QuoKernel mykernel, in quo::COSHelper mycoshelper)quokernel mykernel

/* ------------------Include section-------------------------------- */

/* Include cdl files */include "qdl/UserAdapt.cdl"

/* other Includes Deleted */

/*------------------Definition section-------------------------------*//* Define Remote Objects */SlideShow slideshow_obj = narrowfuncall mycoshelper.waitForObject("SlideServer", -1, 1000);SlideShowInstrumented slideshow_instrumented_obj = narrowfuncall mycoshelper.waitForObject("SlideServerDelegate", -1, 1000);/* Syscond Declarations deleted /*/* Instantiate Contracts */UserAdapt userAdapt = new UserAdapt("UserAdapt", "com.bbn.quo.examples.slideshow.UserAdapt", userEnableSmall, userEnableUnprocessed);/* Instantiate Delegates */returndelegate thisDelegate ( slideshow_obj , userAdapt ) ; /*------------------Initialization section---------------------------*/

funcall thisDelegate.initialize_inst();/* other initialization deleted */

/* ------------------Connection Specification ------------------- */class "SlideShowUserAdapt"interface "SlideShowUserAdaptConnection"codeloglevel "high"target "client"connectparams (in QuoKernel mykernel, in quo::COSHelper mycoshelper)quokernel mykernel

/* ------------------Include section-------------------------------- */

/* Include cdl files */include "qdl/UserAdapt.cdl"

/* other Includes Deleted */

/*------------------Definition section-------------------------------*//* Define Remote Objects */SlideShow slideshow_obj = narrowfuncall mycoshelper.waitForObject("SlideServer", -1, 1000);SlideShowInstrumented slideshow_instrumented_obj = narrowfuncall mycoshelper.waitForObject("SlideServerDelegate", -1, 1000);/* Syscond Declarations deleted /*/* Instantiate Contracts */UserAdapt userAdapt = new UserAdapt("UserAdapt", "com.bbn.quo.examples.slideshow.UserAdapt", userEnableSmall, userEnableUnprocessed);/* Instantiate Delegates */returndelegate thisDelegate ( slideshow_obj , userAdapt ) ; /*------------------Initialization section---------------------------*/

funcall thisDelegate.initialize_inst();/* other initialization deleted */

Connection Specification Language

11 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

QuO GatewayQuO Gateway

IIOPGlue

Control

QuO Gateways support specialized communication protocols and below the ORB mechanisms

Cli

ent-

Side

OR

B

IIOP Group Replication (AQuA)

WAN

Bandwidth Reservation (DIRM)

IIOP over TCP/IP (default)

IIOPGlue

Control

IIOP

Serv

er-S

ide

OR

B

• The QuO gateway enables insertion of below-the-ORB mechanisms and specialized network controls

• The gateway translates IIOP messages into specialized communication protocols or network level controls

• To the client-side, the QuO gateway looks like the remote ORB

• To the object-side, the QuO gateway looks like the client’s ORB

• The two ends of the gate-way are on the same LAN as the client/object

• Currently, we have gate-ways that support Ensemble group communication, RSVP resource reservation, and IIOP over TCP/IP

12 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

Bandwidth

RPF MAP Server

MAP Files

Dependability Real time

Layer Server

Client

TAO Event Channel

sensor sensorsensor

Security

Layer-Server

Publish

Database

Simulator

sensor sensor

Common Picture Planning Layer

MAP

Fusion Layer

Information Source Layer

Composite Demonstration Configuration

Layer-Server

BBoard

Guards

Proteus

Darwin

Network AwareApplication API

Dissemination

Remos Network

OO-DTE

13 06/2000 04/20/23 ECOOP 2000 Workshop QoS in DOS John Zinky BBN Technologies

Conclusions• QuO is a Framework for handling several kinds of QoS

– Bandwidth Management, Realtime, Security, Dependability

• QuO explicitly supports different developer roles – Client Programmer, Object Programmers, QoS Designers, Mechanism Designers

• QuO reuses QoS adaptability– AOP techniques to Weave in Functional and Systemic Behavior

– QoS services using gateway and CORBA control objects

• QuO uses QDL to specify adaptive behavior

• QuO supports adaptation at several places– Above the ORB with QuO Delegates

– Below the ORB with QuO Gateways

– Interfaces to Underling Mechanisms through Control Objects

• QuO 2.1 supports invocation-time adaptation