Vous êtes sur la page 1sur 56

Electronic Commerce 5576

Approved Study Center

ALLAMA IQAL OPEN UNIVERSITY (AIOU)

ASSIGNMENT # 01
COURSE: ELECTRONIC COMMERCE (5576)

Level Executive MBA/MPA (3rd) Semester: SPRING 2010

Submitted to

MR.ARSALAN

Submitted By

Muhammad Idrees

Roll # AD514761

MUHAMMAD IDREES (0300 6719422) Page 1


Electronic Commerce 5576

ACKNOWLEDGEMENT

I would like to thank first of all my teacher Mr.Arsalan sb. for his kind
briefing regarding this Assignment.

My teachers and internet were a big source in accomplishment of my


Assignment.

My class fellows also deserve an Appreciation and Gesture of


thankfulness since their guidance also helped a lot.

MUHAMMAD IDREES (0300 6719422) Page 2


Electronic Commerce 5576

5576

MUHAMMAD IDREES (0300 6719422) Page 3


Electronic Commerce 5576

Q.1 What is the perspective of commercial use of e-Government?


E-Government

e-Government (short for electronic government, also known as e-gov, digital government,
online government, connected government or transformational government) is creating a
comfortable, transparent, and cheap interaction between government and citizens (G2C –
government to citizens), government and business enterprises (G2B –government to business
enterprises) and relationship between governments (G2G – inter-agency relationship). There are
four domains of e-government namely, governance, information and communication
technology(ICT), business process re-engineering(BPR)and e-citizen.

Defining e-Government and e-Governance


Definitions of e-Government and e-Governance abound in literature. Definitions for e-
Government and e-Governance range from the working definitions like ―the ability for anyone
visiting the city website to communicate and/or interact with the city via the Internet in any way
more sophisticated than a simple email letter to the generic city (or webmaster) email address
provided at the site‖ to ―the use of technology to enhance the access to and delivery of
government services to benefit citizens, business partners and employees‖. Focus of these
definitions range from those focusing on Information and communication technologies (ICTs) to
those focusing on ICT-enabled government and governance transformation. Some examples of
such definitions include:

 The use of ICTs, and particularly the Internet, as a tool to achieve better government.
 The use of information and communication technologies in all facets of the operations of
a government organization.
 The continuous optimization of service delivery, constituency participation and
governance by transforming internal and external relationships through technology, the
Internet and new media.

Whilst e-Government has traditionally been understood as being centered around the operations
of government, e-Governance is understood to extend the scope by including citizen engagement
and participation in governance. As such, following in line with the OECD definition of e-
Government, e-Governance can be defined as the use of ICTs as a tool to achieve better
governance.

MUHAMMAD IDREES (0300 6719422) Page 4


Electronic Commerce 5576

Delivery models and activities of e-Government

The primary delivery models of e-Government can be divided into:

 Government-to-Citizen or Government-to-Consumer (G2C)


 Government-to-Business (G2B)
 Government-to-Government (G2G)
 Government-to-Employees (G2E)

Within each of these interaction domains, four kinds of activities take place:

 pushing information over the Internet, e.g.: regulatory services, general holidays, public
hearing schedules, issue briefs, notifications, etc.
 two-way communications between the agency and the citizen, a business, or another
government agency. In this model, users can engage in dialogue with agencies and post
problems, comments, or requests to the agency.
 conducting transactions, e.g.: lodging tax returns, applying for services and grants.
 governance, e.g.: online polling, voting, and campaigning.

Non-internet e-Government

While e-government is often thought of as "online government" or "Internet-based government,"


many non-Internet "electronic government" technologies can be used in this context. Some non-
Internet forms include telephone, fax, PDA, SMS text messaging, MMS, wireless networks and
services, Bluetooth, CCTV, tracking systems, RFID, biometric identification, road traffic
management and regulatory enforcement, identity cards, smart cards and other Near Field
Communication applications; polling station technology (where non-online e-voting is being
considered), TV and radio-based delivery of government services, email, online community
facilities, newsgroups and electronic mailing lists, online chat, and instant messaging
technologies.

Potential benefits and risks of e-Government

Risks

There are many considerations and potential implications of implementing and designing e-
government, including disintermediation of the government and its citizens, impacts on
economic, social, and political factors, vulnerability to cyber attacks, and disturbances to the
status quo in these areas.

Hyper-surveillance

Increased contact between government and its citizens goes both ways. Once e-government
begins to develop and become more sophisticated, citizens will be forced to interact
electronically with the government on a larger scale. This could potentially lead to a lack of
privacy for civilians as their government obtains more and more information on them. In a worse

MUHAMMAD IDREES (0300 6719422) Page 5


Electronic Commerce 5576

case scenario, with so much information being passed electronically between government and
civilians, a totalitarian-like system could develop. When the government has easy access to
countless information on its citizens, personal privacy is lost.

Is Hyper-Surveillance Too Much?

Moore’s law states, our rate of technological development and advances in the semiconductor
industry, the complexity of integrated circuits doubles every 24 months. Although in 1965
Moore's law was initially made in the form of an observation and prediction, the more widely it
became accepted the more it served as a goal for an entire industry. This also rings true today;
Moore’s Law is a statement of how fast technology increases in complexity and efficiency each
year.

With the speed that technology continues to increase, it has become economically feasible for
government agencies (from the local level to the federal level), to implement all measures of
surveillance. From simple video surveillance systems found in the red light traffic cameras that
will automatically take a video of your vehicle running a red light, which then generates an
automated ticket to be mailed to you home, to the complex internet surveillance systems used by
homeland security and the FBI.

Hyper-Surveillance has become a part of our everyday lives. There isn’t a day that goes by
where we aren’t monitored with some form of technology. Security cameras in our local
supermarket are recording our presence; the firewall at our work is monitoring the web sites we
visit, and in some cases, emails are monitored for key words that could be considered offensive.

Some may feel that certain aspects of E-Government’s use of hyper-surveillance are encroaching
on their civil liberties. While others feel that with the tragic events of 9/11, it’s a necessary evil
that we must all live with in order to keep our loved ones from harm. Whether the government
has gone too far, or if enough safeguards are in place to protect citizens from abuse, is subjective
and up to open for debate.

In Local government, Hyper-Surveillance is commonly found in the form of traffic or red light
cameras in the more busy intersections. ―According to the Insurance Institute for Highway
Safety, annually nearly 2 million crashes occur in intersections. In 2005, red light running
resulted in 800 fatalities and over 165,000 injuries nation-wide. Last year, [The City of]
Lynnwood [in Washington state] experienced nearly 1,400 collisions, many of which occurred
within or immediately around intersections.[] It is believed that an automated red light camera
program will reduce the number of red light collisions and injuries associated with such crashes.

―[In New York city,] on the heels of breaking up an alleged bomb terror plot, [the city] is
planning to place high-tech security cameras, license plate readers, and "weapons sensors" in
midtown Manhattan.Sensors will try to detect chemical, biological, and radiological threats.‖

There is some debate on whether the deployment of this hyper-surveillance equipment will deter
terrorists. One of the places the federal government employs Hyper-Surveillance is most notably
in the war on terror. One example of where hyper-surveillance has worked is in the foiled
MUHAMMAD IDREES (0300 6719422) Page 6
Electronic Commerce 5576

attempt of a terrorist plot to bomb the Holland tunnel. ―[The] plot was discovered through the
monitoring of Internet chat rooms.‖

Electronic eavesdropping devices such as the Carnivore Surveillance tool are used to perform a
digital wire tap of a user’s internet activity and record information specific to that user. ―Once
installed it uses a packet-sniffing software program to trace emails sent and received by the
targeted user. The program sifts through all the emails and conversations and records the data on
a removable hard drive. In some cases the program can be setup to look for certain words or
phrases.‖

Since 9/11 there have been 19 foiled terrorist attacks in part due to the use of hyper-surveillance
technologies.

―If law enforcement agents use special software to sort though great numbers of emails
essentially tolling the entire internet for the transmissions that they are authorized by the Title III
[search] order to intercept[.] Does the search become even more intrusive, and should it be
subject to even greater restrictions that a standard wiretap or reading of electronic mail? There
appears to be no reason to do so, in fact, the actual sifting through email which is done by
Carnivore does not, itself implicate the Fourth Amendment[.] It is equivalent to an FBI agent
going to the post office and looking at the writing on the envelopes of the letters there is order to
find the ones that are addressed to a specific individual‖.

―On Jul 10, 2008, Congress passed the FISA Amendments Act of 2008, which provides blanket
retroactive immunity to telecommunications companies that assisted the "terrorist surveillance
program" (TSP). This provision allows the Attorney General to immunize these private parties
from suit by certifying that President Bush requested their assistance and assured them that their
actions were legal. ―

With the passing of the FISA Amendments Act of 2008, it has been easier for the federal
government to use hyper-surveillance to collect information, on suspected terrorists. Lawsuits
have been filed stating the telecommunications companies have impeded civil rights in the use of
this blanket immunity but to date most have been dismissed. Surveillance means continual
observation of a person or group, especially one suspected of doing something illegal.

Cost

Although ―a prodigious amount of money has been spent‖ on the development and
implementation of e-government, some say it has yielded only a mediocre product. The
outcomes and effects of trial Internet-based governments are often difficult to gauge or
unsatisfactory.

Inaccessibility

An e-government site that provides web access and support often does not offer the ―potential to
reach many users including those who live in remote areas, are homebound, have low literacy

MUHAMMAD IDREES (0300 6719422) Page 7


Electronic Commerce 5576

levels, exist on poverty line incomes, suffer from chronic illness, are single parents or older
adults.‖

False sense of transparency and accountability

Opponents of e-government argue that online governmental transparency is dubious because it is


maintained by the governments themselves. Information can be added or removed from the
public eye (i.e. the Internet) with or without public notice. For example, after the World Trade
Center in New York City was attacked on September 11, 2001, United States federal officials
removed a large amount of government information from its websites in the name of national
security. This act went relatively unnoticed by United States citizens. To this day, very few
organizations monitor and provide accountability for these modifications. Those that do so, like
the United States’ OMBWatch and Government Accountability Project, are often nonprofit
volunteers. Even the governments themselves do not always keep track of the information they
insert and delete.

Benefits

It is convenient and cost-effective for businesses, and the public benefits by getting easy access
to the most current information available without having to spend time, energy and money to get
it.

E-government helps simplify processes and makes access to government information more easily
accessible for public sector agencies and citizens. For example, the Indiana Bureau of Motor
Vehicles simplified the process of certifying driver records to be admitted in county court
proceedings. Indiana became the first state to allow government records to be digitally signed,
legally certified and delivered electronically by using Electronic Postmark technology. In
addition to its simplicity, e-democracy services can reduce costs. Alabama Department of
Conservation & Natural Resources, Wal-Mart and NIC developed an online hunting and fishing
license service utilizing an existing computer to automate the licensing process. More than
140,000 licenses were purchased at Wal-Mart stores during the first hunting season and the
agency estimates it will save $200,000 annually from service.

The anticipated benefits of e-government include efficiency, improved services, better


accessibility of public services, and more transparency and accountability.

Democratization

One goal of e-government will be greater citizen participation. Through the internet, people from
all over the country can interact with politicians or public servants and make their voices heard.
Blogging and interactive surveys will allow politicians or public servants to see the views of the
people they represent on any given issue. Chat rooms can place citizens in real-time contact with
elected officials, their offices or provide them with the means to replace them by interacting
directly with public servants, allowing voters to have a direct impact and influence in their

MUHAMMAD IDREES (0300 6719422) Page 8


Electronic Commerce 5576

government. These technologies can create a more transparent government, allowing voters to
immediately see how and why their representation in the capital is voting the way they are. This
helps voters better decide who to vote for in the future or how to help the public servants become
more productive. A government could theoretically move more towards a true democracy with
the proper application of e-government. Government transparency will give insight to the public
on how decisions are made and hold elected officials or public servants accountable for their
actions. The public could become a direct and prominent influence in government legislature to
some degree.

Environmental bonuses

Proponents of e-government argue that online government services would lessen the need for
hard copy forms. Due to recent pressures from environmentalist groups, the media, and the
public, some governments and organizations have turned to the Internet to reduce this paper use.
The United States government utilizes the website http://www.forms.gov to provide ―internal
government forms for federal employees‖ and thus ―produce significant savings in paper.

Speed, efficiency, and convenience

E-government allows citizens to interact with computers to achieve objectives at any time and
any location, and eliminates the necessity for physical travel to government agents sitting behind
desks and windows. Improved accounting and record keeping can be noted through
computerization, and information and forms can be easily accessed, equaling quicker processing
time. On the administrative side, access to help find or retrieve files and linked information can
now be stored in databases versus hardcopies stored in various locations. Individuals with
disabilities or conditions no longer have to be mobile to be active in government and can be in
the comfort of their own homes.

Public approval

Recent trials of e-government have been met with acceptance and eagerness from the public.
Citizens participate in online discussions of political issues with increasing frequency, and young
people, who traditionally display minimal interest in government affairs, are drawn to e-voting
procedures.

Although internet-based governmental programs have been criticized for lack of reliable privacy
policies, studies have shown that people value prosecution of offenders over personal
confidentiality. Ninety percent of United States adults approve of Internet tracking systems of
criminals, and fifty-seven percent are willing to forgo some of their personal internet privacy if it
leads to the prosecution of criminals or terrorists.

MUHAMMAD IDREES (0300 6719422) Page 9


Electronic Commerce 5576

Technology-specific e-Government

There are also some technology-specific sub-categories of e-government, such as m-government


(mobile government), u-government (ubiquitous government), and g-government (GIS/GPS
applications for e-government.

E-government portals and platforms The primary delivery models of e-Government are
classified depending on who benefits. In the development of public sector or private sector
portals and platforms, a system is created that benefits all constituents. Citizens needing to renew
their vehicle registration have a convenient way to accomplish it while already engaged in
meeting the regulatory inspection requirement. On behalf of a government partner, business
provides what has traditionally, and solely, managed by government and can use this service to
generate profit or attract new customers. Government agencies are relieved of the cost and
complexity of having to process the transactions.

To develop these public sector portals or platforms, governments have the choice to internally
develop and manage, outsource, or sign a self-funding contract. The self-funding model creates
portals that pay for themselves through convenience fees for certain e-government transactions,
known as self-funding portals. Early players in this space include govONE Solutions, First Data
Government Solutions and NIC, a company built on the self-funded model.

Social networking is an emerging area for e-democracy. The social networking entry point is
within the citizens’ environment and the engagement is on the citizens’ terms. Proponents of e-
government perceive government use of social networks as a medium to help government act
more like the public it serves. Examples of state usage can be found at The Official
Commonwealth of Virginia Homepage, where citizens can find Google tools and open social
forums.

Government and its agents also have the opportunity to follow citizens to monitor satisfaction
with services they receive. Through ListServs, RSS feeds, mobile messaging, micro-blogging
services and blogs, government and its agencies can share information to citizens who share
common interests and concerns. Government is also beginning to Twitter. In the state of Rhode
Island, Treasurer Frank T. Caprio is offering daily tweets of the state’s cash flow. Interested
people can sign up at here. For a full list of state agencies with Twitter feeds, visit Real Life.
Live document. For more information, visit transparent-government.

Strategic Roadmap for E-Government Programme.

The IT & Telecom Division (IT&TD) started development of the programme in


October 2000. Through a process of consultation and research broad vision, objectives,
business strategy, IT architecture and strategy, projects and deliverables for the E-
Government Programme were established. The programme evolved over time by benefiting
from the contributions of various stakeholders, from the public as well as private sectors, to

MUHAMMAD IDREES (0300 6719422) Page 10


Electronic Commerce 5576

whom presentations were made by the IT&TD. The broad roadmap for the programme is
shown below:

Broadly speaking, the programme has been divided into two major components;
(i) Services delivery to citizens
(ii) Improving efficiency of operations of the government
The ―Electronic Services to Citizens‖ component is further divided into two subcomponents, on
the basis of the delivery channel selected, viz. internet and self-help
Kiosks. The component for improving efficiency was divided into three areas, viz. common
office applications which are common across all government departments (lumped together in a
broad term called E-Office), development of the basic infrastructure both physical and human,
and finally development of specialized applications for different departments, these being called
agency-specific applications.
Initially, when the programme was formulated, it was planned to execute it as one
large project, catering for all the components within the broad programme, and it was
expected to cost Rs.2.5 billion ($ 40 million) over three years. A total of seventeen (17)
projects were identified for implementation over this period. Additionally, it was felt that due to
lack of experience and expertise in the country, and the complexity of implementation of such a
massive programme, a Master Consultant be hired to supervise and integrate the implementation
of the projects identified under this programme. However, as the work on implementation of the
programme was commencing, the earlier view for a grand programme started to look very
ambitious and risky. The main risks were that (a) entire government functioning may become
hostage to a consultant, if a consultant is wrongly chosen, (b) government existing machinery
may not be able to move at the speed expected for consultancy work thereby increasing
consultancy costs and possibility emergence of many unforeseen issues. Also successful

MUHAMMAD IDREES (0300 6719422) Page 11


Electronic Commerce 5576

international experiences of step by step a pro-act of implementing smaller projects within the
broad overall framework rather than starting off with one giant project were also available. It was
considered that the stepwise approach had a number of advantages; viz. mistakes can be rectified
sooner and with less cost, implementation skills would be built in -house and there would be less
resistance from the agencies where implementation is being done. Thus, finally, the incremental
(stepwise) approach was adopted.

Q.2 Explain interactive technologies (Forms, CGIs and Java) in detail.

Definition of Form:
A formatted document containing blank fields that users can fill in with data. With paper forms, it is
usually necessary for someone to transfer the data from the paper to a computer database, where the
results can then be statistically analyzed. Some OCR systems can do this automatically, but they're
generally limited to forms containing just check boxes. They can't handle handwritten text.

Electronic forms solve this problem by entirely skipping the paper stage. Instead, the form
appears on the user's display screen and the user fills it in by selecting options with a pointing
device or typing in text from the computer keyboard. The data is then sent directly to a forms
processing application, which enters the information into a database.

Electronic forms are especially common on the World Wide Web because the HTML language
has built-in codes for displaying form elements such as text fields and check boxes. Typically,
the data entered into a Web-based form is processed by a CGI program.

Form (web)

A webform on a web page allows a user to enter data that is sent to a server for processing.
Webforms resemble paper forms because internet users fill out the forms using checkboxes,
radio buttons, or text fields. For example, webforms can be used to enter shipping or credit card
data to order a product or can be used to retrieve data (e.g., searching on a search engine).

In addition to functioning as input templates for new information, webforms can also be used to
query and display existing data in a similar manner to mail merge forms, with the same
advantages. The decoupling of message structure and underlying data allow both to vary
independently. The use of webforms for this purpose avoids the problems associated with
explicitly creating separate web pages for each record in a database.

Webforms are defined in formal programming languages such as HTML, Perl, Php, Java or
.NET. The implementations of these languages often automatically invoke user interface idioms,
such as grids and themes, minimizing programming time, costs and risks.

MUHAMMAD IDREES (0300 6719422) Page 12


Electronic Commerce 5576

XHTML/HTML forms

A form in XHTML or HTML is by far the most common way to use a form online.

The following elements can make up the user-inputting portion of a form:

 input field
o text – a simple text box that allows input of a single line of text (an alternative, password,
is used for security purposes, in which the characters typed in are invisible or replaced by
symbols such as *)
o checkbox – a check box
o radio – a radio button
o file – a file select control for uploading a file
o reset – a reset button that, when activated, tells the browser to restore the values to their
initial values.
o submit – a button that tells the browser to take action on the form (typically to send it to a
server)
 textarea – much like the text input field except a textarea allows for multiple rows of data to be
shown and entered
 select – a drop-down list that displays a list of items a user can select from

The sample image on the right shows all of these elements:

MUHAMMAD IDREES (0300 6719422) Page 13


Electronic Commerce 5576

 a text box asking for your name


 a pair of radio buttons asking you to pick your sex
 a select box giving you a list of eye colors to choose from
 a pair of check boxes to click on if they apply to you
 a text area to describe your athletic ability
 a submit button to send it to the server

These basic elements provide most possible graphical user interface (GUI) elements, but not all.
For example, there are no equivalents to a combo box, balloon help, tree view, or grid view. A
grid view, however, can be mimicked by using a standard HTML table with each cell containing
a text input element. A tree view could also be mimicked through nested tables or, more
semantically appropriately, nested lists. Many of these are available through JavaScript libraries.

XForms
XForms is an alternative standard that was designed to represent the next generation of HTML /
XHTML forms. It is also a standard that is generic enough to be used in a standalone manner or
with presentation languages other than HTML or XHTML to describe forms in other user
interfaces. Unlike HTML / XHTML forms, XForms uses a Model-View-Controller approach.

An XForms document can be as simple as an HTML / XHTML web form. But XForms includes
many advanced features. For example, the form can react in real time and request and retrieve
new information while it is still being displayed, without the use of a separate scripting language.
The form can specify how its data should be validated or how portions of the form may change
depending on data entered in other parts of the form.

Unlike HTML / XHTML forms, XForms is not supported on currently available web browsers.

Combined with programs


Forms can be combined with various scripting languages to allow developers to create dynamic
web sites. This includes both client-side and/or server-side languages.

MUHAMMAD IDREES (0300 6719422) Page 14


Electronic Commerce 5576

Client-side

The de facto standard client-side scripting language for web sites is JavaScript. Utilizing
JavaScript on the Document Object Model (DOM) leads to the method of Dynamic HTML that
allows dynamic creation and modification of a web page within the browser.

While client-side languages used in conjunction with forms are limited, they often can serve to
do pre-validation of the form data and/or to prepare the form data to send to a server-side
program.

Server-side

Server-side programs can do a vast assortment of tasks to create dynamic web sites — from
authenticating a login through, for example, Lightweight Directory Access Protocol to retrieving
and storing data in a database to spell checking to sending e-mail — quite unlike client-side
programs. Most server-side program requests must pass through the web server's Common
Gateway Interface to execute the program to actually perform the tasks.

The advantage of server-side over client-side is the concentration of functionality onto one
computer (the server) instead of relying on each web browser implementing all of the various
functions the same. This very problem is quite evident to any developer who writes JavaScript
code for multiple browsers.

Scripting languages are the most common server-side programs used for web sites, but it is also
possible to run compiled programs.

Some of the scripting languages commonly used:

 PHP
 Perl
 ASP
 ASP.NET
 Adobe ColdFusion
 JSP

Some of the compiling languages commonly used:

 C
 C++
 C#
 Java

MUHAMMAD IDREES (0300 6719422) Page 15


Electronic Commerce 5576

PHP

PHP is one very common language used for server-side languages and is one of the few
languages created specifically for server-side programs.

A PHP script may:

 display the information on another page (ex: asking for a user's name and then displaying it on the
web page)
 act as a logon interface
 post the data to a database (ex: mySQL, an ASCII file, etc.)
 store the information on the viewer's computer in an HTTP cookie
 generate an e-mail, either using the data or including said data in the e-mail's contents (possibly
as an e-mail attachment)

The HTML form learns where to pass the data from the action attribute of the form's HTML
element. The target PHP file then retrieves the data either through POST or GET (see HTTP for
more information), depending on the programmer's preference. Here is a basic form handler PHP
script that will post the form's contents, in this case "user", to the page using GET:

form.html

<html>
<body>
<form action="form_handler.php" method="get">
User Name: <input name="user" type="text" />
<input type="submit" />
</form>
</body>
</html>

form_handler.php

<html>
<body>
<?php
/*
* This will print whatever the user put into the form on the form.html page.
*/

$name = $_GET['user'];
echo "Hello, ". $name ."!";
?>
</body>
</html>

In the above script the $_GET[''] and $_POST[''] commands need to be changed, depending on
what is used in the form, however $_REQUEST[''] is used for both so it is more efficient to use

MUHAMMAD IDREES (0300 6719422) Page 16


Electronic Commerce 5576

for form collection. Note that the value used in input name="" in the html form must be the same
as the array value in the $GET[''] expression in the PHP form handler program.

Perl

Perl is another language often used for web development. Perl scripts are traditionally used as
Common Gateway Interface applications (CGIs). In fact, Perl is such a common way to write
CGIs that the two are often confused. CGIs may be written in other languages than Perl
(compatibility with multiple languages is a design goal of the CGI protocol) and there are other
ways to make Perl scripts interoperate with a web server than using CGI (such as FastCGI or
Apache's mod perl).

Perl CGIs were once a very common way to write web applications. But not being specifically
designed for web development, Perl is now often viewed as less practical (both for developers
and users) than specialized languages like PHP or ASP. This is especially true if Perl modules
would need to be installed on the web host or if wanting to use a non-CGI environment that
might require extra configurations on the web server. Some web hosts also rely on interpreter-
level sandboxing, which while possible with the Safe module, wouldn't be very practical and
undoubtly break a lot of scripts considering common practices. Similar considerations might
apply to other general-purpose scripting languages like Python or Ruby. For these reasons, a lot
of cheap web hosts nowadays effectively only support PHP and web developers often seek
compatibility with them. A modern Perl 5 CGI using the standard CGI module with a form
similar to the one above might look like:

form_handler.pl

#!/usr/bin/perl
use CGI qw(:standard);

$user = param('user');
print header;
print html(
body(
p("Hello, $user!"),
),
);

Form-to-email scripts

Among the simplest and most commonly needed types of server-side script is that which simply
emails the contents of a submitted form. This kind of script is frequently exploited by spammers,
however, and many of the most popular form-to-email scripts in use are vulnerable to be
hijacked for spamming purposes. One of the most popular scripts of this type was "FormMail.pl"
made by Matt's Script Archive. Today, no version of this still frequently used script is considered
secure.

To avoid the confusion and difficulty of installing and using scripts, webmasters often use a free
forms processing service to get their forms working.

MUHAMMAD IDREES (0300 6719422) Page 17


Electronic Commerce 5576

Example of form

MUHAMMAD IDREES (0300 6719422) Page 18


Electronic Commerce 5576

Common Gateway Interface (CGIs):

The Common Gateway Interface (CGI) is a standard (see RFC 3875: CGI Version 1.1) that
defines how webserver software can delegate the generation of webpages to a text-based
application. Such applications are known as CGI scripts; they can be written in any
programming language, although scripting languages are often used.

Purpose
The task of a webserver is to respond to requests for webpages issued by clients (usually web
browsers) by analyzing the content of the request (including the URL, the HTTP 'method',
request headers and any message body), determining appropriate actions to take and creating an
appropriate document to send in response, then returning that to the client.

If the request is just to GET a file that exists on disk, the server can just return the file's contents.
Alternatively, the document's content may need to be composed on the fly, and other actions
such as updating a database, may be required. One way of achieving this is for a console
application to handle the request and compute the returned document's contents, and tell the web
server to use that console application. CGI specifies which information is communicated
between the webserver and such a console application, and how.

MUHAMMAD IDREES (0300 6719422) Page 19


Electronic Commerce 5576

The webserver software will invoke the console application as a command. CGI defines how
information about the request (such as the URL, request headers etc) is passed to the command
in the form of arguments and environment variables. The application then writes the output
document to standard output. CGI also defines how the application should pass back extra
information about the output (such as the MIME type and other response headers).

More details
From the Web server's point of view, certain locators, e.g. http://www.example.com/wiki.cgi, are
defined as corresponding to a program to execute via CGI. When a request for the URL is
received, the corresponding program is executed.

Web servers often have a cgi-bin/ directory at the base of their directory tree to hold executable
files called with CGI.

Input data

Data is passed into the program using environment variables. This is in contrast to typical
execution, where command-line arguments are used. In the case of HTTP PUT or POSTs, the
user-submitted data is provided to the program via the standard input.[1]

The following environment variables pass to a CGI program:

Server specific variables

SERVER_SOFTWARE — name/version of HTTP server.


SERVER_NAME — host name of the server, may be dot-decimal IP address.
GATEWAY_INTERFACE — CGI/version.

Request specific variables

SERVER_PROTOCOL — HTTP/version.
SERVER_PORT — TCP port (decimal).
REQUEST_METHOD — name of HTTP method (see above).
PATH_INFO — path suffix, if appended to URL after program name and a slash.
PATH_TRANSLATED — corresponding full path as supposed by server, if PATH_INFO is present.
SCRIPT_NAME — relative path to the program, like /cgi-bin/script.cgi.
QUERY_STRING — the part of URL after ? character. Must be composed of name=value pairs
separated with ampersands (such as var1=val1&var2=val2…) and used when form data are
transferred via GET method.
REMOTE_HOST — host name of the client, unset if server did not perform such lookup.
REMOTE_ADDR — IP address of the client (dot-decimal).
AUTH_TYPE — identification type, if applicable.
REMOTE_USER used for certain AUTH_TYPEs.
REMOTE_IDENT — see ident, only if server performed such lookup.
CONTENT_TYPE — MIME type of input data if PUT or POST method are used, as provided via

MUHAMMAD IDREES (0300 6719422) Page 20


Electronic Commerce 5576

HTTP header.
CONTENT_LENGTH — similarly, size of input data (decimal, in octets) if provided via HTTP
header.
Variables passed by user agent (HTTP_ACCEPT, HTTP_ACCEPT_LANGUAGE, HTTP_USER_AGENT,
HTTP_COOKIE and possibly others) contain values of corresponding HTTP headers and therefore
have the same sense.

Output format

The program returns the result to the web server in the form of standard output, prefixed by a
header and a blank line.

The header is encoded in the same way as an HTTP header and must include the MIME type of
the document returned. The headers are generally forwarded with the response back to the user,
supplemented by the web server.

Example
An example of a CGI program is one implementing a wiki. The user agent requests the name of
an entry; the server will retrieve the source of that entry's page (if one exists), transform it into
HTML, and send the result.

Java (programming language)

History

In 1993, the World Wide Web (WWW) was small but booming. WWW software developers and
web site developers kept in touch on the www-talk mailing list, so it was there that a standard for
calling command line executables was agreed upon. Specifically mentioned in RFC 3875 are the
following contributors:

 Rob McCool (author of the NCSA httpd web server)


 John Franks (author of the GN web server)
 Ari Luotonen (the developer of the CERN httpd web server)
 Tony Sanders (author of the Plexus web server)
 George Phillips (web server maintainer at the University of British Columbia)

The NCSA team wrote the specification, and NCSA still hosts it at its original location. The
other webserver developers adopted it, and it has been a standard for webservers ever since.

MUHAMMAD IDREES (0300 6719422) Page 21


Electronic Commerce 5576

Drawbacks
Calling a command generally means the invocation of a newly created process. Starting up the
process can take up much more time and memory than the actual work of generating the output,
especially when the program still needs to be interpreted or compiled. If the command is called
often, the resulting workload can quickly overwhelm the web server.

The overhead involved in interpretation may be reduced by using compiled CGI programs, such
as those in C/C++, rather than using Perl or other scripting languages. The overhead involved in
process creation can be reduced by solutions such as FastCGI, or by running the application code
entirely within the webserver using special extension modules.

Alternatives

Several approaches can be adopted for remedying this:

 The popular Web servers developed their own extension mechanisms that allows third-party
software to run inside the web server itself, e.g. Apache modules, Netscape NSAPI plug-ins, IIS
ISAPI plug-ins.
 Simple Common Gateway Interface or SCGI
 FastCGI allows a single, long-running process to handle more than one user request while
keeping close to the CGI programming model, retaining the simplicity while eliminating much of
the overhead CGI incurs by creating a new process for each request. Unlike converting an
application to a web server plug-in, FastCGI applications remain independent of the web server.
 Replacement of the architecture for dynamic websites can also be used. This is the approach
taken by solutions including Java Platform, Enterprise Edition (a.k.a. Java EE), which runs Java
code in a Java servlet container in order to serve dynamic content and optionally static content.
This approach replaces the overhead of generating and destroying processes with the much lower
overhead of generating and destroying threads, and also exposes the programmer to the library
that comes with Java Platform, Standard Edition that the version of Java EE in use is based on.

The optimal configuration for any web application depends on application-specific details,
amount of traffic, and complexity of the transaction; these tradeoffs need to be analyzed to
determine the best implementation for a given task and time budget.

Java is a programming language originally developed by James Gosling at Sun Microsystems


(which is now a subsidiary of Oracle Corporation) and released in 1995 as a core component of
Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but
has a simpler object model and fewer low-level facilities. Java applications are typically
compiled to bytecode (class file) that can run on any Java Virtual Machine (JVM) regardless of
computer architecture. Java is a general-purpose, concurrent, class-based, object-oriented
language that is specifically designed to have as few implementation dependencies as possible. It
is intended to let application developers "write once, run anywhere". Java is currently one of the
most popular programming languages in use, and is widely used from application software to
web applications.

MUHAMMAD IDREES (0300 6719422) Page 22


Electronic Commerce 5576

The original and reference implementation Java compilers, virtual machines, and class libraries
were developed by Sun from 1995. As of May 2007, in compliance with the specifications of the
Java Community Process, Sun relicensed most of its Java technologies under the GNU General
Public License. Others have also developed alternative implementations of these Sun
technologies, such as the GNU Compiler for Java and GNU Classpath.

History
James Gosling and Patrick Naughton initiated the Java language project in June 1991 for use in
one of his many set-top box projects. Java was originally designed for interactive television, but
it was too advanced. The language was initially called Oak after an oak tree that stood outside
Gosling's office; it went by the name Green later, and was later renamed Java, from a list of
random words. Gosling aimed to implement a virtual machine and a language that had a familiar
C/C++ style of notation.

Sun Microsystems released the first public implementation as Java 1.0 in 1995. It promised
"Write Once, Run Anywhere" (WORA), providing no-cost run-times on popular platforms.
Fairly secure and featuring configurable security, it allowed network- and file-access restrictions.
Major web browsers soon incorporated the ability to run Java applets within web pages, and Java
quickly became popular. With the advent of Java 2 (released initially as J2SE 1.2 in December
1998–1999), new versions had multiple configurations built for different types of platforms. For
example, J2EE targeted enterprise applications and the greatly stripped-down version J2ME for
mobile applications (Mobile Java). J2SE designated the Standard Edition. In 2006, for marketing
purposes, Sun renamed new J2 versions as Java EE, Java ME, and Java SE, respectively.

In 1997, Sun Microsystems approached the ISO/IEC JTC1 standards body and later the Ecma
International to formalize Java, but it soon withdrew from the process. Java remains a de facto
standard, controlled through the Java Community Process. At one time, Sun made most of its
Java implementations available without charge, despite their proprietary software status. Sun
generated revenue from Java through the selling of licenses for specialized products such as the
Java Enterprise System. Sun distinguishes between its Software Development Kit (SDK) and
Runtime Environment (JRE) (a subset of the SDK); the primary distinction involves the JRE's
lack of the compiler, utility programs, and header files.

On November 13, 2006, Sun released much of Java as open source software under the terms of
the GNU General Public License (GPL). On May 8, 2007, Sun finished the process, making all
of Java's core code available under free software/open-source distribution terms, aside from a
small portion of code to which Sun did not hold the copyright.

Sun's vice-president Rich Green has said that Sun's ideal role with regards to Java is as an
"evangelist."

MUHAMMAD IDREES (0300 6719422) Page 23


Electronic Commerce 5576

Principles

There were five primary goals in the creation of the Java language:

It should be "simple, object oriented, and familiar".

1. It should be "robust and secure".


2. It should be "architecture neutral and portable".
3. It should execute with "high performance".
4. It should be "interpreted, threaded, and dynamic".

Practices
Java Platform

One characteristic of Java is portability, which means that computer programs written in the Java
language must run similarly on any supported hardware/operating-system platform. This is
achieved by compiling the Java language code to an intermediate representation called Java byte
code, instead of directly to platform-specific machine code. Java byte code instructions are
analogous to machine code, but are intended to be interpreted by a virtual machine (VM) written
specifically for the host hardware. End-users commonly use a Java Runtime Environment (JRE)
installed on their own machine for standalone Java applications, or in a Web browser for Java
applets.

Standardized libraries provide a generic way to access host-specific features such as graphics,
threading and networking.

A major benefit of using byte code is porting. However, the overhead of interpretation means
that interpreted programs almost always run more slowly than programs compiled to native
executables would. Just-in-Time compilers were introduced from an early stage that compile
byte codes to machine code during runtime. Over the years, this JVM built-in feature has been
optimized to a point where the JVM's performance competes with natively compiled C code.

Implementations

Sun Microsystems officially licenses the Java Standard Edition platform for Linux, Mac OS X,
and Solaris. Although in the past Sun has licensed Java to Microsoft, the license has expired and
has not been renewed. Through a network of third-party vendors and licensees, alternative Java
environments are available for these and other platforms.

Sun's trademark license for usage of the Java brand insists that all implementations be
"compatible". This resulted in a legal dispute with Microsoft after Sun claimed that the Microsoft
implementation did not support RMI or JNI and had added platform-specific features of their
own. Sun sued in 1997, and in 2001 won a settlement of $20 million as well as a court order
enforcing the terms of the license from Sun. As a result, Microsoft no longer ships Java with
Windows, and in recent versions of Windows, Internet Explorer cannot support Java applets

MUHAMMAD IDREES (0300 6719422) Page 24


Electronic Commerce 5576

without a third-party plugin. Sun, and others, have made available free Java run-time systems for
those and other versions of Windows.

Platform-independent Java is essential to the Java EE strategy, and an even more rigorous
validation is required to certify an implementation. This environment enables portable server-
side applications, such as Web services, Java Servlets, and Enterprise JavaBeans, as well as with
embedded systems based on OSGi, using Embedded Java environments. Through the new
GlassFish project, Sun is working to create a fully functional, unified open source
implementation of the Java EE technologies.

Sun also distributes a superset of the JRE called the Java Development Kit (commonly known as
the JDK), which includes development tools such as the Java compiler, Javadoc, Jar and
debugger.

Performance

Programs written in Java have a reputation for being slower and requiring more memory than
those written in some other languages. However, Java programs' execution speed improved
significantly with the introduction of Just-in-time compilation in 1997/1998 for Java 1.1, the
addition of language features supporting better code analysis (such as inner classes, StringBuffer
class, optional assertions, etc.), and optimizations in the Java Virtual Machine itself, such as
HotSpot becoming the default for Sun's JVM in 2000.

To boost even further the speed performances that can be achieved using the Java language
Systronix made JStik, a microcontroller based on the aJile Systems line of embedded Java
processors. In addition, the widely used ARM family of CPUs has hardware support for
executing Java bytecode through its Jazelle option.

Automatic memory management

Java uses an automatic garbage collector to manage memory in the object lifecycle. The
programmer determines when objects are created, and the Java runtime is responsible for
recovering the memory once objects are no longer in use. Once no references to an object
remain, the unreachable memory becomes eligible to be freed automatically by the garbage
collector. Something similar to a memory leak may still occur if a programmer's code holds a
reference to an object that is no longer needed, typically when objects that are no longer needed
are stored in containers that are still in use. If methods for a nonexistent object are called, a "null
pointer exception" is thrown.

One of the ideas behind Java's automatic memory management model is that programmers can
be spared the burden of having to perform manual memory management. In some languages
memory for the creation of objects is implicitly allocated on the stack, or explicitly allocated and
deallocated from the heap. Either way, the responsibility of managing memory resides with the
programmer. If the program does not deallocate an object, a memory leak occurs. If the program
attempts to access or deallocate memory that has already been deallocated, the result is
undefined and difficult to predict, and the program is likely to become unstable and/or crash.

MUHAMMAD IDREES (0300 6719422) Page 25


Electronic Commerce 5576

This can be partially remedied by the use of smart pointers, but these add overhead and
complexity. Note that garbage collection does not prevent 'logical' memory leaks, i.e. those
where the memory is still referenced but never used.

Garbage collection may happen at any time. Ideally, it will occur when a program is idle. It is
guaranteed to be triggered if there is insufficient free memory on the heap to allocate a new
object; this can cause a program to stall momentarily. Explicit memory management is not
possible in Java.

Java does not support C/C++ style pointer arithmetic, where object addresses and unsigned
integers (usually long integers) can be used interchangeably. This allows the garbage collector to
relocate referenced objects, and ensures type safety and security.

As in C++ and some other object-oriented languages, variables of Java's primitive data types are
not objects. Values of primitive types are either stored directly in fields (for objects) or on the
stack (for methods) rather than on the heap, as commonly true for objects (but see Escape
analysis). This was a conscious decision by Java's designers for performance reasons. Because of
this, Java was not considered to be a pure object-oriented programming language. However, as
of Java 5.0, autoboxing enables programmers to proceed as if primitive types were instances of
their wrapper class.

Syntax
The syntax of Java is largely derived from C++. Unlike C++, which combines the syntax for
structured, generic, and object-oriented programming, Java was built almost exclusively as an
object oriented language. All code is written inside a class and everything is an object, with the
exception of the intrinsic data types (ordinal and real numbers, boolean values, and characters),
which are not classes for performance reasons.

Java suppresses several features (such as operator overloading and multiple inheritance) for
classes in order to simplify the language and to prevent possible errors and anti-pattern design.

Java uses similar commenting methods to C++. There are three different styles of comment: a
single line style marked with two slashes (//), a multiple line style opened with a slash asterisk
(/*) and closed with an asterisk slash (*/) and the Javadoc commenting style opened with a slash
and two asterisks (/**) and closed with an asterisk slash (*/). The Javadoc style of commenting
allows the user to run the Javadoc executable to compile documentation for the program.

Example:

//This is an example of a single line comment using two slashes

/* This is an example of a multiple line comment using the slash


and asterisk. This type of comment can be used to hold a lot of information
or deactivate code but it is very important to remember to close the comment. */

/** This is an example of a multiple line Javadoc comment

MUHAMMAD IDREES (0300 6719422) Page 26


Electronic Commerce 5576

which allows compilation from Javadoc of this comment. */

Examples
Hello world

The traditional Hello world program can be written in Java as:

// Outputs "Hello, world!" and then exits


public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}

Source files must be named after the public class they contain, appending the suffix .java, for
example, HelloWorld.java. It must first be compiled into bytecode, using a Java compiler,
producing a file named HelloWorld.class. Only then can it be executed, or 'launched'. The java
source file may only contain one public class but can contain multiple classes with less than
public access and any number of public inner classes.

A class that is not declared public may be stored in any .java file. The compiler will generate a
class file for each class defined in the source file. The name of the class file is the name of the
class, with .class appended. For class file generation, anonymous classes are treated as if their
name were the concatenation of the name of their enclosing class, a $, and an integer.

The keyword public denotes that a method can be called from code in other classes, or that a class
may be used by classes outside the class hierarchy. The class hierarchy is related to the name of
the directory in which the .java file is.

The keyword static in front of a method indicates a static method, which is associated only with
the class and not with any specific instance of that class. Only static methods can be invoked
without a reference to an object. Static methods cannot access any method variables that are not
static.

The keyword void indicates that the main method does not return any value to the caller. If a Java
program is to exit with an error code, it must call System.exit() explicitly.

The method name "main" is not a keyword in the Java language. It is simply the name of the
method the Java launcher calls to pass control to the program. Java classes that run in managed
environments such as applets and Enterprise JavaBean do not use or need a main() method. A java
program may contain multiple classes that have main methods, which means that the VM needs to
be explicitly told which class to launch from.

MUHAMMAD IDREES (0300 6719422) Page 27


Electronic Commerce 5576

The main method must accept an array of String objects. By convention, it is referenced as args
although any other legal identifier name can be used. Since Java 5, the main method can also use
variable arguments, in the form of public static void main(String... args), allowing the main method to
be invoked with an arbitrary number of String arguments. The effect of this alternate declaration
is semantically identical (the args parameter is still an array of String objects), but allows an
alternative syntax for creating and passing the array.

The Java launcher launches Java by loading a given class (specified on the command line or as
an attribute in a JAR) and starting its public static void main(String[]) method. Stand-alone programs
must declare this method explicitly. The String[] args parameter is an array of String objects
containing any arguments passed to the class. The parameters to main are often passed by means
of a command line.

Printing is part of a Java standard library: The System class defines a public static field called out.
The out object is an instance of the PrintStream class and provides many methods for printing data
to standard out, including println(String) which also appends a new line to the passed string.

The string "Hello, world!" is automatically converted to a String object by the compiler.

A more comprehensive example


// OddEven.java
import javax.swing.JOptionPane;

public class OddEven {


// "input" is the number that the user gives to the computer
private int input; // a whole number("int" means integer)

/*
* This is the constructor method. It gets called when an object of the OddEven type
* is being created.
*/
public OddEven() {
/*
* Code not shown for simplicity. In most Java programs constructors can initialize objects
* with default values, or create other objects that this object might use to perform its
* functions. In some Java programs, the constructor may simply be an empty function if nothing
* needs to be initialized prior to the functioning of the object. In this program's case, an
* empty constructor would suffice, even if it is empty. A constructor must exist, however if the
* user doesn't put one in then the compiler will create an empty one.
*/
}

// This is the main method. It gets called when this class is run through a Java interpreter.
public static void main(String[] args) {
/*
* This line of code creates a new instance of this class called "number" (also known as an
* Object) and initializes it by calling the constructor. The next line of code calls
* the "showDialog()" method, which brings up a prompt to ask you for a number
*/
OddEven number = new OddEven();

MUHAMMAD IDREES (0300 6719422) Page 28


Electronic Commerce 5576

number.showDialog();
}

public void showDialog() {


/*
* "try" makes sure nothing goes wrong. If something does,
* the interpreter skips to "catch" to see what it should do.
*/
try {
/*
* The code below brings up a JOptionPane, which is a dialog box
* The String returned by the "showInputDialog()" method is converted into
* an integer, making the program treat it as a number instead of a word.
* After that, this method calls a second method, calculate() that will
* display either "Even" or "Odd."
*/
input = Integer.parseInt(JOptionPane.showInputDialog("Please Enter A Number"));
calculate();
} catch (NumberFormatException e) {
/*
* Getting in the catch block means that there was a problem with the format of
* the number. Probably some letters were typed in instead of a number.
*/
System.err.println("ERROR: Invalid input. Please type in a numerical value.");
}
}

/*
* When this gets called, it sends a message to the interpreter.
* The interpreter usually shows it on the command prompt (For Windows users)
* or the terminal (For Linux users).(Assuming it's open)
*/
private void calculate() {
if (input % 2 == 0) {
System.out.println("Even");
} else {
System.out.println("Odd");
}
}
}

 The import statement imports the JOptionPane class from the javax.swing package.
 The OddEven class declares a single private field of type int named input. Every instance of the
OddEven class has its own copy of the input field. The private declaration means that no other
class can access (read or write) the input field.
 OddEven() is a public constructor. Constructors have the same name as the enclosing class they
are declared in, and unlike a method, have no return type. A constructor is used to initialize an
object that is a newly created instance of the class.
 The calculate() method is declared without the static keyword. This means that the method is
invoked using a specific instance of the OddEven class. (The reference used to invoke the method
is passed as an undeclared parameter of type OddEven named this.) The method tests the
expression input % 2 == 0 using the if keyword to see if the remainder of dividing the input field
belonging to the instance of the class by two is zero. If this expression is true, then it prints Even;

MUHAMMAD IDREES (0300 6719422) Page 29


Electronic Commerce 5576

if this expression is false it prints Odd. (The input field can be equivalently accessed as this.input,
which explicitly uses the undeclared this parameter.)
 OddEven number = new OddEven(); declares a local object reference variable in the main method
named number. This variable can hold a reference to an object of type OddEven. The declaration
initializes number by first creating an instance of the OddEven class, using the new keyword and
the OddEven() constructor, and then assigning this instance to the variable.
 The statement number.showDialog(); calls the calculate method. The instance of OddEven object
referenced by the number local variable is used to invoke the method and passed as the undeclared
this parameter to the calculate method.
 input = Integer.parseInt(JOptionPane.showInputDialog("Please Enter A Number")); is a statement
that converts the type of String to the primitive data type int by using a utility function in the
primitive wrapper class Integer.

Special classes

Applet

Java applets are programs that are embedded in other applications, typically in a Web page
displayed in a Web browser.

// Hello.java
import javax.swing.JApplet;
import java.awt.Graphics;

public class Hello extends JApplet {


public void paintComponent(Graphics g) {
g.drawString("Hello, world!", 65, 95);
}
}

The import statements direct the Java compiler to include the javax.swing.JApplet and
java.awt.Graphics classes in the compilation. The import statement allows these classes to be
referenced in the source code using the simple class name (i.e. JApplet) instead of the fully
qualified class name (i.e. javax.swing.JApplet).

The Hello class extends (subclasses) the JApplet (Java Applet) class; the JApplet class provides the
framework for the host application to display and control the lifecycle of the applet. The JApplet
class is a JComponent (Java Graphical Component) which provides the applet with the capability
to display a graphical user interface (GUI) and respond to user events.

The Hello class overrides the paintComponent(Graphics) method inherited from the Container
superclass to provide the code to display the applet. The paintComponent() method is passed a
Graphics object that contains the graphic context used to display the applet. The paintComponent()
method calls the graphic context drawString(String, int, int) method to display the "Hello, world!"
string at a pixel offset of (65, 95) from the upper-left corner in the applet's display.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"


"http://www.w3.org/TR/html4/strict.dtd">
<!-- Hello.html -->

MUHAMMAD IDREES (0300 6719422) Page 30


Electronic Commerce 5576

<html>
<head>
<title>Hello World Applet</title>
</head>
<body>
<applet code="Hello" width="200" height="200">
</applet>
</body>
</html>

An applet is placed in an HTML document using the <applet> HTML element. The applet tag has
three attributes set: code="Hello" specifies the name of the JApplet class and width="200"
height="200" sets the pixel width and height of the applet. Applets may also be embedded in
HTML using either the object or embed element,[33] although support for these elements by Web
browsers is inconsistent.[34] However, the applet tag is deprecated, so the object tag is preferred
where supported.

The host application, typically a Web browser, instantiates the Hello applet and creates an
AppletContext for the applet. Once the applet has initialized itself, it is added to the AWT display
hierarchy. The paintComponent() method is called by the AWT event dispatching thread whenever
the display needs the applet to draw itself.

Servlet

Java Servlet technology provides Web developers with a simple, consistent mechanism for
extending the functionality of a Web server and for accessing existing business systems. Servlets
are server-side Java EE components that generate responses (typically HTML pages) to requests
(typically HTTP requests) from clients. A servlet can almost be thought of as an applet that runs
on the server side—without a face.

// Hello.java
import java.io.*;
import javax.servlet.*;

public class Hello extends GenericServlet {


public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
final PrintWriter pw = response.getWriter();
pw.println("Hello, world!");
pw.close();
}
}

The import statements direct the Java compiler to include all of the public classes and interfaces
from the java.io and javax.servlet packages in the compilation.

The Hello class extends the GenericServlet class; the GenericServlet class provides the interface for
the server to forward requests to the servlet and control the servlet's lifecycle.

MUHAMMAD IDREES (0300 6719422) Page 31


Electronic Commerce 5576

The Hello class overrides the service(ServletRequest, ServletResponse) method defined by the Servlet
interface to provide the code for the service request handler. The service() method is passed a
ServletRequest object that contains the request from the client and a ServletResponse object used to
create the response returned to the client. The service() method declares that it throws the
exceptions ServletException and IOException if a problem prevents it from responding to the request.

The setContentType(String) method in the response object is called to set the MIME content type
of the returned data to "text/html". The getWriter() method in the response returns a PrintWriter
object that is used to write the data that is sent to the client. The println(String) method is called to
write the "Hello, world!" string to the response and then the close() method is called to close the
print writer, which causes the data that has been written to the stream to be returned to the client.

JavaServer Pages

JavaServer Pages (JSP) are server-side Java EE components that generate responses, typically
HTML pages, to HTTP requests from clients. JSPs embed Java code in an HTML page by using
the special delimiters <% and %>. A JSP is compiled to a Java servlet, a Java application in its
own right, the first time it is accessed. After that, the generated servlet creates the response.

Swing application

Swing is a graphical user interface library for the Java SE platform. It is possible to specify a
different look and feel through the pluggable look and feel system of Swing. Clones of
Windows, GTK+ and Motif are supplied by Sun. Apple also provides an Aqua look and feel for
Mac OS X. Where prior implementations of these looks and feels may have been considered
lacking, Swing in Java SE 6 addresses this problem by using more native GUI widget drawing
routines of the underlying platforms.

This example Swing application creates a single window with "Hello, world!" inside:

// Hello.java (Java SE 5)
import javax.swing.*;

public class Hello extends JFrame {


public Hello() {
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
add(new JLabel("Hello, world!"));
pack();
}

public static void main(String[] args) {


new Hello().setVisible(true);
}
}

The first import includes all of the public classes and interfaces from the javax.swing package.

MUHAMMAD IDREES (0300 6719422) Page 32


Electronic Commerce 5576

The Hello class extends the JFrame class; the JFrame class implements a window with a title bar and
a close control.

The Hello() constructor initializes the frame by first calling the superclass constructor, passing the
parameter "hello", which is used as the window's title. It then calls the setDefaultCloseOperation(int)
method inherited from JFrame to set the default operation when the close control on the title bar is
selected to WindowConstants.EXIT_ON_CLOSE — this causes the JFrame to be disposed of when
the frame is closed (as opposed to merely hidden), which allows the JVM to exit and the program
to terminate. Next, a JLabel is created for the string "Hello, world!" and the add(Component)
method inherited from the Container superclass is called to add the label to the frame. The pack()
method inherited from the Window superclass is called to size the window and lay out its
contents.

The main() method is called by the JVM when the program starts. It instantiates a new Hello
frame and causes it to be displayed by calling the setVisible(boolean) method inherited from the
Component superclass with the boolean parameter true. Once the frame is displayed, exiting the
main method does not cause the program to terminate because the AWT event dispatching thread
remains active until all of the Swing top-level windows have been disposed.

Generics

In 2004 generics were added to the Java language, as part of J2SE 5.0. Prior to the introduction
of generics, each variable declaration had to be of a specific type. For container classes, for
example, this is a problem because there is no easy way to create a container that accepts only
specific types of objects. Either the container operates on all subtypes of a class or interface,
usually Object, or a different container class has to be created for each contained class. Generics
allow compile-time type checking without having to create a large number of container classes,
each containing almost identical code.

Class libraries

Java Platform and Class libraries diagram

MUHAMMAD IDREES (0300 6719422) Page 33


Electronic Commerce 5576

 Java libraries are the compiled bytecodes of source code developed by the JRE implementor to
support application development in Java. Examples of these libraries are:
o The core libraries, which include:
 Collection libraries that implement data structures such as lists, dictionaries, trees
and sets
 XML Processing (Parsing, Transforming, Validating) libraries
 Security
 Internationalization and localization libraries
o The integration libraries, which allow the application writer to communicate with
external systems. These libraries include:
 The Java Database Connectivity (JDBC) API for database access
 Java Naming and Directory Interface (JNDI) for lookup and discovery
 RMI and CORBA for distributed application development
 JMX for managing and monitoring applications
o User interface libraries, which include:
 The (heavyweight, or native) Abstract Window Toolkit (AWT), which provides
GUI components, the means for laying out those components and the means for
handling events from those components
 The (lightweight) Swing libraries, which are built on AWT but provide (non-
native) implementations of the AWT widgetry
 APIs for audio capture, processing, and playback
 A platform dependent implementation of Java Virtual Machine (JVM) that is the means by which
the byte codes of the Java libraries and third party applications are executed
 Plugins, which enable applets to be run in Web browsers
 Java Web Start, which allows Java applications to be efficiently distributed to end-users across
the Internet
 Licensing and documentation.

Documentation
Javadoc is a comprehensive documentation system, created by Sun Microsystems, used by many
Java developers. It provides developers with an organized system for documenting their code.
Whereas normal comments in Java and C are set off with /* and */, the multi-line comment tags,
Javadoc comments have an extra asterisk at the beginning, so that the tags are /** and */.

Editions

Java editions

MUHAMMAD IDREES (0300 6719422) Page 34


Electronic Commerce 5576

Java Card

Micro Edition (ME)

Standard Edition (SE)

Enterprise Edition (EE)

PersonalJava (discontinued)

Sun has defined and supports four editions of Java targeting different application environments
and segmented many of its APIs so that they belong to one of the platforms. The platforms are:

 Java Card for smartcards.


 Java Platform, Micro Edition (Java ME) — targeting environments with limited resources.
 Java Platform, Standard Edition (Java SE) — targeting workstation environments.
 Java Platform, Enterprise Edition (Java EE) — targeting large distributed enterprise or Internet
environments.

The classes in the Java APIs are organized into separate groups called packages. Each package
contains a set of related interfaces, classes and exceptions. Refer to the separate platforms for a
description of the packages available.

The set of APIs is controlled by Sun Microsystems in cooperation with others through the Java
Community Process program. Companies or individuals participating in this process can
influence the design and development of the APIs. This process has been a subject of
controversy.

Sun also provided an edition called PersonalJava that has been superseded by later, standards-
based Java ME configuration-profile pairings.

MUHAMMAD IDREES (0300 6719422) Page 35


Electronic Commerce 5576

Q.3 Explain the internet as a network and FAT server.

What is a Network Server?

A network server is a computer that provides various shared resources to workstations and other
servers on a computer network. The shared resources can include disk space, hardware access,
and email services. Any computer can be a ―network server.‖ What separates a server from a
workstation is not the hardware, but rather the function performed by the computer. In general, a
workstation is any computer used by an individual person to perform his or her job duties, while
a network server is any computer that provides users with access to shared software or hardware
resources.

That said, servers are usually built with more powerful components than individual workstations.
For example, a server will usually have more random access memory (RAM) installed than a
workstation, or use a more robust operating system (OS). While this may increase the price of
the server relative to a single workstation, the overall cost can be significantly lower to an
organization.

In addition to the shared services these computers provide, network servers also help simplify the
management tasks for network and systems administrators. By centrally locating these services
on a single computer rather than on each workstation, configuration changes and security updates
need only be applied to the network server rather than to hundreds of individual workstations.
For example, one common function of network servers is to provide access to printers across the
network. Workstations accessing these printers obtain the necessary software from the network
server. If an updated version of that software becomes available, network administrators only
need to apply the update to the server.

One network server may also serve different roles. The print server mentioned above may also be
a file server and a domain name service (DNS) server. Other typical roles include mail server
and authentication server.

File servers provide a centrally-located pool of disk space for network users to store and share
various documents. These servers help organizations maintain single versions of files across
departments and simplify administration. Because all the data is stored in one location,
administrators need only backup files from one computer.

MUHAMMAD IDREES (0300 6719422) Page 36


Electronic Commerce 5576

MUHAMMAD IDREES (0300 6719422) Page 37


Electronic Commerce 5576

FAT Server & FAT Client:

Fat server definition:

A server in a client/server environment that performs most or all of the application processing
with little or none performed in the client. The counterpart to a fat server is a thin client. Contrast
with fat client. See two-tier client/server.

 Client/Server applications can also be differentiated by how the distributed application is


split between the client and the server.
 The fat server model places more function on the server.
 The fat client does the reverse.
 Groupware, transaction and the web servers are examples of fat servers; database and file
servers are examples of fat clients.
 Distributed objects can be either.

MUHAMMAD IDREES (0300 6719422) Page 38


Electronic Commerce 5576

Fat Client

 Fat clients are the more traditional form of client/server.


 The bulk of the application runs on the client side of the equation.
 In both the file server and database server models, the clients know how the data is organized and
stored on the server side.
 Fat clients are used for decision support and personal software.
 They provide flexibility and opportunities for creating front-end tools that let end-users create their
own applications.

Fat Server:

 Fat Server applications are easier to manage and deploy on the network because most of the code
runs on the servers.
 Fat servers try to minimize network interchanges by creating more abstract levels of service.
 Transaction and object servers, for example, encapsulate the database.
 The client in the fat server model provides the GUI and interacts with the server through remote
procedure calls (or method invocations)

MUHAMMAD IDREES (0300 6719422) Page 39


Electronic Commerce 5576

 These are used for mission-critical applications, represent the new growth area fro PC-based
client/server computing.

MUHAMMAD IDREES (0300 6719422) Page 40


Electronic Commerce 5576

Q.4 Write a brief note on the following and give some example to prove as
practical implementation of these terms.
a. The Physical Infrastructure of Internet

b. HTML (Hyper Text Markup Language)

c. Client/Server applications

d. Virtual Reality

A. The Physical Infrastructure of Internet

MUHAMMAD IDREES (0300 6719422) Page 41


Electronic Commerce 5576

Network Infrastructure

While you are documenting your current network environment, take special note of areas where
you are currently experiencing problems. If you stabilize your network before deploying a new
operating system, deployment and troubleshooting will be easier, and you can have increased
confidence in the upgraded network. Setting up a test lab to duplicate problems and
configurations is a good way to evaluate the impact of deploying Windows 2000 with a given set
of protocols, hardware drivers, and client/server configurations. For more information about
setting up a test lab, see "Building a Windows 2000 Test Lab" in this book.

When documenting your network infrastructure, you are obtaining both hardware data to
document your infrastructure's physical structure and software data to document the existence
and configuration of the protocols in use on your network. You also need to document the logical
organization of your network, name and address resolution methods, and the existence and
configuration of services used. Documenting the location of your network sites and the available
bandwidth between them will also assist you in deciding whether to perform push or on-demand
installations when you upgrade or migrate to Windows 2000. For more information about
installing, upgrading, and migrating to the Windows 2000 operating system, see "Automating
Client Installation and Upgrade" and "Automating Server Installation and Upgrade" in this book.

Developing a physical and logical diagram of your network will help you organize the
information you gather in an understandable and intuitive manner.

Physical Network Diagram

The physical diagram presents the following information about your existing network:

 Details of physical communication links, such as cable length, grade, and approximation
of the physical paths of the wiring, analog, and ISDN lines.
 Servers, with computer name, IP address (if static), server role, and domain membership.
A server can operate in many roles, including primary or backup domain controller,
Dynamic Host Configuration Protocol (DHCP) service server, Domain Name System
(DNS) server, Windows Internet Name Service (WINS) server, print server, router, and
application or file server.
 Location of devices such as printers, hubs, switches, modems, routers and bridges, and
proxy servers that are on the network.
 Wide area network (WAN) communication links (analog and ISDN) and the available
bandwidth between sites. This could be an approximation or the actual measured
capacity.
 Number of users at each site, including mobile users.

Figure 1 is an example of a physical network diagram.

MUHAMMAD IDREES (0300 6719422) Page 42


Electronic Commerce 5576

Figure 1 Physical Network Diagram

Document firmware version, throughput, and any special configuration requirements for any
devices on the network. If you assign static IP addresses to any of these devices, record them.
For more information about network connectivity and Windows 2000, see "Determining
Network Connectivity Strategies" in this book.

MUHAMMAD IDREES (0300 6719422) Page 43


Electronic Commerce 5576

Logical Network Diagram

The logical diagram shows the network architecture, including the following information:

 Domain architecture, including the existing domain hierarchy, names, and addressing
scheme.
 Server roles, including primary or backup domain controllers, DHCP service servers, or
WINS servers.
 Trust relationships, including representations of transitive, one-way, and two-way trust
relationships.

Figure 2 is an example of a logical network diagram.

Figure 2 Logical Network Diagram

Network Configuration

In general, the areas of your network configuration that you need to document are listed in the
following sections.

Name Resolution Services

Ensure that you have documented all DNS and WINS servers that are on your network, noting
configuration and version information as well as hardware details. Note whether any of the DNS
servers not running Windows NT on your network can support dynamic registration and Service
(SRV) resource records, and whether upgrades for this capability are available from the software
manufacturer.

If you have hosts on your network that are not running Windows NT, document the services they
use and provide, such as UNIX BIND. You should also document the version of each service in
use. For example, if BIND is used on your network, note that versions earlier than 4.9.4 are not

MUHAMMAD IDREES (0300 6719422) Page 44


Electronic Commerce 5576

compatible with Windows 2000. Document Service Advertising Protocol (SAP) and Routing
Information Protocol (RIP) services, if either are presently in use on your network.

IP Addressing Methods and Service Configurations

Ensure that you have documented all DHCP service servers on your network, including the
following:

 Any IP addresses that you have assigned servers or client computers.


 DHCP settings, such as the default gateway.
 Details of your subnets, and relate them to your overall domain structure.
 The number of subnets and hosts on your network, and record the IP addresses and
submasks used on your network.
 How long a client can lease an IP address on your network.

Remote and Dial-up Networking

If you have remote or mobile users, document your remote access and dial-up configurations. If
you use third-party software for mobile users, review and document the configuration of those
products. If you use virtual private networks (VPNs), document the configuration of your VPN
with the goal of evaluating whether you can replace it with Windows 2000 VPN.

Bandwidth Issues

Document your network's current bandwidth utilization. Do this to establish a baseline from
which changes can be measured. You can use a variety of third-party and Microsoft tools to
measure bandwidth metrics such as bytes and packets sent or received, transmit and receive
errors, and packets per second. Document the speed of the network links between your
organization's network segments and geographical locations.

Look at the logical and geographical dispersion of your organization in terms of bandwidth
considerations. Does it have branch offices, or mobile or remote employees? Consider the
amount and type of traffic over your organization's communication links. For instance, are your
WAN links periodically slowed by domain replication between domain controllers at different
sites? Document the net available bandwidth of all WAN links and network segments. Try to
record available bandwidth during the course of low, normal, and high network utilization.

- HTML (Hypertext Markup Language) is the set of markup symbols or codes inserted in a file
intended for display on a World Wide Web browser page. The markup tells the Web browser how to
display a Web page's words and images for the user. Each individual markup code is referred to as an
element (but many people also refer to it as a tag). Some elements come in pairs that indicate when some
display effect is to begin and when it is to end.

MUHAMMAD IDREES (0300 6719422) Page 45


Electronic Commerce 5576

B. HTML (Hyper Text Markup Language)

HTML is a formal Recommendation by the World Wide Web Consortium (W3C) and is
generally adhered to by the major browsers, Microsoft's Internet Explorer and Netscape's
Navigator, which also provide some additional non-standard codes. The current version of
HTML is HTML 4.0. However, both Internet Explorer and Netscape implement some features
differently and provide non-standard extensions. Web developers using the more advanced
features of HTML 4 may have to design pages for both browsers and send out the appropriate
version to a user. Significant features in HTML 4 are sometimes described in general as dynamic
HTML. What is sometimes referred to as HTML 5 is an extensible form of HTML called
Extensible Hypertext Markup Language (XHTML).

C. Client/Server applications
Client/server describes the relationship between two computer programs in which one program, the client,
makes a service request from another program, the server, which fulfills the request. Although the
client/server idea can be used by programs within a single computer, it is a more important idea in a
network. In a network, the client/server model provides a convenient way to interconnect programs that
are distributed efficiently across different locations. Computer transactions using the client/server model
are very common. For example, to check your bank account from your computer, a client program in your
computer forwards your request to a server program at the bank. That program may in turn forward the
request to its own client program that sends a request to a database server at another bank computer to
retrieve your account balance. The balance is returned back to the bank data client, which in turn serves it
back to the client in your personal computer, which displays the information for you.

The client/server model has become one of the central ideas of network computing. Most
business applications being written today use the client/server model. So does the Internet's main
program, TCP/IP. In marketing, the term has been used to distinguish distributed computing by
smaller dispersed computers from the "monolithic" centralized computing of mainframe
computers. But this distinction has largely disappeared as mainframes and their applications have
also turned to the client/server model and become part of network computing.

In the usual client/server model, one server, sometimes called a daemon, is activated and awaits
client requests. Typically, multiple client programs share the services of a common server
program. Both client programs and server programs are often part of a larger program or
application. Relative to the Internet, your Web browser is a client program that requests services
(the sending of Web pages or files) from a Web server (which technically is called a Hypertext
Transport Protocol or HTTP server) in another computer somewhere on the Internet. Similarly,
your computer with TCP/IP installed allows you to make client requests for files from File
Transfer Protocol (FTP) servers in other computers on the Internet.

Other program relationship models included master/slave, with one program being in charge of
all other programs, and peer-to-peer, with either of two programs able to initiate a transaction.

MUHAMMAD IDREES (0300 6719422) Page 46


Electronic Commerce 5576

D. Virtual Reality
Virtual reality is an artificial environment that is created with software and presented to the user in such a
way that the user suspends belief and accepts it as a real environment. On a computer, virtual reality is
primarily experienced through two of the five senses: sight and sound. The simplest form of virtual reality
is a 3-D image that can be explored interactively at a personal computer, usually by manipulating keys or
the mouse so that the content of the image moves in some direction or zooms in or out. More
sophisticated efforts involve such approaches as wrap-around display screens, actual rooms augmented
with wearable computers, and haptics devices that let you feel the display images.

Virtual reality can be divided into:

 The simulation of a real environment for training and education.


 The development of an imagined environment for a game or interactive story.

Popular products for creating virtual reality effects on personal computers include Bryce,
Extreme 3D, Ray Dream Studio, trueSpace, 3D Studio MAX, and Visual Reality. The Virtual
Reality Modelling Language (VRML) allows the creator to specify images and the rules for their
display and interaction using textual language statements.

MUHAMMAD IDREES (0300 6719422) Page 47


Electronic Commerce 5576

Q.5 Explain the following:

a. Internet Telephony

b. Fat servers or fat clients

c. Way of Classifying Business Model

d. Thin client Vs. other networks

A. Internet telephony
 A category of hardware and software that enables people to use the Internet as the transmission
medium for telephone calls. For users who have free, or fixed-price Internet access, Internet
telephony software essentially provides free telephone calls anywhere in the world. To date,
however, Internet telephony does not offer the same quality of telephone service as direct
telephone connections.

 There are many Internet telephony applications available. Some, like CoolTalk and
NetMeeting, come bundled with popular Web browsers. Others are stand-alone products.
Internet telephony products are sometimes called IP telephony, Voice over the Internet
(VOI) or Voice over IP (VOIP) products.
 Internet telephony refers to the science or technology of integrating telephone services
into computer networks. In essence, Internet telephony converts analog voice signals into
digital signals, transmits them, then converts them back again. Voice over IP (VoIP) is a
common Internet telephony service.
 With traditional telephone service, sometimes referred to as POTS (Plain Old Telephone
Service), voice signals use telephone lines -- copper wires -- and circuit switches to
communicate. Internet telephony eliminates the telco company all together by using
computer networks to send voice signals. All information is transferred across the
Internet in "data packets." For example, if you send your friend an email, the email is
broken up into a series of data packets that each take their own route to the destination
mail server. Once there, the packets reassemble themselves into the full email message.

 Internet telephony also transmits using data packets. Analog voice signals are digitized,
sent in discreet packets to the destination, reassembled and reverted back to analog
signals. By using Internet telephony, one can place long-distance calls free of telephone
charges. The catch is that both parties must have Internet telephony software. If Internet
telephony is used to call a land-line or cell phone, charges apply, though they are usually
minimal.
 One online VoIP service provides free Internet telephony software and uses a prepaid
system to keep monies on account for calling from Internet telephony to a land line. The

MUHAMMAD IDREES (0300 6719422) Page 48


Electronic Commerce 5576

charge is a mere 2 cents (U.S.) or 1.7 Euro cents per minute, per call. The rate does not
change, whether calling someone local or in another country. Again, if both parties use
VoIP software, there is no charge at all.
 Internet telephony has drastically improved since its first incarnations. Initial VoIP was
very poor quality, but now many users report land line-like quality. There are many
advantages to using Internet telephony, not just for family members and friends to stay in
touch free of charge, but for multi-state or multi-national corporate PBXs where routine
long distance calls between offices are significant. A potential disadvantage of using
Internet telephony for corporate environments is that VoIP tends to have more downtime
than POTS. Computer or network problems can interfere with Internet telephony, though
many VoIP programs kick calls to POTS if there is a problem.

MUHAMMAD IDREES (0300 6719422) Page 49


Electronic Commerce 5576

B. Fat Servers OR Fat Clients


 Client/Server applications can also be differentiated by how the distributed application is split
between the client and the server.
 The fat server model places more function on the server.
 The fat client does the reverse.
 Groupware, transaction and the web servers are examples of fat servers; database and file servers
are examples of fat clients.
 Distributed objects can be either.

Fat Client

 Fat clients are the more traditional form of client/server.


 The bulk of the application runs on the client side of the equation.
 In both the file server and database server models, the clients know how the data is organized and
stored on the server side.
 Fat clients are used for decision support and personal software.
 They provide flexibility and opportunities for creating front-end tools that let end-users create
their own applications.

Fat Server:

 Fat Server applications are easier to manage and deploy on the network because most of the code
runs on the servers.
 Fat servers try to minimize network interchanges by creating more abstract levels of service.
 Transaction and object servers, for example, encapsulate the database.
 The client in the fat server model provides the GUI and interacts with the server through remote
procedure calls (or method invocations)
 These are used for mission-critical applications; represent the new growth area fro PC-based
client/server computing.

MUHAMMAD IDREES (0300 6719422) Page 50


Electronic Commerce 5576

C. Way of Classifying Business Model

Five Business Models of e-Commerce

"There's no such thing as a free lunch!" While this simple economic aphorism seems to have
been forgotten in the world of cyberspace, it holds true as much today as it ever has. First lets
establish the fact that no site is free - every web site costs money. The web site is stored on a
computer, uses web server software, accesses telecommunication resources, and must be
maintained. Someone must pay for the computers, software, telecommunication charges, and
time. The omnipresent cost either comes from your pocket or some benevolent benefactor.

The cost and potential revenue constitutes a business model. Therefore, even the "free" sites have
a business model. A public site offered by a library, school, or university has a business model.
Free email service has a business model. Free home pages fit into a business model. Every site in
the entire world wide web has a business model. There are different business models underlying
each website.

In actuality, five distinct eCommerce business models form the basic structure for the wide
variety of websites today. The five categories are called vanity, billboard, advertising,
subscriptions, and storefront sites. [Editor's Note: Mr. Samuelsen considers affiliate programs to
be a variant on the storefront model.] While not all drive revenue directly, they all incur costs. In
addition, many sites combine several of the five identified business models. Each of the five
models have unique characteristics which make it different from the other types. Therefore, it is
important to understand their differences.

Vanity: Many web sites are started as vanity sites. These sites are often created by individuals as
an outlet of self expression, to share a hobby, promote a cause, or find others with similar
interests. These sites are created with no intentions of deriving revenue and no illusions of
grandeur. It could be as simple as a one page family site or a complex forum on a specific topic.
The costs are borne either by the individual or by some altruistic enterprise such as universities,
libraries, communities, associations, and even businesses. Nevertheless, the costs are real of
these "free" sites.

Billboard: Billboard sites (also called brochure or information sites) are designed to derive
economic benefit through indirect means from either referred sales, reduced cost, or both.
Revenue comes from creating awareness of its products or services via the web, with the actual
purchase transaction occurring off-line. Just like a billboard on a highway, success is measured
on viewership as net citizens "surf" by and are influenced to purchase product. Most corporate
sites today put up these electronic brochures to provide information about their products,
employment information, or public information. Economic benefit is created through the indirect
purchase of goods or services from existing physical outlets and cost savings through the
elimination of infrastructure or inefficiency. Finally, some businesses feel this is the best way to
avoid channel conflict'a potential pricing disparity between different supply chains.

Advertising: Network television, radio, and many periodicals follow the advertising model. All
programming and content is funded by advertising dollars, with consumer viewership measuring

MUHAMMAD IDREES (0300 6719422) Page 51


Electronic Commerce 5576

value. Agencies conduct sophisticated surveys to measure the value and establish the pricing. For
eCommerce, advertising can be in the form of banners, sponsorships, ezine ads, and other
promotion methods.

This is a much-ballyhooed but still largely unproven model on the web. While there are a few
sites that are entirely supported by advertising dollars, the lack of web-savvy viewership
statistics hinder the mass adoption by advertisers. As the knowledge of consumer behavior is
further understood, experts will prepare purchase pattern analyses providing advertisers with
empirical data to support their promotion campaigns.

Subscriptions: In other media, the subscription models are well established'accepted by


subscribers and nurtured by publishers. On the web, subscriptions are not yet widely accepted by
consumers. Of those that are accepted, the subscription model caters to sites targeted to particular
niches of individuals who have specific needs. These sites are often specialized with expert
content and timely information. The subscriptions fund the development and maintenance of the
site.

Subscriptions can be paid on a weekly, monthly, or annual basis. Payment through a credit card
account is a common payment scheme for subscription sites because of the ability to periodically
process the purchase transaction electronically.

Storefront: To some people, a products-offered site is narrowly defined as a "true" eCommerce


site. A website that offers products for sale is the electronic version of a catalog. These virtual
storefronts are built to describe the offering with pictures and words, offer promotions, provide a
"shopping cart," and complete the purchase transaction. Once the product is purchased, the cyber
enterprise arranges for product fulfillment including shipping and handling. The fulfillment is
sometimes completed by the website enterprise or directly from the manufacturer in a drop
shipping arrangement. Some manufacturers are now passing up the intermediary wholesalers and
retailers by offering their products directly to consumers. This collapsing of the supply chain is
called disintermediation.

Although the vast majority of these sites offer tangible products, they can work for service
products too. The primary characteristic of these types of sites is the ability to make a one time
purchase with no future obligations.

While it is impossible to predict the future in this fast moving media, it is obvious that all five
business models will remain viable for the near term. Each model will continue to mature both in
its acceptance and sophistication. Consumers will increasingly look to the web for physical
commerce alternatives because of the limitlessness of the media both in terms of geography and
shopping hours. For net entrepreneurs, each model should be examined carefully to understand
which model provides the maximum benefit. With the understanding of the business models,
financial projections can be easily created and business plans finalized. With the business plan in
hand, you will realize even in cyberspace, there is no such thing as a free lunch.

MUHAMMAD IDREES (0300 6719422) Page 52


Electronic Commerce 5576

d. Thin client Vs. other networks

A thin client (sometimes also called a lean or slim client) is a computer or a computer program
which depends heavily on some other computer (its server) to fulfill its traditional computational
roles. This stands in contrast to the traditional fat client, a computer designed to take on these
roles by itself. The exact roles assumed by the server may vary, from providing data persistence
(for example, for diskless nodes) to actual information processing on the client's behalf.

Thin clients occur as components of a broader computer infrastructure, where many clients share
their computations with the same server. As such, thin client infrastructures can be viewed as the
amortization of some computing service across several user-interfaces. This is desirable in
contexts where individual fat clients have much more functionality or power than the
infrastructure either requires or uses. This can be contrasted, for example, with grid computing.

History

Thin clients have their roots in multi-user systems, traditionally mainframes accessed by some
sort of terminal computer. As computer graphics matured, these terminals transitioned from
providing a command-line interface to a full graphical user interface, as is common on modern
thin clients. The prototypical multiuser environment along these lines was Unix, and fully
graphical X terminals were relatively popular thin clients in the 1990s. Modern Unix derivatives
like BSD and GNU/Linux continue this multi-user tradition.

Windows NT became capable of multi-user operations due primarily to the efforts of Citrix
Systems, which repackaged NT 3.5.1 as the multi-user operating system WinFrame. Microsoft
licensed this technology back from Citrix and implemented it into Windows NT 4.0 Terminal

MUHAMMAD IDREES (0300 6719422) Page 53


Electronic Commerce 5576

Server Edition, under a project codenamed "Hydra." Windows NT then became the basis of
Windows 2000 and Windows XP. Today, Windows allows graphical terminals via its Remote
Desktop Services component.

The term thin client was coined in 1993 by Tim Negris, VP of Server Marketing at Oracle Corp.,
while working with company founder Larry Ellison on the launch of Oracle 7. At the time,
Oracle wished to differentiate their server-oriented software from Microsoft's desktop-oriented
products. Negris's buzzword was then popularized by its frequent use in Ellison's speeches and
interviews about Oracle products.

The term stuck for several reasons. The earlier term "graphical terminal" was chosen to contrast
such terminals with text-based terminals, and thus puts the emphasis on graphics. The term was
also not well-established among IT professionals, most of whom had been working on fat-client
systems. It also conveys better the fundamental hardware difference: thin clients can be designed
with much more modest hardware, because they perform much more modest operations.

Other Networks
Rockwell Automation supports other application-specific networks including:

 Data Highway Plus (DH+) Industrial Local Area Network — A local area network designed to
support remote programming and messaging between computers and controllers for factory-
floor applications.
 Universal Remote I/O Link — A local area network designed to connect controllers to remote
I/O chassis and a host of intelligent devices such as operator interfaces and ac/dc drives.
 DH-485 Industrial Local Area Network — Designed for factory-floor applications, this local area
network uses the RS-485 transmission standard.

MUHAMMAD IDREES (0300 6719422) Page 54


Electronic Commerce 5576

Motion Networks

 SERCOS (Serial Real-time Communications System) — Internationally-approved communication


standard for motion control (IEC 61491), this communication network is designed for high-speed
serial communication of standardized closed-loop data (in real-time) over a noise-immune fiber-
optic cable. Rockwell Automation supports SERCOS with interface motion modules which
provide SERCOS drive connectivity and control for the ControlLogix controller.

Process Networks

 FOUNDATION Fieldbus — A local area network standard that describes connecting controllers
to devices in process applications. Rockwell Automation supports FOUNDATION Fieldbus with
linking devices.
 HART — A widely accepted standard for digitally enhanced communications with
instrumentation within the process industries. Rockwell Automation supports HART with linking
devices.

MUHAMMAD IDREES (0300 6719422) Page 55


Electronic Commerce 5576

MUHAMMAD IDREES (0300 6719422) Page 56