What is web application like

What is web application like

Today's Internet age has brought about a large demand for services that can be delivered over the network. These service rely in large measure on web software applications that can be accessed concurrently by many users. Increasing competition has meant that vendors want shorter and shorter cycle time for producing new products in any sphere, but in the arena of web based service, the situation is extreme. Instead of years or even months, new applications have to be readied and deployed in weeks, before someone else does so. Such pressures are compounded by the need to have high quality software as no one will visit a buggy website for the second time.

Besides technical challenges of architecture and design, web software bring in difficulties caused by the peculiarly distributed nature of the whole endeavour. Not only is the architecture such that the different tiers could be working out of potentially different machine located widely apart, the users are likely to be geographically separated by vast distances and could some from different cultural backgrounds. And,as likely as not , the development team could be spread out in space and these greatly separated team members being responsible for the software produced.

Web software could be:


  • Ment for the Internet, with users coming from the public in a geographical region that could perhaps be the whole world.
  • Meant for a closed group such as a corporation, in which case, it would be running over an Internet.
  • Meant for an extended, but still closed groups such as corporations, its customers and suppliers, where upon it is an Extranet.


Irrespective of the type of usage intended, the users could be separated by large distances and the application needs to behave correctly for all of them.

We will also explore the difficulties associated with developing and managing a web based software project. Also examined will be some approaches and general rules the could help us to do such a project well. Please be aware that the subject is vast.


Different Characteristics

While web based software applications can very a lot in size and complexity, all of them share common characteristics, some of which are peculiar to them and are not prominent in other applications. We can look at these characteristics in terms of-


  • The way the applications are developed, tested and deployed.



  • The way the applications are used.



  • The way they are maintained.



  • The design of these applications.


We will look at the overall architecture and deployment context of web based applications and see how this leads to their peculiar management challenges. Unlike conventional applications that can be monolithic, web applications are by their very nature amenable to layering. One cannot have a monolithic web application as the client and the rest of the application have to be necessity separated. In principle, one could have a thick client application with a lot of intelligence embedded at the client end, but that would defeat the very purpose of delivering an application over the web. The idea is to have a client that is common to all users so that anybody can access the application without having to do anything special. This client is typically a browser of some sort that can render a HTML page on the user's screen.

Most of the processing is done at the other end of the application, that is, at the server. Here again there can be separation between the application and the data storage in the database. These two layers can be on separate machines that are themselves separated over the network.

The layering approach can bring about much greater flexibility and simplicity in design, maintenance and usage. In a monolithic application, everything is coupled together and in a layered application, we can change one layer without affecting the behaviour of others. For example, the business logic at the application layer can be changed without affecting the user interface or the database design. We can change the database management system from one vendor's offering to another without changing the application code or the user interface.


  • There can be many kinds of web applications such as-



  • Those with static text.



  • Content that is changed frequently.



  • Interactive websites that act on user input.



  • Portals that are merely gateways to different kinds of websites.



  • Commercial sites that allow transactions.



  • Those that allow searches.



Development

The development of such an application has to take into account the fact that there is now one more element in the whole behaviour of the application-the network. The element of communication could be ignored in conventional software, but it plays a pivotal role in web projects. Different users can be using networks that are slow or fast and everything in between. Networks are not fully reliable and communication lines do  drop or fluctuate in their speed. While network protocols will take care of the issue of data reliability, this comes at the cost of uniform speed. Designers of web applications need to take care of situations like race conditions, lots connections, timeouts and all other tiresome realities of wide area networks.

Web applications, if used over the Internet, can potentially have a very large number of users. So we need to be careful about matters like machine configurations and sizing. It is also frequently necessary to have a scalable architecture that can be upgraded as application loads rise with the growing popularity of the site. And if the site becomes really popular, this need can be very frequent indeed.

Testing

The testing of web applications has its own difficulties, caused mainly by the variable speed with which inputs reach the server and responses reach the over the world wide web. It is hard to simulate real Internet like conditions in test environments that are typically based on a local area network.

Testing tools do exist that allow inputs to be sent from machines located in different parts of the world to the application. While comparatively expensive, they do allow for realistic testing of the applications. There are other ways of testing the applications by trying to simulate delays and other conditions of the real Internet. To be able to obtain best, average and worst case response times, it is necessary to run test many times. Automated testing is important for such load, performance and stress tests. They cannot be realistically performed manually.

Although interoperability and consistency are assumed to be the good features of standardized browsers and database, in practice there are several problems that can arise because of the differing behaviour of browsers caused by-


  • Different operating system such as Linux, Windows versions or Unix systems.



  • Different version of the operating systems.



  • Differences in other components such as the java Virtual Machine.



  • Difference in behaviour of the browsers themselves because of extensions or incomplete adherence to standards.



  • Bugs in certain versions of the browsers on certain operating systems.


It is often impractical to test the application on all possible combinations of browsers, operating systems, database and their versious. In such cases the combinations for which tests have been performed are sometimes indicated and the appropriate fixes have to be made to the application as bugs are discovered and reported during filed use.

Deployment

In most conventional application rollouts, there is often a fair degree of control available to the developers because of the possibility of limiting access. Limited releases to a select test group can be made so that the most obvious and common errors and annoyances are taken care of before the regular release. But in a web application that works over the Internet, it can be difficult to do such tests. True, access can be limited by not publicising the URL at which the application is available publicly, there is a conflict between the small group which gets early access and the possibility of realistic testing. The very characteristic of a web application is having a large body of concurrent users.

We have already mentioned the need for scalability in the hardware. This is particularly important in terms of storage. We need to be careful that we do not quickly run out of space, for example, in e-mail or storage site. Besides, it might be important to have the capability to beef up the bandwidth available to the server that is hosting the application, lest it get swamped by user requests.

Usage of web application

Applications hosted on the web are meant to be used by lay users who may have little knowledge of computers. Conventional applications also have to deal with usage by non-technical people, but there we can often organise training or help desks to take care of any problems that may arise. That possibility is not available for a web based application. Because, we cannot reach and train all of our target audience, even if it were possible to identify them individually. As any developer with a little experience knows, users can exercise software in ways that were never anticipated.

Normally, if a users comes across difficulties while using the application, she could be expected to report the problem to the appropriate group in the organisation or to the vendor responsible for maintaining and deploying the software. But in the case of an application on the web, the user may simply give up and just not come back  to the site if she is not able to work the page, and that too in the first few seconds. Or , her network connection might break while trying to use the site, and that could well be her last visit. So, the tolerance level of users is exceptionally low in such applications.
Users can also be expected to want a fast response and if some operation is likely to take more then a few seconds, it will be best to keep them informed. Feedback on the state of a request is also necessary, as also instructions on what to do if they are disconnected in the middle of a long operation.

An application on the web is much more likely to be internationalised at it might have to cater to the needs of users from different parts of the world. You may be shutting out a large number of potential visitors to your application if you restrict yourself to any particular language. You should also expect to see little data entry and as much as possible of features such as auto completion, group down menus, look up tables and the like.


Maintaining Web Applications

The maintaining of web applications has its own set of challenges. Frequent changes to the presentation, or look and feel are expected. Many of the static text pages may need updating ever so often and some of the content could be changing daily or hourly. So the task of maintenance has to expand to take care of changing content and this can be a major exercise in some sites. Business rules could also be volatile, with new schemes and packages being frequently invented to entice the users. It means that the maintenance have to take care of frequently changing the business logic with little change to the other layers. People are sensitive about sites that are perceived as not trendy enough and expectations are high as regards features, good looks and easily usable interfaces. One might have to work hard at changing for more than a few months, it will not be looked upon as live or up date. so, taking care of a web application is often much more then just fixing bugs or updating the software to implement changes to business rules. There is a  fair amount of effort that has to be put in to improve usability.


Designing Web Applications

Since web applications are layered, we get a simplified design that can be easily maintained and altered. However, that also produces the corresponding needs to design the different components to be generalised enough so that they can be useful to a large audience. Applications could be running under the control of an application server for which the designers have to create and implement the requisite beans. For some purpose, beans can be purchased from other software vendors or they could have to be written from scratch for the application.

These days, some functionality in the application could be coming out of the web services, components on the web that can run with your application and that provide defined behaviour. An  application could look for an available web service that can do some needed action. Web service advertise their available functionality that needy application can tap. This distributed nature of the application greatly increases the amount of disability, but brings about problems of security and reliability.

The user interface in a web application is very important indeed and can  often be the tipping point in the success of a website. Ease of use and ergonomic considerations are important. The application has to be able to cater to users of disparate skill levels and in some countries may be required to provide access to people with disabilities.



Thanks for visiting......

No comments:

Post a Comment