Friday, February 26, 2010

The pain of XML in Web 2.0

I have continued to think about the end to end XML story across database, middle tier, and the browser client. I have talked to many organizations that work with standard industry XML documents (HL7, OAGIS, ACCORD, etc) where the XML view unifies the data of their entire enterprise. To these organizations, they work data out from the message queues to data storage to middle tier. However, what does it look like when they want to expose this data to the web tier? There are products that handle this well like Lotus Forms based on XML centric standards like XForms. But what about Web 2.0 libraries like DOJO or jQuery?

I took the download sample I described here, and tried to visualize the data to Web 2.0 webpages. The data format of the XML of interest is:


<downloads>
... Lots of data before this summary ...
<monthByMonthDownloadStats>
<month codeDownloads="100" docDownloads="100" ending="2009-11-30" starting="2009-11-01" totalDownloads="200"/>
<month codeDownloads="200" docDownloads="200" ending="2009-12-31" starting="2009-12-01" totalDownloads="400"/>
... many other months here
</monthByMonthDownloadStats>
... Other summaries here ...
</downloads>


First, I looked at the DOJO bar chart code and did something like this in a server side XQuery program that generated HTML with the following under JavaScript:


var chart1 = new dojox.charting.Chart2D("simplechart1");
chart1.addPlot("default", {{ type: "Columns", gap: 5 }});
chart1.addAxis("x", {{ labels: [
{
for $i in (1 to $numMonths)
let $label := concat(
'{value: ', $i, ', text: "', my:getMonthLabel($i), '"}',
if ($i eq $numMonths) then '' else ',')
return $label
}
] }});


This works as XQuery can return sequence of primitive types and in this case, I'm just returning a string and inserting it inside of the JavaScript code that expects value/text values. But what if I want to have a REST endpoint serve up XML directly and have the browser consume it?

DOJO DataGrid can read from a DataStore which can be hooked to an XmlStore. This means I can use a browser side control to read from my server side XML. All seems good until you get into the details. Here are snippets of the code to make this "work":


<div dojoType="dojox.data.XmlStore"
url="http://server.com/summary.xml"
jsId="summaryStore" label="title"
attributeMap='{"codeDownloads":"@codeDownloads",
"docDownloads":"@docDownloads",
"starting":"@starting"}'
rootItem="month">
</div>
<div id="grid" style="width: 600px; height: 300px;" dojoType="dojox.grid.DataGrid"
store="summaryStore" structure="layoutDownloads" query="{}" rowsPerPage="40">
</div>
<script>
dojo.require("dojox.grid.DataGrid");
dojo.require("dojox.data.XmlStore");

var layoutDownloads = [
[{
field: "codeDownloads", name: "Code Downloads", width: 10,
formatter: function(item) {
return item.toString();
}
},
{
field: "docDownloads", name: "Documentation Downloads", width: 10,
formatter: function(item) {
return item.toString();
}
},
{
field: "starting", name: "Starting Date", width: 10,
formatter: function(item) {
return item.toString();
}
}
}*/]];
</script>


What are the some of the issues with this? First, the XmlStore has to map to a simpler format for the DataGrid to understand the XML data. That is why I had to manually tell the XmlStore to promote all the attribute values to similarly named element names. Nicely, the XmlStore supports allowing the ability to drill down to something other than the root item for the data, but it really just allows you to pick the name of an element (you'll see I specified "month"). The second problem is that for any complex industry specific data, likely that wouldn't be sufficient. What if I had multiple month elements at different parts of the XML tree? I'd end up getting a table that combined months that meant different things. What I'd really want is XPath as the root selector. Third, even though the Store abstraction is nice for handling multiple data formats, if I wanted data to be combined from different parts of the XML tree or multiple trees, what I really would like is XPath from the DataGrid formatter function itself.

Assuming this might be easier in the other very popular library for JavaScript query, I went off an investigated jQuery. I quickly found articles that talked about jQuery and XML. I patterned the next part of the article after this example. So, rewriting, I ended up with:


<script>
$(document).ready(function(){
$.ajax({ type: "GET", url: "http://server.com/summary.xml", dataType: "xml",
success: function(xml) {
$(xml).find('monthByMonthDownloadStats').find('month').each(function(){
var cd = $(this).attr('codeDownloads');
var dd = $(this).attr('docDownloads');
var st = $(this).attr('starting');
$('<div class="items" id="month_' + st + '"></div>').
html(
'<h2>Month starting ' + st + '</h2>' +
'<p>Code Downloads: ' + cd + '</p>' +
'<p>Doc Downloads: ' + dd + '</p>'
).appendTo("#page-wrap");
});
}
});
});
</script>
<body>
<div id="page-wrap">
<h1>Reading XML with jQuery>/h1>
</div>
</body>


Now, with jQuery, I'm actually able to do a little more "native" xml query. You'll see that I can access attributes directly. You'll see that I can navigate only to the months or the monthByMonthDownloadStats. However, as someone that knows XQuery, this syntax seems very unnatural (I'm sure it's very clear to JavaScript and/or CSS writers). Unnaturalness aside, this seems more verbose. In XQuery I can write this like:


<div id="page-wrap">
<h1>Reading XML with XQuery</h1>
{
for $month in downloads/monthByMonthDownloadStats/month
let $cd := data($month/@codeDownloads)
let $dd := data($month/@docDownloads)
let $st := data($month/@starting)
let $id := concat("month_", $st)
return
<div class="items" id="{$id}">
<h2>Month starting {$st}</h2>
<p>Code Downloads: {$cd}</p>
<p>Doc Downloads: {$dd}</p>
</div>
}
</div>


With this I get all of the same benefits that jQuery has (plus more - I'm almost sure jQuery wouldn't support the rich Functions and Operations of XPath 2.0 or any mixed XML content common in document centric XML approaches). XQuery mixes the construction of the content with the query of input much better in my opinion (I believe if we showed date comparison for example you'd see a worse comparison). Of course the benefit of jQuery over XQuery is XQuery doesn't run in the browser. I had to run the previous XQuery sample on the server. That is a pretty big benefit.

I think the summary of all of this, if you stayed with me this long, is that Web 2.0 technology in the browser isn't really ready to handle the complex XML documents that exist within most enterprises. This means if you want to marry Web 2.0 with the enterprise XML data, you'll need to write data conversions essentially extending the presentation tier across the browser and middle tier that simplify the data or use feature like the Web 2.0 Feature Pack to do this for you. Also, you'll need to learn two languages (arguably three if you consider jQuery a language) and programming styles when dealing the with XML data.

Given I look at WebSphere XML Strategy, I'm not sure I'm happy with this answer. I am currently looking towards other solutions to this issue. Given I'm rather new to Web 2.0, feel free to point out other things I didn't consider in the Web 2.0 space for XML processing (outside of XForms of course).

Monday, February 22, 2010

XPath, XSLT 2.0 and XQuery 1.0 in five minutes

You may remember a similar demo back in the open beta timeframe. Now, the IBM Thin Client for XML with WebSphere Application Server v7.0 is available based upon the shipping version of the XML Feature Pack. The following video will show you how to get up and running in about five minutes (including download time).

The thin client for the XML Feature Pack allows you to use the XPath 2.0, XSLT 2.0, and XQuery 1.0 runtime in your client applications of the application server using the same API's as when running in the application server. Before, you could get the thin client by installing the XML Feature Pack on top of the application server. Now, we've made the thin client separately downloadable which makes prototyping very simple.

Here are the links shown in the demo:

Direct link to download the thin client, Demo files

XML Feature Pack Thin Client Demo



Direct Link (HD Version)


Please note that the thin client is only supported on Java 1.6 JVM's.

Wednesday, February 17, 2010

Simple XQuery execution in Eclipse using XQDT/XML Feature Pack

I recently was shown that the current version of XQDT works with the XML Feature Pack. XQDT is working to become a main Eclipse project, currently under incubator. You can follow the instructions here on how to install .

After installing, here is how to setup the right things to make it call the XML Feature Pack:

1. Setup the interpreter to point to the XML Feature Pack thin client (note you can obtain the thin client from here for evaluation, or obtain it from a XML Feature Pack installation)
2. Create a new XQuery project
3. Setup the run as XQuery options to set the input file
4. Run and view the output

This will get you to a place where you can quickly edit and run XQuery programs. It won't allow you to debug and doesn't integrate with your Rational Application Developer projects, but for quick edit/run/fix development of XQuery it does a decent job. Its worth noting that this is something I discovered as working and given you get this from Eclipse/open source, there is no IBM support. However, if you give it a try and have some feedback, post it on the forum and I'll get it back to our tooling teams.

In the spirit of another big post, here are some images that show these steps, using the locations.xml and simple.xq that I used in this previous post.

To setup the interpreter to point to the XML Feature Pack thin client, load up Windows -> Preferences and navigate to XQuery -> Interpreters and click Add.



The settings to put into the dialog are:


Interpreter type: Java XQuery Engine
Interpreter name: XMLFEP
Interpreter JAR/WAR: C:\ibm\WebSphere\AppServer\feature_packs\xml\runtimes\com.ibm.xml.thinclient_1.0.0.jar
Main class: com.ibm.xml.xci.internal.cmdline.ExecuteXQuery
Interpreter arguments: ${query_file}


And it looks like this:



Next you need to create an XQuery project. It would be nice if you could use this functionality outside of an XQuery project, but I haven't been able to get that to work yet. You can create a new project by right clicking the project window New -> Other -> XQuery -> XQuery Project. Give it whatever name you want. Make sure you pick the XMLFEP (or whatever you named it) as the default interpreter. This looks like this:



Next, copy the simple.xq and locations.xml into your project and refresh. Once you have done that you should be able to right click on simple.xq and do Run As->Run Configurations.... That looks like this:



Once you're in there, navigate to Arguments. You can add any command line options here, but most importantly you want to add the -input parameter and point it to the input file (locations.xml in this simple sample). That looks like this:



Once you have this setup, you can Run the XQuery file in the project by right click Run As->XQuery or simply Control-F11. If it all is setup right, you'll see the output in the console window. That should look like this:



Update 2010-02-22: Note that if you have Java 1.5 on your path, make sure you replace it with Java 1.6. Otherwise you'll get an error about invalid class formats or magic numbers since the thin client only supports Java 1.6 JDK's. You can tell if your system have Java 1.5 on the path by opening a command prompt or shell and typing java -fullversion. Hopefully XQDT at some point will allow you to control what Java the execution is run on instead of defaulting to the global path version of Java.

Friday, February 12, 2010

Try out WebSphere's OSGi Application Feature

The open Beta version of the WebSphere OSGi Application and JPA Feature Pack hits the streets today. This brings together the JPA and OSGi Application Alpha programs and makes them installable features within a managed install. This post focuses on the OSGi Application feature of the Beta which and adds many new and good things beyond the Alpha including a completely re-factored version of the original Blog Sample application. In this post I will step through instructions for running and and modifying the Blog Sample application. Detailed instructions on how to run the Blog Sample are supplied in the Readme.txt that comes with the sample, so I will go over some of the steps quite briefly.

I will refer to your WebSphere home directory as WAS_HOME throughout this post. I ran through this using the free-for-developers version of WebSphere running on Ubuntu, so there may be a slightly Linux-y flavour; I'll document the 'assume nothing' Ubuntu install here. Everything should, of course, work on any supported WAS platform.

The Blog sample



The Blog sample is an OSGi Application that demonstrates the main concepts and many of the benefits of assembling and deploying an enterprise application as an OSGi Application. It comprises four main bundles and an optional fifth bundle, the relationship between the bundles is shown below:

The blog sample demonstrates the use of blueprint management, bean injection, using and publishing services from and to the osgi service registry, using optional services and the use of java persistence. In the main application, supplied as an EBA (enterprise bundle archive), the four bundles are:

  1. The API bundle - describes all of the interfaces in the application
  2. The Web bundle - contains all of the front end (servlet) code and the 'lipstick' (css, images)
  3. The Blog bundle - the main application logic. This bundle publishes a 'blogging service' that the Web bundles uses.
  4. The persistence bundle - the codes that deals with persisting objects (authors, blog posts ..) to a database (Derby in this case). The persistence bundle supplies a service for this which is used by the Blog bundle; the persistence service in this implementation uses JPA, with OpenJPA as the JPA provider.
  5. The final bundle is an upgrade to the persistence service, it contains an additional service that will deal with persisting comments as well as authors and blog posts.




Running the Blog Sample


The first steps in running the sample are to set up some data sources and create the database that the sample will use. There are instructions on how to do both in the Readme.txt file which can be found in WAS_HOME/feature_packs/aries/samples/blog; when you run the blogSampleInstall.py script use the 'setupOnly' option which will just create data sources. I'm going to step through the rest of the installation using the WebSphere Admin Console.

Start up WebSphere and point your web browser at the Admin Console, if you are running on a local machine and have not set up administrative security you will find the console at http://localhost:9060/ibm/console. Before going any further check that the data sources were set up properly by navigating to Resources->JDBC->Data sources, you should see something like this:



In the next sections I will work through installing the sample, starting with the bundles that it depends on.


Deploying bundles by reference


The Blog sample uses a common JSON library; while it could be deployed as part of the application the Blog sample illustrates how common libraries can be installed to the new WebSphere OSGi bundle repository and provisioned as part of the installation of an application that requires it. So the first thing we do is add the common JSON library to the WebSphere bundle respository. Navigate to Environment->OSGi Bundle Repositories->Internal bundle repository, the repository will be empty if you are using a new installation.

Click on 'New' to add a new bundle, on the next screen add the asset WAS_HOME/feature_packs/aries/InstallableApps/com.ibm.json.java_1.0.0.jar. Click 'OK' and then save the configuration, you should see this screen:




Creating the Blog Asset


Installing an OSGi Application through the Admin console is accomplished in two steps, described in this section. The blogSampleInstall.py script mentioned above illustrates the underlying wsadmin commands for a scripted install. The first step is to add an EBA (enterprise bundle archive) archive as an administrative asset, the .eba extension just indicates that this is an OSGi Application. Navigate to Applications->Application Types->Assets. Click 'Import' and add WAS_HOME/feature_packs/aries/InstallableApps/com.ibm.ws.eba.example.blog.eba. After saving you should see this:





Creating the Blog Sample Business Level Application



The second step is to to create an application which uses the EBA asset. Navigate to Applications->Business Level Applications, add a new application called Blog Sample:





After you have added the application you must associate it with the Blog sample asset, click on the sample and add com.ibm.ws.eba.examples.blog.eba under Deployed Assets.



As usual, save the configuration.

Start and run the Blog Sample application



At this point everything is in place and ready to run the application. From the Business Level Application screen, select the radio button beside the Blog sample and click start. If the sample starts as expected then point your web browser to
http://localhost:9080/blog, and you will see this:



With the blog sample running you will be able to add authors and posts and see that they are persisted to the database. Here is my first post to the Blog sample:



There isn't a great deal of functional code in this 1.0.0 version of the sample but a 1.1.0 version of the blog.persistence bundle is provided which adds a functional service to enable you to add comments to blog posts. We'll now illustrate how to update an application to add a new service by moving from version 1.0.0 of the blog persistence bundle to version 1.1.0 which contains the new service.

Changing the bundles that the Blog Sample application uses


First you will need to add the blog.persistence_1.1.0 jar to the internal bundle repository. This means repeating the same steps as for adding the JSON jar above. The path to the archive is WAS_HOME/feature_packs/aries/InstallableApps/com.ibm.ws.eba.example.blog.persistence_1.1.0.jar. Add it to the internal bundle repository and save the configuration.

Now you need to allow the application to use the new bundle. To do this, select the blog sample asset by navigating to Applications->Application types->Assets and clicking on com.ibm.ws.eba.examples.blog.eba. Scroll down to close to the end of the next screen where you will find this link:



Clicking on the 'Update bundle versions...' link will take you to this page:



Click on the the drop down arrow to the right of the line for the persistence bundle, you will be offered a choice of using the 1.0.0. or the 1.1.0 bundle. Choose 1.1.0 and follow through the preview and commit screens. You will need to restart the Blog application (from the Business Level Application screen) to make it use the new bundle, after that, navigating to http://localhost:9080/blog should show you the blog application with a new link to add comments. Unfortunately, it doesn't. This is what you will see:



This turns out to be entirely my mistake. In the last minute scramble to get the sample into the Beta delivery I didn't notice that some changes had been made to the JPA support had been made at the same time. The consequence of those changes is that my MANIFEST.MF requires an additional line. This is an easy fix and in the next section I'll describe how to make it.

How to modify the Blog Sample



All of the sample source code and Ant build files can be found under WAS_HOME/feature_packs/aries/samples/blog. Before making any other changes you should modify the build.properties file in this directory so that the first line refers to your WAS_HOME, you will need this file to build code with later on.

The best way to fix the problem with the MANIFEST.MF is to create another version of the persistence bundle, it should be a 1.1.1 version since the fix is very small. To start with, create a new directory under WAS_HOME/feature_packs/aries/samples/blog called com.ibm.ws.eba.example.blog.persistence_1.1.1, then copy the entire contents of com.ibm.ws.eba.example.blog.persistece_1.1.0 into it. Two files need to be modified, the META_INF/MANIFEST.MF needs to be changed to add the pink highlights shown below:




be very careful with the Meta-Persistence: line, it must have a space after the colon and the code will not compile if it doesn't. The second file that needs a small modification is the build.xml file, the project name needs to end 1.1.1, not 1.1.0.

After making the changes, run the build.xml file in your new 1.1.1 directory, like this:

ant -propertyfile ../build.properties -buildfile build.xml


This will create the archive target/lib/com.ibm.ws.eba/blog.persistence_1.1.1.jar. To install the new archive, go back to the WAS console and repeat the steps for adding it to the internal bundle repository and making the Blog Asset use it. Finally, restart the Blog application, point the web browser to the Blog and hit refresh. Et voila! A new link has appeared so that comments can be added to the post. Here is a screen shot with a comment added:




How does it work?



This Blog sample is designed to demonstrate how easy it is to change bundles and how to use optional services. To make this work we had to think about how to design the sample to be able to use the additional comment service from the start. This isn't really unrealistic, how often have you had a complete design in mind but not had time to implement the whole thing before delivering it? In this case we stopped short of delivering the service in the first version but we were able to supply it as an upgrade with an almost undetectable interruption to the service.

The sample is designed so that the bundles can be maintained completely independently of each other - I want the ability to upgrade one bit at a time. This might be overkill for an application of this size but the principle applies to applications of any complexity.

The other thing I have rather glossed over is that I didn't change the database, again the database had to have the right structure for the comment service from the start. However, this follows fairly naturally from designing the application to expect to be able to use commenting.

The best way to understand what is happening when the application is running is to look at the META-INF.MANIFEST.MF and OSGI-INF/blueprint/blueprint.xml files for each bundle. As the code is fairly simple, it's easy to follow through to the Java code and see where properties are injected by the container as specified in the application blueprint.

In the next revision of the Beta release I will fix the mistake in the MANIFEST.MF and will also correct a horrible anti-pattern that I introduced in trying to keep the persistence blog layers separate. In fact, I'll buy a beer for anyone that can see it and send me a good fix for it!

Monday, February 8, 2010

Some Learning Experiences with XQuery/XSLT2

While working on a demo of XQuery, I ran into issues with the following things and wanted to share in case others new to XQuery could benefit. The demo was the first time I linked XQuery to Web 2.0 (was populating DOJO graphs from XML data) in an application.

First, DOJO is based upon JavaScript. When you write an XQuery that generates a dynamic web pages that mixes XQuery and DOJO, you need to be careful of the "{" character. JavaScript structures love to use the "{" character, as does XQuery. XQuery allows you to escape the "{" character by using "{{" (similarly for "}"). This isn't a huge issue once you realize what is going on as the XML Feature Pack will complain when compiling a XQuery + JavaScript program telling you that some XQuery script subsection isn't valid (its trying to interpret the JavaScript structure as XQuery).

Second, similar to a problem I had before, you have to be careful with namespaces. I had something like:


<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>Title</title>
</head>
<body>
{
for $i in /some/path/in/input/document
return $i
}


And the some path in input document wasn't returning any data, even though I knew there was data at that path. The issue here is documented in the spec. The default namespace of xhtml in the direct constructor becomes the default namespace for the path step elements. I found the simplest way to fix this was to move the path logic into a declared function that was outside of the direct constructor where the XHTML default namespace wasn't in scope. I could have also re-declared the default namespace or prefixed all xhtml nodes, but that wouldn't look as clean.

Speaking of declared functions, I also was tripped up for a little bit by the fact that declared functions don't get the same context passed to them automatically as the does the main execution of the same module. This exhibited by the runtime telling that the path I was executing was invalid as the context was unknown. Again the spec tells me that the context is undefined. In order to deal with this, you just need to pass the context of interest to the function and have all relative paths work off of the passed context.

Finally, I did get tripped up on XSLT 2.0 as well. When running a stylesheet that took no direct input, I mistakenly called setXSLTInitialMode (good for defining multiple paths through a XSLT 2.0 stylesheet) instead of setXSLTInitialTemplate (good for loading data from multiple input docs or unparsed text, etc.). Luckily, the errors of IXJXE0793E and ERR XTDE0045 came out in the logs and helped me spot the code completion generated typo.

Hopefully some small help if, like myself, you're working to use XQuery/XSLT 2.0 more and more in your ever day coding. Now, if I could just stop typing ";" at the end of XQuery let statements.

Friday, February 5, 2010

The appliance form factor of WebSphere CloudBurst

As with most new technologies, the WebSphere CloudBurst Appliance inspires a healthy set of questions. As usual most of the questions are about features, capabilities, use cases, etc., yet there is one question that is quite frequent but a bit of an outlier from the preceding categories. Personally, I’m not sure I’ve talked to a group about WebSphere CloudBurst without getting this question. What's the question?

Why is WebSphere CloudBurst an appliance?

It is a very fair question and one whose frequency used to surprise me. I guess I should have seen it coming because save the WebSphere DataPower Appliance, the brand isn’t typically associated with hardware.

In this particular case though, I can confidently say the appliance was exactly the right form factor for the offering, and it comes down to three main reasons:

1) Consumability

2) Capability

3) Security

In general, appliances deliver a very high level of consumability or put another way, decreased time to value. WebSphere CloudBurst fits this mold. When you receive the appliance you hook it up to your network, do some one time initialization and you are up and ready to go. The appliance comes loaded with pre-built and ready to use virtual images and patterns. You simply define your cloud infrastructure to WebSphere CloudBurst and you can start deploying the shipped patterns or you can begin to build and deploy your own. Since the function provided by WebSphere CloudBurst is delivered on the appliance’s firmware, there is no need to install and subsequently maintain software on other machines. In addition, any updates to this function are delivered via firmware updates that can be applied directly from the appliance’s console.

From a capability perspective, appliances deliver right-sized, purpose-built compute resources. In particular, the WebSphere CloudBurst Appliance contains the right amount of processing power, memory, storage, etc. to meet its needs. In many ways, this points back to consumability in that you don’t have to hunt down the right set of hardware and storage because all of that is delivered on the appliance. In addition, the delivery of function (firmware) and hardware in one unit allows for optimization otherwise hard to achieve.

Lastly, and possibly most importantly, the appliance form factor of WebSphere CloudBurst provides for a very high level of security. To start, all of the contents stored on the appliance, whether they exist on the hard drive or flash drive, are encrypted by a private key. This private key is unique to each and every appliance and it cannot be modified. The appliance provides no way to upload and execute code. There is no shell with which you can interface, and the internals operate on “Just Enough Operating System” principles to decrease the attack surface even further. Finally, the appliance is physically secure. If someone were to remove the casing in an attempt to access the internals, the box is put into a dormant state and must be sent back to IBM before it can be used again. This is in no way an exhaustive list of security features, but hopefully it gives you some background on the high degree of security provided via the appliance form factor.

I hope this helps shed some light on the decision to deliver WebSphere CloudBurst as an appliance. If you have other questions about WebSphere CloudBurst check out my top ten FAQs, or leave a comment below.

Tuesday, January 26, 2010

DevX coverage of CEA, XML, and SCA Feature Packs

Here is a good DevX article that covers the values of the three WebSphere Application Server Version 7.0 Feature Packs - Communication Enabled Applications (CEA), XML (XQuery, XSLT 2.0, XPath 2.0) Applications, and Service Component Architecture (SCA). It also covers why our strategy of feature packs helps our customers save money, get functions easier, and have more stable environments.

Friday, January 22, 2010

The WebSphere CloudBurst Appliance

Up to this point, we haven't discussed the WebSphere CloudBurst Appliance too much on this blog (though I've been writing about it extensively here). So if you have been following and reading along here and have only casually heard of this new appliance, you may be asking yourself "What is it?" and "What does it do?" Given that, I thought it was about time we provided a brief overview of WebSphere CloudBurst on the WebSphere Community Blog.

Very simply put, WebSphere CloudBurst is a cloud management device provided in an appliance form factor. It provides you with the capabilities to create, deploy, and manage virtualized WebSphere application environments in an on-premise cloud. Laying the foundation for the cloud-based application environment lifecycle capability provided by WebSphere CloudBurst are special virtual images. These virtual images, which are provided and maintained by IBM, provide pre-installed, pre-configured software stacks that include everything from the operating system all the way through the IBM Software middleware tier. As of right now there are three different IBM Software offerings packaged in this virtual image format: WebSphere Application Server (generally available in 6.1 and 7.0 versions), WebSphere Portal 6.1.5 (Beta version), and DB2 Enterprise 9.7 (trial).

Why did I refer to the virtual images as building blocks? Because from these virtual images WebSphere CloudBurst patterns are built. A pattern is a complete representation of your middleware application environment. The appliance comes pre-loaded with a set of best-practice patterns, and you can also build your own. A custom pattern will include the topology (i.e. the number of application server nodes, management nodes, databases, etc.) you desire, as well as your custom configuration like your applications that run in the environment. As an example, here’s a screenshot of a WebSphere Application Server pattern I built using WebSphere CloudBurst:

Once you build your custom application environment in the form of a WebSphere CloudBurst pattern, you can use the appliance to dispense it to your on-premise cloud. This cloud, consisting of a pool of hypervisors (both VMware and PowerVM platforms are supported) and associated compute resources like memory, storage, CPU, and IP addresses, is defined to and managed by the appliance. When deploying your patterns into the cloud, WebSphere CloudBurst uses an intelligent placement algorithm that considers things like available compute resource and high availability to ensure that your application environment runs as safely and efficiently as possible.

The end result of deployment is a fully functional WebSphere middleware environment running in one or more virtual machines. These environments offer the same capabilities and function as if you had deployed them in a more traditional manner, so you can run the same applications you use now unchanged. In addition, you can use WebSphere CloudBurst to apply fixes and upgrades to your application environments in a simple, fast and safe manner, and you can easily remove an environment when you are no longer using it thus returning resources to your cloud.

In my opinion, this is one of those things that is easier to understand when seen. In that regard, I’ve put together quite a few short demonstrations that highlight different features and capabilities of the appliance. If you are interested in reading more, I mentioned a blog earlier, and we have quite a few articles available on developerWorks.

Jerry's 2010 WebSphere Trends


Just in case you missed it, our WebSphere CTO, Jerry Cuomo, has released his top trends for 2010. Read more to learn about our trends towards Agile Delivery and Development, Business Driven IT, and Extreme Transaction Optimization and listen to the video to find out more information on the effects to the WebSphere platform.

Service Component Architecture

It's been way too long for an update on SCA in WebSphere, but wanted to let you know that not only did we release our 1.0.1 refresh of the SCA Feature Pack for WebSphere V7, but our team has also been creating collateral to support developers get started with Open SCA. The feature pack is available for V7 deployments here. I've blogged several times about the features that were added, so you can look at earlier posts in this blog for a good summary if you so desire.

The WebSphere team has been busy at developerworks refreshing and adding articles regarding Open SCA -- Exploring the WebSphere Application Server Feature Pack for SCA:
  1. Part 1: An overview of the Service Component Architecture feature pack
  2. Part 2: Web services policy sets
  3. Part 3: Intents and policies available in the SCA feature pack
  4. Part 4: SCA Java annotations and component implementation
  5. Part 5: Protocol bindings for Service Component Architecture services
  6. Part 6: Using Spring with Service Component Architecture
  7. Part 7: Using Atom and JSON-RPC for Web 2.0 support

IBM Education Assistant has also been enriched with SCA collateral and you can get started here. If you never have seen Education Assistant before, you're missing out on a great resource!

We welcome your comments about the papers themselves, collateral, or the feature pack itself.

Steve Kinder

Monday, January 18, 2010

WebSphere Application Server Administration Using Jython

I recently had the opportunity to review the recently published WebSphere Application Server Administration Using Jython from IBM Press 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.

After spending a considerable amount of time teaching myself Jython and learning to administer WebSphere Application Server using it, I wish I had a copy of this book when I first started writing Jython scripts for WebSphere Application Server administration. The authors do a great job of both introducing the reader to the Jython language as well as introducing the reader to the WebSphere Application Server administrative objects.

The WebSphere Application Server Administration Using Jython book is brilliantly structured, first the Jython language followed by WebSphere Application Server administration. The book is also full of practical examples.

An excellent resource for both novice and experienced WebSphere Application Server administrator, this book has earned itself a spot on my bookshelf and in my list of my recommended books for folks interested in automating their WebSphere Application Server administration.

Jerry Cuomo's 2010 WebSphere Trends

Jerry (our WebSphere CTO and IBM Fellow) has posted his 2010 trends and focus areas video. Besides these year kick-off videos being entertaining (mildly :) ), they are valuable to understand what we're focusing on across the entire WebSphere set of products.

Check it out here.

Friday, January 8, 2010

External Coverage of XML Feature Pack

Last year InfoQ did a nice article on the XML Feature Pack. The article does a good job of talking to application scenarios where the new XPath 2.0, XSLT 2.0, and XQuery 1.0 standards are valuable. It also talks about why native XML programming is better for performance, multi-core, and cloud strategically as compared to object oriented imperative approaches. The article also mentions comparisons to other technologies.

Today, Dustin Amrheim, wrote an article that focused on the declarative vs. imperative comments in the InfoQ article and talked about how this matters in the cloud. He argues that this is an interesting approach as compared to packaging existing imperative programming models.

Both are worth a read.

WebSphere first on SPECjEnterprise2010 Java EE Benchmark

In case you missed it, we published the first two results for a new benchmark - SPECjEnterprise 2010.

This new benchmark covers the Java EE 5.0 programming model running on an application server. You may remember SPECjAppServer 2004 and our work to lead in that benchmark. Given how old the 2004 benchmark is, it no longer represents the common practices of coding of new applications. This third version of Java enterprise application server benchmark covers areas such as the simplified Java EE 5.0 programming model for persistence and web programming, web services, and messaging.

By being first to publish, IBM continues to demonstrate its commitment to driving standard third-party trusted benchmarking. Also, we show how the WebSphere Application Server really shines on Java EE support in terms of being consistently first to market with highly performant programming models that matter to you. We published both on a simple single server (1) as well as a highly available, scalable cluster configuration (2) which demonstrates WebSphere Application Server 7.0's ability to scale from simple to complex application environments.

If you want to chat about this benchmark, IBM's results, or see some other standardized performance work we're doing at SPEC and can be in the San Jose area at the end of the month, please stop by the "First Joint WOSP/SIPEW International
Conference on Performance Engineering
". I'll be in attendance talking about the SPEC SOA benchmark work.

(1)IBM SPECjEnterprise2010 result of 7903.16 EjOPS using WebSphere Application Server V7 on IBM BladeCenter HS22 (8 nodes, 64 cores, 16 chips) and DB2 9.7 on IBM System x3850 (1 node, 24 cores, 4 chips).
(2)IBM SPECjEnterprise2010 result of 1,013.40 EjOPS using WebSphere Application Server V7 on IBM System x3650 (1 node, 8 cores, 2 chips) and DB2 9.7 on IBM System x3850 (1 node, 12 cores, 2 chips).
Source: http://www.spec.org; Results current as of 01/08/10.

Monday, January 4, 2010

Using the versionInfo and historyInfo commands

If you are an administrator of the WebSphere Application Server product, or if you use it frequently during the course of your job, chances are you are familiar with the versionInfo command. In short, you can run this command to get information about the installed version of the server product. The output is similar to the following:

Report at date and time January 4, 2010 12:04:52 PM CST

Installation
---------------------------------------------------------------------
Product Directory C:\was70\as
Version Directory C:\was70\as\properties\version
DTD Directory C:\was70\as\properties\version\dtd
Log Directory C:\was70\as\logs
Backup Directory C:\was70\as\properties\version\nif\backup
TMP Directory C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp

Product List
---------------------------------------------------------------------
CEA installed
ND installed

Installed Product
---------------------------------------------------------------------
Name CEA Feature Pack
Version 1.0.0.1
ID CEA
Build Level a0944.10
Build Date 11/6/09
Architecture Intel (32 bit)

Installed Product
---------------------------------------------------------------------
Name IBM WebSphere Application Server - ND
Version 7.0.0.7
ID ND
Build Level cf070942.55
Build Date 10/24/09
Architecture Intel (32 bit)
---------------------------------------------------------------------
End Installation Status Report
---------------------------------------------------------------------

From the above, I can tell that I have the WebSphere Application Server ND product installed along with the WebSphere CEA Feature Pack.

That's handy in a lot of situations, but what if I want more detail. In particular, what if I want to know about maintenance packages that I have applied to this install? The versionInfo command can provide me this information if I run it with certain options (thanks Johannes, see the comments below), but there is also another command that will give you this information: historyInfo.

The historyInfo command examines the WebSphere Application Server configuration and provides a list of changed components and uninstalled/installed maintenance packages. Here's a small snippet of output from the command:

Installation Event
---------------------------------------------------------------------
Maintenance Package ID 7.0.0.7-WS-WAS-IFPK93786
Action install
Package Filename 7.0.0.7-WS-WAS-IFPK93786.pak
Backup File Name C:\was70\as\properties\version\nif\backup\7.0.0.7-WS-WA
S-IFPK93786.pak
Timestamp 2010-01-04 07:57:46-0600
Result success

Component Installation Event
---------------------------------------------------------------------
Maintenance Package ID 7.0.0.7-WS-WAS-IFPK93786
Component Name was.rt.bundle
Action install
Update Action replace
Timestamp 2010-01-04 07:57:46-0600
Result success

As you can see above, output from the historyInfo command shows me information about an interim fix that was applied, and it shows me the components, in this case the was.rt.bundle component, that were changed as the result of the fix application. Though you can get this same level of detail with certain flavors of the versionInfo command, I thought I'd point out another option as well. For more information about using the historyInfo command check out this entry in the WAS information center.

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
- 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

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

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

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/