Software, IEE Proceedings, Vol.152, Num.3, June 2005,Page(s):110-118 Prasanthi.S March,16.2009 Java-based component framework for dynamic reconfiguration.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

An Overview Of Virtual Machine Architectures Ross Rosemark.
Architecture-based Evolution of Software Systems José Luiz Fiadeiro Architecture-based Evolution of Software Systems Luís Andrade João Gouveia Georgios.
TSpaces Services Suite: Automating the Development and Management of Web Services Presenter: Kevin McCurley IBM Almaden Research Center Contact: Marcus.
MODERN OPERATING SYSTEMS Third Edition ANDREW S. TANENBAUM Chapter 3 Memory Management Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
ECE 750 Topic 8 Meta-programming languages, systems, and applications Load-time structural reflection in Java – Shigeru Chiba, 2000 May 27, 2004 Shimin.
1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
The road to reliable, autonomous distributed systems
Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.
1 Ivan Lanese Computer Science Department University of Bologna Italy Evolvable systems: some ideas for modelling With input from Davide Sangiorgi, Fabrizio.
Architectural Design Principles. Outline  Architectural level of design The design of the system in terms of components and connectors and their arrangements.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
1.3 Executing Programs. How is Computer Code Transformed into an Executable? Interpreters Compilers Hybrid systems.
Java Introduction 劉登榮 Deng-Rung Liu 87/7/15. Outline 4 History 4 Why Java? 4 Java Concept 4 Java in Real World 4 Language Overview 4 Java Performance!?
A Free sample background from © 2001 By Default!Slide 1.NET Overview BY: Pinkesh Desai.
The Center for Advanced Research In Software Engineering (ARISE) The University of Texas at Austin Reengineering of Large-Scale Polylingual Systems Mark.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
MT311 Java Application Development and Programming Languages Li Tak Sing( 李德成 )
Zhonghua Qu and Ovidiu Daescu December 24, 2009 University of Texas at Dallas.
Object-Oriented Implementation of Reconciliations M.Sc. Seminar Talk by Costa Shapiro under supervision of Prof. Shmuel Katz Computer Science – Technion.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Java Introduction Lecture 1. Java Powerful, object-oriented language Free SDK and many resources at
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
Magnetic Field Measurement System as Part of a Software Family Jerzy M. Nogiec Joe DiMarco Fermilab.
Extensible Plug-ins for Aspect-Oriented Programming Macneil Shonle*Ankit Shah.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Language processors (Chapter 2) 1 Course Overview PART I: overview material 1Introduction 2Language processors (tombstone diagrams, bootstrapping) 3Architecture.
Remote Procedure Calls Adam Smith, Rodrigo Groppa, and Peter Tonner.
Java 2 security model Valentina Casola. Components of Java the development environment –development lifecycle –Java language features –class files and.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
SCALABLE EVOLUTION OF HIGHLY AVAILABLE SYSTEMS BY ABHISHEK ASOKAN 8/6/2004.
MICHALIS POLYCHRONAKIS(COLUMBIA UNIVERSITY,USA), KOSTAS G. ANAGNOSTAKIS(NIOMETRICS, SINGAPORE), EVANGELOS P. MARKATOS(FORTH-ICS, GREECE) ACSAC,2010 Comprehensive.
What Is Java? According to Sun in a white paper: Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable,
Instrumentation in Software Dynamic Translators for Self-Managed Systems Bruce R. Childers Naveen Kumar, Jonathan Misurda and Mary.
Introduction to Compilers. Related Area Programming languages Machine architecture Language theory Algorithms Data structures Operating systems Software.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
GYTE - Bilgisayar Mühendisliği Bölümü Bilgisayar Mühendisliği Bölümü GYTE - Bilgisayar Mühendisliği Bölümü AN ARCHITECTURE FOR NEXT GENERATION MIDDLEWARE.
Introduction to OOP CPS235: Introduction.
Procedures and Functions Procedures and Functions – subprograms – are named fragments of program they can be called from numerous places  within a main.
Architectural Mismatch: Why reuse is so hard? Garlan, Allen, Ockerbloom; 1994.
Visual Programming Borland Delphi. Developing Applications Borland Delphi is an object-oriented, visual programming environment to develop 32-bit applications.
RealTimeSystems Lab Jong-Koo, Lim
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
JAVA TRAINING IN NOIDA. JAVA Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented and specifically.
CopperDroid Logan Horton. Android - Background Android is complicated to analyse due to having 2 places to check for code execution Normally, code is.
Java-based component framework for dynamic reconfiguration 소프트웨어 재사용 방법론 2011 년 3 월 22 일 ( 화 ) 발표자 : 전승우.
A Single Intermediate Language That Supports Multiple Implemtntation of Exceptions Delvin Defoe Washington University in Saint Louis Department of Computer.
Computer System Structures
Memory Hierarchy Ideal memory is fast, large, and inexpensive
Session 3 Memory Management
Chapter 1 Introduction to Computers, Programs, and Java
Self Healing and Dynamic Construction Framework:
Topic: Difference b/w JDK, JRE, JIT, JVM
Introduction
Introduction Enosis Learning.
Yunsik Son1, Seman Oh1, Yangsun Lee2
Multi-Dispatch in the Java™ Virtual Machine
Introduction Enosis Learning.
An Introduction to Software Architecture
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Course Overview PART I: overview material PART II: inside a compiler
Outline Operating System Organization Operating System Examples
Self-Managed Systems: an Architectural Challenge
Architectural Mismatch: Why reuse is so hard?
Presentation transcript:

Software, IEE Proceedings, Vol.152, Num.3, June 2005,Page(s): Prasanthi.S March, Java-based component framework for dynamic reconfiguration Y.-F.Lee and R.-C.Chang

Contents  Abstract  Introduction  Overview of component frame work  Implementation of component frame work  Dynamically reconfigurable TCP and performance evaluation  Conclusion

Abstract “In this paper, a Java-based component framework is proposed to support dynamic reconfiguration,which does not need to modify the Java language, the Java virtual machine or the Java bytecode”  Component framework has two implementations  Based on the Java language itself.  Based on both the Java code and native programming interfaces provided by the Java virtual machine.

Introduction  Dynamic reconfiguration  A technique that can deploy new software modules without restarting.  Achieved by modifying programming language syntax, language run time systems or the code that is compiled.  Supports three operations on software modules  Create  Remove  Replace  Three basic requirements  Safe reconfiguration point  State transfer mechanism  External reference management

 Safe reconfiguration point  A reconfiguration can only take place at a safe point in which the reconfiguration will not lead to inconsistent results between the modules  Also referred to as quiescent state or safe state  State transfer mechanism  The mechanism that transfers the state from the old module to the new module  A dynamically reconfigurable system must support at least one state transfer mechanism  External reference management  Module that can manage the external references

Dynamic reconfiguration process

 Ways to evaluate dynamically reconfigurable system  What kinds of change the system supports?  Method reimplementation  A method is reimplemented but its arguments and return type are not unchanged  Method redefinitions  It changes not only the method implementation but also the arguments and the return type of a method  External  It changes the methods that are invoked by other classes  Internal  It changes only the methods that are invoked inside the class  Field redefinition  It adds a field, to remove a field or to modify the type of a field  How it preserves a safe reconfiguration point?

 Dynamic reconfiguration can be introduced to high-level programming languages  Syntax-based  Modifies both the language syntax and the corresponding runtime system  Runtime-dependent  Modifies the language runtime system  Runtime-independent  Neither modifies the language syntax nor modifies the language runtime system “Each approaches has some drawbacks. As a result, in this paper, dynamic reconfiguration is provided as a component framework that is based on Java”

2 Component framework overview  2.1 System architecture  The component framework is made up of four layers  Java virtual machine  component framework  software components and user application

How components are dynamically reconfigured in the component framework?

2.2 Component model  Specifies how components are programmed and composed

2.3 Compatible changes and user-defined handler

2.4 Programming rules for user application  The user application can interact with the component instances in two ways  The user application can communicate with components directly.  The component instances are only accessed by the user application through a component adapter.  A component adapter provides a programming interface to the user application to access the components

2.5 Limitations of component model  Active component  invoke the methods on passive components  Passive component  only invokes other passive components

3 Implementation of component framework  Serialisation-based approach  Native programming approach  3.1 Java serialisation, Java reflection, JNI and JVMDI  Java serialisation is the object persistence scheme provided by the Java environment  ObjectOutputStream  ObjectInputStream  Java reflection is the reflection capability provided by the Java environment  Computational reflection  Structural reflection  allows the programmer to inspect the structure and modify the content of an object during runtime  JNI is used for Java applications that need to integrate code written in languages other than Java  provides a set of C functions to communicate with Java objects

 JVMDI is the lowest layer of the Java Platform Debugger Architecture (JPDA)  Provides a set of C functions to monitor or modify the execution state of a Java application  3.2 Safe reconfiguration point of serialisation-based approach  Defined as a period in which no thread can execute any code that belongs to the component to be reconfigured  3.3 State transfer of serialisation-based approach  A general mechanism that can deal with all component types  Object serialisation  Byte stream rewriting  Object deserialisation

 3.4 Replace operation of serialisation-based approach  responsible only for state transfer and external reference management  the replace operation consists of six major steps  component locating  Searches the component repository to find the old component instance  state transfer  transfers the component state  Reference duplication  copies component references from the old component instance to the new component instance  reference redirection  redirects the component references that originally refer to the old component instance to the new component instance  user-defined handler invoking  executes the user-defined handler provided by the component programmer  component registration  deregisters the old component instance and registers the new component instance to the component repository.

 3.5 Implementation of native programming approach  used the stack inspection technique to preserve a safe reconfiguration point  The stack inspection code is divided into three steps  suspends all the Java threads except the thread that performs reconfiguration  Gets each stack frame of each suspended thread  finds the instruction location of each inspected stack frame  The state transfer of the native programming approach is based on the type of fields held by the component class.

 The replace operation of the native programming approach consists of eight main steps  component locating  stack inspection  state transfer  reference duplication  reference redirection  user-defined handler invoking  component registration  thread resumption  Java part  Native part  stack inspection  state transfer  thread resumption

 3.6 Implementation of external method redefinition and multiple update  external method redefinition implies a change to the Java interface that a component implements or refers to, which includes adding new methods, or changing the arguments or return type of existing methods  A multiple update occurs when more than one component needs to be updated at the same time  The procedure of the native programming language  locates the components to be replaced  detects a safe reconfiguration point but all of the target components are tested together  State transfer but all the new component instances are created and transferred at once  for each new component instance  the reference duplication and reference redirection steps are performed together  the user-defined handler invoking and component registration steps are also performed together

4 Dynamically reconfigurable TCP and performance evaluation  4.1 Dynamically reconfigurable TCP

 4.2 Performance of normal execution

 4.3 Performance of replace operation

Conclusion  Java-based component framework is developed for dynamic reconfiguration  The resulting component model defines only a simple standard for component interaction and component composition.  The capability of native Java interfaces is much powerful than pure java code.