Platform
Conceptual model of the AFECS platform is based on a distributed system topology, utilizing publish-subscribe networking, and software component architecture with intelligent agent paradigm.
Client-Server reference model is widely accepted for distributed applications. The World Wide Web is a typical example of an application using client-server model. In the client-server model a fixed roles are assigned to a server and a client. Servers will execute a resource provider function, where clients will play a role of a resource requester. In this model servers are purely reactive, and they simply wait clients to invoke specific server functionality. Instead clients concentrate entire execution sequence of the system, i.e. they will decide when to ask for a specific resource from a server. Temporal continuity of the clients in this model is not important, and clients can appear and disappear ant any time. However servers must run all the time and generally listen to a well-known, static address.
In the publish-subscribe model, in fact, there are no strict role assignments for publishers and subscribers. They both can be (at the same time) a subject or an object of a request. This means that application logic is not concentrated in specific components (servers), but distributed between all the components of the system. The components can dynamically enter, join or leave the platform anytime. An important difference between these two models is the way platform components can be discovered. In the client-server model clients must know their servers addresses and descriptions of provided services.
In the publish-subscribe model each component is capable of discovering each other. In this discovery process the absolute network address of the component is not important, and actual messages are sent and received without knowing network details and identities of receivers or senders. AFECS platform is using broadcast based publish-subscribe paradigm. In this approach an agent publisher creates a message and broadcasts it to the distributed platform. A service on each subscribing agent inspects the subject line. If the listening agent matches the subject line to a subject that it subscribes to, the agent processes the message. If the subject does not match, the listening agent ignores the message. Subject lines are hierarchical and may contain multiple fields that are separated by back- slashes. Listening agents that are interested in a particular subject can subscribe to these fields by using wild cards, if required. Implemented platform design solution provides an effective method for decoupling producers from consumers.
Since in the distributed AFECS platform we can have multiple, parallel running control systems it is sometimes useful to identify or group particular topic subscriber/provider agents. AFECS platform provides specific service (APlatformRegistrar normative agent) that simplifies the look-up and discovery of the active agents and their provided services, so the registration and authentication of the agents on the platform is necessary, using the services of the platform registration agent.