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

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

Post on 18-Jan-2016

214 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

  • Development Tools in Component-Based Structural Computing EnvironmentsUffe K. WiilAalborg Univ. Esbjerg

    Open Hypermedia Systems 7

  • OverviewWhy development tools?Construct development environmentUML ToolDevelopment scenarioExperiences with service developmentRelated work and conclusionsOpen issues and future work

    Open Hypermedia Systems 7

  • Why Development Tools?Ease the construction of new servicesSpecificationDevelopmentLowering the entry barrier for developersSpecification of services at a high level of abstraction (UML and IDL)Use of well-defined design patterns and templates to generate component service skeletons

    Open Hypermedia Systems 7

  • Why Development Tools?A lesson learned with HOSSRapid development of servicesSame lesson learned with ConstructE.g., development of a metadata service, wrapper and integration with Emacs in two daysIs this not how computer scientists work? Specific -> General(generalization)General -> Specific(specialization)

    Open Hypermedia Systems 7

  • Construct Development EnvironmentThe 5 steps in service developmentUML diagram(UML Tool)IDL specification(Emacs)Compilation(CSC inside Emacs)Service semantics (Emacs) (method bodies)Compilation(Javac inside Emacs)

    Open Hypermedia Systems 7

  • Construct Development Environment

    Open Hypermedia Systems 7

  • UML Tool

    Emacs

    CSC

    UMLdiagram

    IDLspecification

    Java serviceskeletons

    Step 1

    Step 3

    Step 2

    Javac

  • UML Tool

    Open Hypermedia Systems 7

  • UML Tool

    Open Hypermedia Systems 7

  • UML Tool

    Open Hypermedia Systems 7

  • Development ScenarioJakob is a graduate student taking a structural computing class we have plans for one! Hands-on experience is a requirementDecides to build a simple navigational structure service as his class assignmentBased on anchors and links only!Decides to base development on existing development tools in this case Construct

    Open Hypermedia Systems 7

  • Development ScenarioCreate package

    Open Hypermedia Systems 7

  • Development ScenarioDefine anchor class (1)

    Open Hypermedia Systems 7

  • Development ScenarioDefine anchor class (2)

    Open Hypermedia Systems 7

  • Development ScenarioDefine anchor class (3)

    Open Hypermedia Systems 7

  • Development ScenarioCreate an association

    Open Hypermedia Systems 7

  • Development ScenarioResulting UML diagram

    Open Hypermedia Systems 7

  • Development ScenarioGenerated IDL specification

    Open Hypermedia Systems 7

  • 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 ScenarioDocumentation (1)

    Open Hypermedia Systems 7

  • Development ScenarioDocumentation (2)

    Open Hypermedia Systems 7

  • Experiences with Service DevelopmentNavigational serviceWrappers for Netscape, Emacs, UML ToolMetadata serviceWrappers for Netscape, EmacsStorage serviceTaxonomic, spatial, data mining, and cooperation services

    Open Hypermedia Systems 7

  • Related WorkRational Rose(http://www.rational.com/rose)Construct is public domainConstruct is based on an open systems philosophy with re-use and integration of existing tools, services and applicationsArgoUML(http://argouml.tigris.org)Also public domainWorth an investigation!

    Open Hypermedia Systems 7

  • ArgoUML

    Open Hypermedia Systems 7

  • ConclusionsWe 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 IDLComponent skeletons are auto-generatedWe propose to the OHSWG that UML is adopted as one of the primary ways to specify service interface together with IDL

    Open Hypermedia Systems 7

  • Open Issues and Future WorkThe development environmentSmoother 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?

    Open Hypermedia Systems 7