An Ontology-based Approach for Managing Software Components

advertisement
An Ontology-based
Approach for
Managing Software
Components
by
Vladimir Kolovski
CMSC838 Project Presentation
Motivation

Using off-the-shelf components has proven
invaluable



development time/production costs
dramatically decrease
usability increases
Application servers as component-based
middleware


platform for deploying components
dynamic loading, naming services, load
balancing, etc.
CMSC838 Project Presentation
Motivation – Use Cases

Managing components still a
cumbersome task:
Component dependencies and
versioning
 Licensing
 Service Classification and Discovery

XML configuration files not enough
 Explicit formal model would help

CMSC838 Project Presentation
Introduction to Ontologies
Ontology is a controlled vocabulary
that describes objects and the
relations between them in a formal
way
 May have different structure
 Logic-based semantics
 Need to choose a representation
language

CMSC838 Project Presentation
OWL
Web Ontology Language (OWL) is a
W3C Recommendation
 Based on XML syntax
 OWL Lite, OWL-DL, OWL-Full
 OWL-DL decidable subset of First
Order Logic
 Classes, Individuals, Properties,
Restrictions

CMSC838 Project Presentation
Component Ontology
o Profile
o Capability descriptions
o serviceName, serviceParameter,
contactInformation
o Implementation
o dependsOn, conflictsWith
o Grounding

Mapping between syntactic and semantic
metadata
CMSC838 Project Presentation
Java Management
Extensions
Open technology for component
management
 Defines interfaces of managed beans
 MBeans hosted by an MBeanServer
which allows their run time
deployment and manipulation
 JMX is just a specification, MX4J
used as an implementation for this
project

CMSC838 Project Presentation
Implementation
MBeanServer scans for deployed /
undeployed components
 Ontology and reasoner deployed as
an MBean
 Use OWL API for parsing and Pellet
for querying

CMSC838 Project Presentation
Implementation
Component has its own metadata
(manually entered for now)
 Every component is an instance with
properties
 Query ontology when a component is
added, look for conflicting ones
 Also query ontology when a
component is removed

CMSC838 Project Presentation
How do we Query an
Ontology?
OWL is based on top of RDF
 RDF model is a graph of triples
(Resource, Property, Value)
 Express the component ontology as
an RDF graph
 Use RDQL, SQL-Like language

CMSC838 Project Presentation
RDQL Example
SELECT *
WHERE (?x, Comp:conflictsWith, comp:component1)
USING
Comp FOR
<http://www.mindswap.org/dav/ontologies/Comp.owl
#>
Returns a list of individuals conflicting
with component1
CMSC838 Project Presentation
Future Work

Short Term




Integrate with JBoss’ Component Loader so
it would work with MBean dependencies
Evaluation (Pet Store)
Licensing
Long Term

Automate retrieving metadata from
configuration files
• Component grounding
CMSC838 Project Presentation
Related Work


JBoss
 JBossMX implementation of JMX
 MBean dependencies
RPM
 Package management system

KaON (JBossMX, focused on run-time support, not
using OWL)

Model Driven Architectures
 Lack logical formality to query app server at runtime
CMSC838 Project Presentation
Questions & Comments
CMSC838 Project Presentation
Download