adoption of eclipse rcp to build rich gui for the space domain
DESCRIPTION
ECLIPSECON FRANCE 2013. ADOPTION OF ECLIPSE RCP TO BUILD RICH GUI FOR THE SPACE DOMAIN. Contents. Overview of migrated systems . Tecnical approach . Main challenges . Future . Conclusions . ECLIPSECON FRANCE 2013. Overview of migrated systems. GMV systemS. GMV migrated systems : - PowerPoint PPT PresentationTRANSCRIPT
© GMV, 2011 Property of GMVAll rights reserved
ADOPTION OF ECLIPSE RCP TO BUILD RICH GUI FOR THE SPACE DOMAIN
ECLIPSECON FRANCE 2013
© GMV, 2011
Overview of migrated systems. Tecnical approach. Main challenges. Future. Conclusions.
CONTENTS
22/04/2023 Page 2Adoption of Eclipse RCP to build rich graphical user interface for the space domain
© GMV, 2011 Property of GMVAll rights reserved
Overview of migrated systems.ECLIPSECON FRANCE 2013
© GMV, 2011
GMV SYSTEMS
GMV migrated systems:– Satellite Control System (SCS) – hifly:
• Responsible for monitoring and control the satellite.
– Flight Dynamics System (FDS) – focus: • Responsible for determining and predecting
satellite orbit.
– Mission Planning System (MPS) - flexplan : • Responsible for planning the satellite
operations.
22/04/2023 Page 4Adoption of Eclipse RCP to build rich graphical user interface for the space domain
SCS
FDSMPS
© GMV, 2011
SATELLITE CONTROL SYSTEM
Client/server architecture Communication through CORBA and
TCP/IP. Server developed in C++. Client developed in C++/Ilog Views. Real-time and off-line.
22/04/2023 Page 5Adoption of Eclipse RCP to build rich graphical user interface for the space domain
SCS
GUIApplications
C++/Ilog Views
BackendC++
CORBA & TCP/IP
© GMV, 2011
FLIGHT DYNAMICS SYSTEM
Client/server architecture. Communication through TCP/IP. Server developed in Tcl. Client developed in Tcl/Tk. Off-line application.
22/04/2023 Page 6Adoption of Eclipse RCP to build rich graphical user interface for the space domain
FDS
GUIApplications
Tcl/Tk
Backend
TCP/IP
Tcl
© GMV, 2011
MISSION PLANNING SYSTEM
Client/server architecture. Communication through CORBA. Server developed in C++. Client developed in C++/Ilog Views. Off-line application.
22/04/2023 Page 7Adoption of Eclipse RCP to build rich graphical user interface for the space domain
MPS
GUIApplications
C++/Ilog Views
BackendC++
CORBA
© GMV, 2011
Replace UI layer. Reuse existing business logic. Harmonise displays. Improve usability. Improve system maintenability.
GOALS
22/04/2023 Page 8Adoption of Eclipse RCP to build rich graphical user interface for the space domain
© GMV, 2011
Performance.Extensibility. Configurability.Multiplatform.Advanced development environment:
– Eclipse IDE – Automatic build system– Continuous Integration
REQUIREMENTS
22/04/2023 Page 9Adoption of Eclipse RCP to build rich graphical user interface for the space domain
© GMV, 2011
Platform independent with native look&feel.Not only a GUI toolkit
– Plugin-based pogramming model– Extension points
Active community and industry supportAt the time being adopted by the European
Space Agency for their ground systems infrastructure.
WHY ECLIPSE RCP?
22/04/2023 Page 10Adoption of Eclipse RCP to build rich graphical user interface for the space domain
© GMV, 2011 Property of GMVAll rights reserved
Technical approachECLIPSECON FRANCE 2013
© GMV, 2011
ARCHITECTURE OVERVIEW (I)
22/04/2023 Page 12Adoption of Eclipse RCP to build rich graphical user interface for the space domain
We had …
SCSSCS FDSFDS MPSMPS
GUIApplications
Tcl/Tk
CORBA
BackendC++
Backend
TCP/IP
Tcl
BackendC++
CORBA
Service adapter Service adapter Service adapter
Eclipse RCP ApplicationsGUIApplications
C++/Ilog Views
We did …
GUIApplications
C++/Ilog Views
© GMV, 2011
ARCHITECTURE OVERVIEW (II)
22/04/2023 Page 13Adoption of Eclipse RCP to build rich graphical user interface for the space domain
Services Layer
Displays Layer
Backend
Java/Eclipse RCP
Middleware
GUI ApplicationGeneral Architecture:
Backend: Business Logic
Middleware
GUI Application:– Services Layer– Displays Layer
© GMV, 2011
SERVICES LAYER (I)
22/04/2023 Page 14Adoption of Eclipse RCP to build rich graphical user interface for the space domain
Decouple the presentation and business logic that interact exclusively through a middleware:– Service: Backend element that
exposes some business logic.– Service Adapters: Proxy that wraps
the access to a service.• Written in Java.• No dependency on UI elements.• No dependency on Eclipse API.• No additional business logic.
Mechanism to consume services transparently.
Services Layer
Displays Layer
Backend
Java/Eclipse RCP
Middleware
GUI Application
© GMV, 2011
SERVICES LAYER (II)
22/04/2023 Page 15Adoption of Eclipse RCP to build rich graphical user interface for the space domain
This layer allows us :– Option A: Replacement of communication layer
Serviceadapters
Application
Backend
Java/Eclipse RCP
Middleware: CORBA
Backend
Middleware: Message oriented...
Serviceadapters
ApplicationJava/Eclipse RCP
© GMV, 2011
SERVICES LAYER (III)
22/04/2023 Page 16Adoption of Eclipse RCP to build rich graphical user interface for the space domain
This infraestructure allows us :– Option B: Replacement of presentation layer
Serviceadapters
Application
Backend
Java/Eclipse RCP
Middleware: CORBA
Backend
Java
Middleware: CORBA
WS wrapperService
adapters
Middleware: WS
Web Application
GWT
© GMV, 2011
DISPLAYS LAYER (I)
22/04/2023 Page 17Adoption of Eclipse RCP to build rich graphical user interface for the space domain
Reusable graphical components at functional level:– Display: GUI element to vizualize
and manipulate information:• Access to business logic via Services
Adapters.• Eclipse View
An Application is just a displays container.
Mechanism to save/restore application status.
Services Layer
Displays Layer
Backend
Java/Eclipse RCP
Middleware
GUI Application
© GMV, 2011
DISPLAYS LAYER (II)
22/04/2023 Page 18Adoption of Eclipse RCP to build rich graphical user interface for the space domain
Visual style: GUI guidelines:– Common look & feel.– Uniform interaction paradigms.
© GMV, 2011
Set of reusable widgets:
GUI ELEMENTS
22/04/2023 Page 19Adoption of Eclipse RCP to build rich graphical user interface for the space domain
© GMV, 2011
GUI ApplicationDisplays Layer
HOW TO CREATE A NEW APPLICATION?
22/04/2023 Page 20Adoption of Eclipse RCP to build rich graphical user interface for the space domain
Backend
1. Define new Services
Services Layer
2. Define the Services Layer
Middleware
3. Define the Displays Layer
We have the backend and some services…
© GMV, 2011
Result…
22/04/2023 Page 21Adoption of Eclipse RCP to build rich graphical user interface for the space domain
© GMV, 2011 Property of GMVAll rights reserved
Main ChallengesECLIPSECON FRANCE 2013
© GMV, 2011
Ground Segment Target Platform
SCS
A COMMON TARGET PLATFORM (I) Target Platform is a set of
plug-ins to reuse among products.
Different ground segment systems– Sharing some common
functionality Identified a set of plug-ins for
common applications The Ground Segment Target
Platform contains– Ground Segment plug-ins– Eclipse RCP plug-ins– Plug-ins from third party
products
2013/05/06 Page 23Adoption of Eclipse RCP to build rich GUI for space domain
FDS
MPS
E E
© GMV, 2011
Ground Segment Target Platform
SCS
A COMMON TARGET PLATFORM (II) Also a Target Platform per
ground segment system. Functionality common to
specific system. Hierarchy of plug-ins:
– Ground Segment– Subsystem– Specific per mission
2013/05/06 Page 24Adoption of Eclipse RCP to build rich GUI for space domain
FDS
MPS
E E
SCS Target Platform MPS Target Platform FDS Target Platform
© GMV, 2011
Ground Segment Target Platform
A COMMON TARGET PLATFORM (III) Complex to handle…
– Evolution of common plugins
Need to create a Target Definition:– List of plug-ins for a specific
development
2013/05/06 Page 25Adoption of Eclipse RCP to build rich GUI for space domain
SCS Target Platform
E EE EE E
Target Definition
Versions
© GMV, 2011
A COMMON DEVELOPMENT ENVIRONMENT
Defining a common Eclipse IDE facilitates the process:– Share a Target Definition– Definition a set of common coding rules.
• Checked with Checkstyle, Eclipse formatter, Clean-up etc.– Inspection of violations with Sonar.
2013/05/06 Page 26Adoption of Eclipse RCP to build rich GUI for space domain
© GMV, 2011
A COMMON BUILD SYSTEM
Complex build systems can be difficult. Common build for all new RCP products
– Origins: Shell scripts– First steps: ANT Eclipse Plugin Development Environment (PDE)– In process: moving to Maven + Tycho
Next steps:– Use Nexus as repository manager for the common plug-ins.
2013/05/06 Page 27Adoption of Eclipse RCP to build rich GUI for space domain
© GMV, 2011
SWT RELATED SPECIFIC ISSUES
Real-time display of Telemetry data in different types of displays– Initial prototyping lead to performance
problems (high CPU consumption with high refresh rates)
– Solved by using SWING in displays with high refresh rate
– Problems with SWT-SWING bridge Lack of advanced SWT widgets
– Gantt Charts: Nebula? Jaret timebars?
2013/05/06 Page 28Adoption of Eclipse RCP to build rich GUI for space domain
© GMV, 2011 Property of GMVAll rights reserved
FutureECLIPSECON FRANCE 2013
© GMV, 2011
ECLIPSE 4 & RAP
Eclipse 4– Currently all applications based on 3.x
• Not sure on best approach to migrate…– New developments based on 4.x
Eclipse RAP – Considering creation of web interfaces in addition to desktop
ones• Prototyping phase
– Considering single source for new developments
2013/05/06 Page 30Adoption of Eclipse RCP to build rich GUI for space domain
© GMV, 2011
NEW COMPONENTS (I)
3D applications– Display/manage 3D models
• Flight of satellites in real or simulated time
• Views of terrain (Mars, Moon…)– Plan to use
• OpenGL + SWT • NASA’s World Wind Java.
2013/05/06 Page 31Adoption of Eclipse RCP to build rich GUI for space domain
© GMV, 2011
NEW COMPONENTS (II)
Geographic Information Systems (GIS)– Display data over maps
• Rover path over Mars surface• Science data from earth
observation satellites• Global navigation systems
performance data– Evaluating uDig. Considering
NASA’s WWJ for 3D contexts.– Not many alternatives…
2013/05/06 Page 32Adoption of Eclipse RCP to build rich GUI for space domain
© GMV, 2011 Property of GMVAll rights reserved
ConclusionECLIPSECON FRANCE 2013
© GMV, 2011
CONCLUSION
RCP provides a good mechanism to implement modular applications.– Satisfied clients!
Migration of existing products to RCP can be complex. Extensible & configurable per product. Nice native look&feel…
– But some Linux / Windows mismatches Steep learning curve.
– But an active community. SWT issues: lack of advanced widgets, performance problems.
2013/05/06 Page 34Adoption of Eclipse RCP to build rich GUI for space domain
© GMV, 2011 Property of GMVAll rights reserved
Questions?ECLIPSECON FRANCE 2013
© GMV, 2011 Property of GMVAll rights reserved
Thank youRosa María García CasadoEmail: [email protected]
Manuel Casado MartínEmail: [email protected]
www.gmv.com