Page 1 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG© März 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG To Boldly Go......

Slides:



Advertisements
Similar presentations
Web 2.0 Programming 1 © Tongji University, Computer Science and Technology. Web Web Programming Technology 2012.
Advertisements

2008 EPA and Partners Metadata Training Program: 2008 CAP Project Geospatial Metadata: Intermediate Course Module 3: Metadata Catalogs and Geospatial One.
Using T4Eclipse tool to Analyze Eclipse UI For t4eclipse version Ben Xu July 17,2010.
Programming with Android: SDK install and initial setup Luca Bedogni Marco Di Felice Dipartimento di Scienze dellInformazione Università di Bologna.
Copyright © 2003 Pearson Education, Inc. Slide 3-1 Created by Cheryl M. Hughes The Web Wizards Guide to XML by Cheryl M. Hughes.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 10 Servlets and Java Server Pages.
Copyright © 2003 Pearson Education, Inc. Slide 6-1 Created by Cheryl M. Hughes, Harvard University Extension School Cambridge, MA The Web Wizards Guide.
28 April 2004Second Nordic Conference on Scholarly Communication 1 Citation Analysis for the Free, Online Literature Tim Brody Intelligence, Agents, Multimedia.
Extending Eclipse CDT for Remote Target Debugging Thomas Fletcher Director, Automotive Engineering Services QNX Software Systems.
AJDT and AspectJ Release Review | © 2007 by SpringSource, made available under the EPL v1.0 1 Release Review: AJDT and AspectJ
© 2006 by Raghu Srinivasan; made available under the EPL v1.0 | Presenter Raghu Srinivasan Project Lead Oracle Inc. The JSF Tools Project –
18 Copyright © 2005, Oracle. All rights reserved. Distributing Modular Applications: Introduction to Web Services.
11 Copyright © 2005, Oracle. All rights reserved. Creating the Business Tier: Enterprise JavaBeans.
17 Copyright © 2005, Oracle. All rights reserved. Deploying Applications by Using Java Web Start.
Copyright © 2006 Data Access Technologies, Inc. Open Source eGovernment Reference Architecture Approach to Semantic Interoperability Cory Casanave, President.
PubMed Limits Here is the Limits page. Searches can be limited by restricting terms to fields or setting specific date or record tagging parameters.
0 - 0.
MULTIPLYING MONOMIALS TIMES POLYNOMIALS (DISTRIBUTIVE PROPERTY)
Addition Facts
1 G54PRG Programming Lecture 1 Amadeo Ascó Adam Moore G54PRG Programming Lecture 1 Amadeo Ascó 3 Java Programming Language.
1 © Netskills Quality Internet Training, University of Newcastle Introducing Cascading Style Sheets © Netskills, Quality Internet.
Enterprise Java and Data Services Designing for Broadly Available Grid Data Access Services.
Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
Profiles Construction Eclipse ECESIS Project Construction of Complex UML Profiles UPM ETSI Telecomunicación Ciudad Universitaria s/n Madrid 28040,
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
4. Internet Programming ENG224 INFORMATION TECHNOLOGY – Part I
Overview Environment for Internet database connectivity
Configuration management
August 2012 This work is licensed under the Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit
Component-Based Software Engineering Main issues: assemble systems out of (reusable) components compatibility of components.
Waste Management External Supplier User Guide SciQuest USA, Inc 5433 Westheimer Ste 925 Houston, TX
1 Department of Computer Science, University of Sheffield eXtreme Programming - Practices Dr. Marian Gheorghe.
the Entity-Relationship (ER) Model
1 Distribution of Data and Remote Invocation of Programs Tomasz Müldner, Zhonghai Luo and Elhadi Shakshuki* Jodrey School of Computer Science, Acadia University,
Database System Concepts and Architecture
Lecture plan Outline of DB design process Entity-relationship model
Lecture 5: Requirements Engineering
Executional Architecture
Addition 1’s to 20.
Week 1.
Chapter 11 Component-Level Design
1 Web Services Based partially on Sun Java Tutorial at Also, XML, Java and the Future of The Web, Jon Bosak. And WSDL.
1 Abstract Class and Packages from Chapter 9 Lecture.
1 Implementing DDIEditor in the Danish Data Archive - Demonstration and gained experience Part of session: Recent Developments in the DDI Implementation.
Developing an Eclipse Plug-in David Gallardo. Platform Runtime Workspace Help Team Workbench JFace SWT Eclipse Project Java Development Tools (JDT) Their.
Eclipse Architecture Dwight Deugo Nesa Matic
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
Views Dwight Deugo Nesa Matic
1 Plug-in Development Environment (PDE) Guide. 2 Introduction to PDE l What is PDE: »a tool designed to help you develop platform plug-ins while working.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
1 Software Reuse in Eclipse Kellie-Ann Smith Norgye Yuanyuan Song Xiang Yin Jia Xu.
© 2005 by IBM; made available under the EPL v1.0 | March 1, 2005 Tim deBoer Gorkem Ercan Extend WTP Server Tools for your.
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
AN OVERVIEW OF SERVLET TECHNOLOGY SERVER SETUP AND CONFIGURATION WEB APPLICATION STRUCTURE BASIC SERVLET EXAMPLE Java Servlets - Compiled By Nitin Pai.
® How to Build IBM Lotus Notes Components for Composite Applications 정유신 과장 2007 하반기 로터스 알토란.
Introduction to Eclipse Plug-in Development. Who am I? Scott Kellicker Java, C++, JNI, Eclipse.
Component frameworks Roy Kensmil. Historical trens in software development. ABSTRACT INTERACTIONS COMPONENT BUS COMPONENT GLUE THIRD-PARTY BINDING.
1 Registry Services Overview J. Steven Hughes (Deputy Chair) Principal Computer Scientist NASA/JPL 17 December 2015.
Introduction to XML XML – Extensible Markup Language.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
ETICS All Hands meeting B ologna, October , 2006 WP4 Test and Metrics Plugin Framework (WP4) (WP4) Eva TAKACS.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 2, Modeling with UML: UML 2 Metamodel Note to Instructor: The material in this.
An EPICS IDE Using Eclipse Kenneth Evans, Jr. Presented at the EPICS Collaboration Meeting June 15, 2006 Argonne National Laboratory, Argonne, IL.
Presented By:. What is JavaHelp: Most software developers do not look forward to spending time documenting and explaining their product. JavaSoft has.
Generating ADL Descriptions ADL Module for Together 6.x Massimo Marino Lawrence Berkeley National Laboratory.
Java IDE Dwight Deugo Nesa Matic
Goals Give you a feeling of what Eclipse is.
Architecture, Components, Configuration
Java IDE Dwight Deugo Nesa Matic Portions of the notes for this lecture include excerpts from.
Presentation transcript:

Page 1 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG© März 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG To Boldly Go Where No IDE Has Gone Before Component-Based Development with Eclipse – A Tangible Vision Thorsten Fink, Ph.D. Wolfgang Metzner GmbH & Co KG

Page 2 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Starting with a quote The plug-in extension model of Eclipse provides a powerful and general paradigm for architecting extensible systems based on loosely-coupled components. [Bolour]

Page 3 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Background We agree with the quote, but at the same time believe that the Plugin Development Environment has much more to offer than a paradigm. Because: PDE is the only IDE known to us which offers real support for component-based development. The developers of Eclipse had to overcome many obstacles, in order to produce a component-based software. So they created their own development environment (PDE). Developers of Java applications face similar problems when trying to develop component-based applications. Todays reality is that component-based development is frequently given up in favor of monolithic development. One of the reasons being that todays IDEs do not offer sufficient support in that direction. This is where our vision starts!!

Page 4 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG The Vision Our vision is an extension of the Eclipse Java Development Environment (JDT) offering the following functionality Component dependencies by id and version Manifest Files for components, modules, applications --and editors for these JDT offers infrastructure classes that can used in the application (supporting component extensions) Direct support of components, modules (couple of components) and applications (couple of modules) Build takes component dependencies into account, validates, that all necessary component configurations are in place, automatically creates a property file (left-hand side only) with all parameters needed by the components Components communicate the way in which they can be parametrized, configured and extended in their manifest files

Page 5 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Component Hierarchy: An Example ain ain-clientain-persistence dbo.coredbo.ain util client.coreclient.ain Component Module Application enthält hängt ab An application consists of modules which in turn consist of components. Only components can be extended and configured (by other components). In our example dbo.ain configures the component dbo.core.

Page 6 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Manifest Files (in a Nutshell) Each component has a manifest file with the name component.xml A component is what today is an Eclipse Project. The manifest file component.xml contains the following information. main information: id, name, version dependencies on other components runtime information: name of the component jar (and possibly other jars) parameter information: which parameters are necessary to parametrize this component (e.g. database url)? configuration information: how can this component be configured by one and only one other component? An example would be metadata in an xml instance document. listener-point: which listener can be registered with this component? listener registration: welche Listener are registered with another component? Possibly other extensions and uses thereof

Page 7 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Component Manifest: Example

Page 8 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG <configuration-point name="attribute-names" fileName="attribute-names.xml" schema="attribute-names.xsd" description="Meta data of persistent attributes" /> <configuration-point name="record-names" fileName="record-names.xml" schema="record-names.xsd" description=" Meta data of persistent records" /> Component Manifest: Example (ctd)

Page 9 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG component.xml: the elements Main information component-id : unique id of the component component-name : name of the component component-version : version of the component requires : dependencies on other components (referring to id and version) runtime : name of the build jar (and possibly other jars) param-point : name of parameters needed by this component. Using these parameter names a property file for the application will be created (or validated) configuration-point : name of a file used in the configuration of this component. The component itself does not contain the file. In the context of an application or a module there is exactly on other component configuring this component (see: next element configuration ) configuration : location of the configuration file used in the configuration of another component.

Page 10 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG component.xml: the elements (ctd) startup : classes which are instantiated at the time of application startup. After instantiation their method initalize(Properties properties) will be called. listener-point : this is where other components can register their listeners. listener : here a component declares that it registers a listener at anothers component listener-point. There might very well be other extension elements. We would prefer to concretely model these elements (as weve done in the case of listener-point and listener). This way important features of the communication between components do not get lost in general extension- point, extension pairs. We believe that in the case of applications a restriction to a few selected forms of communication should be possible.

Page 11 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Build: An Overview The manifest files of the components, modules and applications are used in the build process – internally by Eclipse as well as externally by Ant. Well only consider the Eclipe build process (but see: Appendix). Dependency analysis and use In the case of inconsistences, problems (tasks) are created. Examples for inconsistencies are a component of the referenced version is not available. references to different versions of the same component exist within a module or an application. a configurable component is not (or more than once) configured within the context of a module or an application. All components are build as specified in the manifest files. The parameters (in param ) are written to a property file. The startup information (in startup ) is collected in a startup.xml. The file is used during application startup.

Page 12 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Build: An Overview (ctd) Additional information is collected for use by the infrastructure classes The exact process and the functionality of the infrastructure classes is to be determined. The infrastructure classes are used by Eclipse and by the Java application.

Page 13 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Build: Component Parametrization The param elements of all components of a given application are collected during the build process. A property file will be created or a given one will be validated (completeness) on their basis. component.xml Application.properties – left-hand sides are created ## Parameters of component: dbo database.url= database.user= database.password=

Page 14 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Build: Component Configuration A component may specify that it can (and should) be configured by an XML instance document. <configuration-point name="attribute-names" fileName="attribute-names.xml" schema="attribute-names.xsd" description="Meta data of persistent attributes" /> In the context of a module or an application, one and only one other component configures the above component. The component doing the configuration contains the required XML instance document. <configuration point="de.vfst.persistence.attribute-names" path="de/vfst/persistence/metadata/ain" />

Page 15 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Modules Modules consist of (configured) components. Modules cannot be configured. They are described by manifest files with the name module.xml.

Page 16 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Applications Applications consist of modules and possibly (configured) components. Applications cannot be configured. They are described by manifest files with the name application.xml.

Page 17 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Outlook There are many obstacles to overcome and gaps to fill in on the way to a complete support of component-based development. We believe that the route outlined in this document is promising and can be taken. Selected functionality could possibly be migrated from PDE to JDT or quickly implemented by Monkey See, Monkey Do. Pleasant side effects should not go unmentioned Reverse Engineering of Component Diagrams on the basis of manifest files, and other yet undiscovered possibilities. Architects can be sure that their architecture is reality. Developers, designers can base their discussions also on the content of manifest files. A heigthened appeal to create product-independent or platform- independent components (which will have a higher degree of re-usability).

Page 18 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Literature [Bolour] Azad Bolour, Notes on the Eclipse Plug-in Architecture, in: Eclipse Corner Article, Juli 2003http:// [Gamma, Beck] Erich Gamma, Kent Beck, Contributing to Eclipse, Addison-Wesley, 2004

Page 19 © April 2004 Thorsten Fink, Ph.D., Wolfgang Metzner GmbH & Co KG Appendix: Build Management The vision for the build management is as follows In order to build an application you only need access to the configuration management system (CMS), as well as a manifest file application.xml The build process pulls the needed components in their correct version from the CMS, validates the component dependencies and starts the application build during which property and startup files are created components are configured Infrastructure classes (for e.g. listener registration) are build