Java in Ubicomp. Mikko Honkala HUT, Telecommunications Software and Multimedia Laboratory. Abstract
|
|
- Marcus Melton
- 7 years ago
- Views:
Transcription
1 Java in Ubicomp Mikko Honkala HUT, Telecommunications Software and Multimedia Laboratory Abstract This paper describes the use of Java language in embedded devices, such as handhelds, digital TV set-top boxes, and even smart cards. The variety of devices offering the Java platform has transformed the original Java mantra write once, run anywhere into one size doesn t fit all. 1 INTRODUCTION Developing applications targeted to multiple systems is traditionally very hard. C and its successor C++ are well defined languages, but developers still have to maintain a lot of compatibility code, if they want to run their applications in different systems. Traditionally, different systems has meant Windows and Linux, but today the variety of those environments is great; There are new handhelds with proprietary operating systems and most web services must run on different operating systems. Code versions for different systems need to be maintained at development time, but also distribution is difficult: the C program has to be compiled for all target systems. (Hansmann, 2001) Why would every software project have to write their own compatibility code? With Java, they don t have to. Java lets the developer develop for an abstract virtual machine that is platform neutral. In addition, Java includes a huge class library, that helps the development work and reduces the need for outside libraries. As a language, Java is simpler than C++, and in addition it includes a garbage collector, which removes the programmer from the burden of memory management (Hamilton, 1996). This is why Java is a good choice for Ubicomp (or Pervasive Computing), where the profiles of devices vary a great deal. 2 BACKGROUND This chapter gives a brief background on the Java environment. Java is not solely a programming language, it consists of different modules, of which most notable are the Java language, the Virtual Machine, and the class libraries. 2.1 Java Language Characteristics Java language is an object oriented programming language with a syntax similar to C 1
2 and C++, only simpler (Hamilton, 1996). The most notable difference is the lack of pointers and the memory handling tools. The reason is the garbage collector that takes care of the objects in the memory that are no longer needed. Java also has some advanced features, not found in C++, such as Interfaces and build-in thread and sychronization support. 2.2 Java Virtual Machine At development time, the Java source code is compiled into abstract byte code, capable of running in all Java environments. Each environment supporting Java has a Java runtime environment (JRE) consisting of the Java virtual machine (JVM) and the class libraries. The JVM interprets and executes the byte code on the fly (Hansmann, 2001). Most JRE s also have a Just-In-Time (JIT) compiler, which compiles the byte code into fast native code before executing it. (Cramer, 1997). 2.3 Java Class Libraries The Java language and the JVM assure that the Java programs are portable and their execution environment is secure (Cramer, 1997). But this is not by far the only thing that Java has to offer. Java has a quite large build-in class library that frees programmers for writing support code for, for instance, Hashtables and socket access, every time they need them in a program. This also reduces the size of Java programs, since the class libraries are not needed in a distribution, since the Java environment is guaranteed to have them. 3 JAVA EDITIONS The networking features and the platform independence have made Java a popular technology in the internet applications. Applets and servlets are part of many advanced web sites. Most browsers can execute Java byte code as do the web servers. Since the diversity of devices is increasing, Java s platform independence becomes a key feature. Many handhelds, set-top boxes, smart cards, and other embedded devices provide a JVM. On the other hand, the number of Java-capable platforms is increasing, while the number of features in the Java programming language and class library are also increasing. Because of this, Sun has defined many different flavors of the Java environment. 3.1 Java 2 based editions Table 1 lists the different editions, while Figure 1 depicts the editions in respect to each other. The standard environment is the Standard Edition. This is, what is found in desktop and in Web browsers. In Web servers, a larger Enterprise edition is used. The Java 2 Micro Edition is meant for small machines, such as mobile phones, and the Java Card is for smart cards. Table 1. Java Editions 2
3 Java 2 Standard Edition (J2SE) Java 2 Enterprise Edition (J2EE) Java 2 Micro Edition (J2ME) Java Card The standard client edition Meant to be used in a server For pervasive devices For smart cards Server W orkstation Pervasive devices J2ME J2EE J2SE Car profile TV profile PDA profile J2ME Core Libraries Phone profile VISA Smart Card JavaCard Java Programming Language Figure 1: The different Java editions 3.2 Java 2 Standard Edition (J2SE) The Java 2 Standard Edition (J2SE) is the default language profile for workstations and small servers. It includes all the core packages (applet, awt, beans, io, lang, math, net, rmi, security, text, and util) plus javax.swing and org.omg.corba packages) 3.3 Java 2 Enterprise Edition (J2EE) The Java 2 Enterprise Edition offers addition features on top of the standard edition. It is meant for large scale servers, such as web servers. Some extra features of J2EE are servlets, JavaServer Pages, JDBC, Java Message Service, Java Naming and Directory Interface, Java Transaction, JavaMail, XML, CORBA, and Enterprise Java Beans. The Software Development Kit is available. The next version 1.4 of the JDK will have a new JIT compiler, called Java Hot Spot Server VM, optimized for server use. 3
4 3.4 Java 2 Micro Edition (J2ME) The J2ME is meant for restricted devices, such as handhelds and digital television. In order to meet the peculiarities of different device classes, J2ME introduces profiles and configurations, which specify language and environment subsets for different groups of devices. Chapter 4 describes the different flavors of the Java 2 Micro Edition. 3.5 Java Card The Java Card is the smallest java edition available. It is meant to be used with smart cards, with very limited memory and processing power. For example, there is no string support in the Java Card edition. The card Virtual Machines are provided by the smart card manufacturers, and they are shipped directly on the card ROM (Hansmann, 2001). 3.6 Java 1.1 based editions Personal and Embedded Java are predecessors of the Java 2 Micro Edition. They have the same motivation and design goals as J2ME, but are based on an older version of the JDK (1.1). Personal Java will be migrated into J2ME as a Personal Java profile, while Embedded Java will probably not be included in J2ME. 4 DIFFERENT FLAVOURS OF MICRO EDITION Because of the varying nature of small scale devices, the same Java environment does not fit well to every type of device. Because of this, Sun has defined the Java 2 Micro Edition to be flexibly redefined for each class of devices. J2ME introduces profiles and configurations, which specify language and environment subsets for different groups of devices. The environment, which consists of the virtual machine and a set of APIs, is called the Configuration, while the layer on top of the configuration, is called a profile. There are different kinds of small scale virtual machines, such as KVM and CVM. Table 2 defines the terms used in this chapter. Table 2. Definitions of J2ME terms KVM CVM Configuration A compact Java virtual machine whose size is measured in the hundreds of kilobytes. A Java virtual machine larger than the KVM that is intended for use on emerging, next-generation consumer devices Either the KVM or CVM combined with a minimal set of APIs that define the expected features for a broad category of consumer devices. A layer on top of a configuration that adds additional APIs to make a complete toolkit for a specific type of consumer device. 4
5 Figure 2 depicts the relations between the profiles and configurations in J2ME. Personal MID Handheld Configuration CDC Libraries CLDC Libraries JVM KVM CVM Figure 2: Configurations and s in J2ME 4.1 Configurations The J2ME architecture is designed with flexibility and future growth in mind. The basic building block of a J2ME runtime environment is a configuration. A configuration consists of a virtual machine that implements some portion of the Java language and virtual machine specifications, and a minimal supporting set of class libraries and APIs. It may seem redundant to say libraries and APIs, but APIs include things like the Java Native Interface (JNI), which are not implemented by a class library or defined by the Java Language Specification (JLS). Additional features for specific types of devices can be built on top of a configuration, but each configuration defines a base level of functionality for a class of devices. (Savarese, 2001) Currently, there are two standard configurations (Moreira, 2001, Savarese, 2001) but more may be defined in the future provided a new class of devices warrants it: Connected Limited Device Configuration (CLDC) - addresses devices with a significant resources limitation, such as cell phones or Pagers. Connected Device Configuration (CDC) - addresses devices with a higher set of physical resources, like PDAs or Set-Top Boxes. CDC requires full support for both the JLS and JVM Specification. If you layer enough APIs on top of it, you'd wind up with J2SE plus some extra CDC-specific classes. Therefore, the main concern when porting J2SE code is one of which core classes you can assume are available. The major configurable API s are in the java.io, java.net, and java.security packages. 5
6 4.2 s In addition to the core Micro configurations, the J2ME includes the possibility to define different profiles for a certain set of devices. Examples of profiles include the Mobile Information Device (MIDP) and PDA. The Mobile Information Device (MIDP) is a set of JavaTM APIs which, together with the Connected Limited Device Configuration (CLDC), provides a complete J2METM application runtime environment targeted at mobile information devices, such as mobile phones and entry level PDAs. The MIDP specification addresses issues such as user interface, persistence storage, networking, and application life cycle. PDA provides user interface and data storage APIs for small, resource-limited handheld devices. It is based on the Connected, Limited Device Configuration (CLDC). PDA s have the following characteristics: No less than 512KB total memory (ROM + RAM) available for Java runtime and libraries, and no more than 16 MB. Limited power, typically battery operated. User interfaces of varying degrees of sophistication, but having at least: displays with a total resolution of at least 20,000 pixels, a pointing device, and character input. This profile, in conjunction with the "J2ME Connected, Limited Device Configuration," enables application development for handheld devices used as personal digital assistants. Other profiles that are currently being defined include: J2ME Foundation a base profile for use in implementing non-gui networked devices; built on CDC J2ME RMI provides RMI support for J2ME CDC-class devices; requires CDC and Foundation J2ME Personal Basis provides application environment for networked devices with basic level of graphical presentation; requires CDC and Foundation J2ME Personal is the next generation PersonalJava environment; based upon Personal Basis (and thereby, CDC and Foundation ) Java Game 6
7 4.3 The K Virtual Machine (KVM) A JVM is the foundation for Java technology. The virtual machine handles related tasks such as managing the system's memory, providing security against malicious code, and managing multiple threads of program execution. In order to meet the market need for a very small footprint Java implementation, the KVM was designed to overcome three key technical challenges: reducing the size of the virtual machine and class libraries themselves, reducing the memory utilized by the virtual machine during execution, and allowing for components of the virtual machine to be configured to suit particular devices (e.g., by allowing pluggable garbage collection). The features of the K virtual machine are (Sun Microsystems, 2001): Reduced VM Size - the K virtual machine is currently only K of object code in its standard configuration, depending on target platform and compilation options. Reduced Memory Utilization - In addition to the K virtual machine's small object size, it requires only a few tens of kilobytes of dynamic memory to run effectively. Because of the reduced VM size and memory utilization, even with total memory available of only 128K the K virtual machine enables useful Java technology-based applications to run on a device. Performance - the K virtual machine is able to run effectively on 16 bit processors clocked as low as 25 MHz, and can scale smoothly up to much more powerful 32 bit processors. Portability - although implemented in native code for extra performance, the K virtual machine has a highly portable architecture that reduces system dependencies to a minimum. Even multi-threading and garbage collection have been implemented in a completely system-independent manner, enabling speedy porting to any host platform. 4.4 The C Virtual Machine (CVM) CVM is A Java virtual machine larger than the KVM that is intended for use on emerging, next-generation consumer devices. The CVM virtual machine is a Java 2 virtual machine designed for devices needing the functionality of the Java 2 virtual machine feature set, but with a smaller footprint. CVM is designed to meet the market need for emerging, next generation consumer electronic and embedded devices. Devices using CVM are typically compact and connected consumer-oriented devices. 4.5 Development Tools for Small Java Editions Even that the Micro Java specification is quite new, there is already many development environments and tools for the Small Java Editions. Table 3 lists some Java development tools for pervasive computing (Day, 2001). Some of these tools include an 7
8 target device emulator, where the application can be previewed in the correct target environment. Table 3. Micro java development tools (Day, 2001)! "!"# $ %&' & ( )& &&!& # ) - # 0 1 #!!$%&' ))!* +,-., /!*, $ 0*12/- *13 $ $456 / 7/ 9 "1 2 :1 #" $ # *) +,. - / + 2$0 1$/ 0 1 %& 3 " 4" )*) +, $ %5)0 )/ $% 5)6/ '8& $ $7%+ //7 *7"1)1 )+/2 1, '8& )$ + & ).) 2/$/8; /8 & & < /8 91 2/ $ 62( * 8, 21 '1! &%+//=5) & )#>) 1+/# $/ & 022 ( >! )/ & 62 %5 ) )/. / / ) & 022 ( %.. 2/# & +/% # &/; &?# 8
9 7,! 8 " $/4" 0 1 & $$0 1 2/$/(;& ; 1 " /& ; 1 5 PROBLEMS WITH THE CURRENT ENVIRONMENTS The different flavors of the Java environment has made writing portable Java somewhat more difficult. Even though the early days saw many platform-specific features, it was largely possible for most projects to maintain a single source base that would work for all platforms that is, if you ignored the difficulties in creating debug and test versions of Java code caused by the lack of conditional compilation support. There have been portability problems before, because of different revisions of the JDK, but many projects transitioned smoothly to the latest JDK without having to support multiple JDKs in great part because of Java featuring only on the server. Had Java been a success on the desktop, the story would have been far different, as evidenced by the major portability and code maintenance dilemmas that were introduced developers who bought into applets. (Savarese, 2001). 5.1 Performance JIT compilers can provide dramatic performance improvements for programs, where the vast majority of execution time would otherwise be spent interpreting bytecodes. Because JIT compilers do not address the performance of other aspects of a virtual machine, programs that include extensive use of synchronization, memory allocation, and native methods may not run much faster. While a JIT compiler is essential for highperformance JVM implementations, it is not a complete solution. (Cramer, 1997). Garbage collection feature of Java eases the task of memory handling from the programmer point of view, but it also makes Java programs a little less efficient. New garbage collectors for different kind of profiles are being developed currently. 6 EXAMPLE ENVIRONMENTS This section describes few example environments for embedded Java, namely SavaJe and JBed. 6.1 SavaJe SavaJe is an interesting Java environment for relatively powerful PDA s, such as the Compaq IPAQ with at least 32 MB of memory. Unlike most embedded Java 9
10 environments, it supports full Java 2 Standard Edition, version 1.3. Because of this, it can run the same applications that are run on the desktop with minimal changes. 6.2 Jbed Jbed Micro Edition CLDC is a full-featured Java virtual machine and development environment designed for PDAs, mobile phones, Internet appliances, and similar devices. It uses an interesting method of Way Ahead of Time (WAT) compilation. This means that all bytecode used for the application is precompiled into native code, for best performance. By precompiling the code can be optimized to suit the needs of the target environment. The code is linked into an image which is loaded onto the target hardware. Jbed Micro Edition CLDC and Jbed for MID support dynamic class loading as a standard Java feature. The user can download classes from the network, via HTTP, PPP or any other preferred protocol. These classes can then be dynamically loaded into the running application, via the classloader and the FastBCC. For mobile phone targets, as well as PDA's, the dynamically loaded classes are compiled on the target and linked into the running application. This enables the downloading of e.g. jar files containing MIDlet suites onto a mobile phone, which will be compiled to native code in order to run with optimum performance. 7 CONCLUSIONS This paper described the use of Java language in embedded devices, such as handhelds, digital TV set-top boxes, and even smart cards. The variety of devices offering the Java platform has made Sun Microsystems, together with the open Java Community Process, to define multiple different flavors of the Java environment, each suited for a particular class of devices. The future of Java in embedded devices looks bright: there are multitude of different embedded hardware platforms and more are coming up. Developing a cross-platform software to run directly on these devices would be a pain, or possibly impossible. That s where Java s strengths materialize. On the other hand, the multitude of different Java environments, configurations and profiles has made Java code less portable than before. The future will show, how well the Java environment adapts to the challenges of the embedded pervasive devices. REFERENCES Cramer, T., et al Compiling Java just in time. IEEE Micro, Vol.17, issue 3, May- June 1997, pp Day, B J2ME Archive. Available at: Hamilton, M.A Java and the shift to net-centric computing. Computer, Vol. 29, Issue 8, Aug. 1996, pp
11 Hansmann, U., et al Pervasive Computing Handbook. Springer. Moreira, P From PersonalJava to J2ME: Some Introductory Ideas. Micro Java Network, May Available at: Savarese, D. F The Great Migration. Java Pro. September Sun Microsystems, The K Virtual Machine. Available at: 11
Nokia 9210i/9290 Communicators and PersonalJava TM Application Development
Nokia 9210i/9290 Communicators and Personal TM Application Development 05-03-2002 Nokia 9210i/9290 Communicators and PersonalTM Application Development Table of contents 1. DIFFERENT JAVA TECHNOLOGIES...
More informationJava Platform, Micro Edition (Java ME) Mokoena F.R. The 7046 Team
Java Platform, Micro Edition (Java ME) Mokoena F.R The 7046 Team 1. Introduction Java Platform, Micro Edition (Java ME) technology is one of the popular mobile application runtime. It provides developers
More informationMobile Operating Systems. Week I
Mobile Operating Systems Week I Overview Introduction Mobile Operating System Structure Mobile Operating System Platforms Java ME Platform Palm OS Symbian OS Linux OS Windows Mobile OS BlackBerry OS iphone
More informationINTRODUCTION TO JAVA PROGRAMMING LANGUAGE
INTRODUCTION TO JAVA PROGRAMMING LANGUAGE Today Java programming language is one of the most popular programming language which is used in critical applications like stock market trading system on BSE,
More informationHYBRID JINI FOR LIMITED DEVICES
HYBRID JINI FOR LIMITED DEVICES VINCENT LENDERS, POLLY HUANG AND MEN MUHEIM ETH Zürich E-mail: lenders, huang @tik.ee.ethz.ch, men@ife.ee.ethz.ch We envision a future of heterogeneous mobile devices collaborating
More informationFachbereich Informatik und Elektrotechnik SunSPOT. Ubiquitous Computing. Ubiquitous Computing, Helmut Dispert
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
More informationJava and Real Time Storage Applications
Java and Real Time Storage Applications Gary Mueller Janet Borzuchowski 1 Flavors of Java for Embedded Systems Software Java Virtual Machine(JVM) Compiled Java Hardware Java Virtual Machine Java Virtual
More informationMIDlet development with J2ME and MIDP
MIDlet development with J2ME and MIDP ibm.com/developerworks Table of Contents If you're viewing this document online, you can click any of the topics below to link directly to that section. 1. Introduction...
More informationExtreme Java G22.3033-006. Session 3 Main Theme Java Core Technologies (Part I) Dr. Jean-Claude Franchitti
Extreme Java G22.3033-006 Session 3 Main Theme Java Core Technologies (Part I) Dr. Jean-Claude Franchitti New York University Computer Science Department Courant Institute of Mathematical Sciences Agenda
More informationMobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java
Mobile Application Languages XML, Java, J2ME and JavaCard Lesson 04 Java Oxford University Press 2007. All rights reserved. 1 C and C++ C and C++ with in-line-assembly, Visual Basic, and Visual C++ the
More informationMobile application development J2ME U N I T I I
Mobile application development J2ME U N I T I I Overview J2Me Layered Architecture Small Computing Device requirements Run Time Environment Java Application Descriptor File Java Archive File MIDlet Programming
More informationDeveloping Embedded Software in Java Part 1: Technology and Architecture
Developing Embedded Software in Java Part 1: Technology and Architecture by Michael Barr Embedded Systems Conference Europe The Netherlands November 16-18, 1999 Course #300 Sun s introduction of the Java
More informationAn Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
More informationSection 1.4. Java s Magic: Bytecode, Java Virtual Machine, JIT,
J A V A T U T O R I A L S : Section 1.4. Java s Magic: Bytecode, Java Virtual Machine, JIT, JRE and JDK This section clearly explains the Java s revolutionary features in the programming world. Java basic
More informationOnline Recruitment System 1. INTRODUCTION
1. INTRODUCTION This project Online Recruitment System is an online website in which jobseekers can register themselves online and apply for job and attend the exam. Online Recruitment System provides
More information1. Overview of the Java Language
1. Overview of the Java Language What Is the Java Technology? Java technology is: A programming language A development environment An application environment A deployment environment It is similar in syntax
More informationHow Java Software Solutions Outperform Hardware Accelerators
How Java Software Solutions Outperform Hardware Accelerators MIPS Technologies, Inc. April 2005 Java is a programming language which has one big advantage and one big disadvantage: the big advantage is
More informationCSC 551: Web Programming. Spring 2004
CSC 551: Web Programming Spring 2004 Java Overview Design goals & features platform independence, portable, secure, simple, object-oriented, Programming models applications vs. applets vs. servlets intro
More informationSavaJe OS: Solving the problem of the Java Virtual Machine on Wireless Devices
SavaJe OS: Solving the problem of the Java Virtual Machine on Wireless Devices Summary Since the arrival several years ago of Sun Microsystems Java technology with its concept of write once, run anywhere
More informationJava in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design
Java in Education Introduction Choosing appropriate tool for creating multimedia is the first step in multimedia design and production. Various tools that are used by educators, designers and programmers
More informationJava ME Clients for XML Web Services
66 Java ME Clients for XML Web Services Paul POCATILU Academy of Economic Studies, Bucharest Using Web services in developing applications has many advantages like the existence of standards, multiple
More informationWhat Perl Programmers Should Know About Java
Beth Linker, blinker@panix.com Abstract The Java platform is by no means a replacement for Perl, but it can be a useful complement. Even if you do not need to or want to use Java, you should know a bit
More informationJava Garbage Collection Basics
Java Garbage Collection Basics Overview Purpose This tutorial covers the basics of how Garbage Collection works with the Hotspot JVM. Once you have learned how the garbage collector functions, learn how
More informationCharacteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming
Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design
More informationDevelopment of Java ME
Y39PDA Development of Java ME application České vysoké učení technické v Praze Fakulta Elektrotechnická Content What is Java ME Low Level a High Level API What is JSR LBS Java ME app. life-cycle 2/29 Is
More informationProject: E290 - MOBILE COMMERCE APPLICATION DEVELOPMENT
Undergraduate Research Opportunity Programme (UROP) Project: E290 - MOBILE COMMERCE APPLICATION DEVELOPMENT Supervisor Professor Kong Pe Hin Hinny Nanyang Technological University Email: ephkong@ntu.edu.sg
More informationTechnical Note. Micron Flash Data Integrator (FDI) Support for Java Applications. Introduction. Definition
Technical Note TN-13-09: FDI Support for Java Applications Introduction Micron Flash Data Integrator (FDI) Support for Java Applications Introduction This document provides an instructional reference to
More information2 Introduction to Java. Introduction to Programming 1 1
2 Introduction to Java Introduction to Programming 1 1 Objectives At the end of the lesson, the student should be able to: Describe the features of Java technology such as the Java virtual machine, garbage
More informationJPURE - A PURIFIED JAVA EXECUTION ENVIRONMENT FOR CONTROLLER NETWORKS 1
JPURE - A PURIFIED JAVA EXECUTION ENVIRONMENT FOR CONTROLLER NETWORKS 1 Danilo Beuche, Lars Büttner, Daniel Mahrenholz, Wolfgang Schröder-Preikschat, Friedrich Schön* University of Magdeburg * GMD-FIRST
More informationpicojava TM : A Hardware Implementation of the Java Virtual Machine
picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer
More informationJAVA WEB START OVERVIEW
JAVA WEB START OVERVIEW White Paper May 2005 Sun Microsystems, Inc. Table of Contents Table of Contents 1 Introduction................................................................. 1 2 A Java Web Start
More informationSystem Structures. Services Interface Structure
System Structures Services Interface Structure Operating system services (1) Operating system services (2) Functions that are helpful to the user User interface Command line interpreter Batch interface
More informationMobile Development Discovery Document
Mobile Development Discovery Document Prepared By: Abdul Wadood, Atifa Nadeem, Naima Khan and Haris Khan All Rights Reserved No part of this publication may be reproduced, reformatted or transmitted in
More informationTopics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives
Introduction to Programming and Algorithms Module 1 CS 146 Sam Houston State University Dr. Tim McGuire Module Objectives To understand: the necessity of programming, differences between hardware and software,
More informationSYSTEM OF MONITORING AND CONTROL FOR THE AUTOMATION OF INDUSTRIAL WASH MACHINES
SYSTEM OF MONITORING AND CONTROL FOR THE AUTOMATION OF INDUSTRIAL WASH MACHINES Catalin BUJDEI Liviu PERNIU Ion TRUICAN Mihai CARAMAN Automatics Department, Transilvania University of Brasov, M.Viteazu
More informationReview of J2ME and J2ME-based Mobile Applications
IJCSNS International Journal of Computer Science and Network Security, VOL.8 No.2, February 2008 189 Review of J2ME and J2ME-based Mobile Applications Anna Isakow and Hao Shi School of Computer Science
More informationJava Card. Smartcards. Demos. . p.1/30
. p.1/30 Java Card Smartcards Java Card Demos Smart Cards. p.2/30 . p.3/30 Smartcards Credit-card size piece of plastic with embedded chip, for storing & processing data Standard applications bank cards
More informationProgramming Languages
Programming Languages In the beginning To use a computer, you needed to know how to program it. Today People no longer need to know how to program in order to use the computer. To see how this was accomplished,
More informationTAMZ I. (Design of Applications for Mobile Devices I) Lecture 1. Introducing Mobile Platforms. http://goo.gl/pze5o8
TAMZ I (Design of Applications for Mobile Devices I) Lecture 1 Introducing Mobile Platforms http://goo.gl/pze5o8 Contact Information Office: Address: EA-409 Dept. of Computer Science, FEECS VSB-TU Ostrava
More informationEffective Java Programming. efficient software development
Effective Java Programming efficient software development Structure efficient software development what is efficiency? development process profiling during development what determines the performance of
More informationWhat Is the Java TM 2 Platform, Enterprise Edition?
Page 1 de 9 What Is the Java TM 2 Platform, Enterprise Edition? This document provides an introduction to the features and benefits of the Java 2 platform, Enterprise Edition. Overview Enterprises today
More informationOverview. The Android operating system is like a cake consisting of various layers.
The Android Stack Overview The Android operating system is like a cake consisting of various layers. Each layer has its own characteristics and purpose but the layers are not always cleanly separated and
More informationBerlin Mainframe Summit. Java on z/os. 2006 IBM Corporation
Java on z/os Martina Schmidt Agenda Berlin Mainframe Summit About the mainframe Java runtime environments under z/os For which applications should I use a mainframe? Java on z/os cost and performance Java
More informationChanging the embedded development model with Microsoft.NET Micro Framework
Changing the embedded development model with Microsoft.NET Micro Framework The development model for embedded devices is traditionally viewed as extremely complex with the need for highly specialized design
More informationTruly Platform-independent Data Entry Devices
Truly Platform-independent Data Entry Devices John R. Surdu and Thomas D. Wagner Department of Electrical Engineering and Computer Science The United States Military Academy West Point, NY 10996 Paul Manz
More informationChapter 3 Operating-System Structures
Contents 1. Introduction 2. Computer-System Structures 3. Operating-System Structures 4. Processes 5. Threads 6. CPU Scheduling 7. Process Synchronization 8. Deadlocks 9. Memory Management 10. Virtual
More informationArmed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors
2005 ACM Symposium on Applied Computing Armed E-Bunny: A Selective Dynamic Compiler for Embedded Java Virtual Machine Targeting ARM Processors Mourad Debbabi Computer Security Research Group CIISE, Concordia
More informationRestraining Execution Environments
Restraining Execution Environments Segurança em Sistemas Informáticos André Gonçalves Contents Overview Java Virtual Machine: Overview The Basic Parts Security Sandbox Mechanisms Sandbox Memory Native
More informationGlassfish, JAVA EE, Servlets, JSP, EJB
Glassfish, JAVA EE, Servlets, JSP, EJB Java platform A Java platform comprises the JVM together with supporting class libraries. Java 2 Standard Edition (J2SE) (1999) provides core libraries for data structures,
More informationGETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS
Embedded Systems White Paper GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS September 2009 ABSTRACT Android is an open source platform built by Google that includes an operating system,
More informationSW5706 Application deployment problems
SW5706 This presentation will focus on application deployment problem determination on WebSphere Application Server V6. SW5706G11_AppDeployProblems.ppt Page 1 of 20 Unit objectives After completing this
More informationlanguage 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
More informationUsing jvmstat and visualgc to Solve Memory Management Problems
Using jvmstat and visualgc to Solve Memory Management Problems java.sun.com/javaone/sf 1 Wally Wedel Sun Software Services Brian Doherty Sun Microsystems, Inc. Analyze JVM Machine Memory Management Problems
More informationIntroduction to Sun ONE Application Server 7
Introduction to Sun ONE Application Server 7 The Sun ONE Application Server 7 provides a high-performance J2EE platform suitable for broad deployment of application services and web services. It offers
More informationlesson 1 An Overview of the Computer System
essential concepts lesson 1 An Overview of the Computer System This lesson includes the following sections: The Computer System Defined Hardware: The Nuts and Bolts of the Machine Software: Bringing the
More informationBuilding Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
More informationA Layered Architecture based on Java for Internet and Intranet Information Systems
A Layered Architecture based on Java for Internet and Intranet Information Systems Fidel CACHEDA, Alberto PAN, Lucía ARDAO, Ángel VIÑA Departamento de Electrónica y Sistemas Facultad de Informática, Universidad
More informationReal time vehicle tracking and driver behaviour monitoring using cellular handset based accelerometer and GPS data
Real time vehicle tracking and driver behaviour monitoring using cellular handset based accelerometer and GPS data 4 th Year Electronic and Computing Project Report 05416361 Supervisor: Mr Liam Kilmartin
More informationContents. Client-server and multi-tier architectures. The Java 2 Enterprise Edition (J2EE) platform
Part III: Component Architectures Natividad Martínez Madrid y Simon Pickin Departamento de Ingeniería Telemática Universidad Carlos III de Madrid {nati, spickin}@it.uc3m.es Introduction Contents Client-server
More informationTutorial: Development of Interactive Applications for Mobile Devices
Tutorial: Development of Interactive Applications for Mobile Devices 7th International Conference on Human Computer Interaction with Mobile Devices and Services (Mobile HCI 2005) (Media Informatics Group,
More informationMobile Application Development Android
Mobile Application Development Android MTAT.03.262 Satish Srirama satish.srirama@ut.ee Goal Give you an idea of how to start developing Android applications Introduce major Android application concepts
More informationMobile-PC Suite: Using Mobile Phone as Remote to Control PC Operations
Mobile-PC Suite: Using Mobile Phone as Remote to Control PC Operations R.S.S.Vishnu Priya, P.Panini Sai, K.Ruth Ramya, N.Chandra Sekhar, K.Venkata Prasad, P.D.Nageswara Rao Dept. of CSE, KLCE Vaddeswaram,
More informationLecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
More informationEfficiency of Web Based SAX XML Distributed Processing
Efficiency of Web Based SAX XML Distributed Processing R. Eggen Computer and Information Sciences Department University of North Florida Jacksonville, FL, USA A. Basic Computer and Information Sciences
More informationAn Oracle White Paper October 2009. Frequently Asked Questions for Oracle Forms 11g
An Oracle White Paper October 2009 Frequently Asked Questions for Oracle Forms 11g Disclaimer The following is intended to outline our general product direction. It is intended for information purposes
More informationLocation-Based Information Systems
Location-Based Information Systems Developing Real-Time Tracking Applications Miguel A Labrador Alfredo J Perez Pedro M Wightman CRC Press Taylor & Francis Group Boca Raton London New York CRC Press Is
More informationData Sheet VISUAL COBOL 2.2.1 WHAT S NEW? COBOL JVM. Java Application Servers. Web Tools Platform PERFORMANCE. Web Services and JSP Tutorials
Visual COBOL is the industry leading solution for COBOL application development and deployment on Windows, Unix and Linux systems. It combines best in class development tooling within Eclipse and Visual
More informationMobile Application Development
Mobile Application Development Development Process and Portability Christoph Denzler University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Learning Target
More informationReminders. Lab opens from today. Many students want to use the extra I/O pins on
Reminders Lab opens from today Wednesday 4:00-5:30pm, Friday 1:00-2:30pm Location: MK228 Each student checks out one sensor mote for your Lab 1 The TA will be there to help your lab work Many students
More informationJ2ME Building Blocks for Mobile Devices
J2ME Building Blocks for Mobile Devices White Paper on KVM and the Connected, Limited Device Configuration (CLDC) Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 USA 650 960-1300 fax 650
More informationThe Java Virtual Machine and Mobile Devices. John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. buford@alum.mit.edu Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
More informationChytré karty opět o rok dál...
Chytré karty opět o rok dál... SmartCardForum 2010 Jan Němec Product expert, Gemalto Květen 2010 Agenda Chytré karty včera, dnes a zítra Úvod do problematiky NFC Integrace NFC do mobilních zařízení Java
More informationFor Course Details, visit: http://ike.co.in/course/overview.pdf
IMBIBE KNOWLEDGE ENTERPRISE COURSES 1. Java Platform 1.1. Java (JSE) 1.2. Enterprise Java (JEE) 1.3. Java Micro Edition (JME) 1.4. Java Class Library 1.5. AWT & Swing 2..NET Platform 2.1. C# 2.2. VB.NET
More informationJava (J2SE & J2EE) and Web Development Training Catalog
Java (J2SE & J2EE) and Web Development Training Catalog 2013 US Techie Technology Solutions P a g e 1 CONTENTS S.No Topic Page No I. Know About Java Technology 3 II. Why Software Developers Choose Java
More informationOracle Java SE Embedded
Oracle Java SE Embedded Developer's Guide Release 8 E28300-05 July 2014 Documentation that describes essential concepts and common tasks for Oracle Java SE Embedded technology, for platform and application
More informationJava ME & NetBeans Mobility. Petr Suchomel Architect, NetBeans Mobility Sun Microsystems
Java ME & NetBeans Mobility Petr Suchomel Architect, NetBeans Mobility Sun Microsystems Agenda Java ME introduction Java ME applications NetBeans Mobility Edition Power of advanced features Demos, demos,
More informationImplementing Java Distributed Objects with JDBC
Implementing Java Distributed Objects with JDBC Pritisha 1, Aashima Arya 2 1,2 Department of Computer Science Bhagwan Mahaveer institute of engineering & technology (BMIET), Deenbandhu Chhotu Ram University
More informationUBS KeyLink Quick reference WEB Installation Guide
ab UBS KeyLink Quick reference WEB Installation Guide Table of contents 1. Introduction 3 1.1. Why is an Installation needed? 3 1.2. Is UBS KeyLink secure? 3 1.3. Information about Secure Sockets Layer
More informationEnterprise Java. Where, How, When (and When Not) to Apply Java in Client/Server Business Environments. Jeffrey Savit Sean Wilcox Bhuvana Jayaraman
Enterprise Java Where, How, When (and When Not) to Apply Java in Client/Server Business Environments Jeffrey Savit Sean Wilcox Bhuvana Jayaraman McGraw-Hill j New York San Francisco Washington, D.C. Auckland
More informationIntroduction to SunOne Development Tools by Mr. Mickey Fan, Java Architect, Sun Microsystems. Good morning. Ladies and Gentlemen.
Introduction to SunOne Development Tools by Mr. Mickey Fan, Java Architect, Sun Microsystems Good morning. Ladies and Gentlemen. the mobile edition. I am glad to be invited to be here. Today my topic is
More informationThe Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1
The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose
More informationINTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET)
INTERNATIONAL JOURNAL OF COMPUTER ENGINEERING & TECHNOLOGY (IJCET) International Journal of Computer Engineering and Technology (IJCET), ISSN 0976-6367(Print), ISSN 0976 6367(Print) ISSN 0976 6375(Online)
More informationAgent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents
Agent Languages Requirements Overview Java Tcl/Tk Telescript Evaluation Franz J. Kurfess, Cal Poly SLO 211 Requirements for agent Languages distributed programming large-scale (tens of thousands of computers)
More informationIBM Proof of Technology Discovering business application services, featuring IBM WebSphere Application Server Network Deployment V8
IBM Proof of Technology Discovering business application services, featuring IBM WebSphere Application Server Network Deployment V8 Proof of Technology Introduction Welcome and Introductions Agenda Service
More informationApplication Servers - BEA WebLogic. Installing the Application Server
Proven Practice Application Servers - BEA WebLogic. Installing the Application Server Product(s): IBM Cognos 8.4, BEA WebLogic Server Area of Interest: Infrastructure DOC ID: AS01 Version 8.4.0.0 Application
More informationProject SailFin: Building and Hosting Your Own Communication Server.
FSFS Conference: Dec 9-11, Thiruvananthapuram Project SailFin: Building and Hosting Your Own Communication Server. Binod PG Senior Staff Engineer Sun Microsystems, Inc. 1 Agenda SailFin: Open Source Java
More informationHardware/Software Co-Design of a Java Virtual Machine
Hardware/Software Co-Design of a Java Virtual Machine Kenneth B. Kent University of Victoria Dept. of Computer Science Victoria, British Columbia, Canada ken@csc.uvic.ca Micaela Serra University of Victoria
More informationSample copy. Introduction To WebLogic Server Property of Web 10.3 Age Solutions Inc.
Introduction To WebLogic Server Property of Web 10.3 Age Solutions Inc. Objectives At the end of this chapter, participants should be able to: Understand basic WebLogic Server architecture Understand the
More informationA Modular Approach to Teaching Mobile APPS Development
2014 Hawaii University International Conferences Science, Technology, Engineering, Math & Education June 16, 17, & 18 2014 Ala Moana Hotel, Honolulu, Hawaii A Modular Approach to Teaching Mobile APPS Development
More informationChapter 2 System Structures
Chapter 2 System Structures Operating-System Structures Goals: Provide a way to understand an operating systems Services Interface System Components The type of system desired is the basis for choices
More informationZulu by Azul OpenJDK for Azure
Zulu by Azul OpenJDK for Azure surely a tongue-twister in any spoken language A presentation to Azure CEE Open Source in the Cloud November 27, 2013 Matt Schuetze, Director of Product Management Azul Systems
More informationSecurity Evaluation of J2ME CLDC Embedded Java Platform
Vol. 5, No. 2, March April 2006 Security Evaluation of J2ME CLDC Embedded Java Platform Mourad Debbabi, Mohamed Saleh, Chamseddine Talhi and Sami Zhioua Computer Security Laboratory Concordia Institute
More informationSE 450 Object-Oriented Software Development. Requirements. Topics. Textbooks. Prerequisite: CSC 416
SE 450 Object-Oriented Software Development Instructor: Dr. Xiaoping Jia Office: CST 843 Tel: (312) 362-6251 Fax: (312) 362-6116 E-mail: jia@cs.depaul.edu URL: http://se.cs.depaul.edu/se450/se450.html
More informationAn Easier Way for Cross-Platform Data Acquisition Application Development
An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers
More informationUsing mobile phones to access Web Services in a secure way. Dan Marinescu
Using mobile phones to access Web Services in a secure way Dan Marinescu March 7, 2007 Abstract Web Services is a technology that has gained in acceptance and popularity over the past years. The promise
More informationJava-technology based projects
Java-technology based projects TietoEnator Corporation Oyj Simo Vuorinen simo.vuorinen@tietoenator.com 1 TietoEnator 2000 Agenda Java: language, architecture, platform? Javan promises and problems Enterprise-APIs
More informationMobile Software Application Development. Tutorial. Caesar Ogole. April 2006
Mobile Software Application Development Tutorial By Caesar Ogole April 2006 About the Tutorial: In this tutorial, you will learn how to build a cross-platform mobile software application that runs on the
More informationPERFORMANCE ENHANCEMENTS IN TreeAge Pro 2014 R1.0
PERFORMANCE ENHANCEMENTS IN TreeAge Pro 2014 R1.0 15 th January 2014 Al Chrosny Director, Software Engineering TreeAge Software, Inc. achrosny@treeage.com Andrew Munzer Director, Training and Customer
More informationAn Overview of Oracle Forms Server Architecture. An Oracle Technical White Paper April 2000
An Oracle Technical White Paper INTRODUCTION This paper is designed to provide you with an overview of some of the key points of the Oracle Forms Server architecture and the processes involved when forms
More informationC# and Other Languages
C# and Other Languages Rob Miles Department of Computer Science Why do we have lots of Programming Languages? Different developer audiences Different application areas/target platforms Graphics, AI, List
More information