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 http://vub.academia.edu/BeatSigner
24
Embed
Active Components as a Method for Coupling Data and Services – A Database-Driven Application Development Process
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.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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
http://vub.academia.edu/BeatSigner
Beat Signer - Department of Computer Science - [email protected], 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
}
Beat Signer - Department of Computer Science - [email protected], 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
Beat Signer - Department of Computer Science - [email protected], 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
Beat Signer - Department of Computer Science - [email protected], 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
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Active Component Runtime Environment
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Active Component Registry
Binding of identifier to stub and logic components
Reconfigurable at runtime
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Server-side Functionality
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Client-side Functionality
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Client- and Server-side Funtionality
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Active Component Stub and Logic
Beat Signer - Department of Computer Science - [email protected], 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";