Advanced Programming for the Java 2 Platform