This course is designed for
programmers already familiar with the Java language and class libraries. All
instruction and development will be based on the J2SE 1.4.2 (or 1.5.0 Beta),
and the latest practical W3C, and WS-I standards. Rather than solely
focusing the presentation on the various XML features and technologies, the
course illustrates how the use of such XML technologies and applications meshes
with the modern approach at building XML-based comprehensive business
applications. The course provides an in-depth coverage of XML-based
Java-enabled functionality. Students will learn how to specify, and manipulate
XML data from Java programs using existing implementations of the current W3C
specifications for the Domain Object Model (DOM) and Simple API for XML SAX). Through
a set of assignments/projects, students will implement the various components
of a sample XML web-enabled and Java-based enterprise application.
Students will gain practical exposure to the various XML commercial toolsets
being developed by various third-party vendors including BEA, IBM, Microsoft,
Sun, and WebMethods.

COURSE OBJECTIVES

The objectives of the course are as
follows:

1.Expose the students to the XML family of
technologies, and the latest W3C XML and WS-I XML standards.

2.Expand the student’s understanding of the
various applications of XML in the areas of information representation,
Presentation Oriented Publishing, Message Oriented Computing, Application
Configuration, and Web Services Protocols.

3.Expose the students to the combined use of XML
and Java technologies to support the development of modern applications
targeted to the evolving spectrum of distributed and decentralized enterprise
platforms.

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

5.Demonstrate the use of XML to support the modern
approach at building comprehensive business applications using XML Markup
Language technologies, XML information modeling, XML information processing,
XML information rendering, XML information retrieval, XML-Based frameworks, and
XML application implementation and testing methodologies and tools.

7.Expand student’s understanding of the current
industry support for XML technologies including the standard domain- and
industry-specific applications of XML published on the W3C or OASIS Web sites,
core XML technologies used to support enterprise frameworks (e.g., J2EE, .Net,
and CORBA 3), and XML technologies used to support specific architectural
patterns such as Service Oriented Architectures (e.g., Web Services platforms),
P2P platforms, Grid Computing platforms, Brick by Brick computing, etc.

Students enrolling in this class are
expected to have taken G22.1170 (Fundamental algorithms), Programming for the
World Wide Web, and their prerequisites or to have equivalent knowledge.
Students are also expected to have taken a Java intermediate course, and to
have basic knowledge of the Core JFC classes, and the ability to program
in Java.

Assigned readings for the course will be from the
textbook, from various web sites 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.

XML FOR JAVA DEVELOPERS

Session 1: Markup Language Technologies
(Part I)

SESSION
OBJECTIVES

1.Introduce
Markup Language Technologies

2.Understand
course structure and objectives

3.Discuss
Meta-Markup Languages

4.Discuss
Markup Languages

5.Introduce
XML, DTD, and Schema Editors

6.Describe
the class project

SESSION
OUTLINE

·Review course administration and course
structure

·Review course goals and syllabus

·Introduce Meta-Markup Languages

§Standard
Generalized Markup Language

§The
family of XML technologies

·Discuss Markup Languages

§Hypermedia/Time-based
Structuring Language (HyTime)

§HTML

§XML
Presentation Oriented Publishing (POP) Applications

·Survey XML Editors, DTD and Schema
Editors

§Altova’s
XMLSpy Enterprise Edition

§XML
Notepad, XML Pro, XMLwriter, Visual XML, etc.

§Survey XML editors

§Survey DTD and schema editors

·Class project

§The
project will consist of providing custom XML-based services to support the
various aspects of your own selected portable application. The application can
be targeted to end-users (B2C), businesses (B2B), developers (toolkit). As an
example, you could implement and XML-based training studio supporting VoiceXML,
and application-sharing capabilities.

§Sample
applications used in the past fell in the category of “multi-channel online
community platforms”, and included applications such as “community-based
shopping”. In that context, examples of useful XML-based services to support
these platforms may include synchronized multimedia presentation viewing, and
“offline” chat capabilities. A sample specification of the online community
platform for a virtual university eBusiness application that was used in the
past for this course will be provided for illustration purpose.

ASSIGNMENT

·Assignment #1a:

§Explore
the textbooks’ CDs, and the textbook references to XML tools

§Install
and experiment with XML editors. Settle on a tool you feel comfortable using,
and come up with a small application of XML (and possibly an XML application) that
demonstrates the use of that tool. Write a short report that uses your sample
application to document your findings and recommendations with respect to
selection criteria in support of XML editors.

§Review
the class project description, and the virtual university sample eBusiness
application specification

§Come
up with your own variant of an XML-based portable application

§Specify
a set of services that would need to be provided to support your portable
application

§Provide
a written specification of your overall framework (i.e., platform and
services), and propose a staged development approach that would demonstrate the
use of XML to support the modern approach at building comprehensive business
applications suggested in this course. Your proposed approach should include
the use ofXML Markup Language
technologies, XML information modeling, XML information processing, XML
information rendering, XML information retrieval, XML-Based frameworks, and XML
application implementation and testing methodologies and tools

§This
part of the project focuses on the application business model discovery using
XML information modeling technology. The discovery process should adhere to the
following steps: (a) Documenting the information structure, (b) Representing
the information structure in XML form, (c) Defining XML DTDs and/or Schemas

§More
specific project related information, and extra credit assignments will be
provided during the session

§This
part of the project relies on the business model discovery process suggested in
assignment #2a, and should demonstrate the use of UML use cases to support the
development of XML DTDs and/or Schemas

§This
part of the project focuses on the application process model design/development
using XML information processing technology. The design/development process
should adhere to the following steps: (a) Identifying the points of data
integration, (b) Defining the optimal integration approach at each point, (c)
Establishing linking relationships, and (d) Considering data integration and
linking issues when designing an overall application data model

§More
specific project related information, and extra credit assignments will be
provided during the session

§This
part of the project focuses on the application data model design/development
using XML information retrieval technology. The design/development process
should focus initially on identifying the data to be retrieved for resulting
subsets of data

§More
specific project related information, and extra credit assignments will be
provided during the session

§This
part of the project relies on the application data model design/development
process suggested in assignment #5a, and should focus on demonstrating the
following additional steps: (a) Defining the optimal retrieval approach for
each dataset, and (b) Considering query constraints when designing an overall
application data model

§More
specific project related information, and extra credit assignments will be
provided during the session

§The
exam will focus on the discovery/design/development of an XML-Based application
architecture using XML-Based frameworks. A specific architectural pattern will
be considered for the final exam. As it relates to the presentation layer for
XML-based architectures, the discovery/design/development process should adhere
to the following steps: (a) Determining how W3C recommendations will be applied
(e.g., determine when DOM is appropriate, etc.), (b) Using the details and
syntax of core W3C recommendations (XML, XSL, DOM, XPath, namespaces, DTDs, XML
well-formedness, Schemas, etc.), (c) Refining the application presentation
layer architecture design as necessary based on data model, data integration,
data rendering, and data query issues. Particular care should be taken at
determining the implications of a given architecture on the overall XML design
related considerations.

§The
exam will also emphasizes application deployment using XML implementation and
testing technology. In general, application deployment process should adhere to
the following steps: (a) Determining an optimal development environment using
standard tools as appropriate, (b) Determining the best use of APIs to XSL and
XML processors, (c) Assessing performance tradeoffs, (d) Implementing a given
design using XML data modeling, data integration, and data rendering
capabilities and corresponding functional components and interconnections among
functional components, (e) Creating instances to test based on the application
data model and boundary cases, and (f) Addressing exceptions such as parser
errors, and DOM errors.