Event-Based Programming.pdf
(
4709 KB
)
Pobierz
374601192 UNPDF
Event-Based
Programming
Taking Events to the Limit
■■■
Ted Faison
Event-Based Programming: Taking Events to the Limit
Copyright © 2006 by Ted Faison
All rights reserved. No part of this work may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording, or by any information storage or retrieval
system, without the prior written permission of the copyright owner and the publisher.
ISBN-13: 978-1-59059-643-2
ISBN-10: 1-59059-643-9
Printed and bound in the United States of America 9 8 7 6 5 4 3 2 1
Trademarked names may appear in this book. Rather than use a trademark symbol with every occurrence
of a trademarked name, we use the names only in an editorial fashion and to the benefit of the trademark
owner, with no intention of infringement of the trademark.
Lead Editor: Jonathan Hassell
Technical Reviewer: Fernando De Gasperis
Editorial Board: Steve Anglin, Ewan Buckingham, Gary Cornell, Jason Gilmore, Jonathan Gennick,
Jonathan Hassell, James Huddleston, Chris Mills, Matthew Moodie, Dominic Shakeshaft, Jim Sumser,
Keir Thomas, Matt Wade
Project Manager: Beth Christmas
Copy Edit Manager: Nicole LeClerc
Copy Editor: Nicole Abramowitz
Assistant Production Director: Kari Brooks-Copony
Production Editor: Kelly Winquist
Compositor: Susan Glinert
Proofreader: Liz Welch
Indexer: Ted Faison
Artist: Kinetic Publishing Services, LLC
Cover Designer: Kurt Krames
Manufacturing Director: Tom Debolski
Distributed to the book trade worldwide by Springer-Verlag New York, Inc., 233 Spring Street, 6th Floor,
New York, NY 10013. Phone 1-800-SPRINGER, fax 201-348-4505, e-mail
orders-ny@springer-sbm.com
, or
visit
www.springeronline.com
.
For information on translations, please contact Apress directly at 2560 Ninth Street, Suite 219, Berkeley, CA
94710. Phone 510-549-5930, fax 510-549-5939, e-mail
info@apress.com
, or visit
www.apress.com
.
The information in this book is distributed on an “as is” basis, without warranty. Although every precaution
has been taken in the preparation of this work, neither the author(s) nor Apress shall have any liability to
any person or entity with respect to any loss or damage caused or alleged to be caused directly or indirectly
by the information contained in this work.
The source code for this book is available to readers at
www.apress.com
in the Source Code section.
Wisdom is hereditary: You get it from your children.
I dedicate this book to my daughters Giulia, Claudia, and Linda,
who have taught me so much about life.
Contents at a Glance
About the Author
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
About the Technical Reviewer
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Acknowledgments
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
■
CHAPTER 1
Coupling
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
■
CHAPTER 2
Events and Notifications
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
■
CHAPTER 3
Notification Delivery
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
■
CHAPTER 4
Notification Payloads
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
■
CHAPTER 5
A Survey of Commercial Systems
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
■
CHAPTER 6
Diagrams for Event-Based Systems
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
■
CHAPTER 7
Signal Wiring Diagrams
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
■
CHAPTER 8
The Mechanics of Event Firing
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
■
CHAPTER 9
Event-Based Interaction Patterns
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
■
CHAPTER 10
Functional Roles
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
■
■
APPENDIX A
Glossary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
■
APPENDIX B
References
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
■
v
CHAPTER 11
Case Study 1: A System Browser
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
■
CHAPTER 12
Case Study 2: A Pipelined HTTP Service
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
■
CHAPTER 13
Case Study 3: A Distributed Workflow System
. . . . . . . . . . . . . . . . . . . . . . 567
INDEX
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
Contents
About the Author
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
About the Technical Reviewer
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Acknowledgments
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xix
Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
■
CHAPTER 1
Coupling
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Coupling Is Inevitable
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
The Coupling Symbol
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Is Coupling Bad?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
The Nature of Coupling
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Static Coupling
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Dynamic Coupling
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Static vs. Dynamic Coupling
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Coupling Flavors
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Logic Coupling
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Type Coupling
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Signature Coupling
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Coupling Space
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Coupling Charts
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Coupling Diagrams
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Coupling Diagrams As Guides for System Changes
. . . . . . . . . . . . . . . . . . 36
Coupling Transforms
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Logic-Coupling Transforms
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Type-Coupling Transforms
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Common Coupling Scenarios
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Coupling with User-Defined Types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Coupling Due to Interfaces
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Coupling Due to Method Parameters
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Summary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
■
CHAPTER 2
Events and Notifications
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Defining Events and Notifications
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
A Brief History of Events
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Nomenclature and Semantics
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Event Subscription
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
The Subscription Process
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
vii
Plik z chomika:
r41lblast
Inne pliki z tego folderu:
A Tester's Guide to .NET Programming.pdf
(20132 KB)
A Programmer's Introduction to PHP 4.0.pdf
(4311 KB)
Accelerated CSharp 2010.pdf
(7008 KB)
Accelerated CSharp 2008.pdf
(6166 KB)
Adobe Coldfusion Anthology.pdf
(31579 KB)
Inne foldery tego chomika:
Pliki dostępne do 01.06.2025
C#
c# - C sharp
Dokumenty
Galeria
Zgłoś jeśli
naruszono regulamin