Software Engineer's Perspective

Today's business innovator and software engineer faces a number of major design questions when building software to support complex business applications:

  • The degree of full or partial automation required for the execution of complex business processes. This in turn may require using sophisticated techniques and control systems to plan, schedule and monitor business processes.
  • The degree of control over the business process execution itself. The majority of business processes are distributed across many individuals and possibly many organisations. The coordination and interaction at each stage in the execution of process can be very problematic. It may not be possible to directly control each stage of the process.
  • Invariably business managers are looking for more control not less. This raises the question of how tightly coupled should systems be in the overall design of the business process? Business processes and systems that are tightly coupled often become inflexible and brittle, and if real-word events deviate from the original design model the whole process can breakdown.

Developing and maintaining complex systems, like control environments for business processes, is only practicable with the help of sophisticated software techniques. Currently Object Oriented Techniques are the main choice of industry. However, agent technology is emerging as an important new approach as a way to structure complex heterogeneous systems.

Agents allow a level of data abstraction, which cannot be achieved by traditional methods. Active roles, such as those that might be performed by a human, can be directly assigned to agent modules, and interaction between these components can be intuitively modelled. This allows a much closer and more intuitive modelling of the business processes then achievable by current methods. Agents can also incorporate some of the sophisticated AI techniques, combined with the additional benefits of structured communication and interaction capabilities.