This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
Web application development is the process and practice of developing web applications. Web applications are business strategies and policies implemented on the Web through the use of User, Business and Data services. These tools are where the future lies.
Web based applications have evolved significantly over recent years and with improvements in security and technology there are plenty of scenarios where traditional software based applications and systems could be improved by migrating them to a web based application.
Below are some of the core benefits of web based applications.
Cross platform compatibility.
Most web based applications are far more compatible across platforms than traditional installed software. Typically the minimum requirement would be a web browser of which there are many. (Internet Explorer, Firefox, Netscape to name but a few). These web browsers are available for a multitude of operating systems and so whether you use Windows, Linux or Mac OS you can still run the web application.
Web based systems need only be installed on the server placing minimal requirements on the end user workstation. This makes maintaining and updating the system much simpler as usually it can all be done on the server. Any client updates can be deployed via the web server with relative ease.
Due to the manageability and cross platform support deploying web applications to the end user is far easier. They are also ideal where bandwidth is limited and the system and data is remote to the user. At their most deployable you simply need to send the user a website address to log in to and provide them with internet access.
This has huge implications allowing you to widen access to your systems, streamline processes and improve relationships by providing more of your customers, suppliers and third parties with access to your systems.
Secure live data
Typically in larger more complex systems data is stored and moved around separate systems and data sources. In web based systems these systems and processes can often be consolidated reducing the need to move data around.
Web based applications also provide an added layer of security by removing the need for the user to have access to the data and back end servers.
Web based applications can dramatically lower costs due to reduced support and maintenance, lower requirements on the end user system and simplified architecture.
Reduce business costs - less time spent talking to customers over the phone; eliminate printed materials; allow users to update their own details.
By further streamlining your business operations as a result of your web based application additional savings can often be found.
Zero install - all PCs have a browser
Centralised data is secure and easy to backup.
Quick and easy updates.
Reach anybody, anywhere in the world.
Available 24 hours a day, 7 days a week.
Low spec PCs or smart phones can be used.
Online training can be completed at user's own time and pace.
Direct access to latest information - for Employees where it are located.
Web-based applications are the trickiest to manage and maintain. Users of Web-based applications change quite dynamically. Users can be all over the world, leading to an implicit assumption that the application must be highly available. A highly available application must also be highly reliable and scalable.
Every good Web-based application benefits from several features. In this article, I discuss some aspects of the key features that you must address in a Web application:
Key features for a Web application
Every enterprise application must have above-mentioned abilities, as well as reliability, upgradability, profitability, supportability, affordability, and marketability. This article focuses on the first four in particular.
Scalability of an application has two independent aspects -- scale up and scale out. Scaling up involves upgrading the hardware or optimizing the software to ensure that a single server machine set can support more users. For example, if a machine supported 100 users before a scale up, then, after a scale up exercise, it might increase to 125 users.
Scale out is when more servers that perform the same functions can be added, without disturbing the software, to increase the number of users supported by the application. The users might increase from 100 to 175 after adding another set of server machines. The number of users would not double because of the overhead of communication between the servers sharing the load. This also necessitates that the software be able to seamlessly share the load of a single server between more than one such servers.
Availability is generally used synonymously with high availability. A highly available application is the one that's up and running most of the time in a year, hence high availability is measured in terms of downtime throughout the year. This downtime also includes planned downtime of the application for maintenance and upgrading.
An application is considered maintainable if it can cater to the needs of the users over its lifetime. If an application can increase the number of users as needed, upgrade the features that users need, and add new features to the application as needed, then the application is maintainable.
Downtime of an application due to bugs in the software is called the unreliability factor. It is very important for an application to have a high reliability factor to ensure that it is also highly available. Availability is reduced with any kind of downtime, including downtime for software bugs.
Using two languages in each case to critically compare the different types of server-side and client-side scripting language
A scripting language or script language is a programming language that supports the writing of scripts, programs written for a software environment that automate the execution of tasks which could alternatively be executed one-by-one by a human operator. http://en.wikipedia.org/wiki/Scripting_language
A client-side script is a program that may accompany an HTML document or be embedded directly in it. The program executes on the client's machine when the document loads, or at some other time such as when a link is activated. HTML's support for scripts is independent of the scripting language.
Scripts offer authors a means to extend HTML documents in highly active and interactive ways. For example:
Scripts may be evaluated as a document loads to modify the contents of the document dynamically.
Scripts may accompany a form to process input as it is entered. Designers may dynamically fill out parts of a form based on the values of other fields. They may also ensure that input data conforms to predetermined ranges of values, that fields are mutually consistent, etc.
Scripts may be triggered by events that affect the document, such as loading, unloading, element focus, mouse movement, etc.
Scripts may be linked to form controls (e.g., buttons) to produce graphical user interface elements.
Server side scripting languages in a web hosting account
Server side scripting languages makes it possible to create advanced web sites. This page contains descriptions of the most common scripting languages available in web hosting accounts.
For making advanced dynamic web sites, you need some kind of server side scripting. Server side scripts are programs that are executed on the server, and can be used in many ways. Template based web sites and shopping carts are just two examples. The languages used for these tasks are normal programming languages with special libraries/packages for server side scripting.
Not all web hosting accounts support all common scripting languages, so this is an important factor in your search for the perfect web host. Here is a short presentation of the most common programming languages used for server side scripting.
ASP, or Active Server Pages, is a technology developed by Microsoft for making advanced web pages. The most common language for programming ASP is VBScript. It is available in most web hosting accounts on Microsoft servers. There is also a version for Unix servers called Chillisoft ASP, but it is not as stable as real ASP. There are plenty of online ASP resources too.
ASP.net is the next generation ASP technology which allows you to use any .net-enabled language to program your site. The 2 most common languages for .net web programming is VB.net and C#. Both are good choices for both desktop and web applications. VB.net is perhaps easier to learn, and C# is more used for enterprise applications.
PHP, or PHP Hypertext Preprocessor is an open source language and has gained enormous popularity the last years. It is easy to learn and there are many readymade scripts available. Almost every cheap web hosting package includes PHP. It is easy to learn for a programming language with many books and web sites dedicated to it.
PHP & MySQL In Easy Steps by Mike McGrath (15 Aug 2012)
The choice for server side scripting on Unix/Linux platforms is PHP. It is easy to learn and fast to program in. Java (JSP/Servlets) is the preferred choice for bigger projects/enterprises. Those who are planning to become expert Windows programmers can't go wrong with ASP.net, with language choices for both beginners and more experienced programmers. ColdFusion, Perl and Python are also good programming languages with their unique strengths.
As a beginner, put focus on learning programming. The languages are just tools, and most programming techniques can be used with most programming languages. With that said, pick one language and stick to it in the beginning. Using different languages will just be confusing for beginners. For experienced programmers, new scripting languages are easy to learn.
PHP vs ASP.net Comparison
Scalability and Ease of Maintenance
Scalability and ease of maintenance have nothing to do with whether you select PHP or ASP.net platform. Web Application scalability and ease of maintenance primarily depend on Programmers' experience
Using the best programming practices
Using a solid programming framework
Following programming guidelines and standards
Performance and Speed
There has been much debate about this subject and most of the debates have been biased and have been tailored to promote one of the programming languages instead of informing the audience.
There are so many other factors to consider when it comes to measuring web application speed, so the speed of any programming language should not have any noticeable effect on the speed and performance of most of the websites today.
When it comes to the main and common database servers, MySQL (now owned by Oracle), PostgreSQL, MSSQL and Oracle are all fighting for speed and performance. We keep seeing new features and better performance by all database servers in each version upgrade so I will say that the above database servers will all have a great performance if the database programmers use optimized and practical SQL queries and if needed, use the advanced features such as caching.
MySQL is used by Google, Facebook, YouTube, Yahoo and recently on FIFA World Cup which received a huge audience around the World. So I would not question the capability of the MySQL database server.
Additional items that can have an effect on performance but have nothing to do with which programming language is selected are:
Ability and knowledge of programmer(s) to optimize the code
Ability and knowledge of programmer(s) to write proper and optimized SQL queries.
Functionality required (some functions may take longer to execute in the ASP.net platform and less time in PHP platform and vice versa.
PHP, MySQL server, PostgreSQL server, Apache server, and Linux OS are all free and upgrades are also free. In addition, there is no additional licensing cost for having another hot standby server as a backup, or needing to run multiple servers for load balancing or server clustering.
ASP.net is free if you purchase Windows OS. There is a substantial licensing cost for a Microsoft Windows Server, Microsoft SQL Server and future upgrades
The licensing costs for Microsoft can substantially increase if the site becomes popular and there is a need to run the site on multiple servers or requires server features such as load balancing, server clustering or hot standby.
Support and Resources
Since LAMP is open source, there is a vast amount of dedicated and friendly developers around the world who continuously make improvements and updates, and provide support for the platform. Additionally, there are more support resources and developers available for PHP and LAMP Platforms.
ASP.net relies on an available number of developers at Microsoft for making improvements and updates. There are less support contributors available to solve ASP.net challenges.
Time to Deploy
It takes a larger amount (more lines) of code to accomplish complex features and functionality with ASP.net compared to PHP, adding more time to the development process.
According to Programming PHP [Paperback]Kevin Tatroe (Author), Peter MacIntyre (Author), PHP is interpreted at the server, so when changing a functionality, no additional steps are required to see the changes. On the other hand, ASP.net needs to be compiled each time the code is modified. Again, the development process is more time-consuming when using ASP.net as opposed to PHP.
PHP is platform independent and can run on any platform - Linux, Unix, Mac OS X, Windows.
ASP.net is built to run only on Windows platform.
Discuss three web security concerns and make recommendations for security improvements
Examples of privacy invasion
Identity theft is the act of a person obtaining information illegally about someone else. Often the thief will try finding such information as first name, surname, address, date of birth, social security number, passwords, phone numbers, email, family information, credit card numbers, other credit information, etc. The thief can then use this information to gain access to bank accounts, e-mail, cell phones, identify themselves as you, or sells your information.
There are various ways of preventing identity theft e.g
Using secure pages when on the internet. This are usually indicated with a lock
Do not store debit /credit card details online
Having active and up-to-date spyware protection program
Having antivirus protection
awareness of fake e-mails and phishing e-mails
making sure computer is secure (passwords)
This is a term associated with any change not approved by the manufacturer or developer that makes the device do something it was not initially intended to do. Hackers usually use a software program downloaded to help a user perform a hack on their computer or other computer or device. Some software that may claim to do one thing may do another. For example, software that may promise to gain you access to another individual's computer may allow other hackers to get access to your information (aka Trojan Horses).
Listing of programs that may indicate a hacker has been on the computer.
Backdoors and Trojans are by far the most common programs to be installed on the computer after it has been hacked. These programs allow the hacker to gain access to the computer.
Spyware, rogue antivirus programs, and malware can be an indication of a hacker.
The following are ways of protecting your computer system
Verify data is encrypted
Use safe passwords
Be cautious when logging from different locations
Update internet browser plugins
Secure saved passwords
Be aware of those around you
III) Destruction - this is a very important reason for securing of data. System can be damaged and thus losing of data. Viruses can cause a system to function slowly and in time crash. This will affect other users.
Malicious file execution
Uploaded files or other data feeds may not be what they seem. Never allow user-supplied input to be used in any file name or path (e.g. URLs or file system references). Uploaded files may also contain a malicious payload so should not be stored in web accessible locations.