© Logica 2011. All rights reserved © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission. Hummingbird An Open.

Slides:



Advertisements
Similar presentations
웹 서비스 개요.
Advertisements

Bringing Procedural Knowledge to XLIFF Prof. Dr. Klemens Waldhör TAUS Labs & FOM University of Applied Science FEISGILTT 16 October 2012 Seattle, USA.
Monitoring and System Management in Distributed Environment (Hajautettujen Tietojärjestelmien Hallinta ja Valvonta) S Tietoverkkotekniikan diplomityöseminaari.
Siebel Web Services Siebel Web Services March, From
TSpaces Services Suite: Automating the Development and Management of Web Services Presenter: Kevin McCurley IBM Almaden Research Center Contact: Marcus.
Enterprise Architecture Firm Architecture World ‘10 SOA on Demand Ulf Fildebrandt Chief Development Architect SOA Infrastructure SAP AG.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
WEB SERVICES DAVIDE ZERBINO.
Spring, Hibernate and Web Services 13 th September 2014.
CSIS0402 System Architecture K.P. Chow University of Hong Kong.
Folie 1 Service Oriented Architecture - Prototyping study - DLR/GSOC Author: S.Gully.
Tu sca ny 1 Simplifying Service Oriented Applications with The Apache Tuscany project Jeremy Boynes 27 July 2006.
Integrating SOA and the Application Development Framework Shaun O’Brien Principal Product Manager – Oracle JDeveloper / ADF.
Application Layer 2-1 Chapter 2 Application Layer Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Application Layer – Lecture.
Integration case study Week 8 – Lecture 1. Enrolment request (Workstation) Application server Database server Database New University Student Record System.
Building Server Behaviors Tom Muck co-author Building Dreamweaver 4 and Dreamweaver UltraDev 4 Extensions.
The Client/Server Database Environment
Struts 2.0 an Overview ( )
UNIT-V The MVC architecture and Struts Framework.
IBM Research – Thomas J Watson Research Center | March 2006 © 2006 IBM Corporation Events and workflow – BPM Systems Event Application symposium Parallel.
Unit Testing & Defensive Programming. F-22 Raptor Fighter.
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
SOA-4: Introduction to OpenEdge ® Integration Technologies Jamie Townsend Applied Architect.
Christopher Jeffers August 2012
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
Administrative Technology Services: Enterprise Applications
Apache Mina Dima Ionut Daniel. Contents What is Apache Mina? Why Apache Mina? Mina Architecture Mina Core Mina Advanced JMX Support Spring Integration.
Architecting Web Services Unit – II – PART - III.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved Chapter 4 Communication.
T Iteration Demo Team WiseGUI I2 Iteration
Spring Framework. Spring Overview Spring is an open source layered Java/J2EE application framework Created by Rod Johnson Based on book “Expert one-on-one.
Introduction to ESBs: Mule UC San Diego CSE 294 November 14, 2008 Barry Demchak.
© GMV S.A., 2004 Property of GMV S.A. All rights reserved 2004/05/13 XML in CCSDS CCSDS Spring Meeting - Montreal Fran Martínez GMVSA 4081/04.
1 UNIT –II Architecting Web Service. 2 Why SOA? – business point of view  Information Technology (IT) workers face many challenges, including: Limited.
NA-MIC National Alliance for Medical Image Computing UCSD: Engineering Core 2 Portal and Grid Infrastructure.
Enterprise Integration Patterns CS3300 Fall 2015.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
Slide 13.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach.
Application of XTCE standard for the Scaleable Monitoring & Control System (SMACS) New generation of Java and XML based software components for spacecraft.
Assignment of JAVA id : BSSE-F10-M-10-JAVA1 Overview of J2EE/Session 2/Slide 1 of 38.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Spring RabbitMQ Martin Toshev.
XASTRO-2 Presentation CCSDS SAWG th November 2004.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
Copyright 2007 SpringSource. Copying, publishing or distributing without express written permission is prohibited. Overview of the Spring Framework Introducing.
Peer Simple P2P implementation based on JXTA. JXTA history Started by SUN Microsystems in 1999 Released Open Source in 2001.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
Parts: S OA N B IL Z Q C GF AE Y AH M Timer Heart Activemq Heartbeat Widget E Cometd Command WidgetParameter Widget Command J Activemq K Releaser Activemq.
1 Lesson 6 Introducing JavaScript HTML and JavaScript BASICS, 4 th Edition.
OODBMS and ORDBMS. Background Object-oriented software, based on the principles of user-defined datatypes, along with inheritance and polymorphism, is.
Team MITRE Sentinel Final Presentation
The Client/Server Database Environment
Architecting Web Services
Play Framework: Introduction
Architecting Web Services
Servoy Delivers-High Productivity Platform to Design, Build and Deliver Business Applications with a Superior Experience on Microsoft Azure Partner Logo.
Unit 6-Chapter 2 Struts.
#01 Client/Server Computing
Design and Maintenance of Web Applications in J2EE
Designed for Big Data Visual Analytics, Zoomdata Allows Business Users to Quickly Connect, Stream, and Visualize Data in the Microsoft Azure Platform MICROSOFT.
Inventory of Distributed Computing Concepts and Web services
Mike Dickson Tidal Software
ESIS Consulting LLC (C) ESIS Consulting LLC. All rights reserved
Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
#01 Client/Server Computing
Presentation transcript:

© Logica All rights reserved © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission. 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 All rights reserved HTML5 and JavaScript rock! 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  and facebook © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! 8 years… 5 years… © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission. The world

© Logica All rights reserved HTML5 and JavaScript rock! The world we live in © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! Business Plan © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission

© Logica All rights reserved HTML5 and JavaScript rock! Back to Basics © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! Thesis  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 © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! ‚New‘ Implementation Concept This is hardly brain surgery! UsSomeone else © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! Technology Stack (fantastic four)  Spring  Camel  ActiveMQ  Cometd ... and yes, its all Java © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.... but components in other languages can be integrated

© Logica All rights reserved HTML5 and JavaScript rock! Evolution © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.  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

© Logica All rights reserved Atom HTML5 and JavaScript rock! System Integration FTP AMQP APNS AWS Cometd Crypto REST DNS GHttp Hazelcast File HDFS HL7 iMAP IRC JBI JClouds JDBC JMS JMX JPA JT400 Kestrel Krati LDAP Mina Nagios PAX POP RMI RNC RNG RSS SIP SMTP SNMP SQL SSH SAX TCP UDP XMPP © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! Semantic Data Raw Value State A State B State C Eng Value Name Description State X Description © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission. stateOf Scalable Demand complete rethinking of processing model. An architectural driver. stateOf withRaw Extendible Non-normalized

© Logica All rights reserved HTML5 and JavaScript rock! Service B e1 e3e2 p1p2 p4 p3 B Limit 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 parameter corresponding to the limit with value ‘true’ (in limit) or ‘false’ (out of limit). Parameter State Heartbeat Heartbeat Service Consumes: None Emits: Heartbeat Description: Issues a ‚alive‘ message at intervals. © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! First Flight  Comming up  EstCube (University of Estland)  Strand (Surrey Satellites)  TechDemoSat-1 (UK Space Agency) © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! Initial Results 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 Existing code base ~1m Lines of Code (LoC) Projected code base 10k LoC © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission. New code base 1k LoC

© Logica All rights reserved HTML5 and JavaScript rock! Value  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 © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! Business Model  Open Source Core  Enterprise Edition  Liability  Tested  Proven  Documented  Evolution plan  Ahead of the curve  Services and added value products © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! Conclusions  Nothing is more convincing than to stop talking and start doing  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 © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! Questions? ? ! ! ? ? ? ! ! ? ?  Read more at: and facebook © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! Business Tier Spring Component Assembly Camel Integration ActiveMQ Distribution CometD Streaming Services © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! WARNING: Source code ahead!... the message is not in the code itself, but in the changes to the code © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! 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 value: " + value); } The Modern Code Base © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! 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 value: " + value); } The Modern Code Base Only three lines of business logic here... © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! 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 value: " + value); } © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! 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 value: " + value); } © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.

© Logica All rights reserved HTML5 and JavaScript rock! public class Manager { public String manage() { return "1:2:3"; } public class Worker { public String[] work(String values) { return values.split(":"); } public class Publisher { public void display(long value) { System.out.println("Test value: " + value); } The Modern Code Base Massive code base reduction Only business logic in the code, routing in the configuration Fantastic code metrics (no coupling) 100% test coverage easy to reach © 2012 by Villemos Solutions and Logica. Published by The Aerospace Corporation with permission.