USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE



Similar documents
SOFTWARE TESTING TRAINING COURSES CONTENTS

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

OF 1.3 Testing and Challenges

Automation using Selenium

What is a programming language?

CS 209 Programming in Java #1

Service Oriented Architecture (SOA) Implementation Framework for Satellite Mission Control System Software Design

Java in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design

Chapter 13: Program Development and Programming Languages

Language Evaluation Criteria. Evaluation Criteria: Readability. Evaluation Criteria: Writability. ICOM 4036 Programming Languages

Architectures for Fleet Management. B. L. Kizzort. Harris Corporation, Melbourne, Florida, USA.

Chapter 1. Dr. Chris Irwin Davis Phone: (972) Office: ECSS CS-4337 Organization of Programming Languages

PIE. Internal Structure

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents

Software: Systems and Application Software

System Structures. Services Interface Structure

1/20/2016 INTRODUCTION

REMOTE DEVELOPMENT OPTION

Course MS10975A Introduction to Programming. Length: 5 Days

Load Testing RIA using WebLOAD. Amir Shoval, VP Product Management

Using EDA Databases: Milkyway & OpenAccess

Avaya Aura Orchestration Designer

Practical Application of Service Oriented Architecture

CrossPlatform ASP.NET with Mono. Daniel López Ridruejo

Technical Information Abstract

Efficiency Considerations of PERL and Python in Distributed Processing

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

A Modular Approach to Teaching Mobile APPS Development

Ball Aerospace s COSMOS Open Source Test System

DataDirect XQuery Technical Overview

General Introduction

Alternatives to SNMP and Challenges in Management Protocols. Communication Systems Seminar Talk 10 Francesco Luminati

DiskBoss. File & Disk Manager. Version 2.0. Dec Flexense Ltd. info@flexense.com. File Integrity Monitor

IBM Rational Web Developer for WebSphere Software Version 6.0

9/11/15. What is Programming? CSCI 209: Software Development. Discussion: What Is Good Software? Characteristics of Good Software?

ORACLE MOBILE SUITE. Complete Mobile Development Solution. Cross Device Solution. Shared Services Infrastructure for Mobility

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

REDUCING THE COST OF GROUND SYSTEM DEVELOPMENT AND MISSION OPERATIONS USING AUTOMATED XML TECHNOLOGIES. Jesse Wright Jet Propulsion Laboratory,

Modern Software Development Tools on OpenVMS

Software Automated Testing

Linux. Reverse Debugging. Target Communication Framework. Nexus. Intel Trace Hub GDB. PIL Simulation CONTENTS

zen Platform technical white paper

An Easier Way for Cross-Platform Data Acquisition Application Development

Web Frameworks. web development done right. Course of Web Technologies A.A. 2010/2011 Valerio Maggio, PhD Student Prof.

A standards-based approach to application integration

Firewall Builder Architecture Overview

Open EMS Suite. O&M Agent. Functional Overview Version 1.2. Nokia Siemens Networks 1 (18)

Jitterbit Technical Overview : Microsoft Dynamics CRM

CDC UNIFIED PROCESS JOB AID

Features of The Grinder 3

Chapter 13 Computer Programs and Programming Languages. Discovering Computers Your Interactive Guide to the Digital World

Software Development Kit

Performance Testing and Optimization in Web-Service Based Applications

Developing Google Android Mobile Clients for Web Services: a Case Study

Evaluation of Load/Stress tools for Web Applications testing

BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER

C/S Basic Concepts. The Gartner Model. Gartner Group Model. GM: distributed presentation. GM: distributed logic. GM: remote presentation

Emerging Technologies Shaping the Future of Data Warehouses & Business Intelligence

ATV Data Link Simulator: A Development based on a CCSDS Layers Framework

Application Testing Suite Oracle Load Testing Introduction

Integrating TAU With Eclipse: A Performance Analysis System in an Integrated Development Environment

Analyzing Network Servers. Disk Space Utilization Analysis. DiskBoss - Data Management Solution

USE OF SCILAB FOR SPACE MISSION ANALYSIS AND FLIGHT DYNAMICS ACTIVITIES

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Software: Systems and. Application Software. Software and Hardware. Types of Software. Software can represent 75% or more of the total cost of an IS.

Main Bullet #1 Main Bullet #2 Main Bullet #3

3-Tier Architecture. 3-Tier Architecture. Prepared By. Channu Kambalyal. Page 1 of 19

Figure 1: MQSeries enabled TCL application in a heterogamous enterprise environment

1 What Are Web Services?

Evolution of the Major Programming Languages

Cisco PIX vs. Checkpoint Firewall

VOCOLLECT VOICEARTISAN. Extending Your Vocollect Configuration

Manage Software Development in LabVIEW with Professional Tools

INTRODUCTION TO JAVA PROGRAMMING LANGUAGE

Cross-Platform Software Considerations for Internet of Things

A Service-oriented Architecture for Business Intelligence

Service Oriented Architecture

Agile Business Suite: a 4GL environment for.net developers DEVELOPMENT, MAINTENANCE AND DEPLOYMENT OF LARGE, COMPLEX BACK-OFFICE APPLICATIONS

Latte Rapid Application Development. William Dunlap Product Manager Borland International

Service-Oriented Architecture and Software Engineering

WebRatio 5: An Eclipse-based CASE tool for engineering Web applications

Vanguard Knowledge Automation System

Easy configuration of NETCONF devices

a division of Technical Overview Xenos Enterprise Server 2.0

ANDROID DEVELOPER RESUME USA

4D and SQL Server: Powerful Flexibility

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

1 What Are Web Services?

Lesson 4 Web Service Interface Definition (Part I)

What is Open Source? Open source is defined by three key components:

Three Stages for SOA and Service Governance

IBM SOA Foundation products overview

CE 504 Computational Hydrology Computational Environments and Tools Fritz R. Fiedler

AUTOMATED CONFERENCE CD-ROM BUILDER AN OPEN SOURCE APPROACH Stefan Karastanev

A Comparison of Web Development Technologies: WebObjects vs. ASP.NET

CONDIS. IT Service Management and CMDB

BMC Remedy Action Request System Integration Guide

Transcription:

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE Gonzalo Garcia VP of Operations, USA Property of GMV All rights reserved

INTRODUCTION Property of GMV All rights reserved

INTRODUCTION Presentation shares the results of GMV s experience regarding: Next generation automation layer for Satellite Command and Control (SCC) Required to interact with the core of the SCC via an existing Application Programming Interface (API), exporting its services as functions available from a dynamic language. Layer was expected to support Automation of operational satellite control procedures Automation of non-regression SCC testing during development, integration and maintenance. All previous points also applied to ground equipment Broad view of automation, applied well beyond actual operational procedures In particular, this presentation summarizes our analysis regarding the feasibility of the use of Python as the scripting language 2008/04/01 Page 3

SCC AUTOMATION LANGUAGES Property of GMV All rights reserved

EXISTING LANGUAGES FOR SCC AUTOMATION SCC automation approaches: procedural scripts Space-specific languages General purpose languages rule-based expert systems finite state models our focus Multiple space-specific languages currently used: STOL: Satellite Test and Operations Language Originally developed by NASA, multiple flavors Widely used by many GOTS and COTS PLUTO: some ESA missions (SCOS-2000) Multiple proprietary languages used by different companies: SOL (GMV), CCL (Harris), OCIL / CECIL (Raytheon), PIL (Astrium), SCL (ICS), etc General purpose languages used in some missions: Perl, Tcl 2008/04/01 Page 5

CUSTOM vs GENERAL PURPOSE LANGUAGES SPACE-SPECIFIC (eg. STOL) GENERAL PURPOSE (eg. Python) PROS CONS (Sometimes) more user friendly for nonprogrammers Adapted to satellite operations High reliability Proprietary language and/or tools Portability issues Limited, enhancements are expensive Open source Very powerful Portable Language can be easily restricted / extended Wide availability of tools and programmers Potentially less readable if coding is not done carefully Too powerful? 2008/04/01 Page 6

HOW ABOUT PYTHON? Property of GMV All rights reserved

Python Python is a portable, open, highlevel, object-oriented, dynamic language Conceived in the 80s, used massively since the 90s Recognized widely for its readability, maintainability and modifiability, key aspects for complex procedures that may be modified multiple times throughout a mission. Performance is much better than most other dynamic languages. Compiled to bytecode Widely supported by the software community, which guarantees the availability of good programmers, Integrated Development Environments (IDEs) and extensions. Multiple successful applications in space business E.g. Shuttle Mission Design 2008/04/01 Page 8

ADVANTAGES OF THE USE OF PYTHON (1) Portable Windows (XP, CE, Pocket PC), Linux, UNIX, Macintosh Many others: AIX, AROS, AS/400, ipod, OS/2, Palm OS, Playstation, Psion, VxWorks, Nokia cell phones,.net, Java Virtual Machine, Open Free, even for commercial use. Interpreter can be embedded in products (no license fee) Open source, no GPL-like traps Dynamic Dynamically typed and interpreted, ideal for fast scripting Powerful Complex built-in data structures (e.g. flexible arrays, lists, dictionaries) Great variety of program control instructions Productivity 5 10 times higher than Java Supports exception handling Automatic memory management and garbage collection Language is extensible 2008/04/01 Page 9

ADVANTAGES OF THE USE OF PYTHON (2) Object orientation, with all the associated benefits (reuse, abstraction, scalability,...) Supports classes, inheritance, templates Easy integration with existing Service Oriented Architecture (SOA) implementations Web Services (WSDL) GMSEC API (Python supported) SCC FDS MPS PORTAL software bus 2008/04/01 Page 10 Built-in development capabilities, given as language modules Automatic documentation generation Unit testing, regression testing Debugger, profilers, interpreter, compiler Availability of multiple modules for XML processing: Multiple applications: XTCE DB parsing, SOAP messaging, etc Communications: Sockets, Internet access, RPC, email Time performance measurement Many others: database access, math, data compression, multithreading, cryptography, operating system access, etc

ADVANTAGES OF THE USE OF PYTHON (3) Availability of bindings for multiple GUI-development toolkits (Qt4, GTK2, Tk, wxwidgets, etc) Wide variety of plug-ins for Eclipse (a popular open development platform) can be used to work with Python. Availability of multiple, powerful, free tools for Development Source code inspection and metrics generation Debugging, testing Configuration management Wide support by commercial tool vendors 2008/04/01 Page 11

RISKS OF THE USE OF PYTHON Language may be too powerful and complex for non-programmers. This can be handled by restricting the use of certain instructions from the development environment Readability may be worse than space-specific languages if coding is not done carefully Strict coding standards are needed Coding can be abstracted for non-programmers using a visual environment Evolution of language is controlled by others This is part of the deal of using a general-purpose language Compensated by all the advantages A mission can just freeze the Python version & development environment and use updates on a case-by-case basis Dependency on third-party software (the interpreter) But it is open source 2008/04/01 Page 12

INTEGRATION OF PYTHON WITH AN SCC Property of GMV All rights reserved

INTEGRATION OF PYTHON WITH AN SCC A tool was created to develop, test, modify and schedule the Python procedures. Target users: Satellite operators Environment fully customized to take into account the target automation requirements Operational procedures SCC non-regression testing Ground equipment operations & testing Access to the SCC API is enabled by a Python library that encapsulates all the standard API services Development and execution environment Procedures Python SCC library API SCC 2008/04/01 Page 14

DEVELOPMENT AND EXECUTION ENVIRONMENT (1) Development environment Objective: Deliver the most powerful support for procedure development and validation Based on Eclipse/RCP (Rich Client Platform): Open Development Platform Widely adopted as Integrated Development Environment Open source Supports scripting languages RCP: specifically designed to build custom IDEs Capabilities Repository Edition: Including syntax highlighting Verification: Including procedure verification against the satellite database Automatic look-up of class methods, function arguments, etc Metric generation, coverage statistics Debugging Development and execution environment Procedures Python SCC library API SCC 2008/04/01 Page 15

DEVELOPMENT AND EXECUTION ENVIRONMENT (2) 2008/04/01 Page 16

DEVELOPMENT AND EXECUTION ENVIRONMENT (3) Procedure execution services Procedure execution (cold/warm start, start at, etc) Parallel execution supported Procedure control (pause, resume, step, etc) Supports step-by-step execution as well as spacecraft protocol details (eg. TC verification) Procedure monitoring (execution status, etc) Repository browser browse (read only) validated procedures Scheduler Schedule, control and monitor procedures Triggers, events, pause, resume, etc Development and execution environment Procedures Python SCC library API SCC 2008/04/01 Page 17

PROCEDURES (1) Nominally, native procedures written in Python Support for existing spacespecific languages provided by the development of conversion tools that generate the extended Python scripts from the legacy operational procedures. STOL, CECIL Procedures in XML This is very important to minimize cost and risk when adapting standard platformspecific procedures from certain manufacturers replacing an operational SCC that used procedures in these languages Legacy Procedures (eg. STOL) translator Development and execution environment Procedures Python SCC library API SCC 2008/04/01 Page 18

PROCEDURES (2) The flexibility of Python has made it possible to perform this conversion in two ways: As a batch process, where a set of scripts have been converted to the extended Python As a real-time conversion, allowing the operator to keep using the original language for step-by-step execution monitoring and for the implementation of modifications Maintains traceability between lines of code of original procedures and translated procedures Legacy Procedures (eg. STOL) translator Development and execution environment Procedures Python SCC library API SCC 2008/04/01 Page 19

Python + SCC LIBRARY Python: Includes Interpreter Multiple extensions supporting arrays, vectors, XML, GUIs, HTML, etc SCC Library Provides access to API services from the Python code Services are encapsulated in a class, services become class methods Potentially this class could be standardized to allow the operator to: Use the same procedures with different SCCs (e.g. heterogeneous fleet using different products) Migration from a legacy SCC to a new product Development and execution environment Procedures Python SCC library API SCC 2008/04/01 Page 20

SCC API API Services Access to satellite database definitions Telemetry (TM) TM access (real-time, retrieval, packets and parameters, single parameter, parameter sets) TM injection Telecommands (TC) TC injection (real-time, retrieval, filtering criteria) TC history access TC status monitoring Event and out-of-limits access (realtime, retrieval, filtering criteria) Event injection Modification of out-of-limit definitions Open predefined TM displays Development and execution environment Procedures Python SCC library API SCC 2008/04/01 Page 21

LESSONS LEARNED Property of GMV All rights reserved

LESSONS LEARNED (1) Many space-specific languages currently used for the development of operational procedures were defined decades ago and are not used outside of the space industry. In many cases they are proprietary and require expensive products. Future support for proprietary languages and availability of tools is not guaranteed. Some operators have had serious problems replacing a system once the HW became obsolete, typical in a GEO mission (> 15 years) Lessons from Ada: Language designed under contract to the US DoD during 1977 1983 Targeted at embedded and real-time systems Mandatory for new software DoD projects since 1987 Excellent language, used successfully for thousands of projects 2003, Software Engineering Institute: Due to a dearth of tools and compilers and lack of trained, experienced programmers [ ] Ada is a programming language with a dubious or nonexistent future 2008/04/01 Page 23

LESSONS LEARNED (2) Python STOL CECIL PLUTO Operators with a heterogeneous fleet usually end up having to use different languages. This increases training & operations costs and increases the complexity of the system. Python allows the definition of a homogeneous frontend for a heterogeneous fleet Coding rules, customized development environment and training needed to guarantee the high quality & maintainability of procedures With Python, operators can benefit enormously from the software community: Using modern, powerful, open source languages like Python and tools like Eclipse/RCP widely supported Approach allows the operators to have an open, integrated environment for operational and testing procedure development, verification, execution, configuration management and metric generation It also reduces the dependency on proprietary technologies and the risks of software obsolescence 2008/04/01 Page 24

Thank you Property of GMV All rights reserved