Concepts and Tools for E-Service Development

Software components play for business information systems the same role that objects play for application development. The pressure on both internal IT departments and independent software producers is to deliver effective business solutions, shorten development time, and improve quality and reliability. Workflow-based EAI (Enterprise Application Integration) [Hewlett-Packard 99] [Nierstrazs & Meijler 95] is emerging, and the concept of components as complex standard objects becomes inadequate. A major strength of the object model is implementation hiding. The execution logic behind a method invocation is transparent to the user, and the assumption is that the signature of the method contains all the information the user needs to know. We suggest that in the problem domain in which business components are used, this assumption may be too strong. Thinking about the services (methods) offered by a component, we observe that a more (complex) conversational schema replaces the basic invocation-result model of interaction. Moreover, the conversation triggered by a service request may involve a number of different components in a number of different roles. We refer to these conversations as the observable behaviour of a component, and we propose they should be part of the meta-data exposed by a component. In this work, we propose a process-oriented approach to behaviour modelling for software components. Starting with a process algebra derived from CCS [Milner 80] and CSP [Hoare 85], we enrich it with the concept of multi-role conversation. We then propose a definition for observable behaviour and behavioural compatibility, and we discuss its implications. An example of possible implementation for our proposal is given with reference to EJB (Enterprise Java Bean) components [Monson-Haefel 99].