Advanced Java Programming (JA3660GB) - 4 Days
 

Description
Move beyond the basics of developing a Java application into the following areas: Java and distributed objects, Java security, integrating Java with databases and messaging systems, performance, and testing.

Note: This course is being updated to include more exciting topics for Java programmers. It will also start to make use of Rational Application Developer V6 as the Interactive Development Environment beginning with all classes starting November 1, 2005. The course title at that point will change to Continuing Studies in Java Development .

This course does not cover servlets, JavaServer Pages (JSP), or Enterprise JavaBeans (EJB).

Audience
This is an advanced course for experienced Java developers, who want to obtain more advanced server-side developer skills.

Prerequisites
Previous basic Java experience equivalent to course "Introduction to Java using IBM Rational Application Developer v6 (JA3560GB)"

Objectives
On completion you will be able to:

  • Define services and Application Programming Interfaces (API) used for developing distributed Java applications.
  • Describe design patterns used to create reusable Java classes for server-side programming
  • Develop and design classes to utilize Java integration to databases
  • Describe the Java 2 platform security model
  • Examine the many alternatives in the ways that exceptions can be used and subclassed for particular applications
  • Set locale using the Locale class
  • Describe some considerations in server application construction
  • Describe Java 2 Platform, Standard Edition (J2SE), J2EE, and Java 2 Platform, Micro Edition (J2ME)

    Contents
    Java editions

    introduce the three Java 2 Platform editions
    compare and contrast features of J2SE, J2EE and J2ME
    describe the resulting technologies of each edition
    Coding best practices

    describe coding conventions
    discuss rebinding parameters in Java
    describe Java Big 4
    discuss immutable and thread safe objects
    describe the proper use of constructors and conditional code blocks
    Examining networking with sockets

    define and use protocols
    define and use sockets
    define and use Uniform Resource Locators (URL)
    Serialization

    describe serialization
    describe externalization
    compare and contrast serialization and xxternalization
    describe the process of versioning a class
    Design patterns (part 1)

    describe the purpose of using a design pattern in application development
    compare and contrast design patterns and an application framework
    Distributed objects (part 1)

    describe Remote Method Invocation (RMI)
    discuss the responsibilities of the RMIClassLoader
    describe of dynamic code loading
    explain garbage collection in RMI
    describe the role of the rmiregistry
    describe the different RMI configuration models
    describe the process to customize a distributed RMI application to use dynamic class loading
    Design patterns (part 2)

    describe and compare the Factory, Singleton, State, Bridge and Flyweight design patterns
    Distributed objects (part 2)

    describe the role that Java Interface Definition Language (IDL) plays in Java application development
    explain the major IDL components and their function
    understand the relationship between Java IDL and the Common Object Request Broker Architecture (CORBA)
    describe an Object Request Broker (ORB)
    describe the Internet Inter-ORB Protocol (IIOP)
    describe RMI-IIOP
    compare and contrast Java IDL, RMI, and RMI-IIOP
    Java Naming and Directory Interface (JNDI)

    describe directory and naming services
    explain the usefulness of the Lightweight Directory Access Protocol (LDAP)
    describe the use of JNDI to provide an interface to different directory service vendors
    Exception handling

    describe and understand exception handling concerns
    Java for databases

    write basic JDBC Java code to query an SQL database
    explain the functions of Driver, Connection, Statement, and ResultSet
    explain the use of connection pooling and datasources
    describe SQL for Java (SQLJ) technology
    Java for messaging systems

    define basic messaging concepts
    describe the parts of a message from a Java perspective
    describe Java Message Service (JMS) support
    describe JavaMail support
    introduce the JavaMail API
    describe the JavaBeans Activation Framework
    Java resource loading

    describe resources
    explain class loader responsibilities
    describe the java.lang.Class class
    explain the loading of resources in Java
    define the term Java Archive (JAR) and its use
    Internationalization

    define and compare globalization, internationalization and localization
    define and use Java Locale class
    isolate Locale-specific information using resource bundles
    format and parse dates, times, numbers and messages
    Security

    describe the Java Security Model
    describe general security concepts
    describe Java-related security
    understand keys and certificates
    explain Java security policies and their creation
    Server application construction

    discuss how caching helps with server performance scalability
    discuss some considerations in building a cache in the server
    describe how using a Visitor design pattern helps with server function scalability
    use the Visitor design pattern to increase server malleability
    JUnit testing

    define JUnit
    list the advantages that incremental testing provides
    Performance

    code a Java program to take advantage of better performing code
    describe the optimization process
    explain how a Just in Time (JIT) compiler works
    explain how Java HotSpot performance engine works

    Remarks
    The lab exercises in this course use WebSphere Studio Application Developer.

    Price £1845

    Schedule