| |
Appears in the
Distributed Systems
Engineering Journal,
September, 1996
A Software Architectural Design Method for
Large-Scale Distributed Information Systems
Hassan Gomaa
hgomaa@gmu.edu
Department of Information and Software
Systems Engineering
Daniel Menascé
menasce@cne.gmu.edu
Department of Computer Science
Larry Kerschberg
kersch@gmu.edu
Department of Information and Software
Systems Engineering
George Mason University
Fairfax, Virginia, 22030-4444, USA
Abstract
This paper describes a Software Architectural Design Method for Large-Scale
Distributed Information Systems. The method, which is part of an integrated
design and performance evaluation method, addresses the design of client/server
software architectures, where the servers need to cooperate with each other
to service client requests. The goal of this software architecture is to
provide a concurrent message based design that is highly configurable. The
method is illustrated by applying it to the design of a complex software
system, the Earth Observing System Data and Information System (EOSDIS)
Core System.
1. Introduction
A Large-Scale Distributed Information System (LDIS) is characterized by
having a large number of users, a diverse user population, diversity in
user requirements, high data intensity, diversity in data types stored,
and function distribution [Menasce95]. This paper describes a Software Architectural
Design Method for Large-Scale Distributed Information Systems and gives
an example of its use. The method is part of an integrated design and performance
evaluation method for large-scale distributed information systems described
in [Menasce95].
The method is oriented to the design of client/server software architectures,
where the servers need to cooperate with each other to service client requests.
The goal of this software architecture is to provide a concurrent message
based design that is highly configurable. The concept is that the software
architecture can be mapped to many different system configurations.
The method is illustrated by applying it to the design of a complex software
system, the Earth Observing System Data and Information System (EOSDIS)
Core System. EOS is a NASA program mission to study the planet Earth. EOSDIS
is a large-scale geographically distributed system that will handle large
volumes of data sent from several satellites orbiting the Earth. The authors
were part of an interdisciplinary team composed of earth scientists, computer
and information scientists developing an independent architecture for the
EOSDIS Core System (ECS).
Section 2 of this paper presents an overview of the integrated design and
performance evaluation method. Section 3 describes the Software Architectural
Design Method for Large-Scale Distributed Information Systems. Section 4
presents an overview of the Earth Observing System Data and Information
System. Section 5 describes the application of the design method to the
EOSDIS Core System.
2. The Integrated Design and Performance Evaluation Method
2.1 Overview
Performance models play a crucial role in the design of complex information
systems. They are useful to distinguish among a variety of alternatives,
both good and bad, assess the impact of architectural choices, predict potential
bottlenecks, size hardware components, and evaluate if a proposed architecture
will meet the performance requirements under the expected workload.
This section describes an integrated design and performance evaluation method
called the performance oriented system design method (Figure 1). The main
thrust of this method is to ensure, by successive refinements, that the
architecture meets performance goals set forth in the requirements analysis
and specification phase. The method is iterative and the dashed lines in
the Figure 1 indicate feedback loops.
Figure 1: Performance Oriented Design Method
There are five basic inputs to the method (shown as clouds in Figure 1):
functional requirements, user model, performance requirements, system cost
and technology constraints, and system component performance characteristics.
The functional requirements specify the functions to be performed by the
system. The performance requirements specify the requirements on performance
when executing any of these functions (e.g., maximum response time values,
minimum throughputs). The user model describes the typical interactions
between users and the system. The user model also provides quantitative
information on the frequency with which users interact with the system,
as well as the resource requirements per interaction (e.g., an Earth scientists
studying ocean circulation models will typically browse twenty 3 Mbytes
images and then will run an ocean circulation model that requires an average
of 500 MFLOPs). System cost and technology constraints indicate the cost
constraints on the system as well as what type of networking, operating
system, hardware and software technologies constraint the design space.
Finally, the system component performance characteristics specify the performance
related features of the components to be used in the system design. Examples,
are processor speeds, I/O subsystem bandwidth, and network speeds. A domain
model is developed to reflect the interaction among the main system components
in order to satisfy the functional requirements. A domain model is a problem-oriented
specification for the application domain, which captures the similarities
and variations of the family of systems [Parnas79, Batory92] that compose
the domain. Given a domain model of an application domain, an individual
target system (one of the members of the family) is created by tailoring
the domain model given the requirements of the individual system. In a domain
model, an application domain is represented by means of multiple views,
such that each view presents a different aspect of the domain [Gomaa93a,
Gomaa95]. This work was based on the NASA-sponsored investigation into the
Evolutionary Domain Life Cycle Model [Gomaa92a, Gomaa 92b] and the associated
prototype software, the Knowledge-Based Software Engineering Environment
(KBSEE) [Bosch 93, Gomaa94].
2.3 Design of Client/Server Software Architecture.
The resulting domain model is then used to derive a client/server software
architecture, which depicts the message exchanges between clients and servers
in the system. The design method used in this step addresses the design
of large scale distributed information systems, which execute on geographically
distributed nodes supported by a local or wide area network. Typical applications
include distributed client/server systems, where the servers need to co-operate
with each other. The design method is described in more detail in section
3.
2.4 System Architecture Specification
In this step of the method, the type, number of components of each type,
and the connectivity used to link them together is specified. The number
and type of components selected is constrained by the system cost and technology
constraints. In the initial design, this is the only guideline for the system
architecture. In successive iterations of the method, the results of the
performance assessment step are taken into account to help refine the system
architecture.
2.5 Creation of Event Sequence Scenarios
Event sequence scenarios are created by taking a user model, which provides
a detailed description of the user interactions with the system (viewed
as a black box), and mapping them to the client/server software architecture.
An event sequence scenario, which is similar to a use case [Jacobson92],
describes the sequence of events resulting from the interaction among application
objects in the client/server architecture, responding to the external inputs
described in a user model. The events are numbered on an event sequence
diagram and are described in the accompanying text.
2.6 Performance Annotation of Event Sequence Scenarios
The event sequence scenarios are further annotated with performance parameters
such as request arrival rates, data volumes per request, server processing
and I/O requirements per request.
2.7 Software/Hardware Mapping
The client/server software architecture drives a first-cut at the system
architecture. The client/server software architecture and the system architecture
are used to generate a software/hardware mapping that associates logical
servers to physical elements such as processors and network segments. The
components of the system architecture are
assigned performance characteristics (e.g., network segment speeds, router
latencies, I/O subsystem bandwidth, processor speeds). Then, the performance
annotated scenarios, the software/hardware map, and the system architecture
performance characteristics are combined to generate input parameters to
a performance model.
2.8 Performance Modeling
The performance model is based on analytical methods to solve mixed (i.e.,
open/closed) queuing networks [Menasce94]. The outputs of the performance
model include response times and throughputs for each type of request submitted
to the system. An analysis of the results of the performance model reveals
the possible bottlenecks. If the architecture does not meet the performance
objectives, architectural changes at the hardware and/or software level
have to take place. These changes, guided by the outputs of the performance
model, may be to the system architecture, software/hardware mapping, or
domain model specification. Successive iterations ensure that the final
design meets the performance objectives.
3. Design of Client/Server Software Architecture.
3.1 Introduction
The Software Architectural Design Method for Large-Scale Distributed Information
Systems is an extension of the CODARTS (COncurrent Design Approach for Real-Time
Systems) design method [Gomaa93b] called the CODARTS/DIS (CODARTS for Distributed
Information Systems) design method. Typical applications include distributed
client/server systems, where the servers need to co-operate with each other.
With CODARTS/DIS, a large-scale distributed information system (LDIS) is
structured into subsystems. A subsystem is defined as a collection of concurrent
tasks executing on one physical node. However, more than one subsystem may
execute on the same physical node. Each physical node consists of one or
more interconnected processors with shared memory.
The goal of this software architecture is to provide a concurrent message
based design that is highly configurable. The concept is that the software
architecture can be mapped to many different system configurations within
the framework of the Client/Server System Architecture. Thus, for example,
the same application could be configured to have each subsystem allocated
to its own separate physical node, or have all or some of its subsystems
allocated to the same physical node. To achieve this flexibility, it is
necessary to design the application in such a way that the decision about
mapping subsystems to physical nodes does not need to be made at design
time, but is made later at system configuration time. Consequently, it is
necessary to restrict communication between tasks in separate subsystems
to message communication. It is assumed that a distributed kernel provides
a transparent message communication capability between concurrent tasks.
There are three main steps in designing a large-scale distributed information
system consisting of subsystems that can be configured to execute on distributed
physical nodes:
a) Distributed Information System Decomposition. Structure
the distributed information system into subsystems that potentially could
execute on separate nodes in a distributed environment. As subsystems can
reside on separate nodes, all communication between subsystems is restricted
to message communication. The interfaces between subsystems are defined.
A set of subsystem structuring criteria is used for determining the client
and server subsystems.
b) Subsystem Decomposition. Structure subsystems into concurrent
tasks and information hiding modules. Since by definition, a subsystem can
only execute on one physical node, each subsystem can be designed using
a design method for non-distributed concurrent systems, such as DARTS, ADARTS
or CODARTS [Gomaa93b]. Thus, tasks within the same subsystem, which by definition
always reside on the same physical node, may use inter-task communication
and synchronization mechanisms that rely on shared memory.
c) Distributed Information System Configuration. Once a distributed
information system has been designed, instances of it may be defined and
configured. During this stage, the subsystem instances of the information
system are defined, interconnected, and mapped onto a hardware configuration
[Magee94].
In this paper, emphasis is on the Distributed Information System
Decomposition, which includes defining the message interfaces
between subsystems, and Distributed Information System Configuration.
3.2 Distributed Information System Decomposition
In this phase, the LDIS is decomposed into subsystems. Subsystem structuring
criteria are provided to help decompose the system into subsystems that
can execute on distributed nodes. For a given application, there may be
several instances of a given subsystem. Since the goal is to have a distributed
cooperating client/server architecture, client and server subsystem structuring
criteria are provided as follows:
3.2.1 Client subsystem structuring criteria
a) Real-Time Control. This client subsystem controls a given aspect of the
system. The subsystem receives its inputs from the external environment
and generates outputs to the external environment, usually without any human
intervention.
b) Data Collection. This client subsystem collects data from the external
environment. In some cases, it may analyze and reduce the data before sending
it on for storage. An example of a data collection subsystem is a sensor
subsystem that collects raw sensor data from a variety of sensors, converts
the data to engineering units, before sending them to a server for storage.
c) User Services. This client subsystem provides the user interface and
a set of services required by a group of users. There may be more than one
User Services subsystem, one for each class of user. For example in a factory
automation system, there may be one User Services subsystem for factory
operators and a different User Services subsystem for factory supervisors.
A user services subsystem interacts with one or more server subsystems to
obtain the data, which it then displays to the user.
3.2.2 Server subsystem structuring criteria
Although client/server applications often refer to file servers or database
servers, it is necessary in a LDIS to distinguish between several types
of server, including:
a) Archival server. This server subsystem handles the storage of all types
of data. This type of server may be further specialized into archival servers
of different types.
b) Metadata server. This server subsystem manages the collection of metadata
relative to the data managed by the archival server.
c) Processing server. This server subsystem handles processing requests
to process data received from a data collection client or another processing
server.
d) Query server. This server subsystem manages the processing of both ad-hoc
and predefined queries.
e) Scheduling server. This server subsystem schedules processing requests,
allocating requests to the available processing servers. Some LDIS applications
have a set of scheduling servers, which collectively implement a global
scheduler.
f) Configuration management server. This server subsystem monitors the operating
conditions of a LDIS node, collects statistics about the utilization of
its various resources, and reconfigures the node when necessary to cope
with failures and performance degradation.
g) Catalog management server. This server subsystem maintains a directory
of all objects managed by the LDIS. The collection of all catalog managers
collectively maintain a global directory of LDIS objects. The catalog managers
are used to locate LDIS objects.
h) User management server. This server subsystem maintains information about
registered users, their profiles, accounting, and security information.
i) Server Coordination. This server subsystem coordinates the activities
of other server subsystems. For example, the server coordination subsystem
may maintain a directory to indicate which server subsystem is best suited
to respond to a query.
3.2.3 Designing Subsystem Interfaces
As subsystems potentially reside on different nodes, all communication between
subsystems is restricted to message communication. Tasks in different subsystems
communicate with each other by means of loosely coupled message communication
or tightly coupled message communication (Figure2).
Loosely coupled message communication is either by means of FIFO message
queues or priority message queues. In distributed environments, loosely
coupled message communication is used wherever possible for greater flexibility.
Group communication, where the same message is sent from a source task to
all destination tasks who are members of the group (referred to as multicast
communication) is also supported.
Tightly coupled message communication is either in the form of single client/server
communication or multiple client/server communication. In both cases a client
sends a message to the server and waits for a response; in the latter case
a queue may build up at the server. In a client/server architecture, it
is also possible for a server to delegate the processing of a client's request
to another server, which then responds directly to the original client.
Figure 2: Notation for Distributed Software Architecture
3.3 Distributed Information System Configuration
During information system configuration, a given information system is instantiated
and mapped to a distributed configuration consisting of multiple physical
nodes connected by a network. During this phase, decisions have to be made
about what subsystem instances are required since some subsystems can have
more than one instance, how the subsystem instances should be interconnected,
and how the subsystem instances should be allocated to nodes.
During Information System Configuration, the following activities need to
be performed:
a) Component instantiation. Instances of the information system components
are defined. For each subsystem type, where more than one instance can exist
in an information system, it is necessary to define the instances desired.
For those subsystems that are parameterized, the parameters for each instance
need to be defined. Examples of subsystem parameters are sensor names, sensor
limits, and alarm names.
b) Interconnection of subsystem instances. The information system architecture
defines how subsystems communicate with one another. At this stage, the
subsystem instances are connected together, such that one component's output
port is connected to another component's input port [Magee 94].
c) Mapping to hardware configuration. The subsystem instances are mapped
to physical nodes. For example, two subsystems could be configured such
that they each could run on a separate node or alternatively they could
both run on the same node.
4. Earth Observing System Data and Information System
The method is illustrated by applying it to the design of a complex software
system, the Earth Observing System (EOS) Data and Information System (EOSDIS)
Core System. EOS is a NASA program mission to study the planet Earth. A
series of satellites with scientific instruments aboard will be launched
starting in 1997. These satellites will collect data about the atmosphere,
land and oceans. An estimated one terabyte of raw data will be sent to the
Earth every day. Raw data coming from the NASA satellites is first received
at the White Sands complex in West Virginia. After some initial level of
calibration, it is sent for archival and further processing at a collection
of geographically distributed centers called Distributed Active Archive
Centers (DAACs).
The raw data received by the DAACs is called Level 0 data. Level 0 data
is used to generate Level 1 data, defined as reconstructed, unprocessed
instrument data at full resolution, time-referenced, and annotated with
ancillary info. Environmental variables at the same resolution and location
as the Level 1 data are derived to generate Level 2 data. A set of variables
mapped onto uniform space-time grid scales, with some consistency and completeness,
are called Level 3 data. Finally, the output from scientific models or results
from analyses of lower level data is referred to as Level 4 data.
5. Example of Software Architecture for Large-Scale Distributed Information
System
The software architecture for the EOSDIS Core System (ECS) concentrates
on the Science Data Processing Segment, which includes the satellite data
acquisition, processing and storage, as well as the scientific users accessing
EOS archival data. For this exploratory architecture study, the emphasis
has been on analyzing the aspects that are common to the family of systems
that compose the domain model, in other words the kernel of the domain model.
In addition, because of the highly distributed nature of EOSDIS, the ECS
domain model concentrates on the object communication view, which is a highly
concurrent and distributed view of the system, in which the concurrent objects
communicate with each other by means of messages [Gomaa93a, Gomaa95]. Another
important view is the object model [Rumbaugh91], which considers the data
modeling perspective, and is described in [Kerschberg96].
5.1 Domain Model of ECS
The domain model focuses on the client/server nature of the system. It consists
of the Client Information Management Subsystem (IMS), representing the client
based access by the users, which interacts with the Distributed Active Archive
Center (DAAC), representing the server functionality provided by the system.
The Distributed Active Archive Center (DAAC) is an important concept in
the problem domain and it is modeled as a collection of cooperating servers.
As there are multiple DAACs, there are multiple collections of these servers.
In addition, as there are multiple clients, there are multiple instances
of the Client IMS.
As the functionality of the domain model is carried through to the client/server
architecture, this paper focuses on the latter.
5.2 Client/Server Software Architecture
5.2.1 Overview
The overall distributed design of the Client/Server Software Architecture
is shown in Figure 3. The design consists of distributed subsystems communicating
by means of messages. Each subsystem consists of one or more concurrent
objects, which are implemented as concurrent tasks (processes).
The Client Information Management Subsystem (Client IMS), shown in Figure
3, is an example of a client based user services subsystem, as it executes
on the user node and interacts directly with the user. It provides local
processing and caching of EOS data. It also maintains a directory of services
provided by ECS. The are several instances of a Client IMS, one for each
user.
Figure 3: EOS Client/Server Software Architecture Diagram
The Client IMS processes the original query from the user. It looks up its
local directory to determine where the data or service requested by the
user resides. It decomposes the global query into DAAC specific queries
and sends out the queries to each DAAC, where they are received by the Server
Information Management System.
The Client IMS communicates with the different DAAC subsystems and also
other non-EOS servers, such as the NOAA, the National Oceanic and Atmospheric
Administration, server. In Figure 3, two instances of the DAAC subsystem,
DAAC (n) and DAAC (m), are shown although there would typically be several.
Each DAAC is configured to have the appropriate instances of the Server
Information Management Subsystem (Server IMS), Product Generation Subsystem
(PGS), and Data Archiving and Distribution Subsystem (DADS).
The PGS is a processing server subsystem which processes incoming satellite
data and sends them to the DADS, which is an archival server subsystem that
stores the various data products. The Server IMS is a server coordination
subsystem, which coordinates user access to the archived data products.
A Client IMS determines from its local directory the DAAC location of the
data product requested by the user and sends a product request to the Server
IMS on the appropriate DAAC. The Server IMS looks up its directory to determine
which archival server maintains the data product requested by the user and
forwards the request to that server. The message from the Server IMS contains
the identifier of the original requesting Client IMS, so that the responding
server can send the data product directly to the client.
Figure 3 also shows how DAACs can communicate with each other. Thus a PGS
can request data from another DAAC by sending a Product Request message
to the Server IMS for that DAAC. The Server IMS forwards the message to
the appropriate product server, which responds by sending the data product
to the requesting PGS. The PGS subsystem is decomposed further as shown
in Figure 4 while the DADS subsystem is decomposed further as shown in Figure
5.
Figure 4: Structure of Product Generation Subsystem
Figure 5: Structure of Data Archive and Distribution Subsystem
5.2.2 Design of Product Generation Subsystem
Figure 4 shows the concurrent subsystem architecture of the Product Generation
Subsystem (PGS), which processes Level 0 (L0 in Figure 4) data obtained
from the EOS satellites, to generate the Level 1 - 4 data products, which
are then archived in the DADS. Browse data is generated for those who wish
a less detailed view of the data. In addition, metadata is generated, providing
information about the data and algorithms used to derive a given archival
product. EOS data products are derived from raw EOS scientific data, using
instrument calibration data, and applying scientific algorithms. At a given
level n, a level n archival product is generated as well as level n metadata
and optionally level n browse data. In Figure 4, these are collectively
shown as Ln products.
The Product Scheduling Server, an example of a scheduling server, receives
product generation requests from multiple sources. It adds these requests
to a priority ordered product generation list. It sends processing requests
and reprocessing requests to the Level n processing servers, which execute
the product generation algorithms. It also sends Product Requests to other
DAACs for products that are needed as input to the various processing stages
on this DAAC, shown as Requested Ln Product in Figure 4.
5.2.3 Design of Data Archive and Distribution Subsystem
The Data Archiving and Distribution Subsystem (DADS) deals with the archiving
of the standard data products received from the PGS, as well as the distribution
of the standard products, and processing of requests for standard products
originating from scientific users. Standard products include level 1-4 products,
metadata products and browse data products.
A generic design of the Data Archive and Distribution Subsystem is given
in Figure 5. It consists of several instances of the Product Server Subsystem,
duly tailored and instantiated as needed for a given DADS. There is also
an Offline Staging Server, which receives products that have been requested
for offline delivery.
The Product Server Subsystem receives product and metadata requests from
the Server IMS. It also receives products from the PGS for archival. It
sends metadata to the Server IMS and products to users, either online via
the appropriate Client IMS, or offline through the Offline Storage Server.
5.2.4 Design of Product Server Subsystem
The design of a Product Server Subsystem is shown in Figure 6. In order
to provide improved throughput, the product server subsystem is designed
as a concurrent server subsystem. The design is generic and has to be tailored
for any specific server.
Each of the services provided by the concurrent server subsystem is implemented
as a concurrent task type, which is instantiated to provide the service.
There is also a Product Archive Manager (PAM) task which receives client
requests. The PAM instantiates a server task to handle each client request,
e.g., a reader task to handle a read request. The reader task reads the
product archive and either:
a) sends the requested product directly to the user via the Client IMS,
if this was an online request, or
b) sends the requested product to the Offline Staging Server if this was
an offline request.
After servicing the client request, the reader task terminates.
Figure 6: Structure of Product Server Subsystem
A user may also subscribe to a product in which case the
subscription request is forwarded to the Subscription Manager Task, which
updates the subscription list. The request is for the client to be either
registered or removed from the subscription list. Product updates from the
PGS are received by the writer task. The writer task updates the product
archive and then sends an update notification message to the Production
Distribution task. The Production Distribution task then reads the subscription
list and sends a copy of the new data to each registered client, as indicated
in their subscription specification. This is handled by multicast message
communication. However the time at which the data is sent is dependent on
the priority, type of request, and requested delivery time of each subscription
request.
Since there are multiple readers and writers accessing the product archive,
an appropriate synchronization algorithm must be used, such as the mutual
exclusion algorithm or the multiple readers/ multiple writers algorithm.
In the latter case, multiple readers are allowed to access the product archive
concurrently; however a writer must have mutually exclusive access to the
archive.
5.2.5 Product Distribution
The various instances of the Client IMS send user requests for products
to the appropriate Server IMS at the various DAACs. For metadata and browse
data product requests, the Server IMS services the requests on arrival.
However for archival product requests, the Server IMS first estimates the
amount of data to be delivered by querying the metadata server and then,
if the data volume is above a certain threshold, sends a schedule to the
user. For small amounts of data, the request is forwarded to the archival
server directly.
The Server IMS queries the metadata for the given product to determine the
size and frequency of the requested data granule. For volumes of data above
the threshold, it sends a schedule to the user via the Client IMS indicating
the estimated amount of data requested, an estimated schedule of delivery,
with options for online or offline delivery.
5.3 Distributed Information System Configuration
The client/servers software is intended to be highly configurable. The design
of several of the server subsystems is generic, so they have to be configured
for a specific server subsystem instance. As an example, consider the configuration
of the Product Server Subsystem:
a) Specialization. The Product Server Subsystem can be adapted for a specific
need through specialization, e.g., to create a Level 1 archival server,
a level 3 browse data server, or a level 2 metadata server.
c) Instantiation. Certain parameters can be passed to a given instance of
the Product Server Subsystem at instantiation time.
d) Component Interconnection. The actual binding of concurrent components
to each other is done. For example, the Level 1 Product Processing Server
is bound to the following instances of the Product Server Subsystem: Level
1 Archival Server, the Level 1 Metadata Server, and the Level 1 Browse Data
Server.
e) Mapping to hardware configuration. Each component is mapped to a specific
hardware node.
5.4 Event Sequence Scenarios
As described in Section 2.5, in order to validate the functionality of the
client/server software architecture, several event sequence scenarios were
created reflecting earth science user interactions with the architecture.
The black-box user interactions with the system are described in user models.
The event sequencing scenarios were developed by applying the earth science
user models to the Client/Server software architecture, thereby identifying
how scientific data products are generated, archived, and accessed by users.
There are two main types of scenarios:
a) Push scenarios, which show the generation of level 1-4 data products
and their archival in the DAACs.
b) Pull scenarios, which show earth scientists making requests for archived
data products
Several scenarios were developed, one of which is described here. This oceanographic
scenario is the Ocean Heat Transport and Storage Scenario developed by F.
Webster and J. Churgin. This scenario involves accessing archived data products
from various EOS instruments carried on EOS satellites. These data products
are derived from the data collected by the MIMR (Multifrequency Imaging
Microwave Radiometer) and MODIS (Moderate-Resolution Imaging Spectrodiameter)
instruments. Data is also obtained from NOAA, the National Oceanic and Atmospheric
Administration.
The event sequence scenario showing user interaction with the architecture
is depicted graphically on an event sequence diagram, as shown in Figure
7. Figure 7 shows the oceanographic scenario in which a client IMS interacting
with servers at two DAACs. Each DAAC has a Server IMS and various archival
servers. The event sequence is described below with the event sequence numbers
corresponding to Figure 7.
Figure 7: Oceanographic Scenario Event Sequence Diagram
1-2) The Earth science user requests the Client IMS to display
information on Sea Surface Temperature (SST) from the local directory. The
local directory provides information on various oceanographic products available
from NASA satellites including two items listed as SST (level 2), one from
MIMR and the other from MODIS, and one listed as gridded SST. These are
all displayed in a window at the user's workstation.
3-12) The user requests metadata on the MIMR SST and MODIS SST. The Local
Directory Manager determines that the MIMR metadata is stored at the NASA
Marshall Space Flight Center DAAC and the MODIS metadata is stored at the
NASA Goddard Space Flight Center DAAC. It sends queries to the Server IMS
at Marshall and the Server IMS at Goddard. The queries are handled identically
at both locations. Consider the Marshall Server IMS, which looks up its
directory to determine where the information is stored. It sends a Metadata
Product Request to the Level 2 Metadata Server passing on the identifier
of the originating client. The Level 2 Metadata Server receives the request
and reads the metadata archive. The Level 2 Metadata Server sends the requested
metadata directly to the Client IMS. The metadata is displayed at the user's
terminal in the MIMR Metadata window.
13-22) The user makes product requests for MIMR and MODIS browse data. This
is handled in a similar way to metadata.
23-26) The user queries the directory and requests data from NOAA.
27- 37) For a more detailed analysis, the researchers decide to use the
level 2 MODIS data, and send a request for delivery of the MODIS data product.
The Local Directory Manager determines that the product is archived at NASA
Goddard and sends a query to the Server IMS at Goddard. The Goddard Server
IMS looks up the directory to determine where the metadata for this product
is stored. The Server IMS then sends a query to the Level 2 Metadata Server
requesting information on the file size and frequency of data collection.
The Metadata Server sends the metadata to the Server IMS, which makes an
estimate of how much data the user's request would entail and when it could
be delivered. The Server IMS sends the proposed schedule to the Client IMS
with product delivery options. The user selects online delivery of the product.
The Client IMS sends the product request to the Server IMS. The Server IMS
sends the Level 2 Product Request to the Level 2 Archival Server, passing
on the id of the originating client. The request is added to the queue of
requests for this server with the schedule of when the product is scheduled
for delivery to user. At the scheduled time, the Level 2 Archival Server
creates a reader task to read the metadata archive. The Level 2 Archival
Server sends the requested product directly to the Client IMS. The product
data is displayed at the user's terminal in the MODIS product data window.
The user invokes a local algorithm to process the data.
6. Conclusions
This paper has described a Software Architectural Design Method for Large-Scale
Distributed Information Systems, which is part of an integrated design and
performance evaluation method. The goal of this software architecture is
to provide a concurrent message based Client/Server Software Architecture
that is highly configurable. The concept is that the software architecture
can be mapped to many different system configurations.
The paper has also described the application of the method to a case study
of a Large-Scale Distributed Information System, the Earth Observing System
Data and Information System Core System. EOSDIS is a large-scale geographically
distributed system that will handle large volumes of data sent from several
satellites orbiting the Earth.
Unlike many software design methods which are initially developed by applying
them to toy problems, this design method was developed iteratively by applying
it to the design of a complex system. Thus many of the client and server
subsystem structuring criteria were determined by finding specific needs
for them in the EOSDIS Core System. The client/server software architecture
was also developed iteratively and its viability was demonstrated by creating
detailed earth science user scenarios that were then applied to the architecture
in order to identify how scientific data products are generated, archived,
and accessed by users.
7. Acknowledgments
This work was partially supported by Hughes Applied Information Systems.
This work built on the NASA-sponsored investigation into the Evolutionary
Domain Life Cycle Model and the associated prototype software, the Knowledge-Based
Software Engineering Environment. The authors would like to acknowledge
the many useful discussions they had with the ECS Independent Architecture
Study Group at GMU led by Menas Kafatos. In particular, they would like
to thank Jim Churgin, Ferris Webster, Berrien Moore III, and Jim Kinter,
for explaining to them the different aspects of earth science and user scientific
requirements for EOSDIS. Special acknowledgments are due to Jim Churgin
and Ferris Webster, who developed the Ocean Heat Transport and Storage Scenario,
which forms the basis of the event sequence scenario described in Section
5.4. They would also like to thank Frank Carr for his considerable assistance
in constructing the domain model and client/server software architecture.
8. References
[Batory92] Batory D and S. O'Malley, "The Design and Implementation
of Hierarchical Software with Reusable Components", ACM Transactions
on Software Engineering Methodology, 1(4), pages 355-398, October 1992.
[Bosch93] Bosch C, H. Gomaa, L. Kerschberg, "Design and Construction
of a Software Engineering Environment: Experiences with Eiffel," IEEE
Readings in Object-Oriented Systems and Applications, IEEE Computer
Society Press, 1995.
[Gomaa92a] Gomaa H, L. Kerschberg, V. Sugumaran, "A Knowledge-Based
Approach for Generating Target System Specifications from a Domain Model,"
Proc. NASA Goddard Conference on Space Applications of Artificial Intelligence,
May 1992. Also in Proc. IFIP World Computer Congress, Madrid, Spain, September
1992.
[Gomaa92b] Gomaa H, L. Kerschberg, V. Sugumaran, "A Knowledge-Based
Approach to Domain Modeling: Application to NASA's Payload Operations Control
Centers," Journal of Telematics and Informatics, Vol. 9, Nos
3/4, 1992.
[Gomaa93a] Gomaa H, "A Reuse-Oriented Approach to Structuring and Configuring
Distributed Applications," The Software Engineering Journal,
March 1993.
[Gomaa93b] Gomaa H, "Software Design Methods for Concurrent and Real-Time
Systems," Addison-Wesley, 1993.
[Gomaa94] Gomaa H, V. Sugumaran, L. Kerschberg, C. Bosch, I Tavakoli, "A
Prototype Software Development Environment for Reusable Software Architectures".
Proc. Third International Conference on Software Reuse, Rio de Janeiro,
November 1994.
[Gomaa95] Gomaa H, "Reusable Software Requirements and Architectures
for Families of Systems," The Journal of Systems and Software, March
1995.
[Jacobson92] I. Jacobson et al., "Object-Oriented Software Engineering,"
Addison-Wesley, 1992
[Kerschberg96] L. Kerschberg, H. Gomaa, D. Menasce, J.P. Yoon, "Data
and Information Architectures for Large-Scale Distributed Data Intensive
Information Systems," Proc. IEEE Eighth International Conference
on Scientific and Statistical Database Management, Stockholm, Sweden,
June 1996.
[Magee 94] Magee J, N. Dulay and J. Kramer, "A Constructive Development
Environment for Parallel and Distributed Programs," Second International
Workshop on Configurable Distributed Systems, Pittsburgh, PA, March
1994.
[Menasce94] D. Menasce, V. Almeida, L. Dowdy, "Capacity Planning and
Performance Modeling: From Mainframe to Client-Server Systems," Prentice
Hall, Englewood Cliffs, NJ, 1994.
[Menasce95] D. Menasce, H. Gomaa, L. Kerschberg, "A Performance-Oriented
Design Methodology for Large-Scale Distributed Data Intensive Information
Systems", Proc. IEEE International Conference on the Engineering
of Complex Computer Systems, Ft. Lauderdale, November 1995.
[Parnas 79] Parnas D, "Designing Software for Ease of Extension and
Contraction," IEEE Transactions on Software Engineering, March
1979.
[Rumbaugh91] Rumbaugh, J., et al., "Object-Oriented Modeling and Design,"
Prentice Hall, 1991.
|