Transcript
Page 1: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Development Tools in Component-Based Structural

Computing Environments

Uffe K. Wiil

Aalborg Univ. Esbjerg

Page 2: 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

Page 3: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

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

Page 4: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

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)

Page 5: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

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)

Page 6: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 76

Construct Development Environment

UML Tool Emacs CSC

UMLdiagram

IDLspecification

Java serviceskeletons

Step 1 Step 3Step 2

Javac

Page 7: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 77

UML Tool

Page 8: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 78

UML Tool

Page 9: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 79

UML Tool

Page 10: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

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

Page 11: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 711

Development ScenarioCreate package

Page 12: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 712

Development ScenarioDefine anchor class (1)

Page 13: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 713

Development ScenarioDefine anchor class (2)

Page 14: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 714

Development ScenarioDefine anchor class (3)

Page 15: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 715

Development ScenarioCreate an association

Page 16: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 716

Development ScenarioResulting UML diagram

Page 17: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

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

Page 18: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 718

Development ScenarioDocumentation (1)

Page 19: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 719

Development ScenarioDocumentation (2)

Page 20: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

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

Page 21: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

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!

Page 22: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

Uffe K. WiilOpen Hypermedia Systems 722

ArgoUML

Page 23: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

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

Page 24: Development Tools in Component-Based Structural Computing Environments Uffe K. Wiil Aalborg Univ. Esbjerg

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