Udostępnij za pośrednictwem


IBM WebSphere Registry/Repository and Interop with .NET

What are the interop options for connecting .NET applications to IBM's registry product, the IBM WebSphere Service Registry and Repository?

I just saw a piece by Anne Thomas Manes of the Burton Group, saying that

IBM has taken a risk by releasing a registry/repository product that does not support the prevailing standard, Universal Description, Discovery and Integration (UDDI). This move implies that IBM desires to provide an all-inclusive, lock-in solution. [emphasis added] One of a registry’s primary functions is to enable information exchange among heterogeneous SOA infrastructure components. Without UDDI support, the IBM registry will only enable information exchange among products that support the proprietary WSRR programming interfaces. To make the most of IBM’s SOA governance solution, an enterprise must adopt the complete WebSphere/Rational/Tivoli product line.

Could This Be True? 

Is it really true that the only way to connect to the IBM WSRR product is through tightly-coupled approaches - programming interfaces ??  That can't really be true, right?   Surely there is a service (network) interface for this thing, and we just don't know about it.  It ought to be defined in WSDL I would hope?  In an effort to shed some light on this, I looked in the online library for IBM WSRR and found this information:

WSRR supports two kinds of API that can be used to interact with WSRR. One is Java based and the other is SOAP based. Both support publishing (creating, updating) service metadata artefacts and metadata associated with those artefacts, retrieving service metadata artefacts, deleting the artefacts and their metadata, and querying the content of WSRR.

Basic CRUD operations as well as governance operations and a flexible query capability based on XPath are provided through both APIs. When the SOAP API is used, content is communicated using XML data structures; when the Java API is used, content is communicated using SDO data graphs.

Elsewhere in the same documentation set, I found this:

The WSRR API is made available as several Stateless Session Beans, with both local and remote interfaces.

Hmm, now I don't know if you all "speak Java" but what that statement says to me is, any application can access the WSRR metadata, as long as it is (a) a Java application, and (b) is either a J2EE application running inside the WebSphere Application Server, or is a Java app (running outside the websphere container) using the IBM-provided JAR files and programming interfaces for the WebSphere client runtime. 

Still elsewhere, I found this:

In order to use either of the clients, you must add the required jar files to your runtime:

  • sdo-int.jar (this must be as high up the class path as possible to override SDO 1 interfaces)
  • ServiceRegistryClient.jar
  • A suitable EJB [or] Web services runtime

There is also some sample code which I have not shown that uses the classes defined within the WSRR jar file (ServiceRegistryClient.jar). So yes, it does appear that only Java applications can connect to this IBM registry.  Very surprising.   This is what Thomas-Manes at Burton is saying when she uses the words lock-in solution to describe IBM's WSRR.   For me, IBM's WSRR doesn't qualify as a pratically useful SOA repository, if by "SOA" we mean to imply, an architecture that supports heterogeneous applications connected loosely via service interfaces. 

Could we get there from here?

Could WSRR possibly serve as a SOA Repository, in support of the goals of heterogeneity and interoperability, of interconnecting loosely-coupled apps? Sure! But it would need to be based on standard schema and protocols.

If in the future IBM unilaterally creates and documents a WSDL/SOAP interface for IBM WSRR, it would still be an IBM-defined protocol, an IBM-defined schema, an IBM contract.  That would make it IBM's interface, not a standard one, though it may be based on lower-level standards like WSDL, SOAP and XML. 

Those in Glass Houses?....

I guess you could say, those interfaces (we are only imagining they might be created at this point) would be analogous to the web service interfaces that are defined for Microsoft Office - for example for the Research services.  MS Office defines a WSDL and Schema for any Research Service.  It is interoperable, and I have shown Java apps acting as Research Services for MS Word 2003. But the interface itself is non-standard. That is to say, Microsoft defines it unilaterally.

Somehow that situation seems ok, while the situation with IBM defining the interface for its SOA Repository seems inappropriate. HAhahahaha!  I find this very challenging terrain to travel over. (I understand my view here may be due to a biased perspective, but I am trying hard to guard against it.) The Research Service interface for MS-Word is a feature of the product. MS Word was not designed to be the center point of a SOA infrastructure, as would a SOA repository. MS Word can best be thought of as an endpoint or end-node in a SOA mesh, and the research service interface is just one small artifact that affects that end-node, not the entire mesh.   Furthermore, the Research Service interface is small and simple, in comparison to the richer interface you'd need for a SOA repository.  Because of all this, the MS-Office Research Service interface need not be an internationally sanctioned standard, while it seems to me that because a SOA Service Repository does play that central role, and is a much more complex service, it ought to have network interfaces that are based on multi-vendor standards. Is this hypocrisy? I don't think so.

No Interop Here

To get back to my original question, What are the interop options for connecting .NET applications to IBM's registry product?  -- the answer appears to be:  you cannot connect to the IBM WebSphere Service Registry and Repository unless you link in IBM's libraries and runtime, and that means the app itself must be a Java application.  No .NET, no PHP, no non-Java or even non-IBM-Java apps allowed.

Remember this is all based on my reading the docs. I haven't tried or tested the IBM product.

The lack of interoperability for chunks of infrastructure from major vendors leads me to conclude that this category - specifically, SOA service registries useful for design, deployment, management and governance - is not yet quite ripe.

Comments

  • Anonymous
    March 01, 2007
    PingBack from http://tssblog.techtarget.com/index.php/xmlweb-services/mulling-upon-repository-interop/

  • Anonymous
    March 12, 2007
    Hi,  I'm also very interested in service registry.  Can you give me the original url or document of Anne Thomas's comments on WSRR? How do you think of Systinet's GIF (Governance Interoperability Framework) ?  My msn is w_run@hotmail.com. :). Best, Run

  • Anonymous
    March 13, 2007
    Here is the link to the doc from Burton Group: http://www.burtongroup.com/research_consulting/publicdoc.aspx?cid=1044

  • Anonymous
    May 01, 2007
    Just a couple of comments: IBM WSRR uses a proprietary data model. It's implemented in the repository service using EJBs and SDO. It exposes operations on that data model via a proprietary API. The API is rendered as a Java API and a SOAP API. The SOAP API has an associated WSDL, and any language that supports SOAP/WSDL can use the SOAP API to interface with the registry/repository. But it does not support the UDDI data model or protocol. You can write your own application using the WSDL and .NET, but Visual Studio doesn't know how to interface with the repository, because it doesn't know anything about the WSRR data model. You could write your own VS plug-in, if you wanted to. But if WSRR supported UDDI, you wouldn't need to. Unfortunately, my report on WSRR is only available to Burton Group clients. I've posted a couple of blogs about this topic (see http://apsblog.burtongroup.com/) and there's a great summary of my article on SearchWebServices: http://searchwebservices.techtarget.com/originalContent/0,289142,sid26_gci1252107,00.html Anne

  • Anonymous
    May 11, 2007
    Anne, thanks for the comment. I did not see the SOAP API documented in the product doc for IBM's WSRR.  I will have to look again.  I specifically looked for that documented interface.  I must have missed it.

  • Anonymous
    July 23, 2007
    In a prior post , I said that there was no good interop story between .NET and the IBM WebSphere Registry

  • Anonymous
    August 29, 2007
    Back in May, IBM had posted an article describing how to connect to its WebSphere Service Registry and