criwg 2010: enabling collaboration transparency

16
Enabling Enabling Collaboration Collaboration Transparency with Transparency with Computational Computational Reflection Reflection Pedro García López Universitat Rovira i Virgili [email protected]

Upload: pgarcial

Post on 13-Jul-2015

207 views

Category:

Education


5 download

TRANSCRIPT

Page 1: CRIWG 2010: Enabling Collaboration transparency

Enabling Enabling Collaboration Collaboration Transparency withTransparency withComputational Computational ReflectionReflection

Pedro García LópezUniversitat Rovira i Virgili

[email protected]

Page 2: CRIWG 2010: Enabling Collaboration transparency

MotivationMotivation

Neurolearning project:– Neuro-rehabilitation– Brain training environment for

degenerative diseases designed by neuropsychologists

– Tons of tasks created by partners– They asked for:

• Synchronous interaction (pacient-therapeut, pacient-pacient)

• Monitoring (store, reply, analyze)

Page 3: CRIWG 2010: Enabling Collaboration transparency

Collaboration Transparency ?Collaboration Transparency ?

Definition: The conversion of legacy single-user applications to collaborative multi-user tools without modifying the source code of the original application.

Two Types: Blackbox: complete transparency, it works

with user interface libraries and input events.

Whitebox: it requires “code archaeology”, delving into the code to find proper interceptors.

Page 4: CRIWG 2010: Enabling Collaboration transparency

Related WorkRelated Work

Most recent works are whitebox approaches:– Weaving a social fabric into existing

software (2005)– Transparent adaptation of single-

user applications for multi-user real-time collaboration (2006)

Blackbox approaches– Flexible collaboration transparency:

supporting worker independence in replicated application-sharing systems (1999!)

Page 5: CRIWG 2010: Enabling Collaboration transparency

Flexible JAMM (Bo Begole)Flexible JAMM (Bo Begole)

JAMM (Java Applets made multiuser)– Replaces UI libraries (Swing) with

collaborative UI components– Not complete transparency, it

requires code adaptations: swing and serialization

– No source code available

Page 6: CRIWG 2010: Enabling Collaboration transparency

• Reflection is the ability of a program to manipulate as data something representing the state of the program during its own execution. There are two aspects of such manipulation: introspection and intercession.

– Introspection is the ability for a program to observe and therefore reason about its own state.

– Intercession is the ability for a program to modify its own execution state or alter its own interpretation or meaning.

• Both aspects require a mechanism for encoding execution state as data: provising such encoding is called reification[Paepke'92]

Computational ReflectionComputational Reflection

Page 7: CRIWG 2010: Enabling Collaboration transparency

AOP (Aspect Oriented Programming) enables the clean separation of cross-cutting concerns thanks to aspect weaving.

– Interception points (pointcut) and triggered code (advice)

– Systems like AspectJ enable inter-type declarations (changing inheritance tree)

– Compile-time weaving & load-time weaving– Implies “Code Archaeology”

Aspect Oriented Programming Aspect Oriented Programming

Page 8: CRIWG 2010: Enabling Collaboration transparency

Collaboration transparency Vs collaboration awareness

Blackbox model Vs whitebox model Replicated event broadcasting Vs

centralized display broadcasting Software Wrapper Vs UI Library

Replacement AOP Vs code adaptations

Problem StatementProblem Statement

Page 9: CRIWG 2010: Enabling Collaboration transparency

BestBest

Event Broadcasting Contextual information External Resources Launching support Late joining support Floor Control

ChallengesChallenges

Page 10: CRIWG 2010: Enabling Collaboration transparency

BestBestEvent BroadcastingEvent Broadcasting

It requires accessing the Event Queue to capture input events (Mouse, Keyboard)

It requires the possibility of cancelling local events to inject them remotely

It requires the identification of the source of each event

It requires accessing all the available components

UI Introspection !!

Page 11: CRIWG 2010: Enabling Collaboration transparency

BestBestContextual InformationContextual Information

Collaboration awareness: telepointers, radar views It requires: multiple cursors, painting over UI

components (context layer) Swing solution: Transparent Glasspane

Component What if the tool is using AWT ?

Interception: AOP !

Page 12: CRIWG 2010: Enabling Collaboration transparency

BestBestExternal ResourcesExternal Resources

External Resources: Network, Files, Random Numbers

It requires the interception or replacement of external resources with controlled Proxies.

Interception: AOP !

Page 13: CRIWG 2010: Enabling Collaboration transparency

BestBestLaunching Support:Launching Support: AOP + AOP + load-time weavingload-time weaving

Page 14: CRIWG 2010: Enabling Collaboration transparency

BestBestValidationValidation: low overhead: low overhead

Page 15: CRIWG 2010: Enabling Collaboration transparency

BestBestOpen problemsOpen problems

Late Joining support:– Very difficult to solve in a transparent way– From the moment, we could not convert

variables to transient in Java with AOP– Event Replay is probably the best solution

Floor Control:– Already solved– The wrapper can control floor control in the

process of event injection

Open problemsOpen problems

Page 16: CRIWG 2010: Enabling Collaboration transparency

BestBestOpen problemsOpen problems

Advanced Computational reflection and metaprogramming are important tools !

– Allan Kay: Reinventing programming Complete Blackbox Collaboration transparency can

be achieved combining UI introspection (event queues, component reflection), software interception (AOP) and wrapping support (load-time weaving)

Unfortunately, most existing environments do not offer such functionalities: Java SWT, C#, Browsers, OS

And Meta-programming tools are complex (AOP)

ConclusionsConclusions