Thursday, Apr 5, 2018
OSGi technology is a set of specifications that define a dynamic component system for Java. These specifications enable a development model where an application is composed of several components which are packaged in bundles. Components communicate locally and across the network through services.
An application in this context represents the functionality desired by the organization. For example, an expense account reporting application or a payroll application. The goal is to make the application code as small as possible because that code is not reusable.
This discusses how modularity helps to make complexity in software system manageable.
The most import measure of Complexity is the financial cost associated with software maintenance: i.e., the cost required to change a System.
A number of independent studies concur that software maintenance accounts for ~80% of the total lifetime cost of a software system: e.g., Erlikh, L. (2000) determined that 80% of software costs are concerned with evolution of the software.
Welcome to the OSGi world! If you’re new to OSGi or looking to refresh your knowledge, you’re in the right place. This guide will help you get started quickly and efficiently with OSGi technology.
What is OSGi? OSGi (Open Service Gateway Initiative) is a modular approach and specification that allows developers to create robust, highly decoupled and dynamic applications in Java. There are various implementations of this specification. The open source options include Apache Felix, Eclipse Equinox and Knopflerfish.
Why is Modularity so Important? Modularity makes complexity manageable Modularity enables parallel work Modularity is tolerant of uncertainty By “tolerant of uncertainty” we mean that particular elements of a modular design may be changed after the fact and in unforeseen ways: see Design Rules, Volume 1 The Power of Modularity.
Techopedia defines modularity, from a software engineering perspective as referring
… to the extent to which a software/Web application may be divided into smaller modules.
OSGi, The Dynamic Module System for Java OSGi technology is composed of a set of specifications, implementations for each specification, and a set of test compatability kits for each specification that together define a dynamic module system for Java. OSGi provides a vendor-independent, standards-based approach to modularizing Java software applications and infrastructure. Its proven services model enables application and infrastructure modules to communicate locally and distributed across the network, providing a coherent end-to-end architecture.
Back to the top