Book contents
- Frontmatter
- Contents
- List of illustrations
- List of tables
- Foreword
- Preface
- 1 Introduction and overview
- 2 Sequential programming with Ada
- 3 Task basics
- 4 Communication and synchronization based on shared objects
- 5 Communication and synchronization based on direct interaction
- 6 Distributed systems with Ada
- 7 Real-time systems and scheduling concepts
- 8 Real-time programming with Ada
- 9 Tools for building and verifying real-time applications
- References
- Index
6 - Distributed systems with Ada
Published online by Cambridge University Press: 01 June 2011
- Frontmatter
- Contents
- List of illustrations
- List of tables
- Foreword
- Preface
- 1 Introduction and overview
- 2 Sequential programming with Ada
- 3 Task basics
- 4 Communication and synchronization based on shared objects
- 5 Communication and synchronization based on direct interaction
- 6 Distributed systems with Ada
- 7 Real-time systems and scheduling concepts
- 8 Real-time programming with Ada
- 9 Tools for building and verifying real-time applications
- References
- Index
Summary
Distribution is an important issue in software engineering, providing scalable systems across networks. Distribution supports a variety of new services from banking systems to social networks to video-on-demand. It is also used in embedded systems like cars and planes built with numerous interconnected computation-intensive blocks. When one processor is not enough, distribution is a natural complement to concurrency. In this chapter, we provide some of the elements to build a distributed system using Ada.
What are distributed systems?
Formally speaking, a distributed system is a federation of interconnected computers that collaborate to fulfill a task. As an example, one can cite web-based applications or constellations of satellites. Distributed systems rely on mechanisms to let information circulate from one node to another. In this section, we review key elements of distributed systems and discuss their strengths and limits.
Why distribute systems?
Before entering into the details of distribution and middleware, it is important to clarify the reasons why someone would want to build a distributed system. Distributing an application across several nodes requires an understanding of (1) the network (topology, technology, etc.), (2) its maintenance lifecycle (potential down time), and (3) its cost (performance and money). In addition, we need to be able to evaluate the value it adds to our application.
From an historic point of view (Vinoski, 2004), distribution was introduced in the early 1960s in large mainframe computer systems used for airline ticketing and banking.
- Type
- Chapter
- Information
- Building Parallel, Embedded, and Real-Time Applications with Ada , pp. 195 - 250Publisher: Cambridge University PressPrint publication year: 2011