development tools in component-based structural computing environments uffe k. wiil aalborg univ....

Post on 18-Jan-2016

232 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Development Tools in Component-Based Structural

Computing Environments

Uffe K. Wiil

Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 72

Overview

Why development tools? Construct development environment UML Tool Development scenario Experiences with service development Related work and conclusions Open issues and future work

Uffe K. WiilOpen Hypermedia Systems 73

Why Development Tools?

Ease the construction of new services– Specification– Development

Lowering the entry barrier for developers– Specification of services at a high level of

abstraction (UML and IDL)– Use of well-defined design patterns and templates

to generate component service skeletons

Uffe K. WiilOpen Hypermedia Systems 74

Why Development Tools?

A lesson learned with HOSS– Rapid development of services

Same lesson learned with Construct– E.g., development of a metadata service, wrapper

and integration with Emacs in two days

Is this not how computer scientists work? – Specific -> General (generalization)– General -> Specific (specialization)

Uffe K. WiilOpen Hypermedia Systems 75

Construct Development Environment

The 5 steps in service development– UML diagram (UML Tool)– IDL specification (Emacs)– Compilation (CSC inside Emacs)– Service semantics (Emacs)

(method bodies)– Compilation (Javac inside Emacs)

Uffe K. WiilOpen Hypermedia Systems 76

Construct Development Environment

UML Tool Emacs CSC

UMLdiagram

IDLspecification

Java serviceskeletons

Step 1 Step 3Step 2

Javac

Uffe K. WiilOpen Hypermedia Systems 77

UML Tool

Uffe K. WiilOpen Hypermedia Systems 78

UML Tool

Uffe K. WiilOpen Hypermedia Systems 79

UML Tool

Uffe K. WiilOpen Hypermedia Systems 710

Development Scenario

Jakob is a graduate student taking a structural computing class – we have plans for one!

Hands-on experience is a requirement Decides to build a simple navigational structure

service as his class assignment– Based on anchors and links only!

Decides to base development on existing development tools – in this case Construct

Uffe K. WiilOpen Hypermedia Systems 711

Development ScenarioCreate package

Uffe K. WiilOpen Hypermedia Systems 712

Development ScenarioDefine anchor class (1)

Uffe K. WiilOpen Hypermedia Systems 713

Development ScenarioDefine anchor class (2)

Uffe K. WiilOpen Hypermedia Systems 714

Development ScenarioDefine anchor class (3)

Uffe K. WiilOpen Hypermedia Systems 715

Development ScenarioCreate an association

Uffe K. WiilOpen Hypermedia Systems 716

Development ScenarioResulting UML diagram

Uffe K. WiilOpen Hypermedia Systems 717

module simplenav {

interface Anchor {attribute Urn document;attribute Urn link;attribute String value;void createAnchor(in Urn document, in Urn link, in String value, out Anchor anchor);void updateAnchor(in Urn anchor, in String value);void deleteAnchor(in Urn anchor);void getDocumentAnchors(in Urn document, out LinkedList anchors);

};

interface Link {attribute LinkedList anchorUrns;void createLink(in LinkedList anchorUrns, out Link link);void deleteLink(in Urn link);void traverseLink(in Urn anchor, out LinkedList anchors);

};

};

Development ScenarioGenerated IDL specification

Uffe K. WiilOpen Hypermedia Systems 718

Development ScenarioDocumentation (1)

Uffe K. WiilOpen Hypermedia Systems 719

Development ScenarioDocumentation (2)

Uffe K. WiilOpen Hypermedia Systems 720

Experiences with Service Development

Navigational service– Wrappers for Netscape, Emacs, UML Tool

Metadata service– Wrappers for Netscape, Emacs

Storage service Taxonomic, spatial, data mining, and

cooperation services

Uffe K. WiilOpen Hypermedia Systems 721

Related Work

Rational Rose (http://www.rational.com/rose)– Construct is public domain– Construct is based on an open systems philosophy

with re-use and integration of existing tools, services and applications

ArgoUML (http://argouml.tigris.org)– Also public domain– Worth an investigation!

Uffe K. WiilOpen Hypermedia Systems 722

ArgoUML

Uffe K. WiilOpen Hypermedia Systems 723

Conclusions

We have demonstrated that development tools can lower the entry barrier for developers!– Services can be specified at a high level of

abstraction in UML or IDL– Component skeletons are ”auto-generated”

We propose to the OHSWG that UML is adopted as one of the primary ways to specify service interface – together with IDL

Uffe K. WiilOpen Hypermedia Systems 724

Open Issues and Future Work

The development environment– Smoother integration of tools (control integration)– Keep developing our own tools?– Use exsiting tools such as ArgoUML?

What is the appropriate component model?– Construct as it is?– Java Beans / RMI?– CORBA?

top related