Search This Blog

Tuesday 1 March 2011

WEB TECHNOLOGIES









WEB TECHNOLOGIES






Abstract
The World Wide Web provides a new paradigm in computer networking for human communication which had an impact on the delivery of information and continues to stand in rapid developments. 
Important trends used to develop new Web Technology and services such as Ubiquity, Dynamic content, Reliance on open standards and open source.  The word Web Technology represents a discontinuity in the way applications are connected. Using the Web Technology as the basis for an application brings substantial advantages to the adopter.
This paper focuses on 2 tier architecture and mainly on the 3 tier architecture which is the present web technology. This paper will also review the client-side scripting and the server-side scripting.

Introduction- Need for Technology
        Web sites have quickly evolved from simple, static pages to complex Web applications performing critical operations for many businesses. These applications involve dynamic data from multiple sources; ever-changing and various features for e-commerce, personalization and many more.
At the same time, customers and internal users have understandably come to expect and demand more and more sophistication in the Web-based applications they use every day.  The result? Web application solution providers — and their client companies — face several new challenges. They must meet or exceed increasing user demands and deliver information quickly while adapting to each new stage of the evolution.
Yet addressing these challenges effectively requires efficient technologies for application development.
            Important trends in computing which help in shape up new web technology and services such as

Ubiquity: decreases in the size of web server hardware and software, web services embedded in numerous consumer items, wireless communications, and protocols to support mobile networking.
Dynamic content: use of Java as well as both server-side and client-side scripting languages, video/audio/text conferencing, more sophisticated services hiding behind web front-ends.
Reliance on open standards and open source: software quality and reliability are not correlated with the cost of software or its associated support services; innovation is often more rapid where source code is openly available.
            To meet the above the trends in web technologies we provide some architecture along with their own advantages and disadvantages.
*   2 tier architecture
*   3 tier or Multi-tier architecture
Terminology
·        Client computer: The computer which is at remote place connected to server via internet.
·        Server: which provides services to client up on client’s request
  • UI code : code for the user interface i.e., displaying buttons and lists of data
  • Database code : code that talks to a database system to fetch or store data
  • Business logic: code that processes the fetched data according to commands from the UI.
2 tier architecture
Two tier software architectures were developed in the 1980s from the file server software architecture design. The two tier architecture is intended to improve usability by supporting a forms-based, user-friendly interface. On a logical level the typical client/server architecture is best described as two tier, simply because it only consists of two parts working together. In other Words: The client directly talks to the server.    (Simple 2-tier will look like this)                                                                                                               
At one extent client is used only to perform the display portion of the presentation component, and the server performs most of the presentation logic and all of the business and data access logic. This leads to a fat server and can be found e.g. in typical web-applications where the browser has to cope with HTML. At the other extreme, most of the application resides on the workstation, and the server only performs the actual data access services.
Advantages:
The GUI development tools allow faster development and deployment of applications.
By offloading much of the application processing to the desktop workstations, the server systems do not need to be as large.
Disadvantages:
The two-tiered approach loses a lot of the security, reliability, scalability.
The two-tiered model works effectively as long as simple applications are developed, exactly one relational database is accessed, and a small user base is supported. But as applications become more complex, in terms of business algorithms processed, number of databases accessed, or number of users supported, the two-tiered approach starts to fall short.
without the tight security controls provided by a centralized environment, each client application must enforce its own security process. Since the relational databases can be accessed from a number of different clients, each database must also enforce its own security process.
Due to more complex client applications, the size of the application increases; the client hardware platform has to increase in terms of processing power and memory. In addition, as the number of users accessing the database increases, the server hardware platform requires higher capacity. As a consequence the solution to scalability problems in two-tiered client/server is to buy a bigger box, both on the client side and the server side.  It also improves scalability by accommodating up to 100 users (file server architectures only accommodate a dozen users), and flexibility by allowing data to be shared, usually within a homogeneous environment. Finally this type of distributed architecture requires minimal operator intervention, and is frequently used in non-complex, non-time critical information processing systems.
            There are multiple "client" machines on which the programmer's code sits. The program talks, via a network, to a database which sits on a "server" machine.
                                    
3 tier architecture
Why 3 tier? : Unfortunately the 2-tier model shows striking weaknesses, which make the development and maintenance of applications much more expensive.
Ø      In 2-tier architecture, business-logic is implemented on the client.
Ø      Increased network load: since the actual processing of the data takes place on the remote client, the data has to be transported over the network. As a rule this leads to increased network stress.
Ø      Clients are not to be trusted in terms of security, i.e. they are relatively easy to crack. Nevertheless, sensitive data is transferred to the PC, for lack of an alternative, and etc.
3 architecture is developed to solve these problems. This goal is achieved primarily by moving the application logic from the client back to the server.
Due to the increasing performance needed in Distributed Computing, two tier architectures become more and more outdated by the huge load that each client directly talking to the final server would cause. Intervening servers (and therefore on a logical layer a middle tier) enlarge the architecture to handle the task.
The three tier software architecture (also known as three layer architecture and also referred to as multi tier architecture as the middle tier may consist of several tiers by itself) emerged in the 1990s to overcome the limitations of the two tier architecture. The third tier (middle tier server) is between the user interface (client) and the data management (server) components. This middle tier provides process management where business logic and rules are executed and can accommodate hundreds of users (as compared to only 100 users with the two tier architecture) by providing functions such as queuing, application execution, and database staging. The three tier architecture is used when an effective distributed client/server design is needed that provides (when compared to the two tier) increased performance, flexibility, maintainability, re usability, and scalability, while hiding the complexity of distributed processing from the user.
As shown in figure three tier architectures implement a form of client/server architecture, where application is divided into three layers:
  • the data layer
  • the logic layer, or middle-tier
  • the presentation layer, or client
The logic layer differentiates three-tier from ``traditional'' two-tier client/server architectures. In practice, it means that the fat clients from the traditional client/server model have been broken into two pieces:
  • a thin client, usually a Web browser for display and data entry
  • The application logic, running on a server.
This architecture has some unique advantages - for example, deployment is made easier because the client is simple and logic is centralized.
Multi-tier looks like this:        
               


The advantages of 3-tier architecture are:
o       Clear separation of user-interface and data presentation from application-logic. Through this separation more clients are able to have access to a wide variety of server applications.
o       The 3-tier architecture physically forces the separation of the deadly combination of UI and business logic.
o       Since data traffic between UI and business logic is generally fairly low a high bandwidth network is not needed to connect clients with the middle tier. Data traffic is high between middle tier and database, but they are also physically close often sitting next to each other, thereby radically reducing the cost of the expensive high-bandwidth networking that is usually required to connect them for their high traffic needs.
o       Business Logic sits on one machine only: This has a very practical implication: instead of updating 10, hundreds or thousands (possibly even millions) of client machines for every change to the business logic only the middle tier server(s) need updating.
Until now what  we have discussed is how the 2-tire and 3-tire architecture  will be, and their advantages & disadvantages. Let put our concentration on client/server architecture and how the clients will communicate with database via servers.

Client-Server architecture
Client/server architecture is a model for Distributed Computation.  In this model, programs called servers ‘listen’ on a communication channel for requests from other programs, called clients, which are generally running on a different machines elsewhere on the network.
Here there is need for discussion on the clients and servers, because the design of clients and server has an major impact on the efficiency of communication via internet or through the Web.  

CLIENT
 A terminal which is at front end is a client. A client can send requests to the servers. A client uses web browser in order to send requests for data and to get responses from server. Features of the web browsers are information retrieval, Hyper text.. If we assume the web as backbone of the internet then the front end to the web is a point-and-click interface.

Client side scripting
World Wide Web scripting on the client side is a recent development that transforms the behavior of web page. By using client- side scripting languages like HTML, DHTML, CSS, JAVASCRIPT, we can represent the page in the way such that the client or user can interact and we can also design the document in a desired way.
Advantages:
ü      We can validate the input information without the server’s concern.
ü      We can save the browsing time since there is less possibility of lagging.
ü      It comes handy for secure browsing.
SERVER
As the name insists, it offers services that can be reached over the network.  Typically sever contains server S/W, web pages... Depending on the functions of the server they were classified as Application server, Web Servers…
Server-side scripting
            Sever-side scripting is used to enable an HTTP server to communicate with other resources such as databases and incorporates data obtained from them into its responses.  In particular side-side scripting are used to enable a server to construct web pages dynamically from time varying data. 
            Some of the server-side scripting languages are Perl, ASP, JSP….
Application Server
          Applications servers are nothing but Database servers which respond to clients request and return a set of records.  Some of the popular application servers are
*      Oracle Server
*      MS SQL Server
*      Web Spear
*      BEA Web Logic
Web Server
          A web server is a program that offers a service that can be reached over the network.  Sometimes web servers also called as Web Sites.  First web server was developed in 1991 using line mode browser as client.
            Generally web servers were built with high hardware functionalities (configuration), in order to server the multiple requests from the clients in parallel.
Key Constraints in setting up a web server
  • Web Server S/W
  • Hardware Platform

Web server s/w 
            The OS is key to several different aspects of the server. Many companies provide or offer web server s/w with a variety of features. Some free web server s/w on web publishers are Netscape explorer and NC SA’s Mosaic. It is necessary to provide security, and then it is better to buy a commercial web server such as Netscape Commerce server. Most common OS and for web server are Windows NT, Mac OS, OS/2 and several favors UNIX.  Each web server has its own minimum H/W requirements.

Hardware Platform
 After selecting an OS we have to choose what H/w platform to run. In order to determine the h/w platform, we need to answer the below ones
ü      How many users will use the server simultaneously?
ü      What is average amount if data each user will request per server?
ü      What is an acceptance response time?
After choosing the h/w platform, we need to be sure that the machine is properly equipped to handle the job at hand, serving the web pages.

Types of Web Servers:
The following are the different types of Web Servers

*     Internet Information Services 4.0     

*     ASX

*     Apache

*     NCSA HTTPD

*     CERN HTTPD

*     Roxen Challenger/Spinner

*     Netscape Web Servers

*     EMWAC for NT

*     WebSTAR/WebSTAR PS (Macintosh)

*     Glaci HTTPd (NetWare)

Conclusion

          As we seen, it is inevitable that using web technology is reliable in daily life.  In near future we can even expect well diversed customized and  automated web technology. So that there is no need of human involment in organizing the servers. We can also conclude that designing and developing the much more sophisticated clients s/w and server s/w and architectures will lead to efficient communication and much date rate over the network. 

Reference:        

www.ittoolbox.com

Web commerce Technology       

No comments: