Monday, January 31, 2005

SOA: What's happening in 2005


2005: A Year of Opportunity and Challenges Awaits the Industry
Joe McKendrick, Wednesday 26 January 2005

WebServices.Org asks a number of industry visionaries to tell us what to expect for 2005. Predictions from Ronan Bradley, Tim Ewald, Dan Foody, Paul Lipton, David S. Linlithcum, Michael Liebow, Eric Newcomer, Bob Brauer, Jack Quinnell, Cory Isaacson.

Check out the full article. Cory Isaacson, CEO of Rogue Wave, sums it up:

In 2005, we'll definitely see huge uptake on Service-Oriented Application development. But, as with any new technology paradigm, early implementers will run into serious difficulties. Companies will experiment with SOA applications, finding that they need to reconsider designs for acceptable results. We see the growth of very large messaging (VLM) – both size and volume of service-based messages – choking application performance, causing some developers to "go back to the drawing board." However, even with these growing pains, expect to see SOA fully entrenched in the industry by year's end.

Saturday, January 22, 2005

Gang of Four: No Immediate Plans for Second Edition of Design Patterns


GoF Member Says Time May Be Right for Design Patterns Second Edition
by Glen Kunene, Senior Editor, DevX, January 18, 2005

The question John Vlissides is most asked about the landmark book Design Patterns: Elements of Reusable Object-Oriented Software that he and his colleagues wrote more than a decade ago is: when is the second edition due out? Readers clamoring for another edition of a book that has become a perennial bestseller for its publisher is not something Vlissides could have anticipated when the book first took shape.

The 1994 publication of Design Patterns was the culmination of the expertise and contributions of Vlissides, Erich Gamma, Richard Helm, and Ralph Johnson, four computer scientists (better known today as the Gang of Four) who Vlissides says brought together the best of both worlds: academic research and real-world experience:
  • Vlissides was a consultant during grad school at Stanford before leaving for IBM Research.
  • Gamma built ET++ (a UI toolkit and programming environment) in the late '80s, and his dissertation described the patterns he discovered.
  • Helm built programming tools at IBM Research (where he and Vlissides later teamed up).
  • Johnson was involved with Smalltalk since graduate school and conducted work on design patterns as a professor at the University of Illinois.
He explained that practitioners had the experience building large systems yet were bound to strict project deadlines, while academics had more time to study large systems but had limited resources. The Gang's ability to draw from the benefits of each helped vet design patterns from theoretical, academic research to practical solutions (because, as Vlissides puts it, "A pattern isn't just an algorithm."). "That's where the real work lies," he explained, "because the average academic has no clue what the practitioner's problems are in the real world."

In his consulting experience during the late '80s and early '90s, Vlissides was confronted with practitioners' problems at every project. He noticed clients using objects to solve the same kinds of problems over and over again. In those early days of object-oriented (OO) programming, most people were uncomfortable with the mechanics of object technology (polymorphism, encapsulation, etc.) and left it to their project leaders to think in those terms. Although smart, Vlissides says these project leaders also were dangerous: "They understood enough to make over-complex object solutions."

Because the Gang had been developing OO systems since the mid-'80s—participating the annual Object-Oriented Programming Systems, Languages, and Applications (OOPSLA) conference throughout the late '80s—they were in a position to formalize the most common object solutions, which could then be given to these project leaders. These so-called design patterns would keep them from reinventing the wheel and overcomplicating their solutions.

They recognized the design pattern's two-pronged benefit as a vehicle for standardization. First, it would enable people to "reuse successful design successfully." Vlissides says, "For a while I thought that was the main benefit."

But there was a second benefit: design patterns engendered a standard vocabulary that enabled architects to discuss design at a higher level. Vlissides now believes this standard vocabulary is the most valuable benefit of design patterns and its main contribution to OO programming. Design patterns, he said, "enable a discourse that wasn't possible previously."

Friday, January 07, 2005

The Free Lunch is Over fo OO Programmers


Herb Sutter is currently a software architect at Microsoft and chair of the ISO C++ standards committee.

The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software by Herb Sutter

The biggest sea change in software development since the OO revolution is knocking at the door, and its name is Concurrency.

Your free lunch will soon be over. What can you do about it? What are you doing about it?

The major processor manufacturers and architectures, from Intel and AMD to Sparc and PowerPC, have run out of room with most of their traditional approaches to boosting CPU performance. Instead of driving clock speeds and straight-line instruction throughput ever higher, they are instead turning en masse to hyperthreading and multicore architectures. Both of these features are already available on chips today; in particular, multicore is available on current PowerPC and Sparc IV processors, and is coming in 2005 from Intel and AMD. Indeed, the big theme of the 2004 In-Stat/MDR Fall Processor Forum was multicore devices, as many companies showed new or updated multicore processors. Looking back, it’s not much of a stretch to call 2004 the year of multicore.

And that puts us at a fundamental turning point in software development, at least for the next few years and for applications targeting general-purpose desktop computers and low-end servers (which happens to account for the vast bulk of the dollar value of software sold today). In this article, I’ll describe the changing face of hardware, why it suddenly does matter to software, and how specifically it matters to you and is going to change the way you will likely be writing software in the future.

Arguably, the free lunch has already been over for a year or two, only we’re just now noticing.

Patterns Everywhere: The Strategy Pattern


I'm getting ready for the Microsoft Business Framework Advisory Council meeting at the beginning of February and the 141 page Microsoft Business Framework Layperson's Specification. After that I have a series of lab exercises to do that create an application using the latest build of the emerging product. Can't talk about the details as they are still confidential. However, support for patterns comes up now and then and I'm forced to review the Gang of Four (GoF) patterns book. Being too lazy to get up and go across the hall to the bookshelf, I "ask the Internet" as Marvin Minsky said at a recent MIT meeting, giving the distinct impression that the Internet was simply a remote extension of his already oversize brain.

AL4, the lightweb web services frontend to Amazon, quickly gives me the GoF book. I click on the Amazon link hoping to be able to "search inside" but alas, real search is still a work in progress an Amazon. However, Google is the answer to virtually all questions and it quickly gives me a flood of links to papers on the Strategy Pattern. Not only that, when I go to Google Scholar, I get 704,000 links to research papers that mention design patterns with the GoF book at the top of the list. And I can immediately access 6254 publications that reference the GoF book. No wonder Google is getting sued for this! It's too useful to be legal.

Suffice it to say patterns are everywhere! Here is a good review of the Strategy Pattern:


Applying Strategy Pattern in C++ Applications
By T. Kulathu Sarma

Software consulting companies do projects for their customers on a "Fixed Price basis" or on a "Time and Material basis". Also, the projects can be either onsite or offsite. Usually, the customers specify how they want the project to be done (Fixed price or Time and Material basis, onsite or offsite). The ultimate aim of the consulting company is to complete the project in the scheduled time, however the Strategy (or the policy) they adapt in doing the project may differ, depending on how they do the project. This is a real life example, where a Strategy Pattern is applied.

Strategy Pattern can also be used in the software design. When it is possible to have several different algorithms for performing a process, each of which is the best solution depending on the situation, then a Strategy Pattern can be used. This article is all about Strategy Pattern. It uses a programming example to explain what, when and why a Strategy Pattern is needed. Benefits and drawbacks of using Strategy Pattern in software design is discussed. Three different approaches for implementing the Pattern in C++ and known uses of Strategy Pattern are also presented in this article.

Design Patterns are meant to provide a common vocabulary for communicating design principles. Strategy Pattern is classified under Behavioral Patterns in the book, Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma et al. (Addison-Wesley, 1995). In this article, I will be using the terms used by 'Gang of Four (GoF)' to explain Strategy Pattern...

So, what is a Strategy Pattern? The Strategy Pattern is a design pattern to encapsulate the variants (algorithms) and swap them strategically to alter system behavior without changing its architecture. According to GoF, Strategy Pattern is intended to define a family of algorithms, encapsulate each one, and make them interchangeable. Strategy lets the algorithm vary independently from clients that use it.

Thursday, January 06, 2005

Make Firefox Scream!


Folks, this is too good to be true. Go to www.moox.ws and download a Firefox browser optimized for your CPU. Read the instructions. You will need to download the CPU tester to verify your CPU type, then download the right version of Firefox.

Following that, try this hack from boingboing's directory of wonderful things:

1.Type "about:config" into the address bar and hit return. Scroll down and look for the following entries:
network.http.pipelining network.http.proxy.pipelining
network.http.pipelining.maxrequests

Normally the browser will make one request to a web page at a time. When you enable pipelining it will make several at once, which really speeds up page loading.

2. Alter the entries as follows:
Set "network.http.pipelining" to "true"
Set "network.http.proxy.pipelining" to "true"
Set "network.http.pipelining.maxrequests" to some number like 30.
This means it will make 30 requests at once.

3. Lastly right-click anywhere and select New-> Integer. Name it "nglayout.initialpaint.delay" and set its value to "0". This value is the amount of time the browser waits before it acts on information it receives.

Screaming performance guaranteed! Send MOOX a few bucks and keep him recompiling ...

Saturday, January 01, 2005

Amazon: Using Web Services to Give Away the Store


You might want to bookmark the amazon4 link below. It is actually quite useful.

Amazon: Giving Away the Store
By Wade Roush, MIT Technology Review, January 2005

Visit Amazon Light at www.kokogiak.com/amazon4, and you'll see a plain search box that allows you to locate any product in Amazon.com's database. Click on an item, and you'll be taken to a page with the usual product image, price information, and customer reviews, and, of course, the familiar "Buy This" button. Amazon Light's pages are deliberately less cluttered than those at Amazon itself, but the family relationship is obvious.

Look closer, however, and you'll spot some distinctly non-Amazonian features. If the item you're viewing is a DVD, for example, there will be a button that lets you see in a single click whether the same disc is for rent at Netflix. If it's a CD, you can check whether Apple's iTunes music store has a downloadable version. And if it's a book, Amazon Light will even tell you whether it's on the shelf at your local public library.

What's going on here? Surely, executives at Seattle-based Amazon would never condone an online service that encourages people to buy things from sites other than Amazon?

Actually, they would. Amazon Light, created by former Amazon programmer Alan Taylor and hosted on his personal website, kokogiak.com, is one of thousands of independent sites incorporating the product data and programming tools that Amazon has been sharing freely since July 16, 2002. That's the day Amazon celebrated its seventh anniversary and unveiled a startling new project, called Amazon Web Services, that promises to change, once again, the way retailers of all stripes think about reaching their customers.