Upload
rodolfo-bline
View
219
Download
4
Embed Size (px)
Citation preview
Málaga meeting, WEST-T4. May 22-25. Pag. 1
Trading for COTS components in Open Environment
EUROMICRO’2001http://www.euromicro.org
WEST – T4. Málaga, May 22-25
Málaga meeting, WEST-T4. May 22-25. Pag. 2
Introduction
top-down bottom-up
- times
- costs
- efforts
+ flexibility
+ reliability
+ reusability
RepositoryOff-the-shelf components
Software development
CBSE
trader
Málaga meeting, WEST-T4. May 22-25. Pag. 3
A trader service
trader
exporter importer
export() 2 query()
13
4
5
Málaga meeting, WEST-T4. May 22-25. Pag. 4
Requirements for a COTS trader
Heterogeneous component model
Federation
Service composition and adaptation
Multiples interfaces.
Softmatchmaking
Signature information is not enough
Use of heuristics and metrics
extensible/scalable
automatic/store and forward
push/pull models
Delegation
Málaga meeting, WEST-T4. May 22-25. Pag. 5
Current traders
ODP model: ODP trading service, ISO/ITU-T.
• ORBacus (OOC/IONA). http://www.ooc.com
• OpenORB (Intalio). http://www.openorb.org
• AceORB (TAO). http://www.cs.wustl.edu/schmidt/ACE
• VisiBroker (Borland). http://www.borland.com/visibroker
Málaga meeting, WEST-T4. May 22-25. Pag. 6
ODP trader shortcomings
1. Use homogeneous object model.
2. Use direct federation.
3. Do not allow service composition or adaptation.
4. Exact matches at the signature level only.
5. Do not allow multiple interfaces.
6. They are based on a push model only.
Málaga meeting, WEST-T4. May 22-25. Pag. 7
Services and service types
ODP trading service specification:
“A service is a set of capabilities provided by an object at a computational level. A service is an instance of service type”
Málaga meeting, WEST-T4. May 22-25. Pag. 8
COTStrader
COTS XML repository
export
import
WEB
EXPORT
INTERFACE
WEB
IMPORT
INTERFACE
EXPORTER
IMPORTER
templates
Málaga meeting, WEST-T4. May 22-25. Pag. 9
COTStrader: spec template
Functional Non Functional
Marketing
Packaging
Málaga meeting, WEST-T4. May 22-25. Pag. 10
COTStrader
module OnePlaceBuffer {
// Provided interfaces
interface OnePlaceBuffer {
void write(in long x);
long read();
};
// Required interfaces
interface out {
oneway void print(in long x);
};
};
Example
CORBA IDL
Málaga meeting, WEST-T4. May 22-25. Pag. 11
COTStrader
COTS XML repository
export
import
WEB
EXPORT
INTERFACE
WEB
IMPORT
INTERFACE
EXPORTER
IMPORTER
templates
Málaga meeting, WEST-T4. May 22-25. Pag. 12
<?xml-stylesheet type="text/xsl" href="http://www.cotstrader.com/COTS-XMLStyle.xsl"?> <COTScomponent name="OnePlaceBuffer" xmlns="http://www.cotstrader.com/COTS-XMLSchema.xsd" xmlns:types="http://www.w3.org/2000/10/XMLSchema">
<functional> ... </functional>
<properties> ... </properties>
<packaging> ... </packaging>
<marketing> ... </marketing>
</COTScomponent>
COTStrader: Exporting
Málaga meeting, WEST-T4. May 22-25. Pag. 13
<functional>
<providedInterfaces> . . . </providedInterfaces> <requiredInterfaces>. . .</requiredInterfaces>
<serviceAccessProtocol>. . . </serviceAccessProtocol>
</functional>
COTStrader: Exporting
Functional information:
Málaga meeting, WEST-T4. May 22-25. Pag. 14
<providedInterfaces>
<interface name="OnePlaceBuffer"> <description notation="CORBA-IDL"> ´ interface OnePlaceBuffer { void write(in long x); long read(); }; </description> <behavior notation="Larch"> <description notation= "Java/Larch" href="http://www.cotstrader.com/samp/OPB/OnePlaceBuffer.beh" </description> <exactMatching href="http://liribarn.ual.es:8080/servlet/Larch.exactMatch"/> <softMatching href="http://liribarn.ual.es:8080/servlet/Larch.softMatch"/> </behavior> </interface>
</providedInterfaces>
COTStrader: ExportingFunctional information example: providedInterfaces.
Málaga meeting, WEST-T4. May 22-25. Pag. 15
<requiredInterfaces>
<interface name="out">
<description notation="CORBA-IDL"> interface out { oneway void print(in long x); } </description>
</interface>
</requiredInterfaces>
COTStrader: Exporting
Functional information example: requiredInterfaces.
Málaga meeting, WEST-T4. May 22-25. Pag. 16
<serviceAccessProtocol> <description notation="pi-protocols"> OnePlaceBuffer(ref,out) = ref?write(x,rep).out!print(x). rep!().Full(ref,out,x); Full(ref,out,x)=ref?read(rep).rep!(x).OnePlaceBuffer(ref,out); </description>
<exactMatching href="http://liribarn.ual.es:8080/servlet/PI.exactMatching"/>
<softMatching href="http://liribarn.ual.es:8080/servlet/PI.softMatching"/>
</serviceAccessProtocol>
COTStrader: Exporting
Functional information : serviceAccessProtocol.
Málaga meeting, WEST-T4. May 22-25. Pag. 17
<properties notation="W3C"> <property name="securityLevel"> <type>xsd:string</type> <value>SAFE</value> </property>
<property name="capacity"> <type>xsd:int</type> <value>1</value> </property>
<property name="isRunningNow"> <type>xsd:bool</type> <!-- dynamic property --> <value href=“...8080/servlet/OnePlaceBuffer.running"/> </property>
<property name="keywords"> <type>xsd:string</type> <value>storage,bounded</value> </property> </properties>
COTStrader: Exporting
Non Functional information example: properties.
Málaga meeting, WEST-T4. May 22-25. Pag. 18
<packaging> <description notation="CCM-softpkg“ href=“.../OPB/Impl_OnePlaceBuffer.csd"/> </packaging>
COTStrader: Exporting
Packaging/architectural information example: packaging.
Málaga meeting, WEST-T4. May 22-25. Pag. 19
<?xml version="1.0"?><softpkg name="OnePlaceBuffer_services" version="1.0"> <pkgtype>CORBA Component</pkgtype> <title>OnePlaceBuffer</title> <description>A descriptor example for cotstrader.com</description> <idl id="IDL:example/OnePlaceBuffer:1.0"> <link href="http://www.cotstrader.com/samples/OPB/OnePlaceBuffer.idl"/> </idl> <implementation> <os name="Win95"/> <os name="WinNT" version="4.0"/> <os name="AIX"/> <processor name="x86"/> <processor name="sparc"/> <runtime name="JRE" version="1.3"/> <programminglanguage name="Java"/> <code type="jar"> <fileinarchive name="services.jar"/> <entrypoint>services.OnePlaceBuffer</entrypoint> </code> <threadsafety level="instance"/> <dependency type="ORB"> <name>ORBacus</name> </dependency> </implementation></softpkg>
CCM: http://www.cotstrader.com/examples/OPB/Implement_OnePlaceBuffer.csd
Málaga meeting, WEST-T4. May 22-25. Pag. 20
<marketing> <license href="http://www.cotstrader.com/examples/OPB/license.html" />
<expirydate>05-10-2001</expirydate> <certificate href="http://www.cotstrader.com/examples/OPB/lcard.png"/>
<vendor> <companyname>E-Brokering corp.</companyname> <webpage>http://www.e-B.com</webpage> <mailto>[email protected]</mailto> <address> <zip>04120</zip> <street>Ctra Sacramento s/n</street> <city>Almeria</city> <country>Spain</country> <street>Campus de Teatinos</street> <city>Málaga</city> <country>Spain</country> </address> </vendor> <description>A one-place buffer</description> </marketing>
COTStrader: Exporting
Marketing information example: marketing.
Málaga meeting, WEST-T4. May 22-25. Pag. 21
COTStrader
COTS XML repository
export
import
WEB
EXPORT
INTERFACE
WEB
IMPORT
INTERFACE
EXPORTER
IMPORTER
templates
Málaga meeting, WEST-T4. May 22-25. Pag. 22
COTStrader: Importing
<?xml version='1.0'?> <COTScomponent name="Query1" xmlns="http://www.cotstrader.com/COTS-XMLSchema.xsd">
<functional> <providedInterfaces> <interface name="OnePlaceBuffer"> <description notation="CORBA-IDL"> interface OnePlaceBuffer { void write(in long x); long read(); } </description> </interface> </providedInterfaces> </functional> <properties> <property name="securityLevel"> <type>xsd:string</type> </property> <property name="isRunningNow"> <type>xsd:bool</type> </property> </properties>
</COTScomponent>
Málaga meeting, WEST-T4. May 22-25. Pag. 23
COTStrader: Importing
<COTSquery name="ClientQuery" xmlns="http://www.cotstrader.com/COTS-XMLSchema.xsd">
<COTSdescription href="http://www.cotstrader.com/Query1.xml" />
<functionalMatching>
<interfaceMatching>
<exactMatching
href="http://www.cotstrader.com/cgi-bin/exactMatch.cgi" />
</interfaceMatching>
<serviceAccessProtocolMatching>
<softMatching />
</serviceAccessProtocolMatching>
</functionalMatching>
...
Málaga meeting, WEST-T4. May 22-25. Pag. 24
COTStrader: Importing
<COTSquery name="ClientQuery" xmlns="http://www.cotstrader.com/COTS-XMLSchema.xsd">
. . .
<propertyMatching> <constraints notation="XQuery">
(securityLevel = SAFE) and (isRunningNow = TRUE) </constraints> <preferences notation="ODP">firts</preferences> </propertyMatching>
<packagingMatching notation="XQuery"> description/notation = "CCM-softpkg" and ( description/implementation/os/name = "WinNT" or description/implementation/os/name = "Solaris" ) </packagingMatching>
<marketingMatching notation="XQuery"> vendor/address/country = "Spain" </marketingMatching>
</COTSquery>
Málaga meeting, WEST-T4. May 22-25. Pag. 25
COTStrader
Two kinds of matchings: Exact Soft E
Functional:
Properties, packaging and marketing:
Constraints and preferences, XQuery (W3C)
Constraints : >, <, >=, <=, =, !=, not, and, or.
Preferences : first, random, min(expr), max(expr)
S
Málaga meeting, WEST-T4. May 22-25. Pag. 26
COTStrader
COTS XML repository
export
import
WEB
EXPORT
INTERFACE
WEB
IMPORT
INTERFACE
EXPORTER
IMPORTER
Query templates
CORBA/ORBacus
Linux/Java
Apache/ServerTomcat/Servlets
Soft/exact matching
XQueryXQEngine