Team 2 Project Page 

17-654: Analysis of Software Artifacts
18-841: Dependability Analysis of Middleware

 

Team Members:

Project Title:

Airline Reservation System
 

Application Description:

A fault tolerant, high performance, real-time airline reservation system that allows users to query flight information for seat availability, make and cancel reservations, and pay for reservations.

Index:

Task Allocation
Platform and Technology
Requirements
Baseline Application Features and use cases
Reliability Requirements
Real-Time Requirements
Performance Requirements
Architecture
Runtime View
Deployment View
Mapping
Design
Database Tables
Statechart diagram
Fault-recovery sequence diagram[new]
Interfaces
Install and deploy
Test Scripts
Performance Analysis - Phase I [new]
Next Improvements - Phases II and III [new]
TO DO List

Task Allocation


 

Task

Manny

Matt

Paulo

Vijay

Environment setup - application server X
X
Environment setup - database sever
X

Requirements documentation: use cases diagrams and prose


X
Architecture (network view, runtime view, code view) X X X
Data model: conceptual model and physical model (tables, views, etc.)


X
Coding - server-side Java components X X X
Coding - client-side GUI interface (Java Swing) X
X
Testing functionality (QA)


X
Performance analysis
X
X
Real-time analysis
X
X
Reliability analysis

X X
Presentation X X X X

Platform and Technology


Requirements

Baseline Application Features

    The system functionality is described in more detail using UML use cases.

Reliability Requirements

Real-Time Requirements

Performance Requirements


Architecture

The architecture is represented using two different views. The runtime view shows the application components to be built and how they interact at runtime, and the deployment view depicts the machines and network connections of the production environment.
 

Runtime View

The first diagram represents the normal operation of the system. At runtime there are:



The second diagram is slightly different from the previous one. It shows the WorkloadTest application as the client. This program provides synthetic workload for performance tests. Also, "God" is modified to act as a fault injector. Thus, the WorkloadTest will call God to schedule shutdown of the servers after a period of time and then will run N iterations of a loop where it calls the business methods. After the specified scheduled period, God will shut down each registered server, one after the other with regular intervals.
The activations that are specific for fault injection are in red.
images/runtimeViewFI.jpg


Deployment View


 

Mapping


 
Runtime Component Deployment View Component
clientArs User machine
Search App. Server 1, App Server 2 (WebLogic 7.0)
ReserveAndBuy App. Server 1, App Server 2 (WebLogic 7.0)
Authenticate App. Server 1, App Server 2 (WebLogic 7.0)
ArsStartup
App. Server 1, App Server 2 (WebLogic 7.0)
LocalRestart App. Server 1, App Server 2 (WebLogic 7.0)
ARS Database DB Server (MS SQL Server)
CreditCard Database DB Server (MS SQL Server)
CreditCard Naming server & Replication mgr
God Naming server & Replication mgr

 

Design

This section is not intended to show the complete detailed design of the system, but just a few diagrams that are useful in understanding the software implementation. That includes the database model and a UML statechart diagram showing the states of a purchase.
 

Database Tables

Database tables
 
 

Statechart Diagram

state diagram

Fault-recovery Sequence Diagram

failRecovery.gif


Interfaces

The server-side components of the system are EJBs that expose a set of business methods. The interfaces are documented using javadoc.
 

 
 
 
 
 



 
Coming soon...

Fault-Tolerant Baseline Application

Scenarios/Interactions

Current Status

Downloads


Real-Time Fault-Tolerant Baseline Application

Scenarios/Interactions

Current Status

Downloads


High-Performance Real-Time Fault-Tolerant Baseline Application

Scenarios/Interactions

Current Status

Downloads