# SynfiniWay

SynfiniWay was middleware with which a virtualised IT framework can be created that provides a uniform and global view of resources within a department, a company, or a company with its suppliers. This virtualised IT framework is service-oriented, meaning that applications are run as services, which are a system-independent view of applications. Several applications can be linked in a workflow, and data exchange between the applications participating in the workflow is implicitly managed by the IT framework. SynfiniWay is platform-independent, allowing almost any distributed heterogeneous platform to be linked into its virtualised IT framework.

## IT framework

A virtualised IT framework is implemented with SynfiniWay by installing a component with specific software agents on each of the systems in the framework. There are three major types of components in SynfiniWay:
* Director, which manages end-user connection, authentication & authorisation, and workflow task scheduling and execution.
* Service Manager, which publishes and runs services on behalf of users and which executes data migration.
* Acquaintance Manager, which links one remote network, known as a SynfiniWay neighborhood, to another to allow resource discovery and file transfer between components residing in different neighbourhoods.
All components are based on Java, so that they can be deployed in a multi-platform environment. An example framework with two neighbourhoods is shown in the figure. Adding or removing components is automatically detected by the framework. The SynfiniWay meta-scheduler automatically adjusts to changes in Service Manager or service availability.

## Service management

SynfiniWay is geared towards service management. This means that an application or a command that will be utilised is defined as a service and published on the SynfiniWay IT framework. Simple or complex tasks can be abstracted into services for execution. By using these abstracted services, a user can easily run applications or commands regardless of how complex they may be or what underlying IT infrastructure is required. They provide a form of virtualisation of computing resources since the user need not be aware of where the service is available or how it is run.

## Workflow management

A technical or business process is created by linking services in a workflow. Workflows in SynfiniWay are based on WfMC version 1.0. A workflow defines one or more tasks that will be executed with a given execution logic (branch, loop, conditional). SynfiniWay supports multi-instance tasks which run a service multiple times concurrently. Also it supports a workflow of workflows, whereby a workflow can be executed as a task of a higher level workflow.

## Data handling

Files needed by a service are automatically transferred to the computer executing that service so that the user is freed from having to manage file transfers. A file transfer mechanism is used allowing files to be transferred directly from the source to the target computer system, going through any number of firewalls between source and target, without being stored on any of the intermediary systems. This mechanism uses the shortest path for transferring files to a target computer from the source.

## Meta-scheduling

SynfiniWay employs a meta-scheduling capability, optimizing computational workloads by combining the multiple distributed Resource Managers an organisation is using, into a single aggregated view, allowing batch jobs to be directed to the best location for execution, using local resource managers such as LSF, PBSPro, SGE, LoadLeveler. SynfiniWay is able to schedule and execute services which are deployed on a mixed interlinked set of local resource managers.