active components as a method for coupling data and services – a database-driven application...
DESCRIPTION
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.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";
public void finish() {
try {
Runtime.getRuntime().exec(getParameter(PARAM_COMMAND));
}
catch (IOException e) {
LOGGER.log(Level.SEVERE, Constant.EMPTY_STRING, e);
}
} // finish
}
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Active Component Stub Example ...
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Client and Server AC Interaction
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Active Components
Button
Slider
Slider2D
DateSelector
Browser
MapSelector
Capture
CaptureAndIcr
CaptureAndSpeak
Image
Sound
Movie
SQLClient
XCMRequest
CommandLine
PaperPointControl
PaperPointAnnot
...
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Slider / Slider2D Active Component
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Slider2D Active Component
Slider2D active component properties startValueX
endValueX
stepsizeX
invertedX
startValueY
endValueY
stepsizeY
invertedY
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Authoring
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Active Component Editor
PP_SLIDE_SELECTOR
Show slide 1
command showSlide
slide 1
Beat Signer - Department of Computer Science - [email protected], 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
Beat Signer - Department of Computer Science - [email protected], July 3, 2009
Media Service
No longer deal with "raw" media types
Beat Signer - Department of Computer Science - [email protected], 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
Beat Signer - Department of Computer Science - [email protected], 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)
Beat Signer - Department of Computer Science - [email protected], 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