NEW YORK UNIVERSITY

COMPUTER SCIENCE DEPARTMENT

COURANT INSTITUTE OF MATHEMATICAL SCIENCES

 

                                      EXTREME JAVA

 

 

 

                        Spring 2001                Jean-Claude FRANCHITTI

                        G22.3033                   Wed. 7:00 - 9:00 p.m.

               =================================================================

 

 

COURSE DESCRIPTION: 

 

This course is designed for programmers already familiar with the Java language and class libraries. Topics include a broad and in depth coverage of Java tools and software engineering techniques (e.g., Project Lifecycle, Environment, Resources, Packaging), Java core technologies (e.g., Collections Framework, Drag and Drop, Swing, JavaBeans, threads, JNI), and the application of Java in distributed enterprise communications (e.g., Java IDL, CORBA, RMI/IIOP, JNDI, Jini, JMS, JTS), enterprise web and application enabling (e.g., applets, aglets, connected devices, Web servers, security, XML, servlets, JSPs, EJBs, EAI), database technologies (e.g., JDBC), and operating systems (e.g., JavaOS). Students will experiment with various Java-enabled toolkits to create Java programs using Java’s core libraries, and more advanced packages. All instruction and development will be based on the J2SE 1.3, J2EE 1.2.1, and J2ME CLDC 1.0. Through a set of assignments and projects, students will implement the various components of a sample web-enabled and Java-based enterprise application.

 

 

COURSE OBJECTIVES

 

This objectives of the course are as follows:

 

1.   Expand the students' understanding and exposure to the Java programming language and class libraries.

 

2.   Expose the students to advanced Java tools and software engineering techniques.

 

3.   Expand the students' understanding of Java advanced core technologies.

 

4.              Expose the students to the advanced capabilities of the Java 2 development environment for Enterprise Applications.

 

5.              Demonstrate the application of Java 2 in distributed communications enabling, enterprise systems assurance, web enabling, and enterprise data enabling.

 

6.              Expose students to Enterprise Applications enabling.

 

7.              Broaden students’ knowledge in performance enhancements for enterprise Java applications.

 

 

TEXTBOOKS

 

Building Java Enterprise Systems with J2EE

Paul J. Perrone and Venkata S.R. “Krishna” R. Chaganti

SAMS, ISBN: 0-672-31795-8 (6/00)

 

Advanced Techniques for Java Developers, Rev.Ed.

Daniel J. Berg and J. Steven Fritzinger

Wiley Computer Publishing, ISBN: 0-471-32718-2 (2/99)

 

 

PREREQUISITES

 

Students enrolling in this class are expected to have taken G22.2110, and G22.2250 and their prerequisites or to have equivalent knowledge.

 

 

WEB SITES

 

Download Java 2 SDKs from http://www.javasoft.com/. Related specifications for J2EE, SRV, JSP, and EJB can be found at http://www.javasoft.com/j2ee.

 


COURSE SESSIONS

 

 

1.   INTRODUCING EXTREME JAVA

 

- Review Java’s programming languages features

- Introduction to enterprise application enabling

- Introduction to application performance enhancement

 

READINGS: Building Java Enterprise Systems: Part I (1-3)

          Advanced Techniques: Chapter 1

          Handouts posted on the course web site

 

2.   JAVA TOOLS AND SOFTWARE ENGINEERING TECHNIQUES

 

- Java platform architecture, files, and tools

- Java virtual machine

- Java project management approach

 

READINGS: Building Java Enterprise Systems: Part I (4)

          Handouts posted on the course web site

 

3.   JAVA CORE TECHNOLOGIES (Part I)

 

- Java platforms, features and core APIs

- Collections framework

- Input method framework

 

READINGS: Building Java Enterprise Systems: Part I(4-5)

          Handouts posted on the course web site

           

4.   JAVA CORE TECHNOLOGIES (Part II)

 

- AWT Components

- Swing Components

- Drag and drop

- JavaBeans

- Java Media

 

READINGS: Building Java Enterprise Systems: Part I (6-7)

          Advanced Techniques: Chapters 2, 3, and 5

          Handouts posted on the course web site

 

5.   JAVA CORE TECHNOLOGIES (Part III)

 

- Threads

- JNI

 

READINGS: Advanced Techniques: Chapters 11, and 13

          Handouts posted on the course web site

 

6.   JAVA DISTRIBUTED ENTERPRISE COMMUNICATIONS (PART I)

 

- Review of network, and web communications

- Introduction to distributed enterprise communications

 

READINGS: Building Java Enterprise Systems: Part III (11-13)

          Advanced Techniques: Chapter 4, and 6

          Handouts posted on the course web site

 

7.   JAVA DISTRIBUTED ENTERPRISE COMMUNICATIONS (PART II)

 

- RMI

- Java IDL

- CORBA

- COM/DCOM

 

READINGS: Building Java Enterprise Systems: Part III (14-18)

          Advanced Techniques: Chapter 7

          Handouts posted on the course web site

 

8.   JAVA DISTRIBUTED ENTERPRISE COMMUNICATIONS (PART III)

 

- JNDI Naming and Directory Services

- RMI and JavaBeans Activation Frameworks

- Jini Trading Service

- JMS

- JTA

- JavaMail

 

READINGS: Building Java Enterprise Systems: Part IV (19-23)

          Handouts posted on the course web site

 

9.   JAVA ENTERPRISE WEB AND APPLICATION ENABLING (Part I)

 

- Applets

- Connected devices

- Java Security

 

READINGS: Building Java Enterprise Systems: Part V (24-28)

          Advanced Techniques: Chapter 12

          Handouts posted on the course web site

 

10.  JAVA ENTERPRISE WEB AND APPLICATION ENABLING (PART II)

 

- Traditional web programming and Java

- Web Servers

- Java and XML

- Java servlets

- JavaServer Pages

 

READINGS: Building Java Enterprise Systems: Part VI (29-33)

          Advanced Techniques: Chapter 9

          Handouts posted on the course web site

 

11.  JAVA ENTERPRISE WEB AND APPLICATION ENABLING (PART III)

 

- Enterprise JavaBeans

- Java and application server technology

- Enterprise Application Integration (EAI)

 

READINGS: Building Java Enterprise Systems: Part VII (34-38)

          Advanced Techniques: Chapter 10

          Handouts posted on the course web site

 

12.  JAVA DATABASE TECHNOLOGIES (PART I)

 

- Applications of Java to database technology

- Review database technology

- Basic and advanced JDBC

 

READINGS: Building Java Enterprise Systems: Part II(8-10)

          Advanced Techniques: Chapter 8

          Handouts posted on the course web site

 

13.  JAVA DATABASE TECHNOLOGIES (PART II)

 

- Applications of Java to database technology

- Java and ODBMSs

- Persistence support in J2EE frameworks

- Review

- Final Exam (take home project)

 

READINGS: Building Java Enterprise Systems: Part I(8-10)

          Advanced Techniques: Chapter 8

          Handouts posted on the course web site

 

14.  JAVA OPERATING SYSTEM TECHNOLOGIES

 

     - Applications of Java to operating systems technology

     - JavaOS, Aglets, behavioral reflection

     - Final Exam project due

 

READINGS: Advanced Techniques: Chapters 14-16

          Handouts posted on the course web site


 

READINGS

 

Assigned readings for the course will be from the textbook, the JavaSoft site documentation, and from trade magazines and recommended books listed on the course web site.

 

ASSIGNMENTS

 

Homework and project assignments completion will be required.

Quizzes will be administered.

The final exam will be a take-home exam.

 

GRADING POLICY

 

25% Assignments

35% Projects

30% Final Exam

10% Attendance and Participation

Extra credit will be granted periodically for particularly clever or creative solutions.

 

 


 

 

EXTREME JAVA

Session 1:  Introducing Extreme Java

 

SESSION OBJECTIVES

 

1.  Review Java’s programming language features

2.  Understand course structure and objectives

3.  Convey a programming language comparison chart

4.  Discuss enterprise application enabling

5.  Describe Java’s enterprise application enabling capabilities

6.  Discuss Java application performance enhancements

7.  Discuss behavioral reflection and Java

8.  Describe the class project

 

SESSION OUTLINE

 

·        Review course administration and course structure

·        Review course goals and syllabus

·        Introduce a programming language comparison framework

·        Discuss OO development and component-based software development in Java

·        Describe the application of Java to distributed computing

·        Describe the application of Java to web technologies

·        Describe the application of Java to database technologies

·        Describe Java and operating systems' related technology

·        MetaJava and behavioral reflection

·        Describe class project focus

 

ASSIGNMENT

 

·        Assignment #1a:

§         C++/Java comparison

§         MetaJava virtual machine installation/exploration

·        Read suggested introductory textbook chapters, and handouts

·        Read papers on behavioral reflection

 


EXTREME JAVA

Session 2 – Java Tools and Software Engineering Techniques

 

SESSION OBJECTIVES

 

1.  Describe Java platform architectures, and tools

2.  Review traditional Java tools and environment

3.  Suggest a Java project management approach

 

SESSION OUTLINE

 

·                    Review previous session

·        Introduce Java tools and software engineering techniques

·        Discuss platform architectures

·        Discuss the Java project lifecyle

·        Discuss the Java Virtual Machine (JVM)

·                    Java resources, packaging, tools, and environment

§         Java interpreter

§         Java class path

§         Java compiler

§         Applet tag

§         Packaging: Java archive (JAR) files

§         Code and data signing

·                    Java project management

§         Case studies using Java technology

§         Converting existing business systems to Java

§         Building execution architectures

§         Overcoming performance challenges

§         Making applications secure

§         Building highly available systems

§         Motivating application developers

 

ASSIGNMENT

 

·        Assignment #1b (continued):

§         MetaJava installation/exploration

·        Installation of IBM Alphaworks' xml4j development environment

·        Read suggested textbook chapters, and handouts on Java tools and software engineering techniques

·        Read papers on behavioral reflection

 


EXTREME JAVA

Session 3 – Java Core Technologies (Part I)

 

SESSION OBJECTIVES

 

1.  Describe Java platforms, features and core APIs

2.  Study the collections framework

3.  Study the input method framework

 

SESSION OUTLINE

 

·        Review previous session

·        Describe Java core technologies at a high-level

·        Review Java API core packages

·        Collections framework

·        Input method framework

 

ASSIGNMENT

 

·        Assignment #2a:

Modify a Java-based XML Tree Viewer application to add a query facility. Assignment provides hands on practical experience with the Java collection framework and JFC Swing.

·        Read suggested textbook chapters, and handouts on Java core technologies


EXTREME JAVA

Session 4 – Java Core Technologies (Part II)

 

SESSION OBJECTIVES

 

1.  Describe user interfacing

2.  Study component modeling with JavaBeans

 

SESSION OUTLINE

 

·        Review previous session

·        Java AWT components

·        Java Swing components

·        Drag and drop

·        Graphics and multimedia components (JavaMedia)

·        Javabeans

 

ASSIGNMENT

 

·        Assignment #2b:

Add drag-and-drop facilities to the Tree Viewer application developed in assignment #2a.

·        Read suggested textbook chapters, and handouts on Java core technologies


EXTREME JAVA

Session 5 – Java Core Technologies (Part III)

 

SESSION OBJECTIVES

 

1.  Study Java Threads

2.  Study the Java Native Interface

 

SESSION OUTLINE

 

·        Review previous session

·        Java threads

·        JNI

 

ASSIGNMENT

 

·        Assignment #2c:

Design and implement a simplified applet version of assignment #2a, and #2b that uses Javabeans graphical components, threads for animation, and accesses a C or C++ program via JNI.

·        Read suggested textbook chapters, and handouts on Java core technologies


EXTREME JAVA

Session 6 – Java Distributed Enterprise Communications (Part I)

 

SESSION OBJECTIVES

 

1.  Review of network, and web communications

2.  Introduction to distributed enterprise communications

 

SESSION OUTLINE

 

·                    Review previous session

·                    Distribution mechanisms

·                    Network and Socket programming

·                    Web communications

 

ASSIGNMENT

 

·        Assignment #3a:

Modify ongoing version of Java-based XML Tree Viewer application to operate as a client-server application using sockets. The modified application should use a servlet, and both a “rich” Java client and an applet should be provided on the client side.

·        Read suggested textbook chapters, and handouts on Java distributed enterprise communications

 


EXTREME JAVA

Session 7 – Java Distributed Enterprise Communications (Part II)

 

 

SESSION OBJECTIVES

 

1.  Study RMI Communications

2.  Study CORBA component modeling and communications

3.  Study Java IDL

4.  Survey the COM+ distributed computing architecture and framework

 

SESSION OUTLINE

 

·                    Review previous session

·                    RMI

·                    CORBA

·                    Java IDL

·                    COM+

 

ASSIGNMENT

 

·        Assignment #3b:

Provide a modified version of the Java-based XML Tree Viewer application to operate as a client-server application using RMI-IIOP and CORBA. A “rich” RMI-based Java client and an applet should be provided on the client side. The server component should be implemented using the Visibroker for Java CORBA framework.

Extra credit assignment consists of implementing a multi-tier version of the Tree Viewer application using Java IDL.

·        Read suggested textbook chapters, and handouts on Java distributed enterprise communications


EXTREME JAVA

Session 8 – Java Distributed Enterprise Communications (Part III)

 

 

SESSION OBJECTIVES

 

1.  Study the JNDI Naming and Directory service

2.  Study the RMI and Javabeans activation frameworks

3.  Study the Jini Trading service

4.  Study the Java Messaging Service (JMS)

5.  Study the Java Transaction Architecture (JTA)

6.  Study JavaMail

 

SESSION OUTLINE

 

·                    Review previous session

·                    JNDI Naming and Directory services

·                    RMI Activation framework

·                    JavaBeans activation framework

·                    Jini

·                    JMS

·                    JTA

·                    JavaMail

 

ASSIGNMENT

 

·        Assignment #3c:

Provide a modified version of the Java-based XML Tree Viewer application developed in assignment #3b. The modified application should use the RMI activation framework, JNDI, and Jini (Jini support is for extra credit).

·        Read suggested textbook chapters, and handouts on Java distributed enterprise communications


EXTREME JAVA

Session 9 – Java Enterprise Web & Application Enabling (Part I)

 

SESSION OBJECTIVES

 

1.  Review applets

2.  Study connected device technology

3.  Study Java security

 

SESSION OUTLINE

 

·                    Review previous session

·                    Java applets

·                    Java connected devices

·                    Java security

 

ASSIGNMENT

 

·        Assignment #4a:

Modify ongoing version of Java-based XML Tree Viewer application to operate as an applet-based secure application in a web environment.

Extra credit assignment consists of implementing a modified version of the Tree Viewer application using an emulated connected device client.

·        Read suggested textbook chapters, and handouts on Java enterprise web and application enabling


EXTREME JAVA

Session 10 – Java Enterprise Web & Application Enabling (Part II)

 

SESSION OBJECTIVES

 

1.  Review traditional web programming and Java

2.  Review web servers

3.  Study Java and XML

4.  Study Java servlets and JavaServer Pages

5.  Survey Java-based application server technology

 

SESSION OUTLINE

 

·                    HTML, CGI, and JavaScript

·                    Web browsers and web servers

·                    XML’s SAX and DOM APIs

·                    J2EE and XML

·                    Java servlets and JSPs

 

ASSIGNMENT

 

·        Assignment #4b:

Modify ongoing version of the Java-based XML Tree Viewer application developed in assignment #3a to use the SAX API and

implement data exchange on the servlet side into an arbitrary file format.

Extra credit assignment #4b-1 consists of implementing a modified version of the same Tree Viewer application that uses JSPs.

Extra credit assignment #4b-2 consists of experimenting with Visual XML as an implementation framework for the Tree Viewer application.

·        Read suggested textbook chapters, and handouts on Java enterprise web and application enabling


EXTREME JAVA

Session 11 –Java Enterprise Web & Application Enabling (Part III)

 

SESSION OBJECTIVES

 

1.  Study Enterprise JavaBeans

2.  Survey Java-based application Server technology

3.  Survey Enterprise Application Integration (EAI) technologies

 

SESSION OUTLINE

 

·                    Describe enterprise application platforms

·                    Component modeling with EJBs

·                    Serving EJBs

·                    Application Servers and EJBs

·                    EAI

 

ASSIGNMENT

 

·        Assignment #4c:

Modify ongoing version of Java-based XML Tree Viewer application to operate as an Enterprise JavaBeans application. Extra credit assignment consists of implementing a multi-tier version of the Tree Viewer application using Java 2 Enterprise Edition and JTS.

·        Read suggested textbook chapters, and handouts on Java enterprise web and application enabling

 


EXTREME JAVA

Session 12 – Java Database Technologies (Part I)

 

SESSION OBJECTIVES

 

1.  Review database technology

2.  Survey applications of Java to database technology

3.  Study basic and advanced JDBC features

 

SESSION OUTLINE

 

·                    Review previous session

·                    Database technology

·                    Enterprise data modeling

·                    JDBC

 

ASSIGNMENT

 

·        Assignment #5a:

Design and develop a three-tier application to support the storage of Tree Viewer data in a back-end database via JDBC.

·        Read suggested textbook chapters, and handouts on Java database technologies

 


EXTREME JAVA

Session 13 – Java Database Technologies (Part II)

 

SESSION OBJECTIVES

 

1.  Discuss Java and ODBMSs

2.  Persistence support in J2EE frameworks

3.  Course material review

4.  Final Exam (take home project)

 

SESSION OUTLINE

 

·                    Java and ODBMs

·                    EJB persistence service architecture

·                    Persistence service performance issues

·                    Session and Entity beans

·                    Course material review

·                    Final project description

 

ASSIGNMENT

 

·        Final Exam (take home project):

Implement a persistent version of the XML Tree Viewer application in a web or multi-tier environment using Session and Entity EJBs.

Extra credit problem consists of experimenting with a MetaJava-like virtual machine to implement seamless persistence of the Tree Viewer application.

·        Read suggested textbook chapters, and handouts on Java database technologies

 


EXTREME JAVA

Session 14 – Java Operating Systems Technologies

 

SESSION OBJECTIVES

 

1.  Discuss JavaOS

2.  Study Aglets

3.  Discuss Final Exam project

 

SESSION OUTLINE

 

·                    JavaOS (Kona)

·                    The architecture of aglets

·                    Aglets and MetaJava

·                    Final exam discussion

 

ASSIGNMENT

 

·        Read suggested textbook chapters, and handouts on Java Operating Systems technologies