On the Event Coordination in Multi-Component Systems * Gianluca Moro DEIS - University of Bologna Via Rasi e Spinelli, 176 I-47023 Cesena (FC), Italy gmoro@deis.unibo.it Antonio Natali DEIS - University of Bologna Via Rasi e Spinelli, 176 I-47023 Cesena (FC), Italy anatali@deis.unibo.it ABSTRACT In this paper we highlight some issues on the event con- sistency in multi-component systems and the coordination activities necessary to maintain it. We point out that the generation of events of a component should change with re- spect to its usage context but the burden of the coordination which maintains such a consistency is entrusted to the devel- oper’s cleverness because existing tools do not offer adequate solutions. Hence we present a model of the coordination ac- tivities in multi-component systems in order to clarify the space of the problem and possible points where to inter- vene. Then we propose a conceptual solution based on a set of types of abstract observers through which realizing the above mentioned coordination activities. Keywords component, system, event, observation, coordination 1. INTRODUCTION Well-established tools to build software components based on usual request-reply interactions such as client-server or peer-to-peer systems have been available for some years. Re- mote procedure calls in operating systems, store procedures in DBMS, operation calls in object-oriented programming, are request-reply interactions for which (and on which) have been built higher level tools for the coordination and the co- operation of multi-component systems. For instance client-server computing can exploit the sup- port of transactions as an automatic coordination activity * Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. SEKE ’02, July 15-19, Ischia, Italy. Copyright 2002 ACM 1-58113-556- 4/02/0700 ...$5.00 which guarantees consistency and recoverability in multi- component systems. An application developer does not need to worry about all the coordination activities required by transactions, such as the synchronization and the isolation of concurrent operations, because the transaction theory has engineered good tools for automatic transaction processing in client-server environments. However the game is changing due to the growing need of interoperability between machines, heterogeneous compo- nents, systems and people by means of loosely-coupled inter- action protocols such as the publisher-subscriber, registration- notifications, send-receive etc., and more and more systems incorporate event services or an event management support. Existing technologies of different computer science areas are incorporating supports for such event-based protocols and new frameworks completely devoted to the event-management are now available. In general they are implemented by tak- ing inspiration from well-known patterns and models spread out in several sectors such as objected oriented programming [27], [14], and database management systems [37], [10], [12]. Nevertheless the programming and management of event- based applications and systems still requires more expertise than implementing software only based on request-reply in- teractions, further the use (abuse) of event-driven program- ming may lead to tangled networks of dependencies among components like a sort of spaghetti-programming which can also give raise to several streams of control or processes within the program. Our claim is that event-based applications give raise to new coordination activities which are not captured by current tools because they are instead thought for usual request- reply interactions; consequently the things become com- plex and confused for the developer because the applica- tions must be implemented without a methodology or tools which can help in understanding how to design and how to engineer good event-based software. As we know events play an important role both in monitor- ing and controlling activities. The first kind of events are generated and issued (or manifested) by a source in order to allow someone to observe it, while the second kind of events aims to let the source to be controlled by an external entity. The event coordination issues among source’s com- ponents and external entities change radically with respect - SEKE '02 - 315 -