Tuesday, December 22, 2009

2009 WebSphere Application Server Highlights

This blog post isn't meant to "market" our app server portfolio; although I worry it may come across that way. I wanted to take a look back at 2009 and talk about some of the technologies that matter to our application server customers in case you missed the announcements. Feel free to ask questions on specific items if you don't understand the value you can derive from these technologies.

Building upon the WAS V7.0 release, three feature packs were delivered - Communication Enabled Applications (CEA), XML, and Service Component Architecture (SCA). These feature packs are free add-ons that extend the value of your application server product to support innovative and valuable programming models. CEA adds the ability to do common telecommunication scenarios without having to understand underlying SIP technologies (just add a widget to a page to get click to all for example). XML delivers XPath 2.0, XSLT 2.0, and XQuery 1.0 allowing data and document centric applications to benefit from these W3C standards resulting in simpler, more functional and reliable applications. SCA simplifies composite application assembly and management, supports OSOA standards, and allows applications to more quickly adapt to changing business requirements based upon OSOA standards.

Two other major features were delivered on top of the application server - Optimized Local Adapters (OLA) and SAML. Optimized Local Adapters offer a high speed message connection between the application server on z/OS and native language programs with full quality of service. SAML adds OASIS SAML Token Profile to standard JAX-WS web services providing for end to end security with token propagation along with a Java library that allows you to work with SAML tokens.

Two alphas of feature packs were also delivered. We shipped our Apache OpenJPA based JPA 2.0 implementation in the JPA 2.0 Feature Pack. We also delivered early support for the OSGi Blueprint specification and Apache Aries extending the value of OSGi componentization and dependency injection into WebSphere applications via the OSGi Applications Feature Pack.

Finally, four service packs were delivered for the 7.0 release (the latest being 7.0.0.7).

We also delivered the application server in Hypervisor Edition (doing things you'd want a virtualized image to do correctly). Fixpacks delivered throughout the year added support for VMware and AIX/PowerVM. We also delivered the WebSphere Cloudburst Appliance which allows you to securely and reliably manage your virtualized environment in your own private cloud.

We also allowed WAS to be consumed in two different ways. We announced an easy to download and free WebSphere Application Server for Developers. We also provided Amazon EC2 images to allow you to consume WAS in the public cloud.

We also provided for easy migration of applications from competitive application servers via the Migration Toolkit.

What a year 2009 was. I'm sure 2010 will be just as fruitful.

Monday, December 21, 2009

IBM brings the power of OSGi to WebSphere

Back in 2006 we rebased WebSphere Application Server on OSGi in order to help us deliver a better application server. In 2009 we are bringing the power of OSGi to help you build better applications.

The IBM WebSphere Application Server V7 OSGi Applications Open Alpha program introduces to the application server the ability to build, deploy and run applications running on OSGi. Building on the work done in the OSGi Alliance Enterprise Expert Group (EEG) and in the Apache Aries incubator the alpha allows you to build modular applications that make use of familiar JEE technologies such as Servlets, JSPs and JPA.

There are many advantages to the support we are delivering in this alpha, some highlights include:
  • The ability to deploy a WAR file into the OSGi environment
  • Blueprint Container - A Spring-like Dependency Injection based container integrated with the OSGi service registry and standardized by the OSGi Alliance
  • The ability to share libraries between applications
  • Application composition by reference
  • The ability to provision an application based on the application dependencies and the content of an OSGi bundle repository
The alpha is available and includes some samples to get you going. We have also shipped the product documentation as a PDF and the Apache Aries site includes some information on the application model.

There has already been some coverage on the web about what we are doing in the alpha and I wanted to highlight two in particular. The first is a blog post by Kirk Knoernschild, who is giving a keynote at OSGi DevCon London in February. The other is an article on dzone where Ian Robinson is interviewed about the alpha.

Since I have mentioned it if you are in London in February some of my team are going to be at OSGi DevCon London running a tutorial on using Blueprint. In addition David Bosschaert one of the OSGi Alliance EEG co-chairs will be talking about the OSGi 4.2 Enterprise Release and we will be talking about the Apache Aries incubator.

Alasdair

Friday, December 18, 2009

RAD 7.5.5 adds support for XPath 2.0 and XSLT 2.0

Today, RAD 7.5.5 became available. Of interest to WebSphere XML customers, you'll see major new function in the XML areas to complement the features provided by the Feature Pack for XML.

IBM Rational Application Developer 7.5.5 provides enhancements to the existing XSLT 1.0 and XPath 1.0 authoring tools to support XSLT 2.0 and XPath 2.0, as well as the ability to program against the new IBM XML API and invoke the XML runtime provided by the WAS Feature Pack for XML. Developer benefits include: the ability to work seamlessly with XSLT 1.0 and 2.0 artifacts using a consistent set of tools, the ability to author - create, edit, validate - XSLT 2.0 artifacts, the ability to invoke the XSLT 1.0 or 2.0 processor with ease using the enhanced XSLT launch configuration and the ability to easily configure a project's classpath to program against the new XML Application Programming Interface.

There is more info on what's new here.


- You can now compile and integrate XSL 1.0 and 2.0 stylesheet documents into Java projects. This new functionality automatically handles classpath and runtime configurations. Also, a new option is available to incorporate a Java utility class is offered so that you can integrate compiled stylesheets.
- The Expression Builder tool in the XSL Editor now supports as-you-type evaluation for XPath 1.0 and 2.0.
- The XSL Editor now supports grammars for XSL versions 1.0 and 2.0. Content assist has been enhanced to incorporate better prefix handling, customized icons and detailed descriptions for all XSL element suggestions. Version sensitive file decorations are now available for XSL documents.
- You can now run XSLT 2.0 transformations.
- Content assist for XPath 2.0 and XSLT 2.0 functions in the XSL editor and XPath Expression Builder is now available.
- The XSLT validator now supports both XSLT 1.0 and XSLT 2.0, and provides build, manual and as-you-type validation. The validator helps you ensure that your XSLT documents are correct according to the XSLT 1.0 or 2.0 specifications.
- XSL templates are now available that can be added to new XSL files from the New XSL wizard. The templates can also be inserted into XSL files through the content-assist feature in the XSL editor.
You can modify the XSL templates through XML preferences page (Window > Preferences > XML > XSL> Editor > Templates).
- A new XSLT 2.0 sample is available that demonstrates the XSLT 2.0 transformation using context menu and Java code.


There are many other improvements and new features in RAD 7.5.5 and I expect Tim or I will blog about them in an upcoming blog post.

Wednesday, December 16, 2009

New Application Migration Tool

Ideally, one of your J2EE applications deployed on one certified application server can be taken as-is and moved to another certified application server. However, that is almost never the reality. Whether it is caused by developers taking advantage of a certain vendor’s conveniences/optimizations or application artifacts generated by the container (web services stubs, compiled JSPs, etc.), there is usually something that ties your J2EE application to a particular platform. In WebSphere, we’ve acknowledged this problem and we are doing something to make it easier to move applications from competitive application servers to the WebSphere Application Server.

The Application Migration Tool is part of the IBM WebSphere Application Server Migration Toolkit which provides assistance in moving your J2EE applications from competitive application server products to the WebSphere Application Server. This new tool is built on the IBM Rational Software Analyzer and uses its scanning capabilities to look for data specific to competitive application servers. It then provides a way to change and review this data so it can run on the WebSphere Application Server. In support of migrating applications to our server, changes can be made to java source code, JSPs, and deployment descriptors within an application.

The current version of the Application Migration Tool supports migrating J2EE 1.4 (and prior versions) applications from the Oracle WebLogic Server to the WebSphere Application Server. The tool focuses on several aspects of the application migration process including setting up the application classpath, converting WebLogic-specific classes, refactoring non-portable JNDI lookups, converting JSPs, deployment descriptors, and java package references to support industry standards, and creating the necessary artifacts for web services deployment (WSDL, service endpoint interface, mapping files, etc.). Additional manual steps may be required when migrating your application, but the tool will handle the most common migration actions. In short, the toolkit provides you with a fast path to move your applications to the WebSphere Application Server platform.

The Application Migration Tool is free and you can find download and installation instructions on the toolkit’s web page. The only prerequisite for the toolkit is an Eclipse IDE (3.4.2 or higher), which is also available for free. In addition, if you have an existing Rational Application Developer environment, you can install the toolkit into that environment. The toolkit is supported by IBM through either your existing support entitlement, or through a completely free forum.

If you are currently running J2EE applications in an Oracle WebLogic environment, I would encourage you to try out this migration toolkit to find out just how easy it is to move those applications over to the WebSphere Application Server platform. If you don’t currently have access to our application server, don’t let that stop you. Download the fully-functional WebSphere Application Server trial version or WebSphere Application Server for Developers edition and then begin the migration process.

Monday, December 14, 2009

WebSphere Application Server trial version

A while back Andrew mentioned the WebSphere Application Server for Developers product. This offering is essentially the WebSphere Application Server Base product licensed for free use in development environments.

To complement this offering, we also recently announced a trial version of the WebSphere Application Server. Like the above mentioned version of our application server, the trial version provides the WebSphere Application Server Base product, but the included license allows you to run the server in a production environment during the 60 day trial period.

If you are interested in getting a free look at the WebSphere Application Server but are worried your usage would not adhere to the license agreements in the WebSphere Application Server for Developers offering, give this new trial version a try.

Thursday, November 26, 2009

WebSphere XML Feature Pack V1.0 Released

I'd proud to announce that we released the XML Feature Pack which means it's ready for production deployment in WebSphere Application Server 7.0 environments.

The WebSphere Application Server V7.0 Feature Pack for XML 1.0.0.0 provides an XML programming model that has support of the W3C XML standards of XSLT 2.0, XPath 2.0, and XQuery 1.0. These newer standards provide developers with innovative capabilities for simplified development of XML-based and document-centric applications. The programming model consists of two parts:

- The new XML Transform and Query (XPath 2.0, XSLT 2.0, and XQuery 1.0) runtime which has been optimized for performance, runs under Java 2 security, has an thread-safe model appropriate for server environments, and provides for reliability, availability, and serviceability.

- A new API to invoke all three languages that allows applications to navigate, transform or query XML from a single consistent Java API. This API also allows the XML runtime to incorporate existing Java business logic and data.

Other important parts of this feature pack are:

- The IBM Thin Client for XML with WebSphere Application Server provides all the same functionality in J2SE clients that are used in WebSphere Application Server environments.

- The samples (with easy to browse source code) which show over 40 different aspects of the new XPath 2.0, XSLT 2.0, and XQuery technologies, three end to end web applications that show how to use these technologies to navigate, transform, and query XML atom blog feeds, and an end to end web application that shows how to integrate data from databases that support XML natively with other XML data sources in the most simple and performant way.

- Command line and ANT tools for pre-compiling XML artifacts for optimal performance

- Command line tools for simple execution of XML artifacts

- The Information Center for complete documentation of the XML Feature Pack

I will be posting all links to public information on the XML Feature on this blog post. Already, there is a video that shows how to get the XML Feature Pack installed (including the samples), so you can get started easily.

Update 2009-01-18: Rational Application Developer 7.5.5 tools add support for XPath 2.0 and XSLT 2.0.

Wednesday, November 25, 2009

More Web Services Performance Improvements in WAS 7.0.0.7

Back in WAS 7.0, I blogged about impressive web services performance improvements.

We have continued that improvement in fixpack 7 (7.0.0.7). Given this is a fix pack, we decided to make the new functional optional (until 8.0). You can learn about how to turn it on in PK94109. Basically you enable it by setting a system property on your application server instance.

This improvement is on the JAXB to XML marshalling (serialization) side. On the server, this would be important when responses are large (the typical case is responses are larger than requests). On the client, this would be important on requests.

As before, this not only helps web services using JAXB, but also anyone using JAXB directly in the application server.

In our tests in the labs we see approximately 20% increase in performance for some representative web services. If you are using JAX-WS JAXB based web services, turn this one with 7.0.0.7 and let me know what you see.

Tuesday, November 24, 2009

WebSphere Application Server Feature Pack for XML Links

As I talk to folks about the WAS Feature Pack for XML, I usually need a single link to all public information. There was a open beta link like this but now the open beta is closed. This blog post will be updated over time to include all links that are important for the XML Feature Pack.

Main Links
- Quick Blog Overview of XML Feature Pack
- New Features Added in XML Feature Pack 1.0.0.3 (XQuery Schema Awareness, XSLT 2.0 Debugging Support)
- New Features in XML Feature Pack 1.0.0.9 Tech Preview (XQuery Modules, easier to bind Java functions, better error messages)
- XML Feature Pack website

Installing on the application server
- Install WebSphere Application Server for Developers
- The If network connected, install IBM Installation Manager for WebSphere and update
- If behind firewall, download repository and install locally

Obtaining the simple Thin Client
- Download the thin client
- Download tech preview of latest thin client

Documentation
- XML Feature Pack Infocenter
- Javadoc for XML Feature API

Tools
- Rational Application Developer 7.5.5 XSLT 2.0 support
- Simple XQuery execution with XQDT

Video demos
- How to install and get running with XML Feature Pack samples
- Using the thin client to get up and running in five minutes
- IBM Education Assistant video on the XML Feature Pack 1.0
- Using the XML Feature Pack with an XML Database

Industry Coverage
- InfoQ article that overviews the XML Feature Pack contents and makes comparisons to other related technologies

Developerworks Articles
- Programming XML across the multiple tiers: Use XML in the middle tier for performance, fidelity, and development ease
- Programming XML across the multiple tiers, Part 2: Write efficient Java EE applications that exploit an XML database server

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

Last updated: 2009-02-23 (added XQuery tools and thin client information)

Wednesday, November 18, 2009

WebSphere Hypervisor Edition for AIX gets a date

Yesterday, IBM announced the dates for the WebSphere Application Server Hypervisor Edition for AIX.

Borrowing from the announce letter:



  • Adds support for PowerVM hypervisor

  • Optimizes WebSphere Application Server for virtualized environments enabling higher hardware utilization, while allowing you to spend less time on installation and configuration, and more time on strategic initiatives

  • Manages installation and deployment of WebSphere Application Server and associated operating system in conjunction with WebSphere CloudBurst





The WebSphere Hyper Visor Edition for AIX will be available November 25th. The WebSphere Cloudburst appliance will ship preloaded with this support on January 29th, 2010.

We haven't talked much about Hypervisor Edition or Cloudburst on this blog. Anyone interested in us talking more about the benefits and typical uses of this technology? The net, net of Hypervisor Edition is its a packaging vehicle of the application server environments for virtualized environments (doing the things you'd want a virtualized image to do correctly) that works with (or without) the CloudBurst appliance that deploys such environments to your private clouds used in testing and production.

Wednesday, November 11, 2009

XML Feature Pack, SCA Refresh, and SAML get a date

Yesterday, IBM announced the dates for the XML Feature Pack, a major update to the Service Component Architecture Feature Pack, and SAML support in the WebSphere Application Server.

Borrowing from the announce letter:


New WebSphere® Application Server V7 capabilities promote application innovation and efficient development and management through updated Service Component Architecture (SCA) support, new XML programming model standards, and support for secure, interoperable Web services using SAML1 Token:


  • Key updates to SCA programming model support for composite application assembly and service deployment through the WebSphere Application Server V7 Feature Pack for SCA V1.0.1 Refresh

  • Support for the XSLT 2.0, XPath 2.0, and XQuery 1.0 programming model standards to benefit XML application development scenarios through the WebSphere Application Server Feature Pack for XML

  • Support for OASIS Web Services Security SAML Token Security Profile 1.1 standard delivered in the WebSphere Application Server V7 Fix Pack 7 (7.0.0.7)




XML and SCA will be generally available on November 20th, and SAML will be available on November 13th. Hopefully you can try these out over the holiday season and be ready for deployment next year.

Monday, November 9, 2009

Introducing Feature Packs and the CEA Feature Pack

Here is a quick video I had missed the opportunity to blog about when it first came out talking about our WebSphere Application Server Feature Packs and the Communications Enabled Applications (CEA) Feature Pack.



We have a lot more about the CEA Feature Pack on our blog dedicated to it: http://ibmcea.blogspot.com/

Thursday, October 29, 2009

IBM WebSphere JPA 2.0 Open Alpha

Hi,
The WebSphere JPA team is proud to announce the availability of the IBM WebSphere Application Server V7 Java Persistence API (JPA) 2.0 Open Alpha. Details can be found here...

https://www14.software.ibm.com/iwm/web/cc/earlyprograms/websphere/wsasjpaoa/

This JPA 2.0 Open Alpha is based off the Public Final Draft #2 of the JPA 2.0 specification, which can be found here...

http://jcp.org/en/jsr/detail?id=317

If you are looking for something a bit more readable that highlights the new JPA 2.0 features, you could also reference the following two articles...

http://www.ibm.com/developerworks/websphere/techjournal/0909_col_sutter/0909_col_sutter.html
http://www.ibm.com/developerworks/java/library/j-typesafejpa/

Since the WebSphere JPA solution is built on top of the Apache OpenJPA project, you can always follow our progress via these URLs...

http://openjpa.apache.org/
http://openjpa.apache.org/jpa-20-roadmap.html

Enjoy!
Kevin

Monday, October 26, 2009

Cannot start a new UOW. A LocalTransactionContainment is already active with work

I found out recently that one of the most common search terms used by people who end up at this blog is:
"Cannot start a new UOW. A LocalTransactionContainment is already active with work."

I thought it might be a good idea to write here about why you could come across this message and what you can do about it.

The most likely place you'd see this is in the text of an IllegalStateException thrown from UserTransaction.begin().

Let's have a look at the message and see what it could mean.

The UOW mentioned in the first part of the message is the unit of work you're trying to begin. In the case where the exception is thrown from UserTransaction.begin(), this is saying that it has not been possible to start the UserTransaction.

The second part of the message is the reason the UOW could not be started. LocalTransactionContainment (LTC) is the mechanism used in WebSphere Application Server to handle the unspecified transaction context defined in the EJB specification. You can read about LTC in the WebSphere infocenter here.

In a nutshell, LTC provides a way for an application deployer to specify how transacted work can be automatically completed when it's performed outside of a global transaction. For example LTC can be used to automatically commit all the work done on JDBC connections used outside of a global transaction. The important thing to bear in mind is that pretty much whenever there is no global transaction context on a thread, WebSphere Application Server will have established an LTC.

Our error message is saying that some transacted work (e.g. using a JDBC connection) has been performed and has not yet been committed or rolled back at the time that UserTransaction.begin() is called. The LTC established before UserTransaction.begin() is called is said to be active with work under these circumstances and it is illegal to start a new UOW until that work is completed.

Assuming the intention really is to have the work done outside of the global transaction, the solution to the problem is to explicity commit or roll back the transacted work before the call to UserTransaction.begin().

Wednesday, October 21, 2009

Speaking at RTP WUG Next Week

If you're in the Raleigh/Durham area come to hear about the XML Feature Pack at the RTP WebSphere User's Group (WUG) on Tuesday. I'll be speaking through dinner to talk about what XPath 2.0, XSLT 2.0, and XQuery 1.0 bring to the table for JEE programmers, what features are in the XML Feature Pack Beta and how to get started. After that there will be a hands on session with WebSphere sMash.

Ryan Boyles from the WebSphere sMash team wrote up a great article that tells you how to get registered and maps to the location, etc here. Hope to see all my "local" people there.

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.