Being part of a flagship project that brings next-generation Inflight-Entertainment systems onto passenger aircrafts, Michael Wilmes tackles the operational aspects of managing IT systems in flight, on ground and anywhere in between. He will give insight on what key factors made Neo4j the database of choice during development of a custom tailored asset management application and how Neo4j was integrated using technologies like Spring, Thymeleaf, Bootstrap and D3.js.
2. About us
Nov 14, 2013
Chart 2
Inflight Asset Management | Michael Wilmes
3. Passenger Airlines
§ Lufthansa - leading group of European quality carriers
§ more than 103 million passengers in 2012
Logistics
§ Lufthansa Cargo AG - One of the world’s leading cargo
airlines
§ 1,724 million tons of freight / mail shipped in 2012
IT Services
§ Lufthansa Systems AG - One of the leading IT service
providers for the airline and aviation industry
§ Around 450 customers worldwide, more than 300 airlines
Catering
Maintenance, Repair
& Overhaul (MRO)
Nov 14, 2013
Chart 3
§ LSG Sky Chefs - The world’s largest airline caterer
§ Provider of integrated inflight service solutions
§ Lufthansa Technik - worldwide leading provider of
maintenance, repair and overhaul services for civil aircraft
§ More than 33 operating subsidiaries and affiliates
Inflight Asset Management | Michael Wilmes
4. Michael Wilmes
Solution architect @ BoardConnect
► michael.wilmes@lhsystems.com
► @theeagermichael
Nov 14, 2013
Chart 4
Inflight Asset Management | Michael Wilmes
11. Database
How to efficiently store and receive
complex data maintaining high performance?
Nov 14, 2013
Chart 11
Inflight Asset Management | Michael Wilmes
12. Access
How to provide easy access to data
backend via web proven technologies?
Nov 14, 2013
Chart 12
Inflight Asset Management | Michael Wilmes
13. Visualization
How to visualize complex networks and
dependencies?
Nov 14, 2013
Chart 13
Inflight Asset Management | Michael Wilmes
16. Acceptance
Accept the complexity and nature of the product.
Welcome data were possible.
Sense might not be immediately apparent.
Nov 14, 2013
Chart 16
Inflight Asset Management | Michael Wilmes
17. Embrace change.
Product develops at a rapid change. Live with it.
Welcome connectivity.
API first. Make the added value accessible.
Nov 14, 2013
Chart 17
Inflight Asset Management | Michael Wilmes
19. Features and
Requirements
Realtime access by
aircraft installations
and BC suppliers
Asset
Management
Operational
Database
Constant performance
independant of query
type and size of
dependency trees
Horizontal scaleout possibility
Schema agility to
easily accomodate
product
innovations.
Complete Real-World
view of BoardConnect
environment as it IS.
Master Data
Management
Configuration
Database
Realtime access for
unattended device
configuration
Nov 14, 2013
Chart 19
Inflight Asset Management | Michael Wilmes
20. Does the problem nature really differ from social networks?
Nov 14, 2013
Chart 20
Inflight Asset Management | Michael Wilmes
21. Actually NO.
Big value lies in the relation of information.
Modern approachs targeting the social network world
might be equally well suited to asset management
problem scopes.
Nov 14, 2013
Chart 21
Inflight Asset Management | Michael Wilmes
24. > Development goals
easy deployment
ready for use instantly,
grows with the needs
WebService
Business Logic
low maintenance efforts,
low cost development
maps reality 1:1
easy visualization
whiteboard friendly
(instant documentation)
Nov 14, 2013
Chart 24
Inflight Asset Management | Michael Wilmes
Embedded
Database
embraces change
25. The good thing?
§ We start from
Nov 14, 2013
Chart 25
Inflight Asset Management | Michael Wilmes
26. Nov 14, 2013
Chart 26
Inflight Asset Management | Michael Wilmes
(this is a blank page)
27. Spring Framework
Why?
§ Great community backing
§ Approaching today‘s problems
(NOSQL, Enterprise-Integration, REST, Big Data)
§ Lightweight deployment
Nov 14, 2013
Chart 27
Inflight Asset Management | Michael Wilmes
28. Neo4j Embedded
Why?
§ Puts the database back into the application domain.
§ Induces no additional restraints.
§ Avoiding dead-ends. Provides capable foundation for
future queries not yet foreseen.
§ „What you see is what it is“. Transparency.
Nov 14, 2013
Chart 28
Inflight Asset Management | Michael Wilmes
29. Neo4j Embedded
Why?
A perfect match for the radical inclusion paradigm
Nov 14, 2013
Chart 29
Inflight Asset Management | Michael Wilmes
30. Spring Data Neo4j
Why?
§ Allows for POJO domain based development
§ Natural extension of the Spring Data provided
programming model
§ Provides a high level uniform access to the
persistence layer while allowing core-API fallback
Nov 14, 2013
Chart 30
Inflight Asset Management | Michael Wilmes
31. Spring Data REST
Why?
§ Exposes domain objects using auto generated full
fledged CRUD controllers
§ Supports custom DAO queries
§ Keeps you API on par with your ever evolving
domain model
Nov 14, 2013
Chart 31
Inflight Asset Management | Michael Wilmes
32. Thymeleaf
Why?
§ Natural templates. Finally.
§ It‘s HTML you write. Well layed out. Standalone.
§ Easy integration with Spring MVC
§ Easy to learn and well documented
Nov 14, 2013
Chart 32
Inflight Asset Management | Michael Wilmes
33. Boostrap
Why?
§ Rapid UI development using CSS
§ Fallback to JS where needed
§ Responsive Web Design
§ Well established framework
Nov 14, 2013
Chart 33
Inflight Asset Management | Michael Wilmes
35. > Layered architecture, self containment
Neo4j Embedded
Spring Data Neo4j
Spring Framework
Business Layer
Spring MVC
Spring Data REST
Thymeleaf
Bootstrap
Nov 14, 2013
Chart 35
D3.js
Inflight Asset Management | Michael Wilmes
}
.jar
39. > Use rich relations where possible
X
Aircraft-[:CONTAINS]->AccessPoint
Aircraft-[:CONTAINS]->Server
Aircraft-[r:CONTAINS_BCAP]->AccessPoint
Aircraft-[r:CONTAINS_BCS]->Server
Nov 14, 2013
Chart 39
Inflight Asset Management | Michael Wilmes
40. > Graph aware POJO using SDN
@NodeEntity
public abstract class AbstractAsset implements Asset, LastModifiedDateAware, Authored {
@GraphId
private Long nodeId;
@NotNull
@Indexed(unique = true, level=Level.INSTANCE)
private String uuid;
@NotNull
@Size(min = 3, max = 50)
@Indexed(level=Level.INSTANCE)
private String name;
private Date dateLastModified;
Nov 14, 2013
Chart 40
Inflight Asset Management | Michael Wilmes
41. > SDN provided ApplicationEventHandler (e.g. setting lifecycle properties)
@Override
public void onApplicationEvent(BeforeSaveEvent event) ... {
LastModifiedDateAware entity = (LastModifiedDateAware) event.getEntity();
entity.setDateLastModified(new Date());
…
}
Nov 14, 2013
Chart 41
Inflight Asset Management | Michael Wilmes
42. ...things get even better with
Neo4j 2.0 and SDN 3.0, especially
§ labels
§ optional constrains
Nov 14, 2013
Chart 42
Inflight Asset Management | Michael Wilmes
45. > Single question ! Single query ! Instant response…
► What aircrafts have to be supplied with a new SSD in order to remove the movie from being shown
to public?
► Are all licenses present that are needed for playback of all movies inside the
freshly inserted hard drive on aircraft?
match (bcs)-[:INSTALLED_IN]-()-[:CLONED_FROM]->()-[CONTAINS*]->(video)-->(license)
where bcs.name=…
return license
Nov 14, 2013
Chart 45
Inflight Asset Management | Michael Wilmes
46. > Demo
Nov 14, 2013
Chart 46
Inflight Asset Management | Michael Wilmes