~~NOTOC~~ ====== BioSTORM System Architecture ====== \\ {{ :results:software:biostorm_system_architecture.png?800&nolink |BioSTORM System Architecture}} \\ \\ Our architecture has three layers: (1) a knowledge layer, containing all models that describe the problem decomposition, (2) an agent platform, which contains the deployed agents in a system, and a (3) data source layer, which represents a semantically characterized view of the external environment of the agents. ==== The knowledge layer ==== The knowledge layer provides ontologies and software to specify the functionality of an agent-based system described using the task-method decomposition technique. This layer is composed of two main parts: a) the problem solving methods library and, b) the ontologies that define core system components. The //Problem Solving Methods Library// is used to define a collection of software implementations of methods. In BioSTORM, the PSM Library contains a set of surveillance methods to detect disease outbreaks. The architecture defines a general problem solving method API to be implemented by methods that can be used by agents to integrate the methods into a system. We defined three ontologies to describe the entities in a system. The //Data Source Ontology// describes the data that system agents have to deal with. This ontology refers to data elements as variables (e.g., the number of daily influenza diagnoses at a clinic). The data source ontology does not aim to tackle general data integration issues. Instead, it focuses on describing simple data structures and assumes that a user of the system will perform the necessary transformations of source data. The //Task-Method Ontology// specifies a configuration of a problem described using the task-method decomposition approach (see [[Results:Models|Models]] section for details). It defines classes to model tasks, methods, connectors, and algorithms, together with detailed properties of those entities. The //Deployment Ontology// defines deployment configurations for the overall task defined in the task-method ontology. It specifies all the necessary information for a given system deployment, including values for the system configuration variables, initial inputs to some agents to trigger their execution, distribution policies, system output variables, variables for profiling and performance measurement, and so on. ==== The Agent Platform ==== The middle layer of our architecture contains software that deploys agents based on the information encoded in the knowledge layer. Given a deployment configuration, this layer creates and instantiates all JADE agents performing the tasks described in the task-method ontology. After each task agent is created and configured, the task is instructed to execute its method. ==== The Data Source Layer ==== The data source layer describes the environment with which the task agents are interacting during their execution. The description of this environment is based on the Data Source Ontology. The methods associated to the tasks that interact with the environment must know how to map the terms in the OWL description of the data, data types and data source to the representation in the actual physical resource. <- Back to [[Results:Software]]