Archive for December, 2006

I’ve added a second state government pattlet to the portfolio. This one is for the case entity. Although a bit more simplistic than our previous pattlet, Case still has some very interesting nuances, such as the use of aspect-oriented techniques to account for associating the writing of case history records with various case-related transactions.

State Government Pattern - Case

In addition, I have made some minor revisions to the Case Transfer pattlet, upped the version number, and reposted that as well. I’ve also started added these pattlets to two open source pattern repositories.

On PatternShare.org, these two pattlets were the first examples to be added under the business architecture category. I’ve found PatternShare to be very usable and friendly. In essence, it’s a Wiki for patterns. Unfortunately, after the initial loading of the well-known patterns (e.g. GoF, Fowler), there has been little activity in this community, which is a real shame. I was especially disappointed at the non existence of business patterns, since this is an area where I see so much potential.

On et.gov, the process of adding and mapping a pattern was very interesting. You are actually required to submit create and submit an XML mapping describing your asset(s) and then post this XML file out to your site. The XML file I submitted can be found here. The underlying assets seem to be mapped against the FEA. In many ways, this process is similar to the one I described in my reusable asset post. The only difference is that the discovery mechanism in et.gov is very rudimentary, not near that of some of the commercial tools out there.

As before, the pattlet is licensed under the Creative Commons “Attribution Share-Alike” license. As a next step, I’m looking to move outside of case management for a while and potentially deal with participants. I’m especially interested in working on a Participant Relationship pattlet, since I’ve been having a lot of discussions in that area as of late. I’d also like to fully open source all of this work, including the source code, and post it out to a Subversion repository for people to download. There just don’t seem to be enough hours in the day to get this all done. Any help or assistance would be greatly appreciated.

Case.pdf (165.74 KB)

Comments No Comments »

In my efforts to understand what drives software reuse or the lack thereof, I’ve been looking for formal reuse standards, processes, and practices. I’ve been examining technology agnostic materials as well as researching the approaches taken by each of the respective major camps – software factories for Microsoft and Model Driven Development (MDD) from the Java community. This post, in particular, is more concerned with technology agnostic materials.

Being a long time believer in Scott Ambler’s Enterprise Unified Process (EUP), the strategic reuse discipline contained in the EUP was the first place I turned for process guidance. The reuse discipline, like the rest of the EUP disciplines, is structured in the same fashion as any other RUP discipline, which makes learning pretty intuitive if you’re familiar with the RUP. The workflow of the strategic reuse discipline is illustrated in the image below. The workflow is pretty straightforward and the harvest, buy, build, evolve approach to the preparation of assets agrees with what I’ve observed in practice. If you’re interested in this process, you can check out a brief synopsis of the strategic reuse discipline or purchases Scott’s book on the EUP.

EUP Strategic Reuse Discipline

The Reusable Asset Specification (RAS) is an OMG standard that I have been recommending to colleagues for some while now. In terms of readability, the document is rather dry and academic in nature. In terms of real world applicability, I am aware of several systems that claim to offer RAS compliance. This includes the tool that we use, Logidex, which offers a RAS compliant plugin for Rational XDE. Where the document shines is not in readability or direct applicability but in the way it holistically addresses the capture of metadata about reusable assets. I’ve been recommending that folks read this document with a focus on the UML and XSD diagrams. There is a lot that can be learned about structuring asset metadata that will prove valuable to anyone attempting to classify their software development assets.

OMG Reusable Asset Specification

As a footnote, the IBM article on reusable assets, recipes and patterns provides a good introduction to the MDD approach, as espouse by one of the major Java vendors. Jack Greenfield’s article on software factories is not all that far removed from the techniques espoused by IBM but, as always, the tooling is quite different.

Comments No Comments »

My initial experiences with Oracle’s TopLink object-relational mapping tool have been less than pleasant. TopLink is the default Java Persistence API provider when creating persistence units for EJB3 style beans in NetBeans. When using TopLink out of the box with NetBeans, the tool’s default behavior is to behave in a case-sensitive fashion with respect to table and column names. This results in awful “Table XXXXX does not exist” errors, where XXXXX is, of course, the capitalized table name.

Confusion over Configuration

This posture represents the absolute antithesis to the recent, Ruby on Rails-driven trend towards “Convention over Configuration”; instead reverting to the longstanding software engineering tradition of confusion over configuration. Why wouldn’t you just set the default behavior to respect case insensitivity? I’m assuming that this can be set in a config file but I’m too mad to go thumbing through the documentation to find out where that is. The TopLink API has a setShouldForceFieldsToUpperCase() method. I don’t want to call that either. Why should I have to?

Hmm… if I remember correctly, were I to open a SQL*Plus command prompt and execute the statement CREATE TABLE foo, Oracle would create for me a table named FOO. Sounds like Oracle convention over ease of configuration. As far as I can see, EJB-QL is case insensitive and the database I’m using, Derby, is also case insensitive. My primitive troubleshooting points to TopLink as the culprit here. I’m going to swap in Hibernate and see if I’m right or wrong. Is anyone else experiencing similar problems?

Comments No Comments »

The Governor’s office announced an exciting new partnership between Google Earth, Carnegie Mellon University, NASA, the Pennsylvania Tourism Office, and the National Civil War museum that will allow virtual tourists from all over the world to experience Pennsylvania’s Civil War trails first hand. The partnership will be creating Gigapixel Panoramas (Gigapans), enabling users to visualize these destinations with a great degree of detail.

Pennsylvania Civil War Trails on Google Earth

It’s hard to tell what this consortium is going to bring together exactly, but it sounds very promising. There has been talk of even introducing a time-based element into the visualization, which would be very cool, given the nature of the subject. For a quick look at other Gigapan type work, I’d recommend xRez. I find it hard to make much out of the landscapes but their panorama of downtown Boston is simply awesome.

Comments No Comments »