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