Title: Patterns for Efficient, Predictable, Scalable, and Flexible Dispatching Components Authors: Irfan Pyarali (primary contact) irfan@cs.wustl.edu Washington University Campus Box 1045 One Brookings Drive St. Louis, Missouri 63130-4899 Phone: (314) 935-7492 Carlos O'Ryan coryan@uci.edu Douglas C. Schmidt schmidt@uci.edu Abstract: In an increasing number of application domains, dispatching components are responsible for delivering upcalls to one or more application objects when events or requests arrive in a system. Implementing efficient, predictable, and scalable dispatching components is hard and implementing them for multi-threaded systems is even harder. In particular, dispatching components must be prepared to deliver upcalls to multiple objects, to handle recursive requests originated from application-provided upcalls, and often must collaborate with applications to control object life-cycles. In our distributed object computing (DOC) middleware research, we have implemented many dispatching components that apply common solutions repeatedly to solve the challenges outlined above. Moreover, we have discovered that the forces constraining dispatching components often differ slightly, thereby requiring alternative solution strategies. This paper presents two contributions to the design and implementation of efficient, predictable, scalable, and flexible dispatching components. First, it shows how patterns can be applied to capture key design and performance characteristics of proven dispatching components. Second, it presents a set of patterns that describe successful solutions appropriate for key dispatching challenges arising in various real-time DOC middleware and applications.} FTP directory: Pyarali