OSGi & Spring introduction

14
© Samsung Electronics Co., DMC R&D Center 2011.04.03 [email protected] 강강강

description

OSGi & Spring introduction. 2011.04.03 [email protected] 강정훈. Introduction. Who is presenting ?. [email protected] [email protected] @kang_maestro http://swtest.tistory.com http://swtesting.co.kr. 2002. 2005. 2007. 2008. 2011. OSGi. Definition - PowerPoint PPT Presentation

Transcript of OSGi & Spring introduction

Page 1: OSGi  & Spring introduction

© Samsung Electronics Co., DMC R&D Center

[email protected]

강정훈

Page 2: OSGi  & Spring introduction

Swtesting.co.kr 2

•Who is presenting ?

2002 2005 20072008

[email protected]@gmail.com@kang_maestrohttp://swtest.tistory.comhttp://swtesting.co.kr

2011

Page 3: OSGi  & Spring introduction

Swtesting.co.kr 3

Definition

- The OSGi™ specifications define a standardized, component-oriented, computin environment for networked services that is the foundation of an enhanced service-oriented architecture. Adding an OSGi Service Platform to a networked device (embedded as well as servers), adds the capability to manage the lifecycle of the software components in the device from anywhere in the network. Software components can be installed, updated, or removed on the fly without ever having to disrupt the operation of the device.

(http://www.osgi.org/wiki/uploads/Links/OSGiTechnicalWhitePaper.pdf )

OSGi Alliance- Worldwide consortium of technology innovators that advances

OSGi technology- Set of specifications that define a dynamic component system for Java(http://www.martinlippert.org/events/EclipseCon2009-OSGiForEclipseDevelopers.pdf )

Page 4: OSGi  & Spring introduction

Swtesting.co.kr 4

Bundles

- Bundles are normal jar components with extra manifest headers.

Services

- The services layer connects bundles in a dynamic way by offering a publish-find-bind model for plain old Java objects (POJO).

Services Registry

- The API for management services (ServiceRegistration, ServiceTracker and ServiceReference).

Life-Cycle

- The API for life cycle management for (install, start, stop, update, and uninstall) bundles.

Page 5: OSGi  & Spring introduction

Swtesting.co.kr 5

Page 6: OSGi  & Spring introduction

Swtesting.co.kr 6

Page 7: OSGi  & Spring introduction

Swtesting.co.kr 7

Page 8: OSGi  & Spring introduction

Swtesting.co.kr 8

Reduced complexity: Developing OSGi means developing modules ie bundles. They hide their internals from other bundles and the communication is through well defined interfaces.Hence the later changes can be easily accommodated without affecting other modules.

Reuse : The OSGi component model makes the integration of third party components very easy.

Easy deployment- The OSGi specification clearly specifies how the components are installed and managed. It provides APIs so that it can be integrated with external management systems.

Dynamic updates: Bundles can be installed, started, stopped, updated and uninstalled without bringing down the whole system.

Adaptive: The OSGi provides a dynamic service registry where bundles can register, get and listen to services.This dynamic service model allows bundle to find out what all services available in the system and can adapt those functionalities.

Transparency: Certain parts of applications can be shutdown for bug fixing.[ 출처 ] OSGi - The Dynamic Module System for Java : Part 1| 작성자 hiwatt

Page 9: OSGi  & Spring introduction

Swtesting.co.kr 9

The Spring Framework is the leading full-stack Java/JEE application framework. It provides a lightweight container and a non-invasive programming model enabled by the use of dependency injection, AOP, and portable service abstractions.

The OSGi Service Platform offers a dynamic application execution environment in which modules (bundles) can be installed, updated, or removed on the fly. It also has excellent support for modularity and versioning.

Many technology abstractions to be used in a POJO like way

Page 10: OSGi  & Spring introduction

Swtesting.co.kr 10

Better separation of application logic into modules, with runtime enforcement of module boundaries

The ability to deploy multiple versions of a module (or library) concurrently

The ability to dynamically discover and use services provided by other modules in the system

The ability to dynamically install, update and uninstall modules in a running system

Use of the Spring Framework to instantiate, configure, assemble, and decorate components within and across modules.

A simple and familiar programming model for enterprise developers to exploit the features of the OSGi platform.

Page 11: OSGi  & Spring introduction

Swtesting.co.kr 11

Page 12: OSGi  & Spring introduction

Swtesting.co.kr 12

Dependency injection (DI) in object-oriented computer programming is a technique that indicates to a part of a program which other parts it can use, i.e. to supply an external dependency – a reference – to a software component.

In technical terms, it is a design pattern that separates behavior from dependency resolution, thus decoupling highly dependent components.

http://en.wikipedia.org/wiki/Dependency_injection

"While inversion of control makes it possible to tie software components together loosely, aspect-oriented programming enables you to capture functionality that is used througthout your application in reusable components."

Spring in Action - 25p

Page 13: OSGi  & Spring introduction

Swtesting.co.kr 13

Page 14: OSGi  & Spring introduction

Swtesting.co.kr 14

Getting started with OSGi – Your First Bundle- http://xguru.net/443

OSGi & Spring DM- http://gy801110.blog.me/95572601

Spring IDE- http://springide.org/

Spring DM- http://www.springsource.org/osgi

- http://whiteship.tistory.com/1446

Spring AOP- http://kekedie.tistory.com/68

DI- http://jackylim.blog.me/100055189760

- http://yoyojyv.tistory.com/1