Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Active Components as a Method for Coupling Data and Services – A Database-driven Application Development Process

Active Components as a Method for Coupling Data and Services – A Database-driven Application Development Process

Presentation given at ICOODB 2009, 2nd International Conference on Object Databases, Zurich, Switzerland.

ABSTRACT: In the area of highly interactive systems, the use of object databases has significantly grown in the past few years due to the fact that one can, not only persistently store data in the form of objects, but also provide additional functionality in terms of methods defined on these objects. However, a limitation of such a tight coupling of objects and their methods is that parts of the application logic cannot be reused without also having instances of these objects in the new application database. Based on our experience of designing multiple interactive cross-media applications, we propose an approach where we distinguish between regular database objects containing the data and so-called active components storing metadata about specific services. Active components are first class objects which, at activation time, can perform some operations on the server as well as on the client side. Since active components are standalone lightweight components, they can be dynamically bound to single objects or semantically grouped sets of objects and be automatically invoked by different forms of database interactions. The database-driven development of arbitrary client and server-side application functionality not only simplifies the design of highly interactive systems, but also improves the reuse of existing components across different systems.

Research paper: https://beatsigner.com/publications/active-components-as-a-method-for-coupling-data-and-services-a-database-driven-application-development-process.pdf

Beat Signer

July 03, 2009
Tweet

More Decks by Beat Signer

Other Decks in Science

Transcript

  1. 2 December 2005 Active Components as a Method for Coupling

    Data and Services – A Database-driven Application Development Process Beat Signer and Moira C. Norrie Department of Computer Science Vrije Universiteit Brussel 1050 Brussels, Belgium
  2. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Motivation package org.penAndPaper; import java.io.IOException; ... public class PaperPoint { Rectangle slide1 = new Rectangle(10,10,70,50); // if input within slide1 then // execute application logic }
  3. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Problems ▪ No separation of data objects (e.g. design elements) and application logic ▪ changes to the design require a recompilation ▪ limited reusability of application logic ▪ Authoring of paper interface requires programming ▪ designer has to be a programmer ▪ programming rather than authoring approach ▪ Design elements cannot easily be reused with different application logic variants ▪ replication of code
  4. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Active Component Approach ▪ Database driven application development where the database contains ▪ data objects ▪ active components (application logic) ▪ Data objects can be associated with active components at ▪ instance level ▪ type level ▪ role level (classification) ▪ Access to data object might trigger the execution of an active component ▪ active component runtime environment ▪ database-driven application logic on server and/or client side
  5. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Active Component ▪ Active component contains data about a service ▪ name ▪ identifier ▪ timeout ▪ parameters - key/value string pairs ▪ Active component runtime environment executes the corresponding application logic ▪ service binding ▪ initialisation
  6. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Active Component Runtime Environment
  7. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Active Component Registry ▪ Binding of identifier to stub and logic components ▪ Reconfigurable at runtime
  8. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Client- and Server-side Funtionality
  9. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Active Component Example package org.ximtec.iserver.activecomponent.logic; public class CommandLine extends EmptyLogic { } package org.ximtec.iserver.activecomponent.stub; import java.io.IOException; ... public class CommandLineStub extends SingleEventStub { public static final String PARAM_COMMAND = "command"; public void finish() { try { Runtime.getRuntime().exec(getParameter(PARAM_COMMAND)); } catch (IOException e) { LOGGER.log(Level.SEVERE, Constant.EMPTY_STRING, e); } } // finish }
  10. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Active Component Stub Example ...
  11. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Active Components Button Slider Slider2D DateSelector Browser MapSelector Capture CaptureAndIcr CaptureAndSpeak Image Sound Movie SQLClient XCMRequest CommandLine PaperPointControl PaperPointAnnot ...
  12. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Slider / Slider2D Active Component
  13. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Slider2D Active Component ▪ Slider2D active component properties ▪ startValueX ▪ endValueX ▪ stepsizeX ▪ invertedX ▪ startValueY ▪ endValueY ▪ stepsizeY ▪ invertedY
  14. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Active Component Editor PP_SLIDE_SELECTOR Show slide 1 command showSlide slide 1
  15. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Other Use Cases ▪ Rich internet applications ▪ active component runtime environment within browser ▪ "Internet of Things" ▪ active component runtime environment for augmented physical objects ▪ lightweight solution for database updates (e.g. sensor data) ▪ Implicit service execution at object access time ▪ service associated at instance, type or role level ▪ media service components
  16. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Media Service ▪ No longer deal with "raw" media types
  17. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Ongoing and Future Work ▪ Integration of concepts into the ODBMS ▪ role-driven service invocation ▪ separation of intrinsic (type) and extrinsic object behaviour ▪ Communication between different active components ▪ AC runtime environments for alternative programming languages
  18. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Conclusions ▪ Database-driven application development ▪ reusability due to separation of data objects and services (ACs) ▪ flexible configuration of active component services ▪ instance, type and role-driven service invocation ▪ Client- and server-side execution of application logic ▪ autonomous component-based client-server interaction ▪ Automatic deployment of services to the client side ▪ simplifies updates of client-side application logic ▪ Authoring rather than programming approach ▪ rapid prototyping (growing set of active components)
  19. Beat Signer - Department of Computer Science - [email protected] ICOODB,

    July 3, 2009 Further Information ▪ Beat Signer, Fundamental Concepts for Interactive Paper and Cross-Media Information Spaces, ISBN 978-3-8370-2713-6, May 2008 ▪ https://beatsigner.com