ACM 2000 Java Grande Conference
TUTORIALS
The tutorials for Java Grande 2000 will be held on June 5th 2000. There
are going to be two tracks around systems and applications for the tutorials
and 5 half-day tutorials. We will refer to the system track as Java Infrastructure
and the application track as Java Application Programming.
| System
Track: Java Infrastructure |
Application
Track: Java Application Programming |
Java
Technologies on Intel IA-64 Architecture (Morning)
Michal Cierniak, Rick Hudson, Ken Lueh, Weldon Washburn.
Intel Microprocessor Research Laboratory |
Developing
Quality enterprise Java Applications (Morning)
Y.V. Srinivas, Metamata, Inc |
Java
VM Infrastructure for Server-side Java (Afternoon)
Hans Boehm - HP Labs
Todd Smith - SGI |
Java
for Numerically Intensive Computing (Afternoon)
Manish Gupta, Sam Midkiff, Jose Moreira
IBM Research |
|
Developing
Server-side applications with Java2EE (Afternoon)
Lennart Jorelid, Govind Seshadri
jGuru.com |
Tutorial 1: Java Technologies on Intel IA-64 Architecture
Monday, June 5, 2000, 8:30am-12:30pm (half-day, morning)
Michal Cierniak, Rick Hudson, Ken Lueh, Weldon Washburn.
Intel Architecture Labs
The IA-64 is Intel's new 64-bit instruction set architecture. This tutorial
discusses how to build a Java Virtual Machine, JIT compiler and Garbage
Collector that exploits the novel architectural features for IA-64. In
the tutorial, we will describe specific optimizations in Java JVM,JIT,GC
design that take advantage of IA-64 features.
IA-64 Architecture Basics:
- Registers, instructions, instruction groups
-
Predication, speculation, branching
Static Compiler Technology Introduction
- If-conversion for predication
- Global code scheduling for speculation
-
Global register allocation on IA-64
Java JVM design on IA-64
- Class loading
- Code management: JIT compilers, native code
- Dealing with the Register Stack Engine and the memory stack: GC support,
exceptions, security, synchronization
Java JIT compiler design on IA-64
- Compilation model: fast code generation, optimizing compiler
- Fast code generation: code selection, code compaction GC support.
Garbage Collection technology on IA-64
- GC overview: algorithms and tradeoffs
- Our design space
- Allocation: optimal sequences, memory model and publication safety
- Scanning objects
- Read and write barriers
Presenters:
Benefits to participants:
Tutorial 2: JVM Infrastructure for server-side Java
Monday, June 5, 2000, 1:30pm-5:30pm (half-day, afternoon)
Hans Boehm, and Todd Smith. HP Labs
and SGI
This tutorial will discuss the underlying
infrastructure inside Java Virtual Machines such as Garbage Collection
mechanisms, performance issues for multithreaded applications, and developing
multi-language Java applications. It will focus on these mechanisms from
the point of view of developing and deploying Java on the server-side.
Part 1: Garbage Collection issues
- What to expect from your Garbage Collector?
- Some discussion on GC mechanisms in current production JVM's (Classic JVM,
HotSpot/IBM JVM, gcj).
Part 2: Multilanguage Java Programming
- Options available for developing multi-language Java applications
- Java Native Interface
- Performance issues for Multilanguage Java applications
Part 3: Multithreading in Java
- Mapping of Java threads to OS threads, Scaling of threads
- Synchronization/Locking, Discussion of current state of the art
Presenters:
Hans Boehm
Todd Smith
Benefits to participants:
Tutorial 3: Developing Quality Enterprise Java Applications
Monday, June 5, 2000, 8:30am-12:30pm (half-day, morning)
Yellamraju V.Srinivas. Metamata Inc
This tutorial will be a rapid introduction to Java technologies that
surround the core libraries. A thorough understanding of these technologies
is essential for developing enterprise applications: distributed and client-server
programs that interact with web servers and databases. Techniques and tools
for ensuring quality (e.g.,robustness, extensibility, etc.) will be considered.
The web heritage of Java and its portability promise have enabled Java
to expand into the enterprise application realm, where a distributed and
heterogeneous computing infrastructure is the norm. Today, the core Java
platform has been augmented by many libraries that address the needs of
enterprise applications. In addition to simplifying network programming,
these extensions enable the development of platform-independent business
logic. In this tutorial, we will provide an overview of a few of these
enterprise technologies, using the running example of a sales database
that is being developed internally at Metamata. The example contains the
primary components that are present in most enterprise applications: a
web server connected to a database, servicing clients that issue queries.
Part I: Foundations
-
Java threads: introduction to the Java threading model.
-
Java networking: basics of sockets, HTTP, etc.; brief coverage of security
Pasrt II: Enterprise Technologies
- Distributed computing: introduction to RMI; brief coverage of CORBA
- Database connectivity: talking to a database with JBDC
- Server-side Java: servlets, JSP; brief coverage of EJB
The presentation will be interwoven with demonstrations.
Presenters:
Yellamraju V. Srinivas
Benefits to participants:
Java practitioners intending to expand their repertoire to enterprise technologies
will benefit from this tutorial. The tutorial will also be of interest
to programmers and theoreticians who wish to understand the unique issues
that arise because of the distributed and heterogeneous nature of enterprise
applications.
Tutorial 4: Java For Numerically Intensive Computing
Monday, June 5, 2000, 1:30pm-5:30pm (half-day, afternoon)
Manish Gupta, Sam Midkiff, Jose Moreira Boehm.
IBM Research
Target audience: Java application programmers, researchers interested
in high-performance computing, compiler developers.
Assumed background: Working knowledge of Java programming.
Part 1: Introduction
- Important issues in numerical computing.
- Performance of Java programs, comparison with C/C++
- Java semantics and their impact on performance.
Part 2: Class libraries for numerical computing
with JavaAccess to native libraries.
- Matrix and array packages.
- Linear algebra packages.
- Complex arithmetic.
Part 3: Java in numerically intensive kernels
- How to program efficient numerical kernels in Java.
- Benefits from object-oriented design, layout independence, clean pointers,
strong typing.
- Advanced data organizations for numerical computing.
- Case study: The design of the Array package for Java.
Part 4: Compiler techniques for optimizing numerically intensive Java code
- Optimization of array access operations.
- Optimization of complex arithmetic.
- Techniques for irregular problems.
- Handling of aliasing information.
- Automatic loop transformations and parallelization.
Part 5: Language issues
- Floating-point model and exact reproducibility.
- Impact of intensive object creation/garbage collection.
- Precise exceptions.
- Dynamic compilation.
Presenters:
Manish Gupta, Sam Midkiff, Jose Moreira
Benefits to participants:
Tutorial 5: Developing Server-side
applications with Java2EE
Monday, June 5, 2000, 1:30pm-5:30pm
(half-day, afternoon)
Lennart Jorelid and
Govind Seshadri
JGuru.com
Few things change so quickly in the landscape of creating high-performance
enterprise applications as the potential and possibilities of the Java
developer. With every major release of the standard Java API, the number of
classes have more than tripled. This tutorial will update developers on the
status and potential of the Java technologies used to create application-class,
server-side applications, with emphasis on the recently announced Java 2
Enterprise Edition (J2EE) platform.
The seminar will cover the latest versions of the following technologies
within the context of J2EE:
Part 1:
- Java Database Connectivity (JDBC)
- Servlets
- JavaServer Pages (JSP)
Part 2:
- Enterprise JavaBeans (EJB)
- JavaMail
Part 3:
- Java Naming & Directory Interface (JNDI)
- IDL / CORBA
Each of the 3 parts will last approximately an hour. The seminar will also
include the demonstration of a sample J2EE application, as well as time for an
extensive Q&A session.
Presenters:
Lennart Jorelid is the E-Commerce and Database Guru for jGuru.com. Being a
server-side Java consultant with a broad range of experiences from various
projects, he is currently writing a book on Server side Java Patterns.
Govind Seshadri is the Enterprise Java Guru for jGuru.com. He is also the
"Distributed Computing" columnist for Java Report and the author of
"Enterprise Java Computing" (Cambridge University Press, 1999).