OSGi & Spring introduction

Post on 07-Jan-2016

23 views 0 download

description

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

transcript

© Samsung Electronics Co., DMC R&D Center

2011.04.03taru00@gmail.com

강정훈

Swtesting.co.kr 2

•Who is presenting ?

2002 2005 20072008

taru00@gmail.comtaru00@gmail.com@kang_maestrohttp://swtest.tistory.comhttp://swtesting.co.kr

2011

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 )

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.

Swtesting.co.kr 5

Swtesting.co.kr 6

Swtesting.co.kr 7

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

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

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.

Swtesting.co.kr 11

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

Swtesting.co.kr 13

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