Tuesday, 19 June 2007

WSRM 1.1 is an OASIS Standard

The press announcement will go out soon, but for avid followers of the WS-RX technical committee, I can confirm that WSRM 1.1 is really, finally, truly, honestly an OASIS standard. You can see it here:

http://docs.oasis-open.org/ws-rx/wsrm/200702/wsrm-1.1-spec-os-01.pdf

We finally made it!

If you've followed my blog you know about my previous history of optimism (known as counting chickens before they've hatched), so this time I waited until the documents were officially posted to let you know that WSRM is finally a standard.

Let me take this moment to recap what WSRM is and offers:
  • An interoperable wire protocol for Reliable Messaging based on SOAP and WS-Addressing
  • Support for Exactly-Once, At-Least-Once, At-Most-Once and Ordered delivery
  • The ability to offer two-way reliable messaging even through firewalls, NAT, etc. (So you can sit in Starbucks and have your RM Agent reliably deliver and collect your purchase orders for the day over the Starbucks Wifi)
  • We've tested and shown interoperability between IBM, Microsoft and Apache/WSO2, and we will do more testing in the coming months
  • Composability with SSL and WS-Security to ensure that the RM channel itself isn't a target for attacks
  • Support for binary messages through composability with MTOM
  • Support from a wide variety of software companies and organizations, including IBM, Microsoft, BEA, Tibco, JBoss/Redhat, Apache, WSO2 (of course!), Hitachi, Fujitsu, NEC, Nokia, Ericsson, and plenty of others
As co-chair of the working group I want to offer my special thanks to Sanjay Patil, my co-chair, without whom I think I would have gone mad! While the whole TC worked very hard, I think its fair to say that there were a few people who really made this happen. Without denigrating the efforts of the rest of TC, I'd like to call attention to the work done by Doug Davis from IBM, Gilbert Pilz from BEA, Tom Rutt from Fujitsu, and Marc Goodner from Microsoft. As the most active editors of the spec, the issues manager, and the secretary of the TC, this team really did the hard monkey work!

Friday, 15 June 2007

Podcast on the WSO2 ESB

You can find a podcast of Dana Gardner interviewing me and Ron Schmelzer from ZapThink here. If you'd rather read it there is a transcript.

Tuesday, 12 June 2007

25 ways to improve an Open Source project

Samisa, one of the committers on Axis2/C has posted a nice blog on 25 ways you can help that project. Reading through them, I realised that they are applicable to almost any project. I think this is a great list.

A lot of people looking at an Open Source project assume that there is this divide between "users" and "committers" - that the separation between contributing or not is black and white. The reality is that there is no black and white. The most useful contribution that a project receives all year might be something as simple as:
  • Finding and documenting a sneaky bug
  • Letting the developers know how their project is being used - so they focus on real-world use cases
  • Suggesting a simple improvement that transforms the project from being ok to being great
So my advice to people who use Open Source software is this: give a little back - even if its tiny.

Monday, 11 June 2007

WSO2 ESB 1.0 released

Today we launch the WSO2 ESB 1.0. You might look at this and at Apache Synapse 1.0 and ask what's the deal?

The WSO2 ESB 1.0 is heavily based on Apache Synapse 1.0. The reason they are both being launched within days of each other is that we've been waiting for Synapse 1.0 to go out before we launched the ESB.

So what is the difference? Well there are two main differences.
  • The first one is that the ESB has an AJAX-based Web User Interface to configure it. This UI helps to create and manage the configuration.
  • The second difference is support, training and consultancy. WSO2 is well-placed to advise, support and help you plan an ESB based on Apache Synapse and the WSO2 products. For many companies, the uptake of Open Source is gated by whether there is a professional services company willing to help them, and in this case we are ready!
  • The final difference is that we have built an internal registry and repository, that you can manage using the Web UI. This means that you can store, manage and use all the resources that are needed - WSDLs, URLs, XSLTs, Scripts, WS-Policies, Synapse.xmls, etc, in a single place. This is - in my opinion - one of the key aspects to really building an ESB with Synapse (or any other product). We have further enhancements to do in this area, so keep your eyes peeled.
I've been asked a lot - what is the value of the WSO2 ESB compared to other products or projects, and I think there are three main aspects:
  1. Performance
  2. Simplicity
  3. Pragmatism
The ESB has been designed to be blisteringly fast. Now we can't name names (because of the usual license agreement carp that proprietary vendors do), but we've tested the WSO2 ESB against a leading proprietary/closed-source ESB. Our figures show we can do simple routing 20% faster, content-based routing 30% faster and XSLTs 100% faster. We will publish the performance data soon. We have a completely non-blocking async model - even for HTTP and HTTPS, meaning we can scale to handle thousands of concurrent connections without dropping any.

The second aspect that I think is cool is the fact that our product is a simple 30mb download. You unzip it, type bin\wso2-esb and point your browser at http://localhost:9443/.

The third aspect I think is really valuable is that we've tried to prioritize the basic needs customers have first. So the ESB comes with built-in support for logging, failover, load-balancing, content-based routing, transformation with XSLT and E4X, scripting support and header manipulation. And you can monitor and trace every aspect simply through the Web UI. The result is that you can do useful things immediately.

You can tell I'm pretty excited about this, so take a look yourself. Here is the announcement with the links:

-----------------------------

The WSO2 ESB team is pleased to announce the release of the WSO2 Enterprise Service Bus (ESB) v1.0

This release can be downloaded from http://dist.wso2.org/products/esb/java/1.0/

Key features of the WSO2 ESB 1.0 include:
  • The non-blocking http/s transport permits ultra-fast execution and support for large numbers of connections. Because the WSO2 ESB automatically optimizes the parsing of messages, it can perform virtualization and routing with sub-millisecond overhead. In addition it can support thousands of simultaneous connections.
  • Proxy services enable mediation of services without the need for coding; they include transport (HTTP/S, JMS, SMTP), interface (WSDL, Schema, Policy), message format (SOAP, POX), quality of service (WS-Security, RM), and optimization switching (MTOM, SwA). For example, the WSO2 ESB can be used to simply bridge between an XML message interaction on IBM’s MQSeries middleware and a Web service call on a Microsoft .NET server.
  • An integrated registry/repository facilitates dynamic configuration, meaning that administrators can manage the ESB without having to bring the system down. The WSO2 ESB also includes built-in support for external registries, allowing resources to be centrally managed and refreshed as necessary without having to bring the systems down.
  • Throttling, load balancing and failover controls optimize availability and help to manage and maintain service-level agreements.
  • The light, feature-rich AJAX Web-based administration console facilitates monitoring, management and definition of policies, routing and transformations.
  • Configuration model support includes XSLT, XPath, Java, Ruby, and Javascript, providing administrators with maximum flexibility.
Thanks
WSO2 ESB Team

Friday, 8 June 2007

Apache Synapse 1.0 released

The Apache Synapse team is pleased to announce the first full release of Apache Synapse with the 1.0 release.

Apache Synapse is a simple and highly effective Web Services intermediary and SOA framework. It can be
added to your existing network very simply either as a services gateway or as an HTTP proxy. Once Apache
Synapse is mediating your service requests it can perform many functions including routing, load-balancing,
transformation and protocol switching. Apache Synapse can be used to build an Enterprise Service Bus (ESB) or
Service Oriented Architecture (SOA).

Apache Synapse has been designed to support very fast XML routing with a streaming XML design based upon
Apache Axiom. in addition, the use of a completely asynchronous architecture and non-blocking IO based on Java NIO
ensures that Synapse has very low overhead and can scale to support thousands of concurrent clients without dropping
messages.

The main features of Synapse include:
* Support for XML/HTTP, JMS, SOAP 1.1/1.2, WS-Addressing, MTOM binary attachments
* Simple protocol switching between XML/HTTP (POX) and SOAP, JMS and HTTP
* Built in support for XPath and Regex based routing, XSLT-based transformations
* High-performance non-blocking HTTP and HTTPS support (based on Apache HttpCore)
- millisecond-level routing
- supports thousands of concurrent connections
* Load-balancing, failover and throttling support
* Support for advanced Web Services standards
* WS-ReliableMessaging
* WS-Security
* WS-Policy
* JMS support including text, binary, XML and SOAP/JMS
* Logging and header-manipulation
* Extensible via scripting languages including JavaScript, Groovy and Ruby
- full support for native XML via E4X and REXML
- Apache BSF support enables many scripting languages
* Custom Java classes or Spring Framework assemblies allow Synapse to be extended
* Extensibility model allows the core XML configuration language to be enhanced by plugin JARs
* Support for timeouts, fault handling and recovery
* A large number of default samples including content-based routing, XSLT, WS-Security and other topics
* Built in test/sample server based on Apache Axis2 for prototyping and testing
* Ability to load scripts, metadata, configuration and resources from a remote registry
* Optional dynamic update to routing tables and other configuration
* Support for JDK 1.4 and 1.5

The major changes since the 0.91 release are:
* Upgraded to use Apache Axis2 1.2
* Addition of the non-blocking HTTP and HTTPS transport
* Improved samples and documentation
* Enhanced support for WSDL endpoints and load-balancing, throttling and failover

The Apache Synapse code and binaries are available from the website at http://ws.apache.org/synapse

WSRM 1.1 nearly nearly ready

After my previous blog entries on the progress of the WS-RX technical committee and the WSRM 1.1 specification, I've been a little paranoid of counting chickens before they have hatched.

However, I'm happy to say that the progress is good.

From May 16th to May 31st, OASIS ran a ballot to accept WSRM1.1 as an OASIS standard. The ballot passed with just one No vote, which was about the IP policy under which the TC was started. Take a look, its certainly an interesting perspective.

The TC has considered the No vote, but nevertheless started a new ballot to approve the spec as-is. So unless there is a sudden change of heart, we expect WSRM1.1 to become a fully-fledged OASIS standard in a weeks time. Yay! I shall be cracking open a bottle of champagne.