ITxpo: Web Services lead presentation

Web Services in the Enterprise (Frank Kenney): Not about having services but about controlling them. Theme emerging from conference so far: important thing is to ensure that what is provisioned is supported. Show customers (partners, end users) that management layer is in place. Kenney discusses ESBs, APS and middleware, as well as vendor strategy, in considering the management of web services. (Wonder what Radovan Janecek at Systinet would say about the ESB point.)

I’m going to diverge from Frank’s talk for a second and bring it back into an IT Services Management framework. ITIL would say that there are several processes that connect to a hypothetical web service: service level management, configuration management, and availability management are key. Unfortunately a lot of ITIL implementations begin with a focus on incident/inquiry management and (if you’re lucky) problem and change management. This is good, but it’s still a reactive situation. If you’re managing proactively, you’re monitoring your services so that you can actively gauge when you’re meeting your service levels, not reacting when someone tells you you’re out of compliance, at which point it’s too late.

The issue is that there are tradeoffs in how you monitor the services. Frank covers that, but also has some interesting insights about the market as a whole: considering 12 major vendors in the market, there’s less than $50 million in 2004 revenue across all of them and fewer than 100 production customers. Also consider that many of the firms are on their second or third rounds of funding, and consider their exit strategy — likely acquisitions — before you buy.

Implementing ITIL

Implementing ITIL (Shafqat Azim): suggestions include defining service catalog up front, defining dependencies (messaging systems, reporting systems); manage communications about benefit of process up to management and out to users; have a clear taxonomy and way of describing the scope of your initiative; have a clear vision of where you’re going; look at a reference model with enough depth to know the challenges and dependencies that you will be facing. Consider the level of maturity of processes on which you are dependent. Focus your effort on a handful of processes to refine, but consider how to mitigate the weaknesses of the other processes.

Validate process through use cases of particular issues—implementing a server, responding to change, etc.

Once you have the organizational requirements and use cases, think about tools. The process comes first; tools come second. (Is this ever not true?) Use use cases to develop matrix of functionality for automation, and have a bake-off.

This is all fine, but: I wonder where the trade-off is between process paralysis and avoiding useless tool expenditures.

ITxpo Keynote: managing complexity

The opening Gartner keynote is a tad condescending in the opening (who told Gartner’s CEO to cite “portal software” as an example of complex new IT challenges?), but quickly gets more interesting and starts delivering some insights, including: a quote attributed to Ezra Pound (“Man is an overcomplicated organism. If he is doomed to extinction it will come from a want of simplicity”—source?) and a citation of the Law of Requisite Variety. Complexity is a bell curve; claims there is an inflection point beyond
which if you make a system more complex value diminishes rather than increasing. They
suggest a consideration for review and acceptance of technology: “positive return on complexity.”

They make a very strong case that one way to mediate complexity is through process. Sounds good to me—that’s what ITIL is all about. Also useful: consider where to place complexity: away from the users. Don’t make IT’s life easier at the expense of the end user experience.

There’s a tradeoff between business needs and managing complexity. Also deep relationship between complexity and change management. Framework for understanding n-order change (this is when people start leaving): understand interaction between cultural systems (org structure, people) and technology systems (technology and tasks). First order change: tasks affected. Second order change: tasks and people. Third order change: affects every single variable, e.g. ERP. Fourth order: affects partners, customers, and other external connections.

Here comes the sale: there is a Gartner decision framework that helps you think across the strategic issues in managing complex new projects.

(Aside: wonder if there is a point to be made that blogging got adopted and is a profoundly transformative technology precisely because it’s less complex than other knowledge management tools?)

Managing complexity checklist:

  1. Standardization: can reduce complexity or increase capacity to manage more complexity. One consideration: number of vendors and products, but be careful of lock-in.
  2. Automation: from the traditional (adding additional tools to replace human labor) to augmentation (e.g. expert systems). Can hide complexity, but frequently not from IT; also raises the bar for IT staffing and pay.
  3. Best practices:
    1. Don’t do everything at once.
    2. Buy what you need, not what you might need.

Remember process! This is the connection between the organization and technical complexity.

Gartner blogging

I don’t know how much blogging I’ll be doing at the Gartner conference, but apparently the conference organizers have already beaten me to it: check out the official conference blog. And they are offering to point to other blogging coverage from attendees. Cool. Next thing you know they’ll be rockin’ it unconference style. Or not. All I know is, if there isn’t a backchannel for this conference I may have to start one.

Wrong Airport Blues

I made it to San Francisco last night, no thanks to our travel agency. Not only did the hotel not have my reservation, but somehow they had decided that it was perfectly OK to offer my an itinerary that flew into La Guardia and took off again from JFK. It turns out that the two airports are traversable via cab, provided of course that you leave enough time for the inevitable traffic jams.

I’ll be heading into the conference in a few minutes, but right now I’m just enjoying the brief sunshine from my hotel window, and my view of the San Francisco Chronicle offices. Pictures later, maybe.

Spring is here

tulips and Trinity Church

Signs of spring in Boston:

  1. The street sweepers have been around to remove some of the beach-worth of sand left after a season’s worth of snow.
  2. We’ve had a few 90°+ days.
  3. There are flowers in Copley Square.

I had a few minutes last night to walk around before practice, before the light failed, and got a few good pictures, including the rooftop shot which was taken from the fourth floor of Old South’s bell tower.

BRAxe to fall at Fort Monroe

satellite image of ft monroe

According to the Associated Press (via the Washington Post), the BRAC axe is finally falling on Fort Monroe, one of the country’s oldest military installations and the coolest one near my childhood home. Here’s my hometown paper’s take, together with some good photos of the fort, its moat, and a reminder of its Civil War past.

Construction on the fort started in 1819, the same year that the ground was broken in Albemarle County for the University of Virginia. According to the official history of the fort, the current fortifications succeeded a series of colonial era defenses on the site, called Point Comfort, including Fort Algernourne, which was built in 1609 by the original Jamestown settlers. The fort was made obsolete by the introduction of long range bombers and aircraft carriers, but survived until this last round of base closings as a training command.

I will always remember Fort Monroe for the community Fourth of July shows, which generally featured live musical entertainment (both jazz bands and military brass), culminating with a brass band performance of the 1812 Overture complete with field artillery and followed by fireworks.

The Unofficial Homepage has some good information about the base (and a lot of broken links). Map of Fort Monroe; satellite image from Google Maps; satellite image from TerraServer.

The History Channel, coming to a neighborhood park near you

Looks like our favorite Robbins Farm Park is going Hollywood. We got fliers yesterday announcing that “a History Channel production will be taking place” there today and tomorrow. I’m not used to getting these sorts of notices, so was amused by some of the text (emphasis mine):

…The documentary we are filming requires battle scene re-enactments. There will be yelling, campfires, and sword fighting.

Ah yes, the great Broadsword Battle of Menotomy! Good to know that the History Channel guys are plumping for authentic locations.</sarcasm> Anyway, I’ll see if I can get photos tonight or tomorrow.

Architectural cow skulls in Boston and Virginia

Adam at Universal Hub wrote about some cool architectural grotesques around Boston today. One that caught my eye was the cow skull on the Boston 5 Cents Savings Bank. As I wrote in the comments, this isn’t a gruesome ornament but a classical one, which also appears in Jefferson’s architecture at the University of Virginia:

The drawing that Jefferson prepared for Pavilion II carried the notation that the order was based on the Ionic of the Temple of the Fortuna Virilis in Rome, which was illustrated in plates in The Architecture of A. Palladio; in Four Books. One of the distinguishing features of this order is that the volutes of the capitals at the outer corners of the columns are positioned diagonally at the ends of the portico. The Temple of Fortuna Virilis has a frieze of ox skulls, putti, ribbons, and garlands festooned with fruit motifs, which were also used in Pavilion II.

I wonder what the thematic significance of the ox skull was originally.

Reinstalling again

Another morning lost to rebuilding the machine. I asked the IT guys at my office to allow me to upgrade to Windows XP from 2000, and they did—alas, something went awry and the install created an entirely new system directory. So I’m reinstalling services and trying to find installation disks, and basically just trying to get things back to normal. It is nice to be back on XP, though.

Transforming XML with XPath in SQL Server

Since the next version of SQL Server (2005, aka Yukon) is at least nominally coming out this year, it seems a bit late to write a tip about using the XML features in SQL Server 2000. However, better late than never.

As part of a project I’m working on, I needed to bring XML data into our production database for subsequent processing. The XML document that our partner’s application provides is what I would consider “loosely typed”—all the useful information about the data contained within is defined outside the actual schema. For an example, say the canonical sample XML document is written like this:


<ROOT>

<Customer CustomerID="VINET" ContactName="Paul Henriot">
 <Order CustomerID="VINET" EmployeeID="5" OrderDate="1996-07-04T00:00:00">
  <OrderDetail OrderID="10248" ProductID="11" Quantity="12"/>
  <OrderDetail OrderID="10248" ProductID="42" Quantity="10"/>
 </Order>
</Customer>
<Customer CustomerID="LILAS" ContactName="Carlos Gonzlez">
 <Order CustomerID="LILAS" EmployeeID="3" OrderDate="1996-08-16T00:00:00">
  <OrderDetail OrderID="10283" ProductID="72" Quantity="3"/>
 </Order>
</Customer>
</ROOT>

In the flavor of data description used by our partner, the same document would be written like this:


<ROOT>
<Customer CustomerID="VINET" ContactName="Paul Henriot">
 <Order>
  <OrderAttribute rawname="EmployeeID">"5"</OrderAttribute>
  <OrderAttribute rawname="OrderDate=">"1996-07-04T00:00:00"</OrderAttribute>
   <OrderDetail>
    <OrderDetailAttribute rawname="OrderID">"10248"</OrderDetailAttribute>
    <OrderDetailAttribute rawname="ProductID">"11"</OrderDetailAttribute>
    <OrderDetailAttribute rawname="Quantity">"12"</OrderDetailAttribute>
   </OrderDetail>
...
<ROOT>

That’s only slightly unfortunate; after all, XML is meant to be transformed, and if you wanted to turn the sample into sensible row-and-column data for a relational database you could use the features provided in OPENXML to do so.

Ah, but it turns out the XPATH syntax needed to transform the data (using the ColPattern mapping in the OPENXML) is slightly nontrivial. To extract the text of the elements, you need the text() function, which must be called after the predicate specifier. That is, if your OPENXML statement looks at the /Root/Customer/Order/OrderDetail branch, rather than writing OrderDetailAttribute/text()[@rawname="Quantity"] to get the value of the quantity of the order, you need to write child::OrderDetailAttribute[@rawname="Quantity"]/text(). (Note: If you wanted to include details from both the order and orderdetail branch, you actually have to specify child:: rather than SQL Server’s shorthand, otherwise you get a crossproduct.) (see below)

Anyway, once you have the correct XPath sequence, the rest is relatively trivial. The stored procedure below accepts the XML document as a parameter (you need to do this, generally speaking, unless you know that the XML document will be smaller than 4000 characters in size, since SQL Server 2000 doesn’t let you use local variables of type TEXT) and transforms it into a rowset, ready to be inserted into the database or otherwise manipulated:


CREATE PROCEDURE dbo.import_xml
	@xmldoc text
as
	DECLARE @hdoc int

EXEC sp_xml_preparedocument @hdoc OUTPUT, @xmldoc

--let's peek at the rowset

SELECT * FROM 
OPENXML (@hdoc,'/Root/Customer/Order',1)
 WITH (CustomerID varchar(300) 
'../@CustomerID', EmployeeID varchar(30)
'OrderAttribute[@rawname="EmployeeID"]', OrderID varchar(300)
'OrderDetail/OrderDetailAttribute[@rawname="OrderID"]', ProductID varchar(30)
'OrderDetail/OrderDetailAttribute[@rawname="ProductID"]', Quantity varchar(30)
'OrderDetail/OrderDetailAttribute[@rawname="Quantity"]') exec sp_xml_removedocument @hdoc GO

which produces, for the sample file excerpted above,

CustomerID EmployeeID OrderID ProductID Quantity
VINET 5 10248 11 12

This is probably old hat to those of my readers who know what the hell I’m talking about, but it was eye opening and nonobvious to me.

Update: Corrected after some input from a reader who knew better than I what the hell I was talking about (thanks, Michael Rys). As it turns out, you don’t need the text() function; the XPath shown above will correctly pull the text in the node once you’ve written the predicate correctly. Nothing to see here; move along.

New music Tuesday: Spoon

Man. I wish the iTunes Music Store folks would get their acts together and consistently update the New Releases and Just Added pages. As a music addict, I generally await Tuesdays like I await my first cup of coffee in the morning, and I just can’t get going without my fix. So it’s a good thing that the store’s banner ads at least are up to date; they advised me that the new release from Spoon, Gimme Fiction, is available.

I was looking forward to the release because the lead single, “I Turn My Camera On,” was excellent—a bit like an indie white boy version of Prince, only more swagger-y. But after the disappointment with the new music listings, I thought, I wonder if it’s available at eMusic instead? Sure enough. And buying a fifty-song booster pack let me download the album, plus recordings by Ali Farka Toure, Gene Ammons, Red Garland, and Material for just a few dollars more than the Spoon album by itself would cost at the iTMS.

Also available, and according to Fury worth hearing, is the new recording of Pierre Boulez conducting his own Le Marteau Sans Maitre. (And thanks to Fury for hipping me to the Gurgling Cod, which just got added to my list of favorite Boston area blogs.)

Finally, I happened to be in our local indy record store (okay, chain) this weekend, and found a copy of Godspeed You Black Emperor’s F#, A#, (∞) on vinyl, about which the band’s official discography page says it best:

initially limited to 500 numbered copies, then repressed. hand-made jacket, with one of three actual photographs glued on to the front. comes with a bag of goodies, including a penny flattened by a train. each track fills a side, and is made up of different pieces. side b runs out into a locked groove.

It is not a knock against the recording to say that last night, in a somewhat exhausted state, it took me about ten minutes to realize that the album runs out into a locked groove; the musical effect is quite consistent with the rest of that side. F#, A#, ∞, indeed. But what a cool album (even without the bag of goodies). And apparently, the only way to get the experience is on vinyl, since the band remastered and re-recorded portions for the 1998 CD release. (See the aforementioned discography page for some MP3 samples of the CD version.)

Mother’s Day … for peace?

The Reverend Dr. Nancy Taylor pointed out from the pulpit of Old South Church on Sunday that Mother’s Day has deep ties to Boston, and to progressive thought. Julia Ward Howe, the author of the words to the “Battle Hymn of the Republic,” called for the first Mother’s Day in 1870 as a day for peace, a protest against the carnage of war. (It was to take another 37 years to get an actual observance of the day, by which point it had morphed into a memorial day for mothers.) Here is Howe’s actual proclamation from 1870:

Arise, then, women of this day! Arise all women who have hearts,
whether our baptism be that of water or of fears!

Say firmly: “We will not have great questions decided by
irrelevant agencies. Our husbands shall not come to us, reeking
with carnage, for caresses and applause. Our sons shall not be
taken from us to unlearn all that we have been able to teach
them of charity, mercy and patience.”

We women of one country will be too tender of those of another
country to allow our sons to be trained to injure theirs. From
the bosom of the devastated earth a voice goes up with our own.
It says “Disarm, Disarm! The sword of murder is not the balance
of justice.”

Blood does not wipe our dishonor nor violence indicate possession.
As men have often forsaken the plow and the anvil at the summons
of war, let women now leave all that may be left of home for a
great and earnest day of counsel. Let them meet first, as women,
to bewail and commemorate the dead.

Let them then solemnly take counsel with each other as to the
means whereby the great human family can live in peace, each
bearing after their own time the sacred impress, not of Caesar,
but of God.

In the name of womanhood and of humanity, I earnestly ask that a
general congress of women without limit of nationality may be
appointed and held at some place deemed most convenient and at
the earliest period consistent with its objects, to promote the
alliance of the different nationalities, the amicable settlement
of international questions, the great and general interests of
peace.

Interesting that somehow in the intervening 135 years between the first proclamation and today, Mother’s Day became about flowers, candy, and lunch out… Dr. Taylor’s sermon on the topic was thought-provoking; hopefully it will get posted soon. (I really need to talk to her about blogging.)

(I’m about two days behind on my blogging; I was thinking about writing this on Sunday but didn’t quite get there.)