24
©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

Embed Size (px)

Citation preview

Page 1: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

May 7-9, 2001

Westward Look Resort

Tucson, Arizona

SMUG 2001 Execution in UML

Page 2: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Michael M. LeeV.P of Application Engineering

Page 3: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

<Insert interesting and provocative talk title here before going to SMUG-2001>

Michael M. LeeV.P of Application Engineering

Automated Bridging to

Third Party Packages

Page 4: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Recursive Design 101

Requirements

Implementations

Page 5: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Domains of Different Technologies

MaterialHandling Process

AlarmHandling

GenericEquipmentHandling

OperatorInterface

Corba-BasedEquipment

Drivers

Java-BasedPlant

Maintenance

• You need to use a 3rd party software package (a.k.a. COTS, legacy software, realized domain) as a service?

• You need to expose your system as a service to another system?

But What Happens When

Straightforward approach with homogeneous, OOA domains

Page 6: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Bridging to 3rd Party Packages

GenericEquipmentHandling

Corba-BasedEquipment

Drivers

• The ability of the client domain to drive requirements on the service domain is limited.– totally limited if service is fixed

– partially limited if it isn’t fixed

• The implementation mechanisms can be dictated by the service.– Corba, Java

– execution paradigms (transactions, multi versus single threaded, synch/asynch)

Page 7: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

The Question for Code Generation

executableprocess

standard compiler

technology

conventionalcompiler and

linker

object-oriented models Model Compiler

ModelCode

System Software

Architecture Run Time

Implementation Platform

TranslationRules

Design Patterns

Frameworks

TranslationRules

Design PatternsFrameworks

Run TimeLibraries

ModelTranslator

Source Compilerand linker

source code

Software Architecture

Design

Software Architecture

Design

ApplicationLogic

ApplicationLogic

?3rd Party Packages

Page 8: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Interfaces to 3rd Party Packages

• Language based API’s– Java– C++– C

• Specification based API’s– Corba– DCOM

Interfaces to 3rd party packages are typicallydefined in one of two basic ways:

Page 9: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

One Approach

CodeGeneration

InterfaceDefinition

Model Based Wrapper

Native Client Interface

to Service

Corba-BasedEquipment

Drivers

GenericEquipmentHandling

Model Based Wrapper

Native Client Interface

to Service

model basedinterface

OOA model

Page 10: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Implications

Corba-BasedEquipment

Drivers

GenericEquipmentHandling

Model Based Wrapper

Native Client Interface

to Service

• The client deals directly with the level of abstraction presented by the 3rd party package.

• Good: nothing “between” package and client

• Bad: may be a conceptual gap between client and service

Let’s look at some examples...

Page 11: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Corba Client Adapter (a.k.a. Bridge)

CodeGeneration

IDL

Model Based Wrapper

ORBInterface

Logic

Development

Client App Engine CCA EngineCORBA Server

ORB

ObjectSwitchObjectSwitch

Deployment

Client “sees” CORBA service as if it were modeled in OOA

Page 12: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

The Development Process

Design CenterDesign Center

IDL

CCA Component

Application model

Obj

ectS

witc

hN

ode

CCA Engine

Client ApplicationEngine

Built from application model + CCA component

Design CenterDesign Center““wrapping”wrapping”

CCA Component

unpack/deploy

Step 1. Create CCA Component by “wrapping” IDL

Step 2. Use Component + your model to build engine

Engine Component

CORBAServer

CORBAServer

Page 13: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Basic Operation

• Obtain stringified IOR (strIOR)• Declare and create object of wrapped type, proxy object

declare componentName::MyModule::MyInterface mi;

create mi values (m_stringifiedIOR:strIOR);

• If the IDL contained user exceptions, the client can catch them in try…catch blocks.

CCA Engine

CORBA Server

ORB

ObjectSwitchShared Memoryproxy object

miproxy object

mi

Page 14: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Java Client Adapter (a.k.a. Bridge)

Development

CodeGeneration

Javaclient

routines

Model Based Wrapper

Java ClientRoutines

Java VM

Deployment

Client Engine JCA Engine Java application

ObjectSwitchObjectSwitch

The client “sees” the Java serviceas if it were modeled in OOA.

Page 15: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Nothing New Here

©Kabira Technologies Inc, 2001

The Development Process

Design CenterDesign Center

IDL

CCA Component

Application model

Ob

ject

Sw

itc

hN

od

e

CCA Engine

Client ApplicationEngine

Built from application model + CCA component

Design CenterDesign Center“wrapping”“wrapping”

CCA Component

unpack/deploy

Step 1. Create CCA Component by “wrapping” IDL

Step 2. Use Component + your model to build engine

Engine Component

CORBAServer

CORBAServer

©Kabira Technologies Inc, 2001

Basic Operation

• Obtain stringified IOR (strIOR )

• Declare and create object of wrapped type, proxy objectdeclare componentName ::MyModule ::MyInterface mi;

create mi values (m_stringifiedIOR:strIOR );

• If the IDL contained user exceptions, the client can catch themin try…catch blocks.

CCA Engine

CORBA Server

ORB

ObjectSwitchShared Memoryproxy object

miproxy object

mi

The approach to Java is basically the same as Corba.

Page 16: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Another Exchange Standard: XML

• eXtended Markup Language• Specifies structure and contents for a

“document” (DTD/Schema) • Does not specify communication protocol as

Corba and Java do.Service

Actication

HTTPService

XMLService

COVAD

Page 17: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

XSA Adapter (a.k.a. Bridge)

The client “sees” the XML documentas if it were modeled in OOA.

Deployment

XSA EngineProtocolEngine

ObjectSwitchObjectSwitch

Client Engine

XML

Development

CodeGeneration

XMLSchema

Model Based Wrapper

3rd PartyDOM

Service

import/export documents of

defined schema

Page 18: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

XSA Service Component

• Each XML Schema you wrap results in a distinct XSA Service component

• The XSA Service component contains a hierarchy of entities and interfaces that facilitate conversion of data between XML and object attributes

• The key object in the generated object hierarchy is the “root” object

Design CenterDesign Center

XML Schema

XSA Service component

root entity

- XMLString

exportToXML()

setXMLString()

Page 19: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

The Development Process

Design CenterDesign Center

XMLSchema

XSA Service Component

Client model

Obj

ectS

witc

hN

ode

XSA Service Engine

XSA clientEngine

Built from Client model + XSA Service

component

Design CenterDesign Center““wrapping”wrapping”

XSA Servicecomponent

unpack/deploy

Step 1. Create XSA Component from XML schema

Step 2. Use Component + your model to build engine

XSA client component

Page 20: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Sending an XML Document

XSA EngineProtocolEngine

ObjectSwitchObjectSwitch

Client Engine

XML

• The client engine creates the objects it needs for an XML document from the entities defined in the XSA Service Engine and assigns values as desired.

• The Client then calls the exportToXML() operation in the root object of the document.

• An XML string of the document is returned which is then sent out using the protocol engine.

Page 21: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Receiving an XML Document

XSA EngineProtocolEngine

ObjectSwitchObjectSwitch

Client Engine

XML

• The client engine acquires an XML document (a string) using the protocol engine. A document root object is created.

• The setXMLString() operation of the root object of the document is invoked with the XML document as an input.

• The objects necessary to contain the information in the XML document are created and initialized.

Page 22: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

One Approach

Code

Generation

Interface

Definition

Model Based Wrapper

Native

Client Interfaceto Service

Corba-BasedEquipment

Drivers

GenericEquipmentHandling

Model Based Wrapper

Native Client Interface

to Service

model based

interface

OOA model

• Wrapped non OOA functionality in OOA.

• Used code/model generation technology.

• Exposed an OOA interface to existing service functionality.

• Built up the domain chart as the technology (RD) dictates.

Summary: Bridging to 3rd Party Software

Page 23: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Supplementary Slides

Page 24: ©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML

©Kabira Technologies Inc, 2001

Extinsible CodeGen Architecture

Plu

g In

Ser

vice

Model Repository

Import/Export

Model Auditor

System Builder

Model Compiler

AL Interpreter

Adapter-1

Adapter-N

. . .

DC Server

DC GUIClient

DC CMDClient

CorePlug Ins

AdapterPlug Ins• Persistence• Corba• SNMP• others...

Basis forExtensibleDC Services• Register/List/Search• Project Mgmt• Property Mgmt• Commands/Results

CorbaORB

Built with ObjectSwitch!