Top Banner
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

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

Nov 07, 2014

Download

Technology

Beat Signer

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.
Welcome message from author
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
Page 1: Active Components as a Method for Coupling Data and Services – A Database-Driven Application Development Process

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

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

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

}

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

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

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

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

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

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

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

Beat Signer - Department of Computer Science - [email protected], July 3, 2009

Active Component Runtime Environment

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

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

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

Beat Signer - Department of Computer Science - [email protected], July 3, 2009

Server-side Functionality

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

Beat Signer - Department of Computer Science - [email protected], July 3, 2009

Client-side Functionality

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

Beat Signer - Department of Computer Science - [email protected], July 3, 2009

Client- and Server-side Funtionality

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

Beat Signer - Department of Computer Science - [email protected], July 3, 2009

Active Component Stub and Logic

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

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

}

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

Beat Signer - Department of Computer Science - [email protected], July 3, 2009

Active Component Stub Example ...

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

Beat Signer - Department of Computer Science - [email protected], July 3, 2009

Client and Server AC Interaction

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

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

...

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

Beat Signer - Department of Computer Science - [email protected], July 3, 2009

Slider / Slider2D Active Component

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

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

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

Beat Signer - Department of Computer Science - [email protected], July 3, 2009

Authoring

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

Beat Signer - Department of Computer Science - [email protected], July 3, 2009

Active Component Editor

PP_SLIDE_SELECTOR

Show slide 1

command showSlide

slide 1

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

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

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

Beat Signer - Department of Computer Science - [email protected], July 3, 2009

Media Service

No longer deal with "raw" media types

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

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

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

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)

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

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