Download - Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Transcript
Page 1: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Applying Semantic Technologies to Asset and Configuration

Management in the Enterprise

Taylor CowanBrian Boyd

Travelocity.com

Page 2: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Agenda

• RDF intro• Problem space• Demo Real Software• ASYDEO Ontology• Learn about how we built it

Page 3: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

RDF != XML

“The site at http://www.travelocity.com, also known as Travelocity, is an online travel agency competing with expedia.com”

Page 4: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Conceptual Model

Travelocity.comAKA

Travelocity

Online travel

agency

Expedia.com

Page 5: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Same concepts serialized as “N3”

:OnlineTravelAgency

a owl:Class .

:hasCompetitor

a rdf:Property .

<http://www.travelocity.com>

a :OnlineTravelAgency ;

rdfs:label "Travelocity"@en ;

:hasCompetitor <http://www.expedia.com> .

Page 6: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

As RDF/XML…<rdf:RDF …>

<owl:Class rdf:about="http://foo#OnlineTravelAgency"/>

<rdf:Property rdf:about="http://foo#hasCompetitor"/>

<OnlineTravelAgency

rdf:about="http://www.travelocity.com">

<hasCompetitor rdf:resource="http://www.expedia.com"/>

<rdfs:label xml:lang="en">Travelocity</rdfs:label>

</OnlineTravelAgency>

</rdf:RDF>

Page 7: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

As N-Triples canonical format…

<hasCompetitor> <rdf:type> <rdf:Property> .

<http://travelocity.com> <hasCompetitor> <http://expedia.com> .

<http://travelocity.com> <rdfslabel> "Travelocity"@en .

<http://travelocity.com> <rdf:type> <OnlineTravelAgency> .

<OnlineTravelAgency> <rdf:type> <owl:Class> .

Subject, Verb, Object…

Page 8: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

And finally, as Java code…

OntModel m = ModelFactory.createOntologyModel();

OntClass ota = m.createClass("OnlineTravelAgency");

Individual tvly = ota.createIndividual("http://www.travelocity.com");

tvly.setLabel("Travelocity", "en");

OntProperty p = m.createOntProperty("hasCompetitor");

tvly.setPropertyValue(p, m.createResource("http://www.expedia.com"));

Page 9: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

“Understanding the relationships between systems, software, and the business processes they enable”.

Page 10: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Ontology

Software People

Systems

Business processes

Page 11: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Travelocity Systems Knowledge

• 42,000 explicit assertions.

Page 12: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Problems ASYDEO Solves

• If a change is made to an application, what could be impacted?

• Rate of change exceeds our capacity to manage documentation, is there an alternative?

• What URL/ports should we monitor?

Page 13: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

demo

Page 14: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

SPARQL #1Question: What other software does software named

“air-shopping” with version “1.0” connect to?

?srcSoftware

?sap

?service

?dstSoftware

Conn

ects

to

Acce

ssed b

y

Prov

ides s

ervic

e

version=“1.0”label=“air-shopping”

Page 15: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

SELECT DISTINCT ?dstSoftware WHERE {

?srcSoftware a asydeo:ApplicationSoftware . ?srcSoftware rdfs:label ?label .

?srcSoftware :version "1.0" . ?srcSoftware :connectsTo ?sap . ?service :isAccessedBy ?sap . ?dstSoftware :providesService ?service . FILTER regex(?label, "air-shopping", "i") }

?srcSoftware

?sap

?service

?dstSoftware

Conn

ects

to

Acce

ssed b

y

Prov

ides s

ervic

e

version=“1.0”label=“air-shopping”

Page 16: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

SPARQL #2What System Services are provided by Computer System “srvhlp550”?

Page 17: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

SELECT DISTINCT ?service WHERE { ?system rdfs:label "srvhlp550" . ?system a :System . { ?system :hasInstalled ?software }

UNION { ?cluster :hasMember ?system .?cluster :hasInstalled ?software } .?software :providesService ?service }

Page 18: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Asydeo basicsApache 2.0 license

Working software

Open to contribution

Java/Jena based

http://asydeo.googlecode.co

m

Page 19: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

ASYDEO Platform

Jetty (or any servlet container)

Stripes 1.5

jquery

Jena 2.7

Jenabean

Page 20: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

How the UI works

• Our ontology declares a set of widgets

Page 21: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Each Widget has a Server Side representation

Page 22: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Ontology provides UI with tips for how to show each property

hasModel

Page 23: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Path from property to java…

• Has editorhasModel • Has type

Basic DropDown

• Maps to Java class

DropDown

Page 24: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

In Raw RDF (N3 format)

schema:hasModel a owl:FunctionalProperty , owl:ObjectProperty ;

rdfs:domain schema:System ; rdfs:label "Model"^^xsd:string ; rdfs:range schema:Model ; schema:editor schema:BasicDropDown; schema:order "94" . schema:BasicDropDown a schema:DropDown .

Page 25: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Included because RDF type is in property hasModel’s domain.

schema:hasModel rdfs:domain schema:System

Page 26: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Candidates from the property’s range(rdfs:range schema:Model)

schema:hasModel rdfs:range schema:Model

Page 27: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

The property’s RDF Label provides human readable label text

schema:hasModel rdfs:label "Model"^^xsd:string

Page 28: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

The property’s position, relative to other items comes from ontology as well.

schema:hasModel schema:order "94“

Page 29: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Future Work

Page 30: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Auto-discovery Scripts

Systems Engineering

(ASYDEO)

Network dumps

Deployed software manifests

System uptime and configuration

rdf

rdf

rdf

Page 31: Applying Semantic Technologies to Asset and Configuration Management in the Enterprise

Some Advantages We Discovered

CMDB (mysql)

Flat/tabular model

Code and database cognizant of ontology

No restriction language

All data must be explicit

ASYDEO (Jena)

Hierarchical

Code is ontology agnostic

OWL provides restrictions

Some data is inferred