OSGi enRoute Unveiled - P Kriens

Click here to load reader

  • date post

    29-Nov-2014
  • Category

    Technology

  • view

    810
  • download

    1

Embed Size (px)

description

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.

Transcript of OSGi enRoute Unveiled - P Kriens

  • 1. OSGi enRoute An Development Chain for OSGi
  • 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
  • 3. The existential question
  • 4. Why OSGi?
  • 5. Hello World
  • 6. is not a benchmark
  • 7. Language Dev Chain
  • 8. Small versus Large costofchange functionality dynamic languages Java & OSGi Startup cost of Java (statically typed languages) is higher However, long term cost is much lower
  • 9. target.foo(15,abc); target.foo(15,abc); Javascript Java You HOPE target implements foo You KNOW target implements foo and expects an integer and a string Your IDE knows exactly who is using this
  • 10. OSGi extends type safety to modules that evolve
  • 11. What is OSGi enRoute? costofchange functionality dynamic languages Java & OSGi
  • 12. How?
  • 13. 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
  • 14. Development Process Components Run! Descriptor Distro enRoute! Prole other! APIs Deployable! Unit test compile resolve build release define baseline external dependencies QA & Production staging
  • 15. bnd, the little engine that built
  • 16. bndlib bndtools (eclipse) maven gradle, ant bnd command line
  • 17. bundle bundle workspace project cnf project
  • 18. proles
  • 19. Proles A prole is specic catalog of specications that vendors can provide in a distribution. An OSGi Prole consists of Services Specications 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.
  • 20. Proles Each OSGi enRoute Prole is represented by a clean signed JAR library that can be used to build bundles against. This is a specication only library, It can not introduce unwanted dependencies, or Let developers accidentally use proprietary features of a vendor
  • 21. Planned Proles java 1.8 All proles are based on Java 1.8 base A minimum prole, 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
  • 22. Base Prole OSGi Core Framework R6 OSGi Compendium CongurationAdmin, 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 Specications in code Extensive support to use Java classes and interfaces to also species non-Java aspects. E.g. license headers, forms, versioning, etc. Mostly through annotations.
  • 23. Base Prole OSGi enRoute services! Authenticator and Authority For extensible security CongurationDone To signal end of initialization at startup DTOs Extensive support for Data Transfer Objects (JSON, conversion, difng, 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
  • 24. package com.api publishbind subscribe dependency
  • 25. Components Component (object)
  • 26. Creates a component Can (de)activate, gets configuration data Service dependency
  • 27. Bundles Bundle component component component component
  • 28. Bundles Bundle
  • 29. Private packages Exported packages Calculated imports bnd descriptor
  • 30. Continuous build JARs Content, e.g. Component XML
  • 31. external dependencies (or where the heck is maven central????)
  • 32. Repository (includes maven central)
  • 33. Search repos Opens browser window
  • 34. OSGi Framework Bundle Assemble Bundle Bundle Bundle Bundle Bundle OSGi Framework
  • 35. distros
  • 36. Distros A distro provides the runtime environment for one or more proles The OSGi enRoute project will deliver a reference distribution for all proles based on open source and OSGi provided bundles Members and other companies can provide other, competing, interoperable, distributions (A