<?xml version="1.0"?>
<rss version="2.0">
<channel>
  <title>Weiqi Gao&#039;s Observations - webservices tag</title>
  <link>http://www.weiqigao.com/blog/tags/webservices/</link>
  <description>Sharing My Experience...</description>
  <language>en</language>
  <copyright>Weiqi Gao</copyright>
  <lastBuildDate>Fri, 11 May 2012 12:48:36 GMT</lastBuildDate>
  <generator>Pebble (http://pebble.sourceforge.net)</generator>
  <docs>http://backend.userland.com/rss</docs>
  
  <image>
    <url>http://pebble.sourceforge.net/common/images/powered-by-pebble.gif</url>
    <title>Weiqi Gao&#039;s Observations</title>
    <link>http://www.weiqigao.com/blog/</link>
  </image>
  
  
  <item>
    <title>Java News Brief (JNB): An Introduction to JAX-RS and Jersey</title>
    <link>http://www.weiqigao.com/blog/2009/07/31/java_news_brief_jnb_an_introduction_to_jax_rs_and_jersey.html</link>
    
      
        <description>
          &lt;p&gt;This month&#039;s &lt;a href= &#034;http://www.ociweb.com/&#034; &gt;OCI&lt;/a&gt; Java News Brief (&lt;a href= &#034;http://jnb.ociweb.com/jnb/jnbAug2009.html&#034; &gt;JNB&lt;/a&gt;) is online now, in which &lt;a href= &#034;http://viewfromthefringe.blogspot.com/&#034; &gt;Brian Gilstrap&lt;/a&gt; gives &lt;a href= &#034;http://jnb.ociweb.com/jnb/jnbAug2009.html&#034; &gt;An Introduction to JAX-RS and Jersey&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href= &#034;http://jnb.ociweb.com/jnb/jnbAug2009.html&#034; &gt;Brian Gilstrap&lt;/a&gt;: If you aren&#039;t already involved in building RESTful web services, you may not be aware of &lt;a href= &#034;http://jcp.org/en/jsr/detail?id=311&#034; &gt;JSR 311&lt;/a&gt;. JSR 311 is &lt;a href= &#034;http://jcp.org/en/jsr/detail?id=311&#034; &gt;&#034;JAX-RS: The Java™ API for RESTful Web Services&#034;&lt;/a&gt;. Its goal is to &#034;develop an API for providing support for REST-ful (REpresentational State Transfer) Web Services in the Java Platform&#034;. If you aren&#039;t familiar with REST, you may want to read the &lt;a href= &#034;http://en.wikipedia.org/wiki/Representational_State_Transfer&#034; &gt;Wikipedia page that describes REST&lt;/a&gt;. That page also has good links to other online resources regarding REST. In short, REST is an architectural approach to building robust, easy-to-use web services that are well-connected to themselves and easy to connect to each other. It follows the basic paradigm of the world wide web as you browse it every day, and is a powerful approach to building web services.&lt;/p&gt;

&lt;p&gt;The JAX-RS specification describes an API for developers that greatly simplifies the process of building (RESTful) web services. The fundamental idea behind JAX-RS is that developers spend little or no time marshalling and unmarshalling requests and responses, and instead build Plain Old Java Objects (POJOs) for individual resources and for collections of resources. The JAX-RS implementation coordinates with the web server or container to make those resources available via URLs and to convert the HTTP requests into Java objects, and to convert Java object resource representations into HTTP responses. The &lt;a href= &#034;https://jersey.dev.java.net/&#034; &gt;reference implementation&lt;/a&gt; for JAX-RS is called &#034;Jersey&#034; and the &lt;a href= &#034;http://jersey.dev.java.net&#034; &gt;project&lt;/a&gt; is hosted on the &lt;a href=&#034;http://dev.java.net&#034; &gt;dev.java.net&lt;/a&gt; site. Jersey itself is implemented for Java 5 (and later) and can be integrated with a number of different containers and HTTP servers.&lt;/p&gt;

&lt;p&gt;A particularly compelling way to use Jersey is to combine it with the &lt;a href= &#034;https://grizzly.dev.java.net/&#034; &gt;Project Grizzly HTTP server&lt;/a&gt;. Project Grizzly provides a high performance HTTP server, and it makes building standalone web services amazingly easy. All of the examples presented here use this approach. However, Jersey can be just as well be integrated with many other web containers, including just about any standard servlet container or J2EE environment, such as Tomcat, WebLogic, or WebSphere.&lt;/p&gt;

&lt;p&gt;In addition to the server-side API and implementation, Jersey provides a client API, used to write clients of RESTful Web Services. The client API is also used by service implementations which are themselves clients of other RESTful services.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Brian has been researching this topic for quite some time and wrote a &lt;a href= &#034;http://viewfromthefringe.blogspot.com/2009/06/jax-rs-and-jersey-posts.html&#034; &gt;series of blog entries&lt;/a&gt; as he went along.  He will be presenting on this topic at the &lt;a href= &#034;http://www.ociweb.com/javasig/&#034; &gt;St. Louis JUG&lt;/a&gt; in November.&lt;/p&gt;

&lt;p&gt;Incidentally, Brian first presented at the St. Louis JUG more than 12 years ago, in January 1998.  The topic&amp;mdash;&lt;a href= &#034;http://www.ociweb.com/javasig/knowledgebase/January1998/rmi_sig.pdf&#034; &gt;RMI and CORBA&lt;/a&gt;.  Distributed computing never gets old.&lt;/p&gt;

&lt;p&gt;Anybody want to predict what topic Brian will cover at the JUG in 2021?&lt;/p&gt;

&lt;p&gt;OK.  Enough of the nostalgia nonsense.  Go read the &lt;a href= &#034;http://jnb.ociweb.com/jnb/jnbAug2009.html&#034; &gt;article&lt;/a&gt;.  I will do that now!&lt;/p&gt;
        </description>
      
      
    
    
    
    <comments>http://www.weiqigao.com/blog/2009/07/31/java_news_brief_jnb_an_introduction_to_jax_rs_and_jersey.html#comments</comments>
    <guid isPermaLink="true">http://www.weiqigao.com/blog/2009/07/31/java_news_brief_jnb_an_introduction_to_jax_rs_and_jersey.html</guid>
    <pubDate>Sat, 01 Aug 2009 04:20:14 GMT</pubDate>
  </item>
  
  <item>
    <title>Microsoft Evangelist Interviews Corba God</title>
    <link>http://www.weiqigao.com/blog/2007/02/25/microsoft_evangelist_interviews_corba_god.html</link>
    
      
        <description>
          &lt;p&gt;Not really.  It&#039;s just an &lt;a href= &#034;http://blog.jonudell.net/2007/02/23/a-conversation-with-steve-vinoski-about-services-the-enterprise-and-the-web/&#034; &gt;interview&lt;/a&gt; of &lt;a href= &#034;http://blogs.iona.com/vinoski/&#034; &gt;Steve Vinoski&lt;/a&gt;, formerly of IONA and &lt;a href= &#034;http://blogs.iona.com/vinoski/archives/000458.html&#034; &gt;now&lt;/a&gt; at a stealth mode startup, by &lt;a href= &#034;http://blog.jonudell.net/&#034; &gt;Jon Udell&lt;/a&gt;, formerly of Byte and InfoWorld and &lt;a href= &#034;http://weblog.infoworld.com/udell/2006/12/08.html#a1574&#034; &gt;now&lt;/a&gt; at Microsoft, from an undisclosed location.&lt;/p&gt;

&lt;p&gt;Here&#039;s a few points that I find interesting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Steve&#039;s story about his transition from &#034;IIOP is going to be built into the Netscape browser and we can do distributed objects across the web&#034; to &#034;the web is distributed objects&#034;&lt;/li&gt;
&lt;li&gt;Jon&#039;s musing about &#034;freeze-dried&#034; VM machine instances being the new unit of distribution&lt;/li&gt;
&lt;li&gt;Their agreement that tools support for WS-* and REST are important and there are no industry leadership for REST tools&lt;/li&gt;
&lt;/ul&gt;
        </description>
      
      
    
    
    
    <comments>http://www.weiqigao.com/blog/2007/02/25/microsoft_evangelist_interviews_corba_god.html#comments</comments>
    <guid isPermaLink="true">http://www.weiqigao.com/blog/2007/02/25/microsoft_evangelist_interviews_corba_god.html</guid>
    <pubDate>Sun, 25 Feb 2007 18:16:44 GMT</pubDate>
  </item>
  
  <item>
    <title>Scott Davis: Real World Web Services</title>
    <link>http://www.weiqigao.com/blog/2007/01/12/scott_davis_real_world_web_services.html</link>
    
      
        <description>
          &lt;p&gt;It was &lt;a href= &#034;http://www.ociweb.com/javasig/&#034; &gt;St. Louis JUG&lt;/a&gt; night last night.  The new year brought us &lt;a href= &#034;http://www.davisworld.org/blojsom/blog/&#034; &gt;Scott Davis&lt;/a&gt; from the &lt;a href= &#034;http://nofluffjuststuff.com/&#034; &gt;No Fluff Just Stuff&lt;/a&gt; symposium tour.  And the bigger than usual audience (about 45) were treated to an hour and a half presentation on &lt;a href= &#034;http://www.ociweb.com/javasig/knowledgebase/2007-01/index.html&#034; &gt;Real World Web Services&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Our sincere thanks to Jay Zimmerman and the NFJS tour.  The NFJS 2007 tour will start up again in March, and St. Louis will play host to this excellent tour on the &lt;a href= &#034;http://nofluffjuststuff.com/show_view.jsp?showId=75&#034; &gt;third weekend in March (March 16&amp;ndash;18)&lt;/a&gt;.  A free pass to the symposium as well as a copy of the NFJS book were raffled off yesterday.&lt;/p&gt;

&lt;p&gt;After discussing the meaning of various TLAs such as SOA  using Wikipedia as a guide, Scott presented the fundamentals of several popular ways of making and using web services.&lt;/p&gt;

&lt;p&gt;Scott emphasized the importance of the language/vendor/platform neutrality as the most important characteristics of web services.  He defined web services as &#034;Make a request on port 80, get XML back.  Oh, wait, ... but you get the idea.&#034;  He also described the current popularity of web services as a &#034;perfect storm&#034; of ideas.&lt;/p&gt;

&lt;p&gt;He then went on to explain in detail some of the specific technologies:

&lt;ul&gt;
&lt;li&gt;SOAP&lt;/li&gt;
&lt;li&gt;REST&lt;/li&gt;
&lt;li&gt;&lt;span style=&#034;color:red&#034;&gt;&lt;blink&gt;JSON&lt;/blink&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/p&gt;

&lt;p&gt;JSON?  JSON is the &lt;a href= &#034;http://json.org/&#034; &gt;JavaScript Object Notation&lt;/a&gt;.  It started out as an alternative of XML as a data interchange format when the destination of the data is a browser.  However JSON parsers are available in many languages now.&lt;/p&gt;

&lt;p&gt;Scott mentioned that Yahoo! is JSON enabling most of their web services.&lt;/p&gt;

&lt;p&gt;In a talk like this where I&#039;ve heard some of the things before while other things are new to me, I tend to focus my attention to the new things.  Here&#039;s some of the things that got my attention:

&lt;ul&gt;
&lt;li&gt;I need to get and read &lt;a href= &#034;http://www.smallpieces.com/&#034; &gt;Small Pieces, Loosely Joined&lt;/a&gt; by David Weinberger&lt;/li&gt;
&lt;li&gt;I need to get and read &lt;a href= &#034;http://books.google.com/books?id=1VzEQoU1qMQC&amp;dq=Loosely+Coupled:+The+Missing+Pieces+of+Web+Services&amp;pg=PP1&amp;ots=tH65pIMW8E&amp;sig=KbjvIUqXbTsnLgr5dIMR_cj_Uz8&amp;prev=http://www.google.com/search%3Fsourceid%3Dnavclient-ff%26ie%3DUTF-8%26rls%3DGGGL,GGGL:2006-14,GGGL:en%26q%3DLoosely%2BCoupled%253A%2BThe%2BMissing%2BPieces%2Bof%2BWeb%2BServices&amp;sa=X&amp;oi=print&amp;ct=result&amp;cd=1&#034; &gt;Loosely Coupled: The Missing Pieces of Web Services&lt;/a&gt; by Doug Kaye&lt;/li&gt;
&lt;li&gt;I need to get on top of this &lt;a href= &#034;http://tools.ietf.org/html/rfc4287&#034; &gt;Atom&lt;/a&gt; and &lt;a href= &#034;http://www.ietf.org/internet-drafts/draft-ietf-atompub-protocol-12.txt&#034; &gt;Atom Publishing Protocol&lt;/a&gt; thing.  &lt;a href= &#034;http://code.google.com/apis/gdata/index.html&#034; &gt;GData&lt;/a&gt; is based on it and it&#039;s more than RSS.&lt;/li&gt;
&lt;li&gt;&lt;a href= &#034;http://rome.dev.java.net/&#034; &gt;ROME&lt;/a&gt; works with RSS and Atom.&lt;/li&gt;
&lt;li&gt;SOAP is on the decline.  Google deprecated theirs.&lt;/li&gt;
&lt;li&gt;UDDI is all but dead.&lt;/li&gt;
&lt;li&gt;There are popular REST.  And there are pure REST.  The Servlet API gives you REST.&lt;/li&gt;
&lt;li&gt;Apache &lt;a href= &#034;http://jakarta.apache.org/commons/httpclient/&#034; &gt;HttpClient&lt;/a&gt; is all you need to access REST web services.&lt;/li&gt;
&lt;li&gt;Use a proxy on the server side to access web services on other servers.  It can be done in five lines of JSP.&lt;/li&gt;
&lt;/ul&gt;
&lt;/p&gt;

&lt;p&gt;The audience members were pretty engaged last night.  And there were some sharp questions, such as &#034;All this Web 2.0 stuff is nicer than the Web 1.0 pages.  But we can already do this stuff in Swing.  Why deal with a horrible language like JavaScript?&#034;&lt;/p&gt;

&lt;p&gt;To which the answer is &lt;a href= &#034;http://code.google.com/webtoolkit/&#034; &gt;GWT&lt;/a&gt;&amp;mdash;The Google Web Toolkit.  (Scott had to miss a &lt;a href= &#034;http://www.boulderjug.org/viewEvent.jsp?eventId=155&#034; &gt;GWT talk by David Geary&lt;/a&gt; at the Boulder JUG to fly to St. Louis.)  Other higher level JavaScript tool kits as well as DWR were mentioned.  Someone also mentioned that Adobe is developing a technology that will let you create first-class Flex (or was it Flash, I don&#039;t remember) applications independent of the browser.&lt;/p&gt;

&lt;p&gt;The slides of Scott&#039;s talk is available &lt;a href= &#034;http://www.ociweb.com/javasig/knowledgebase/2007-01/index.html&#034; &gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;hr align=&#034;center&#034; noshade=&#034;noshade&#034; size=&#034;1&#034; width=&#034;60%&#034;&gt;

&lt;p&gt;Another theme that crawled into the talk is Groovy.  Maybe it&#039;s because we just had a &lt;a href= &#034;http://www.ociweb.com/javasig/knowledgebase/2006-12/index.html&#034; &gt;Grails talk by Jeff Brown&lt;/a&gt; last month.  Maybe it&#039;s because Scott is the force behind &lt;a href= &#034;http://aboutGroovy.org/&#034; &gt;aboutGroovy.org&lt;/a&gt;.  Maybe it&#039;s because Groovy just had a 1.0 release and the NFJS (and its parent organization) sponsored the final push.  Somehow the &#034;2007 is going to be a break out year for Groovy&#034; idea took root in my brain.&lt;/p&gt;

&lt;p&gt;We&#039;ll see.&lt;/p&gt;

&lt;hr align=&#034;center&#034; noshade=&#034;noshade&#034; size=&#034;1&#034; width=&#034;60%&#034;&gt;

&lt;p&gt;Off the talk, here&#039;s some of the things we chatted about:

&lt;ul&gt;
&lt;li&gt;Scott worked on a product that had 100,000 lines of Groovy code, and they are very happy with the language.&lt;/li&gt;
&lt;li&gt;Many people are taking notes of JSON at this moment.  I joked that JSON is going to gain a set of WS-JSON-* specifications.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr align=&#034;center&#034; noshade=&#034;noshade&#034; size=&#034;1&#034; width=&#034;60%&#034;&gt;

&lt;p&gt;I got to meet Scott Delap, currently the Java editor for &lt;a href= &#034;http://infoq.org/&#034; &gt;InfoQ&lt;/a&gt; and also a fellow St. Louisian.  And I didn&#039;t get a chance to say &#034;InfoQ rocks&#034; to him.  Well, there is always next time.&lt;/p&gt;

        </description>
      
      
    
    
    
    <comments>http://www.weiqigao.com/blog/2007/01/12/scott_davis_real_world_web_services.html#comments</comments>
    <guid isPermaLink="true">http://www.weiqigao.com/blog/2007/01/12/scott_davis_real_world_web_services.html</guid>
    <pubDate>Sat, 13 Jan 2007 03:42:53 GMT</pubDate>
  </item>
  
  </channel>
</rss>

