|
|
Message Architecture
Pictured below is the Virtual Cell Messaging Architecture which coordinates the exchange of data describing requests, events and replies to a messaging server. Messaging allows programs to share a common messaging code, segregate resources and accommodate an increase messaging volume.
Click on each box within the image to get a brief description of the components in the messaging scheme.
Client
The requesting program or user in a client-server software architecture. The Virtual Cell user is the client making requests to the Virtual Cell server via the internet.
- User Interface - graphical component which allows the user to enter the required information needed for running the Virtual Cell software and displays the information requested from the server, i.e. simulation results.
- Client Services - certain tasks are designated to be performed on the client side rather than on the server side. This helps to increase the speed at which things are performed by utilizing the client services to free up the server for more complex tasks and by decreasing the time needed for transferring information along the network. Such tasks that are performed on the client side within the Virtual Cell are expression validity testing and data plotting functions.
BACK TO TOP
Primary Server
The primary or master server is the computer containing authoritative data for one or more DNS (Domain Name System) zones. The server gets its zone data from a local configuration and it is considered to be dedicated, it performs only the server tasks. A multiprocessing computer could execute several programs at once whereas a server would refer only to the program that is managing the resources rather than the whole computer.
- RMI Server - RMI, Remote Method Invocation, is a way in Java programming that allows remote Java objects to be executed from different Java Virtual Machines, which may or may not be on different hosts. RMI is Java's version of remote procedure call (RPC). RMI allows for information regarding the object to be quickly and efficiently transferred between the client and the server. When the object is sent between the client and server, it is sent as a reference and not the actual value. Copies are not passed over the network.
- JMS Adapter - Adapters provide an interface to any third party messaging system that implements the Java Messaging System interface. A JMS adapter is also known as a JMS compliant provider.
BACK TO TOP
Messaging Server
A messaging server handles messages that are sent by other programs using a messaging API. The server can queue, prioritize messages and save client programs in an asynchronous manner. In addition, it enables programs to communicate with different programming environments. Each environment, be it a different language, operating system, or compiler only needs to understand and communicate via the messaging protocol.
- Database API - The Database Application Programming Interface provides access from the Java Messaging Service to the Oracle Database.
- Simulation Dispatcher - The dispatcher is responsible for communicating directly with the Oracle database for controlling simulation events.
- SonicMQ - The SonicMQ is a scalable messaging server that guarantees message delivery regardless of any type of system failure. It fully integrates with J2EE Application Servers and helps to provide a sound, distributed application architecture. In addition, SonicMQ fully supports HTTP applications therefore HTTP applications can communicate directly with the JMS.
- Java Messaging Service - messaging service that works with application components based on the Java 2 Enterprise Edition (J2EE).
BACK TO TOP
Compute Node
A node is defined as any device connected to a computer network. Thus the compute node in the Virtual Cell Message Architecture is the computer responsible for initiating, running and calculating the simulations.
- Simulation Worker - The Simulation worker is the component responsible for initiating the simulation. It compiles all the simulation parameters required to run the simulation.
- Solver API - The solver application programming interface is responsible for the actual computation of the simulation based on the information from the simulation worker. The solver can vary depending on that specified in the simulation parameters; currently there are six different solvers for compartmental simulations and one for spatial simulations.
BACK TO TOP
Oracle
A database is a structured collection of related data that employs a database management system to manipulate the database. The management systems aids with the creation and maintenance of the database and also interacts with programs communicating with the database. Critical database design and use involves designating one computer for daily database processing and another computer for random inquiries and analysis.
Oracle, one of the most reliable and secure database packages available, is the database employed by the Virtual Cell. The Virtual Cell database stores information regarding the registered user, model, application and simulation parameters. The simulation data is stored on the file server. The information is stored on separate servers because of the storage capacity required for the large volume of data generated from the simulations versus the smaller amount needed for user and model information.
- Database API - The Database Application Programming Interface provides access from the Java Messaging Service to the Oracle Database. It allows for asynchronous, bidirectional communication between the messaging service and the database software.
- Database Service - The database service is responsible for the storage, retrieval and organization of data, as well as the security and integrity of the database. It also involves using the database in a competent manner where a database on one computer may be used for accessing daily information and another computer using the database would be for analysis and inquiries.
BACK TO TOP
LSF Adapter
LSF, Load Sharing Facility, is a program that works as a distributed queueing system to unite an assembly of computers into a single virtual system. It attempts to balance resource utilization amongst the network of computers such that all can be managed and used appropriately and efficiently. The adapter enables communication between the Java Messaging Service and the LSF Servers and the File Server.
BACK TO TOP
LSF Servers
The LSF Servers are responsible for executing the LSF software. They take heterogeneous systems and run them as a single, uniform system. Through the careful allocation of system resources amongst the distributed computers, remotely run jobs perform as if executed on the local host.
BACK TO TOP
File Server
A file server is the computer responsible for the storage and management of data so that other computers on the network can access the data of interest. The Virtual Cell file server is dedicated to storing only the simulation results.
- Simulation Data API - Provides access to the simulation data stored on the file server via the data service.
- Data Service - The database service allows for the storage and retrieval of the Virtual Cell simulation data on the file server. This is carefully coordinated with the compute node and model database for accurately updating and recording the simulation data.
|