Hummingbird An Open Source Ground Segment for Small Satellites



Similar documents
How to secure your Apache Camel deployment

Riding the (Apache) Camel into the cloud!

Hummingbird. A Service Based Open Source Ground Segment for Small Satellites

Spoilt for Choice Which Integration Framework to choose? Mule ESB. Integration. Kai Wähner

Uses the Apache Chemistry client API to interface with CMIS supporting CMS

FUSE-ESB4 An open-source OSGi based platform for EAI and SOA

Systems Integration in the Cloud Era with Apache Camel. Kai Wähner, Principal Consultant

President and Director OeHF. Implementing IHE Actors using the Open ehealth Integration Platform (IPF)

1 Data information is sent onto the network cable using which of the following? A Communication protocol B Data packet

WELCOME TO Open Source Enterprise Architecture

LESSON Networking Fundamentals. Understand TCP/IP

ESB pilot project at the FMI

Red Hat JBoss Integration and Business Rules Mgmt

Distributed Systems. 2. Application Layer

Application Monitoring using SNMPc 7.0

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

RED HAT JBOSS FUSE. An open source enterprise service bus

Introduction to Computer Networks

This training is targeted at System Administrators and developers wanting to understand more about administering a WebLogic instance.

BEA AquaLogic Integrator Agile integration for the Enterprise Build, Connect, Re-use

First Workshop on Open Source and Internet Technology for Scientific Environment: with case studies from Environmental Monitoring

Oracle WebLogic Foundation of Oracle Fusion Middleware. Lawrence Manickam Toyork Systems Inc

Big Data Analytics - Accelerated. stream-horizon.com

Enterprise Service Bus Evaluation as Integration Platform for Ocean Observatories

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Experiences with Open-Source BPM/SOA-based Stack using Java EE Rok Povše, Matjaž B. Jurič

White Paper: 1) Architecture Objectives: The primary objective of this architecture is to meet the. 2) Architecture Explanation

Building a Reliable Messaging Infrastructure with Apache ActiveMQ

EXPLORER. TFT Filter CONFIGURATION

Future Internet Technologies

Configuring Health Monitoring

TechDemoSat-1: A software test bed for CCSDS SM&C

Building a Service Oriented Architecture with ServiceMix. Jeff Genender CTO Savoir Technologies, Inc

IBM WebSphere Server Administration

BlackBerry Enterprise Service 10. Version: Configuration Guide

EUROPEAN ORGANIZATION FOR NUCLEAR RESEARCH CERN ACCELERATORS AND TECHNOLOGY SECTOR A REMOTE TRACING FACILITY FOR DISTRIBUTED SYSTEMS

Internet Protocol: IP packet headers. vendredi 18 octobre 13

ESB Features Comparison

Building Scalable Messaging Systems with Qpid. Lessons Learned from PayPal

Oracle Service Bus: - When to use, where to use and when not to use

CPS221 Lecture: Layered Network Architecture

Monitoring Windows Servers and Applications with GroundWork Monitor Enterprise 6.7. Product Application Guide October 8, 2012

Communications and Networking

Configuring Health Monitoring

Ground Equipment Monitoring Service The complexity of the protocol should not outweigh the complexity of the device

Basic Networking Concepts. 1. Introduction 2. Protocols 3. Protocol Layers 4. Network Interconnection/Internet

Data Communication Networks and Converged Networks

MyPBX Security Configuration Guide

AquaLogic Service Bus

Introduction To Computer Networking

Computer Networks CS321

Lambda Architecture for Batch and Real- Time Processing on AWS with Spark Streaming and Spark SQL. May 2015

JBI and OpenESB. Introduction to Technology. Michael Czapski Advanced Solutions Architect, SOA/BI/Java CAPS Sun Microsystems, ANZ

Fuzzy Network Profiling for Intrusion Detection

Introduction to Sun ONE Application Server 7

WebSphere Server Administration Course

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

Building Your Firewall Rulebase Lance Spitzner Last Modified: January 26, 2000

Lecture 28: Internet Protocols

Interplanetary Internet (IPN): An Architectural Definition

DNS use guidelines in AWS Jan 5, 2015 Version 1.0

Deploying ACLs to Manage Network Security

openadaptor 3.2 Whitepaper

How To Use A Network Over The Internet (Networking) With A Network (Netware) And A Network On A Computer (Network)

1. Introduction What is Slice? Background Why Slice? Purpose of this Document Intended Audience...

Moving beyond hardware

What Is the Java TM 2 Platform, Enterprise Edition?

WSO2 Message Broker. Scalable persistent Messaging System

How To Create A Large Data Storage System

Chapter 4: Security of the architecture, and lower layer security (network security) 1

Oracle Big Data Spatial & Graph Social Network Analysis - Case Study

Before deploying SiteAudit it is recommended to review the information below. This will ensure efficient installation and operation of SiteAudit.

Son of SOA Resource-Oriented Computing Event-Driven Architecture

RED HAT JBOSS FUSE. A lightweight, flexible integration platform

Configuration Guide BES12. Version 12.3

CompTIA Exam N CompTIA Network+ certification Version: 5.1 [ Total Questions: 1146 ]

Japan Communication India Skill Development Center

An introduction to creating JSF applications in Rational Application Developer Version 8.0

Sav - Konnect Project Intranet

This document gives an outline of Tim Ward s work on mobile phone systems

Topics. Computer Networks. Let s Get Started! Computer Networks: Our Definition. How are Networks Used by Computers? Computer Network Components

Quectel Cellular Engine

Application Performance Monitoring for WhatsUp Gold v16.1 User Guide

Managing your Red Hat Enterprise Linux guests with RHN Satellite

6WRUP:DWFK. Policies for Dedicated IIS Web Servers Group. V2.1 policy module to restrict ALL network access

Citrix 1Y0-911 Citrix Resource Manager CCEA. Version 1.0

Computer Networks - CS132/EECS148 - Spring

Billing and Customer Management System

Application Performance Monitoring for WhatsUp Gold v16.2 User Guide

Moving to Plesk Automation 11.5

Integration in the cloud - IPaaS with Fuse technology. Charles Moulliard Apache Committer

Fachgebiet Technische Informatik, Joachim Zumbrägel

A host-based firewall can be used in addition to a network-based firewall to provide multiple layers of protection.

Transcription:

Hummingbird An Open Source Ground Segment for Small Satellites A true story of doing things different GSAW 2012 Gert Villemos (Villemos Solutions) Mark Doyle (Logica) and Johannes Klug (Logica) Logica 2011. All rights reserved 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

What is Hummingbird An open source software framework (Apache License) For building ground segment systems for small satellites A back to basics approach Using simplicity as a design principle Pushing as much functionality as possible to existing technologies www.hbird.org and facebook

The world 5 years 8y years Logica 2011. All rightsand reserved 2012 by Villemos Solutions Logica. Published by The Aerospace Corporation with permission.

The world we live in Logica 2011. All rightsand reserved 2012 by Villemos Solutions Logica. Published by The Aerospace Corporation with permission.

Business Plan 1.0 2.0

Back to Basics

Thesis s Ground segment systems for satellites is no longer special; we move data from A to B Modern network technologies can be used and are better. Lets stop reinventing the wheel Complexity is inherited ( and often cultural) and propagates through our systems. It is the root of all evil Find the root course and remove it. Ground segment system can be really simple

New Implementation e Concept Us Someone else This is hardly brain surgery!

Technology ogy Stack (fantastic four) Spring Camel ActiveMQ Cometd... but components in other languages can be integrated... and yes, its all Java

Evolution outo Hummingbird 0.1 Classical separation into tiers (transport, business, presentation) CCSDS stack Frames Packets Parameters Distribution of predefined types Centered on centralized System Model (think runtime XTCE) Hummingbird 0.2 CCSDS stack banned to transport tier, fully encapsulated True asynchronous processing Semantic information model, non-relational databases Distribution of what-ever with plugable services

System Integration GHttp JBI JPA Krati AMQP Nagios SAX Crypto JDBC APNS RNG RNC HL7 JMX JMS Kestrel UDP HDFS SQL IRC SIPCometd SMTP FTP RMI TCP XMPPLDAP SNMP POP AWS REST Mina JClouds RSS SSH DNS PAX JT400 Atom imap Hazelcast File

Demand complete rethinking of processing model. An architectural driver. Semantic Data Scalable Extendible stateof State X withraw Name Description Description Raw Value Eng Value Description State A State B stateof Description Description stateof State C stateof Non-normalized Description

Service B Limit it Check Service Consumes: Parameter message Emits: State Parameter Description: The limit check service takes as input a parameter, checks its limit and emmits a state parameteramete corresponding to the limit with value true (in limit) or false (out of limit). B p1 p2 p3 e1 e2 p4 e3 Heartbeat Service Consumes: None Emits: Heartbeat Description: Issues a alive message at intervals. Parameter State Heartbeat

First Flight Comming up EstCube (University of Estland) Strand (Surrey Satellites) TechDemoSat-1 (UK Space Agency)

Initial ta Results esuts Having implemented guestimated 10% of the functionality of similar existing systems Commanding (scheduling, pre release validation, release, verification and history) Monitoring (parameter creation, limit check, consistency check, calibration and history) Orbit and contact prediction New code base 1k LoC Existing code base ~1m Lines of Code (LoC) Projected code base 10k LoC

Value aue Highly motivated staff, learning by doing Concepts feedback into winning normal work Door opener to new, and frequently unexpected, markets Great PR Neither predictable nor quantifiable but very real

Business Model Open Source Core Enterprise Edition Liability Tested Proven Documented Evolution plan Ahead of the curve Services and added value products

Conclusions o s Nothingismoreconvincingthantostoptalkingandstartdoing Standard technologies (of course) work for space data systems System integration can be very simple, we make it complex Managing an open source community is not simple

?!??!?!!?? Questions? Read more at: www.hbird.org and facebook

Business Tier Spring Component Assembly CometD Streaming Camel Integration ActiveMQ Distribution Services

WARNING: Source code ahead!... the message is not in the code itself, but in the changes to the code

The Modern Code Base public class Manager implements IManager { protected IWorker worker = new Worker(); public void manage() { worker.work("1:2:3"); public class Worker implements IWorker { protected IPublisher publisher = new Publisher(); public void work(string values) { String[] elements = values.split(":"); for (String element : elements) ){ long value = Long.parseLong(element); publisher.display(value); public class Publisher implements IPublisher { public void display(long value) { System.out.println("Test p ( value: " + value);

The Modern Code Base public class Manager implements IManager { protected IWorker worker = new Worker(); public void manage() { worker.work("1:2:3"); Only three lines of business logic here... public class Worker implements IWorker { protected IPublisher publisher = new Publisher(); public void work(string values) { String[] elements = values.split(":"); for (String element : elements) { long value = Long.parseLong(element); publisher.display(value); public class Publisher implements IPublisher { public void display(long value) { System.out.println("Test value: " + value);

The Modern Code Base public class Manager implements IManager { protected IWorker worker = new Worker(); public void manage() { worker.work("1:2:3"); public class Worker implements IWorker { <bean id= manager class= foo.manager /> <bean id= worker class= foo.worker /> <bean id= publisher class= foo.publisher /> <route> <from uri= timer://foo?period=60000 /> <to uri=bean:manager" /> <to uri= bean:worker /> <to uri= bean:publisher bean:publisher"/> </route> protected IPublisher publisher = new Publisher(); public void work(string values) { String[] elements = values.split(":"); for (String element : elements) ){ long value = Long.parseLong(element); publisher.display(value); public class Publisher implements IPublisher { public void display(long value) { System.out.println("Test p ( value: " + value);

The Modern Code Base public class Manager implements IManager { protected IWorker worker = new Worker(); public void manage() { worker.work("1:2:3"); public class Worker implements IWorker { protected IPublisher publisher = new Publisher(); <bean id= manager class= foo.manager /> <bean id= worker class= foo.worker /> <bean id= publisher class= foo.publisher /> <route> <from uri= timer://foo?period=60000 /> <to uri=bean:manager" /> <split> <method bean= worker /> <to uri= bean:publisher"/> </split> </route> public void work(string values) { String[] elements = values.split(":"); for (String element : elements) ){ long value = Long.parseLong(element); publisher.display(value); public class Publisher implements IPublisher { public void display(long value) { System.out.println("Test p ( value: " + value);

The Modern Code Base public class Manager { public String manage() { return "1:2:3"; public class Worker { public String[] work(string values) { return values.split(":"); <bean id= manager class= foo.manager /> <bean id= worker class= foo.worker /> <bean id= publisher class= foo.publisher /> <route> <from uri= timer://foo?period=60000 /> <to uri=bean:manager" /> <split> <method bean= worker /> </split> </route> <to uri= bean:publisher"/> Massive code base reduction public class Publisher { public void display(long value) { System.out.println( println("test value: " + value); Only business logic in the code, routing in the configuration Fantastic code metrics (no coupling) 100% test coverage easy to reach