layout top

Java EE and Enterprise Software Design: Hands-On


Course fee £840, Course dates Mon-Fri 2009

You Will Learn How To

  • Architect, develop, deploy and secure enterprise applications with Java EE 5
  • Utilise the JavaServer Faces (JSF) event-driven architecture to build rich user interfaces
  • Effectively build business logic using Enterprise JavaBeans (EJB) 3
  • Build data-driven Web applications with server-side Java technologies
  • Integrate the Java Message Service (JMS) into applications with Message Driven Beans (MDB)

Course Benefits

Java Enterprise Edition 5 offers a revolutionary, simplified approach to enterprise application development. In this course, you gain in-depth knowledge of the major components of this technology: JSF, EJB 3 and JPA. Through intensive hands-on exercises, you learn to implement high-performing, scalable and secure transactional applications.

Who Should Attend

Those involved in developing enterprise applications with Java. Knowledge of Java at the level of Java Programming Introduction is assumed. Knowledge of Web technologies and HTML is helpful.

Hands-on Training

Throughout this course, extensive hands-on exercises based on an evolving case study provide you with practical experience in developing applications with Java EE 5. Exercises include:

  • Building rich Web-based interfaces using JSF components
  • Creating scalable objects using Session Beans
  • Storing and retrieving data objects with JPA
  • Extracting persistent data using JPQL
  • Building asynchronous message receivers with MDB
  • Managing complex transaction and security requirements with annotations

Course Content

Java EE and Enterprise Software Design
  • Enterprise system design
    • Comparing OO and Java EE patterns
    • The benefits of design patterns in Java EE

  • Distributed systems development
    • Exploiting remote method invocation
    • Design patterns in distributed systems


Business Tier Patterns
  • Eliminating inter-tier dependencies
    • Illuminating problems associated with poorly designed tiered architectures
    • Realising an application's domain model
    • Business Object
    • Application Service

  • Implementing the business tier
    • Patterns for locating objects
    • Singleton
    • Factory
    • Inversion of Control

  • Simplifying object interaction
    • Interfacing with adjacent application tiers
    • Selecting scalable middle-tier technologies
    • Reducing the impact of known performance bottlenecks
    • Business Delegate
    • Service Locator
    • Session Facade


Building the Integration Tier
  • Abstracting the data layer
    • Implementing effective Data Access Objects (DAO)
    • Highlighting difficulties associated with Object/Relational Mapping
    • Representing highly relational data using Hibernate and JPA
    • Refactoring the integration tier using an Abstract DAO Factory

  • Optimising database queries
    • Fast Track Access
    • Value List Handler

  • Managing transactions effectively
    • Handling long-running transactions
    • Comparing optimistic and pessimistic transaction strategies
    • Effecting complex concurrency management with a Transaction Context


Structuring the Web Presentation Tier
  • Separating control and presentation logic
    • The role of JSPs and servlets
    • Constructing Model View Control (MVC) architectures
    • Front Controller
    • Dispatcher View
    • Service to Worker

  • Applying Web framework support
    • Investigating the Struts MVC architecture
    • Planning and implementing complex workflows
    • Handling duplicate form submission with the Synchroniser Token pattern
    • Investigate component-based frameworks such as JSF

  • Localising disparate logic
    • Improving maintainability of algorithms
    • Intercepting Filter
    • View Helper
    • Composite View
    • Reusing page layout with Tiles
    • Writing modular JSPs


Lightweight Architectures
  • Reducing coupling in applications
    • Inversion of Control (IoC) design pattern
    • Configuring the Spring IoC container

  • Promoting code reuse
    • Aspect-Oriented Programming
    • Executing component reuse with Spring
    • Sending e-mail using Spring
    • Utilising Spring data access templates


Performance and Scalability
  • Designing for performance
    • Distributed components and performance
    • Measuring runtime performance
    • Optimising Java EE applications
    • Caching
    • Connection Pooling

  • Planning for scalability
    • Evaluating design trade-offs in distributed architectures
    • Clustering applications across servers
    • Managing session state effectively


And much, much, more! So if you want to supercharge your Java skills, then call 08450956933 or email us, and we’ll be in touch in very soon.