Thursday Dec 03, 2009

links for 2009-12-3: Why JRuby?; NBC and Comcast

Tuesday Dec 01, 2009

Java EE 6 Approved by the JCP

I was pleased to see that JSR-316, better known as Java EE 6, was approved by the JCP Executive Committee today.  You can see the voting results on the JCP web-site.

While I can't say I waited up until midnight to check the voting like Roberto Chinnici, the spec lead for Java EE 6, I was anxiously awaiting the results this morning.  Roberto has a nice write-up on his blog, but suffice it is to say this is a pretty big deal as there are numerous new features and updates in the areas of ease of development, extensibility, and right-sizing including:

  • Servlet 3.0 - Significantly reduces the amount of code/descriptors required
  • JPA 2.0 - Provides flexible modeling capabilities, expanded O/R mapping functionality, and more
  • Web Profile - A subset of the full spec optimized for Web applications

The Web Profile in particular is exciting because it provides a way for vendors to offer smaller footprint, faster starting, and just generally more nimble servers that will allow developers to rapidly build modern Web applications adhering to the Java EE spec allowing them to move up to the full spec whenever needed with virtually no changes.

Stay tuned for more news about Java EE 6 and GlassFish in the next few weeks, but if you are interested in learning more about Java EE 6, take a look at John and Harpreet's recent webinar


Monday Sep 21, 2009

links for 2009-9-22: Top-10 IT moments; Wireless boosters; Apple Lied?; AWS in Europe; Java not dead

Monday Jun 29, 2009

Benchmarking the iPhone, and lots of other devices too

Benchmarking has been around for years, and I started playing around with writing them back in college.  I recall an assembly language class were the assignment was to implement the Sieve of Eratosthenes in as few bytes as possible. I "won" the assignment by doing it in 24 (or was it 25, too many years ago!) bytes, but that got me started on benchmarking as I instrumented the code to time how long it took and then proceeded to run it on all the different machines I could to see which one was the fastest.

Clearly though, having a benchmark written in 8086 assembly language had limited usefulness, so in later years I rewrote it in C and added several other standard algorithms to the stable that were executed including calculating PI, a selection sort, and computing Ackermann's function to test recursive performance. I proceeded to run it on every machine I could from PCs running MS-DOS to workstations running Solaris to PPC machines running LynxOS and AIX. In later years, I ran the same benchmark on UltraSPARC, SGI MIPS, and DEC Alpha machines as well as today's dual-core Intel chips. Somewhere along the line I starting writing more in Java than C and I ported the benchmark to Java to see how it compared, and several years ago I began using BlackBerry's and wrote a Java ME version.

As you can imagine given the wide range of machines I've run it on in the past, having an iPhone was just begging to run it there too. While I have creating a proper iPhone app version on my list of things to do, thankfully a jailbroken iPhone makes it pretty easy to run the C and Java versions I already had. A sampling of results appears below, but the summary for the iPhone is that the native version is about 5 times faster than the Java one and ever so slightly faster than a 75 MHz Pentium 5 of yesteryear.

 Machine Language Math Array Sort Sieve Ackermann Total
Motorola L6 Java ME 0.11 0.19 0.23 0.13 0.19 0.17
BlackBerry Curve (OS 4.5) Java ME 0.95 2.21 2.96 1.72 2.96 1.81
iPhone 3G Java SE 12.4 4.79 4.64 3.28 5.01 4.95
Intel 486DX2-66 (Linux) C 10 10 10 10 10 10
SPARC-20 (Solaris) C 66.4 20.3 17.6 20.1 4.1 12.1
Pentium 5 75 MHz (Linux) C 21.3 19.6 28.6 23.2 33.4 24.2
iPhone 3G C 65.9 21 23.4 19.2 46.7 27.9
DEC Alpha 275 MHz (OSF/1) C 111.4 93.6 63.1 41.2 76.1 68.6
Pentium 600 MHz (Linux) Java SE 191.9 106.1 99.1 68.9 78.2 96.1
Pentium 600 MHz (Linux) C 216.4 319.3 219.8 171.5 131.2 194.1
MacBook Pro 2.33 GHz Java SE 655 1096 794 549 334 587
MacBook Pro 2.33 GHz C 1089 2413 664 800 1356 1037

You may also view the full list that I have maintained over the years.  You'll notice that I did my initial calibration on a 66 MHz 486 DX-2 so that it scores 10 in each of the tests.

Now, I'll be the first to admit that my benchmark is pretty simplistic and thus shouldn't be be the end all be all testing to compare machines or platforms. The results can also be significantly affected by the quality of the C compiler or JVM being used. However, the results can provide a rough comparison and are at least fun to look at.

For example a SPARC-20 has terrible performance with deep recursion. And as noted above the JVM on the iPhone is about 5 times slower than a native app whereas on an x86 box the JVM is about half as fast as native.

While I've run the benchmark on quite a few machines, I'd love to add more to the list.  If you'd like to run it, here is the binaries in a variety of formats:

  • Linux on x86 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
  • OS X on x86 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
  • OS X on ARM/iPhone - Download the binary, use ssh/scp to get it on your jailbroken iPhone, and execute with "./sci <iterations>". The default iterations should be fine.
  • Solaris on x86 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
  • Solaris on SPARC - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
  • AIX on RS/6000 - Download the binary, set the executable flag, and execute with "./sci <iterations>". On most of today's faster machines iterations should be 10,000 to have reasonable results.
  • Java SE - Download the jar and execute it on any machine you have a JVM with "java -jar SCIJ.jar <iterations>". On most of today's faster machines iterations should be at least 5,000.
  • Java ME devices - Point your phone/device browser at the link and it should prompt to install the application. Run the app and if it executes in less than a few seconds change the iterations to a larger number to make it more accurate in calculating the benchmark.

If you do run the benchmark, please post a comment on this blog entry with the chipset, clock-speed, operating system, and results from each of the tests that the program displays. As soon as someone jailbreaks an iPhone 3G S, it would be great to add that result to the list.



Wednesday Jun 10, 2009

links for 2009-6-11: Google goes after Microsoft, No deal for existing iPhone customers, Oracle and Java

Wednesday Sep 19, 2007

Emerson Using Java CAPS

I just came across a story in InformationWeek on Emerson's use of Sun's Java Composite Application Platform Suite (story calls it Sun's SeeBeyond software) to drive efficiency and savings in their supply chain innovation.

One quote I particularly liked was:
  • Hassell estimates that Emerson invested about $500,000 in the hub and has recovered those costs several times over. Putting 10 suppliers in the same shipping container cuts costs by 35%, Hermes say. The company has saved millions in transport costs alone by consolidating shipping. Also, with information such as purchase orders and shipping notices in a common format, Emerson has more visibility into its supply chain, increasing inventory control efficiency by ensuring that materials aren't over- or understocked.
More stories on customer successes with Java CAPS can be found at Have a look!

Monday Jun 18, 2007

Write a review of Java CAPS

Our outbound marketing and web-site team have added a nifty new feature to the Java Composite Application Platform Suite web-site allowing our customers to submit product reviews. If you are a customer, we welcome your feedback!

Sun a leader in Gartner's Backend Integration Magic Quadrant

Gartner released their latest Magic Quadrant for Application Infrastructure for Back-End Application Integration Projects and I was pleased to see that Sun was in the leaders quadrant with our Java Composite Application Platform Suite (Java CAPS) product. This is actually the new version of the Integration Backbone MQ where SeeBeyond had been in the leaders quadrant as well so it was great to see that amidst stiffer competition 2 years later we maintained our position.

I attended Gartner's AADI conference earlier this week and was able to see Jess Thompson give a presentation where he unveiled this MQ.

Please see our On The Record blog for more information.

Thursday May 24, 2007

JDJ Readers' Choice Awards

Java Developers Journal is running their yearly Readers' Choice Awards and I'm pleased to see Open ESB doing well. I encourage folks to go vote, but also to comment here on why you did or didn't vote for Open ESB as the best Java ESB.

But since I brought JDJ up, I should note that we had an article on How to Deliver Composite Applications with Java, WS-BPEL & SOA published in the March 2007 issue. In it we describe how to use NetBeans and GlassFish with the JBI runtime and BPEL Service Engine being developed in Open ESB to build a simple app orchestrating several services into a comp app.

New Flash Presentation on SOA

Our outbound marketing team has just made a new presentation on SOA available on Take a look!

Wednesday May 16, 2007

Mobile Apps and NetBeans

In the little bit of spare time I had last Monday, I attended a session at NetBeans Day at CommunityOne on mobile devices and that renewed my interest in Java ME and caused me to download the latest NetBeans 6 Preview which includes the latest Mobility stuff.

I haven't done much yet but did manage to create a simple app and get it deployed to my wife's Motorola L6 and I have other ideas planned, so stay tuned.

Related, it was interesting to see David Berlind blog about Mobile RIAs and in it mentions the NetBeans versus Eclipse battle and in fact has a poll to vote on the preferred IDE for creating mobile apps. As of my writing this, 70% of the 515 votes were in favor of NetBeans.

Tuesday May 15, 2007

Ubuntu, Java, and Open ESB

I'm a bit late in blogging about this, but I was very pleased to see that Ubuntu's Feisty Fawn (7.04) release includes a full Java stack with it. While I haven't installed it yet to see exactly what is there, it is advertised to include GlassFish and NetBeans which I'm guessing means it includes the Java EE 5 SDK Tools Bundle which is awesome as that means the Open ESB bits are also included!

This means that an even larger number of developers now have easy access to the integration technologies being developed as part of Project Open ESB.

Monday May 14, 2007

JavaOne Press

My boss and I ended up talking with the press quite a bit last week while at JavaOne and am pleased to see that a few things we said must have rang true as it is being written about!

Real World SOA

I just saw a blog about InfoWorld's SOA Executive Forum that had a few highlights from the event.

One was:
Focus on using the best technology, not the technology that's easiest to use. Many out there are playing the "mega stack" game, buying all of their SOA technology from a single source. You may get some of that right, but never all of it. Keep that in mind. Always follow your requirements, never follow the technology hype.
I couldn't agree more. If you look at the history of integration there was a time that the only way to get integration technology was from individual vendors and the customer was forced to integrate their integration products (not so nice).

Vendors then created integrated suites, but as InfoWorld is highlighting, this doesn't work so well as one single vendor can't get it all correct and so there is still a need to use multiple vendors/products and there is still an integration of the integration products involved.

Wouldn't it be great if the core SOA platform you bought had standard "plumbing" so that plugging in components or products from other vendors was seamless and easy? That is exactly what Java Business Integration (JBI) is all about and why we are developing this platform as part of Project Open ESB and will be including it in Java CAPS in the near future.

Another highlight was:
Work a holistic strategy around many projects, not a single huge SOA project. Small wins add up to larger strategic gain for your business.
I again couldn't agree more. This incremental approach to SOA is what I talked about in a recent Net Talk on a Low Risk Approach To A Service-Oriented Architecture (SOA).

Thursday May 10, 2007

Open ESB Preview Released

I have blogged about Open ESB previously and am pleased to see that we announced the release of our latest preview yesterday. This release builds upon what has been released previously continuing the alignment with NetBeans and GlassFish and adds more JBI components to those that are available. And I am very pleased to see that not only are the Sun built components but a number of others from our open-source partners and the community.

Please do take a look, try things out, and provide feedback, or if you are so inclined join the community and contribute!




« June 2016