Course Description:
Java has established itself as a language for application development
for server side computing, but with a reputation as being too large and
slow for real-time embedded software.
This course shows how Java can be used in real-time and embedded
projects and importantly provides developers with significant
advantages over other languages. A complete tour of the Java facilities
for the resource-constrained environment is provided, including J2ME in
depth, Java Card and the Real-Time Java Specification.
Overview:
This five day course provides a thorough grounding in the Java
language, highlighting the significant benefits the language provides
real-time developers in terms of portability, concurrency, productivity
and reliability.
Via a mixture of demonstration and practical sessions, delegates will
gain a sound appreciation of which resource constrained environments
Java is applicable in and importantly those for which it is not. Forty
percent of the course is based on practical work.
Course Objectives:
• To provide an understanding of the fundamentals of the Java
programming language
• To introduce concurrency and networking aspects of Java
• To provide a complete picture of the Java landscape for resource
constrained environments
• To introduce and provide experience of writing Java for different
application domains (e.g. J2ME and Java Card)
• To highlight how Java can be used on embedded hardware
Delegates will learn:
• The core Java syntax and semantics
• How to use Java in embedded and consumer devices
• To evaluate if Java is an appropriate language for a project
• To write concurrent and networked solutions
• How to write code for J2ME in particular MIDlets for MIDP
• About memory and performance issues associated with Java
Pre-requisites:
It is expected that delegates will have experience in programming in a
high level language.
Who Should Attend:
The course is suitable for anybody who wishes to gain a thorough
understanding of the Java programming language and its use in
resource-constrained environments, particular J2ME.
Duration:
Five days.
Course Materials:
• Delegate Handbook
Related courses:
• OO-503 Real-Time Software Design with UML 2.0
• RTOS-201 Fundamentals of Real-Time Operating Systems
• EL-503 Developing for Embedded Linux
• EL-504 Developing Linux Device Drivers
Course Workshop:
The course exercises are based on a case study of a remote monitoring
and control system. This includes building (all in Java):
• A configuration utility as a graphical user interface
• A full concurrent Web server
• Mobile phone access using with a J2ME MIDP MIDlet.
• Smart card identification.
This case study highlights a complete end to end system implemented
in Java and highlights the advantages and disadvantages of the
language as well as providing practical experience of the important
Java application domains.
|
Course Outline:
Introduction to Java Programming
- What is Java
- What can be developed with Java
- J2SE, J2EE, J2ME
- Embedded Java
- Java Card, Personal Java
- Evolution of Java
Object Oriented Programming
- Introduction to Object Orientation
- Encapsulation, Inheritance and Polymorphism
The Core Java Language
- Identifiers and Reserved Words
- Primitive data types
- Expressions and operators
- Iteration
- Decision making
- Classes and objects
- Arrays
Classes and Interfaces
- Constructing and Destroying Objects
- Encapsulation
- Inheritance
- Abstract classes and methods
- Interfaces
- Static members
- Inner classes
- Anonymous classes
Graphical User Interfaces
- Creating graphical user interfaces
- Event handling
Java I/O
- Input/Output streams
- Java Exception handling
Concurrency in Java
- Introduction to threading
- The Java threading API
- Synchronisation techniques
- Thread scheduling
Networking in Java
- TCP/IP Networking
- Java Networking API
J2ME
- Resource constrained virtual machines (KVM,
CVM)
- Configurations (CLDC & CDC)
- Profiles
- Mobile Information Device Profile(MIDP)
- Java Wireless Toolkit
- Developing MIDlets
- User Interfaces
- Event handling
- Networking
The Java Native Interface
- Calling native methods(C/C++) from Java
- Sharing data between Java and native methods
- Handling and generating exceptions in native
methods
- Multi-threaded access to data
JavaCard
- Programming Java Smart Cards
- Smart card language subset
- Java Card virtual machine
- Developing Applets
Other Java Application Domains
- Personal Java
- JavaPhone API
- JavaTV API
- Java Embedded Server (OSGi)
Java Real-Time Specification
- What is the Java Real-Time specification?
- Thread scheduling and dispatching
- Schedulability of threads
- Memory management
- Thread synchronization
- Asynchronous events
Course Summary
|