$30 off During Our Annual Pro Sale. View Details »

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
PRO

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

    View Slide

  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
    }

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

  8. Beat Signer - Department of Computer Science - [email protected]
    ICOODB, July 3, 2009
    Server-side Functionality

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  12. 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
    }

    View Slide

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

    View Slide

  14. Beat Signer - Department of Computer Science - [email protected]
    ICOODB, July 3, 2009
    Client and Server AC Interaction

    View Slide

  15. 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
    ...

    View Slide

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

    View Slide

  17. 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

    View Slide

  18. Beat Signer - Department of Computer Science - [email protected]
    ICOODB, July 3, 2009
    Authoring

    View Slide

  19. 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

    View Slide

  20. 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

    View Slide

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

    View Slide

  22. 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

    View Slide

  23. 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)

    View Slide

  24. 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

    View Slide