The Java Legacy Interface Stephan Korsholm Centre for Embedded Software Systems (CISS) Aalborg University Denmark.

Slides:



Advertisements
Similar presentations
An Overview Of Virtual Machine Architectures Ross Rosemark.
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
- the new generation realtime operating system For embedded and fault tolerant applications.
ASU Real-Time Operating System. Supervised by: Dr. Mohammed Sobh.
Software Reuse SEII-Lecture 28
Service Oriented Architectures in Heterogeneous Environments
Final Presentation Liat Ben-Ami Yonathan Perez Instructor: Roy Mitrany.
Where Do the 7 layers “fit”? Or, where is the dividing line between hdw & s/w? ? ?
Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz In Cooperation with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion -
Programming Language Paradigms: summary. Object-oriented programming Objects are the fundamental building blocks of a program. Interaction is structured.
Contiki A Lightweight and Flexible Operating System for Tiny Networked Sensors Presented by: Jeremy Schiff.
Smart-Sensor Infrastructure in the IPAC Architecture V.Tsetsos 1, V. Papataxiarhis 1, F.Kontos 1, P.Patelis 2, S.Hadjiefthymiades 1, E.Fytros 2, L.Liotti.
Chapter 13 Embedded Systems
1/28/2004CSCI 315 Operating Systems Design1 Operating System Structures & Processes Notice: The slides for this lecture have been largely based on those.
© Andy Wellings, 2003 Roadmap  Introduction  Concurrent Programming  Communication and Synchronization  Completing the Java Model  Overview of the.
Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz In Cooperation with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion -
Application Architectures Vijayan Sugumaran Department of DIS Oakland University.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Overview SAP Basis Functions. SAP Technical Overview Learning Objectives What the Basis system is How does SAP handle a transaction request Differentiating.
Automating your Business Processes Using Oracle Workflow Therron Hofsetz Logical Apps, Inc.
Evolution of Microcontroller Firmware Development David Benjamin.
QualNet 2014/05/ 尉遲仲涵. Outline Directory Structure QualNet Basic Message & Event QualNet simulation architecture Protocol Model Programming.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Adaptability for flexible mobile service provision in 3G and beyond Nikos Houssos
Event Driven Programming
Eric Keller, Evan Green Princeton University PRESTO /22/08 Virtualizing the Data Plane Through Source Code Merging.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Chapter 3: Operating Systems Computer Science: An Overview Tenth Edition.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Real-Time Java on JOP Martin Schöberl. Real-Time Java on JOP2 Overview RTSJ – why not Simple RT profile Scheduler implementation User defined scheduling.
INTRODUCTION SOFTWARE HARDWARE DIFFERENCE BETWEEN THE S/W AND H/W.
C H A P T E R T E N Event-Driven Programming Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
INDUSTRIAL PROJECT (234313) ULTRASOUND SCANNER EMBEDDED ONLINE PROFILER Students: Liat Peterfreund, Hagay Myr Supervisor: Mr. Tomer Gal (GE Healthcare)
Silberschatz, Galvin and Gagne  2002 Modified for CSCI 399, Royden, Operating System Concepts Operating Systems Lecture 7 OS System Structure.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 2: Operating-System Structures.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Dhanshree Nimje Smita Khartad
Developing TCP/IP-based Server Applications using Indy Components  Christian Wilkerson.
©Kabira Technologies Inc, 2001 May 7-9, 2001 Westward Look Resort Tucson, Arizona SMUG 2001 Execution in UML.
Operating Systems Lecture November 2015© Copyright Virtual University of Pakistan 2 Agenda for Today Review of previous lecture Hardware (I/O, memory,
The HVM embedded Java VM For very tiny devices. Overview Hardware near programming: a case example Hardware near programming: a case example in Java Contributions.
Levels of Abstraction Computer Organization. Level of Abstraction u Provides users with concepts/tools to solve problem at that level u Implementation.
XStream: Rapid Generation of Custom Processors for ASIC Designs Binu Mathew * ASIC: Application Specific Integrated Circuit.
BridgePoint Integration John Wolfe / Robert Day Accelerated Technology.
Celluloid An interactive media sequencing language.
System Architecture Directions for Networked Sensors Jason Hill, Robert Szewczyk, Alec Woo, Seth Hollar, David Culler, Kris Pister Presenter: James.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 27 JavaBeans and.
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.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Chapter 32 JavaBeans and Bean.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
CSCI 212 Object-Oriented Programming in Java. Prerequisite: CSCI 111 variable assignment statement while loop for loop post-increment (i++) strong typing.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Lecture1 Instructor: Amal Hussain ALshardy. Introduce students to the basics of writing software programs including variables, types, arrays, control.
Using Java, XML and XSLT to create secure internal access to local NOAA Research Science project and budget information Jason E. Fabritz, NOAA/PMEL-JISAO/UW.
TTCN-3 Testing and Test Control Notation Version 3.
2014 Redefining the Data Center: White-Box Networking Jennifer Casella October 9, 2014 #GHC
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Software Architecture of Sensors. Hardware - Sensor Nodes Sensing: sensor --a transducer that converts a physical, chemical, or biological parameter into.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Computer System Structures
Software and Communication Driver, for Multimedia analyzing tools on the CEVA-X Platform. June 2007 Arik Caspi Eyal Gabay.
Part 3 Design What does design mean in different fields?
CMPE419 Mobile Application Development
Improving java performance using Dynamic Method Migration on FPGAs
Interpreter Style Examples
Software Architecture
CMPE419 Mobile Application Development
Presentation transcript:

The Java Legacy Interface Stephan Korsholm Centre for Embedded Software Systems (CISS) Aalborg University Denmark

Ph. D. work Background 1-17

Introducing Java to a C/Assembler legacy platform Java for GUIsJava for end user customization KIRK DECT handsetsKIRK generic wireless control module. 16 bit 512 Kb 16 Mhz 2-17

Introducing Java to a C/Assembler legacy platform Legacy code is very important, Represents decades of software development. Is the ”golden egg” of the company. But, legacy code is in general,  ”Untouchable” code.  Written by engineers without proper SW development skills.  Hard to maintain, hard to refactor.  A burden that will never go away. 3-17

Introducing Java to a C/Assembler legacy platform Legacy code is very important, Represents decades of software development. Is the ”golden egg” of the company. But, legacy code is in general,  ”Untouchable” code.  Written by engineers without proper SW development skills.  Hard to maintain, hard to refactor.  A burden that will never go away. How can Java be introduced into such a setting? They need HELP! 3-17

Introducing Java to a C/Assembler legacy platform The KIRK legacy software architecture. Scheduling a JVM using the legacy scheduler. Java/C Communication using the legacy message exchange protocol. Code samples. Looking ahead…. Overview, 4-17

The KIRK legacy software architecture Application DECT protocol MAC Layer Layered architecture 5-17

The KIRK legacy software architecture Application DECT protocol MAC Layer Layered architecture Event dispatcher Event handlers Events getEvent putEvent HW 5-17

Scheduling the JVM Integrate from the legacy architecture (JNI unfortunately not an option). Schedule the JVM in an event driven system. Run the JVM as a short lived event handler. 6-17

Scheduling the JVM Event dispatcher Event handlers Events JLI function, JLI_runVM(int timeout) Executes bytecodes a certain amount of time. Suspends the VM. Queues an event to be handled by the VM event handler. Returns to the scheduler. VM event handler 7-17

Implementing JLI_runVM(int timeout) Divide the execution into smaller units. Eliminate recursion and long loops. E.g. change the interpreter loop. Enable suspend/resume of interpreter loop. Slice the JVM, Slicing an existing JVM (SimpleRTJ VM), Analyzed program dependency graph. Refactored JVM source code. Introduced slicing points into the code. 8-17

Scheduling the JVM Event dispatcher Event handlers Events Legacy Events JVM Events Handling of legacy code and Java code is intermixed. Selfregulating prioritization of Java code. Legacy code unaware and unaffected of Java code. Seamless integration. 9-17

Communication 10-17

Communication Support queueing events to Java from legacy code. Support queueing events to legacy code from Java. Event handlers communicate by sending events to each other, The KIRK Java API adds functionality for subscribing to events in Java Steal events and handle them in Java. Change events and send them on. Look at events and send them on unchanged

Communication Event dispatcher Event handlers Events JLI function, void JLI_subscribe(int event) int JLI_available(int event) void JLI_getData(byte[] data) void JLI_setFate(bool fate) Java handler subscribe available? getData setFate 11-17

Communication 12-17

Possibilities – GUI customization KIRK Dect Handsets Subscribe to GUI events (e.g. key press). Implement different handling of selected events. Manipulate GUI by sending new events. Adding new behaviour to basic firmware. Increasing end user experience. Sell add-on Java applications

Possibilities – Core software development 100% 0% JavaLegacy Today 14-17

Possibilities – Core software development 100% 0% JavaLegacy 100% 0% JavaLegacy Incrementel (baby steps) porting of legacy code into Java TodayTomorrow 14-17

Looking ahead.... Event driven programming vs. other types of paradigms. VM slicing – effect on real-time behaviour? WCET of JLI_runVM?  Give proper value of timeout parameter. Integrating legacy code with,  JIT compiled Java.  AOT compiled Java

Summing up. Given initial specification of JLI (Java Legacy Interface),  Focused on event driven embedded legacy platforms. Implemented JLI in a interpreter,  Implemented VM slicing.  Implemented Java/legacy message exchange. Implemented the KIRK API,  Supports handling events in Java.  Supports implementing selected functionality in Java.  Supports incremental transition from legacy code (C) to Java

What has been gained? The ability to run Java components. Yes. Fine grained customization of application behaviour using Java. Yes. The option of incrementally porting legacy code into Java. Yes. On event driven legacy platforms we have gained, Real-time?  No! Certainly not (slicing has an impact on a real-time profile). Efficiency?  No! Certainly not (currently we only support interpretation).

Your Comments? 17-17