Friday, July 31, 2009

CEA Feature Pack available for download!

We are happy to announce that the CEA Feature Pack is available for download. The CEA Feature Pack can be downloaded here:

Additionally, the new documentation (aka InfoCenter) is available here:

Finally, here are the support pages:

You can learn more about CEA at its blog, (Link also in the sidebar). If you need a refresher on some of the cool features, here is a YouTube video showing the widgets helping solve problems in the contact center.

Tuesday, July 28, 2009

Quick summary of Summer XML Conference

I attended the Summer XML Conference in Raleigh on Monday and Tuesday. I presented on what is new in XPath 2.0, XSLT 2.0, and XQuery 1.0 and how similar technologies are being used in Java based middleware.

I was a little worried, given the crowd, about how well the "what's new" presentation would go as a) I'm knowledgeable with the new standards, but don't use the standards in very large programs every day (some of the crowd were deeply knowledged XSLT 1.0 users) and b) it was the first time I've given the presentation. I did get two points of good feedback from the attendees, so I guess it better than I had hoped. I'm going to look to post the slides as they were information packed and other conference attendees said they would be useful for other members of their companies.

I, along with two of my team members, attended sessions on XSLT patterns, XML Schema 1.1, Schematron, HTML 5, XForms, SVG/Canvas, Testing XML Documents, and many presentations related to XML based document publishing for books and electronic help. The conference seemed to be 1/3 focused on XML technologies, 1/2 on document publishing with the rest being focused on data/application programming. Hopefully my talk on how these technologies are being used in middleware helps the group keep focus on XML scenarios outside of the document publishing space.

On the document publishing front, I learned even more than I ever imagined about what our documentation teams deal with on a daily basis. I also got great insight to the challenges of companies or parts of companies that deal entirely in products centered about content management and document re-use.

Summary: Great conference. Thanks to Kay and all the other conference presenters and attendees.

Friday, July 24, 2009

Two years of blogging, now tweeting, what is next?

I just realized that I started blogging here on June 24, 2007, two years and one month ago today. I knew blogging would take time away from writing code and doing performance work, but I gave it a shot. Wow, even I'm amazed what it has turned into.

I started using Twitter on May 6th, 2009 and usually do, on average, at least an update a day.

I showed up on Youtube for the first time in February of 2008. I started my own Youtube channel for education on technology I work on three months ago. I was recently interviews on YouTube about performance as it relates to IT operations.

I started using Facebook well before blogging/tweeting, but still keep that social network separated from work. Unless you know me outside of work, don't try to friend me. Nothing personal, but need some part of the internet that is work free.

I started using Linkedin well before blogging/tweeting. I try to connect on Linkedin with as many folks there as possible as I believe above all else, this community represents real users of technology I work on. Feel free to link to me there if you are using IBM technology or if you're interested in XML, SOA and/or performance.

What social network will we all need to support next? I personally hope it's one that unifies all of the above social networks and respects work vs. personal boundaries.

Thursday, July 16, 2009

XForms hooked up to earlier prototype of (-)RX with XML Feature Pack

I talked about in my last post about getting the XML Feature Pack hooked to JAX-RS REST (Wink) and a back end XML data store (DB2 pureXML), but said I hadn't yet connected the REST endpoints to XForms.

Today I crossed that final gap. Didn't end up using Ubiquity XForms for this first try - just used the XForms plug-in for Firefox. What took the longest in this was ensuring that I set the appropriate @Provides in JAX-RS to ensure the APPLICATION_XHTML_XML headers were sent to the browser, so the XForms runtime knew to do its magic.

I had to write alot of system code around the XML Feature Pack to get this to work, but now that that system code is written the amount of configuration needed to get new interesting samples is very small (as compared to doing the same with a bunch of API layers and objects in J2EE and JavaScript). Quite excitingly small.

Time to make a more complicated example.

Thursday, July 9, 2009

Web communications enhancing interactions

One of the common questions as people are learning about our WebSphere Communications Enabled Applications (CEA) function is if we are trying to replace interactions with "real people" when they see features such as the cobrowsing. The real idea behind CEA is using an interactions via the web to enhance real time communications which could be phone calls or instant messaging. There are several scenarios that we try to show in the demo video below, but here are some of the common issues that a web based interaction could solve in a contact center:

- More -

Wednesday, July 8, 2009

The Perfect Storm of XRX - XForms, Rest, XQuery

Funny chain of events.

Almost every customer I have talked to on the XML Feature Pack Beta has also been talking to our DB2 pureXML team about their native XML storage.

I have also talked with the Lotus Forms folks working on Ubiquity XForms.

These were all day job things that I do in my role as a XML Strategist for WebSphere and somewhat related to my main job - architect for the Feature Pack for XML for WAS V7 (currently in beta).

Recently I got onto Twitter and noticed a few tweets related to pulling similar technologies together into something called XRX. I won't go into a deep explanation of XRX but there are great definitions of it on Wikipedia and Orielly and a great class on it from Dan McCreary. In short, it is a model for web programming that is declarative and XML native end to end using XForms on the client, Rest to communicate to the server, and XQuery to work with data.

I happened to have planned a few days of strategic thinking this week and decided to play with this in relation to the XML Feature Pack (which has XQuery 1.0 support).

We have been working on internal samples of how to cleanly leverage DB2 from the XML Feature Pack. Its actually not hard at all to have the XML Feature Pack do middleware processing of data that comes from DB2 pureXML as we provide
XSource/XCollection/XResult resolvers that allow you to do just about anything you want with input and output (like issue a JDBC request to DB2 that returns XML column data in its native XML form). Actually this approach is very advanced as a) DB2 can provide massive storage and indexing of XML data via XQuery itself while returning smaller subsets of data to WAS and b) the XML Feature Pack can join this data to non-database stored data (web services, files) and transform it in ways you wouldn't want to do in the database. So, based on this we have the XQuery part (actually X-* including XQuery and XSLT) of XRX.

Today I hooked the XML Feature Pack into a JAX-RS implementation (Apache Wink). Again this was rather easy as I could define Providers for XQuery objects (well not really objects - just a token to hold the combination of an XQuery expression and a XML input source). I could then issue GET requests against the WAS web container that included parameters that identify the data set to be worked with (think collection in XQuery terms) and the XQuery program (or XSLT if I choose) to work with the data set. So, based on this we have the R part of XRX.

Next I need to work with the Ubiquity code to get the first X of XRX, but given I'm already returning XML datasets, I believe this will be straight forward.

I think this combination of enterprise scalable application server and database along with standard XForms will be quite useful to many scenarios. Also, as a performance geek, I can't help but be excited that this whole chain is not only very capable (with regards to programming model) but declarative end to end. This means, in implementing the runtime, I can make optimizations that aren't possible when this similar thing is programmed in imperative languages like Java using Java API's. This has very interesting multi-core optimization possibilities and is very interesting when combined with cloud like deployment scenarios. Additional benefits are that no XML is harmed by OO (Object Oriented) conversions end to end (think losing data and performance in the mapping), this model should be something non-Java programmers (Business Folks) can work with, and these are all W3C standards.

I'd like to consider a sample of this to share at some point with code. Anyone interested?

Thursday, July 2, 2009

Presenting At Summer XML 2009 Conference - Raleigh, NC - July27/28th

As I'm finishing up my presentations for this conference, I wanted to let you know about it. Please consider attending to hear my session and the other excellent presentations planned. Let me know if you're coming into town and we can meet up at the event.


Session 1: XPath 2.0, XSLT 2.0, and XQuery 1.0 - Basic Introduction with Focus on What's New

Introductory session covering changes to these technologies. Great for newbies and gurus alike.

Session 2: Using the new XML standards of XPath 2.0, XSLT 2.0, and XQuery 1.0 in Java based Middleware

This intermediate session will document some common usage scenarios of the W3C XPath 2.0, XSLT 2.0, and XQuery 1.0 in Java middleware environments. Through the use of scenarios, the session will explain why to use each standard, what common issues are and how to best avoid them. Comparisons will be drawn between using these XML programming models and their object oriented counterparts – Document Object Model (DOM) and Java API for XML Binding (JAXB). The session will then focus on API’s for invoking XML programming models from Java. An analysis of the Java API for XML Processing (JAXP) will show how this API is lacking when providing for XPath 2.0, XSLT 2.0, and XQuery 1.0. Alternative Java API’s beyond JAXP will be discussed and advantages of each will be discussed. Finally, enterprise usage in Java based middleware will be considered focusing on performance, reliability, and full standards compliance.

XML Feature Pack (XPath 2.0/XSLT 2.0/XQuery 1.0) Beta Links

I have been discussing the WAS V7 Feature Pack for XML Beta (XML Feature Pack for short) with enough folks lately to realize that a single link that listed all the links that can help you start would be useful. So here goes. Go ahead and bookmark this link as I'll be updating it as the Beta moves along.

- General Availability Release Data Announcement - Nov 20th.

- Open Beta Website
-- Download code
-- Online documentation - Online Javadoc
-- Download documentation
-- Forum for discussion

- The WebSphere Community Blog (where I frequently post updates)
-- Beta 1 Blog Announcement
-- Beta 2 Blog Announcement
-- Beta 3 Blog Announcement
-- Beta 4 Blog Announcement
-- Release Date Annoucement

- Demo #1 (Introduction to the XML Feature Pack)
-- Part 1 (Standard/HD)
-- Part 2 (Standard/HD)

- Demo #2 (An end to end XPath 2.0 Application)
-- Part 1 (Standard/HD)
-- Part 2 (Standard/HD)

-Demo #3 (An end to end XSLT 2.0 Application)
-- Part 1 (Standard/HD)
-- Part 2 (Standard/HD)

- Demo #4 (Beta 2 Refresh valuable features)
-- Part 1 (Standard/HD)
-- Part 2 (Standard/HD)

- Demo #5 (An end to end XQuery 1.0 Application)
-- Part 1 (Standard/HD)
-- Part 2 (Standard/HD)

- Demo #6 (Beta 3 Highlights)
-- Part 1 (Standard/HD)

- Demo #7 (Thin Client for XML - Beta 4)
-- Part 1 (Standard/HD)

- W3C Specifications
-- XPath 2.0
-- XSLT 2.0
-- XQuery 1.0

- Great books on the standards
-- XSLT 2.0 and XPath 2.0 Programmer's Reference (Programmer to Programmer)
-- XQuery

- Coverage of XML Feature Pack by news sites
-- Coverage of XPath 2.0, XSLT 2.0, and XQuery 1.0 (Beta 1)
-- Coverage of thin client (Beta 4)

Last updated: 2009-11-11

Wednesday, July 1, 2009

SCA 1.0.1 Beta Refresh Available

Service Component Architecture has 2 primary mechanisms for vendors to extend the basic assembly model: access ways to and from services (bindings) and adding new implementation kinds that can be assembled and composed using SCDL (implementations).

For this update of the beta code, available here, we've been able to augment our original beta drop with additional support in both directions:

  • Web 2.0 bindings for JSON-RPC and ATOM services.
  • Additional support for JMS over WebSphere MQ.
  • OSOA support for implementation.jee.
  • UI components which support html/javascript implementations where SCA is used to wire together browser interactions with services available over JSON-RPC and ATOM. This support uses DOJO subroutines to accomplish the JavaScript wiring.
  • We have begun our work on implementation.spring to encapsulate, expose and compose your Spring applications as services in your enterprise's SOA. I'll note for the record we are not shipping the Spring framework with WebSphere and you'll have to get the Spring Framework (2.5.5) from SpringSource.
But Wait! There's more... Thrown into the mix of new capabilities we've added support for:
  • using SCA annotations in JEE components so you can leverage SCA directly in your JEE applications.
  • using SDO 2.1.1 which derives its implementation from our new XML core provided by the XML Feature Pack for WAS V7.
That's quite a lot of new support to chew on, and the team worked hard to remove many of the restrictions that were part of the first beta of 1.0.1 and even delivered a virtual machine image of the beta if installing software isn't your bag.

Finally, the early programs site which supports our beta has a lot of collateral like white papers and demos as well as a forum to answer your questions.

I can't think of how to make a beta much easier to get feedback than we've tried to make this delivery -- if there's still an inhibitor that you're experiencing that we could do different and make your life easier, my team is all ears.

We look forward to your feedback and your participation.