Eclipse Coordination Tools Software Development at SEN3 Christian - - PowerPoint PPT Presentation

eclipse coordination tools
SMART_READER_LITE
LIVE PREVIEW

Eclipse Coordination Tools Software Development at SEN3 Christian - - PowerPoint PPT Presentation

Reo Tools Automata Tools Implementations Eclipse Coordination Tools Software Development at SEN3 Christian Koehler Centrum voor Wiskunde en Informatica (CWI) Amsterdam, The Netherlands 17th October 2007 Christian Koehler Eclipse


slide-1
SLIDE 1

Reo Tools Automata Tools Implementations

Eclipse Coordination Tools

Software Development at SEN3 Christian Koehler

Centrum voor Wiskunde en Informatica (CWI) Amsterdam, The Netherlands

17th October 2007

Christian Koehler Eclipse Coordination Tools

slide-2
SLIDE 2

Reo Tools Automata Tools Implementations

Outline

1

Reo Tools Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

2

Automata Tools Concepts & Features Extension Types

3

Implementations Example Application Code Generation

Christian Koehler Eclipse Coordination Tools

slide-3
SLIDE 3

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Outline

1

Reo Tools Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

2

Automata Tools Concepts & Features Extension Types

3

Implementations Example Application Code Generation

Christian Koehler Eclipse Coordination Tools

slide-4
SLIDE 4

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Eclipse Platform

Open-source, platform-independent software framework. Sophisticated plug-in architecture. Meta-tools for development of graphical and textual editors. Integration of heterogeneous tools possible.

Christian Koehler Eclipse Coordination Tools

slide-5
SLIDE 5

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Eclipse Coordination Tools (ECT)

Reo Tools Automata Tools

Christian Koehler Eclipse Coordination Tools

slide-6
SLIDE 6

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Reo Tools

Reo Model Graphical Editor Animation View

Edit connectors graphically and save them as XML/XMI. Generate Flash animations of connectors on the fly. Extend the Reo model to define your own channel types. Model check Reo circuits and constraint automata.

Christian Koehler Eclipse Coordination Tools

slide-7
SLIDE 7

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Reo Editor

Supported channel types: Sync, LossySync FIFO, LossyFIFO SyncDrain, AsyncDrain SyncSpout, AsyncSpout

Figure: Exclusive router.

Christian Koehler Eclipse Coordination Tools

slide-8
SLIDE 8

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Reo Editor

Other primitive connectors: Writer, Reader Replicator, Merger ...

Figure: Sequencer.

Christian Koehler Eclipse Coordination Tools

slide-9
SLIDE 9

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Generic Primitives

Support for Generics: Connectors can be exported to a library. Internal structure and behaviour is hidden. Reuse connectors to build more complex ones.

Figure: 3-Counter circuit.

⇒ Modularization and encapsulation.

Christian Koehler Eclipse Coordination Tools

slide-10
SLIDE 10

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Reo Animation

Compositionally computed animations :

Figure: Animated 3-Counter.

Christian Koehler Eclipse Coordination Tools

slide-11
SLIDE 11

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Integrated Model Checker

Model Checking: Efficient symbolic model checking implemented in C++. Joint project with TU-Dresden.

Figure: Dining philosophers.

Christian Koehler Eclipse Coordination Tools

slide-12
SLIDE 12

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Dynamic Reo

Need for dynamic coordination: Software systems evolve over time. Static connectors are not sufficient for complex applications. New paradigms demand highly dynamic adaptations (e.g. in SOA or Grid computing). Deployment and reconfiguration procedures are essential for a reliable coordination environment.

Christian Koehler Eclipse Coordination Tools

slide-13
SLIDE 13

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

High-Level Transformations

Connector Reconfiguration: Support for local and global changes. Pattern-based transformation rules. Perform complex refactorings in an atomic step. ⇒ Need for a high-level transformation language.

Christian Koehler Eclipse Coordination Tools

slide-14
SLIDE 14

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

SOA Example

Restaurant Hotel Flight Payment Hotel Flight Payment

XOR

Train Hotel Flight

XOR

Train Maps Payment

Figure: SOA process customization.

Christian Koehler Eclipse Coordination Tools

slide-15
SLIDE 15

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Graph Transformation

Modeling structure or behavior is often done with some sort of graphs. Model transformation can be realized as a transformation of graphs. A set of transformation rules constitutes a graph grammar.

Payment Train

XOR

Restaurant Hotel Flight Maps Calendar

Figure: SOA process.

Christian Koehler Eclipse Coordination Tools

slide-16
SLIDE 16

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

Process Customization

XOR

Flight Flight Service

Figure: Rewrite rule "Add flight alternative".

Christian Koehler Eclipse Coordination Tools

slide-17
SLIDE 17

Reo Tools Automata Tools Implementations Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

EMF Model Transformation (EMT)

Figure: Graphical Transformation editor.

Christian Koehler Eclipse Coordination Tools

slide-18
SLIDE 18

Reo Tools Automata Tools Implementations Concepts & Features Extension Types

Outline

1

Reo Tools Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

2

Automata Tools Concepts & Features Extension Types

3

Implementations Example Application Code Generation

Christian Koehler Eclipse Coordination Tools

slide-19
SLIDE 19

Reo Tools Automata Tools Implementations Concepts & Features Extension Types

Eclipse Coordination Tools (ECT)

Reo Tools Automata Tools

Christian Koehler Eclipse Coordination Tools

slide-20
SLIDE 20

Reo Tools Automata Tools Implementations Concepts & Features Extension Types

Automata Tools

General purpose automata tools. Separation of graph structure and attached data (extensions). Compositional validation and product. Automata extensions are registered using Eclipse’ extension point mechanisms. Can be (de)activated in the context menu of the editor.

Christian Koehler Eclipse Coordination Tools

slide-21
SLIDE 21

Reo Tools Automata Tools Implementations Concepts & Features Extension Types

Automata Tools

Currently implemented extensions: Start states, port names, local memory, constraints, costs. ⇒ Constraint automata with memory and costs.

Christian Koehler Eclipse Coordination Tools

slide-22
SLIDE 22

Reo Tools Automata Tools Implementations Concepts & Features Extension Types

Start State Extensions

Boolean flag attached to states. It indicates whether a state is a start / initial state. Extension Product isStart1×2 = isStart1 ∧ isStart2

Christian Koehler Eclipse Coordination Tools

slide-23
SLIDE 23

Reo Tools Automata Tools Implementations Concepts & Features Extension Types

Port Names Extensions

List of port names that is attached to the automaton itself and all of its transitions. Validation routines check for illegal (e.g. undefined, duplicate) port names. Extension Product Names1×2 = Names1 ∪ Names2 names1×2 = names1 ∪ names2 iff Names1 ∩ names2 = Names2 ∩ names1

Christian Koehler Eclipse Coordination Tools

slide-24
SLIDE 24

Reo Tools Automata Tools Implementations Concepts & Features Extension Types

Memory Extensions

List of memory cell names that is attached to states. Can be referenced in constraints. Extension Product memory1×2 = memory1 ⊎ memory2

Christian Koehler Eclipse Coordination Tools

slide-25
SLIDE 25

Reo Tools Automata Tools Implementations Concepts & Features Extension Types

Constraint Extensions

Constraints over the port names and the memory cells are attached to the transitions. Only the memory cells of the source and the target state can be used (local memory). Extension Product constraint1×2 = constraint1 ∧ constraint2

Christian Koehler Eclipse Coordination Tools

slide-26
SLIDE 26

Reo Tools Automata Tools Implementations Concepts & Features Extension Types

Cost Extensions

List of cost algebras is attached to the automaton. List of cost values is attached to the transitions. Implementations of the algebras handle the parsing and the product

  • f cost values.

Extension Product cost1×2 = cost1 ȅ cost2

Christian Koehler Eclipse Coordination Tools

slide-27
SLIDE 27

Reo Tools Automata Tools Implementations Example Application Code Generation

Outline

1

Reo Tools Eclipse Overview Editor, Animation & Model Checking Connector Reconfiguration

2

Automata Tools Concepts & Features Extension Types

3

Implementations Example Application Code Generation

Christian Koehler Eclipse Coordination Tools

slide-28
SLIDE 28

Reo Tools Automata Tools Implementations Example Application Code Generation

Reo at Runtime

Implementations:

1

Code generation from constraint automata (a.k.a. CASP). Reo connectors have to be converted to constraint automata first.

2

Local runtime engine based on constraint programming. Adaptive, but centralized implementation.

3

Distributed Reo implemented with Scala Actors. Designed to support arbitrary reconfigurations.

Christian Koehler Eclipse Coordination Tools

slide-29
SLIDE 29

Reo Tools Automata Tools Implementations Example Application Code Generation

Reo at Runtime

RSS Calendar UI Checkout Maps Weather E A B C D G F H K J L M N O P Q R Christian Koehler Eclipse Coordination Tools

slide-30
SLIDE 30

Reo Tools Automata Tools Implementations Example Application Code Generation

Reo at Runtime

Christian Koehler Eclipse Coordination Tools

slide-31
SLIDE 31

Reo Tools Automata Tools Implementations Example Application Code Generation

Code Generation

Code generation from constraint automata:

1

Collect (or implement first, if required) component / service wrappers.

2

Design a coordinator as a CA or derive

  • ne from a Reo connector.

3

Use graphical wiring tool to attach the wrappers to the coordinator.

Christian Koehler Eclipse Coordination Tools

slide-32
SLIDE 32

Reo Tools Automata Tools Implementations Example Application Code Generation

Designing the Coordinator

1

Create Reo circuit for collected components.

2

Convert the connector to a CA.

3

Generate coordinator code.

Reo connector Constraint automaton Coordinator code

Christian Koehler Eclipse Coordination Tools

slide-33
SLIDE 33

Reo Tools Automata Tools Implementations Example Application Code Generation

Reo2CA Conversion

CA product

+

Reo connector to be converted CA templates for used channel types Constraint automaton

Constraint automata as semantical model for Reo. Starting point for model checking and code generation.

Christian Koehler Eclipse Coordination Tools

slide-34
SLIDE 34

Reo Tools Automata Tools Implementations Example Application Code Generation

Wiring the Components

1

Drag’n’Drop components and coordinators into the editor.

2

Wire the component ports with coordinator ports.

3

Generate runnable application.

Christian Koehler Eclipse Coordination Tools

slide-35
SLIDE 35

Reo Tools Automata Tools Implementations Example Application Code Generation

Conclusion

What we can do already: Design, simulate and model check Reo connectors. Derive formal automata models from connectors. Generate runnable code from connectors and integrate them with existing component implementations. Use predefined wrappers for service protocols (e.g. RSS, SOAP , REST) and specific services (e.g. Google calendar).

Christian Koehler Eclipse Coordination Tools

slide-36
SLIDE 36

Reo Tools Automata Tools Implementations Example Application Code Generation

Conclusion

What we want to do in the future: Modeling of QoS properties (CooPer project). Integration with workflow languages and grid architectures (WoMaLaPaDia project). Architectural view on services, coordination, grid etc. Framework based implementation.

Christian Koehler Eclipse Coordination Tools

slide-37
SLIDE 37

Appendix Bibliography

Links

Eclipse Coordination Tools. http://www.cwi.nl/∼koehler/ect Reo Animation Repository. http://www.cwi.nl/∼proenca/webreo

Christian Koehler Eclipse Coordination Tools