Włodzimierz Funika, Marcin Białek, Piotr Pęgiel, Marcin Smętek Institute of Computer Science...
-
Upload
collin-muston -
Category
Documents
-
view
216 -
download
3
Transcript of Włodzimierz Funika, Marcin Białek, Piotr Pęgiel, Marcin Smętek Institute of Computer Science...
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