The Themis Structural Computing Environment - PowerPoint PPT Presentation

1 / 21
About This Presentation
Title:

The Themis Structural Computing Environment

Description:

structure server - customized structure server (Themis) ... Atoms are containers of domain-specific data (this data is opaque to Themis) ... – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 22
Provided by: KenAnd4
Category:

less

Transcript and Presenter's Notes

Title: The Themis Structural Computing Environment


1
The Themis Structural Computing Environment
  • Kenneth M. Anderson
  • April 1, 2002 (no fooling!)
  • (with William V. Lepthien and Susanne A. Sherba)

2
Overview
  • History of Structural Computing
  • Themis Structural Computing Environment
  • Structure Templates
  • Structure Transformations
  • InfiniTe Prototype, Take 2
  • Current Status and Future Work

3
History of Structural Computing
  • 1988 Keynote Speech by Norman Meyrowitz The
    Missing Link Why Were All Doing Hypertext
    Wrong
  • Bemoaned incompatible hypertext systems
  • 1989 Open Hypermedia Research Begins
  • Amy Pearl publishes Suns Link Service
  • 1990s Open Hypermedia Systems flourish
  • DHM, Microcosm, HOSS, Hyperform, Chimera
  • 1997 As We Should Have Thought
  • call to arms for structural computing by
    Nürnberg
  • 1999 First International Workshop on Structural
    Computing
  • in Darmstadt, Germany
  • 2000 and 2001 workshops also held

4
In a Nutshell (Set-Up)
  • Open hypermedia developed sophisticated
    technology to manage
  • navigational hypermedia structures
  • composite, node, anchor, link
  • that made it easy for these structures to be
  • persistent, distributed, scalable,
    collaboratively (both asynchronously and
    synchronously) accessible
  • in an open framework that enabled integration
    into multiple applications

5
In a Nutshell (Punch Line)
  • Structural Computing will develop sophisticated
    technology to manage
  • structures for domain X, domain Y, domain Z,
  • that made it easy for these structures to be
  • persistent, distributed, scalable,
    collaboratively (both asynchronously and
    synchronously) accessible
  • in an open framework that enables integration
    into multiple applications
  • and also allows integration of structures across
    domains
  • and the specification of services that are
    structure aware
  • and advanced services for developing structures
  • and

6
Architectural Perspective on Structural Computing
UI
HyperTies,HyperCard, etc.
Applications
Applications
Structures/Services

HyperBase
Database
Database
1980s Monolithic Hypermedia Systems
late1980s HyperBase Systems
1990s Open Hypermedia Systems
late 1990s Component-Based Open Hypermedia Systems
7
Structural Computing Research
  • Understanding of Domains
  • Software Engineering Anderson99, Anderson00
  • Examples of Structural Computing
  • Structure Servers
  • Construct Component-Based OHS
  • work by Nürnberg, Wiil, and Hicks
  • Support for multiple hypermedia domains
  • Tools to automatically generate new structure
    servers -gt UML Class Diagrams as input

8
Themis SC Environment
  • Structural computing environment focused on
    structure templates and structure transformation
  • will focus on services in Themis 2.0
  • Extend vs. Generate
  • spec. -gt structure server (Construct)
  • structure server -gt customized structure server
    (Themis)
  • start with generic structure server and make it
    easy to define new structures provide basic
    services help automate structure transformation

9
Themis Framework
Framework consists of only 5 conceptual
entities Atoms are containers of domain-specific
data (this data is opaque to Themis) Collections
can contain zero or more Atoms Both atoms and
collections have sets of attributes attribute
values can be standard primitive types or other
Elements
10
Themis Structure Server
  • Provides persistence, distribution, and naming
    services over Themis Framework
  • Implementation adds Repository, Id, and Set
    classes to Framework
  • Repository class provides search and query API,
    extension mechanism API, and ability to create
    multiple repositories of Elements and Attributes
    in a single Themis structure server
  • Id provides global identifier for each Element
  • Set provides means for returning results of
    queries
  • Find me all Atoms whose attribtue type equals
    Context
  • Set implements find as well, so queries can be
    refined

11
More on Find
  • Find is implemented by searching on attribute
    values
  • query is a set of attributes
  • if attribute has name, but no value, then all
    elements with an attribute that matches the
    specified name are returned
  • give me all atoms which have a size attribute
  • otherwise, if attribute has name and value, then
    elements with named attributes whose value
    equals the query value are returned
  • give me all atoms whose size attribute equals
    10
  • if equals returns false, Java reflection
    mechanism is used to determine if attribute value
    supports a Themis-defined match operation
  • if so, then all elements with named attributes
    whose value matches the query value are
    returned
  • Themis will provide regular expression matching
    of Strings and relational matching of Integers
    with this mechamism

12
Extension Mechanism API
  • To enable an open set of extensibility mechanisms
    in Themis, APIs for extensibility mechanisms are
    dynamically loaded
  • Example
  • templates tAPI (templates)Repository.getAPI(
    edu.colorado.cs.serl.themis.templates)
  • Collection c (Collection)tAPI.newInstance(
    myTemplate)
  • First two extensibility mechanisms
  • structure templates
  • structure transformation

13
Structure Templates
  • Template API allows common arrangements of atoms,
    collections, and attributes to be named and
    instantiated on demand
  • reduces need for data structure creation code
  • simply define template once and instantiate as
    needed
  • Template API uses template by example approach
  • call beginTemplate create structure call
    endTemplate
  • newInstance creates a new instance of the named
    template with all atoms, collections, and
    attributes specified in the template created with
    default values
  • if newInstance is called within
    beginTemplate/endTemplate pair, then it adds a
    reference to the template in the structure being
    defined allows templates to build on other
    templates

14
Creating a Structure without Templates
  • Shipment createShipment(
  • int src, int dest,
  • Products prods, Date shipDate)
  • Attribute sd new Attribute(shipDate,
    shipDate)
  • Attribute ad new Attribute(arrivalDate,
    null)
  • Attribute sn new Attribute(name,
    sourceWarehouse)
  • Attribute dn new Attribute(name,
    destinationWarehouse)
  • Atom sw (Atom)new AtomId() Atom dw
    (Atom)new AtomId()
  • sw.addAttribute(sn) sw.setObject(new
    Integer(src))
  • dw.addAttribute(dn) dw.setObject(new
    Integer(dest))
  • Collection shipment (Collection)new
    CollectionId()
  • shipment.addAttribute(sd) shipment.addAttribute(
    ad)
  • shipment.add(sw) shipment.add(dw)
    shipment.add(prods)
  • return (Shipment)shipment

15
Define Template
  • create a one shot program that
  • connects to Themis structure server
  • beginTemplate(shipment)
  • executes code from previous slide with following
    changes
  • substitute null for all attribute values that
    depend on parameters
  • remove calls to set objects of each atom
  • remove call to add Products collection
  • end template(passing shipment Collection)
  • disconnects from Themis

16
Creating Structure with Templates
  • Shipment createShipment(
  • int src, int dest,
  • Products prods, Date shipDate)
  • Collection shipment (Collection)templateAPI.newI
    nstance(shipment)
  • shipment.setAttributeValue(shipDate, sd)
  • ((Atom)shipment.getMemberAtIndex(1)).setObject(new
    Integer(src))
  • ((Atom)shipment.getMemberAtIndex(2)).setObject(new
    Integer(dest))
  • shipment.add(prods)
  • return (Shipment)shipment

17
Structure Transformation
  • Provide extensiblity mechanism that makes it
    possible to convert an instance of one template
    into an instance of another template
  • Supported via plug-in mechanism
  • Plug-ins must implement ThemisTransformation
    interface
  • String fromTemplate() returns source template
  • String toTemplate() returns destination template
  • Element transform(Element) - contains code to do
    transformation
  • transformationAPI then provides the following
    operation
  • Element transform(String from, String to, Element
    root)

18
Themis Architecture
Client 1
Client 2
Client 3
Client Interface
Client Interface
Client Interface
Connection to Repository C
Connection to Repository A
Connection to Repository B
Themis Server
Server Interface
Atom
Collection
Object
Repository
Database Interface
DBMS
Repository C
Repository B
Repository A
19
InfiniTe Prototype, Take 2
  • We are redesigning InfiniTe (our information
    integration environment) to make use of Themis
  • abandoning the XML-based repository used in the
    first InfiniTe prototype
  • Why?
  • Code of integrators and translators too closely
    tied to structure of XML documents
  • if structure changes, so do integrators and
    translators

20
Initial Results
  • Structure-based approach to repository is leading
    to code savings in InfiniTe
  • In XML-based prototype
  • Keyword Integrator (146 lines of code)
  • Text Translator (74 lines of code)
  • In Themis-based prototype
  • Keyword Integrator (97 lines of code, 34
    savings)
  • Text Translator (54 lines of code, 27 savings)
  • Examples

21
Current Status / Future Work
  • Current Status
  • Prototype Implementation has begun
  • Structure server implemented on top of relational
    database (using JDBC) support for transactions
    included
  • Themis Atom and Atom Objects implemented
  • Atom objects are serialized, stored as blobs
  • Collections, Attributes, Sets, and Find operation
    are next
  • Apaches XML-RPC being used as network protocol
  • Future Work
  • Structure-Aware Services
  • Generation of Themis servers configured for
    particular types of non-functional requirements
Write a Comment
User Comments (0)
About PowerShow.com