Tuesday, June 4, 2019

Performance Analysis of Reusable Software Systems

capital punishment Analysis of Reusable Softw atomic number 18 SystemsMonika KalotraDr. Kuljit KaurAbstract To improve the quality of bundle system, there is a need to eliminate or shorten the rework. bundle employ is one of the issue proposed for it. Software re consumption involves reuse of existing software system modules, also called reclaimable software components, while creating new software systems. In the context of software reuse, it is important to evaluate the carrying out of useful software components as performance is a crucial factor in the excerption of any third party or existing software components. This writing shows a comparative study on the performance abstract of four reclaimable software components-hibernate, spring, IBatis and EclipseLink. This paper presents the foc employ to arm a comparative analysis that shows the ordinary exercise quantify, average heap usage, and average central processor function of the utile software components usi ng java found VisualVM tool.Keywords Performance, Software Reusability, java framework, CBSD.I. INTRODUCTIONIn 1968, to overcome the software crisis Mcllroy proposed the concept of software 1. To build large sure software systems in a controlled and cost effective way, he pointed towards the effective use of reusable software components 2. The results of software reuse to improve the productivity of the programmer because with the reuse we can produce high quality software at a minimum cost and deliver it within a short frustrate of clipping 6. Reuse software is of better quality than new software because it has been already tried and tested in other systems. There are two begines for reuse of code prepare the code with reuse or develop the code for reuse. In either case, there is a need of measuring the quality of the reusable piece of software 8. The reuse of program/software is a common technique which attempts to save time and cost by reducing duplicate work.This paper pr esents a comparative study on the performance of four reusable software components hibernate, spring, IBatis, EclipseLink. These are Object Relational Mapping bowd framework. They can be apply in developing a coffee tree employment. These components use the java classes to relational tables in database with the help of SQL queries. Several SQL queries are executed on these components at the backend. In order to measure the execution time, CPU utilization of every executed SQL doubt, performance benchmarks are apply. We make a analogy between these reusable components using java VisualVM tool.II. RELATED WORKTo evaluate software reusability two approaches are used qualitative and empirical 11. The qualitative methods require significantly manual efforts and depend on a subjective value. Empirical methods depend on the objective data that can be collected with the help of some pretense tool.The performance metrics of component based systems, which are the challenging proper ties to predict and measure 4. They have performed three case studies on performance analysis of real-time systems using Deep Compass framework. For performance analysis, software toolkit called CARAT is used for mannequin synthesis and simulation.The performance of prediction methods based on models that support a development process from top to bottom, where developers create a new architecture and software components 3. These methods rarely integrating existing components in the software architecture models. charm there are legion(predicate) tools for performance measurement and profiling existing software components cannot be directly tested the performance when integrated into a model.A systematic approach proposed to software reuse are built to reuse and build by recycling 5. The problems in software engineering is not a lack of reuse, hardly a lack of systematic reuse. They know how to do, but they do it informally. The concept of reuse is used to reduce the cost, effort and execution time for software development. Re also raises the productivity, maintainability and reliability of the software, which has been evaluated before in other software. Reusable software components framework is proposed. Empirical observations was made by applying the framework to the preserve system C. The result clearly shows that the proposed framework to reduce the work of software developers, who needed a bit of effort to build reuse or build by recycling.The most complex components in the software development process is the database. The performance analysis of persistence framework explained in 15. The complexity increases when the perspective differs of the interacting components. The performance comparison of two persistence frameworks namely hole up and IBatis using a banking database. Both the framework maps umberBeans to SQL statements using a XML descriptor. The online banking application case study is used. Performance is measured using a java program whic h uses basic SQL operations on the banking database and the Round Trip Time is calculated and used to measure the way these mapping tools perform under variant situations. The performance of both of these tools in single and multi-substance abuser environments are evaluated. Hibernate performs better because it supports lazy fetching and mapping associations.To develop the performance of software applications is a major problem in software applications. The solution is to avoid the assessment of late performance 10. A prediction approach to provide the best solution to solve the problem. Three types of approaches to performance prediction used to know the measurement approach, the approach based on a model and a mixed approach. The main goal is to improve the performance of the software. Steffen and Ralf reported five factors that impact the performance of software component is the implementation components, resource conflicts, use patterns, platform deployment and required service s. Quantitative approaches related to the objectives of the performance engineering of software to evaluate the software, which by focusing on quality factors of performance such as response time and throughput. In the end result, the hybrid approach is the best approach.III. RESEARCH METHODOLOGYA. Data CollectionTo meditate the performance of reusable software components, we have down oppressed some jar files relevant to these reusable software components. A Java application can be started with a set of jar files. For implementing various libraries and plug-ins in java applications these jar files are used. The various jar files being used are mysql-connector-java, hibernate-core, hibernate-validator, jboss-logging-3.1.3.ga-sources, javassist, org.springframework, org.springframework.Expression, ibatis-dao, ibatis.jar, javassist, IBatis-common and eclipselink.B. Performance MetricsVisualVM is a tool that provides interface for consider detailed information about Java based applic ations 7. VisualVM organizes data about the JVM software and presents the information that enables the developer to quickly view data on multiple Java applications. Java VisualVM can be used by Java application developers to monitor and improve java applications performance.There are four metrics used to analyze the performance of reusable software components.a). CPU Utilization Using this metric, you can see how much of CPU is being consumed by database activities. CPU utilization is used to track CPU performance when running a specific piece of code. It is measured in %.b). Total Classes loaded VisualVM counts the total number of classes loaded for any java application.c). Heap used It shows how much of the heap is currently used by a java application. It is measured in MB.d). Threads Athreadis a programs path of execution. Two types of thread are used live thread and daemon thread.i. Live Thread also called used thread. User thread are threads created by programmer.ii. Daemon Th reads are called service provider threads and run parallel to your code. When Java Virtual Machine finds no user threads all daemon thread terminate immediately.Some reusable Software Components are used to analyze the performance and make a comparison between them.A. HibernateIn 2001, Hibernate was developed by Gavin King. Hibernate is a tool for object-relational mapping. Object-relational mapping is a programming method for mapping Java objects to relational model where Java classes are mapped to tables 6 database. This is an dedicate source persistent framework. There is a persistence framework powerful high performance and dubiousness service for Java application. Hibernate fills the gap and establish a connection between a Java application and a database. Hibernate uses the OO approach based on Java and binds known as POJO (plain old java objects) into a single object and table cards in a database java classes 14.B. resileSpring is a free and open source framework that offe rs many features for developers. It was jointly developed by Rod Johnson and Juergen Hoeller in June 2003 is also a base ORM framework. Spring Framework aims to make application development enterprise Java easier to use and promote good programming by allowing a POJO-based programming model. serious features are the Inversion of Control, AOP and Spring MVC 12. Spring Framework allows us to manage the relationships between different parts of the project to loose coupling between modules.C. IBatisThis is an open source Java-based framework for ORM mapping data. In 2001, IBatis developed by Clinton Begin. IBATIS is a persistence framework that allows the mapping between SQL databases and Java objects. Mappings are separated from the application logic by wrapping SQL statements in XML configuration files. IBATIS is a lightweight frame. IBatis mapping parameters and results between class properties and the columns of the database table 9.D. EclipseLinkThe EclipseLink provides object rel ational persistence solution with additional features for developers. EclipseLink is also a focused framework for ORM progressed and provides support for relational databases. EclipseLink is a source object persistence and transformation of the open object framework. It provides execution capabilities that reduce development efforts and maintenance of an application. The software provides an extensible framework that allows developers to interact with many data services 13.IV. RESULTSA. Simulation EnvironmentPerformance of Hibernate, Spring, EclipseLink and IBatis is measured using a java simulation tool. These four reusable software components perform basic SQL operations on the medicine database and the execution time is calculated and used to measure the way these mapping tools perform under various situations. The aim is to get the time from generation of SQL to querying music database and then getting back the data. The conditions were the equal for all these components. The e xecution time of application is computed by applying select, insert database operations on these four reusable software components. For this purpose, a set of SQL queries is executed against music database. The performance of Hibernate, Spring, IBatis and EclipseLink is monitored under multi user environment because java supports multithreading environment.The tests were conducted in the following environmentOperating system Microsoft Windows 7,Processor Intel Core 2 Duo Processor, retrospection 2GB.To monitor a java application, the parameters that we have used are CPU Utilization, Classes loaded, No. of Threads executed and Heap used by reusable software component. The experimental results of these software components are represented using graphical charts.In this we have considered select and insert sql queries as two benchmarks. For the first Select benchmark we have used these SQL queries areTABLE 1. For Select QueryThese SQL select queries are executed at the backend in the d atabase. When we run these queries it shows how much CPU is utilized, how many classes are loaded, how much heap is used and how much time it takes to execute the java application. According to the average graphs, it is clear that IBatis perform better for select query because its development time is less(prenominal) as compared to other components. IBatis is a data mapper i.e. it maps results sets to the object in java application while other components map the columns of database tables with the java classes. IBatis makes use of SQL which is database dependent. According to the graphs, IBatis has less average CPU utilization, less execution time and consumes less heap because stored procedures are used. A stored procedures is a radical of SQL statements that created and stored on database. The stored procedures improved the heap usage and improve the performance of application. IBatis loaded less no. of classes because of lazy loading and another reason is multiple threads are exe cuted simultaneously. The insignificant code is reduced to access a database. The results of select query benchmarks are shown in fig1, 2, 3, 4 and 5.Fig 1. Execution timeFig 2 Average Heap UsedFig 3 Total no. Classes loadedFig 4 No. of Threads put to deathFig 5 CPU usageThe insertion operation is regarded as the second benchmark. The insert operation is used to insert one or to a greater extent rows in a database table. The first command of language data manipulation performed immediately after the creation of this table is the insertion expression. For the second Insert benchmark we have used these SQL queriesTABLE 2. For Insert QueryAccording to the average graphs, the Charts shown that IBatis performs better for insert benchmark. The average execution time is large, maximum heap is used because multiple records are inserted in to database tables. The only operation in which spring consumes more time is for the insert operation. The number of threads executed to run a java appl ication in IBatis is less than hibernate because we dont have to create the separate session for threads to insert objects into the database. The sessions in IBatis arouse the performance by reducing the number of times the application needs to access the data. In this case, larger number of classes are loaded in EclipseLink than IBatis but lesser than hibernate. EclipseLink consumes more CPU with respect to the other components. For every insert operations so much effort was necessary on querying, IBatis handles this query in a better way. The results of insert query benchmarks are shown in fig 6, 7, 8, 9 and 10.Fig 6 Execution timeFig 7 CPU utilizationFig 8 Heap Used.Fig 9 No. of Threads Executed.Fig 10. Number of classes loadedV. CONCLUSIONThis paper presents the comparative analysis of four reusable software components namely hibernate, spring, IBatis and EclipseLink. Reusability allows us to use existing software system rather than building them from scratch. Three performance benchmarks namely SELECT, insert and JOIN queries are used in order to measure the performance of reusable software components. These benchmarks were applied on these four reusable software components to analyze their performance and to make a comparison among them. The performance was analyzed using these performance metrics such as CPU utilization, heap Used, number of threads executed, execution time and number of classes loaded with the help of VisualVM. According to our results in SELECT and INSERT queries, IBatis showed outstanding results as compared to other reusable components because it uses less average CPU utilization because of multithreading. IBatis consumes less heap because caching in IBatis improves the performance by caching all the results in the mapping statement and reducing the unnecessary trips to the database. IBatis loaded less number of classes because IBatis is a light weight component.REFERENCES1. McIlroy, Doug, Mass Produced Software Components Softwar e Engineering Concepts and Techniques Proceedings of the NATO Conferences, J.M. Buxton, P. Naur, and B. Randell, eds., Petrocelli/Charter, 1969.2. Johannes Sametinger, Software Engineering with Reusable Components, ACM Computing Surveys, ISBN 3-540-62695-6, 1997.3. Simonetta Balsamo, Antinisca Di Marco, Paola Inverardi, and Marta Simeoni. Model-Based Performance soothsaying in Software Development A Survey, Software Engineering, IEEE Transactions on Volume 30, Issue 5 ISSN 0098-5589,pp-223-228, 20044. V. Grassi, R. Mirandola, and A. Sabetta, A Model Transformation approaching for the Early Performance and Reliability Analysis of Component-Based Systems, Proc. In CBSE 6th joint meeting of the European software engineering conference and the ACM SIGSOFT, ISBN 978-1-4503-2237-9, 2006.5. Anas Bassam AL-Badareen, Mohd Hasan Selamat and Sherzod Turaev, Reusable Software Components Framework, International conference on Advances in Communications, Computers, Systems and Devices, ISBN 978 -960-474-250-9, 2008.6. Jiya Jiang , Yu Liu, The Construction of E-Business Portal Based on Struts, Spring and Hibernate, IEEE International Conference on uphill Technologies, 2009.7. VisualVM tool accessed from http//publib.boulder.ibm.com/html/as400/v4r5/ic2924/index.htm?info/rzaihh.htm, 2009.8. Dantas, F., Garcia, A. Software Reuse versus Stability Evaluating Advanced Programming Techniques, Proc. SBES10, Brazil, 2010.9. Zhiyu Zhou and Zhiang Chen, Performance Evaluation of Transparent Persistence Layer in Java Applications, IEEE proceedings International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery ISBN 978-1-4244-8434-8, 2010.10. Adil Ali Abdelaziz, Wan M.N. Wan Kadir and Addin Osman, Comparative Analysis of Software Performance prognostication Approaches in Context of Component-based System, International Journal of Computer Applications (0975 8887) Volume 23 No.3, June 2011.11 Anupama Kaur, Himanshu Monga, Mnupreet Kaur, Performance Evaluation o f Reusable Software Components, International Journal of emergent Technology and Advanced Engineering ISSN 2250-2459, Volume 2, Issue 4, April 2012.12. Ankur Bawiskar, Vinayak Kankate, Integration of Struts, Spring and Hibernate for an University Management Sys, International Journal of Emerging Tech and Advanced Engineering, 2012.13 EclipseLink accessed from http//www.eclipse.org/eclipselinkjpa_extensions.pdf, 2012.14 Hibernate accessed from http//www.tutorialspoint.com/hibernate/hibernateoverview.htm, 2012.15. S. M. Thampi and Ashwin Kumar, Performance Comparison of Persistence Frameworks, Published in Cornell University Library, Arxiv, ISSN-1653-5715, 2013.

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.