|
|
|
|
Lesson#19
|
MAINTAINING STATE IN A STATELESS SYSTEM
|
|
|
|
MAINTAINING STATE IN A STATELESS SYSTEM
You know that http is stateless. Another reason why we need to
write scripts or develop our back end is
that we want to maintain state. In other words, we want to link
different clicks/steps involved in an ecommerce
transaction. When we go to an ecommerce site, we are generally
asked to take three different
steps, that is, provide Registration information, and make
selection of items (Add to Cart) and Confirm
Order. The question is how do we create link or maintain state
among these different steps. There are
following options available for programmers in this regard:
A temporary file may be created on the server side and we code
our scripts behind the steps/clicks -
Register, Add to Cart and Confirm Order - in a way that the
information of each step/click is stored in that
temporary file using the same common ID. At the end our confirm
order script puts this information in
some database using insert query.
Another method is to use the client side or cookies for
maintaining state. Information regarding
Registration and Add to Cart can be stored in cookies and at
Confirm Order cookies against these URLs
would revert to the serve side and be stored in databases
against a common ID.
We can also use hidden forms’ fields. We keep data back and
forth within forms to maintain state.
Following is a piece of HTML code for a form (Add to cart) in
which hidden fields are used. I have used
pairs of input tags with type hidden and type checkboxes. (I can
also use them in a For loop using
Recordset object of ASP then it would be possible that these
pairs of input tags are generated in a loop and
information of records available in databases is directly picked
up and printed for me). Because of type
hidden the item name and item code/value for each item would be
there in the form against each item but
would remain hidden. When the user selects items (through check
boxes) and presses Add to Cart his
selected information would go to some script which would be
coded such that it would open a new page
with button Confirm Order. In this new form the item code or
value of selected items would be present but
would remain hidden. When a user presses the button Confirm
Order the information of selected items is
stored in the databases (through a script) against the item code
present in the form, though hidden. We can
say that state is maintained here between steps Add to Cart and
Confirm Order in the sense that selections
made in step Add to Cart were passed over or provided to the
next step Confirm Order.
Example - Hidden Fields
<FORM NAME="Form1"> <INPUT TYPE= "HIDDEN" NAME= "Shirt1"
VALUE="25"> <INPUT
TYPE= "CHECKBOX" NAME= "Check1">Blue Cotton Shirt <br> <INPUT
TYPE= "HIDDEN"
NAME= "Shirt2" VALUE="26"> <INPUT TYPE= "CHECKBOX" NAME=
"Check2" >Green Cotton
Shirt <br>
<INPUT TYPE= "HIDDEN" NAME= "Shirt3" VALUE="27"> <INPUT TYPE=
"CHECKBOX"
NAME= "Check3">White Silk Shirt ….
<P>
<INPUT TYPE="submit" NAME="Go" VALUE="Register!"> <INPUT
TYPE="RESET"
VALUE="Reset!"></FORM>
Another option is to keep everything in databases. Here,
information of each step is recorded in appropriate
tables of a database itself and linked up with the help of a
commonID. It is relatively more costly and time
consuming option.
We can use Servlets to write our scripts to speed up processing.
It gets tricky, as one must have a solid
knowledge of programming to implement these methods. Here, the
idea is just to give you a broad
concept/picture as to how the state is maintained.
Client server architecture
Note that we may have different tiers in client server
architecture depending on where the processing of
data takes place. In 1-tier architecture, the entire processing
takes place at a single place/zone. For example,
89
in Fig. 1 below, the processing of data only takes place in the
main frame and different machines are
attached to it just as display terminals. Conversely, the entire
processing may take place at individual
terminals and a centralized machine called file server just
stores the files having no role in the processing of
data. Again, that would be an example of 1-tier architecture
(Fig. 2). Example of 2-tier architecture is where
processing of HTML code takes place on the client side and the
web page request is processed on the server
side (Fig. 3). In a 3-tier architecture, we can place our
database management system or application software
on a different processing zone or tier than the web server (Fig.
4). Similarly in a 4-tier architecture ,for
example, we can place the payment processing system at the 4th
tier. Thus, we can divide the client
server
architecture into n – tiers.
Fig. 1
Fig. 2
90
Fig. 3
Fig. 4
Web server
You know that web server is a machine that serves up the web
page requests of a client on the internet. It is
a combination of hardware and software. Decision as regards the
type of a web server is largely dependent
on the volume and type of web activities. So, transaction
processing sites generating dynamic pages with
high traffic volumes would need web server software that is more
efficient and can easily be upgraded.
91
Operating systems for web servers
A computer must have an operating system to run programs. It
also provides input and output services to
devices connected to a computer such as monitor, printer etc.
Commonly used web server operating
systems are Microsoft Windows NT Server, Microsoft Windows 2000
Advanced Server, Microsoft.NET
Server, Linux or Unix based operating systems such as Solaris.
Unix-based web servers are more popular
and are considered to be more secured. Linux is open source
operating system which is fast, efficient and
easy to install. Open source software is developed by a
community of programmers who make it available
for download at no cost. Web Server Software Common examples of
web server software are Apache
HTTP server, MS Internet Information Server (IIS) and Sun ONE
web server. Apache is open source code
developed in 1994. Today, it dominates the web, because it is
free and performs very efficiently. IIS comes
with MS windows 2000 and NT operating systems. IIS’s inclusion
of ASP provides an environment in
which HTML pages and scripts can be combined to produce dynamic
web pages. Sun one (iPlanet or
Netscape) web server is a joint product of AOL and Sun
Microsystems. It can run on many operating
systems including Solaris and Windows. Web Server Hardware Web
Server computers have generally more
memory. They have larger and faster hard disk drives and faster
processors than the typical desktop PCs.
Companies that sell web server hardware such as Dell, Hewlett
Packard etc. all have configuration tools on
their web sites that allow visitors to design their own web
servers.
Performance of web sever
Performance of web servers can be evaluated mainly on the basis
of two factors:
Throughput, which is the number of http requests that a
particular server hardware and
software can handle in the unit time; and
Response time, which is the amount of time a web server requires
to process one request.
Web server hardware architectures
We can divide e-commerce sites up to n-tier architectures. Some
web sites are so large that we need more
than one computer within each tier. For sites which have to
deliver millions of individual pages and process
thousand of customer and vendor transactions each day, site
administrators must plan carefully how to
configure their web server computers. They may adopt two
different approaches in this regard. They can
use centralized architecture approach where they can use few but
very fast and large computers within each
tier; or they may adopt decentralized approach using many less
powerful computers and dividing workload
among them. Web hosting choices ISPs also offer web hosting
arrangements.
Shared hosting means that a client’s web site is hosted on a
server that simultaneously hosts other web sites
and is operated by an ISP through its location.
In Dedicated hosting a web server is arranged by the ISP for a
client but that client does not share it with
other clients of the ISP. In both cases ISP owns the hardware
but leases it to the client and is responsible
for its maintenance. In Co-location hosting, the ISP offers on
rent a physical space to client to install its
own server hardware and software and maintain it by itself.
Companies may opt to run a server in house
which is called self hosting.
E-commerce software
Size and objectives of e-commerce sites vary thus variety of
software and hardware products are developed
which can be used to build those sites. Type of e-commerce
software that an organization needs depends
on several factors. Typically all e-commerce software must at
least provide:
A catalog display
Shopping cart capabilities
Transaction processing
Large or complex e-commerce sites also use software that adds
other features and capabilities as follows:
Middleware
Application integration
Web services
92
Integration with ERP Software
Supply chain management software
Customer Relationship Management (CRM) Software
Content Management Software
Knowledge Management Software
Catalog display
A Static catalog is a simple list written in HTML. One has to
edit the HTML code to change it. A dynamic
catalog stores information about items in a database usually on
a different computer accessible by the web
server. It can provide photos, detailed description and search
facility about the availability of items.
Shopping cart
In early days form based shopping cart was used wherein the user
had to remember and type certain
information. It is now replaced by electronic shopping
cart/basket that keeps record of the items the
customer has selected and allows customers to view the details
of the items selected. The customer can add
new items or remove items. To order an item, a customer simply
clicks at that item option. All details of an
item, including its price, product no. and order identifying
information are stored automatically in the cart.
Transaction processing
It occurs when a customer clicks at checkout or confirm order
button and is subjected to some payment
processing mechanism. It represents the most complex part of
online sale. Calculation of taxes, shipping
costs etc. is important parts of this process. Some software
enables a web server to obtain updated shipping
rates by directly connecting to shipping companies’ web sites.
Advanced functions of e-commerce software
Middleware
Large companies establish connections between their e-commerce
software and their existing accounting
system by using a type of software called Middleware which is a
part of e-commerce software package.
Application integration
A program that performs a specific function such as creating
invoices/bills or processing payment received
from customers is called an application program. We know that
Database Management Software stores
information in a structured way. Experts should properly
consider that their e-commerce software
application programs must be compatible and fully integrated
with the Database Management Software.
For example if a company has existing inventory database then
the experts should select that e-commerce
application program that supports such a system.
Web Services
Web services are defined as a combination of software tools that
allow application software in one
organization communicate with other programs/applications over a
network by using a specific set of
standard protocols. For example a company that wants to gather
all its financial management information in
one spreadsheet can use web services to automatically get bank
account details, information about loans,
stock value etc. from different independent sources. Similarly,
web services can be used to obtain price and
delivery information about goods from different
vendors/suppliers, review this information, place the order
to the right vendor/supplier and track the order till shipment
is received.
|
|
|
|