150 likes | 229 Views
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
E N D
OSGi & Springintroduction 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 • 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 )
Terms • 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.
The Advantage of using OSGi • 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
Spring framework • 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
Spring DM & the OSGi platform • 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.
Inversion of control • Dependency injection (DI) in object-orientedcomputer 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
Reference • 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