Adoption of Eclipse RCP to build Rich Graphical User
Download
Report
Transcript Adoption of Eclipse RCP to build Rich Graphical User
ECLIPSECON FRANCE 2013
ADOPTION OF
ECLIPSE RCP TO
BUILD RICH GUI
FOR THE SPACE
DOMAIN
© GMV, 2011 Property of GMV
All rights reserved
CONTENTS
Overview of migrated systems.
Tecnical approach.
Main challenges.
Future.
Conclusions.
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 2
© GMV, 2011
ECLIPSECON FRANCE 2013
Overview of
migrated systems.
© GMV, 2011 Property of GMV
All rights reserved
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.
SCS
MPS
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 4
© GMV, 2011
FDS
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.
C++/Ilog Views
GUI
Applications
CORBA & TCP/IP
C++
Backend
SCS
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 5
© GMV, 2011
FLIGHT DYNAMICS SYSTEM
Client/server architecture.
Communication through TCP/IP.
Server developed in Tcl.
Client developed in Tcl/Tk.
Off-line application.
Tcl/Tk
GUI
Applications
TCP/IP
Tcl
Backend
FDS
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 6
© GMV, 2011
MISSION PLANNING SYSTEM
Client/server architecture.
Communication through CORBA.
Server developed in C++.
Client developed in C++/Ilog Views.
Off-line application.
C++/Ilog Views
GUI
Applications
CORBA
C++
Backend
MPS
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 7
© GMV, 2011
GOALS
Replace UI layer.
Reuse existing business logic.
Harmonise displays.
Improve usability.
Improve system maintenability.
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 8
© GMV, 2011
REQUIREMENTS
Performance.
Extensibility.
Configurability.
Multiplatform.
Advanced
development environment:
– Eclipse IDE
– Automatic build system
– Continuous Integration
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 9
© GMV, 2011
WHY ECLIPSE RCP?
Platform
Not
independent with native look&feel.
only a GUI toolkit
– Plugin-based pogramming model
– Extension points
Active
At
community and industry support
the time being adopted by the European
Space Agency for their ground systems
infrastructure.
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 10
© GMV, 2011
ECLIPSECON FRANCE 2013
Technical
approach
© GMV, 2011 Property of GMV
All rights reserved
ARCHITECTURE OVERVIEW (I)
We did
had……
C++/Ilog Views
GUI
Eclipse
Applications
Service adapter
RCPGUI
Applications
Applications
GUI
Applications
Service adapter
Service adapter
TCP/IP
CORBA
CORBA
C++
C++/Ilog Views
Tcl/Tk
C++
Tcl
Backend
Backend
Backend
SCS
FDS
MPS
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 12
© GMV, 2011
ARCHITECTURE OVERVIEW (II)
General Architecture:
GUI Application
Backend: Business Logic
Displays Layer
Middleware
Services Layer
GUI Application:
– Services Layer
– Displays Layer
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
Java/Eclipse RCP
Middleware
Backend
17/07/2015
Page 13
© GMV, 2011
SERVICES LAYER (I)
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.
17/07/2015
Page 14
Displays Layer
Services Layer
Java/Eclipse RCP
Middleware
Backend
Mechanism to consume services
transparently.
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
GUI Application
© GMV, 2011
SERVICES LAYER (II)
This layer allows us :
– Option A: Replacement of communication layer
Application
Service
adapters
Application
Java/Eclipse RCP
Service
adapters
...
Middleware: CORBA
Backend
Backend
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 15
© GMV, 2011
Java/Eclipse RCP
Middleware:
Message oriented
SERVICES LAYER (III)
This infraestructure allows us :
– Option B: Replacement of presentation layer
Web
Application
Application
Service
adapters
GWT
Java/Eclipse RCP
Middleware: WS
Middleware: CORBA
WS wrapper
Service
adapters
Backend
Java
Middleware: CORBA
Backend
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 16
© GMV, 2011
DISPLAYS LAYER (I)
Reusable graphical components at
functional level:
GUI Application
Displays Layer
– Display: GUI element to vizualize
and manipulate information:
•
Services Layer
Access to business logic via Services
Middleware
Adapters.
•
Eclipse View
An Application is just a displays
container.
Java/Eclipse RCP
Mechanism to save/restore
application status.
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 17
© GMV, 2011
Backend
DISPLAYS LAYER (II)
Visual style: GUI guidelines:
– Common look & feel.
– Uniform interaction paradigms.
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 18
© GMV, 2011
GUI ELEMENTS
Set of reusable widgets:
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 19
© GMV, 2011
HOW TO CREATE A NEW APPLICATION?
We have the backend and some services…
GUI Application
1. Define new Services
2. Define the Services Layer
Displays Layer
3. Define the Displays Layer
Services Layer
Middleware
Backend
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 20
© GMV, 2011
Result…
Adoption of Eclipse RCP to build rich graphical
user interface for the space domain
17/07/2015
Page 21
© GMV, 2011
ECLIPSECON FRANCE 2013
Main Challenges
© GMV, 2011 Property of GMV
All rights reserved
A COMMON TARGET PLATFORM (I)
Target Platform is a set of
plug-ins to reuse among
products.
Different ground segment
systems
SCS
FDS
– Sharing some common
functionality
Identified a set of plug-ins for
common applications
The Ground Segment Target
Platform contains
MPS
– Ground Segment plug-ins
– Eclipse RCP plug-ins
– Plug-ins from third party
products
E
E
Ground Segment Target Platform
Adoption of Eclipse RCP to build rich GUI for
space domain
2013/05/06
Page 23
© GMV, 2011
A COMMON TARGET PLATFORM (II)
Also a Target Platform per
ground segment system.
Functionality common to
specific system.
Hierarchy of plug-ins:
SCS
FDS
– Ground Segment
– Subsystem
– Specific per mission
MPS
SCS Target Platform
MPS Target Platform
E
FDS Target Platform
E
Ground Segment Target Platform
Adoption of Eclipse RCP to build rich GUI for
space domain
2013/05/06
Page 24
© GMV, 2011
A COMMON TARGET PLATFORM (III)
Complex to handle…
– Evolution of common plugins
Target Definition
Need to create a Target
Definition:
– List of plug-ins for a specific
development
SCS Target Platform
E
E
E
Versions
E
E
E
Ground Segment Target Platform
Adoption of Eclipse RCP to build rich GUI for
space domain
2013/05/06
Page 25
© 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.
Adoption of Eclipse RCP to build rich GUI for
space domain
2013/05/06
Page 26
© 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.
Adoption of Eclipse RCP to build rich GUI for
space domain
2013/05/06
Page 27
© 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?
Adoption of Eclipse RCP to build rich GUI for
space domain
2013/05/06
Page 28
© GMV, 2011
ECLIPSECON FRANCE 2013
Future
© GMV, 2011 Property of GMV
All rights reserved
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
Adoption of Eclipse RCP to build rich GUI for
space domain
2013/05/06
Page 30
© 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.
Adoption of Eclipse RCP to build rich GUI for
space domain
2013/05/06
Page 31
© 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…
Adoption of Eclipse RCP to build rich GUI for
space domain
2013/05/06
Page 32
© GMV, 2011
ECLIPSECON FRANCE 2013
Conclusion
© GMV, 2011 Property of GMV
All rights reserved
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.
Adoption of Eclipse RCP to build rich GUI for
space domain
2013/05/06
Page 34
© GMV, 2011
ECLIPSECON FRANCE 2013
Questions?
© GMV, 2011 Property of GMV
All rights reserved
Thank you
Rosa María García Casado
Email: [email protected]
Manuel Casado Martín
Email: [email protected]
www.gmv.com
© GMV, 2011 Property of GMV
All rights reserved