NEW YORK UNIVERSITY

COMPUTER SCIENCE DEPARTMENT

COURANT INSTITUTE OF MATHEMATICAL SCIENCES

 

EXTREME JAVA

 

G22.3033-006 - Spring 2003

Mon. 7:00 - 9:00 p.m.

 

Jean-Claude FRANCHITTI

 

 

 

COURSE DESCRIPTION: 

This course is designed for programmers already familiar with the Java language and class libraries. Java-related topics include a broad and in depth coverage of the following areas:

·        Advanced Java language features (e.g., threads, exception handling and assertions), and upcoming (“Tiger” 1.5) new features (e.g., generics).

·        Java tools (e.g., JPDA, Javadoc, Java Help, ECPerf, JavaCC, Ant, JUnit, Cactus), Java IDEs (e.g., Eclipse, NetBeans, Sun ONE Studio, JBuilder, Visual Age for Java, VisualCafé, Codewarrior for Java, WebGain Studio, ModelJ, J2ME Wireless Toolkit) and mainstream software engineering techniques (e.g., Model Driven Architectures, Agile Modeling, Extreme Programming, Aspect-Oriented Programming, Refactoring, CMM and Business Process Improvement Lifecycles, Team Software Process, Project Management, Environments Setup,  Resources Selection, and Packaging).

·        J2SE core technologies and optional packages (e.g., JFC, Swing, Collections Framework, Drag and Drop, JavaBeans, JNI, JMF), and Java Generative Programming Technology.

·        Distributed enterprise communications via J2EE (e.g., Java IDL, CORBA, RMI/IIOP, JAF, JNDI, JMS, JTA/JTS, security via JAAS/JCE/JSSE).

·        Enterprise Web and application enabling (e.g., Java Web Start, servlets, JSPs, Java Server Faces, Jakarta Struts, EJBs, J2EE Connector Architecture, Java XML Pack, JAXB), Web Services Developer Pack, EAI/B2Bi, J2ME CLDC and CDC technology, J2EE implementations (e.g., JBOSS, Sun ONE Application Server, BEA WebLogic, WebSphere), and related blueprints programs.

·        Database technologies (e.g., JDBC, Java Data Objects, SQLJ, EJB-QL, Jakarta-OJB).

·        Operating systems and networking technologies (e.g., Java Hotspot VM, Jini, JXTA, Jiro, Java agents, JMI, JavaSpaces, JMX).

Students will experiment with various Java tools and technologies to create Java programs on various platforms. All instruction and development will be based on the J2SE 1.4.1, J2EE 1.4, and J2ME CLDC/CDC 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

 

The 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 the latest 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, web enabling, and enterprise data enabling.

 

6.              Expose students to enterprise Applications enabling and enterprise systems assurance.

 

7.              Broaden students’ knowledge of applied Java patterns, bug avoidance, real-time programming, performance enhancements for enterprise Java applications.

 

 

TEXTBOOKS

 

Mastering Java 2, J2SE 1.4

John Zukowski

Sybex, ISBN: 078214022X,Book and CD-ROM Edition (04/02)

 

J2EE: The Complete Reference

James Keogh, Jim Keogh

McGraw-Hill Osborne Media, ISBN: 007222472X, 1st Edition (09/02)

 

Expert One-on-One: J2EE Design and Development

Rod Johnson

Wrox Press Inc., ISBN: 1861007841 (10/02)

 

 

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.

 

 

OTHER RECOMMENDATIONS

 

Students are encouraged to review the references provided on the course Web site, subscribe to Java Developers Journal, and join the Java Community to participate in Java technology forums and/or Java chat discussions, and gain access to community resources. Please become a member of the Java Developer Connection to download and experiment with pre-released Java software via the early access and Java Community Process(JCP) site. It is also recommended that students become member of a Java user group of their choice (e.g., http://www.javasig.com, http://65.213.223.116/novajug/index.jsp), attend local events or yearly Java conferences (e.g., http://www.javaonwallstreet.com/, http://servlet.java.sun.com/javaone/sf2003/home/index.en.jsp).


COURSE SESSIONS

 

 

1.   INTRODUCING EXTREME JAVA

 

- Review Java’s programming languages features

     - Non features (e.g., behavioral reflection, etc.)

- Review upcoming features in “Tiger” 1.5

- Model Driven Architectures for Java

- Java enterprise application enabling

- Agile Modeling & eXtreme Programming (XP) for Java

- Aspect-Oriented Programming (AspectJ) & Refactoring

- Java application performance enhancement

 

READINGS: Mastering Java 2: Part 1 & Appendix A

          Expert One-on-One: Chap. 5 as a project template

          Selected readings assigned in class

          Handouts posted on the course Web site

 

2.   JAVA TOOLS AND SOFTWARE ENGINEERING TECHNIQUES

 

- Java platform architectures review

- Using Java (open source) development tools

- Survey/selection of Java IDEs

- Detailed study of MDA, Agile Modeling/XP, and AspectJ

- Practical use of design patterns and refactoring

- Applying SEI’s CMM and TSP to Java projects

- Java project management approach

- Practical Java environment setup and application packaging

- Survey of Java resources

 

READINGS: Mastering Java 2: Part 2 – Chapter 17 & Appendix B

          Expert One-on-One: Chapters 2-4 as applicable

          Selected readings assigned in class

          Handouts posted on the course Web site

 

3.   JAVA CORE TECHNOLOGIES (Part I)

 

- J2SE features, core components, and optional packages

- Java Foundation Classes

- Collections framework

- Assistive Technologies

 

READINGS: Mastering Java 2: Part 2 – Chap. 9,14,16,19,20,23

          Expert One-on-One: Chap. 2-4 as applicable (cont.)

          Handouts posted on the course Web site

           

4.   JAVA CORE TECHNOLOGIES (Part II)

 

- AWT Components

- Swing Components and Pluggable Look and Feel

- SWT vs. Swing

- SwingML/XUL v.s. Swing

- Drag and Drop

- JavaBeans

 

READINGS: Mastering Java 2: Part 2 – Chap. 12-13, 15, 21

          Expert One-on-One: Chap. 2-4 as applicable (cont.)

          Selected readings assigned in class

          Handouts posted on the course web site

 

5.   JAVA CORE TECHNOLOGIES (Part III) AND GENERATIVE PROGRAMMING

 

- Java 2D/3D APIs

- Java Media APIs and Java Media Framework (JMF)

- JNI

- Java Generative Programming Technology

 

READINGS: Mastering Java 2: Part 2 – Chap. 10, 11

          Expert One-on-One: Chap. 2-4 as applicable (cont.)

          Selected readings assigned in class

          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

- Introduction to ORB implementations

- RMI & RMI/IIOP

- RMI and the JavaBeans Activation Framework (JAF)

 

READINGS: J2EE: Part I Chap. 1-4, Part IV Chap. 15

          Selected readings assigned in class

          Handouts posted on the course web site

 

7.   JAVA DISTRIBUTED ENTERPRISE COMMUNICATIONS (PART II)

 

- CORBA

- CORBA 3 POA Activation Service

- Java IDL

- JNDI Naming and Directory Services

- Jini (as a “Trading” Service)

 

READINGS: J2EE: Part IV Chap. 14, 18, Appendix E

          Expert One-on-One: Introduction (cont.)

          Selected readings assigned in class

          Handouts posted on the course web site

 

8.   JAVA DISTRIBUTED ENTERPRISE COMMUNICATIONS (PART III)

 

- JMS

- JTA/JTS

- Java security via JAAS/JCE/JSSE

- JavaMail

 

READINGS: J2EE: Parts IV Chap. 13, 16, 17, Appendix D

          Expert One-on-One: Introduction (cont.)

          Handouts posted on the course web site

 

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

 

- Traditional Web programming and Java

- Web Server technology for Java Web applications

- Java Web Start / Applets

- J2ME CLDC and CDC technology

- Java XML Pack and JAXB

 

READINGS: J2EE: Parts III Chap. 8-9, Appendices A & B

          Expert One-on-One: Chap. 12, 13

          Selected readings assigned in class

          Handouts posted on the course web site

 

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

 

- Java servlets

- Servlet filters

- Java Server Pages (JSPs)

- Cocoon 2 and XML Server Pages (XSPs)

- Java Server Faces

- Jakarta Struts

 

READINGS: J2EE: Parts III Chap. 10-11

          Expert One-on-One: Chap. 12, 13 (cont.)

          Selected readings assigned in class

          Handouts posted on the course web site

 

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

 

- Enterprise JavaBeans (EJBs)

- J2EE Connector Architecture

- Practical survey of mainstream J2EE application servers

- Web Services Developer Pack

- Enterprise Application Integration (EAI)

- Business to Business Integration (B2Bi)

- J2EE blueprint programs

 

READINGS: J2EE: Parts III Chap. 12, Appendix C

          Expert One-on-One: Chap. 1, 6, 10, 11, 14

          Handouts posted on the course web site

 

12.  JAVA DATABASE TECHNOLOGIES (PART I)

 

- Applications of Java to database technology

- Database technology review

- Basic and advanced JDBC features

 

READINGS: J2EE: Parts II Chap. 6, 7

          Expert One-on-One: Chap. 7, 9, 15

          Handouts posted on the course web site

 

13.  JAVA DATABASE TECHNOLOGIES (PART II)

 

- Applications of Java to database technology

- Java and ODBMSs

- Java Data Objects

- SQLJ

- EJB-QL

- Jakarta-OJB

- Course Review

- Final Exam (take home project)

 

READINGS: J2EE: Parts II Chap. 5

          Expert One-on-One: Chapter 7, 8, 15

          Handouts posted on the course web site

 

14.  JAVA OPERATING SYSTEM AND NETWORKING TECHNOLOGIES

 

-       Hotspot Virtual Machine

-       Jini

-       JXTA

-       Jiro

-       Java agents

-       JMI

-       JavaSpaces

-       JMX

     - Final Exam project due

 

READINGS: J2EE: Part V Chap. 19-23

          Selected readings assigned in class

          Handouts posted on the course web site


 

READINGS

 

Assigned readings for the course will be from the textbooks, various Java-related Web sites, 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.  Understand course structure and objectives

2.  Convey a programming language comparison chart

3.  Review Java’s programming language features

4.  Discuss Java’s non-features (e.g., behavioral reflection)

5.  Review upcoming features in “Tiger” 1.5

6.  Discuss Model Driven Architectures for Java

7.  Discuss Java Agile Modeling & eXtreme Programming (XP)

8.  Present Java Aspect-Oriented Programming (AspectJ)

9.  Discuss the refactoring of Java applications

10.                     Discuss Java application performance enhancements

11.                     Describe the class project

 

SESSION OUTLINE

 

·        Course administration and course structure

·        Course goals and syllabus

·        Sample programming language comparison framework

·        Java OO and component-based software development

·        Java features and non-features

§         Threads

§         Exception handling and assertions

§         Behavioral reflection

§         Java 1.5 generics

·        Application of Java to distributed computing

·        Application of Java to web technologies

·        Application of Java to database technologies

·        Java operating systems and networking technology

·        Implementations of Java behavioral reflection

·        Model Driven Architectures demonstration

§         Executable UML

§         Mainstream MDA tools

·        Java Agile Modeling and XP demonstration

§         Ant, Junit, and Cactus

·        AspectJ programming demonstration

·        Java application refactoring demonstration

·        Java effective programming

§         Java application performance enhancement areas

·        Class project focus

 

ASSIGNMENT

 

  • Assignment #1a: (report-like assignment)

§         C++/Java/Jython (http://www.jython.org/) comparison

§         Explore frameworks implementing behavioral reflection

§         Select and setup open source Java development tools for XP (e.g., Ant, JUnit, and Cactus)

  • Read suggested introductory textbook chapters, and handouts
  • Read paper(s) on behavioral reflection, Java generics, MDA, XP, Agile Modeling, AspectJ, and refactoring

 


EXTREME JAVA

Session 2 – Java Tools and Software Engineering Techniques

 

SESSION OBJECTIVES

 

1.  Describe Java platform architectures

2.  Review Java resources, packaging, tools, and environment

3.  Describe Java (open source) development tools

4.  Survey and evaluate Java IDEs’ selection criteria

5.  Study MDA, Agile Modeling/XP, and AspectJ in detail

6.  Demonstrate the practical use of patterns & refactoring

7.  Describe how SEI’s CMM and TSP apply to Java projects

8.  Suggest a Java project management approach

 

SESSION OUTLINE

 

·        Review of previous session

·        Java platform architectures

§         J2SE

§         J2EE

§         J2ME

·        Java resources, packaging, tools, and environments

§         Java class path

§         Java compiler

§         Java interpreter

§         JPDA, Javadoc, Java Help, ECPerf

§         Java archives

§         Code and data signing

§         Java Component models (e.g., applet, JavaBean, EJB)

·        Java (open source) development tools

§         JavaCC

§         Ant, JUnit, JMeter, HttpUnit, JUnitPerf, Cactus

·        Evaluation and Selection criteria for various IDEs

§         Eclipse

§         NetBeans

§         Sun ONE Studio, JBuilder, Visual Age for Java, VisualCafé, Codewarrior for Java

§         WebGain Studio

§         ModelJ

§         J2ME Wireless Toolkit

·        Demonstration of software development techniques

§         MDA

§         Agile Modeling/XP

§         AspectJ

§         Patterns usage and refactoring

§         CMM and TSP

·        Java project management issues

§         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: (submit report + implementation archive)

§         Implement a sample application using open source Java tools for XP

§         Extra Credit: implement the sample application using XP on top of a JVM that supports behavioral reflection

  • Installation of J2SE/J2EE/J2ME SDKs, IDE(s) of choice, Java Web Start, Apache Xerces/Xalan development environments
  • Read suggested textbook chapters, and handouts on Java tools and software engineering techniques
  • Read paper(s) on behavioral reflection, Java generics, MDA, XP, Agile Modeling, AspectJ, and refactoring

EXTREME JAVA

Session 3 – Java Core Technologies (Part I)

 

SESSION OBJECTIVES

 

1.  Describe J2SE features, core components, and optional packages

2.  Study the Java Foundation Classes (JFCs)

3.  Study the collections framework

4.  Study assistive technologies

 

SESSION OUTLINE

 

·        Review of previous session

·        Presentation of J2SE core components at a high-level

·        J2SE core components review

·        Presentation of J2SE optional packages at a high-level

·        J2SE optional packages review

·        Collections framework details

·        Assistive technologies details

 

ASSIGNMENT

 

  • Assignment #2a: (submit report + implementation archive)

§         Analyze/reengineer an existing Java-based application to use it as an ongoing project framework within an XP development environment. This application creates a presentation of an XML document. Assignment provides hands on practical experience with the JFCs, the Java collection framework, and/or assistive technologies.

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

EXTREME JAVA

Session 4 – Java Core Technologies (Part II)

 

SESSION OBJECTIVES

 

1.  Describe thin v.s. thick user interfacing technologies

2.  Describe SwingML and other XML UI (XUL) engines

3.  Present component modeling with JavaBeans

 

SESSION OUTLINE

 

·        Review of previous session

·        Java AWT components

·        Pluggable Look and Feel approach

·        Java Swing components

·        Differences between SWT and Swing

·        SwingML

·        Other XML UI (XUL) engines

§         e.g., Luxor, XWT, JellySwing, Thinlets, KoalaGML, Java GUI Builder, Not Yet Xulux (Nyx), Motlib.Net, etc.

·        Drag and drop

·        JavaBeans component model

 

ASSIGNMENT

 

  • Assignment #2b: (submit report + implementation archive)

§         Add drag-and-drop facilities to the Java framework-based 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.  Describe the Java 2D/3D APIs

2.  Describe the Graphics and multimedia components (JMF)

3.  Present the Java Native Interface

4.  Introduce Java Generative Programming Technology

 

SESSION OUTLINE

 

·        Review of previous session

·        Java 2D API

·        Java 3D API

·        JMF

·        XBeans and Visual XBeans

·        Java Native Interface (JNI) details

·        Java Generative Programming

§         Software family architectures

§         JavaCC

§         Program generators development using XML and Java

 

ASSIGNMENT

 

  • Assignment #2c: (submit report + implementation archive)

§         Design and implement a version of assignment #2a, and #2b that uses Visual XBean (see Xbeans documentation at http://www.xbeans.org/). Visual XBeans are JavaBeans designed to display XML documents. They use Swing components to display XML documents as JTrees, JTables, or other Swing components.

§         Extra credit: Use JNI to obtain your XML document from an underlying C or C++ program.

  • 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.  Introduce to distributed enterprise communications

3.  Survey ORB implementations

4.  Present RMI, RMI/IIOP

5.  Present the RMI activation service

 

SESSION OUTLINE

 

·        Review of previous session

·        Distribution mechanisms

·        Java network and socket programming

·        Java Web communications

·        ORB implementations

·        RMI & RMI/IIOP

·        RMI and the JavaBeans Activation Framework (JAF)

 

ASSIGNMENT

 

  • Assignment #3a: (submit report + implementation archive)

§         Modify ongoing version of the Java-based application developed in assignment #2a to operate as a distributed (client-server) application using (a) RMI and (b) RMI-IIOP.

  • 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 CORBA component modeling and communications

2.  Describe the CORBA Portable Object Adapter (POA)

3.  Study Java IDL

4.  Study JNDI

5.  Describe Jini as a trading service

 

SESSION OUTLINE

 

·        Review of previous session

·        CORBA

·        CORBA 3 POA Activation Service

·        Java IDL

·        JNDI Naming and Directory Services

·        Jini (as a “Trading” Service)

 

ASSIGNMENT

 

·        Assignment #3b: (submit report + implementation archive)

§         Provide a modified version of the Java-based application developed in assignment #2a to operate as a client-server application using CORBA. Your program should be implemented using the Visibroker for Java CORBA framework. You are not required to use CosNaming in this assignment.

§         Extra credit: Implement the same assignment using Java IDL, and RMI-IIOP and JNDI.

·        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 Java Messaging Service (JMS)

2.  Study the Java Transaction Architecture (JTA) and Transaction Service (JTS)

3.  Describe Java security via JAAS/JCE/JSSE

4.  Present JavaMail

 

SESSION OUTLINE

 

·        Review of previous session

·        JMS

·        JTA/JTS

·        Java security via JAAS/JCE/JSSE

·        JavaMail

 

ASSIGNMENT

 

  • Assignment #3c: (submit report + implementation archive)

§         Provide a modified version of the application developed in assignment #3b. The modified application should use the RMI activation framework, JMS, JTS, and Java security.

§         Extra Credit: Extend your application to use Jini as a trading service.

  • 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 traditional Web programming

2.  Introduce Java Web programming

3.  Discuss Web Server technology for Java Web applications

4.  Describe Java Web Start / Applet technology

5.  Study J2ME CLDC and DCD technologies

6.  Demonstrate the use of the Java XML Pack and JAXB technologies

 

SESSION OUTLINE

 

·        Review of previous session

·        Traditional Web programming and Java

·        Web Server technology for Java Web applications

·        Java Web Start / Applets

·        J2ME CLDC and CDC technology

·        Java XML Pack and JAXB

 

ASSIGNMENT

 

  • Assignment #4a: (submit report + implementation archive)

§         Modify ongoing version of your Java framework-based application to operate as secure JNLP application in a web environment.

§         Extra credit:

(a)         Implement the same assignment using an emulated connected device client.

(b)         Use generative programming technology to generate a renderer applet for your Visual XBean.

  • 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.  Study Java servlets

2.  Study JavaServer Pages (JSPs)

3.  Describe Java Server Faces

4.  Study Jakarta Struts

5.  Survey Java-based application server technology

 

SESSION OUTLINE

 

·        Review of previous session

·        Java servlets

·        Java servlet filters

·        Java Server Pages (JSPs)

·        Cocoon 2 and XML Server Pages (XSPs)

·        Java Server Faces

·        Jakarta Struts

 

ASSIGNMENT

 

·        Assignment #4b: (submit report + implementation archive)

  • Modify ongoing version of the Java-based application developed in assignment #3a to use a servlet to forward the XML document to the JNLP client. You should use the XML JAXP API to implement data loading on the servlet side from an arbitrary XML file format.
  • Extra credit:

(a) Implement a modified version of the same application that uses JSPs.

(b) Use Jakarta Struts to develop a similar application.

(c) Use Cocoon 2 and an XSLT stylesheet to implement a similar 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.  Describe the J2EE Connector Architecture

3.  Survey mainstream application servers

4.  Study Web Services and the associated Web Services Developer Pack

5.  Survey Enterprise Application Integration (EAI) technology

6.  Survey Business to Business Integration (B2Bi) technology

7.  Study J2EE blueprint programs

 

SESSION OUTLINE

 

·        Review of previous session

·        Enterprise JavaBeans (EJBs)

·        J2EE Connector Architecture

·        Practical survey of mainstream J2EE application servers

·        Study the Web Services protocol stack

·        Demonstrate the practical use of Web Services

·        Enterprise Application Integration (EAI)

·        Business to Business Integration (B2Bi)

·        J2EE blueprint programs

 

ASSIGNMENT

 

  • Assignment #4c: (submit report + implementation archive)

§         Modify ongoing version of Java-based application to operate as an Enterprise JavaBeans application.

§         Extra credit: Implement a multi-tier version of your framework-based application using Web Services.

  • 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 of previous session

·        Applications of Java to database technology

·        Database technology review

·        Basic and advanced JDBC features

 

ASSIGNMENT

 

  • Assignment #5a: (submit report + implementation archive)

§         Design and develop a three-tier version of your framework-based application that supports the storage of XML 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.  Study Java Data Objects

3.  Describe SQLJ

4.  Describe EJB-QL

5.  Study Jakarta-OJB

6.  Review the course material

7.  Discuss the Final Exam (take home project)

 

SESSION OUTLINE

 

·        Java and ODBMs

·        Java Data Objects

·        SQLJ

·        EJB persistence service architecture

·        Persistence service performance issues

·        EJB-QL

·        Jakarta-OJB

·        Course material review

·        Final Exam description

 

ASSIGNMENT

 

  • Sample Exam: (submit report + implementation archive)

§         Implement a persistent version of your ongoing framework-based application in a multi-tier web environment using Session and Entity EJBs.

§         Extra credit: Implement a version of the same application on top of a JVM that supports behavioral reflection. Use behavioral reflection to implement seamless persistence.

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

 


EXTREME JAVA

Session 14 – Java Operating Systems and Networking Technologies

 

SESSION OBJECTIVES

 

1.  Discuss the Hotspot VM

2.  Study Jini

3.  Study JXTA

4.  Study Jiro

5.  Discuss Java agents technology

6.  Study JMI

7.  Study JavaSpaces

8.  Study JMX

9.  Discuss Final Exam project

 

SESSION OUTLINE

 

·        Hotspot Virtual Machine

·        Jini

·        JXTA

·        Jiro

·        Java agents

·        JMI

·        JavaSpaces

·        JMX

·        Final exam discussion

 

ASSIGNMENT

 

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