e martë Jan 24, 2006

Patterns and our evolving vocabulary - Emerging Client Tier Patterns

Patterns and our evolving vocabulary - Emerging Client Tier Patterns


In publishing Core J2EE Patterns, 2nd Edition, my coAuthors and I spent quite a bit of time thinking about how to categorize the patterns within our pattern catalog. We finally arrived at what I think is a decent attempt at cataloguing the 21 patterns within the three represented tiers. We even created the requisite pattern relationships diagram, which is not of too much practical value, though I have been told it's been helpful to some visual learners to tie some of the concepts together. One thing you'll notice if you have a quick look at the diagram's legend, which is color coded by tier, is that there are no patterns catalogued in the client tier. We focused on the most common patterns that we were seeing and several years ago we simply weren't coming across as much work in the client tier as in the presentation, business, and integration tiers.


In many of today's architectures, the client tier is getting more attention, especially with the burgeoning interest in Ajax, so it's worth considering how this would affect the existing categorization and classification of patterns as well as the introduction of emerging patterns in the client tier. When I think about the evolution of this or any catalog of patterns, I'm still impressed with how \*few\* patterns there really are in the world.

Pattern Diagram

Ultimately, there appear to be reasonably few, enduring designs in this world, but an unending number of new ways to implement those designs over time. For this very reason, we have a limited number of patterns in our catalog, with numerous implementation strategies for each pattern. This is important to keep in mind as Rich Internet Applications (or whatever you choose to call dynamic, interactive, and responsive web-based applications) get an increasing amount of attention in the future. Will we see lots of new patterns? Maybe, but I believe we're more likely to see novel implementations of proven designs and approaches and one of our challenges will be updating and evolving our vocabulary to understand how these new patterns and implementation strategies fit into our existing models.

e mërkurë Dhj 07, 2005

Yellow Arrow

Untitled Document

I had the pleasure of meeting Christopher Allen and Brian House of CountsMedia recently. Two very interesting guys leading a fascinating project.

Recently, I spent lots of time immersed in a project at the intersection of art, politics, marketing, and technology, and am intrigued at the similar intersections of their effort, called Yellow Arrow.

What is it?

On their web site they describe the project as encompassing a "Global creative community making a new M.M.A.P of the world", where M.M.A.P stands for:
Massively Authored Artistic Publication

Get it?
Well if you need more details, check out their site.

Here's a quick summary, though I'm no expert...
You get yellow arrow stickers (go to the web site to register and request stickers), each encoded with a unique ID and place them somewhere, then you use an SMS-enabled device, such as a mobile phone to attach a message to your sticker, likely explaining something about why you chose to place it where you did and/or some information about the thing(s) to which it points. When someone encounters the sticker, they can view this message using their cell phone by connecting to the service using SMS, and can then leave comments for the original poster about their experience.

The Washington Post compared Yellow Arrow to "geographical blogging", and it reminds me of Letterboxing, which is another fun, interesting community project, though much more low-tech.

I'm participating in this project, so keep an eye out for \*my\* arrows...you just might notice something else while you're looking ;-)

e hënë Dhj 05, 2005

SOA Interview

I participated recently in an interview on SOA...it's high level, but has some interesting tidbits.

e martë Nën 01, 2005

Service Orientation and Object Orientation

SO,OO...oh oh Deepak Alur recently posted on Service Orientation (so) vs Object Orientation (oo), which is an interesting discussion.
While he's done a good job framing the discussion in a comparison table, I have some comments on his informal comparison.

Here's the table, with my modifications in green and bold. I've struck through verbage that I thought should be removed and followed the table with some general comments.

Compare Service Oriented Object Oriented
What is it? Modeling, Design, Architecture Modeling, Design, Architecture, Progamming (Languages)
Exposes Services Methods
Granularity Business-Level (Very Coarse Coarser) (also see this) Object/Component-Level (Fine to Coarse Finer)
Interaction Service-Level, Inter-Service via service requests Object/Component-Level, Inter-objects/components via method calls
Interaction Model Document-based or RPC exchanges with services RPC parameters exchanges with objects/components or invocations of polymorphic signatures with document-like self-contained arguments
Programming Languages You choose - OO Languages (see here), Procedural Languages (see here) Lots of choice here too...Java, C++, C#, Smalltalk (see more here)
Scripting: Ruby, Python (see more here)
Standards No Holistic SOA standard. Bits and pieces based on Web Services Standards. You have to figure it out on your own. Plenty of competing and overlapping standards and specifications in Web Services space. (also see this) CORBA (for language-neutral distributed objects), J2EE (for Java based distributed programming), .NET
How to model/design it? Emerging best practices. No standards yet. Lots of patterns and best practices. Excellent tools. Mature knowledge base in industry.
Overall Maturity Low-Varies High
Overall Complexity High - lots to worry about - standards, interoperability, integration, etc. Medium to High depending on what you are building
Development Tools Emerging, Varied. Established Mature IDEs in the market
Hype Factor As high as Mount Everest - but it is not all into thin air As low as Death Valley - but it is not all under the sea

Some comments:
The granularity discussion is usually ambiguous, since there's no clear definition of "coarse" and "fine". Thus, I think simply relying on a comparative description makes more sense (ie: coarser and finer).

This point that a more comparative description is more valuable gets to a defining characteristic of this whole discussion, which I believe is one of scope. As we move from OO and Components to Services (and within services, as we move from smaller to larger EAI-based projects to B2B projects), the scope becomes broader and with this broader context comes changing requirements, less control over messaging endpoints and protocols, less control of security schemes, less control of business document semantics, etc, etc. So as we broaden the scope, there often is a greater value placed on standardization as a means to achieve the interoperability goals for which so many organizations strive.

As for Interaction Model, while aysynchrous, doc-based interactions are becoming more common and are preferred in many scenarios, there continues to be a large number of RPC-style interfaces. For simpler interactions, this is a perfectly reasonable interaction model, and the simpler REST model has a valid place in the mix. Additionally, it's not uncommon for OO and Component signatures to accept self-contained document-like objects.

One more minor point on the "Programming Languages" category. I think it's a bit confusing, because it only applies to one dimension of the discussion. For example, one can do OO modeling/design and then do a C-based implementation. I maintained a codebase that was done this way and I'd say it was a successful project, but maintenance was challenging because the code was not explicit at all (lots of pointers to functions, etc). So, while I would not recommend anyone design in a vacuum, there certainly have been many examples of OO projects using an OO design with a more procedural implementations. (In fact, I've seen quite a few of these in Smalltalk, as well).

Well, that's all I've got for now. I think this is a good starting point for some valuable discussions. What do you think?

Look forward to your commments on this topic.

e mërkurë Gsh 10, 2005

Live 8 Architecture - A few technical details

Untitled Document

As the lead architect for the text messaging infastructure at Live8, I spent lots of time slogging through the mud-filled gardens surrounding the Philadelphia Art Museum, pulling cables and pondering the meaning of life.

Anyway, we were under huge time pressures to build the front-end to drive a 50ft x 5ft screen, as well as to integrate the experience into Live 8, from a technical and branding standpoint.

To the right is a high-level visual that shows how we built a Java-based front end that leverages our existing backend messaging and carrier/aggregation services. The backend architecture is reused based on the work we did for ONE campaign and Bono of U2.

In the picture at the top, you can see Will Smith performing, with the call to action, encouraging people to text message their names to 86483. We scrolled this call to action across the screen every now and then, but mostly we scrolled the names of individuals who had texted in via their phones.

The center picture is from our position under the stage, where we physically integrated with the large screen. At the bottom, is a screen grab from a test run of our gui that drove the screen, retrieving live data arriving from our backend services, originating from the phones.

Matt Stevens and I designed the front end and Matt masterfully coded it. It's a Java-based UI that leverages secure, reusable, network-based services to retrieve the messages streaming in from people's cell phones (they are encouraged to send their full names as the text messag).

A Folsom Imagepro SDI is used to adapt from the Java interface to the jump screen, which is a Lighthouse unit.

More details later, but hope this provides some details of interest.

e mërkurë Kor 06, 2005


Untitled Document

The ONE campaign work that I've been doing has been focused, in the near term, on generating awareness and support for relief in Africa, leading up to the G8 Summit, which is being held on July 6th in Scotland.

In a related project, I led our effort to build a similar infrastructure to power Live8, a day of global concerts focused toward this same end.

You may have seen our technology in action, if you watched any of the Live8 broadcast coverage on July 2nd, 2005 and saw the names of people who had sent text messages scrolling across the top of the stage in Philadelphia on a 5 ft x 50 ft screen.

In the image to the right, you see me filtering names on our position in front of the stage. Our screen is just under the "Philadelphia" banner at the top and between the two "Live8" side banners.

Bon Jovi is performing at the moment and you can see a close up on the screens to the left and right of the Live8 side banners.

The image to the left shows Will Smith's crowd-pleasing performance, with the call to action ("Text Message your name to UNITE [86483]") scrolling by on the screen above. We transitioned the screen several times an hour between (a)the scrolling names of people who texted in via their mobile devices and (b)this call to action.


As a Philly native, Will Smith really connected with the crowd both as one of the many celebrity hosts and as a performer, reuniting with Jazzy Jeff and performing once again as "DJ Jazzy Jeff and the Fresh Prince", which is how these two got started together in the late 1980's.

It took a heroic effort by numerous people to pull this event off and while the MTV broadcast coverage has been widely dismissed as weak, the show appeared to be much appreciated by the audience in attendance, which has been estimated at one million people by the city of Philadelphia.

In the image to the right you see Destiny's Child performing their song "Say My Name", with the band directly referencing the text messaging effort and the names streaming in on the banner above.

With well over 20 million messages reportedly sent in as part of this global day of concerts, this effort was a huge success and should provide added momentum heading into the G8 summit this week.

To try for youself:
Send a text message with your full name to UNITE (86483) and support the ONE Campaign and the Live8 List!

e martë Maj 17, 2005

Do you use Del.icio.us?

Do you use Del.icio.us?

Do you use Del.icio.us? I highly recommend you try it.

Del.icio.us (http://del.icio.us/) is a "social bookmarks" application in the form of a simple website where registered users can attach metadata to any website of interest. It's one of these ideas that many of us have thought about and thankfully there's a fully functional version currently available free of charge at http://del.icio.us/.

The metadata is in the form of simple "tags" or keywords that are associated with a URL. This is similar to any of the many bookmark manager applications that might run locally on your computer, but it's more powerful because you're tagging URLs and storing them in sandbox where anyone can play.

This is great not only because you now have a set of your own bookmarks that is accessible from anywhere on the 'net and from any browser, but also because you're categorizing the bookmarks and able to see how many others have bookmarked the same sites and how they have categorized them.

Additionally, each tag is exposed as an RSS feed so you can subscribe to RSS feeds for things like:

'all sites tagged with the keyword "Java"' or 'all sites tagged with the keyword "Wireless"'.

Furthermore, each user's set of bookmarks is exposed as an RSS feed, so you can subscribe to things like:

'all sites that Danny Malks has tagged' (http://del.icio.us/rss/dmalks/patterns ...or you can use a browser to view all the sites that Danny Malks has tagged - http://del.icio.us/dmalks ...this is the screenshot to the right. I've only started tagging a few things thus far but you can get an idea for how it looks) or you can subscribe to an RSS feed for things like:

 'all sites that Danny Malks has tagged relating to "Patterns"' (http://del.icio.us/rss/dmalks/patterns ... or you can use a browser to view all the sites that Danny Malks has tagged relating to "Patterns" - http://del.icio.us/dmalks/patterns).

Of course you can also subscribe to the RSS feed for a tag, meaning you'll see sites that are tagged \*across\* users that are labeled with the same bit of metadata...so if you and I both tag something as having to do with "patterns", we can view that as an RSS feed (http://del.icio.us/rss/tag/patterns) or via a web page (http://del.icio.us/tag/patterns).

This is an incredibly powerful way to store and share information, since it provides location transparency for bookmarks for an individual user as well as a view into sites in which other are finding value. This is the social part of the term "social bookmarks" that describes Del.icio.us and our ability to use it to discover the sites people care about and the way people are grouping those sites...it is a  truly powerful  phenomenon.

Give it a try and let me know what you think.

e diel Maj 15, 2005

The Ugly One Without the Jewels

The Ugly One Without the Jewels The Ugly One Without the Jewels

Laurie Anderson is a long-time favorite of mine. She has a recording called "The Ugly One With The Jewels And Other Stories", which my brother gave me many years ago. The piece mentioned in the recording's title is unusual (well, all the tracks are actually pretty unique) and wonderful. It describes time she spent with the Tsutsil Indians, the last surviving Mayan tribe in Mexico. She describes the people of this tribe as speaking a "lovely birdlike language".

...well, that's me in the green shirt between Bono and Jack Valenti. Bono is lead singer of  the Irish band U2 and Jack Valenti recently left his position as head of the Motion Picture Assocation of America after 38 years. (Jack Valenti has had quite an interesting history/career and perhaps I'll talk some more about that another time). John Crupi, CTO of Sun's Enterprise Web Services Practice stands on the other side of Bono next to Ingrid Van Den Hoogen,  Vice President, Brand Experience and Community Marketing for Sun. Just to her left...Brad Pitt...
one press conf
Laurie Anderson continues her story: "One day the women decided to braid my hair Tsutsil-style. After they did this I saw my reflection in a puddle. I looked ridiculous but they said, “Before we did this you were ugly, but now maybe you will find a husband."

...hi, it's me again (can't help feeling a bit like the Central Scrutinizer, from Frank Zappa's 'Joe's Garage'...any Zappa fans out there?)...Anyway, in this photo you see all the same folks but next to Brad Pitt add MaryMary, world famous blogger and Marketing wiz for Sun. You might be wondering why I have such a bewildered look on my face...several reasons, in no particular order...number 1: I had gum in my mouth and was trying to move it somewhere in my cheek where it might not look so silly...number 2: I'm standing next to Bono and Jack Valenti...number 3: Several thoughts were suddenly racing through my head, like 'am i supposed to smile? this is a press conference about Extreme Poverty'...then again 'The press conference is about \*ending\* Extreme Poverty, so I guess I can smile...I ended up doing something in between a smile and a yawn, and I think you can actually see my gum as a small white speck near my bottom lip.
one press conf
one press conf
The story continues: In the local language she was called "Lausha", which loosely translated means “the ugly one with the jewels." The "ugly" label is a natural, (though often bewildering to an oustider) result of any group's tendency to define aesthetics in a localized way. But why the reference to the jewels? She reveals this later in the tale: "I didn't find out what this meant until one night, when I was taking my contact lenses out, and since I'd lost the case I was carefully placing them on the sleeping shelf; suddenly I noticed that everyone was staring at me and I realized that none of the Tsutsil had ever seen glasses, much less contacts, and that these were the jewels, the transparent, perfectly round, jewels that I carefully hid on the shelf at night."

Well, I don't wear contact lenses, but felt in just about as unfamiliar territory as Laurie felt in the Mayan village when I was in front of the cameras at this press conference for the ONE Campaign.

For me, a wonderful experience and an opportunity to be around a bunch of truly fine people.

e enjte Maj 12, 2005

Vertigo Air

Vertigo Air
I'm still planning on blogging some technical and non-technical aspects of the U2/ONE Campaign work I've been doing...

In the meantime, here's an interesting logistical tidbit. Ever wonder how U2 gets around during the tour?

Well, when air travel is required you may be surprised to see that they fly "Vertigo Air"!

vertigo air(Image credit: Jeremy Irish)
A modified Airbus 320 piloted by Air Canada, the aircraft has 4 flight crew.

This photo was captured in Arizona during an earlier stop in the tour.

e enjte Pri 21, 2005

RGR - Really Good Reliability

Really Good Reliability - RGR
Discussions on reliable messaging wander off in many directions, and typically include both a technological and political  component. As is typical in the Web Services standards space, it's been less than clear how things will shake out...

When discussing reliable messaging, in order to raise the discussion above the implementation details and standards battles, I often use the term "Really Good Reliability" or "RGR", with a nod to the cleverly-named and commonly used "PGP", or "Pretty Good Privacy".  A discussion of RGR focuses on the architectural and design issues around reliability, versus the specifics of one spec or another, though these obviously provide context for the conversation.

Speaking of specifications, it's great to see that WS-Reliable Messaging (WS-RM) is moving to OASIS for standardization. I've written and presented in the past about some of the work I've done leading projects using ebXML, and while it can be a bit frustrating to see how long open standards take to coalesce (and \*why\* they happen the way they do), I'm pleased to see movement and cross-industry support in this area.

Question now is...who are those pigs and what do they want from eachother ;-)

tin can phone

e martë Pri 19, 2005

Vertigo! Building a solution for the U2 Vertigo Tour and the ONE Campaign

As the lead architect of the text messaging solution utilized during the 2005 U2 Vertigo Tour, I've spent the last 6 weeks designing, building and integrating the numerous pieces of this project.

For starters, let me say that there have been many incredible moments along the way, and I'm proud to be part of such a great team of folks working together on this project.

The goal of this project is to use technology to help enlist more than one million voices for the ONE Campaign, an initiative run by DATA.org, Bono's political organization, to help end extreme poverty. The organization's position is that this is not an issue of charity but rather one of equality and justice.

This all started back in February 2005, when I was initially contacted by Mary, informing me of this project and requesting my participation. I soon learned about the Ted Conference and this year's TED Prize, granting wishes to U2's Bono at TED 2005 in Monterey, CA. Bono

I plan on discussing the project from a technical, business, and activism standpoint in blog posts in the near future.

e enjte Pri 07, 2005

One Campaign Project

n-1 + Soup - 04072005 I'm Currently the technical lead for our solution supporting the ONE Campaign and it's fascinating to consider the implications of the technology solution we've built upon social activism today and in the future.

The following picture was taken at the U2 Vertigo Tour concert in San Diego and shows the screen above the stage where fans are encouraged to add their voice to the ONE Campaign's fight to make poverty history.

Mary is our Marketing lead and is holding this project together overall and always has something interesting to say.

Hi! - My First Day in the Blogosphere

n-1 + Soup - 04072005 Hi,
I'm Danny Malks, Principal Engineer at Sun Microsystems in our Global Enterprise Web Services group.

Thanks to everyone who's thus far visited my empty blog ;-)

Some general areas of technical interest are:
  • Java
  • Software Quality
  • Patterns
  • Software Architecture and Design
  • Messaging systems

For more context on my background, you might want to have a look at the patterns catalog that is part of our Core J2EE Patterns book.



« prill 2014