| From the good old days of the tag, to the XML-savvy | | | | development, let's look at what technical options you'll |
| Web services of today, applied Internet language has | | | | need to consider for the development process itself. |
| come a long way. And nowhere is this more evident | | | | Windows Web Servers |
| than in the field of Web application development. | | | | Microsoft has built a loyal customer base on one |
| As the Internet grew into a major player on the global | | | | important factor - their easy-to-use software. |
| economic front, so did the number of investors who | | | | Windows NT/2000/XP Web servers are very fast |
| were interested in its development. So, you may | | | | and easy to administer. The fact that the operating |
| wonder, how does the Internet continue to play a | | | | system is a Windows shell means that administrators |
| major role in communications, media and news? The | | | | and authors can easily allow the Web server to |
| key words are: Web Application Projects. | | | | interact with other software and hardware applications |
| Web applications are business strategies and policies | | | | to transmit and receive data over the Internet. Popular |
| implemented on the Web through the use of User, | | | | server side scripting languages used with Windows |
| Business and Data services. These tools are where | | | | servers are ASP/ASP. net, Java Server Pages, and |
| the future lies. In this article, I'll take you through the | | | | PHP. |
| essential phases in the life cycle of a Web application | | | | UNIX/Linux Web Servers |
| project, explain what options you have, and help you | | | | UNIX has long been known for its reliability. It is a |
| formulate a plan for successful Web application | | | | powerful and robust Web server and operating |
| endeavors of your own. First, though, let's take a brief | | | | system. Unix is the server of choice for many |
| overview of Web applications. | | | | large-scale Websites that need content management |
| Who Needs Web Applications and Why? | | | | systems or receive an extremely high volume of |
| There are many entities that require applications for | | | | traffic. Popular server side scripting languages for UNIX |
| the Web-one example would be Business-to-Business | | | | are Java Server Pages, PERL, PHP, and CORBA |
| interaction. Many companies in the world today | | | | Every scripting language has its pros and cons. As I'm |
| demand to do business with each other over secure | | | | not writing a book here, I'll use the ASP model as my |
| and private networks. This process is becoming | | | | language of illustration. When working with Windows |
| increasingly popular with a lot of overseas companies | | | | servers, there are several important parameters that |
| who outsource projects to each other. From the | | | | the developer needs to throw into the equation, |
| simple process of transferring funds into a bank | | | | including security, scalability, speed and application |
| account, to deploying a large scale Web services | | | | design. So below I'm going to help you formulate a |
| network that updates pricing information globally, the | | | | successful plan to accomplish all kinds of Web |
| adoption of a Web applications infrastructure is vital for | | | | projects. |
| many businesses. | | | | Planning for a Successful Web Development Project |
| The Web Application Model | | | | In order to drastically minimize the risk of project failure, |
| The Web application model, like many software | | | | I've always approached my application development |
| development models, is constructed upon 3 tiers: User | | | | projects in the following sequence. |
| Services, Business Services and Data Services. This | | | | 1. Identify business logic and entities |
| model breaks an application into a network of | | | | Start by gathering information on everything you have. |
| consumers and suppliers of services. | | | | If you are going to be working with databases, begin |
| The User Service tier creates a visual gateway for | | | | by enumerating how many entities will be used in the |
| the consumer to interact with the application. This can | | | | business logic. For example, if your program |
| range from basic HTML and DHTML to complex COM | | | | implements sales data, a sales ticket would be an |
| components and Java applets. | | | | entity. |
| The user services then grab business logic and | | | | Once you've identified all your entities, establish a clear |
| procedures from the Business Services. This tier can | | | | guideline for their relationships. This can be done via |
| range from Web scripting in ASP/PHP/JSP to server | | | | presentations, flowcharts or even reports. |
| side programming such as TCL, CORBA and PERL, | | | | 2. Create a functional specification and project plan |
| that allows the user to perform complex actions | | | | This part, in my opinion, is the most important part of |
| through a Web interface. | | | | the project. Functional specifications (or functional |
| The final tier is the Data Service layer. Data services | | | | specs) are a map, or blueprint for how you want a |
| store, retrieve and update information at a high level. | | | | particular Web application to look and work. The spec |
| Databases, file systems, and writeable media are all | | | | details what the finished product will do, user |
| examples of Data storage and retrieval devices. For | | | | interaction, and its look and feel. |
| Web applications, however, databases are most | | | | An advantage of writing a functional spec is that it |
| practical. Databases allow developers to store, | | | | streamlines the development process. It takes |
| retrieve, add to, and update categorical information in a | | | | discrepancies and guesswork out of the programming |
| systematic and organized fashion. | | | | process, because the level of detail that goes into the |
| Choosing the Right Project | | | | plan makes it possible to minimize the misunderstanding |
| Choosing the right types of projects to work on is an | | | | that's usually associated with project mishaps. See |
| extremely important part of the Web application | | | | examples of well written functional specs at |
| development plan. | | | | Once the functional spec is finished, a project plan |
| Assessing your resources, technical skills, and publishing | | | | must be devised. A project plan is a timeline of tasks |
| capabilities should be your first goal. Taking the 3 tiers | | | | and events that will take place during the project. The |
| into consideration, devise a list of all available resources | | | | project or program manager is normally the person |
| that can be categorically assigned to each tier. | | | | who creates a project plan, and their primary focus is |
| The next consideration should be the cost. Do you | | | | to detail task notes while being able to accommodate |
| have a budget with which to complete this project? | | | | scheduling and resource information. You can |
| How much will it cost you to design, develop and | | | | download a sample Excel file for a project plan at |
| deliver a complete project with a fair amount of | | | | 3. Bring the application model into play |
| success? These are questions that should be | | | | As discussed earlier, the application model consists of |
| answered before you sign any deals or contracts. | | | | 3 tiers - The User, Business and Data service tiers, |
| Let's look at an example. A company called ABC | | | | each of which serves a substantial purpose. |
| needs to develop a Web application that will display | | | | Practically speaking, it's always best to start with the |
| sales information created by different sales agents. | | | | data tier, because you've already identified your entities |
| The data is updated daily through a completely | | | | and understand their relationships. The data tier can be |
| automated process from all 3 service tiers. The client | | | | an SQL server database, a text file, or even the |
| tells you that this entire project must be done in ASP | | | | powerful and robust Oracle. Create tables, |
| SQL server and that you should host the application | | | | relationships, jobs, and procedures depending on what |
| as well. | | | | platform you have chosen. If the data is a warehouse |
| After assessing all your resources, you and your team | | | | (i.e. the data already exists and does not depend on |
| come to a conclusion that the company is unable to do | | | | real time interaction), then make sure that new and |
| data backups on a daily basis. After further discussion, | | | | additional data can be added securely and in a |
| you realize that this is a very important part of the | | | | scalable fashion. |
| setup for your client, and you should not risk taking a | | | | A quick tip: using views in SQL server/Oracle can |
| chance with the project. It's very likely that you will be | | | | improve dramatically the productivity and performance |
| more prepared next time around, when a similar | | | | of your application. They increase speed because they |
| project lands on your desk, so you decline the job and | | | | are "stored queries" that don't have a physical |
| recommend someone else who has the capabilities to | | | | existence. |
| do it right now. | | | | The Business services tier, in my opinion, is the heart of |
| The Phases in a Web Application Project | | | | the application. It involves the implementation of |
| The Web application development process has 4 | | | | business logic into the scripting or programming |
| phases: | | | | language. |
| Envisioning the nature and direction of the project | | | | At this stage, make sure you've already set up your |
| Devising the plan | | | | environment for testing and debugging. Always test on |
| Development | | | | at least 2 instances in your application, after all, what |
| Testing, support and stability | | | | may work perfectly for you, may not do so well on |
| Let's look at each of these in more detail. | | | | other platforms or machines. ASP, XML, PHP, JSP and |
| 1. Envisioning the nature and direction of the project | | | | CGI are some examples of server side scripting |
| In this phase, the management and developers | | | | languages used at the business service level. |
| assigned to the project come together and establish | | | | Whichever language you choose, make sure that it's |
| the goals that the solution must achieve. This includes | | | | capable of handling all the business logic presented in |
| recognizing the limitations that are placed on the | | | | the functional specification. |
| project, scheduling, and versioning of the application. By | | | | The last is the user tier, which is absolutely vital for the |
| the end of this phase, there should be clear | | | | interactive and strategic elements in the application. It |
| documentation on what the application will achieve. | | | | provides the user with a visual gateway to the |
| 2. Devising the plan | | | | business service by placing images, icons, graphics and |
| In this phase, you and your team must determine the | | | | layout elements in strategic areas of interest, most |
| "how's" of the application. | | | | commonly, based on management research. If you'll be |
| What scripting language is most appropriate, which | | | | developing the user tier yourself, be sure to have |
| features must be included, and how long will it take? | | | | studied your competition. The last thing you need is for |
| These are some of the questions that must be | | | | your application to look exactly the same as someone |
| answered through this planning phase. The main | | | | else's. |
| tangents at this point are the project plan and | | | | 4. Develop a support scheme |
| functional specification. The project plan determines a | | | | Being able to support and stabilize your application is |
| timeframe of events and tasks, while the functional | | | | very important. Define a procedure call for cases of |
| specification outlines in detail how the application will | | | | failure, mishaps or even downtime. Give your |
| function and flow. | | | | customers the ability to contact you in the case of an |
| 3. Development | | | | emergency relating to the program. |
| Once the project plan and functional specification are | | | | A good example of a support scheme is a ticket |
| ready, a baseline is set for the development work to | | | | tracking system. This system allows users to file |
| begin. The programmer/s or Web developer/s begin | | | | cases pertaining to a support request and the support |
| coding, testing and publishing data. This phase | | | | team, then makes the case track able. This means |
| establishes the data variables, entities and coding | | | | that the request is identifiable by a unique code or |
| procedures that will be used throughout the remainder | | | | number. Although ticket-tracking systems are normally |
| of the project. A milestone document is prepared by | | | | used by hosting companies or large scale ASP's |
| the development team, which is then handed to | | | | (Application Service Providers), they still serve a |
| management for review. | | | | valuable purpose in helping keep the application stable. |
| 4. Testing, support and stability | | | | Over to You... |
| The stability phase of the application project mainly | | | | So there you have it - a framework from which you |
| focuses on testing and the removal of bugs, | | | | can begin to plan and develop your own successful |
| discrepancies and network issues that may otherwise | | | | Web applications. |
| cause the application to fail. It is here that policies and | | | | Web applications will be around for a long time to |
| procedures are established for a successful support | | | | come. As we move further on into the future, they will |
| system. | | | | become less manual and more automated. This will |
| Knowing Your Options and Using them Wisely | | | | eventually lead to new kinds of research, but for now, |
| Ok, now that you have an understanding of the | | | | we can be happy with the fact that it is this that drives |
| architecture and procedures behind Web application | | | | the Web. |