Włodzimierz Funika, Marcin Białek, Piotr Pęgiel, Marcin Smętek

1
Włodzimierz Funika, Marcin Białek, Piotr Pęgiel, Marcin Smętek Institute of Computer Science AGH, Mickiewicza 30, 30-059 Kraków, Poland <[email protected], [email protected], [email protected], [email protected]> A Case Study of Interoperability in a Distributed Tools Environment the ability of two or more systems or components to exchange information and to use this information • the ability of two or more software components to share and process common information the ability of two or more software components to cooperate with each other • the property of the independently developed software components of interaction between each other What is interoperability? Goals of research: Introducing JINEXT interoperability monitoring features Showing cooperation between commonly known software tool types Introducing new way to monitor cooperative work of programming teams in distributed communication model The new approach – a system with interoperability support JINEXT EVENTS: Set Break Point Begin Debugging Continue Step Source Changed EVENTS: Stop Line Debugger Error List Watches ACTIONS upon: Debugger Error Source Changed List Watches ACTIONS: Upon Begin Debugging Upon Set Break Point Upon Continue Upon Step Monitoring system layer: J-OCM is an implementation of the J-OMIS specification. J-OCM consists of a set of distributed components providing tools with interactive access to the Java application and runtime environment. Mediator layer: JINEXT allows each cooperating application to retain transparency of its implementation. As a result the applications do not need to know anything about each other and they are still able to work together. Software layer: commonly known software tools Tool layer: Tool layer represents the proxy pattern for software tools. It's responsible for: Interacting with JINEXT mediator – sending events and registering for specific actions. Cooperation with our software tools (currently editor and gdb debugger) Situation before interoperability: Let’s imagine that an editor and a debugger operate on the same application. Programs are being run on separate machines and all communication between team members goes by separate channel (e.g. icq). This approach demands special time effort needed for communication, and leads to further mistakes and misunderstandings. User 1 INTERNET INTRANET Communication Features of new interoperability tools: Debugger description: As the debbuger we used gdb runinng in the full text mode (outputs everything), our proxy template (debugger tool type proxy) allowed it to expose main debugger features for the editor. Editor description: Features of a commonly used editor software such as: - code/text files operations - saving/editing multiple files Allows to control debugger (setting break points, starting debugger instance, setting watches) Allows the visualization of debugger current state (current line, variables state) Allows multi-user synchronization (detects changes in source code done by other users) Written in C++ with use of Qt and gtk+ Computer 1 J-OCM Debugger 1 Editor 1 User 2 Debugger 2 Editor 2 Applicati on To cope with the problem we have introduced a layered architecture. Editor 1 Debugger 1 Editor tool type Debbuger tool type Application Registering the debugger in the J-OCM/JINEXT References: 1.Arkadiusz Janik, Kraków 2004: Interoperabilność narzędzi wspierających rozwijanie aplikacji w języku Java 2.Roland Wismüller: Interoperable Laufzeit-Werkzeuge für parallele und verteilteSysteme, Habilitationsschrift, Universität Munchen, 2001 3.Marcin Smetek: OMIS-based Monitoring System for Distributed Java Applications. Master of Science Thesis. Kraków June 2003 Advantages that come from using interoperable software: Possibility of concurrency aware software development process. New possibilities of team work (program can be simultaneously debugged by many distant users), and immediately exchange ideas. Allows for faster development of scalable applications Editor window with application source code

description

JINEXT. EVENTS: Stop Line Debugger Error List Watches. EVENTS : Set Break Point Begin Debugging Continue Step Source Changed. ACTIONS u pon : Debugger Error Source Changed List Watches. ACTIONS: Upon Begin Debugging Upon Set Break Point Upon Continue Upon Step. Editor window - PowerPoint PPT Presentation

Transcript of Włodzimierz Funika, Marcin Białek, Piotr Pęgiel, Marcin Smętek

Page 1: Włodzimierz Funika, Marcin Białek, Piotr Pęgiel,  Marcin Smętek

Włodzimierz Funika, Marcin Białek, Piotr Pęgiel, Marcin SmętekInstitute of Computer Science AGH, Mickiewicza 30, 30-059 Kraków, Poland

<[email protected], [email protected], [email protected], [email protected]>

A Case Study of Interoperability in a Distributed Tools Environment

• the ability of two or more systems or components to exchange information and to use this information

• the ability of two or more software components to share and process common information

• the ability of two or more software components to cooperate with each other

• the property of the independently developed software components of interaction between each other

What is interoperability?

Goals of research: Introducing JINEXT interoperability monitoring

features

Showing cooperation between commonly known software tool types

Introducing new way to monitor cooperative work of programming teams in distributed communication model

The new approach – a system with interoperability support

JINEXT

EVENTS:•Set Break Point •Begin Debugging•Continue•Step•Source Changed

EVENTS:•Stop Line•Debugger Error•List Watches

ACTIONS upon:•Debugger Error•Source Changed•List Watches

ACTIONS:•Upon Begin Debugging•Upon Set Break Point•Upon Continue•Upon Step

Monitoring system layer: J-OCM is an implementation of the J-OMIS specification. J-OCM consists of a set of distributed components providing tools with interactive access to the Java application and runtime environment.

Mediator layer: JINEXT allows each cooperating application to retain transparency of its implementation. As a result the applications do not need to know anything about each other and they are still able to work together.

Software layer: commonly known software tools

Tool layer: Tool layer represents the proxy pattern for software tools. It's responsible for:

Interacting with JINEXT mediator – sending events and registering for specific actions.

Cooperation with our software tools (currently editor and gdb debugger)

Situation before interoperability:Let’s imagine that an editor and a debugger operate on the same application. Programs are being run on separate machines and all communication between team members goes by separate channel (e.g. icq). This approach demands special time effort needed for communication, and leads to further mistakes and misunderstandings.

User 1INTERNETINTRANET

Communication

Features of new interoperability tools:

Debugger description:As the debbuger we used gdb

runinng in the full text mode (outputs everything), our proxy template (debugger tool type proxy) allowed it to expose main debugger features for the editor.

Editor description: Features of a commonly used editor

software such as:- code/text files operations- saving/editing multiple files

Allows to control debugger (setting break points, starting debugger instance, setting watches)

Allows the visualization of debugger current state (current line, variables state)

Allows multi-user synchronization (detects changes in source code done by other users)

Written in C++ with use of Qt and gtk+

Computer 1

J-OCM

Debugger 1

Editor 1

User 2

Debugger 2

Editor 2

Application

To cope with the problem we have introduced a layered architecture.

Editor 1 Debugger 1

Editor tool type Debbuger tool type

Application

Registering the debuggerin the J-OCM/JINEXT

References:1. Arkadiusz Janik, Kraków 2004: Interoperabilność narzędzi

wspierających rozwijanie aplikacji w języku Java

2. Roland Wismüller: Interoperable Laufzeit-Werkzeuge für parallele und verteilteSysteme, Habilitationsschrift, Universität Munchen, 2001

3. Marcin Smetek: OMIS-based Monitoring System for Distributed Java Applications. Master of Science Thesis. Kraków June 2003

Advantages that come from using interoperable software:

Possibility of concurrency aware software development process.

New possibilities of team work (program can be simultaneously debugged by many distant users), and immediately exchange ideas.

Allows for faster development of scalable applications

Editor window with application source code