Wednesday Aug 08, 2007

Take control of your Security Tokens

German Lorenz cipher machine

A security token is issued by a Security Token Service (STS) to secure a SOAP message in an interoperable manner. Jiandong explained how NetBeans IDE, with WSIT module (part of Metro), allows you to build and configure a STS.

The STS is a Web service that can be deployed on GlassFish. This Web service then issues security tokens such as Username/Password, X.509 or SAML.

In a follow up entry, Shyam explained how to leverage the extension points in WS-Trust implementation of Metro to implement STS to meet a specific business requirement.

Wednesday Jul 18, 2007

Metro and Fourth Microsoft Interop Plugfest

Ken, Mike, Jiandong, Harold at Plugfest

Metro, the Web services stack in GlassFish V2, participated in the fourth Microsoft Interoperability Plugfest. Read Harold's report for more details.

Metro is already interoperable with .NET 3.0 and Microsoft is working on .NET 3.5 framework. This plugfest participation was to ensure that there are no regressions when a Metro 1.0 client try to invoke a .NET 3.0 endpoint deployed using .NET 3.5 runtime and vice versa.

We have already done extensive testing between Metro 1.0 and .NET 3.0. The next version of Metro will align with the specifications used in .NET 3.5.

You may also want to read about our participation in first, second, and third plugfest.

Thursday Jul 12, 2007

Overview Article about Project Tango

Tango Logo

There are several good sources of information for Project Tango - Web Services Interop website,, Tutorial, Screencasts, Blogs, and Previous Entries on TheAquarium.

If you are interested in a complete overview of Project Tango without going through all the sources then read this new 26-page article - Project Tango: An Overview. It describes what is Project Tango and its feature set, how is it related to Metro, GlassFish, and NetBeans, and many other details.

Let us know if you are interested in helping translate this document to other languages.

Wednesday Jun 27, 2007

Fourth Interop Plugfest - Metro and .NET framework

Seattle from Kerry Park

Microsoft has announced a new Web Services Interoperability Plugfest, and Sun will participate using Project Tango, a key component of Metro - the Web services stack in GlassFish V2. Project Tango's focus is interoperability with .NET 3.0 and that will be unchanged until GlassFish V2 is released later this year. This plugfest will give us an opportunity for regression testing with Microsoft's upcoming .NET 3.5 framework as well. Relationship building will continue to be a key part of this visit.

The interop scenarios from the plugfest are run regularly and the results with Tango Milestone 5 (integrated in GlassFish V2 b50) demonstrate that.

Tuesday Jun 19, 2007

GlassFish Web Services Stack Tango with JavaSE6

Duke Tango

The Web services stack in GlassFish V2 uses JAX-WS 2.1 and JAXB 2.1 as the core Web services platform. WSIT extends this core by providing an implementation of key WS-\* specifications. Since JavaSE 6 has Web services support through the JAX-WS 2.0 and JAXB 2.0 specifications, it allows to build basic Web services using only JavaSE 6 but does not have any of the WSIT capabilities. But now that's possible!

Fabian explained how a WSIT endpoint be easily deployed using the JAX-WS Endpoint API. In a follow up post, I provide a detailed writeup with complete working code.

GlassFish Web services stack "tango" nicely on Tomcat, Jetty and JavaSE 6.

Monday Jun 11, 2007

Stateful Web services Magic in GlassFish


TheServerSide is excited about the Stateful Web services support in GlassFish. Here is a quote from a recent article

It's almost magical how easy the code is, to use a stateful SOAP service in this manner.

Another user commented:

Looks as great as Microsoft breaking 8+3 limit in filenames.

Stateful Web services support in JAX-WS 2.1 were announced last year and customers have found the programming model dead simple. This extension to JAX-WS RI uses WS-Addressing behind the scene to maintain multiple instances of a service. And because a key goal of Project Tango's is to be interoperable with Microsoft .NET 3.0 framework, this support is interoperable as well. You can see the complete sever-side code on JAX-WS and client-side code on .NET 3.0 in an entry linked from Kohsuke's detailed entry.

Post a comment/question at JAX-WS forum if you would like to see more improvements in this area.

Friday Jun 08, 2007

Interoperable Reliable Sessions in GlassFish


It is often said "Two is a company, three is a crowd". However in the recently concluded tri-part blog series by Bhakti and Mike on Sessions Management using WS-Reliable Messaging implementation in Project Tango, the third part makes the other two look better.

Part 1 shows how Reliable Sessions are supported using along with fully functional source code and instructions to run. In Part 2, Mike discusses the problems with them and why they can't be used in real-life applications. Part 3 discusses how this issue is resolved by slightly altering the application code.

And all of this in an interoperable manner with Windows Communication Foundation, which is the biggest value proposition of Project Tango after being a complete implementation of key WS-\* specifications. You can try Reliable Sessions by downloading GlassFish V2 build and follow the sample code and instructions in the blog series.

Friday May 25, 2007

Now also on Jetty... the GlassFish Web Services stack

XML Duke

One of the principles of GlassFish is to encourage the adoption of its components, and, as part of that, we attempt to make those components portable. Vivek had already reported that JAX-WS 2.1 only depended on Servlet 2.4 and would run on Jetty (and others), and now Arun provides the specific instructions to achieve this, including the WSIT/Tango features.

Check the installation details at Arun's writeup.

Sunday Apr 29, 2007

Distributed Transactions Between Glassfish and .Net 3.0

Headshot of Ryan Shoemaker

Ryan Latest Entry provides an overview of Distributed Transactions in Tango/WSIT:

In a homogeneous GlassFish system, distributed transactions flow across RMI/IIOP. In ... (WSIT)..., the transactions use the WS-Coordination and WS-AtomicTransaction protocols to flow transactional context and execute the two-phase commit protocol.

To describe these features, Ryan created a very complete screencast that uses the WSIT NetBeans plugin so you may want to start there (Arun's blog, screencast) and then read Ryan's blog entry and screencast. Other useful links are:

• Community and Sun's WS Interop Sites.
• Tutorial and Screencasts
• Blog feeds
• Forum and Mailing List

Distributed Transaction support is part of WSIT Milestone 4 which will be in GlassFish beta2, but it can also be used in other containers through the JAX-WS GF stack.

Tuesday Apr 24, 2007

Ask the Experts Session on WSIT and Project Tango

Ask the Experts

Ask the Experts (April 30-May 1): WSIT and Project Tango.
Got a question about Web Services Interoperability Technology (WSIT, aka Project Tango) for Web Services-based interoperability between Java EE and .Net?

Post it during this session from April 30 to May 4 on the Ask the Experts page and get answers from Sun experts Arun Gupta, Harold Carr, and Marek Potociar.

Tuesday Mar 27, 2007

Worthwile JAX-WS presentation from is the website where JavaPolis presentations are being made available. They are presented in a nice format with slides, audio and even video (of the speaker so it doesn't work all that well for demos).

The "Real world web services with JAX-WS" presentation didn't exactly get the best time slot (afternoon of last day), so whether you didn't make it to Antwerpen or are interested in a JAX-WS presentation from an architect who has actually implemented the technology, listen to this talk by Stijn Van den Enden from ACA IT-Solutions. Stijn covers from basics of the programming model to more advanced topics such as Handlers, JAXB customization, Provider/Dispatcher APIs for asynchronous communication, and touches on a few best practices. Really worth your time.

If slides are a little hard to read, go to the JavaPolis 2006 web site and get the PDF.

Saturday Mar 10, 2007

WSIT (nee Project Tango) Milestone 3 is Now Available

The WSIT group in the GlassFish community recently released Milestone 3 of WSIT (nee Tango). WSIT builds on the core JAX-WS RI implementation and you can Download and Install them manually, but you can also wait until Monday for GF v2 beta, which will include these technologies directly. Relevant blogs from the team include:

Duke Tangoing

•  Harold provides the Announcement.
•  Fabian with an overview of WS-Policy.
•  Marek on WS-Policy: what is it? and how does it work?.
•  Harsha covers WS-Trust, including samples.
•  Ashutosh summarizes the many changes in WS-Security
•  Venu focuses on the Performance Improvements in Security.
•  Mike covers Reliable Messaging.

Tuesday Feb 27, 2007

Why would I need to be reliable?

Hopefully, this is not going to start a REST vs. WS-\* debate, but there are a few arguments from the WS-\* side which usually RESTafarians agree to:

•  WSDL is good if you need a contract-fist approach (although WADL can help define contracts for REST endpoints).
•  WS-Security provides end-to-end message-level security (vs. point-to-point with HTTPS).
•  HTTP is unreliable and WS-ReliableMessaging has no equivalent in the REST world (reliability needs to live at the application level). I am not aware of any work in that area for REST, but if there is, I'd like to hear about it.

You may not need any of the above (in which case a RESTful approach may be more appropriate), but you if think you need reliability, Mike Grogan has a nice and short explanation on why you would want to use WS-ReliableMessaging and how the developer is impacted when using WSIT, the JAX-WS extension for many WS-\* specifications.

WSIT is now in Milestone 3 which works with GlassFish 2 b33c. Install is described here. WSIT M3 is also the build that will be part of the upcoming GlassFish v2 beta release.

Note also that Arun is running a series of nice ScreenCasts for GlassFish JAX-WS and WSIT. The latest one is also about WS-ReliableMessaging.

Monday Feb 26, 2007

Yahoo! Pipes for WSIT and GlassFish


Yahoo Pipes is a free service to create and access feed aggregations. The feeds are described graphically and can be edited directly on your browser using a JavaScript-based editor. The programming model is a simple data-driven data-flow; check the documentation or browse through the List of Popular Pipes.

Yahoo pipes are a nice and useful concept; Ashutosh and Arun have created Yahoo pipes for WSIT and GlassFish; you can use these instead of searches, although the pipes have limited history and you may want to use them through a service like My Yahoo. Check out Arun's blog.

Wednesday Feb 21, 2007

GlassFish and Vista Interoperability

Duke Tango

Rima and Arun both have recently published nice overview blogs on how to do Web Services Interoperability between GlassFish and Vista (MS home, Wikipedia) using the WSIT technologies.

These technologies are developed in the GlassFish community and build on the new WebServices stack. The stack is included in GlassFish v2 although it can be used (with some limitations) in other containers.

Rima's blog starts by describing exactly what versions to download, then she provides simple Java and C# programs that do simple interoperability; check her blog. Arun's blog follows a similar approach, except that he has been building up a series of Screencasts and blogs where he is trying to cover quite extensively all the functionality.

The next WSIT milestone should be out within the next couple of days; I know the WSIT team is working on a number of blogs covering all the the new functionality. We will report more then.

Added: WSIT M3 is out now; I'll put together a master index for the blogs in a future entry.