Tuesday, October 20, 2009

WebSphere Application Server 7.0 Administration Guide

I recently had the opportunity to review the recently published WebSphere Application Server 7.0 Administration Guide from Packt Publishing and thought I would share my opinions on this book. In the spirit of full disclosure, I was provided a copy of the book to review at no cost to myself.

This book is a great introduction to the world of WebSphere Application Server for people that are new to J2EE and/or WebSphere Application. In fact, I am recommending this book to all of the new developers, testers, and documentation specialists that work with me. The book does an excellent job of describing how to perform a number of the different tasks that a WebSphere Administrator will face. The book is filled with plenty of examples, sample code, and visuals.

The author does a nice job of describing the different activities from product installation to fixpack and patch installation, application deployment, securing the WebSphere environment, and managing the WebSphere configuration. The reader is introduced to the different administration tools - the WebSphere Admin Console, wsadmin, Tivoli Performance Viewer, and the administrative utilities (dumpNameSpace, manageProfiles, etc...) - as well as messaging and the new Admin Agent. Additionally, this book introduces customers to the idea of automation as a part of the WebSphere Application Server administrative process, something I feel is extremely valuable to WebSphere customers.

If you are an extremely experienced WebSphere Application Server administrator who is just looking for the very technical details of new version 7.0 features only, this is not the book for you but it might be a good book to share with your colleagues that do not have the knowledge and experience you do.

I found it to be an enjoyable read with useful information but not so technical that I felt like I was reading a specification. All in all, I recommend this as a great book to get users started with WebSphere Application Server.

David Brauneis
Chief Architect, Rational Automation Framework for WebSphere

Saturday, October 17, 2009

WebSphere Application Server V7.0 New Features

I've noticed that alot of folks are coming to this blog looking for a high level overview of WebSphere Application Server V7.0 (searching for things like websphere 7 features, websphere v7) and finding somewhat related articles, but never a quick overview of the major new functional areas. So, on the first birthday of V7.0, here is a quick overview.

Our themes for the release were Simplification for Developers, Intelligent Management, High Performance Foundation for SOA, and Innovation that Matters.

Simplification for Developers


V7.0 supports the important new standards for JDK 6.0 including JDBC 4.0, Java EE 5, EJB 3.0 and JPA, Web Services, new SIP RFC's, messaging, and Portlets (JSR 286). While many of these annotation driven ease of use enhancements have been available for some time as V6.1 feature packs, V7.0 ships all of the Java EE 5 standard fully certified. The ease of use comes from two things. First, annotations allow you to easily configure EJB's and web services within the application code. Second, most configuration is defaulted which means you only have to configure exceptional cases. Rational Application Developer (RAD) Assembly and Deploy tooling comes in the box which is a subset of RAD for WebSphere which is first class tooling for all of these new features.

Intelligent Management


In addition to the existing WAS 6.1 management infrastructure, WAS 7.0 adds two new topology options via Administrative Agent and Flexible Management. An administrative agent allows management of multiple standalone application servers on the same machine reducing runtime footprint and start-up cost of administration. Flexible management supports the Job Manager which can handle asynchronous administration job queuing across multiple WebSphere cells which allows scaling to very large and complex environments especially geographically distributed environments. WAS V7.0 introduces the concept of Business Level Applications (BLA) which defines multi-component applications allowing administration of applications that have a scope larger than a single war or ear. Also included is the Centralized Install Manager (CIM) which allows centralized installation of fix packs, refresh packs, and interim fixes from the deployment manager to all nodes in the cell. Update Installer and Install Factory where also updated.

High Performance Foundation for SOA


I have blogged about the performance improvements in general, on web services, on EJB 3.0/JPA, and 64-bit. With runtime provisioning based on OSGi, we also now start components selectively helping with start-up time and footprint. Our Dynacache engine has been updated and is explained here. Security is always important in the foundation and with V7.0 -- you'll see more fine grained security domains, security auditing, and a DMZ hardened proxy. We also continue to protect investments in WAS with supporting mixed older versions of the application server across a cell providing support for applications running on version of Java EE as old as 1.2.

Innovation that Matters


We continue to innovate beyond V7.0 through the use of feature packs. Feature packs allow you to absorb innovative enhancements before the next version of the application server. Web 2.0 (through the Web 2.0 Feature Pack) support includes Web 2.0 to SOA connectivity, Ajax messaging and the Ajax development toolkit. Service Component Architecture - SCA (through the SCA Feature Pack) support includes service composition and service deployment/assembly that allow binding existing web, EJB, and native SCA services into a composite SOA application. Communication Enabled Applications - CEA (through the CEA Feature Pack) allows you to add access communication services without expertise in communication technologies - such as web widgets for Click to Call and Call Notifications. XML applications (through the XML Feature Pack Beta) that use XPath 2.0, XSLT 2.0, and XQuery 1.0 allow you to unleash the power of declarative XML data programming and improve the functionality/ease of use over XPath 1.0 and XSLT 1.0.

Want to try WebSphere Application Server V7.0 as a developer for free? If so, go here and download it today.

It's hard to cover such a large release in a short blog entry. I'm sure I missed some major features. If you spot one, let me know and I'll update this post.

Friday, October 16, 2009

SIP/Converged Apps and WebSphere eXtreme Scale Performance Papers

Last week we published two performance papers that talk about the great performance we have demonstrated on two interesting features of WebSphere.

First, the SIP and HTTP Converged Services Performance using the WebSphere Application Server paper talks about the performance of a sample web voice mail application. The paper talks about how we support not only the functionality required for such applications, but also performance that is measured to be "carrier grade". This paper is a very good example of how SIP and HTTP traffic can be handled in our converged web container to provide for communication enabled applications.

Second, the Scalable Caching in a Java Enterprise Environment with WebSphere eXtreme Scale paper talks about the performance of an application that uses our JPA persistence API's along with WebSphere eXtreme Scale to provide in-line caching between a typical web application and the back end database. It shows how, with minimal application updates, you can decrease the load on your back end databases while allowing your front end application to scale in an elastic fashion.

You can find both on our WebSphere Application Server performance site. Have a look and if you have any questions -- let me know and I can get them answered.

Monday, October 12, 2009

In the news .. SPEC SOA benchmark effort

I wanted to shared some press coverage of the effort I mentioned back in September.

The original SPEC press release press release talked about how the work group was looking for participation, what the initial focus was on, and the unique challenges of producing a SOA benchmark.

In coverage by SearchSOA and TechTarget, the working group has been asked very interesting questions. The SearchSOA article talks about how SPEC is a good organization to take on the challenge of a SOA benchmark given its past track record in JEE middleware benchmarking and talks about the challenges of benchmarking typical implications of a service oriented architectures. The TechWorld article talks adds discussion of how the benchmark is focused on some core aspects of SOA but will likely grow over time and discusses how the benchmark will need to consider both IT and business requirements on typical SOA applications.

Also, the effort has been covered by TheServerSide and InfoQ.

As mentioned in the original press release, if your organization can contribute to the effort, contact info@spec.org

Also, kind of fun to see your quotes translated into various languages - Japanese, German for example. I do think this level of coverage indicates the value this benchmark will deliver to both technical and business communities.

Thursday, October 8, 2009

Update on JPA 2.0 and Apache OpenJPA

Developerworks just posted an article from Kevin Sutter, our lead for Java persistence, on JPA 2.0 and the work at Apache on OpenJPA. Click here to learn about the new features that are coming in JPA 2.0 and get an early preview via early access drivers at Apache here.

Friday, October 2, 2009

XML-In-Practice Day #2 Summary

Keynote - XML and Web 3.0 - Mills David


This keynote was presented in a very interesting style. Very visual, very content packed. Not only did he talk about Web 3.0 - the semantic web, he talked about Web 4.0 and work that he believed was already being done to support it. For Web 4.0, he defined it as ubiquitous (image of computer implanted in back of skull) where everything (not just everyone) is connected and has some level of intelligence. For Web 3.0, he talked about representing the meaning of content and using that meaning to improve the way we work with the web to make the internet more relevant, usable, and enjoyable. A basic example is today, we may expose the contents of a database to the web without giving away the schema. If we instead exposed both the content and the schema, computers could find ways to link this data to another similar web repository or service and create new value based on what the data meant.

The eXtensible Business Reporting Language, XBRL - Evan Lenz


This session started with an excellent overview of XBRL (a XML usage required for US financial reporting by the SEC), then showed the issues, and then proposed a new approach.

Among the issues he cited:

a) all concepts are global (no namespaces, no hierarchy) which meant (as shown in one real world example that required 12,000 concepts) there would be no way to work with the data except in tools, no adhoc queries, and names of concepts ended up being on average 49 characters in length (hierarchy being built into the name).

b) the use of schemas and XLink really required too much plumbing for little value.

c) high noise to signal ratio meaning that with the linkages being so verbose and separate, it becomes very hard to work with XBRL without tools (not human readable, not ad hoc queriable).

In general his proposal was to use XML to represent the structure of reports. Even though XBRL is based upon many XML concepts, Evan suggested the use of XML, currently, for XBRL is incidental.

Work Flows, Standards, and Innovations Panel


Along with two other vendors, I participated in this panel. I again demonstrated the WebSphere XML Feature Pack (mostly this time focusing on XSLT 2.0). I went over some slides that show Rational tooling for XML, XSD, DTD, XPath 1.0 and XSLT 2.0 including editors, validators, wizards, debuggers, executors, etc. I then showed a live demo of some future Rational Application Developer work we're considering in the XML space.

Tools from NIST Created to Support the Development of XML-Based Content Standards Through the Application of Naming and Design Rules (NDR) - KC Morris


This presentation showed a very interesting demo of tools NIST has created to validate schemas and instance documents. This validation is centered on rules defined by an organization that ensure all applications of XML technology use consistent naming and definition patterns for data and metadata. My guess is it might have flagged XBRL instances as in error (if the format wasn't required by the SEC). Also of interest was that there were rules for OAGi BOD which is heavily used in automotive manufacturing.

The use of XML in the Irish Government's eCabinent Initiative - Michael Boses


This presentation talked about moving the old process for distributing data across the Irish government (large volumes of paper delivered by military personnel) to electronic form stored in an XML content repository and accessed through personalized portals. In the end, they showed the tablet PC's built into the cabinet table meaning that all the way to the top, there was the ability to stay entirely digital. Some interesting points where a) even though XML (DITA) made this possible, they avoided talking in XML terms in implementing the project as XML is totally behind the scenes and doesn't "sell" - instead they just used terms of like "smart documents" and b) they piloted the program with stakeholders to work out the bugs and purposely avoided turning the solution live until it was totally ready (they for a few months used electronic right up to the main cabinet meeting and then printed the documents for the meeting). Also, they avoided XML being seen by the users by using XSLT to web and Quark's tool for editing of XML content in Microsoft Word.

XML Tools Summit


As somewhat of an extension of the panel done earlier in the day, this was a session to have all participants catalog what tools they are using in the XML space, what tools they need but can't find, and exchange information with each other about what tools work well. This tools summit will be carried forward after the conference online as IDEAlliance hopes to create an "Angie's list of tools". It was very interesting to see how many tools people used (I counted over 30) and how critical these tools are to the publishing, standards, data scenarios.

Wednesday, September 30, 2009

XML-In-Practice Day #1 Summary

I'm at IDEAlliance XML-In-Practice 2009 in DC this week talking about IBM WebSphere XML and learning about other XML products and technologies. There are four tracks -- Publishing and Media, Applications, Foundation and Interoperability AKA the technology track, Electronic Medical Records and President Obama's Economic Plan, and e-Government. Based on my totally unscientific head count, the attendance to each track is 50%, 25%, 12% and 13%.

I attended the following sessions today -

Keynote - XML Enabled Medical Records - Dr. Clement McDonald


I learned a) how technology is used to create repositories of information within hospitals/caregivers b) how much workload these systems exchange in the form of HL7 messages c) how distributed systems share data within a localized region for decision making, consistency of care d) how Web 2.0 is helping replace very complicated forms based desktop apps that are trusted currently e) how Dr's are happy to have a wealth of electronic information to help, but see putting new data into the system as something they cannot afford to do given already limited time with patient (call for smarter devices/speech to text) f) how different data is across the various medical interactions all the way from very structured to very narrative. The best two parts of the talk was the 0.5 seconds he showed an XML document which stressed the business aspect of this is key - the technology just has to exist behind the scenes to make it possible and seeing a Dr. throw stuffed pings to the audience (joke on how LOINC standards sounds like OINK).

Overview of President Obama's Electronic Medical Records Plan and Health Information Technology Architecture - John Quinn


I a) learned how much money is set aside to rewards providers that move to standardized medical health records and what timelines exist to get these rewards b) learned how these timelines are aggressive based on time to implementation of typical systems c) learned how the rewards are based upon a certified system which is challenging to guarantee for valuable use. I really took away a deeper appreciation for not only the complexity inside of a single hospital, but also how challenging a national mandate will be (especially to individual physicians).

XSLT Stylesheets from Version 1.0 to 2.0 - Priscilla Walmsley


I didn't take alot of notes in this session as I'm rather knowledgeable about this topic. However, I'd say it was a great presentation given the example (before and after) based approach.

Customer Use Case: How IBM Simplifies Complex Content Developing and Publishing Across the Enterprise. - Daniel Dionne


Great presentation that didn't go into just what DITA for content development/publishing is, but showed the entire lifecycle and processes needed to make a wide adoption work. Went into some rather impressive use cases of the technology, along with challenges, within the IBM company.

Technical Overview of Relax-NG - Bob Ducharme


Can't say I was a huge supporter of this talk, but that is likely due to the fact that I'm a data-oriented XML guy and I'm working on standards, customer situations that are very dependent on XML Schema. Bob discussed areas where Relax-NG was better than XML schema for mostly document oriented scenarios. I would have liked to see more mention of XML Schema 1.1 and how that changed the story. I did get some good value out of understanding why some document-centric customers are still using DTD's.

HL7's use of XML - Paul Knapp


Learned how HL7 V3 XML isn't really yet used in US e-healthcare apps (every hospital is exchanging internal messages in HL7 V2). Abroad, new projects that are less than three years old are very likely to be HL7 V3. We should be seeing more of this in the states with new projects, especially as we start to consider the need to share information outside of a single hospital, etc. Paul did mention binary XML and how that would help many of the HL7 V3 current issues.

MarkLogic Beer and Demo Jam


I did a 4 minute demo along with nine others during the reception. You get 5 minutes to do a demo with no preparation and the best demos win free stuff. I demoed the XML Feature Pack and the 40 samples we have along with the end to end blog checker sample written in XPath 2.0, XSLT 2.0, and XQuery 1.0. The samples I showed had a nice CSS and dashboard we've added since Beta 4 and that visual skinning over the XML technologies drew positive comments from the crowd. Didn't win anything in the end. Oh well.

After hours


Finally, I was able to do dinner with about 15 folks who regularly attend these conferences. Some great conversation with people from all parts of the industry.

Sunday, September 20, 2009

WebSphere eXtreme Scale cache provider for Dynacache






























The dynamic cache engine is the default cache provider for the Dynacache APIs and frameworks. Starting WebSphere Application Server 7.0.0.5 and 6.1.0.27 Dynacache allows WebSphere eXtreme Scale to act as the core caching engine for Dynacache.

You can configure the dynamic cache service to use WebSphere eXtreme Scale as your cache provider instead of the default dynamic cache engine.

This provides customers the ability to leverage transactional support, improved scalability, high availability and other XTP features without making changes to their existing Dynacache caching code.


This capability can also be enabled on WAS service packs 6.1.0.23, 6.1.0.25 and 7.0.0.3 via APAR PK85622.

Links:

Tuesday, September 15, 2009

XML Feature Pack Thin Client Demo - Zero to running in 6 minutes

NOTE: This post is our of date. For the same demo on the released product see this link

As we announced, the latest beta release of the XML Feature Pack contains the Thin Client for XML. As well as allowing you to use this in your client applications to WebSphere Application Servers, the thin client allows for quick and easily evaluation of the technology. Here I show a quick demo of using the following simple XML, XPath, XSLT and XQuery files along with Java files to invoke them.

Demo 7 - XML Feature Pack Beta 4 Thin Client for XML


Direct Link (HD Version)


Here are the files for the demo:

thinclientdemo.zip


Which contains (HelloXSLT.java, HelloXQuery.java, HelloXPath.java, simple.xsl, simple.xq, locations.xml)

Monday, September 14, 2009

Rational Automation Framework for WebSphere

Leigh and David spent the better part of 8 years working on the WebSphere Foundation Architecture and WebSphere Application Server - specifically in the areas of administration, configuration, systems management, and performance tooling. In mid-2007 both David and Leigh took the opportunity to expand their horizons and explore new options in IBM, though never really moving too far away from WebSphere systems management. Since leaving the WebSphere Architecture and Development organization in 2007, we have been working in the IBM Rational brand focusing on software delivery automation. We are excited to announce that the result of that effort is the announcement and delivery of the Rational Automation Framework for WebSphere - available as of May 15, 2009.

IBM Rational Automation Framework for WebSphere is an optional feature that extends and enhances IBM Rational Build Forge around WebSphere Application Server and WebSphere Portal environments. This customizable management framework is designed specifically to automate installation, patching, configuration management, and application deployments for IBM WebSphere Application Server and IBM WebSphere Portal.

Rational Automation Framework for WebSphere reduces the complexity of managing your IBM WebSphere Application Server and IBM WebSphere Portal environment due to common pains, such as:
  • The lack of consistency and/or repeatability in the installation, configuration, and application deployments in IBM WebSphere Application Server and IBM WebSphere Portal environments as a part of the Software Delivery Lifecycle.
  • The challenge of connecting disparate application development, test, and operations groups into a single traceable and enforceable process for the Software Delivery Lifecycle.
  • The inability to manage IBM WebSphere Application Server and IBM WebSphere Portal environments across multiple Software Delivery Lifecycle environments and/or beyond the cell scope leading to the development of costly, difficult to support, homegrown solutions.
  • The lack of change history, auditability, and governance around the changes to the IBM WebSphere Application Server and IBM WebSphere Portal environment configurations.
  • The need to be able to quickly reproduce IBM WebSphere Application Server and IBM WebSphere Portal environments in the case of a disaster.

For those companies facing IBM WebSphere Application Server and IBM WebSphere Portal infrastructure management challenges, the key to delivering greater operational productivity with quality is automation. By eliminating manual and complex tasks when managing IBM WebSphere Application Server and IBM WebSphere Portal environments, Rational Automation Framework for WebSphere can provide accuracy, reliability, repeatability, and consistency to help cut costs and improve productivity and quality.


David Brauneis
Chief Architect, Rational Automation Framework for WebSphere

Leigh Williamson
Distinguished Engineer & Chief Architect, Rational Software Delivery Automation

XML Feature Pack Beta 4 - Now With Thin Client

A month ago, we announced the Beta 3 refresh which was specification complete on XPath 2.0, XSLT 2.0, and XQuery 1.0. On Friday we released a Beta 4 refresh which continues to remove any remaining restrictions as well as adds one new major feature - The Thin Client for XML with WebSphere Application Server.

As noted on the open beta download page,

The beta includes the IBM Thin Client for XML with WebSphere Application Server. The thin client allows access to the same Feature Pack API and runtime functionality (XPath 2.0, XSLT 2.0, XQuery 1.0) available in the WebSphere Application Server Feature Pack for XML. The thin client can be copied to multiple clients running Java SE 1.6 in support of a WebSphere Application Server V7.0 installation.


This means if you have client applications to WebSphere Application Servers you can copy the XML Feature Pack thin client file to these clients and get the same XML programming model support in your clients.

We also believe this thin client support will help "new to WebSphere" folks evaluate this technology. As such, we have added a download link to the jar file on the open beta website. Click on that link and then click on "Local install using Download Director or HTTP" and follow through to download "IBM Thin Client for XML with WebSphere Application Server
com.ibm.xml.thinclient_1.0.0.jar". I hope to show a demo of how fast you can get up and going with the thin client in the next day or so.

Saturday, September 12, 2009

Hidden nodes in XPath - fail on namespaces by me

I was working on a sample with the XML Feature Pack last week to show good integration between the XML Feature Pack Beta and databases that support XML columns, such as DB2 pureXML.

I ran into an issue that stumped me for a while and wanted to write about it so maybe others won't be slowed down as long as I. I was writing a XCollectionResolver and XResultsResolver that connected to the database. For some reason, while these resolvers returned data that looked valid, they couldn't be navigated by XPath 2.0. I saw things like this is XQuery:

let $a := trace($domainSpammers/spammers/spammer/email, "email =")

Traced nothing, while

let $a := trace(node-name($domainSpammers/*/*/*), "threestars = ")

Traced email, uri, and name. I even put domainSpammers into the output of the XQuery and could see the spammers/spammer/email tree:

<spammers xmlns="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <spammer>
    <name>Joe Smith</name>
    <email>jsmith@email.com</email>
    <uri>http://joe.uri.com</uri>
  </spammer>
</spammers>

I looked at this for a few hours. Luckily one of my team members saw the issue. You can see by the title of this post and the above xml, the issue was the elements are in the XHTML namespace.

It turns out I was writing to the document from XSLT 2.0 using the new feature of multiple result documents. While I wanted my browser returned page to be in the default namespace of XHTML, I didn't want the data written to the database to be in the XHTML namespace. However, since I didn't clarify this, it mistakenly was written to that namespace.

Next time, and maybe this will help you, I'll add namespace-uri() to my debugging arsenal:

let $a := trace(
  (node-name($domainSpammers/*/*/*),
  namespace-uri($domainSpammers/*/*/*)), "threestars = ")

Which would clearly have shown that email was in the XHTML space:

a = email http://www.w3.org/1999/xhtml;

Which would have saved me a few hours of pulling my hair out.

Friday, September 11, 2009

SCA 1.0.1 Beta Refresh Available

The SCA team in WebSphere has revved the 1.0.1 Beta yet again and it utilizes the Rational Install Manager (IM) software which allows the 1.0.1 to be laid down on a vanilla WAS w/o having to install the 4Q08 GA (1.0.0) level of code.

Rather than go into detail about additional capability, I'll tease you to go look at the official early program website for our beta.

Enjoy.

Wednesday, September 9, 2009

SPEC working on standard SOA Benchmark

I continue to be interested in helping customers understand the performance of Service Oriented Architect (SOA) applications. As you can see here, I'm working (as the chair) in this SPEC working group, along with considerable input from Oracle and VMware on pushing forward on a standard benchmark for SOA based applications and the middleware infrastructure on which they run.

The interesting parts (in my opinion) of this press release are:

The benchmark will be developed by a trusted benchmarking organization with input from all SPEC members. Also, as mentioned in the press release, we're looking for participation by other interested parties. If you're interested in joining SPEC or providing input, let Bob Cramblitt know. I'm truly excited to see a SOA benchmark come from SPEC as they have a proven track record in creating industry trusted benchmarks for middleware performance.

While the initial focus is Web Services, Enterprise Service Buses, and Business Process Management (BPEL), the group realizes these technologies are only part of the entire SOA picture. It's good to see the group start with a sensible core and grow the effort over time.

The group is working to stay flexible on its support of multiple approaches to implementing these technologies. This is key, as SOA is an architectural approach and there are multiple ways to implement such technologies. However, in an industry standard benchmark it's important to audit and standardize common implementations to confirm they would be used in typical customer implementations.

I'll continue to post publically shareable information as the work group makes progress. If you have any quick questions, post them here and I'll ask them at the working group.

Thursday, August 27, 2009

Apache Wink and JAX-RS

I've received a number of questions from customers on IBM and JAX-RS support. I wanted to mention to interested parties that IBM started an Apache Incubator project (Apache Wink) with HP and others on building an open source JAX-RS implementation. JAX-RS (if you aren't aware) is JSR 311 - the JCP defined standard programming model for building REST-based services. You can check out the original proposal (here) and the project site (here) and lastly, the project Wiki (more useful) (here). Lastly, we've started a "WebSphere Web Services" specific blog (here) where we will be discussing features, capabilities, and other items going forward... This post (here) talks about some of the capabilities in their first (and fairly complete) release of the incubator project that was just formalized today.

Take a look...

Tuesday, August 25, 2009

On Twitter?

A couple of us have an active presence on twitter if you use it. Andrew Spyker (@aspyker) and I (@burckart) are both pretty active as are some of our product managers like Savio Rodrigues (@SavioRodrigues) and Erik Kristiansen(@erikkristiansen). Another great person to follow is Billy Newport, (@billynewport), our WebSphere eXtreme Scale architect. Feel free to reach out to any of us on twitter.

Monday, August 24, 2009

Information Center for XML Feature Pack Beta Posted

In software development, it's not just about creating the runtimes and API's and install images. As a customer, information to help understand how to use the features of any product is as important or more important than the product itself. This is why we've spent so much time on creating samples for the XML Feature Pack. Today we go a big step further by releasing the XML Feature Pack Information Center.

The Feature Pack for XML Information Center is comprehensive documentation on the XML Feature Pack. The content of this documentation is live and can change as we get more information articles. If there are features you have questions on, please let me know and I'll ensure we consider updates for future updates. Also note that we have moved the Javadoc for the API to this information center.

Friday, August 21, 2009

What's going on with Communications Enabled Applications?

We have had a lot of activity on the WebSphere Communications Enabled Applications blog. I have had several blogs highlighting scenarios from retail to finance to inventory management. I even came up with another one of my non-award winning videos here describing the customer experience the CEA Feature Pack can bring to a website.

Beyond that, there has been a whole bunch of information presented and I wanted to give you all a quick summary and reference to some of those blogs.

First, Roger wrote a great and verbose cheat sheet in PDF format on how to get up and running with the CEA Feature Pack and Plants by WebSphere sample. If you are looking to try it out, his document is a great place to start.

James has written some specific details on which version of vendor systems we tested our CEA Feature Pack against. He also wrote a more in depth piece on how to configure the feature pack to work with Avaya AES.

Andy wrote some getting started and advanced usage blogs on the Web 2.0 widget capabilities in the CEA Feature Pack. To get started, he wrote a blog on embedding the telephony widgets like click to call and embedding the peer to peer cobrowsing (aka coshopping) widget. He also wrote several more advanced blogs on how to create a two way form, how to handle personalized content and actions in cobrowsing scenarios, and how to add CEA widgets to a page already using another version of dojo.

Finally, we had our first guest blogger. Dustin Amrhein tried out the feature pack for the first time this week and found good ways to easily extend the Web 2.0 widgets included. He wrote his first blog showing how you can customize the click to call widget to add the ability to select a specialist. We are looking forward to him writing several more blogs on the other scenarios he tried out.

Tuesday, August 18, 2009

Other XML Feature Pack Beta 3 Highlights

Yesterday I blogged about one of the major focus areas of the Beta 3 of the XML Feature Pack. In today's video demo, I show the other major items of note in Beta 3. The major features of Beta 3 are:

- Spec complete on XPath 2.0, XSLT 2.0, and XQuery
- Changes to the XML Feature Pack API to adjust for new features and results of usability studies
- Focus on development and deployment issues with full command line support to pre-compile XML artifacts for performance, ANT commands to do the same, and support for running with Java 2 Security enabled.
- As always, more samples. In addition to the end to end sample of XQuery I demoed yesterday, we have over 40 samples that show the new features of the new standards.

Here is the video that overviews these features:

Demo 6 - XML Feature Pack Beta 3 Highlights


Direct Link (HD Version)


For more information on the WAS V7.0 XML Feature Pack Beta, please go here to download the code, samples, documentation as well as see other demos.

Monday, August 17, 2009

XQuery End to End Sample for XML Feature Pack (Demo #5)

So far in the XML Feature Pack demos, I have talked about topics such as the introduction to the feature pack, specific features in how to use the feature packs, and demonstrations of XPath 2.0 and XSLT 2.0 in end to end web applications. Today I'll continue the demos building upon the same application used in previous demos - the Blog Comment Checker that mines data from blogger.com feeds (encoded in XML) and presents a web application that identifies problematic user supplied comments. I hope you'll see how different XQuery is as a language and how similar it is to concepts you might already know like SQL and JSP templating. I imagine, for some users, the learning curve of XQuery won't be near as steep as other XML processing languages.

Demo 5 - End to End XQuery 1.0 (Part 1)


Direct Link (HD Version)


Demo 5 - End to End XQuery 1.0 (Part 2)


Direct Link (HD Version)

Saturday, August 15, 2009

Download Stats Extreme Makeover - The Value of XSLT 2.0 and XQuery 1.0

On Friday, I had the opportunity to use XSLT 2.0 and XQuery 1.0 in a way that proved the value of the new standards.

For our Beta programs, we get a weekly report of how many downloads have occurred. Over time we have asked for more and more breakdowns of the data (how many were from IBM'ers vs. non-IBM'ers, how many were from non gmail/hotmail/etc email addresses, how many for code vs. how many for documentation, how many unique users have downloaded, etc.). We use these reports to gauge the interest in our betas and the effectiveness of our beta programs.

Currently the process for doing these reports is:

1. Load a webpage somewhere on the intranet that returns in either HTML or space and newline separated text the download records (and I don't have the time nor contacts to change this "service").
2. Import these download records into Excel
3. Write VBScript that processes the rows into summary tables, but not all summaries have VBScript written for them due to the fact that VBScript can get quite complicated.
4. Read the summary tables and hand compute some summaries and transpose them into emails and presentations to beta teams.

This process can take a few hours and is error prone.

I asked for the raw data for the service as I knew there had to be an easier way.

First I started with the HTML as its pretty much XML and I figured I could just write some simple XQuery summaries. This failed as HTML isn't XML (if its not XHTML). Don't get me started on that rant (in this case, we had things like width=-1 with no quotes)! So I restarted with the text file version of the data.

XSLT 2.0 has a new function - unparsed-text() that lets you load from text files. This allows you to load any data into XSLT 2.0, but only as a string. As the XSLT 2.0 specification shows the real power of this function is magnified by XPath 2.0's support of regular expressions. Combining the unparsed-text() with regex tokenize() with newline as the separator allowed me to for-each across every line in the file. Adding another new XSLT 2.0 function into the mix - analyze-string() with a regular expression that did capturing of each of the fields allowed me to transform each line into a well formed XML element with sub-elements for each of the fields (download element with elements for filename, email address, etc). Ah, now I have data in a well formed structured XML format. Life is good.

Once I had this transformation of the input data, I returned to the task of creating the summaries. With XQuery, any query I want is just moments away. To prove the point, I decided to write a simple query that would break down the downloads for IBM'ers and non-IBM'ers separately. I would also group each unique user and list all the downloads that user had done with summaries at all levels of how many code vs. how many documentation downloads had occured. I want to put this in XML format, so others could query my summaries or I could put the summaries into HTML or load back into Excel (if you really really want to).

It took me approximately 30 minutes to create all of the above queries. The code is approximately 20 lines long and is well designed into re-usable functions that could be customized later. The code is easy for most of my peer Java developers to understand as XQuery looks alot like an imperative language with SQL like queries mixed into templating of output.

My next step is to move this to a web application (what I did so far was prototyped it with sample data) that connects directly to the service. The web application could easily offer up web forms that allowed the user to specify search criteria supported by the back end service (date range for example) along with what XQuery/summary view was required.

There are still some items that can't be automated and need human intervention. As an example, the process of deciding what constitutes an IBM'er is complex as some IBM'ers have "ibm.com" email address and some do not. Also, IBM could be "IBM, International Business Machines, or mistyped". It would take a bit of time to create some services that approximate what a human eye could spot manually. Adding a human facing pop-up that allowed visual inspection of the automated data analysis steps would be valuable. Also, I admit that I didn't create the charts and graphs - just the raw data that could be loaded into Excel to create charts and graphs.

But in the end I have converted a manual error prone data processing scenario into an automated approach (for data query and summaries) that creates all the same valuable raw data for reports with the potential to add more reports much more quickly. All of this was made possible using well documented W3C standards that have all the needed features (some new with XPath/XSLT 2.0 and XQuery 1.0) that make this scenario possible.

Thursday, August 13, 2009

Specification complete on XPath 2.0, XSLT 2.0, XQuery 1.0 - Beta 3 of XML Feature Pack Released

I'm happy to announce another update of the XML Feature Pack. The first beta focused on XPath 2.0. The second beta focused on XSLT 2.0. This third beta rounds out the specs with support for XQuery 1.0.

Once we're not in beta, we'll post final numbers on the W3C website on the XML Query Test Suite conformance. Currently we're at 96.8% on minimal conformance and we have support for the optional full axis and serialization features. As for XPath 2.0, and XSLT 2.0, we consider this beta release to support all of the specifications with minor restrictions as listed in the getting started guide. This means that we now have support for all for the W3C recommended standards for Querying, Transforming, and Accessing XML data (except the less popular XQuery/X).

We have expanded the XML Feature Pack API to handle feedback from usability studies and to handle new features required by the standards.

We have focused on items that make the feature pack easier to use. We have made changes to allow the feature pack runtime to run under Java 2 Security, without requiring an application to enable any more security than minimally needed. We have expanded the options for the command line tools for pre-compiling xml artifacts. We have also added ANT tasks for integrating this pre-compilation support into your build scripts.

With the full standards support, updated API, and runtime and development time improvements, this feature pack release should be quite useful. In the next few days, I'll post some videos to demonstrate the new capabilities on YouTube. In the meantime, you can download the feature pack beta and join the web forums to ask questions.

Monday, August 10, 2009

Another reason for DataPower SOA appliances - XML Threat Protection

I've gotten a few questions on recent XML security buzz. On today's blog post by Rich Salz (lead architect of our appliances) discussed how XML threat protection is a required tool when exposing important services to untrusted sources. He talked about this due to the recent press interest in "XML Exploits" which was started by some XML fuzzing work by Codenomicon.

I wanted to post about it here to make sure this wasn't an unknown concept to our customers. Rich talks about "defense in depth", which is what most of our WebSphere customers are doing today. To quote Keys Botzum (one of our lead security consultants for WebSphere, "Anyone that is exposing services to untrusted sources absolutely needs to be running a XML firewall, like DataPower)". In my world, defense in depth means putting a WebSphere DataPower XML Security Gateway XS40 in front of any services that could be called by untrusted sources. Also, given the performance characteristics of the DataPower devices (basically no latency impact), you likely want to do this on all services (as sometimes hacks aren't intention and sometimes hacks come from internal sources).

If you haven't heard of XML firewalls or XML threat protection, think about network firewalls. Network firewalls are great for protecting us from threats that can be detected at the network level (like the recent Twitter and FaceBook distributed denial of service attacks), but they don't help you with threats that are in the payloads of messages themselves. XML Firewalls help you with such application level threats by turning away bad messages before they enter your enterprise applications.

If you have any questions on the concept, feel free to pop over to Rich's blog and ask.

Wednesday, August 5, 2009

Interviews of WebSphere architects

Recently we have made a set of informal videos interviewing various WebSphere architects about the numerous advantages of WebSphere Application Server in the areas of developer and management efficiency, application innovation, and performance. These are focused on the difference between WebSphere and JBoss but also cover in detail many of the WebSphere Application Server strategical focus areas.

There are two playlists which can help you view all the videos. This playlist of WebSphere vs JBoss Developer Discussions walks through the specifics around how development is getting better and easier. This playlist covers WebSphere vs JBoss Operations discussions and covers more of the systems management side of the product.

Here is one of the videos (you'll note I didn't include one of mine ;-) ) on developer efficiency.

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.