Web Based Applications

Dari IgosCenter

Langsung ke: Navigasi, Cari

Tutorial on Asean Workshop on Open Source Software, 7-8 November 2007 By : Eko Mursito Budi

Web based applications is just another client – server environment. The application is installed on the server, then interestengly, users may access the web application by using web browser from any computer client on the Internet. Currently, open source software is leading in web based applications area. The most used web application server is the LAMP combo (Linux Apache MySQL PHP). Meanwhile, many very good web applications are available as open source software, such as Jomla, Drupal, WordPress, Moodle and many more. Many believe that web applications will dominate the enterprise software for years to come.

Daftar isi

Architecture

In computer term, application is software to be used by users to perform a certain task. Examples of application are including, word processor, spread sheet, or presentation software. Users may run any application on top of an operating system, such as Windows or Linux. Needless to say, applications can only run on the intended operating system (except with special tricks).

Figure 1. Architecture of Three Tier Desktop Applications

Regardless of it's purpose, most applications can be described as a three tier architecture, consisting of :

  • Database : the lowest layer that stores the data into a file or database.
  • Data processing: the engine that process the data to produce the result.
  • User Interface : part of the software that shows the data and handles the interaction with the user.

This architecture arguably gives versatility to the applications. Each layer is loosely coupled, and could be implemented independently from the others. For example, an application may have the same database layer and data processing, while having several different user interface. Therefore, ones can build an applications for Linux and then build another version for Windows with minimum effort.

Figure 2. The architecture of Web based applications

In web based applications, the user interface layer is separated to be run on the client (Figure 2). On the other side, the data processing and database layer are ready in the server. It is possible that many users access the same server simultaneously.

Figure 3. Web Client Sequence

Web applications interact with the users in a page per page fashion. Users may begin accessing a page either by:

  • Typing the page's URL (Universal Resource Locator) in the browser's address bar
  • Clicking a link in the previous page, or a submit button.

The web browser then sends a HTTP request to the server and wait for the response. When the response arrives without error, it must be a HTML (Hypertext Markup Language) document. The browser renders this document thus the users can see the pretty page on the screen. HTML may also containt client side script (e.g JavaScript or VBScript). These script can be processed by the script engine / interpreter in the web browser, allowing local interaction with the users and dynamic HTML page. Recent HTML standard goes further by allowing asynchronous interaction with the server (AJAX technology).

Figure 4. Web Server with Static HTML pages

On the other end, the server main responsibility is receiving the URL requests from the clients then sending back the appropriate HTML pages. The easiest way is by providing static HTML pages, where web masters simply write HTML pages, e.g news001.html, and put it in the document root of the web server. Users may ask that page by typing it's name in the URL, e.g: http://www.server.net/news001.html. This simplicity, however, is not convenient anymore for huge web sites with thousands of pages. The web masters would be overwhelmed, editing all the pages by hand.

Figure 5. Web Server with dynamic server side scripting

Thus came the server side scripting (SSS) technology. Instead of writing static HTML pages, web developers write dynamic script using any server side scripting (SSS) language. Currently, the most popular SSS are PHP, ASP (Active Server Page) and JSP (Java Server Page). Using this technology, when the client requests come, web server finds the appropriate script, then processes it with the script engine. The script runs like a mini program, tipically it gets some data from the database server, then writes the HTML page dinamically. The result is collected by the web server, which sends it back to the client.

Obviously, web developers may write many and complex server side scripts. A collection of server side scripts that can handle a certain purpose is called a web application. As simple as that.

Web Client

So, what do we need for a web application client ? The good news is, there are many choices out there, many of them are open source software. In fact, people may use:

  • Any computers, as long as it can be connected to the Internet. So a PC compatible, a Mac, or a Sun Sparc will be fine.
  • Any operating systems. The most important thing to consider, it should support a graphical user interface, because people want to see some images or even movies. Of course, there are text only web browsers like Lynx or Link, but only geeks would find it is usable. Last but not the least, do not forget about security. Browsing to the Internet is like inviting a bunch of strangers into your computer. Who can assure that all of them are good, not a virus or a trojan ? If any malicious stranger comes, a secure operating system should refuse it in the first place, or at least, do not let it do much damage.
  • Any web browser that supports World Wide Web Consortium (W3C) standard. There are many of them to pick, including Internet Explorer, Mozilla, Firefox, SeaMonkey, Opera, Safari, Konqueror, etc.
  • To enhance the browser, add some plugins. The essential plugins are for example: Java Run-time Environment (JRE), Flash Player, PDF reader, and CHM reader.

Figure 6. Web Browser Market Share

(Source: http://marketshare.hitslink.com/report.aspx?qprid=0, 3 Nov 2007)


According to the recent survey, the most popular web browser is Internet Explorer, thanks to the generosity of Microsoft that put it built-in on the Windows operating system. Another pooling however, nominates Firefox as the best web browser. Firefox is one of the Gecko familly (other siblings are Mozilla, SeaMonkey, and IceWeasel). It is an open source software that runs on various operating systems including Linux, Windows, FreeBSD as well as MacOS.

Figure 7. Vote: Which browser is better ?

(source: http://marketshare.hitslink.com/ , 03 November 2007 )</center>

Now there is a bad news. Web browsers are not equally cappable on rendering the HTML pages, nor executing the client side scripting. Many problems have been found that certain HTML pages that look good on IE, horribly meshed up on Opera or Firefox, and vice versa. Fortunatelly, these problems are decreasing in the newer version of major web browsers.

Web Server

Web server is a system that receives the requests from web clients then delivers the requested web pages, or for the purpose of this discussion, the basic system that runs the web applications. Generally, a web server consists of the following components:

  • A computer, with adequate specification, and connected to the Internet.
  • A server optimized operating system.
  • A web server program
  • A database server
  • A web platform

According to the NetCraft Web server survey, the most popular web server system for more than 10 years straight is Apache. This server is commonly installed as the LAMP combo, which comprises of :

  • Linux operating system
  • Apache web server
  • MySQL database server
  • PHP web platform

Figure 8. Web Server Market Share Trend

(Source: http://news.netcraft.com/archives/web_server_survey.html)</center>

The LAMP combo is well known as a stable, secure, fast , and above all, open source software. However, LAMP is declining. The emerging combo is .NET system, powered by:

  • Windows operating system
  • Internet Information Server as the web server
  • MS SQL as the database server
  • ASP .NET as the web platform / framework.

Figure 9. Web Server Combo, LAMP vs .NET

Notice however, that these combo is not an absolute team up. Windowzes can mix up a WAMP combo (Windows Apache MySQL PHP), or even a WIMP one (Windows IIS MS-SQL PHP). Unfortunatelly for Linuxers, IIS and MS SQL do not run on Linux, so the reverse is not possible.

Web Applications

After setting up a web server platform, now it's the time to install web applications. We may build or purchase ones of course, but lucky for us, there are many open source web applications out there. The better news is, some of them are a production grade product. You can let them to run your serious business !

There are many kind of web applications. You might have known several of it, for example :

  • Content management System (CMS): web applications that allow web master or authorized member to create contents (news, article, blog, etc.). The application stores the content in the database, then present it to the guests with nicelly formatted HTML pages, along with other information and navigation.
  • WIKI: web applications that allows any member to create, edit, review the contents, making a collaborative online book.
  • Learning Management System (LMS): web applications for teachers and students, allowing online class activities.
  • Forum: web applications that facilitate the members for asking and answering between them in categorized rooms.

Browsing through www.sourceforge.net, you may find hundreds of web applications software. Tabel 1 lists several popular web applications for each category.

Table 1. Popular open source web applications

Category Popular open source web applications
CMS Jomla, Drupal, Mambo, WordPress, PHP-Nuke, DotNetNuke
LMS Moodle, Atutor, Sakai Project
WIKI MediaWiki, TWiki
Forum PHPBB, SMF
GroupWare Open GroupWare


CONCLUSION

Web applications allow a client-server architecture where the main software is installed on a server, then many users may use it simultaneously by using any computer client that support HTML browsing. Open source software has been successfully providing the platform to deliver high class web applications, known as the LAMP combo. Meanhile, many open source web applications are available, ready to be used. For special purpose applications, however, customization is still needed.


DOWNLOAD


Kontributor: Kocil

(c) Igos Center Bandung, 2009