Journal 17

The Architecture Journal

October 2008


Dear Architect,

In the early days in this industry, making computers interoperate—while not impossible—was so complex that the effort was only expended in very compelling business cases. Back then, concurrent and distributed programming were specialties in computer science; the programming models were obscure and, from the programmer’s perspective, utterly focused on cross-platform issues of communication, coordination, and fault tolerance.

How things have changed! Do you want to target an undetermined, location-unaware universe of users? Host your application on an Internet accessible Web server. Do you still need to reach some legacy systems whose investment and maturity don’t justify a migration? Check whether WS-* or REST standard stacks, each with its strengths and weaknesses, are suitable to bridge those existing applications. Do you need to tackle intermittent connections and high latency times? Consider deploying a small portion of your application to a desktop.

Today, nanotechnology makes it possible to host a powerful CPU anywhere and the pervasive Internet, together with simple, lightweight programming models, connects it to the world. Isolated single-processor computing is a shrinking universe. Embedded systems, robotics, and parallel and distributed computing are becoming the norm and redefining the edges of user experience.

Marc Mercuri starts off the discussion with an overview of the challenges of distributed systems design. Joshy Joseph and colleagues mine years of field practice for architectural patterns for service design, deployment, consumption, and operation. Gianpaolo Carraro and Eugenio Pace explore the concrete trade-offs of Software-as-a-Service (SaaS)–model distributed cloud computing.

We pause along the way for a conversation with Henrik Frystyk Nielsen from the Microsoft Robotics Group, accompanied by Tandy Trower, general manager of the group.

Back on track, Arvindra Sehmi explains how Distributed Embedded Systems differs from traditional distributed systems in terms of market opportunity, challenges and scenarios. Then David Chou covers Event-Driven Architectures (EDA), an architectural style proposed as the next iteration of Service-Oriented Architecture (SOA).

Abhijit Gadkari addresses responsiveness through caching techniques, touching on the Velocity project—a distributed, in-memory application cache platform for developing scalable, available, and high-performance applications.

Finally, Christian Strömsdörfer and Peter Koen go beyond the limits of virtual, memory-based objects proposing an architectural paradigm for dealing with physical environments in the real world.

I sincerely hope you enjoy this issue. You might have noticed the new look of the magazine. This redesign is part of a wider initiative bringing together all our architecture-related materials under one brand. As always, we welcome your feedback at


Diego Dagum


Articles in This Issue

Considerations for Designing Distributed Systems
A discussion about the distributed-systems momentum, spotlighting its remaining challenges and considerations.

Architectural Patterns for Distributed Computing
Lessons learned from years of field practice on service design, deployment, consumption, and operation.

Head in the Cloud, Feet on the Ground
Eugenio and Gianpaolo cover a deep analysis of the trade-offs of distributed cloud computing.

Architecture Journal Profile: Microsoft Robotics Group
Henrik Frystyk Nielsen and Tandy Trower are working to bring the age of personal robotics to the horizon. Find out what they have to say about their careers and the future of computing.

On Distributed Embedded Systems
An exploration of how DES differs from traditional distributed systems, as well as its market opportunity, challenges, and scenarios.

Using Events in Highly Distributed Architectures
SOA succeeded in getting loose coupling at a technical level; now, let’s go for the same at a business-process level.

Caching in the Distributed Environment
Responsiveness through caching techniques—a collateral aspect of distributed systems with direct impact on user experience.

Distributed Applications in Manufacturing Environments
Beyond the limits of memory-based objects, here is an architecture paradigm to deal with concrete, real-world ones.

Download this issue here

This article was published in the Architecture Journal, a print and online publication produced by Microsoft. For more articles from this publication, please visit the Architecture Journal Web site.