Tuesday, May 23, 2006

Is SOA an Architectural Style?

The term architectural style moved out of the research literature and into the lexicon on practitioners after the Fielding thesis positioned Representational State Transfer (or REST) as the architectural style of the Web. I've always been hesitant to adopt this line of thinking because REST struck me as more of a philosophy -- and a not-quite-accurate description of how the Web works in practice. Now a-days its popular, at least on blogs, to call SOA an architectural style, sometimes coupled with a statement to the effect: Yeah, and we've been doing this for years with [insert your favorite middleware framework here]. I think this misses the point somewhat radically as I'll explain below.

The second related tendency I've seen is the claim that Web services are an instance of this architectural style. I don't think either claim is right, but I'll dispense with the latter first: Web services can be used without reference or respect to any stable model. The beauty of Web services is their use to support SOA, but they can certainly be used for straightforward client server modeling as well. I happen to prefer vanilla HTTP for this kind of interaction, with POX payloads where required (its not just for AJAX), but Web services will work, especially since there is reasonable tooling available to make this pain free for developers.

The problem with the claim that SOA is just an architectural style is that it reduces SOA to an abstract model, when what most people are trying to convey is a new (or at least evolutionary) approach to organizing the data-center. This approach involves, among other things, business-contract driven services, centralized and managed policy enforcement, leveraging ubiquitous Web protocols, process-oriented modeling, etc. Only one of those listed items is technology oriented, but it has clear business benefits as well.

SOA is the tag we wound up with, but perhaps its not so accurate. If I had to come up with something of my own, it would probably be Rationalized Business-Oriented Data Center Organization Amenable to Process Orchestration For Agility and Value. Somehow I don't think RBODCOATPOFAV is going to catch on like wildfire. (But you never know, so if it does, you read it here first!)

But what I want to suggest is that what we're really talking about is a way to better organize software assets to achieve business goals. And this is not what people mean by an architectural style at all. Now you might say this is a chicken or the egg problem. Don't we need to understand the architectural style that supports this before we can talk about serving business needs effectively? In my opinion, the answer is no. I think we will be doing ourselves a tremendous disservice if the SOA tech stack is not driven from the business needs down. The tendency to develop bottom up technologies with the idea that the interests and insights of middleware software folks will solve the needs of business is flawed. We've had a generation of distributed object middleware that suggests as much. And in fact it wasn't even that good for techie solutions.

I'm very interested in qualifying this problem but I think it will take some time to reach a broad consensus among all interested parties. In the meantime, you'll see terms like SOA 2.0 emerging precisely because people are trying to find a way to force the discourse away from the discontinuities that exist today. Long time associates know I have a morbid interest in semiotics: to me, this is an attempt to align an understanding between sign, signifier and signified that does not have stability today. And the quest for clear meaning is a good thing.

Sunday, May 21, 2006

Oracle SOA Fabric

If you didn't have a chance to watch Thomas Kurian's keynote at JavaOne, I would encourage you to do so: it was far and away the most compelling and coherent keynote presentation this year. The three major focal areas were J2EE 1.5, SOA, and Web 2.0 support in our product line and in our donations to open source projects. Most of what Thomas talked about is functionality that is available now, so its a pretty exciting time to be here.

Of course, I am focused on the SOA products, so its nice to see the Fabric infrastructure get prominent billing. The really cool thing about Fabric is that its a best of breed combination of support for service infrastructure, policy management, business activity monitoring, identity based security and event driven architecture that is designed as a fully integrated, common platform: all the essential building blocks of the next generation IT infrastructure. There's not really any other platform offering that can compare. I have a good feeling its going to shortly be the standard SOA infrastructure for many enterprises.

Tuesday, May 16, 2006

SOA Programming at JavaOne

I'm in the valley for some internal business this week, but I will be talking at the 11am PST JavaOne session tomorrow on SCA and the emerging SOA programming model with Rob High from IBM and my friend Ed Cobb from BEA. Apologies for the late update, but I only recently nailed down the logistics. Stop by afterward to catch up.

Monday, May 08, 2006

Now This Is Cool

I started working in systems programming as a middleware guy writing the low level plumbing in queuing systems aimed at high volume telco applications. I moved on to CORBA (and also started to work with the open source TAO ORB and ACE framework), mostly in C++, with a bit of Java for management infrastructure. After that I worked on building J2EE servers - everything from the Web tier load balancer to EJBs. After that, it was portal, Web services, mobile infrastucture, more transactions, integration frameworks, etc. Almost all the work was the innards. Like ever profession, sofware makes careers a matter of specialization to some degree. For a while I resisted this, but its darn hard to be an effective generalist.

While I've always enjoyed the middleware work, I often struggled with the question of how best to make it useable for non-specialist developers. People who need to implement business logic and Web enable their applications. One of the first times I had to build a real Web application was to show off the work we'd done on one of the first EJB 1.1 containers back in 1999: we had a B2C application (and framework) that we wanted to "port" to use EJB. That's when it really struck home that J2EE didn't really solve the problem for the application developer. Just simple problems like correlating the lifecycle of EJBs to servlets was a nightmare. So I started to write light weight frameworks to tie things together to make it possible for our end user to use J2EE technologies together -- but always felt that was the perspective that the J2EE umbrella specification should have taken from the beginning.

Now we have layers on top of J2EE that make many aspects of the application server more of an SPI: the application server is necessary and important for reliability and consistency of applications, but J2EE is less and less the programming model for end users. The folks that pushed this the furthest and, in my opinion, did the best job were the consultants that developed the Spring framework. At first, I was skeptical at some of what they were doing (treating JTA as a dependable interface without knowing the innards of the application server was a primary concern), but now that the framework has gotten traction, most of the application servers have actually adapted to Spring -- OC4J, for example, is independently certified to interact with Spring correctly. That the "big guys" are bending over backward to accomodate a framework that replaces a big section of J2EE as an API is something I wouldn't have guessed would happen back in, say, 2001. At the end of the day, though, its a great development that really seems to benefit everyone involved.

I've just started to poke around with the new Spring Web Flow framework, which seems to be the right solution at the right time. Managing scopes in Web apps can be a real pain and if this does for state management what Spring does for application logic, score another one for Interface 21 -- and for Java in general.

Nice job.

Sunday, May 07, 2006

Oracle SOA suite review

Good coverage and analysis of Oracle's SOA suite, with coverage of BPEL, Web services management, and BAM support: http://it.sys-con.com/read/204725.htm

Thursday, May 04, 2006

Pura Vida

I just returned from a family vacation in Costa Rica. Well, actually, I just returned from a business trip in Ireland, but I didn't have time to collect my thoughts on Costa Rica before that. We spent time in two areas: in the vicinity of the fishing town of Quepos, outside of the Manuel Antonio national park and in the area outside of La Fortuna near the Arenal volcano. The former is lowland, coastal, and semi tropical forest land; the latter is referred to as cloud forest as it is a higher elevation and somewhat wetter during the dry season.

Costa Rica has 5% of the world's biodiversity, but what is amazing is the sheer density of the biodiversity in the remaining primary and secondary forests. I was surprised by the amount of land that has been converted to agricultural use: it is extensive. American real estate speculators are omnipresent, so Costa Ricans (referred to as Ticos) are going to have a rough time protecting what natural resources are left. Given the power of the dollar, it does not bode well in my opinion.

The country itself has first world sanitation, education, and health care. There is petty crime, but violent crime seems minimal (outside San Jose). Many of the Ticos I talked with indicated they saw no reason to leave Costa Rica for the US except to visit, as "Life is too good here." The city of La Fortuna, for example, was much nicer than lower income areas in virtually any American cities, with substantially lower costs and a more interesting environment to boot. I was impressed by the pride and intensity of passion that the Ticos have for their ecological system. The guides we had in Quepos -- in particular Vanessa at Iguana Tours -- were infectious in their enthusiasm and had a deep knowledge of wildlife and the supporting ecosystem. Even our taxi drivers carried binoculars and wildlife identification guides. One of them swerved off the road and started to point out birds by their scientific names, providing us with high powered binoculars to observe them ourselves.

Of the two areas I visited, the cloud forest was my favorite, largely because of the staggering diversity of life from the ground floor of the forests to the top of the canopy. We saw everything from armies of ants that literally wore a visible path on the forest floor to three species of monkeys to sloths to poison vipers. Definitely not a vacation to waste laying on the beach. I recommend it as a destination for anyone that wants an experience much like stepping into an episode of the Jeff Corwin Experience.

Wednesday, May 03, 2006

Business Intelligence on the move

A while ago, I predicted that the next generation of significant IT technology would center aroung business intelligence functions and that BI and BAM products were the launching pad for this development. That is of, course, just the start. Others are now seeing the connection between search and BI that I noted then. In my opinion, Oracle is in a very strong position in this area today, controlling a stack that includes integrated BI and BAM functions across the data tier, middleware and applications stacks. I'm pleased to see that Oracle is moving forward aggressively in both BI and BAM as a core of our Fusion platform and even more interested to see how well that movement is being received by end users. While this is just one of the key differentiators for Oracle's end to end story, I predict it will become increasingly important over the next two to five years.