Building advanced system architectures using J2EE Course

Target audience

This course is aimed at experienced Java developers who wish to learn how to use the Java 2 Enterprise Edition to build complex distributed component based system architectures.

Objectives

  • To explain the key components of a J2EE system and understand how they interact.
  • To understand the relationship between the bought in J2EE container and the software that is written specifically for a given system.
  • To describe all the possible components of a J2EE system, and to understand their interaction.
  • To list the main suppliers of J2EE software and their strengths and weaknesses.

Data

  • Duration: 3 days
  • Class size: 6-12 (2 presenters)

Outline

Day 1

  • Introduction to enterprise software architecture.
  • J2EE origins and objectives
  • J2EE containers and their provided services
  • Development of a simple example system that demonstrates the basic structure of a J2EE system using session beans, entity beans and the Java Naming and Directory Interface.

Day 2

Extensions to the basic J2EE architecture including:

  • The Java Message Service
  • Message driven beans
  • Servlets and Java Server Pages
  • Bean persistence, both container managed and bean managed.
  • J2EE deployment as Web applications

Day 3

Large scale architectural issues in J2EE systems including:

  • Security
  • Performance
  • Scaleability
  • Distributed transactions
  • The role of Web Services
  • Available J2EE products and their roles

Description

Many large projects are currently being built using an Application Server architecture based on J2EE or .NET. Whilst using such an architecture means that much of the required infrastructure is available off-the-shelf and doesn’t need to be built from scratch, there are new issues and pitfalls. This course is targetted at developers embarking on a project based on the J2EE architecture and using one of the mainstream application servers such as BEA WebLogicServer, IBM WebSphere or JBoss.

The course gives a background into the architecture’s origins and objectives and explains where and how the various concepts are best used. The course includes discussion and explanation of Enterprise Java Beans (EJBs) and how to use the main categories of Session Beans, Entity Beans and Message-driven beans; the different approaches to persistence (CMP versus BMP); performance issues with particular attention being paid to scalability; the use of the Java Message Service (JMS); development of Web applications; accessing J2EE systesms using Web Services; controlling J2EE systems using the Java Management Extensions (JMX); and the J2EE security model.

The course is built around constructing an example J2EE system using the JBoss application server. A number of exercises are progressively targetted at investigating the various aspects of J2EE systems using this example. The differences between JBoss and the major commercial application servers, such as WebSphere and WebLogic Server, are discussed at each point.

This is a hands-on course with the attendees working in pairs, as advocated by the principles of Extreme Programming (XP).