OpenSolaris was released a few days ago and I took it for a test drive after work. I've been meaning to write about it but work has been keeping me very busy lately. Before I go into details, I'll summarize what Sun is doing with OpenSolaris. They are creating a distribution targeted for desktop use (at least for now) that will have the latest and greatest software, released twice per year. Servers will still use the old Solaris, who's release cycle is 3+ years. The new distribution has a completely rewritten installer and boots into a working desktop off of a Live CD (like Ubuntu). The old package management system has been enhanced or replaced by Image Packaging System (IPS) which is very much like Debian's apt, but is tightly integrated with ZFS features such as snapshots. IPS can also be used to install packages on other OS's such as Windows.
[Read More]First Look At OpenSolaris 2008 05
New Sun Ultra 24 Workstation
A few weeks ago I ordered a Sun Ultra 24 workstation to use as my primary workstation for work. One of the reasons I bought it is because I need to gain experience using Solaris for one of my future ventures. It came with Solaris 10 pre-installed which is great for servers, but is too dated for desktop use. A lot of the software is from 2003-2004 such as NetBeans IDE 5.0, Star Office 7, etc. I downloaded Solaris Express Developer Edition to install but aborted once I found out that a new version will be released next week. Solaris Express is where the development of Solaris 11 happens. Twice a year many of the innovations are backported to Solaris 10 in an update release. Solaris Express has the latest versions of all desktop software which is perfect for me.
In the spring of 2008 Solaris Express will be replaced by the first official OpenSolaris distribution from Sun, code named Indiana. Indiana is to Solaris what Fedora is to Red Hat. It is a frequently updated distribution that will become the next version of Solaris every three years. The new Image Packaging System (IPS) will debut in Indiana replacing the old System V packaging system. The old packaging system doesn't know how to resolve dependencies and doesn't use network based package repositories. I think this was one of the last major hurdles in Solaris adoption.
There are a couple of things that I don't like about the Sun Ultra 24. The keyboard is missing the right Ctrl key which is replaced by a "Compose" key. There are a bunch of UNIXy keys on here, such as a black diamond? I use the right Ctrl key + arrow keys to quickly move around text skipping entire words with each key press. Now I have to use the left Ctrl key which requires re-training my "finger memory". The other slight annoyance is that the hard drive makes noticeable sounds every time it reads or writes. Other than that I really like this computer. I'm sure I'll get a good 6-7 years out of it like my last computer.
I also purchased a Cisco 871 router with built-in VPN client, VPN server and QoS features. Our network admin configured it so that my home network is permanently attached to the IJW network allowing me to work from home once I'm in Toronto. I hope to use the QoS features for prioritizing VoIP packets if IJW replaces our old PBX phone system with an Asterisk based PBX.
Sun Launches 89.4 Ghz UltraSPARC T2 processor
Today Sun unveiled their next generation UltraSPARC T2 processor which was designed for virtualization. This CPU has already broken two world records for single chip CPUs. I watched the web cast after work and am feeling very inspired. At the beginning of the webcast they showed two full sized server cabinets side-by-side representing relatively current high performance servers from Sun. Jonathan Schwartz, CEO of Sun, held a new UltraSPARC T2 processor in his hand and told the audience that this one chip is capable of replacing both cabinets – 64 servers. The T2 is made up of eight cores, each capable of running eight simultaneous threads. That is a total of sixty four simultaneous threads running at 1.4 Ghz each, or 89.4 Ghz total. (The clock speed of SPARC processors is different than x86 processors -- 1.4 Ghz is fast.) Sun says that developers who use the Java platform already have the infrastructure to take advantage of a 64 thread system without having to learn anything new. Solaris 10 and Ubuntu Linux will be the first operating systems capable of running on the T2.
Give Glassfish 2/Sun Application Server 9.1 a try
Some of you may know that I really enjoy working with Sun Application Server 9.1, the commercial version of Glassfish. The commercial version is still free to use, and is the only version you can get paid support for. I spoke with some of the Glassfish team at JavaOne, and also saw some presentations on upcoming features.
First I'd like to get everyone's burning question out of the way: Why should I even consider switching app server products? I asked a Glassfish representative at JavaOne this question. She told me that Sun entered the application server market late, after everyone was already using BEA WebLogic, WebSphere, JBoss, etc... Companies have made large investments purchasing commercial application servers and will not switch to Glassfish just because it's there. Developers who do look at Glassfish today will find that it meets all of their functional, availability, scalability, and performance requirements. These developers may choose to use it for new products. I thought these were very good points. The point of this blog entry is to convince developers to give Glassfish a try.
Our company was using JBoss because it is free. The reason I switched to Glassfish was because of its full featured web based admin console. I did not enjoy editing many XML files to configure JBoss. I used to have to search Google to figure out which XML file I need to modify or create, and which syntax to use. With Glassfish's web based admin console, everything you could possibly configure is accessible through a treeview and tabs. Initially I spent a lot of time exploring and discovering features I didn't know existed. For example, the web services monitoring screen. After I enabled monitoring for a specific web service, I was able to view live usage statistics and the raw SOAP messages. This was very useful when debugging. There are also command line tools that you can use to configure anything and everything from your scripts.
Another great feature in Glassfish is the Grizzly framework. Grizzly is a high performance, highly scalable TCP/UDP/SSL framework built on Java NIO sockets. I've seen charts where it outperforms Apache MINA (Multipurpose Infrastructure for Network Applications) framework, and C based servers. Grizzly also has an implentation of the Comet Bayeux protocol for server push to AJAX applications. It is necessary to implement Bayeux at this layer to have thousands of outstanding responses without consuming a thread for each.
The Glassfish team worked directly with Microsoft to enable interoperability between the Java platform and Windows Communication Foundation (WCF). Beyond basic SOAP messages, it was previously not possibly for Java and .NET web services to interoperate with security, reliability, trust, and other advanced features. The Glassfish team created an implementation called Web Services Interoperability Technologies (WSIT) and have built it into the Glassfish 2 (currently in beta). It is built on top of JAX-WS and JAXB. Not a single API has changed, so your existing web service endpoints and clients don't change. You simply add a configuration file to your project to enable these features. There is a NetBeans plugin that makes configuration extremely simple.
New in Glassfish 2 (currently in beta) is support for clustering, virtual servers, load balancing and high availability. A Glassfish representative showed me a demo of how to easily configure a cluster using the web based admin console. Your application doesn't need to change, and your HTTP sessions are automatically replicated to all nodes. Your load balancer can send a user's first request to node #1, a second request to node #8, and the user will never know. You can use a plugin for Apache httpd for load balancing, or use Sun's Web Server product. If you have a hardware load balancer, you can use that instead.
OpenPortal adds JSR-168 portlet support to Glassfish. One of the developers showed me a very impressive demo at JavaOne. He showed me how users can drag/drop portlets around and have it save the new layout using AJAX. The default theme looks sharp, and there are a number of great features such as Web Services for Remote Portlets, inter portlet communication, JSF portlet integration, "communities", NetBeans and Eclipse plugins, etc... Presently they are working on support for the new JSR-286 portlet standard. I think OpenPortal can be deployed to any application server.
Ericsson announced at JavaOne that they are donating their SIP (Session Initiation Protocol) and SIP Servlets technologies to the Glassfish project. This technology is behind many popular services we enjoy today, like Voice-over-IP (VoIP) phone service, instant messaging, presence and buddy list management and web conferencing. SIP Servlets are going to play an even bigger part in building the next generation of Telecommunications services. They will be working towards achieving JSR-289 compatibility, adding high availability and clustering features and integrating with the existing GlassFish services. The Ericsson promo video at JavaOne showed all kinds of neat things you can do with the technology to integrate your TV, cell phones, computers, and those services from your provider. They showed a boy wanting to watch a movie, the request being sent to Mom's cell phone for approval, Mom accepting the request and the movie starting. They showed text messages appearing on your TV, and all kinds of other neat things. Everyone at JavaOne was very impressed.
Something else I love about Glassfish is that they are comitted to staying on the forefront of Java EE technologies. You don't have to wait 1-3 years for them to implement the latest version of Java EE. Glassfish also has RESTful web services support, and SOA support (JBI and BPEL). There is an active user community who communicates through mailing lists. Glassfish developers have been quick to answer my questions, and quick to resolve bugs other people have found. There are Glassfish plugins for both NetBeans and Eclipse.
If that isn't enough to convince you to try Glassfish on your next project, then let me tell you about version 3! At JavaOne they showed a demo of the application server starting in something like 100ms! In version 3, only the pieces that are needed by the deployed applications are loaded. As you deploy and undeploy applications, different modules within Glassfish are dynamically loaded and unloaded. In the demo they deployed a WAR file and showed dynamic bits loading in about one second. Next they restarted the application server in just over one second! Also in version 3, there will be a way to configure which containers are available. Presently supported are Java web applications, Ruby on Rails using JRuby, Phobos using the phobos runtime, and PHP using the resin quercus engine.
With Java EE applications at IJWS, we use the commercial version of Glassfish (Sun Application Server 9.x) by default so that our clients can use it for free or buy support if they want. Soon we will offer BEA WebLogic as an alternative so that we can be flexible for those clients who are already comitted to BEA.
Temple of the Sun
I just got an email from Sun Microsystems advertising a game they have created for developers to play. It's very Indiana Jones style. You are walking through a temple with and have to collect Sun branded coins, and solve puzzles of source code bugs (figure out how to fix the bug). Those who make it through all 6 levels win prizes, the top prize is $5000. Unfortunately the code riddles are all C++ so I would imagine I won't be able to solve some of them. The intro story was pretty funny. Developers are a forgotten ancient race that developed Sun Studio (a C++ development environment) but knew humanity wasn't ready for it so they kept it secret for millenia. They talk about the power of the sun, etc... there are Sun logos everywhere.
Working from his home office in Toronto,
Ryan de Laplante can be found developing software in
Java by day, and obsessing with technology by night.
Ryan has been designing and writing software for
IJW since 1998 and is very passionate about his work.





