SlideShare ist ein Scribd-Unternehmen logo
1 von 5
Downloaden Sie, um offline zu lesen
ACEEE Int. J. on Information Technology, Vol. 01, No. 01, Mar 2011



                     Modularity and Enterprise Software
                                               Komal Gohil, A.Nagalakshmi
             Innovation & Research Labs, Patni Computer Systems Ltd., Seepz, Andheri(E) Mumbai 400 096.
                               komal.gohil@patni.com, nagalakshmi.alapati@patni.com


Abstract—Modern Enterprise Software Systems (MESS) is all
about envisioning, developing, managing and evolving
enterprise applications to fulfill business requirements. This
may entail many challenges like rapidly changing business
scenario, increase in complexity, shorter time to market and
business agility. In order to deal with this natural evolution,
achieving modularity across MESS is essential. In this paper,
we describe by way of an example application, some of the
common problems encountered while delivering & managing
                                                                         Fig.1: Application Structure of Banquet Hall Reservation in Spring
enterprise software. We demonstrate that one of the root causes
for these is inadequate support for modularity at the physical             On compiling, all the java class files get into src/main/
level viz. packaging & deployment. We look at the different            webapp/WEB-INF/classes. For deploying we end up having
options available for extending the modularity across packaging        one directory called src. If we do changes in a particular
and deployment e.g. Impala and Open Service Gateway                    module the entire application needs to be deployed again.
initiative (OSGi). Based on our explorations and experiments           The server needs to be restarted so that the new changes get
we provide a comparison between the two. We conclude the
                                                                       picked up.
paper with a note on the future directions for physical
                                                                            If there are multiple teams working on different modules,
modularity.
                                                                       deploying the whole application is not an ideal case. It is
       I.   CHALLENGES FACED BY ENTERPRISE SOFTWARE                    expected that each team is as independent as possible so that
      Evolution of business has led IT make breakthrough               there is minimal impact on their work. With the ever-
progress. The software architecture has grown from                     increasing complexity of MESS, following such a
monolithic to client-server to web-based applications. The             deployment mechanism makes the application prone to
web based applications and services have given rise to                 errors. If we need to allow frequent updates, debugging and
Modern Enterprise Software Systems (MESS) which are                    testing each unit separately, then we need to look out for a
growing beyond the boundaries of silo-ed enterprise                    better modularity solution which will allow us to keep
applications. They are getting integrated within and across            separate things separate and related things together.
the enterprises thereby evolving into huge ecosystems like                        Continuous integration, robust systems, scalable de-
Google Search, Amazon, eBay, etc. These systems are being              velopment – are some of the mandates of MESS. Seeing the
used by multiple people/systems across multiple                        above way of application structure making these goals truly
geographical locations and round the clock. Managing and               workable is something which we need to look out for.
maintaining MESS is a challenge in itself.
    Let us understand the problems faced while delivering                             II.   COMMON RECURRING PROBLEMS
& managing MESS with an illustrative example.
    Banquet Hall Reservation application, based on Spring                Often when we feel that certain functionality has been well
Faces i.e. Spring and JavaServerFaces technology allows                implemented, it may go for a toss when we move to
following functionality:                                               production. We are not sure whether our application will
     • Search of available rooms                                       behave the same way when it goes live. Some of the common
     • Facilities available in the respective room                     problems that we face are:
     • Registering user and profile                                        • Unwanted interactions – During deployment we
     • Booking Service for room booking, Updating                               come across cases which lead to unwanted and
         details, Cancellation of the booking                                   unintentional interactions across different modules.
     • Amenities – like sea view, top floor etc.                                This may arise if we happen to put a jar with the
         The entire code is bundled under the package struc-                    same name that is also referred by a different
ture org.springframework.webflow.samples.booking. As                            module.
shown in Fig.1. The java code is available at src/main/java,               • Integrations with other applications – Integration
the database related import files are available at src/main/                    points are one of the high alert areas, which may
resources. The web pages are kept in the src/main/webapp/                       lead to system failure. A change in the signature of
WEB-INF/flows.                                                                  an API that is being referred may lead to exceptions.
                                                                           • Cascading failures – Failures at packaging level
                                                                                may lead to failures at development and design level
                                                                                as well as management and monitoring level.

Š 2011 ACEEE                                                      16
DOI: 01.IJIT.01.01.69
ACEEE Int. J. on Information Technology, Vol. 01, No. 01, Mar 2011

    •     Failures in deployment - Application which seem          procedures in the database server. But there is no provision
          to work fine in a development box fail to make it        for managing modularity across servlets or EJBs etc within
          to operational environment owing to package              their respective containers.
          version problems or other dependencies.                      Spring has taken care some of these problems at the
     • Chain reactions – If in a load balancer condition,          design and development level. Spring provides us
          one of the servers fail, the load is passed on to        applicationContext.xml file where in we can provide details
          others. There is high possibility that the remaining     of the dependencies i.e. define business logic beans,
          servers may succumb to the extra load and in turn        resources, and all other beans that are not directly related to
          fail.                                                    the web tier. As the applications grows the size of this file
     • Blocked Threads – Blocked threads may also lead             also increases which becomes hard to manage and maintain.
          to chain reactions. This happens when the request-       Though there are workarounds for splitting the file, yet they
          handling threads in an application get blocked and       do not provide an effective mechanism of modularity. Spring
          the application stops responding.                        also provides auto-wiring configuration for dependency
    These problems are well narrated in Michael Nygard’s           management which once again becomes difficult to manage
book called ‘Release it’ [1] and Michael Russell’s series of       if the application is growing in leaps.
articles on quality busters [2].                                       Generally when we start with the development work, we
    Solving these problems becomes a mandate for us as an          split the entire functionality into different modules and each
enterprise application has to exist within an operational          team is assigned a specific module to work on. But when it
environment, which is the life-support system for the              comes to deployment, we deploy it as one big monolithic
application. Therefore apart from targeting needs from the         WAR file. The modularity which was maintained so far gets
business community we also have to focus on providing end-         lost with this nature of packaging and deployment.
to-end modularity across the application. We need to                   In order to achieve modularity across application from
understand the causes for the above failures so that such          design to management and monitoring, we need conceptual
surprises are taken care well in advance.                          and logical modularity coupled with physical modularity.
                                                                   Java gives packaging and JAR facility but then we end up
           III.   ROOT CAUSE: INSUFFICIENT MODULARITY              having class loader problems. Thus the basic facilities
                                                                   provided by Java and Java EE help us to achieve modularity
    Java provides modularity by way of convention. At the          at design and development level. Though these disciplines
file level, it provides the concept of package construct and       are necessary, they are not sufficient for building & managing
class, which help in achieving logical modularity. JARs help       a sizable enterprise software system. The modularity needs
us in bundling these classes and thereby providing physical        to be carried forward to the packaging, deployment,
modularity. Building JARs is left to the responsibility of the     management, and monitoring level.
developer and managing them is again a big challenge. We               All these imperatives lead to the fact that we need to
often come across classloading problems which lead to              look at an alternate mechanism other than Spring which
exceptions like –                                                  allows us to fortify the boundaries of modules such that
      • Class not found Exception – This is a very common          outsiders can see and use only the published API of the
          error that we face if the class is not made available    library. Lets looks at solutions like - Impala and Open Service
          in the global classpath.                                 Gateway Initiative (OSGi) have in store for us.
      • Conflicting classes – If there are two classes with
          the same name there is a high likely that we may                           IV.   SOLUTION   1:   IMPALA
          end up using an obsolete class.
      • Version dependency problem – With continuous                   Impala [5] is a dynamic module framework for Java based
          deployment happening there is high chance that new       web applications, which is built on Spring Framework. It
          version of a jar gets released every now and then.       allows us to divide a large Spring-based application into a
          But it is not always possible to point to the latest     hierarchy of modules. These modules can be dynamically
          jar as we may not be ready with the changes. In          added, updated or removed. This allows us easier
          such cases we need to have version specific              maintenance and management of modules.
          dependency.                                                  Impala also provides build system, based on ANT. With
      • Entire JAR is exposed – When a jar is deployed, all        its ant newproject command, application is auto magically
          those classes declared public are accessible to          modularized into build (host) module, main (root Impala)
          clients outside the JAR which we may not want to.        module, non-root module, repository module, test module
          This is another symptom of the lack of any runtime       and web module.
          modularity across JAR files.                                 Using Impala framework, we have re-structured the same
   Similarly at the design level, Java Enterprise Edition (JEE)    Banquet Hall Reservation application. Fig.2 provides the
provides us with servlet container, EJB container etc. By          details of the application structure.
way of this partition we are able to segregate the different            • BHallR-build – It comprises of the build file.
layers of code. Servlets can be contained in the servlet                • BHallR-dataaccess – It has the database related files.
container, the EJBs in the EJB Container, database

Š 2011 ACEEE                                                      17
DOI: 01.IJIT.01.01.69
ACEEE Int. J. on Information Technology, Vol. 01, No. 01, Mar 2011


    •    BHallR-host – This will have the context folder                    •     We can also run Spring integration tests in a
         which contains the web context root, impala                              traditional way: via the ANT Junit task, via Eclipse,
         libraries                                                                both individually or as a suite.

    •     BHallR-repository – Contains a local repository of                •     With the help of Jetty, we can run a web application
          the third party jars used in the application. This                      without having to build or deploy.
          directory contains a number of subdirectories,                    •     Web applications can equally be deployed as WAR
          making it easier to specify which jars to include                       files and run in Tomcat (or other application servers)
          when assembling distribution archives.                                  with little effort.
     • BHallR-service – Another child of the root module                    •     Impala web applications can be single- or multi-
          which contains the data access logic. There isn’t                       module, in the latter case with a separate module
          really a distinct service versus data access layer in                   per servlet.
          the Spring application.                                           •     We can manage dependencies by using Impala’s
     • BHallR-tests – This project is purely present as a                         download task to retrieve our projects directly from
          location for running test suites. It allows us to run                   one or more local or remote Maven repositories.
          suites or individual tests in any of the projects.
     • BHallR-web – A module which implements the                    B . Limitations of Impala:
          presentation layer for the Banquet Hall Reservation            Following are the limitations of Impala based on the
          application.                                                   implementation that we carried out:
     • BHallR-main – This is the place where we can run                  • In traditional enterprise the application is loaded in
          the application                                                    a single classloader, which may lead to conflicts
   Modularity across packaging and deployment is very much                   across class files. Impala takes a different approach.
visible. Here each module can be deployed & un-deployed                      The classloader and spring context are loaded per
independently.                                                               module but the third party libraries are loaded in
   New modules can be added with command ant newmodule                       the same way as in standard standalone or web
command in the application. Impala dependencies can be                       applications. This means that we cannot have two
obtained with ant fetch command. Fig.3 shows the                             different versions of the same libraries in the
dependencies.txt in the main project. Similarly the third party              application at a time. i.e. It follows the graph
library dependencies can be obtained from the Maven                          based classloading approach for application
repositories.                                                                modules                            but hierarchical
                                                                             based classloading approach              for     third
                                                                             party libraries.
                                                                         • The third party libraries which are required must
                                                                             be specified in a “dependencies.txt” file and must
                                                                             follow a particular format like main from commons-
                                                                             logging: commons-logging:1.1. This indicates that
                                                                             we want the Maven repository jar file with
                                                                             organization id commons-logging, artifact id
A. Features of Impala:
                                                                             commons-logging and version number 1.1. to be
 Following are the features of Impala:                                       downloaded and placed into the workspace’s
                                                                             repository folder main.
    •    We can specify a complex Spring application as a                • Impala does not provide any IDE tool support.
         set of modules fitting into a module hierarchy.              Due to the limited support for third party libraries and
    •    Modules can be dynamically added, removed and             IDE tool support, let’s look into the second alternative, which
         updated. Class changes are automatically reflected        is Open Service Gateway initiative.
         when modules are reloaded.
    •    We can develop and test our application without               V.       SOLUTION   2:   OPEN SERVICE GATEWAY INITIATIVE   (OSGI)
         having to leave Eclipse. In other words, we can do
         most of our development using a completely build              OSGi [6] [7] is a specification, which provides
         free development/deploy/test cycle.                       applications to change the composition dynamically without
    •    We can run Spring integration tests interactively.        requiring restart and allows them to run on shared
         For example, we can:                                      environment. OSGi provides a service registry that enables
              o rerun modified tests without having to             these components to dynamically discover each other for
                  reload Spring application contexts               collaboration. OSGi extends JAR’s physical modularity into
              o reload individual modules without having           a logical component model known as bundle.
                  to restart JVM or reload full Spring context      A.     Framework – Layered Architecture
              o reload full application context without              The OSGi framework implements a complete and dynamic
                  having to restart JVM or reload third party      component model. Applications or components can be
                  libraries.
                                                                  18
Š 2011 ACEEE
DOI: 01.IJIT.01.01.69
ACEEE Int. J. on Information Technology, Vol. 01, No. 01, Mar 2011


remotely installed, started, stopped, updated and uninstalled          c. Declarative Modularity – Given that services can
without requiring a reboot. The service registry allows                   dynamically come and go at runtime, clients should be
bundles to detect addition of new services, or the removal of             able to cope when the service isn’t present. In order to
services, and adapt accordingly. Fig.4 shows OSGi frame-                  manage this we have a declarative approach where
work as a layered architecture composed of four layers.                   we can define components and then hook them up
                                                                          together, without having a programmatic dependency
                                                                          on the OSGi APIs.
                                                                      D. OSGi with Spring – Spring Dynamic Modules
                                                                         OSGi complements Java EE as it augments Java
                                                                      packaging and deployment model. It eliminates the concept
                                                                      of monolithic EAR & WAR file. The applications can now
                                                                      be deployed as a set of OSGi bundles. This solves the
                                                                      problems related to classpath.
                                                                         OSGi combines with spring called Spring Dynamic
          Fig.4: OSGi Framework – Layered Architecture                Modules (Spring DM) [8] [9] to bring the benefits of
                                                                      Modularity, Versioning, Hot Deployments, Service
    •    L0: Execution Environment – OSGi minimum
                                                                      Orientation, Dependency Management and et al. to Spring-
         execution environment
                                                                      based enterprise application development.
    •    L1: Modules – Defines encapsulation and
                                                                         Spring DM provides simplicity of Plain Old Java Objects
         declaration of dependencies
                                                                      (POJOs) to OSGi. It provides a spring configuration
    •    L2: Life Cycle Management – Manages the lifecycle
                                                                      namespace that enables us to declare and publish Spring
         of a bundle without requiring the VM to be restarted
                                                                      beans as OSGi services. This allows us to consume OSGi
    •    L3: Services Registry – Provides publish/find/bind
                                                                      services as if they were just beans in a Spring application
         model to decouple bundles
                                                                      context.
B. Bundles                                                               The Banquet Hall Reservation application was re-
   In OSGi, software is distributed in the form of bundle, a          organized using Spring DM Framework. Though the front-
unit of modularization. Bundle comprises of JAR file along            end of the application will not alter as compared against
with metadata added in the form of additional headers in the          Impala but the way the applications are structured will
MANIFEST.MF file (Fig.5). Bundles may “export” and                    change, as shown in Fig.6.
“import” packages to/from other bundles and/or may provide/
use services to/from other bundles.


                                                                                     Fig. 6: Project Structure in Spring DM

                                                                                The application is split module wise viz. bundles,
                                                                      based on the functionality. The search related files were put
                                                                      under com.patni.bhall.reservation.search. The front-end
                                                                      pages and the reservation related files were kept in
                                                                      com.patni.bhall.reservation.webapp,
                                                                      com.patni.bhall.reservation
                  Fig.5: OSGi manifest.mf File                        and com.patni.bhall.reservation.resource were kept for
                                                                      future extension of the application. All these modules have
    C. OSGi enables Modularity through Static, Dynamic                respective context files as well as specific test folders for
                       and Declarative                                running separate unit tests. Each bundle has a src and target
 a. Static Modularity – In OSGi, modules can be built and             folders. Target includes the class files, src will be very similar
     deployed as separate JARs. It is possible to have                to the standard spring web-app which we saw in the
     multiple versions of a bundle in an OSGi system at once.         beginning.
     This might be useful if we have an old client, which                 Thus each bundle is independent and acts like a full-
     depends on older version of our API, and at the same             fledge application as compared against the initial Spring
     time there are others which depend on the latest version.        application. With the availability of separate bundles, it
 b. Dynamic Modularity – Bundles are isolated in their own            becomes easy to deploy only the specific module which are
     class space so that any given bundle may be installed,           undergoing changes and keep the rest of the modules intact.
     stopped, started, updated, or uninstalled independently              Thus each module can be deployed & un-deployed
     of other bundles in the framework there providing                independently.
     dynamic modularity. This makes it possible to swap a                 In the case of Impala, the application had a standard
     bundle with a newer version of the same bundle while             structure where as in OSGi it has been modularized based
     the application continues to run.                                on the way the bundles were created.

Š 2011 ACEEE                                                     19
DOI: 01.IJIT.01.01.69
ACEEE Int. J. on Information Technology, Vol. 01, No. 01, Mar 2011

   VI.   COMPARISON: SPRING DYNAMIC MODULES (OSGI) VS                With the growing popularity of cloud computing and
                          IMPALA                                 mobile computing, management and monitoring are
    Both the frameworks aim for achieving modularity at run-     becoming more important. Monitoring servers, data loads
time for spring based applications. If we have an OSGi           help us to be prepared for the new requirements. Similarly
compliant environment, it may be ideal to go for Spring              managing group of servers like deploying application
Dynamic Modules. On the other hand if there are less third       across number of DM servers with one click is gathering
party dependencies, then Impala may be a better choice. On       momentum. In such conditions modularity becomes all the
similar ground, based on our explorations, experiments and       more important to ensure there are no hidden surprises.
experience we have put forward a comparative analysis                All along we have been considering modularity across
between Spring Dynamic Modules and Impala. (Refer Table          downstream activities like packaging, deployment,
1.0)                                                             management, and monitoring. In order to make the day to
    OSGi is a well-established framework. The need for           day life with MESS more effective, we need to tie this up as
modularity in Java EE, has brought OSGi into picture and         a feedback mechanism for the upstream activities like design
that is how Spring Dynamic Modules have come in. In other        and development. These areas are potential candidates for
words OSGi is complete from the ground up Java modularity        further research and exploration. They seem promising and
solution. But as it caters to so many needs it has become        are likely to make huge impact on the day to day life of the
complex.                                                         people dealing with modern enterprise software systems.
    On the other hand, Impala is a less complex module
framework. Impala was evolved specifically to handle large                           ACKNOWLEDGMENT
Spring-based projects. So it has gone in a top-down fashion          The work reported here has been carried out under the
and hence it is yet to handle the limitations on the usage of    guidance of Mr. Sunil Joglekar, Senior Technical Architect
third party libraries. It works with other frameworks like       in Innovation Research Labs at Patni Computer Systems Ltd.
Struts, Wicket, JSF etc. It does not depend on any third-
                                                                                         REFERENCES
party runtime environments.




                   VII.   FUTURE DIRECTIONS

    Modularity is critical for managing the complexity and
maintaining the quality of large enterprise software systems.
So far we have seen modularity at packaging and deployment
level. This needs to be further extended to the management
and monitoring phases of MESS.

Š 2011 ACEEE                                                    20
DOI: 01.IJIT.01.01.69

Weitere ähnliche Inhalte

Was ist angesagt?

X pages jumpstart jmp101
X pages jumpstart jmp101X pages jumpstart jmp101
X pages jumpstart jmp101pdhannan
 
Partners Guide - System Center
Partners Guide - System CenterPartners Guide - System Center
Partners Guide - System CenterScientia Groups
 
VDI Infraestructure
VDI InfraestructureVDI Infraestructure
VDI InfraestructureJuanchi_43
 
Pardeep Rana IT CV_Breif
Pardeep Rana IT CV_BreifPardeep Rana IT CV_Breif
Pardeep Rana IT CV_BreifPardeep Rana
 
Acrobat 6
Acrobat 6Acrobat 6
Acrobat 6addamal
 
KIRANKUMAR _VMWARE ADMINISTRATOR
KIRANKUMAR _VMWARE ADMINISTRATORKIRANKUMAR _VMWARE ADMINISTRATOR
KIRANKUMAR _VMWARE ADMINISTRATORkiran reddy
 
Connect2013 id506 hadr ideas for social business
Connect2013 id506 hadr ideas for social businessConnect2013 id506 hadr ideas for social business
Connect2013 id506 hadr ideas for social businessLuis Guirigay
 
Empower Employee to Work Anyplace, Amytime
Empower Employee to Work Anyplace, AmytimeEmpower Employee to Work Anyplace, Amytime
Empower Employee to Work Anyplace, AmytimeAdvanced Logic Industries
 
AppSense Product Deck
AppSense Product DeckAppSense Product Deck
AppSense Product DeckJason McGeough
 
Interoperable Open Architecture through a Common Component Model
Interoperable Open Architecture through a Common Component ModelInteroperable Open Architecture through a Common Component Model
Interoperable Open Architecture through a Common Component ModelRemedy IT
 
Fujifilm Cloudnet Mcp Brochure
Fujifilm Cloudnet Mcp BrochureFujifilm Cloudnet Mcp Brochure
Fujifilm Cloudnet Mcp BrochureMichael Mostyn
 
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...David Currie
 
Ramlakhan Mahato_ Resume
Ramlakhan Mahato_ ResumeRamlakhan Mahato_ Resume
Ramlakhan Mahato_ ResumeRamlakhan Mahato
 
System Center Configuration Manager 2012 SP1 and the new way of handling soft...
System Center Configuration Manager 2012 SP1 and the new way of handling soft...System Center Configuration Manager 2012 SP1 and the new way of handling soft...
System Center Configuration Manager 2012 SP1 and the new way of handling soft...Microsoft TechNet - Belgium and Luxembourg
 

Was ist angesagt? (15)

X pages jumpstart jmp101
X pages jumpstart jmp101X pages jumpstart jmp101
X pages jumpstart jmp101
 
It's time to optimize
It's time to optimizeIt's time to optimize
It's time to optimize
 
Partners Guide - System Center
Partners Guide - System CenterPartners Guide - System Center
Partners Guide - System Center
 
VDI Infraestructure
VDI InfraestructureVDI Infraestructure
VDI Infraestructure
 
Pardeep Rana IT CV_Breif
Pardeep Rana IT CV_BreifPardeep Rana IT CV_Breif
Pardeep Rana IT CV_Breif
 
Acrobat 6
Acrobat 6Acrobat 6
Acrobat 6
 
KIRANKUMAR _VMWARE ADMINISTRATOR
KIRANKUMAR _VMWARE ADMINISTRATORKIRANKUMAR _VMWARE ADMINISTRATOR
KIRANKUMAR _VMWARE ADMINISTRATOR
 
Connect2013 id506 hadr ideas for social business
Connect2013 id506 hadr ideas for social businessConnect2013 id506 hadr ideas for social business
Connect2013 id506 hadr ideas for social business
 
Empower Employee to Work Anyplace, Amytime
Empower Employee to Work Anyplace, AmytimeEmpower Employee to Work Anyplace, Amytime
Empower Employee to Work Anyplace, Amytime
 
AppSense Product Deck
AppSense Product DeckAppSense Product Deck
AppSense Product Deck
 
Interoperable Open Architecture through a Common Component Model
Interoperable Open Architecture through a Common Component ModelInteroperable Open Architecture through a Common Component Model
Interoperable Open Architecture through a Common Component Model
 
Fujifilm Cloudnet Mcp Brochure
Fujifilm Cloudnet Mcp BrochureFujifilm Cloudnet Mcp Brochure
Fujifilm Cloudnet Mcp Brochure
 
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
Microservice Builder: A Microservice DevOps Pipeline for Rapid Delivery and P...
 
Ramlakhan Mahato_ Resume
Ramlakhan Mahato_ ResumeRamlakhan Mahato_ Resume
Ramlakhan Mahato_ Resume
 
System Center Configuration Manager 2012 SP1 and the new way of handling soft...
System Center Configuration Manager 2012 SP1 and the new way of handling soft...System Center Configuration Manager 2012 SP1 and the new way of handling soft...
System Center Configuration Manager 2012 SP1 and the new way of handling soft...
 

Andere mochten auch

Optimal Synthesis of Array Pattern for Concentric Circular Antenna Array Usin...
Optimal Synthesis of Array Pattern for Concentric Circular Antenna Array Usin...Optimal Synthesis of Array Pattern for Concentric Circular Antenna Array Usin...
Optimal Synthesis of Array Pattern for Concentric Circular Antenna Array Usin...IDES Editor
 
Performance Analysis of Interconnect Drivers for Ultralow Power Applications
Performance Analysis of Interconnect Drivers for Ultralow Power ApplicationsPerformance Analysis of Interconnect Drivers for Ultralow Power Applications
Performance Analysis of Interconnect Drivers for Ultralow Power ApplicationsIDES Editor
 
TyĂśsuojelun korttipakassa voiton avaimet, asiantuntija Kerttuli Harjanne, TyĂś...
TyĂśsuojelun korttipakassa voiton avaimet, asiantuntija Kerttuli Harjanne, TyĂś...TyĂśsuojelun korttipakassa voiton avaimet, asiantuntija Kerttuli Harjanne, TyĂś...
TyĂśsuojelun korttipakassa voiton avaimet, asiantuntija Kerttuli Harjanne, TyĂś...TyĂśterveyslaitos
 
Quadrangular BĂŠzier Patches in Modeling and Modification of the Curvilinear B...
Quadrangular BĂŠzier Patches in Modeling and Modification of the Curvilinear B...Quadrangular BĂŠzier Patches in Modeling and Modification of the Curvilinear B...
Quadrangular BĂŠzier Patches in Modeling and Modification of the Curvilinear B...IDES Editor
 
Analytical Delay Model for Distributed On-Chip RLCG Global Interconnects for ...
Analytical Delay Model for Distributed On-Chip RLCG Global Interconnects for ...Analytical Delay Model for Distributed On-Chip RLCG Global Interconnects for ...
Analytical Delay Model for Distributed On-Chip RLCG Global Interconnects for ...IDES Editor
 
Dynamic Spectrum Derived Mfcc and Hfcc Parameters and Human Robot Speech Inte...
Dynamic Spectrum Derived Mfcc and Hfcc Parameters and Human Robot Speech Inte...Dynamic Spectrum Derived Mfcc and Hfcc Parameters and Human Robot Speech Inte...
Dynamic Spectrum Derived Mfcc and Hfcc Parameters and Human Robot Speech Inte...IDES Editor
 
Context Driven Technique for Document Classification
Context Driven Technique for Document ClassificationContext Driven Technique for Document Classification
Context Driven Technique for Document ClassificationIDES Editor
 

Andere mochten auch (7)

Optimal Synthesis of Array Pattern for Concentric Circular Antenna Array Usin...
Optimal Synthesis of Array Pattern for Concentric Circular Antenna Array Usin...Optimal Synthesis of Array Pattern for Concentric Circular Antenna Array Usin...
Optimal Synthesis of Array Pattern for Concentric Circular Antenna Array Usin...
 
Performance Analysis of Interconnect Drivers for Ultralow Power Applications
Performance Analysis of Interconnect Drivers for Ultralow Power ApplicationsPerformance Analysis of Interconnect Drivers for Ultralow Power Applications
Performance Analysis of Interconnect Drivers for Ultralow Power Applications
 
TyĂśsuojelun korttipakassa voiton avaimet, asiantuntija Kerttuli Harjanne, TyĂś...
TyĂśsuojelun korttipakassa voiton avaimet, asiantuntija Kerttuli Harjanne, TyĂś...TyĂśsuojelun korttipakassa voiton avaimet, asiantuntija Kerttuli Harjanne, TyĂś...
TyĂśsuojelun korttipakassa voiton avaimet, asiantuntija Kerttuli Harjanne, TyĂś...
 
Quadrangular BĂŠzier Patches in Modeling and Modification of the Curvilinear B...
Quadrangular BĂŠzier Patches in Modeling and Modification of the Curvilinear B...Quadrangular BĂŠzier Patches in Modeling and Modification of the Curvilinear B...
Quadrangular BĂŠzier Patches in Modeling and Modification of the Curvilinear B...
 
Analytical Delay Model for Distributed On-Chip RLCG Global Interconnects for ...
Analytical Delay Model for Distributed On-Chip RLCG Global Interconnects for ...Analytical Delay Model for Distributed On-Chip RLCG Global Interconnects for ...
Analytical Delay Model for Distributed On-Chip RLCG Global Interconnects for ...
 
Dynamic Spectrum Derived Mfcc and Hfcc Parameters and Human Robot Speech Inte...
Dynamic Spectrum Derived Mfcc and Hfcc Parameters and Human Robot Speech Inte...Dynamic Spectrum Derived Mfcc and Hfcc Parameters and Human Robot Speech Inte...
Dynamic Spectrum Derived Mfcc and Hfcc Parameters and Human Robot Speech Inte...
 
Context Driven Technique for Document Classification
Context Driven Technique for Document ClassificationContext Driven Technique for Document Classification
Context Driven Technique for Document Classification
 

Ähnlich wie Modularity and Enterprise Software

Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...Aditya Jha
 
J2EE Performance And Scalability Bp
J2EE Performance And Scalability BpJ2EE Performance And Scalability Bp
J2EE Performance And Scalability BpChris Adkin
 
Spring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – IntroductionSpring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – IntroductionTomcy John
 
Tech challenges in a large scale agile project
Tech challenges in a large scale agile projectTech challenges in a large scale agile project
Tech challenges in a large scale agile projectHarald Soevik
 
Model-driven Framework for Dynamic Deployment and Reconfiguration of Componen...
Model-driven Framework for Dynamic Deployment and Reconfiguration of Componen...Model-driven Framework for Dynamic Deployment and Reconfiguration of Componen...
Model-driven Framework for Dynamic Deployment and Reconfiguration of Componen...Madjid KETFI
 
J2EE Batch Processing
J2EE Batch ProcessingJ2EE Batch Processing
J2EE Batch ProcessingChris Adkin
 
National%20 online%20examination%20system%20an%20architectural%20perspective
National%20 online%20examination%20system%20an%20architectural%20perspectiveNational%20 online%20examination%20system%20an%20architectural%20perspective
National%20 online%20examination%20system%20an%20architectural%20perspectivekalimullahmohd89
 
National%20 online%20examination%20system%20an%20architectural%20perspective
National%20 online%20examination%20system%20an%20architectural%20perspectiveNational%20 online%20examination%20system%20an%20architectural%20perspective
National%20 online%20examination%20system%20an%20architectural%20perspectivekalimullahmohd89
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final finalgaurav shukla
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"GlobalLogic Ukraine
 
Enterprise Application integration (middleware) concepts
Enterprise Application integration (middleware) conceptsEnterprise Application integration (middleware) concepts
Enterprise Application integration (middleware) conceptsShantanu Thakre
 
ECampusConnect
ECampusConnectECampusConnect
ECampusConnectAdvait Patel
 
Functional requirements and their poor cousins nfr's
Functional requirements and their poor cousins nfr'sFunctional requirements and their poor cousins nfr's
Functional requirements and their poor cousins nfr'sMarkus Slooff
 
Orleans: Cloud Computing for Everyone - SOCC 2011
Orleans: Cloud Computing for Everyone - SOCC 2011Orleans: Cloud Computing for Everyone - SOCC 2011
Orleans: Cloud Computing for Everyone - SOCC 2011Jorgen Thelin
 
LEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEM
LEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEMLEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEM
LEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEMmyteratak
 
Java deployments in an enterprise environment whitepaper - xebialabs
Java deployments in an enterprise environment   whitepaper - xebialabsJava deployments in an enterprise environment   whitepaper - xebialabs
Java deployments in an enterprise environment whitepaper - xebialabsXebiaLabs
 
Top_Five_problems_In_EBS_Administration.pdf
Top_Five_problems_In_EBS_Administration.pdfTop_Five_problems_In_EBS_Administration.pdf
Top_Five_problems_In_EBS_Administration.pdfAkhashRamnath
 

Ähnlich wie Modularity and Enterprise Software (20)

Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...Next-Generation Enterprise Application Development with SpringSource dm Serve...
Next-Generation Enterprise Application Development with SpringSource dm Serve...
 
J2EE Performance And Scalability Bp
J2EE Performance And Scalability BpJ2EE Performance And Scalability Bp
J2EE Performance And Scalability Bp
 
EJBW
EJBWEJBW
EJBW
 
Spring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – IntroductionSpring Book – Chapter 1 – Introduction
Spring Book – Chapter 1 – Introduction
 
Tech challenges in a large scale agile project
Tech challenges in a large scale agile projectTech challenges in a large scale agile project
Tech challenges in a large scale agile project
 
Model-driven Framework for Dynamic Deployment and Reconfiguration of Componen...
Model-driven Framework for Dynamic Deployment and Reconfiguration of Componen...Model-driven Framework for Dynamic Deployment and Reconfiguration of Componen...
Model-driven Framework for Dynamic Deployment and Reconfiguration of Componen...
 
J2EE Batch Processing
J2EE Batch ProcessingJ2EE Batch Processing
J2EE Batch Processing
 
National%20 online%20examination%20system%20an%20architectural%20perspective
National%20 online%20examination%20system%20an%20architectural%20perspectiveNational%20 online%20examination%20system%20an%20architectural%20perspective
National%20 online%20examination%20system%20an%20architectural%20perspective
 
National%20 online%20examination%20system%20an%20architectural%20perspective
National%20 online%20examination%20system%20an%20architectural%20perspectiveNational%20 online%20examination%20system%20an%20architectural%20perspective
National%20 online%20examination%20system%20an%20architectural%20perspective
 
Microservice final final
Microservice final finalMicroservice final final
Microservice final final
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
 
Enterprise Application integration (middleware) concepts
Enterprise Application integration (middleware) conceptsEnterprise Application integration (middleware) concepts
Enterprise Application integration (middleware) concepts
 
ECampusConnect
ECampusConnectECampusConnect
ECampusConnect
 
Functional requirements and their poor cousins nfr's
Functional requirements and their poor cousins nfr'sFunctional requirements and their poor cousins nfr's
Functional requirements and their poor cousins nfr's
 
Spring ppt
Spring pptSpring ppt
Spring ppt
 
Orleans: Cloud Computing for Everyone - SOCC 2011
Orleans: Cloud Computing for Everyone - SOCC 2011Orleans: Cloud Computing for Everyone - SOCC 2011
Orleans: Cloud Computing for Everyone - SOCC 2011
 
TermPaper
TermPaperTermPaper
TermPaper
 
LEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEM
LEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEMLEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEM
LEGO EMBRACING CHANGE BY COMBINING BI WITH FLEXIBLE INFORMATION SYSTEM
 
Java deployments in an enterprise environment whitepaper - xebialabs
Java deployments in an enterprise environment   whitepaper - xebialabsJava deployments in an enterprise environment   whitepaper - xebialabs
Java deployments in an enterprise environment whitepaper - xebialabs
 
Top_Five_problems_In_EBS_Administration.pdf
Top_Five_problems_In_EBS_Administration.pdfTop_Five_problems_In_EBS_Administration.pdf
Top_Five_problems_In_EBS_Administration.pdf
 

Mehr von IDES Editor

Power System State Estimation - A Review
Power System State Estimation - A ReviewPower System State Estimation - A Review
Power System State Estimation - A ReviewIDES Editor
 
Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...IDES Editor
 
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...IDES Editor
 
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...IDES Editor
 
Line Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFCLine Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFCIDES Editor
 
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...IDES Editor
 
Assessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric ModelingAssessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric ModelingIDES Editor
 
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...IDES Editor
 
Selfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive ThresholdsSelfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive ThresholdsIDES Editor
 
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...IDES Editor
 
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...IDES Editor
 
Cloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability FrameworkCloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability FrameworkIDES Editor
 
Genetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP BotnetGenetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP BotnetIDES Editor
 
Enhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through SteganographyEnhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through SteganographyIDES Editor
 
Low Energy Routing for WSN’s
Low Energy Routing for WSN’sLow Energy Routing for WSN’s
Low Energy Routing for WSN’sIDES Editor
 
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...IDES Editor
 
Rotman Lens Performance Analysis
Rotman Lens Performance AnalysisRotman Lens Performance Analysis
Rotman Lens Performance AnalysisIDES Editor
 
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral ImagesBand Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral ImagesIDES Editor
 
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...IDES Editor
 
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...IDES Editor
 

Mehr von IDES Editor (20)

Power System State Estimation - A Review
Power System State Estimation - A ReviewPower System State Estimation - A Review
Power System State Estimation - A Review
 
Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...Artificial Intelligence Technique based Reactive Power Planning Incorporating...
Artificial Intelligence Technique based Reactive Power Planning Incorporating...
 
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
Design and Performance Analysis of Genetic based PID-PSS with SVC in a Multi-...
 
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
Optimal Placement of DG for Loss Reduction and Voltage Sag Mitigation in Radi...
 
Line Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFCLine Losses in the 14-Bus Power System Network using UPFC
Line Losses in the 14-Bus Power System Network using UPFC
 
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
Study of Structural Behaviour of Gravity Dam with Various Features of Gallery...
 
Assessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric ModelingAssessing Uncertainty of Pushover Analysis to Geometric Modeling
Assessing Uncertainty of Pushover Analysis to Geometric Modeling
 
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
Secure Multi-Party Negotiation: An Analysis for Electronic Payments in Mobile...
 
Selfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive ThresholdsSelfish Node Isolation & Incentivation using Progressive Thresholds
Selfish Node Isolation & Incentivation using Progressive Thresholds
 
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
Various OSI Layer Attacks and Countermeasure to Enhance the Performance of WS...
 
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
Responsive Parameter based an AntiWorm Approach to Prevent Wormhole Attack in...
 
Cloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability FrameworkCloud Security and Data Integrity with Client Accountability Framework
Cloud Security and Data Integrity with Client Accountability Framework
 
Genetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP BotnetGenetic Algorithm based Layered Detection and Defense of HTTP Botnet
Genetic Algorithm based Layered Detection and Defense of HTTP Botnet
 
Enhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through SteganographyEnhancing Data Storage Security in Cloud Computing Through Steganography
Enhancing Data Storage Security in Cloud Computing Through Steganography
 
Low Energy Routing for WSN’s
Low Energy Routing for WSN’sLow Energy Routing for WSN’s
Low Energy Routing for WSN’s
 
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
Permutation of Pixels within the Shares of Visual Cryptography using KBRP for...
 
Rotman Lens Performance Analysis
Rotman Lens Performance AnalysisRotman Lens Performance Analysis
Rotman Lens Performance Analysis
 
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral ImagesBand Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
Band Clustering for the Lossless Compression of AVIRIS Hyperspectral Images
 
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
Microelectronic Circuit Analogous to Hydrogen Bonding Network in Active Site ...
 
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
Texture Unit based Monocular Real-world Scene Classification using SOM and KN...
 

KĂźrzlich hochgeladen

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel AraĂşjo
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

KĂźrzlich hochgeladen (20)

Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Modularity and Enterprise Software

  • 1. ACEEE Int. J. on Information Technology, Vol. 01, No. 01, Mar 2011 Modularity and Enterprise Software Komal Gohil, A.Nagalakshmi Innovation & Research Labs, Patni Computer Systems Ltd., Seepz, Andheri(E) Mumbai 400 096. komal.gohil@patni.com, nagalakshmi.alapati@patni.com Abstract—Modern Enterprise Software Systems (MESS) is all about envisioning, developing, managing and evolving enterprise applications to fulfill business requirements. This may entail many challenges like rapidly changing business scenario, increase in complexity, shorter time to market and business agility. In order to deal with this natural evolution, achieving modularity across MESS is essential. In this paper, we describe by way of an example application, some of the common problems encountered while delivering & managing Fig.1: Application Structure of Banquet Hall Reservation in Spring enterprise software. We demonstrate that one of the root causes for these is inadequate support for modularity at the physical On compiling, all the java class files get into src/main/ level viz. packaging & deployment. We look at the different webapp/WEB-INF/classes. For deploying we end up having options available for extending the modularity across packaging one directory called src. If we do changes in a particular and deployment e.g. Impala and Open Service Gateway module the entire application needs to be deployed again. initiative (OSGi). Based on our explorations and experiments The server needs to be restarted so that the new changes get we provide a comparison between the two. We conclude the picked up. paper with a note on the future directions for physical If there are multiple teams working on different modules, modularity. deploying the whole application is not an ideal case. It is I. CHALLENGES FACED BY ENTERPRISE SOFTWARE expected that each team is as independent as possible so that Evolution of business has led IT make breakthrough there is minimal impact on their work. With the ever- progress. The software architecture has grown from increasing complexity of MESS, following such a monolithic to client-server to web-based applications. The deployment mechanism makes the application prone to web based applications and services have given rise to errors. If we need to allow frequent updates, debugging and Modern Enterprise Software Systems (MESS) which are testing each unit separately, then we need to look out for a growing beyond the boundaries of silo-ed enterprise better modularity solution which will allow us to keep applications. They are getting integrated within and across separate things separate and related things together. the enterprises thereby evolving into huge ecosystems like Continuous integration, robust systems, scalable de- Google Search, Amazon, eBay, etc. These systems are being velopment – are some of the mandates of MESS. Seeing the used by multiple people/systems across multiple above way of application structure making these goals truly geographical locations and round the clock. Managing and workable is something which we need to look out for. maintaining MESS is a challenge in itself. Let us understand the problems faced while delivering II. COMMON RECURRING PROBLEMS & managing MESS with an illustrative example. Banquet Hall Reservation application, based on Spring Often when we feel that certain functionality has been well Faces i.e. Spring and JavaServerFaces technology allows implemented, it may go for a toss when we move to following functionality: production. We are not sure whether our application will • Search of available rooms behave the same way when it goes live. Some of the common • Facilities available in the respective room problems that we face are: • Registering user and profile • Unwanted interactions – During deployment we • Booking Service for room booking, Updating come across cases which lead to unwanted and details, Cancellation of the booking unintentional interactions across different modules. • Amenities – like sea view, top floor etc. This may arise if we happen to put a jar with the The entire code is bundled under the package struc- same name that is also referred by a different ture org.springframework.webflow.samples.booking. As module. shown in Fig.1. The java code is available at src/main/java, • Integrations with other applications – Integration the database related import files are available at src/main/ points are one of the high alert areas, which may resources. The web pages are kept in the src/main/webapp/ lead to system failure. A change in the signature of WEB-INF/flows. an API that is being referred may lead to exceptions. • Cascading failures – Failures at packaging level may lead to failures at development and design level as well as management and monitoring level. Š 2011 ACEEE 16 DOI: 01.IJIT.01.01.69
  • 2. ACEEE Int. J. on Information Technology, Vol. 01, No. 01, Mar 2011 • Failures in deployment - Application which seem procedures in the database server. But there is no provision to work fine in a development box fail to make it for managing modularity across servlets or EJBs etc within to operational environment owing to package their respective containers. version problems or other dependencies. Spring has taken care some of these problems at the • Chain reactions – If in a load balancer condition, design and development level. Spring provides us one of the servers fail, the load is passed on to applicationContext.xml file where in we can provide details others. There is high possibility that the remaining of the dependencies i.e. define business logic beans, servers may succumb to the extra load and in turn resources, and all other beans that are not directly related to fail. the web tier. As the applications grows the size of this file • Blocked Threads – Blocked threads may also lead also increases which becomes hard to manage and maintain. to chain reactions. This happens when the request- Though there are workarounds for splitting the file, yet they handling threads in an application get blocked and do not provide an effective mechanism of modularity. Spring the application stops responding. also provides auto-wiring configuration for dependency These problems are well narrated in Michael Nygard’s management which once again becomes difficult to manage book called ‘Release it’ [1] and Michael Russell’s series of if the application is growing in leaps. articles on quality busters [2]. Generally when we start with the development work, we Solving these problems becomes a mandate for us as an split the entire functionality into different modules and each enterprise application has to exist within an operational team is assigned a specific module to work on. But when it environment, which is the life-support system for the comes to deployment, we deploy it as one big monolithic application. Therefore apart from targeting needs from the WAR file. The modularity which was maintained so far gets business community we also have to focus on providing end- lost with this nature of packaging and deployment. to-end modularity across the application. We need to In order to achieve modularity across application from understand the causes for the above failures so that such design to management and monitoring, we need conceptual surprises are taken care well in advance. and logical modularity coupled with physical modularity. Java gives packaging and JAR facility but then we end up III. ROOT CAUSE: INSUFFICIENT MODULARITY having class loader problems. Thus the basic facilities provided by Java and Java EE help us to achieve modularity Java provides modularity by way of convention. At the at design and development level. Though these disciplines file level, it provides the concept of package construct and are necessary, they are not sufficient for building & managing class, which help in achieving logical modularity. JARs help a sizable enterprise software system. The modularity needs us in bundling these classes and thereby providing physical to be carried forward to the packaging, deployment, modularity. Building JARs is left to the responsibility of the management, and monitoring level. developer and managing them is again a big challenge. We All these imperatives lead to the fact that we need to often come across classloading problems which lead to look at an alternate mechanism other than Spring which exceptions like – allows us to fortify the boundaries of modules such that • Class not found Exception – This is a very common outsiders can see and use only the published API of the error that we face if the class is not made available library. Lets looks at solutions like - Impala and Open Service in the global classpath. Gateway Initiative (OSGi) have in store for us. • Conflicting classes – If there are two classes with the same name there is a high likely that we may IV. SOLUTION 1: IMPALA end up using an obsolete class. • Version dependency problem – With continuous Impala [5] is a dynamic module framework for Java based deployment happening there is high chance that new web applications, which is built on Spring Framework. It version of a jar gets released every now and then. allows us to divide a large Spring-based application into a But it is not always possible to point to the latest hierarchy of modules. These modules can be dynamically jar as we may not be ready with the changes. In added, updated or removed. This allows us easier such cases we need to have version specific maintenance and management of modules. dependency. Impala also provides build system, based on ANT. With • Entire JAR is exposed – When a jar is deployed, all its ant newproject command, application is auto magically those classes declared public are accessible to modularized into build (host) module, main (root Impala) clients outside the JAR which we may not want to. module, non-root module, repository module, test module This is another symptom of the lack of any runtime and web module. modularity across JAR files. Using Impala framework, we have re-structured the same Similarly at the design level, Java Enterprise Edition (JEE) Banquet Hall Reservation application. Fig.2 provides the provides us with servlet container, EJB container etc. By details of the application structure. way of this partition we are able to segregate the different • BHallR-build – It comprises of the build file. layers of code. Servlets can be contained in the servlet • BHallR-dataaccess – It has the database related files. container, the EJBs in the EJB Container, database Š 2011 ACEEE 17 DOI: 01.IJIT.01.01.69
  • 3. ACEEE Int. J. on Information Technology, Vol. 01, No. 01, Mar 2011 • BHallR-host – This will have the context folder • We can also run Spring integration tests in a which contains the web context root, impala traditional way: via the ANT Junit task, via Eclipse, libraries both individually or as a suite. • BHallR-repository – Contains a local repository of • With the help of Jetty, we can run a web application the third party jars used in the application. This without having to build or deploy. directory contains a number of subdirectories, • Web applications can equally be deployed as WAR making it easier to specify which jars to include files and run in Tomcat (or other application servers) when assembling distribution archives. with little effort. • BHallR-service – Another child of the root module • Impala web applications can be single- or multi- which contains the data access logic. There isn’t module, in the latter case with a separate module really a distinct service versus data access layer in per servlet. the Spring application. • We can manage dependencies by using Impala’s • BHallR-tests – This project is purely present as a download task to retrieve our projects directly from location for running test suites. It allows us to run one or more local or remote Maven repositories. suites or individual tests in any of the projects. • BHallR-web – A module which implements the B . Limitations of Impala: presentation layer for the Banquet Hall Reservation Following are the limitations of Impala based on the application. implementation that we carried out: • BHallR-main – This is the place where we can run • In traditional enterprise the application is loaded in the application a single classloader, which may lead to conflicts Modularity across packaging and deployment is very much across class files. Impala takes a different approach. visible. Here each module can be deployed & un-deployed The classloader and spring context are loaded per independently. module but the third party libraries are loaded in New modules can be added with command ant newmodule the same way as in standard standalone or web command in the application. Impala dependencies can be applications. This means that we cannot have two obtained with ant fetch command. Fig.3 shows the different versions of the same libraries in the dependencies.txt in the main project. Similarly the third party application at a time. i.e. It follows the graph library dependencies can be obtained from the Maven based classloading approach for application repositories. modules but hierarchical based classloading approach for third party libraries. • The third party libraries which are required must be specified in a “dependencies.txt” file and must follow a particular format like main from commons- logging: commons-logging:1.1. This indicates that we want the Maven repository jar file with organization id commons-logging, artifact id A. Features of Impala: commons-logging and version number 1.1. to be Following are the features of Impala: downloaded and placed into the workspace’s repository folder main. • We can specify a complex Spring application as a • Impala does not provide any IDE tool support. set of modules fitting into a module hierarchy. Due to the limited support for third party libraries and • Modules can be dynamically added, removed and IDE tool support, let’s look into the second alternative, which updated. Class changes are automatically reflected is Open Service Gateway initiative. when modules are reloaded. • We can develop and test our application without V. SOLUTION 2: OPEN SERVICE GATEWAY INITIATIVE (OSGI) having to leave Eclipse. In other words, we can do most of our development using a completely build OSGi [6] [7] is a specification, which provides free development/deploy/test cycle. applications to change the composition dynamically without • We can run Spring integration tests interactively. requiring restart and allows them to run on shared For example, we can: environment. OSGi provides a service registry that enables o rerun modified tests without having to these components to dynamically discover each other for reload Spring application contexts collaboration. OSGi extends JAR’s physical modularity into o reload individual modules without having a logical component model known as bundle. to restart JVM or reload full Spring context A. Framework – Layered Architecture o reload full application context without The OSGi framework implements a complete and dynamic having to restart JVM or reload third party component model. Applications or components can be libraries. 18 Š 2011 ACEEE DOI: 01.IJIT.01.01.69
  • 4. ACEEE Int. J. on Information Technology, Vol. 01, No. 01, Mar 2011 remotely installed, started, stopped, updated and uninstalled c. Declarative Modularity – Given that services can without requiring a reboot. The service registry allows dynamically come and go at runtime, clients should be bundles to detect addition of new services, or the removal of able to cope when the service isn’t present. In order to services, and adapt accordingly. Fig.4 shows OSGi frame- manage this we have a declarative approach where work as a layered architecture composed of four layers. we can define components and then hook them up together, without having a programmatic dependency on the OSGi APIs. D. OSGi with Spring – Spring Dynamic Modules OSGi complements Java EE as it augments Java packaging and deployment model. It eliminates the concept of monolithic EAR & WAR file. The applications can now be deployed as a set of OSGi bundles. This solves the problems related to classpath. OSGi combines with spring called Spring Dynamic Fig.4: OSGi Framework – Layered Architecture Modules (Spring DM) [8] [9] to bring the benefits of Modularity, Versioning, Hot Deployments, Service • L0: Execution Environment – OSGi minimum Orientation, Dependency Management and et al. to Spring- execution environment based enterprise application development. • L1: Modules – Defines encapsulation and Spring DM provides simplicity of Plain Old Java Objects declaration of dependencies (POJOs) to OSGi. It provides a spring configuration • L2: Life Cycle Management – Manages the lifecycle namespace that enables us to declare and publish Spring of a bundle without requiring the VM to be restarted beans as OSGi services. This allows us to consume OSGi • L3: Services Registry – Provides publish/find/bind services as if they were just beans in a Spring application model to decouple bundles context. B. Bundles The Banquet Hall Reservation application was re- In OSGi, software is distributed in the form of bundle, a organized using Spring DM Framework. Though the front- unit of modularization. Bundle comprises of JAR file along end of the application will not alter as compared against with metadata added in the form of additional headers in the Impala but the way the applications are structured will MANIFEST.MF file (Fig.5). Bundles may “export” and change, as shown in Fig.6. “import” packages to/from other bundles and/or may provide/ use services to/from other bundles. Fig. 6: Project Structure in Spring DM The application is split module wise viz. bundles, based on the functionality. The search related files were put under com.patni.bhall.reservation.search. The front-end pages and the reservation related files were kept in com.patni.bhall.reservation.webapp, com.patni.bhall.reservation Fig.5: OSGi manifest.mf File and com.patni.bhall.reservation.resource were kept for future extension of the application. All these modules have C. OSGi enables Modularity through Static, Dynamic respective context files as well as specific test folders for and Declarative running separate unit tests. Each bundle has a src and target a. Static Modularity – In OSGi, modules can be built and folders. Target includes the class files, src will be very similar deployed as separate JARs. It is possible to have to the standard spring web-app which we saw in the multiple versions of a bundle in an OSGi system at once. beginning. This might be useful if we have an old client, which Thus each bundle is independent and acts like a full- depends on older version of our API, and at the same fledge application as compared against the initial Spring time there are others which depend on the latest version. application. With the availability of separate bundles, it b. Dynamic Modularity – Bundles are isolated in their own becomes easy to deploy only the specific module which are class space so that any given bundle may be installed, undergoing changes and keep the rest of the modules intact. stopped, started, updated, or uninstalled independently Thus each module can be deployed & un-deployed of other bundles in the framework there providing independently. dynamic modularity. This makes it possible to swap a In the case of Impala, the application had a standard bundle with a newer version of the same bundle while structure where as in OSGi it has been modularized based the application continues to run. on the way the bundles were created. Š 2011 ACEEE 19 DOI: 01.IJIT.01.01.69
  • 5. ACEEE Int. J. on Information Technology, Vol. 01, No. 01, Mar 2011 VI. COMPARISON: SPRING DYNAMIC MODULES (OSGI) VS With the growing popularity of cloud computing and IMPALA mobile computing, management and monitoring are Both the frameworks aim for achieving modularity at run- becoming more important. Monitoring servers, data loads time for spring based applications. If we have an OSGi help us to be prepared for the new requirements. Similarly compliant environment, it may be ideal to go for Spring managing group of servers like deploying application Dynamic Modules. On the other hand if there are less third across number of DM servers with one click is gathering party dependencies, then Impala may be a better choice. On momentum. In such conditions modularity becomes all the similar ground, based on our explorations, experiments and more important to ensure there are no hidden surprises. experience we have put forward a comparative analysis All along we have been considering modularity across between Spring Dynamic Modules and Impala. (Refer Table downstream activities like packaging, deployment, 1.0) management, and monitoring. In order to make the day to OSGi is a well-established framework. The need for day life with MESS more effective, we need to tie this up as modularity in Java EE, has brought OSGi into picture and a feedback mechanism for the upstream activities like design that is how Spring Dynamic Modules have come in. In other and development. These areas are potential candidates for words OSGi is complete from the ground up Java modularity further research and exploration. They seem promising and solution. But as it caters to so many needs it has become are likely to make huge impact on the day to day life of the complex. people dealing with modern enterprise software systems. On the other hand, Impala is a less complex module framework. Impala was evolved specifically to handle large ACKNOWLEDGMENT Spring-based projects. So it has gone in a top-down fashion The work reported here has been carried out under the and hence it is yet to handle the limitations on the usage of guidance of Mr. Sunil Joglekar, Senior Technical Architect third party libraries. It works with other frameworks like in Innovation Research Labs at Patni Computer Systems Ltd. Struts, Wicket, JSF etc. It does not depend on any third- REFERENCES party runtime environments. VII. FUTURE DIRECTIONS Modularity is critical for managing the complexity and maintaining the quality of large enterprise software systems. So far we have seen modularity at packaging and deployment level. This needs to be further extended to the management and monitoring phases of MESS. Š 2011 ACEEE 20 DOI: 01.IJIT.01.01.69