interoperability of distributed component systems research team bryan bentz jason hayden upsorn...

62
Interoperability of Interoperability of Distributed Component Distributed Component Systems Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Upsorn Praphamontripong Paul Vandal Paul Vandal Midterm Presentation Midterm Presentation CSE333 – Distributed Component Systems CSE333 – Distributed Component Systems Professor Steven Demurjian Professor Steven Demurjian

Post on 19-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Interoperability of Interoperability of Distributed Component Distributed Component

SystemsSystems

Research TeamBryan Bentz

Jason Hayden

Upsorn PraphamontripongUpsorn Praphamontripong

Paul VandalPaul Vandal

Midterm PresentationMidterm Presentation

CSE333 – Distributed Component SystemsCSE333 – Distributed Component Systems

Professor Steven DemurjianProfessor Steven Demurjian

Page 2: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

As of Mid-Term ReviewAs of Mid-Term Review::

We had examined different We had examined different applications of XML:applications of XML:

– Software component re-useSoftware component re-use– Open Office documentsOpen Office documents– Common Data WarehouseCommon Data Warehouse– Semantic WebSemantic Web

The issue was: What do these The issue was: What do these have to do with each other?have to do with each other?

Project DirectionProject Direction

Page 3: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Endemic XML ProblemEndemic XML Problem

XML is like HTML, but users may XML is like HTML, but users may define tags:define tags:

<Title><Title>Example DocumentExample Document</Title></Title>

<Created><Created>December 1, 2005December 1, 2005</Created></Created>

But this second line could as easily But this second line could as easily be:be:

<CreationDate><CreationDate>12/1/200512/1/2005</CreationDate></CreationDate>

Page 4: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

All XML representations share this All XML representations share this problem: in what contexts does the problem: in what contexts does the metadata make sense?metadata make sense?

Metadata

Data: code, text, databases, services

In a single context, this usually isn’t a problem (though systems do grow and change);

Metadata

Data: code, text, databases, services

Page 5: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

All XML representations share this All XML representations share this problem: in what contexts does the problem: in what contexts does the metadata make sense?metadata make sense?

Metadata

Data: code, text, databases, services

For unanticipated interactions between systems, this requires new mechanisms.

Metadata

New web service

?

Page 6: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Project DirectionProject Direction

While a universal XML problem, this While a universal XML problem, this consistency issue is central to the consistency issue is central to the Semantic Web;Semantic Web;

We chose to use Semantic Web ideas as We chose to use Semantic Web ideas as a unifying theme in what we were doing. a unifying theme in what we were doing.

We have been looking at different areas, We have been looking at different areas, but this problem of XML and but this problem of XML and interoperability is the common thread.interoperability is the common thread.

Page 7: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Semantic Web: The Common Semantic Web: The Common

ThreadThread

Topics to cover:Topics to cover:

– RDF: Resource Description RDF: Resource Description FrameworkFramework

– Practical RDFPractical RDF– Our Semantic Web server Our Semantic Web server

experimentsexperiments

Page 8: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

RResource esource DDescription escription FFrameworkramework

RDF originated with the work of R.V. Guha at RDF originated with the work of R.V. Guha at Apple, on what was called the Meta Content Apple, on what was called the Meta Content Framework.Framework.

RDF is a major component of the Semantic RDF is a major component of the Semantic Web;Web;

It is used to describe resources and their It is used to describe resources and their properties;properties;

It has its own XML representation;It has its own XML representation; It consists of triples:It consists of triples:

Why triples?

SubjectSubject PredicatePredicate ObjectObject

Page 9: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Semantic Network Semantic Network RepresentationRepresentation

• A very general and powerful representation;

• Invented by Richard Richens of Cambridge Language Research Unit in 1956 for natural language work/machine translation; widely used since then.

• Strongly influenced the ‘link’ concept in HTML.

Page 10: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

RDF Triples Encode a Semantic RDF Triples Encode a Semantic NetworkNetwork

Page 11: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Practical RDFPractical RDF

Want to use common set of objects and Want to use common set of objects and relationships – namespaces, repositories – relationships – namespaces, repositories – when possible.when possible.

An alternative approach is to provide An alternative approach is to provide translations (e.g. synonyms) to map translations (e.g. synonyms) to map homegrown properties to universally homegrown properties to universally accepted properties.accepted properties.

One example of universal components: One example of universal components: – Dublin Core.Dublin Core.

Page 12: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Practical RDF: The Dublin Practical RDF: The Dublin CoreCoreDublin Core Metadata Element Set:Dublin Core Metadata Element Set:

1. Title2. Creator3. Subject4. Description5. Publisher6. Contributor7. Date8. Type

9. Format10. Identifier11. Source12. Language13. Relation14. Coverage15. Rights

(Properties may be further qualified.) Terms are described in detail at http://dublincore.org/documents/dcmi-terms/

Page 13: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

RDF/XMLRDF/XML

<?xml version="1.0"?> <?xml version="1.0"?>

<!DOCTYPE rdf:RDF PUBLIC "-//DUBLIN CORE//DCMES DTD <!DOCTYPE rdf:RDF PUBLIC "-//DUBLIN CORE//DCMES DTD 2002/07/31//EN" 2002/07/31//EN" "http://dublincore.org/documents/2002/07/31/dcmes-xml/dcme"http://dublincore.org/documents/2002/07/31/dcmes-xml/dcmes-xml-dtd.dtd"> s-xml-dtd.dtd">

<rdf:RDF xmlns:<rdf:RDF xmlns:rdfrdf="http://www.w3.org/1999/02/22-rdf-="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:syntax-ns#" xmlns:dcdc="http://purl.org/dc/elements/1.1/"> ="http://purl.org/dc/elements/1.1/">

<rdf:Description rdf:about="http://example.org/"> <rdf:Description rdf:about="http://example.org/"> <dc:title>My Home Page</dc:title> </rdf:Description> <dc:title>My Home Page</dc:title> </rdf:Description>

How to read this:XML declarationReferencing the XML DTDDeclaring the use of RDFMarking the title.

Page 14: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Building A Semantic Web ServerBuilding A Semantic Web Server

We used We used RDF GatewayRDF Gateway, by Intellidimension , by Intellidimension ((www.intellidimension.comwww.intellidimension.com), a platform for ), a platform for development and deployment of Semantic development and deployment of Semantic Web applications.Web applications.

We chose to represent software components We chose to represent software components and associated documentation, and the and associated documentation, and the relationships between these elements.relationships between these elements.

We built RDF triples describing these We built RDF triples describing these relationships, and exercised them using relationships, and exercised them using inference rules.inference rules.

Page 15: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

RDF Gateway:RDF Gateway:

Page 16: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Components Components Represented:Represented:

FFT code in C++FFT code in C++ FIR filter code in CFIR filter code in C Hidden Markov Model code in CHidden Markov Model code in C Wavelet implementation in JavaWavelet implementation in Java

Each component had one or more source code files and/or documentation files; e.g. for the HMM, we had: hmm.c The basic code file

hmm.h The header filehmmrand.c Platform-independent random nums.hmmutils.c File I/O, matrix codehmmtut.ps Postscript documentation

Page 17: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Semantic Network FragmentSemantic Network Fragment

FFT.c++Language: C

Language: C++

Language: Java

Hmmutils.c

hmm.c

Wavelet.java

filter.c

Hmmrand.c

Hmmtut.ps

FFT.doc

hmm.h

sysutils.h

FFT.h

Fast Fourier Transform

Hidden Markov Models

FIR filters

Wavelets

Page 18: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Example RDF triples:Example RDF triples:

““source/hmm.c”source/hmm.c” requiresrequires “source/hmmutils.c”“source/hmmutils.c”“source/hmmtut.ps”“source/hmmtut.ps” documents documents “source/hmm.c”“source/hmm.c”“source/hmmutils.c”“source/hmmutils.c” requires requires “sysutils.h”“sysutils.h”……

• RDF triples were instantiated using the RDFQL interface in RDF Gateway;

• There were no global software-engineering-related predicates we could draw on.

Page 19: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Using the ‘Semantic’ Part Using the ‘Semantic’ Part of the Semantic Webof the Semantic Web

Inference Rule Example:Inference Rule Example:INFER {INFER {?A?A 'requires' 'requires' ?C?C} }

FROM {FROM {?A?A 'requires' 'requires' ?B?B} }

AND {AND {?B?B 'requires' 'requires' ?C?C};};

Rule is recursively applied to identify all dependencies for a given file. Result when passed hmm.c is:

source/hmmutils.csource/hmmrand.csource/hmm.hsource/sysutils.h

Page 20: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Further InferenceFurther Inference

A similar rule returns appropriate A similar rule returns appropriate documentation for any of the files documentation for any of the files returned.returned.

The inference engine is quite powerful, The inference engine is quite powerful, and may be used to examine database and may be used to examine database schemas, rewrite metadata, or reformat schemas, rewrite metadata, or reformat data.data.

We used the output of inferences to write We used the output of inferences to write HTML on the fly – the inference engine HTML on the fly – the inference engine became a window into the Semantic Web.became a window into the Semantic Web.

Page 21: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Review So FarReview So Far

We chose the problem of disparate We chose the problem of disparate XML as the unifying theme;XML as the unifying theme;

Semantic Web technologies exist Semantic Web technologies exist specifically to address this problem;specifically to address this problem;

This is the unifying thread in our This is the unifying thread in our different research areas.different research areas.

Page 22: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

OpenDocument IntroductionOpenDocument Introduction

What is it?What is it? Why is it important?Why is it important? Who created it?Who created it? How is XML used to contain How is XML used to contain

information?information? Testing the portability of documentsTesting the portability of documents OpenDocument and RDFOpenDocument and RDF ConclusionsConclusions

Page 23: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

What is OpenDocument?What is OpenDocument?

Open source document file format for Open source document file format for saving and exchanging documents saving and exchanging documents across multiple editors.across multiple editors.

Editors include: OpenOffice, StarOffice, Editors include: OpenOffice, StarOffice, KOffice, IBM Workplace, and Abiword.KOffice, IBM Workplace, and Abiword.

All information is stored in XML filesAll information is stored in XML files Constantly evolving to incorporate Constantly evolving to incorporate

newest ideasnewest ideas Currently trying to become ISO Currently trying to become ISO

certifiedcertified

Page 24: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Why is it important?Why is it important?

Allows the use of multiple document editorsAllows the use of multiple document editors Stored in XML compared to .doc binaries Stored in XML compared to .doc binaries

allows easy access to data.allows easy access to data.– Example pre MS Word 95 unreadable in Office 2003Example pre MS Word 95 unreadable in Office 2003

European Union requiring document formats European Union requiring document formats to be approved by standards body. to be approved by standards body. – Microsoft – No Microsoft – No – OpenDocument - being reviewedOpenDocument - being reviewed

Massachusetts recommending all state Massachusetts recommending all state documents being in non proprietary format. documents being in non proprietary format. Debate ongoing.Debate ongoing.

Page 25: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Who created it?Who created it?

Developed by OASIS consortiumDeveloped by OASIS consortium OASIS is composed of multiple large OASIS is composed of multiple large

vendors including: Adobe, Corel, IBM, vendors including: Adobe, Corel, IBM, KDE, and SunKDE, and Sun

Based off old OpenOffice file format Based off old OpenOffice file format but modified per input from different but modified per input from different vendors vendors

Page 26: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

How is XML used to Store How is XML used to Store information?information?

OpenDocument file is a compressed archive file OpenDocument file is a compressed archive file containing the following items:containing the following items:– Meta.xmlMeta.xml– Settings.xmlSettings.xml– Styles.xmlStyles.xml– Content.xmlContent.xml– Manifest.xmlManifest.xml– Pictures folderPictures folder– Thumbnail.pngThumbnail.png– Configuration2 folderConfiguration2 folder

Only 2 of the above files are needed to create a valid Only 2 of the above files are needed to create a valid OpenDocument fileOpenDocument file

XML files contain a combination of Dublin Core and XML files contain a combination of Dublin Core and custom elementscustom elements

Page 27: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Meta.xmlMeta.xml

Used to store information in XML describing the Used to store information in XML describing the document. document.

Some information stored is title, creation date, and Some information stored is title, creation date, and creatorcreator

Page 28: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Settings.xmlSettings.xml

Saves settings and options used by the editor that last Saves settings and options used by the editor that last saved the document.saved the document.

Application independent and not requiredApplication independent and not required Examples would be curser location and page when file Examples would be curser location and page when file

saved saved

Page 29: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Styles.xmlStyles.xml

Stores information about the format and layout of text that Stores information about the format and layout of text that are used within the document.are used within the document.

Styles can be applied to anything ranging from document to Styles can be applied to anything ranging from document to character.character.

Information about styles can also be stored in content.xml.Information about styles can also be stored in content.xml.

Page 30: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Content.xmlContent.xml

One of the 2 required filesOne of the 2 required files Contains all the content that is entered in a document.Contains all the content that is entered in a document. Can store styles instead of styles.xml but not Can store styles instead of styles.xml but not

encouraged.encouraged.

Page 31: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Other ComponentsOther Components

Pictures folderPictures folder – stores all images used – stores all images used within document. .bmp are convertedwithin document. .bmp are converted

Thumbnail.pngThumbnail.png – thumbnail picture of – thumbnail picture of entire document. Print preview.entire document. Print preview.

Configurations2Configurations2 – not currently used. – not currently used. Planned for future usePlanned for future use

Manifest.xmManifest.xml – 2l – 2ndnd required file. Used required file. Used by the document editor to know which by the document editor to know which XML files are created and where they are XML files are created and where they are located. located.

Page 32: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Testing PortabilityTesting Portability

The ability to create and edit office The ability to create and edit office documents in variety of editors is tested. documents in variety of editors is tested.

Four different documents (2 text and 2 Four different documents (2 text and 2 spreadsheet) are created in OpenOffice 2.0 spreadsheet) are created in OpenOffice 2.0 and tested for portability with StarOffice 8.0 and tested for portability with StarOffice 8.0 and Koffice 1.4.2and Koffice 1.4.2

Text and spreadsheet used because received Text and spreadsheet used because received most attention and most used in business.most attention and most used in business.

OpenOffice, StarOffice, and KOffice are the OpenOffice, StarOffice, and KOffice are the largest vendors supporting OpenDocument. largest vendors supporting OpenDocument.

Page 33: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Simple Text DocumentSimple Text Document

Text document that says “Open Document test” in Text document that says “Open Document test” in variety of fonts and styles. variety of fonts and styles.

The file opened correctly in all three applications.The file opened correctly in all three applications.

Page 34: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Advanced Text DocumentAdvanced Text Document

Advanced text document that has a table, Advanced text document that has a table, image, shading, and variety of fonts, sizes, and image, shading, and variety of fonts, sizes, and justifications.justifications.

Opened correctly in all three applicationsOpened correctly in all three applications

Page 35: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Simple Spreadsheet Simple Spreadsheet DocumentDocument

Simple spreadsheet that performs addition, Simple spreadsheet that performs addition, subtraction, multiplication, and division.subtraction, multiplication, and division.

Opened correctly in all three applicationsOpened correctly in all three applications

Page 36: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Advanced Spreadsheet Advanced Spreadsheet DocumentDocument

The complex equation is entered:The complex equation is entered:=(SUM(A1;A3;AVERAGE(A1:A5)+LOG(A1+10;10)-=(SUM(A1;A3;AVERAGE(A1:A5)+LOG(A1+10;10)-SQRT(A4*SIN(0.75)+MOD(A3;A4))) + (POWER(3;3)/LN(A4)))SQRT(A4*SIN(0.75)+MOD(A3;A4))) + (POWER(3;3)/LN(A4)))

Opened correctly in OpenOffice and StarOffice Opened correctly in OpenOffice and StarOffice KOffice had ERR:511 in the cell where the equation appearsKOffice had ERR:511 in the cell where the equation appears

Page 37: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Advanced Spreadsheet Document(2)Advanced Spreadsheet Document(2)

Problems occur because OpenDocument Problems occur because OpenDocument does not define a standard for functions, does not define a standard for functions, only formatting.only formatting.

Currently each application defines their Currently each application defines their own standard for function formatting.own standard for function formatting.

New research into extending New research into extending OpenDocument to developing a standard OpenDocument to developing a standard to exchange formulas in spreadsheet to exchange formulas in spreadsheet called OpenFormula proposed by David called OpenFormula proposed by David Wheeler. Currently in draft status.Wheeler. Currently in draft status.

Page 38: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

OpenDocument and RDFOpenDocument and RDF

With the use of RDF, documents can be With the use of RDF, documents can be easily found by subject, author, creation easily found by subject, author, creation date, or keywords.date, or keywords.

Information can be retrieved through Information can be retrieved through accessing the Dublin Core elements in the accessing the Dublin Core elements in the meta.xml file.meta.xml file.

Information sharing and searching are easily Information sharing and searching are easily achieved without requiring user input during achieved without requiring user input during insertion into the databaseinsertion into the database

An ongoing topic of research in ways to An ongoing topic of research in ways to efficiently parse the XML files for information.efficiently parse the XML files for information.

Page 39: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

OpenDocument Conclusions

The documents are not yet universally The documents are not yet universally portable but work is continuing to portable but work is continuing to improve this ability.improve this ability.

Information stored in XML results in Information stored in XML results in many benefits over a binary file.many benefits over a binary file.

With the use of RDF, an exciting future With the use of RDF, an exciting future is ahead with the ability to find is ahead with the ability to find documents extremely efficiently and documents extremely efficiently and easily.easily.

Page 40: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Software Component Retrieval: Software Component Retrieval: Basic Basic

ArchitectureArchitecture

LibraryComponent

Specification

Component Analyzer

Lexical Analyzer Syntactic Analyzer

Semantic Analyzer

QueryComponent

Specification

Component Analyzer

Lexical Analyzer Syntactic Analyzer

Semantic Analyzer

Extracted librarycomponent specification

MatchMaker

Extracted querycomponent specification

Retrievedcomponents

Page 41: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

<component> <cname> component_name </cname> <method> <mname> method_name </mname> <paramNo> no_of_parameter </paramNo> <param> <pname> parameter_name </pname> <ptype> type_of_parameter </ptype> <psize> size_of_parameter </psize> </param> … <precond> <left> left_operand1 </left> <operator> operator1 </operator> <right> right_operand1 </right> </precond>

<precond> <left> left_operand2 </left> <operator> operator2 </operator> <right> right_operand2 </right> </precond> … <postcond> <left> left_operand1 </left> <operator> operator1 </operator> <right> right_operand1 </right> </postcond> <postcond> <left> left_operand2 </left> <operator> operator2 </operator> <right> right_operand2 </right> </postcond> … <return> return_type </return> </method> …</component>

<postcond> <subcond> <left> left_operand1 </left> <operator> operator1 </operator> <right> right_operand1 </right> </subcond> <and> <subcond> <left> left_operand2 </left> <operator> operator2 </operator> <right> right_operand2 </right> </subcond> </and> <and> <subcond> <left> left_operand3 </left> <operator> operator3 </operator> <right> right_operand3 </right> </subcond> </and> … </postcond>

A component – method with Boolean conditions

A component – method with a set of individual conditions

XML-based software component specificationXML-based software component specification

Page 42: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

XML-based software component specificationXML-based software component specification

<postcond> <subcond> <left> left_operand1 </left> <operator> operator1 </operator> <right> right_operand1 </right> <and> <subcond> <left> left_operand2 </left> <operator> operator2 </operator> <right> right_operand2 </right> <and> <subcond> <left> left_operand3 </left> <operator> operator3 </operator> <right> right_operand3 </right> </subcond> … </and> </subcond> </and> </subcond></postcond>

A component – method with multi-level conditions (Boolean join)

A component – method with multi-level conditions

<postcond> <left> <subcond> <left> left_operand1 </left> <operator> operator1 </operator> <right> right_operand1 </right> </subcond> </left> <operator> operator2 </operator> <right> right_operand2 </right></postcond>

<component> <cname> component_name1 </cname> …</component><component> <cname> component_name2 </cname> <isa> component_name1 </isa> <method> <mname> method_name </mname> <paramNo> no_of_parameter </paramNo> <param> <pname> parameter_name </pname> <ptype> type_of_parameter </ptype> <psize> size_of_parameter </psize> </param> … <precond> … </precond> <postcond> … </postcond> <return> return_type </return> </method> …</component>

An “isa” component

Page 43: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Exact MatchExact MatchMatchExactMatchExact((QQ, , LL) = () = (QpreQpre LpreLpre)) ( (QpostQpost LpostLpost) )

((QinQin LinLin) ) ( (QoutQout LoutLout) )

Generalization MatchGeneralization MatchMatchGen(Q, L) = (Lpre MatchGen(Q, L) = (Lpre Qpre Qpre Lpost Lpost Qpost) Qpost)

Specialization MatchSpecialization MatchMatchSpecMatchSpec((QQ, , LL) = () = (QpreQpre LpreLpre QpostQpost LpostLpost))

Partial MatchPartial MatchMatchPartMatchPart((QQ, , LL) = () = (MatchGenMatchGen((QQ, , LL) ) MatchSpecMatchSpec((QQ, , LL)) ))

((L’inL’in Lin Lin ((L’in L’in = = QinQin) ) L’outL’out Lout Lout ((L’out L’out = = QoutQout))))

Reference MatchReference MatchMatchRefMatchRef((QQ, , LL) = () = (MatchExactMatchExact((QQ, , ll) ) MatchPartialMatchPartial((QQ, , ll)) ))

((MatchExactMatchExact((qq, , LL) ) MatchPartialMatchPartial((qq, , LL))))

Software Component Retrieval: Software Component Retrieval: Determine MatchingDetermine Matching

Q and q denote queriesL and l denote existing components in the library/repository

Page 44: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Software Component Retrieval: Compute SimilaritySoftware Component Retrieval: Compute Similarity

Component Component SimilaritySimilarity

Method SimilarityMethod Similarity

Pre-condition Pre-condition SimilaritySimilarity

Post-condition Post-condition SimilaritySimilarity

Input SimilarityInput Similarity

Out SimilarityOut Similarity

Page 45: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Software Component Retrieval: Software Component Retrieval: IllustrationIllustration

Repository/Library: lib1.xmlQuery: q2.xmlWeight: input: 10 output: 10 precondition: 30 postcondition: 50

<query> <component> <cname> q2 </cname> <method> <mname> m2 </mname> <paramNo> 2 </paramNo> <param> <pname> k </pname> <ptype> real </ptype> </param> <param> <pname> j </pname> <ptype> real </ptype> </param> <precond> <left> j </left> <operator> greater_or_equal </operator> <right> 0 </right> </precond> <postcond> <left> k </left> <operator> greater_or_equal </operator> <right> 0 </right> </postcond> <postcond> <left> <subcond> <left> k </left> <operator> power </operator> <right> 2 </right> </subcond> </left> <operator> equal </operator> <right> j </right> </postcond> <return> k </return> </method> </component></query>

Display Similarity TableFormat: component name, method name, Sim-Post, Sim-Pre, Sim-Param, Sim-Return, method-sim, match_type, ref_match=========================================================q2, math1, sqr, 50.0, 100.0, 100.0, 100.0, 75.0, generalizationq2, math2, sqr2, 100.0, 100.0, 100.0, 100.0, 100.0, exactq2, math3, sqr, 0.0, 100.0, 100.0, 100.0, 50.0, partial

Component name: q2

Parameter ----> Method: m2 k Method: m2 j

Pre condition ----> Method: m2 weight =100.00% j greater_or_equal 0

Post condition ----> Method: m2 weight =50.00% k greater_or_equal 0 Method: m2 weight =50.00% ( k power 2 ) equal j

Return value ----> Method: m2 k

Page 46: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Software Component Retrieval: Software Component Retrieval: IllustrationIllustration

Repository/Library: lib1.xmlQuery: q_isa_1.xmlWeight: input: 10 output: 10 precondition: 35 postcondition: 45

Component name: q_math1

Parameter ----> Method: q_sqr x Method: q_sqr r

Pre condition ----> Method: q_sqr weight =100.00% x greater_or_equal 0

Post condition ----> Method: q_sqr weight =100.00% ( r power 2 ) equal x

Return value ----> Method: q_sqr r

Component name: isa_test1

Parameter ----> Method: find_max param1 Method: find_max param2

Pre condition ----> Method: find_max weight =50.00% param1 greater 0 Method: find_max weight =50.00% param2 greater 0

Post condition ----> Method: find_max weight =100.00% param1 greater param2

Return value ----> Method: find_max param1

Display Similarity TableFormat: component name, method name, Sim-Post, Sim-Pre, Sim-Param, Sim-Return, method-sim, match_type, ref_match================================================================q_math1, math1, sqr, 100.0, 100.0, 100.0, 100.0, 100.0, exactq_math1, math2, sqr2, 100.0, 100.0, 100.0, 100.0, 100.0, specializationq_math1, math3, sqr, 0.0, 100.0, 100.0, 100.0, 55.0, partialisa_test1, list_operation, add_list, 0.0, 0.0, 50.0, 0.0, 5.0, partialisa_test1, simple_array, add_to_array, 0.0, 0.0, 100.0, 0.0, 10.0, partialisa_test1, simple_array, find_max, 100.0, 0.0, 100.0, 100.0, 65.0, partialisa_test1, stack_operation, pop, 0.0, 50.0, 50.0, 0.0, 22.5, partialisa_test1, stack_operation, push, 0.0, 0.0, 100.0, 0.0, 10.0, partialisa_test1, graphic_obj, pop, 0.0, 50.0, 0.0, 0.0, 17.5, partialisa_test1, math1, sqr, 100.0, 100.0, 100.0, 100.0, 100.0, generalization-referenceisa_test1, math2, sqr2, 100.0, 100.0, 100.0, 100.0, 100.0, generalization-reference

Page 47: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

M1

M2

Mn

Matchmakers

… …

Que

ry In

terf

ace P

ublish Interface

Component DescriptionRepository

Licensing server

Component Integrators Component Vendors

(Varadarajan, et. al. “Componentxchange: An E-Exchange for Software Components”, WWW’10, 2001)

Software Component Retrieval: IssuesSoftware Component Retrieval: Issues

Page 48: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Different tags refer to the same elementDifferent tags refer to the same element<input-type> string </input-type> and<input-type> string </input-type> and<datatype> string </datatype><datatype> string </datatype>

Different terms refer to the same contentDifferent terms refer to the same content– For an array’s operationsFor an array’s operations: :

<operator> add </operator> and<operator> add </operator> and<operator> insert </operator> <operator> insert </operator>

RDF:RDF: INFER {?s ?B ?o} FROM {?A is-a-synonym-of ?B} AND {?s ?A ?o};INFER {?s ?B ?o} FROM {?A is-a-synonym-of ?B} AND {?s ?A ?o};

Integration of software component specificationsIntegration of software component specifications – Same standards of specificationsSame standards of specifications– different standards of specificationsdifferent standards of specifications

Software Component Retrieval: RDFSoftware Component Retrieval: RDF

input-type datatype(relation)

add insert(relation)

C1 C2(relation)

Page 49: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

<component> <cname> stack_operation </cname> <method> <mname> push </mname>

… <precond> <left> n </left> <operator> greater_equal </operator> <right> 0 </right> </precond> <precond> <left> S </left> <operator> not </operator> <right> full </right> </precond> <postcond> <left> x </left> <operator> in </operator> <right> S </right> </postcond> <postcond> <left> x </left> <operator> top </operator> <right> S </right> </postcond> <postcond> <left> n </left> <operator> increase </operator> <right> 1 </right> </postcond> <return> none </return> </method> <method> <mname> pop </mname>

… <precond> <left> n </left> <operator> greater </operator> <right> 0 </right> </precond> <postcond> <left> n </left> <operator> decrease </operator> <right> 1 </right> </postcond> <return> peak </return> </method> </component>

<component> <cname> simple_array </cname> <method> <mname> find_max </mname>

…<precond>

<subcond> <left> param2 </left> <operator> in </operator> <right> temp_array </right> <and> <subcond> <left> param2 </left> <operator> greater </operator> <right> 0 </right> </subcond> </and> </subcond> </precond> <postcond> <left> param1 </left> <operator> greater </operator> <right> param2 </right> </postcond> <return> param1 </return> </method> <method> <mname> add </mname>

…<precond>

<left> x </left> <operator> not_in </operator> <right> A </right> <and> <subcond> <left> A </left> <operator> not </operator> <right> full </right> </subcond> </and> </precond> <postcond> <left> x </left> <operator> in </operator> <right> A </right> </postcond> <return> none </return> </method> </component>

Integration of software component specifications described the same standardsIntegration of software component specifications described the same standards

Page 50: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

<component> <cname> simple_array </cname> <method> <mname> find_max </mname>

…<precond>

<subcond> <left> param2 </left> <operator> in </operator> <right> temp_array </right> <and> <subcond> <left> param2 </left> <operator> greater </operator> <right> 0 </right> </subcond> </and> </subcond> </precond> <postcond> <left> param1 </left> <operator> greater </operator> <right> param2 </right> </postcond> <return> param1 </return> </method> <method> <mname> add </mname>

…<precond>

<left> x </left> <operator> not_in </operator> <right> A </right> <and> <subcond> <left> A </left> <operator> not </operator> <right> full </right> </subcond> </and> </precond> <postcond> <left> x </left> <operator> in </operator> <right> A </right> </postcond> <return> none </return> </method> </component>

Integration of software componentIntegration of software component

specifications described with specifications described with

different standardsdifferent standards

Page 51: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Future WorkFuture Work

Generate test cases: RDF dealing with Generate test cases: RDF dealing with – Different tags refer to the same elementDifferent tags refer to the same element

– Different terms refer to the same contentDifferent terms refer to the same content

– Integration of software component Integration of software component specifications specifications

Domain-specificDomain-specific

Interpretation on the retrieval toolInterpretation on the retrieval tool

Authority and privacyAuthority and privacy

Page 52: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Data Warehouse Data Warehouse IntroductionIntroduction

Common Metamodel for Data WarehousesCommon Metamodel for Data Warehouses Data Warehouse SearchesData Warehouse Searches

– Full text SearchFull text Search– Metadata SearchMetadata Search– Global Metadata SearchGlobal Metadata Search– RDF Repository SearchRDF Repository Search

RDF Repository Search ExampleRDF Repository Search Example

Page 53: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Full Text SearchFull Text Search

Data

Search Tool

Data Data

Data

Warehouse

Page 54: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Metadata SearchMetadata Search

Metadata

Warehouse Tool

Search Tool

Metadata Metadata

Warehouse Tool

Warehouse Tool

Page 55: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Common Warehouse Common Warehouse MetamodelMetamodel

Metamodel standard for all data Metamodel standard for all data warehouse toolswarehouse tools

Designed for the data warehouse Designed for the data warehouse domaindomain

Allows extensibility of metadata from Allows extensibility of metadata from standard modelstandard model

Creates a global metadata solutionCreates a global metadata solution

Page 56: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Global Metadata SearchGlobal Metadata Search

CWM

Repository

Warehouse Tool

Search

Tool Warehouse Tool

Warehouse Tool

Warehouse Tool

Warehouse Tool

Page 57: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Glue CWM to RDFGlue CWM to RDF

CWM metadata mapped to RDF CWM metadata mapped to RDF metadatametadata– RDF RepositoryRDF Repository

Exposes user to a richer data setExposes user to a richer data set– RDF metadata are created as objectsRDF metadata are created as objects– Stored in a table as triplesStored in a table as triples– Inferences are created between objects Inferences are created between objects

Only as good as the tagsOnly as good as the tags– Rely on quality of taggingRely on quality of tagging– High Quality most likely found in corporate High Quality most likely found in corporate

officeoffice

Page 58: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Ontology Mapping Ontology Mapping SearchSearch

CWM

Repository

RDF

Repository

Search Tool Warehouse

Tool

Warehouse Tool

Warehouse Tool

Warehouse Tool

Page 59: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Homeland SecurityHomeland Security

Disjoint CIA and FBI CWM Disjoint CIA and FBI CWM repositoriesrepositories– Map these to one RDF repositoryMap these to one RDF repository

FBI

CWM

RepositoryRDF

Repository

Query Tool CIA

CWM

Repository

Page 60: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Persons of Interest Persons of Interest TrackingTracking

Track Persons of InterestTrack Persons of Interest– Insertion of dataInsertion of data

A spy inserts all recorded data on A spy inserts all recorded data on suspectsuspect

These are mapped to an RDF repository These are mapped to an RDF repository Inferences created between suspects Inferences created between suspects

and actionsand actions

– Raise flags for suspicious activitiesRaise flags for suspicious activities Can be a combination certain activitiesCan be a combination certain activities

Page 61: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Suspected TerroristSuspected Terrorist

Search Suspected Terrorist using RDF Search Suspected Terrorist using RDF repositoryrepository– Suspicious ActivitiesSuspicious Activities

One way plane ticketsOne way plane tickets Large exchanges of money at bankLarge exchanges of money at bank

– Link activities Link activities Terrorist X uses bankTerrorist X uses bank

– Has suspected terrorists Y and Z used the Has suspected terrorists Y and Z used the same bank recently?same bank recently?

Page 62: Interoperability of Distributed Component Systems Research Team Bryan Bentz Jason Hayden Upsorn Praphamontripong Paul Vandal Midterm Presentation CSE333

Questions?Questions?