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: http://www.ibm.com/software/webservers/appserv/was/featurepacks/cea/.

Additionally, the new documentation (aka InfoCenter) is available here: http://www-01.ibm.com/software/webservers/appserv/was/library/v70/fp-cv/index.html.

Finally, here are the support pages: http://www-01.ibm.com/support/docview.wss?rs=180&uid=swg27016107.

You can learn more about CEA at its blog, http://ibmcea.blogspot.com/ (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.

Link: http://www.aboveandbeyondlearning.com/xmlconference.html

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:

Bindings:
  • Web 2.0 bindings for JSON-RPC and ATOM services.
  • Additional support for JMS over WebSphere MQ.
Implementations:
  • 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.

Friday, June 19, 2009

WebSphere Application Server for Developers - Now downloadable, No charge

Want to try out WebSphere Application Server V7.0 for development? Check!
Want to do it without having to order a CD? Check!
Want to do it without having to work with purchasing? Check!
Want to do it by yourself as a developer? Double Check!

I talk to many developers who want to install WebSphere Application Server for development, but every license is tracked and installed by their operations team on some remote server. Working with the operations team and (gasp) purchasing would take more time than the time to write the application they wanted to write. So they go off and download some other runtime and later port the application back to WebSphere Application Server or abandon the project altogether.

This won't be the story after today. Go here to download a no-charge copy of WebSphere Application Server for your development needs.

From the download page:

Download WebSphere Application Server for Developers, a no-charge offering that satisfies the need for a no-cost WebSphere Application Server development runtime for projects that don't warrant the expense of a priced and supported runtime on the developer desktop. Reduce testing effort and develop with confidence using a runtime environment that is identical to the production runtime environment your applications will eventually run on.


Enjoy!

Tuesday, June 16, 2009

WAS XML Feature Pack Demo #4 - More XSLT 2.0 Features and Compilation

I released the first demo two months ago introducing the XML Feature Pack:

Demo 1 (Part 1, Part 2).

Two days ago I released the second demo showing how to use XPath 2.0 in an end to end J2EE application:

Demo 2 (Part 1, Part 2).

Yesterday I released the third demo showing how to use XSLT 2.0 in an end to end J2EE application:

Demo 3 (Part 1, Part 2).

Today, I'll wrap up the demos with demo 4 which talks to about XSLT 2.0 schema awareness, validation and various other XSLT 2.0 features we've added to round out the XSLT 2.0 standard support. Finally, I show a demonstration of how to use the pre-compilation support added in the Beta refresh.

Demo 4 - XSLT 2.0 Features (Part 1)


Direct Link (HD Version)


Demo 4 - XSLT 2.0 Features (Part 2)


Direct Link (HD Version)

WAS XML Feature Pack Demo #3 - End to End XSLT

I released the first demo two months ago introducing the XML Feature Pack:

Demo 1 (Part 1, Part 2).

Yesterday I released the second demo showing how to use XPath 2.0 in an end to end J2EE application:

Demo 2 (Part 1, Part 2).

In this third demo, I expand upon this same basic application to show how to use XSLT 2.0 in an end-to-end J2EE application. In the demo, I show some of the new valuable features of XSLT 2.0. I show how to bridge the gap between Java and XML processing by showing binding of Java data to the XSLT stylesheets and calling user defined Java extension functions as part of the XSLT processing. As compared to the XPath 2.0 example where data was stored in JavaBeans then JSP formatted to the user, this sample directly transforms data from XML to XHTML user presentation. Also, I show how some of the Java logic used in the XPath 2.0 example can be recoded in simpler XSLT 2.0 temporary trees and stylesheet functions.

Demo 3 - End to End XSLT 2.0 (Part 1)


Direct Link (HD Version)


Demo 3 - End to End XSLT 2.0 (Part 2)


Direct Link (HD Version)

Monday, June 15, 2009

WAS XML Feature Pack Demo #2

As announced last week, I have created three new demos for the WAS XML Feature Pack.

I released the first demo two months ago introducing the XML Feature Pack:

Demo 1(Part 1, Part 2). Remember to click, view in HD.

In the second demo, I expand upon this same basic application to show how to use XPath 2.0 in and end-to-end J2EE application. In the demo, I show some of the new valuable features of XPath 2.0. Also, I show how to bridge the gap between Java and XML processing by showing binding of Java data to the XPath queries and calling user defined Java extension functions as part of the XPath processing. Finally, I show how to gather data from the returned XPath sequence cursors and how to integrate that data with Java beans.

Demo 2 - End to End XPath 2.0 (Part 1)


Direct Link (HD Version)


Demo 2 - End to End XPath 2.0 (Part 2)


Direct Link (HD Version)

Wednesday, June 10, 2009

WAS V7 XML Feature Pack Beta Refreshed (With focus on XSLT 2.0)

Today we have released an updated XML Feature Pack Beta. The beta is available here.

Since the first release two months ago (which had full XPath 2.0 and partial XSLT 2.0/XQuery 1.0), we have added quite a bit to XSLT 2.0 (making us nearly spec complete) and more to XQuery 1.0.

Among the biggest features added in the XSLT 2.0 area is XML Schema awareness. This includes validation which allows you to validate (make sure it contains data that is allowed per the schema) the incoming data to transformations, temporary trees of data, and output data from transformations. Also, as is important when working with vertical industry standard schemas, our schema awareness support includes schema assessment. This means that your XSLT stylesheets know when an attribute or element content is an integer or date and you can treat it as such. Taking this to the next level, if you extend your industry standard schema type of a bill of materials, you can write templates that match that type (schema-element(*, tns:BillOfMaterialsType)). In the past you would have had to made templates that were of the industry standard element names as well as all extending element names (tns:BillOfMaterialsName, mycompany:FullfillmentBillOfMaterialsName, mycompany:PurchasingBillOfMaterialsName, etc.).

Other new XSLT 2.0 features in this refresh are collections support (allows multiple input data sources in a well defined way), "undeclare-prefixes" serialization parameter(simplifies namespace in XML 1.1), next-match (allows you to call overridden templates) element, required parameters and "as" attributes (helps guarantee stylesheet elements are called correctly) and full support of XSLT keys.

Another major feature of this refresh is ability to pre-compile XML artifacts. This refresh contains tools that compile XPath, XSLT, and XQuery to java classes. These classes are basically the same logic that previously was interpreted by the XML runtime. However, with them now being compiled, they run much faster than interpreted. The refresh offers three modes:


  • interpreted - best when the XML artifacts are created ad hoc at runtime and not reused

  • compiled - best when the XML artifacts are created ad hoc at runtime but reused

  • pre-compiled - best when the XML artifacts are known at compile time of your application



We have also expanded our XQuery 1.0 support in this refresh.

Please let me know if any of these new features help you in your applications. I'm excited to hear of all the applications that are being tested against this functionality.

Finally, I have created another three demos to be posted on YouTube. Over the couple of days, I'll post them with links here. Hopefully they will help you understand how to use this functionality in your own applications.

Friday, May 1, 2009

Communications Enabled Applications

The IBM WebSphere Application Server V7.0 Feature Pack for Communications Enabled Applications Open Beta has begun. That means we can finally start talking about the many exciting features in the beta.

We have a blog which will help define what these Communications Enabled Applications are, talk more about those features, and show some cool homemade videos showing the use of some of the Web 2.0 widgets and capabilities included here. Click to check out that blog and learn more.

Thursday, April 30, 2009

Come talk to me at Impact 2009 next week

I'll be presenting three topics at Impact 2009 next week. For those that don't know, Impact is the premier WebSphere conference - focusing this year on our Smart SOA approach.

I'll be continuing to contribute to a session we've been doing for two years now on SOA performance that includes leads across the WebSphere portfolio in SOA performance. I'll be co-presenting a session with Information Management XML expert Susan Malaika, looking at end to end strategies around XML in the enterprise (including both database and middleware focus). Finally, I'll be covering the XML Feature Pack Beta talking about the value of XPath 2.0, XSLT 2.0, and XQuery 1.0 and how the Beta provides these functions to WebSphere Application Server environments focusing on the new runtime and new API.

Here are the abstracts. If you plan on being at Impact, please sign up for the following sessions and feel free to stop by after a session to talk about performance, SOA or XML. If you aren't going to be at Impact, I'll see what I can do to post the charts/audio recordings (if possible).

1825 - SOA and BPM Performance Update


One of the cornerstones of obtaining good solution performance in an SOA environment is to use technology which is robust, efficient and scalable. The IBM WebSphere® portfolio provides this through its key SOA offerings - IBM WebSphere Application Server, IBM WebSphere Business Monitor, IBM WebSphere Business Service Fabric, IBM WebSphere IBM DataPower® Appliances, IBM WebSphere Enterprise Service Bus, IBM WebSphere Integration Developer, IBM WebSphere MQ, IBM WebSphere Message Broker, IBM WebSphere Process Server and IBM WebSphere Services Registry and Repository. Collectively these offerings provide a very rich set of functions covering basic Web services, integration, messaging, choreography, business activity monitoring and situation detection, dynamic endpoint selection and governance. Come and join the performance architects of these products as they describe both historical and recent product performance improvements.

1668 - XML in the Enterprise : Defining an XML Strategy


Increasingly, XML plays a critical part in SOA, Web-oriented architecture, mashups and cloud computing. Systems and application architects and designers need a clear vision of the role that XML plays in their system, in order to define an XML strategy for their institution or organization. This session provides an overview of some IBM products and technologies in various IBM portfolios, including WebSphere®, Information Management® and Lotus®, with an XML focus. It goes over frequently asked questions about XML in various areas, including namespaces, versioning, storing, validating, transforming, updating and usage patterns, in order to provide guidance for creating an enterprise-wide XML strategy and to help with managing XML across organizations. The role of industry consortia-defined XML messages will also be covered.

1784 - Building XML Oriented Applications with IBM WebSphere® Application Server V7


XML structured data has become the predominant data format for data interchange. XML data is navigated, queried or transformed in almost every existing the IBM WebSphere® application. Learn how to improve these applications with the IBM WebSphere Application Server Feature Pack for XML Beta. Learn specific ease of use, reliability, and performance benefits obtained by using the new XPath 2.0 and XSLT 2.0 Worldwide Web Consortium standards. You will also learn new scenarios only possible with functional enhancements in XPath 2.0 and XSLT 2.0 standards, as well as the new XQuery 1.0 standard. You will learn how to incorporate these capabilities into your new and existing applications along with how to avoid common pitfalls. The session concludes with an overview of how this feature pack is enabled within existing IBM WebSphere Application Server environments.

Cya in Sin City.

Friday, April 17, 2009

WAS XML Feature Pack Open Beta Available (XPath 2.0, XSLT 2.0, XQuery 1.0)

I've been relatively quiet on the blog as of late. That tends to happen when you spend a lot of time working on something big.

My team and I have been working very hard to bring the W3C standards of XPath 2.0, XSLT 2.0, and XQuery 1.0 to life. I'm proud to announce, that today, you can download, install, and work with the WebSphere Application Server V7.0 Feature Pack for XML Beta containing these critically important standards.

We have delivered a beta XML runtime that supports these standards as well as offers a new API to interact with these standards. We believe these standards will simplify and increase the reliability of XML oriented WAS applications. The standards will also enable new scenarios never possible before in WAS - like querying large amounts of XML data located outside of databases in parallel with databases with XML support, or making navigation/transformations decisions based upon industry standard XML schema support.

You can download the beta from our open beta website.

You can discuss the beta on our forum.

In order to help you understand the feature pack, I put together a quick demo (in two parts). I hope to put more demos together soon, but let me know what you think of these first.

Demo 1 (Part 1)


Direct Link (ensure you click on watch in HD)


Demo 1 (Part 2)


Direct Link (ensure you click on watch in HD)

Tuesday, March 24, 2009

Open SCA 1.0.1 Beta Available!

The Open SCA Feature Team has just released a beta milestone for a refresh of Open SCA support for WebSphere Application Server V7. The new level of code adds an implementation for JMS bindings for the default messaging provider as well as JEE integration scenarios where JEE applications can be enriched with SCA annotations and leverage the SCA SOA programming model benefits from within your JEE applications. Similar to the SCA 1.0.0 Feature Pack available since Dec 2008, the implementation derives its architectural direction from specifications at OSOA and source origins are derived from the open source project Apache Tuscany.

The beta milestone is available externally here and as usual with WebSphere Beta programs comes with a support forum for Q&A. Happy SOA Programming!

Steve Kinder

Friday, February 27, 2009

SCA Whitepapers

I just wanted to give this community a pointer to some interesting new content that my team has produced and published at IBM developerWorks regarding the first delivery of Open SCA technology in a WebSphere Application Server form factor.

Part 1: Overview of Service Component Architecture
Part 2: Policy Sets for Service Component Architecture
Part 3: Policy and Intents for Service Component Architecture
Part 4: Java Annotations and Component Implementations

We are looking at other topics at extending this Open SCA dialogue at developerWorks and I'm happy to get your feedback, hate mail or other comments back either via this forum, developerWorks or you can even send your flames directly to my email address: kinder@us.ibm.com

Our team is also looking at compelling user stories as follow on work and while I could not commit to our delivery of any code or beta's in the future, if you're interested in giving us stakeholder feedback, I would love to talk to you. We have had some interesting feedback on what we've delivered already and look forward to help making this technology a compelling SOA tool for our customers.

Friday, January 23, 2009

REST and WebSphere in 2009 Trends and Directions

Jerry Cuomo recently mentioned in an InfoQ article the WebSphere trends and directions for 2009

One of those topics was a comment on the support the WebSphere was doing in the area of REST (and the need for a common REST API), and how we are working to allow our own products as well as customer applications to be developed quicker and easier (promoting an ability to react faster and be more Agile).

Anne Manes made a comment about why we need a REST API - isn't HTTP GET,PUT,POST, DELETE enough?

I've provided an update with respect to where I think Jerry was headed via his comments (and what we are doing in WebSphere to provide value to customers)..

However - I find it interesting that folks think that REST is so much easier that you don't need any more information that 4 interfaces. You still need to know what the resources identifiers are and what is the resource state actually represents in order to use them (irrespective of the actual encoding/formatting of that data). That need isn't any different than any other distributed communication mechanisms that I've worked on in the past. I've worked w/SNA, TCP/IP, DSOM (Distributed System Object Model), CORBA/IIOP, Web Services, and now REST - as I'm focusing on REST within WebSphere. Irrespective of the technologies around (and I've seen all the comments about problems w/the technologies, tight coupling between technologies, lack of interoperability, etc...) - at the end-of-the day - you have a "client" making a request for information to some "service/resource" and it needs to understand the format of that data to accurately process the data. If you change the format, you potentially break the client. In a web-presentation world and HTML, the data can change the data, but our human minds can easily understood if the data format changes. For example, ESPN.com recently changed their web site around - however, I can still manage to deal w/it - since human minds can easily comprehend it. However - I know that if I wrote a script looking for the scores of yesterday's games (thereby automating it)- that it would fail since the location/context of that information is now in a different spot and presented differently.

In the end - I think we need to take our focus off the technologies themselves, and place the focus more on the value obtained in using the technologies to achieve a business goal. Defining patterns and best practices to use technologies are as critical to making our customers succeed as the technology itself. Anti-patterns are also valuable as the prevent customers from following practices known to be error prone. WebSphere focuses on producing middleware so that it can provide to customers an ability to expose data, services, whatever is needed for customers so that they can more easily provide value to their customers. I think all Jerry was alluding to is that by trying to be consistent with how we expose data/interfaces amongst our products, we can use those as best practices and patterns for others to do the same. That is what we are doing in WebSphere. As we can, we will publish best practices and use cases for using our technologies. In addition, in cases that we know we can do better - we are learning from those efforts and will be listing those as anti-patterns. Every time I have a discussion w/our services organization that use our technologies - that's the first question they ask - please give me reference patterns and anti-patterns.

Those who cannot remember the past are condemned to repeat it.