Over the last several months, I’ve really been trying to get my arms around SOA and develop a meaningful opinion and knowledge base on this so often used, even more often abused, and ever-more-frequently maligned three letter acronym (TLA). Along the way, I’ve discovered a couple of great resources that have helped shape my thinking and hone my implementation skills on the topic:
 
Thomas’s books have helped me to understand how my traditional proxy and wrapper-based viewpoints fit into service design and how I might be able to improve the robustness of SOA interfaces built using these patterns. These books also reinforced my positive experiences with contract-driven design and have rekindled my interest in XML schema definitions, which I haven’t used extensively for years.
- Enterprise Service Orientation Maturity Model (ESOMM) – “Maturity model… uh oh, here comes the heavy handed approach to SOA”, you might be thinking. In my opinion, however, this is the most dense (that is, succinct and knowledge rich) piece of material about SOA that has been published to date and a must read for anyone looking to role out SOA to their enterprise. The ESOMM defines 4 layers, 3 perspectives, and 27 capabilities required to support a SOA (see diagram below). The maturity levels are based upon SEI’s Capability Maturity Model (CMM), but the similarities pretty much end there. As with the core CMM, think of this as a roadmap towards evaluating and improving your organization’s SOA capabilities – not as a report card.
esommgif.gif (32.31 KB)
- Service-Oriented Analysis and Design (SOAD) – This is a nifty article which seeks to bridge the gaps between the object oriented and business process oriented design and modeling and the requirements of modeling for an SOA. The article does a great job of walking through traditional approaches that most people are familiar with and then adding SOAD-specific elements to the design. The article concludes with a short case study that includes traditional models such as a business process workflow, class diagram, and state diagram and then augmenting this with a service breakdown model and a rather interesting business interaction model (see diagram below) that integrates SOA specific concerns into a more traditional UML sequence diagram.
 SOAD_LG.gif (29.3 KB)
- Java and .NET Specific Implementation Materials – Jeffrey Hasan’s book Expert Service-Oriented Architecture in C# is by far the best text in the .NET realm. Jeffrey starts with a very solid approach of WSDL and XSD contract driven design and then gradually introduces the new WS-* standards, integrating them one-by-one. The original book covers WSE 2.0 with his newest text covering WSE 3.0. SOA Integration Using Java EE 5 Web Services is the best text that I’ve found from a Java vantage point. I like the fact that this book starts out with REST (Representational State Transfer) type services to show how things look before all of the standards-compliant overhead is added. Good coverage is provided for JAX-WS 2.0, JAXB, and JSR-compliant packaging. The book is not yet available on the open market but the work in progress is available as a “Rough Cut” book through O’Reilly’s Safari.

- BPEL-Specific Materials – BPEL specific implementation details haven’t seemed to make it into any published books yet. The vendors offer a good deal of online materials in this area. To learn it this way though, you’re going to have to commit yourself to a particular implementation. Good materials can be found in the following places:
o JBoss - JBoss jBPM
o Sun - NetBeans Enterprise Pack
o Oracle - BPEL Process Manager
o .NET - Windows Workflow Foundation
In a previous posting, I reviewed the 37signals book Getting Real and encouraged folks to
pick up a copy. The good news is that the full text for this book has recently
been released online. You can find the HTML version of the book here. You no
longer have any excuse not to read it.
As I’ve mentioned in previous posts, I’m a pretty dedicated
listener of both the Wall Street Journal Audio Edition and the IT
Conversations podcast site. This morning, I caught some great audio from both
of them. 
IT Conversations - The IT Conversations audio came
from the Software 2006 conference series. The focus of the podcast in question
was a CIO panel at that conference. Toby Redshaw and Con Goedman, IT executives
from Motorola and Shell International, respectively, provide some great
insights into the user-focused mentality that it takes to succeed as an IT
executive in the corporate world. They are both quite candid, with Mr.Redshaw
providing some especially interesting insights and sound bytes. I’ve quoted a
couple below:
[On dealmaking] “You’ve got to
remember, the people that cut the deal aren’t the people that manage the
relationship. I don’t care if the [software] salespeople leave with blood
coming out of both of their ears. I’m not going to see those guys again.” [On the widespread use of wikis and
blogs at Motorola] “Where the real work gets done is down in the ranks that
interact with each other and exchange information and build ideas and come to
conclusions and do stuff. Management is just overhead.” [On introducing wikis and blogs at
Motorola] “I purposefully didn’t tell anyone upstairs or laterally that this
was going on until we got to a scale where we couldn’t stop it.” [On vendor dislikes] “The easiest
way for you to watch me pull the trap door lever in my office and drop you into
a pit of crocodiles is ‘tell me about your problems.’ ‘Hmm… interesting, we
have some software that we think will fit your problems.’” [On vendor likes] “I love honesty.
My best vendors pull me aside and say ‘you know that idea you have, it’s
stupid. Don’t do it, it’s a bad idea and here’s why.’”
Anyone who thinks that IT executives are out of touch needs
to give this podcast a listen. These guys are focused on delivering user value,
remaining business centric, and they just get it when it comes to understanding
what it takes to encourage the type of collaboration and creativity that it
takes to differentiate a company’s product or service offerings.
Wall Street Journal - On the other side of things,
and totally unrelated to IT or the normal stock option backdating concerns that
the WSJ has been so focused on lately was their cover story on the move towards
home-based care in Vermont, entitled “Olden Days: Seniors in Vermont Find They
Can Go Home Again.”
The article covers an innovative approach being taken in Vermont to move elderly
citizens out of facility-based care and into home-based care with their
families. Interesting here it that the families are then allowed to collect for
the care they provide to their family members (spouses not included). The plan
is approved and funded by the Center for Medicaid and Medicare Services (CMS)
under a special waiver to normal Medicaid administration protocol. The waiver’s
goal is to reduce or cap Vermont’s
annual Medicaid funding / spending increase.
These Medicaid expenditures amount to 20% of some state’s
budgets and are matched with funding from the federal level as well, providing
a huge incentive for innovative ways to reduce these costs. The WSJ audio
focuses not on the money side but on the human element instead; telling the
story of several individuals whose lives were dramatically improved through
participation in Vermont’s
program. The audio also paints the assisted living providers as organizations
scared of and resistant to change and willing to resort to scare tactics to
retain the facility-based care entitlement legally afforded to Vermont’s citizens.
The reason that I found this audio file particularly
interesting, aside from the fact that my parents care for my 93 year old
grandmother and that my first state government project was on a Medicaid waiver
system, is that the story reminds me of why I stick it our with state
government projects – the potential to make a difference in peoples’ lives.
Transformation programs such as the ones enabled by the Medicaid waivers not
only offer the possibility to save money, they afford people the opportunity to
lead normal lives, where that otherwise might not be possible. Far beyond the
dollars, the bits, and the bytes, this is what really makes a difference.
The Wall Street Journal article is available in printed form
or in MP3 format to Audible.com providers. The official text of the Vermont waiver can be
found at http://www.dad.state.vt.us/dail/1115Waiver/VTLTCWaivernoappendices.pdf,
while a provider-slanted but informative summary can be found at http://www.ahca.org/brief/ib_vtwaiver.pdf.
I’ve recently been re-reading Scott Ambler’s excellent work
on the Enterprise Unified Process and focusing my attention on the strategic
reuse discipline, in particular. Dealing with this on a day-in, day-out basis,
I’m trying to apply this particularly to the business domain that I work in,
state government. I like the way that Scott went about illustrating the
enterprise management disciplines with the traditional RUP workflow maps. Above
and beyond this, he borrows from an earlier article of his, A Realistic Look at Object-Oriented Reuse,
to create a couple of diagrams that really hit home. I’ve taken the opportunity
to adopt these diagrams to enterprise work being done in state government. The
adopted diagram can be found below. 
Reuse.png (79.92 KB) The comments to the right of the chart demonstrate that
there are three coarsely delineated segments of reuse:
- Areas where domain-specific reuse is
occurring now. Unfortunately, these areas fall towards the lower end
of the benefit spectrum. In this segment, wholesale cross-state system
transfers are particularly widespread. In many cases, the cost of the
system being transferred is negligible or nonexistent due to federal
funding rules. However, it is rare when these systems can be transferred
without acquiring the knowledge of the people that created them. In many
cases, this is an acceptable trade off because the domain in questions is
inhospitable to other solutions and orthogonal to the domain for which
they were originally created. Make no mistake, however, this is more a
reuse of human resources and knowledge capital than it is of system
elements.
- Areas where domain-specific reuse is
not warranted. In the center of the above chart lie frameworks and
artifacts. With industry standard processes such as the RUP, MSF, and a
variety of Agile processes, there is little need to create domain-specific
processes or artifacts. The same holds true for frameworks, where Sun,
Microsoft, and a variety of vendors and open source options are likely to
be much more stable and better supported than any inhouse created options.
This should not preclude you, however, from customizing these processes
and frameworks and, as necessary, extending them to meet your exact needs.
- Areas where domain-specific reuse
should be occurring. These are the higher-order levels of reuse. This
includes domain-specific analysis patterns for state government as well as
a variety of architected solutions. These solutions may include COTS
products such as the one from Curam Software, solutions targeted as
cross-cutting domains such as licensing, and leveraging emerging data
exchange standards to encourage the sharing of knowledge and data between
business partners and communities of practice.
On September 26th, President
Bush signed into law the Federal Funding Accountability and Transparency
Act of 2006. The represents the first piece of legislation sponsored by upstart Illinois
senator Barack Obama to make it into law. Being touted as the “Google for
Government”, the law directs the Office of
Management and Budget (OMB) to oversee the creation of a single comprehensive
searchable Web site that would include information on all federal grants,
contracts, and other funding awarded to public and private organizations. As
the President mentioned at the signing, the federal government issues more than
$400 billion in grants, and more than $300 billion in contracts to
corporations, associations, and state and local governments. These range from
reputable grants to operate state Medicaid systems to questionable allocation
of funds such as the hundreds of millions of dollars allocated to build a
bridge to a virtually uninhabited island in Alaska, the so called “bridge to nowhere”. Although
at way to high a level to be a true comparison, the Death and Taxes graph
provides a good representation of what we might end up seeing.
With an estimated start-up cost of about $5
million per year for the first two years and ongoing costs of $2 million per
year, the Web site to support the law will be relatively inexpensive (in the
grand scheme of things) for the Federal government. What is the impact going to be on local and
state governments? From the bill’s text (more information),
it would appear that the costs of reporting direct and sub-award data are to be
factored into existing grants as indirect costs, since these costs would result
from complying with conditions for federal assistance. Whether or not the
states choose to follow suit and drive out more accountability from their
grantees and contractors remains to be seen. This type of “trickle down
transparency” would certainly be good for the taxpayer though and would demand
a level of accountability previously unheard of at the state and local levels.
I’m often asked about tools and
technologies that I use on a daily basis. Like everyone else out there, I lead a
pretty busy life and I’m always trying to find ways to be more efficient or to
use tools that better support the way I work and live. Below you can find a list
of the tools and technologies that make my life easier in some way or the other.
I’ve cataloged these tools using some general categories to help delineate
functionality. As much as possible, I tried to avoid the mundane things and
concentrate on smaller niche tools or new technologies that you might not have
heard of or actively use and which might enable you to tweak a bit more
efficiency or productivity out of your day. Enjoy and please feel free to add
comments citing tools that you believe might be of interest to others.

Digital Media
-
Wall Street Journal on Audible.com – The Journal is the way that I
get my news every day. No commercial interruptions, no funding drives, no
annoyances. The MP3 version shows up at around 6:00 am every morning and is
ready for download to my iPod. The daily read is about an hour long and
includes selected articles unabridged and read in their entirety.
-
IT Conversations - Some really great Podcasts by leading edge
thinkers in the IT industry. The material is first rate strategic thinking
and helps keep me centered on larger issues even when my day-to-day concerns
are often much more pragmatic.
-
TiVo,
TiVo Central, and
TiVoToGo – Yeah, almost everyone offers DVRs these days but TiVo was
not only the original, it has remained the most fully featured. With TiVo
Central, you can schedule your recordings from a Web browser so that you can
make sure to record that show you forgot to schedule last night. With
TiVoToGo, you can transfer TiVo recordings to your PC, laptop, or most
recently to a number of mobile video devices, such as the video iPod.
There’s nothing like watching Lost or 24 on the walk into work in the
morning.
-
Video iPod and the
Transpod – The video iPod is truly an amazing thing. All that
storage, all those songs, and a phenomenal little viewing screen. The
Transpod lets me take my music on the road with me and will continue to get
good use until I get my next car, which will definitely have some type of
interface for the iPod.
-
Handy Backup – I’ve never had a hard drive with critical personal
files crash on me. Statistically speaking, though, it’s only a matter of
time before this happens. I therefore use the Handy Backup tool to do
incremental and occasional full backups to an offsite FTP server. The disk
space, you ask – MediaMax Streamload - $4.99/month for 100GB storage.
-
Turbine Video Encoder – Used for taking my AVI videos and converting
them to the industry standard Flash format for video distribution. This is
the same process that YouTube does except that it’s not them doing it, it’s
me.
-
Audacity – An open source sound recorder and editor that’s great for
recording, editing, and publishing audio in MP3 format. I’ve use this for
all of my GeoGlue recordings.
-
Afterdark CD Series – With different techno flavors representing a
variety of US and international cities, the Afterdark collection contains
enough funky grooves to get you through days of work without ever hearing
the same song twice.
Web-Based
-
Firefox – Once you go to Firefox, you won’t go back to Internet
Explorer. Firefox is benefiting from fresh ideas in a market where others
had long since capitulated to Microsoft’s dominance and meaningless updates.
Microsoft’s newest version of Internet Explorer, with tabbed browsing,
integrated search, and customization is a blatant rip off of Firefox. Thanks
but no thanks.
-
Netvibes, RSS, and
Delicious – Earlier this year, I switched from my home page of over
3 years – Google and moved to Netvibes, a Web 2.0 home page. While Google,
Yahoo, and Microsoft struggled to catch up with their home grown portal
offerings. Netvibes and its brethren (such as Pageflakes) have created
vibrant ecosystems with all of the portal services that you might need and
open APIs to create your own services should you see fit. Two of the most
useful services are the RSS and del.icio.us modules. Having access to all of
your blogs and favorite links from one well organized home page will
contribute a lot to your efficiency.
-
Safari and
Books 24x7 – As an addict to technical books, these two sites were
godsends in so many ways. With enterprise subscriptions, the entire array of
Apress, O’Reilly, Addison Wesley Professional, and Wrox technical books
amongst others are at your fingertips. If you buy and read a lot of
technical books and can handle the digital media, this is definitely
something for you. If the subscriptions seem a bit too pricey, a
Professional membership to the Association of Computing Machinery (ACM) will
get you entry grade access to both of these collections.
Software Engineering
-
Visual Studio Professional and
NetBeans - On a day-to-day basis there’s really no other way to do
professional .NET and Java development than with a professional IDE. For
.NET Visual Studio professional has all of the tools that you need and
avoids the overbearing Team System overhead that you might not. With Java,
I’m doing my work right now in NetBeans although I’m working with a bunch of
different IDEs to determine which I like best. Oracle JDeveloper and
MyEclipse are a close second and third, respectively.
-
Enterprise Architect – UML modeling, team-based modeling, round trip
code-model synchronization and design tool extraordinaire. Enterprise
Architect does it all and does it all well. All of this for $200 per
license. EA is arguably one of the best buys in the industry and one tool
that you’ll never catch me without.
-
TestDriven.NET – A must have for any .NET developer, in my mind.
TestDriven allows you to run a variety of unit test suites (NUnit, MbUnit,
and Team System) directly from the Visual Studio IDE. One of the killer
features is the ability to run the tests with the debugger. Recent features
include the addition of menu items leveraging NCover for code coverage and
Lutz Roeder’s Reflector for disassembly and dependency analysis amongst
libraries.
-
WebHost4Life and
eApps – I host a variety of content online and have found these two
hosts to be the best over time. WebHost4Life provides reliable .NET hosting
using .NET 1.1/2.0, full SQL Server 2000/2005 functionality (with full
Enterprise Manager access), registering of COM/COM+ components, and set up
of SharePoint sites. eApps provides Java and Ruby on Rails hosting. Java
hosting includes JBoss/Hibernate, OpenLDAP, and Subversion repository
creation.
Knowledge and Document
Management
-
OpenOffice – Although I’m still locked into Office at work,
OpenOffice provides a free alternative from my home computers. With support
of the new Oasis standard OpenDoc format, reading from and saving to
Microsoft compatible (e.g. Word, Excel, Powerpoint) files, built in PDF
creation, and conversion of Powerpoints to Flash, OpenOffice meets all of my
home document management needs.
-
Subversion and
TortoiseSVN – A great example of truly open source software beating
out best of breed commercial competitors. Subversion is an open source
revision control system that is replacing CVS as the repository of choice
for managing open source and commercial code alike. Running on top of
Apache, Subversion communicates very efficiently via http and is thus a
great choice for distributed development. With widespread plugin support,
including the Windows Explorer-based Tortoise SVN, Subversion is a great
choice not only for managing source code but for managing changes to any
documents that might be accessed by a variety of users.
-
The Brain – Although there is a lot of mind mapping software out
there, the Brain is by far my favorite. It’s a great way to organize
disparate thoughts; allowing me to capture hundreds of thoughts, focus on
the ones at hand and drill down through the whirling nodes of radial
visualization with a few clicks to get to any of those hundreds of thoughts
or ideas. Check this one out online.
-
Win2PDF Pro – I distribute almost all my Web-based documents as PDF.
Win2PDF Pro is much cheaper than a full version of Acrobat and it let’s me
create PDF from most common programs. The pro package includes password
protection, encryption, PDF hyperlinks and other niceties.
-
Camtasia – Useful for illustrating the use of particular software or
techniques. On-screen activities are captured and may then be edited down
and described with the addition of narrative audio tracks.
-
Whiteboard Photo Image – I am a big advocate of using whiteboards as
a documentation and facilitation tool. To avoid recreating the informal
images on these whiteboards, I suggest the use of digital cameras to capture
what’s on the whiteboards and the use of software like whiteboard photo
image to make these images a bit more true-to-life of the sketches that were
originally created. The tool also does a great job with sketches, CRC cards,
user stories, or anything else which starts out as paper but which you might
wish to give a bit more permanence.
It’s been a while since I’ve posted my last entry. To get
myself back in the groove of things, I thought that it might be nice to post
something lighthearted and entertaining that your average tech weenie would
enjoy. Now I don’t know if you follow the gurus of the technology world but my
research has turned up a set of long lost brothers amongst the talking (or
blogging) heads. Check out the two pictures below. The one on the left is Bruce
Schneier, cryptography and computer security wunderkind and designer of several cryptographic
algorithms, including Blowfish and Twofish. The one on the right is
Martin Fowler, refactoring, pattern, and agile god.  
I couldn’t believe it myself when I first saw this but a
side-by-side of these two gentlemen makes things perfectly clear. There’s got
to be some common lineage here. It’s crazy to think about what our world might
have been blessed with were these two great minds not separated at birth. Agile
cryptography? Algorithmic refactoring?
I enjoyed Harry Piereson’s well thought-out response to
David Chappel’s entry on SOA and the Reality of Reuse. I couldn't have said it
better myself, though that won’t stop me from trying. The way I see it, David
brings to light the fact that the emperor has no clothes and then Harry tells
you why the emperor is naked. The focus on business context in Harry’s entry
really caused me to think about why business logic reuse fails.
The use of the word “context” stirred up in my mind the
classic black box, gray box, white box argument. We can expect Java buttons or
.NET Windows objects to behave in
a low context, black box manner. From contextual business objects, we can at
best expect gray box behavior; although white box is much more realistic. I
guess in the box world, the opacity of the box is tantamount to the amount of
context that can get through. 
This said, in business object environments that demand high opacity/context, can and should we strive for reuse? I think the answer is
still a resounding “yes”. We just need to do it in a realistic manner. So what
does this mean? If our experience has shown that neither objects nor Web
services are the appropriate level of abstraction for business logic reuse,
where do we turn?
In my mind, analysis patterns
provide the answer to this question. Analysis patterns are the long lost
stepbrother of the popular design patterns. Martin Fowler does a great job of categorizing
common analysis patterns in his book of the same name. However, it is Eric Evan’s
Domain Driven Design book that provides the real insight into the process that
will lead to analysis pattern identification.
The true beauty of analysis patterns is that they not only work
within their target domain; they have the uncanny ability to shed new light on
similar situations across domains. I can well imagine that the case transfer
pattlet we created applies not only to the state government business domain for
which it was intended, but also fairly well to the transfer of cases in the
legal system domain.
In such high context, business rule driven transactions such
as case transfers, I would never aspire to build a reusable object or service.
Letting the analysis pattern speak for itself, I feel as if I’ve gotten all of
the reuse capability I need to at that level. Attempting to create a standard
programmatic solution that incorporates all the complexities of the pattlet’s
context is likely to cause more problems than it solves. As caretakers of the
business logic we need to understand the negative impacts of overengineering a
solution and learn to use the right colored box for the job.
|