Showing posts from January, 2008

JCAPS Training Notes

The JCAPS training I attended ( Foundations of Java CAPS II ) was excellent. We screamed through the course material in 3 days and had discussions on other JCAPS topics the other 2 days. Here were my impressions. I enjoyed learning about the eInsight Business Process Manager . The tools and steps involved in creating a business process are very similar to those used to create a JCD. There are a lot of interesting constructs like correlation and the "flow" element, which easily enable parallel processing. One frequent topic of discussion, was when to use an business process (eInsight) rather than a JCD. There's a certain flexibility to creating a business process, gained at the cost of speed. Since you can do virtually everything in a JCD that can be done by a business process, we questioned when each was a better fit. We didn't reach a consensus and I'm sure we'll be talking about this again. We explored the shortcomings of the repository and the be

Podcatcher - Sprint 1

I've made embarrassingly little progress on my podcatcher so far. My plan was to entirely read Lean Software Development before getting started, but it's taking me a while to get through the book - in a good way. I seldom read more than 5 or 7 pages before I find myself reflecting on current or past projects. This knowledge could've saved me time on previous work by making the most important & well defined features a priority - delaying discussion and decisions on the "nice to have" features until later. Some of these ideas I've stumbled on by accident or heard about from others, but it's great to have them validated and expanded into this set of lean thinking tools. I'm sure this is a book I'll reread many times in the coming years. Anyway, I want to revisit my requirements list for the podcatcher, prioritize the features, and define the features for my first sprint. Here are the requirements for the podcatcher from a previous post, ro

Is Orchestration the new Web 2.0?

In recent SOA discussions with people at work, the topic of orchestration often comes up. The problem is, like Web 2.0 before it, the meaning of what an orchestration (or orchestration layer) is differs depending on who you're talking with. In my view, an orchestration simply refers to the process of integrating disparate applications. This idea is obviously not new. It's just a new name for an RPC or ESB-layer but relies on HTTP for communication instead of CORBA or something like JMS . This view is supported on Orchestration's Wikipedia entry which describes an orchestration as the process of coordinating an exchange of information through web service interactions. Speaking of the Enterprise Service Bus, it seems there is some confusion whether the "orchestration" lives at the same layer of the ESB or at a layer above the ESB and helps to coordinate ESB communications. I fall into the first camp, believing that "orchestration" is just a new

Web Service Discussion

Again and again the topic comes up at work about fine vs. coarse grained web services. Is anyone else talking about this? I guess I don't understand what the big debate is about. I think of a fine grained service as implementing a very specific, atomic operation. Course grained services implement larger, multistep operations... possibly consuming other services. The way I look at it is this: a business has some piece of functionality it wants to make available for others to use (the service). It shouldn't matter if the steps performed by the service can be broken into smaller components. If no one can use these intermediate (finer-grained) components, the energy spent defining, building, and maintaining this (unused) functionality is wasted. My position is that it's better to wait. Should the need to reuse some of the functionality arise, then refactor the common functionality into a smaller, reusable service. Am I thinking about this wrong? What am I missing?

JCAPS Training II

I'm back at JCAPS training this week. This time the focus is on the eInsight Business Process Manager . eInsight is the JCAPS architecture layer used to combine web services. The services are connected using BPEL which is an XML-based language to define business processes. The latest version of NetBeans also includes a BPEL tool, and I'm anxious to see how they compare. We have some time scheduled at the end of the formal training to explore some of the JCAPS problems we've been experiencing. In addition to the problems I've already outlined with the repository . I'm hoping we can also explore the following: Lately, we've seen some weird behavior where things that were previously working stopped. The errors in the logs don't seem to make any sense. At first we thought it might be due to some code that was copied to a different location, but I've seen this problem where no code was copied. The only remedy we've found is to recreate both the

Podcatcher - Requirements

One of the goals I set for myself in the New Year was to gain experience with Lean/Agile software development. My test project will be a fairly simple podcatcher to manage the podcasts I listen to. Here is the initial set of requirements for this tool... Subscribe to podcasts (obviously). All of my current subscriptions are RSS , so I'll focus on this first. Once I have something functioning, I'll add support for Atom feeds. It will also support importing OPML files. This is the format exported by iTunes. I currently use iTunes to manage my podcasts and the default is to retrieve the latest podcasts on startup. This is OK if you generally listen to all episodes you subscribe to, but for some subscriptions, I like to pick and choose the shows I want to listen to. I know this behavior is generally configurable in iTunes, but I'm not sure this can be individually configured per show. The default behavior for my podcatcher will be to download only show description