Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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 }

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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 }

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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)

Slide 24

Slide 24 text

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