Date post: | 05-Apr-2017 |
Category: |
Software |
Upload: | richard-nicholson |
View: | 194 times |
Download: | 1 times |
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 www.paremus.com
Beyond Market HypeRealising the true potential of IoT.
Dr Richard Nicholson: Paremus CEO & OSGi Alliance Board
http://www.paremus.com
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 2
Longevity?
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 3
London - 190AD
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 4
London - 2017AD
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 5
Beijing - 150BC
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 6
Beijing - 2017
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 7
Both Successful Cities Both have Adapted, Grown & Evolved
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 8
Why? How?
A City will continue to prosper as long as the cost of adapting to new circumstances does not exceed the new economic benefits.
Buildings can be repaired & incrementally replaced. However the plots of land remain the same.
Roads, Water and Sewerage & Energy systems all evolve in response to the Cities requirements. However their routes tend to remain the same.
Cities have Structural Modularity
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 9
The Importance of Being Modular
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017
What is a Module?
10
A module is a unit of encapsulation that communicates with other modules through agreed contracts
Encapsulation is the hiding of internal implementation details such that entities outside the encapsulated unit are not aware and cannot become aware of those details.
A contract is the definition of all supported modes of interaction and communication between cooperating modules, including the responsibilities and expectations of each actor.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017
Modularity underpins both Agility, Maintainability and so enables Longevity!
11
As long as the design rules are obeyed:
Modularity makes complexity manageable; Modularity enables parallel work; and Modularity is tolerant of uncertainty.
Here tolerant of uncertainty means that particular elements of a modular design:
may be changed after the fact and in unforeseen ways
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017
Where is Modularity used?
12
Modularity is in use everywhere
Biological Systems - human body, organs, tissue, cells. Manufacturing Construction - Walls, Houses, Furniture Toys - LEGO, IKEA, bricks, Construction Kits (Meccano). Vehicles - car / bike production lines are based on assembling modules.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 13
Smart Cities - 2017 to 2025 and Beyond!
Tomorrows successful Smart Cities will have large, sophisticated software nervous systems which will be embedded and an integral part of each City.
Each Smart City nervous system must have have similar Longevity and Sustainability characteristics as the physical structures they control and represent.
The software nervous system for each Smart City must also be modular.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 14
But we have a problem?
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 15
http://www.darpa.mil/
Modern-day software systems, even those that presumably function correctly, have a useful and effective shelf life orders of magnitude less than other engineering artifacts.
While an application's lifetime typically cannot be predicted with any degree of accuracy, it is likely to be strongly inversely correlated with the rate and magnitude of change of the ecosystem in which it executes.
DARPA BRASS initiative April 2015
A Longevity / Adaptability problem
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 16
http://www.trustmarque.com/wp-content/uploads/2015/10/Trustmarque_IT_Complexity_Report_2015.pdf
We also have a Complexity problem
http://www.trustmarque.com/wp-content/uploads/2015/10/Trustmarque_IT_Complexity_Report_2015.pdfhttp://www.trustmarque.com/wp-content/uploads/2015/10/Trustmarque_IT_Complexity_Report_2015.pdf
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 17
Complexity drives up OPEX
Operational ComplexityIncreases OPEX
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017
Cost == Effort required to Manage Dependencies as they Change Over Time.
No Change No Cost. But things ALWAYS change!
18
How does Complexity increase OPEX?
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 19
Complexity also increases Failure
Operational Complexity Increases the Likelihood and Duration of Service Failures
Berkleys ROC initiative.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017
Digital infrastructure exceeding limits of human control, industry experts warn
Guardian 23rd August 2013 http://www.theguardian.com/technology/2013/aug/23/nasdaq-crash-data"These outages are absolutely going to continue," said Neil MacDonald, a fellow at
technology research firm Gartner. "There has been an explosion in data across all types of enterprises. The complexity of the systems created to support big data is beyond the understanding of a single person and they also fail in ways that are beyond the comprehension of a single person."
"The outage at Amazon last year was traced back to some of the processes and technologies they had put in place to make it more resilient," said MacDonald. "It is almost like an auto-immune disease, where the systems they created to make it more resilient actually spread the failure more rapidly."
"We don't yet have a design for society that can run this technology well. We haven't figured out what the right human roles should be."
20
The Amazon S3 Outage Is What Happens When One Site Hosts Too Much of the Internet https://www.wired.com/2017/02/happens-one-site-hosts-entire-internet/
http://www.theguardian.com/technology/2013/aug/23/nasdaq-crash-datahttps://www.wired.com/2017/02/happens-one-site-hosts-entire-internet/https://www.wired.com/2017/02/happens-one-site-hosts-entire-internet/
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017
Service Outage == Failure to correctly manage dependencies as they change over time - i.e.
Operational Error
Change may be intentional or due to component failure.
21
How does Complexity increase Failure?
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 22
So we need effective Software Modularity to achieve Adaption,
Evolution & Longevity.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 23
But if we make Software Modular - dont we make it
more Complex?
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 24
A smart Phone
Simple to Configure / Operate (mostly)
Phone Internals
Moderately Complex
(but modular)
Is a modern Smart Phone simple or complex?
Processor Internals
Extremely Complex
(but modular)
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 25
All sophisticated artefacts are comprised of structural hierarchies.
When correctly implemented Modularity shields each layer of the structural hierarchy from the implementation
details of the lower layers!
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 26
So what is the problem with software?
Lets look at current IT Fashions e.g. Docker / Microservices
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 27
A `Silicon Valley` Cloud Native / Docker centric ecosystem (2017)
Comple
xity is
Expose
d to t
he
Custom
er!
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 28
Docker / LXC etc - Nothing Magical - just Linux Containers!
The deployment artefact - the Docker Image - is Opaque. Which libraries are actually included in the image & why?
Docker Images are referred to by `Name`.
Docker Images do not specify what they
Require from their environments, nor what their Capabilities are.
Weak Modularity & Dependencies Ignored
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 29
1. http://www.boycottdocker.org
2. docker in production a history of failure (http://bit.ly/2m3SowL)
Ad so Docker and related orchestration solutions fail to address Operational complexity
http://www.boycottdocker.orghttp://bit.ly/2m3SowL
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 30
Microservices Problems
These problems also leak through into the resultant runtime Microservices layer. Service Orchestration is complex as Service dependencies are not defined. Configuration, deployment, monitoring, alarm & log collection also need to be
explicitly managed as Infrastructure Service dependencies are not defined.
In addition NOT EVERY APPLICATION FITS the Microservices model: HTML / REST based Microservices are too heavy weight for many uses
(Performance, network latency). Impedance mismatch between the actual function / services and their
exposed REST-full representation. Inappropriate use of REST/HTML leads to in-efficient resource hungry
applications and code complexity.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 31
MicroServices: No dependency management
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 32
Is this really the best we can do?
+
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 33
What about Java?
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 34
Java is almost Modular
Java was developed with a basic module system: Methods encapsulate local variables; contract is input parameters and return
value. Classes encapsulate fields and methods; contract is public methods. Packages encapsulate classes; contract is public classes and interfaces.
But not quite . Methods, Classes, Packages are not deployable entities. JARs are deployable but they are not modules because they offer no
encapsulation. Therefore Java lacks a concept of deployable modules.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 35
Java - is missing layers of Modularity
Packages Classes
Unit of Deployment Unit of State
Unit of Composition
Unit of Inter Process Re-Use
Unit of Intra Process Re-Use
WS-* / RESTWorkflow etc
Business Service Application Structure Code Structure
?
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 36
Introducing OSGi
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 37
OSGi - Modularity for Java
JARs are perfectly good units of deployment. We Simply add the missing information to the JAR manifest!
A meaningful name A Version Explicit, versioned Requirements upon the external environment. Explicit, versioned Capabilities provided to the external environment.
After which we have created an OSGi bundle.
Now all that is needed is a runtime - an OSGi framework - that can use this addition Metadata.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 38
Agency A: Haute Pet Coiffure Provide-Capability: pet.grooming;type:List="dog,cat";length:Long=800;soap="organic";rate:Long="50" Agency B: Great Big Pets Provide-Capability: pet.grooming;type:List="cat,horse";length:Long=3000;soap="commercial";rate:Long="20" Agency C: Joe's Pets Provide-Capability: pet.grooming;type:List="dog,cat";length:Long=1500;soap="regular";rate:Long="15"
Client A: I love my cat Cathy, but not rich! Require-Capability: pet.grooming;filter:="(&(type=cat)(rate=1000))" Which agencies do you think satisfy this requirement? (hint: C)
Client C: Horse Haurice Require-Capability: pet.grooming;filter:="(type=horse)" Which agencies do you think satisfy this requirement? (hint: B)
NB - these are LDAP expressions - not tied to a specific programming language (no dependency on Java).
A simple Requirements & Capabilities Example
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017
microServices OSGi Services OSGi Bundles Packages Classes
Unit of Deployment Unit of State
Unit of Composition
Unit of Inter Process Re-Use
Unit of Intra Process Re-Use
WS-* / RESTWorkflow etc
Business Service Application Structure Code Structure
39
OSGi - True Java Modularity
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 40
The Result?
Bundles in an OSGi framework can be individual stopped / restarted.
Bundles can be updated at runtime Composite runtime environments can be automatically
assembled from sets of bundles. OSGi provides a powerful Services architecture - REST, Async /
Sync RPC, Push Streams, Events.
As OSGi based software runtime assemblies are Composite, Adaptive and Evolvable - OSGi directly addresses the Longevity challenge posed by DARPA!
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 41
Introducing the OSGi Alliance
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 42
OSGi: The Open Industry Standard for Java Modularity since 1998!
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 43
All Markets: M2M, Smart Home, Telematics, Assisted Living, Healthcare, Automotive, Media, Control Systems, Energy Management, Smart Meters, Telecommunications, Robotics, ML / AI & Big Data platforms.
And the enabler for important Telco, Smart City & Industry 4.0 standards: Telco: OpenDaylight, ONOS, OneM2M
Smart Home: openHAB
OSGi Extensive Adoption since 1998
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 44
OSGi Ecosystem Examples
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 45
OSGi is the open industry standard for building modular Java software
However just like any other tool - OSGis effectiveness is a function of the Craftsman using it. To encourage and ensure best practices, and increased understanding, the OSGi Alliance has introduced the OSGi Developer Certification program.
see https://www.osgi.org/osgi-certification/developer-certification/
https://www.osgi.org/osgi-certification/developer-certification/
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 46
Introducing Paremus
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017
UK Company founded 2001. Service Fabric product research & development started 2008 International reputation with customers (OSGi Training, Consulting, Service Fabric
product) in many verticals
Paremus Overview
47
Internet of Things / Smart City / Industry 4.0
In 2008, Paremus realised that Operational Complexity, Longevity & OPEX would cripple future large scale IT deployments. The Paremus Service Fabric directly addresses these fundamental issues.
On Premise - Autonomic Business
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 48
Paremus at the Heart of the OSGi Alliance
Paremus OSGi Alliance activities:
Board Members since 2009 President (2011 / 2013 - Dr. R Nicholson) Treasurer (2014 / 2017 - Dr. R. Nicholson) Strategy (2012 / 2017 - Dr. R. Nicholson) IoT Expert Group Co-Chair (2016/17 - T Ward) VP Marketing (2015 / 2017 - M Francis)
Paremus Contributions to recent OSGi Specifications include: Asynchronous Services Promises (Reactive OSGi strategy) Push Streams (Reactive OSGi strategy) Transaction Control (JEE / Database) Remote Service Admin Cluster Information Service
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017
Paremus: World Leading OSGi skills
Neil Bartlett (Paremus VP Engineering / founder and project lead for Bndtools). OSGi Alliance Leadership award 2016.
Neil is recognised throughout the industry as an OSGi expert andevangelist. Over the last decade Neil has provided consulting and trainingfor numerous organisations in many different countries. Neil is currently writing his second book "Effective OSGi which will show developers how to quickly accelerate their productivity with OSGi using the latest techniques and tools.
Tim Ward (Paremus CTO / IoT EG Chair for the OSGi Alliance).
Tim is internationally recognised for his OSGi expertise, regularly speaking and giving tutorials at conferences around the world on topics such as OSGi, the Java Persistence API, Apache Aries, and Websphere Application Server. Tim also helped create the OSGi Alliance Developer the Certification program.Tim is also co-author of one of the more recent OSGi Books from Manning Publications called Enterprise OSGi in Action.
http://bndtools.org
49
http://www.manning.com/cummins/
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 50
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017
Dependencies, Dependencies, Dependencies
51
1.Dependencies MUST NOT be masked or hidden. Dependencies at each structural / logical layer must be explicitly managed.
2.Artefacts must be self-describing.3.One MUST NOT assume that
dependencies are static. Dependencies are dynamic and this dynamism MUST be managed.
4.To minimise Operational Complexity, runtime dependencies must be automatically managed by the runtime platform.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 52
The Paremus Service Fabric
A modern Java / OSGi based distributed Platform Isolates your applications from Cloud Providers Infrastructure (e.g. AWS, Google, etc). Enables the rapid creation of on-premise Cloud, MicroCloud or Ad-Hoc Cloud runtime
environments on either physical or virtual resources. Operationally Extremely Simple: To Create, Install, Manage, Scale and Maintain:
including infrastructure Services: e.g. ZooKeeper. Secure by Default: Both Resource Membership and the distributed communications
between participating members.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 53
The Paremus Service Fabric
Big Data
Machine Learning IoT/Fog
Application / Architecture Agnostic: Big Data, lightweight IoT, traditional Enterprise, Java and non-Java applications may all be hosted upon and managed by the Fabric. These applications may be REST, Reactive Async RPC, Stream or Actor based.
Lightweight & Resource Agnostic: A Fabric may be hosted on a single Raspberry Pi. A 10 Fibre Service Fabric can be run in a single 4GB VM.
Autonomic Capabilities - Adaptive to Environment Changes / Robust against Failures. The Fabric decouples and protects from planned infrastructure changes, unplanned resource failures.
Based on open Industry Standards - OSGi with support via Docker, non-OSGi and non-Java artifacts.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 54
A Service Fabric is comprised of one or more Fibres (OSGi frameworks). Each Service Fabric is created from a dedicated Fabric Profile.
Fibres may be rapidly created from groups of physical machines, virtual machines and / or Linux containers.One or more systems (i.e. composite applications) may be imported to - and deployed in - the same fabric
Hence a Service Fabric may be:
Dedicated to a single Application: i.e. a shrink wrapped distributed solution / Cloud Appliance
Shared by a group of functionally related Applications. Dedicated to a business unit / or a functional unit of an
Organisation (e.g. dedicated Dev, UAT & Production Fabrics).
Provide a shared Platform for Services offered internally or externally by the organisation (i.e. PaaS).
Runtime Modularity
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.Februaryr 2017 55
Self-Describing, Self-Managing Modular Applications
A system may be deployed to a Fabric as quickly and easily as installing an application on a Smartphone or Tablet.
A `system` is a composite application.
A `system` is the unit of Ownership, unit of Release, unit of Operational Management.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 56
A system is composed of one of more system.parts. A system.part is a functional unit (e.g. a Microservice) and the unit of Scale Out. System.part instances are deployed to fibres - by default instances will not be
colocated to the same fibre. A system.part may be composed of one or more system.part.elements A system.part.element may represent an OSGi assembly or a Container Image.
System Structural Hierarchy
microServices uServices OSGi Bundles Packages Classes
WS-* / RESTWorkflow etc
system
system.part
system.part.element
Unit of Deployment Unit of State
Unit of Composition
Unit of Inter Process Re-Use
Unit of Intra Process Re-Use
07/01/2015 00:17Hogosha
Page 1 of 2https://178.62.36.81:9106/paremus/entire/index.html#/fabric/Hogosal-demo/resolution/com.paremus.demo.fractal.http/fibre/fabric-2.1
fractal-demo :: com.paremus.demo.fractal.http@ fabric-2.1
com
.par
emus
.dem
o.fra
ctal
.http
v1.
0.0
org.
eclip
se.e
quin
ox.h
ttp.s
ervle
t v1.
1.30
0.v2
0120
522-
1841
org.
eclip
se.e
quino
x.http
.jetty
v3.0
.0.v2
0120
522-
1841
org.a
pach
e.arie
s.jnd
i v1.0
.0
osgi.ac
tive.bu
ndle v
0.0.0
osgi.res
olved.bu
ndle v0.
0.0
org.apache.felix.f
ramework v4.2.1
jackson-core v2.0.0
jackson-databind v2.0.0com.paremus.demo.fractal.api v1.0.0
javax.activation v1.1.0.v201108011116
javax.annotation-api v1.2.0
javax.inject v1.0.0
org.bndtools.rt.rest v2.2.0.201312311620
javax.xml v1.3.4.v201005080400
com.parem
us.service.async v1.0.0
osgi.cmpn v4.2.0.200908310645
org.eclipse.jetty.http v8.1.8.v20121106org
.ecl
ipse
.jetty
.io v
8.1.
8.v2
0121
106
org.
eclip
se.je
tty.u
til v
8.1.
8.v2
0121
106
slf4j
.api
v1.
7.4
ch.q
os.lo
gbac
k.clas
sic v1
.0.0
org.ec
lipse
.jetty
.serve
r v8.1
.8.v2
0121
106
org.ec
lipse.je
tty.co
ntinu
ation
v8.1.
8.v20
1211
06
org.ec
lipse.je
tty.ser
vlet v8
.1.8.v2
012110
6
org.eclips
e.jetty.se
curity v8
.1.8.v201
21106
org.apache.f
elix.configad
min v1.6.0
org.apache.aries.proxy v1.0.
0
org.apache.aries.util v1.0.0
org.objectweb.asm.all v4.0.0
component v1.8.2
http v1.1.3prim
ordial.part v0.0.0
jndi.provider v1.0.0
org.apache.aries.jndi v1.0.0Type Name/Filter Resolved by
javax.naming org.apache.felix.framework 4.2.1
javax.naming.directory org.apache.felix.framework 4.2.1
javax.naming.ldap org.apache.felix.framework 4.2.1
javax.naming.spi org.apache.felix.framework 4.2.1
jndi.provider jndi.provider 1.0.0
org.apache.aries.jndi org.apache.aries.jndi 1.0.0 slf4j.api 1.7.4
org.apache.aries.jndi.urls org.apache.aries.jndi 1.0.0
org.apache.aries.proxy org.apache.aries.proxy 1.0.0 slf4j.api 1.7.4
Alarms
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017
And the Fabric supports Polyglot Microservices & Docker Containers!
57
microServices uServices OSGi Bundles Packages Classes
Unit of Deployment Unit of State
Unit of Composition
Unit of Inter Process Re-Use
Unit of Intra Process Re-Use
WS-* / RESTWorkflow etc
Business Service Application Structure Code Structure
?Packager allows generic software artefacts to be treated as OSGi bundles: e.g. RabbitMQ, a Database, Java Script or C / C++ code. 1. OSGi Requirement / Capabilities metadata is used.2. The OSGi bundle life-cycle is used. 3. OSGi configuration mechanisms are used.4. And so distributed dependency / orchestration
services are provided via the Service Fabric.
However, rather than the OSGi framework, the software artefact is hosted in its own local Linux Container (e.g. Docker), or as a native OS process.
RabbitMQKafka
ZooKeeper
PostgreSQL PythonSpark
Cassandra
JavaScript/
nodeJS
C/C++
Go
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 58
Demo
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 59
Fabric & IoT
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 60
Smart Cities - 2017 to 2025 and Beyond!
OSGi is the Open Industry Standard for software modularity upon which the tomorrows modular software nervous systems can be built and evolved.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 61
The Paremus Service Fabric is an Example of such a runtime - Smart City OS - Industry 4.0 OS - Smart Agriculture OS!
Secured / hardened / lightweight / high performance JVM
secured / hardened / lightweight OSGi framework
Operational Simplicity: Installation, Operational management and maintenance.
Fabrics Autonomic and Self-Repair capabilities.
Security throughout the runtime stack.
Lightest weight resource footprint.High performance Paremus
implementation of OSGi specifications.
A supported modular cloud runtime for Smart City, Industry 4.0 and Smart Agriculture
OSGi
frameworks
Java
JVM
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 62
The Catalyst for local IoT based Economies
Local Service Fabrics can be simply and rapidly created and adapted in response to changing Business or Environmental conditions.
Each Fabric can be optimised for the requirements e.g. Smart City, Industry 4.0, Smart Agriculture requirements.
Service Fabrics may be deployed: Locally on-premise or in remote public Cloud To physical or virtual machines. Managed by local Operational staff.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 63
Placing Data Processing & Intelligence where it is needed
Data is processed `in-the-context` of the local environment that generates the data.
Analytics / AI are deployed to optimal processing locations and are aware of the local context.
Local services are optimised for low latency and / or high throughput - i.e. SCADA.
Then refined / augmented / anonymised information may be, optionally, sent to third parties.
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 64
Security and Governance
Each Fabric is secure by default: Resources can be allowed or refused
to participate in the Fabric. Communication between
participating members is secure.Each Fabric is self-configuring. No
reliance on external DNS services. Governance is explicit. At all times the
pedigree of all software components is known.
Rapid re-start, re-configure and patch / adaption behaviours mean that un-foreseen breaches can be rapidly closed and countered
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 65
An Adaptive / Sustainable EcosystemSmart Cities, Industry 4.0, Smart Agriculture and Public Clouds all are all peers (leveraging Gossip protocols) in an Evolvable Federated Smart Ecosystem
factory I local real-time
fabric
factory II local real-time
fabric
manufacturer off-site
non-realtime analytics fabric
Copyright 2005 - 2017 Paremus Ltd.May not be reproduced by any means without express permission. All rights reserved.February 2017 www.paremus.com
www.paremus.com @Paremus [email protected]
Thank You
http://www.paremus.com
67
OSGi
OSGiTMOSGi2013
OSGi
OSGi OSGi http://china.osgiusers.org
OSGi