ACTIVE CAPABILITY SUPPORT FOR COOPERATION STRATEGIES IN COOPERATIVE INFORMATION SYSTEMS Mikael Berndtsson Submitted by Mikael Berndtsson to the University of Exeter as a dissertation towards the degree of Doctor of Philosophy in the Faculty of Science. July 1998 I hereby certify that all material in this dissertation which is not my own work has been identified and that no work is included for which a degree has already been conferred on me. Mikael Berndtsson 1 Abstract One important feature for the current and next generation of information systems is the ability to be able to cooperate. Information systems that are able to cooperate are referred to as cooperative information systems. The problem of moving the state of the art from information systems designed as islands of automation to cooperative information systems has primarly been addressed by the distributed artificial intelligence community and the database community. For example, the distributed artificial intelligence community has investigated cooperation strategies such as task sharing and result sharing, whereas the database community has developed techniques for interoperability over heterogenous databases. One characteristic of cooperative information systems is that no individual solution can satisfactorily support all required characteristics of cooperative information systems. This thesis takes the position that a synthesis of results from the distributed artificial intelligence community and the database community is a promising direction for developing cooperative information systems. In this thesis, active capability (as defined within active databases) is considered as an important core technology for cooperative information systems. Active capability is supported by event condition action (ECA) rules with the following semantics: when an event E occurs, evaluate condition C, and if the condition is satisfied, then execute action A. The applicability of using ECA rules has primarly been explored within database systems and has recently initiated ECA related research within other research communities such as real-time and workflow. This thesis focuses on what is required in an interface between information systems when using an active capability approach to supporting the major cooperation strategies as formulated in distributed artificial intelligence. The significance of the 2 work reported in this thesis concerns two major issues. First, advanced types of cooperation strategies such as task sharing and result sharing can now span the domains of database and distributed artificial intelligence architectures. Second, as this work synthesizes and extends results from two different research communities, it provides a good foundation for using active capability as one of the core technologies for cooperative information systems. 3 Acknowledgments Obtaining a PhD degree is like taking a ride on a roller coaster. It starts with a slow ride up a hill. During this time frame the knowledge of the chosen field of study is increased by spending non trivial amounts of hours of reading research reports. Once a satisfactory level of understanding of related work has been achieved, then the roller coaster wagon has reached the top of the hill. At this point a PhD student realizes how little he / she knows about the chosen field of study. The roller coaster wagon starts to move fast down the hill. At the bottom of the hill, the student is having serious problems with envisioning how the chosen project is going to contribute to the research field, since everything seems to have already been done by somebody else. However, by the guidance of experienced supervisors the roller coaster wagon manages to stay on the tracks. The roller coaster wagon makes small jumps and quick turns when small steps of progress is made. Entering and surviving the first loop with the roller coaster wagon has two sides of the coin. First, tremendous excitement is achieved when the student’s first paper is accepted for publication to a workshop. The excitement does not last for long as the roller coaster wagon is suddenly upside down and starts to move down the loop when the next couple of papers are rejected. Reaching the bottom of the loop puts further doubts in the students mind whether the project is ever going to be successfully finished. Trying to stand up in the wagon and get off the roller coaster at this point is not to be recommended. The roller coaster wagon continues its bumby journey over some small hills and does some quick turns when reacting to gained experience and guidance from supervisors. The grand finale of the roller coaster is coming up fast. The roller coaster wagon has picked up great speed and the wagon produces painful noises as it screams 4 through a series of sharp turns and twisted loops. The student is pleased to see that a great portion of the results from the thesis is accepted for publication at some of the major workshops and conferences. The roller coaster makes a final quick turn as the end station of the roller coaster is becoming visible. The student’s first journal paper based on the thesis is accepted for publication. The roller coaster wagon rocks violently as it is approaching the end station with screaming breaks. At this point the student is struggling with revisions of the thesis while keeping an eye on the deadline for submission of the thesis. The roller coaster wagon abruptly stops and the safety bar is released. The roller coaster ride has successfully ended and the thesis has been completed. With the above description in mind I would like to thank the following people that have helped me to stay on track during my roller coaster ride that started in 1993: • My supervisor Dr. Brian Lings, University of Exeter (UK) for his invaluable guidance and supervison of this project from the very first day. • My co-supervisor Professor Sharma Chakravarthy, University of Florida (USA) for sharing his knowledge and introducing me to the overlap area of active databases and cooperative problem solving. • Stig Emanuelsson (Head of computer science department) and Lars-Erik Johansson (Principal) at the University of Skövde for supporting this work. I would also like to take the oppurtunity to thank everybody at the department of computer science at the University of Skövde. 5 • The ACT-NET (a European research network on active database systems) consortium for allowing me to present ideas and results from the thesis in a stimulating environment. • Researchers from all around the world that have taken the time to answer my questions and/or provided me with useful information. You know who you are. Finally, I would like to thank my family and Karin Lundberg for all their support and encouragement during these years. c 1996 Karin Lundberg 6 Contents 1 Introduction 13 1.1 Current Trends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.2 Two Views on Supporting Cooperative Work . . . . . . . . . . . . . . 17 1.3 Need for Combining DAI and DB Research . . . . . . . . . . . . . . . 20 1.4 Thesis Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 1.4.1 Research Question . . . . . . . . . . . . . . . . . . . . . . . . 24 1.4.2 Research Objectives . . . . . . . . . . . . . . . . . . . . . . . 25 1.4.3 Research Methodology . . . . . . . . . . . . . . . . . . . . . . 25 1.5 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 1.6 Outline of Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2 Background and Related Work 29 2.1 Active Database Management Systems . . . . . . . . . . . . . . . . . 29 2.2 Distributed Artificial Intelligence . . . . . . . . . . . . . . . . . . . . 32 2.3 Cooperative Information Systems . . . . . . . . . . . . . . . . . . . . 34 2.4 ADBMS Applicability to CIS . . . . . . . . . . . . . . . . . . . . . . 37 2.4.1 ADBMS and Cooperative Problem Solving . . . . . . . . . . . 38 2.4.2 ADBMS and Workflow Systems . . . . . . . . . . . . . . . . . 40 7 2.4.3 2.5 2.6 ADBMS and Agent Technology . . . . . . . . . . . . . . . . . 41 DAI Applicability to CIS . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.5.1 ARCHON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.5.2 COOL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 The Approach Taken in This Thesis . . . . . . . . . . . . . . . . . . . 48 3 The Chosen Problem 3.1 3.2 3.3 51 Task Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.1.1 Static and Dynamic Allocation of Tasks . . . . . . . . . . . . 51 3.1.2 Protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Result Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.2.1 Sharing of Information . . . . . . . . . . . . . . . . . . . . . . 54 3.2.2 Producers and Consumers of Result Notifications . . . . . . . 55 3.2.3 Multiple Responses from Multiple Agents . . . . . . . . . . . . 57 Research Goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.3.1 Task Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.3.2 Result Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4 Task Shared Cooperation 4.1 4.2 59 Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4.1.1 STEP 1: Model Speech Acts . . . . . . . . . . . . . . . . . . . 60 4.1.2 STEP 2: Extract Intermediate Representation . . . . . . . . . 70 4.1.3 STEP 3: Generate ECA Rules . . . . . . . . . . . . . . . . . . 81 Implementation and Testing . . . . . . . . . . . . . . . . . . . . . . . 85 4.2.1 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.2.2 Application Scenario . . . . . . . . . . . . . . . . . . . . . . . 87 8 4.2.3 Summary of Findings . . . . . . . . . . . . . . . . . . . . . . . 5 Result Shared Cooperation 5.1 5.2 5.3 93 Result Notifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.1.1 Inadequacy of Subscription Mechanisms for ECA Rules . . . . 93 5.1.2 A Refined Subscription Mechanism for ECA Rules . . . . . . . 96 Multiple Result Notifications . . . . . . . . . . . . . . . . . . . . . . . 97 5.2.1 Characteristics of Concurrent Engineering . . . . . . . . . . . 98 5.2.2 The Power of Composite Events . . . . . . . . . . . . . . . . . 98 Pruning Result Notifications and Subscriptions . . . . . . . . . . . . . 102 5.3.1 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 5.3.2 Limitations of current ECA approaches . . . . . . . . . . . . . 105 5.3.3 Context Based Subscriptions . . . . . . . . . . . . . . . . . . . 110 5.3.4 Summary of Findings . . . . . . . . . . . . . . . . . . . . . . . 116 6 Conclusions 6.1 91 118 Desirable Active Capability Properties for Supporting Cooperation Strategies in CIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 6.2 A Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 6.3 Significance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 6.4 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 6.4.1 Efficiency of Logical Composite Events . . . . . . . . . . . . . 123 6.4.2 Tools and Methodologies . . . . . . . . . . . . . . . . . . . . . 127 6.4.3 Rollbacks of Composite Events and Rule Actions . . . . . . . 128 6.4.4 Recovery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 9 List of Tables 1 Mapping state diagrams to event hierarchies. . . . . . . . . . . . . . . 72 2 Mapping state diagrams in Figure 11. . . . . . . . . . . . . . . . . . . 73 3 Mapping state diagrams in Figure 12 . . . . . . . . . . . . . . . . . . 74 4 Mapping state diagram in Figure 13. . . . . . . . . . . . . . . . . . . 76 5 Mapping state diagrams in Figure 14. . . . . . . . . . . . . . . . . . . 79 6 Mapping state diagrams in Figure 15. . . . . . . . . . . . . . . . . . . 80 7 PSAs currently available. . . . . . . . . . . . . . . . . . . . . . . . . . 87 8 Suppliers of components. . . . . . . . . . . . . . . . . . . . . . . . . . 88 9 Non logical event consumption . . . . . . . . . . . . . . . . . . . . . . 106 10 Logical event consumption . . . . . . . . . . . . . . . . . . . . . . . . 113 11 Active (CIS) capability properties supported by current ADBMSs. . . 121 12 Number of condition evaluations, simple example . . . . . . . . . . . 125 13 Number of condition evaluations, advanced example . . . . . . . . . . 127 10 List of Figures 1 Islands of automation . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Previously isolated systems connected by a distributed computing in- 14 frastructure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3 Relation between collaboration and coordination . . . . . . . . . . . . 18 4 Degree of support for cooperation . . . . . . . . . . . . . . . . . . . . 19 5 A generic cooperation interface between ISs . . . . . . . . . . . . . . 23 6 Major influences on CIS . . . . . . . . . . . . . . . . . . . . . . . . . 36 7 Centralized architecture based on an active database system . . . . . 39 8 ARCHON layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 9 Overview of an agent . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 10 Interplay between application, agent and agent acting as manager . . 64 11 Evaluate proposal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 12 Offer potential contracts . . . . . . . . . . . . . . . . . . . . . . . . . 66 13 Collect bids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 14 Distribute awards and cancels to subcontrators . . . . . . . . . . . . . 68 15 Collect results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 16 Agent and Contract classes . . . . . . . . . . . . . . . . . . . . . . . . 71 11 17 Composite event EpotentialContractors : potential contractors have been identified for each contract . . . . . . . . . . . . . . . . . . . . . . . . 75 18 Composite event EallBidsReceived : all bids received . . . . . . . . . . . . 77 19 Composite event EallResultsReceived : all results received . . . . . . . . . 80 20 Invalid completion of composite event EallBidsReceived . . . . . . . . . . 83 21 Architecture of test application . . . . . . . . . . . . . . . . . . . . . 86 22 Agent 4 receives notifications from other agents . . . . . . . . . . . . 99 23 Event time line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 24 Chronicle consumption mode, event context checked by rule condition 106 25 Context specific information is redundantly duplicated in rule conditions108 26 Chronicle consumption mode, event context checked by logical events 27 Context specific information is captured by a logical event . . . . . . 114 28 Redefining logical expression of E1 29 Introducing a new explicit event E3 . . . . . . . . . . . . . . . . . . . 115 30 Non logical composite event (simple scenario) . . . . . . . . . . . . . 124 31 Logical composite event (simple scenario) . . . . . . . . . . . . . . . . 125 32 Non logical composite event (complex scenario) . . . . . . . . . . . . 126 33 Logical composite event (complex scenario) . . . . . . . . . . . . . . . 126 12 112 . . . . . . . . . . . . . . . . . . . 115 Chapter 1 Introduction 1.1 Current Trends Over the last twenty years, information systems (IS) have been developed for supporting users with computer services for manipulating information related to applications such as inventory control, computer integrated manufacturing, stock trading and accounting. The ISs were developed to work as stand-alone units, thereby creating islands of automation. This lead to problems when ISs needed to access information maintained by other ISs, since the ISs were not designed to interact with each other. This has been pointed out in (Brodie and Ceri, 1992): Most organizations have developed many application-specific but independent ISs only to find out that almost all ISs require access to other ISs, just as people in organizations need to interact. As an example, consider an application for computer integrated manufacturing (Figure 1). In such an application, information about raw material, machines, operators, schedule, bill of materials, inventory and operations such as drilling are likely 13 Chapter 1. Introduction 14 Shop floor control (monitor) Release order manufacturing users users users Bill of material (file system) users Inventory (relational database) Figure 1: Islands of automation Chapter 1. Introduction 15 to be stored in separate ISs. In order to manufacture a new product, information from all of these ISs needs to be accessed. If these ISs are built as islands of automation then human involvement is required in order to manually access and retrieve the information from the ISs. This can quickly become a time consuming and complex activity. As an alternative approach, ISs could interact and retrieve the required information with no (or little) human involvement. More recently, successful attempts have been made to move towards greater integration. Typically, this has been done for a specific type of IS, for example interaction among a set of (interoperable/federated) databases. Furthermore, a distributed computing infrastructure such as CORBA (Object Management Group, 1995) or email is assumed to be the backbone for most applications. Release order manufacturing Shop floor control (monitor) Distributed computing infrastructure Bill of material (file system) Inventory users (relational database) Figure 2: Previously isolated systems connected by a distributed computing infrastructure Chapter 1. Introduction 16 However, simply connecting previously isolated systems (Figure 2) will not be sufficient to support the envisioned requirements (or characteristics) of the next generation of IS. These types of system not only need to establish links between themselves (communication channels), but they also need to support more advanced forms of interaction. That is, they need to interact beyond the level of sending messages. Importantly, they need to be able to cooperate, since an individual IS cannot solve a problem on its own. In general these systems need to encompass (Chakravarthy et al., 1993; Berndtsson et al., 1996a): • distributed, heterogeneous environments, since ISs are most likely to be distributed and to be working with heterogeneous environments/tools. For example, inventory and bill of materials in our application scenario may be distributed (different departments) and supported by a relational database system and file system, respectively (Figure 2). • access to current and relevant information, since ISs need to be able to manipulate shared data and monitor evolving states. For example, multiple users may want to access the inventory application and monitor its evolving state (Figure 2). • coordinated behaviour, since ISs need to coordinate their activities with other ISs, and react to other ISs’ activities. For example, an IS that maintains the release of manufacturing orders to the shop floor needs to coordinate its activities with other ISs such as the IS responsible for the inventory application. That is, a manufacturing process should not start unless the required components are available in the inventory (Figure 2). Chapter 1. Introduction 17 • collaborative behaviour, since each interaction between ISs will have a special semantic content and intention. For example, an IS that monitors break-downs in the manufacturing process may have to interact and reason together with other ISs in order to decide how to re-route an order to avoid a broken machine. Importantly, an IS need to be aware of the semantic content and the intention of the access from other ISs (Figure 2). The first characteristic has primarily been addressed by researchers in database systems (DB), distributed artificial intelligence (DAI) and distributed computing infrastructures. The second characteristic has been addressed by the database community. The third and fourth characteristics have primarily been addressed by the DAI community. This thesis follows the approach taken in (Chakravarthy et al., 1993) where coordinated behaviour and collaborative behaviour are considered as the key aspects that distinguish traditional (non-cooperative) ISs from ISs that need to be able to cooperate, Cooperative Information Systems (CIS). 1.2 Two Views on Supporting Cooperative Work Two related views on supporting cooperative work have been taken by the database community and the DAI community, where the former can be classified as a bottomup approach and the latter as a top-down approach. In general, DAI approaches focus on solving the most general problems of cooperation, whereas work done within the database community focuses on very restricted forms of cooperation. In between these two extremes, there are several approaches which either incrementally add support for collaboration and coordination to a database environment, or focus on less Chapter 1. Introduction 18 sophisticated functionality in terms of collaboration and coordination. Collaboration can be seen as the act of working together in order to produce results and solutions. According to Chakravarthy et. al (Chakravarthy et al., 1993) collaboration includes a planning phase and encompasses issues such as reasoning among group members about which problem solving strategy to choose. A decision by group members on a problem solving strategy to be used will influence the choice of an appropriate coordination process (see Figure 3). This has also been identified by Malone and Crowston. They note that (Malone and Crowston, 1994): ..alternative ways of making group decisions give rise to alternative coordination processes and in this context they define coordination as the act of: ..managing dependencies between activities. Collaboration Coordination Figure 3: Relation between collaboration and coordination I next elaborate on the approaches taken in the database community and DAI community for supporting cooperation and the different emphases on collaboration Chapter 1. Introduction Centralized Databases Low Distributed Databases 19 Federated Databases Workflow Distributed AI Cooperation (collaboration and coordination) High Figure 4: Degree of support for cooperation and coordination in each community, (Chakravarthy et al., 1993; Berndtsson et al., 1996b). In doing so, I present a figure (Figure 4) which has centralized databases as the starting point of the scale, since they have no support for cooperation. Distributed databases add functionality for supporting simpler forms of coordination. There is very little (or no) support for collaboration in distributed databases. Cooperative functionality is provided in terms of processing queries and executing transactions in a distributed environment. Given that the functionality is provided within a database context, special emphasis is placed on guaranteeing properties such as atomicity and durability. Typically, distributed databases assume a homogeneous network of ISs where coordination and collaboration details are known a priori. In contrast to distributed databases, federated databases assume a heterogeneous network of ISs which are partly autonomous. As a consequence of the heterogeneous environment, IS modeling needs to be more detailed and flexible. This information is usually maintained by a global data model (Türker and Conrad, 1996). One of the key issues within federated databases is to ensure global consistency of federated data. Workflow systems offer little support for collaboration, but the support for coordination is substantially different from the previous approaches. In contrast to the previous database approaches coordination is unforced (not hard coded), cognitive Chapter 1. Introduction 20 oriented and knowledge intensive. Approaches in DAI encompass approaches from distributed cooperative problem solving and multi-agent systems. Both approaches have sophisticated support for cooperation strategies such as task sharing and result sharing. In addition, there is an assumption that in multi-agent systems ISs (or agents) are autonomous and need to reason about the problem solving process. 1.3 Need for Combining DAI and DB Research Historically, the DAI and DB communities have had little in the way of an exchange of ideas, since they try to solve very different types of problems. However, the emerging CIS research domain represents one area of common ground where the DAI and DB communities are likely to interact with each other. For some applications such as electronic commerce, office environments, and computer integrated manufacturing, a CIS solution may need to combine and integrate DB techniques for accessing and manipulating shared data with DAI techniques for supporting advanced types of cooperative processing. With regard to computer integrated manufacturing, approaches have been taken both within DAI (Balasubramanian et al., 1996) and DB (Schreier, 1993). For example, assume a CIS such as the computer integrated manufacturing application introduced earlier that requires both DB and DAI techniques. A designer of such a system is faced with several problems. First, neither a DB nor a DAI approach can support all required characteristics. For example, a DB solution would have satisfactory support with respect to access and manipulation of shared data, but it would have little (or no) support for cooperation. The degree of cooperative behaviour in DB approaches is limited to: Chapter 1. Introduction 21 i) distributed query processing, and ii) forced (or hard coded) cooperation. Furthermore, most of the DB approaches lack an underlying formalism for specifying cooperation. A DAI solution would have satisfactory support with respect to cooperation. Typically, DAI based approaches focus on supporting cooperation strategies (e.g. task sharing) among a set of agents. Currently, this interaction is governed by conditionaction rules. However, a DAI solution will possibly not have satisfactory mechanisms for manipulating shared (persistent) data, since it lacks mechanisms similar to those of database transactions. As neither a DB nor a DAI solution can satisfactory support all required characteristics, a promising direction for research is a synthesis of research results from both the DB and DAI communities. This may also be more beneficial for the overall problem (e.g. computer integrated manufacturing application) in the long-term. The question is then how this combination or synthesis of DB and DAI results should take place? One answer to the above question is initiated in section 1.1 and may be found further elaborated in the papers of Michael L. Brodie (Brodie et al., 1988; Brodie, 1988) from which the following four levels of interaction between ISs (including DAI and DB components) can be identified: 1. ISs are disjoint, i.e. they do not communicate with each other and will thereby create islands of automation (Figure 1). 2. ISs are connected by a distributed computing infrastructure which will allow two or more ISs to exchange messages (Figure 2). Chapter 1. Introduction 22 3. General interoperability (cooperation) mechanisms are encapsulated in, for example, cooperation protocols and provided by a resource agent (or global planner). This architecture can become a potential bottleneck in that all cooperation is routed through a central resource agent. 4. Each IS will have its own resource agent. Each IS can then contact its own resource agent when cooperation is needed with other ISs in order to solve a problem. The resource agent can be viewed as an interface (consisting of generic cooperation services) between ISs that need to cooperate (Figure 5). The idea of encapsulating generic interoperability (cooperation) mechanisms has also been identified by DAI projects such as ARCHON (Jennings, 1994a) and COOL (Barbuceanu and Fox, 1996) in which shared conventions make it possible for multiple agents to coordinate their activities. Typically, these are enforced by cooperation protocols. This thesis will expand upon using active capability, in the form of event-conditionaction (ECA) rules as defined within active databases, for a cooperation interface (see Figure 5) for supporting CIS. The importance of active capability (active databases) as one of the enabling technologies for CIS has been expressed within the community (see for example The International Journal of Cooperative Information Systems (IJCIS, 1996) and a Panel session held at the Second IFCIS International Conference on Cooperative Information Systems (CoopIS-97) (Chakravarthy, 1997)). Thus, there is evidence that a detailed exploration of an active capability (and active database) approach to CIS is of significance to the CIS research community. Chapter 1. Introduction 23 AI application Active database 111111 000000 000000 111111 manufacturing 11111111 00000000 00000000 11111111 Distributed computing infrastructure 11111 00000 00000 11111 00000 11111 File system 11 00 00 11 111111111 000000000 000000000 111111111 000000000 111111111 users Relational database = Generic cooperation interface Figure 5: A generic cooperation interface between ISs Chapter 1. Introduction 1.4 Thesis Statement 1.4.1 Research Question 24 In this thesis I take an active capability approach to providing a standardized and extensible interface between ISs in CIS to support cooperation among ISs and combine research results from both the DAI and DB communities in a synergistic manner. An important question is then, what type of interface can we define that will provide a standardized and extensible coupling between the ISs in CIS and at the same time assist research in both the DB and DAI communities to proceed in a synergistic manner? The advantages of such an interface would be: • clear separation of concerns for DAI and DB; once the interface has been defined, then it can assist research in both communities to proceed in a synergistic manner. • extensible; for example, new types of cooperation protocols can be introduced for a cooperative agent. These cooperation protocols can then, by utilizing the defined interface, be mapped down to a database management system for efficient implementation. • cooperative strategies; advanced types of cooperation strategies such as task sharing and result sharing can span the domains of DB and DAI architectures. • recovery and persistence properties; recovering from failures and system crashes during cooperative work can be enforced by techniques from database management systems. Chapter 1. Introduction 25 • efficient; cooperation based on event-condition-action rules facilitates optimization issues, since the event part of a rule is used as a filter to reduce computation. 1.4.2 Research Objectives This thesis focuses on what is required in an interface between ISs when using an active capability approach to supporting the major cooperation strategies as formulated in DAI, i.e. task sharing and result sharing. In particular, • what are the desirable active capability properties when supporting task sharing and how can task sharing be mapped down to ECA rules in a systematic manner? • what are the desirable active capability properties when supporting result sharing? 1.4.3 Research Methodology Concerning the first objective, before one can identify the desirable active capability properties when supporting task sharing, a method is needed that can map the semantics of task sharing down to ECA rules in a systematic manner. In order to address this I have: • studied the literature on active databases, DAI, and CIS in order to find a method that can map a task sharing protocol to ECA rules. No such method was found in the studied literature. This motivated the development of a method for mapping a task sharing protocol down to ECA rules. Chapter 1. Introduction 26 • developed a generic task sharing protocol in order to test and validate the method for mapping a task sharing protocol down to ECA rules. A generic task sharing protocol was developed, since such a protocol was not found in the literature. The protocol is based upon a set of representative speech acts from previous classifications of speech acts and existing task sharing protocols. • specified and co-supervised a M.Sc. project (Hagen, 1996) that had primarily two objectives. First, to test and validate the mapping method in detail and practice. Second, to develop a proof-of-principle implementation of an ECA based task sharing protocol in an active object-oriented database system, ACOOD. Concerning the second objective, I have: • studied the literature on active databases, DAI, and CIS in order to identify similarities and differences on subscription mechanisms. A refined ECA rule subscription was developed, in order to support simpler forms of result sharing. • performed a case study on the applicability of using composite events for specifying when to take responsive action to multiple result notifications. • performed case studies on supporting context based subscriptions using active capabilities. The case studies identified limitations of using active capabilities when supporting context based subscriptions. To address these limitations, the concept of logical events for ECA rules was developed. • specified and co-supervised a M.Sc. project (Schwinger, 1995) that elaborated on introducing logical events for ECA rules in an active object-oriented database system, ACOOD. Chapter 1. Introduction 1.5 27 Contributions This thesis analyzes active capability as defined in active databases and cooperation strategies as formulated in DAI, and synthesizes an approach to interaction in CIS that is novel and exhibits several advantages over previously proposed approaches. In this thesis I have: • defined the interface between ISs with regard to supporting advanced types of cooperation strategies for CIS. The interface is based on a synthesis of research results from both the active database community (active capability) and the DAI community (speech acts, cooperation strategies), (Berndtsson et al., 1996a; Berndtsson et al., 1997b; Berndtsson et al., 1997c; Berndtsson et al., 1997a). • presented details of a novel approach for supporting task sharing, a key cooperation strategy within CIS (and DAI), using active capability. In particular, I have introduced a method for mapping task shared protocols expressed in high level speech acts to ECA rules (Berndtsson et al., 1997c; Berndtsson et al., 1997a). • shown that if ECA rules are to support task sharing protocols, then support for composite events and composite event restrictions are of crucial importance (Berndtsson et al., 1997c; Berndtsson et al., 1997a). • shown how active capability can be applied to result sharing. In particular I have proposed a refined ECA subscription mechanism for supporting result sharing in active databases (Berndtsson et al., 1997b). • demonstrated the applicability of using composite events as defined within active databases for supporting responses from multiple agents in the context of Chapter 1. Introduction 28 result sharing (Berndtsson et al., 1997b). • shown that current active database approaches cannot support context based subscriptions as described in result shared cooperation. It is shown that current active database solutions are inappropriate with respect to event consumption, maintenance, and efficiency for supporting context based subscriptions. To overcome the aforementioned limitations a solution based on logical events in combination with ECA rules has been proposed. • made a clear separation of the DAI notions result sharing and information sharing when considering database systems: i) sharing of committed information (result sharing), ii) sharing of uncommitted information (information sharing), and iii) sharing of meta-data (Berndtsson et al., 1997b). 1.6 Outline of Thesis The remainder of this thesis is organized as follows: • Chapter 2 addresses related work within the database area and DAI. • Chapter 3 elaborates on the research literature and positions my work with respect to related research activities. • Chapter 4 demonstrates how the core functionality of task sharing can be supported using the ECA rule paradigm. • Chapter 5 demonstrates how result sharing can be supported using the ECA rule paradigm. • Conclusions and directions for future work are presented in chapter 6. Chapter 2 Background and Related Work This chapter gives the reader an introduction to related issues in active database management systems (including active capability), and distributed artificial intelligence, and introduces current thinking on cooperative information systems. It describes previous approaches to solving problems in cooperative information systems taken by the active database community and the distributed artificial intelligence community. The chapter concludes with a brief statement on how this work improves previously taken approaches. 2.1 Active Database Management Systems Briefly, active capability is supported through the ECA (event-condition-action) rule abstraction as suggested in the HiPAC project (Chakravarthy et al., 1989). Occurrence of a specified type of event (e.g., a database transition, a time event, or an external signal) triggers the evaluation of a condition and if the condition evaluates to true, the action is carried out. Several other aspects of the ECA rule abstraction, such as composite events, event consumption modes, coupling modes, and conflict 29 Chapter 2. Background and Related Work 30 resolution have been investigated (ACT-NET Consortium, 1996). An active database management system (ADBMS) can automatically react to events (that may cause a change of state) in a timely and efficient manner. This is in contrast to traditional database systems which are passive in their behaviour, which means that, in order to detect events applications have to either: i) poll the database, or ii) incorporate embedded instructions. The first approach implies that database queries must be run exactly when an event occurs. The frequency of polling can be increased in order to detect such an event, but if the polling is too frequent, then the database is overloaded with queries that most of the time will fail. On the other hand if the frequency is too low, the event will be missed. The second approach implies that every application that updates the database needs to be augmented with condition checks in order to detect events. For example, an application may be extended with code to detect whether the quantity of certain items has fallen below a given level. From a software engineering point of view this approach is inappropriate, since a change in a condition specification implies that every application that uses the modified condition needs to be updated. Neither of the two previous approaches can satisfactorily support reactive behaviour in a database context (Chakravarthy et al., 1989). The use of ECA rules rather than standard production rules (condition-action rules) is important for the applications under consideration. A clear distinction between events and conditions is presented in (Dayal, 1995): • Different roles: the event specifies when to check, whereas a condition specifies what to check. • External events: it is easier to model reactions to external signals if events are explicit. Chapter 2. Background and Related Work 31 • Finer control for database state transitions: asymmetric responses to database state transitions are not easy to model without explicit events. • Execution semantics: condition evaluation can, for example, be deferred to later point in time, end of transaction. • Optimization: evaluate conditions when a specific event occurs, not always. Event types can be classified into: i) primitive events and ii) composite events. Primitive events refer to elementary occurrences which are predefined in the system, such as transaction events, method events, and database events. A composite event is a set of primitive events or composite events related by a set of event operators such as disjunction, conjunction, and sequence. Event occurrences are instances of an event type. Composite event restrictions are used to restrict event consumption for composite events. Typically, composite event restrictions are enforced by using the same identifier restriction as suggested in the SAMOS prototype (Gatziu, 1994). For example, the component events of a composite event may need to have been raised within the same transaction or by the same user. Typically, active database systems are based on event algebras which do not allow conditions. One exception is the event algebra for the active database system Ode (Gehani et al., 1992). Ode introduces logical events, where the condition part of the ECA model is folded into the event part. The condition can be over the event parameters and the state of any objects in the database system. Simple forms of active rules (triggers, ECA rules, alerters etc) are currently provided by most commercial relational database systems. The applicability of active capability has been extensively explored in the context Chapter 2. Background and Related Work 32 of database systems and its potential and importance for novel applications such as workflow (Bussler and Jablonski, 1994), cooperative problem solving (Chakravarthy et al., 1993; Berndtsson et al., 1996a), and real-time (Berndtsson and Hansson, 1996) is becoming clearer. The interested reader is referred to the following sources for more information on active database management systems; the rules in database workshops (RIDS) (Paton and Williams, 1993; Sellis, 1995; Geppert and Berndtsson, 1997), RIDE-ADS (Widom and Chakravarthy, 1994), active database manifesto (ACT-NET Consortium, 1996), special issues of journals (Chakravarthy, 1992; Chakravarthy and Widom, 1996) and text books (Widom and Ceri, 1995; Paton, 1998). 2.2 Distributed Artificial Intelligence Distributed Artificial Intelligence (DAI) is a subfield of artificial intelligence which is concerned with knowledge models for cooperation and reasoning in societies of entities. These entities are usually referred to as agents in the literature. A general definition of DAI is presented in (Moulin and Chaib-Draa, 1996): ..., DAI is concerned with situations in which several systems interact in order to solve a common problem... At the heart of cooperative behaviour is effective interactions among a set of agents according to a cooperation strategy. Agents can cooperate according to two types of cooperation strategies (Smith and Davis, 1981; Hall, 1996): task shared cooperation and result shared cooperation. Briefly, task-shared cooperation follows the following procedure: i) decompose a problem into subproblems, ii) solve the subproblems, and iii) integrate the results obtained for the subproblems. Result-shared cooperation Chapter 2. Background and Related Work 33 implies that agents assist each other by sharing partial results of the same overall problem. In contrast to task sharing, an explicit hierarchy of task / subtasks does not exist within result sharing. Each agent has a structure and behaviour which needs to be captured. Aspects that need to be identified for each agent are (Jennings, 1994b): • State knowledge; the status of the activities carried out by the agent. • Capability knowledge; descriptions of tasks and actions that can be executed by an agent. • Intentional knowledge; high-level description of the long term objectives of an agent. • Evaluative knowledge; information about the time required to complete tasks etc. • Domain knowledge; facts and relationships about the environment in which the agent is operating. DAI is divided into two research areas: distributed cooperative problem solving and multiagent systems. In distributed cooperative problem solving the emphasis is on the problem itself and in multiagent systems the emphasis is on the agent (Chaibdraa, 1995) . Typically, in distributed cooperative problem solving a three step procedure is used as follows: 1. Negotiation takes place as an initial phase to allocate tasks to agents. This is usually specified by a high-level communication language such as the Contract Chapter 2. Background and Related Work 34 Net Protocol (Smith, 1980). This phase can be quite complex if one assumes tasks whose decomposition first needs to be negotiated among agents whose capabilities are unknown to each other. Not knowing whether a solution exists adds another level of complexity. There must follow a distribution/allocation of tasks based on the negotiation (task shared cooperation). 2. Execution refers to the actual problem solving process, in which agents may share partial results (result shared cooperation). 3. Result reporting is a feedback phase where the success or failure of a problem solving process is managed. This may also include selection of results/partial solutions by consensus or other means if more than one agent is solving the same problem/subproblem (task and result shared cooperation). According Chaib-draa (Chaib-draa, 1995) multi-agent systems are concerned with coordinating intelligent behaviour (e.g. skill, plans, knowledge) among a heterogeneous network of agents. The agents are assumed to be autonomous. Furthermore, multi-agent systems need to be able to reason about the coordination process. The interested reader can find more information on DAI in (Bond and Gasser, 1988b; O’Hare and Jennings, 1996). 2.3 Cooperative Information Systems Cooperative Information Systems is a recently established research community: the international foundation for cooperative information systems (IFCIS) was founded in 1996. This thesis follows the definition of cooperative information system as described by the The International Journal of Cooperative Information Systems (IJCIS, 1996) in its Aims & Scope: Chapter 2. Background and Related Work 35 The paradigm for the next generation of information systems (ISs) will involve large numbers of ISs distributed over large, complex computer / communication networks. Such ISs will manage or have access to large amounts of information and computing services and will interoperate as required. These support individual or collaborative human work. Communication among component systems will be done using protocols that range from conventional ones to those based on distributed AI. We call such next generation ISs Cooperative Information Systems (CIS). A similar and perhaps more concrete definition of what constitutes a cooperative information system has been given by Brodie and Ceri (Brodie and Ceri, 1992). We consider two or more ISs that execute joint tasks to form a larger IS, called a Cooperative IS. We call an individual IS within a cooperative IS, a component IS. In this thesis, the terms CIS and component IS will be used as defined in the above two definitions. From the above definitions we can infer the characteristics of CIS. These were also described in 1.1: • distributed and heterogeneous environments • access to current and relevant information • coordinated behaviour • collaborative behaviour Supporting the above characteristics implies that CIS needs to borrow and synthesize research results from several different research areas such as: Chapter 2. Background and Related Work 36 • DAI (e.g. multiagent systems and distributed cooperative problem solving). • database systems (e.g. distributed databases, heterogenoues databases and active databases). • process modelling (e.g. workflow systems and communication protocols). The synthesized research results should facilitate the development of an architecture which will then allow a component IS (e.g. a database extended with a cooperative interface) to access and cooperate with other component ISs. DAI CPS / MAS Cooperation stragetgies -task sharing -result sharing Condition-Action rules C I S DB Distributed, federated, multi DB Transactions Event-Condition-Action rules Figure 6: Major influences on CIS Chapter 2. Background and Related Work 37 As CIS research is still in its early stages, the approaches taken so far are still heavily influenced by either DAI or DB, as shown in Figure 6. Approaches in the database community to CIS are currently influenced by research results from federated databases, multi-databases, distributed databases and active databases. For example, advanced forms of transaction models, query processing, and interoperability of heterogeneous information sources have influenced recent approaches, see for example (Kandzia and Klusch, 1997). The interested reader is referred to the following sources for more information on cooperative information systems; the International Journal of Cooperative Information Systems (IJCIS, 1996) and the conference series on Cooperative Information Systems (CoopIS) (Brodie et al., 1994; CoopIS-95, 1995; CoopIS-96, 1996; CoopIS-97, 1997). 2.4 ADBMS Applicability to CIS The forthcoming sections will briefly describe three categories of previous ADBMS based approaches of relevance to CIS and this thesis: • ADBMS and cooperative problem solving, e.g., (Chakravarthy et al., 1993; Karlapalem et al., 1995). • ADBMS and advanced workflow systems, e.g., (Bussler and Jablonski, 1994; Geppert et al., 1995; Lockemann and Walter, 1995). • ADBMS and agent technology, e.g., (Bailey et al., 1995; Akker and Siebes, 1997). Chapter 2. Background and Related Work 2.4.1 38 ADBMS and Cooperative Problem Solving An active database approach to cooperative problem solving is presented in (Chakravarthy et al., 1993). Two approaches are presented: i) a centralized approach, and ii) a distributed approach. The suggested centralized approach has been refined and realized in the CapBasED-AMS project (Karlapalem et al., 1995). The centralized (near-term) approach is based on a central node in the cooperative problem solving system, which acts as a centralized persistent blackboard (active database) for the problem solving agents (PSA). The central node has three major components: a problem manager, a capability manager and an execution manager, Figure 7. The problem manager is responsible for decomposing a posed problem into subproblems. Further, for each subproblem it needs to: identify appropriate problem solving agents, generate an intermediate representation (state machine, Petri net etc.), generate a schema for maintaining run time data and generate a set of ECA rules for coordination and scheduling. The capability manager is responsible for maintaining in a database the capabilities of the problem solving agents involved. Thus, the search for appropriate problem solving agents can be achieved by posing a database query to the capability database. The execution manager is responsible for coordinating and monitoring the execution of subproblems. The approach taken requires that each node is capable of communicating with the centralized persistent blackboard. Thus, nodes post their solutions to subproblems etc. by sending them to the central node. The distributed (long-term) approach implies that each problem solving agent is either enhanced with a capability manager and execution manager (problem manager is considered as optional) or that the agent is tightly coupled with a capability Chapter 2. Background and Related Work PSA-1 PSA-2 39 PSA-n Network Problem Manager Active Database Execution Manager Capability Manager Figure 7: Centralized architecture based on an active database system Chapter 2. Background and Related Work 40 manager and an execution manager. Two application scenarios are outlined: a process control system and an office information system. Although the cooperation strategy in this work is influenced by task sharing, the interaction among agents is based upon forced cooperation. That is, most of the interactions in the outlined examples are predetermined. 2.4.2 ADBMS and Workflow Systems The approach taken in (Bussler and Jablonski, 1994) focuses on using ECA rules for implementing agent coordination in workflow management systems. Agent coordination is divided into agent notification about work to do, and agent synchronization. Synchronization policy (in the form of an ECA rule) is introduced in order to prevent agents from executing tasks they have been notified about but not selected for. An example of such a synchronization policy rule is given below (Bussler and Jablonski, 1994): on start if eligible-agent() AND NOT operation-started() AND NOT operation-finished() AND NOT operation-reset() AND NOT operation-aborted() do add-agent-executing() forbid-others-to-start() update-worklists() This rule can be interpreted as follows. When an agent tries to start the operation an event start is raised, which will trigger the rule. It has a complex rule condition, Chapter 2. Background and Related Work 41 which ensures that the operation is not started, finished, reset or aborted. If the condition is satisfied then the first agent that applied for executing the operation will be awarded the operation; the other agents that have received the same notification about work to do need to be informed that they are not allowed to start the operation, i.e. update worklists. Recently, other ADBMS based approaches targeting workflow systems have appeared in the literature. A broker/services model for workflow systems using an ADBMS is suggested in (Geppert et al., 1995). The approach focuses on supporting processing entities as defined in workflow systems for cooperative process-oriented environments. Cooperation and interaction among the processing entities are achieved by using the predefined interaction operations request and reply. A richer set of interaction operations for distributed workflow systems has been suggested in (Lockemann and Walter, 1995). This work introduces the concept of an alliance which can be viewed as a cooperation protocol between cooperating objects (or entities). The suggested cooperation protocol encompasses complexity similar to previously suggested coordination DAI based protocols, e.g. COOL (Barbuceanu and Fox, 1996). 2.4.3 ADBMS and Agent Technology A comparison between the characteristics of ADBMS and agent systems was reported in (Bailey et al., 1995). It is shown that although they are developed in different fields of computer science, they have much in common. Hence, researchers in both communities can benefit from the exchange of ideas and techniques developed. In particular, • Language syntax and semantics are not standardized in the two research fields. Chapter 2. Background and Related Work 42 Thus, concepts such as powerful event languages can be adopted by the agent community. Similarly, ADBMS can benefit from incorporating more reasoning about which action(s) should be executed. • Agent systems will need to adopt database features such as recovery techniques, rollbacks, and history. This is especially important for real world agent systems that need to be able to recover from failures etc. The work reported in (Akker and Siebes, 1997) contrasts ADBMS with respect to the notions of weak and strong agency. It is demonstrated that ADBMS already support the notion of weak agency (autonomy, social ability, reactivity, pro-activeness), whereas no aspect of strong agency (knowledge, belief, intention, obligation) is yet supported. Although ADBMS do not support strong agency, there is speculation on how the notion of strong agency can improve the adaptability and flexibility of an ADBMS. According to the authors of (Akker and Siebes, 1997), this can be achieved by incorporating general purpose reasoning abilities into an ADBMS. 2.5 DAI Applicability to CIS The forthcoming sections will briefly describe two DAI based approaches that are of relevance to CIS and this thesis: • The ARCHON project, Europe’s largest project on DAI during the early 1990’s (Jennings, 1994a). • COOL, which is a coordination language for multiagent systems (Barbuceanu and Fox, 1996). Chapter 2. Background and Related Work 2.5.1 43 ARCHON The ARCHON (ARchitecture for Cooperative Heterogeneous ON-line systems) project (Jennings, 1994a) was Europe’s largest project on Distributed Artificial Intelligence (DAI) during the early 1990’s. It focused on a general-purpose architecture, software framework and methodology for supporting real world DAI systems. The results from the ARCHON project have been applied in several real-world applications such as electricity distribution and supply, control of a cement kiln complex and control of a particle accelerator. Each ARCHON agent (problem solving entity) is divided into two layers, see Figure 8: an ARCHON layer that encapsulates generic knowledge about cooperative interaction which is domain independent; and one or more intelligent systems that are possibly pre-existing systems which perform the problem solving process. The ARCHON layer is mainly composed out of the following five components: • the high level communication module is responsible for communication (message passing) with other ARCHON agents. In provides services such as intelligent addressing and filtering. • the planning and coordination module reasons about the individual ARCHON agent’s role and decides which actions should be taken. It provides generic cooperation know-how encoded in production rules of the form (Jennings and Pople, 1993): Rule-1 if an agent has generated a piece of information i and it believes that i is of use to an acquaintance Chapter 2. Background and Related Work ARCHON agent 44 ARCHON agent Distributed computing infrastructure ARCHON layer -high level communication -planning and coordination -acquaintance -self -monitor 111111111111 000000000000 000000000000 111111111111 Intelligent system(s) Figure 8: ARCHON layers Chapter 2. Background and Related Work 45 then send i to that acquaintance Rule-2 if an agent has a skill to perform and is not able to perform it then locally seek assistance from another agent • acquaintance models represent the skills, interests and capabilities of other ARCHON agents. • the self model is an abstraction of an ARCHON agent’s underlying intelligent information system. Information about current state and actions that can be executed in the underlying intelligent system are provided. • the monitor controls the underlying intelligent system. ARCHON represents a general purpose architecture for real world applications. It is important in making a separation between generic knowledge about cooperative interaction, and application knowledge (of an intelligent system). Thus, its approach enables generic cooperative features to be reused for other applications. 2.5.2 COOL COOL (COOrdination Language) is a language for describing coordination in multiagent systems (Barbuceanu and Fox, 1994; Barbuceanu and Fox, 1995; Barbuceanu and Fox, 1996). It is based on speech act communication, which captures the coordination that is required when agents are working together. COOL is being used: i) for representing the coordination mechanism for a supply chain of manufacturing Chapter 2. Background and Related Work 46 enterprises; ii) as a framework for designing and validating coordination protocols for multi-agent systems. For the purpose of this thesis we will briefly summarize the most important levels of agent interaction that were identified in (Barbuceanu and Fox, 1994; Barbuceanu and Fox, 1995): 1. Information content level: This level is concerned with the specification of lowlevel information transmitted among agents. Specification is done by a specific language such as KIF (Knowledge Interchange Format) language (Genesereth and Fikes, 1992), e.g. “(produce 100 chairs)”. 2. Intentional level: This level specifies the intention an agent has with respect to the information content. As described in (Barbuceanu and Fox, 1995) the same information content can be transmitted with different intentions, e.g. “(ask (produce 100 chairs))” vs. “(deny (produce 100 chairs))”. Specification of intentions of agents are addressed in, for example, KQML (Knowledge Query Manipulation Language) (Finin et al., 1994; Labrou and Finin, 1994), which provides a set of performatives such as ask and deny. 3. Coordination level: This level is concerned with shared conventions (Jennings, 1993), which makes it possible for agents to coordinate their exchanged messages. A protocol for this type of coordination has been addressed in the COOL language (Barbuceanu and Fox, 1995). The COOL language has proposed a number of high-order speech acts, specified with the aid of a finite state machine. These supplement the basic set of speech acts provided in KQML. The new speech acts are (Barbuceanu and Fox, 1995): Chapter 2. Background and Related Work 47 • Propose. This speech act proposes a subgoal to an agent. • Counter-Propose. This speech act is used to issue a counter-proposal. This means that a new subgoal is proposed which partially satisfies the initial subgoal. • Accept and Reject. These two speech acts allow agents to accept or reject a previously proposed subgoal. • Cancel. This speech act sends a cancel message with respect to a previously accepted subgoal. • Satisfy. This speech act is used to announce that a subgoal has been satisfied. • Fail. This speech act is used to announce that a subgoal could not be satisfied. For the purpose of this thesis we also note two other speech acts which were originally described in (Barbuceanu and Fox, 1994), but were left out in (Barbuceanu and Fox, 1995): • Commit. This speech act is used to send a confirmation to an agent that it has been awarded a previously proposed subgoal. • De-Commit. This speech act sends a cancellation of a previously committed subgoal. COOL provides a clear separation of agent interaction at different levels. It introduces an explicit coordination level for agent interaction using high-order speech acts. Chapter 2. Background and Related Work 2.6 48 The Approach Taken in This Thesis The literature study performed indicates that parts of the DB community and the DAI community are moving towards each other. One important common ground for both the DB and DAI communities is the research community of CIS. This thesis targets the complexity of cooperation as found within CIS and proposes an active database solution (including active capability) to supporting CIS. Thus, the thesis has its roots in the DB community (ADBMS). Special emphasis has been placed on a synthesis of research results from both the DB community and the DAI community with respect to cooperation. This thesis expands upon the architecture described in (Chakravarthy et al., 1993). In contrast to the work presented in (Chakravarthy et al., 1993), which is based on the use of blackboards, this thesis is based on message passing for interaction. The centralized approach proposed in (Chakravarthy et al., 1993) can become a potential bottleneck since a single blackboard does not scale up well when the number of problem solving agents is large. Further, when moving to the distributed (long-term) approach which relies on multiple blackboards, it has been shown that multiple blackboards have the same semantics as message passing systems (Hewitt and Lieberman, 1984; Jennings, 1994b). Current ADBMS based suggestions can broadly be divided into the following three categories with respect to the types of cooperation primitives provided: 1. No cooperation primitive is supported. As a consequence there is no explicit support for negotiation, e.g. (Chakravarthy et al., 1993). 2. Simple types of cooperation primitives such as send and receive operations are suggested, e.g. (Bussler and Jablonski, 1994; Geppert et al., 1995). Extending Chapter 2. Background and Related Work 49 these approaches to support more advanced forms of interaction such as negotiation can be problematic, since simple send / receive operations are too weak for supporting negotiations (Muller, 1996). 3. Advanced types of cooperation primitives such as assign, vote, eval are suggested including support for negotiation, e.g. (Lockemann and Walter, 1995). With regard to the above categorization this thesis falls into the third category. Thus, the work reported in this thesis is similar to the work on cooperation protocols in (Lockemann and Walter, 1995). In contrast, this thesis reuses well founded work in DAI, such as speech acts and coordination protocols, for specifying cooperation in CIS. As a consequence, prior to the work reported in this thesis none of the relevant ADBMS approaches had tried to tackle the issue of if/how active capability in the form of ECA rules can capture the fundamental cooperation strategies, i.e. task sharing and result sharing. Finally, none of the above ADBMS approaches provide a clear methodology for mapping a high-level cooperation (protocol) specification into ECA rules. This thesis acknowledges and reuses well founded work in DAI on cooperation. For example, the representation of protocols using speech acts is taken up in this work. In contrast to the relevant DAI based approaches such as ARCHON (Jennings, 1994a) and COOL (Barbuceanu and Fox, 1995), where generic cooperation knowledge is captured by condition-action rules, this thesis has used ECA rules. The ECA approach is important as it introduces an explicit event part for cooperation rules. The event is an important optimization issue, as it specifies when to evaluate a condition, not always as in the case of condition-action rules. Introducing an explicit event part also makes it possible to combine primitive events into high level composite events. Composite events can thereby: i) reduce the complexity of rule conditions, and ii) Chapter 2. Background and Related Work 50 precisely specify when to take responsive actions to multiple result notifications. Previous work on ADBMS and agent technology primarily concerns conceptual issues such as extending ADBMSs to support weak and strong agency (Akker and Siebes, 1997) and comparing ADBMS and agent characteristics (Bailey et al., 1995). This thesis explicitly targets the cooperation between multiple agents (ISs). Neither the work reported in (Akker and Siebes, 1997) nor (Bailey et al., 1995) explicitly addresses issues of cooperation in a multiagent environment. In summary, this thesis synthesizes previous ADBMS results and DAI results in a novel approach for supporting cooperation in CIS. Chapter 3 The Chosen Problem In this chapter I elaborate on the research literature related to the major cooperation strategies of task sharing and result sharing. Both cooperation strategies can be used stand alone or mixed. In this thesis the stand alone approach of each strategy will be addressed. I then present the refined research objectives of the thesis. 3.1 Task Sharing In the forthcoming sections two facets of proposals elaborated in the research literature are presented: static and dynamic allocation of tasks, and protocols. 3.1.1 Static and Dynamic Allocation of Tasks Based on the ability of an agent to decompose a task, the dynamics of task shared cooperation can be broadly classified into (classification based upon (Bond and Gasser, 1988a)): 1. Static allocation, which assumes that a problem is posed to a specific agent, 51 Chapter 3. The Chosen Problem 52 which acts as the manager. The manager generates a complete hierarchy of tasks. Thus, it is assumed that the manager knows how to decompose a task into a hierarchy of subtasks. During the execution of tasks/subtasks the manager coordinates events from the agents which are executing the allocated tasks. 2. Dynamic allocation (predetermined managers), which relies on a cooperation protocol such as the Contract Net Protocol (CNP). CNP itself implies that the allocation of tasks becomes dynamic. Each structure (manager/contractor) is dynamically composed. Hence, a contractor can in turn act as a manager and allocate subtasks to other agents. This will form a dynamically derived hierarchy of task allocations. However, a top level problem is still posed to one agent, which becomes the manager for the top level problem. Thus, the responsibility for solving the posed problem is predetermined. 3. Dynamic allocation (general DAI), which introduces a greater element of collaboration than the previous approaches. In this approach a problem is posed to all agents. Each agent then tries to come up with its own solution to the problem. It further implies that the agents need to cooperate in order to find the best solution, and in particular to agree which of them should be responsible for the top level problem. 3.1.2 Protocols A protocol defines the structure of the dialogue among agents (Parunak, 1996). There is a broad spectrum of proposals for supporting cooperation, ranging from cooperation in workflow-oriented systems to cooperation in DAI applications. In most Chapter 3. The Chosen Problem 53 of these systems, cooperation consists of a set of messages exchanged among agents. The exchanged messages range from application specific messages to generic (non application dependent) cooperation performatives. Protocols are used to define the structure and the allowed sequences of the messages exchanged. There are different approaches to implementing cooperative features: • application oriented. This approach implies that each application is augmented with cooperative features. Thus, all communication and coordination mechanisms for supporting cooperative work have to be built from scratch. Although the object-oriented paradigm offers the designer concepts such as reuse, (almost) all systems built according to this approach are built in an ad hoc manner and cannot be reused in other applications. • protocol oriented. This approach assumes that the cooperative features are modeled in a protocol which is independent of the application. Thus, once the type of cooperation has been modeled by a protocol it can be reused in other applications. In the literature, the terms cooperation protocols and coordination protocols are used interchangeably. However, in contrast to DB proposals, DAI and CIS proposals tend to use the notion of coordination protocols rather than cooperation protocols. In this thesis I will use coordination protocols as I believe it better reflects the semantics of a protocol. This is also consistent with the separation of the terms collaboration and coordination introduced in Section 1.1. Thus, the use of coordination protocols indicates less emphasis on issues such as reasoning, intentions and semantic contents. Chapter 3. The Chosen Problem 3.2 54 Result Sharing In this section I elaborate on three aspects of result sharing: i) sharing of information, ii) producers and consumers of result notifications, and iii) multiple responses from multiple agents. Research on result sharing has not been as exhaustive as it has been on task sharing, so is less well reported. 3.2.1 Sharing of Information In the literature the notions of result sharing and information sharing are used interchangeably. Below, two related definitions are presented. In their work on distributed problem solving, Smith and Davis define result sharing as (Smith and Davis, 1981): ... a form of cooperation in which individual nodes assist each other by sharing partial results, based on somewhat different perspectives on the overall problem. In his work on multi-agent systems, Jennings categorizes information sharing as (Jennings, 1994b) an activity in which:1 Agents assist one another by spontaneously volunteering partial results which are based on different perspectives of the global problem. Information sharing (or result sharing) is appropriate to use when the results of one agent influence the work done by another agent and / or when task decomposition is not possible (or is difficult). For example, the SHADE (SHAred Dependency Engineering) project (Kuokka et al., 1993) provides support for information sharing within 1 In an earlier paper by Jennings (Jennings et al., 1992) the same definition is used for result sharing. Chapter 3. The Chosen Problem 55 concurrent engineering. Information sharing services include change notification and subscription among a set of agents. Although the DAI community has not dealt with the notion of transactions and committed data, I feel that a a clear separation of the notions of result sharing and information sharing is needed when considering database systems. Hence, in this work I make the following categorizations: • sharing of committed information (result sharing). The information obtained will not change subsequently (a cancel cannot be issued). • sharing of uncommitted information (information sharing). The information may change subsequently (a cancel may be issued). • sharing meta-data. This information is associated with the meta-data of an agent (capabilities). In this thesis I will use the term result sharing as described in the above categorization. 3.2.2 Producers and Consumers of Result Notifications Essentially, result shared cooperation is based on distributing notifications of results between producers and consumers. Thus, these notifications can broadly be categorized into (Kuokka et al., 1993): • result notifications to known consumers • result notifications to unknown consumers Chapter 3. The Chosen Problem 56 The limitation of the first approach is that the consumers have to know exactly to which producer they should subscribe. It is not always the case that a consumer knows where to locate the producer of a result in a distributed environment. Similarly, the producer does not always know where to locate the consumers of a result. For example, the consumer may have yet to be added to the number of known agents in the network. Hence, the second approach provides support for situations in which the consumers and producers do not know about each other’s existence. Thus, result notifications to unknown consumers will be routed through a broker or a match-maker, or stored in shared memory for future use. Both approaches rely on the use of subscription and notification mechanisms. These range from simple ones such as defined within active databases (Anwar et al., 1993; Berndtsson, 1994), to more complex techniques such as content-based routing as defined within multi-agent based approaches for result sharing (Kuokka et al., 1993; Kuokka and Harada, 1996). Support for the more advanced techniques require that a number of open issues and extensions are addressed (Kuokka and Harada, 1996). For the purpose of this thesis I briefly highlight two of the relevant issues: • generality of advertisements and requests. For example, one could introduce a SQL construct such as the where clause to prune the number of result notifications and subscriptions. • error recovery. One of the issues in this category is concerned with how/if the transaction model as defined within the database community should be introduced to support error recovery for agent protocols. Chapter 3. The Chosen Problem 3.2.3 57 Multiple Responses from Multiple Agents It is noted in (Hall, 1996) that, For DAI systems which use result sharing, the user may be confronted with a number of different agent responses to the same demand. This could be extremely confusing, unless the DAI system facilitated her interactions with a mechanism to view and understand the different results obtained for the same problem. I postulate that the use of composite events as defined within active databases can help the user to specify, view and understand multiple results for the same problem. 3.3 Research Goals 3.3.1 Task Sharing The previous research objective related to task sharing can now be refined as follows: • task sharing aspects of the negotiation and result reporting phases of distributed cooperative problem solving should be supported. • support is required for predetermined and dynamic allocation of tasks, using the protocol-oriented approach. • support is to be provided by the active layer of an object-oriented database system, ACOOD. • a method for mapping task shared cooperation protocols into ECA rules in a systematic manner is required. Chapter 3. The Chosen Problem 3.3.2 58 Result Sharing The previous research objective related to result sharing can now be refined as follows: • support is required for result notifications to known consumers with the ability to prune the number of result notifications and subscriptions. • support is required for sharing of committed data (result sharing) and a technique for specifying when to take responsive action to multiple result notifications. Chapter 4 Task Shared Cooperation 4.1 Method I wish to support task shared cooperation with protocols expressed in high level speech acts. I therefore need to be able to map these speech acts to ECA rules. For this, I use a three step method for the mapping procedure: 1. model high-level speech acts by state diagrams. Using state diagrams as the modeling technique has several advantages: i) most speech act based protocols are already modeled in high level state diagrams. Thus, they can be used as input to our method. ii) state diagrams are supported by the common software engineering methodologies for modeling dynamic behaviour. 2. extract object model, algorithms and event hierarchies. For the object model, we rely upon the OMT modeling and design technique (Rumbaugh et al., 1991). Algorithms and event hierarchies are then inferred from the object model and state diagrams. 59 Chapter 4. Task Shared Cooperation 60 3. generate ECA rules. We provide a set of active database functionalities that are of importance when a protocol for task sharing is realized in an active database management system. One goal is to develop a tool to aid the generation of ECA rules from any state diagram representing a protocol based on speech acts. 4.1.1 STEP 1: Model Speech Acts The Chosen Benchmark Protocol There are several proposals for negotiation language primitives in the literature. Negotiation primitives have been suggested for a range of applications such as supply chain for manufacturing enterprises (Barbuceanu and Fox, 1995), and distributed medical care (Huang et al., 1994). Given the range of applications, it is perhaps not surprising that a number of application specific negotiation primitives have emerged. According to a classification made in (Muller, 1996) all primitives can be broadly divided into the following three categories: • Initiators; primitives that initiate a negotiation, e.g. Propose, Arrange, and Request. • Reactors; primitives that react on a given statement, e.g. Answer, Refine, Bid, and Reply. • Completers; primitives that complete a negotiation, e.g. Confirm, Accept, and Reject. In addition to the above categories, there is a fourth category that is concerned with notification of the outcome of the execution of a task, e.g. fail, and satisfy. Chapter 4. Task Shared Cooperation 61 For the current work we adopt a benchmark protocol based on the Contract Net (Smith, 1980), and follow the approach taken in COOL (Barbuceanu and Fox, 1994; Barbuceanu and Fox, 1995). The benchmark protocol can be viewed as a generic negotiation protocol as it encompasses primitives from all of the above three categories, and the most common phases of negotiation. The semantics of the speech acts in our benchmark protocol are: • Propose. Used to initiate a negotiation by proposing a task to be solved by one or more agents. • Counter-propose. Used to refine an initial proposal by issuing a counterproposal. • Accept. Used to signal acceptance of a previously distributed proposal. • Reject. Used to signal rejection of a previously distributed proposal. • Award. Used to send a confirmation to an agent that it has been awarded a previously distributed proposal (which may have been refined by a counter proposal). • Cancel. Used to send a cancellation to agents that were not awarded a previously distributed proposal (which may have been refined by a counter proposal). • Fail. Used to signal the failure of a task. • Satisfy. Used to announce that a task has been satisfactorily executed. The work in the thesis focuses on the coordination protocol for an agent and with respect to this a high level finite state machine (FSM) for an agent is presented, Chapter 4. Task Shared Cooperation 62 figure 91 . The left half of the figure represents an agent responding to the speech act Propose. The right half of the figure represents an agent acting as a manager. An application initiates (or handles over) a task to be solved to an agent by using an application programmer interface (API) in order to send a /Propose speech act. In response to a Propose/ speech act targeting an agent, the agent can respond with an /Accept or a /Reject, or can issue a /Counter-propose, figure 9. An agent can raise the event cannot execute task when it cannot solve the posed task on its own. In such a situation the agent will seek assistance from other agents, and will then act in the role of a manager (see figure 9). In the case of responding with a /Counter-propose or an /Accept, an agent can receive either Award/ or Cancel/. In the case of Award/, an agent carries out the execution of the task and can report the outcome of the problem solving phase by sending either a /Fail or /Satisfy. Figure 9 also presents a FSM of an agent acting as a manager. A manager seeks assistance from other agents by initiating a negotiation among potential contractors using the speech act /Propose. In response to distributed proposals, a manager will receive bids (Accept/, Reject/, Counter-propose/) from potential contractors. Having received all bids and evaluated them, the manager can choose to respond in its turn, in its role as agent, with /Accept, /Reject or /Counter-propose. (Compare with state Aa). Thus, the transitions from Am are sent up to the next manager or in the case of a top level problem to the application that posed the original top level task. In the case of deciding to /Reject, the manager needs to distribute /Cancel to 1 In this and in forthcoming FSMs, the thesis adopts the notation from (Barbuceanu and Fox, 1995) to denote < received − speech − act > / < sent − speech − act >. Annotations in italics represent events being raised and arrows indicate to whether the speech act is being sent up or down in the task hierarchy. Figure 9: Overview of an agent AGENT / Satisfy Ca Evaluate result Award / Ba Await decision / Fail cannot execute task / Accept Aa Evaluate proposal / Counterpropose Cancel / / Reject Propose / / Cancel Agent as MANAGER Fm Cancel all bids Dm Offer potential contracts Cancel / Bm Await decision / Accept Am Evaluate bids all bids received Em Save bids / Fail / Satisfy Cm Evaluate results / Counterpropose / Reject / Propose all results received Award / Hm Save results Gm Distribute awards Accept / Reject / Counter-propose / Fail / Satisfy / / Award / Cancel Chapter 4. Task Shared Cooperation 63 Chapter 4. Task Shared Cooperation 64 its potential contractors. In the case of responding with /Counter-propose or /Accept, the manager will await a response, which can be either a Cancel/ or an /Award. (Compare with state Ba). A received Cancel/ speech act implies distributing /Cancel to its potential contractors. A received Award/ speech act implies distributing /Award and /Cancel to successful contractors and unsuccessful contractors, respectively. A manager will receive results from its contractors by collecting the speech acts Fail/ and Satisfy/. When all results have bee received, the manager decides whether or not the problem has been successfully solved. Based upon this decision it will either send a /Fail notification or a /Satisfy. (Compare with state Ca). A summary of the interplay between the application, agent/manager and agent roles are provided in figure 10. APPLICATION API AGENT AGENT / MANAGER / Propose / Reject / Accept / Counterpropose / Award / Cancel / Fail / Satisfy / Reject / Accept / Counterpropose / Fail / Satisfy / Propose / Award / Cancel Figure 10: Interplay between application, agent and agent acting as manager Chapter 4. Task Shared Cooperation 65 We next provide the details of the FSM for our coordination protocol (as shown in figure 9) and show how the dynamic behaviour can be mapped into ECA rules. Details of FSM cannot execute task Propose/ agentAccept /Accept agentReject /Reject Agent do: evaluate proposal agentCounter-propose /Counter-propose Figure 11: Evaluate proposal Assume that a task T is posed to an agent (see figure 11 which corresponds to state Aa in figure 9) using the speech act Propose/. First, the agent will evaluate the proposal and try to execute task T locally. This implies that the agent determines whether it has capacity/capability to execute task T. If it does not, then it can raise the event cannot execute task as a signal that it needs to allocate the task to one or more agents. This situation will trigger a negotiation process among the agents. The agent that needs help will hereafter be referred to as the Manager. This situation is further explored in figure 12. Having evaluated the proposal, an agent needs to decide how to respond. In the case that an agent can execute task T (locally or by the assistance of one or more agents), it can respond by raising either the event agentAccept or the event Chapter 4. Task Shared Cooperation 66 agentCounter-propose. The former will trigger the submission of /Accept and the latter of /Counter-propose. In the case an agent raises the event agentReject then it will respond with the speech act /Reject. cannot execute task Manager do: set up Contract Manager do: find potential contractors [potential contractors] / Propose Manager do: distribute proposals Figure 12: Offer potential contracts In figure 12, which corresponds to state Dm in figure 9, the Manager collects and prepares relevant information about the task that it cannot solve. During this phase an overall task is further decomposed into n subtasks. The outcome of this initial process will be a specification of the subtasks. Each subtask will be modeled by a contract. A contract describes the various states of the negotiation process for a given subtask, and is created once there exists a specification of the subtask. Once the task has been decomposed and specified, the Manager needs to find potential contractors. A potential contractor is an agent that is likely to have the capability and capacity to solve a subtask. When potential contractors have been found for all subtasks, the Manager will /Propose the contracts to the potential contractors. Chapter 4. Task Shared Cooperation 67 Accept / Reject / Counter-propose / Em do: save bids [all bids received] agentCounter-propose Am do: evaluate bids agentAccept /Counter-propose /Accept agentReject /Reject /Cancel Fm do: cancel all bids Figure 13: Collect bids In figure 13, which corresponds to states Em, Am, and Fm in figure 9, the Manager collects the submitted bids from the potential contractors. The evaluation of received bids can start, using appropriate criteria such as dead-line, a certain percentage of bids received, or all bids received. In our benchmark protocol we will, without loss of generality, assume that all bids must be received before the evaluation of the bids can start. The bids can be submitted in any order. When the evaluation of bids is over, the Manager can decide how to respond to the Chapter 4. Task Shared Cooperation 68 initial proposal, i.e. the task that was decomposed, in its role as agent. A response can be made using one of the speech acts /Accept, /Reject, or /Counter-propose. Thus, this state is similar to state Aa in figure 9. In the case of /Reject the Manager needs to cancel all received bids from its subcontrators using the speech act /Cancel. agentAccept agentCounter-propose Bm do: await decision Cancel/ Fm do: cancel all bids Award/ /Award /Cancel /Cancel Gm do: distribute awards and cancels to subcontractors Figure 14: Distribute awards and cancels to subcontrators In figure 14, which corresponds to states Bm, Fm, and Gm in figure 9, the Manager first awaits the response to its submitted bid. The response can be either Cancel/ or Award/. In the case of Cancel/ the Manager needs to cancel all received bids from its subcontractors. In the case of Award/ the Manager needs to distribute notifications to its subcontractors using the speech acts /Award and /Cancel. We will assume that the Chapter 4. Task Shared Cooperation 69 Manager has decided upon at least one contractor for each subtask (contract). A contractor is an agent that has been awarded a contract, i.e. has been contracted to solve a subtask. Further, the Manager can decide whether there are any dependencies among the contracts. Fail/ Satisfy/ Hm do: save result [all results received] Cm do: evaluate results agentFail /Fail agentSatisfy /Satisfy Figure 15: Collect results Subtasks are then executed by their contractors. A contractor can report the outcome of a subtask execution by submitting a status report: Satisfy/ or Fail/ (see figure 15). A Satisfy/ message will indicate that the allocated contract has been satisfied by the contractor. Similarly, a Fail/ message will indicate that the allocated contract has not been solved by the contractor, i.e. it is reported as a failure. Having received all results, the Manager needs to determine whether the initial problem, i.e. task T, has been solved. Finally, the Manager submits its status report, in its role as agent, using either /Satisfy or /Fail. Chapter 4. Task Shared Cooperation 4.1.2 70 STEP 2: Extract Intermediate Representation Given the semantics outlined in the previous section we now focus on the second step in our method, the intermediate representations of: i) object model, and ii) algorithms and event hierarchies. Object Model Human involvement is required in order to design the object model of the coordination protocol. The intention of the object model (a set of classes) presented here is not to give a complete model of a fully fledged system. Instead, we focus on the core features that need to be provided in terms of interaction as described in our previous scenario. In our work we have mainly used two classes: an Agent class, and a Contract class. Briefly, an Agent class represents a PSA, and can be viewed as a simple form of agent modeling. In order to capture the different stages of the negotiation we introduce a Contract class. A similar approach can be found in (Barbuceanu and Fox, 1995) where a Conversation class is introduced. Each Agent can be responsible for several Contracts. In order to initiate a negotiation an agent invokes the operation cannotExecuteTask. During the initiation phase, operations such as setupContract and distributeProposals are needed. Agents need to be able to evaluateProposals, and can then reply by invoking one of the operations sendAccept, sendReject, or sendCounterPropose. Further, agents need to be able to evaluateBids, and thereafter distributeAwards and distributeCancels to potential contractors. Finally, Agents can report the outcome of a task by using either operation sendSatisfy or operation sendFail. Each contract has a responsible Manager. Attributes such as Set of Accepts, Chapter 4. Task Shared Cooperation 71 Agent Contract Set of Contracts operations evaluateProposal cannotExecuteTask setupContract evaluateBids evaluateResults send operations sendReject sendAccept sendCounter-propose sendFail sendSatisfy distributeProposals distributeAwards distributeCancels Pointer Manager Set of PotentialContractors Set of Accepts Set of Rejects Set of Contractors Set of Results operations findPotentialContractors savePotentialContractors saveBid setContractors sendAward sendCancel saveResult ..... receive operations receiveAccept receiveReject receiveCounter-propose receiveCancel receiveAward receiveFail receiveSatisfy ..... Figure 16: Agent and Contract classes (event raised) Chapter 4. Task Shared Cooperation 72 Set of Rejects, Set of Contractors, and Set of Results are used to keep information about the different phases of the protocol. Similarly, the following operations are used to initiate and respond to activities of the protocol: findPotentialContractors, savePotentialContractors, setContractors, sendPropose, saveBid, and saveResult. Algorithms and Event Hierarchies We used a straightforward system for mapping state diagrams to event hierarchies, see Table 1. State Diagram event received speech act (event) [condition (guard)] sent speech act (action) activity automatic transitions ECA Paradigm primitive event primitive event composite event rule action rule action no events or rules are generated Table 1: Mapping state diagrams to event hierarchies. Briefly, each event and received speech act in the state diagram are associated with a primitive event, which is raised after the execution of the operation. Each condition that guards a transition in the state diagram corresponds to a composite event. This composite event can be defined on previously mapped primitive events or composite events, or internal composite events that cannot be directly inferred from the state diagram. Sent speech acts (actions) and activities are both mapped to rule actions, which can be triggered by either a primitive event or a composite event. Automatic transitions do not generate any corresponding events and rules. The transition from state a S to a state S’ occurs as soon as all the activities in S have been executed. Chapter 4. Task Shared Cooperation 73 We next demonstrate the mapping algorithm on the state diagram as shown in Figure 11. Mapping State Diagram in Figure 11 Using the above mapping procedure on the state diagram shown in figure 11 we get the skeletons for events and rules shown in Table 2. State Diagram Propose/ evaluate proposal ECA Paradigm primitive event rule action cannot execute task agentAccept agentReject agentCounter-propose /Accept primitive event primitive event primitive event primitive event rule action /Reject rule action /Counter-propose rule action Remark EreceiveP roposal RevaluateP roposal triggered by EreceiveP roposal EcannotExecuteT ask EagentAccept EagentReject EagentCounter−propose RsendAccept is triggered by EagentAccept RsendReject is triggered by EagentReject RsendCounter−propose is triggered by EagentCounter−propose Table 2: Mapping state diagrams in Figure 11. In the above, the event EreceiveP roposal is the triggering event for the evaluation of a proposal. Once the evaluation is done, an agent can raise one of the following events: EcannotExecuteT aks which initiates the negotiation process among the agents. EagentAccept which triggers rule RsendAccept. EagentReject which triggers rule RsendReject. EagentCounter−propose which triggers rule RsendCounter−propose. Chapter 4. Task Shared Cooperation 74 Mapping State Diagram in Figure 12 Table 3 depicts the events and rules that were inferred from the state diagrams shown in figure 12. State Diagram cannot execute task set up Contract ECA Paradigm primitive event rule action potential contractors distribute proposals (and /Propose) composite event rule action Remark EcannotExecuteT ask RsetU pContract triggered by EcannotExecuteT ask EpotentialContractors RdistributeP roposals is triggered by EpotentialContractors Table 3: Mapping state diagrams in Figure 12 In the above, if an agent cannot execute a posed problem (Figure 12), it will raise an event cannot execute task in order to start the negotiation process. This event is the starting point for when an agent is acting as a manager. The mapping to ECA rules for the starting point is rather straightforward, in that a primitive event EcannotExecuteT ask will trigger a rule RsetU pContract . Rule RsetU pContract will decompose the overall problem (task) into n subtasks, where each subproblem (subtask) is represented by a Contract. The arity of subtasks is dynamically derived, since we cannot know in advance which problem will cause an agent to trigger the task shared protocol. In fact, this would imply that we would have to specify every potential problem and decompose it into subtasks in advance. Rule RsetU pContract will also create a composite event EpotentialContractors . This composite event corresponds to the semantics expressed by the condition potential contractors link in figure 12, and is expressed by the event hierarchy shown in figure 17. The automatic transition in figure 12 will not generate any events and rules. Chapter 4. Task Shared Cooperation 75 Hence, the activity find potential contractors does not appear in the above table. R prepareCollectBids R distributeProposals E potentialContractors CONJUNCTION (or SEQUENCE) E savePotentialContractors E savePotentialContractors (Contract 1, Problem A) (Contract n, Problem A) Figure 17: Composite event EpotentialContractors : potential contractors have been identified for each contract The composite event EpotentialContractors is a conjunction (or sequence) of primitive events EsaveP otentialContractors , where each EsaveP otentialContractors event instance refers to a set of potential contractors that have been found for a given Contract (i.e. subtask). Event EsaveP otentialContractors is raised after each invocation of the operation savePotentialContractors in class Contract. Event EsaveP otentialContractors is inferred from the object model in figure 16. Rule RdistributeP roposals is defined on event EpotentialContractors and will distribute the indicated proposal to potential contractors. A second rule, RprepareCollectBids , needs to be defined on event EpotentialContractors , the action for which will set up a composite event EallBidsReceived before bids are submitted. Details of EallBidsReceived will be explained in figure 18. Rule RprepareCollectBids is executed before rule RdistributeP roposals . Mapping State Diagram in Figure 13 Chapter 4. Task Shared Cooperation 76 Table 4 depicts the events and rules which were inferred from the state diagram shown in figure 13. State Diagram Accept/ Reject/ Counter-propose/ save bids ECA Paradigm primitive event primitive event primitive event rule action all bids received evaluate bids composite event rule action agentCounter-propose agentAccept agentReject /Counter-propose primitive event primitive event primitive event rule action /Accept rule action /Reject rule action cancel all bids (and /Cancel) rule action Remark EreceiveAccept EreceiveReject EreceiveCounter−propose RsaveBid triggered by either EreceiveAccept, EreceiveReject or EreceiveCounter−propose EallBidsReceived RevaluateBids triggered by EallBidsReceived EagentCounter−propose EagentAccept EagentReject RsendCounter−propose triggered by EagentCounter−propose RsendAccept triggered by EagentAccept RsendReject triggered by EagentReject RdistributeCancels triggered by EagentReject Table 4: Mapping state diagram in Figure 13. Composite event EallBidsReceived corresponds to the semantics expressed by the condition that guards the all bids received link in figure 13 and is expressed by the event hierarchy of figure 18. Chapter 4. Task Shared Cooperation 77 R evaluateBids E allBidsReceived E allBidsContract CONJUNCTION (or SEQUENCE) CONJUNCTION (or SEQUENCE) CONJUNCTION (or SEQUENCE) (Contract n, ..) E bidReceived E receiveAccept DISJUNCTION E receiveReject R saveBid DISJUNCTION E receiveCounter-propose (Contract 1, Problem A, Potential Contractor 1) E .... E .... E .... (Contract 1, Problem A, Potential Contractor n) Figure 18: Composite event EallBidsReceived : all bids received EbidReceived is defined as a disjunction of EreceiveAccept, EreceiveReject and EreceiveCounter−propose and will detect the situation that a bid has been received. Information regarding each incoming bid, i.e. Contract id, Problem id, and sender id (i.e. Potential Contractor id), will be stored with the aid of rule RsaveBid . This information is also passed along in the event hierarchy as event parameters, since the composite events need to combine the correct bids with the appropriate Contracts and Problem. EallBidsContract is defined as a conjunction (or sequence) of EbidReceived . This event will detect the situation when all bids have been received for a Contract. Chapter 4. Task Shared Cooperation EallBidsReceived 78 is defined as a conjunction (or sequence) of EallBidsContract , and will detect the situation when all bids have been received for all contracts. The completion of EallBidsReceived will trigger the rule RevaluateBids . Once the evaluation of the received bids is done, a manager can respond in its role as agent to the initial proposal by raising one of the following events2 : EagentAccept which will trigger rule RsendAccept. EagentCounter−propose which will trigger rule RsendCounter−propose. EagentReject which will trigger two rules: RsendReject and RdistributeCancels . Rule RdistributeCancels is used to cancel all received bids from subcontrators. Mapping State Diagram in Figure 14 The events and rules of Table 5 were inferred from the state diagram shown in figure 14. In the case that an agent has chosen to raise either agentCounter-propose or agentAccept it will enter a state in which it awaits the decision on its submitted bid. Event EreceiveAward is an indication to the agent that it has been chosen to execute the task. This event will trigger three rules: RprepareIncommingResults, RdistributeAwards and RdistributeCancels . Rule RprepareIncommingResults is not part of the FSM shown in figure 14. It will create the infrastructure for collecting incoming result notifications in advance in 2 These can be compared with p73: responses as non-manager. Chapter 4. Task Shared Cooperation State Diagram agentCounter-propose agentAccept await decision ECA Paradigm primitive event primitive event rule action Award/ Cancel/ cancel all bids (and /Cancel) primitive event primitive event rule action distribute awards (and /Award) distribute cancels (and /Cancel) rule action rule action 79 Remark EagentCounter−propose EagentAccept Ridle triggered by either EagentCounter−propose or EagentAccept EreceiveAward EreceiveCancel RdistributeCancels triggered by EreceiveCancel RdistributeAwards triggered by EreceiveAward RdistributeCancels triggered by EreceiveAward Table 5: Mapping state diagrams in Figure 14. order to be able to collect the incoming results (figure 15). Further, there is no need to create an infrastructure for collecting incoming results unless the agent has been chosen to execute the task. Rule RdistributeAwards will send a notification to agents that were assigned to be subContractors. Rule RdistributeCancels will send a cancel notification to those potential subcontractors that were not assigned to be subcontractors. In the case that rule RdistributeCancels is triggered by EreceiveCancel it will cancel all bids. Mapping State Diagram in Figure 15 The events and rules of Table 6 were inferred from the state diagram shown in figure 15. Composite event EallResultsReceived corresponds to the semantics expressed by the condition that guards the all results received link in figure 15, and is expressed by the event hierarchy shown in figure 19. Composite event EallResultsReceived detects the situation in which the outcome of Chapter 4. Task Shared Cooperation State Diagram Fail/ Satisfy/ save result ECA Paradigm primitive event primitive event rule action all results received evaluate results composite event rule action agentSatisfy agentFail /Fail /Satisfy primitive event primitive event rule action rule action 80 Remark EreceiveF ail EreceiveSatisf y RsaveResult triggered by either EreceiveSatisf y or EreceiveF ail EallResultsReceived RevaluateResults triggered by EallResultsReceived EagentSatisf y EagentF ail RsendF ail triggered by EagentF ail RsendSatisf y triggered by EagentSatisf y Table 6: Mapping state diagrams in Figure 15. RevaluateResults E allResultsReceived CONJUNCTION (or SEQUENCE) RsaveResult E resultContractReceived DISJUNCTION E receiveSatisfy (Contract_1) E receiveFail (Contract_1) DISJUNCTION E receiveFail E receiveFail (Contract n) (Contract n) Figure 19: Composite event EallResultsReceived : all results received Chapter 4. Task Shared Cooperation 81 each subtask is known. It is defined as a conjunction (or sequence) of EresultContractReceived , which indicates that a result has been received for a Contract (subtask). Composite event EresultContractReceived is defined as a disjunction of EreceiveSatisf y and EreceiveF ail for a given Contract. It will trigger rule RsaveResult which will save the received result. Rule RevaluateResults is defined on EallResultsReceived and will trigger the evaluation of the received results. A manager can then choose various strategies for deciding whether the task has been successfully solved (raise EagentSatisf y which will trigger RsendSatisf y ) or not (raise EagentF ail which will trigger RsendF ail ). For example, it may be acceptable that one or two tasks have failed if the other tasks are completed. 4.1.3 STEP 3: Generate ECA Rules The final step in the method is to generate ECA rules for a specific active database system. For a given event hierarchy the specification of the rules using an available language is fairly straightforward. However, the mapping of the state diagrams to ECA rules highlighted the need for some extensions to the ECA framework as proposed in the active DBMS literature. Based on the above mapping procedure and lessons learned from an implementation of the benchmark protocol in ACOOD (Hagen, 1996), we postulate that the following features are of crucial importance if a task sharing protocol is to be supported by an active database. • composite events are of importance as they are used to express the semantics of guarding conditions in the state diagrams, i.e. when to take the next step in the negotiation. Chapter 4. Task Shared Cooperation 82 • composite event restriction is crucial in order to match messages from agents to the appropriate task and contract. • dynamic event and rule creation is of importance if the decomposition into subtasks takes place at run time. We had to propose preliminary solutions to the above in order to implement task sharing using ACOOD and taking the approach proposed in this paper. Below, we summarize the approach taken for our implementation effort. Composite Event Restrictions The use of composite events for monitoring incoming bids causes a major problem for a Manager, since each incoming speech act event must be matched with its appropriate problem/subproblem. This is problematic since there is no (or little) support in prototype active databases for matching parameters within a composite event. We illustrate this by an example, shown in Figure 20. Assume that a Manager has decomposed a task into two subtasks. Each subtask is represented by a Contract and has two potential contractors (Contract 1: A and B, Contract 2: C and D). As part of the ECA-based protocol for task sharing, each contract has a composite event which monitors incoming bids from its potential contractors. When potential contractor A submits its bid for Contract 1, an event EreceiveAccept will be generated. This event occurrence will be injected at the bottom of the event hierarchy, completes event EbidReceived , and initiates the detection of composite event EallBidsContract . If the composite events at this stage have no mechanisms to match supplied event parameters, it will also be injected at the bottom of the event hierarchy representing incoming bids for Contract 2. Chapter 4. Task Shared Cooperation 83 initiating event R prepareAssignContractors terminating event R evaluateBids E allBidsReceived (E allBidsContract SEQ E allBidsContract ) Contract 2 Contract 1 E allBidsContract : ) (E bidReceived CON E bidReceived E bidReceived : (E receiveAccept OR E receiveReject) E allBidsContract : ) (E bidReceived CON E bidReceived E bidReceived : (E receiveAccept E receiveAccept (Potential Contractor A) OR E receiveReject) E receiveAccept (Potential Contractor B) (Potential Contractor C) (Potential Contractor D) Figure 20: Invalid completion of composite event EallBidsReceived Chapter 4. Task Shared Cooperation 84 When potential contractor D submits its bid for Contract 2, a new event occurrence of EreceiveAccept will be generated. This event occurrence will complete both Contracts’ event hierarchies, i.e. EbidReceived , and EallBidsContract . Finally, it will complete EallBidsReceived and trigger the rules RprepareAssignContractors and RevaluateBids . Obviously, this is not the desired semantics, since we should still be waiting for bids from two potential contractors, i.e. B and C. In (Hagen, 1996) three potential solutions were investigated in order to avoid the invalid completion of EallBidsReceived : • rule condition; the condition part of a new rule defined on EallBidsContract would check that the completion of EallBidsContract for contract 1 involved only bids for contract 1. If the condition is satisfied, then EallBidsReceived is notified. Although this approach seems promising it was discovered that none of the the four consumption modes (recent, chronicle, continuous, cumulative) could provide the correct behaviour (Hagen, 1996). • same parameters; a unique conversation identifier for each subtask and manager was used to identify which negotiation the message refers to. This conversation identifier is passed along as an event parameter. Hence, the above problem can be solved if it can be specified that all constituent events of a composite event need to have the same conversation identifier. However, this solution requires a modification to the proposed same::parameter operator as proposed in SAMOS (Gatziu and Dittrich, 1993). • logical events; for each predefined event, a logical event can be created that will filter out irrelevant event occurrences. This mechanism is appealing since it Chapter 4. Task Shared Cooperation 85 provides a very clear semantics for which event occurrences and event parameters are used in the detection of a composite event. The drawbacks are twofold. Firstly, there will be an overhead due to the additional set of events that need to be created. Secondly, few active databases support logical events together with ECA rules. A further problem with respect to the choice of event operator was revealed by the implementation (Hagen, 1996). For the second potential solution, it was identified that it is not appropriate to use the conjunction operator for composite events when the constituent events are of the same type. Thus, situations previously modeled by conjunctions had to be replaced by sequences in order to obtain correct behaviour. The third potential solution could still use the conjunction operator, since the logical events filtered out uninteresting event occurrences. Given the above, I have chosen to write “ conjunction (or sequence)” in the diagrams, since the specific alternative supported by the system needs to be used at the time of creation of events once the event hierarchy is generated. 4.2 Implementation and Testing In this section I will present the architecture and proof of principle application which was implemented in ACOOD on a UnixT M , SunOST M 4.1 platform. Further details can be found in (Hagen, 1996). 4.2.1 Architecture For this proof of principle application two ACOOD nodes were set up, where each ACOOD node had the main modules depicted in Figure 21: Chapter 4. Task Shared Cooperation 86 ACOOD Node 1 Problem Solving Agents ACOOD Node 2 Capabilities Database Email Daemon Email Daemon Decomposer Problem Solving Agents Capabilities Database Decomposer Figure 21: Architecture of test application • Problem solving agent, a persistent object representing an agent, which could be activated to execute a certain task (or solve a subproblem). A short description of an agent’s capabilities is maintained in the capabilities database. • Capabilities database, a persistent object for maintaining information about the types of task a PSA was capable of executing/solving. Each entry consisted of a pair < agent, capability > that identified where the agent was located and contained a short description of the capability it had. Providing a formal notation and underlying formal semantics for expressing capabilities is beyond the scope of this research. • Decomposer, a persistent object which specified the problems that could be decomposed. A list of subproblems was manually generated and maintained for each decomposable problem. • Email daemon. Distribution was achieved by examining the receiver slot of a COOL message (Barbuceanu and Fox, 1994). If the receiver was not located at the local ACOOD node, then the COOL message was sent to a local email Chapter 4. Task Shared Cooperation 87 daemon process which forwarded the message to the correct node. At the receiving node there was another email daemon that processed the message and raised the appropriate event. 4.2.2 Application Scenario A supply chain application was considered for testing the ECA rules for task sharing. It was assumed that a factory could manufacture several different products, where the products were assembled by different assembly units such as CIM work stations. Each assembling unit could only assemble one product at a time. In order to assemble a product, each assembly unit needed component parts, which were ordered from suppliers. A supplier could either be able or unable to deliver the requested component part. Both assembly units and suppliers were viewed as PSAs. For the above application environment two ACOOD nodes were set up. The first was used to represent the assembly units in a factory. The second represented the different suppliers. All of the PSAs had capabilities to assemble all products that a factory manufactures. A table (see Table 7) indicated which PSAs were currently available for supplying/assembling, for example, a chair. The status of a PSA could either be busy or idle, where the latter indicated that the PSA (assembly unit) was currently waiting for a product to assemble. ACOOD node ACOOD-1 ACOOD-1 ACOOD-1 ACOOD-1 PSA PSA-1 PSA-2 PSA-3 PSA-4 Capability assemble chair assemble chair assemble chair assemble chair .. .. .. .. Table 7: PSAs currently available. busy / idle busy idle busy busy Chapter 4. Task Shared Cooperation 88 The second ACOOD node modeled the suppliers and which components they could deliver. The final product could be assembled by the component parts A and B. All of the suppliers could supply these parts. Table 8 shows which components each supplier had available for delivery at the start of the test scenario. ACOOD node ACOOD-2 ACOOD-2 ACOOD-2 ACOOD-2 ACOOD-2 ACOOD-2 ACOOD-2 PSA PSA-1 PSA-2 PSA-3 PSA-4 PSA-5 PSA-6 PSA-7 Capability All components All components All components All components All components All components All components inventory A, B C B D, E B, C, D E, F E Table 8: Suppliers of components. Below is a high level description based on the log (Hagen, 1996) of the test run: 1. The scenario starts with the detection of an event EcannotExecuteT ask which indicates that help is needed in assembling a chair. This event was raised explicitly by a PSA which, in this scenario, we will refer to as the Manager. An EcannotExecuteT ask event occurrence triggers rule RsetU pContract which i) invokes the Decomposer to decompose the task into smaller subtasks, and then ii) sets up the initial infrastructure for the task sharing protocol (i.e. EpotentialContractors , RdistributeP roposal , RprepareCollectBids ). 2. For each subtask a contract is created. The task of assembling a chair is represented by Contract 1. We assume that the arity of the subtasks for each problem are not in general known in advance. Thus, composite event EpotentialContractors , used to monitor whether there exists at least one potential contractor for each Chapter 4. Task Shared Cooperation 89 subproblem, has to be dynamically created (created at run time). 3. In our scenario there are four PSAs at ACOOD-1 in the Capability database that have the capability to assemble a chair. These PSAs are considered as potential contractors. The successful search for potential contractors, signaled by EsaveP otentialContractors , causes completion of EpotentialContractors and triggers two rules: RdistributeP roposal , RprepareCollectBids. 4. Rule RprepareCollectBids dynamically creates composite events EallBidsReceived , EallBidsContract , and EbidReceived which monitor incoming bids from the potential contractors. These composite events cannot be created at compile time since it is not possible to determine the number of potential contractors until run time. 5. Event restriction is of importance for the correct completion of the above composite events. For example, EallBidsReceived must only complete if its constituent events refer to the same Contract id. This event restriction is ensured by the use of the same object id operator in ACOOD. Hence, EallBidsReceived consumes events only with due regard to the same Contract id. 6. Rule RdistributeP roposal distributes a proposal for Contract 1 to each potential contractor at ACOOD-1: PSA-1, PSA-2, PSA-3, and PSA-4. Each PSA that receives the proposal then evaluates whether it can undertake the proposal. In this scenario, PSA-1, PSA-3, and PSA-4 reject the proposal. 7. In order to reduce work-in-progress (Vollmann et al., 1992) PSA-2 does not have any buffer of assembled chairs or components that are needed to assemble a chair. Thus, during the evaluation phase PSA-2 raises event EcannotExecuteT ask since it cannot solve the problem of assembling a new chair on its own. It needs Chapter 4. Task Shared Cooperation 90 to find suppliers for missing components. 8. Event EcannotExecuteT ask now initiates another negotiation procedure as described above. The Decomposer breaks down the task into two subtasks: supply component A and supply component B. A contract is created for each of these subtasks: contract 2 (component A), and contract 3 (component B). 9. Suppliers 1-7 are all considered as potential contractors, i.e. potential suppliers of parts for the required components. Thus, proposals for supplying component A are distributed to suppliers 1-7, and proposals for supplying component B are distributed to suppliers 1-7. 10. According to the scenario, supplier 1 accepts the proposal of contract 2, whereas the other suppliers reject the proposal. For contract 3, suppliers 1, 3, and 5 accept the proposal, whereas the other suppliers reject the proposal. 11. The received bids (EreceiveAccept or EreceiveReject) from the suppliers complete the composite events EbidReceived , EallBidsContract and finally EallBidsReceived . The completion of EallBidsReceived indicates that at least one potential contractor exists for each contract. That is, there is at least one supplier that can deliver component A and one that can deliver component B. PSA-2 then submits its own bid to the Manager that it accepts the proposal of Contract 1, i.e. assembling a chair. 12. The Manager receives the bid from PSA-2 and the composite events EbidReceived , EallBidsContract , and EallBidsReceived are completed. Since there is only one PSA that has accepted the proposal, PSA-2 at ACOOD-1 is chosen as the contractor to assemble a chair. When all contractors have been set (EcontractorsAssigned) two Chapter 4. Task Shared Cooperation 91 rules are triggered: RprepareIncommingResults and RdistributeAwards . 13. The triggering of rule RprepareIncommingResults causes the infrastructure for collecting incoming results EallResultsReceived to be prepared. Rule RdistributeAwards causes distribution of a commit message. In this scenario, no cancel message is sent, since there was only one PSA that accepted the proposal for contract 1. 14. As soon as PSA-2 at ACOOD-1 receives a commit for contract 1, it makes its own decisions and distributes the following: a commit to supplier 1 for contract 2, a commit to supplier 5 for contract 3, and cancel messages to suppliers 1 and 3 for subcontract 3. 15. The committed suppliers eventually start to report their results, which in our case is simply that they have satisfied the deliveries for the two components. This causes completion of EallResultsReceived which monitors the incoming results, which in turn triggers the evaluation phase of the received results. In our scenario PSA-2 at ACOOD-1 uses the received components to assemble a new chair. Thereafter it sends a satisfy of contract 1 to the Manager: a new chair has been assembled. 4.2.3 Summary of Findings In this chapter the identified active capabilities are: 1. Composite events for monitoring guarded state transitions in the FSM of the protocol. 2. Composite event restrictions for matching incoming cooperation messages with the appropriate task/contract. Chapter 4. Task Shared Cooperation 92 3. External events, since potential contractors are likely to be found outside the active database system. 4. Passing of event parameters for passing task related information. 5. Conflict resolution for controlling triggering of multiple rules. 6. Action execution for specific instances such as triggering the evaluation of bids for a specific contract. 7. Dynamic creation of events and rules for constructing protocol infrastructure when a task hierarchy can only be created at runtime. Chapter 5 Result Shared Cooperation In this chapter I elaborate on how active capability can be used in: i) supporting result notifications to known consumers, ii) specifying when to take responsive action to multiple result notifications, and iii) pruning the number of result notifications and subscriptions. 5.1 5.1.1 Result Notifications Inadequacy of Subscription Mechanisms for ECA Rules Supporting result notifications to known consumers implies that one or more consumers have, in advance, made a subscription to a producer. Once a subscription has been made, a producer can send result notifications to its consumers. Taking an active capability approach to supporting result notifications to known consumers implies that appropriate mechanisms for subscription and passing of results (data) should be provided. One of the most widely used subscription techniques within active databases (e.g. 93 Chapter 5. Result Shared Cooperation 94 ACOOD (Berndtsson, 1994), SAMOS (Gatziu and Dittrich, 1993)) is to subscribe ECA rules to a specific event. The semantics of this approach are (Berndtsson, 1994): When an event has been generated by an object check only those rules which have subscribed to the generated event. The above subscription semantics implies that rules which have not made a subscription to the generated event will not be triggered for condition evaluation. This approach is appealing since it reduces unnecessary triggering of rules compared with other approaches such as rules indexed by classes (Diaz et al., 1991). Event parameters in active databases are usually passed on to the condition and/or action part of a rule and so are available for providing context information. A classification of different types of event parameters is provided in SAMOS (Gatziu and Dittrich, 1993) which distinguishes between: • environment parameters. For example, time stamp (when was the event raised), transaction id (in which transaction did the event occur) and user id (which user caused the event). • parameters which depend on the type of an event. For example, method events have in addition the identification of the object (oid) and the parameters of the invoked method. If ECA rules are to be used for supporting result sharing, then the only way they can transmit information is with the aid of event parameters. According to the categorization made in SAMOS, I propose that result notifications be sent as event parameters which depend on the type of the event. Chapter 5. Result Shared Cooperation 95 Current active capability (including that in active database systems) includes mechanisms for both subscription and passing of results (data). However, such mechanisms are inadequate for use in supporting result sharing, due to the adopted subscription semantics. In order to demonstrate the inherent problem, a simple example is provided. Assume that an agent has subscribed to the results of an operation sum which is performed by another agent. The outcome (result) of the operation is the sum of the two parameters x and y, i.e. result = sum(x,y). Thus, if x = 10 and y = 10, the outcome of the operation 20 will be sent to the subscribing agent. The above scenario is not a problem for subscription techniques suggested within DAI. However, the same example supported by active capabilities will be problematic. Although the result 20 can be sent as an event parameter, an active capability approach will face the following problems: • an ECA subscription cannot refer to the outcome of an operation, i.e. 20. In active databases it is possible to send the input parameters of an operation (e.g. x = 10 and y = 10) as event parameters but not the return value of an operation. • an active database solution would need to store the outcome of an operation in order to be able to first retrieve the results and then send them as event parameters to subscribers. This is problematic since not all applications may have mechanisms available for saving results. In order to address the inadequacy of subscription mechanisms as used within active databases, a refined ECA subscription mechanism is introduced in the following section. Chapter 5. Result Shared Cooperation 5.1.2 96 A Refined Subscription Mechanism for ECA Rules In my work on supporting result sharing by using ECA rules, I see the need to constrain the behaviour of the ECA subscription technique. This is a consequence of the semantics of result sharing. In the current ECA subscription version it is possible to subscribe to events which are generated either before or after the completion of an operation. Clearly, the before option is not appropriate for supporting result sharing, since the result will not be available until the operation has been completed. Thus, the semantics for a refined subscription mechanism for ECA Rules supporting result sharing are proposed as follows: A consumer of a result can subscribe to results generated by a producer, by subscribing to an event that indicates the completion of the operation that produces them. In such a case the result is passed along as an event parameter. The subscription process can roughly be divided into the following three steps: 1. A consumer locates the set of producers that can provide the requested results. 2. Having identified the producers of the results, a formal subscription will take place. The subscription includes a consumer-id which is a unique identifier of the consumer, and an operation-id which is a unique identifier of the operation that produces the results. SUBSCRIBE consumer-id TO RESULTS OF operation-id 3. Results will be sent to the consuming agent until it unsubscribes. Chapter 5. Result Shared Cooperation 97 The semantics of the keywords TO RESULTS OF, implies that a consumer has subscribed to an event that is raised after the completion of the operation that produces them and that the outcome of the operation is passed along as an event parameter. For example, after the subscription SUBSCRIBE Agent 4 TO RESULTS OF (Agent 1: sum(x,y)) Agent 4 has subscribed to the results of the operation sum(x,y). A potential control flow based on ECA rules can be encoded as follows: 1. SUBSCRIBE Agent 4 TO RESULTS OF (Agent 1: sum(x,y)) 2. execute sum(10,10):return-value 3. raise event(event-id, return-value, ..) and trigger rules which have subscribed to event-id 5.2 Multiple Result Notifications In most situations it is useful to react to result notifications from more than one source. Typically, this is modelled in condition-action rules in DAI based approaches. As discussed in section 2.6, when contrasting ECA rules with condition-action rules, condition-action rules imply increased complexity of rule conditions. Due to the absence of any equivalence to composite events (Chakravarthy and Mishra, 1994) in current approaches to result sharing, an agent can only initiate responsive reactions to the most recent occurrences of incoming result notifications. In the forthcoming sections, I apply the usage of composite events and event consumption modes to a concurrent engineering scenario. I will demonstrate the Chapter 5. Result Shared Cooperation 98 applicability of composite events and event consumption modes, as defined within active databases, for result sharing. 5.2.1 Characteristics of Concurrent Engineering Concurrent Engineering (CE) is a departure from the earlier approach that can be termed islands of automation. The need for a shift to CE is due to the fact that it allows companies to develop products much more quickly and with higher quality than with traditional sequential methods. CE relies on forming a full-time multidisciplinary task group for each new project and on the use of disciplined techniques (Hartley, 1992). A task group typically consists of people and computer based tools from different areas such as product design, manufacturing, marketing, purchasing, and finance. Although each group member is capable of performing sophisticated activities on its own, it needs to be informed about recent design changes made by other group members, in a timely and efficient manner. Similarly, each member needs to route its own design changes to potentially interested group members. 5.2.2 The Power of Composite Events Composite events are used to model complex situations which cannot be expressed by a single primitive event. Thus, a composite event can be viewed as an abstraction of a set of events. Consider a CE scenario where a designer is developing a new product. The designer needs to be informed about changes in available stock sizes for those parts that are components of the new product. Similarly, he/she needs to be informed about any changes in stock-cost options (the sub parts cannot be too expensive). Whenever Chapter 5. Result Shared Cooperation 99 the designer receives a request from the chief designer concerning a meeting about the new product, the designer needs to present the current status of the new product and also be able to present any related and important changes to, for example, stock-cost options. The above scenario could be modeled by introducing the following four agents: Agent 1 (inventory agent), Agent 2 (purchasing agent), Agent 3 (chief designer), and Agent 4 (the designer). Agent 4 will subscribe to events that are generated by the other agents. When subscribing to the events, Agent 4 can specify how the results should be transmitted. For example, it may want to handle only one result, a set of results, or a stream of results (see for example the KQML performatives stream-in and stream-all (Finin et al., 1994)). The events in our scenario indicate the following: • E1, change in available stock sizes for sub parts involved in the new product. • E2, change in stock-cost options, i.e. new prices. • E3, request for group meeting in the chief designer’s office. Agent 1 e1 e3 Agent 4 Agent 2 Agent 3 e2 Figure 22: Agent 4 receives notifications from other agents Chapter 5. Result Shared Cooperation 100 Having subscribed to the above events (Figure 22), the designer (Agent 4) can then take responsive action (preparations for meeting) based upon the results that are received when at least one result has been obtained from all three agents, with the result from Agent 3 (E3) being the last one. In our scenario, the events are signaled to the designer as illustrated in Figure 23 (example borrowed from (Chakravarthy and Mishra, 1993)). e11 E1 E2 e13 e12 e22 e21 e31 E3 e32 Time t1 t2 t3 t4 t5 t6 t7 t8 Figure 23: Event time line I adopt the notation E (e1 ,e2 , ...en ) to represent an event E, where e1 and e2 denote the first occurrence and second occurrence of E, respectively. Given the above semantics, in order for Agent 4 to take responsive action, the following issues need to be addressed: • when should the triggered action be executed? • assuming that each event e1, e2, and e3, by means of event parameters, carry results that will influence the work done by Agent 4, then which set of event parameters will be involved when the triggered action is executed? Using composite events, the above scenario would be modeled as a composite Chapter 5. Result Shared Cooperation 101 event CE-1. This will allow Agent 4 to take responsive action based upon different combinations of the event occurrences, i.e. according to a chosen event consumption mode. CE-1: ((E1(parameters) and E2(parameters)) sequence E3(parameters)) • In the recent context, only the most recent occurrence of the initiator for any event that has started the detection of a composite event will be used. All other event occurrences will be deleted once the composite event has been detected. Thus, the first occurrence of CE-1 and the triggered action will be based upon the following event occurrences along with their event parameters:< e22 , e13 , e31 >. • In the chronicle context the oldest occurrence of each component event will be used. Thus, the first occurrence of CE-1 and the triggered action will be based upon the following event occurrences along with their event parameters: < e21 , e11 , e31 >. The second occurrence of CE-1 will include: < e12 , e22 , e32 >. • In the continuous context each initiating event occurrence is a candidate for starting the detection of CE-1. Thus, the first four occurrences of CE-1 will be as follows: < e21 , e11 , e31 >, < e11 , e22 , e31 >, < e12 , e22 , e31 >, and < e22 , e13 , e31 >. • In the cumulative context all initiators are combined into one event detection. Thus, the first (only) occurrence of CE-1 will include the following: < e21 , e11 , e12 , e22 , e13 , e31 >. In current approaches for result sharing it is not obvious how the above scenario would be supported. Although most approaches within multi-agent systems (e.g. Chapter 5. Result Shared Cooperation 102 SHADE (Kuokka et al., 1993)) can support reaction to multiple result notifications, these approaches would try to encode the semantics by using condition-action rules. This will imply that control knowledge needs to be incorporated in rule specification. For example, in order to reflect the desired ordering between rule actions, rules need to be arranged in a strict sequential thread. This also implies that condition specifications need to be repeated in several rules. Even though primitive events are introduced, there are complex events that cannot be provided by using multiple rules based on primitive events (Chakravarthy and Mishra, 1993). Importantly, event consumption modes can only be supported if composite events are used. The absence of composite events will imply the semantics of the recent consumption mode. Thus, it would not be possible to provide a range of event contexts for condition action rules which most DAI based systems for result sharing are currently using. The conclusion is that composite events as defined within active databases are useful for specifing multiple result notifications. 5.3 Pruning Result Notifications and Subscriptions In order not to burden a consumer with uninteresting result notifications, it is of importance that mechanisms are provided that offer subscription to result notifications at various levels of granularity. For example, an agent may wish to subscribe to results according to one of the following levels of granularity: 1. any result generated by a given operation, or 2. specific results such as p(x). Chapter 5. Result Shared Cooperation 103 Previous work on result sharing (information sharing) have suggested a SQL construct such as the where clause in order to prune the number of result notifications and subscriptions (Kuokka and Harada, 1996). When considering ECA rules for result sharing, it is of importance that similar mechanisms are supported for pruning the number of result notifications and subscriptions. As for now, ECA rule subscriptions provide support for the first category, i.e. the most general type of subscription. However, the support for the second category is supported in an ad hoc manner and has several limitations. I next demonstrate that current ECA based approaches are not suitable for context based subscription with regard to: • event consumption; since a composite event can consume any event occurrence of its event components, some events will be pruned too early and several “nonevents” will be generated. • maintenance; as context specific information is redundantly duplicated in associated rule conditions. • efficiency; in terms of unnecessary triggering of ECA rules in order to check in which context the event was generated. Some of these problem were originally revealed in (Berndtsson and Lings, 1995) and later on also verified by the implementation of the task sharing protocol. In order to address the limitations the notion of context based subscriptions for ECA rules is introduced. Chapter 5. Result Shared Cooperation 5.3.1 104 Example In this section a simple application scenario will be described. This application scenario will be used as a running example in the forthcoming sections. Consider a scenario where a CIMstation can be in one of five different status modes such as break-down, idle, busy, unloading or repair. It can change its current status by invoking the method changeStatus. The invocation of method changeStatus is associated with an event E0 , which is generated after the execution of method changeStatus. One of the event parameters of E0 indicates the current status mode of the CIMstation. Each of the five different status modes may require a special response, each captured by a rule. Thus, the following five rules are introduced: R1 which is specifically interested when event E0 indicates a machine breakdown. R2 which is specifically interested when event E0 indicates that a machine is idle. R3 which is specifically interested when event E0 indicates that a machine is busy. R4 which is specifically interested when event E0 indicates that a machine is unloading. R5 which is specifically interested when event E0 indicates that a machine is undergoing repair work. The above relations between events and rules can be captured by the following set of parameters (Berndtsson, 1994; Berndtsson and Lings, 1995): • Let Ei be an event which is generated, e.g. E0 . • Let REi be the set of rules that are triggered when event Ei is generated, e.g. Chapter 5. Result Shared Cooperation 105 all rules that have subscribed to event E0 . • Let Ei(j) be a specialization of event Ei with respect to a specific instantiation of the event parameters. That is, event Ei is generated in a specific context j. For example, E0(break−down) implies that E0 was generated in context break − down. • Let REi(j) be the set of rules that are interested when event Ei is generated in context j. For example, only rule R1 is interested when event E0 is generated in context break − down. 5.3.2 Limitations of current ECA approaches Event Consumption As mentioned in section 5.1, event parameters can be used for providing context information in ECA rule based systems. Typically, these are evaluated in rule conditions together with other non event parameter predicates. Within CIS environments, they can be used to transfer results between producers and consumers of results. Consider a scenario in which an agent is monitoring the status of two CIMstations and that it will take responsive action when both CIMstations have signalled that they are idle. In this example they do not have to be idle at the same point in time. In order to detect status changes at these two CIMstations, a composite event defined as a sequence1 of E0 and E0 is used to monitor the incoming status changes, as shown in Figure 24. Suppose also that a rule has subscribed to the composite event which will only be executed if the constituents of the composite are matched with the status argument of idle in each case, i.e. E0(idle) should have occurred at 1 A conjunction is not appropriate since the composite event would be signalled at the first occurrence of E0 . This is due to the fact that the constituents of the composite are of the same event type Chapter 5. Result Shared Cooperation 106 time 1 e0 (idle) 2 e0 (busy) 3 e0 (idle) e0 e0 Seq E0 (idle) 4 e0 (busy) 1 3 e0 e0 2 4 R R E0 (busy) Figure 24: Chronicle consumption mode, event context checked by rule condition both CIMstations. In the scenario of Figure 24, one would expect a rule firing based on the event occurrences < e01 , e03 > to occur. Considering the four event consumption modes (recent, chronicle, continuous, cumulative), I conclude that none of them can provide the required semantics. Although several composite events will be generated, each and every rule condition will not be satisfied. Hence, no rule firing will occur, see Table 9. Event Consumption Composite Event Occurrence recent never 1 2 chronicle < e0 , e0 >, < e03 , e04 > continuous < e01 , e02 >, < e02 , e03 >, < e03 , e04 > cumulative < e01 , e02 >, < e03 , e04 > Table 9: Non logical event consumption Rule Execution no no no no Chapter 5. Result Shared Cooperation 107 It is apparent that, in the above scenario, there is a problem with respect to event consumption for composite events. The characteristics of these composite events are that the event components are of the same event type, and they are generated in different event contexts (different instantiations of the event parameters). In addition, the event components are related to each other beyond matching of common identifiers such as transaction id and user id. In such a system several non-event occurrences will be generated, since a composite event will take any event occurrence of the correct type for detection of its event components. Maintenance An important reason for introducing composite events is that they provided a higher level of abstraction than previous approaches. For example, a single composite event could now express what otherwise had to be captured by several rule conditions. Hence, redundant rule condition specifications could be extracted and then defined once, i.e. by the aid of a composite event. Although composite events have been successfully introduced, there is still a similar maintenance problem with respect to the definition of event parameter checking. In current approaches a user has to consider every rule associated with an event, since the specification of event parameter checking has to be duplicated throughout the rule base. Consider a scenario in which a composite event is used to monitor unusual breakdowns in a manufacturing environment, Figure 25. The composite event indicates a change from status mode idle to status mode break-down. Several rules may have subscribed to the composite event. As current approaches only support definition of event parameter checking in rule conditions, this definition has to be redundantly Chapter 5. Result Shared Cooperation 108 Rule - 1 unusual C: idle followed by break-down ... break-down A: ... SEQ Rule - n C: idle followed by break-down ... E0( * ) E0( * ) A: ... Figure 25: Context specific information is redundantly duplicated in rule conditions duplicated for each rule which is triggered by the composite event. It is apparent that, in the above situation, there is a maintenance problem with respect to the event and rule sets if one wishes to refine the definition of what constitutes an unusual break-down event. If the composite event is redefined to a change in status from either idle or repair to break-down, then one must identify and change each rule using the event. Hence, from a maintenance perspective, it would have been better if the definition of what constitutes an unusual break-down event could have been abstracted and centralized, rather than redundantly duplicated in several rule conditions. Efficiency Reconsider the example in 5.3.2 and assume that event E0 was generated in context break − down, i.e. E0(break−down) . For each specialization of an event type, a corresponding rule condition needs to be modeled. When an event is raised, all rules whose condition contains a specialization of the raised event are notified. These rules are triggered, for condition evaluation, in order to determine whether specialized versions Chapter 5. Result Shared Cooperation 109 of the raised event have occurred. For the purpose of this chapter we can define rule R1 in SAMOS (Gatziu and Dittrich, 1993) as follows: DEFINE EVENT E0 AFTER.CIMstation.changeStatus(char* status) DEFINE RULE R1 ON EVENT E0 IF status=’break-down’ AND .... DO NotifyProductionManager(..., char* status) This means that, when an occurrence of event E0 is generated, all rules that have subscribed to event definition E0 will be triggered, i.e. RE0 . In our scenario five rules will be evaluated in order to check whether the context, i.e. value of the status parameter, satisfies the condition part. If the event parameter is equal to break-down, then we have a situation in which: • we have notified one rule (R1 ) that is interested in the generated event E0 and matches the context (break-down). • we have notified four rules (R2 , R3 , R4 , R5 ) which are interested in the generated event E0 , but do not match the context (e.g. idle, busy) in which the event was generated. The above can be expressed by, URCEi(j) which is the ratio of unnecessary rule checks which are performed when event Ei is generated in context j. URCEi(j) = 1 − Then, URCE0(break−down) is, REi(j) REi Chapter 5. Result Shared Cooperation 1− 110 RE0(break−down) 1 = 1 − = 0, 8 RE0 5 The above solution does not scale well. In the above example as much as 80 percent of the rule checking performed in the given scenario is unnecessary, since the contexts (event parameters) are checked in rule conditions. However, using the ECA model gives the user little choice in reducing rule checking further, since the user must perform the context check in rule conditions. 5.3.3 Context Based Subscriptions As I have demonstrated in previous sections, most active database systems are based on event algebras which do not allow conditions. Thus, every check of event parameters has to be performed by rule conditions. This implies problems with respect to: event consumption, maintenance of events and rules, and unnecessary triggering of rules. In order to address these problems I follow the approach in (Pissinou et al., 1994) which allows: ... simple conditions, such as X > 10 < on attribute X of an event, or a boolean predicate on attributes of events, to be included in the algebra for composite events. Note that the boolean predicates in a composite event do not refer to items stored in the database, and can be evaluated from the given event, without querying the database. This approach has a particular advantage in that it gives a better mechanism for handling event consumption, and so gives finer control of event semantics and better structure to event and rule bases. As a side effect efficiency will be improved. The Chapter 5. Result Shared Cooperation 111 efficiency aspect of moving constraints from rule conditions into event detectors has recently been addressed in (Paton et al., 1998). Given the above, a refined ECA model can then be described as: ON EVENT: a primitive or composite event IF Event condition (event restriction): a simple boolean expression on the event attributes IF Condition: either a boolean expression or a SQL query on the database DO Action: either a database operation or an arbitrary application program that is executed. Concerning the expressiveness of the event condition the following definition is used in the thesis: <event condition> ::= <conjunct expression> AND <logical event clause> | <disjunct expression> OR <logical event clause> | <logical event clause> <conjunct expression> ::= <conjunct expression> AND <logical event clause> | <logical event clause> <disjunct expression> ::= <disjunct expression> OR <logical event clause> | <logical event clause> <logical event clause> ::= <event parameter> EQUAL <constraint value> <constraint value> ::= <event parameter> | <constant> In the forthcoming sections I demonstrate that introducing logical events is a promising route to take in order to address the previously introduced problems with event consumption, maintenance, and efficiency. Chapter 5. Result Shared Cooperation 112 Event Consumption In section 5.3.2 it was identified that the current event consumption modes could not provide the required semantics for event components of the same type that are logically related to each other. In contrast to traditional ECA approaches, use of logical events (as shown in Figure 26) for the same scenario will result in a single rule firing. time 1 e0 (idle) 1 e1 (idle) 2 e0 (busy) 3 e0 (idle) e1 1 e1 2 e1 (idle) 2 4 e1 (busy) R Seq E1( idle ) E0( * ) E1( idle ) E0( * ) Figure 26: Chronicle consumption mode, event context checked by logical events In this scenario an explicit event E1 is created and associated with the method event E0 . The explicit event will then get event notifications each time E0 occurs. The semantics of E1 is to filter out uninteresting event occurrences. Hence, it will only Chapter 5. Result Shared Cooperation 113 be raised if its logical condition over event parameters is satisfied. In this scenario, E1 will be raised each time the status parameter is equal to idle. Event Consumption Composite Event Occurrence Rule Execution recent never no 1 2 chronicle < e1 , e1 > yes continuous < e11 , e12 > yes 1 2 cumulative < e1 , e1 > yes Table 10: Logical event consumption When using logical events we get a very clean and precise semantics for when events are raised. This is also reflected in that only interesting composite event occurrences are signaled, see Table 10. Maintenance With logical events, a user can define a logical expression over the event parameters centrally, rather than changing several (redundantly duplicated) rule conditions. Reconsider the scenario where a composite event is used to monitor unusual breakdowns in a manufacturing environment, as shown in Figure 25. If logical events are used for the same scenario then we can introduce two explicit events E1 and E2 , which are associated with method event E0 . Events E1 and E2 are defined to detect whether the status parameter is equal to idle or break-down, respectively (Figure 27). When redefining the semantics of what constitutes an unusual break-down to a change in status from either idle or repair to break-down then: 1. we can redefine the logical expression of E1 to that the status parameter must satisfy the value of idle or repair, (Figure 28), or Chapter 5. Result Shared Cooperation 114 Rule - 1 unusual break-down C: ... A: ... SEQ Rule - n E1( idle ) E2( break down ) E0( * ) E0( * ) C: ... A: ... Figure 27: Context specific information is captured by a logical event 2. we can introduce a new explicit event E3 which can detect that the status parameter is equal to repair, (Figure 29). The first approach implies a single change to the logical condition (event restriction) of E1 , whereas the second approach requires that additional explicit events and composite events are defined. In contrast to traditional ECA approaches, event and rule definitions are independent of each other. Hence, there is no need to redefine rule conditions, for example, when we redefine an event. Efficiency Consider that the CIM scenario in 5.3.2 is captured by logical events. The method event E0 will be specialized into five logical explicit (abstract) events. Each logical event is defined to detect one of the five status modes of a CIM station, and is associated with one rule as follows: Chapter 5. Result Shared Cooperation 115 Rule - 1 unusual C: ... break-down A: ... SEQ Rule - n E1( idle | repair ) E0( * ) C: ... E2( break down ) A: ... E0( * ) Figure 28: Redefining logical expression of E1 Rule - 1 unusual break-down C: ... A: ... SEQ Rule - n C: ... OR E1( idle ) E3( repair ) E0( * ) E0( * ) A: ... E2( break down ) E( * ) Figure 29: Introducing a new explicit event E3 Chapter 5. Result Shared Cooperation E1 116 which detects the situation when event E0 indicates a machine breakdown. Rule R1 has subscribed to E1 E2 which detects the situation when event E0 indicates that a machine is idle. Rule R2 has subscribed to E2 E3 which detects the situation when event E0 indicates that a machine is busy. Rule R3 has subscribed to E3 E4 which detects the situation when event E0 indicates that a machine is unloading. Rule R4 has subscribed to E4 E5 which detects the situation when event E0 indicates that a machine is undergoing repair work. Rule R5 has subscribed to E5 When the method event E0 is generated in this scenario five logical primitive events will be evaluated (E1 , E2 , E3 , E4 , E5 ), one will be detected, and will trigger one rule. Hence, for example, only those rules are triggered which are explicitly interested when event E0 indicates a break-down. This can be expressed by URCE0(break−down) as follows, 1− 5.3.4 RE1 (break−down) 1 =1− =0 RE1(break−down) 1 Summary of Findings In this chapter the identified active capabilities are: 1. Composite events for specifying when to take responsive reactions to multiple result notifications. 2. Event restrictions (primitive and composite) for supporting context based subscriptions. Chapter 5. Result Shared Cooperation 117 3. External events for reacting to results provided by remote agents. 4. Passing of event parameters for distributing result notifications. 5. A refined rule subscription technique in order to reflect the semantics of result sharing. Chapter 6 Conclusions 6.1 Desirable Active Capability Properties for Supporting Cooperation Strategies in CIS Based on the findings in this thesis and the implementation of various proof of principle applications (Schwinger, 1995; Hagen, 1996) in ACOOD (Berndtsson and Lings, 1992; Engström et al., 1997), a set of desirable active capability properties for supporting cooperation strategies in CIS can now be identified. Briefly, the identified properties are: • Composite events. These are of importance both when supporting task sharing and result sharing. Concerning task sharing they are used to express the semantics of guarding conditions in the state diagrams, i.e. when to take the next step in the task sharing protocol. There is evidence that most aspects of a task sharing protocol can be captured by the event operators conjunction and disjunction. For some ADBMS it can be more appropriate to use other event operators such as sequence, but in general conjunction and disjunction seem 118 Chapter 6. Conclusions 119 to be satisfactory. The recent event consumption mode together with event restrictions (see below) have been observed to be satisfactory with respect to supporting task sharing, see Chapter 4. As for result sharing, no further requirements concerning event operator and event consumption mode have been observed, see Chapter 5. • Event restrictions (primitive and composite). These are of importance when supporting task sharing and/or result sharing. A composite event that is used to monitor a task shared protocol needs to be able to match incoming events with the correct task, contract etc. Thus, it cannot be completed by consuming event occurrences arbitrarily. The use of logical events (or modified same parameter) has been identified as useful here, see Section 4.1.3. When supporting context based subscriptions in result sharing it is of crucial importance that mechanisms for event restrictions are available, see Section 5.3.3. • External events. These are of importance when supporting task sharing and/or result sharing, since events may be generated by other agents. The ability to react to external events will allow a user to build composite events that contain external sub events, see for example Chapter 4 and Section 5.2. • Passing of event parameters. The results from operations are transported to subscribers by the means of event parameters. This information needs to be passed on to condition evaluation and/or action execution of an ECA rule, see Section 5.1. • Conflict resolution. This is of importance when multiple rules are triggered Chapter 6. Conclusions 120 by the same events. With regard to this, rules that are used to create the infrastructure of a task sharing protocol, e.g. RprepareCollectBids , need to be executed before those rules that send out announcements, e.g. RdistributeP roposal . This can be achieved by using rule priorities, see Chapter 4. • Refined rule subscription. A refined ECA rule subscription has been introduced in order to reflect the semantics of result sharing. Briefly, the semantics are: a consumer of results subscribes to an event that is raised after the completion of an operation that produces them and the outcome of the operation is passed along as an event parameter to the consumer. See section 5.1 for more details. • Action execution. Actions are executed in response to events, and they need to be executed for a specific instance (or object), as identified in the proof of principle implementation (Hagen, 1996). Thus, in ADBMS terms the action execution is referred to as instance-oriented binding. • Dynamic creation of events and rules. Depending upon the dynamics of the chosen cooperation strategy and the application in mind, dynamic creation of events and rules may be needed, see Chapter 4. If a task can be decomposed into subtasks in advance (e.g. when constructing a system), then there is no need for dynamic creation of events and rules. 6.2 A Comparison I next compare the above set of desired active capability properties with features supported by current ADBMS prototypes (ACOOD (Engström et al., 1997), Ode (Lieuwen et al., 1996), SAMOS (Gatziu, 1994), Sentinel (Chakravarty et al., 1994). Chapter 6. Conclusions 121 The table (Table 11) is based upon what is currently implemented and documented in the official versions of each prototype. Hence, although external events were implemented for one of our proof of principle applications, this feature has not yet been incorporated in the official version of ACOOD. Feature Composite events: conjunction and disjunction Event restrictions: logical events or same OID External events Passing of event parameters to condition and/or action Conflict resolution Refined rule subscription Action execution: instance-oriented binding Dynamic creation of events and rules ACOOD Ode Samos Yes Yes Yes Sentinel Yes Yes Yes Yes No Yes No Yes No Yes Yes, instance level events Yes Yes Yes No Yes No No Yes Yes No Yes Yes No Yes Yes No No Only rules Table 11: Active (CIS) capability properties supported by current ADBMSs. ADBMS prototypes have been developed for different types of applications, where each application type has its requirements concerning supported active features. Hence, it is not surprising, from the above table, that none of the above implemented ADBMS prototypes support all useful features. However, most of them have the potential, with a few extensions, to be able to participate in a CIS environment. 6.3 Significance As I have addressed in the thesis one important feature of current and future information systems is the ability to cooperate. In a special issue of IEEE Expert on Chapter 6. Conclusions 122 CIS Mylopoulos and Papazoglou state that the advances of CIS technologies will not come from any single research area such as database systems, artificial intelligence or distributed systems. It is argued that (Mylopoulos and Papazoglou, 1997): ..although further enhancements are desirable, the greatest leverage for technology advancement should come from their integration into a seamless technology for building and managing cooperative information systems. The approach taken in this thesis is to view CIS as a synthesis of DB and DAI, where the thesis can be viewed as a response to how DB and DAI results can be integrated into a seamless technology for supporting CIS. The significance of the work reported in the thesis concerns two major issues: • How databases can participate as agents in CIS using active database technology. • Architectural issues of relevance to CIS, for problems that require a combination of DAI and DB solutions. The achievements in the thesis concern three major issues: • active capabilities for supporting cooperation strategies. • a general method for mapping FSMs to ECA rules. • separation of result sharing and information sharing with respect to a database framework. Chapter 6. Conclusions 123 In summary, ECA rules have proven to be useful in non-database areas such as real-time and workflow. In addition to these two non-database areas, I have in this thesis demonstrated that ECA rules are also useful for supporting cooperation strategies. As a consequence, ECA rules can now be considered as an alternative rule format for supporting, for example, coordination within DAI. 6.4 Future Work Assuming that ADBMSs are extended to support the desirable properties for supporting cooperation strategies in a CIS environment, then the following issues can be investigated: efficiency of logical composite events, tools and methodologies, rollbacks of composite events and rule actions, and recovery. 6.4.1 Efficiency of Logical Composite Events In section 5.3.3 one could argue that much of the previous context checking has been moved from rule conditions to logical events. Thus, the same amount of work still has to be done by logical events, although run-time rule triggering may have been reduced. I address this argument by considering logical composite events. Consider a scenario where users can raise two primitive events E0(answer, user) and E1(colour, user). The event parameters can be instantiated as described in Figure 30. We then introduce a composite event CE defined as a conjunction of E0 and E1. If we assume that the event occurrences of the primitive events are E0, E1, E0, .., E1, then the detection of the composite event in both the recent and chronicle context will be the same. Typically, ECA rule languages cannot express event parameter matching within Chapter 6. Conclusions 124 a composite event. Hence, in building a composite any event occurrence of its event components can be used. Thus, we need to associate four rules with the composite event in order to capture the various combinations of the event parameters. R0: (Yes, Blue) R1: (No, Blue) R2: (Yes, Red) R3: (No, Red) CE: (E0:(*), E1(*)) E0(answer: {Yes, No}, user:{A, B}) E1(colour:{Blue, Red}, user:{A, B}) Figure 30: Non logical composite event (simple scenario) Using logical events for the above scenario we get the set of events and rules shown in Figure 31. Although there is no unnecessary triggering of rules when using logical events, it leads to even more condition checks than with a traditional non-logical approach. For example, when 100 events are generated for each primitive event, then in a non logical approach we would check 400 conditions (0 event conditions + 400 rule conditions), whereas with a logical approach we would have to check 500 conditions (400 event conditions + 100 rule conditions), see Table 12. In the above example a context check is performed with respect to answer and colour. If the rule execution is dependent upon all the event parameters answer, colour, and user, then we need to add four new rules for the non logical approach, Chapter 6. Conclusions R0: 125 R1: CE00(Yes, Blue) E00(Yes) CE01(No, Blue) E01(No) E0(answer: {Yes, No}, user:{A, B}) R3: CE02(Yes, Red) E02:(Blue) R4: CE(No, Red) E03(Red) E1(colour:{Blue, Red}, user:{A, B}) Figure 31: Logical composite event (simple scenario) Event Cond. CE occurrences Rule Conditions Rule Actions Non Logical 0 100 100 x 4 100 Logical 100 x 4 100 100 100 Table 12: Number of condition evaluations, simple example (see Figure 32), and modify the existing event and rule base for the logical approach as shown in Figure 33. It is apparent that this will lead to an increased triggering of rules. Under this scenario we can see that the non logical approach will lead to a total of 800 condition checks, whereas a logical approach would only need 600, see Table 13. Although initial work on logical composite events has been reported (Gehani et al., 1992; Pissinou et al., 1994; Berndtsson and Lings, 1995; Schwinger, 1995), there are still open research questions to address. In particular, how can logical composite Chapter 6. Conclusions 126 R0: (Yes, Blue), user=A R1: (Yes, Blue), user=B R2: (No, Blue), user=A R3: (No, Blue), user=B R4: (Yes, Red), user=A R5: (Yes, Red), user=B R6: (No, Red), user=A R7: (No, Red), user=B CE: (E0:(*), E1(*)) E0(answer: {Yes, No}, user:{A, B}) E1(colour:{Blue, Red}, user:{A, B}) Figure 32: Non logical composite event (complex scenario) R1: user=B R0: user=A R3: user=B R2: user=A R5: user=B R4: user=A R7: user=B R6: user=A CE00(Yes, Blue) CE01(No, Blue) CE02(Yes, Red) CE(No, Red) E00(Yes) E01(No) E0(answer: {Yes, No}, user:{A, B}) E02:(Blue) E03(Red) E1(colour:{Blue, Red}, user:{A, B}) Figure 33: Logical composite event (complex scenario) Chapter 6. Conclusions 127 Event Cond. CE occurrences Rule Conditions Rule Actions Non Logical 0 100 100 x 8 100 Logical 100 x 4 100 100 x 2 100 Table 13: Number of condition evaluations, advanced example events be implemented efficiently? In a recent performance evaluation of four active object-oriented database systems (Geppert et al., 1998) it is shown that adding additional functionality such as logical events to an event specification may not necessarily degrade the performance. The active database system Ode (Gehani et al., 1992) is an example of an efficient implementation of logical composite events. Furthermore, when should rule conditions be used instead of logical composite events? In this section I have provided a simple and a complex scenario. There is an indication that logical composite events may be more appropriate for use in complex scenarios than for simpler examples. 6.4.2 Tools and Methodologies The method introduced earlier for mapping task shared protocols into ECA rules (see chapter 4) can benefit from a tool which automates the process of generating ECA rules. An algorithm that describes the mapping procedure will ease the development of such a tool. It is also envisioned that the mapping method introduced can be the starting point for further research on tools and methodologies for supporting active capability during the software engineering process. As of now, the need for such tools and methodologies have been identified in the literature (Dayal, 1995; Berndtsson and Hansson, 1996; Diaz, 1998), but there are no suggestions available which fully address this problem. Chapter 6. Conclusions 6.4.3 128 Rollbacks of Composite Events and Rule Actions Rollbacks of composite events and rule actions due to cancelled information can become a problem when dealing with speech acts such as de-commit and/or information sharing in an ADBMS context. With regard to a speech act that de-commits a previously committed agreement, e.g. a previously awarded task, this causes problems for an ADBMS, as the protocol would need to back track in order to award the task to another agent, or in the worst case restart the whole protocol. Concerning the latter, a protocol based on ADBMS features would have to roll back signaled events and executed rule actions. Information sharing introduces a higher level of uncertainty, as the received information may be cancelled at a later stage. Thus, in database terms we are then dealing with uncommitted information. Hence, if composite events are built and rules are fired based upon the completion of events, then we need to provide a user with techniques and/or restrictions on how to use uncommitted information together with active capability. For example, assume that a composite event is completed and triggers several rules. At a later stage, the information that caused the completion of the composite event is cancelled. In a sense, this means that the composite event should not have occurred. The question is then, i) should one ignore an attempted rollback of the composite event and its associated triggering of rules, or ii) try to rollback the composite event and try to undo the effect of the previously triggered rule actions. As of now, there are no techniques available which fully address this problem. 6.4.4 Recovery Most DAI based approaches have not addressed the issue of manipulation of shared data or incorporate limited and ad hoc database functionality. The lack of database Chapter 6. Conclusions 129 functionality in DAI systems implies that most approaches do not have a robust way of supporting failures, recovery, and persistence. This has previously been pointed out by Michael H. Huhns in (Huhns, 1994), where there is a discussion of how transaction-processing concepts (consistency and integrity of data), persistence and logging (recover from failures), and security (protection against corruption of information) should be incorporated into DAI based approaches. The paper concludes that: Agents with such capabilities would be more robust and, thus more useful. Based on the work reported in this thesis, the question opens of whether DAI based cooperation protocols can utilize recovery and persistence properties of an active database system. Bibliography ACT-NET Consortium (1996). The Active Database Management System Manifesto: A Rulebase of ADBMS Features. ACM Sigmod Record, 25(3). Akker, J. and Siebes, A. (1997). Enriching Active Databases with Agent Technolog. In Proceedings of the First International Workshop on Cooperative Information Agents (CIA-97), pages 116–125. Anwar, E., Maugis, L., and Chakravarthy, S. (1993). A new perspective on rule support for object-oriented databases. In Proceedings of the International Conference on Management of Data, pages 99–108. Bailey, J. A., Georgeff, M., Kemp, D. B., Kinny, D., and Ramamohanarao, K. (1995). Active Databases and Agent Systems - A Comparison. In 2nd International Workshop on Rules in Database Systems (RIDS95), pages 342–356. Balasubramanian, S., Maturana, F., and Norrie, D. (1996). Multi-Agent Planning and Coordination for Distributed Concurrent Engineering. International Journal of Cooperative Information Systems, 5(2–3):153–180. Barbuceanu, M. and Fox, M. (1995). COOL: A Language for Descriping Coordination in Multi Agent Systems. In First International Conference on Multi-Agent Systems, pages 17–24. AAAI Press / MIT Press. 130 BIBLIOGRAPHY 131 Barbuceanu, M. and Fox, M. (1996). Capturing and Modelling Coordination Knowledge for Multi-Agent Systems. International Journal of Cooperative Information Systems, 5(2–3):275–314. Barbuceanu, M. and Fox, M. S. (1994). COOL - A Language for Describing Coordination Models in Multi-Agent Systems. Technical report, University of Toronto. Berndtsson, M. (1994). Reactive Object-Oriented Databases and CIM. In Proceedings of the 5th International Conference on Database and Expert System Applications, Lecture Notes in Computer Science, pages 769–778. Springer-Verlag. Berndtsson, M., Chakravarthy, S., and Lings, B. (1996a). Cooperative Problem Solving: A New Direction for Active Databases. In Proceedings of the International Symposium on Cooperative Database Systems for Advanced Applications CODAS’96. Berndtsson, M., Chakravarthy, S., and Lings, B. (1996b). Coordination Among Agents Using Reactive Rules. Technical Report HS-IDA-TR-96-011, Department of Computer Science, University of Skövde. Berndtsson, M., Chakravarthy, S., and Lings, B. (1997a). Extending Database Support for Coordination Among Agents. International Journal of Cooperative Information Systems. Berndtsson, M., Chakravarthy, S., and Lings, B. (1997b). Result Sharing Among Agents Using Reactive Rules. In Proceedings of the First International Workshop on Cooperative Information Agents (CIA-97), number 1202 in Lecture Notes in Artificial Intelligence, pages 126–137. Springer. BIBLIOGRAPHY 132 Berndtsson, M., Chakravarthy, S., and Lings, B. (1997c). Task Sharing Among Agents Using Reactive Rules. In Proceedings of the Second IFCIS Conference on Cooperative Information Systems (CoopIS-97), pages 56–65. Berndtsson, M. and Hansson, J. (1996). Workshop Report: The First International Workshop on Active and Real-Time Database Systems (ARTDB-95). ACM SIGMOD Record, 25(1):64–66. Berndtsson, M. and Lings, B. (1992). On Developing Reactive Object-Oriented Databases. IEEE Quarterly Bulletin on Data Engineering, Special Issue on Active Databases, 15(1-4):31–34. Berndtsson, M. and Lings, B. (1995). Logical events and eca rules. Technical Report HS-IDA-TR-95-004, University of Skövde. Bond, A. and Gasser, L. (1988a). An Analysis of Problems and Research in DAI. In Readings in Distributed Artficial Intelligence, chapter 1, pages 3–35. Bond, A. and Gasser, L., editors (1988b). Readings in Distributed Artficial Intelligence. Morgan Kaufmann. Brodie, M. (1988). Future Intelligent Information Systems: AI and Database Technologies Working Together. In Readings in AI and Databases. Morgan Kaufmann Publisher Inc. Brodie, M., Bobrow, D., Lesser, V., Madnick, S., Tsichritzis, D., and Hewitt, C. (1988). Future Artificial Intelligence Requirements For Intelligent Database Systems. In Proceedings from the Second International Conference on Expert Database Systems, pages 45–62. BIBLIOGRAPHY 133 Brodie, M., Jarke, M., and Papazoglou, M., editors (1994). Proceedings of the 2nd International Conference on Cooperative Information Systems CoopIS-94. Brodie, M. L. and Ceri, S. (1992). On Intelligent and Cooperative Information Systems: A Workshop Summary. International Journal of Intelligent and Cooperative Information Systems, 1(2):249–290. Bussler, C. and Jablonski, S. (1994). Implementing Agent Coordination for Workflow Management Systems Using Active Database Systems. In Proceedings of the RIDE-ADS’94 Workshop, pages 53–59. Chaib-draa, B. (1995). Industrial Applications of Distributed AI. Communications of the ACM, 38(11):49–53. Chakravarthy, S., editor (1992). Special Issue on Active Databases, volume 15. IEEE Quarterly Bulletin on Data Engineering. Chakravarthy, S. (1997). Active Databases and Agents in Cooperative Information Systems. Panel at the Second IFCIS International Conference on Cooperative Information Systems (CoopIS-97). Chakravarthy, S., Blaustein, B., Buchmann, A. P., Carey, M., Dayal, U., Goldhirsch, D., Hsu, M., Jauhari, R., Livny, M., McCarthy, D., McKee, R., and Rosenthal, A. (1989). HiPAC: A research project in active time-constrained database management - final technical report. Technical report, Xerox Advanced Information Technology. Chakravarthy, S., Karlapalem, K., Navathe, S. B., and Tanaka, A. (1993). Database supported cooperative problem solving. International Journal of Intelligent and Cooperative Information Systems, 2(3):249–287. BIBLIOGRAPHY 134 Chakravarthy, S. and Mishra, D. (1993). Snoop: An Expressive Event Specification Language For Active Databases. Technical Report UF-CIS Technical Report TR-93-007, University of Florida. Chakravarthy, S. and Mishra, D. (1994). Snoop: An expressive event specification language for active database. Knowledge and Data Engineering Journal, 14:1–26. Chakravarthy, S. and Widom, J., editors (1996). Special Issue on the Active Database Systems, number 2. Journal of Intelligent Information Systems (JIIS). Chakravarty, S., Krishnaprasad, V., Anwar, E., and Kim, S. K. (1994). Composite Events for Active Databases: Semantics Contexts and Detection. In 20th International Conference on Very Large Databases (VLDB94), pages 606–617. CoopIS-95 (1995). Proceedings of the 3rd International Conference on Cooperative Information Systems CoopIS-95. CoopIS-96 (1996). Proceedings of the First IFCIS International Conference on Cooperative Information Systems (CoopIS-96). CoopIS-97 (1997). Proceedings of the Second IFCIS International Conference on Cooperative Information Systems (CoopIS-97). Dayal, U. (1995). Ten Years of Activity in Active Database Systems: What Have We Accomplished? In Proceedings of the 1st International Workshop on Active and Real-Time Database Systems (ARTDB-95), Workshops in Computing, pages 3–22. Springer-Verlag. Diaz, O. (1998). Tool Support. In Paton, N., editor, Active Rules for Databases. BIBLIOGRAPHY 135 Diaz, O., Paton, N., and Gray, P. (1991). Rule Management in Object Oriented Databases: A Uniform Approach. In Proceedings of the 17th International Conference on Very Large Data Bases, pages 317–326. Engström, H., Berndtsson, M., and Lings, B. (1997). ACOOD Essentials. Technical Report HS-IDA-TR-97-010, University of Skövde. Finin, T., Fritzson, R., McKay, D., and McEntire, R. (1994). Kqml - an information and knowledge exchange protocol. In Fuchi, K. and Yokoi, T., editors, Knowledge Building and Knowledge Sharing. Ohmsha and IOS Press. Gatziu, S. (1994). Events in an Active Object-Oriented Database System. PhD thesis, University of Zurich. Gatziu, S. and Dittrich, K. (1993). Events in an Active Object Oriented Database system. In Proceedings of the 1st Workshop of Rules in Database Systems, pages 23–29. Gehani, N., Jagadish, H. V., and Smueli, O. (1992). Event specification in an active object-oriented database. In Proc. of the ACM SIGMOD International Conference on Management of Data, pages 81–90. Genesereth, M. and Fikes, R. (1992). Knowledge Interchange Format. Version 3.0, Reference Manual Technical Report Logic-92-1, Computer Science Department, Stanford University. Geppert, A. and Berndtsson, M., editors (1997). Proceedings of the 3rd International Workshop on Rules in Database Systems, number 1312 in Lecture Notes in Computer Science. Springer-Verlag. BIBLIOGRAPHY 136 Geppert, A., Berndtsson, M., Lieuwen, D., and Roncancio, C. (1998). Performance Evaluation of Object-Oriented Active Database Management Systems Using the BEAST Benchmark. Journal of Theory and Practice of Object Systems. to appear. Geppert, A., Kradolfer, M., and Tombros, D. (1995). Realization of Cooperative Agents Using an Active Object-Oriented Database Management System. In (Sellis, 1995), pages 327–341. Hagen, I. (1996). Active Rules in Cooperative Problem Solving. Master’s thesis, University of Skövde. Hall, L. (1996). User Design Issues for Distributed Artificial Intelligence. In O’Hare, G. and Jennings, N., editors, Foundations of Distributed Artificial Intelligence, chapter 21, pages 543–556. Wiley-Interscience. Hartley, J. R., editor (1992). Concurrent Engineering: Shortening Lead Times, Raising Quality, and Lowering Costs. Productivity Press. Hewitt, C. E. and Lieberman, H. (1984). Design issues in parallel architectures for artificial intelligence. In IEEE Computer Society, pages 418–423. Huang, J., Jennings, N. R., and Fox, J. (1994). Cooperation in Distributed Medical Care. In Proceedings of the 2nd International Conference on Cooperative Information Systems CoopIS-94, pages 255–263. Huhns, M. (1994). A DAI Perspective on Cooperating Knowledge-Based Systems. In Deen, S., editor, Proceedings of the Second International Working Conference on Cooperating Knowledge Based Systems (CKBS’94), pages 3–12. BIBLIOGRAPHY 137 IJCIS (1996). Aims and Scope. Number 4. International Journal of Cooperative Information Systems. Jennings, N. (1994a). The ARCHON System and its Applications. In Deen, S., editor, Proceedings of the Second International Working Conference on Cooperating Knowledge Based Systems (CKBS’94), pages 13–30. Jennings, N., Mamdani, E., Laresgoiti, I., Perez, J., and Corera, J. (1992). Grate: A general framework for cooperative problem solving. IEE-BCS Journal of Intelligent Systems Engineering, 1(2):102–114. Jennings, N. R. (1993). Commitments and Conventions: The foundation of coordination in multi-agent systems. The Knowledge Engineering Review, 8(3):223–250. Jennings, N. R. (1994b). Cooperation in Industrial Multi-Agent Systems. World Scientific. Jennings, N. R. and Pople, J. A. (1993). Design and Implementation of ARCHON’s Coordination Module. In Proceedings of the CKBS-SIG Workshop on Cooperating Knowledge Based Systems, pages 61–82. Kandzia, P. and Klusch, M., editors (1997). Proceedings of the First International Workshop on Cooperative Information Agents (CIA-97), number 1202 in Lecture Notes in Artificial Intelligence. Springer. Karlapalem, K., Yeung, H., and Hung, P. (1995). CapBasED-AMS - A Framework for Capability-Based and Event-Driven Activity Management System. In Proceedings of Third International Conference on Cooperative Information Systems (CoopIS-95). BIBLIOGRAPHY 138 Kuokka, D. and Harada, L. (1996). Issues and extensions for information matchmaking protocols. International Journal of Cooperative Information Systems, 5(2–3):251–274. Kuokka, D. R., Weber, J. C., and et al. (1993). Shade: Knowledge-Based Technology for the Re-Engineering problem. Technical report, Lockhead Palo Alto Research Laboratories. Annual Report. Labrou, Y. and Finin, T. (1994). A semantics approach for kqml – a general purpose communication language for software agents. In Proceedings of the Third International Conference on Information and Knowledge Management (CIKM’94). Lieuwen, D., Gehani, N., and Arlein, R. (1996). The Ode Active Database: Trigger Semantics and Implementation. In Twelfth International Conference on Data Engineering, pages 412–420. Lockemann, P. and Walter, H. (1995). Object-oriented protocol hierarchies for distributed workflow systems. Journal of Theory and Practice of Object Systems, 1(4):281–300. Malone, T. W. and Crowston, K. (1994). The Interdisciplinary Study of Coordination. ACM Computing Surveys, , 26(1):87–119. Moulin, B. and Chaib-Draa, B. (1996). An Overview of Distributed Artificial Intelligence. In O’Hare, G. and Jennings, N., editors, Foundations of Distributed Artificial Intelligence, chapter 1, pages 3–55. Wiley-Interscience. Muller, H. (1996). Negotiation Principles. In O’Hare, G. and Jennings, N., editors, Foundations of Distributed Artificial Intelligence, chapter 7, pages 211–229. Wiley-Interscience. BIBLIOGRAPHY 139 Mylopoulos, J. and Papazoglou, M. (1997). Cooperative Information Systems. IEEE Expert, 12(5):28–31. Object Management Group (1995). The Common Object Request Broker: Architecture and Specification. Technical Report PTC/96-03-04, OMG. O’Hare, G. and Jennings, N., editors (1996). Foundations of Distributed Artificial Intelligence. Wiley-Interscience. Parunak, H. (1996). Applications of Distributed Artificial Intelligence in Industry. In O’Hare, G. and Jennings, N., editors, Foundations of Distributed Artificial Intelligence, chapter 4, pages 139–164. Wiley-Interscience. Paton, N., editor (1998). Active Rules in Database Systems. Springer. To appear. Paton, N., Dinn, A., and Williams, M. (1998). Optimization. In Paton, N., editor, Active Rules for Databases. Paton, N. and Williams, M., editors (1993). Proceedings of the 1st International Workshop on Rules in Database Systems, Workshops in Computing. SpringerVerlag. Pissinou, N., Snodgrass, R., Elmasri, R., Mumick, I., Özsu, M., Pernici, B., Segev, A., Theodoulidis, B., and Dayal, U. (1994). Towards an Infrastructure for Temporal Databases: Report of an Invitational ARPA / NSF Workshop. ACM Sigmod Record, 23(1):35–51. Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., and Lorensen, W. (1991). Object-Oriented Modelling and Design. Prentice Hall. BIBLIOGRAPHY 140 Schreier, U. (1993). Database Requirements of Knowledge-based Production Scheduling and Control: A CIM Perspective. In Proceedings of the 19th VLDB Conference, pages 710–711. Schwinger, W. (1995). Logical events in eca rules. Master’s thesis, University of Skövde. Sellis, T., editor (1995). Proceedings of the 2nd International Workshop on Rules in Database Systems, number 985 in Lecture Notes in Computer Science. SpringerVerlag. Smith, R. (1980). The Contract Net Protocol: High Level Communication and Control in a Distributed Problem Solver. IEEE Transactions on Systems, Man, and Cybernetics, SMC-10(12). Smith, R. G. and Davis, R. (1981). Frameworks for Cooperation in Distributed Problem Solving. IEEE Transactions on Systems, Man, and Cybernetics. Türker, C. and Conrad, S. (1996). Using Active Mechanisms for Global Integrity Maintenance in Federated Database Systems. In Conrad, S., Höding, M., Janssen, S., and Saake, G., editors, Kurzfassungen des Workshops “Föderierte Datenbanken”, Magdeburg, 22.04–23.04.96, pages 51–65. Bericht 96–01, Institut für Technische Informationssysteme, Universität Magdeburg. Vollmann, T., Berry, W., and Whybark, D. (1992). Manufacturing Planning and Control Systems. Business One Irwin. Widom, J. and Ceri, S., editors (1995). Active Database Systems: Triggers and Rules for Advanced Database Processing. Morgan Kufmann Publisher. BIBLIOGRAPHY 141 Widom, J. and Chakravarthy, S., editors (1994). Proceedings of the Fourth International Workshop on Research Issues in Data Engineering: Active Database Systems. IEEE-CS.