Fachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert



Similar documents
in Health Care and Sensor Networks

Monitoring Software using Sun Spots. Corey Andalora February 19, 2008

General Introduction

Mobile Operating Systems. Week I

Cloud Computing. Up until now

CSCI E 98: Managed Environments for the Execution of Programs

Java Card. Smartcards. Demos. . p.1/30

Tablets in Data Acquisition

Chapter 3: Operating-System Structures. Common System Components

System Structures. Services Interface Structure

INTRODUCTION TO WIRELESS SENSOR NETWORKS. Marco Zennaro, ICTP Trieste-Italy

Chapter 2 System Structures

The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. Oct 2003 Presented to Gordon College CS 311

Restraining Execution Environments

Chapter 3 Operating-System Structures

SIP Protocol as a Communication Bus to Control Embedded Devices

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Java Embedded Applications

Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors

Introduction to Virtual Machines

Using jvmstat and visualgc to Solve Memory Management Problems

Jonathan Worthington Scarborough Linux User Group

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications

picojava TM : A Hardware Implementation of the Java Virtual Machine

Lecture 1 Introduction to Android

Abstract. 1 Introduction. 1.2 The Java Programming Language. 1.1 The C Programming Language

Java and Real Time Storage Applications

2 Introduction to Java. Introduction to Programming 1 1

Example of Standard API

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Replication on Virtual Machines

Wireless Microcontrollers for Environment Management, Asset Tracking and Consumer. October 2009

New Methodologies in Smart Card Security Design. Y.GRESSUS Methodology and Secure ASIC development manager, Bull CP8

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

FLYPORT Wi-Fi G

Multi-core Programming System Overview

Java Garbage Collection Basics

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

Deeply Embedded Real-Time Hypervisors for the Automotive Domain Dr. Gary Morgan, ETAS/ESC

Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java

Overview. The Android operating system is like a cake consisting of various layers.

IST STREP Project. Deliverable D3.3.1u Middleware User s Guide Multi-Radio Device Management Layer.

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications

Mobile Application Development Android

Chapter 16: Virtual Machines. Operating System Concepts 9 th Edition

MASPOT: A Mobile Agent System for Sun SPOT

CGI-based applications for distributed embedded systems for monitoring temperature and humidity

STM32JAVA. Embedded Java Solutions for STM32

BLE113 DEVELOPMENT KIT

Garbage Collection in the Java HotSpot Virtual Machine

Chapter 6, The Operating System Machine Level

HYBRID JINI FOR LIMITED DEVICES

Embedded Software development Process and Tools: Lesson-4 Linking and Locating Software

DKWF121 WF121-A B/G/N MODULE EVALUATION BOARD

JPURE - A PURIFIED JAVA EXECUTION ENVIRONMENT FOR CONTROLLER NETWORKS 1

1. Overview of the Java Language

VitalJacket SDK v Technical Specifications

Java Real-Time Distributed Processing over Chorus/OS

IBM SDK, Java Technology Edition Version 1. IBM JVM messages IBM

VitalJacket SDK v Technical Specifications

The BSN Hardware and Software Platform: Enabling Easy Development of Body Sensor Network Applications

Data Centers and Cloud Computing

An Overview of Java. overview-1

ZigBee Technology Overview

Board also Supports MicroBridge

The Design of the Inferno Virtual Machine. Introduction

Location-Based Information Systems

VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D

Changing the embedded development model with Microsoft.NET Micro Framework

Java Card TM Open Platform for Smart Cards

Tuning WebSphere Application Server ND 7.0. Royal Cyber Inc.

Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz

State-Machine Replication

Virtual Machine Security

An Android based Quantum GIS prototype. Ramon Carrillo, Daniel Ochoa

- Applet java appaiono di frequente nelle pagine web - Come funziona l'interprete contenuto in ogni browser di un certo livello? - Per approfondire

Clonecloud: Elastic execution between mobile device and cloud [1]

Mobile Operating Systems Lesson 03 PalmOS Part 1

Running Windows on a Mac. Why?

Language Based Virtual Machines... or why speed matters. by Lars Bak, Google Inc

Nokia 9210i/9290 Communicators and PersonalJava TM Application Development

<Insert Picture Here> Java, the language for the future

Practical Performance Understanding the Performance of Your Application

Android Basics. Xin Yang

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

Developing real-time systems in Java on Macintosh

Online Recruitment System 1. INTRODUCTION

Chapter 5 Cloud Resource Virtualization

Developing Embedded Software in Java Part 1: Technology and Architecture

Android Operating System:

To Java SE 8, and Beyond (Plan B)

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

Virtualization. Dr. Yingwu Zhu

How To Use Java On An Ipa (Jspa) With A Microsoft Powerbook (Jempa) With An Ipad And A Microos 2.5 (Microos)

Clojure on Android. Challenges and Solutions. Aalto University School of Science Master s Programme in Mobile Computing Services and Security

COS 318: Operating Systems. Virtual Machine Monitors

KVM: A Hypervisor for All Seasons. Avi Kivity avi@qumranet.com

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment

Transcription:

Ubiquitous Computing

Ubiquitous Computing The Sensor Network System

Sun SPOT: The Sun Small Programmable Object Technology Technology-Based Wireless Sensor Networks a Java Platform for Developing Applications for Wireless Networks of Small Devices

SUN Vision: RFID Tags and Sensors

Structure of Sun SPOT Devices Basic device has three layers Battery Processor Board with Radio Sensor Board (application specific) Processor Board alone acts as a base-station devices are programmed entirely in Java using standard Java tools "Sunroof" Sensor Board Processor Board Battery

Sun SPOT Hardware 180 Mhz 32-bit ARM920T core, 512K RAM/4M ROM ChipCon 2420 radio, 2.4 GHz IEEE 802.15.4 USB interface 3.7V rechargeable 750 mah prismatic lithium ion battery 40 µa deep sleep mode, 40 ma to 100+ ma 64 mm x 38 mm Double sided connector for stackable boards

Demo Sensor (Actuator) Board 8 tri-color LEDs 3D accelerometer 5 general purpose I/O pins 4 hi current output pins 1 A/D converter Temperature sensor Light sensor

The Sun SPOT SDK Libraries Squawk Java VM: desktop and Sun SPOT Libraries Java ME CLDC 1.1 libraries Hardware libraries - SPI, AIC, TC, PIO drivers all written in the Java programming language - Demo sensor board library Radio libraries Network libraries - 802.15.4 MAC layer written in the Java programming language, uses GCF Desktop libraries

Sensor Network System The Squawk Java VM A Java Virtual Machine for Small (and Larger) Devices

The Squawk Java VM Java VM mainly written in the Java programming language Interpreter written in C Garbage collector translated from the Java to the C programming language Java ME CLDC 1.1 Extra features Runs on the bare ARM without an underlying OS Interrupts and device drivers written in the Java programming language Supports isolate application model

Standard Java VM vs. Squawk Java VM Standard Java VM Java Class Library Loader Verifier Garbage Collector Interpreter Java Code Squawk Java VM Java Class Library Loader Verifier Transformer Garbage Collector Interpreter Thread Scheduler Thread Scheduler Exporter Compiler Compiler Device Driver Architecture I/O Library Native Code C Code I/O Library Native Code Squawk is fully Java compliant and CLDC 1.1-compatible (i.e., it's Java ME).

Squawk The Squawk Architecture The Squawk VM is (mostly) implemented in the language that it executes (Java). Its components include: The class loader/bytecode translator The ahead-of-time bytecode optimizer The threading system (green threads) The garbage collectors (selected at build time): - Simple two space Cheney collector - Mark/compact "Lisp2" collector - Generational mark/compact "Lisp2" collector Squawk's design includes a compiler that can be used to: compile the core VM components ahead-of-time compile an interpreter written in Java ahead-of-time compile other Java components ahead-of-time compile bytecodes just-in-time (JIT compilation) continued

Squawk Other features of the Squawk architecture include: A compact bytecode instruction set Smaller than standard bytecode (35% - 45% size of equivalent J2ME class files) Fixed up/pre linked Immutable execute in place Simplified garbage collection: - local variables are partitioned into pointers and primitives only one pointer map per method - there is nothing on evaluation stack at operations that may result in an invocation no need to statically interpret methods during GC Suites A suite is a collection of classes. Each class in a suite only refers to other classes in the suite or to a class in a parent suite. That is, a chain of suites is a transitive closure of classes as shown below:

Squawk Suites A suite is a collection of classes. Each class in a suite only refers to other classes in the suite or to a class in a parent suite. That is, a chain of suites is a transitive closure of classes as shown below: The representation of classes in a suite is very compact as they are all prelinked to each other. On average, suites are one third of the size of class files. Once a suite is closed (i.e. cannot have any more classes loaded into it), it is immutable. An immutable suite can be saved to and loaded from a file. This results in a significantly reduced start up time when running an application from a suite (as opposed to a dynamically loaded set of classes).

Squawk Isolates An isolate is a mechanism by which an application is represented as an object. In Squawk, one or more applications can run in the single JVM. Conceptually, each application is completely isolated from all other applications. Given the immutability of suites, the isolate implementation in Squawk shares common suites between applications. This can significantly reduce the memory footprint of each application, which is particularly important in the embedded device space. In addition to the standard semantics of isolates, the Squawk implementation has one extra feature: isolate migration. That is, an isolate running on one Squawk VM instance can be paused, serialized to a file or over a network connection and restarted in another Squawk VM instance. This feature is a direct result of certain architectural choices made in Squawk such as using a green threaded model, representing all VM structures (including thread stacks) as objects and not implementing a general native code interface such as the JNI.

Isolate Application Model JSR 121: Application Isolation API Specification Application state is an object Isolate start -exit moveto resume -pause Every isolate has its own state for all static variables Allows for running multiple applications in one VM Inter-isolate communication Provides lower-level asynchronous message delivery Can migrate from one device to another

Squawk Squawk Application Requirements Space Consumer embedded apps. Mobile Phones Sensors Java Card Speed Most Simple Squawk Maximum Performance