Sei sulla pagina 1di 14

Unit-1 What is client/server?

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.

The following illustration shows the three-tier architecture.


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

Multiprocessing and operating systems make the scene


1960's Burroughs B5000 mainframe introduced. The system can be considered the first of the "third generation" of computer systems. The most remarked-upon aspects are its use of a hardware-managed stack for calculation, and the extensive use of descriptors for data access. It included virtual memory -- perhaps the first commercial computer to do so -- as well as support for multiprogramming and multiprocessing. 1964 CDC (Computer Data Corp.) 6600 shipped; 100 nsec cycle time. First GE Time-sharing operation at Dartmouth College of the DTSS Dartmouth time-sharing system on a GE-265 (GE-225 + Datanet-30) IBM announces the 360 family of computer systems. The Burroughs B5500, appeared. It also had multiprogramming and virtual memory capabilities, but was three times faster than the B5000 1965 IBM ships the midrange 360 model 40 computer which had COBOL and FORTRAN programming languages available as well as the stock Basic Assembly Language (BAL) assembler. Introduction of GECOS-II, a multi-programming operating system for the GE-600 1966 The Burroughs B6500, which was actually an improved version of the B5500. 1967 First IBM 360/Model 91 shipped to NASA GSFC. 1969 First shipment of the CDC 7600 computer system. First shipment of IBM 360 Model 85. The 360 family was intended to have 3 operating systems:

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:

Pc Community culture web

Distributed computer advantages:

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.

Distributed computer disadvantages:

Multiple prints of failure:


More Software Components The more software components that comprise a system the greater chance of errors occuring. Security Providing easy distributed access increases the risk of a security breach occuring. Networking The underlying network can saturate or cause other problems.

Specific types of servers:

App-servers: An application server is a software framework dedicated


to the efficient execution of procedures (programs, routines, scripts) for supporting the construction of applications. The term was originally used when discussing early clientserver systems to differentiate servers that run SQL services[1] and middleware servers from file servers.

Advantages of application servers

Data and code integrity


By centralizing business logic on an individual server or on a small number of server machines, updates and upgrades to the application for all users can be guaranteed. There is no risk of old versions of the application accessing or manipulating data in an older, incompatible manner.

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]

Total Cost of Ownership (TCO)


In combination, the benefits above may result in cost savings to an organization developing enterprise applications. In practice, however, the technical challenges of writing software that conforms to that paradigm, combined with the need for software distribution to distribute client code, somewhat negate these benefits.[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

Types of clients: Fat client:


A fat/heavy client or thick client is a computer (client) in clientserver architecture or networks which typically provide rich functionality independent of the central server. Originally known as just a 'client' or 'thick client', the name is contrasted to thin client, which describes a computer heavily dependent on a server's applications.

Thin client:

Advantages of thick clients:

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]

Skills required by client/server applications development


Transaction processing Database design Communications experience Gui design Internet server Knowledge of distributed objects and component instructors

Comparison of 2-tier with 3-tier 2-tier


Security :low Performance :poor Scale :poor Application reuse :poor Ease of development :high Server to server infrastructure :no Legacy application :no Internet support :poor System administrations :complex

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

Benefits of client/server programming


You can develop big applications in small steps Applications can reuse components. Clients can access data and functions easily and safely Custom applications can incorporate off-the-shelf components Component environments dont get older they only get better Vendor independence as compared to the traditional mainframe computing. This includes application development methodologies, programming paradigms, products and architectures Organization have changed from steep hierarchies to flattened hierarchies. Decisions making are carried out by many lower ranked managers across the organization rather than performed only by CEOs in the past. Network management is replacing vertical management Faster response and flexibility to changing environment of business world outside

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.

Pitfalls of client/server computing


Dependability - when the server goes down, operations cease Lack of mature tools - it is a relatively new technology and needed tools are lacking e.g.. Automated client software distribution Lack of scalability - network operating systems (e.g.. Novell Netware, Windows NT Server) are not very scalable. Higher than anticipated costs Can cause network congestion What some call advantages, others call disadvantages

Database server:

File server:

Potrebbero piacerti anche