MFSM logo

Introduction

Alexandre R.J. François

Last update: 06/24/2004
ARJF © 2001-2004

MFSM (Modular Flow Scheduling Middleware) is an open source architectural middleware implementing the core elements of the SAI (Software Architecture for Immersipresence) style. Both SAI and MFSM projects were created and are currently lead by Alexandre R.J. François at the Integrated Media Systems Center and the Institute for Robotics and Intelligent Systems, at the University of Southern California.

SAI

SAI is a new software architecture model for designing, analyzing and implementing applications performing distributed, asynchronous parallel processing of generic data streams. SAI provides a universal framework for the distributed implementation of algorithms and their easy integration into complex systems that exhibit desirable software engineering qualities such as efficiency, scalability, extensibility, reusability and interoperability. SAI provides formal, system design-oriented architectural support compatible with agile methodology practices. In particular, SAI's modularity facilitates incremental system design, development, maintenance and evolution. The underlying asynchronous parallel processing model ensures that optimal system throughput and latency are achievable for a given design.

SAI specifies a new architectural style (components, connectors and constraints). The underlying extensible data model and hybrid (shared memory and message-passing) distributed asynchronous parallel processing model allow natural and efficient manipulation of generic datastreams, using existing libraries or native code alike. The modularity of the style facilitates distributed code development, testing, and reuse, as well as fast system design and integration, maintenance and evolution. A graph-based notation for architectural designs allows intuitive system representation at the conceptual and logical levels, while at the same time mapping closely to processes.

For more information on SAI, see http://iris.usc.edu/~afrancoi/sai

MFSM

MFSM (Modular Flow Scheduling Middleware; mfsm.SourceForge.net) is an open source architectural middleware implementing the core elements of the SAI style. MFSM aims at promoting and supporting the design, analysis and implementation of applications in the SAI style. A number of software modules regroup specializations implementing specific algorithms or functionalities. They constitute a constantly growing base of open source, reusable code, maintained as part of the MFSM project. The project also comprises extensive documentation, including user guide, reference guide and tutorials.

More specifically, the MFSM project comprises the following elements:

MFSM is an open source project, released under the GNU Lesser General Public License, hosted on SourceForge.net Logo

MFSM system architecture model

Overall system architecture suggested by MFSM. The middleware layer provides an abstraction level between low-level services and applications, in the form of SAI software elements. At the core of this layer is the Flow Scheduling Framework (FSF), an extensible set of fundation classes that implement SAI style elements. The generic extensible data model allows to encapsulate existing data formats and standards as well as low-level service protocols and APIs, and make them available in a system where they can interoperate. The hybrid shared memory and message passing parallel processing model supports control, asynchronous concurrent processing and synchronization of data streams. The application layer can hosts a data-stream processing software system, specified and implemented as instances of SAI components and their relationships.