October 2008
Foreword
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 editors@architecturejournal.net.
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.