development tools in component-based structural computing environments uffe k. wiil aalborg univ....
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?