Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Intro to OSGi – the Microservices kernel - P Kriens & T Ward

3,369 views

Published on

If you are new to OSGi, or have heard about it or experienced (good or bad) a little of OSGi then this is the talk for you.

Peter Kriens, the OSGi Alliance Evangelist and Tim Ward, co-author of Enterprise OSGi in Action will provide a high level technical introduction to OSGi, covering the core concepts that make up this standard.

OSGi has been around since 1998 and was formerly JSR8. Today its one of the only Java standards that exist outside of the JCP and this talk will explore the original objectives of OSGi and how they have remained true while being extended to apply across many vertical markets including enterprise, embedded / IoT, etc.

Microservices and OSGi. From the outset OSGi promoted a ‘services-first’ approach, initially within the JVM, and in the last few years, across JVM’s with the Distributed OSGi specifications. The Microservices approach has been gaining industry traction over the last 12 months and Peter and Tim will explain how OSGi provides you with a standards-based solution to Microservices, how simple it is to take advantage of, and the benefits that you can achieve by adopting OSGi to realize it.

They will also highlight some of the common misconceptions and challenges that people have when starting out with OSGi, just so you have a full and frank understanding of the many benefits and some of the hurdles you may encounter as you start down the OSGi path. As they say there is no such thing as a free lunch, however it tastes mighty fine once you get there!

Bios:
Peter Kriens
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.

Tim Ward
Tim is a Senior Consulting Engineer and Trainer at Paremus, a co-author of Enterprise OSGi in Action, and has been actively working with OSGi for over six years. Tim has been a regular participant in the OSGi Core Platform and Enterprise Expert Groups, and led the development of several specifications, including OSGi Promises and Asynchronous Services. Tim is also an active Open Source committer and a PMC member in the Apache Aries project, which provides a container for enterprise OSGi applications.

Tim is a regular conference speaker, and can often be found at JavaOne, Devoxx, OSGi DevCon, OSGi Community Event, EclipseCon, Jazoon and JAX London.

Published in: Technology, Education

Intro to OSGi – the Microservices kernel - P Kriens & T Ward

  1. 1. OSGi – The µServices Kernel A high level technical introduction to OSGi
  2. 2. Once upon a time in 1998 …
  3. 3. long before SOA …
  4. 4. A JSR was born …
  5. 5. 8
  6. 6. the OSGi Service FrameworkService
  7. 7. Service
  8. 8. Service
  9. 9. Service
  10. 10. To prevent confusion, we coined the term …
  11. 11. micro-service
  12. 12. micro-service
  13. 13. micro-service
  14. 14. they did it again …
  15. 15. µService
  16. 16. because we are worth it …
  17. 17. Let’s go back to the beginning
  18. 18. Modularity • modules have a private space and share a public space • modules limit their visibility and exposure • complexity ∷ parts2 A B C D
  19. 19. Modularity • modules have a private space and share a public space • modules limit their visibility and exposure • complexity ∷ parts2 A B C D Pub
  20. 20. Modularity • modules have a private space and share a public space • modules limit their visibility and exposure • complexity ∷ parts2 A B C D Pub
  21. 21. SoftwareComplexity Moving Parts Modularity’s Secret
  22. 22. SoftwareComplexity Moving Parts Modularity’s Secret
  23. 23. SoftwareComplexity Moving Parts Modularity’s Secret
  24. 24. SoftwareComplexity Moving Parts Modularity’s Secret
  25. 25. A v1.0 C v1.1 B v2.3
  26. 26. Done?
  27. 27. Interfaces/API User Class Implementer Class Interface
  28. 28. User Class Implementer Class Interface Interfaces/API
  29. 29. package com.api package com.provider.implpackage com.consumer.impl User Class Implementer Class Interface Interfaces/API
  30. 30. package com.api package com.provider.implpackage com.consumer.impl DocumentBuilderYour App Xerces User Class Implementer Class Interface Interfaces/API
  31. 31. package com.api package com.provider.implpackage com.consumer.impl User Class Implementer Class Interface Interfaces/API
  32. 32. package com.api package com.provider.implpackage com.consumer.impl User Class Implementer Class Interface Interfaces/API
  33. 33. package com.api package com.provider.implpackage com.consumer.impl User Class Implementer Class Interface private Interfaces/API
  34. 34. Now what?
  35. 35. package com.api package com.provider.implpackage com.consumer.impl
  36. 36. package com.api package com.provider.implpackage com.consumer.impl Listen
  37. 37. package com.api package com.provider.implpackage com.consumer.impl Register Listen
  38. 38. package com.api package com.provider.implpackage com.consumer.impl Register GetListen
  39. 39. An honest broker …
  40. 40. Overhead?
  41. 41. µService call ≡ Method call
  42. 42. µService ≡ object
  43. 43. Closer with less irritation …
  44. 44. .
  45. 45. . REST
  46. 46. SOA . REST
  47. 47. SOA “MICRO Service” . REST
  48. 48. SOA “MICRO Service” µservice . REST
  49. 49. OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D G B E H C F I
  50. 50. OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G B E H C F I
  51. 51. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C F I B
  52. 52. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C F I
  53. 53. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C F I
  54. 54. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C F I
  55. 55. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution D A G E H C F I
  56. 56. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution D A G E H C FF
  57. 57. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C FF
  58. 58. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C FF Ba Bb D A G E H C F
  59. 59. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C FF
  60. 60. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C FF I v2.0
  61. 61. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C FF I v2.0 S;1.1.0 F
  62. 62. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C FF I v2.0 S;1.1.0 F
  63. 63. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C FF I v2.0 S;1.1.0 F
  64. 64. Ba Bb OSGi • Adaptive • Flexible • Contracts • Robust • Secure • Evolution • Distributed D A G E H C FF I v2.0 S;1.1.0 F REST
  65. 65. Service Patterns • Factory • Listener • Discovery • Distribution • Dependencies
  66. 66. Service Patterns • Factory • Listener • Discovery • Distribution • Dependencies
  67. 67. Service Patterns • Factory • Listener • Discovery • Distribution • Dependencies
  68. 68. Service Patterns • Factory • Listener • Discovery • Distribution • Dependencies
  69. 69. Service Patterns • Factory • Listener • Discovery • Distribution • Dependencies
  70. 70. Service Patterns • Factory • Listener • Discovery • Distribution • Dependencies
  71. 71. But OSGi is so complicated!
  72. 72. Sigh …
  73. 73. Complexity is in the eye of the beholder
  74. 74. Complexity is in the eye of the beholder
  75. 75. The right tool for the job …
  76. 76. meet bnd(tools)
  77. 77. bnd(tools) • DS Component Annotation support • Access to maven central and more • Based on Capability model • Extensive debugging with dynamic updating • Executable JARs • Release tool with semantic versioning • Baselining • Integration with Continuous Integration
  78. 78. bnd(tools) • DS Component Annotation support • Access to maven central and more • Based on Capability model • Extensive debugging with dynamic updating • Executable JARs • Release tool with semantic versioning • Baselining • Integration with Continuous Integration See N eil B ar tlett’s talk o n B n d to o ls n ext
  79. 79. OSGi enRoute
  80. 80. OSGi enRoute
  81. 81. costofchange functionality
  82. 82. costofchange functionality dynamic languages
  83. 83. costofchange functionality dynamic languages Java/OSGi
  84. 84. costofchange functionality dynamic languages Java/OSGi
  85. 85. In the end, OSGi is inevitable …
  86. 86. OSGi Release 6 • June 2nd the OSGi Core Release 6 Specification received its final approval and will be available this week to the public for downloading. • http://www.osgi.org/Specifications/HomePage
 • The OSGi Board of Directors also approved the publication of an Early Draft Specification of OSGi Enterprise Release 6 for downloading. • http://www.osgi.org/Specifications/Drafts

  87. 87. OSGi Release 6 • June 2nd the OSGi Core Release 6 Specification received its final approval and will be available this week to the public for downloading. • http://www.osgi.org/Specifications/HomePage
 • The OSGi Board of Directors also approved the publication of an Early Draft Specification of OSGi Enterprise Release 6 for downloading. • http://www.osgi.org/Specifications/Drafts
 NEW

×