J-OCM is a system for monitoring distributed Java applications conforming to OMIS specification with J-OMIS extensions. It is used to: gather information.

Slides:



Advertisements
Similar presentations
Grzegorz Wianecki, Mateusz Wójcik, Włodzimierz Funika, Marcin Smętek 1 Institute of Computer Science AGH, Mickiewicza 30, Kraków, Poland 2 Academic.
Advertisements

Chapter 1 An Overview of Computers and Programming Languages.
SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION
ECE 750 Topic 8 Meta-programming languages, systems, and applications Load-time structural reflection in Java – Shigeru Chiba, 2000 May 27, 2004 Shimin.
1 Generic logging layer for the distributed computing by Gene Van Buren Valeri Fine Jerome Lauret.
AUTOMATIC GENERATION OF CODE OPTIMIZERS FROM FORMAL SPECIFICATIONS Vineeth Kumar Paleri Regional Engineering College, calicut Kerala, India. (Currently,
Automated creation of verification models for C-programs Yury Yusupov Saint-Petersburg State Polytechnic University The Second Spring Young Researchers.
Classes and Object- Oriented... tMyn1 Classes and Object-Oriented Programming The essence of object-oriented programming is that you write programs in.
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
From Cooper & Torczon1 Implications Must recognize legal (and illegal) programs Must generate correct code Must manage storage of all variables (and code)
The middleware that makes real time integration a reality.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Institute of Computer Science AGH Performance Monitoring of Java Web Service-based Applications Włodzimierz Funika, Piotr Handzlik Lechosław Trębacz Institute.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
Włodzimierz Funika, Filip Szura Automation of decision making for monitoring systems.
CS102 Introduction to Computer Programming
1 Integrated Development Environment Building Your First Project (A Step-By-Step Approach)
Cracow Grid Workshop 2003 Institute of Computer Science AGH A Concept of a Monitoring Infrastructure for Workflow-Based Grid Applications Bartosz Baliś,
CPS120: Introduction to Computer Science The World Wide Web Nell Dale John Lewis.
Java Virtual Machine Java Virtual Machine A Java Virtual Machine (JVM) is a set of computer software programs and data structures that use.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Gary MarsdenSlide 1University of Cape Town Principles of programming language design Gary Marsden Semester 2 – 2001.
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
Lechoslaw Trębacz 1, Włodzimierz Funika 2, Piotr Handzlik 3, Marcin Smętek 2 1 Department of Computer Methods in Metallurgy, AGH, Kraków, Poland 2 Institute.
Exploring an Open Source Automation Framework Implementation.
RELATIONAL FAULT TOLERANT INTERFACE TO HETEROGENEOUS DISTRIBUTED DATABASES Prof. Osama Abulnaja Afraa Khalifah
CS266 Software Reverse Engineering (SRE) Reversing and Patching Java Bytecode Teodoro (Ted) Cipresso,
Cracow Grid Workshop, October 27 – 29, 2003 Institute of Computer Science AGH Design of Distributed Grid Workflow Composition System Marian Bubak, Tomasz.
Chapter 6 Programming Languages (2) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Unit-1 Introduction Prepared by: Prof. Harish I Rathod
Software Construction Lecture 18 Software Testing.
1 M. Tudruj, J. Borkowski, D. Kopanski Inter-Application Control Through Global States Monitoring On a Grid Polish-Japanese Institute of Information Technology,
1. 2 Preface In the time since the 1986 edition of this book, the world of compiler design has changed significantly 3.
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2009 Overview of Compilers and JikesRVM John.
Automated Patch Generation Adapted from Tevfik Bultan’s Lecture.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Testing OO software. State Based Testing State machine: implementation-independent specification (model) of the dynamic behaviour of the system State:
How to Program? -- Part 1 Part 1: Problem Solving –Analyze a problem –Decide what steps need to be taken to solve it. –Take into consideration any special.
 Programming - the process of creating computer programs.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Włodzimierz Funika 1, Marian Bubak 1,2, Marcin Smętek 1 and Roland Wismüller 3 1 Institute of Computer Science, AGH, Kraków, Poland 2 Academic Computer.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Introduction to OOP CPS235: Introduction.
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Marian Bubak 1,2, Włodzimierz Funika 1,2, Roland Wismüller 3, Tomasz Arodź 1,2, Marcin Kurdziel 1,2 1 Institute of Computer Science, AGH, Kraków, Poland.
Chapter – 8 Software Tools.
MDAFA 2004 Presentation1Dennis Wagelaar Context-Driven Model Refinement Dennis Wagelaar Vrije Universiteit Brussel.
Enabling Control over Adaptive Program Transformation for Dynamically Evolving Mobile Software Validation Mike Jochen, Anteneh Anteneh, Lori Pollock University.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
METADATA IN.NET Presented By Sukumar Manduva. INTRODUCTION  What is Metadata ? Metadata is a binary information which contains the complete description.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Introduction To Software Development Environment.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
A Single Intermediate Language That Supports Multiple Implemtntation of Exceptions Delvin Defoe Washington University in Saint Louis Department of Computer.
Advanced Computer Systems
Visit for more Learning Resources
Behavioral Design Patterns
Deploying and Configuring SSIS Packages
PL/SQL Scripting in Oracle:
Model-Driven Analysis Frameworks for Embedded Systems
Distributed Dynamic Weaving is a Crosscutting Concern
Single Event Upset Simulation
Presentation transcript:

J-OCM is a system for monitoring distributed Java applications conforming to OMIS specification with J-OMIS extensions. It is used to: gather information on distributed application transfer instrumented classes to their target locations redefine classes in remote JVMs return results from instruments Włodzimierz Funika, Paweł Świerszcz Institute of Computer Science AGH, Mickiewicza 30, Kraków, Poland Dynamic Instrumentation Instrumentation is a process in which existing program's code is enriched with additional functionality by injecting instructions implementing some new features, mainly intended for monitoring. Goals of project The main goal of this project is to present a proposal of a system that will support the developer in instrumenting Java applications. This support consists of automating some of the tasks that are required steps of instrumentation process. In this way the developer can concentrate on a higher abstraction level – designing instrumentation elements, choosing instrumentation spots, combining the created additional functionality with existing application classes in order to create a functional execution unit. Use cases Persistence Safe fail-over Load balancingOptimization Testing Logging Debugging Monitoring Distributed Environment JVMJVMJVM InstrumentationEngine Java classes Usage scenario The instrumentation environment is prepared (classes to be instrumented, instruments’ definitions) Instrumented classes are loaded and examined, a SIR tree is created for instrumented application Instrumentation design is prepared (instruments connected to classes) Classes are modified, instruments injected into methods J-OCM system initialized, application tokens obtained Classes redefined on remote nodes with J-OCM Instruments now active and working transparently, possibly returning results via J-OCM event services Define hook points in the application where an instrument can be applied Code to be executed when execution flow reaches hook point Methods and fields required by the instrument to work properly Instrument parameters Used to perform low-level operations like XML processing (Castor) or bytecode introspection and modification (Java Object Instrumentation Engine, Bytecode Engineering Library) InstrumentsDefinitions Low-levelLibraries J-OCM Source code (.java) Compilation Instrumentation After being instrumented classes are indistinguishable from those not instrumented. Bytecode (.class) SIR SIR (Standard Intermediate Representation) specifies an uniform way of representing an application’s code structure. It consists of a tree hierarchy with a SIR root element for whole application and it’s nested subelements describing code details (classes, methods, fields, etc. In case of Java). It is generic and allows for representing applications in many languages, in an extendable way and can easily be transformed into XML. java SIR Group Unit Group Unit Dependency libraries Bytecode modifications The nstrumentation system works entirely on binary classes. This means that for each instrument injection point, bytecode instructions specific for that hook have to be located. Then a special bytecode section is prepared taking into consideration a code location, hook point context and instrument parameters. This section is then inserted into methods code so it passes execution flow to instrument along with all data needed (like the current method’s name or variable value, depending on the particular instrument). This has to be performed very carefully not to violate class correctness or application stability. Original application’s behaviour is not altered. Dynamic instrumentation means that running systems are be enhanced on-the-fly without stopping and restarting.