21.01.2022 Views

Sommerville-Software-Engineering-10ed

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 17.4 ■ Further Reading reading 517

Key Points

The benefits of distributed systems are that they can be scaled to cope with increasing demand,

can continue to provide user services (even if some parts of the system fail), and they enable

resources to be shared.

Issues to be considered in the design of distributed systems include transparency, openness,

scalability, security, quality of service, and failure management.

Client–server systems are distributed systems in which the system is structured into layers, with

the presentation layer implemented on a client computer. Servers provide data management,

application, and database services.

Client–server systems may have several tiers, with different layers of the system distributed to

different computers.

Architectural patterns for distributed systems include master–slave architectures, two-tier and multitier

client–server architectures, distributed component architectures, and peer-to-peer architectures.

Distributed component systems require middleware to handle component communications and to

allow objects to be added to and removed from the system.

Peer-to-peer architectures are decentralized architectures in which there are no distinguished clients

and servers. Computations can be distributed over many systems in different organizations.

Software as a service is a way of deploying applications as thin client–server systems, where the

client is a web browser.

Further Reading

Peer-to-Peer: Harnessing the Power of Disruptive Technologies. Although this book does not have a

lot of information on p2p architectures, it is an excellent introduction to p2p computing and

discusses the organization and approach used in a number of p2p systems. (A. Oram (ed.), O’Reilly

and Associates Inc., 2001).

“Turning Software into a Service.” A good overview paper that discusses the principles of serviceoriented

computing. Unlike many papers on this topic, it does not conceal these principles behind a

discussion of the standards involved. (M. Turner, D. Budgen, and P. Brereton, IEEE Computer, 36 (10),

October 2003) http://dx.doi.org/10.1109/MC.2003.1236470

Distributed Systems, 5th ed. A comprehensive textbook that discusses all aspects of distributed systems

design and implementation. It includes coverage of peer-to-peer systems and mobile systems.

(G. Coulouris, J. Dollimore, T. Kindberg, and G. Blair. Addison-Wesley, 2011).

Engineering Software as a Service: An Agile Approach Using Cloud Computing. This book accompanies

the authors’ online course on the topic. A good practical book that is aimed at people new to this type

of development. (A. Fox and D. Patterson, Strawberry Canyon LLC, 2014) http://www. saasbook.info

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!