Wi-Fi is primarily a local area networking (LAN) technology designed to provide in-building broadband coverage.
Wi-Fi is based on IEEE 802.11 specification.
This tutorial gives you basic understanding on Wi-Fi.
What is Wi-Fi ?
Wi-Fi stands for Wireless Fidelity. Wi-Fi is based on the IEEE 802.11 family of standards and is primarily a local area networking (LAN) technology designed to provide in-building broadband coverage.
Current Wi-Fi systems based on IEEE 802.11a/g support a peak physical-layer data rate of 54Mbps and typically provide indoor coverage over a distance of 100 feet.
Wi-Fi has become the defacto standard for last feet broadband connectivity in homes, offices, and public hotspot locations. systems can typically provide a coverage range of only about 1,000 feet from the access point.
Wi-Fi offers remarkably higher peak data rates than do 3G systems, primarily since it operates over a larger 20MHz bandwidth but Wi-Fi systems are not designed to support high-speed mobility.
One significant advantage of Wi-Fi over WiMAX and 3G is the wide availability of terminal devices. A vast majority of laptops shipped today have a built-in Wi-Fi interface. Wi-Fi interfaces are now also being built into a variety of devices, including personal data assistants (PDAs), cordless phones, cellular phones, cameras, and media players.
Wi-Fi is Half Duplex:
All Wi-Fi networks are contention-based TDD systems where the access point and the mobile stations all vie for use of the same channel. Because of the shared media operation, all Wi-Fi networks are half duplex.
There are equipment vendors who market Wi-Fi mesh configurations, but those implementations incorporate technologies that are not defined in the standards.
Channel Bandwidth:
The WiFi standards define a fixed channel bandwidth of 25 MHz for 802.11b and 20 MHz for either 802.11a or g networks.
Wi-Fi Working Concepts
There are three most important items which makes Wi-Fi working in your laptop or desktop. These are:
•Radio Signals
•Wi-Fi Card which fits in your laptop or computer.
•Hotspots which create Wi-Fi Network.
Radio Signals:
Radio Signals are the keys which make WiFi networking possible. These radio signals transmitted from Wi-Fi antennas are picked up by WiFi receivers such as computers and cell phones that are equipped with WiFi cards. Whenever a computer receives any of the signals within the range of a WiFi network which is usually 300 - 500 feet for antennas, the WiFi card will read the signals and thus create an internet connection between the user and the network without the use of a cord.
Access points which consist of antennas and routers are the main source which transmit and receive radio waves.
Antennas work stronger and have a longer radio transmission with a radius of 300-500 feet which are used in public areas while the weaker yet effective router is more suitable for homes with a radio transmission of 100-150 feet.
Wi-Fi Cards:
You can think WiFi card as being an invisible cord that connects your computer to the antenna for a direct connection to the internet.
WiFi cards can be external or internal, meaning that if a WiFi card is not installed in your computer, you may purchase a USB antenna attachment and have it externally connect to your USB port, or have an antenna-equipped expansion card installed directly to the computer. For laptops, this card will be a PCMCIA card in which you insert to the PCMCIA slot on the laptop.
Wi-Fi Hotspots:
A Wi-Fi hotspot is created by installing an access point to an internet connection. The access point transmits a wireless signal over a short distance . typically covering around 300 feet. When a Wi-Fi .enabled device, such as a Pocket PC, encounters a hotspot, the device can then connect to that network wirelessly.
Most hotspots are located in places that are readily accessible to the public, like airports, coffee shops, hotels, book stores and campus environments. 802.11b is the most common specification for hotspots worldwide. The 802.11g standard is backwards compatible with .11b but .11a uses a different frequency range and requires separate hardware such as an a, a/g, or a/b/g adapter. The largest public Wi-Fi networks are provided by private internet service providers (ISPs) that charge a fee for users to connect to the internet.
Hotspots are increasingly developing around the world. In fact, T-mobile USA controls more than 4,100 hotspots located in public locations such as Starbucks, Borders, Kinko.s, and the airline clubs of Delta, United, and US Airways. Even select McDonald.s restaurants now feature Wi-Fi hotspot access.
Any notebook computer with integrated wireless, a wireless adapter attached to the motherboard by the manufacturer, or a wireless adapter such as a PCMCIA card can access a wireless network. Furthermore, all Pocket PCs or Palm units with Compact Flash, SD I/O support, or built-in Wi-Fi, can access hotspots.
Some Hotspots require WEP key to connect that is the connection is considered to be private or secure. As for open connections, anyone with a WiFi card can gain access to that hotspot. So in order for a user to gain access to the internet under WEP, the user must input the WEP key code.
Wi-Fi IEEE Standards
The 802.11 standard is defined through several specifications of WLANs. It defines an over-the-air interface between a wireless client and a base station or between two wireless clients.
There are several specifications in the 802.11 family:
•802.11: This pertains to wireless LANs and provides 1- or 2-Mbps transmission in the 2.4-GHz band using either frequency-hopping spread spectrum (FHSS) or direct-sequence spread spectrum (DSSS).
•802.11a: This is an extension to 802.11 that pertains to wireless LANs and goes as fast as 54 Mbps in the 5-GHz band. 802.11a employs the orthogonal frequency division multiplexing (OFDM) encoding scheme as opposed to either FHSS or DSSS.
•802.11b: The 802.11 high rate Wi-Fi is an extension to 802.11 that pertains to wireless LANs and yields a connection as fast as 11 Mbps transmission (with a fallback to 5.5, 2, and 1 Mbps depending on strength of signal) in the 2.4-GHz band. The 802.11b specification uses only DSSS. Note that 802.11b was actually an amendment to the original 802.11 standard added in 1999 to permit wireless functionality to be analogous to hard-wired Ethernet connections.
•802.11g: This pertains to wireless LANs and provides 20+ Mbps in the 2.4-GHz band.
Freature Wi-Fi Wi-Fi
(802.11b) (802.11a/g)
Primary Wireless LAN Wireless LAN
Application
Frequency Band 2.4 GHz ISM 2.4 GHz ISM (g)
5 GHz U-NII (a)
Channel 25 MHz 20 MHz
Bandwidth
Half/Full Duplex Half Half
Radio Technology Direct Sequence OFDM
Spread Spectrum (64-channels)
Bandwidth <=0.44 bps/Hz <=2.7 bps/Hz Efficiency Modulation QPSK BPSK, QPSK, 16-, 64-QAM FEC None Convolutional Code Encryption Optional- RC4 Optional- RC4 (AES in 802.11i) (AES in 802.11i) Mobility In development In development Mesh Vendor Vendor Proprietary Proprietary Access Protocol CSMA/CA CSMA/CA Wi-Fi Access Protocol
IEEE 802.11 wireless LANs use a media access control protocol called Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA). While the name is similar to Ethernet.s Carrier Sense Multiple Access with Collision Detection (CSMA/CD), the operating concept is totally different.
Wi-Fi systems are half duplex shared media configurations where all stations transmit and receive on the same radio channel. The fundamental problem this creates in a radio system is that a station cannot hear while it is sending, and hence it impossible to detect a collision. Because of this, the developers of the 802.11 specifications came up with a collision avoidance mechanism called the Distributed Control Function (DCF).
According to DCF, A Wi-Fi station will transmit only if it thinks the channel is clear. All transmissions are acknowledged, so if a station does not receive an acknowledgement, it assumes a collision occurred and retries after a random waiting interval.
The incidence of collisions will increase as the traffic increases or in situations where mobile stations cannot hear each other.
Wi-Fi Quality of Service (QoS)
There are plans to incorporate quality of service (QoS) capabilities in Wi-Fi with the adoption of the IEEE 802.11e standard. The 802.11e standard will include two operating modes, either of which can be used to improve service for voice:
•Wi-Fi Multimedia Extensions (WME)- Mandatory.
•Wi-Fi Scheduled Multimedia (WSM)- Optional.
Wi-Fi Multimedia Extensions (WME):
This uses a protocol called Enhanced Multimedia Distributed Control Access (EDCA), which is Extensions an enhanced version of the Distributed Control Function (DCF) defined in the original 802.11 MAC.
The enhanced part is that EDCA will define eight levels of access priority to the shared wireless channel. Like the original DCF, the EDCA access is a contention-based protocol that employs a set of waiting intervals and back-off timers designed to avoid collisions. However, with DCF, all stations use the same values and hence have the same priority for transmitting on the channel.
With EDCA, each of the different access priorities is assigned a different range of waiting intervals and back-off counters. Transmissions with higher access priority are assigned shorter intervals. The standard also includes a packet-bursting mode that allows an access point or a mobile station to reserve the channel and send 3- to 5-packets in sequence.
Wi-Fi Scheduled Multimedia (WSM):
True consistent delay services can be provided with the optional Wi-Fi Scheduled Multimedia (WSM). WSM operates like the little used Point Control Function (PCF) defined with the original 802.11 MAC.
In WSM, the access point periodically broadcasts a control message that forces all stations to treat the channel as busy and not attempt to transmit. During that period, the access point polls each station that is defined for time sensitive service.
To use the WSM option, devices must first send a traffic profile describing bandwidth, latency, and jitter requirements. If the access point does not have sufficient resources to meet the traffic profile, it will return a busy signal
Wi-Fi Security
Security has been one of the major deficiencies in Wi-Fi, though better encryption systems are now becoming available. Encryption is optional in Wi-Fi, and three different techniques have been defined. These techniques are given here:
Wired Equivalent Privacy (WEP):
An RC4-based 40-or 104-bit encryption with a static key.
Wi-Fi Protected Access (WPA):
This is a new standard from the Wi-Fi Alliance that uses the 40 or 104-bit WEP key, but it changes the key on each packet. That changing key functionality is called the Temporal Key Integrity Protocol (TKIP).
IEEE 802.11i/WPA2:
The IEEE is finalized the 802.11i standard, which is based on a far more robust encryption technique called the Advanced Encryption Standard. The Wi-Fi Alliance designate products that comply with the 802.11i standard as WPA2.
However, implementing 802.11i requires a hardware upgrade.
Wi-Fi Network Services
The picture has become somewhat confused as service providers started using Wi-Fi to deliver services for which it was not originally designed. The two major examples of this are wireless ISPs and city-wide Wi-Fi mesh networks.
Wireless ISPs (WISPs):
One business that grew out of Wi-Fi was the Wireless ISP (WISP). This is the idea of selling an Internet access service using wireless LAN technology and a shared Internet connection in a public location designated a hot spot.
From a technical standpoint, access to the service is limited based on the transmission range of the WLAN technology. You have to be in the hot spot (i.e. within 100m of the access point) to use it. From a business standpoint, users either subscribe to a particular carrier.s service for a monthly fee or access the service on a demand basis at a fee per hour. While the monthly fee basis is most cost effective, there are few intercarrier access arrangements so you have to be in a hot spot operated by your carrier in order to access your service.
City-Wide Mesh Networks:
To address the limited range, vendors like Mesh Networks and Tropos Networks have developed mesh network capabilities using Wi-Fi's radio technology.
The idea of a radio mesh network is that messages can be relayed through a number of access points to a central network control station. These networks can typically support mobility as connections are handed off from access point to access point as the mobile station moves.
Some municipalities are using Wi-Fi mesh networks to support public safety applications (i.e. terminals in police cruisers) and to provide Internet access to the community (i.e. the city-wide hot spot).
Wi-Fi Radio Modulation
WiFi systems use two primary radio transmission techniques.
•802.11b (<=11 Mbps): The 802.11b radio link uses a direct sequence spread spectrum technique called complementary coded keying (CCK). The bit stream is processed with a special coding and then modulated using Quadrature Phase Shift Keying (QPSK). •802.11a and g (<=54 Mbps): The 802.11a and g systems use 64-channel orthogonal frequency division multiplexing (OFDM). In an OFDM modulation system, the available radio band is divided into a number of sub-channels, and some of the bits are sent on each. The transmitter encodes the bit streams on the 64 subcarriers using Binary Phase Shift Keying (BPSK), Quadrature Phase Shift Keying (QPSK), or one of two levels of Quadrature Amplitude Modulation (16, or 64-QAM). Some of the transmitted information is redundant, so the receiver does not have to receive all of the sub-carriers to reconstruct the information. The original 802.11 specifications also included an option for frequency hopping spread spectrum (FHSS), but that has largely been abandoned. Adaptive Modulation WiFi make use of adaptive modulation and varying levels of forward error correction to optimize transmission rate and error performance. As a radio signal loses power or encounters interference, the error rate will increase. Adaptive modulation means that the transmitter will automatically shift to a more robust, though less efficient, modulation technique in those adverse conditions. Wi-Fi Major Issues
There are following issues which are assumed to be the cause of the sluggish adoption of Wi-Fi technology:
•Security Problems: Security concerns have held back Wi-Fi adoption in the corporate world. Hackers and security consultants have demonstrated how easy it can be to crack the current security technology, known as wired equivalent privacy (WEP), used in most Wi-Fi connections. A hacker can break into a Wi-Fi network using readily available materials and software.
•Compatibility and Interpretability: One of the bigger problems with Wi-Fi is compatibility and interpretability, for example 802.11a products are not compatible with 802.11b products, due to the different operating frequencies, and 802.11a hotspots would not help a 802.11b client. Due to lack of standardization, harmonization and certification, different vendors come out with products that do not work with each other.
•Billing Issues: Wi-Fi vendors are also looking for ways to solve the problem of back-end integration and billing that has dogged the roll-out of commercial Wi-Fi hotspots. Some of the ideas under consideration for Wi-Fi billing include per day, per hour and unlimited monthly connection fees.
Wi-Fi Summary
WiFi is a universal wireless networking technology that utilizes radio frequencies to transfer data. WiFi allows for high speed Internet connections without the use of cables or wires.
The term Wi-Fi is a contraction of "wireless fidelity" and commonly used to refer to wireless networking technology. The Wi-Fi Alliance claims rights in its uses as a certification mark for equipment certified to 802.11x standards.
Wi-Fi is a freedom, freedom from wires. It allows you to connect to the Internet from just about anywhere - a coffee shop, a bed in a hotel room or a conference room at work without wires. And the best thing of all, it's super fast - almost 10 times faster than a regular dial-up connection. Wi-Fi networks operate in the unlicensed 2.4 radio bands, with an 11 Mbps (802.11b) or 54 Mbps (802.11a) data rate, respectively.
To access Wi-Fi, you need enabled devices (laptops or PDAs). These devices can send and receive data wirelessly from any location equipped with Wi-Fi access.
What is Next ?
Now the focus in wireless is shifting to the wide area. WiMax, short for Worldwide Interoperability for Microwave Access, is defined in IEEE 802.16 standards is designed to deliver a metro area broadband wireless access (BWA) service, and is being promoted by the WiMax Forum.
WiMAX is similar wireless system to Wi-Fi, but on a much larger scale and at faster speeds. A nomadic version would keep WiMAX-enabled devices connected over large areas, much like today.s cell phones.
I hope u enjoyed to read it..
Thank you
Jitendra Yadav
Sunday, March 28, 2010
Web Developers Guide
Web Developer's Guide
Learning Essential Web Concepts in simple and practical way.
Before you start developing your website, become conversant with all web concepts.
This tutorial gives you a basic understanding required to become a good Web Developer.
Web - Basic Concepts
What is Internet?
The Internet is essentially a global network of computing resources. You can think about the Internet as a physical collection of routers and circuits as a set of shared resources or even as an attitude about interconnecting and intercommunication. Some common definitions given in the past include:
•A network of networks based on the TCP/IP communications protocol.
•A community of people who use and develop those networks.
•A community of people who use and develop those networks.
Internet Based Services:
Some of the basic services available to Internet users are:
•Email: A fast, easy, and inexpensive way to communicate with other Internet users around the world.
•Telnet: Allows a user to log into a remote computer as though it were a local system.
•FTP: Allows a user to transfer virtually every kind of file that can be stored on a computer from one Internet-connected computer to another.
•Usenetnews: A distributed bulletin board that offers a combination news and discussion service on thousands of topics.
•World Wide Web (WWW): A hypertext interface to Internet information resources.
What is WWW?
This stands for World Wide Web. A technical definition of the World Wide Web is : all the resources and users on the Internet that are using the Hypertext Transfer Protocol (HTTP).
A broader definition comes from the organization that Web inventor Tim Berners-Lee helped found, the World Wide Web Consortium (W3C):
The World Wide Web is the universe of network-accessible information, an embodiment of human knowledge.
In simple terms, The World Wide Web is a way of exchanging information between computers on the Internet, tying them together into a vast collection of interactive multimedia resources.
What is HTTP?
This stands for HyperText Transfer Protocol. This is the protocol being used to transfer hypertext documents thats makes the World World Wide possible.
A standard web address such as http://www.helloeducare.com/ is called a URL and here the prefix http indicates its protocol
What is URL?
URL stands for Uniform Resource Locator, and is used to specify addresses on the World Wide Web. A URL is the fundamental network identification for any resource connected to the web (e.g., hypertext pages, images, and sound files).
A URL will have the following format:
protocol://hostname/other_information
The protocol specifies how information from the link is transferred. The protocol used for web resources is HyperText Transfer Protocol (HTTP). Other protocols compatible with most web browsers include FTP, telnet, newsgroups, and Gopher.
The protocol is followed by a colon, two slashes, and then the domain name. The domain name is the computer on which the resource is located.
Links to particular files or subdirectories may be further specified after the domain name. The directory names are separated by single forward slashes.
What is Website?
Currently you are on our website http://jeeetyadav.blogspot.com which is a collection of various pages written in HTML markup language. This is a location on the web where people can find tutorials on latest technologies. Similar way there are millions of websites available on the web.
Each page available on the Website is called a web page and first page of any web site is called home page for that site.
What is Web Server?
Every Web site sits on a computer known as a Web server. This server is always connected to the internet. Every Web server that is connected to the Internet is given a unique address made up of a series of four numbers between 0 and 256 separated by periods.for example, 68.178.157.132 ro 68.122.35.127.
When you register a Web address, also known as a domain name, such as jeeetyadav.blogspot.com you have to specify the IP address of the Web server that will host the site.
We will see different type of Web servers in a separate chapter.
What is Web Browser?
Web Browsers are software installed on your PC. To access the Web you need a web browsers, such as Netscape Navigator, Microsoft Internet Explorer or Mozilla Firefox.
Currently you must be using any sort of Web browser while you are naviating through my site jeeetyadav.blogspot.com. On the Web, when you navigate through pages of information this is commonly known as browsing or surfing.
We will see different type of Web browsers in a separate chapter.
What is SMTP Server?
This stands for Simple Mail Transfer Protocol Server. This server takes care of delivering emails from one server to another server. When you send an email to an email address, it is delivered to its recipient by a SMTP Server.
What is ISP?
This stands for Internet Service Provider. They are the companies who provide you service in terms of internet connection to connect to the internet.
You will buy space on a Web Server from any Internet Service Provider. This space will be used to host your Web site.
What is HTML?
This stands for HyperText Markup Language. This is the language in which we write web pages for any Website. Even the page you are reading right now is written in HTML.
This is a subset of Standard Generalized Mark-Up Language (SGML) for electronic publishing, the specific standard used for the World Wide Web.
What is Hyperlink?
A hyperlink or simply a link is a selectable element in an electronic document that serves as an access point to other electronic resources. Typically, you click the hyperlink to access the linked resource. Familiar hyperlinks include buttons, icons, image maps, and clickable text links.
What is DNS ?
DNS stands for Domain Name System. When someone types in your domain name, www.example.com, your browser will ask the Domain Name System to find the IP that hosts your site. When you register your domain name, your IP address should be put in a DNS along with your domain name. Without doing it your domain name will not be functioning properly.
What is W3C?
This stands for World Wide Web Consortium which is an international consortium of companies involved with the Internet and the Web.
The W3C was founded in 1994 by Tim Berners-Lee, the original architect of the World Wide Web. The organization's purpose is to develop open standards so that the Web evolves in a single direction rather than being splintered among competing factions. The W3C is the chief standards body for HTTP and HTML.
Web - How it works ?
On the simplest level, the Web physically consists of following components:
•Your personal computer - This is the PC at which you sit to see the web.
•A Web browser - A software installed on your PC which helps you to browse the Web.
•An internet connection - This is provided by an ISP and connects you to the internet to reach to any Web site.
•A Web server - This is the computer on which a web site is hosted.
•Routers & Switches - They are the combination of software and hardware who take your request and pass to appropriate Web server.
The Web is known as a client-server system. Your computer is the client and the remote computers that store electronic files are the servers.
Here's how web works:
When you enter something like http://www.helloeducare.com, the request goes to one of many special computers on the Internet known as Domain Name Servers (DNS). All these requests are routed through various routers and switches. The domain name servers keep tables of machine names and their IP addresses, so when you type in http://www.helloeducare.com, it gets translated into a number, which identifies the computers that serve the helloeducare Web site to you.
When you want to view any page on the Web, you must initiate the activity by requesting a page using your browser. The browser asks a domain name server to translate the domain name you requested into an IP address. The browser then sends a request to that server for the page you want, using a standard called Hypertext Transfer Protocol or HTTP.
The server should constantly be connected to the Internet.ready to serve pages to visitors. When it receives a request, it looks for the requested document and returns it to the Web browser. When a request is made, the server usually logs the client's IP address, the document requested, and the date and time it was requested. This information varies server to server.
An average Web page actually requires the Web browser to request more than one file from the Web server and not just the HTML / XHTML page, but also any images, style sheets, and other resources used in the web page. Each of these files including the main page needs a URL to identify each item. Then each item is sent by the Web server to the Web browser and Web browser collects all this information and displays them in the form of Web page.
In short:
We have seen how a Web client - server interaction happens. We can summaries these steps as follows:
•A user enters a URL into a browser (for example, http://www.helloeducare.com). This request is passed to a domain name server.
•The domain name server returns an IP address for the server that hosts the Web site (for example, 68.178.157.132).
•The browser requests the page from the Web server using the IP address specified by the domain name server.
•The Web server returns the page to the IP address specified by the browser requesting the page. The page may also contain links to other files on the same server, such as images, which the browser will also request.
•The browser collects all the information and displays to your computer in the form of Web page.
Web - Browser Types
Web Browsers are software installed on your PC. To access the Web you need a web browsers, such as Netscape Navigator, Microsoft Internet Explorer or Mozilla Firefox.
Currently you must be using any sort of Web browser while you are navigating through my site jeeetyadav.blogspot.com. On the Web, when you navigate through pages of information this is commonly known as web browsing or web surfing.
There are four leading web browsers: Explorer, FireFox, Netscape and Safari but there are many others browsers available.You might be interested in knowing Complete Browser Statistics. Now we will see these browsers in bit more detail.
While developing a site, we should try to make it compatible to as many browsers as possible. Specially site should be compatible to major browsers like Explorer, FireFox, Netscape, Opera and Safari.
Internet Explorer
Internet Explorer (IE) is a product from software giant Microsoft. This is the most commonly used browser in the universe. This was introduced in 1995 along with Windows 95 launch and it has passed Netscape popularity in 1998.
Netscape
Netscape is one of the original Web browsers. This is what Microsoft designed Internet Explorer to compete against. Netscape and IE comprise the major portion of the browser market. Netscape was introduced in 1994.
Mozilla :
Mozilla is an open-source Web browser, designed for standards compliance, performance and portability. The development and testing of the browser is coordinated by providing discussion forums, software engineering tools, releases and bug tracking. Browsers based on Mozilla code is the second largest browser family on the Internet today, representing about 30% of the Internet community.
Konqueror :
Konqueror is an Open Source web browser with HTML 4.01 compliance, supporting Java applets, JavaScript, CSS 1, CSS 2.1, as well as Netscape plugins. This works as a file manager as wellIt supports basic file management on local UNIX filesystems, from simple cut/copy and paste operations to advanced remote and local network file browsing.
Firefox :
Firefox is a new browser derived from Mozilla. It was released in 2004 and has grown to be the second most popular browser on the Internet.
Safari :
Safari is a web browser developed by Apple Inc. and included in Mac OS X. It was first released as a public beta in January 2003. Safari has very good support for latest technologies like XHTML, CSS2 etc.
Opera :
Opera is smaller and faster than most other browsers, yet it is full- featured. Fast, user-friendly, with keyboard interface, multiple windows, zoom functions, and more. Java and non Java-enabled versions available. Ideal for newcomers to the Internet, school children, handicap and as a front-end for CD-Rom and kiosks.
Lynx :
Lynx is a fully-featured World Wide Web browser for users on Unix, VMS, and other platforms running cursor-addressable, character-cell terminals or emulators.
Web - Server Types
Every Web site sits on a computer known as a Web server. This server is always connected to the internet. Every Web server that is connected to the Internet is given a unique address made up of a series of four numbers between 0 and 256 separated by periods.for example, 68.178.157.132 or 68.122.35.127.
When you register a Web address, also known as a domain name, such as helloeducare.com you have to specify the IP address of the Web server that will host the site. You can load up with Dedicated Server that can support your web-based operations.
There are four leading web browsers: Apache, IIS, lighttpd and Jagsaw. Now we will see these servers in bit more detail.
Apart from these Web Servers, there are other Web Servers also available in the market but they are very expansive. Major ones are Netscape's iPlanet, Bea's Web Logic and IBM's Websphere.
Apache HTTP Server :
This is the most popular web server in the world developed by the Apache Software Foundation. Apache web server is an open source software and can be installed on almost all operating systems including Linux, Unix, Windows, FreeBSD, Mac OS X and more. About 60% of the web server machines run the Apache Web Server.
Internet Information Services :
The Internet Information Server (IIS) is a high performance Web Server from Microsoft. This web server runs on Windows NT/2000 and 2003 platforms ( and may be on upcoming new Windows version also). IIS comes bundled with Windows NT/2000 and 2003; Because IIS is tightly integrated with the operating system so it is relatively easy to administer it.
lighttpd :
The lighttpd, pronounced lighty is also a free web server that is distributed with the FreeBSD operating system. This open source web server is fast, secure and consumes much less CPU power. Lighttpd can also run on Windows, Mac OS X, Linux and Solaris operating systems.
Sun Java System Web Server :
This web server from Sun Microsystems is suited for medium and large web sites. Though the server is free it is not open source. It however, runs on Windows, Linux and Unix platforms. The Sun Java System web server supports various languages, scripts and technologies required for Web 2.0 such as JSP, Java Servlets, PHP, Perl, Python, Ruby on Rails, ASP and Coldfusion etc.
Jigsaw Server :
Jigsaw (W3C's Server) comes from the World Wide Web Consortium. It is open source and free and can run on various platforms like Linux, Unix, Windows, Mac OS X Free BSD etc. Jigsaw has been written in Java and can run CGI scripts and PHP programs.
Web - Site Advantages
If you are constructing a Web site, then I hope you are aware of its advantages as well. Still I'm listing out few more if you are not aware.
Business is open 24x7 :
This means that once you put your business onsite then your business is open 7 days a week and 365 days a year. Even if you are in different locations of the world then you will be able to server your customers on 24x7 Hours basis.
Increased Customer Base:
Because anyone in the world can see your web site so you will gain customers from other states and countries while you are putting in the same amount of effort and money.
Tremendous Cost Saving :
This is one of the biggest advantages of having a business online. You do not need to keep a big man power and lot of resources to maintain a business on site. There are many other cost saving opportunities while keeping business online. Think of how many cards you mail out to let customers know about your sale. All of that can be eliminated by putting the sale information on your web site and inviting your customers to visit it.
Advertising Opportunities:
Apart from saving your advertising cost you have additional opportunities to run advertisements from other companies and start making money. If you ever advertised in a local newspaper, you know the costs. You are being charged per line, per inch, and per color. On the Web, there is no limit to how much you can put. So whenever there is new product or service then you can advertise it in better way.
Creates a Brand Image:
Internet is a great medium through which you can create any image of yourself you want. It is all in your hands: design a professional web site, add helpful content, and your company will immediately take a step up in the image it represents. No matter how small your business is, with the right tools and a great desire you can make it look like a corporation on the Web.
Customer Satisfaction:
If you have a really good site online then you can give your customer a lot of satisfaction in terms of customer care. You can keep online help, FAQ, and other important information which is useful for your customers. You can create online forums for open discussion and you can conduct customer survey to take customer feedback etc.
Showcase your work:
Whether you are a real estate agent, construction business owner or a beauty salon specialist - you can put your work on display when you have a web site. Anytime a potential client wants to see your past work and projects, simply refer him or her to your site. No need to scan and mail pictures, or bring your client to a finished building project.
Web - Skills Required
If you are planning to maintain a Web site then I'm listing few basic skills which you will require to build and maintain a Web site. This list may go to infinite because today there are numerous technologies available and many are coming everyday. So you have to plan and affirm on any one of the available technologies and go ahead for your project.
This is not required that you should have knowledge of all the listed skills. If you want to develop a simple Web site then you would needs just first four skills listed here. Rest of the skills are required if you want to go for a bigger and more interactive Web site.
•Computer Operations: All you need to know is how to operate a computer - Windows, Linux or Macintosh. This depends on which Web Server you want to host your web site. So you should have basic knowledge of that system only. You should be well acquainted of basic operations like creating file, deleting file, updating file, directory creation, file permission etc.
•Remote Access: Most of the times your Web Server will be accessed from remote site only. You should be well aware how to connect a computer from remote site. So at least you should have basic knowledge of telnet utility to connect to a remote machine. There are many service providers who will provide you control panel to manage your Web site.
•File Uploading & Downloading: As I told you most of the times your Web Server will be on remote site. So you would need to upload and download all the files related to your Web site. So at least you should have basic knowledge of FTP utility to connect to a remote machine and download or upload your files. Almost service providers give you facility to upload your files on your Web server.
•HTML / XHTML Knowledge: These are the markup languages which you will use to build your web site. So you should have good understanding on these languages. You can refer our tutorial to learn HTML / XHTML.
•CSS Knowledge: Cascading Style Sheet knowledge is required to achieve many results which are not possible through HTML or XHTML.
•PHP Script: Now a days many sites are being developed using PHP language. This script helps you to create an interactive Web site. You can refer our tutorial to learn PHP Script.
•PERL Script: PERL is another language which is being highly used to develop interactive Web Applications. So if you are planning to use PERL to develop your Web site then you can refer our tutorial to learn PERL Script.
•Java or VB Scripts: These scripts are required to perform user level validations and to add more interactivity in your Web site. So a web developer is desired to have knowledge of any of the client side scripts.
•AJAX Technology: This is the latest technology in the web. Google and Yahoo are using this technology to give a better browsing experience to their site visitors. You can refer our tutorial to learn AJAX Technology.
•ASP or JSP : These are another technologies to be used to develop interactive Web sites.
•Flash Knowledge: You can plan to use Macromedia Flash to build your Web site. This is a bit time consuming to learn this technology but once you learnt then you can develop very beautiful and attractive web sites using Flash.
•HTTP Protocol: As you grow you are desired to have more knowledge about Web. So I would suggest you to go through the web backbone i.e. HTTP protocol as well.
Web - Tools Required
I hope you are already connected to the Internet, so you already met basic requirement which is an Internet Connection and a Computer. Now a days you will get broadband Internet connectivity on very nominal prices.
Here we will list out various other tools which you may need to develop your Web Site.
•Computer Machine : If you do not have computer available and you received this tutorial printed on a paper then I would say that first of all you would need a computer machine running either Windows or Linux or Unix or Macintosh system or any other operating system.
•Internet Connection: If you are not connected to the internet and you received this tutorial printed on a paper then I would say that this is second and another most important tool would need to connect to the Internet and to you Web Server where you will host your web site. For this purpose you can buy either a dial up connection or broadband connection of high speed connectivity based on your requirement and budget.
•A Web Server : Apart from basic Internet connectivity you will need one Web Server to keep your all the files related to your Web sit. So you would need to buy space on a Web Server. There are millions of ISPs who are in business of selling web space at competitive prices. We will give more detail on this in Web Hosting Concepts chapter.
•A Text Editor: This is another most important tool which you will need to develop your Web site. If you are using Windows then you can use notepad as a text editor, or if you are using Linux/Unix then vi editor is one of my favorite editors. You will need this editor to write your HTML, PHP or ASP pages or for any other editing purpose. For practice purpose your can use our Online HTML Editor.
•A Web Browser: You will need this tool to see the result of your HTML file. So you should have either Internet Explorer or Firefox etc. installed on your computer.
•Web Authoring Tools: If you don't want to use a simple Text Editor to edit your HTML files then there are many commercial Web Authoring Tools available. These tools are also called HTML editors. Microsoft's Frontpage and Macromedia Dreamweaver are both a visual HTML (WYSIWYG) and HTML source code editor. These editors helps you to develop your HTML pages vary rapidly.
•Secure telnet client: If you are connecting to your Web server directly then you can use a tool called PuTTY. This is what I'm using while connecting to my web server.
•Secure FTP client: If you are connecting to your Web server directly using FTP client to upload or download your web files then you can use a tool called PSFTP. FTP stands for File Transfer Protocol. Simply put, after you design your web site, you need to send it to the Web and your FTP program will do just that for you. This is what I'm using while connecting to my web server.
Web - Domain Names
A domain name is the part of your Internet address that comes after "www". For example, in www.helloeducare.com the domain name is helloeducare.com.
A domain name becomes your Business Address so care should be taken to select a domain name. Your domain name should be easy to remember and easy to type.
How to get a domain name ?
When you plan to put a site online, this is one of the important steps to buy a domain name. This is always not necessary that whatever domain name you are looking that is available so in that case you will have to opt for any other good domain name.
When you buy a domain name it is registered and when domain names are registered they are added to a large domain name register, and information about your site - including your Internet IP address is stored on a DNS server and your contact information etc is registered with your registrar.
You can buy domain name from any domain registrar like GoDaddy.com etc.
Domain Extension Types:
There are many different types of domain extensions you can choose for your domain name. This depends on your business nature. If you are going to register a domain name for educational site purpose then you can go for .edu extension. Below is a reference of the correct usage of certain extensions. But there is no hard and fast rule to go for any extension. Most commonly used is .com
•.com - Stands for company/commercial, but it can be used for any web site.
•.net - Stands for network and is usually used for a network of sites.
•.org - Stands for organization and is supposed to be for non-profit bodies.
•.us, .in - They are based on your country names so that you can go for country specific domain extensions.
•.biz - A newer extension on the Internet and can be used to indicate that this site is purely related to business.
•.info - Stands for information. This domain name extension can be very useful, and as a new comer it's doing well.
•.tv - Stands for Television and are more appropriate for TV channel sites.
Newer domain extensions such as .biz .info and .us etc. have more name choices available as many of the popular domains have yet to be taken and most of the them are available at very nominal prices.
Choosing Domain Name:
This is very important step to name your web site. As I have told you that your domain name will be your business address so very much care should be taken while choosing a domain name.
Many people think it is important to have keywords in a domain. Keywords in the domain name are usually important, but it usually can be done while keeping the domain name short, memorable, and free of hyphens.
Using keywords in your domain name give you a strong competitive advantage over your competitors. Having your keywords in your domain name can increase click through rates on search engine listings and paid ads as well as make it easier to Using your keywords in get keyword rich descriptive inbound links.
Avoid buying long, and confusing domain names. May people separate the words in their domain names using dashes or hyphen. In the past the domain name itself was a significant ranking factor but now search engines have advanced it is not very significant factor anymore.
Keep two to three words in your domain name it will be more memorable. Some of the most memorable web sites do a great job of branding by creating their own word. Few examples are eBay, Yahoo!, Expedia, Slashdot, Fark, Wikipedia, Google...
You should be able to say it over the telephone once and the other person should know how to spell it and they should know what you sell. If you can do that AND work keywords in there, good for you. If you can't, skip the keywords.
What are Sub Domains:
You can divide your domain into many sub domains based on your requirement. If you are doing multiple business using the same domain then its worth to use sub domain for every business. Following are examples of sub domains
You must have seen http://www.google.com as a main domain but google has created many subdomains based on their business. Few of them are as follows:
•http://adwords.google.com - This sub domain is being used for Google Adwords.
•http://groups.google.com - This sub domain is being used for Google Groups.
•http://images.google.com - This sub domain is being used for Google Images.
This way you can present your different business sections in a very good segregated way. This is not a big thing to create a sub domain. If you already have registered a domain your registrar will provide you a way to create your sub domains. You may need to talk to your registrar for more detail.
Web - Site Construction
Now you are ready for a web site construction. Before proceeding ahead you have to take many factors into consideration. I can not list out each and everything but I have described major factors in this tutorial which will help you to have a better web site:
What to put on your web site ?
This totally depends on your business and nature of your web site. Here is a list of pages that you might want to create for your web site.
•Attractive Home Page : Always required for every web site.
•List of Product and Services along with complete detail.
•Complete Pricing Information.
•About your company and nature of business including your achievements.
•About your staff and if possible their experience.
•Your complete contact information.
•Frequently Asked Questions.
•Success Stories and Feedback from Customers.
Finally, make your site useful and interesting for your customers. Your site visitors are your customers and they should find each and every thing they are looking for. Customer satisfaction should be prime concern.
How to design your web site ?
You should not simply start developing your web site otherwise you will end up with a bogus web site. First you should put a complete plan and your design on a paper or in an electronic document.
Here are few points which can help you to design a better web site:
•Consider what technology you are going to use to develop your web site. Adopt one which gives you better flexibility and rapid development opportunities and then design it accordingly.
•Design a generic framework so that in future you can enhance and modify your web site by putting minimal effort.
•Design a site to keep required performance in your mind. If you are designing database driven web site then lot of effort has to put to design good database schemas.
•Keep your design as simple as possible so that any new developer should become familiar with your design as soon as possible.
•Identify repeatable components of your web site and then keep them separate and try to use them wherever possible.
•Identify the nature and qualification of your site visitors and give importance to look and feel accordingly.
•Think in a way, if you are a site visitor then what and how would you like to see this web site? If same site belongs to somebody else then would like to spend some time on such site ?
•You should create a search engine friendly web site.
•Once again....your presentation should be unique and attractive otherwise there are lot of web sites available on the Internet and it will be difficult for your to retain a site visitor for more than a minute.
How to make web site interactive ?
Many statistics shows that if you are able to retain your site visitors for a long time then they do bigger shopping and comes again and again.
So make sure you have done something for your site visitors to do on your web site. Though offering a lot of quality information can also serve as a great visitor magnet and will generate more repeat visits. Here is a list of interactive tools you can add to your web site completely FREE and without any programming skills:
•Poll
•Forum
•Guest book
•Chat room
•Greeting cards
•Tell-a-friend about this site
•Feedback form
•Live customer service
•Daily joke or daily cartoon
•Daily news headlines
•Site Search Engine
•Mailing List
•Automated Frequently Asked Questions
The list can go on and on, depending on what will attract your type of visitors.
How to code your web site ?
Finally, when you start coding for your web site you should be well aware of the following tips for a better web site:
•You site should meet all the quality requirements defined by W3C. Today we are using XHTML to develop any web site. XHTML is just a cleaner version of HTML.
•You should keep validating your source code using W3C Validator.
•Keep your source code very clean and understandable.
•Do use appropriate comments but avoid using to many comments inside HTML files.
•Keep your style sheets and JAVA or VB scripts into separate files and then include them where ever is required.
•Do not use to much graphics in your web pages.
•Try to keep your web pages static instead of generating them dynamically.
•Make sure there is no broken link on any web page.
•Test your developed web page in major browsers like Internet Explorer, Firefox, Mozilla, Netscape etc.
•Test your all the scripts for all the possible scenarios. Do not host any page without complete testing.
How to create search engine friendly web site ?
This is very important for you to make your web site search friendly otherwise you will be away from a large chunk of your customer base which comes from search engines like google and yahoo.
This subject is so important that we have put a complete tutorial on Search Engine Optimization and I will strongly recommend you to go through this tutorial before your start developing your web site.
Securing your source code frequently:
While developing your web site it is very important to keep a backup of your complete source code. Many times it happens that you may delete any file by mistake so if you are keeping its backup then you can restore previous file and start doing your work.
This is a very good practice to take backup on hourly basis or at least on daily basis. Keep this backup on different machine or media. This is very likely that machine may crash anytime and it will result in a very serious situation if you are keeping your backup on different machine or media.
Web - Hosting Concepts
Web hosting means to put your web site content on a Web server. Hosting your web site on your own server could be an option. But this will become very much expansive unless you are hosting a site like yahoo.com or google.com. So this tutorials does not cover how to set up your own hosting server.
Buying a server space or renting a complete server from an Internet Service Provider (ISP) are most widely used options. This section guides you to choose a hosting type and makes you aware of other related concepts.
Hosting Platforms:
You can go for any of the following two most widely used hosting platforms:
•Windows Hosting Servers : If you are a Windows lover then you will find many hosting servers running different flavors of Windows and you can buy space from these servers. Normally Windows hosting server are more expansive because of lot of software incensing costs are involved with these servers
•Linux Hosting Servers: If you want to go for Linux then opportunities are unlimited and they will have to pay less then what you will pay for Windows Hosting Server. There are many ISP who provides Hosting Servers with different flavors of Unix.
Hosting Types:
There are many options available and you can select any hosting type based on your requirement and budget. Following are most widely used hosting types:
•Free Hosting: Yes, this is true there are many service providers who will give you free space on their web server with a condition that you will allow them to run their advertisement at your web pages. So if you are OK with this option then you have nothing to pay for a space. There are some web sites like geocities.com, lycos.com, myspace.com etc. who give you space to build your web pages.
•Shared Hosting: With shared hosting, your web site is hosted on a powerful server along with other web sites. On a shared host you will have your own user ID and password to login to the shared host and you will be allowed to work in your work area. You would not be able to touch any file or directory belonging to other host partner. Even you would not know how many sites are hosted on your shared host. This type of hosting is very cost effective and good for small web site where your space and speed are not very important. Here traffic on one site will affect the speed of all other hosted sites.
•Virtual Dedicated Hosting: This type of hosting is better for medium size business. With virtual dedicated hosting you will have a dedicated bandwidth and dedicated RAM for your site. You will be given root ID and password to maintain your Web server. You will be complete owner of your virtual dedicated server and will be able to install or de-install any software. This type of hosting is created on a single server but it is managed in such a way that every user will have dedicated speed and bandwidth. This is bit more expansive but really good one for medium size business.
•Dedicated Hosting: This type of hosting is very similar to virtual dedicated hosting but here complete machine will be allotted for you. They are more expansive than virtual dedicated hosting and should be considered when you have a very high traffic requirement.
•Collocated Hosting: This is very difficult to set you dedicated resources like high-security against fire and vandalism, regulated backup power, dedicated Internet connections and more. So collocation is the option which allows you to put your machine in a service provider's premises to avail all the available facilities. This is also a very expansive option and should be opted when you have very high traffic requirement.
Hosting Components :
When you buy a Web server space then you should be clear about the follows. You should do price comparison between different service providers based on the following components:
•Disc Space: A small or medium web site will need between 10 and 100MB of disk space. If you plan to keep lot of audio and Video on your web site then you need plan to buy more space. Before buying server space you should check the options available to expand your disc space if you need it in future.
•Monthly Traffic: A small or medium web site will need between 1GB and 10GB of data transfer on monthly basis. If you plan to keep lot of audio and Video on your web site then you need plan to look for more data transfer capacity. Check different options based on your requirements. What are other options available in case you cross the given data transfer limit. Your site should not be stopped in case you reach to the given limit.
•Processing Speed: If you are buying space on a shared machine then you can not guess how much speed will be given to you. In that case only way is to see other hosted sites with the same service provider to know about their hosting quality. But if you are buying virtual dedicated server or dedicated server then you should consider how much RAM is being allocated to you. Your pricing will depend on the given processing power to you.
•Connection Speed: Now a days very fast connection speed is available from most of the service providers. So choose a service provider who is giving better connection speed in terms of bits per second. You can have connection speed ranging from 64Kb per second to 2.488Gb per second.
•Email Accounts: Make sure you are going to get sufficient number of e-mail accounts. There are many other options available which come along with your e-mail account. Like, will you get IMAP, POP and E-mail Forwarding options available along with your e-mail facilities.
•Emailing Support: Apart form having email accounts it is also very important that your web server should have a facility to send emails from back-end. In case your site visitors want to contact to you using a form provided by you then you will be able to use that emailing facility to send email to your designated account. In simple terms you should make sure that SMTP Server is setup and working on your Web server.
•Latest Technologies: You should make sure that your web server is equipped with all the latest technologies. It should have latest version support for PHP, PERL, ASP and JAVA etc.
•Databases: There are many databases available MySQL, Oracle, SQL Server etc. So you should choose your server based on your database requirement. If you are buying space on a shared server then you need to verify how much space will be allocated for your database. Many ISP does not give more than a limited space for databases. So if your site needs lot of database size then you should go for virtual dedicated server.
•Server Uptime: This is very important to buy a web server from a reliable and reputed ISP. You should make sure your ISP is giving you 99.99% server uptime. If there is server down then there are many service providers who gives you compensation in case your sites goes down more than a limited time.
•Backup & FTP: Make sure your Service Provider is giving you or more ways of taking regular backup of your web site. If your site is changing everyday then it becomes very important that you should take regular backup of your web site. Many service providers do it on your behalf but they charge very little cost for this service.
•Control Panel: Just make sure what type of facilities you will get to maintain your hosting account. If your service provider is providing your an easy to use control panel or some other similar tool. Using a control panel you should be able to maintain basic operations related to your web site specially like log your service request, your reboot request or any other problem.
•Customer Support: Before finalizing a deal with your service provider you should make sure they will provide your required support. You can get this information using Internet forums or from your friends. There are many service providers who give you 24x7 support for any technical or non technical problem.
Web - Ecommerce Hosting
Ecommerce is a way of doing business through Internet. Specially when you are selling your product or services through Internet then you are doing ecommerce.
So if you planning to put a web site which will have transactions likes buying or selling items or services then it means you are going to setup an ecommerce web site. If this is the case then I don't think this guide will help you upto a level where should be able to setup an ecommerce site because there are many more things which should be considered while setting up an ecommerece web site.
Still you can start from here : E-commerce hosting are bit expansive but they should not be treated as expansive that you can not start an ecommerce web site. Now a days it is very easy to set up an ecommerce site only thing is that just get in touch of any good service provider and start gathering basic information.
There many service providers who help you to setup your virtual store and charge you unexpectedly very low. Even now google also has started google account service in which you can sell your products through them and all the money will come in your account without any hassle.
While finalizing your ecommerce hosting setup, to avoid any future risk you should be very clear on how to handle the followings:
•Customer Registrations
•Customer Transactions
•Product Catalogs
•Customer Orders
•Order Security
•Server Security
•Server Maintenance
•Server Backup
•Server downtime
•Inventory Control
•Shipment Methods
•Payment Methods
•Foreign currency
•Credit Cards
•Taxes issues
You should take this list and discuss it with your service provider as well to understand how they will support you to handle all these items.
Web - Site Backup
Your server's hard drive crashed. Your site is hacked and hacker was kind enough who deleted all your files. Your web host disappeared with your money and your data. Even worst case there was earth quack and your ISP building is gone down and everything is lost.
Touch Wood!!! Nobody should face such a situation. But if you are not prepared for these situations, your hard work might be lost forever. That is why it is of the utmost importance that you keep regular backups of your data.
Now there are many questions :
•How frequently backup should be taken?
•Where this backup should be preserved?
•What type of backup should be taken ?
•Who should take these backup ?
Now let us answer these questions one by one:
How frequently backup should be taken?
If your site is not changing over a period of time then I will say take backup only once and keep it on your floppy or hard disc or data disc or DVD wherever you like. In case you need to restore it, just do it and see your web site up and running.
But if your site is changing over the period of time then it becomes very important to take regular backup. Web sites like amazon.com have very tight backup schedules and very expansive backup infrasturcture.
So it depends on your business and you have to see how much data loss you can bear. If you think it is not affordable to loss even a single day data then I would recommend to schedule daily backup and similarly you can decide if weekly or monthly backup are OK for you or not.
Where this backup should be preserved?
Most of the times backup is taken from one machine and put on different other machines or media. So if possible you should arrange a different backup server where you can FTP your complete data to be backup up. If this is not too much then you can keep it in floppy or data CD or DVD etc.
If possible, I would recommend to keep multiple copy of backup but with a very managed way to avoid any confusion. You should have a proper version control over the different backup.
There are many service providers who provide you different backup server with a very nominal cost and its worth to spend that amount on backup services.
What type of backup should be taken ?
There are two types of backup: incremental and full. This depends on what type of backup tools you are using. There are many backup tools like oracle provides their utilities to take different type of backup.
•Incremental Backup - The backups controller compares the existing backup to the data that you wish to backup. If it is an exact match between the two, then no additional files will be backed up. However, if you have added or edited any file, these files will be updated in the backup, thus the incremental name.
•Full Backup - Here all files are written to the backup, even if they already exist in the most current backup.
Who should take these backup ?
Simplest case is that you can login to your web server on monthly or weekly basis and copy all the web site related files on different computer or media. But this goes well if your site is having small amount of data.
If you have huge database and numerous files then it is difficult to manage such backups on everyday and weekly basis. So in that case you may need to have automated scripts to take this backup and to keep them at another machine or media etc.
You can write your shell script or perl script and go into different directories and collect all the files and zip them automatically, assign then a unique backup number and then ftp those files on a designated backup server or media like tap drive etc.
Conclusion:
So now you decide how do you want to take your backup but I will say if you are web site owner then its is your religion to take regular backup without a failure otherwise.....results are very serious
Web - Site Statistics
Your site is up and running. But this is very important for you to know who is coming on your site and what they using. There are following components which should be available to you.
•Who is visitor ? You should have your site visitor IP address available with you to know the geographical location and identity of that visitor.
•Visitors Timestamp: This is important to know what time most of the visitors are visiting your site so in case if you plan a server down then you can decide it very easily. Second timestamp and IP address will help you to identify your site visitor in case an investigation is required against a site visitor.
•What visitor is using ? What pages did the site visitor view on your web site will give you an idea about the importance of various sections of your web site.
•How visitors came ? This is another important information you should be aware of. How you are getting your site visitors. Are they coming directly or coming through some other web site or advertising program
•How long stay ? - How long a site visitor is staying at your site. This is important for you to know this duration if visitors are leaving your site just after browsing 1 or 2 pages then you should think some way to retain them for long time on your site.
•Visitors Browser : This information is important to improve your web site for that type of web browsers.
Statistics Programs:
There are many web sites who help you to find out all these information. You just need to keep a small piece of code in the .... section of your web pages and you will have not only all the above mentioned information but also a complete analysis of your site.
•You can try Googles Analytics Program to capture your web site statistics.
•Another good program is Webalizer. This is will give you all the basic site statistics you need.
•There is a site from sourceforge which gives you opportunity to collect your web site statistics. So you can try it as well AWStats.
Site Statistics Terminology:
There is a very basic terminology related to your web site statistics. Go through the following terms to become more comfortable with your site statistics report and analysis.
•Unique Visits - The number of unique visitors you had for the given time period. Example: if there was only a single person who visited your web site, and visited 1,000 separate times in a day, the unique visits would just be one. The uniqueness is counted based on the IP address of the visitor.
•Total Visits - The total number of visits including duplicate visits, that a web site receives in a given time period. Each time a site visitor reaches to your site it is counted one visit.
•Page Views or Page Impressions - Each time a web page is loaded it is referred to as a page view. If you are counting a web site link available on this page then it will be counted as a page impression.
•Hits - This is very similar to page views and will be counted every time a visitor will click any link related to your web site.
•Direct Access : - This amount refers to the people who accessed your web site through their bookmarks or typed in your URL manually in the URL box of the browser.
•Referrer & Referral URL - The web address where the visitor followed a link to reach your web site. For example if someone finds your web site in google search and click over the link then google will be referrer.
Web - Site Popularity
You design a web site and developed it and finally hosted it. Now just think how many site visitors know about this site address and related service.
So if you want to make your site a success then actual work starts after hosting your web site successfully. This includes following actions but to gain popularity is not limited to these actions.
•Search Engine Inclusion: First step, you should go and include your web site in various search engines like google, yahoo and msn etc. Never trust on automated software to include your site in search engines. There are many fraud companies in this business so be away from them and don't waste your money.
•Open directory inclusion: This is another way to make your site popular. There are many open directory projects like dmoz.com and yahoo.com etc where you can include your web site to get attention from net surfers.
•Google Adwords: This is paid program from google where you can register and you can pay based on number of clicks on your web site link or based on number of page impressions.
•Advertising Programs: If you have big budget then you can go for higher resources like TV ads or News paper or magazine adverting programs. They are most effective and expansive as well.
•White papers and Article: If you write white papers or articles then you can include your web site link in those white papers or articles to get more traffic on your site.
•Site Link Exchange: There are many sites including my site, who do site link exchange. So you will keep their site link at your web site and they will keep your site link at their site. This is for then mutual benefit of site link exchangers.
Web - Summary
I hope this guide did not waste your time and it have been worth to spend your precious time on this tutorial. Here you have learnt all the basics of Web and Web Hosting.
I may have done some spelling mistakes and grammatical mistakes while writing this tutorial so please send me your feedback and corrections to be done at :
I hope u enjoyed to read it..
Thank you
Jitendra Yadav
yadavjitendra07@gmail.com.
Learning Essential Web Concepts in simple and practical way.
Before you start developing your website, become conversant with all web concepts.
This tutorial gives you a basic understanding required to become a good Web Developer.
Web - Basic Concepts
What is Internet?
The Internet is essentially a global network of computing resources. You can think about the Internet as a physical collection of routers and circuits as a set of shared resources or even as an attitude about interconnecting and intercommunication. Some common definitions given in the past include:
•A network of networks based on the TCP/IP communications protocol.
•A community of people who use and develop those networks.
•A community of people who use and develop those networks.
Internet Based Services:
Some of the basic services available to Internet users are:
•Email: A fast, easy, and inexpensive way to communicate with other Internet users around the world.
•Telnet: Allows a user to log into a remote computer as though it were a local system.
•FTP: Allows a user to transfer virtually every kind of file that can be stored on a computer from one Internet-connected computer to another.
•Usenetnews: A distributed bulletin board that offers a combination news and discussion service on thousands of topics.
•World Wide Web (WWW): A hypertext interface to Internet information resources.
What is WWW?
This stands for World Wide Web. A technical definition of the World Wide Web is : all the resources and users on the Internet that are using the Hypertext Transfer Protocol (HTTP).
A broader definition comes from the organization that Web inventor Tim Berners-Lee helped found, the World Wide Web Consortium (W3C):
The World Wide Web is the universe of network-accessible information, an embodiment of human knowledge.
In simple terms, The World Wide Web is a way of exchanging information between computers on the Internet, tying them together into a vast collection of interactive multimedia resources.
What is HTTP?
This stands for HyperText Transfer Protocol. This is the protocol being used to transfer hypertext documents thats makes the World World Wide possible.
A standard web address such as http://www.helloeducare.com/ is called a URL and here the prefix http indicates its protocol
What is URL?
URL stands for Uniform Resource Locator, and is used to specify addresses on the World Wide Web. A URL is the fundamental network identification for any resource connected to the web (e.g., hypertext pages, images, and sound files).
A URL will have the following format:
protocol://hostname/other_information
The protocol specifies how information from the link is transferred. The protocol used for web resources is HyperText Transfer Protocol (HTTP). Other protocols compatible with most web browsers include FTP, telnet, newsgroups, and Gopher.
The protocol is followed by a colon, two slashes, and then the domain name. The domain name is the computer on which the resource is located.
Links to particular files or subdirectories may be further specified after the domain name. The directory names are separated by single forward slashes.
What is Website?
Currently you are on our website http://jeeetyadav.blogspot.com which is a collection of various pages written in HTML markup language. This is a location on the web where people can find tutorials on latest technologies. Similar way there are millions of websites available on the web.
Each page available on the Website is called a web page and first page of any web site is called home page for that site.
What is Web Server?
Every Web site sits on a computer known as a Web server. This server is always connected to the internet. Every Web server that is connected to the Internet is given a unique address made up of a series of four numbers between 0 and 256 separated by periods.for example, 68.178.157.132 ro 68.122.35.127.
When you register a Web address, also known as a domain name, such as jeeetyadav.blogspot.com you have to specify the IP address of the Web server that will host the site.
We will see different type of Web servers in a separate chapter.
What is Web Browser?
Web Browsers are software installed on your PC. To access the Web you need a web browsers, such as Netscape Navigator, Microsoft Internet Explorer or Mozilla Firefox.
Currently you must be using any sort of Web browser while you are naviating through my site jeeetyadav.blogspot.com. On the Web, when you navigate through pages of information this is commonly known as browsing or surfing.
We will see different type of Web browsers in a separate chapter.
What is SMTP Server?
This stands for Simple Mail Transfer Protocol Server. This server takes care of delivering emails from one server to another server. When you send an email to an email address, it is delivered to its recipient by a SMTP Server.
What is ISP?
This stands for Internet Service Provider. They are the companies who provide you service in terms of internet connection to connect to the internet.
You will buy space on a Web Server from any Internet Service Provider. This space will be used to host your Web site.
What is HTML?
This stands for HyperText Markup Language. This is the language in which we write web pages for any Website. Even the page you are reading right now is written in HTML.
This is a subset of Standard Generalized Mark-Up Language (SGML) for electronic publishing, the specific standard used for the World Wide Web.
What is Hyperlink?
A hyperlink or simply a link is a selectable element in an electronic document that serves as an access point to other electronic resources. Typically, you click the hyperlink to access the linked resource. Familiar hyperlinks include buttons, icons, image maps, and clickable text links.
What is DNS ?
DNS stands for Domain Name System. When someone types in your domain name, www.example.com, your browser will ask the Domain Name System to find the IP that hosts your site. When you register your domain name, your IP address should be put in a DNS along with your domain name. Without doing it your domain name will not be functioning properly.
What is W3C?
This stands for World Wide Web Consortium which is an international consortium of companies involved with the Internet and the Web.
The W3C was founded in 1994 by Tim Berners-Lee, the original architect of the World Wide Web. The organization's purpose is to develop open standards so that the Web evolves in a single direction rather than being splintered among competing factions. The W3C is the chief standards body for HTTP and HTML.
Web - How it works ?
On the simplest level, the Web physically consists of following components:
•Your personal computer - This is the PC at which you sit to see the web.
•A Web browser - A software installed on your PC which helps you to browse the Web.
•An internet connection - This is provided by an ISP and connects you to the internet to reach to any Web site.
•A Web server - This is the computer on which a web site is hosted.
•Routers & Switches - They are the combination of software and hardware who take your request and pass to appropriate Web server.
The Web is known as a client-server system. Your computer is the client and the remote computers that store electronic files are the servers.
Here's how web works:
When you enter something like http://www.helloeducare.com, the request goes to one of many special computers on the Internet known as Domain Name Servers (DNS). All these requests are routed through various routers and switches. The domain name servers keep tables of machine names and their IP addresses, so when you type in http://www.helloeducare.com, it gets translated into a number, which identifies the computers that serve the helloeducare Web site to you.
When you want to view any page on the Web, you must initiate the activity by requesting a page using your browser. The browser asks a domain name server to translate the domain name you requested into an IP address. The browser then sends a request to that server for the page you want, using a standard called Hypertext Transfer Protocol or HTTP.
The server should constantly be connected to the Internet.ready to serve pages to visitors. When it receives a request, it looks for the requested document and returns it to the Web browser. When a request is made, the server usually logs the client's IP address, the document requested, and the date and time it was requested. This information varies server to server.
An average Web page actually requires the Web browser to request more than one file from the Web server and not just the HTML / XHTML page, but also any images, style sheets, and other resources used in the web page. Each of these files including the main page needs a URL to identify each item. Then each item is sent by the Web server to the Web browser and Web browser collects all this information and displays them in the form of Web page.
In short:
We have seen how a Web client - server interaction happens. We can summaries these steps as follows:
•A user enters a URL into a browser (for example, http://www.helloeducare.com). This request is passed to a domain name server.
•The domain name server returns an IP address for the server that hosts the Web site (for example, 68.178.157.132).
•The browser requests the page from the Web server using the IP address specified by the domain name server.
•The Web server returns the page to the IP address specified by the browser requesting the page. The page may also contain links to other files on the same server, such as images, which the browser will also request.
•The browser collects all the information and displays to your computer in the form of Web page.
Web - Browser Types
Web Browsers are software installed on your PC. To access the Web you need a web browsers, such as Netscape Navigator, Microsoft Internet Explorer or Mozilla Firefox.
Currently you must be using any sort of Web browser while you are navigating through my site jeeetyadav.blogspot.com. On the Web, when you navigate through pages of information this is commonly known as web browsing or web surfing.
There are four leading web browsers: Explorer, FireFox, Netscape and Safari but there are many others browsers available.You might be interested in knowing Complete Browser Statistics. Now we will see these browsers in bit more detail.
While developing a site, we should try to make it compatible to as many browsers as possible. Specially site should be compatible to major browsers like Explorer, FireFox, Netscape, Opera and Safari.
Internet Explorer
Internet Explorer (IE) is a product from software giant Microsoft. This is the most commonly used browser in the universe. This was introduced in 1995 along with Windows 95 launch and it has passed Netscape popularity in 1998.
Netscape
Netscape is one of the original Web browsers. This is what Microsoft designed Internet Explorer to compete against. Netscape and IE comprise the major portion of the browser market. Netscape was introduced in 1994.
Mozilla :
Mozilla is an open-source Web browser, designed for standards compliance, performance and portability. The development and testing of the browser is coordinated by providing discussion forums, software engineering tools, releases and bug tracking. Browsers based on Mozilla code is the second largest browser family on the Internet today, representing about 30% of the Internet community.
Konqueror :
Konqueror is an Open Source web browser with HTML 4.01 compliance, supporting Java applets, JavaScript, CSS 1, CSS 2.1, as well as Netscape plugins. This works as a file manager as wellIt supports basic file management on local UNIX filesystems, from simple cut/copy and paste operations to advanced remote and local network file browsing.
Firefox :
Firefox is a new browser derived from Mozilla. It was released in 2004 and has grown to be the second most popular browser on the Internet.
Safari :
Safari is a web browser developed by Apple Inc. and included in Mac OS X. It was first released as a public beta in January 2003. Safari has very good support for latest technologies like XHTML, CSS2 etc.
Opera :
Opera is smaller and faster than most other browsers, yet it is full- featured. Fast, user-friendly, with keyboard interface, multiple windows, zoom functions, and more. Java and non Java-enabled versions available. Ideal for newcomers to the Internet, school children, handicap and as a front-end for CD-Rom and kiosks.
Lynx :
Lynx is a fully-featured World Wide Web browser for users on Unix, VMS, and other platforms running cursor-addressable, character-cell terminals or emulators.
Web - Server Types
Every Web site sits on a computer known as a Web server. This server is always connected to the internet. Every Web server that is connected to the Internet is given a unique address made up of a series of four numbers between 0 and 256 separated by periods.for example, 68.178.157.132 or 68.122.35.127.
When you register a Web address, also known as a domain name, such as helloeducare.com you have to specify the IP address of the Web server that will host the site. You can load up with Dedicated Server that can support your web-based operations.
There are four leading web browsers: Apache, IIS, lighttpd and Jagsaw. Now we will see these servers in bit more detail.
Apart from these Web Servers, there are other Web Servers also available in the market but they are very expansive. Major ones are Netscape's iPlanet, Bea's Web Logic and IBM's Websphere.
Apache HTTP Server :
This is the most popular web server in the world developed by the Apache Software Foundation. Apache web server is an open source software and can be installed on almost all operating systems including Linux, Unix, Windows, FreeBSD, Mac OS X and more. About 60% of the web server machines run the Apache Web Server.
Internet Information Services :
The Internet Information Server (IIS) is a high performance Web Server from Microsoft. This web server runs on Windows NT/2000 and 2003 platforms ( and may be on upcoming new Windows version also). IIS comes bundled with Windows NT/2000 and 2003; Because IIS is tightly integrated with the operating system so it is relatively easy to administer it.
lighttpd :
The lighttpd, pronounced lighty is also a free web server that is distributed with the FreeBSD operating system. This open source web server is fast, secure and consumes much less CPU power. Lighttpd can also run on Windows, Mac OS X, Linux and Solaris operating systems.
Sun Java System Web Server :
This web server from Sun Microsystems is suited for medium and large web sites. Though the server is free it is not open source. It however, runs on Windows, Linux and Unix platforms. The Sun Java System web server supports various languages, scripts and technologies required for Web 2.0 such as JSP, Java Servlets, PHP, Perl, Python, Ruby on Rails, ASP and Coldfusion etc.
Jigsaw Server :
Jigsaw (W3C's Server) comes from the World Wide Web Consortium. It is open source and free and can run on various platforms like Linux, Unix, Windows, Mac OS X Free BSD etc. Jigsaw has been written in Java and can run CGI scripts and PHP programs.
Web - Site Advantages
If you are constructing a Web site, then I hope you are aware of its advantages as well. Still I'm listing out few more if you are not aware.
Business is open 24x7 :
This means that once you put your business onsite then your business is open 7 days a week and 365 days a year. Even if you are in different locations of the world then you will be able to server your customers on 24x7 Hours basis.
Increased Customer Base:
Because anyone in the world can see your web site so you will gain customers from other states and countries while you are putting in the same amount of effort and money.
Tremendous Cost Saving :
This is one of the biggest advantages of having a business online. You do not need to keep a big man power and lot of resources to maintain a business on site. There are many other cost saving opportunities while keeping business online. Think of how many cards you mail out to let customers know about your sale. All of that can be eliminated by putting the sale information on your web site and inviting your customers to visit it.
Advertising Opportunities:
Apart from saving your advertising cost you have additional opportunities to run advertisements from other companies and start making money. If you ever advertised in a local newspaper, you know the costs. You are being charged per line, per inch, and per color. On the Web, there is no limit to how much you can put. So whenever there is new product or service then you can advertise it in better way.
Creates a Brand Image:
Internet is a great medium through which you can create any image of yourself you want. It is all in your hands: design a professional web site, add helpful content, and your company will immediately take a step up in the image it represents. No matter how small your business is, with the right tools and a great desire you can make it look like a corporation on the Web.
Customer Satisfaction:
If you have a really good site online then you can give your customer a lot of satisfaction in terms of customer care. You can keep online help, FAQ, and other important information which is useful for your customers. You can create online forums for open discussion and you can conduct customer survey to take customer feedback etc.
Showcase your work:
Whether you are a real estate agent, construction business owner or a beauty salon specialist - you can put your work on display when you have a web site. Anytime a potential client wants to see your past work and projects, simply refer him or her to your site. No need to scan and mail pictures, or bring your client to a finished building project.
Web - Skills Required
If you are planning to maintain a Web site then I'm listing few basic skills which you will require to build and maintain a Web site. This list may go to infinite because today there are numerous technologies available and many are coming everyday. So you have to plan and affirm on any one of the available technologies and go ahead for your project.
This is not required that you should have knowledge of all the listed skills. If you want to develop a simple Web site then you would needs just first four skills listed here. Rest of the skills are required if you want to go for a bigger and more interactive Web site.
•Computer Operations: All you need to know is how to operate a computer - Windows, Linux or Macintosh. This depends on which Web Server you want to host your web site. So you should have basic knowledge of that system only. You should be well acquainted of basic operations like creating file, deleting file, updating file, directory creation, file permission etc.
•Remote Access: Most of the times your Web Server will be accessed from remote site only. You should be well aware how to connect a computer from remote site. So at least you should have basic knowledge of telnet utility to connect to a remote machine. There are many service providers who will provide you control panel to manage your Web site.
•File Uploading & Downloading: As I told you most of the times your Web Server will be on remote site. So you would need to upload and download all the files related to your Web site. So at least you should have basic knowledge of FTP utility to connect to a remote machine and download or upload your files. Almost service providers give you facility to upload your files on your Web server.
•HTML / XHTML Knowledge: These are the markup languages which you will use to build your web site. So you should have good understanding on these languages. You can refer our tutorial to learn HTML / XHTML.
•CSS Knowledge: Cascading Style Sheet knowledge is required to achieve many results which are not possible through HTML or XHTML.
•PHP Script: Now a days many sites are being developed using PHP language. This script helps you to create an interactive Web site. You can refer our tutorial to learn PHP Script.
•PERL Script: PERL is another language which is being highly used to develop interactive Web Applications. So if you are planning to use PERL to develop your Web site then you can refer our tutorial to learn PERL Script.
•Java or VB Scripts: These scripts are required to perform user level validations and to add more interactivity in your Web site. So a web developer is desired to have knowledge of any of the client side scripts.
•AJAX Technology: This is the latest technology in the web. Google and Yahoo are using this technology to give a better browsing experience to their site visitors. You can refer our tutorial to learn AJAX Technology.
•ASP or JSP : These are another technologies to be used to develop interactive Web sites.
•Flash Knowledge: You can plan to use Macromedia Flash to build your Web site. This is a bit time consuming to learn this technology but once you learnt then you can develop very beautiful and attractive web sites using Flash.
•HTTP Protocol: As you grow you are desired to have more knowledge about Web. So I would suggest you to go through the web backbone i.e. HTTP protocol as well.
Web - Tools Required
I hope you are already connected to the Internet, so you already met basic requirement which is an Internet Connection and a Computer. Now a days you will get broadband Internet connectivity on very nominal prices.
Here we will list out various other tools which you may need to develop your Web Site.
•Computer Machine : If you do not have computer available and you received this tutorial printed on a paper then I would say that first of all you would need a computer machine running either Windows or Linux or Unix or Macintosh system or any other operating system.
•Internet Connection: If you are not connected to the internet and you received this tutorial printed on a paper then I would say that this is second and another most important tool would need to connect to the Internet and to you Web Server where you will host your web site. For this purpose you can buy either a dial up connection or broadband connection of high speed connectivity based on your requirement and budget.
•A Web Server : Apart from basic Internet connectivity you will need one Web Server to keep your all the files related to your Web sit. So you would need to buy space on a Web Server. There are millions of ISPs who are in business of selling web space at competitive prices. We will give more detail on this in Web Hosting Concepts chapter.
•A Text Editor: This is another most important tool which you will need to develop your Web site. If you are using Windows then you can use notepad as a text editor, or if you are using Linux/Unix then vi editor is one of my favorite editors. You will need this editor to write your HTML, PHP or ASP pages or for any other editing purpose. For practice purpose your can use our Online HTML Editor.
•A Web Browser: You will need this tool to see the result of your HTML file. So you should have either Internet Explorer or Firefox etc. installed on your computer.
•Web Authoring Tools: If you don't want to use a simple Text Editor to edit your HTML files then there are many commercial Web Authoring Tools available. These tools are also called HTML editors. Microsoft's Frontpage and Macromedia Dreamweaver are both a visual HTML (WYSIWYG) and HTML source code editor. These editors helps you to develop your HTML pages vary rapidly.
•Secure telnet client: If you are connecting to your Web server directly then you can use a tool called PuTTY. This is what I'm using while connecting to my web server.
•Secure FTP client: If you are connecting to your Web server directly using FTP client to upload or download your web files then you can use a tool called PSFTP. FTP stands for File Transfer Protocol. Simply put, after you design your web site, you need to send it to the Web and your FTP program will do just that for you. This is what I'm using while connecting to my web server.
Web - Domain Names
A domain name is the part of your Internet address that comes after "www". For example, in www.helloeducare.com the domain name is helloeducare.com.
A domain name becomes your Business Address so care should be taken to select a domain name. Your domain name should be easy to remember and easy to type.
How to get a domain name ?
When you plan to put a site online, this is one of the important steps to buy a domain name. This is always not necessary that whatever domain name you are looking that is available so in that case you will have to opt for any other good domain name.
When you buy a domain name it is registered and when domain names are registered they are added to a large domain name register, and information about your site - including your Internet IP address is stored on a DNS server and your contact information etc is registered with your registrar.
You can buy domain name from any domain registrar like GoDaddy.com etc.
Domain Extension Types:
There are many different types of domain extensions you can choose for your domain name. This depends on your business nature. If you are going to register a domain name for educational site purpose then you can go for .edu extension. Below is a reference of the correct usage of certain extensions. But there is no hard and fast rule to go for any extension. Most commonly used is .com
•.com - Stands for company/commercial, but it can be used for any web site.
•.net - Stands for network and is usually used for a network of sites.
•.org - Stands for organization and is supposed to be for non-profit bodies.
•.us, .in - They are based on your country names so that you can go for country specific domain extensions.
•.biz - A newer extension on the Internet and can be used to indicate that this site is purely related to business.
•.info - Stands for information. This domain name extension can be very useful, and as a new comer it's doing well.
•.tv - Stands for Television and are more appropriate for TV channel sites.
Newer domain extensions such as .biz .info and .us etc. have more name choices available as many of the popular domains have yet to be taken and most of the them are available at very nominal prices.
Choosing Domain Name:
This is very important step to name your web site. As I have told you that your domain name will be your business address so very much care should be taken while choosing a domain name.
Many people think it is important to have keywords in a domain. Keywords in the domain name are usually important, but it usually can be done while keeping the domain name short, memorable, and free of hyphens.
Using keywords in your domain name give you a strong competitive advantage over your competitors. Having your keywords in your domain name can increase click through rates on search engine listings and paid ads as well as make it easier to Using your keywords in get keyword rich descriptive inbound links.
Avoid buying long, and confusing domain names. May people separate the words in their domain names using dashes or hyphen. In the past the domain name itself was a significant ranking factor but now search engines have advanced it is not very significant factor anymore.
Keep two to three words in your domain name it will be more memorable. Some of the most memorable web sites do a great job of branding by creating their own word. Few examples are eBay, Yahoo!, Expedia, Slashdot, Fark, Wikipedia, Google...
You should be able to say it over the telephone once and the other person should know how to spell it and they should know what you sell. If you can do that AND work keywords in there, good for you. If you can't, skip the keywords.
What are Sub Domains:
You can divide your domain into many sub domains based on your requirement. If you are doing multiple business using the same domain then its worth to use sub domain for every business. Following are examples of sub domains
You must have seen http://www.google.com as a main domain but google has created many subdomains based on their business. Few of them are as follows:
•http://adwords.google.com - This sub domain is being used for Google Adwords.
•http://groups.google.com - This sub domain is being used for Google Groups.
•http://images.google.com - This sub domain is being used for Google Images.
This way you can present your different business sections in a very good segregated way. This is not a big thing to create a sub domain. If you already have registered a domain your registrar will provide you a way to create your sub domains. You may need to talk to your registrar for more detail.
Web - Site Construction
Now you are ready for a web site construction. Before proceeding ahead you have to take many factors into consideration. I can not list out each and everything but I have described major factors in this tutorial which will help you to have a better web site:
What to put on your web site ?
This totally depends on your business and nature of your web site. Here is a list of pages that you might want to create for your web site.
•Attractive Home Page : Always required for every web site.
•List of Product and Services along with complete detail.
•Complete Pricing Information.
•About your company and nature of business including your achievements.
•About your staff and if possible their experience.
•Your complete contact information.
•Frequently Asked Questions.
•Success Stories and Feedback from Customers.
Finally, make your site useful and interesting for your customers. Your site visitors are your customers and they should find each and every thing they are looking for. Customer satisfaction should be prime concern.
How to design your web site ?
You should not simply start developing your web site otherwise you will end up with a bogus web site. First you should put a complete plan and your design on a paper or in an electronic document.
Here are few points which can help you to design a better web site:
•Consider what technology you are going to use to develop your web site. Adopt one which gives you better flexibility and rapid development opportunities and then design it accordingly.
•Design a generic framework so that in future you can enhance and modify your web site by putting minimal effort.
•Design a site to keep required performance in your mind. If you are designing database driven web site then lot of effort has to put to design good database schemas.
•Keep your design as simple as possible so that any new developer should become familiar with your design as soon as possible.
•Identify repeatable components of your web site and then keep them separate and try to use them wherever possible.
•Identify the nature and qualification of your site visitors and give importance to look and feel accordingly.
•Think in a way, if you are a site visitor then what and how would you like to see this web site? If same site belongs to somebody else then would like to spend some time on such site ?
•You should create a search engine friendly web site.
•Once again....your presentation should be unique and attractive otherwise there are lot of web sites available on the Internet and it will be difficult for your to retain a site visitor for more than a minute.
How to make web site interactive ?
Many statistics shows that if you are able to retain your site visitors for a long time then they do bigger shopping and comes again and again.
So make sure you have done something for your site visitors to do on your web site. Though offering a lot of quality information can also serve as a great visitor magnet and will generate more repeat visits. Here is a list of interactive tools you can add to your web site completely FREE and without any programming skills:
•Poll
•Forum
•Guest book
•Chat room
•Greeting cards
•Tell-a-friend about this site
•Feedback form
•Live customer service
•Daily joke or daily cartoon
•Daily news headlines
•Site Search Engine
•Mailing List
•Automated Frequently Asked Questions
The list can go on and on, depending on what will attract your type of visitors.
How to code your web site ?
Finally, when you start coding for your web site you should be well aware of the following tips for a better web site:
•You site should meet all the quality requirements defined by W3C. Today we are using XHTML to develop any web site. XHTML is just a cleaner version of HTML.
•You should keep validating your source code using W3C Validator.
•Keep your source code very clean and understandable.
•Do use appropriate comments but avoid using to many comments inside HTML files.
•Keep your style sheets and JAVA or VB scripts into separate files and then include them where ever is required.
•Do not use to much graphics in your web pages.
•Try to keep your web pages static instead of generating them dynamically.
•Make sure there is no broken link on any web page.
•Test your developed web page in major browsers like Internet Explorer, Firefox, Mozilla, Netscape etc.
•Test your all the scripts for all the possible scenarios. Do not host any page without complete testing.
How to create search engine friendly web site ?
This is very important for you to make your web site search friendly otherwise you will be away from a large chunk of your customer base which comes from search engines like google and yahoo.
This subject is so important that we have put a complete tutorial on Search Engine Optimization and I will strongly recommend you to go through this tutorial before your start developing your web site.
Securing your source code frequently:
While developing your web site it is very important to keep a backup of your complete source code. Many times it happens that you may delete any file by mistake so if you are keeping its backup then you can restore previous file and start doing your work.
This is a very good practice to take backup on hourly basis or at least on daily basis. Keep this backup on different machine or media. This is very likely that machine may crash anytime and it will result in a very serious situation if you are keeping your backup on different machine or media.
Web - Hosting Concepts
Web hosting means to put your web site content on a Web server. Hosting your web site on your own server could be an option. But this will become very much expansive unless you are hosting a site like yahoo.com or google.com. So this tutorials does not cover how to set up your own hosting server.
Buying a server space or renting a complete server from an Internet Service Provider (ISP) are most widely used options. This section guides you to choose a hosting type and makes you aware of other related concepts.
Hosting Platforms:
You can go for any of the following two most widely used hosting platforms:
•Windows Hosting Servers : If you are a Windows lover then you will find many hosting servers running different flavors of Windows and you can buy space from these servers. Normally Windows hosting server are more expansive because of lot of software incensing costs are involved with these servers
•Linux Hosting Servers: If you want to go for Linux then opportunities are unlimited and they will have to pay less then what you will pay for Windows Hosting Server. There are many ISP who provides Hosting Servers with different flavors of Unix.
Hosting Types:
There are many options available and you can select any hosting type based on your requirement and budget. Following are most widely used hosting types:
•Free Hosting: Yes, this is true there are many service providers who will give you free space on their web server with a condition that you will allow them to run their advertisement at your web pages. So if you are OK with this option then you have nothing to pay for a space. There are some web sites like geocities.com, lycos.com, myspace.com etc. who give you space to build your web pages.
•Shared Hosting: With shared hosting, your web site is hosted on a powerful server along with other web sites. On a shared host you will have your own user ID and password to login to the shared host and you will be allowed to work in your work area. You would not be able to touch any file or directory belonging to other host partner. Even you would not know how many sites are hosted on your shared host. This type of hosting is very cost effective and good for small web site where your space and speed are not very important. Here traffic on one site will affect the speed of all other hosted sites.
•Virtual Dedicated Hosting: This type of hosting is better for medium size business. With virtual dedicated hosting you will have a dedicated bandwidth and dedicated RAM for your site. You will be given root ID and password to maintain your Web server. You will be complete owner of your virtual dedicated server and will be able to install or de-install any software. This type of hosting is created on a single server but it is managed in such a way that every user will have dedicated speed and bandwidth. This is bit more expansive but really good one for medium size business.
•Dedicated Hosting: This type of hosting is very similar to virtual dedicated hosting but here complete machine will be allotted for you. They are more expansive than virtual dedicated hosting and should be considered when you have a very high traffic requirement.
•Collocated Hosting: This is very difficult to set you dedicated resources like high-security against fire and vandalism, regulated backup power, dedicated Internet connections and more. So collocation is the option which allows you to put your machine in a service provider's premises to avail all the available facilities. This is also a very expansive option and should be opted when you have very high traffic requirement.
Hosting Components :
When you buy a Web server space then you should be clear about the follows. You should do price comparison between different service providers based on the following components:
•Disc Space: A small or medium web site will need between 10 and 100MB of disk space. If you plan to keep lot of audio and Video on your web site then you need plan to buy more space. Before buying server space you should check the options available to expand your disc space if you need it in future.
•Monthly Traffic: A small or medium web site will need between 1GB and 10GB of data transfer on monthly basis. If you plan to keep lot of audio and Video on your web site then you need plan to look for more data transfer capacity. Check different options based on your requirements. What are other options available in case you cross the given data transfer limit. Your site should not be stopped in case you reach to the given limit.
•Processing Speed: If you are buying space on a shared machine then you can not guess how much speed will be given to you. In that case only way is to see other hosted sites with the same service provider to know about their hosting quality. But if you are buying virtual dedicated server or dedicated server then you should consider how much RAM is being allocated to you. Your pricing will depend on the given processing power to you.
•Connection Speed: Now a days very fast connection speed is available from most of the service providers. So choose a service provider who is giving better connection speed in terms of bits per second. You can have connection speed ranging from 64Kb per second to 2.488Gb per second.
•Email Accounts: Make sure you are going to get sufficient number of e-mail accounts. There are many other options available which come along with your e-mail account. Like, will you get IMAP, POP and E-mail Forwarding options available along with your e-mail facilities.
•Emailing Support: Apart form having email accounts it is also very important that your web server should have a facility to send emails from back-end. In case your site visitors want to contact to you using a form provided by you then you will be able to use that emailing facility to send email to your designated account. In simple terms you should make sure that SMTP Server is setup and working on your Web server.
•Latest Technologies: You should make sure that your web server is equipped with all the latest technologies. It should have latest version support for PHP, PERL, ASP and JAVA etc.
•Databases: There are many databases available MySQL, Oracle, SQL Server etc. So you should choose your server based on your database requirement. If you are buying space on a shared server then you need to verify how much space will be allocated for your database. Many ISP does not give more than a limited space for databases. So if your site needs lot of database size then you should go for virtual dedicated server.
•Server Uptime: This is very important to buy a web server from a reliable and reputed ISP. You should make sure your ISP is giving you 99.99% server uptime. If there is server down then there are many service providers who gives you compensation in case your sites goes down more than a limited time.
•Backup & FTP: Make sure your Service Provider is giving you or more ways of taking regular backup of your web site. If your site is changing everyday then it becomes very important that you should take regular backup of your web site. Many service providers do it on your behalf but they charge very little cost for this service.
•Control Panel: Just make sure what type of facilities you will get to maintain your hosting account. If your service provider is providing your an easy to use control panel or some other similar tool. Using a control panel you should be able to maintain basic operations related to your web site specially like log your service request, your reboot request or any other problem.
•Customer Support: Before finalizing a deal with your service provider you should make sure they will provide your required support. You can get this information using Internet forums or from your friends. There are many service providers who give you 24x7 support for any technical or non technical problem.
Web - Ecommerce Hosting
Ecommerce is a way of doing business through Internet. Specially when you are selling your product or services through Internet then you are doing ecommerce.
So if you planning to put a web site which will have transactions likes buying or selling items or services then it means you are going to setup an ecommerce web site. If this is the case then I don't think this guide will help you upto a level where should be able to setup an ecommerce site because there are many more things which should be considered while setting up an ecommerece web site.
Still you can start from here : E-commerce hosting are bit expansive but they should not be treated as expansive that you can not start an ecommerce web site. Now a days it is very easy to set up an ecommerce site only thing is that just get in touch of any good service provider and start gathering basic information.
There many service providers who help you to setup your virtual store and charge you unexpectedly very low. Even now google also has started google account service in which you can sell your products through them and all the money will come in your account without any hassle.
While finalizing your ecommerce hosting setup, to avoid any future risk you should be very clear on how to handle the followings:
•Customer Registrations
•Customer Transactions
•Product Catalogs
•Customer Orders
•Order Security
•Server Security
•Server Maintenance
•Server Backup
•Server downtime
•Inventory Control
•Shipment Methods
•Payment Methods
•Foreign currency
•Credit Cards
•Taxes issues
You should take this list and discuss it with your service provider as well to understand how they will support you to handle all these items.
Web - Site Backup
Your server's hard drive crashed. Your site is hacked and hacker was kind enough who deleted all your files. Your web host disappeared with your money and your data. Even worst case there was earth quack and your ISP building is gone down and everything is lost.
Touch Wood!!! Nobody should face such a situation. But if you are not prepared for these situations, your hard work might be lost forever. That is why it is of the utmost importance that you keep regular backups of your data.
Now there are many questions :
•How frequently backup should be taken?
•Where this backup should be preserved?
•What type of backup should be taken ?
•Who should take these backup ?
Now let us answer these questions one by one:
How frequently backup should be taken?
If your site is not changing over a period of time then I will say take backup only once and keep it on your floppy or hard disc or data disc or DVD wherever you like. In case you need to restore it, just do it and see your web site up and running.
But if your site is changing over the period of time then it becomes very important to take regular backup. Web sites like amazon.com have very tight backup schedules and very expansive backup infrasturcture.
So it depends on your business and you have to see how much data loss you can bear. If you think it is not affordable to loss even a single day data then I would recommend to schedule daily backup and similarly you can decide if weekly or monthly backup are OK for you or not.
Where this backup should be preserved?
Most of the times backup is taken from one machine and put on different other machines or media. So if possible you should arrange a different backup server where you can FTP your complete data to be backup up. If this is not too much then you can keep it in floppy or data CD or DVD etc.
If possible, I would recommend to keep multiple copy of backup but with a very managed way to avoid any confusion. You should have a proper version control over the different backup.
There are many service providers who provide you different backup server with a very nominal cost and its worth to spend that amount on backup services.
What type of backup should be taken ?
There are two types of backup: incremental and full. This depends on what type of backup tools you are using. There are many backup tools like oracle provides their utilities to take different type of backup.
•Incremental Backup - The backups controller compares the existing backup to the data that you wish to backup. If it is an exact match between the two, then no additional files will be backed up. However, if you have added or edited any file, these files will be updated in the backup, thus the incremental name.
•Full Backup - Here all files are written to the backup, even if they already exist in the most current backup.
Who should take these backup ?
Simplest case is that you can login to your web server on monthly or weekly basis and copy all the web site related files on different computer or media. But this goes well if your site is having small amount of data.
If you have huge database and numerous files then it is difficult to manage such backups on everyday and weekly basis. So in that case you may need to have automated scripts to take this backup and to keep them at another machine or media etc.
You can write your shell script or perl script and go into different directories and collect all the files and zip them automatically, assign then a unique backup number and then ftp those files on a designated backup server or media like tap drive etc.
Conclusion:
So now you decide how do you want to take your backup but I will say if you are web site owner then its is your religion to take regular backup without a failure otherwise.....results are very serious
Web - Site Statistics
Your site is up and running. But this is very important for you to know who is coming on your site and what they using. There are following components which should be available to you.
•Who is visitor ? You should have your site visitor IP address available with you to know the geographical location and identity of that visitor.
•Visitors Timestamp: This is important to know what time most of the visitors are visiting your site so in case if you plan a server down then you can decide it very easily. Second timestamp and IP address will help you to identify your site visitor in case an investigation is required against a site visitor.
•What visitor is using ? What pages did the site visitor view on your web site will give you an idea about the importance of various sections of your web site.
•How visitors came ? This is another important information you should be aware of. How you are getting your site visitors. Are they coming directly or coming through some other web site or advertising program
•How long stay ? - How long a site visitor is staying at your site. This is important for you to know this duration if visitors are leaving your site just after browsing 1 or 2 pages then you should think some way to retain them for long time on your site.
•Visitors Browser : This information is important to improve your web site for that type of web browsers.
Statistics Programs:
There are many web sites who help you to find out all these information. You just need to keep a small piece of code in the .... section of your web pages and you will have not only all the above mentioned information but also a complete analysis of your site.
•You can try Googles Analytics Program to capture your web site statistics.
•Another good program is Webalizer. This is will give you all the basic site statistics you need.
•There is a site from sourceforge which gives you opportunity to collect your web site statistics. So you can try it as well AWStats.
Site Statistics Terminology:
There is a very basic terminology related to your web site statistics. Go through the following terms to become more comfortable with your site statistics report and analysis.
•Unique Visits - The number of unique visitors you had for the given time period. Example: if there was only a single person who visited your web site, and visited 1,000 separate times in a day, the unique visits would just be one. The uniqueness is counted based on the IP address of the visitor.
•Total Visits - The total number of visits including duplicate visits, that a web site receives in a given time period. Each time a site visitor reaches to your site it is counted one visit.
•Page Views or Page Impressions - Each time a web page is loaded it is referred to as a page view. If you are counting a web site link available on this page then it will be counted as a page impression.
•Hits - This is very similar to page views and will be counted every time a visitor will click any link related to your web site.
•Direct Access : - This amount refers to the people who accessed your web site through their bookmarks or typed in your URL manually in the URL box of the browser.
•Referrer & Referral URL - The web address where the visitor followed a link to reach your web site. For example if someone finds your web site in google search and click over the link then google will be referrer.
Web - Site Popularity
You design a web site and developed it and finally hosted it. Now just think how many site visitors know about this site address and related service.
So if you want to make your site a success then actual work starts after hosting your web site successfully. This includes following actions but to gain popularity is not limited to these actions.
•Search Engine Inclusion: First step, you should go and include your web site in various search engines like google, yahoo and msn etc. Never trust on automated software to include your site in search engines. There are many fraud companies in this business so be away from them and don't waste your money.
•Open directory inclusion: This is another way to make your site popular. There are many open directory projects like dmoz.com and yahoo.com etc where you can include your web site to get attention from net surfers.
•Google Adwords: This is paid program from google where you can register and you can pay based on number of clicks on your web site link or based on number of page impressions.
•Advertising Programs: If you have big budget then you can go for higher resources like TV ads or News paper or magazine adverting programs. They are most effective and expansive as well.
•White papers and Article: If you write white papers or articles then you can include your web site link in those white papers or articles to get more traffic on your site.
•Site Link Exchange: There are many sites including my site, who do site link exchange. So you will keep their site link at your web site and they will keep your site link at their site. This is for then mutual benefit of site link exchangers.
Web - Summary
I hope this guide did not waste your time and it have been worth to spend your precious time on this tutorial. Here you have learnt all the basics of Web and Web Hosting.
I may have done some spelling mistakes and grammatical mistakes while writing this tutorial so please send me your feedback and corrections to be done at :
I hope u enjoyed to read it..
Thank you
Jitendra Yadav
yadavjitendra07@gmail.com.
Intro To Web Services.
What are Web Services
Web services are open standard ( XML, SOAP, HTTP etc.) based Web applications that interact with other web applications for the purpose of exchanging data
Web Services can convert your existing applications into Web-applications.
In this tutorial you will learn what exactly Web Services are and Why and How to use them.
Different books and diffrent organizations give different definitions to Web Services.
Few definitions are given here and all the definitions are correct.
A web service is any piece of software that makes itself available over the internet and uses a standardized XML messaging system. XML is used to encode all communications to a web service. For example, a client invokes a web service by sending an XML message, then waits for a corresponding XML response. Because all communication is in XML, web services are not tied to any one operating system or programming language--Java can talk with Perl; Windows applications can talk with Unix applications.
Web Services are self-contained, modular, distributed, dynamic applications that can be described, published, located, or invoked over the network to create products, processes, and supply chains. These applications can be local, distributed, or Web-based. Web services are built on top of open standards such as TCP/IP, HTTP, Java, HTML, and XML.
Web services are XML-based information exchange systems that use the Internet for direct application-to-application interaction. These systems can include programs, objects, messages, or documents.
A web service is a collection of open protocols and standards used for exchanging data between applications or systems. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet in a manner similar to inter-process communication on a single computer. This interoperability (e.g., between Java and Python, or Windows and Linux applications) is due to the use of open standards.
To summarize, a complete web service is, therefore, any service that:
Is available over the Internet or private (intranet) networks
Uses a standardized XML messaging system
Is not tied to any one operating system or programming language
Is self-describing via a common XML grammar
Is discoverable via a simple find mechanism
Components of Web Services?
The basic Web services platform is XML + HTTP. All the standard Web Services works using following components
SOAP (Simple Object Access Protocol)
UDDI (Universal Description, Discovery and Integration)
WSDL (Web Services Description Language)
All these components have been discussed in Web Services Architecture section.
How Does it Work?
You can build a Java-based Web Service on Solaris that is accessible from your Visual Basic program that runs on Windows. You can also use C# to build new Web Services on Windows that can be invoked from your Web application that is based on JavaServer Pages (JSP) and runs on Linux.
An Example
Consider a simple account-management and order -processing system. The accounting personnel use a client application built with Visual Basic or JSP to create new accounts and enter new customer orders.
The processing logic for this system is written in Java and resides on a Solaris machine, which also interacts with a database to store the information.
The steps illustrated above are as follows:
The client program bundles the account registration information into a SOAP message.
This SOAP message is sent to the Web Service as the body of an HTTP POST request.
The Web Service unpacks the SOAP request and converts it into a command that the application can understand. The application processes the information as required and responds with a new unique account number for that customer.
Next, the Web Service packages up the response into another SOAP message, which it sends back to the client program in response to its HTTP request.
The client program unpacks the SOAP message to obtain the results of the account registration process. For further details regarding the implementation of Web Services technology, read about the Cape Clear product set and review the product components.
Why Web Services ?
Here are the benefits of using Web Services:
Exposing the existing function on to network:
A Web service is a unit of managed code that can be remotely invoked using HTTP, that is, it can be activated using HTTP requests. So, Web Services allows you to expose the functionality of your existing code over the network. Once it is exposed on the network, other application can use the functionality of your program.
Connecting Different Applications ie Interoperability:
Web Services allows different applications to talk to each other and share data and services among themselves. Other applications can also use the services of the web services. For example VB or .NET application can talk to java web services and vice versa. So, Web services is used to make the application platform and technology independent.
Standardized Protocol:
Web Services uses standardized industry standard protocol for the communication. All the four layers (Service Transport, XML Messaging, Service Description and Service Discovery layers) uses the well defined protocol in the Web Services protocol stack. This standardization of protocol stack gives the business many advantages like wide range of choices, reduction in the cost due to competition and increase in the quality.
Low Cost of communication:
Web Services uses SOAP over HTTP protocol for the communication, so you can use your existing low cost internet for implementing Web Services. This solution is much less costly compared to proprietary solutions like EDI/B2B. Beside SOAP over HTTP, Web Services can also be implemented on other reliable transport mechanisms like FTP etc.
Web Services Behavioral Characteristics
Web services have special behavioral characteristics
XML-based
Web Services uses XML at data representation and data transportation layers. Using XML eliminates any networking, operating system, or platform binding. So Web Services based applications are highly interoperable application at their core level.
Loosely coupled
A consumer of a web service is not tied to that web service directly. The web service interface can change over time without compromising the client's ability to interact with the service. A tightly coupled system implies that the client and server logic are closely tied to one another, implying that if one interface changes, the other must also be updated. Adopting a loosely coupled architecture tends to make software systems more manageable and allows simpler integration between different systems.
Coarse-grained
Object-oriented technologies such as Java expose their services through individual methods. An individual method is too fine an operation to provide any useful capability at a corporate level. Building a Java program from scratch requires the creation of several fine-grained methods that are then composed into a coarse-grained service that is consumed by either a client or another service. Businesses and the interfaces that they expose should be coarse-grained. Web services technology provides a natural way of defining coarse-grained services that access the right amount of business logic.
Ability to be synchronous or asynchronous
Synchronicity refers to the binding of the client to the execution of the service. In synchronous invocations, the client blocks and waits for the service to complete its operation before continuing. Asynchronous operations allow a client to invoke a service and then execute other functions. Asynchronous clients retrieve their result at a later point in time, while synchronous clients receive their result when the service has completed. Asynchronous capability is a key factor in enabling loosely coupled systems.
Supports Remote Procedure Calls (RPCs)
Web services allow clients to invoke procedures, functions, and methods on remote objects using an XML-based protocol. Remote procedures expose input and output parameters that a web service must support. Component development through Enterprise JavaBeans (EJBs) and .NET Components has increasingly become a part of architectures and enterprise deployments over the past couple of years. Both technologies are distributed and accessible through a variety of RPC mechanisms. A web service supports RPC by providing services of its own, equivalent to those of a traditional component, or by translating incoming invocations into an invocation of an EJB or a .NET component.
Supports document exchange
One of the key advantages of XML is its generic way of representing not only data, but also complex documents. These documents can be simple, such as when representing a current address, or they can be complex, representing an entire book or RFQ. Web services support the transparent exchange of documents to facilitate business integration.
Web Services Architecture
There are two ways to view the web service architecture.
The first is to examine the individual roles of each web service actor.
The second is to examine the emerging web service protocol stack.
--------------------------------------------------------------------------------
1. Web Service Roles
There are three major roles within the web service architecture:
Service provider:
This is the provider of the web service. The service provider implements the service and makes it available on the Internet.
Service requestor
This is any consumer of the web service. The requestor utilizes an existing web service by opening a network connection and sending an XML request.
Service registry
This is a logically centralized directory of services. The registry provides a central place where developers can publish new services or find existing ones. It therefore serves as a centralized clearinghouse for companies and their services.
--------------------------------------------------------------------------------
2. Web Service Protocol Stack
A second option for viewing the web service architecture is to examine the emerging web service protocol stack. The stack is still evolving, but currently has four main layers.
Service transport
This layer is responsible for transporting messages between applications. Currently, this layer includes hypertext transfer protocol (HTTP), Simple Mail Transfer Protocol (SMTP), file transfer protocol (FTP), and newer protocols, such as Blocks Extensible Exchange Protocol (BEEP).
XML messaging
This layer is responsible for encoding messages in a common XML format so that messages can be understood at either end. Currently, this layer includes XML-RPC and SOAP.
Service description
This layer is responsible for describing the public interface to a specific web service. Currently, service description is handled via the Web Service Description Language (WSDL).
Service discovery
This layer is responsible for centralizing services into a common registry, and providing easy publish/find functionality. Currently, service discovery is handled via Universal Description, Discovery, and Integration (UDDI).
As web services evolve, additional layers may be added, and additional technologies may be added to each layer.
Next chapter explains about various components of Web Services.
--------------------------------------------------------------------------------
Few Words about Service Transport
The bottom of the web service protocol stack is service transport. This layer is responsible for actually transporting XML messages between two computers.
Hyper Text Transfer Protocol (HTTP)
Currently, HTTP is the most popular option for service transport. HTTP is simple, stable, and widely deployed. Furthermore, most firewalls allow HTTP traffic. This allows XMLRPC or SOAP messages to masquerade as HTTP messages. This is good if you want to easily integrate remote applications, but it does raise a number of security concerns.
Blocks Extensible Exchange Protocol (BEPP)
One promising alternative to HTTP is the Blocks Extensible Exchange Protocol (BEEP).BEEP is a new IETF framework of best practices for building new protocols. BEEP is layered directly on TCP and includes a number of built-in features, including an initial handshake protocol, authentication, security, and error handling. Using BEEP, one can create new protocols for a variety of applications, including instant messaging, file transfer, content syndication, and network management
SOAP is not tied to any specific transport protocol. In fact, you can use SOAP via HTTP, SMTP, or FTP. One promising idea is therefore to use SOAP over BEEP.
Web Services Components
Over the past few years, three primary technologies have emerged as worldwide standards that make up the core of today's web services technology. These technologies are:
- XML-RPC
This is the simplest XML based protocol for exchanging information between computers.
XML-RPC is a simple protocol that uses XML messages to perform RPCs.
Requests are encoded in XML and sent via HTTP POST.
XML responses are embedded in the body of the HTTP response.
XML-RPC is platform-independent.
XML-RPC allows diverse applications to communicate.
A Java client can speak XML-RPC to a Perl server.
XML-RPC is the easiest way to get started with web services.
To learn more about XML-RPC visit XML-RPC Tutorial
--------------------------------------------------------------------------------
- SOAP
SOAP is an XML-based protocol for exchanging information between computers.
SOAP is a communication protocol
SOAP is for communication between applications
SOAP is a format for sending messages
SOAP is designed to communicate via Internet
SOAP is platform independent
SOAP is language independent
SOAP is simple and extensible
SOAP allows you to get around firewalls
SOAP will be developed as a W3C standard
To learn more about SOAP visit SOAP Tutorial
--------------------------------------------------------------------------------
- WSDL
WSDL is an XML-based language for describing Web services and how to access them.
WSDL stands for Web Services Description Language
WSDL is an XML based protocol for information exchange in decentralized and distributed environments.
WSDL is the standard format for describing a web service.
WSDL definition describes how to access a web service and what operations it will perform.
WSDL is a language for describing how to interface with XML-based services.
WSDL is an integral part of UDDI, an XML-based worldwide business registry.
WSDL is the language that UDDI uses.
WSDL was developed jointly by Microsoft and IBM.
WSDL is pronounced as 'wiz-dull' and spelled out as 'W-S-D-L'
To learn more about WSDL visit WSDL Tutorial
--------------------------------------------------------------------------------
- UDDI
UDDI is an XML-based standard for describing, publishing, and finding Web services.
UDDI stands for Universal Description, Discovery and Integration.
UDDI is a specification for a distributed registry of Web services.
UDDI is platform independent, open framework.
UDDI can communicate via SOAP, CORBA, Java RMI Protocol.
UDDI uses WSDL to describe interfaces to web services.
UDDI is seen with SOAP and WSDL as one of the three foundation standards of web services.
UDDI is an open industry initiative enabling businesses to discover each other and define how they interact over the Internet.
Web Services - Examples
Based on the Web Service Architecture we will create following two components as a part of Web Services implementation
Service provider or publisher:
This is the provider of the web service. The service provider implements the service and makes it available on the Internet or intranet.
We will write and publish a simple web Service using .NET SDK.
Service requestor or consumer
This is any consumer of the web service. The requestor utilizes an existing web service by opening a network connection and sending an XML request.
We will also write two Web Service requestors: one Web-based consumer (ASP.NET application) and another Windows application-based consumer.
Following is our First Web Service example which works as a service provider and exposes two methods (add and SayHello) as Web Services to be used by applications. This is a standard template for a Web Service. .NET Web Services use the .asmx extension. Note that a method exposed as a Web Service has the WebMethod attribute. Save this file as FirstService.asmx in the IIS virtual directory (as explained in configuring IIS; for example, c:\MyWebSerces).
FirstService.asmx
using System;
using System.Web.Services;
using System.Xml.Serialization;
[WebService(Namespace="http://localhost/MyWebServices/")]
public class FirstService : WebService
{
[WebMethod]
public int Add(int a, int b)
{
return a + b;
}
[WebMethod]
public String SayHello()
{
return "Hello World";
}
}
To test a Web Service, it must be published. A Web Service can be published either on an intranet or the Internet. We will publish this Web Service on IIS running on a local machine. Let's start with configuring the IIS.
Open Start->Settings->Control Panel->Administrative tools->Internet Services Manager.
Expand and right-click on [Default Web Site]; select New ->Virtual Directory.
The Virtual Directory Creation Wizard opens. Click Next.
The "Virtual Directory Alias" screen opens. Type the virtual directory name—for example, MyWebServices—and click Next.
The "Web Site Content Directory" screen opens. Here, enter the directory path name for the virtual directory—for example, c:\MyWebServices—and click Next.
The "Access Permission" screen opens. Change the settings as per your requirements. Let's keep the default settings for this exercise. Click the Next button. It completes the IIS configuration. Click Finish to complete the configuration.
To test that IIS has been configured properly, copy an HTML file (for example, x.html) in the virtual directory (C:\MyWebServices) created above. Now, open Internet Explorer and type http://localhost/MyWebServices/x.html. It should open the x.html file. If it does not work, try replacing localhost with the IP address of your machine. If it still does not work, check whether IIS is running; you may need to reconfigure IIS and Virtual Directory.
To test our Web Service, copy FirstService.asmx in the IIS virtual directory created above (C:\MyWebServices). Open the Web Service in Internet Explorer (http://localhost/MyWebServices/FirstService.asmx). It should open your Web Service page. The page should have links to two methods exposed as Web Services by our application. Congratulations; you have written your first Web Service!!!
Testing the Web Service
As we have just seen, writing Web Services is easy in the .NET Framework. Writing Web Service consumers is also easy in the .NET framework; however, it is a bit more involved. As said earlier, we will write two types of service consumers, one Web- and another Windows application-based consumer. Let's write our first Web Service consumer.
Web-Based Service Consumer
Write a Web-based consumer as given below. Call it WebApp.aspx. Note that it is an ASP.NET application. Save this in the virtual directory of the Web Service (c:\MyWebServices\WebApp.axpx).
This application has two text fields that are used to get numbers from the user to be added. It has one button, Execute, that, when clicked, gets the Add and SayHello Web Services.
WebApp.axpx
After the consumer is created, we need to create a proxy for the Web Service to be consumed. This work is done automatically by Visual Studio .NET for us when referencing a Web Service that has been added. Here are the steps to be followed:
Create a proxy for the Web Service to be consumed. The proxy is created using the wsdl utility supplied with the .NET SDK. This utility extracts information from the Web Service and creates a proxy. Thus, the proxy created is valid only for a particular Web Service. If you need to consume other Web Services, you need to create a proxy for this service as well. VS .NET creates a proxy automatically for you when the reference for the Web Service is added. Create a proxy for the Web Service using the wsdl utility supplied with the .NET SDK. It will create FirstSevice.cs in the current directory. We need to compile it to create FirstService.dll (proxy) for the Web Service.
c:> WSDL http://localhost/MyWebServices/
FirstService.asmx?WSDL
c:> csc /t:library FirstService.cs
Put the compiled proxy in the bin directory of the virtual directory of the Web Service (c:\MyWebServices\bin). IIS looks for the proxy in this directory.
Create the service consumer, which we have already done. Note that I have instantiated an object of the Web Service proxy in the consumer. This proxy takes care of interacting with the service.
Type the URL of the consumer in IE to test it (for example, http://localhost/MyWebServices/WebApp.aspx).
Windows Application-Based Web Service Consumer
Writing a Windows application-based Web Service consumer is the same as writing any other Windows application. The only work to be done is to create the proxy (which we have already done) and reference this proxy when compiling the application. Following is our Windows application that uses the Web Service. This application creates a Web Service object (of course, proxy) and calls the SayHello and Add methods on it.
WinApp.cs
using System;
using System.IO;
namespace SvcConsumer{
class SvcEater
{
public static void Main(String[] args)
{
FirstService mySvc = new FirstService();
Console.WriteLine("Calling Hello World Service: " +
mySvc.SayHello());
Console.WriteLine("Calling Add(2, 3) Service: " +
mySvc.Add(2, 3).ToString());
}
}
}
Compile it using c:>csc /r:FirstService.dll WinApp.cs. It will create WinApp.exe. Run it to test the application and the Web Service.
Now, the question arises: How can I be sure that my application is actually calling the Web Service? It is simple to test. Stop your Web server so that the Web Service cannot be contacted. Now, run the WinApp application. It will fire a run-time exception. Now, start the Web server again. It should work.
Web Services Security
Security is critical to web services. However, neither the XML-RPC nor SOAP specifications make any explicit security or authentication requirements.
There are three specific security issues with Web Services:
Confidentiality
Authentication
Network Security
--------------------------------------------------------------------------------
Confidentiality
If a client sends an XML request to a server, then question is that can we ensure that the communication remains confidential?
Answer lies here
XML-RPC and SOAP run primariy on top of HTTP.
HTTP has support for Secure Socktes Layer (SSL).
Communication can be encrypted via the SSL.
SSL is a proven technology and widely deployed.
But a single web service may consist of a chain of applications. For example one large service might tie together the services of three other applications. In this case, SSL is not adequate; the messages need to be encrypted at each node along the service path, and each node represents a potential weak link in the chain. Currently, there is no agreed-upon solution to this issue, but one promising solution is the W3C XML Encryption Standard. This standard provides a framework for encrypting and decrypting entire XML documents or just portions of an XML document. Check it at http://www.w3.org/Encryption
--------------------------------------------------------------------------------
Authentication
If a client connects to a web service, how do we identify the user? And is the user authorized to use the service?
Following options can be considered but there is no clear consensus on a strong authentication scheme.
HTTP includes built-in support for Basic and Digest authentication, and services can therefore be protected in much the same manner as HTML documents are currently protected.
SOAP Security Extensions: Digital Signature (SOAP-DSIG). DSIG leverages public key cryptography to digitally sign SOAP messages. This enables the client or server to validate the identity of the other party. Check it at http://www.w3.org/TR/SOAP-dsig.
The Organization for the Advancement of Structured Information Standards (OASIS) is working on the Security Assertion Markup Language (SAML).
--------------------------------------------------------------------------------
Network Security
There is currently no easy answer to this problem, and it has been the subject of much debate. For now, if you are truly intent on filtering out SOAP or XML-RPC messages, one possibility is to filter out all HTTP POST requests that set their content type to text/xml.
Another alternative is to filter for the SOAPAction HTTP header attribute. Firewall vendors are also currently developing tools explicitly designed to filter web service traffic.
Web Services Standards
This section is to give you idea for all the latest standards related to Web Services.
Transports
BEEP, the Blocks Extensible Exchange Protocol (formerly referred to as BXXP), is a framework for building application protocols. It has been standardized by IETF and does for Internet protocols what XML has done for data.
Blocks Extensible Exchange Protocol (BEEP)
Messaging
These messaging standards and specifications are intended to give a framework for exchanging information in a decentralized, distributed environment.
SOAP 1.1 (Note)
SOAP 1.2 (Specification)
Web Services Attachments Profile 1.0
SOAP Message Transmission Optimization Mechanism
Description and discovery
Web services are meaningful only if potential users may find information sufficient to permit their execution. The focus of these specifications and standards is the definition of a set of services supporting the description and discovery of businesses, organizations, and other Web services providers; the Web services they make available; and the technical interfaces which may be used to access those services.
UDDI 3.0
WSDL 1.1 (Note)
WSDL 1.2 (Working draft)
WSDL 2.0 (Working Group)
Security
Using these security specifications, applications can engage in secure communication designed to work with the general Web services framework.
Web Services Security 1.0
Security Assertion Markup Language (SAML)
Management
Web services manageability is defined as a set of capabilities for discovering the existence, availability, health, performance, usage, as well as the control and configuration of a Web service within the Web services architecture. As Web services become pervasive and critical to business operations, the task of managing and implementing them is imperative to the success of business operations.
Web Services Distributed Management
Web Services - What is Next
In this tutorial you have learned what are web services and how to use them. But there other components of Web Services which makes Webservices active. These components are :
The next step is to learn about WSDL, UDDI and SOAP.
WSDL
WSDL is an XML-based language for describing Web services and how to access them.
WSDL describes a web service, along with the message format and protocol details for the web service.
UDDI
UDDI is an XML-based standard for describing, publishing, and finding Web services.
SOAP
SOAP is a simple XML-based protocol that allows applications to exchange information over HTTP.
Another alternative is to filter for the SOAPAction HTTP header attribute. Firewall vendors are also currently developing tools explicitly designed to filter web service traffic.
Thanking You.
Jitendra Yadav
Web services are open standard ( XML, SOAP, HTTP etc.) based Web applications that interact with other web applications for the purpose of exchanging data
Web Services can convert your existing applications into Web-applications.
In this tutorial you will learn what exactly Web Services are and Why and How to use them.
Different books and diffrent organizations give different definitions to Web Services.
Few definitions are given here and all the definitions are correct.
A web service is any piece of software that makes itself available over the internet and uses a standardized XML messaging system. XML is used to encode all communications to a web service. For example, a client invokes a web service by sending an XML message, then waits for a corresponding XML response. Because all communication is in XML, web services are not tied to any one operating system or programming language--Java can talk with Perl; Windows applications can talk with Unix applications.
Web Services are self-contained, modular, distributed, dynamic applications that can be described, published, located, or invoked over the network to create products, processes, and supply chains. These applications can be local, distributed, or Web-based. Web services are built on top of open standards such as TCP/IP, HTTP, Java, HTML, and XML.
Web services are XML-based information exchange systems that use the Internet for direct application-to-application interaction. These systems can include programs, objects, messages, or documents.
A web service is a collection of open protocols and standards used for exchanging data between applications or systems. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet in a manner similar to inter-process communication on a single computer. This interoperability (e.g., between Java and Python, or Windows and Linux applications) is due to the use of open standards.
To summarize, a complete web service is, therefore, any service that:
Is available over the Internet or private (intranet) networks
Uses a standardized XML messaging system
Is not tied to any one operating system or programming language
Is self-describing via a common XML grammar
Is discoverable via a simple find mechanism
Components of Web Services?
The basic Web services platform is XML + HTTP. All the standard Web Services works using following components
SOAP (Simple Object Access Protocol)
UDDI (Universal Description, Discovery and Integration)
WSDL (Web Services Description Language)
All these components have been discussed in Web Services Architecture section.
How Does it Work?
You can build a Java-based Web Service on Solaris that is accessible from your Visual Basic program that runs on Windows. You can also use C# to build new Web Services on Windows that can be invoked from your Web application that is based on JavaServer Pages (JSP) and runs on Linux.
An Example
Consider a simple account-management and order -processing system. The accounting personnel use a client application built with Visual Basic or JSP to create new accounts and enter new customer orders.
The processing logic for this system is written in Java and resides on a Solaris machine, which also interacts with a database to store the information.
The steps illustrated above are as follows:
The client program bundles the account registration information into a SOAP message.
This SOAP message is sent to the Web Service as the body of an HTTP POST request.
The Web Service unpacks the SOAP request and converts it into a command that the application can understand. The application processes the information as required and responds with a new unique account number for that customer.
Next, the Web Service packages up the response into another SOAP message, which it sends back to the client program in response to its HTTP request.
The client program unpacks the SOAP message to obtain the results of the account registration process. For further details regarding the implementation of Web Services technology, read about the Cape Clear product set and review the product components.
Why Web Services ?
Here are the benefits of using Web Services:
Exposing the existing function on to network:
A Web service is a unit of managed code that can be remotely invoked using HTTP, that is, it can be activated using HTTP requests. So, Web Services allows you to expose the functionality of your existing code over the network. Once it is exposed on the network, other application can use the functionality of your program.
Connecting Different Applications ie Interoperability:
Web Services allows different applications to talk to each other and share data and services among themselves. Other applications can also use the services of the web services. For example VB or .NET application can talk to java web services and vice versa. So, Web services is used to make the application platform and technology independent.
Standardized Protocol:
Web Services uses standardized industry standard protocol for the communication. All the four layers (Service Transport, XML Messaging, Service Description and Service Discovery layers) uses the well defined protocol in the Web Services protocol stack. This standardization of protocol stack gives the business many advantages like wide range of choices, reduction in the cost due to competition and increase in the quality.
Low Cost of communication:
Web Services uses SOAP over HTTP protocol for the communication, so you can use your existing low cost internet for implementing Web Services. This solution is much less costly compared to proprietary solutions like EDI/B2B. Beside SOAP over HTTP, Web Services can also be implemented on other reliable transport mechanisms like FTP etc.
Web Services Behavioral Characteristics
Web services have special behavioral characteristics
XML-based
Web Services uses XML at data representation and data transportation layers. Using XML eliminates any networking, operating system, or platform binding. So Web Services based applications are highly interoperable application at their core level.
Loosely coupled
A consumer of a web service is not tied to that web service directly. The web service interface can change over time without compromising the client's ability to interact with the service. A tightly coupled system implies that the client and server logic are closely tied to one another, implying that if one interface changes, the other must also be updated. Adopting a loosely coupled architecture tends to make software systems more manageable and allows simpler integration between different systems.
Coarse-grained
Object-oriented technologies such as Java expose their services through individual methods. An individual method is too fine an operation to provide any useful capability at a corporate level. Building a Java program from scratch requires the creation of several fine-grained methods that are then composed into a coarse-grained service that is consumed by either a client or another service. Businesses and the interfaces that they expose should be coarse-grained. Web services technology provides a natural way of defining coarse-grained services that access the right amount of business logic.
Ability to be synchronous or asynchronous
Synchronicity refers to the binding of the client to the execution of the service. In synchronous invocations, the client blocks and waits for the service to complete its operation before continuing. Asynchronous operations allow a client to invoke a service and then execute other functions. Asynchronous clients retrieve their result at a later point in time, while synchronous clients receive their result when the service has completed. Asynchronous capability is a key factor in enabling loosely coupled systems.
Supports Remote Procedure Calls (RPCs)
Web services allow clients to invoke procedures, functions, and methods on remote objects using an XML-based protocol. Remote procedures expose input and output parameters that a web service must support. Component development through Enterprise JavaBeans (EJBs) and .NET Components has increasingly become a part of architectures and enterprise deployments over the past couple of years. Both technologies are distributed and accessible through a variety of RPC mechanisms. A web service supports RPC by providing services of its own, equivalent to those of a traditional component, or by translating incoming invocations into an invocation of an EJB or a .NET component.
Supports document exchange
One of the key advantages of XML is its generic way of representing not only data, but also complex documents. These documents can be simple, such as when representing a current address, or they can be complex, representing an entire book or RFQ. Web services support the transparent exchange of documents to facilitate business integration.
Web Services Architecture
There are two ways to view the web service architecture.
The first is to examine the individual roles of each web service actor.
The second is to examine the emerging web service protocol stack.
--------------------------------------------------------------------------------
1. Web Service Roles
There are three major roles within the web service architecture:
Service provider:
This is the provider of the web service. The service provider implements the service and makes it available on the Internet.
Service requestor
This is any consumer of the web service. The requestor utilizes an existing web service by opening a network connection and sending an XML request.
Service registry
This is a logically centralized directory of services. The registry provides a central place where developers can publish new services or find existing ones. It therefore serves as a centralized clearinghouse for companies and their services.
--------------------------------------------------------------------------------
2. Web Service Protocol Stack
A second option for viewing the web service architecture is to examine the emerging web service protocol stack. The stack is still evolving, but currently has four main layers.
Service transport
This layer is responsible for transporting messages between applications. Currently, this layer includes hypertext transfer protocol (HTTP), Simple Mail Transfer Protocol (SMTP), file transfer protocol (FTP), and newer protocols, such as Blocks Extensible Exchange Protocol (BEEP).
XML messaging
This layer is responsible for encoding messages in a common XML format so that messages can be understood at either end. Currently, this layer includes XML-RPC and SOAP.
Service description
This layer is responsible for describing the public interface to a specific web service. Currently, service description is handled via the Web Service Description Language (WSDL).
Service discovery
This layer is responsible for centralizing services into a common registry, and providing easy publish/find functionality. Currently, service discovery is handled via Universal Description, Discovery, and Integration (UDDI).
As web services evolve, additional layers may be added, and additional technologies may be added to each layer.
Next chapter explains about various components of Web Services.
--------------------------------------------------------------------------------
Few Words about Service Transport
The bottom of the web service protocol stack is service transport. This layer is responsible for actually transporting XML messages between two computers.
Hyper Text Transfer Protocol (HTTP)
Currently, HTTP is the most popular option for service transport. HTTP is simple, stable, and widely deployed. Furthermore, most firewalls allow HTTP traffic. This allows XMLRPC or SOAP messages to masquerade as HTTP messages. This is good if you want to easily integrate remote applications, but it does raise a number of security concerns.
Blocks Extensible Exchange Protocol (BEPP)
One promising alternative to HTTP is the Blocks Extensible Exchange Protocol (BEEP).BEEP is a new IETF framework of best practices for building new protocols. BEEP is layered directly on TCP and includes a number of built-in features, including an initial handshake protocol, authentication, security, and error handling. Using BEEP, one can create new protocols for a variety of applications, including instant messaging, file transfer, content syndication, and network management
SOAP is not tied to any specific transport protocol. In fact, you can use SOAP via HTTP, SMTP, or FTP. One promising idea is therefore to use SOAP over BEEP.
Web Services Components
Over the past few years, three primary technologies have emerged as worldwide standards that make up the core of today's web services technology. These technologies are:
- XML-RPC
This is the simplest XML based protocol for exchanging information between computers.
XML-RPC is a simple protocol that uses XML messages to perform RPCs.
Requests are encoded in XML and sent via HTTP POST.
XML responses are embedded in the body of the HTTP response.
XML-RPC is platform-independent.
XML-RPC allows diverse applications to communicate.
A Java client can speak XML-RPC to a Perl server.
XML-RPC is the easiest way to get started with web services.
To learn more about XML-RPC visit XML-RPC Tutorial
--------------------------------------------------------------------------------
- SOAP
SOAP is an XML-based protocol for exchanging information between computers.
SOAP is a communication protocol
SOAP is for communication between applications
SOAP is a format for sending messages
SOAP is designed to communicate via Internet
SOAP is platform independent
SOAP is language independent
SOAP is simple and extensible
SOAP allows you to get around firewalls
SOAP will be developed as a W3C standard
To learn more about SOAP visit SOAP Tutorial
--------------------------------------------------------------------------------
- WSDL
WSDL is an XML-based language for describing Web services and how to access them.
WSDL stands for Web Services Description Language
WSDL is an XML based protocol for information exchange in decentralized and distributed environments.
WSDL is the standard format for describing a web service.
WSDL definition describes how to access a web service and what operations it will perform.
WSDL is a language for describing how to interface with XML-based services.
WSDL is an integral part of UDDI, an XML-based worldwide business registry.
WSDL is the language that UDDI uses.
WSDL was developed jointly by Microsoft and IBM.
WSDL is pronounced as 'wiz-dull' and spelled out as 'W-S-D-L'
To learn more about WSDL visit WSDL Tutorial
--------------------------------------------------------------------------------
- UDDI
UDDI is an XML-based standard for describing, publishing, and finding Web services.
UDDI stands for Universal Description, Discovery and Integration.
UDDI is a specification for a distributed registry of Web services.
UDDI is platform independent, open framework.
UDDI can communicate via SOAP, CORBA, Java RMI Protocol.
UDDI uses WSDL to describe interfaces to web services.
UDDI is seen with SOAP and WSDL as one of the three foundation standards of web services.
UDDI is an open industry initiative enabling businesses to discover each other and define how they interact over the Internet.
Web Services - Examples
Based on the Web Service Architecture we will create following two components as a part of Web Services implementation
Service provider or publisher:
This is the provider of the web service. The service provider implements the service and makes it available on the Internet or intranet.
We will write and publish a simple web Service using .NET SDK.
Service requestor or consumer
This is any consumer of the web service. The requestor utilizes an existing web service by opening a network connection and sending an XML request.
We will also write two Web Service requestors: one Web-based consumer (ASP.NET application) and another Windows application-based consumer.
Following is our First Web Service example which works as a service provider and exposes two methods (add and SayHello) as Web Services to be used by applications. This is a standard template for a Web Service. .NET Web Services use the .asmx extension. Note that a method exposed as a Web Service has the WebMethod attribute. Save this file as FirstService.asmx in the IIS virtual directory (as explained in configuring IIS; for example, c:\MyWebSerces).
FirstService.asmx
using System;
using System.Web.Services;
using System.Xml.Serialization;
[WebService(Namespace="http://localhost/MyWebServices/")]
public class FirstService : WebService
{
[WebMethod]
public int Add(int a, int b)
{
return a + b;
}
[WebMethod]
public String SayHello()
{
return "Hello World";
}
}
To test a Web Service, it must be published. A Web Service can be published either on an intranet or the Internet. We will publish this Web Service on IIS running on a local machine. Let's start with configuring the IIS.
Open Start->Settings->Control Panel->Administrative tools->Internet Services Manager.
Expand and right-click on [Default Web Site]; select New ->Virtual Directory.
The Virtual Directory Creation Wizard opens. Click Next.
The "Virtual Directory Alias" screen opens. Type the virtual directory name—for example, MyWebServices—and click Next.
The "Web Site Content Directory" screen opens. Here, enter the directory path name for the virtual directory—for example, c:\MyWebServices—and click Next.
The "Access Permission" screen opens. Change the settings as per your requirements. Let's keep the default settings for this exercise. Click the Next button. It completes the IIS configuration. Click Finish to complete the configuration.
To test that IIS has been configured properly, copy an HTML file (for example, x.html) in the virtual directory (C:\MyWebServices) created above. Now, open Internet Explorer and type http://localhost/MyWebServices/x.html. It should open the x.html file. If it does not work, try replacing localhost with the IP address of your machine. If it still does not work, check whether IIS is running; you may need to reconfigure IIS and Virtual Directory.
To test our Web Service, copy FirstService.asmx in the IIS virtual directory created above (C:\MyWebServices). Open the Web Service in Internet Explorer (http://localhost/MyWebServices/FirstService.asmx). It should open your Web Service page. The page should have links to two methods exposed as Web Services by our application. Congratulations; you have written your first Web Service!!!
Testing the Web Service
As we have just seen, writing Web Services is easy in the .NET Framework. Writing Web Service consumers is also easy in the .NET framework; however, it is a bit more involved. As said earlier, we will write two types of service consumers, one Web- and another Windows application-based consumer. Let's write our first Web Service consumer.
Web-Based Service Consumer
Write a Web-based consumer as given below. Call it WebApp.aspx. Note that it is an ASP.NET application. Save this in the virtual directory of the Web Service (c:\MyWebServices\WebApp.axpx).
This application has two text fields that are used to get numbers from the user to be added. It has one button, Execute, that, when clicked, gets the Add and SayHello Web Services.
WebApp.axpx
After the consumer is created, we need to create a proxy for the Web Service to be consumed. This work is done automatically by Visual Studio .NET for us when referencing a Web Service that has been added. Here are the steps to be followed:
Create a proxy for the Web Service to be consumed. The proxy is created using the wsdl utility supplied with the .NET SDK. This utility extracts information from the Web Service and creates a proxy. Thus, the proxy created is valid only for a particular Web Service. If you need to consume other Web Services, you need to create a proxy for this service as well. VS .NET creates a proxy automatically for you when the reference for the Web Service is added. Create a proxy for the Web Service using the wsdl utility supplied with the .NET SDK. It will create FirstSevice.cs in the current directory. We need to compile it to create FirstService.dll (proxy) for the Web Service.
c:> WSDL http://localhost/MyWebServices/
FirstService.asmx?WSDL
c:> csc /t:library FirstService.cs
Put the compiled proxy in the bin directory of the virtual directory of the Web Service (c:\MyWebServices\bin). IIS looks for the proxy in this directory.
Create the service consumer, which we have already done. Note that I have instantiated an object of the Web Service proxy in the consumer. This proxy takes care of interacting with the service.
Type the URL of the consumer in IE to test it (for example, http://localhost/MyWebServices/WebApp.aspx).
Windows Application-Based Web Service Consumer
Writing a Windows application-based Web Service consumer is the same as writing any other Windows application. The only work to be done is to create the proxy (which we have already done) and reference this proxy when compiling the application. Following is our Windows application that uses the Web Service. This application creates a Web Service object (of course, proxy) and calls the SayHello and Add methods on it.
WinApp.cs
using System;
using System.IO;
namespace SvcConsumer{
class SvcEater
{
public static void Main(String[] args)
{
FirstService mySvc = new FirstService();
Console.WriteLine("Calling Hello World Service: " +
mySvc.SayHello());
Console.WriteLine("Calling Add(2, 3) Service: " +
mySvc.Add(2, 3).ToString());
}
}
}
Compile it using c:>csc /r:FirstService.dll WinApp.cs. It will create WinApp.exe. Run it to test the application and the Web Service.
Now, the question arises: How can I be sure that my application is actually calling the Web Service? It is simple to test. Stop your Web server so that the Web Service cannot be contacted. Now, run the WinApp application. It will fire a run-time exception. Now, start the Web server again. It should work.
Web Services Security
Security is critical to web services. However, neither the XML-RPC nor SOAP specifications make any explicit security or authentication requirements.
There are three specific security issues with Web Services:
Confidentiality
Authentication
Network Security
--------------------------------------------------------------------------------
Confidentiality
If a client sends an XML request to a server, then question is that can we ensure that the communication remains confidential?
Answer lies here
XML-RPC and SOAP run primariy on top of HTTP.
HTTP has support for Secure Socktes Layer (SSL).
Communication can be encrypted via the SSL.
SSL is a proven technology and widely deployed.
But a single web service may consist of a chain of applications. For example one large service might tie together the services of three other applications. In this case, SSL is not adequate; the messages need to be encrypted at each node along the service path, and each node represents a potential weak link in the chain. Currently, there is no agreed-upon solution to this issue, but one promising solution is the W3C XML Encryption Standard. This standard provides a framework for encrypting and decrypting entire XML documents or just portions of an XML document. Check it at http://www.w3.org/Encryption
--------------------------------------------------------------------------------
Authentication
If a client connects to a web service, how do we identify the user? And is the user authorized to use the service?
Following options can be considered but there is no clear consensus on a strong authentication scheme.
HTTP includes built-in support for Basic and Digest authentication, and services can therefore be protected in much the same manner as HTML documents are currently protected.
SOAP Security Extensions: Digital Signature (SOAP-DSIG). DSIG leverages public key cryptography to digitally sign SOAP messages. This enables the client or server to validate the identity of the other party. Check it at http://www.w3.org/TR/SOAP-dsig.
The Organization for the Advancement of Structured Information Standards (OASIS) is working on the Security Assertion Markup Language (SAML).
--------------------------------------------------------------------------------
Network Security
There is currently no easy answer to this problem, and it has been the subject of much debate. For now, if you are truly intent on filtering out SOAP or XML-RPC messages, one possibility is to filter out all HTTP POST requests that set their content type to text/xml.
Another alternative is to filter for the SOAPAction HTTP header attribute. Firewall vendors are also currently developing tools explicitly designed to filter web service traffic.
Web Services Standards
This section is to give you idea for all the latest standards related to Web Services.
Transports
BEEP, the Blocks Extensible Exchange Protocol (formerly referred to as BXXP), is a framework for building application protocols. It has been standardized by IETF and does for Internet protocols what XML has done for data.
Blocks Extensible Exchange Protocol (BEEP)
Messaging
These messaging standards and specifications are intended to give a framework for exchanging information in a decentralized, distributed environment.
SOAP 1.1 (Note)
SOAP 1.2 (Specification)
Web Services Attachments Profile 1.0
SOAP Message Transmission Optimization Mechanism
Description and discovery
Web services are meaningful only if potential users may find information sufficient to permit their execution. The focus of these specifications and standards is the definition of a set of services supporting the description and discovery of businesses, organizations, and other Web services providers; the Web services they make available; and the technical interfaces which may be used to access those services.
UDDI 3.0
WSDL 1.1 (Note)
WSDL 1.2 (Working draft)
WSDL 2.0 (Working Group)
Security
Using these security specifications, applications can engage in secure communication designed to work with the general Web services framework.
Web Services Security 1.0
Security Assertion Markup Language (SAML)
Management
Web services manageability is defined as a set of capabilities for discovering the existence, availability, health, performance, usage, as well as the control and configuration of a Web service within the Web services architecture. As Web services become pervasive and critical to business operations, the task of managing and implementing them is imperative to the success of business operations.
Web Services Distributed Management
Web Services - What is Next
In this tutorial you have learned what are web services and how to use them. But there other components of Web Services which makes Webservices active. These components are :
The next step is to learn about WSDL, UDDI and SOAP.
WSDL
WSDL is an XML-based language for describing Web services and how to access them.
WSDL describes a web service, along with the message format and protocol details for the web service.
UDDI
UDDI is an XML-based standard for describing, publishing, and finding Web services.
SOAP
SOAP is a simple XML-based protocol that allows applications to exchange information over HTTP.
Another alternative is to filter for the SOAPAction HTTP header attribute. Firewall vendors are also currently developing tools explicitly designed to filter web service traffic.
Thanking You.
Jitendra Yadav
Subscribe to:
Posts (Atom)