In the ever changing world of the internet, technology is constantly advancing to produce generations of website applications better than the last. Below we take a look at what website applications are, explore their use, benefits and limitations, as well as how they are likely to develop in the near future.
What Are Website Applications?
During the very early days of the internet (World Wide Web), websites largely consisted of static pages (still and non-interactive), which severely limited the opportunity for website owners and online users to establish some form of a connection. During the early 1990s, web servers were modified, allowing for more communication and interaction to be had and so website applications (or webapp’s) were thus born. Internet users could now begin to interact with a website by means of website applications put into place by their owners. This modification has paved the way for e-commerce businesses, such as Amazon and the like, web communication, such as email (Hotmail, Gmail etc), internet banking, blogs, online share trading, forums and social communities such as Orkut or Friendster to develop.
Each and every webapp that is available to be used at present is part of a web server and has a unique name or path which identifies it within a server. Each and every webapp also has a corresponding URL (uniform resource locator). The initial portion of the URL indentifies the server, followed by the application path.
How Do Website Applications Work?
In its simplest form, a given programme is designed (i.e.: coded) by a web developer or programmer. This designed programme will then “live” on the server, which is the lifeline of a particular website. Once the programme is functional and placed on the server, an internet user can access the designed webapp’s made available for interaction via a visited website or web page. This website or web page then “sends a request” to the server to run a specific application and allow it to be interacted with by the internet user. Website application programming is the process of adding dynamic pages on a website, linked to databases and creating interesting interface features. Programming thus connects the interface to applications or databases that are deeper imbedded (“live”) within the webapp product.
Webapp’s are designed to operate using two methods of programming:
- Back – end programming: designed to perform a supporting function for “front – end” services and tasks that are not directly interactive or controllable by an internet user. A web development programmer will design an “invisible structure” of information displayed on a website or web page (i.e.: will not be visible to or be made accessible to the general internet user).
- Front – end programming: designed to be accessible and directly perform functions that interact with a general internet user. The front – end is responsible for collecting input information from the user (data) and process it in a way that a back – end designed programme is able to use.
The Web Interface
The web interface generates web pages written in HTML that internet users can view without having to install any special software onto their own computers. Web browsers, such as Internet Explorer and Netscape Navigator, are all that is needed. This user friendly tool allows the web interface to be conveniently interactive and easily accessible for internet users and at no additional cost. The web interface, thus, places very few limits on client functionality.
Upgraded and advanced technologies are constantly being introduced to the internet user in simple, hassle free ways, allowing applications specific methods such as drawing on the screen and playing audio to be made possible without inconvenience or too much red tape (restrictions or limitations). The web interface allows for general purpose technologies to be advanced and supported in a way that provides the opportunity for an interactive experience to be had without an internet user having to re-load a web page.
Webapp interface design is essentially web design, but the sole focus is on function, instead of aesthetic appeal. The design of webapp’s are done in such a way that is simple, intuitive and offer responsive user interfaces that allow internet users the opportunity to receive desired results with minimum time and effort.
The Structure Of Web Applications
Webapp’s are usually broken up into “tiers”, each performing their own specific role. The most common structure is a 3-tiered application. A 3-tiered webapp structure is broken up into:
- Presentation tier – this refers to the web browser
- Application logic tier (the controller) – this refers to a specific web content technology (programming language) such as JSP (Java Server Pages) / Java and Python engine
- Storage tier – this refers to a database which stores information
More complex applications may make use of what is known as the n-tier approach whereby the business logic (the model), which is located in the application tier, is broken down into a more fine – grained model than that of the 3-tier. A separate business logic tier can be created or an integration tier that separates the data tier from the rest, providing a more use friendly interface for access to data can be added. A 2-tier structure can also be used, but doesn’t always allow for layers to be specialised. Many webapp’s may, therefore, outgrow a 2-tier structure. Breaking an application down into tiers allows it to be distributed to a variety of servers, as well as improve its scalability.
Components Of A Web Application
Servlets are small, platform independent Java classes compiled to be loaded into and run by a web server. Servlets are managed by a container that generates dynamic content. Servlets are then able to interact with web clients (internet users) after a request is made online (HTTP: HyperText Transfer Protocol). Servlets then produce a result, sending information back to the user.
JavaServer Pages (JSP)
JSP are text files designed to generate results, usually in HTML format. JSP uses special directives, actions (offer functionality in a convenient form that is able to be manipulated by tools), scripting elements and expressions (used to access data) to be able to do this. A web developer specifies the type of content, usually HTML, desired to be sent back to an internet user or web browser. Along with HTML, web developers make use of directives, actions, EL (expression language) expressions and specially marked scripting code (Java code) to generate dynamic output.
These text files go through 2 phases:
- Translation phase – A JSP page can be translated into Java code for a servlet. Translations are done once per web page.
- Request phase – these are also done once per request made.
Filters are reusable portions of code that are able to transform the content of HTTP (HyperText Transfer Protocol) requests made by internet users, responses given and header information. In essence, filters can be used to control access to a particular website or web page. Filters do not generally create a response to requests entered on a web browser as is the case with servlets. Instead filters modify or adapt those requests for or from a resource. Filters are a java class that is used to intercept requests and responses, often before it is even picked up on by other webapp components, and change what a request looks like before it reaches an internet user as a response to a conducted search.
Custom Java Code
Web developers usually make use of general facilities of Java to create custom Java classes with the intention of being used by servlets, JSP, filters and other webapp components.
Java Code Libraries
Webspps’s can be stored in Java code libraries, which are usually packaged in a .jar file and placed into a directory. These libraries are then available for webapp components. Jar libraries usually contain code that is not specific to any webapp, but does provide a database driver or facility which can be used to generate images.
Writing Web Applications
Web application frameworks (a software framework designed to support the development of websites, webapp’s and web services) allow web development programmers to define high level descriptions of a programme through rapid application development (a type of software development methodology which involves the development and construction of prototypes). Webapp’s can also be further developed on internet or web operating systems. Web application frameworks can often reduce the number of errors in a specific programme either by simplifying codes or by allowing one team to concentrate on a single framework at a time. The writing of webapp’s must take into account the possibility that security – related problems such as hacking attempts can occur as a result errors in a programme.
Web Application Safety & Security
Two projects that have been developed in order to document how to avoid security problems in web applications are known as the Web Application Security Consortium (WASC) and OWASP (Open Web Application Security Project). These two projects consist of a group of international experts, industry practitioners and organisational representatives who unanimously agree on specific best practice security standards for the World Wide Web.
Web Application Security Scanners
WASC and OWASP make use of specialised security problem detection software such as web application security scanners for this purpose. Common security problems that web application security scanners automatically check webapp’s for include cross site scripting, directory traversal, mis-configurations and remote command execution vulnerabilities. Web application security scanners operate by crawling through a website and identifying security vulnerabilities within its pages by injecting various attack vectors.
Web Application Firewalls (WAF)
Web application firewalls refers to information security technology that is designed to protect websites from possible security breaches or hacking. WAF is able to prevent attacks that ordinary network firewalls and intrusion detection systems cannot. WAF products, also, do not require modifications of application source codes.
Web Application Security Statistics
In 2007 WASC developed a web application security statistics project intended as a collaborative industry effort to gain a better understanding about the vulnerabilities and security problems that webapp’s face. The goals of this initiative include:
Identifying the prevalence and probability of different security vulnerability classes
Comparing testing methodologies against the types of security vulnerabilities likely to be identified
Statistics that have been compiled are grouped into 2 different data sets:
- Automated testing results – contain data regarding the scanning of hosting provider websites without any customised settings.
- Security assessment results – makes use of black and white box security assessments containing manual and automated analysis results.
Some data analysis statistics that have been established through this initiative from more than 32 000 websites include:
- More than 7% of all analysed websites can be automatically compromised
- Approximately 7.72% of designed or developed webapp’s showed a high severity vulnerability level when detected during automatic scanning.
- The most prevalent security vulnerabilities showed to be Cross site scripting, information leakage, SQL injection and predictable resource location. Cross site scripting and SQL injection vulnerabilities have been noted to be a result of system design errors. Information leakage and predictable resource locations are more often than not a result of improper system administration, such as weak access control.
Web Application Advantages & Disadvantages
Benefits & Advantages
- Since the internet (making use of web browsers) can be accessed from virtually everywhere in the world, webapp’s are conveniently at the fingertips of internet users at any time of day or night. This is one reason why webapp’s are so popular and continue to grow from strength to strength.
- Webapp’s can be updated and maintained without having to distribute and install specific software on large numbers of internet users or client computers. Updates and maintenance can be done “behind the scenes” without inconveniencing the internet consumer public.
- Web browser applications in general don’t require much disk space, if any at all. They also upgrade automatically when new features can be used as well as easily integrated into other web procedures, such as those of searching and email. Web browser applications also provide cross platform compatibility for Windows, Mac and Linux operating systems.
Limitations & Disadvantages
Web browser applications rely on application files that are accessed on remote servers through the internet. When a connection is interrupted, this application becomes unusable.
Standards compliance can become an issue with any non-typical document creator whereby problems can occur with regards to file sharing.
Useful Website Applications
There are many webapp’s that are or rapidly growing in popularity around the world. Some of these applications include:
- Spypig – an email tracking service which sends notifications as soon as a web-based email (Gmail or Yahoo) or desktop email clients such as Outlook or Thunderbird is opened.
- Skydive – an online storage service from Microsoft whereby files, photos and documents are reserved free of charge.
- Iterasi – assists in saving a copy of web pages so that in the event that an original website goes down, content etc is still able to be read.
- WIX – flash designed websites can make use of this webapp for free
- PiZap – a free photograph editor that allows innovative design creations to be done with digital images
- TinyChat – useful for the creation of chatrooms
- Prezi – useful for the creation of maps of texts, images, video’s, PDF’s and drawings etc in a non-linear way
- Fliggo – useful for creating video websites such as those used in video blogs or YouTube.
- SlideRocket – an online, flashed based tool useful for the creation of slides and presentations
- Survs – useful for the ability to build, deploy and analyse online surveys
- Markkit – functions as an online highlighting pen that emphasises or draws attention to specific portions of text on a web page or website
If you\’re not sure what all these Web terms mean, have a look at our Website Development Jargon dictionary.
The Future Of Web Applications
The majority of webapp’s are based on client-server architecture. A client-server environment is one where information is shared between multiple computers. A “client” refers to the application used to make a request or enter information. The “server” refers to the application used to store and retrieve that information. Web developers across the world are looking at new ways to design webapp’s that do not require a server to store and be able to retrieve information, as is the case with a word processor (storing documents on a computer without the aid of a server to be able to function). Future webapp’s are leaning in the direction of providing the exact same functionality along with the added benefit of being able to operate across multiple platforms. In short, a webapp can then operate in the same way as can a word processor, storing information, as well as allow it to be “downloaded” onto a personal hard drive.
A prime example of the kind of direction webapp’s are heading in and just how sophisticated they have become over the last several years can be viewed in the new design of Gmail and Yahoo mail services. The programming model responsible for creating such responsive and interactive webapp’s on these email services is AJAX. Among the newest generation of webapp’s currently being used worldwide include Google Apps, Microsoft Office Lives and WebEx WebOffice..
Webapp’s are a user-friendly way of connecting the world incorporating basic supply and demand with technology in a way that doesn’t disrupt or inconvenience an internet consumer. Webapp’s can be written in a variety of different ways, as well as in many programming languages. Webapp’s provide a fantastic opportunity to enhance both the functionality and appeal of a website. With the advancements of technology in the World Wide Web, webapp’s are set to continuously improve the way websites are received, used, as well as generate revenue from.