+ All Categories
Home > Documents > [American Institute of Aeronautics and Astronautics SpaceOps 2008 Conference - Heidelberg, Germany...

[American Institute of Aeronautics and Astronautics SpaceOps 2008 Conference - Heidelberg, Germany...

Date post: 14-Dec-2016
Category:
Upload: leandro
View: 212 times
Download: 0 times
Share this document with a friend
9
American Institute of Aeronautics and Astronautics 092407 1 Using Design Patterns, Components and Metadata to design the Command and Monitoring Frameworks of the INPE´s Satellite Control System Paulo E. Cardoso, Joaquim P. Barreto, Luciana S. Cardoso and Leandro T. Hoffmann National Institute for Space Research – INPE, Sao Jose dos Campos, SP, 12227-010, Brazil The Ground System Development Division at National Institute for Space Research (INPE) is developing the SATellite Control System (SATCS) which shall be easily configurable for different satellites. This system will provide a common infra structure for satellite control that will be customized to comply with the operational requirements of each INPE´s space mission. Considering the purpose of reaching a high degree of system reutilization and lowering its development costs, the concepts of frameworks, design patterns, component-based development and metadata are being widely used in the SATCS design. This paper aims to present the Commanding and Monitoring object oriented frameworks. The design of these frameworks took into account the common and variable requirements that can occur among different missions in order to make it easier to create the monitoring & control applications required for each specific mission. Using design patterns brings flexibility to change the code to comply with new requirements, since the code is designed to accept changes, thus saving time and reducing future developments costs. Breaking down the frameworks in modules makes it easier to change a specific part of the problem domains because the change would be concentrated in a specific module. By using metadata is possible to reduce drastically, or, in some cases, even to eliminate the need to adapt the application codes to comply with the requirements of new satellites. A specific component was developed to hide the metadata complexity and provide to the SATCS subsystems a simpler interface for accessing the real data they need. This component can be used not only by the mentioned frameworks but also by others SATCS subsystems, satellite simulators and by other systems whose designs may take advantage from a component that is able to move their data structure definition from code to a database. However, by documenting the knowledge through metadata creates a complexity in the database that makes the data representation very hard to understand. For overcoming this difficulty, a database editing tool needs to be designed with different views: meta-information input for developers and real information input for system operators. I. Introduction HE Ground System Development Division (DSS) team is developing the SATellite Control System (SATCS), which is intended to be a product line to provide a common ground software infrastructure for satellite control. This infrastructure is composed of several software elements, such as: components, class library, frameworks, and data bases which will be customized to comply with the operation requirements of each INPE’s space mission 1 . Further, the project of SATCS proposes a logical architecture template to be used as a standard in the design of its subsystems. The Commanding and Monitoring frameworks were created according to this architecture. They are a set of integrated classes that provides a pre-defined base infrastructure to support the development of applications for the remote control and monitoring domains. Those domains include control and monitoring functions of both satellites and ground stations. These frameworks allow creating applications that could achieve highly software reuse and a low cost on development. To reach these targets, the following concepts have been widely used in the design: design-patterns 2 , component-base development 3 , and metadata 4 . This paper presents, in section II, the generic logical architecture defined in SATCS project for the development of its subsystems. This logical architecture is layer based and makes use of a Support component, which provides T SpaceOps 2008 Conference (Hosted and organized by ESA and EUMETSAT in association with AIAA) AIAA 2008-3591 Copyright © 2008 by National Institute for Space Research (Brazil). Published by the American Institute of Aeronautics and Astronautics, Inc., with permission.
Transcript

American Institute of Aeronautics and Astronautics 092407

1

Using Design Patterns, Components and Metadata to design

the Command and Monitoring Frameworks of the INPE´s

Satellite Control System

Paulo E. Cardoso, Joaquim P. Barreto, Luciana S. Cardoso and Leandro T. Hoffmann

National Institute for Space Research – INPE, Sao Jose dos Campos, SP, 12227-010, Brazil

The Ground System Development Division at National Institute for Space Research

(INPE) is developing the SATellite Control System (SATCS) which shall be easily

configurable for different satellites. This system will provide a common infra structure for

satellite control that will be customized to comply with the operational requirements of each

INPE´s space mission. Considering the purpose of reaching a high degree of system

reutilization and lowering its development costs, the concepts of frameworks, design

patterns, component-based development and metadata are being widely used in the SATCS

design. This paper aims to present the Commanding and Monitoring object oriented

frameworks. The design of these frameworks took into account the common and variable

requirements that can occur among different missions in order to make it easier to create the

monitoring & control applications required for each specific mission. Using design patterns

brings flexibility to change the code to comply with new requirements, since the code is

designed to accept changes, thus saving time and reducing future developments costs.

Breaking down the frameworks in modules makes it easier to change a specific part of the

problem domains because the change would be concentrated in a specific module. By using

metadata is possible to reduce drastically, or, in some cases, even to eliminate the need to

adapt the application codes to comply with the requirements of new satellites. A specific

component was developed to hide the metadata complexity and provide to the SATCS

subsystems a simpler interface for accessing the real data they need. This component can be

used not only by the mentioned frameworks but also by others SATCS subsystems, satellite

simulators and by other systems whose designs may take advantage from a component that

is able to move their data structure definition from code to a database. However, by

documenting the knowledge through metadata creates a complexity in the database that

makes the data representation very hard to understand. For overcoming this difficulty, a

database editing tool needs to be designed with different views: meta-information input for

developers and real information input for system operators.

I. Introduction

HE Ground System Development Division (DSS) team is developing the SATellite Control System (SATCS),

which is intended to be a product line to provide a common ground software infrastructure for satellite control.

This infrastructure is composed of several software elements, such as: components, class library, frameworks, and

data bases which will be customized to comply with the operation requirements of each INPE’s space mission1.

Further, the project of SATCS proposes a logical architecture template to be used as a standard in the design of its

subsystems.

The Commanding and Monitoring frameworks were created according to this architecture. They are a set of

integrated classes that provides a pre-defined base infrastructure to support the development of applications for the

remote control and monitoring domains. Those domains include control and monitoring functions of both satellites

and ground stations.

These frameworks allow creating applications that could achieve highly software reuse and a low cost on

development. To reach these targets, the following concepts have been widely used in the design: design-patterns2,

component-base development3, and metadata

4.

This paper presents, in section II, the generic logical architecture defined in SATCS project for the development

of its subsystems. This logical architecture is layer based and makes use of a Support component, which provides

T

SpaceOps 2008 Conference (Hosted and organized by ESA and EUMETSAT in association with AIAA) AIAA 2008-3591

Copyright © 2008 by National Institute for Space Research (Brazil). Published by the American Institute of Aeronautics and Astronautics, Inc., with permission.

American Institute of Aeronautics and Astronautics 092407

2

basic services to all layers. Taking into account this architecture, the third section shows the logical architecture of

Commanding and Monitoring frameworks and also the design solutions adopted to achieve a high level on the

reusability of these structures. Both Commanding and Monitoring frameworks make use of a Data Stream module,

part of the Support component, which avoids the necessity of implementing a specific routine to code and decode

each specific command or monitoring data message structure. The section IV describes the Data Stream module,

highlighting how its objects can be created from data descriptions stored in the Operation data base (metadata) and

the use of design patterns to make easy to add code to comply with new requirements. However, the task of

documenting the real data knowledge, which is the data related to the final user view, becomes more difficult and

more complex when one works with metadata. The section V shows the solution adopted by the data base edition

tools to permit dealing with specific problem domains. The conclusion of this work is presented in section VI.

II. SATCS Generic Logical Architecture

The SATCS system is composed by several subsystems that together provide a complete set of services for

controlling a satellite from ground. These subsystems can be customized to comply with the operation requirements

of each INPE space mission. On the purpose of increasing the system reusability and decreasing the development

costs, a software architectural template was defined to guide the design of these subsystems.

As shown in Figure 1, the generic logical architectural template establishes that the functions of each subsystem

must be organized in

four layers: UserView,

Subsystem,

Archiving&Retrieving

Services and

Persistence. Besides

that, the template

includes an

independent

component that is

responsible for

providing support

services for the first

three layers.

The Persistence

layer includes two

databases: Operation

data (mission and

software parameters)

and mission Historic

data. Metadata was

used in the design of the Operation database to increase the flexibility for complying with the specific data

structures requirements of each mission.

The Archiving&Retrieving Services layer makes possible to design the subsystem independently of the

implementation of the Persistence layer databases, by providing services for storing data and retrieving data from

the Operation and Historic databases.

The functions related to the role of each subsystem, as part of the SATCS system, are included in the Subsystem

layer. Taking advantage of the experience gained in earlier ground control systems, another logical architecture

template was defined to guide the design of this layer. This template establishes, whenever it is applicable, the

breakdown of the problem domain functions in at most three parts: (i) Communication functions, which includes

modules for implementing the interfaces to other SATCS subsystems or external entities; (ii) Problem Domain, that

includes one or more modules for complying with the subsystem core functions and; (iii) Playback, which includes

functions for processing historic data. The Problem Domain interfaces must be able to receive and process data

independently of its source: real-time communication interfaces or data retrieved from the Historic database.

The UserView layer includes only functions related to the interaction with the subsystem users: presentation of

data managed by the Subsystem layer modules and activation, by the user, of services provided by these modules.

The design of this layer produces one or more modules for complying with the subsystem user interface

requirements and most of the time each module corresponds to one executable application with a graphical user

Figure 1. Generic Logical Architecture Template.

American Institute of Aeronautics and Astronautics 092407

3

interface. This layer also includes special applications for accessing the two databases of the Persistence layer:

visualization of raw data stored in the Historic database, external data transfer to/from the Historic database and

tools for editing the Operation database.

The Support Component isolates some operating system implementation details in the development of the

Layers. Some of its features include:

• Communication: supports synchronous and asynchronous communication services over TCP/IP

protocols, using sockets;

• Configuration Parameter: retrieves user configuration parameters stored in the Operation database;

• Event Message: stores log messages generated during the execution of the SATCS applications;

• Event Visual: provides services to visualize log messages generated by SATCS applications;

• File Manager: transfers and deletes files over LAN or Internet, using FTP, SSH or NetBIOS protocols;

• Special Types: contains classes to handle special types of data (for instance: date-time, and arrays of

bits);

• Timer: schedules services to be executed in a predefined time;

• User Interface: implements general user interface services (for instance: date-time input masks) and;

• Data-stream: provides data message coding and decoding functions by using metadata information

stored in the Operation database.

Besides the two logical architecture templates, a set of design solutions were adopted in the SATCS project to

make it easier and efficient to reconfigure the software: (i) use of design patterns; (ii) use of metadata for modeling

data structures through the Operation database; (iii) definition of standards to describe the interfaces among modules

and subsystems; (iv) creation of independent components as much as possible; (v) designing the modules as class

frameworks to make it easier to modify the design and code for complying with special requirements of the missions

and; (vi) the subsystem design must allow to create different software products by selecting a subset of the

subsystem modules.

III. Commanding and Monitoring Frameworks

This section presents the Commanding and Monitoring frameworks whose developments were based on the

architectural templates and design solutions described in the previous section. The operation requirements associated

to the telemetry, telecommand and ground station monitoring & control functions are fulfilled through an adequate

configuration of these frameworks.

The Commanding framework covers functions of preparing, validating, sending, verifying and logging control

messages (commands). This applies to any commandable entity like satellite (telecommand) and ground station

(remote command) for which command messages can be defined.

The Monitoring framework covers all monitoring functions in which all data, regardless of the source (telemetry

or remote monitoring), can be extracted, calibrated, subjected to a range monitoring checks, archive in Historic

database, and displayed. It is also able to play back and display the data stored in the Historic database.

Figure 2 presents the logical architecture of the two frameworks, including the modules that were defined for the

Subsystem and UserView layers. Rectangles with solid lines represent the logical modules of the frameworks.

Through the combination of these two frameworks, it is possible to create applications for controlling a remote

entity in the manual, automatic or supervised mode. Requests for connection to a ground station, transmission of

commands and others can be performed manually by an operator, through the application user interfaces which are

represented in the Figure 2 by the TXUserInterface and VisParam modules, or automatically by the CMDAutComm

and MONAutComm modules, that process requests sent by the SATCS Scheduling subsystem. In the supervised

mode a request sent by the Scheduling subsystem needs to be confirmed by an operator before its associated

function is executed.

Whatever is the operation mode of the Commanding framework, all requests for transmitting commands are

inserted in a queue of commands to be transmitted. The TXController module is responsible for controlling this

queue and notifying the user interface whenever there is a change in the queue or in the execution state of a

command. Depending on the operation mode, the commands are transmitted manually by an operator or

automatically. The Transmission module controls the command transmission, by checking the range values of

possible monitoring parameters associated to each command (pre and post verification), and notifies the Monitoring

framework, due to command execution, about changes in the expected state of a remote entity. The communication

between Command framework and ground stations are performed by the CMDGSComm module.

American Institute of Aeronautics and Astronautics 092407

4

On the other hand, monitoring packets sent by a satellite (telemetry), through a ground station, or sent directly by

a ground station (ground station remote monitoring) are received by the MONGSComm module. This module allows

connections to one or more ground stations, storing the received packets in the Historic database and broadcasting

them to several computers. Depending on the computer where it is installed, the MONGSComm module also plays

the role of a client that receives the packets that were broadcasted. The packets are processed by the ProcParam

module, whose functions includes: obtaining all monitoring parameter values and checking these values using

monitoring laws. The ProcParam module also makes available these values and lists of parameters with values out

of normal ranges to the VisParam module. Besides presenting the current values and processing states of the

monitoring parameters, the VisParam module is also in charge of presenting the command queue to the user. Other

feature of this module is that it can be configured to present both real time and playback data. The only difference is

that in the playback mode the ProcParam module processes packets retrieved from the Historic database, through

the Historic module services, and not real time packets received through the MONGSComm module. Other SATCS

subsystems can interface the Monitoring framework through the ProcParamServer module to receive parameters

values extracted from Historic data. The ProcParamServer module is implemented as a server that receives requests

from the SATCS subsystems and uses the ProcParam and Historic modules to provide the data these subsystems

ask for.

All communication interfaces between the Commanding and Monitoring frameworks are placed in the

MONComm and CMDComm modules. The Commanding framework: (i) sends information about expected change

in the state of a remote entity, due to command executions, so that the Monitoring framework can reconfigure the

monitoring laws of parameters associated to these commands; (ii) receives parameter current values and uses them

to check the pre and post verification rules associated to the transmission and execution of a command and; (iii)

sends information about the command queue and its updates to allow the user to monitor it.

The Commands and EndtoEndComm modules were designed as independent components that can be used by

any subsystem or system that needs to code/decode the application data of a command and to pack/unpack the

protocol data layers that can exist to allow the communication with remote entities (ground-board protocol and/or

ground node to ground node protocol). These components can be used in the design of a satellite simulator and also

in software applications for preparing special commands of each mission.

Aiming to provide flexibility to adapt the software to comply with new requirements, the design pattern

technique was widely used in the design of the framework classes. Whenever there is a synchronous communication

among modules, the design of those interfaces makes use of the Facade pattern. The Observer pattern is used when

one or more modules need to be notified that an event occurred in another module. The Factory pattern is used to

make it easier to select and create objects associated to functions that can have small changes to comply with

specific requirements of a mission. The Builder pattern is used to create and connect the framework objects by using

one or more Factory objects to create these objects. The Singleton pattern is used mainly together with the Facade

pattern since this one usually represents single objects.

Figure 2. Commanding and Monitoring Framewoks Logical Architecture.

American Institute of Aeronautics and Astronautics 092407

5

The impact of eventual changes is minimized by splitting the frameworks in modules with very specific and

cohesive functions. For instance, the ground station communication modules (CMDGSComm and MONGSComm)

are designed to make easy the compliance with the requirements of a new kind of ground station. The Figure 3

presents the classes of the CMDGSComm module, where to handle the communication protocol of a NNN ground

station is necessary just to create the CCMDNNNGroundSation class and add code in the CCMDGSFactory class to

create its objects. The CCMDNNNGroundSation is a specialization of a generic ground station which is represented

by the class CCMDGroundStation. The inclusion of the new class does not affect the CMDIntGSComm class, which

is the interface of the communication module to the other modules.

The design of the Commands,

EndtoEndComm, CMDGSComm,

MONGSComm and ProcParam

modules makes use of the Data

Stream module of the Support

component to minimize the need of

changing the code for complying with

requirements of mission specific

monitoring and command data

structures. For instance, to code

telecommands for a specific satellite

or remote commands for a ground

station, the Commands module needs

just of an application identification

which was configured in the

Operation database. Using this

identification, the services of the

Data Stream module get, from the

Operation database, the description

of all command data structures and

theirs parameters. Thus it is possible to define and use, without changing the code, communication messages

exchanged with different kinds of ground stations and monitoring/command packets for different satellites or ground

stations. The advantages of the Data Stream module, as well as its features to make easy to add code to comply with

very specific requirements, are described with more details in the section IV.

The framework customization allows creating software products for different mission phases. During the

operation phase all framework modules will be assembled to build application programs for monitoring and

controlling the satellite as well as the ground stations. In the AIT phase, some modules of these frameworks will be

used inside EGSE to control and to monitor the satellite during testing, thus eliminating the need to develop two

nearly identical systems, one for AIT and another for ground segment operations. In addition to the in-flight

operations systems and AIT, framework modules can also be used in the Satellite Simulator project (SIMS) and for

testing the on-board computer during its development. Some frameworks modules can be used in SIMS to decode

the telecommands received from the Satellite Control Center (SCC), and code/decode data structures of the

protocols used for communication between the SCC and the ground station simulator. The onboard computer

development and testing team may customize the frameworks to monitor and control the satellite on-board

equipment during its testing phase by inserting new equipment data in the Operation database. This will replace

several tests programs, which currently are created for each piece of equipment, because the same on-board

computer test application can be used to test all the equipment.

IV. Data Stream Module

The implementation of the frameworks are strongly based on the Support Component. This component is a class

library that provides several services to isolate the problem domain from each specific service interface provided by

different operating systems, as described in Ref. 1. One of its elements is the Data Stream Module which provides

services for creating and accessing data structures in the memory. These data structures are created based on

description data stored in the Operation database. The services can be used to handle the command and monitoring

messages that are exchanged with a remote entity (satellite or ground station).

«Factory»

CCMDGSFactory

«Observer/Abstract»CCMDAbstractGSObserver

«Abstract»CCMDGroundStation

CCMDNNNGroundStation

CSPTTcpComm

CCMDGSComm

«Facade»

CCMDIntGSComm

m_objGSComm

m_objGsComm

m_objGroundStation

create

Figure 3. Class diagram of CMDGSComm Module.

American Institute of Aeronautics and Astronautics 092407

6

The use of this module starts by defining, in the Operation database, the fields of a particular data message.

These fields can represent message payloads or control values of a protocol. The description of the relationship

among these fields, as well their positions, allows representing the complete data message in the Operation database.

Once instanced into memory, the Data Stream’s functional schema is based on the pattern Composite to allow

data structures handling in execution time. Through this pattern it is possible to recursively define tree data

structures. For instance, in a protocol’s message, each element of tree models generically a message field. The

message fields can be atomic fields, representing valued parameters (leaf nodes of the tree), or be structures

composed of other structures or parameters (parent node). The representation of this tree structure is illustrated in

Figure 4 by a class diagram, where a parameter (class CSPTMetaParameter) and a structure (class

CSPTMetaStructure) are specializations of a generic field (class CSPTMetaField) and the structures can be

composed of other fields.

The service set provided by Data Stream module hides

all complexity behind the process of coding and decoding

data structures. These services also include methods for

setting and getting parameter values.

The use of Data Stream services brings great flexibility

in modeling applications which require manipulating

protocol’s messages in different formats. Additionally,

because it is a generic mechanism based on metadata the

whole source code of this module can be reused in each

new project, by only changing the structures defined in the

Operation database. Several requirements can be easily

met by just modifying, in the Operation database, the

attributes of message fields or their relationship. Hence, let

a particular hardware of a satellite family be responsible for coding and decoding messages of a communication

protocol. If replacing this hardware implies in changing the word format of messages, from big-endian to little-

endian, it is enough to alter the type attribute of the affected parameters. Thus, not even a single line of source code

would have to be rewritten.

On the other hand, if a new requirement needs a change, which is much more than a simple database

modification, it is feasible to incorporate new portions of source code into Data Stream module. This is possible,

because several kinds of design patterns were used in the module’s model in order to make it easier to specialize

new classes to comply with new requirements. Thus, the Strategy pattern was applied to model the different types of

parameters and provide a generic interface to set and get their raw value. Each specialized class, named binary

transfer function, implements a specific conversion process according to its type attribute. Currently, nine types of

these functions are defined: float (32 bits) little-endian or big-endian, unsigned or signed int (1 to 32 bits) little-

endian or big-endian, Hexa-decimal array (1 to 32 bits) little-endian or big-endian, and byte array. If a new

requirement leads to a specification of a new type, it implies only on the codification of a new class and the

inclusion of this class into the component library.

The Strategy pattern is applied also to build derived parameters. The values of these special parameters are

obtained based on an expression, also described in the Operation database, that takes into account the values of

other parameters. This feature is implemented by the Data Stream module through a set of classes that represent the

operators that can be used in the expression. Each class performs a specific arithmetic operation using values gotten

from other parameters. At present, 19 operators are available and the inclusion of a new operator just requires

creating a new class to implement it and add its object creation in the class which is responsible for creating the

operator objects.

Very specific formats of message fields, or still, the use of pieces of legacy software, can be included into the

Data Stream module through a Dynamic Linked Library (DLL). This feature is applied in the process of converting

parameter values from raw to engineering units. For complying with the most usual conversion requirements, there

are linear invertible transfer functions that can be customized in the database. However, if a mission defines a

special requirement which is not able to be met by linear transfer functions, then an API is provided and an external

implementation can be incorporated into the Data Stream runtime code.

Other features of the Data Stream module include the monitoring and labeling of parameters according values or

ranges of values previously defined in the Operation database. Presently, it is possible to monitor parameter values

using alert and warning zones described in the Operation database as value ranges, discrete values and discrete

values plus/minus value deltas. The implementation of a new class, which meets a new monitoring criteria, requires

CSPTMetaField

CSPTMetaParameter CSPTMetaStructure

Figura 4. Tree structure classes.

American Institute of Aeronautics and Astronautics 092407

7

only the modification of a Factory class to create its objects and the inclusion of a service to access the new

monitoring description in the Operation database.

Both Commanding and Monitoring frameworks make use of the Data Stream module, reducing significantly the

effort of implementing routines to coding and decoding messages. At the Commanding framework, the Data Stream

module is used as follows: (i) in the Commands module for coding/decoding the command’s inner structure; (ii) in

the EndToEndComm module to pack/unpack the layers associated to data messages of ground-board protocols or

ground station remote control protocols; (iii) in the CMDGSComm module to pack/unpack the layers of data

messages of ground-ground protocols. Yet, at the Monitoring framework, the ProcParam module is composed of

just a few interface classes, which make use of the Data Stream module’s services to decode monitoring data

packets, extract parameters values from these packets, convert theses values to engineering units and also monitor

them. The MONGSComm module also uses the Data Stream module to pack/unpack the data messages layers of

ground-ground protocols. Thus, the Data Stream module has been used for implementing several functions of both

frameworks requiring just the description of their data structures in the Operation database.

V. Metadata Edition

The Persistence layer of the SATCS logical architecture contains the Operation database which is responsible

for storing all parameters needed to configure software and mission data. The database tables are organized in three

categories: Metadata, Problem Domain and Support, as shown in Figure 5.

The Metadata category tables allow configuring data

structure in such a way that this information can be used

by SATCS subsystems through the Data Stream module

objects. Inside the Problem Domain category are the

tables created to store the information needs of a specific

problem domain. In general, this category has

relationships with the Metadata category to configure

specific data structures. Finally, the Support category

includes tables whose information are used by several

common services available in Support component

library, like client-server communication addresses,

descriptions of events that can occur in subsystems and configuration parameters that can be redefined by SATCS

users.

The User View layer (see Figure 1) includes editors for data insertion in all three categories of the Operation

database. These editors are responsible, together with the rules existing in the database manager, to assure the

integrity and consistency of the information in the database. They also provide a friendly interface to the users which

are in charge of inserting data. For the Support category only one editor is enough to access all the information,

since their data has the same meaning for any user. But in the Metadata category, the information meaning is

specific for each domain. Its tables, combined or not with the ones from the Problem Domain category, can be used

to represent data structures from different sources such as telemetry, telecommand and ground station protocol data

messages. Besides that, documenting the knowledge through metadata creates a complexity in the database that

makes the data representation very hard to understand. For overcoming this difficulty, the database editing tool

needs to be designed with two different views: SATCS-Developer view and Problem Domain view.

The SATCS-Developer view comprises an unrestricted access to the database. It is addressed to SATCS project

developers who, knowing the database structure, do not need a very sophisticated tool to insert data. This editing

tool view is responsible for maintaining data integrity. It also allows inserting information of any problem domain,

in the database, in a generic way. For instance, a telemetry message is represented generically in the database as a

group of information about data fields, where these fields can represent parameters or data structures to compose a

data structure associated with a telemetry message. The data messages of other domains are also represented in a

similar way.

The Problem Domain view is addressed to framework users that desire to customize it for a specific application

but do not need to know the database complexity to perform this customization. The editors available in this vision

will focus on the group of information related to each problem domain and not in the database structure. Therefore,

in this vision a telemetry message will no longer be seen as a group of information about data fields (SATCS-

Developer view) but as a group of monitoring parameters that will be part of the telemetry message header and

body. The editor will be responsible for guiding the whole process of a specific domain information edition and

Figure 5. Database data categories.

American Institute of Aeronautics and Astronautics 092407

8

linking database tables and relationships in a transparent way. This view will be designed to be used by two groups

of users: Application Developer and End User.

The Application Developer group is responsible for customizing the framework for a specific problem domain

and will use the editing tool to build in the database the fundamental data structures that are necessary for

configuring that domain. The End User group will be responsible to fill the data structures, created by an user of

Application Developer group, with real values of a specific satellite or ground station. The edition tool will only

permit to this group access to add data to complement the information previously inserted by the users of the

Application Developer group.

The Figure 6 illustrates the Problem Domain view with an example of edition of the Operation database. It

considers the customization of the Commanding framework for sending telecommands to satellites of the CBERS

family. First, an Operation database instance is made available to be edited. This instance should include data

required by the framework implementation (software configuration data) such as the set of event messages that the

framework can generate during its processing and the type of data contained in a command. This kind of information

is strictly connected to the existence of a specific code used by the framework model. By using this Operation

database instance, an user of the Application Developer group can insert the types of commands required for

CBERS mission, the data

structures associated to these

command types, the description

of the message layers of the

ground-board and ground-

ground protocols and the data

structures associated to each

protocol layer. After the edition

of this database instance by

users of the Application

Developer group, all the

common CBERS family

information will be available for

later use. Finally, this database

instance shall be replicated for

each one of the CBERS satellite

(CBERS2B, CBERS3 and

CBERS4) and the specific

values associated to each

satellite shall be included by

users of the End User group.

These users will be able to

create specific satellite

telecommands based on the command type structures previously defined and insert specific values for parameters

defined as fixed in the database source instance.

VI. Conclusion

The DSS team experience was vital in Commanding and Monitoring frameworks design, since it allows

identifying the variability points in both problem domains and making adequate design decisions in order to make

flexible the insertion, edition and selection of code to meet the requirements of each software product.

This design has become easier due to the use of the proposed logical architecture template and the adoption of

the design rules established for the SATCS project (design patters, metadata and component-based development).

Once the frameworks are inserted in the Subsystem and UserView layers, the project focus got centralized

exclusively in the scope of command and monitoring domains, since basic services are provided by other layers and

by the Support component.

Nowadays, the Commanding and Monitoring frameworks are being customized to create two software products

for CBERS 3&4 satellite: a TM&TC application which makes use of all the framework modules and will be

installed at INPE´s Satellite Control Center and, a DLL library which makes use of some framework modules and

will be used in the EGSE software. The use of the same commanding and monitoring kernel and Operation database

Figure 6. Database instances for the Commanding framework.

American Institute of Aeronautics and Astronautics 092407

9

in both systems will reduce the verification and validation effort of the ground control systems before the start of the

flight operation phase.

The use of metadata and the Data-stream module made it possible to reduce drastically the need to adapt the

framework codes to comply with specific requirements of CBERS satellites. A large number of requirements were

implemented by configuring the satellite Operation database. The code customization that was necessary for

CBERS satellites confirmed the variability points already identified in the frameworks. The preparation of the

Operation database was performed using the SATCS-Developer view and required a lot of work. This motivated the

necessity of creating the Problem Domain view to make it easier the task of preparing the Operation database.

Because different software products can be created using the frameworks, an important point to be considered is

the definition of well defined control configuration and validation processes. Since changes can occur in several

interdependent levels (Persistence layer, Archiving & Retrieving layer, Support component and framework), a

suitable process for updating and testing the framework elements need to be set up to assure their reliability.

References 1Cardoso, P. E.; Barreto, J. P.; Dobrowolski, K. M., “A Ground Control System for CBERS 3 and 4 Satellites,” 9th

International Conference on Space Operations, AIAA, Rome, Italy, 2006 2Gamma, E., Helm, R., Johnson, R., Vlissides, J., Design Patterns: Elements of Reusable Object-Oriented Software, 1st ed.,

Addison-Wesley, Reading, Massachusetts, 1995, pp. 395. 3 Sommervile, I., Software Enginnering, 6th ed., Addison-Wesley, Harlow, England, 2001, pp. 310-318. 4Johnson, R.; Wolf, B., “Type object,” Pattern languages of program design 3, edited by R. C. Martin, D. Riehle and F.

Buschmann, Addison-Wesley, Reading, Massachusetts, 1998, cap. 4, p. 47-66.


Recommended