Complete Unit 1
Complete Unit 1
Clients and servers are separate logical things that work together over a network To accomplish a task. Example: The "server" is the computer that "serves" data or services. The "client" is the computer that asks for the service or data from the server. Interestingly, the World Wide Web is probably one of the best examples of a client/server architecture. When accessing the World Wide Web, you use client software (usually Internet Explorer or Mozilla Firefox), which connects to the web server, which holds the content. The web browser asks for the content, and the web server serves it back to the browser.
What is meant by Middleware? Middleware is distributed software needed to support interaction between clients and servers. In short, it is the software that is in the middle of the Client/Server systems and it acts as a bridge between.
Client/server characteristics: Service (request & response)
Shared resources (file sharing, data sharing) Asymmetrical protocols (There is a many-to-one relationship between clients and server.
When, for every request there is a response that protocol is symmetrical protocol and when this is not true, that protocol would be Asymmetrical protocol.)
Transparency of location: Transparency really means hiding the network and its servers from the users and even the application programmers. Mix and match : The ideal Client/Server software is independent of hardware and Operating System software platform. It should be able to mix-and-match client and server platforms. Message based exchanges: we can exchange the information in terms of messages over a distributed computer network. Encapsulation of services: different types of services are encapsulated (bind) into a
Scalability : 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. Integrity: client and server both will be integrated in computer
Types of client/server architectures: File servers : In computing, a file server is a computer attached to a network that has the primary purpose of providing a location for shared disk access, i.e. shared storage of computer files (such as documents, sound files, photographs, movies, images, databases, etc.) that can be accessed by the workstations that are attached to the computer network Database servers: A database server is a computer program that provides database services to other computer programs or computers, as defined by the clientserver model Transaction servers: A transaction server is a software component that is used in implementing transactions. Groupware servers: A groupware server is software designed to enable users to collaborate, regardless of location, via the Internet or a corporate intranet and to work together in a virtual atmosphere. Object application servers: The Application Object Server (AOS) is used for sharing application objects and information as an effective tool to increase application performance. This section describes the AOS, how to develop applications for the AOS, best practices, and security.
Web application servers:
This new model of Client/Server consists of thin, protable, "universal" clients that talk to superfat servers. In the simplet form, a web server returns documents when clients ask for them by
Monolithic computing:
Early computing was performed on a single processor Makes use of a single cpu to execute one or more programs for each application Ex: A uni-processor Distributed system: A distributed system is a collection of independent computers ,interconnected via a n/w. Ex: WWW,email,ftp Historical trends: Mainframe of 60s: The 3rd Generation computers
DOS/360 operating system for the small machines. It could run two "real-time" sessions and one batch session. OS/360 operating system for the midrange and high end. TSS/360 operating system for Time-sharing Multi-user system Introduction of Honeywell model 115 in the H-200 product line. The line was renamed H-2000 after models 115/2, 1015 and 2015 introduced in January 1971, and model 2020 and 2030 in December 1972 after the GE merger. The line was eventually merged into Series6 0 NPL through a H-200 mode (emulator) on level 64. Minicomputer: Workstation:
The affordability(low cost) of computers and availability of network access Resource sharing Scalability: measurable
Fault tolerance: The ability of a system to respond gracefully to an unexpected hardware or software failure. There are many levels of fault tolerance, the lowest being the ability to continue operation in the event of a power failure. Many fault-tolerant computer systems mirror all operations -- that is, every operation is performed on two or more duplicate systems, so if one fails the other can take over. ) Or Fault-tolerant describes a computer system or component designed so that, in the event that a component fails, a backup component or procedure can immediately take its place with no loss of service. Fault tolerance can be provided with software, or embedded in hardware, or provided by some combination.
Centralized configuration
Changes to the application configuration, such as a move of database server, or system settings, can take place centrally.
Security
A central point through which service-providers can manage access to data and portions of the application itself counts as a security benefit, devolving responsibility for authentication away from the potentially insecure client layer without exposing the database layer.
Performance
By limiting the network traffic to performance-tier traffic the clientserver model improves the performance of large applications in heavy usage environments.[citation needed]
Transaction Support
A transaction represents a unit of activity in which many updates to resources (on the same or distributed data sources) can be made atomic (as an indivisible unit of work). End-users can benefit from a system-wide standard behaviour, from reduced time to develop, and from reduced costs. As the server does a lot of the tedious code-generation, developers can focus on business logic.
File servers: File servers are useful for sharing files across a network.
With a file server, the client passes requests for file records over nerwork to file server.
Mail servers:
A mail server (also known as a mail transfer agent or MTA, a mail transport agent, a mail router or an Internet mailer) is an application that receives incoming e-mail from local users (people within the same domain) and remote senders and forwards outgoing e-
mail for delivery. A computer dedicated to running such applications is also called a mail server. Microsoft Exchange, qmail, Exim and sendmail are among the more common mail server programs. The mail server works in conjunction with other programs to make up what is sometimes referred to as a messaging system. A messaging system includes all the applications necessary to keep e-mail moving as it should. When you send an e-mail message, your email program, such as Outlook or Eudora, forwards the message to your mail server, which in turn forwards it either to another mail server or to a holding area on the same server called a message store to be forwarded later. As a rule, the system uses SMTP (Simple Mail Transfer Protocol) or ESMTP (extended SMTP) for sending e-mail, and either POP3 (Post Office Protocol 3) or IMAP (Internet Message Access Protocol) for receiving e-mail.
Terminal servers:
Servers can be: Stateless servers: do not keep any information b/w requests Ex: http Stateful servers : can remember information Ex: apache tomcat
Thin client:
Fewer server requirements. A thick client server does not require as high a level of performance as a thin client server (since the thick clients themselves do much of the application processing). This results in drastically cheaper servers. Offline working. Thick clients have advantages in that a constant connection to the central server is often not required. Better multimedia performance. Thick clients have advantages in multimedia-rich applications that would be bandwidth intensive if fully served. For example, thick clients are well suited for video gaming. More flexibility. On some operating systems software products are designed for personal computers that have their own local resources. Running this software in a thin client environment can be difficult.
Using existing infrastructure. As many people now have very fast local PCs, they already have the infrastructure to run thick clients at no extra cost. Higher server capacity. The more work that is carried out by the client, the less the server needs to do, increasing the number of users each server can support.
Thin clients:
A thin client (sometimes also called a lean or slim client) is a computer or a computer program which depends heavily on some other computer (its server) to fulfill its traditional computational roles. This stands in contrast to the traditional fat client
Eg:
A thin client is computer which acts as a remote keyboard, video, and mouse terminal for another machine. The terminal server performs all computation and stores all data. Multiple thin clients can access simultaneously. Together, the clients and server make up the thin client computing model. Key differences between this model and traditional computing are that a thin client model can better utilize resources, improve centralization and integrity of data, and reduce total hardware costs.
Hybrid clients:
Clients are generally classified as either "fat clients", "thin clients", or "hybrid clients".
Local storage Fat Client Hybrid Client Thin Client Yes No No Local processing Yes Yes No
Fat
A fat-with low-fat client, also known as a rich-poor client or thick-thin clientthe personal computers or laptops can operate independently.
Programming languages and/or development tools for rich clients typically include Delphi, .NET Framework, Java and Visual Studio.
Thin
A thin client is a minimal sort of client. Thin clients use the resources of the host computer. A thin client's job is generally just to graphically display pictures provided by an application server, which performs the bulk of any required data processing. Programming environments for thin clients include JavaScript/AJAX (client side automation), ASP, JSP, Ruby on Rails, Python's Django, PHP and other (depends on server-side backend and uses HTML pages or rich media like Flash, Flex or Silverlight on client).
Hybrid
A hybrid client is a mixture of the above two client models. Similar to a fat client, it processes locally, but relies on the server for storage data. This approach offers features from both the fat client (multimedia support, high performance) and the thin client (high manageability, flexibility). The arrival of technologies such as Java allows hybrid clients the high performance required even for multimedia applications, with the data stored in the Cloud. [2]
3-tier
Security :high
Performance :high Scale :good Application reuse :good Ease of development :low Server to server infrastructure :yes Legacy application :yes Internet support :good System administrations :less complex 2 tier architecture is used to describe client-server system where the requests resources and the servers responds directly to the request using its own resources. 2 tier architecture is therefore a client-server architecture where the server is versatile, as it is capable of directly responding to all of the client server request
TIER-1
TIER-2
3 tier architecture, there is an intermediary level which means that it is splitted up between a client i.e. the computer which request the resource equipped with a user interface for presentation purpose. In 3 tier architecture however the server level applications are remote from one another. It provides a higher degree of flexibility, increased security and performance.
TIER-1
TIER-2
TIER-3
The customer has a single point of contact for all business with the organization The time required to complete the work will be minimized Better sharing of critical database resources and other application software's among clients through the network. Companies can cut costs on maintenance in employing Client- Server Computing since servers are usually cheaper than mainframe (1/10 of mainframe) and the performance of servers and mainframe are nearly identical. Networked webs of small, powerful machines. If one machine goes down, the organization can still function properly. Systems grow easily. It is easy to updated and modernize system, both hardware and software as the companies evolved and has new requirements. Individual client operating environments. You can mix and match computer platforms to suit the needs of individual departments and users.
Database server:
File server: