« LogicBlaze FUSE - Open Source SOA Platform | Main | Global Integration Summit, Boston May 22-24 »

May 05, 2006

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00d8341c2a6553ef00d8342a913a53ef

Listed below are links to weblogs that reference Observations from the Field – The Hard Part of SOA:

» links for 2006-05-28 from Column 2
(void*) » Throwing in the towel A short and uncomplimentary review of open source BPM product jBPM. (tags: bpm opensource) An Introduction to BPEL A good intro, with links to many other resources. (tags: bpel) Blog-Based Analysts Shake Up... [Read More]

Comments

hi brenda,

nice blog -- subscribed.

nice post -- i discovered you from O'Reilly Radar.

BR,
~A

Hey Brenda,
Good to see you back and posting!
This was a well thought out post...both practical and pragmatic.
Two questions:
(1) If you have taken the steps to adopt SOA but have a large portfolio (and therein partial bene's) and are looking to take it to the next level...what challenges do you see for architects supporting that scenario?
(2) Who owns the taxonomy for "Business Terms"? Business? Architecture? Both?
Cheers!
-JT

I've seen the industry standards you mention result in a lot of challenges. I think that a Canonical Message Format is very important to success in SOA/EDA.

The trick is to keep it simple - there is a sweet spot.

I posted some more details on my blog.

Good read. I was particularly interested in point number 2, semantic understanding. This begins to touch on the concept of something that my company, Xcalia, calls a "service metadata repository" (SMR). We have a product that leverages our version of an SMR to enable the truly dynamic composition of both traditional databases as well as services (web and otherwise).

Your article focuses on the identification, partitioning, and creation of services, which is obviously very important. The industry, however, is largely overlooking another issue in SOA -- the consumption of services, especially when those services run the gamut from today's web services back to EJB session beans, CORBA services, and even mainframes.

With a machine-readable description of
* what services are available,
* their implementation technologies,
and, most importantly,
* a semantic description of what the services do in terms of the business dialect,
tools like ours can be used to completely encapsulate a composite application from the underlying services that are used in the application's course of execution, instead being built only against the object model that comes directly from the business lexicon.

I'd like to discuss it further with you -- please drop me a line if you're interested. I think it would be well worth your time.

Thanks for the stimulating reading!

--matthew

Brenda,
We certainly concur on point #2. Semantic reconciliation is key to scaling SOA. But current approaches won't scale:

(1) Canonicals by themselves won't scale SOA's if you don't have tooling to manage their complete lifecyle. Manual governance and universal consensus surrounding the definition and versioning of canonicals won't scale. All that's been done is move the reconciliations to the edge and disconnected from any sort of end-end impact analysis.

(2) EAI tooling can't do this. They are essentially point-point mapping and transform tools and don't manage the abstraction needed in a many-many architecture.

(3) The very abstraction we find in the business process (BPM's) and the transport layers (ESB's) needs to occur in the semantic tier. A sort of semantic broker without the proprietary server or single point of failure.

(4) Industry taxonomies are coming to the fore as they have grown in richness and abstraction. The consequence of this development, is however, that the models are getting more complex and hard to handle. Advanced tooling is going to be essential to govern and operationalize them.

(5) We might claim that this semantic problem is getting solved in the area of structured data for application integration. We would of course welcome feedback and criticism. https://users.pantero.com/display/blogs/Home

I'm glad this post has generated a lot of interest. Here's my quick attempt to answer comments to date.

Anjan: Thanks for the feedback.

JT: Good questions.

(1) This one deserves a long answer. But for now, (IMO) the short answer is "portfolio management". With the "composable architectures" (SOA, EDA, etc) it's critical that Application Portfolio owners and Project Managers think about what they are producing at the asset, deliverable (project, application) and portfolio levels. Folks need to start considering the value of the individual assets. Are those assets valuable beyond the current initiative? What is the value relative to other portfolio assets? How might that change design and implementation decisions?

Too often a project or application is a labeled “quick and dirty” and then all assets are treated that way. Same on the other side. Just because a project or application is a “strategic enterprise whatever” it doesn’t mean every asset needs to be “enterprise class”.

The architect will be critical to this shift... portfolio planning, rationalization, valuation, refresh/replace, and release planning. This is one of my "business-driven architecture" soapbox items. I'll clarify and augment this in a future post. Hopefully, the gist comes through.

(2) I think the business is responsible for the definition (terms, meaning), architecture is responsible for the management, and business and architecture are jointly responsible for the communication and adoption.

Mike: Thanks. Good Post. Consistent with the folks I spoke with.

Matthew: Sounds interesting. To date, the practitioners I speak with are doing "discovery" at design time, rather than run-time. I'd be interested in hearing your story.

Pano: Good to hear from you. I'll take a look at your blog.

-Brenda

(as posted on TSS):
How about the data architecture???

Personally I'm fairly comfortable with levels of granularity, defining cononical forms, and communicating domain models and symantics.

The huge unknow for me is how exactly the data architecture _really_ works.

If anyone knows of a book or some online literature that would help me learn, please, please point me in the right direction :)

The unknowns for me:
When your business functions are represented as services (instead of monolithic applications), what happens to your data integration? Do you really have to throw out centralised databases and use EII/ data gateways to access all of your data?

IMHO the realities of volumes/ performance and transactional complexities make this a pie in the sky approach.

How about reporting?
Do we:
-throw away our traditional reporting tools (crystal/ actuate) and build reports manually, calling web services?

-use the traditioal reporting tools, but source them to web services/ EII platforms instead of the databases directly? (performance and productivity again precludes this as a serious option)

-use the traditional tools but have multiple data sources (losing the benefits of loose coupling - each time a service changes, your reporting investment breaks)

-build OLAP data stores (data marts/ warehouses) with feeds from the decentralised databases (where-as the EII vendors claim their tools make OLAP a thing of the past)

-have a centralised database providing the data for your services (in which case we again lose the loose coupling benefits, as the services are now tightly coupled through the shared database schema)

There is a lot of hand wavy marketing material floating around talking about how EII / data gateways are going to solve all these problems, but the detail is lacking and I find myself seriously doubting that this problem space is well understood (let alone resolved).

I've done a lot of SOA based on pub sub in the past (which I believe is vastly superior to point-to-point models). I've always had to compromise with the data architecture. In some cases the data is sourced from a service, which is elegant. In other cases (high volume or reporting), I've had to tightly couple services to a shared database schema.

In large environments, OLAP is required, but comes with a loss of agility, and high operational/ maintenance costs.

Anyway - there's my rant... I'm not interested in any "holier than thou" flames, but if anyone can point me at resources to improve my understanding of the data architecture in relation to SOA - thanks :)

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been saved. Comments are moderated and will not appear until approved by the author. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment

Comments are moderated, and will not appear until the author has approved them.

My Business

  • Elemental Links helps organizations develop business-technology strategies, architectures, and programs to increase business visibility and responsiveness, optimize capability delivery, and enable innovation.

Elemental Research

Follow Me

Ads

Ads 2

Search

  • Google

    WWW
    blog.elementallinks.com

License


  • Creative Commons License
    This work is licensed under a Creative Commons License.