Web Performance And Enhancement Techniques Computer Science Essay

Published:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Now a todays internet plays a very important role in our daily activities in office, home where ever we are. In fact, world has now become a global village. Considered the internet as a world without limitations, everyone can share and communicate their knowledge, message, and business and even buy or sell anything while sitting at home. Today many companies and organizations running their business on web sites like online shopping, web banking etc. Number of web sites are increasing on daily basis. On the other hand internet users expect the best performance from web sites like fast response time, high availability, reliability and accuracy. It's a challenge for the web developers and web site developing companies.

----------------

1Kashif Yasin: Computer Science and Engineering Department, University of Engineering & Technology Lahore. E-mail: kst_kashif@hotmail.com

2Waqas Butt: Computer Science and Engineering Department, University of Engineering & Technology Lahore. E-mail: wbwaqas@hotmail.com

To meet the web user's expectations we need to test the web sites with different performance testing types using different automated tools. It ensures web response to user's requests under different user load. Also ensure the future security gaps of system, reliability and efficiency in the web site implementation. The objective of performance testing by simulating the true load is to identify performance issues, bottlenecks and to enhance the web performance. Performance testing need some indicators on the basis of these indicators the automated tools test the web application and produce the results. Then on the basis of these results we take decisions for the enhancement of web applications. In this paper we have a web performance section where we have discussed the web performance in detail.

To enhance the web performance we need to follow the best web development techniques to meet the web user's requirements and expectations. In development techniques we have different areas which require improvement. In this paper,

We have discussed the different web development techniques to enhance the web performance. These techniques are applicable at different levels of any web application. The levels are web development/implementation (coding), database development (coding), web server (IIS/Apache) settings web server operating system, web server hardware specifications and internet network.

Related Work

After studying the different research papers, we have found a lot of web performance related issues and their remedies. This research paper is the review of the already done research on web performance and enhancement techniques.

On the web performance a lot work has already been done like web performance testing, testing types, indicators of performance measurement, tools and technologies available for performance testing [1].

For the enhancement of web performance different techniques and methodologies have already been suggested and implemented in different web. We have also studied the most successful web site research papers like Olympic Games web site. This web site has been registered in guineas book of world records due its best performances [8].

We have reviewed the research paper, techniques discussed in that paper. After reviewing that paper we have found a lot of important key areas for the web performance and web enhancement techniques.

Similarly, on web development and database development a lot of research has already been placed. Like latest techniques to minimize the web page round trip or response time/wait time. The techniques includes java scripting, Ajax, Jquery, Json, threading etc. On database, query optimization, usage of stored procedures and indexing on database tables for fast retrieval or searching [1] [4] [5] [6].

On the other hand, web and database servers' are also the important key factors in the web performance and web enhancement. Research on the servers has also been done. We have reviewed a lot of papers on the server's enhancement like server hardware up gradation and load balancing clustering to cater the web performance related challenges [1].

According to the research papers if we develop web sites on the latest web performance bench marks then we can obtain the users demands i.e.; web sites minimum response time and high availability.

Web performance Testing Types

The web performance testing types section describes the testing types. Web Performance testing generally can be divided into three types. The types are:

Stress Testing

Load Testing

Strength Testing

Stress testing:

It is done by gradually increasing the load on the web and database servers, test the changes in web performance, and finally determine the web performance under any load conditions in a failure state, and thus to get the system can provide the greatest level of service tests.

Stress tests examine the current web and database server's hardware and web application software environment the system can withstand the maximum load and to help identify system issues and bottlenecks [1].

Load testing:

It is done by gradually increasing the load, testing the changes in web performance, and finally determines the maximum load test the system can withstand, in meeting the web performance indicators. Load testing is usually to describe a specific type of stress testing - to increase the number of users to stress test the application [1].

Load test begins actually from the relatively small and gradually increasing the number of simulated users until the application response time overtime that is the load test. Load testing and stress testing may be in conjunction [1].

Strength testing:

It is a longer interval load test or stress test. Unlike other tests is that the weight-bearing or tension testing interval of only tens of seconds to maintain the strength test should be delayed a few hours or even days. Strength testing often founds some inexplicable errors. For example, memory leaks, that is, memories, rollback segments exist in the database transaction were not submitted [1].

web Performance indicators for testing:

The performance measures on the basis of some metrics or indicators. The most important performance metrics are

Response Time

System Throughput

System Resource Utilization

Number of Concurrent Users

HTTP Transactions / sec

Number of Sessions / sec

Network Traffic Statistics

Resource Request Queue Length etc.

But in this paper we have discussed the first three indicators.

Response time

Response time is also known as the waiting time from the user point of view. It is from the web user sends a request to web server the server's response to the delay experienced by web user, usually measured in time units. In general, it is as the low-level user load increases slowly increasing, but once the system of one or a few resources have been exhausted, waiting time will be rapidly increased. Figure 1 show the response time with the relationship between the user loads [1].

E:\Study\UET\Semester 4\Web Engineering\Final Review Paper\Material\Final Review Paper\Images\Response Time.png Figure 1 - Response Time and User Load

Throughput

Throughput refers to the number of user requests that system handled within a particular unit of time .Commonly used unit is the number of requests / second, or the number of pages / sec. Figure 2 shows the throughput with the user load between the typical characteristic curves [1].

E:\Study\UET\Semester 4\Web Engineering\Final Review Paper\Material\Final Review Paper\Images\Throughput.png

Figure 2 - Throughput and User Load

Resource Utilization

Utilization refers to the systematic usage of different resources, such as the server's CPU, memory, network bandwidth and so on. It is often used to account for the largest amount of resources, measured as a percentage. Figure 3 shows the resource utilization with the relationship between the characteristics of the user load [1].

E:\Study\UET\Semester 4\Web Engineering\Final Review Paper\Material\Final Review Paper\Images\Utilization.png

Figure 3 - Utilization and User Load

Web Performance Testing Methodologies

For different application types and focus, there are mainly three kinds of Web Performance Testing Methods at present:

Virtual user

WUS method

Object-driven

Virtual users

In this methodology we do the following steps

Simulate the behavior of real users

Application to test is called application under test (AUT)

Apply load on AUT

Then measure the performance of AUT index value like the transaction response time, server throughput and resource utilization. [1].

WUS method

In this methodology, we use the concept based on the website usage signature (WUS). We do the following steps:

Design the test scenarios,

Emphasize on the establishment of true load.

The WUS is based on the parameters

Parameters include

Number of pages viewed per hour / clicks,

average visit duration, each visits average number of pages viewed / clicks

Request distribution.

These parameter values can be obtained from the log file.

Frequently accessed path is as constituent units of the load [1].

Object-driven method

In this methodology, we use the idea that is

AUT can be broken down into testable objects.

Objects can be links, command buttons, list boxes, messages, images, and downloadable files, audio.

Object-definition depends on the application simplicity and complexity.

A Web page can use objects to recursion, performance, thus becomes the process of testing each object or a collection of some objects, these objects act as the load of the constituent units.

The method by AUT decomposed into objects, so that test structure, a high degree of reusability is good, the results clearly, the page component type for rich, complex business applications; but too much emphasis on the performance of local components is difficult to reflect user's actual experience to the performance [1].

web performance Testing Tools

The available tools for web performance measurement in the market are discussed in this section.

Load Runner

Apache JMeter

The Grinder

Web Load Professional

Neo Load

To distribute load generation on multiple servers is yet another important feature of load testing tools. Most load testing tools work on the concept which is illustrated in Figure 4 below, and it is based on two architectural components: controller and agent [2].

E:\Study\UET\Semester 4\Web Engineering\Final Review Paper\Material\Final Review Paper\Images\Load_Testing_Concept.png

Figure 4 - Load Testing Tools Typical Architecture

Load Runner

Load Runner automated performance testing tool into our model, which has [3]

Complete functions

Friendly interfaces

Easy to operate

Runs stably

Load Runner occupies the largest market share in the performance testing market worldwide,

It supports common standards and development techniques in the field of software.

E:\Study\UET\Semester 4\Web Engineering\Final Review Paper\Material\Final Review Paper\Images\Architecture_Load_Runner.png

Figure 5 - Load Runner Architecture

Apache JMeter

JMeter is an [2]

Open source Java application from the Apache Software Foundation

Designed to load test functional behavior and measure performance.

The JMeter is used to test performance both on static and dynamic resources.

JMeter is free

Extensible tool with community support.

JMeter has distributed testing feature.

The Grinder

The Grinder is another [2]

Free open source

To test load, functional behavior and measure performance.

Grinder scripts are written in Python programming language.

The Grinder is a Java load-testing framework using a graphical console application.

One of the Grinder's key features is generic approach which allows load testing of anything that has a Java API.

This includes common cases such as HTTP web servers, SOAP and REST web services, and distributed components and communication protocols (such as CORBA, RMI, JMS, EJBs), as well as custom protocols.

For testing HTTP services the HTTP Plug-in is used.

Web Load Professional

WebLoad Professional is [2]

RadView's commercial software for performance testing of Internet applications.

Built-in support for AJAX technologies, JSON data types and different types of SOAP and XML Web services.

It enables the generation of unlimited load that can be distributed over both Windows and Linux machines.

Its parameterization capability can turn static user sessions into dynamic sessions.

WebLoad Professional has comprehensive reporting.

Neo Load

Neo Load is [2]

A commercial load and stress testing tool

Used to measure the performance of the web application and

Provide pragmatic solutions facilitating design and development of the optimized website.

The NeoLoad is owned, maintained and developed by a French company called Neotys.

NeoLoad provides monitoring of the user response times and infrastructure's statistics.

It is compatible with most Web servers and application servers,

Can be run on most of the operating systems.

web performance enhancement techniques

Analysis

Web server response time is too long for many reasons. So, we need to analyze some of the other areas other than performance testing tools. In analysis, we analyze the web, database development techniques and hardware servers as well. In web development we need to identify the areas where we need more improvements. Similarly, on the database development need more optimizations. Also we need to analyze the web and database servers at hardware level whether these servers need to upgrade so our web performance enhance to some extent [1].

Web Development

Web applications should be designed to minimize server side round trips, which results in reducing response time or wait time. Also use the best coding techniques for server side scripting to utilize the maximum resources of web server. Some of the major techniques are discussed below:

JavaScript

JavaScript is the client side scripting language for the web applications. It is very useful to minimize the server side round trips. For example if a web page requires input field validations like check date format or data formats etc. Then you can validate these fields at client side through JavaScript [4] [5] [6].

Ajax

Ajax is the abbreviation of Asynchronous JavaScript and XML. Ajax is not a technology or new programming language; it's the combination of different technologies. Ajax provides ability of communicating with server asynchronously. With the help of Ajax, when users click the web link, JavaScript and DHTML are used to refresh the User Interface, sending asynchronous request to the web server, performing the DML operations on the database at the same time. When the request is served and response is generated, JavaScript and CSS can be used to update the web page rather than refresh the whole web page. The most interesting fact is that the users do not even know the browser is connecting and communicating with the web server and database server. User feels as it is a local application due to web site immediate response. Below is the figure 6 which describes the Ajax working with browser and web server. It also helps in minimizing the response time [4].

E:\Study\UET\Semester 4\Web Engineering\Final Review Paper\Material\Final Review Paper\Images\Ajax_Model.png

Figure 6 - Ajax Processing Flow

Jquery

Jquery is an excellent JavaScript framework after prototype, whose purpose is WRITE LESS, DO MORE. Comparing to other JavaScript framework, Jquery is more lightweight, flexible and easy using. Jquery is excellent at browser compatibility, event handler and document. Based on the previously advantages, Jquery becomes the first choice of front-end developers. It also helps in minimizing the response time [5].

Json

JSON is a kind of data exchange format which gradually arises in the network. It is a kind of lightweight data interchange format, easy to read and write, meanwhile also easy to generate and analysis for machine. It is a small subset based on JavaScript. JSON uses text format totally independent of language, but it also uses habits which is similar to the C language family. These properties make JSON be ideal data exchange language. It also helps in minimizing the response time [6].

Threads

Use the threads on server side scripting for the maximum utilization of server resources like CPU time. On the other hand keep it mind the threads also creates the bottlenecks in the application as well [1].

Caching

Caching is also another technique to minimize the response time. Caching can be done on the client side and server side as well. When we first time cache the data on the client side then next time there is no need to fetch the data from server. Similarly we can cache the data on server side to minimize the database hits. The cache data can be used to serve the web application users with minimum wait time. Similarly we can use polling concept on server side components. Below is the figure 7 which describes the caching mechanism on server side [1] [7] [8].

E:\Study\UET\Semester 4\Web Engineering\Final Review Paper\Material\Final Review Paper\Images\WebServer_Caching.png

Figure 7 - Caching Mechanism

Database Development

Database is also important to enhance the web performance. When we request a web page which holds some data from database. Then in this scenario the web application first establishes the connection with database server, fetch the data and then display it on the web page. So, at database level we can enhance the performance which overall impact the web performance. Some database level techniques are discussed below:

Queries

Optimize the queries which fetch the data from the database. Optimize the queries which perform DML operations on the database. Query optimization also helps us in web performance enhancement [1].

Stored Procedures

Use the stored procedures instead of embedded queries in code. Stored procedures are better in response time. Also use optimized queries in the stored procedures [1].

Indexes

Create indexes on the tables in the database which are more frequently used in the web applications. Like in web reports we have filtration criteria date rage. So, create indexes on these columns to optimize the query searching. It also helps us in enhancing the web performance [1].

Web App Server

In order to enhance the web application performance, you can upgrade the web server hardware. If not enough system resources to become a bottleneck, the use of multi-server as a cluster can ease the load on a single server so that it can improve the performance of the system, thereby reducing application response time.

Upgrade Hardware

Upgrade your web server hardware like hard drive, RAM, CPU etc. to meet the performance requirements [1].

Load Balancing - Clustering

To deal with heavy traffic loads, web sites must use load balancing or in other words clustering. The web users request automatically routed to different servers in the cluster. The request is forwarded to web servers by router. The router decides which web server is free or having minimum load then request forwarded to that web server. Below is the figure 8, which describes the load balancing clustering mechanism [9].

E:\Study\UET\Semester 4\Web Engineering\Final Review Paper\Material\Final Review Paper\Images\Routing_Clustering.png

Figure 8 - Load Balancing (Clustering)

Web Database Server

Upgrade Hardware

If your database server and application server are on the same server then first deploy these both on separate machines to enhance the web performance. If you have already separate servers and still facing performance issues at database then upgrade your database server machine hardware [1].

Multilevel logs

The web applications processing always involve many levels (Operating system, Java virtual machine, Web server, Database server, application itself). Each level can produce its own log related to current stage, event and history. On each level keep track of time spent on logging. If you do not need the logging on any level then you can off that logging. On the other hand if you are using the logging for example at application level and it takes time in logging. Then in this case you have to optimize the logging process to enhance the web performance [10].

Proposed Solution/ Future work

After the complete review of all the research papers mentioned in the references section. We concluded that still we have problem, issues and bottlenecks in our web applications. And web users are still demanding more from the web developers. We need to identify other areas of enhancement like image retrieval on web, file transmission on web and multimedia objects transmission. These areas need more enhancements. Similarly, network and internet issues are still exist. We need to enhance our networks and internet to enhance the web performance. We can obtain the high availability feature of our web sites through mirroring at the database level which is not discussed in this review paper. Similarly, we can cluster our servers at region level to handle the heavy traffic on web sites in different regions of the world.

Conclusion

To meet the web application users performance demands, we need to apply these web performance testing techniques and web enhancement techniques as discussed above on our web applications. Then we can handle the web performance issues to some extent. Other areas of performance also need to enhance like file transmission, image retrieval etc. because these are also the factors which increases the response time. Due to these issues business and customers are affecting more frequently.

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.