MIT iCampus iLabs Software Architecture Workshop June 13 - 15, 2006 iLab Batched Experiment Architecture: Client and Lab Server Design iLab Training Course P.

Download Report

Transcript MIT iCampus iLabs Software Architecture Workshop June 13 - 15, 2006 iLab Batched Experiment Architecture: Client and Lab Server Design iLab Training Course P.

MIT iCampus iLabs
Software Architecture
Workshop
June 13 - 15, 2006
iLab Batched Experiment
Architecture:
Client and Lab Server Design
iLab Training Course
P. Bailey & J. Hardison
June 13 – 15, 2006
The Big Picture:
Batched labs in the iLab Shared
Architecture
Campus
network
Client



14/06/06
Internet
Service Broker
Lab Server
Service Broker provides generic services, deployment
mechanism for the client.
Lab Server and Client contain lab-specific code.
All communications pass through Service Broker.
3
Lab Developer Tasks

Design Lab Client


Design Lab Server


14/06/06
Bound by Lab-specific UI requirements, iLab API
Bound by lab instrumentation, desired
functionality, iLab API
Design Client-Server communication
framework
4
Lab Client–Server
Communication

Messages passed between Client and Lab
Server communicate key lab information.



Lab Hardware Configuration/Status
Experiment Parameters & Results
This information is necessarily lab-specific.
Public Internet
Arbitrary Service Broker
Client
14/06/06
Lab Server
5
Lab Client–Server
Communication

All Lab Client-Server Messages must be
passed through Service Broker.


Generic mechanism.
XML an ideal technology for this
application.
?
Arbitrary
Lab Clients
14/06/06
Arbitrary
Lab Servers
Service Broker
6
Lab Server Design:
Basic Requirements




Provide access to lab
hardware.
Implement the iLab Lab Server
API
Define & utilize format for labspecific communication with
the Client.
Provide any other functionality
necessary for lab operation
Note: iLab Architecture APIs are platform-neutral. Lab Server technology
driven by lab resources, hardware requirements.
14/06/06
7
Lab Client Design:
Basic Requirements



Provide and educationally
valuable user interface to the
lab.
Implement the iLab Client API
Create & Interpret lab-specific
communication with Lab
Server.
Again… iLab Architecture APIs are platform-neutral. Lab developer can
select the best technology for their Client.
14/06/06
8
Development Example:
The Microelectronics WebLab



14/06/06
Online microelectronic
device characterization
lab.
First lab deployed
using the iLab
Architecture.
Used by students,
guests & OCW users
worldwide.
9
The Microelectronics WebLab:
Lab Client-Server Communication

Three distinct message
types used for labspecific communication
between Client and Lab
Server.





14/06/06
Lab Configuration
Experiment Specifications
Experiment Results
XML is used to encode
information.
Passed through the
Service Broker as generic
text.
10
The Microelectronics WebLab:
The Lab Server
Lab Server Requirements:
 Scalable performance and reliability.




14/06/06
Asynchronous experiment submission and
execution
Fault-tolerance
Built-in lab management utilities.
Highly modular, extensible.
11
The Microelectronics WebLab:
The Lab Server
Built on Windows using .NET Framework and
MS SQL Server.
14/06/06
12
The Microelectronics WebLab:
The Lab Server – Web Server



Responsible for
interaction with outside
world
Contains libraries
responsible for
experiment validation &
DB interaction
Shared Library used to
parse Experiment
Specification messages
during validation
14/06/06
13
The Microelectronics WebLab:
The Lab Server – Data Storage
 SQL
database used to
store lab data:


Connects Web Server &
Execution engine.
Provides data persistence.
 Submitted
Experiment
Specifications queued in
DB for execution process.
 Complex data interactions
are internal.
14/06/06
14
The Microelectronics WebLab:
The Lab Server – Execution Engine

Governs experiment
execution.




Retrieves Experiment
Specifications from DB queue.
Communicates with lab
hardware via low-level custom
drivers.
Stand-alone process
Shared Library used to
parse Experiment
Specification messages for
execution
14/06/06
15
Lab Server Highlights:
Experiment Queuing
Experiments are processed in an
asynchronous manner…
 Web Server Layer receives, validates
job submissions and adds it to the
queue.
 Execution Layer de-queues jobs when
hardware is available, returns results
Removes major performance bottleneck,
reduces dependence on any one process
14/06/06
16
Lab Server Highlights:
Experiment Validation
All experiments are validated on the server before
they are queued:
 Jobs are checked for:





14/06/06
Basic Correctness
Compliance with Hardware capabilities
Compliance with Server-imposed rules
Reduces resources spent on incorrectly
specified jobs.
Server-based validation ensures uniformity,
rapid application of changes
17
Lab Server Highlights:
Lab Management
Most Lab Management functions available online:



Used to view system
status/logs, edit
system configuration.
Interface geared
towards common
functions
Allows rapid response
to events
14/06/06
18
The Microelectronics WebLab:
The Lab Client
Client Requirements:
 Intuitive interface
 Easily deployed on
many platforms
 Minimal user
requirements
 Highly modular
design
 Easily extensible
14/06/06
19
Meeting Client Design Goals:
Portability
Java used to develop client.
 Ubiquitous as client execution
environment



Packages/toolkits provide necessary
functionality


Graphical UI, Web Services, XML all within reach
Versatility

14/06/06
Good cross-platform compatibility
Places few special requirements on end-user
Few constraints imposed by technology
20
Other Client Technology Options

Stand-alone application (.NET, Java, C/C++, etc.)




HTML/Web Script based client (.NET, Java/JSP,
PHP, etc.)



Typically more portable, easy to deploy
Potentially fewer interface options (limited educational
value)
Client development packages (LabView)



14/06/06
Versatile
Typically more platform dependent
User must download/install client
Rapid deployment, flexible interfaces
Requires client runtime plugin
More methodology than technology, hard to integrate with
Batched-Lab Architecture (outlook much better for
Interactive labs)
21
Meeting Client Design Goals:
Modularity/Extensibility
Client built from three distinct
modules:
 User Interface Layer



Graphing Engine
Main WebLab Client
Module
Contains core functionality
Server Interface

User Interface Layer
Only presentation code
Main Client Module

WebLab Client
Server Interface
Translates Core commands
to Web Service Calls
Public Internet
(SOAP/XML)
to Service Broker
Many changes can be isolated.
14/06/06
Domain-Independent
Domain-Dependent
Component
22
Client Extensibility:
The Classical Applet
A more nimble client needed for
deployment in bandwidth starved
areas
 Graphical Applet’s intuitiveness
comes at the expense of size/end-user
requirements
 A new UI Layer was needed to meet
these needs
14/06/06
23
Client Extensibility:
The Classical Applet


14/06/06
Both clients use the same Core Functionality and
Server Interface modules
Classical applet is smaller (94KB vs. 169 KB) and
has fewer requirements
24
Reusability of WebLab Code

Lab Client/Server code is lab-specific


However, some parts can be reused
with modification


14/06/06
Exception is Client graphing module
Client/Server – Broker Interfaces, some
management tools, Execution queuing,
Client/Server infrastructure…
Deployed labs always valuable as
working examples
25
Conclusions

iLab Shared Architecture, Service Broker eases
lab development.




Turnkey generic functionality
Well-defined client/server APIs
Lab Client & Server interact over generic
transport using lab-specific messages.
Remainder of lab development framed by case
specifics.


14/06/06
Previous labs can be leveraged in new development
iLab Development Documentation & WebLab code
available at http://icampus.mit.edu/ilabs
26