Friday, February 23, 2007

Sun Tech Days 2007 Plus - A Fabulous event

Sun Tech Days is a world wide developer conference that is organized by the Sun Microsystems as an Annual Event. Myself & Amol spent the day at the conference on 22nd Feb.

We were lucky to be at this event as on February 21st, 2007. An elite panel of speakers were part of the conference. Just to mention some of them,

  1. Mr. Bhaskar Pramanik, India GEM, Sun Microsystems, India.
  2. Mr. B. Ramalinga Raju, Chairman, Satyam Computer Services Ltd.
  3. Mr. Rich Green, Executive Vice President, Software, Sun Microsystems, Inc.
  4. Mrs. Inyoung Cho, from Sun Microsystems, Korea.
  5. Mr. S. Srinivas, from Sun Microsystems, Bangalore.

Each of the speakers, throughout a refreshing day, shared their thoughts, views and perspectives, and above all, the knowledge that had accumulated over these years.

The Agenda

The agenda included various technical discussions, some satellite video casts and various live and recorded demos that were comprised of all the latest topics and news in the Java Market. Very briefly the agenda was as follows:

  1. Java SE 6 Features and Scripting
  2. Java Persistence APIs: Simplifying Persistence
  3. Solaris: Pros and Cons (they hardly mentioned any cons there :-) )
  4. Hibernate Extension: Exclusive SAS production (SAS BI)
  5. Demos and Quiz: AJAX, Net Beans IDE, jMaki for Web 2.0 Development using Java.

I. Java SE 6 Features and Scripting: (Speaker "Mrs. Inyoung Cho")

Enormous improvements are made after first launch of Java 1.0. As expected the new Java 6 had a lot of expectations, which it fulfilled exceedingly well. Various new features added to Java 6 were discussed and analyzed. Some of the points worth mentioning here are,

  • Java 6 has included a new package javax.compiler (can be in compliment used javax.tools) that comes under the JSR 199 “ The Compiler API. This is a set of interfaces that describes the functions provided by a Java Language Compiler, and a service provider framework so vendors can provide implementations of these interfaces. The interfaces abstract the way a compiler interacts with its environment. While the existing command-line versions of compiler receive their inputs from the file systems and deposit their outputs there, reporting errors in a single output stream, the new compiler API will allow a compiler to interact with an abstraction of the file system. The use,

Compiler c = Compiler.newInstance();
c.setOutputDirectory(new File("build/classes"));
c.setSourcePath(new File("src"), new File("gensrc"));
c.setOption("Xlint", "all");
c.run(new File("src/Main.java"))
  • Annotation processor: This provides the developers with an interface AnnotationProcessor.The annotations starts with an @ symbol. The process() method as declared in the AnnotationProcessor has to be overridden to process your request for the annotation. The use -

@ToDo("Check EOF logic!") public int read() throws IOException {
...
}
  • Scripting - JSR 223: Java 6 introduces with it a new package for scripting, "javax.script" for normal scripting and "javax.script.http" for web scripting. The script engine provided underneath can be used to parse and evaluate the script. The use,

import javax.script.*;
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine se = sem.getEngineByExtension(”js”);
se.eval(”print(’Hello, world!’)”);
  • Java 6 also provides
    • a Web Services Client
    • The concept of Thread Pools.
    • The APIs for popup menus and TrayIcons.
    • Smoother text effects with the Antialiasing and SubPixel Tecnologies
    • The new package, java.awt.Desktop
    • Inbuilt Java Database. Actually it is a very lightweight form of the Apachae Derby). It has got very small footprint memory of about 2MB.
    • For the Swing developers, the relative positioning of GUI components.
    • The new layout manager Matisse and the MS Vista LookAndFeel.

II. Java Persistence APIs:

Chiefly this session focused on the new Java Persistence API and the upcoming EJB3.0. It discussed about how the EJB3.0 has evolved, right from the need to the features like Annotations. It emphasized the fact how the life of the EJB developers has been made easy with the invent of EJB3.0, with no longer the need of extra interfaces to be written and much configuration to be done.

III. Solaris OS now entering the Desktop world: (Speaker Mr. S. Srinivas)

Session on Solaris was the most exciting and interactive of all. It was hosted by a dynamic young speaker, Mr. Srinivas. He briefed about the evolution of the Solaris and how it floated from being one of the most successful, secure and efficient Server OS to (recently) entering the Desktop OS world. Solaris team is planning to launch its latest version very soon (within few months as of now). It will be called as Solaris10 and will have a Cuddle License. But immediately after that it is going to get Open Sourced and released with a GNU License and will be called as Open Solaris or Solaris Express. The Open Solaris will have a highly powerful set of features viz.:

  1. Guaranteed Binary Compatibility
  2. Stable Device Driver Interface (DDI)
  3. Stable Application Binary Interface (ABI)
  4. 64 bit / 32 bit Compatibility
  5. Dtrace: A framework for observability
  6. ZFS (128 bit) Zetabyte File System. This is the backbone of the Solaris. They claim this file system to be the best File System developed so far. In fact they emphasized this point by giving a quote about the capacity of ZFS that, It would take as much energy to fill up the ZFS capacity as that for boiling all the ocean water on the earth.
  7. Containers: A container basically is a lightweight virtualization feature kind of similar to the existing OpenVZ/Virtuozzo, Linux-VServer, FreeBSD Jails, and FreeVPS technologies with some added features. It lets the user to have a virtual effect of running an OS within Solaris. Typically it supports the *IX Operating Systems along with the Solaris itself.
  8. SMF: Services Management Facility. In most Unix environments, the startup process consists of a handful of autonomous boot scripts. They act independently of one another; unaware of what scripts have already run or which ones will run after them. When they are invoked, there is no serious error checking and no recourse if the script fails. For Solaris 10, Sun introduced the Service Management Facility. SMF is a framework that handles system boot-up, process management, and self-healing. It addresses the shortcomings of startup scripts and creates an infrastructure to manage daemons after the host has booted.

IV. Hibernate Extension: (Speaker: SAS BI Project Manager)

SAS Communications, a Software Development organization, based in Pune has developed what they call SAS BI. This product is built on top of the hibernate technology. The session basically informed about how the API was used to develop a layer on top of the Hibernate so that it can be used with the non-relational databases as well. In very very crude terms, a new set of API has been developed by the SAS team to address the need ACID ((A Atomicity - a TXN is performed in its entirety or not at all) (C Consistency - a correct TXN takes the db from one consistant state to another) (I Isolation - until they become committed, updates by a TXN are not visible to other TXN) (D Durability - once committed changes must never be lost)) for the non-relational databases.

At one point the discussion also diverted to the Multi-Dialect SQL language. Structured Query Language is a language for relational databases, which serves to define, manipulate, find and fetch data in a database. There are currently two SQL dialects used with InterBase and Firebird:

Dialect 1 = database performance is fully compatible to InterBase 5.6 and earlier (e.g. numeric up to 15 digits). Dialect 3 = all new functions in InterBase 6 and upwards with SQL 92 features are available (e.g. numeric up to 18 digits).

V. Demos and Quiz: AJAX, Net Beans IDE, jMaki for Web 2.0 Development using Java:

This session was sliced up throughout the day. Which held the various power displays and advantages and uses of various technologies such as AJAX, jMaki, Net Beans IDE, etc. The jMaki is a framework provides bootstrap widgets for many components from Dojo, Script.aculo.us, Yahoo UI Widgets, Spry, DHTML Goodies, and Google. jMaki provides a common interfaces to these widget libraries and allows you to use these libraries together in the same page. In short, jMaki framework has been developed as a wrapper on top of various Ajax enabled widgets so as to provide a consistent API to the developers and make their life easier.

Useful Links:

http://community.java.net/jdk
http://dojotoolkit.org
http://www.liguorien.com/jseditor
http://www.opensolaris.org/os/downloads
http://www.json.org/js.html
https://ajax.dev.java.net/jmaki-plugin.html