A component is a reusable software entity that is developed and deployed
independently. Component based software development has many architectural
advantages. In the previous article Componentizing a Monolithic Application
in Java, we learnt the need for componentizing applications for getting the
benefits of reusability and modularity. In this article let us look at how
multi layered application can be componentized. We take the example of a
multi-layered POS (Point-Of-Sale) application and understand how the
application can be componentized at various layers like presentation,
business and persistence layers.
Point of Sale - An Example Application
Consider a Point-of-Sale (POS) application meant for tracking orders and
payments in a restaurant. The POS is used to track the tables being occupied
by the guests, orders being made from various tables, and to print bil... (more)
OSGi is the latest component model to join the bandwagon of component models,
which provides a platform for component oriented development and assembly.
OSGi framework is a standards based platform whose specifications are
provided by the OSGi Alliance (www.osgi.org, formerly OSGi was referred as
Open Services Gateway Initiative). OSGi Alliance is an industry backed
nonprofit organization which was founded in March 1999. The OSGi
specification has gone through many releases and the current major version in
use is 4 and version 5 has been introduced recently.
The OSGi defines a d... (more)
This article introduces the concepts of Component Oriented Development and
Assembly (CODA) using the OSGi Service platform with an example application.
The article starts with an introduction to software components, elaborates
with an example application, followed by an overview of the OSGi Service
platform, and an implementation of the example application using this
Introduction to Software Components
Components are parts that can be assembled to form a larger system.
Electronic components such as ICs (Integrated Circuits) are assembled
together to build an electronic... (more)
A component is a reusable software entity. A component is a deployable piece
of software that can be independently developed and maintained. In the
previous article -Componentizing a Monolithic Application in Java, we
discussed the need for componentizing applications to get the benefits of
reusability and modularity. We also looked at how an E-Store application can
be componentized using a simple component model developed by the authors
using a factory whiteboard pattern and a simple repository.
In Part 1 of this article we will try to understand various component models
in Jav... (more)
Component-oriented development has many architectural advantages. In spite of
this, many developers tend to solve problems the monolithic way on the first
go. This article demonstrates how a monolithic design can be modified to
achieve component-based design. During this conversion process, the necessity
of Component Models and Frameworks are highlighted. The article demonstrates
the componentization of an example monolithic application using a simple
homegrown component model and framework developed by the authors.
Introducing E-Store - A Business Application
Let us assume that w... (more)