OSGi enRoute is an OSGi project to make OSGi as easy to use as some of non-java dynamic web development environments but still provide the benefits of OSGi's strong modularity. OSGi makes it easy to get started with OSGi by providing an integrated tool chain with several runtime environments, that uses OSGi as it always was intended to be used. By leveraging OSGi's powerful features like services and the powerful requirement/capability model, development of applications can be significantly simplified.
This presentation will provide an introduction to OSGi, the way it is used in enRoute, and then a demo of how to build an application with enRoute.
Bio:
Peter Kriens is an independent consultant since 1990.He currently works for the OSGi Alliance and Paremus. During the eighties he developed advanced distributed systems for newspapers based on microcomputers based on, at the time very novel, object oriented technologies. For this experience in Objects he was hired by a number of international companies, including Adobe, Intel, Ericsson, IBM, and many others. During his work at Ericsson Research in 1998 he got involved with the OSGi specification; Later he became the primary editor for these specifications. In 2005 he was awarded the OSGi Fellows title. After taking a sabbatical in 2012 to develop jpm4j he returned to the OSGi Alliance to help increasing adoption. He is Dutch but decided to live in France.
2. A
B
A
B
C
D
7.
04.23.14 EnRoute LOGO DEVELOPMENT ALTERNATIVE DESIGN SOLUTIONS
A
1
B C
EnRoute LOGO DEVELOPMENT ALTERNATIVE DESIGN SOLUTIONS
A B C
A B C04.23.14 EnRoute LOGO DEVELOPMENT ALTERNATIVE DESIGN SOLUTIONS
A
1
2
3
B CEnRoute LOGO DEVELOPMENT ALTERNATIVE DESIGN SOLUTIONS
A B C
04.23.14 EnRoute LOGO DEVELOPMENT ALTER
A
1
2
3
B C
1
2
3
2
3
04.23.14 EnRoute LOGO DEVELOPMENT ALTERNATIVE DESIGN SOLU
A
1
2
3
B C
16. OSGi enRoute
• µService Oriented Programming
• To reduce system complexity
• Dependency Management
• To reduce errors in development & operations
• Tooling
• To reduce time to market
• Documentation & Training
• To reduce confusion with developers
22. Profiles
• A profile is specific catalog of specifications that vendors
can provide in a distribution.
• An OSGi Profile consists of
• µServices — Specifications of either OSGi Alliance or
external µservices.
• Extenders — An extender provides support functionality
to OSGi bundles.
• Capabilities — A capability describes a feature/function/
resource of the underlying system in abstract format.
23. Profiles
• Each OSGi enRoute Profile is represented by a
clean signed JAR library that can be used to build
bundles against.
• This is a specification only library,
• It can not introduce unwanted dependencies, or
• Let developers accidentally use proprietary
features of a vendor
24. Planned Profiles
• java 1.8 — All profiles are based on Java 1.8
• base — A minimum profile, mostly as common base and for
demonstrations. It provides support for the best practices in our
industry.
• base.debug — Supports developing and debugging
• web — Web application development optimized for single page
web apps.
• web.debug — Supports developing and debugging web apps.
• persistence — Provides support for JPA on OSGi
25. Base Profile
• OSGi Core Framework — R6
• OSGi Compendium — ConfigurationAdmin, Coordinator, EventAdmin,
LogService, MetaTypeService,UserAdmin
• Logging — Extensive Java Logging and SLF4J (dynamic!) logging
support. Both service based an statics.
• OSGi enRoute Support!
• Requirements and Capabilities — Completely developed with the
R&C model in mind
• Specifications in code — Extensive support to use Java classes and
interfaces to also specifies non-Java aspects. E.g. license headers,
forms, versioning, etc. Mostly through annotations.
26. Base Profile
• OSGi enRoute services!
• Authenticator and Authority — For extensible security
• ConfigurationDone — To signal end of initialization at startup
• DTOs — Extensive support for Data Transfer Objects (JSON, conversion,
diffing, named access)
• Launched — Provides access to startup parameters
• LoggerAdmin — Administrative front end to logging. Can handle OSGi,
SLF4J, and Java Logging
• java.util.Timer — Scheduled tasks
• java.util.concurrent.Executor — Background tasks
43. Distros
• A distro provides the runtime environment for one
or more profiles
• The OSGi enRoute project will deliver a reference
distribution for all profiles based on open source
and OSGi provided bundles
• Members and other companies can provide other,
competing, interoperable, distributions (And are
actively encouraged to do so).