Enterprise 2.0 and SOA - URI Addressability

January 10th, 2008
by Jeremy Thomas

I came across a post from Dion Hinchcliffe recently that talked about ideas for SOA architects in 2007 (ok, so it’s a year old). Dion talks about how Web 2.0 philosophies can be leveraged to enhance the effectiveness of SOA. The recommendation that stood out to me was “Deeply Embracing URI Addressability”, where Dion argues:

The hyperlink is the fundamental unit of thought on the Web and it should be in your service designs and (hopefully granular) schemas as well. Giving each discrete piece of information, every service, and all content a globally addressable URI instantly gives a service, and the data it carries back and forth across its interface, access to countless new consumption and reuse scenarios.

To illustrate how unique addressability might work, consider an organization that sells insurance to customers. Each customer is given an account number. The organization has an SOA strategy and decides to make use of REST (Representational State Transfer) to expose its information assets, including “customer” in an interoperable manner.

REST “strictly refers to a collection of network architecture principles that outline how resources are defined and addressed” (Wikipedia). It also makes use of the HTTP verbs POST, GET, PUT and DELETE (similar to database CRUD operations) to define what action to take on a given resource.

The insurance company develops a REST interface that sits on top of its CRM system. Customers become uniquely addressable by account number, as follows:

http://insuranceco.corp.com/customer/9886574

where “9886574″ represents the account number for a particular customer. A “GET” request (similar to READ on a database) to this URI might return the customer profile and claim history.

This is what Dion means when he says information should be uniquely addressable. Each customer has his own URI, which means behind the firewall other applications can reference a customer using this address. From here the possibilities are endless, where the intranet starts behaving like the internet. Information assets begin having inbound links, and this “democracy” so famously publicized by Google’s PageRank algorithm (where an inbound link counts as a vote) starts to apply not just to web pages, but to entities abstracted by services in an SOA (like “customer”). In this way information can be:

  • Bookmarked in a social bookmarking system. Users include comments, like “Harry Young [customer 9886574] calls in every week and I’m tired of dealing him”. Users also tag these resources in the social bookmarking system, i.e. “disgruntled”, “customer”.
  • Searched through an enterprise search engine. Adding “http://insuranceco.corp.com/customer/” to the seed of our enterprise search engine causes all customer information to be natively crawled and indexed.
  • Referenced from wiki and blog posts.

As a blanket statement I’d say that any SOA architect should strongly consider exposing resources in this manner so that he can leverage the network effects and unintended uses that are achievable through unique addressability.  Good stuff Dion.

Mediawiki Category Selection

October 11th, 2007
by Jeremy Thomas

Mediawiki is the popular, open source wiki application that powers wikipedia. Many organizations run mediawiki on their intranets including Avenue A Razorfish. One of the issues with the out of the box version of mediawiki is its categorization (or tagging) feature. Users are required to type the text “[Category:” followed by the category, then “]” (”[Category:design]”, for example) on the wiki page.

While this does not seem overly complicated it, becomes very difficult for users to reuse categories as there’s no feature on the edit page that shows them which categories have already been used. As a result, we might end up with two categories “design” and “designs” that should be the same.

A colleague of mine, Andreas Rindler, has solved this problem with a mediawiki Category Suggest extension.

CategorySuggest provides a Google Suggest like functionality to the edit page of articles. A separate “Categories” input box is added below the article page. When a user starts typing the name of an existing category, the extension retrieves a list of existing categories from the Mediawiki database and suggests matches to the user. The user can either type the name of a new extension or pick from the list of suggested categories.

Click over to his blog post describing the extension for a better overview.

A New Approach to Tagging

August 30th, 2007
by Jeremy Thomas

I’d like to draw your attention to the Tagline Generator - an innovative approach to tag generation based on the Porter Stemming Algorithm. The idea is simple, provide text input to the generator (i.e. content from html pages, word documents, powerpoint presentations), and the generator

makes a list of all the unique words that have been used and counts how many times each word is used. Next it identifies the different variations of words and combines them under the most common variation using the Porter Stemming Algorithm. E.g. “promised”, “promises”, “promising”, and “promise” might be grouped under “promises”.

address_cloud.gifThe relevance of this tag generator to Enterprise 2.0 is significant. Imagine algorithmically combing through enterprise content then creating an association between content items using this generator. We could then create a more cohesive, uniform tag cloud without losing the spirit of tagging (i.e. user perspective) as tags are generated from content authored by knowledge workers.

Craig Mehta, the author of the generator, provides us with several demo sites where this generator has been used including one generated from the John Adam’s inaugural address in 1794.

Taxonomies and Folksonomies can be Complimentary

July 25th, 2007
by Jeremy Thomas

Sean McClowry, Andreas Rindler and I had a very fruitful session talking about Enterprise 2.0 yesterday. In large part the conversation revolved around recognizing business worthy ideas and turning into robust, corporate-ready assets embraced enterprise wide. I touched on this a couple of months ago when talking about maturing innovation.

Sean has done a great job creating a taxonomy for information management over at openmethodology.org (disclaimer: I’m affiliated with openmethdology through my company) and we focused mainly on how to harness assets “organically conceived” in the Enterprise 2.0 cloud by mapping them to our taxonomy of mature intellectual property without losing the crowd’s perspective on said assets.

We came up with a scheme whereby ideas in the Enterprise 2.0 ecosystem can be socially bookmarked and tagged, much as one would do on delicious. But in this scheme the user is also presented with the enterprise taxonomy, along with “tooltips” (thanks Andreas for that term) to explain the taxonomy to the user. The user then selects the category from the taxonomy to classify the idea with other corporate assets.

What’s beautiful about this system is that we get two perspectives on ideas/information:

  1. A corporate view based on a pre-conceived taxonomy. This groups an “immature” Enterprise 2.0 asset with a “mature” corporate knowledge asset and prepares the former for corporate assimilation at the identified level in the taxonomy. Or, if an Editor so chooses, he may associate the asset with a different category.
  2. The user’s perspective of the asset (a.k.a his tags) is not lost. So for every Enterprise 2.0-generated idea that is matured into the taxonomy we maintain the “crowd’s perspective”. This means categories (corporate view) in the corporate taxonomy will also be related to tags (user’s view).

This is an area that is often neglected when we talk about Enterprise 2.0. The process of maturing ideas often means integrating social computing (E2.0), with more controlled content management systems requiring mediation before ideas are recognized as corporate strategy, policy etc. I think it’s here that the old world meets the new.

Social Search

April 5th, 2007
by Jeremy Thomas

I recently wrote about how Search should be the core of Enterprise 2.0, and I’m encouraged to see the release of several new socially-oriented Enterprise Search tools. The first is a release of ConnectBeam at Honeywell (covered by Andrew McAffee here). The second is an announcement from BEA on its new Web 2.0 product called Pathways, which is covered over at the FASTForwardBlog.

Both of these merge social bookmarking metadata (tags, users) with organic Enterprise Search results. This is a fantastic idea for two reasons:

  1. Users can make a better judgement on the value of the document based on social bookmarking metadata (i.e. how many people have bookmarked it).
  2. Users are exposed to others who have similar interests to what they’re searching for (i.e. if a document I find useful has been bookmarked by 5 other people, maybe those people have found other documents I might also find useful), and this facilitates collaboration.

Internally we’ve developed a prototype that does something similar. It fuses Google Enterprise Search results with a custom social bookmarking system displaying the folksonomy that has developed for a given document and a link to other users who’ve bookmarked it:

searchresult.gif

We’ve seen interest in this extension to Enterprise Search from several customers. I’m not at liberty to say who at this point, but in a few month’s time we may see the successful delivery of this system and I may be able to comment on it further.