Arun Gupta, Miles to go ...

Arun Gupta is a technology enthusiast, a passionate runner, and a community guy who works for Sun Microsystems.
« Previous month (May 2007) | Main | Next page of month (Jun 2007) »

http://blogs.sun.com/arungupta/date/20070630 Saturday June 30, 2007

23.3 miles this morning - 5th long run

3hours, 41 min, 16 secs - Approx 9 minutes extra than my last run. I ran exactly the same route as last time, but I developed a shooting pain in right abdomen around mile 19 which slowed m down. I'm still not able to figure what caused the pain cause I was going with a steady pace, drinking fluids and ate a bar too. I had a good night sleep and yesterday's dinner was nothing special. But 9 minutes is a BIG difference :(

This is the 5th long run (23.3, 18.8, 18.5, 17 so far) getting ready for the race. I'll do Rancho next weekend and then my last big run in 2 weekends from today and then taper down.

Miles to go ...

Technorati: running runsfm

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20070629 Friday June 29, 2007

Screencast #WS6: Eclipse Europa and GlassFish

Eclipse 3.3 (codename Europa) was released earlier today. As mentioned earlier, we have an exciting news for GlassFish developers!

Starting today, Eclipse IDE for Java EE developers has the capability to register GlassFish V1, V2 and V3 containers from within the IDE. It supports web application directory deployment and has a fully integrated debugger.  Ludo published detail instructions on how to configure Eclipse 3.3 for GlassFish, deploy a Web project and debug a JSP. You can also watch the same steps in this screen cast with an additional detail on how to deploy a JAX-WS compliant Web service on GlassFish using Eclipse IDE.

Enjoy it here!



Technorati: eclipse europa glassfish webservices jax-ws screencast

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

Eclipse Europa is now live!

As reported earlier, Eclipse Europa was scheduled to launch at Jun 29th, 6am PT. I decided to get up early (I'm a morning person anyway) and watch the countdown.

And it was indeed a countdown on eclipse.org. At 6:10am PT, Europa went live!

Congratulations to the Eclipse community for yet another timed release. Europa has a download targeted for Java EE developers

It seems like all the changes in website have not propagated yet because when I click on "Eclipse IDE for Java EE Developers" then I get a 404:

I guess, it's still some more wait! And then I'll work on making this release useful for GlassFish developers!

Technorati: eclipse europa glassfish

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

Video Footage of San Francisco Marathon

15,000 runners will be running the "Coolest Summer Marathon" - San Francisco Marathon - in exactly a month from today. After 4 more weeks, all my training will be put to use.

Watch the entire course of full marathon in the video footage that follows a group of runners, led by Dean Karnazes (the ultra marathon man).

Part 1

Part 2

 
 

Technorati: runsfm running

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20070628 Thursday June 28, 2007

Eclipse Europa

Eclipse Europa is launching tomorrow and we have an exciting news for you.

Stay tuned ...

Technorati: glassfish eclipse europa

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

WS-I and WSIT - What's the difference ?

Before I explain the differences between WS-I and WSIT, let me point out the similarities:

  • They both are working to achieve interoperability of Web services
  • The first three letters in their short name stand for the exact same words "Web Services Interoperability"

And that's where the similarity ends, now the differences.

  WSIT (Web Services Interoperability Technology) WS-I
Goal An open source product-quality implementation of key enterprise Web services technologies, commonly known as WS-*, from Sun Microsystems and is targeted to achieve interoperability with Microsoft .NET 3.0 framework. An industry organization to promote Web services interoperability across platforms, operating systems and programming languages.
Focus Interoperability between Metro (where WSIT is a key component) and Microsoft .NET 3.0 framework Vendor-neutral and produce profiles that contains clarifications on existing specifications to promote interoperability
Specifications Provides an implementation of WS-Metadata Exchange, WS-Transfer, WS-Reliable Messaging, WS-Reliable Messaging Policy WS-Atomic Transaction, WS-Coordination, WS-Security 1.0 and 1.1, WS-Security Policy, WS-Trust, WS-Secure Conversation, WS-Policy, WS-Policy Attachment interoperable with .NET 3.0 Only use recommendations approved by standards bodies such as W3C and OASIS. Currently available profiles from WS-I cover only WS-Security 1.0 from the different specifications implemented by WSIT. There is a WG charter to profile OASIS WS-Reliable Messaging and WS-Secure Conversation that is already running late.
Owner Sun Microsystems WS-I, A non-profit corporation registered in New York.
Audience Sun and Microsoft customers Web service stack providers and End user companies
Deliverable Implementation of key WS-* specifications integrated in GlassFish V2 Application Server Profiles, Sample Applications and Testing Tools
Membership Free and Open Source, Join and Participate today! Contributing Member must pay $2000 annually, Standards Development Organization may become Associate Member.

As is evident from the table even though both WS-I and WSIT working towards Web services interoperability, there are clear differences between them.

Sun is a current Board Member of WS-I and has actively participated in the production of Basic Profile 1.0, 1.1 and 1.2, Simple SOAP Binding Profile 1.0, Attachments Profile 1.0, Basic Security Profile 1.0, Sample Applications Use Cases, Architecture, Scenarios and Implementation 1.0, Attachment Profile Usage Scenario 1.0, SAML Token Profile 1.0, REL Token Profile 1.0, Kerberos Token Profile 1.0. As the specifications supported by WSIT are endorsed by standards bodies in future, WS-I may decide to profile them as well.

The WSIT bits are integrated in GlassFish V2 and comes with a seamless integration with NetBeans IDE. WSIT is built as an extension to JAX-WS RI that provides a Core web services implementation compliant with several of the profiles mentioned above.

WSIT and JAX-WS are the two key components of Metro - the Web services stack in GlassFish. That gives you the best of both world - a product-quality implementation of WS-* specifications and compliance with industry-standard profiles.

Technorati: wsit ws-i metro webservices glassfish

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20070627 Wednesday June 27, 2007

Yet Another Microsoft Interop Plugfest

Microsoft announced a 3-day Web services interoperability plugfest from Jul 10-12, 2007. At Sun Microsystems, we love to Tango with Windows Communication Foundation component of .NET 3.0 framework and so we'll be participating using GlassFish V2. This may be the last plugfest before GlassFish V2 is released later this year.

As in earlier events, attendees implement a set of pre-defined scenarios based on WS-* specs using their Web services stack. They participate with implementation on their laptops and interoperate using their client and Microsoft endpoint and vice versa.

The set of scenarios are based on the following specifications:

  • Basic Messaging Scenarios using protocols: SOAP1.1, SOAP1.2, WS-Addressing 2004/08 and 2005/10, MTOM
  • Message Security Scenarios using WS-Security 1.0, WS-Security 1.1, WS Secure Conversation 2005/02, WS-Trust 2005/02, Username Token Profile (1.0, 1.1), X509 Token Profile (1.0, 1.1), SAML Token Profile (1.0, 1.1), Kerberos Token Profile 1.1.
  • STS - Security Token Service scenarios
  • Reliable Messaging using WS-ReliableMessaging v1.0 (2005/02)
  • Transactions using WS-AtomicTransaction v1.0 (2004/10) and WS-Coordination v1.0 (2004/10)
  • WS-Policy v1.2 (2004/09) and WS-Metadata Exchange (2004/09) are included in several scenarios
  • Windows CardSpace scenarios

Microsoft is also looking for interop testing with pre-release version of .NET Framework 3.5 (codename Orcas) with the following versions of specifications:

  • Message Security Scenarios using WS Secure Conversation v1.3 (2005/12), WS-Trust v1.3 (2005/12)
  • RX - Reliable Messaging using WS-Reliable Messaging v1.1 (2007/02)
  • Transactions using WS-Atomic Transaction v1.1 (2006/06) and WS-Coordination v1.1 (2006/06)
  • WS-Policy v1.5

We run the interop tests regularly with our builds. The results for Tango M5 milestone build shows details for each technology.

Microsoft still need to work out some kinks before the real work can begin:

  • The plugfest schedule still seem to be dated March
  • Not all the scenarios and endpoints as mentioned in the announcement are available
  • Invite logistics page is giving a 404
  • Not all the endpoints are up, atleast RM endpoints are down. Anyway, the endpoints have been down at multiple instances (here, here, here, here and probably other times too!).

But we are still going to participate :) Sun's participation in the previous plugfests can be followed here.

Technorati: webservices wsit plugfest glassfish microsoft interoperability

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20070625 Monday June 25, 2007

Why GlassFish over JBoss ?

A lively discussion happened on GlassFish Forums where a user asked for pros/cons for GlassFish vs JBoss. A community user explained his reasons to choose GlassFish over JBoss. Here are they key points:

  1. Admin GUI and CLI alone are true differentiators.
  2. Java EE5 with EJB3 is much better to work with and GlassFish is JavaEE5 compatible, of course it's the Reference Implementation as well.
  3. Seamless integration with NetBeans.
  4. Solid and consolidated documentation.

Some other quotes are:

  • "overall GF is just plain easier to use and that's my major pain point."
  • "The new clustering looks spectacular"
  • "GF is really a joy to work with and we haven't had any major problem using it"
  • "you will be up to speed and productive more quickly on GF than JBoss, and just as important, you will stay that way"
  • "because of JEE 5, EJB3, and the JPA, and leveraging that technology, our applications run better, and are easier to maintain. GF is not the sole perveyor of such technology, but the combination and integration of the whole thing: GF, NB, EJB3, and the low learning curve and overall ease of use makes the entire package a "performance win" for our apps as is"
  • "The best part is the server is handling more and more of the stuff we need to do and we have to work around it less and less."

And if these are not enough for you to choose GlassFish, here is a more detailed list of Why Use GlassFish ?.

And we see GlassFish as "GlassFish is WebLogic Features and Performance at JBoss's price" except we are shooting for better Features and Performance than WebLogic!

Technorati: glassfish jboss opensource

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20070624 Sunday June 24, 2007

Week 19 Mileage - 5 more weeks

Mon: Rest
Tue: 7 miles
Wed: 3.5 miles
Thu: 7 miles
Fri: Rest
Sat: Rest
Sun: 12 miles

Here are the good reads of this time:

  • Your 'Fast-Twitch' Switch - Learn about how Slow-twitch and IIa and IIb Fast-twitch fibers workouts in your training mix will make you stronger in everything from 5-K to the marathon.
  • Take Your Running on Vacation - Tips and Tricks to make sure you get your run during your next vacation.
  • Design Your Running Diet - Foods that leave one runner strong may leave another one depleted. Here's how to find what works best for you.
  • Fast Food Fixes - Knowing what to eat - and when - can take your training to the next level. Here are common mistakes and easy solutions.

Technorati: running fitness runninglog

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20070623 Saturday June 23, 2007

Audio and Transcript for TS-4865

Audio and transcript synchronized with the slides for JavaOne 2007 session TS-4865 (Takes two to Tango: Java Web Services and .NET Interoperability) is now available. Read a review of the session by an attendee.

WSIT is now part of Project Metro and is integrated in GlassFish V2.

Technorati: wsit webservices glassfish javaone metro

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20070622 Friday June 22, 2007

Dynamic Data in jMaki Widgets Using JPA

jMaki provides a rich set of data widgets that can be embedded in a web application. For most of the widgets to be useful, they need to be tied a database backend. For example consider a Table widget displaying data about your favorite stock tickers. This blog explains the steps to create such a Web application, deployed on GlassFish V2, that contains a jMaki-wrapped Yahoo Data Table widget pulling data from JavaDB.

If you are using a jMaki build higher than 0.96 (or dated after jul 30) then some steps in this entry need to be updated and described here. These steps are marked with "SEE THE UPDATED ENTRY".

  1. Create the Web application project
    1. In NetBeans IDE 5.5.1, create a new 'Web Application' project and name it as 'jmaki-jpa'.
    2. Choose GlassFish V2 as the Server as shown below:

    3. Add 'jMaki Ajax Framework' by clicking on 'Next' button while creating the project.
    4. Choose the 'Standard' layout as shown below:



      and click on 'Finish'.
  2. Configure the Database
    1. In NetBeans IDE, 'Runtime' tab, expand Databases, connect to the default database (with the URL 'jdbc:derby://localhost:1527/sample [app on APP]'). Specify the username 'app' and password 'app'.
    2. Right-click on the newly created connection and select 'Execute Command...' and enter the following query to create the table definition:

      create table COMPANY (id int,
                            companyName varchar(255),
                            price float,
                            change float,
                            percentChange float,
                            lastUpdated varchar(50),
                            PRIMARY KEY (id))
    3. Right-click on the database connection, select 'Refresh' to see the newly created table in the Tables tree. Select the 'COMPANY' table, right-click and select 'Execute Command...' and enter:

      insert into COMPANY values (1, 'A Co', 71.72, 0.02, 0.03, 'Jan 1, 2007, 10:00am' );
      insert into COMPANY values (2, 'B Inc', 29.01, 0.42, 1.47, 'Feb 1, 2007, 10:00am' );
      insert into COMPANY values (3, 'C Group Inc', 83.81, 0.28, 0.34, 'Mar 1, 2007, 10:00am' );
      insert into COMPANY values (4, 'D Company', 52.55, 0.01, 0.02, 'Apr 1, 2007, 10:00am' );

      Now our database structures are created and populated.
  3. Create the JPA (Java Persistence API) Entity class that maps to the database.
    1. In the projects window, select the project 'jmaki-jpa', right-click and select 'New' and choose 'Entity Classes From Database...'.
    2. Select 'jdbc/sample' as 'Data Source'.
    3. Select 'COMPANY' in 'Available Tables' and click on 'Add' and enter the values as shown below:



      and click on 'Next'.
    4. Specify the package name as 'server' as shown below:

    5. Click on 'Create Persistence Unit...' to create the persistence unit and enter the values as shown below:



      and click on 'Create'.

    and click on 'Finish'.

  4. Configure Persistence Unit
    1. In your project, expand 'Configuration Files' and open 'persistence.xml'.
    2. Click on 'Add Class' button and click on 'Cancel' button. For some reason the entity classes are not loaded during the first time.
    3. Click again on 'Add Class' button and choose 'server.Company' class and click 'OK'. This will ensure that the generated entity class is explicitly recognized by the EntityManagerFactory.
  5. In your project, right-click on 'Web Pages', select 'New' and then 'JSP...'. Give the name as 'data' as shown:



    and then click on 'Finish'.
  6. SEE THE UPDATED ENTRY - Replace the entire content of template 'data.jsp' with the following:

    <%@ page import="java.util.*" %>
    <%@ page import="server.Company" %>
    <%@ page import="javax.persistence.*" %>

    <%
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("jmaki-jpaPU");
        EntityManager em = emf.createEntityManager();

        List<Company> list = em.createQuery("select c from Company c").getResultList();

        out.println("[");
        for (int i=0; i<list.size(); i++) {
            Company c = list.get(i);
            out.println("['" + c.getCompanyname() + "'," +
                c.getPrice() + "," + c.getChange() + "," +
                c.getPercentchange() + ",'" + c.getLastupdated() +
                "']");
            if (i < list.size()-1)
                out.println(",");
        }
        out.println("]");
    %>
  7. Add and Configure jMaki widget
    1. In the generated 'index.jsp', drag-and-drop a 'Yahoo Data Table' widget from the jMaki Palette in the 'Main Content Area'.
    2. SEE THE UPDATED ENTRY - Change the generated code fragment from:

      <a:widget name="yahoo.dataTable" args="{
          columns :[
              {title : 'Company', width : 200, locked:false},
              {title : 'Price', width : 75, renderer: 'usMoney'},
              {title : 'Change', width : 75, renderer: 'change'},
              {title : '% Change', width : 75, renderer: 'pctChange'},
              {title : 'Last Updated', width : 85, renderer: 'italic'}
          ]}"
          value="[
              ['A Co',71.72,0.02,0.03,'9/1 12:00am'],
              ['B Inc',29.01,0.42,1.47,'9/1 12:00am'],
              ['C Group Inc',83.81,0.28,0.34,'9/1 12:00am'],
              ['D Company',52.55,0.01,0.02,'9/1 12:00am']
          ]" />


      to

      <a:widget name="yahoo.dataTable" args="{
          columns :[
              {title : 'Company', width : 200, locked:false},
              {title : 'Price', width : 75, renderer: 'usMoney'},
              {title : 'Change', width : 75, renderer: 'change'},
              {title : '% Change', width : 75, renderer: 'pctChange'},
              {title : 'Last Updated', width : 85, renderer: 'italic'}
          ]}"
          service="data.jsp" />

      The new text is highlighted in bold. The 'service' attribute tells jMaki runtime to pick up the data for DataTable widget from 'data.jsp' instead of the static data.
  8. That's it! Click on the Green button in NetBeans IDE to run the project or default keyboard shortcut (F6). And your browser shows the application deployed as:



    This jMaki-wrapped Yahoo Data Table widget is pulling data from JavaDB.

UPDATED: SEE THE UPDATED ENTRY - Based upon a user request, a NetBeans project for this sample can be opened via Java WebStart here. Alternatively, you can download the project and view at your own ease. Thanks to Geertjan for the tip!

Technorati: jmaki glassfish jpa netbeans

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

Sun Keynote @ TheServerSide Java Symposium

Eduardo will be giving a keynote (From Tomcat to GlassFish - An Update on OpenSource Server-side Java at Sun) at TheServerSide Java Symposium - Europe next week.

He is the Editor-in-Chief for TheAquarium so go talk to him and tell him how you like GlassFish or would like us to improve.

Technorati: theserverside glassfish opensource conf

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20070621 Thursday June 21, 2007

Metro Buzz

Project Metro was announced 2 days ago and got picked up my multiple sites:

Here is a comment from the community:

Great job, I asked couple of weeks ago in the jaxws-jaxb forum if JWSDP (the bundle idea) was dead. Metro is the best answer to that I guess :) I just hope it will be updated more frequently than JWSDP bundles. We (the community) should support this move with our feedback and bug reports. Thanks
Posted by: marlor on June 20, 2007 at 02:25 AM

Added:

Technorati: metro webservices

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20070620 Wednesday June 20, 2007

Hello JPA World!

After much discussion, I was able to finally create a simple "Hello JPA World" example that uses Java Persistence API (JPA) to store and retrieve data from JavaDB from a Servlet deployed on GlassFish V2 b50 using NetBeans IDE 5.5.1. This blog describes the steps, in detail, on how to create this sample.

  1. In NetBeans IDE, create a new Web project and name it as "HelloJPA".
  2. Create an Entity class. Right-click the project, select 'New', 'Entity Class ...'. Specify the values as shown below:

    1. Create a new Persistence Unit by selecting 'Create Persistence Unit ...' and entering values as shown below:



      and click on 'Create'.

    and click on 'Finish'.

  3. Expand 'Configuration Files', open 'persistence.xml', click 'Add Class ...', select 'server.Company' and click on 'OK'. The 'persistence.xml' will look like:

    <?xml version="1.0" encoding="UTF-8"?>
    <persistence version="1.0"
        xmlns="http://java.sun.com/xml/ns/persistence"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
        <persistence-unit name="HelloJPAPU" transaction-type="RESOURCE_LOCAL">
            <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider>
            <non-jta-data-source>jdbc/sample</non-jta-data-source>
            <class>server.Company</class>
            <properties>
                <property name="toplink.ddl-generation" value="drop-and-create-tables"/>
            </properties>
        </persistence-unit>
    </persistence>
  4. Add the following fields to the newly generated 'Company.java':

    private String companyName;
    private float price;
    private float change;
    private float percentChange;
    private String lastUpdated;
  5. Generate getters/setters for each field by selecting the newly added fields, right-click on the selected text, select 'Refactor', 'Encapsulate Fields ...' and choose the getter/setters for each field as shown below:

  6. Add a constructor to 'Company' class as follows:

    public Company(String companyName, float price, float change, float percentChange, String lastUpdated) {
        this.companyName = companyName;
        this.price = price;
        this.change = change;
        this.percentChange = percentChange;
        this.lastUpdated = lastUpdated;
    }
  7. Change the toString method in Company to:

    return "server.Company[id=" + id + ", lastUpdated=" + lastUpdated + "]";
  8. Add a new Servlet by right-click on the Project, select New, 'Servlet ...' as shown below:



    and click on 'Finish'.
  9. Update the generated Servlet template code such that it looks like:

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        beginHTML(out);
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("HelloJPAPU");
        EntityManager em = emf.createEntityManager();

        em.getTransaction().begin();
        out.println("<h1>Hello JPA World!</h1>");

        Company c = new Company("AAA Co", (float)10.0, (float)2.0, (float)10.0, new Date().toString());
        em.persist(c); // persisting to the source
        em.getTransaction().commit(); // now committed

        List list = em.createQuery(
            "select c from Company c where c.companyName = :companyName")
            .setParameter("companyName", c.getCompanyName()).getResultList();

        out.println("<b>Total Companies: " + list.size() + "</b><br>");
        for (int i=0; i<list.size(); i++) {
            out.println((Company) list.get(i) + "<br>");
        }

        endHTML(out);
    }

    void beginHTML(PrintWriter out) {
        out.println("<html>");
        out.println("<head>");
        out.println("<title>Hello JPA World!</title>");
        out.println("</head>");
        out.println("<body>");
    }

    void endHTML(PrintWriter out) {
        out.println("</body>");
        out.println("</html>");
        out.close();
    }


    Fix the imports by using 'Alt+Shift+F' default keyboard shortcut.
  10. Right-click on the Project, select 'Properties', 'Run' Categories, change the Relative URL to '/Hello'.
  11. And that's it! Hit the Green button to run the project or the default keyboard shortcut of 'F6'. After re-loading the page twice, the following output will be seen in the browser window:


 

Technorati: jpa glassfish netbeans

del.icio.us | furl | simpy | slashdot | technorati | digg |
|

http://blogs.sun.com/arungupta/date/20070619 Tuesday June 19, 2007

Announcing Metro - Naming the Web Services stack in GlassFish

The GlassFish V2 Web services stack consists of JAX-WS as the core platform and Project Tango (aka Web Services Interoperability Technology, WSIT) as an implementation of key WS-* specifications on top of it. This stack, so far referred as "JAX-WS RI + Project Tango", now has a new name - Project Metro.

Why name Project Metro ? - JAX-WS, the core platform, uses Tube as a basic processing unit that represents SOAP-level protocol handling code such as MustUnderstand and WS-Addressing processing. Multiple tubes are put together in a sequential fashion to complete the SOAP message handling. Project Tango uses this extensible architecture to implement they key WS-* specs, such as Reliable Messaging and Atomic Transactions, as Tubes as well. Effectively, all your SOAP messages are moved from one point (client) to another (endpoint), potentially spanning intermediaries, through Tubes. This is a direct correlation to Metro (aka Rapid Transport) that exists all over the world.

What is Metro ? - A picture is worth a thousand words - this shows all the components of Metro.

The two main components of Metro are:

  • JAX-WS - The Core Web services platform
  • WSIT - Implementation of key WS-* specs and interoperability with .NET 3.0

The Core Web services that provides all the SOAP message functionality, including WS-Addressing and MTOM, is available from JAX-WS. Project Tango implements Security, Reliability and Transactions on this Core layer that interoperate with Windows Communication Foundation. All the applications on Metro can be easily developed using NetBeans 5.5.1 and deployed on GlassFish V2.

How does Metro provide interoperability with .NET 3.0 ? - Metro provides a complete Web services solution for both homogeneous and heterogeneous architectures. For any Web service, there is a Client that invokes an Endpoint. The Endpoint advertises the metadata which the Client uses to bootstrap communication with the Endpoint. This metadata indicates which of the capabilities - security, reliability and transactions - are supported at the Endpoint. For a Metro Client or Endpoint, NetBeans IDE 5.5.1 or later takes care of processing all the details.

 

The figure shows a pair of Client and Endpoint - one using the Metro Web services stack and the other using .NET 3.0. The Metro Client and Endpoint can be deployed on any of the GlassFish V2 supported platforms (Solaris Sparc, Solaris X86, Windows, Linux and MacOS). The .NET 3.0 Client and Endpoint can be deployed on any of the .NET 3.0 supported platforms (Windows Vista, Windows 2003 Server and Windows XP + SP2).

For a homogeneous architecture, where both Client and Endpoint are using Metro, the arrow labeled 1 shows a Metro Client invoking a Metro Endpoint. If this serves your purpose, then all you need is GlassFish V2 for WSIT runtime, NetBeans IDE for tooling and WSIT tutorial.

For a heterogeneous architecture, where only one of Client or Endpoint is using Metro and the other is based on .NET 3.0, the arrow labeled 2 and 3 shows a Metro client can invoke a .NET 3.0 endpoint and a .NET 3.0 client can invoke a Metro endpoint respectively. This use case has been extensively tested as well by participating in multiple plug-fests with Microsoft.

What is the change ? - The biggest change you'll notice is a unified single name for what was called "GlassFish Web services stack" or "JAX-WS RI + Tango" so far. This is only a consolidation of our multiple offerings and is backed up high quality, high-performance and production-ready Web services stack integrated in GlassFish V2. This stack is also tested on Tomcat and has been reported to run on Jetty and JavaSE as well.

Metro Binary 1.0 M5, aligned with Tango Milestone 5, already integrated in GlassFish V2 b50, is available for download. The JAX-WS and Tango binaries and documentation are still available for download but will be aligned with Metro over time.


Discover Metro

Use Metro

Extend Metro

Technorati: webservices glassfish metro wsit jax-ws

del.icio.us | furl | simpy | slashdot | technorati | digg |
|
« Previous month (May 2007) | Main | Next page of month (Jun 2007) »

Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.