Ø Diff. between App and web server
Webserver: this can receive only html requests and as well this can only give out html responses. Nothing more than that. Application server: business logic resides on the application server. Application Server is responsible for handling the Business logic of the system while Web server is responsible to cater to the HTTP requests. In three tier Architecture the flow is as follows [Browser (Client)] ---> [Web server (http requests) + application server (Business logic)] --->database server] Now if there are heavy transactions on the system then the second Tier is bifurcated which results in the 4 Tier Architecture. The flow is as follows [Browser(Client)]---> [Web server]--->[application server(Business logic)]--->database server] an application server provides for the following things 1.session management 2.load balancing 3.thread management 4.security 5.messaging depending on the configuration of the application server it can provide one or all of the above features. In case of a web server, it just serves the requests that it receives with the appropriate response, with the help of servlets or other such programs. Can't we process request of HTTP protocols in application server An application server is a generalized server for running more than one applications like EJB, RMI, IIOP, JSP, Servlets, etc. A web server is for the purpose of processing the requests over the Http protocols. Can I run an application server without a web server for example does Web Logic run with out a web server?
The web server is mainly for catering to the http requests and the application server caters to the need of load balancing in case of heavily loaded web applications or where lots of transactions are involved. So the flow will be like the application server is used for load balancing which it does with the support of any web server. Some application servers are having their default web servers for e.g. Bluestone has got IIS as its inbuilt web server. An Application server is like a superset of Webserver. However, unlike a Webserver, this is a "generalized one" Web servers are servers which only accept your requests related to Web over HTTP. Whereas Application Servers are bundle of servers which not only transmit your request but also provide other services like messaging, transaction management, mail service etc., Example of Webserver - JavaWebServer, Jakarta-tomcat Example of Application Server - IBM Web sphere, BEA Web Logic
Ø What is a Client process?
The client is a process (program) that sends a message to a server process (program), requesting that the server perform a task (service).Client programs usually manage the user-interface portion of the application, validate data entered by the user, dispatch requests to server programs, and sometimes execute business logic. The client-based process is the front- end of the application that the user sees and interacts with. The client process contains solution-specific logic and provides the interface between the user and the rest of the application system. The client process also manages the local resources that the user interacts with such as the monitor, keyboard, workstation CPU and peripherals. One of the key elements of a client workstation is the graphical user interface (GUI). Normally a part of operating system i.e. the window manager detects user actions, manages the windows on the display and displays the data in the windows.
Ø What is a Server process?
A server process (program) fulfills the client request by performing the task requested. Server programs generally receive requests from client programs, execute database retrieval and updates, manage data integrity and dispatch responses to client requests. Sometimes server programs execute common or complex business logic. The server-based process "may" run on another machine on the network. This server could be the host operating system or network file server; the server is then provided both file system services and application services. Or in some cases, another desktop machine provides the application services. The server process acts as a software engine that manages shared resources such as databases, printers, communication links, or high powered-processors. The server process performs the back-end tasks that are common to similar applications.
Ø What is Middleware?
Connectivity allows applications to transparently communicate with other programs or processes, regardless of their location. The key element of connectivity is the network operating system (NOS). NOS provide services such as routing, distribution, messaging, file and print, and network management services. NOS rely on communication protocols to provide specific services. The protocols are divided into three groups: media, transport and client-server protocols. Media protocols determine the type of physical connections used on a network (some examples of media protocols are Ethernet, Token Ring, Fiber Distributed Data Interface (FDDI), coaxial and twisted-pair). A transport protocol provides the mechanism to move packets of data from client to server (some examples of transport protocols are Novell's IPX/SPX, Apple's AppleTalk, Transmission Control Protocol/ Internet Protocol (TCP/IP), Open Systems Interconnection (OSI) and Government Open Systems Interconnection Profile (GOSIP)). Once the physical connection has been established and transport protocols chosen, a client-server protocol is required before the user can access the network services. A client-server protocol dictates the manner in which clients request information and services from a server and also how the server replies to that request (some examples of client- server protocols are NetBIOS, RPC, Advanced Program-to-Program Communication (APPC), Named Pipes, Sockets, Transport Level Interface (TLI) and Sequenced Packet Exchange (SPX)).
Ø What are the characteristics of client/server architecture?
The basic characteristics of client/server architectures are:
1) Combination of a client or front-end portion that interacts with the user, and a server or back-end portion that interacts with the shared resource. The client process contains solution-specific logic and provides the interface between the user and the rest of the application system. The server process acts as a software engine that manages shared resources such as databases, printers, modems, or high powered processors.
2) The front-end task and back-end task have fundamentally different Requirements for computing resources such as processor speeds, memory, Disk speeds and capacities, and input/output devices.
3) The environment is typically heterogeneous and multivendor. The Hardware platform and operating system of client and server are not usually the same. Client and server processes communicate through a well-defined set of standard application program interfaces (API's) and RPC's.
4) An important characteristic of client-server systems is scalability. They can be scaled horizontally or vertically. Horizontal scaling means adding or removing client workstations with only a slight performance impact. Vertical scaling means migrating to a larger and faster server machine or multiservers.
Ø Client/Server Business Application Architectures.
Traditional applications architectures have been based on function. Today, to meet the needs of the business application architecture should reflect the complete range of business requirements. Therefore, client/server computing demands a three layer view of the organization.
1 The user interface layer, which implements the functional model
2 The business function layer, which implements the process model
3 The data layer, which implements the information model
It should be noted that this application architecture does not demand multiple hardware platforms, although such technology can be utilized, if the environment is robust and reliable enough and the business is prepared to pay the additional costs associated with workstation and LAN technology.