Active Components as a Method for Coupling
Data and Services – A Database-Driven
Application Development Process
Beat Sign...
Motivation
                                              package org.penAndPaper;
                                        ...
Problems
      No separation of data objects (e.g design elements) and
          application logic
              changes...
Active Component Approach
      Database driven application development where the
          database contains
           ...
Active Component
      Active component contains data about a service
              name
              identifier
     ...
Active Component Runtime Environment




ICOODB, July 3, 2009   Beat Signer - Department of Computer Science - bsigner@vub...
Active Component Registry




      Binding of identifier to stub and logic components
      Reconfigurable at runtime

...
Server-side Functionality




ICOODB, July 3, 2009   Beat Signer - Department of Computer Science - bsigner@vub.ac.be
Client-side Functionality




ICOODB, July 3, 2009   Beat Signer - Department of Computer Science - bsigner@vub.ac.be
Client- and Server-side Funtionality




ICOODB, July 3, 2009   Beat Signer - Department of Computer Science - bsigner@vub...
Active Component Stub and Logic




ICOODB, July 3, 2009   Beat Signer - Department of Computer Science - bsigner@vub.ac.be
Active Component Example
      package org.ximtec.iserver.activecomponent.logic;
       public class CommandLine extends E...
Active Component Stub Example ...




ICOODB, July 3, 2009   Beat Signer - Department of Computer Science - bsigner@vub.ac...
Client and Server AC Interaction




ICOODB, July 3, 2009   Beat Signer - Department of Computer Science - bsigner@vub.ac....
Active Components
                           Button                                               Image

                 ...
Slider / Slider2D Active Component




ICOODB, July 3, 2009   Beat Signer - Department of Computer Science - bsigner@vub.a...
Slider2D Active Component
      Slider2D active component properties
              startValueX
              endValueX
...
Authoring




ICOODB, July 3, 2009   Beat Signer - Department of Computer Science - bsigner@vub.ac.be
Active Component Editor
                                                                            PP_SLIDE_SELECTOR

   ...
Other Use Cases
      Rich internet applications
              active component runtime environment within browser
     ...
Media Service
      No longer deal with "raw" media types




ICOODB, July 3, 2009    Beat Signer - Department of Compute...
Ongoing and Future Work
      Integration of concepts into the ODBMS
              role-driven service invocation
      ...
Conclusions
      Database-driven application development
              reusability due to separation of data objects an...
Further Information
      Beat Signer, Fundamental Concepts for Interactive
          Paper and Cross-Media Information S...
Upcoming SlideShare
Loading in …5
×

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

1,666 views

Published on

Presentation given at ICOODB 2009, Second International Conference on Object Databases, Zurich, Switzerland, July 2009

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.

Published in: Technology, Business
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
1,666
On SlideShare
0
From Embeds
0
Number of Embeds
10
Actions
Shares
0
Downloads
34
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

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

  1. 1. 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 http://vub.academia.edu/BeatSigner 2 December 2005
  2. 2. 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 } ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  3. 3. 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 ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  4. 4. 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 ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  5. 5. 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 ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  6. 6. Active Component Runtime Environment ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  7. 7. Active Component Registry  Binding of identifier to stub and logic components  Reconfigurable at runtime ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  8. 8. Server-side Functionality ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  9. 9. Client-side Functionality ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  10. 10. Client- and Server-side Funtionality ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  11. 11. Active Component Stub and Logic ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  12. 12. 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 } ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  13. 13. Active Component Stub Example ... ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  14. 14. Client and Server AC Interaction ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  15. 15. Active Components Button Image Slider Sound Slider2D Movie DateSelector SQLClient Browser XCMRequest MapSelector CommandLine Capture PaperPointControl CaptureAndIcr PaperPointAnnot CaptureAndSpeak ... ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  16. 16. Slider / Slider2D Active Component ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  17. 17. Slider2D Active Component  Slider2D active component properties  startValueX  endValueX  stepsizeX  invertedX  startValueY  endValueY  stepsizeY  invertedY ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  18. 18. Authoring ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  19. 19. Active Component Editor PP_SLIDE_SELECTOR Show slide 1 command showSlide slide 1 ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  20. 20. 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 ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  21. 21. Media Service  No longer deal with "raw" media types ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  22. 22. 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 ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  23. 23. 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) ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be
  24. 24. Further Information  Beat Signer, Fundamental Concepts for Interactive Paper and Cross-Media Information Spaces, ISBN 978-3-8370-2713-6, May 2008 ICOODB, July 3, 2009 Beat Signer - Department of Computer Science - bsigner@vub.ac.be

×