<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>&#60;soaprpc/&#62;: services and applications</title>
	<atom:link href="http://soaprpc.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://soaprpc.wordpress.com</link>
	<description></description>
	<lastBuildDate>Wed, 06 May 2009 21:58:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='soaprpc.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>&#60;soaprpc/&#62;: services and applications</title>
		<link>http://soaprpc.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://soaprpc.wordpress.com/osd.xml" title="&#60;soaprpc/&#62;: services and applications" />
	<atom:link rel='hub' href='http://soaprpc.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Service-Oriented Architecture: A brief introduction</title>
		<link>http://soaprpc.wordpress.com/2009/05/06/service-oriented-architecture-a-brief-introduction/</link>
		<comments>http://soaprpc.wordpress.com/2009/05/06/service-oriented-architecture-a-brief-introduction/#comments</comments>
		<pubDate>Wed, 06 May 2009 21:58:36 +0000</pubDate>
		<dc:creator>soaprpc</dc:creator>
				<category><![CDATA[soa]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://soaprpc.wordpress.com/?p=22</guid>
		<description><![CDATA[[Originally published May 19, 2004] What is SOA? SOA, or Service-Oriented Architecture, is an architecture comprising Loosely coupled services, described by platform-agnostic interfaces that can be discovered and invoked dynamically. Loosely coupled refers to defining interfaces such that they are independent of each other&#8217;s implementation. In a loosely coupled system, you should be able to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=22&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>[Originally published May 19, 2004]</p>
<p><strong>What is SOA?</strong></p>
<p>SOA, or Service-Oriented Architecture, is an architecture comprising</p>
<ul>
<li>Loosely coupled services,</li>
<li>described by platform-agnostic interfaces</li>
<li>that can be discovered and invoked dynamically.</li>
</ul>
<p><a name="more"></a></p>
<p>Loosely coupled refers to defining interfaces such that they are independent    of each other&#8217;s implementation. In a loosely coupled system, you should be able    to swap-out one of the components and replace it with another and cause no effect    to the system. <a href="http://www.soaprpc.com/archives/000030.html#ref10">[10] </a>attempts to pin down the exact implications    of loosely coupled systems<strong>.</strong></p>
<p>The platform-agnostic interface means that a client on any platform (OS, language,    hardware) can consume the service.</p>
<p>Dynamic discovery implies some kind of registry where these services are listed,    and which allows lookup.</p>
<p><strong>Why is SOA interesting to businesses?</strong></p>
<p>SOA protects your investments in legacy applications. So whether you have a    Java application, a .NET application or even a COBOL application running on    a mainframe- all are equal in a SOA architecture. <a href="http://www.soaprpc.com/archives/000030.html#ref5">[5]</a> explains some of the importance of SOA to businesses. <a href="http://www.soaprpc.com/archives/000030.html#ref11">[11]</a> is a Gartner report that predicts business acceptance trends for SOA.</p>
<p><strong>Is Web services a SOA?</strong></p>
<p>Yes. In Web services, WSDL is the platform-agnostic interface and UDDI is the registry where services are published and discovered from. The invocation is via SOAP messages on a variety of transports (HTTP, HTTPS, SMTP, JMS, roll-your-own-transport).</p>
<p>However, the converse need not be true- you can have a Service-Oriented Architecture    without Web services, or even XML.</p>
<p><strong>Is CORBA/DCE/DCOM/RMI a SOA ?</strong></p>
<p>All distributed computing technologies are have a concept of services, are    defined by interfaces, and are platform agnostic. However, for a variety of    reasons- some technical and others not- Web services are emerging as the standard    way to do services. <a href="http://www.soaprpc.com/archives/000030.html#ref9">[9]</a> explains some of the differences    between Web services and traditional distributed computing technologies.</p>
<p><strong>References:</strong></p>
<p><a name="ref1"></a>[1] IBM developerWorks. New to SOA and Web services. <a href="http://www-106.ibm.com/developerworks/webservices/newto/">http://www-106.ibm.com/developerworks/webservices/newto/</a></p>
<p><a name="ref2"></a>[2] Kishore Channabasavaiah, Kerrie Holley et al. Migrating to a service-oriented    architecture, Part 1. <a href="http://www-106.ibm.com/developerworks/webservices/library/ws-migratesoa/">http://www-106.ibm.com/developerworks/webservices/library/ws-migratesoa/</a></p>
<p><a name="ref3"></a>[3] Kishore Channabasavaiah, Kerrie Holley et al. Migrating to a service-oriented    architecture, Part 2. <a href="http://www-106.ibm.com/developerworks/webservices/library/ws-migratesoa2/">http://www-106.ibm.com/developerworks/webservices/library/ws-migratesoa2/</a></p>
<p><a name="ref4"></a>[4] Sayed Hashimi.Service-Oriented Architecture Explained. <a href="http://www.ondotnet.com/pub/a/dotnet/2003/08/18/soa_explained.html">http://www.ondotnet.com/pub/a/dotnet/2003/08/18/soa_explained.html</a></p>
<p><a name="ref5"></a>[5] Todd Datz. What You Need to Know About Service-Oriented Architecture. <a href="http://www.cio.com/archive/011504/soa.html">http://www.cio.com/archive/011504/soa.html</a></p>
<p><a name="ref6"></a>[6] Easwaran G. Nadhan. Service-Oriented Architecture: Implementation Challenge.    <a href="http://msdn.microsoft.com/architecture/default.aspx?pull=/library/en-us/dnmaj/html/aj2soaimpc.asp">http://msdn.microsoft.com/architecture/default.aspx?pull=/library/en-us/dnmaj/html/aj2soaimpc.asp</a></p>
<p><a name="ref7"></a>[7] Todd Datz. What You Need to Know About Service-Oriented Architecture. <a href="http://www.cio.com/archive/011504/soa.html">http://www.cio.com/archive/011504/soa.html</a></p>
<p><a name="ref8"></a>[8] Hao He. What is Service-Oriented Architecture? <a href="http://webservices.xml.com/pub/a/ws/2003/09/30/soa.html">http://webservices.xml.com/pub/a/ws/2003/09/30/soa.html</a></p>
<p><a name="ref9"></a>[9] Werner Vogels. Web Services are NOT Distributed Objects.    <a href="http://weblogs.cs.cornell.edu/AllThingsDistributed/archives/000120.html">http://weblogs.cs.cornell.edu/AllThingsDistributed/archives/000120.html</a></p>
<p><a id="ref10" name="ref10"></a>[10] Doug Kaye. Loose Coupling is Like Pornography.    <a href="http://www.rds.com/doug/weblogs/webServicesStrategies/2002/11/18.html#a726">http://www.rds.com/doug/weblogs/webServicesStrategies/2002/11/18.html#a726</a></p>
<p><a id="ref11" name="ref11"></a>[11] Yefim Natis, Roy Schulte (Gartner). Introduction to Service-Oriented Architecture. <a href="http://mediaproducts.gartner.com/reprints/bea_systems/114295.html">http://mediaproducts.gartner.com/reprints/bea_systems/114295.html</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/soaprpc.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/soaprpc.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/soaprpc.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/soaprpc.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/soaprpc.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/soaprpc.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/soaprpc.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/soaprpc.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/soaprpc.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/soaprpc.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/soaprpc.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/soaprpc.wordpress.com/22/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/soaprpc.wordpress.com/22/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/soaprpc.wordpress.com/22/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=22&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://soaprpc.wordpress.com/2009/05/06/service-oriented-architecture-a-brief-introduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc7de877a3440c204bfff41188de772c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">soaprpc</media:title>
		</media:content>
	</item>
		<item>
		<title>Web service implementations</title>
		<link>http://soaprpc.wordpress.com/2009/04/25/web-service-implementations/</link>
		<comments>http://soaprpc.wordpress.com/2009/04/25/web-service-implementations/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 08:03:39 +0000</pubDate>
		<dc:creator>soaprpc</dc:creator>
				<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://soaprpc.wordpress.com/?p=30</guid>
		<description><![CDATA[[Last updated on June 13, 2006] A list I maintained of web service implementations. Please don&#8217;t send me an email about adding to this list- I no longer update this list. I&#8217;ve tried to classify implementations as: Open source/free implementations Commercial Web service stacks WS Composition products Security implementations: Hardware Software Part of Web service [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=30&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>[Last updated on June 13, 2006]</p>
<p>A list I maintained of web service implementations. Please don&#8217;t send me an email about adding to this list- I no longer update this list. I&#8217;ve tried to classify implementations as:</p>
<ul>
<li><a href="http://www.soaprpc.com/ws_implementations.html#open">Open source/free implementations</a></li>
<li><a href="http://www.soaprpc.com/ws_implementations.html#commercial">Commercial Web service stacks</a></li>
<li><a href="http://www.soaprpc.com/ws_implementations.html#composition">WS Composition products</a></li>
<li>Security implementations:
<ul>
<li><a href="http://www.soaprpc.com/ws_implementations.html#sec_hardware">Hardware</a></li>
<li><a href="http://www.soaprpc.com/ws_implementations.html#sec_software">Software</a></li>
<li><a href="http://www.soaprpc.com/ws_implementations.html#sec_bundled">Part of Web service stacks</a></li>
</ul>
</li>
<li><a href="http://www.soaprpc.com/ws_implementations.html#tools">Tools</a></li>
</ul>
<hr noshade="noshade" />
<div id="container">
<div class="blog">
<div class="blogbody"><a name="open"></a></p>
<h3 class="title">Open source/free implementations</h3>
<table border="0" width="100%">
<tbody>
<tr>
<td width="23%"><strong>Product</strong></td>
<td width="25%"><strong>Company/Organization/Author</strong></td>
<td width="52%"><strong>Description</strong></td>
</tr>
<tr>
<td><a href="http://ws.apache.org/soap/">Apache SOAP </a></td>
<td>Apache Software Foundation</td>
<td>SOAP 1.2 implementation/Java</td>
</tr>
<tr>
<td><a href="http://ws.apache.org/axis/">Apache Axis </a></td>
<td>Apache Software Foundation</td>
<td>SOAP 1.2 implementation/Java, C++</td>
</tr>
<tr>
<td><a href="http://ws.apache.org/juddi/">jUDDI</a></td>
<td>Apache Software Foundation</td>
<td>UDDI v2 implementation/Java</td>
</tr>
<tr>
<td><a href="http://www.uddi4j.org/">uddi4j</a></td>
<td>IBM, HP</td>
<td>UDDI v2 client API/Java</td>
</tr>
<tr>
<td><a href="http://ws.apache.org/wsif/">WSIF</a></td>
<td>Apache Software Foundation</td>
<td>An API for invoking Web services using WSDL descriptions/Java</td>
</tr>
<tr>
<td><a href="http://www.wingfoot.com/products.html">Wingfoot SOAP</a></td>
<td>Wingfoot Software</td>
<td>J2ME implementation for SOAP/Java</td>
</tr>
<tr>
<td><a href="http://ksoap2.sourceforge.net/">kSOAP</a></td>
<td>Stefan Haustein, James Seigel</td>
<td>J2ME implementation for SOAP/Java</td>
</tr>
<tr>
<td><a href="http://www.pocketsoap.com/4s4c/">PocketSOAP</a></td>
<td>Simon Fell</td>
<td>SOAP implementation as a COM object/C++</td>
</tr>
<tr>
<td><a href="http://www.soaplite.com/">SOAP::Lite</a></td>
<td>Pavel Kulchenko</td>
<td>SOAP implementation in Perl</td>
</tr>
<tr>
<td><a href="http://pear.php.net/package/SOAP">PHP SOAP</a></td>
<td>Shane Caraveo, Arnaud Limbourg</td>
<td>SOAP implementation in PHP</td>
</tr>
<tr>
<td><a href="http://www.cs.fsu.edu/%7Eengelen/soap.html">gSOAP</a></td>
<td>Robert A. van Engelen</td>
<td>SOAP implementation in C++</td>
</tr>
<tr>
<td><a href="http://dev.ctor.org/soap4r">SOAP4R</a></td>
<td>NAKAMURA, Hiroshi</td>
<td>SOAP 1.1 implementation in Ruby</td>
</tr>
<tr>
<td><a href="http://pywebsvcs.sourceforge.net/">Python web services project</a></td>
<td>Various</td>
<td>Web service libraries using the python programming language. These implement SOAP, WSDL, and other related protocols.</td>
</tr>
</tbody>
</table>
<p><a name="commercial"></a></p>
<h3 class="title">Commercial Web service stacks</h3>
<table border="0" width="100%">
<tbody>
<tr>
<td width="23%"><strong>Product</strong></td>
<td width="25%"><strong>Company/Organization/Author</strong></td>
<td width="52%"><strong>Description</strong></td>
</tr>
<tr>
<td><a href="http://www-106.ibm.com/developerworks/websphere/zones/webservices/">IBM              Websphere</a></td>
<td>IBM</td>
<td>Web service stack implemented as part of Websphere product line</td>
</tr>
<tr>
<td><a href="http://java.sun.com/webservices/downloads/webservicespack.html"> Web Services Developer Pack (WSDP)</a></td>
<td>Sun Microsystems</td>
<td>Packages JAX* API, Security implementations, WSDP Registry Server,              tools</td>
</tr>
<tr>
<td><a href="http://www.systinet.com/">WASP Server</a></td>
<td>Systinet</td>
<td>Web service stack (SOAP/WSDL/UDDI/WS-Sec) implementation in Java/C++</td>
</tr>
<tr>
<td><a href="http://msdn.microsoft.com/webservices/downloads/default.aspx">Microsoft              .NET Framework</a></td>
<td>Microsoft</td>
<td>Microsoft&#8217;s Web service implementation</td>
</tr>
<tr>
<td><a href="http://otn.oracle.com/products/ias/index.html">Oracle Application              Server</a></td>
<td>Oracle</td>
<td>Web service stack implemented as part of Oracle Application server              (10g) product line</td>
</tr>
<tr>
<td><a href="http://www.bea.com/framework.jsp?CNT=index.htm&amp;FP=/content/products">BEA              Weblogic</a></td>
<td>BEA</td>
<td>Web service stack implemented as part of Weblogic 8.x product line</td>
</tr>
<tr>
<td><a href="http://www.webmethods.com/Solutions/Glue/">webMethods GLUE</a></td>
<td>webMethods</td>
<td>Web service stack (SOAP/WSDL/UDDI/WS-Security) implementation in Java</td>
</tr>
<tr>
<td><a href="http://www.bea.com/framework.jsp?CNT=index.htm&amp;FP=/content/products">BEA Weblogic</a></td>
<td>BEA</td>
<td>Web service stack implemented as part of Weblogic 8.x product line</td>
</tr>
<tr>
<td><a href="http://www.iona.com/products/artix/artix_prod_enterprise_web_services.htm">Artix Enterprise Web Services</a></td>
<td>IONA</td>
<td>IONA&#8217;s Web Service Integration product</td>
</tr>
<tr>
<td><a href="http://www.sonicsoftware.com/products/sonic_esb/index.ssp">Sonic ESB</a></td>
<td>Sonic Software</td>
<td>Sonic&#8217;s Enterprise Service Bus implementation</td>
</tr>
<tr>
<td><a href="http://rainingdata.com/products/soa/index.html">RainingData</a></td>
<td>RainingData</td>
<td>SOA stack components- SOA Repository &amp; Registry, ESB and Orchestration capabilities. Tools for SOA performance testing and process modeling</td>
</tr>
<tr>
<td><a href="http://www.bluetitan.com/products/overview.htm">Blue Titan Network Director</a></td>
<td>Blue Titan Software</td>
<td>Deployment platform for Web services, provides routing, discovery, provisioning and monitoring.</td>
</tr>
<tr>
<td><a href="http://www.gtsoftware.com/solutions/products.php">Ivory</a></td>
<td>GT Software</td>
<td>SOA-enabling of mainframe applications</td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p><a name="composition"></a></p>
<h3 class="title">WS Composition products</h3>
<table border="0" width="100%">
<tbody>
<tr>
<td width="23%"><strong>Product</strong></td>
<td width="25%"><strong>Company/Organization/Author</strong></td>
<td width="52%"><strong>Description</strong></td>
</tr>
<tr>
<td><a onclick="return mugicPopWin(this,event);" oncontextmenu="mugicRightClick(this);" href="http://www.amazon.com/exec/obidos/ASIN/1590591151/soapsimpleobject/"> </a><a href="http://www.collaxa.com/">Collaxa 2.0</a></td>
<td>Collaxa</td>
<td>BPEL4WS implementation</td>
</tr>
<tr>
<td><a href="http://www.alphaworks.ibm.com/tech/bpws4j">BPWS4J</a></td>
<td>IBM</td>
<td>IBM&#8217;s BPEL4WS implementation</td>
</tr>
</tbody>
</table>
<p><a name="sec_hardware"></a></p>
<h3 class="title">Security implementations: Hardware</h3>
<table border="0" width="100%">
<tbody>
<tr>
<td width="23%"><strong>Product</strong></td>
<td width="25%"><strong>Company/Organization/Author</strong></td>
<td width="52%"><strong>Description</strong></td>
</tr>
<tr>
<td><a href="http://www.westbridgetech.com/products.html"> XMS Message              Server</a></td>
<td>Westbridge</td>
<td>XML/Web Services aware hardware firewall product. Supports XML encryption,              signature, SAML in addition to standard transport level security implementations              (DES/DES3, SHA, RSA etc.)</td>
</tr>
<tr>
<td><a href="http://www.reactivity.com/products/">Reactivity XML Firewall</a></td>
<td>Reactivity</td>
<td>XML/Web Services aware hardware firewall product. Supports XML encryption,              signature in addition to standard transport level security implementations              (DES/DES3, SHA, RSA etc.)</td>
</tr>
<tr>
<td><a href="http://www.forumsys.com/products.htm">Forum Sentry</a></td>
<td>Forum Systems</td>
<td>XML/Web Services aware hardware firewall product. Supports XML encryption,              signature, SAML in addition to standard transport level security implementations              (DES/DES3, SHA, RSA etc.)</td>
</tr>
<tr>
<td><a href="http://www.datapower.com/products/index.html">XS40 XML              Security Gateway</a></td>
<td>DataPower</td>
<td>SSL, XKMS, XACML, SAML, XML/SOAP firewall</td>
</tr>
<tr>
<td><a href="http://www.xmltrustcenter.org/developer/verisign/tsik/index.htm">Check              Point VPN-1/FireWall-1</a></td>
<td>Checkpoint</td>
<td>XML/SOAP firewall</td>
</tr>
</tbody>
</table>
<p><a name="sec_software"></a></p>
<h3 class="title">Security implementations: Software</h3>
<table border="0" width="100%">
<tbody>
<tr>
<td width="23%"><strong>Product</strong></td>
<td width="25%"><strong>Company/Organization/Author</strong></td>
<td width="52%"><strong>Description</strong></td>
</tr>
<tr>
<td><a href="http://www.xmltrustcenter.org/xkms/index.htm">XKMS Implementation</a></td>
<td>Verisign</td>
<td>XKMS API implementation in Java</td>
</tr>
<tr>
<td><a href="http://www.xmltrustcenter.org/developer/verisign/tsik/index.htm">Trust              Services Integration Kit (TSIK)</a></td>
<td>Verisign</td>
<td>Java API for creating trusted services, includes a SAML API</td>
</tr>
<tr>
<td><a href="http://xml.apache.org/security/">Apache XML-Security</a></td>
<td>Apache Software Foundation</td>
<td>Java and C++ implementations of XML Digital Signature and XML Encryption</td>
</tr>
<tr>
<td><a href="http://www.alphaworks.ibm.com/tech/xmlsecuritysuite">XML              Security Suite</a></td>
<td>IBM</td>
<td>Java implementation of XML Digital Signature, XML Encryption and              XML Access Control Language and implementation</td>
</tr>
<tr>
<td><a href="http://www.oblix.com/products/index.html">Oblix NetPoint </a></td>
<td>Oblix</td>
<td>Identity management software, supporting X.509, RSA SecureID, SAML</td>
</tr>
<tr>
<td><a href="http://wwws.sun.com/software/sunone/identity/">SunONE Identity              Server</a></td>
<td>Sun Microsystems</td>
<td>Supports Liberty’s federated identity, and SAML</td>
</tr>
<tr>
<td><a href="http://www.microsoft.com/net/services/passport/">Microsoft              Passport</a></td>
<td>Microsoft</td>
<td>Single sign-on support</td>
</tr>
<tr>
<td><a href="http://www.netegrity.com/products/products.cfm?page=productsoverview">Netegrity              TransactionMinder</a></td>
<td>Netegrity</td>
<td>WS-Security, SAML</td>
</tr>
<tr>
<td><a href="http://www.quadrasis.com/Products/easi.htm">Quadrasis EASI              Security Unifier</a></td>
<td>Quadrasis</td>
<td>WS-Security, SAML</td>
</tr>
<tr>
<td><a href="http://www.rsasecurity.com/products/bsafe/securews.html">RSA              BSAFE Secure-WS</a></td>
<td>RSA Security</td>
<td>WS-Security implementation</td>
</tr>
<tr>
<td><a href="http://www.vordel.com/products/">VordelSecure</a></td>
<td>Vordel</td>
<td>WS-Security, SAML</td>
</tr>
<tr>
<td><a href="http://www.besequre.com/en/BSFProductLine/Process/index.php">BeSeQure &#8211; SOA Security</a></td>
<td>BeSeQure</td>
<td>Security framework based on WS-Security, SAML</td>
</tr>
</tbody>
</table>
<p><a name="sec_bundled"></a></p>
<h3 class="title">Security implementations: Part of Web service stacks</h3>
<table border="0" width="100%">
<tbody>
<tr>
<td width="23%"><strong>Product</strong></td>
<td width="25%"><strong>Company/Organization/Author</strong></td>
<td width="52%"><strong>Description</strong></td>
</tr>
<tr>
<td>IBM ETTK</td>
<td>IBM</td>
<td>Supports WS-Security, WS-Policy</td>
</tr>
<tr>
<td>Web Services Developer Pack</td>
<td>Sun Microsystems</td>
<td>Supports WS-Security, WS-Policy</td>
</tr>
<tr>
<td>Systinet WASP</td>
<td>Systinet</td>
<td>Supports WS-Security, SAML</td>
</tr>
<tr>
<td>.NET</td>
<td>Microsoft</td>
<td>Supports WS-Security</td>
</tr>
</tbody>
</table>
<p><a name="tools"></a></p>
<h3 class="title">Tools</h3>
<table border="0" width="100%">
<tbody>
<tr>
<td width="23%"><strong>Title</strong></td>
<td width="25%"><strong>Company/Organization/Author</strong></td>
<td width="52%"><strong>Description</strong></td>
</tr>
<tr>
<td><a href="http://www.xmlspy.com/">XMLSpy</a></td>
<td>Altova</td>
<td>SOAP debugger, WSDL editor features</td>
</tr>
<tr>
<td><a href="http://www.parasoft.com/jsp/products/home.jsp?product=SOAP">SOAtest</a></td>
<td>Parasoft</td>
<td>Automated web service testing tool- WSDL validation, unit and functional testing of client and server, and performance testing</td>
</tr>
<tr>
<td><a href="http://www.mindreef.com/">Mindreef SOAPScope</a></td>
<td>Mindreef</td>
<td>Tool for debugging, testing and performance tuning for Web services</td>
</tr>
<tr>
<td><a href="http://www.optimyz.com/product_overview.html">WebServiceTester</a></td>
<td>Optimyz</td>
<td>Testing tool for Web services- functional, regression, performance, load and stress testing</td>
</tr>
<tr>
<td><a href="http://www.strikeiron.com/htmls/premium_tools.aspx">StrikeIron Web Services Analyzer</a></td>
<td>StrikeIron</td>
<td>Visualization tool for Web services</td>
</tr>
<tr>
<td><a href="http://jakarta.apache.org/jmeter/">jMeter</a></td>
<td>Apache Software Foundation</td>
<td>Open source framework for load testing functional behavior and measuring performance for Web applications and Web services</td>
</tr>
<tr>
<td><a href="http://www.pushtotest.com/">Test Maker</a></td>
<td>Push To Test</td>
<td>Testing software for reliability, functionality, scalability and performance.</td>
</tr>
<tr>
<td><a href="http://aft.sourceforge.net/">Anteater</a></td>
<td>Ovidiu Predescu, Jeff Turner</td>
<td>Ant based testing framework for Web applications and Web services</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/soaprpc.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/soaprpc.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/soaprpc.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/soaprpc.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/soaprpc.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/soaprpc.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/soaprpc.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/soaprpc.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/soaprpc.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/soaprpc.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/soaprpc.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/soaprpc.wordpress.com/30/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/soaprpc.wordpress.com/30/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/soaprpc.wordpress.com/30/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=30&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://soaprpc.wordpress.com/2009/04/25/web-service-implementations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc7de877a3440c204bfff41188de772c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">soaprpc</media:title>
		</media:content>
	</item>
		<item>
		<title>Dealing with large data volumes in webservice calls</title>
		<link>http://soaprpc.wordpress.com/2009/04/25/dealing-with-large-data-volumes-in-webservice-calls/</link>
		<comments>http://soaprpc.wordpress.com/2009/04/25/dealing-with-large-data-volumes-in-webservice-calls/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 07:59:51 +0000</pubDate>
		<dc:creator>soaprpc</dc:creator>
				<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://soaprpc.wordpress.com/?p=27</guid>
		<description><![CDATA[[Originally published June 27, 2005] Once you start sending large volumes of data over a web service invocation, you often run into performance issue. There are a range of techniques that can prove useful here: Cache some of that information on the client side, instead of sending over everything for each webservice invocation. This is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=27&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>[Originally published June 27, 2005]</p>
<p>Once you start sending large volumes of data over a web service invocation, you often run into performance issue.</p>
<p>There are a range of techniques that can prove useful here:</p>
<p><a name="more"></a></p>
<ul>
<li>Cache some of that information on the client side, instead of sending over everything for each webservice invocation. This is especially useful when some of the information to be sent over is relatively static</li>
<li>Paginate the information to be sent e.g. instead of sending over entire rows from a database select, send over the first 50, and let the client ask for the next 50 and so on. In this case there is a tradeoff between making multiple remote calls and one single call that returns a large chunk of data.</li>
<li>Have detail levels. An example of this is the <a href="http://www.uddi.org/">UDDI</a> API, where there a number of &#8216;find&#8217; calls for returning things like &#8216;BusinessInfo&#8217; list which doesn&#8217;t have all the data stored about a business- just the more commonly used pieces. Clients that need detailed information about a specific business or set of businesses can &#8216;drill down&#8217; for more information. Again, you&#8217;d have a tradeoff here between making multiple remote calls and one single call.</li>
<li>Compress the data before sending it. This is covered in more detail <a href="http://www-106.ibm.com/developerworks/xml/library/x-tipcomp.html">here </a> and <a href="http://www-106.ibm.com/developerworks/xml/library/x-matters13.html">here</a>. The issues that this approach throws up relate to this being non-standard, and thus having an ad-hoc mechanism for getting the client and service agree on the compression mechanism.</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/soaprpc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/soaprpc.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/soaprpc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/soaprpc.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/soaprpc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/soaprpc.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/soaprpc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/soaprpc.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/soaprpc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/soaprpc.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/soaprpc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/soaprpc.wordpress.com/27/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/soaprpc.wordpress.com/27/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/soaprpc.wordpress.com/27/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=27&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://soaprpc.wordpress.com/2009/04/25/dealing-with-large-data-volumes-in-webservice-calls/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc7de877a3440c204bfff41188de772c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">soaprpc</media:title>
		</media:content>
	</item>
		<item>
		<title>Overcoming XML limitations for higher performance</title>
		<link>http://soaprpc.wordpress.com/2009/04/25/overcoming-xml-limitations-for-higher-performance/</link>
		<comments>http://soaprpc.wordpress.com/2009/04/25/overcoming-xml-limitations-for-higher-performance/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 07:58:44 +0000</pubDate>
		<dc:creator>soaprpc</dc:creator>
				<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://soaprpc.wordpress.com/?p=25</guid>
		<description><![CDATA[[Originally published June 4, 2004] Now that Web services are being considered for high performance applications- such as scientific computing- the limitiations of XML for messaging are being felt very acutely. No matter what you do for performance [3], once you try transferring huge amounts of, say biological data [5], your performance characteristics won&#8217;t be [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=25&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>[Originally published June 4, 2004]</p>
<p>Now that Web services are being considered for high performance applications- such as scientific computing- the limitiations of XML for messaging are being felt very acutely. No matter what you do for performance <a href="http://www.soaprpc.com/archives/000034.html#ref3">[3]</a>, once you try transferring huge amounts of, say biological data <a href="http://www.soaprpc.com/archives/000034.html#ref5">[5]</a>, your performance characteristics won&#8217;t be pretty. Its not just the size of the message that is a concern, it is also the overhead of doing a object-&gt;XML-&gt;object conversion.</p>
<p>There are multiple solutions that have been proposed for this:</p>
<p><a name="more"></a></p>
<ol>
<li>Compress the XML payload <a href="http://www.soaprpc.com/archives/000034.html#ref5">[5]</a>. However, compression isn&#8217;t      free, and so this approach has a tradeoff between processing and network      overhead. Another problem is interoperability &#8211; though this can be overcome      by specifying the compression protocol as a part of the payload.</li>
<li>Use XML accelerators <a href="http://www.soaprpc.com/archives/000034.html#ref1">[1]</a> that offload XML processing from Application servers to hardware. <a href="http://www.sarvega.com/">Sarvega</a> and <a href="http://www.datapower.com/">Data Power</a> are two companies I      know that offer these products.</li>
<li>Use SOAP to negotiate a custom binary protocol, and then use that for data      transfer <a href="http://www.soaprpc.com/archives/000034.html#ref4">[4]</a>.</li>
<li>An interesting new approach is a Sun initiative called Fast Web services      <a href="http://www.soaprpc.com/archives/000034.html#ref2">[2]</a> or &#8220;Fast&#8221;. This uses a binary encoding for      the SOAP payload. The higher level protocols (WSDL for contract definition      of service etc.) remain unchanged, so in theory you could use standard SOAP-XML      for development, and have a switch that turns on the binary protocol for production      deployment. The binary protocol is not Java-only, and is standards based-      Packed Encoding Rules (PER), also known as X.691. This protocol is a part      of the ASN.1 family, and has been around for a while. Work is underway to      map XSD to ASN.1. Fast is also backward compatible with non-Fast peers &#8211; the      approach is &#8220;Use Fast when available, and use XML otherwise&#8221;.</li>
</ol>
<p>This is an interesting area to watch- I personally like Fast approach. Sun    was supposed to unveil a prototype version of Fast Web services in its Java    Web Services Developer Pack (WSDP) early 2004, and I&#8217;m waiting for it.</p>
<p><strong>References:</strong></p>
<p><a name="ref1"></a>[1] Peter Lin. So You Want High Performance? <a href="http://jakarta.apache.org/tomcat/articles/performance.pdf">http://jakarta.apache.org/tomcat/articles/performance.pdf</a></p>
<p><a name="ref2"></a>[2] Paul Sandoz, Santiago Pericas-Geertsen et al. Fast Web    Services. <a href="http://java.sun.com/developer/technicalArticles/WebServices/fastWS/">http://java.sun.com/developer/technicalArticles/WebServices/fastWS/</a></p>
<p><a name="ref3"></a>[3] Vivek Chopra. Performance best practices for Web services. <a href="http://www.soaprpc.com/archives/000020.html">http://soaprpc.wordpress.com/2009/04/25/performance-best-practices-for-web-services/</a></p>
<p><a name="ref4"></a>[4] Madhusudhan Govindaraju, Aleksander Slominski et al. Requirements for and Evaluation of RMI Protocols for Scientific Computing. <a href="http://www.sc2000.org/techpapr/papers/pap.pap261.pdf">http://www.sc2000.org/techpapr/papers/pap.pap261.pdf</a></p>
<p><a name="ref5"></a>[5] Chetna Warade, Virinder Batra et al. Web services for bioinformatics, Part 2- Integrate high-throughput services with Web services. <a href="http://www-106.ibm.com/developerworks/library/ws-bioinfo2.html?ca=drs-ws2304">http://www-106.ibm.com/developerworks/library/ws-bioinfo2.html?ca=drs-ws2304</a></p>
<p><strong>Update [June 18, 2004]:</strong> More information of Fast Web services and Fast infoset can be found <a href="https://jwsdp.dev.java.net/fast/">here</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/soaprpc.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/soaprpc.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/soaprpc.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/soaprpc.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/soaprpc.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/soaprpc.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/soaprpc.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/soaprpc.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/soaprpc.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/soaprpc.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/soaprpc.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/soaprpc.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/soaprpc.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/soaprpc.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=25&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://soaprpc.wordpress.com/2009/04/25/overcoming-xml-limitations-for-higher-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc7de877a3440c204bfff41188de772c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">soaprpc</media:title>
		</media:content>
	</item>
		<item>
		<title>Registering and discovering RSS feeds in UDDI Business Registries</title>
		<link>http://soaprpc.wordpress.com/2009/04/25/registering-and-discovering-rss-feeds-in-uddi-business-registries/</link>
		<comments>http://soaprpc.wordpress.com/2009/04/25/registering-and-discovering-rss-feeds-in-uddi-business-registries/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 07:49:54 +0000</pubDate>
		<dc:creator>soaprpc</dc:creator>
				<category><![CDATA[rss]]></category>
		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://soaprpc.wordpress.com/?p=20</guid>
		<description><![CDATA[[Originally posted May 12, 2004] CAVEAT: None of this code will probably work- UDDI Business Registries are so very 2001 Registering and Discovering RSS feeds Finding new and interesting RSS feeds is a problem, and so is advertising your own feed. I explored a few websites that aggregate feeds, and wasn&#8217;t too satisfied with the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=20&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>[Originally posted May 12, 2004]</p>
<p><span style="color:#ff9900;"><em><strong>CAVEAT:</strong> None of this code will probably work- UDDI Business Registries are so very 2001</em></span></p>
<h3 class="title">Registering and Discovering RSS feeds</h3>
<p>Finding new and interesting RSS feeds is a problem, and so is advertising your own feed. I explored a few websites that aggregate feeds, and wasn&#8217;t too satisfied with the experience.</p>
<p><a name="more"></a></p>
<p>Recently I found an article on <a href="http://www.gotdotnet.com/team/karstenj/docs/rss_in_uddi.aspx">Registering    and Discovering RSS feeds in UDDI</a>. Well I went and did just that at the    <a href="https://uddi.ibm.com/ubr/registry.html">IBM UBR node</a>- here is my    <a href="http://uddi.ibm.com/ubr/uddiget?businessKey=0E9F1B00-A440-11D8-A122-000629DC0A53">discover    URL</a>. I wrote up a small java program to browse the UDDI registry looking    for RSS feeds, and didn&#8217;t find a whole lot. The ones I did find were the really    good ones though- like <a href="http://www.gotdotnet.com/team/dbox/">Don Box&#8217;s    Spoutlet</a>, <a href="http://www.gotdotnet.com/team/karstenj/blog.aspx">Karsten    Januszewski&#8217;s UDDI Weblog</a>, <a href="http://blogs.gotdotnet.com/tewald/">Tim    Ewald&#8217;s Ideas about XML and Web Services</a> &#8230; and offcourse now, your&#8217;s truly!</p>
<p>My java program source for searching RSS feeds is listed at the end of the post.</p>
<p>The RSS feeds I found (as on May 12, 2004) are listed below- many of them being weblogs of Microsoft folks.</p>
<table border="0" width="100%">
<tbody>
<tr>
<td width="78%"><strong>Title</strong></td>
<td width="22%"><strong>URL</strong></td>
</tr>
<tr>
<td>Don Box&#8217;s Spoutlet</td>
<td><a href="http://www.gotdotnet.com/team/dbox/rss.aspx?version=0.91">RSS        0.9</a>, <a href="http://www.gotdotnet.com/team/dbox/rss.aspx?version=0.91">RSS        1.0</a></td>
</tr>
<tr>
<td>Drewby.net</td>
<td><a href="http://drewby.net/">RSS 0.9</a></td>
</tr>
<tr>
<td>Jazz 88 News at KSDS-FM.org</td>
<td><a href="http://ksdsdashfmdotorg.editthispage.com/xml/rss.xml">RSS 0.9</a></td>
</tr>
<tr>
<td>Karsten Januszewski&#8217;s UDDI Web Log</td>
<td><a href="http://www.gotdotnet.com/team/karstenj/rss.aspx?version=0.91">RSS        0.9</a>, <a href="http://www.soaprpc.com/archives/%20http://www.gotdotnet.com/team/karstenj/rss.aspx?version=0.91">RSS        1.0</a></td>
</tr>
<tr>
<td>Kirby T @thecave.com</td>
<td><a href="http://www.thecave.com/rss.xml">RSS 0.9</a>,</td>
</tr>
<tr>
<td>Tim Ewald&#8217;s Ideas about XML and Web Services</td>
<td><a href="http://www.gotdotnet.com/team/tewald/rss.aspx?version=0.91">RSS        0.9</a>, <a href="http://www.gotdotnet.com/team/tewald/rss.aspx?version=0.91">RSS        1.0</a></td>
</tr>
<tr>
<td>Vivek Chopra&#8217;s weblog on SOA and Web services</td>
<td><a href="http://www.soaprpc.com/archives/%20http://www.soaprpc.com/index.rdf">RSS 1.0</a></td>
</tr>
<tr>
<td>Christian Weyer: Web Services &amp; .NET</td>
<td><a href="http://weblogs.asp.net/cweyer">RSS 2.0</a></td>
</tr>
<tr>
<td>Clemens Vasters: Enterprise Development &amp; Alien Abductions</td>
<td><a href="http://staff.newtelligence.net/clemensv/rss.ashx">RSS 2.0</a></td>
</tr>
<tr>
<td>Laurie Thompson-Earls</td>
<td><a href="http://www.cerkit.com/lte/SyndicationService.asmx/GetRss">RSS        2.0</a></td>
</tr>
<tr>
<td>Link to MSDN Just Published</td>
<td><a href="http://msdn.microsoft.com/rss.xml">RSS 2.0</a></td>
</tr>
<tr>
<td>Matevz Gacnik&#8217;s Web Log</td>
<td><a href="http://www.request-response.com/">RSS 2.0</a></td>
</tr>
<tr>
<td>Michael Earls</td>
<td><a href="http://www.cerkit.com/cerkitBlog/SyndicationService.asmx/GetRss">RSS        2.0</a></td>
</tr>
</tbody>
</table>
<p>Not a whole lot of feeds as you can see. Check out <a href="http://www.syndic8.com/">Syndic8</a> if you want more RSS feeds- 100,772 at last count (May 12, 2004)!</p>
<p><strong>[Update 10:30 PM, May 12 2004]</strong> I found this <a href="http://www.brainstormsandraves.com/archives/2003/05/02/friday_feast_42_the_world_of_rss_feeds/">great resource on RSS</a> which has a lot of information on registering and discovering RSS feeds too.</p>
<p>Source code:</p>
<pre>/**
 * This code is licensed under the following terms:
 *   Creative Commons Attribution-NoDerivs-NonCommercial 1.0
 *   http://creativecommons.org/licenses/by-nd-nc/1.0/
 *
 * Copyright (c) soaprpc.com. All rights reserved.
 */
package com.soaprpc.uddi4j.tools;

import org.uddi4j.*;
import org.uddi4j.client.*;
import org.uddi4j.datatype.*;
import org.uddi4j.datatype.assertion.*;
import org.uddi4j.datatype.binding.*;
import org.uddi4j.datatype.business.*;
import org.uddi4j.datatype.service.*;
import org.uddi4j.datatype.tmodel.*;
import org.uddi4j.request.*;
import org.uddi4j.response.*;
import org.uddi4j.transport.*;
import org.uddi4j.util.*;

import java.io.*;
import java.net.*;
import java.util.Properties;
import java.util.Vector;

/**
 * The FindRSSFeeds class is a command line based program that finds
 * RSS feeds.
 *
 */
public class FindRSSFeeds {

    /* tModel Key for RSS 0.9x feeds */
    public static String RSS_0_9_TMODELKEY = "uuid:8a056b70-bfe8-4fac-90cd-820c26dc2e48";

    /* tModel Key for RSS 1.0  feeds */
    public static String RSS_1_0_TMODELKEY = "uuid:bf3d12a4-a6e8-4ef2-918c-18c60a04edfc";

    /* tModel Key for RSS 2.0  feeds */
    public static String RSS_2_0_TMODELKEY = "uuid:bacbe300-4b2b-11d7-bc51-000629dc0a53";

    /* UDDI Inquiry URL              */
    public static String UDDI_INQUIRY_URL  = "http://uddi.ibm.com/ubr/inquiryapi";

    /**
     * The UDDIProxy object. All API calls to the UDDI registry are made against
     * this object.
     */
    private UDDIProxy _uddiProxy;

    public FindRSSFeeds (UDDIProxy uddiProxy) {
        _uddiProxy = uddiProxy;
    }

    /*
     * Utility method for dumping the DispositionReport
     */
    void printUDDIExceptionDetail(UDDIException uddiException, String message) {
        System.out.println(message + "\n");

        DispositionReport dispositionReport = uddiException.getDispositionReport();

        if (dispositionReport != null) {
            System.out.println("UDDIException faultCode:" +
                uddiException.getFaultCode() + "\n operator:" +
                dispositionReport.getOperator() + "\n generic:" +
                dispositionReport.getGeneric());

            Vector results = dispositionReport.getResultVector();

            for (int i = 0; i &lt; results.size(); i++) {
                Result result = (Result) results.elementAt(i);
                System.out.println("\n errno:" + result.getErrno());

                if (result.getErrInfo() != null) {
                    System.out.println("\n errCode:" +
                        result.getErrInfo().getErrCode() + "\n errInfoText:" +
                        result.getErrInfo().getText());
                }
            }
        }
    }

    /* Find all RSS feeds */
    private void findRSSFeeds (String rssTModelKey) {
        ServiceList serviceList = null;

        try {
            TModelBag tModelBag = new TModelBag ();
            tModelBag.add (new TModelKey (rssTModelKey));
            /* Note:
             *  1. Set businessKey to "" to indicate that all businessEntities
             *     needs to be searched.
             *  2. Additional categoryBag entries can be added as needed, for
             *     instance to find all RSS feeds that belong to a specific
             *     classification. An example of this is to find all RSS feeds
             *     with NAICS category "Motion Picture and Video Industries".
             */
            serviceList = _uddiProxy.find_service("", null, null, tModelBag,
                                                  null, 0);

            /* Dump out useful information about the feeds */
           ServiceInfos serviceInfos = serviceList.getServiceInfos ();
           int size = serviceInfos.size();
           for (int i = 0; i &lt; size; i++) {
              ServiceInfo serviceInfo = serviceInfos.get (i);
              String name             = serviceInfo.getDefaultNameString ();
              String serviceKey       = serviceInfo.getServiceKey ();
              ServiceDetail detail    =  _uddiProxy.get_serviceDetail(serviceKey);
              Vector serviceVector    = detail.getBusinessServiceVector ();
              BusinessService service = (BusinessService)serviceVector.get(0);
              BindingTemplate binding = service.getBindingTemplates().get(0);
              String accessPoint      = binding.getAccessPoint().getText();

              System.out.println ((i+1) + ". " + name + ": " + accessPoint + "\n");
           }        

        } catch (UDDIException e) {
            printUDDIExceptionDetail(e,
                "UDDI error searching for RSS feeds in UDDI Registry");
            System.exit(1); /* fatal error */
        } catch (Exception e) {
            System.out.println(
                "Exception searching for RSS feeds in UDDI Registry: " +
                e.getMessage());

            // e.printStackTrace ();
            System.exit(1); /* fatal error */
        }
    }

    /* Print usage message */
    private static void usage() {
        System.out.println("usage: FindRSSFeeds &lt;rss09|rss10|rss20&gt; [trace]");
        System.out.println("       The trace option enables SOAP message tracing");

    }

    public static void main(String[] args) {
        /* Process command line arguments */
        if (args.length &lt; 1) {
            usage();
            System.exit(1);
        }

        /* Set up UDDI4J system properties */
        /* Set SOAP transport class to Apache SOAP */
        System.setProperty(TransportFactory.PROPERTY_NAME,
            "org.uddi4j.transport.ApacheSOAPTransport");

        /* Enable logging to dump messages to console */
        if ((args.length == 2) &amp;&amp; (args[1].equals ("trace")))
            System.setProperty("org.uddi4j.logEnabled", "true");

        String inquiryUrl = FindRSSFeeds.UDDI_INQUIRY_URL;
        String rssVersion = args[0]; 

        /* Construct a UDDIProxy object- this represents a UDDI server
         * and the actions that can be invoked against it.
         */
        UDDIProxy uddiProxy = new UDDIProxy();

        /* Set the inquiry URL */
        try {
            uddiProxy.setInquiryURL(inquiryUrl);
            System.out.println("Using Inquiry URL [" + inquiryUrl + "]");
        } catch (MalformedURLException e) {
            System.out.println("Malformed publish URL for the UDDI registry [" +
                inquiryUrl + "]: " + e.getMessage());
            System.exit(1);
        }

        /* Make the inquiry call to the UDDI registry */
        FindRSSFeeds finder = new FindRSSFeeds (uddiProxy);

        if (rssVersion.equals("rss09")) {
            finder.findRSSFeeds (FindRSSFeeds.RSS_0_9_TMODELKEY);
        } else if (rssVersion.equals("rss10")) {
            finder.findRSSFeeds (FindRSSFeeds.RSS_1_0_TMODELKEY);
        } else if (rssVersion.equals("rss20")) {
            finder.findRSSFeeds (FindRSSFeeds.RSS_2_0_TMODELKEY);
        } else {
            usage();
        }
    }
}</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/soaprpc.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/soaprpc.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/soaprpc.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/soaprpc.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/soaprpc.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/soaprpc.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/soaprpc.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/soaprpc.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/soaprpc.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/soaprpc.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/soaprpc.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/soaprpc.wordpress.com/20/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/soaprpc.wordpress.com/20/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/soaprpc.wordpress.com/20/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=20&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://soaprpc.wordpress.com/2009/04/25/registering-and-discovering-rss-feeds-in-uddi-business-registries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc7de877a3440c204bfff41188de772c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">soaprpc</media:title>
		</media:content>
	</item>
		<item>
		<title>Performance best practices for web services</title>
		<link>http://soaprpc.wordpress.com/2009/04/25/performance-best-practices-for-web-services/</link>
		<comments>http://soaprpc.wordpress.com/2009/04/25/performance-best-practices-for-web-services/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 07:45:34 +0000</pubDate>
		<dc:creator>soaprpc</dc:creator>
				<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://soaprpc.wordpress.com/?p=17</guid>
		<description><![CDATA[[Originally posted May 11, 2004] Performance is always a concern with Web services- there are better ways to designing a performant distributed system than sticking it behind a HTTP port and throwing verbose XML messages at it. Lately I&#8217;ve been exploring some mechanisms to address performance issues for Web services. Most of these approaches target [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=17&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>[Originally posted May 11, 2004]</p>
<p>Performance is always a concern with Web services- there are better ways to designing a performant distributed system than sticking it behind a HTTP port and throwing verbose XML messages at it.</p>
<p>Lately I&#8217;ve been exploring some mechanisms to address performance issues for Web services. Most of these approaches target bottlenecks at the lower level SOAP layer, rather than at the design level. I&#8217;ve looked at some articles and technical papers that present metrics and guidelines. From them I&#8217;ve distilled the following performance best practices:</p>
<p><a name="more"></a></p>
<ul>
<li>Design your Web service interface to minimize the network traffic. A &#8216;coarse-grained&#8217; API is better, as you minimize the number of requests a client has to make to get information. <a href="http://www.soaprpc.com/archives/000020.html#ref1">[1]</a><a href="http://www.soaprpc.com/archives/000020.html#ref6">[6]</a></li>
<li>Large SOAP messages are a performance bottleneck due to time spent parsing them. Keep your payload size as small as possible <a href="http://www.soaprpc.com/archives/000020.html#ref1">[1]</a></li>
<li>Complex SOAP message are a performance bottleneck due to time spent serializing/deserializing messages. Keep your payload complexity low. However, payload complexity and payload size are often design tradeoffs. <a href="http://www.soaprpc.com/archives/000020.html#ref1">[1]</a></li>
<li>SOAP intermediaries (gateways, proxies) should minimize parsing of messages.<a href="http://www.soaprpc.com/archives/000020.html#ref1">[1]</a></li>
<li>Better XML parsing techniques. <a href="http://www.soaprpc.com/archives/000020.html#ref3">[3]</a> For most applications, event driven parsers (SAX style) are more performant than DOM style parsers.<a href="http://www.soaprpc.com/archives/000020.html#ref1">[1]</a><a href="http://www.soaprpc.com/archives/000020.html#ref6">[6]</a></li>
<li>Document/Literal style SOAP messages are smaller and less complex than RPC/SOAP message. <a href="http://www.soaprpc.com/archives/000020.html#ref1">[1]</a><a href="http://www.soaprpc.com/archives/000020.html#ref5">[5]</a></li>
<li>Security has performance costs. Not all SOAP traffic needs to be secure.      The performance costs of an end-to-end security (i.e. WS-Security) is, in      most cases, higher than a transport level security mechanism like SSL. <a href="http://www.soaprpc.com/archives/000020.html#ref1">[1]</a></li>
<li>Caching is a way to improve performance for processor-intensive services, though this is applicable only for read-only type of services. <a href="http://www.soaprpc.com/archives/000020.html#ref2">[2]</a></li>
<li>Many of the performance best practices for web applications will apply here too (using EJBs v/s JavaBeans, passing-by-reference of EJB components, Hardware and capacity settings, JVM setting etc.) <a href="http://www.soaprpc.com/archives/000020.html#ref2">[2]</a></li>
<li>Persistent connections are good for performance in case of a large number of messages of small payload size. For larger messages, this has less of an effect <a href="http://www.soaprpc.com/archives/000020.html#ref3">[3]</a>. HTTP keep-alive is way <a href="http://www.soaprpc.com/archives/000020.html#ref2">[2]</a> to request that a HTTP connection persist, though this is a default in HTTP/1.1.</li>
<li>Streaming connections are good for performance in case of a large payload size. HTTP &#8216;chunked encoding&#8217; is a kind of streaming, and is supported by HTTP/1.1. <a href="http://www.soaprpc.com/archives/000020.html#ref3">[3]</a><a href="http://www.soaprpc.com/archives/000020.html#ref6">[6]</a></li>
<li>Binary encoding of some payload elements should be considered. <a href="http://www.soaprpc.com/archives/000020.html#ref3">[3]</a></li>
</ul>
<p>However, all said and done, remember the reasons for which you are choosing Web services &#8211; interoperability across heterogeneous environments- and not for performance!</p>
<p><strong>References:</strong></p>
<p><a name="ref1"></a>[1] Holt Adams. Web services performance considerations, Part 1. <a href="http://www-106.ibm.com/developerworks/library/ws-best9/">http://www-106.ibm.com/developerworks/library/ws-best9/</a></p>
<p><a name="ref2"></a>[2] Holt Adams. Web services performance considerations, Part 2. <a href="http://www-106.ibm.com/developerworks/webservices/library/ws-best10/">http://www-106.ibm.com/developerworks/webservices/library/ws-best10/</a></p>
<p><a name="ref3"></a>[3] Kenneth Chiu, Madhusudhan Govindaraju, et al. Investigating the Limits    of SOAP Performance for Scientific Computing. <a href="http://www.extreme.indiana.edu/xgws/papers/soap-hpdc2002/soap-hpdc2002.pdf">http://www.extreme.indiana.edu/xgws/papers/soap-hpdc2002/soap-hpdc2002.pdf</a></p>
<p><a name="ref4"></a>[4] Madhusudhan Govindaraju, Aleksander Slominski et al. Requirements for and Evaluation of RMI Protocols for Scientific Computing. <a href="http://www.sc2000.org/techpapr/papers/pap.pap261.pdf">http://www.sc2000.org/techpapr/papers/pap.pap261.pdf</a></p>
<p><a name="ref5"></a>[5] Frank Cohen. Discover SOAP encoding&#8217;s impact on Web service performance <a href="http://www-106.ibm.com/developerworks/webservices/library/ws-soapenc/">http://www-106.ibm.com/developerworks/webservices/library/ws-soapenc/</a></p>
<p><a name="ref6"></a>[6] Dan Davis and Manish Parashar. Latency Performance of SOAP implementations <a href="http://www.caip.rutgers.edu/TASSL/Papers/p2p-p2pws02-soap.pdf">http://www.caip.rutgers.edu/TASSL/Papers/p2p-p2pws02-soap.pdf</a></p>
<p><strong>[Update May 12, 2004]</strong> I found <a href="http://www.javaperformancetuning.com/tips/webservice.shtml">another website</a> that consolidates performance best practices.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/soaprpc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/soaprpc.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/soaprpc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/soaprpc.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/soaprpc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/soaprpc.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/soaprpc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/soaprpc.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/soaprpc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/soaprpc.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/soaprpc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/soaprpc.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/soaprpc.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/soaprpc.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=17&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://soaprpc.wordpress.com/2009/04/25/performance-best-practices-for-web-services/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc7de877a3440c204bfff41188de772c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">soaprpc</media:title>
		</media:content>
	</item>
		<item>
		<title>web service specifications</title>
		<link>http://soaprpc.wordpress.com/2009/04/25/web-service-specifications/</link>
		<comments>http://soaprpc.wordpress.com/2009/04/25/web-service-specifications/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 07:42:12 +0000</pubDate>
		<dc:creator>soaprpc</dc:creator>
				<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://soaprpc.wordpress.com/2009/04/25/15/</guid>
		<description><![CDATA[[Originally updated September 2005] My attempt to keep track of all the web service specifications&#8230; Standard Current version URL SOAP 1.2 http://www.w3.org/TR/soap SOAP with Attachements - http://www.w3.org/TR/SOAP-attachments WS-Attachments - http://www-106.ibm.com/developerworks/webservices/library/ws-attach.html WSDL 1.1 http://www.w3.org/TR/wsdl UDDI 2, 3 in progress http://www.uddi.org/specification.html WS-Inspection 1.0 http://www-106.ibm.com/developerworks/webservices/library/ws-wsilspec.html BPEL4WS 1.1 http://www-106.ibm.com/developerworks/library/ws-bpel/ WS-Coordination - http://www-106.ibm.com/developerworks/library/ws-coor/ WSCI 1.0 http://www.w3.org/TR/wsci/ BPML 1.0 http://www.bpmi.org/specifications.esp WS-Transaction [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=15&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>[Originally updated September 2005]</p>
<p>My attempt to keep track of all the web service specifications&#8230;</p>
<table border="0" width="100%">
<tbody>
<tr>
<td width="17%"><strong>Standard</strong></td>
<td width="13%"><strong>Current version</strong></td>
<td width="70%"><strong>URL</strong></td>
</tr>
<tr>
<td>SOAP</td>
<td>1.2</td>
<td><a href="http://www.w3.org/TR/soap">http://www.w3.org/TR/soap</a></td>
</tr>
<tr>
<td>SOAP with Attachements</td>
<td>-</td>
<td><a href="http://www.w3.org/TR/SOAP-attachments">http://www.w3.org/TR/SOAP-attachments</a></td>
</tr>
<tr>
<td>WS-Attachments</td>
<td>-</td>
<td><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-attach.html">http://www-106.ibm.com/developerworks/webservices/library/ws-attach.html</a></td>
</tr>
<tr>
<td>WSDL</td>
<td>1.1</td>
<td><a href="http://www.w3.org/TR/wsdl">http://www.w3.org/TR/wsdl</a></td>
</tr>
<tr>
<td>UDDI</td>
<td>2, 3 in progress</td>
<td><a href="http://www.uddi.org/specification.html">http://www.uddi.org/specification.html</a></td>
</tr>
<tr>
<td>WS-Inspection</td>
<td>1.0</td>
<td><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-wsilspec.html">http://www-106.ibm.com/developerworks/webservices/library/ws-wsilspec.html</a></td>
</tr>
<tr>
<td>BPEL4WS</td>
<td>1.1</td>
<td><a href="http://www-106.ibm.com/developerworks/library/ws-bpel/">http://www-106.ibm.com/developerworks/library/ws-bpel/</a></td>
</tr>
<tr>
<td>WS-Coordination</td>
<td>-</td>
<td><a href="http://www-106.ibm.com/developerworks/library/ws-coor/">http://www-106.ibm.com/developerworks/library/ws-coor/</a></td>
</tr>
<tr>
<td>WSCI</td>
<td>1.0</td>
<td><a href="http://www.w3.org/TR/wsci/">http://www.w3.org/TR/wsci/</a></td>
</tr>
<tr>
<td>BPML</td>
<td>1.0</td>
<td><a href="http://www.bpmi.org/specifications.esp">http://www.bpmi.org/specifications.esp</a></td>
</tr>
<tr>
<td>WS-Transaction</td>
<td>-</td>
<td><a href="http://www.ibm.com/developerworks/library/ws-transpec/">http://www.ibm.com/developerworks/library/ws-transpec/</a></td>
</tr>
<tr>
<td>WS-ReliableMessaging</td>
<td>-</td>
<td><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-rm/">http://www-106.ibm.com/developerworks/webservices/library/ws-rm/</a></td>
</tr>
<tr>
<td>XML-Signature</td>
<td>-</td>
<td><a href="http://www.w3.org/Signature/">http://www.w3.org/Signature/</a></td>
</tr>
<tr>
<td>XML-Encryption</td>
<td>-</td>
<td><a href="http://www.w3.org/Encryption/">http://www.w3.org/Encryption/</a></td>
</tr>
<tr>
<td>XKMS</td>
<td>-</td>
<td><a href="http://www.w3.org/TR/xkms/">http://www.w3.org/TR/xkms/</a></td>
</tr>
<tr>
<td>WS-Security</td>
<td>-</td>
<td><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-secure/">http://www-106.ibm.com/developerworks/webservices/library/ws-secure/</a></td>
</tr>
<tr>
<td>SAML</td>
<td>1.1, 2.0 in progress</td>
<td><a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security">http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=security</a></td>
</tr>
<tr>
<td>XACML</td>
<td>1.0, 1.1 in progress</td>
<td><a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml">http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml</a></td>
</tr>
<tr>
<td>Passport</td>
<td>-</td>
<td><a href="http://msdn.microsoft.com/library/default.asp?url=/downloads/list/websrvpass.asp">http://msdn.microsoft.com/library/default.asp?url=/downloads/list/websrvpass.asp</a></td>
</tr>
<tr>
<td>Liberty</td>
<td>-</td>
<td><a href="http://www.projectliberty.org/">http://www.projectliberty.org/</a></td>
</tr>
<tr>
<td>WS-Federation</td>
<td>-</td>
<td><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-fed/">http://www-106.ibm.com/developerworks/webservices/library/ws-fed/</a></td>
</tr>
<tr>
<td>WS-Trust</td>
<td>-</td>
<td><a href="http://www.ibm.com/developerworks/library/ws-trust/index.html">http://www.ibm.com/developerworks/library/ws-trust/index.html</a></td>
</tr>
<tr>
<td>WS-Policy</td>
<td>-</td>
<td><a href="http://www-106.ibm.com/developerworks/library/ws-polfram/">http://www-106.ibm.com/developerworks/library/ws-polfram/</a></td>
</tr>
<tr>
<td>WS-SecurityPolicy</td>
<td>-</td>
<td><a href="http://www-106.ibm.com/developerworks/library/ws-secpol/">http://www-106.ibm.com/developerworks/library/ws-secpol/</a></td>
</tr>
<tr>
<td>WS-SecureConversation</td>
<td>-</td>
<td><a href="http://www-106.ibm.com/developerworks/library/ws-secon/">http://www-106.ibm.com/developerworks/library/ws-secon/</a></td>
</tr>
<tr>
<td>WS-Authorization</td>
<td>Work in progress</td>
<td>Work in progress</td>
</tr>
<tr>
<td>XrML</td>
<td>2.0</td>
<td><a href="http://www.xrml.org/get_XrML.asp">http://www.xrml.org/get_XrML.asp</a></td>
</tr>
<tr>
<td>WS-Privacy</td>
<td>Work in progress</td>
<td>Work in progress</td>
</tr>
<tr>
<td>WS-Notification</td>
<td>-</td>
<td><a href="http://www-106.ibm.com/developerworks/library/specification/ws-notification/">http://www-106.ibm.com/developerworks/library/specification/ws-notification/</a></td>
</tr>
<tr>
<td>WS-ResourceFramework</td>
<td>-</td>
<td><a href="http://www-106.ibm.com/developerworks/library/ws-resource/">http://www-106.ibm.com/developerworks/library/ws-resource/</a></td>
</tr>
<tr>
<td>WS-Eventing</td>
<td>-</td>
<td><a href="http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnglobspec/html/ws-eventing.asp">http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnglobspec/html/ws-eventing.asp</a></td>
</tr>
</tbody>
</table>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/soaprpc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/soaprpc.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/soaprpc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/soaprpc.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/soaprpc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/soaprpc.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/soaprpc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/soaprpc.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/soaprpc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/soaprpc.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/soaprpc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/soaprpc.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/soaprpc.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/soaprpc.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=15&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://soaprpc.wordpress.com/2009/04/25/web-service-specifications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc7de877a3440c204bfff41188de772c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">soaprpc</media:title>
		</media:content>
	</item>
		<item>
		<title>Browsing UDDI registries</title>
		<link>http://soaprpc.wordpress.com/2009/04/25/browsing-uddi-registries/</link>
		<comments>http://soaprpc.wordpress.com/2009/04/25/browsing-uddi-registries/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 07:39:28 +0000</pubDate>
		<dc:creator>soaprpc</dc:creator>
				<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://soaprpc.wordpress.com/?p=11</guid>
		<description><![CDATA[[Originally posted on March 23, 2004 ] CAVEAT: None of this code will probably work- UDDI Business Registries are so very 2001 Some years back (2001?) I had written up a very primitive command line tool to dump data from a UDDI (then V1) registry. I recently updated it for the current version of uddi4j. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=11&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>[Originally posted on March 23, 2004 ]</p>
<p><span style="color:#ff9900;"><em><strong>CAVEAT:</strong> None of this code will probably work- UDDI Business Registries are so very 2001</em></span></p>
<p>Some years back (2001?) I had written up a very primitive command line tool to dump data from a UDDI (then V1) registry. I recently updated it for the current version of <a href="http://www.uddi4j.org/">uddi4j</a>.</p>
<p>The command tool was very optimistically named &#8216;UDDI Browser&#8217; (source listed at end of article). It enabled you to do things like:</p>
<p>Find a business by name</p>
<p><strong> java com.soaprpc.uddi4j.tools.UDDIBrowser http://uddi.ibm.com/ubr/inquiryapi find_business name ibm</strong></p>
<p>Look at the list of business returned, and drill-down using a business key</p>
<p><strong> java com.soaprpc.uddi4j.tools.UDDIBrowser http://uddi.ibm.com/ubr/inquiryapi find_business key D2033110-3AAF-11D5-80DC-002035229C64</strong></p>
<p>On finding a service you like, you can get information on it:</p>
<p><strong>java com.soaprpc.uddi4j.tools.UDDIBrowser http://uddi.ibm.com/ubr/inquiryapi find_service key 894B5100-3AAF-11D5-80DC-002035229C64</strong></p>
<p>The prerequisites for the code are:</p>
<ul>
<li><a href="http://ws.apache.org/soap/">Apache SOAP</a>- uddi4j works with Axis, <span style="text-decoration:line-through;">however I had problems with the current Axis release. I haven&#8217;t verified which Axis version uddi4j works with.</span> however you should use Xerces due to a bug with Crimson- see my comment below. You would have to make a small, one line change in the code to set the correct SOAP transport class.</li>
<li><a href="http://java.sun.com/products/javamail/">Java mail</a> (required by Apache SOAP)</li>
<li><a href="http://java.sun.com/products/beans/glasgow/jaf.html">Java activation framework</a> (required by Apache SOAP)</li>
<li>And offcoure, <a href="http://www.uddi4j.org/">uddi4j</a>. Further instructions are <a href="http://www-124.ibm.com/developerworks/oss/uddi4j/doc.htm">here</a>.</li>
</ul>
<p>Note that if you run this software from behind a proxy server, you would need to specify the proxy host and port at the command line using -Dhttp.proxyHost/-Dhttp.proxyPort.</p>
<p>Most commercial Web service products include a UDDI browser, but if you are looking for an open source/free option and don&#8217;t like the primitive interface of my UDDI tool, you do have some options. Many moons ago I worked briefly on one such tool- the now defunct HP Registry Composer. I found a <a href="http://www.hpmiddleware.com/downloads/PDF/RegistryComposer_specsheet.pdf">datasheet</a> for it still around on the &#8216;HP Middleware&#8217; website. Your other (non-defunct) options include soapclient&#8217;s <a href="http://soapclient.com/uddisearch.html">web based UDDI browser</a> and an open source SWING based tool called <a href="http://sourceforge.net/projects/uddibrowser">uddibrowse</a> (I&#8217;ve seen some screenshots, but haven&#8217;t tried it out).</p>
<p>The public UDDI registries (UDDI Business Registry- UBR) have a web based interface too. Uddi4j&#8217;s website <a href="http://www-124.ibm.com/developerworks/oss/uddi4j/links.htm">lists</a> them, but is outdated- it still has HP&#8217;s UBR site listed (HP dropped most it&#8217;s Web Service offerings about a year and a half/two years ago), and the Microsoft UBR address is incorrect. A complete list is:</p>
<table border="0" width="100%">
<tbody>
<tr>
<td width="13%">IBM-Production</td>
<td width="14%"></td>
<td width="73%"></td>
</tr>
<tr>
<td></td>
<td>Registration web site</td>
<td><a href="https://uddi.ibm.com/ubr/registry.html">https://uddi.ibm.com/ubr/registry.html</a></td>
</tr>
<tr>
<td></td>
<td>Inquiry URL</td>
<td>http://uddi.ibm.com/ubr/inquiryapi</td>
</tr>
<tr>
<td></td>
<td>Publish URL</td>
<td>https://uddi.ibm.com/ubr/publishapi</td>
</tr>
<tr>
<td>Microsoft-Production</td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>Registration web site</td>
<td><a href="http://uddi.microsoft.com/">http://uddi.microsoft.com</a></td>
</tr>
<tr>
<td></td>
<td>Inquiry URL</td>
<td>http://uddi.microsoft.com/inquire</td>
</tr>
<tr>
<td></td>
<td>Publish URL</td>
<td>https://uddi.microsoft.com/publish</td>
</tr>
<tr>
<td>SAP-Production</td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>Registration web site</td>
<td><a href="http://uddi.sap.com/">http://uddi.sap.com</a></td>
</tr>
<tr>
<td></td>
<td>Inquiry URL</td>
<td>http://uddi.sap.com/UDDI/api/inquiry/</td>
</tr>
<tr>
<td></td>
<td>Publish URL</td>
<td>https://uddi.sap.com/UDDI/api/publish/</td>
</tr>
</tbody>
</table>
<p>If you are planning to publish to the UDDI registry, you should use the &#8216;test&#8217; registries. These currently support UDDI V3 Beta, and are backwards compatible with the UDDI V2 API.</p>
<table border="0" width="100%">
<tbody>
<tr>
<td width="13%">IBM-Test</td>
<td width="14%"></td>
<td width="73%"></td>
</tr>
<tr>
<td></td>
<td>Registration web site</td>
<td><a href="https://uddi.ibm.com/beta/registry.html">https://uddi.ibm.com/beta/registry.html</a></td>
</tr>
<tr>
<td></td>
<td>Inquiry URL</td>
<td>http://uddi.ibm.com/beta/inquiryapi</td>
</tr>
<tr>
<td></td>
<td>Publish URL</td>
<td>https://uddi.ibm.com/beta/publishapi</td>
</tr>
<tr>
<td>Microsoft-Test</td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>Registration web site</td>
<td><a href="http://uddi.beta.microsoft.com/">http://uddi.beta.microsoft.com</a></td>
</tr>
<tr>
<td></td>
<td>Inquiry URL</td>
<td>http://uddi.beta.microsoft.com/inquire</td>
</tr>
<tr>
<td></td>
<td>Publish URL</td>
<td>https://uddi.beta.microsoft.com/publish</td>
</tr>
<tr>
<td>SAP-Test</td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td>Registration web site</td>
<td><a href="http://udditest.sap.com/">http://udditest.sap.com</a></td>
</tr>
<tr>
<td></td>
<td>Inquiry URL</td>
<td>http://udditest.sap.com/UDDI/api/inquiry/</td>
</tr>
<tr>
<td></td>
<td>Publish URL</td>
<td>https://udditest.sap.com/UDDI/api/publish/</td>
</tr>
</tbody>
</table>
<p>Source code for UDDIBrowser  (see the circa 2001 usage of java.util.Vector!)</p>
<pre>/**
 * This code is licensed under the following terms:
 *   Creative Commons Attribution-NoDerivs-NonCommercial 1.0
 *   http://creativecommons.org/licenses/by-nd-nc/1.0/
 *
 * Copyright (c) soaprpc.com. All rights reserved.
 */
package com.soaprpc.uddi4j.tools;

import org.uddi4j.*;
import org.uddi4j.client.*;
import org.uddi4j.datatype.*;
import org.uddi4j.datatype.assertion.*;
import org.uddi4j.datatype.binding.*;
import org.uddi4j.datatype.business.*;
import org.uddi4j.datatype.service.*;
import org.uddi4j.datatype.tmodel.*;
import org.uddi4j.request.*;
import org.uddi4j.response.*;
import org.uddi4j.transport.*;
import org.uddi4j.util.*;

import java.io.*;
import java.net.*;
import java.util.Properties;
import java.util.Vector;

/**
 * The UDDIBrowser class is a command line based UDDI registry browser
 *
 * @author Vivek Chopra (www.soaprpc.com)
 */
public class UDDIBrowser {
    /**
     * The UDDIProxy object. All API calls to the UDDI registry are made against
     * this object.
     */
    private UDDIProxy _uddiProxy;

    public UDDIBrowser(UDDIProxy uddiProxy) {
        _uddiProxy = uddiProxy;
    }

    /*
     * Utility method for dumping the DispositionReport
     */
    void printUDDIExceptionDetail(UDDIException uddiException, String message) {
        System.out.println(message + "\n");

        DispositionReport dispositionReport = uddiException.getDispositionReport();

        if (dispositionReport != null) {
            System.out.println("UDDIException faultCode:" +
                uddiException.getFaultCode() + "\n operator:" +
                dispositionReport.getOperator() + "\n generic:" +
                dispositionReport.getGeneric());

            Vector results = dispositionReport.getResultVector();

            for (int i = 0; i &lt; results.size(); i++) {
                Result result = (Result) results.elementAt(i);
                System.out.println("\n errno:" + result.getErrno());

                if (result.getErrInfo() != null) {
                    System.out.println("\n errCode:" +
                        result.getErrInfo().getErrCode() + "\n errInfoText:" +
                        result.getErrInfo().getText());
                }
            }
        }
    }

    /* Browse by Business Name- return all matching business entities */
    private void browseBusinessByName(String businessName) {
        BusinessList businessList = null;

        try {
            Vector names = new Vector();
            names.add(new Name(businessName));

            businessList = _uddiProxy.find_business(names, null, null, null,
                    null, null, 0);
        } catch (UDDIException e) {
            printUDDIExceptionDetail(e,
                "UDDI error browsing for businesses in UDDI Registry");
            System.exit(1); /* fatal error */
        } catch (Exception e) {
            System.out.println(
                "Exception browsing for businesses in UDDI Registry: " +
                e.getMessage());

            // e.printStackTrace ();
            System.exit(1); /* fatal error */
        }

        /* Since logging is enabled, all request and response messages will be
         * dumped to console
         */
    }

    /* Browse by Business key- return an entire businessEntity */
    private void browseBusinessByKey(String businessKey) {
        Vector vector = new Vector();
        vector.addElement(businessKey);

        BusinessDetail businessDetail = null;

        try {
            businessDetail = _uddiProxy.get_businessDetail(vector);
        } catch (UDDIException e) {
            printUDDIExceptionDetail(e,
                "UDDI error browsing for businesses in UDDI Registry");
            System.exit(1); /* fatal error */
        } catch (Exception e) {
            System.out.println(
                "Exception browsing for businesses in UDDI Registry: " +
                e.getMessage());

            // e.printStackTrace ();
            System.exit(1); /* fatal error */
        }

        /* Since logging is enabled, all request and response messages will be
         * dumped to console
         */
    }

    /* Browse by Service key- return an entire businessService */
    private void browseServiceByKey(String businessServiceKey) {
        Vector vector = new Vector();
        vector.addElement(businessServiceKey);

        ServiceDetail serviceDetail = null;

        try {
            serviceDetail = _uddiProxy.get_serviceDetail(vector);
        } catch (UDDIException e) {
            printUDDIExceptionDetail(e,
                "UDDI error browsing for services in UDDI Registry");
            System.exit(1); /* fatal error */
        } catch (Exception e) {
            System.out.println(
                "Exception browsing for services in UDDI Registry: " +
                e.getMessage());

            // e.printStackTrace ();
            System.exit(1); /* fatal error */
        }

        /* Since logging is enabled, all request and response messages will be
         * dumped to console
         */
    }

    /* Browse by tModel Name- return all matching tModel infos */
    private void browseTModelByName(String tModelName) {
        TModelList tModelList = null;

        try {
            tModelList = _uddiProxy.find_tModel(tModelName, null, null, null, 0);
        } catch (UDDIException e) {
            printUDDIExceptionDetail(e,
                "UDDI error browsing for tModels in UDDI Registry");
            System.exit(1); /* fatal error */
        } catch (Exception e) {
            System.out.println(
                "Exception browsing for tModels in UDDI Registry: " +
                e.getMessage());

            // e.printStackTrace ();
            System.exit(1); /* fatal error */
        }

        /* Since logging is enabled, all request and response messages will be
         * dumped to console
         */
    }

    /* Browse by tModel key- return a TModelDetail structure */
    private void browseTModelByKey(String tModelKey) {
        Vector vector = new Vector();
        vector.addElement(tModelKey);

        TModelDetail tModelDetail = null;

        try {
            tModelDetail = _uddiProxy.get_tModelDetail(vector);
        } catch (UDDIException e) {
            printUDDIExceptionDetail(e,
                "UDDI error browsing for tModels in UDDI Registry");
            System.exit(1); /* fatal error */
        } catch (Exception e) {
            System.out.println(
                "Exception browsing for tModels in UDDI Registry: " +
                e.getMessage());

            // e.printStackTrace ();
            System.exit(1); /* fatal error */
        }

        /* Since logging is enabled, all request and response messages will be
         * dumped to console
         */
    }

    /* Print usage message */
    private static void usage() {
        System.out.println(
            "usage: UDDIBrowser &lt;inquiry_url&gt; &lt;find_business|find_service|find_tmodel&gt; &lt;options&gt;\n" +
            "             &lt;options&gt; are :\n" +
            "             [for find_business]\n" +
            "             name &lt;partial_business_name&gt;\n" +
            "             key  &lt;businessKey&gt;\n\n" +
            "             [for find_service]\n" +
            "             key  &lt;serviceKey&gt;\n\n" +
            "             [for find_tmodel]\n" +
            "             name  &lt;partial_tmodel_name&gt;\n" +
            "             key  &lt;tModelKey&gt;");
    }

    public static void main(String[] args) {
        /* Process command line arguments */
        if (args.length &lt; 2) {
            usage();
            System.exit(1);
        }

        /* Set up UDDI4J system properties */
        /* Set SOAP transport class to Apache SOAP */
        System.setProperty(TransportFactory.PROPERTY_NAME,
            "org.uddi4j.transport.ApacheSOAPTransport");

        /* Enable logging to dump messages to console */
        System.setProperty("org.uddi4j.logEnabled", "true");

        String inquiryUrl = args[0];

        String inquiryMethod = args[1];

        if (!inquiryMethod.equals("find_business") &amp;&amp;
                !inquiryMethod.equals("find_service") &amp;&amp;
                !inquiryMethod.equals("find_tmodel")) {
            System.out.println("Inquiry method '" + inquiryMethod +
                "' not valid- has to be one of find_business|find_service|find_tmodel");
        }

        /* Construct a UDDIProxy object- this represents a UDDI server
         * and the actions that can be invoked against it.
         */
        UDDIProxy uddiProxy = new UDDIProxy();

        /* Set the inquiry URL */
        try {
            uddiProxy.setInquiryURL(inquiryUrl);
            System.out.println("Using Inquiry URL [" + inquiryUrl + "]");
        } catch (MalformedURLException e) {
            System.out.println("Malformed publish URL for the UDDI registry [" +
                inquiryUrl + "]: " + e.getMessage());
            System.exit(1);
        }

        /* Make the inquiry call to the UDDI registry */
        UDDIBrowser browser = new UDDIBrowser(uddiProxy);

        if (inquiryMethod.equals("find_business")) {
            if (args[2].equals("name")) {
                browser.browseBusinessByName(args[3]);
            } else if (args[2].equals("key")) {
                browser.browseBusinessByKey(args[3]);
            } else {
                usage();
            }
        } else if (inquiryMethod.equals("find_service")) {
            browser.browseServiceByKey(args[3]);
        } else if (inquiryMethod.equals("find_tmodel")) {
            if (args[2].equals("name")) {
                browser.browseTModelByName(args[3]);
            } else if (args[2].equals("key")) {
                browser.browseTModelByKey(args[3]);
            } else {
                usage();
            }
        } else {
            usage();
        }
    }
}</pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/soaprpc.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/soaprpc.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/soaprpc.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/soaprpc.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/soaprpc.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/soaprpc.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/soaprpc.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/soaprpc.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/soaprpc.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/soaprpc.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/soaprpc.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/soaprpc.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/soaprpc.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/soaprpc.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=11&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://soaprpc.wordpress.com/2009/04/25/browsing-uddi-registries/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc7de877a3440c204bfff41188de772c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">soaprpc</media:title>
		</media:content>
	</item>
		<item>
		<title>web service standards</title>
		<link>http://soaprpc.wordpress.com/2009/04/25/web-service-standards/</link>
		<comments>http://soaprpc.wordpress.com/2009/04/25/web-service-standards/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 07:17:16 +0000</pubDate>
		<dc:creator>soaprpc</dc:creator>
				<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://soaprpc.wordpress.com/?p=8</guid>
		<description><![CDATA[[Originally posted on March 17, 2004] Some time back, I was preparing a document on Web service standards- specifically security related ones- and was overwhelmed by the sheer number of them. I wrote up this rough guide to the Web services &#8216;alphabet soup&#8217; to help me get a big picture of what the standards are, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=8&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>[Originally posted on March 17, 2004]</p>
<p>Some time back, I was preparing a document on Web service standards- specifically security related ones- and was overwhelmed by the sheer number of them. I wrote up this rough guide to the Web services &#8216;alphabet soup&#8217; to help me get a big picture of what the standards are, and where they fit in.</p>
<p><strong>Basic standards</strong></p>
<ul>
<li><a href="http://www.w3.org/TR/soap">SOAP</a> (Simple Object Access Protocol)      defines the format of messages on the &#8216;wire&#8217;.</li>
<li><a href="http://www.w3.org/TR/wsdl">WSDL</a> (Web Services Description Language) is used to describe the programmatic interface exposed by a Web Service, and (optionally) the URL for accessing it.</li>
<li><a href="http://www.uddi.org/specification.html">UDDI</a> (Universal Description, Discovery and Integration) allows for discovery of not just Web services, but also supports a more general &#8216;yellow page&#8217; lookup for companies and services that they provide.</li>
<li><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-wsilspec.html">WS-Inspection</a> is a lightweight discovery standard being pushed by Microsoft and IBM that merges their earlier efforts- IBM&#8217;s <em>Advertisement and Discovery of Services</em> (ADS) and Microsoft&#8217;s <em>Discovery of Web Services</em> (DISCO).</li>
</ul>
<p>The discovery standards haven&#8217;t (as of date) had a lot of traction. SOAP &amp; WSDL on the other hand, are widely in use.</p>
<p><strong> Web service Composition standards</strong></p>
<ul>
<li><a href="http://www-106.ibm.com/developerworks/library/ws-bpel/">BPEL4WS</a> (Business      Process Execution Language for Web Services) consolidates Microsoft&#8217;s <em>XLANG</em> and IBM&#8217;s <em>Web Services Flow Language</em> (WSFL)
<ul>
<li><a href="http://www-106.ibm.com/developerworks/library/ws-coor/%20">WS-Coordination</a> is used along with BPEL4WS for coordinating services</li>
<li><a href="http://www-106.ibm.com/developerworks/library/ws-atomtran/">WS-AtomicTransaction</a> defines the atomic transaction coordination type used by WS-Coordination specification.</li>
</ul>
</li>
<li><a href="http://www.w3.org/TR/wsci/">WSCI</a> (Web Service Choreography Interface)-      Sun&#8217;s alternative to BPEL4WS. It is now a W3C Note, however BPEL4WS has had more acceptance in the market.</li>
<li><a href="http://www.bpmi.org/specifications.esp">BPML</a> (Business Process Modeling Language)- been around longer than the other standards, but doesn&#8217;t have backing from any major enterprise software company. Ok, BEA is listed as a member, BEA is also an author for BPEL4WS <strong>and</strong> WSCI. Go figure!</li>
</ul>
<p>These three competing standards allow for workflow-type applications with Web services.</p>
<p><strong>Web Service QoS standards</strong></p>
<ul>
<li><a href="http://www.ibm.com/developerworks/library/ws-transpec/">WS-Transaction</a> defines a transaction model for Web Services.</li>
<li><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-rm/">WS-ReliableMessaging</a> deals with reliably delivery of messages between Web Services and client applications.</li>
</ul>
<p><strong>Security Standards</strong></p>
<p>Security for Web services can be achieved at two levels- either at the &#8216;wire&#8217;    level or at an XML level. <em>Wire level security</em>, also called <em>Transport layer security</em> uses existing Internet protocols to secure the traffic between the Web Service and the client application. For example you can use:</p>
<ul>
<li>HTTP based authentication (HTTP BASIC, HTTP Digest, HTTP CLIENT-CERT)</li>
<li>SSL for encrypting data</li>
<li>Either a custom access control mechanism, or a J2EE/Realm based access control</li>
</ul>
<p>Wire level security is fine so long you have one Web Service provider and a    simple security policy. However, things become difficult if you have a number    of Web Service providers, or a document being passed around by different services (such as in a workflow). <em>This is because transport layer security mechanisms only secure the information exchange between two application endpoints: they do not provide for an end-to-end security model.</em></p>
<p>In XML level security, also called Message level security, the security information and access policies are bundled in the message itself. There is a long list of standards in this space, though the ones that have some market acceptance at the moment are XML-Encryption, XML-Signature (also used as a part of WS-Security) and SAML.</p>
<ul>
<li>The basic Message level security standards
<ul>
<li><a href="http://www.w3.org/Signature/">XML-Signature</a> is an XML syntax for digital signatures</li>
<li><a href="http://www.w3.org/Encryption/">XML-Encryption</a> specifies how an XML can be used to represent a digitally encrypted web resource,  including another XML document</li>
<li><a href="http://www.w3.org/TR/xkms/">XKMS</a> is a protocol for distributing and registering public keys, and is intended to be used along with <a href="http://www.w3.org/Signature/">XML-Signature</a>.</li>
<li><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-secure/">WS-Security</a> is a protocol neutral mechanism for securing SOAP messages. It builds          upon <a href="http://www.w3.org/Signature/">XML-Signature</a> and <a href="http://www.w3.org/Encryption/">XML-Encryption</a>,          and also specifies how security tokens can be associated with messages.</li>
</ul>
</li>
<li>Security token standards</li>
</ul>
<ul>
<li>
<ul>
<li><a href="http://www.ietf.org/html.charters/pkix-charter.html">X.509</a> certificates</li>
<li><a href="http://www.ietf.org/rfc/rfc1510.txt">Kerberos</a> tickets</li>
<li><a href="http://xml.coverpages.org/saml.html">SAML</a> assertions</li>
</ul>
</li>
<p>These standards aim to enable interoperable authentication and authorization      across systems. This is done by having security tokens bundled along with      a SOAP message, and these tokens can be in any format, such as:</p>
<p>X.509 and Kerberos have been around for a long time- they pre-date Web Services.      <a href="http://xml.coverpages.org/saml.html">SAML</a> (Security Assertion      Markup Language ) is however getting a lot of commercial attention, and has      a number of implementations. There is another standard with some overlap to      SAML called <a href="http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=xacml">XACML</a> (eXtensible Access Control Markup Language), which, as the name suggests,      is an access control rule language.</ul>
<ul>
<li> Identity
<ul>
<li> <a href="http://msdn.microsoft.com/library/default.asp?url=/downloads/list/websrvpass.asp">Passport</a> from Microsoft</li>
<li> <a href="http://www.projectliberty.org/">Liberty</a> from a consortium          started by Sun</li>
</ul>
<p>Liberty and Passport try to solve the same problem (single sign on, identity)        but approach it differently. Liberty has a federated architecture and is        based on SAML. It consists of a set of specifications and depends on vendors        to provide implementations. Passport, on the other hand, is a centralized        service run by Microsoft, and is implemented in Microsoft’s Hotmail,        Messenger and ISP services.</li>
<li>Federation and trust related
<ul>
<li><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-fed/">WS-Federation</a> defines mechanisms that are used to &#8220;enable identity, account, attribute,          authentication, and authorization federation across different trust realms&#8221;.</li>
<li><a href="http://www.ibm.com/developerworks/library/ws-trust/index.html">WS-Trust</a> (Web Services Trust Language) is an extension to WS-Security that specifies          how security tokens are exchanged and trust established.</li>
</ul>
</li>
<li>Policy management standards
<ul>
<li><a href="http://www-106.ibm.com/developerworks/webservices/library/ws-fed/"> </a><a href="http://www-106.ibm.com/developerworks/library/ws-polfram/">WS-Policy</a> (Web Services Policy Framework) is a model for describing the policies          of a Web service. It can be extended to describe service requirements,          preferences, and capabilities.</li>
<li> <a href="http://www-106.ibm.com/developerworks/library/ws-secpol/">WS-SecurityPolicy</a> (Web Services Security Policy) is the <a href="http://www-106.ibm.com/developerworks/library/ws-polfram/">WS-Policy</a> Policy assertions that apply to <a href="http://www-106.ibm.com/developerworks/webservices/library/ws-secure/">WS-Security</a></li>
</ul>
</li>
<li>The other security standards (the ones that couldn&#8217;t classify!)
<ul>
<li> <a href="http://www-106.ibm.com/developerworks/library/ws-secon/">WS-SecureConversation</a> builds on <a href="http://www-106.ibm.com/developerworks/webservices/library/ws-secure/">WS-Security</a> and defines how security contexts are establishing and shared, and how session        keys can be derived from these contexts.</li>
<li> WS-Authorization will define how Web Services manage authorization data        and policies</li>
<li><a href="http://www.xrml.org/">XrML</a> (eXtensible rights Markup Language)        is a language for expressing rights and conditions associated with digital        content.</li>
<li>WS-Privacy will define how Web Services state and implement privacy practices.</li>
</ul>
</li>
</ul>
<p><strong>Grid computing related standards</strong></p>
<p>Some new standards that aim to <a href="http://www-106.ibm.com/developerworks/grid/newto/#4">integrate</a> Web Services and <a href="http://www-136.ibm.com/developerworks/grid/">Grid computing</a>:</p>
<ul>
<li><a href="http://www-106.ibm.com/developerworks/library/specification/ws-notification/">WS-Notification</a> supports a publish-subscribe notification mechanism using Web Services.</li>
<li><a href="http://www-106.ibm.com/developerworks/library/ws-resource/">WS-ResourceFramework</a> is a group of specifications for accessing stateful resources using Web services.</li>
<li><a href="http://msdn.microsoft.com/webservices/default.aspx?pull=/library/en-us/dnglobspec/html/ws-eventing.asp">WS-Eventing</a> provides event notification. This is supported by Microsoft, among others, and has overlap with the IBM supported <a href="http://www-106.ibm.com/developerworks/library/specification/ws-notification/">WS-Notification</a> and <a href="http://www-106.ibm.com/developerworks/library/ws-resource/">WS-ResourceFramework</a> standards.</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/soaprpc.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/soaprpc.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/soaprpc.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/soaprpc.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/soaprpc.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/soaprpc.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/soaprpc.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/soaprpc.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/soaprpc.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/soaprpc.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/soaprpc.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/soaprpc.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/soaprpc.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/soaprpc.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=8&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://soaprpc.wordpress.com/2009/04/25/web-service-standards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc7de877a3440c204bfff41188de772c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">soaprpc</media:title>
		</media:content>
	</item>
		<item>
		<title>Time to move on</title>
		<link>http://soaprpc.wordpress.com/2009/04/25/time-to-move-on/</link>
		<comments>http://soaprpc.wordpress.com/2009/04/25/time-to-move-on/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 07:04:03 +0000</pubDate>
		<dc:creator>soaprpc</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://soaprpc.wordpress.com/?p=3</guid>
		<description><![CDATA[Well, its time to move my website from a paid hosting service to a free wordpress account. Why am I moving after all these years (almost 9 years now)? Its hard to justify the effort of maintaining your own website, managing software issues- and the low payoff and the cost- and when free hosting services [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=3&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Well, its time to move my website from a paid hosting service to a free wordpress account. Why am I moving after all these years (almost 9 years now)?</p>
<p>Its hard to justify the effort of maintaining your own website, managing software issues- and the low payoff and the cost- and when free hosting services provide a better alternative. There are drawbacks off course- I can&#8217;t control the ads on this website, I don&#8217;t have the freedom to run whatever software I wish to run etc.; and content migration is a pain.</p>
<p>Oh well.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/soaprpc.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/soaprpc.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/soaprpc.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/soaprpc.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/soaprpc.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/soaprpc.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/soaprpc.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/soaprpc.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/soaprpc.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/soaprpc.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/soaprpc.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/soaprpc.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/soaprpc.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/soaprpc.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=soaprpc.wordpress.com&amp;blog=7497418&amp;post=3&amp;subd=soaprpc&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://soaprpc.wordpress.com/2009/04/25/time-to-move-on/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/cc7de877a3440c204bfff41188de772c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">soaprpc</media:title>
		</media:content>
	</item>
	</channel>
</rss>
