If you haven’t spent any time in Pittsburgh, you can ignore this post. If you
have spent some portion of your life there or know someone who has, have I got
a great gift idea for you. “Chipped Ham Sam”, the first in a line of Yappin ‘Yinzers
dolls is available for purchase at http://www.yappinyinzers.com.
Check out the site and poke Sam in the belly for one of 9 witty Pittsburghese
sayings.  This is a great gift idea for native Pittsburghers, CMU /
Pitt students, or anyone in the Steeler nation who has had a chance to
experience the flavor of the steel city. This product is the brainchild of a
former colleague. Goes to show what 6 years of systems integration work can do
to a person.
Following up on my This Digital Life post last month, a couple of folks have sent me emails asking if I had some recommendations around other Web 2.0 tools. In the sprit of a recent podcast that defined Web 2.0 as “really anything that’s cool online nowadays”, I decided to post some Web 2.0’ish tools that I highly recommend. Some of these tools I’ve been using for a year or more (a mighty long time in the Web 2.0 world) and some I’ve been using for just a couple of weeks. Most are, with the exception of Central Desktop, free services. Enjoy and let me know if you find these useful.
- scanR – Snap digital pictures of whiteboards or paper documents and upload them for processing to scanR. The images are cleaned up, PDFed, and sent back to you in an email. You can also upload images of business cards, which are then converted into vCards that can be imported into your favorite contact management program.
- Vyew – I’m a recent convert to Vyew and have been nothing but impressed with its features and ease of use. Think WebEx; but it’s better and it’s free.
- Zamzar – File conversion online. Format… you name it. Upload a file, identify the type of conversion you’re looking for and Zamzar quickly converts the file; returning the finished product to you via email. Zamzar supports over 200 conversion types. Some of my favorites are doc-to-pdf, ac3-to-mp3, and avi-to-flv.
- Mediamax – So now that you have all of this digital media, what do you do with it? Enter Mediamax. You get a whopping 25GB of storage for free and the pricing plans for more space are very reasonable. This includes sharing and hosting of digital audio and video and a Windows-based tool for file synchronization and automated backup.
- Google Calendar / Remember the Milk – With some recent integration efforts, this is a tool match made in heaven. The best calendaring tool combined with the best to-do list manager, all in one very intuitive UI. Although not combined, these tools both have great browser-based PDA versions as well.
- Central Desktop – The Cadillac of the tools listed here and, as mentioned earlier, the only one that does not have a perma-free option. This tool is simply so awesome that it warrants mention. Central Desktop is software as a service at its finest. Portal based functionality, project management, full text indexing and search of uploaded documents, Web meeting and audio conferencing capabilities, IM and Skype integration, version control, and the list goes on. It’s not as lightweight as Basecamp but it has all the features you wish for in Basecamp and is even more intuitive.
This weekend, I set out on the daunting task of trying to
add an Apache Web server to my existing Windows 2003 production server
installation. “Why would you go about doing such a crazy thing”, you might ask.
The answer is that, in short, it’s the only way to host an HTTP-accessible
instance of Subversion on a Windows box. I’m looking to consolidate all of my
hosted software: .NET, Java, and infrastructure, onto a single platform. Since
I use Subversion to enable my location independence with respect to computers I
use, this application needed to be ported as well.

I expected to learn a lot of new stuff about Subversion and
Apache through this process. I didn’t expect (perhaps ignorantly so) that I’d
encounter “learning opportunities” on Windows as well. As it turns out,
Microsoft has gone ahead and made the assumption that if you’re running IIS on
your Windows Server, nothing else should be running on port 80. That is, out of
the box, IIS exhibits very greedy behavior, binding to all available IP
addresses on the server, not just the ones that are explicitly assigned to Web
sites.
It turns out that this is a case of socket pooling gone
awry. To solve this problem, you must literally slap IIS on the hand and tell
it to stop listening to all of those ports. After trying a couple of legacy
solutions, such as setting the DisableSocketPooling property, I landed upon a solution that works
in the IIS 6.0 post-Winsock era. This Microsoft Support Article
provides all of the details you would need to manage the IP inclusion list in
IIS 6.0 and solve this problem should you run into it. Also, should you need the
Windows 2003 support tools referenced in this article but not have immediate
access to your Windows 2003 CD, you can find
the tools here as well.
I’m happy to report that I now have IIS and Apache running
side-by-side on the same Windows machine; each on port 80 using different IP
addresses. Getting Subversion up and running was another issue entirely…
IT Conversations pushed out a great series of podcasts again
last week. As always, good things seem to come in three. In this case, the
three were IP telephony, transportation networks, and collaboration. The
diverse range of technologies and topics covered in these three podcasts
represent a microcosm of the IT Conversation offering; just reaffirming their
commitment to appeal to an intellectual audience (myself excluded) with a broad
set of interests.  - Moving Voice Apps to Pervasive Use
– A quick and dirty overview of one man’s history of IP telephony and the
applications that can be built on top of these services. It helps that the
man in question is Jonathan Taylor, founder and CEO of Voxio. In a little
over 15 minutes, Jonathan gives a quick yet fascinating personal tour of the
evolution of the industry. One highlight for those that were unaware is
that Voxio provides Evolution, a
free limited scope infrastructure to developers looking to develop IP
telephony solutions.
- Transportation Networks – Although
it is a bit longer than the voice apps podcast and tends to meander at
certain points, the transportation network podcast provides an abundance of
interesting information. From information on rail sizes to an etymology of
the word turnpike, there’s some
fascinating stuff here. Dr.Levinson doesn’t give too much away, instead
leaving the audience to contemplate the parallels between communication
and transportation networks and draw their own conclusions. In one quick response
to a question, he compared the issue of net neutrality
with the establishment of High
Occupancy / Toll (HOT) lanes in several states. Pretty insightful.
- Facilitating Collaboration – This was
the best podcast of the group. Ryan Freitas from Adaptive Path pulled
together a great piece with some really thought provoking ideas. It would
not do this podcast justice to simply highlight a couple of elements. It’s
absolutely worth your time listening to this one. While listening to this
podcast on my drive to work, I found myself taking notes with one hand and
calling people to tell them how pertinent the material was with the other.
BTW, I commute to downtown Harrisburg, PA
at about 8:00am; you might want to avoid the roads at that time. A
couple of the notes that I took on my ride were:
- Attenuation
(4:25) – Used throughout the presentation, this word caught me at
first. As a guy that used to do signals intelligence, this has a distinct
meaning to me and it isn’t “pay attention to”. Despite the semantic
incongruance, the concept that Ryan is illustrating here is awesome. By
using certain signals and markers (sharing our del.icio.us bookmarks,
blogs, or reading lists, for example), we can better attune as a team and
understand what forces are impacting each other’s thoughts and actions.
- Criteria
for Evaluating Tools (15:20) – Ryan had some great suggestion for
evaluating lightweight Web 2.0-like tools. Appropriateness, commonality,
centralization, portability, uptake - all very good criteria. I liked
portability in particular with an eye on exit strategy. 37Signals did a
particularly good piece on facilitating easy exit in their book, Getting Real.
- Alternatives
to WebEx (34:30) – Expensive and slow, yes – yes. Passes at work but
what about outside of work? Ryan mentioned Vyew.
This is simply awesome free software that you’ve got to check out. My
additional recommendation, for software development specific
alternatives, are collaboration tools like Netbeans’ collaboration project
that allow sharing, collaboration, and working with code online across
time and space.
- Wikis (37:00) – Ryan talks about some of the benefits and challenges of wikis. He also handles
some Wiki hybrids. Once again, from a software development specific standpoint,
it’s worth calling focus to Trac here. Wiki,
timelines, RSS syndication, Subversion integration, bug tracking / ticketing, and
FAQs – all in one tight pack.
I’ve been kicking around some ideas in this area for a while, in hope of bringing them together in some coherent fashion. The image below represents the fruits of my labors. I’m not sure that it’s prefect or that I won’t look back on this as a sophomoric effort several months from now. The visual does, however, touch on several major observations I’ve made recently and allow me to illustrate them in a fairly clear and succinct fashion. Some of the terms are heavily overloaded and thus a bit more discussion of each of these trends is provided below for clarification.

- Information Monopolies – Several states have internal brokering setups in place. These information brokerages are found most frequently in the areas of law and justice, financial transactions, and health information. I believe these areas represent the first of several information monopolies. These monopolies were driven by federal data exchange efforts in homeland security and bioterrorism and, in the case of financial data exchanges, system consolidations on common ERP platforms. Expect to see more of these natural information monopolies in the near future with efforts such as Real ID, the National Information Exchange Model (NIEM), Medicaid spend management, and the National Provider Identifier (NPI) taking hold. As these monopolies take shape, certain organizations within state government will be the logical choice as keepers of this data. These keepers should be building their systems in a service-oriented fashion to facilitate easy exchange of information amongst all systems requiring access to this data.
- Increased External Brokering – Data exchanges with external business partners are a critical source of information for many state government systems. Many of these exchanges still function via standard mainframe flat file transfers that occur at predefined intervals. The federal government is working to transform their data exchanges to use service-based XML file transfers. Interestingly enough, the private sector is lagging behind a bit in this area. I recall a recent experience where we were notified that the 3 major credit bureaus had “upgraded” their data exchanges from automated flat file transfers to HTTP POST transfers invoked manually through Web pages (still using the same flat files). I would expect to see an increased push from both the public and private sectors to move towards HTTP SOAP-based Web services over the next several years.
- Enterprise Service Bus (ESB) – The two most common patterns of Web service automation that I’ve witnessed in state government are service-based point-to-point integration and service façades. The point-to-point services represent a simplistic upgrade of existing point-to-point mainframe file transfers to use more current technologies. The service façades are usually the product of auto-generated Web service interfaces whose structure mimics that of the underlying components’.
Without going as far as to label these uses of services as anti-patterns, they are definitely crude uses of a Web service based infrastructure. Without publication in a registry or consideration of the consequences of how these services might be used outside of their intended scope, the service infrastructure can be considered anemic, at best. ESB promises to right some of these wrongs by acting as a central pipeline to enable access to these and other legacy services. Along with this access comes centrally provided infrastructure and transformation services that shield the service providers from some of the change and configuration management headaches associated with providing these services.
- Robust Business Process Infrastructure – The current state of business process integration in most legacy enterprise applications is characterized by a complete commingling of business process logic, data processing logic, and other rudimentary services. In most systems, you’d be hard pressed to trace the progression of a business process from end-to-end, let alone measure the effectiveness of the process execution. Yet, business processes are the lingua franca of the business managers and business users. Show business people a UML sequence diagram and it’s likely to elicit blank stares. Show them a process flow, on the other hand, and you will probably receive all sorts of feedback on how to modify the flow to make it more representative or efficient.
It’s really a shame that it has taken the IT industry so long to come up with tools that meet this relatively elemental need of business application development (see article - State of Workflow). It does appear that these tools are finally beginning to materialize in the form of Business Process Execution Language (BPEL) compliant servers and tools. Support for BPEL is fairly widespread among the newest Java IDEs and application server vendors (Sun, Oracle, IBM, BEA, and JBoss). On the Microsoft side, Windows Workflow Foundation (WF) and Visual Studio support in the release of the .NET 3.0 Framework represents a major step forward towards standards-compliant support. BPEL will allow for the orchestration of services and the representation of this orchestration using common process flow diagrams that business analysts and business managers can use to effectively communicate process execution.
There are two other trends that are likely to follow the creation of BPEL-compliant processes. First is the introduction of Business Activity Monitoring (BAM) to measure the ongoing execution of the business processes and provide real time business intelligence. Second is some degree of standardization of business process models and potentially even the rise of business process outsourcing. In state government, this outsourcing is likely limited to the programmatic execution of the process as well as support and maintenance for ongoing process changes. Business processes that are codified in legislation (taxation and welfare eligibility, for example) are good candidates for automation and standardization of process commonalities.
I had the extremely good fortune to stumble upon a document
on XML.gov that describes the cohesion between the varying areas of state
government work that I am involved in. The document, a report on the
E-Government Act of 2002, Section 212, was a revelation of previously unknown
relationships between many areas of my work. Despite the fact that the document
was written for the federal government, it appears to be very applicable to
state government as well.  The report highlights enterprise architectural elements as
well as pilot implementations underway to support presidential e-government
initiatives. I’ve touched on a couple of these examples below.
- Federal
Enterprise Architecture (FEA) – The FEA consists of five reference
models (business, performance, service, technical, and data) and a series
of policies to help link IT investments with the reference models to help
identify commonalities and IT spending priorities across the government’s
agencies.
 FEA_lg.jpg (36 KB)
The FEA obviously does not apply to
state government out-of-the-box. However, the extensible structure of each of
the FEA reference models facilitates customization. The Commonwealth of Virginia
provides an exceptional example of how this can be implemented in
practice. Virginia has used the FEA as their model
and, from the top down, has begun creating the business reference model in a
manner consistent with the operation of state government. I have not seen any
other work of this quality and breadth made publicly available by other states.
I’ve included a local reference to their enterprise business model below. More
detailed mappings can be found on Virginia’s
enterprise architecture page.
VirginiaEnterpriseBusinessModel.pdf (121.5 KB)
- Grants
Management Pilot Project – I’ve been spending a bit of time
familiarizing myself with the grants management domain over the past
several months and posted on this topic more than once. With the passing
of the Federal Funding Accountability and Transparency Act of 2006, focus
on this area is likely to get even more intense at the federal and state
levels in the next couple of years. Special thanks go out to Dave Cassidy
of TCG for pointing me to the right section of Grants.gov with some meaty design
and implementation details concerning granting system information exchanges.
- Case
Management Pilot Project – Case management has a place near and dear
to my heart. The state government pattlets all deal with case management and
it’s an area where I have some experience and even more opinions. It is
encouraging to see the federal government aspiring to move towards data
unity in this area. I have my doubts however. Case management, with its
diversity of data elements and business practices, seems to have antibodies
that preclude any form of true standardization. Normalization seems more likely
to me here.

The National Information Exchange
Model (NIEM) was mentioned as a unifying enabler. I am encouraged to see
government pursuing data standardization so rigorously with NIEM. They seem to
have made great progress in areas related to homeland security and are now
eyeing other areas. I long for the day when NIEM becomes a first class citizen
of the integration standards world and garners widespread vendor support like
its industry brethren, SWIFT, HL7, and RosettaNet.
If you completely missed the milestone, NetBeans version 5.5 was released last week. The IDE contains all of the functionality that’s been around in the beta and pre-release versions for months now, including:
- Support for Java Enterprise Edition 5 (i.e. the Java Persistence, EJB3, and JAX-WS 2.0 specifications
- Support for Subversion up to version 1.4
- Developer collaboration features
- SOA support (XML, BPEL, or Java web services) through the free Enterprise Pack
- Performance and memory usage monitoring (including remote JVMs) though the free NetBeans profiler
In addition to all of the aforementioned features, which are part of the official 5.5 release, the Visual Web Pack Technology Preview was also released. This long-awaited feature brings to NetBeans a rich JSF-based UI. For those of you that have used Sun’s Studio Creator product, this addition to NetBeans will be both welcome and natural.

VisualWebPack_Lg.png (82.33 KB)
For those of you that have not experienced Studio Creator, the rich UI component IDE will be quite an experience. Standard JSF components are supported as well a number of AJAX-enabled JSF components from Sun’s BluePrint AJAX component modules. The NetBeans team has already created a number of Visual Web Pack specific tutorials. In addition, although I cannot verify it, I am fairly certain that the existing Studio Creator tutorials will work with little or no modification. Finally, if you’ve latched onto Ruby / RoR, check out the CRUD screencast in which NetBeans is used to generate a set of entity beans from a database and then to produce a set of RoR-like scaffolds, all without writing a single line of code.
I ran across some very unique work from the state of Missouri in the area of
project oversight the other day. Missouri’s
well documented approach to project oversight is not only a great state
government practice; it is by far the best documented practice in the public or
private sector that I could find in this area. The project oversight
methodology was
nominated for a NASCIO recognition award in 2004 under the State IT
Management category. The five guidance documents on Missouri’s project oversight website
represent a comprehensive, end-to-end project oversight methodology. In
addition to detailed process flows, artifact definitions and templates, the
methodology also includes simple but very useful explanations, such as the
table illustrating the differences between project management and project
oversight, which I’ve reproduced below.  ProjectOversight.png (7 KB)
In my mind, items such as Missouri’s project oversight approach are
the types of knowledge capital that would have been great seeds on which to
found the Government Open Code Collaborative (GOCC), which I’ve blogged about
in the past. Since the GOCC appears to be all but dead, I don’t know what other
alternatives are available for inter-State exchange of government practices,
outside of NASCIO. I’ve decided to mirror Missouri’s documents on my site and have
included links below. Hopefully, Missouri
can find a way to proactively open source these documents, even if no common
exchange exists for such materials.
Project Oversight, Part 1 (598 KB)Project Oversight, Part 2 - Chapter 1 (2086.5 KB)Project Oversight, Part 2 - Chapter 2 (2019.5 KB)Project Oversight, Part 2 - Chapter 3a (1820.5 KB)Project Oversight, Part 2 - Chapter 4 (1042 KB)
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
|