|
Building Secure and Reliable Network Applications Kenneth P. Birman 1996 | 591 pages ISBN: 137195842 |
|||
![]() |
$58.00 | Hardbound print book | |
User's Guide
This book was written with several types of readers in mind, and consequently it weaves together material that may be of greater interest to one type of reader than that aimed at another type of reader.Practitioners will find that the book has been constructed to be readable more or less sequentially from start to finish. The first part of the book may well be familiar material to many practitioners, but we try to approach this as a perspective of understanding reliability and consistency issues that arise even when using the standard distributed system technologies. We also look at the important roles of performance and modularity in building distributed software that can be relied upon. The second part of the book, which focuses on the Web, is of a similar character. Even if experts in this area may be surprised by some of the subtle reliability and consistency issues associated with the Web, they may find the suggested solutions useful in their work.
The third part of the book looks squarely at reliability technologies. Here, a pragmatically oriented reader may want to skim through Chapters 13 through 16, which cover the details of some fairly complex protocols and programming models. This material is included for thoroughness, and I don't think it is exceptionally hard to understand. However, the developer of a reliable system doesn't necessarily need to know every detail of how the underlying protocols work, or how they are positioned relative to some of the theoretical arguments of the decade. The remainder of the book can be read without having read through these chapters in any great detail. Chapters 17 and 18 look at the use of tools through an approach based on wrappers, and Chapters 19 through 24 look at some related issues concerning topics such as real-time systems, security, persistent data, and system management. The content is practical and the material is intended to be of a hands-on nature. Thus, the book is designed to be read more or less in order by system developers, with the exception of those parts of Chapters 13 through 16 where the going gets a bit heavy.
Where possible, the book includes general background material: There is a section on ATM networks, for example, that could be read independently of the rest of the book, one on CORBA, one on message-oriented middleware, and so forth. As much as practical, I have tried to make these sections freestanding and to index them properly, so that if one were worried about security exposures of the NFS file system, for example, it would be easy to read about that specific topic without reading the entire book as well. Hopefully, practitioners will find this book useful as a general reference for the technologies covered, and not purely for its recommendations in the area of security and reliability.
Next, here are some comments directed toward other researchers and instructors who may read or choose to teach from this book. I based the original outline of this book on a course that I have taught several times at Cornell, to a mixture of fourth-year undergraduates, professional master's degree students, and first-year Ph.D. students. To facilitate the development of course materials, I have placed my slides (created using the Microsoft PowerPoint utility) on Cornell University's public file server, where they can be retrieved using FTP. (Copy the files from ftp.cs.cornell.edu/pub/ken/slides.) The book also includes a set of problems that can be viewed either as thought-provoking exercises for the professional who wishes to test his or her own understanding of the material, or as the basis for possible homework and course projects in a classroom setting.
Any course based on this book should adopt the same practical perspective as the book itself. I suspect that some of my research colleagues will consider the treatment broad but somewhat superficial; this reflects a decision to focus primarily on system issues, rather than on theory or exhaustive detail on any particular topic. In making this decision, compromises had to be accepted: When teaching from this book, it may be necessary to ask the students to read some of the more theoretically rigorous books, which are cited in subsections of interest to the instructor, and to look in greater detail at some of the systems that are mentioned only briefly here. On the positive side, however, there are few, if any, introductory distributed system books that try to provide a genuinely broad perspective on issues in reliability. In my experience, many students are interested in this kind of material today, and, having gained a general exposure to it, would then be motivated to attend a much more theoretical course focused on fundamental issues in distributed systems theory. Thus, while this book may not be sufficient in and of itself for launching a research effort in distributed computing, it could well serve as a foundation for such an activity.
It should also be noted that, in my own experience, the book is too long for a typical 12-week semester. Instructors who elect to teach from it should be selective about the material that will be covered, particularly if they intend to treat Chapters 13 through 17 in any detail. If one has the option of teaching over two semesters, it might make sense to split the course into two parts and to include supplemental material on the Web. I suspect that such a sequence would be very popular given the current interest in network technology. At Cornell, for example, I tend to split this material into a more practical course that I teach in the fall, aiming at our professional master's degree students, followed by a more probing advanced graduate course that I or one of my colleagues teaches in the spring, drawing primarily on the original research papers associated with the topics we cover. This works well for us at Cornell, and the organization and focus of the book match with such a sequence.
A final comment regarding references. To avoid encumbering the discussion with a high density of references, the book cites relevant work the first time a reference to it occurs in the text, or where the discussion needs to point to a specific reference, but may not do so in subsequent references to the same work. These can be found in the Bibliography. References are also collected at the end of each chapter into a short section on related reading. It is hard to do adequate justice to such a large and dynamic area of research with a limited number of citations, but every effort has been made to be fair and complete.
DESCRIPTION
As the "network is the computer" slogan becomes reality so reliability and security of networked applications become more important. Not only are hospitals, air traffic control systems, and telephone networks becoming more networked, but business applications are increasingly based on the open world of the Internet. Stability in the face of minor accidents, software or hardware failures, or outright attack has become vital. This book provides a structured approach to the technologies currently available for building reliable solutions to these problems.
Building Secure and Reliable Network Applications reviews the most important network technologies from a security and reliability perspective and discusses the most effective solutions with an eye towards their application to real-world systems. Any computing professional who works with networked software will find this book valuable in understanding security and reliability vulnerabilities and how to address them.
What's inside:
- Components of a reliable networked computing system
- Reliability of Web and related Internet technologies
- How and why networked systems fail
- Techniques for making systems secure and reliable
- Retrofitting reliability into existing applications
WHAT THE EXPERTS SAY ABOUT THIS BOOK...
"... a must read for anyone wishing to know the state of the art
in reliability ."
--Dalia Malki, AT&T Labs
"... tackles the difficult problem of building reliable distributed
computing systems in a way that not only presents the principles but also
describes proven practical solutions."
--John Warne, BNR Europe
ABOUT THE AUTHOR...
Ken Birman is an authority on reliable and secure distributed computing and the lead developer of the ISIS system used by over 300 companies worldwide. A Professor of Computer Science at Cornell University, he is also Editor-in-Chief of ACM Transactions on Computer Systems.

