NEW YORK UNIVERSITY€¦ · new york university computer science department courant institute of...

25
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.

Transcript of NEW YORK UNIVERSITY€¦ · new york university computer science department courant institute of...

Page 1: NEW YORK UNIVERSITY€¦ · 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.

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.

Page 2: NEW YORK UNIVERSITY€¦ · 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.

• 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)

Page 3: NEW YORK UNIVERSITY€¦ · 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.

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).

Page 4: NEW YORK UNIVERSITY€¦ · 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.

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

Page 5: NEW YORK UNIVERSITY€¦ · 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.

(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

Page 6: NEW YORK UNIVERSITY€¦ · 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.

- 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

Page 7: NEW YORK UNIVERSITY€¦ · 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.

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

Page 8: NEW YORK UNIVERSITY€¦ · 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.

- 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

Page 9: NEW YORK UNIVERSITY€¦ · 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.

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.

Page 10: NEW YORK UNIVERSITY€¦ · 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.

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

Page 11: NEW YORK UNIVERSITY€¦ · 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.

▪ 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

Page 12: NEW YORK UNIVERSITY€¦ · 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.

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

Page 13: NEW YORK UNIVERSITY€¦ · 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.

▪ 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

Page 14: NEW YORK UNIVERSITY€¦ · 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.

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

Page 15: NEW YORK UNIVERSITY€¦ · 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.

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

Page 16: NEW YORK UNIVERSITY€¦ · 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.

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

Page 17: NEW YORK UNIVERSITY€¦ · 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.

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

Page 18: NEW YORK UNIVERSITY€¦ · 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.

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

Page 19: NEW YORK UNIVERSITY€¦ · 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.

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

Page 20: NEW YORK UNIVERSITY€¦ · 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.

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

Page 21: NEW YORK UNIVERSITY€¦ · 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.

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

Page 22: NEW YORK UNIVERSITY€¦ · 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.

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

Page 23: NEW YORK UNIVERSITY€¦ · 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.

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

Page 24: NEW YORK UNIVERSITY€¦ · 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.

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

Page 25: NEW YORK UNIVERSITY€¦ · 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.

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