Related Posts so far:
JavaOne Day 3 Summary
=== General Sessions ===
- Microsoft in a general session!
Corporate VP Dan'l Lewin started with the 5 year partnership with Sun and mentioned Microsoft's dedication to the interoperability topic between Java and .NET. As of a survey they did last year, 73% out of 5 million interviewed developers work in a mixed environment.
At JavaOne 2006 Sun announced new workforces together with Microsoft to work on the interoperatbility topic. The demoed Apache Stonehenge is certainly an outcome of it, a prove also that Sun joined the project which serves as set of sample applications to demonstrate seamless interoperability across multiple underlying platform technologies (like Java and .NET). Key message here was that given the matured WS-* standards, interoperability was "possible" but the last mile on "how to correctly configure the products/framworks on each side" was still very hard to do. Now with Stonehenge the last mile gap is closed. The demo was presented by Greg Leake, a Senior Director at Microsoft, and Harold Carr, Sun's Lead Architect for the Metro Web Service Stack.
Further resources: www.interoperabilitybridges.com
- IBM: Extreme Transaction Processing and Elasticity
Craig Hayman, IBM's vice president of WebSphere software, focused on the importance on open source and open standards development with Java. To demonstrate some of the work that IBM has been doing with open source to innovate in the middle tier, Hayman called to the stage Ted Ellison, vice president of the Apache Software Foundation and an IBM senior technical staff member, to give a demonstration of the Apache Harmony project. More details on the session see here.
One particular slide in the presentation I found cool in particular: it showed again the evolution of architectures and their focus points:
Mainframe based Architectures ->
-> Client/Server Architectures ->
-> Focus on Mobility Architectures ->
-> Cloud Architectures... what comes next? Unfortunately, I was not quick enough to take a photo of the slide... This one is good too:
- Enterprise Integration Patterns in Practice
by Andreas Egloff (Lead Architect GlassFish Fuji) and Bruce Snyder (Apache Camel)
Besides the introduction of some integration patterns (like "Content Based Routing", "Pipeline Routing", "Spitter" and "Aggregator"), both presenters summarized two open source products that address this topic:
- Fuji: The core of OpenESB v3, originating from Java CAPS, currently still beta (M6)
- Apache Camel
In the Pavilion I talked to Andreas Egloff asking about clusterability: this will come next year with GlassFish AS v3.1 which by then will support clusters and Fuji will be built on top of that. Transaction Support: Fuji's focus is Ease of Development combined with strong focus on Enterprise implementations, so distributed transactions are fully supported as of the first release by end of this year.
- Dealing with Asynchronicity in Java Web Services
by Gerard Davison and Manoj Kumar (both Oracle)
- nothing new, it was pure JAX-WS based async stuff
- Bean Validation: Declare Once, Use Anywhere
by Emmanuel Bernard
Actually a very good presentation, Validation Cascadation, Groups (Subset of constraints), Partial Validation, Custom constraints, Metadata API!... Bean Validation is available across layers (JSF, EJBs, JPA): JSF2 requires zero config, JPA2: validate on entity change. In general, Bean Validators can be injected as Resources in Java EE 6.
- eBay: Best Practices for Large-Scale Web Sites
by Randy Shoup (Lead Architect of eBay)
I expected a special large scale Java EE architecture but it was the contradiction of it:
- no JDBC client transactions, no distributed transactions (2PC, XA)
- no DB constraints in the DB schema
- no HTTP session states (the state is kept in a combination of cookie/URL-params/DB)
- no EJBs
- everything is asynchronously processed
I was surprised about the architecture very much, somehow I could not believe it but due to the success of eBay, it is obviously like that...
No DB Constraints: The user profiles are kept in a DB RAC, the auction items are kept in another DB RAC. The 1:many relation between user and item was not based on constraints but was solved by treating it in a bottom-up approach...
The best practices in a nut shell were:
- Partition Everything (e.g. User Profile DB RAC, Item DB RAC, split data by load and usage pattern
- Async Everywhere: Synchronous designs must address peak load whereas asnyc designs can flatten out peak loads and compensate at time of low loads
- Automate Everything: Based on feedback loops the systems adapt their configuration automatically (sizing). This is achieved by defining SLA between consumer and producer components. If the consumer tends to violate an SLA, it starts to scale itself horizontally.
- Everything can fail: all systems must be tolerant of failure
- Embrace Inconsistency: He introduced the CAP theorem: Consistency, Availability, Partitioning. As of the theorem you can have only two of them. eBay selected availability (7x24) and partitioning according to its priorities. Consistency is seen as a spectrum and is therefore not comparable to "normal Java EE" designs.
- 1.6 millions of transactions per second worldwide
- 88.3 millions of user profiles
- 160 millions of items
- 2 Tera Bytes of logfiles per day
- 2 billion page views per day (ebay.com)
- Drizzle: A New Database for the Cloud
- SpringSource Tool Suite (STS) is now for free!
- Enterprise Web 2.0 Architectures
by Brazilian Consultancy Company Globalcode
Goal of the session was to show how they compared different web application stacks and which stack suits best for which customer environment. Stacks considered were:
1.) Pure Web: JSF 1.2, Facelets 1.1.x
2.) Web + JMS + EJB: Compared to Pure Web: Business Logic in EJBs, not in JSF managed beans anymore
3.) Spring: Pure Web + Spring components, Spring AOP and Spring Security
4.) Seam: Pure Web + JSF/Ajax + Seam components and JBoss Rules
5.) Seam + Spring: As of some customer they have in Brazil, a migration from large-scale Spring based applications was required to a Seam based model. In this very special case, they found out that both worlds can live together at the same time in the same application. They also found out that injecting a Seam component into the Spring container was possible and vice versa.
It is definitly worth going through these slides and see the last table (criterias vs stacks): red cells indicate high risk, orange a potential risk.
A big surprise was the public availability of a web based CRUD generator where you can enter the data model, select the stack and export a sample application as ZIP file containing the IDE project... Really nice!
Check it out here: supercrud.com
- JavaFX and the Nintendo Wiimote
Take a Wii Remote Controller, mount it near the image source (TV, Beamer) and mount the infrared sensors (that are normally mounted near the image source) on your moving objects, in this BOF a normal glove. Write some JavaFX and off you go with a virtual paint panel wherever the beamer is projecting to :-)
painting on the wall by using fancy JavaFX gadgets...
Back in 1999, I was in San Francisco in the very same hall at the ISSCC (International Solid State Circuit Conference) presenting the diploma thesis from ETH Zurich. In the very same hall, the official JavaOne After Dark Bash party took place... impressive!! Very loud live rock band performing on a huge stage accompanied by a food buffet and various drink bars.
While Dani was still at some JavaFX labs exercise, I spent some 45 minutes there and enjoyed the short break :-) After that, I went back to the last BOF (while Dani enjoyed the last hour of the bashing party :-)...
=== Bookstore ===
As usual, the book store always attracts each day again... this time:
- JSF 2 and JBoss Seam / WebBeans
Cu tomorrow, last day!