Easy and Powerful Composition of XML-based Active Documents Uwe Assmann PELAB/RISE Linköping...

Post on 28-Dec-2015

221 views 0 download

Tags:

transcript

Easy and Powerful Composition of

XML-based Active Documents

Uwe Assmann

PELAB/RISE

Linköping University, Sweden

EASYCOMP Consortium

1

Overview

■ Introduction■ XML and Active Documents

■ Future Applications of Active Documents■ Web Objects, Active Paper and Wearables■ Traders, Agents

■ What does Software Engineering look like today?■ Uniform Invasive Composition■ EASYCOMP

1

Entering the Age of Active Documents

■ XML is the ASCII of the 21st century■ It will represent software and data uniformly ■ Tags will have active semantics <if> <then> <else>

■ XML documents will be active (active documents, active components)

■ Active XML-based documents will penetrate ■ the future Web, ■ future documents, and ■ future software

1

■ Vision stems from [Orfali/Harkey: Instant CORBA]

■ Documents■ Hypertext ■ Multimedia, e.g., Courses for Online Learning■ Web sites, server objects■ Simulated objects

■ Traders■ Wearables/Active Paper■ Agents

Everything Will Be An Active Document

Future Applications of Active Documents

1

Overview of Active Documents

Stationary(Web sites,Documents)

Shippable(Active paper,

Wearables)

Reflective(Agents)

Introspective(Traders)

MobileReflective

Agents

1

Stationary Active Documents(Web Objects, Simulated Objects)

■ Why is a web site different from a web page?■ Only a bit more complex

■ Why is a desktop different from a web site?■ Representation

■ What the difference of a web site and ■ a CAD model■ a roller bearing■ a simulated robot?

■ What's the difference between a browser and an active web site?■ Client vs server

1

Shippable Active Documents (Wearables, Active Paper)

■ A shippable active document can be shipped easily to other phyisical places ■ web page, web site, desktop, browser

■ Problem: Shippable Active Documents can be copied and must be integrated again

■ Examples■ Wearable computers require shippable active

documents■ Active paper require shippable active documents

1

Active Paper Relies on Composition Technology

■ Mr. Spielberg has married in May, Ms Anita Söderberg, from Linköping, Sweden■ he tries to reuse his E-paper tax form from last year■ His wife Anita has an E-paper tax form from Sweden■ How to both combine their papers?

■ Wearables Rely on Composition Technology■ Prof. Söderberg, Linköping works two months in Karlsruhe■ He carries his active desktop as wrist watch■ In Karlsruhe, many sub-documents change ■ When he comes home, he integrates wrist watch

1

Active Documents Introspecting Others (Traders)

Trader

ClientService

Mediator Pattern

Import Functionality

ExportFunctionality

Traders deal withcomponents or services

Traders are active documents which reason about other active documents

1 2

3

1

Introspective Active Documents Rely on Semantic Properties

■ Introspective Active Documents have a meta-level architecture, relying on semantic descriptions■ properties, protocol specifications

■ Traders:■ Services described by semantic properties■ Clients specify desired properties■ Traders match desired and offered properties (e.g., by

DOOD technology)■ Traders delegate to other traders if they do not find

matches■ Similar to book management in libraries

1

Reflective Active Documents (Agents)

■ Agents are automomous active documents which reflect and reason about themselves and their environment ■ have a meta-level architecture with reflective features

■ Splitt-off self agents are agents that represent a human being and represent him for tasks■ Buying things automatically■ Finding interesting people to meet

■ www.agentlink.org

1

Overview of Active Documents

Stationary(Web sites,Documents)

Shippable(Active paper,

Wearables)

Reflective(Agents)

Introspective(Traders)

MobileReflective

Agents

1

How Do We Build Such Systems?

■ These systems will be complex■ They will migrate■ They will contact other unknown documents■ They will negotiate

■ Reuse of components of active documents would be nice...

■ Semantics is an issue...

■ Activeness is an issue...

1

Active Documents are Software

Active documents are Software!

Apply Software Engineering Techniques!

But how does Software Engineering look like today?

What Does Software Engineering Look Like Today?

1

The Essence of the 60s-90s:LEGO Software

■ Modular Systems■ Object-oriented Technology and Design Patterns■ Component-based Programming (CORBA,

DCOM, Beans)■ Architecture languages

Now: paradigm shift towards composition systems

1

Classical Component Systems

CORBADCOMBeans/EJB

Architecture Systems

Aspect Systems

Systems with Composition Operators

Composition Systems

AesopDarwin

Aspect/J

N-calculus

Meta-object compositionInvasive Composition

Standard Components

Architecture as Aspect

Aspect Separation

CompositionOperators

CompositionLanguage

Object-Oriented Systems JavaC++Sather

Objects asRun-Time Components

Modular Systems Ada-85ModulaC..

Modules as Compile-Time Components

Uniform Composition Systems EASYCOMP

Composition FiltersHyperslices

1

Where Are We Today?

Component systems (CORBA, DCOM, Beans, OO-frameworks) provide a communication and

standard service infrastructure

components ... but nothing more

LEGO Software

1

ComponentConnector Component

Port

Interface

Role

Software Architecture Systems

1

ConnectorsPorts

1make, shell

Composition connectors

pipe, tee, file

Filter Components

Component-based applications

Black-boxcomposition

Connector-basedProgramming

1

The Essence of the Last 5 Years

■ Aspect-oriented Programming■ View-based Programming

1

Systems with Composition Operators

Darwin

CompositionOperators

Classical Component Systems

CORBADCOMBeans/EJB

Architecture Systems

Composition Systems

Aesop

N-calculus

Standard Components

Architecture as Aspect

CompositionLanguage

Object-Oriented Systems JavaC++Sather

Objects asRun-Time Components

Modular Systems Ada-85ModulaC..

Modules as Compile-Time Components

Uniform Composition Systems EASYCOMP

Aspect Systems Aspect/JAspect Separation

Composition FiltersHyperslices

Meta-object compositionInvasive Composition

1

StructureInterfaces

Light Plan

Pipe Plan

Integrated House

1

Debugging

aspect

Debugging

aspect

Persistence

aspect

Persistence

aspectAlgorithmAlgorithm

Debugging aspect

Persistence aspect

Persistence

aspectDebugging aspect

Weaver-ToolWeaver-Tool

Debugging aspect

1Composition

recipe

Weaver

Components

System constructed in a component- and

composition-based architecture

Aspect-oriented

composition

View-basedcomposition

1

Entering the Era of Composition: The Essence of the 2000s

■ Composition Systems with Composition Language

■ Uniform Composition Systems■ Everything will be an active

component/document■ Software and documents will be composed

uniformly with composition operators and languages

1Composition

recipe

Composition Language

Components

System constructed in a composition-based

architecture

Invasivecomposition

Uniformcomposition

1

Classical Component Systems

CORBADCOMBeans/EJB

Architecture Systems

Aspect Systems

Systems with Composition Operators

AesopDarwin

Aspect/J

Composition Filters

N-calculus

Hyperslices

Standard Components

Architecture as Aspect

Aspect Separation

CompositionOperators

Object-Oriented Systems JavaC++Sather

Objects asRun-Time Components

Modular Systems Ada-85ModulaC..

Modules as Compile-Time Components

Composition Systems

CompositionLanguage

Uniform Composition Systems

EASYCOMP

Meta-object compositionInvasive Composition

1

Requirements for Uniform Composition: Easy and Powerful

■ Uniform composition of software and data with XML as basis■ security

■ Easy system construction by simple composition technology

■ Architecture■ Reuse compositions from libraries and languages■ Aspect orientation ■ Extensibility and integratability

■ Powerful system construction■ Semantics for compositions in XML■ Reflection, introspection

Invasive Composition - a Uniform Composition Technique

1

Composition

Component Model Composition Technique

Composition Language

1 12

Invasive Composition

Invasive Composition adapts and extends

componentsat hooks

by transformation

1 12

1. The Component Model of Invasive Composition

■ The basic element is a fragment box■ a set of fragments/tag elements

■ May be the representation of ■ an XML page■ a XML site■ a software component■ a class, a package, a method■ an aspect■ a meta description■ a composition program

1 12

Boxes have Hooks

Hooks are arbitrary elements or spotsof the representation of a boxwhich are subject to change

■ XML Variation Points■ beginning/end of tag lists■ anchors

■ Software Variation Points■ method entries/exits■ generic parameters

1

Implicit Hooks

Example Method Entry/Exit

m (){

abc.. cde..

}

Method.entry

Method.exit

Given by the programming language, the DTD or Xschema

1

Declared Hooks

Declarations

Declared Hooks are declared by the box writer as variables in the hook’s tags.

1

XSuperClass

<superclasshook> X </superclasshook>

class Set extends genericXSuperClass { }

class Set /* @superClass */

Declaration of Hooks

■ Markup Tags■ Language Extensions (keywords..)■ Standardized Names■ Comment Tags

1

2. The Composition Technique of Invasive Composition

A composer is a tag transformer from unbound to bound hooks

composer: box with hooks --> box with tags

Invasive Composition adapts and extends

componentsat hooks

by transformation

112

List Entry List Entry

LIST ExitList Exit

<UL>

<LI>... </LI> <LI>... </LI>

</UL>

box.findHook(„Entry“).extend(„<LI>... </LI>”);

box.findHook(„Exit“).extend(“<LI>... </LI>”);

<UL> <LI>... </LI> <LI>... </LI> <LI>... </LI> <LI>... </LI></UL>

112

Method Entry Method Entry

Method ExitMethod Exit

m (){

abc.. cde..

}

m (){ print(“enter m”); abc.. cde.. print(“exit m”);}

box.findHook(„.Entry“).extend(“print(\”enter m\”);”);

box.findHook(„Exit“).extend(“print(\”enter m\”);”);

1

Composer

Invasively transformed tags

■ Invasive Composition works uniformly over code and data

■ Allows to compose active documents uniformly (stationary, shippable, introspective, reflective)

Invasive Composition

1

3. The Composition Language of Invasive Composition

■ Using standard languages and XML itself■ Java or others

■ Meta-composition possible■ Composition of composition programs

1

COMPOST –The Invasive Composition System

■ First system to support invasive composition ■ Composition language Java

■ Library of static meta-programs■ Reified concepts Boxes, Hooks, Composers■ Names & Types■ Parsers + pretty printers■ Composers

■ Refactorings■ Inheritance operators■ Connectors■ Aspects

1

COMPOST for Everybody

■ 0.74 is out (Uni Linköping/Uni Karlsruhe)

http://i44w3info.uni-karlsruhe.de/~compost.htmlhttp://www.ida.liu.se/~uweas/compost-distributions

■ COMPOST is still on Level 7, but extended in EASYCOMP...

The EASYCOMP Project

1

EASYCOMPs Goal

■ Provide a uniform composition technology (Level 8)

■ Easy■ Powerful

■ EU IST FET Basic Research Project■ 6/2000 - 5/2003 ■ 2.5 Mio Euro Funding■ U Karlsruhe (coordinator), U Hagen, U Linköping,

Ecole des Mines Nantes, TU Vienna, U Twente■ HEI Mannheim, QLABS Paris, ILOG Paris

1

EASYCOMP Workplan

■ Core composition operator library■ Composition tools for XML active

components■ Component specifications■ Consistency checkers

■ Aspect Composition■ Event-based AOP

■ Case studies in ■ Multimedia learning■ E-commerce■ Dynamic reconfiguration

1

EASYCOMP -Composition of Active Documents

■ Uniform component model UNICOMP ■ Generalized parameter model hooks■ Uniform composition operators

■ Component models for■ XML components

■ XHTML, HeiTML, SVG, SMIL,..■ Software components

■ Java, C, ...■ Build on top of a XML refactorer and Java

refactorer

1

UNICOMP Architecture

JavaRecoder

X-HTMLRecoder

JDRUMS

FragmentComponents

Run TimeComponents

Components(Boxes)

PIKERecoder

UNICOMPComponents

.... ....

AbstractComposition

Interfaces forexchange andchecking

Languagespecific

Timespecific

FragmentComponents

1

EASYCOMP Component and Composition Specification

■ Component properties in DAML■ Composition validation with DAML www.daml.org ■ Generic Semantics with DAML

1

Outlook on 2005

■ Uniform XML composition technology■ Tooling■ Components■ Semantic descriptions

■ Simplified construction of Active Documents■ Reuse, Extensibility, Aspect separation■ Composition language■ Reflection

■ Web Sites, Active Paper, Wearables, Traders, Agents easier

1

PIKE Composition

■ PIKE refactorer■ based on static metaprogramming

■ Composition programs in PIKE■ composition library■ connectors, parameterizers, extenders

■ Extension of the language?

1

The End

■ www.easycomp.org■ www.ida.liu.se/~uweas■ http://i44www.ipd.info.uni-karlsruhe.de/~compost

Easy Composition of

XML-based Active Documents

Uwe Assmann

PELAB

Linköping University, Sweden

EASYCOMP Consortium

1

Overview of Active Documents

Stationary(Web sites,Documents)

Shippable(Active paper,

Wearables)

Reflective(Agents)

Introspective(Traders)

MobileReflective

Agents

1

Classical Component Systems

CORBADCOMBeans/EJB

Architecture Systems

Aspect Systems

Systems with Composition Operators

Composition Systems

AesopDarwin

Aspect/J

N-calculus

Meta-object compositionInvasive Composition

Standard Components

Architecture as Aspect

Aspect Separation

CompositionOperators

CompositionLanguage

Object-Oriented Systems JavaC++Sather

Objects asRun-Time Components

Modular Systems Ada-85ModulaC..

Modules as Compile-Time Components

Uniform Composition Systems EASYCOMP

Composition FiltersHyperslices

1

EASYCOMPs Goal

■ Provide a uniform composition technology (Level 8)■ Easy■ Powerful

■ EU IST FET Basic Research Project■ 6/2000 - 5/2003 ■ 2.5 Mio Euro Funding■ U Karlsruhe (coordinator), U Hagen, U Linköping,

Ecole des Mines Nantes, TU Vienna, U Twente■ HEI Mannheim, QLABS Paris, ILOG Paris

1

EASYCOMP Workplan

■ Core composition operator library■ Composition tools for XML active

components■ Component specifications■ Consistency checkers

■ Aspect Composition■ Languages, graph rewriting for automized weaving■ Event-based AOP

■ Case studies in■ Multimedia learning, E-commerce, E-house

■ Composition Ontology

1

THE END

■ www.easycomp.org■ www.ida.liu.se/~ uweas■ i44w3.ipd.info.uni-karlsruhe.de/~ compost