+ All Categories
Home > Documents > MTC Notes

MTC Notes

Date post: 05-Apr-2018
Category:
Upload: vskpsg
View: 214 times
Download: 0 times
Share this document with a friend

of 42

Transcript
  • 7/31/2019 MTC Notes

    1/42

    What is Client/Server?

    The name implies that clients and servers are separated logical entities that work together over a network to

    accomplish a task.

    Client/server is a computational architecture that involves client processes requesting service from server

    processes.

    Client/server is a distributed computing model in which client applications request services from server processes.Clients and servers typically run on different computers interconnected by a computer network. A client application is a

    process or program that sends messages to a server via the network. Those messages request the server to perform aspecific task, such as looking up a customer record in a database or returning a portion of a file on the servers hard disk.

    The client manages local resources such as a display, keyboard, local disks and other peripherals.

    The server process or program listens for client requests that are transmitted via the network. Servers receive those

    requests and perform actions such as database queries and reading files. Server processes typically run on powerful PCs,

    workstations or on mainframe computers.

    An example of a client/server system is a banking application that allows a clerk to access account information on a

    central database server. All access is done via a PC client providing a graphical user interface (GUI). An account

    number can be entered into the GUI along with how much money is to be withdrawn or deposited, respectively. ThePC client validates the data input by the clerk, transmits the data to the database server, and displays the results that are

    returned by the server.

    The client/server model is an extension of the object-based (or modular) programming model, where large pieces of

    software are structured into smaller components that have well defined interfaces. Components interact by exchanging

    messages or by Remote Procedure Calling (RPC).The calling component becomes the client and the called component the server. This model creates the advantage

    of better maintainability and extensibility.

    A client/server environment typically hosts various operating system brands and hardware from multiple vendors.Vendor independence and freedom of choice are thus further advantages of the model. User friendly PC equipment can

    be interconnected with mainframe based servers, for example.

    Client/server systems can be scaled up in size more readily than centralized solutions as server functionality can be

    distributed across more and more server computers, as the number of clients increases. Server processes can thus run in

    parallel, each process serving its own set of clients. The drawbacks of the client/server model are that security is more

    difficult to ensure in a distributed environment than it is in a centralized one, that the administration of distributed

    equipment can be much more expensive than the maintenance of a centralized system, that data distributed across

    servers needs to be maintained consistent, and that the failure of one server can render a large client/server systemunavailable. If a server fails, none of its clients can make progress any more.

    Furthermore, the computer network can become a performance or reliability bottleneck: if the network fails, allservers become unreachable. If one client produces a high network traffic then all clients will suffer from long response

    times.

    Client/server computing is the logical extension of modular programming. Modular programming has as its

    fundamental assumption that separation of a large piece of software into itsconstituent parts ("modules")

    creates` the possibility for easier development and better maintainability.Client/server computing takes this a step

    farther by recognizing that those modules need not all be executed within the same memory space. With this

    architecture, the calling module becomes the "client" (that which requests a service), and the called module becomes the

    "server" (that which provides the service).The logical extension of this is to have clients and servers running on theappropriate hardware and software platforms for their functions. For example, database management system servers

    1

  • 7/31/2019 MTC Notes

    2/42

    running on platforms specially designed and configured to perform queries, or file servers running on platforms with

    special elements for managing files. It is this latter perspective that has

    What is the function of Client?

    Client process:

    The client is a process or program that sends a message to a server process orprogram, requesting the server to perform

    a task or service.

    Client programs usually manage the user-interface portion of the application, validate dataentered by the user, dispatchrequests 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 theuser and the rest of the application system. The client process also manages the local resources

    thatthe 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 thewindows on the display and displays the data in the windows.

    The client is a process that sends a message to a server process, requesting that the server perform a 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 often manages the local resources that

    the user interacts with such as the monitor, keyboard, CPU and peripherals. One of the key elements of a client

    workstation is the graphical user interface (GUI). Normally a par t of operating system i.e. the window managerdetects user actions, manages the windows on the display and displays the data in the windows.

    What is the function of Server?

    Server programs generally receive requests from client programs, execute database retrieval and updates, manage

    data integrity and dispatch responses to client requests. The server-based process may run on another machine on the

    network. This server could be the host operating system or network file server, providing file system services

    and application services. The server process often 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.

    Server process:

    A server process is a process or program that fulfills the client request by performingthe task requested.

    Server programs generally receive requests from client programs, execute database retrievaland 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 bethe host operating

    system or network file server; the server is then provided both filesystemservices and application services. Or in some cases, another desktop machine provides theapplication

    services.The server process acts as a software engine that manages shared resources such asdatabases, printers,

    communication links, or high powered-processors. The server process performsthe back-end tasks that are common to

    similar applications.

    2

  • 7/31/2019 MTC Notes

    3/42

    All client/server systems have the following distinguishing characteristics.

    1. Service

    2. Shared Resources

    3. Asymmetrical Protocols

    4. Transparency of location

    5. Mix and Match

    6. Message based exchanges7. Encapsulation of Services

    8. Scalability

    9. Integrity

    1. Service:

    Client/Server is primarily a relationship between processes running on separate machines

    The Server process is a provider of services. The client is a consumer of services.

    The client and server is separated clearly based on the idea of service.

    2. Shared Resources:

    A server can service many clients at the same time and regulate their access to shared resources.

    Have different mechanisms in allocating files and hardware like printer, scanner etc.

    3. Asymmetrical Protocols:

    There is a many-to-one relationship between clients and server

    Clients always initiate the dialog by requesting a service.

    Servers are passively awaiting requests from the clients.

    4. Transparency of Location:

    The server is a process that can reside on the same machine as the client or on a different machine across anetwork.

    Client/Server software usually masks the location of the server from the clients by redirecting the service callswhen needed.

    A program can be a client, a server or both.

    5. Mix-and-Match:

    The ideal client/server software is independent of hardware or operating system

    3

  • 7/31/2019 MTC Notes

    4/42

    You should able to mix and match the client and server platforms.

    6. Message based exchanges:

    Clients and servers are loosely coupled systems that interact through a message-passing mechanism.

    The message is the delivery mechanism for the service requests and replies.

    7. Encapsulation of Services:

    A message tells a server what service is requested; it is then up to the server to determine how to get the jobdone.

    Servers can be upgraded without affecting the clients as long as the published message interface is not

    changed.

    8. Scalability:

    Client/Server systems 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 multi-servers.

    9. Integrity:

    The server code and data is centrally maintained, which results in cheaper maintenance and the guarding of

    shared data integrity.

    The clients remain personal and independent

    Cooperative Processing:

    Cooperative processing is computing which requires two or more distinct processorsto complete a single

    transaction.

    Cooperative processing is related to both distributed and client/server processing. It is aform of distributed

    computing where two or more distinct processes are required to complete asingle business

    transaction.Usually, these programs interact and execute concurrently on different processors.Cooperative process

    ing can also be considered to be a style of client/server processing if communication between processors isperformed through a message passing architecture.

    Distributed Processing:

    Distributed processing is the distribution of applications and business logic acrossmultiple

    processing platforms.

    Distributed processing implies that processing will occur on more than one processor inorder for a transactionto be completed.In other words, processing is distributed across two or more machines and the processes aremost

    likely not running at the same time, i.e. each process performs part of an application in asequence. Often the data

    used in a distributed processing environment is also distributed across platforms.

    Client/Server Computing Era

    1. Client Server Computing Era:

    Client/Server reshaped the way of computers being used.

    Client/Server become mandatory in all computer oriented fields

    Internet is a good example for the Client/Server concept.

    1.1. What is the real client/server version?

    4

  • 7/31/2019 MTC Notes

    5/42

    A single PC can do all the work but the processes crowded up in the processor.

    Client/Server removes the host-centric pattern of execution.

    Processes which are hard to execute in PC can be send to the server.

    Client/Server is Computer glasnost means a new era of co-existence and openness in which all can

    play.

    Client/Server computing provides an open and flexible environment where mix and match is the rule.

    The client applications will run predominantly on PCs and other desktop machines that are at home on

    LANs.

    The successful servers know exactly how to communicate with their PC clients. Mainframe has dumb terminals.

    Under the client/server environment, the mainframe servers cant treat PCs as dumb terminals. They need to support peer-to-peer protocols, interpret PC messages, service their PC clients files in

    their native formats and provide data and services to PCs in the most direct manner.

    1.2. Client/Server and the New IS

    Client/Server application development requires hybrid skills that includea) transaction processing

    b) database design

    c) communications experience and

    d) graphical user interface savvy.

    The more advanced applications require a knowledge of distributed objects and the internet.

    Most Client/Server solutions today are PC LAN implementations that are personalized for the group

    that uses them. Security requirements must be properly configured, often by the users themselves. IS departments have the skills to not only manage and deploy large networks but also to provide

    interoperability standards.

    They also know how to fine-tune applications, distribute fixes, and ensure data integrity.

    Client/Server computing may be best served by two-tiered IS organizations

    A line IS for managing and deploying departmental systems.

    An enterprise IS for managing global network and setting interoperability standards.

    1.3. Competition in the Client/Server Market

    Client/Server is the great equalizer of the computer business, encourages openness. The open Client/Server environment serves as the catalyst for commoditizing hardware and system

    software.

    Example for commodity: PC can be obtained from multiple suppliers and is sold in very price-

    competitive market situations.

    LAN adapters, LAN protocol stacks, network routers, and bridges are also becoming commodities

    On the Software side, PC operating systems, SQL Database Management Systems and Web Servers

    and Browsers.

    The new era is beginning with Ubiquitous Client-Server Computing. Clients will be everywhere. Theywill come in all shapes and forms including desktop, palmtop, mobile etc.

    1.4. The internet, intranet and extranet

    The Internet is a worldwide, publicly accessible series of interconnected computer networks that transmit data by

    packet switching using the standard Internet Protocol (IP). It is a network of networks that consists of millions ofsmaller domestic, academic, business, and government networks, which together carry various information and services,

    such as electronic mail, online chat, file transfer, and the interlinked web pages and other resources of the World WideWeb (WWW).

    An Intranet is a private computer network that uses internet protocols, network connectivity to securely share part of an

    organizations information or operations with its employees. Sometimes the term refers only to the most visible service,

    the internal website. The same concepts and technologies of the Internet such as clients and servers running on the

    Internet protocol suite are used to build an intranet. HTTP and other Internet protocols are commonly used as well, such

    5

  • 7/31/2019 MTC Notes

    6/42

    as FTP. There is often an attempt to use Internet technologies to provide new interfaces with corporate legacy data

    and information systems. Normally they hide behind the firewalls.

    An extranet is a private network that uses Internet protocols, network connectivity, and possibly the public

    telecommunication system to securely share part of an organizations information or operations with suppliers, vendors,

    partners, customers or other businesses. An extranet can be viewed as part of a companys Intranet that is extended to

    users outside the company (e.g.: normally over the Internet). It has also been described as a state of mind in which the

    Internet is perceived as a way to do business with a pre-approved set of other companies business-to-business (B2B), inisolation from all other Internet users. In contrast, business-to-consumer (B2C) involves known server(s) of one or more

    companies, communicating with previously unknown consumer users.

    Briefly, an extranet can be understood as a private intranet mapped onto the Internet or some other transmission

    system not accessible to the general public, but is managed by more than one companys administrator(s).

    Server Types

    1. File Server2. Database Server

    3. Transaction Server

    4. Groupware Server

    5. Object Server

    6. Web Server

    1. File Servers

    The client passes requests for file records over a network to the file server.

    This is a very primitive form of data service.

    File Servers are useful for sharing files across a network.

    These are acting as a repository of documents, images, engineering drawings and other large data objects.

    2. Database Servers

    The client passes SQL requests as messages to the database server.

    The result of each SQL command are returned over the network to the client.

    The code in the server process will processes the SQL request and the data reside in the same machine.

    Distributed database servers may increase the efficiency of the processing power.

    These servers provide the foundation for decision-support systems that require adhoc queries and flexible

    reports.

    6

    http://middlewares.files.wordpress.com/2008/04/1.jpg
  • 7/31/2019 MTC Notes

    7/42

    3. Transaction Servers

    The client invokes remote procedures that reside on the server with an SQL database engine.

    These remote procedures on the server execute a group of SQL statements.

    The network exchange consists of a single request/reply message.

    The SQL statements either all succeed or fail as a unit. These grouped SQL statements are called Transactions.

    The server component usually consists of SQL transactions against a database

    These are called Online Transaction Processing or OLTP.

    OLTP applications also require tight controls over the security and integrity of the database.

    Two forms of OLTP: based on the TP Monitors provided by the OLTP Vendors

    o TP Lite

    o TP Heavy

    4. Groupware Servers

    Groupware addresses the management of semi-structured information such as text, image, mail, bulletin

    boards, and the flow of work.

    These client/server systems place people in direct contact with other people.

    Lotus Notes is the Leading Example.

    In most cases, applications are created using a scripting language and form-based interfaces provided by the

    vendor.

    The communication middleware between the client and the server is vendor-specific.

    7

    http://middlewares.files.wordpress.com/2008/04/4.jpghttp://middlewares.files.wordpress.com/2008/04/3.jpghttp://middlewares.files.wordpress.com/2008/04/2.jpg
  • 7/31/2019 MTC Notes

    8/42

    5. Object Servers

    The client/server application is written as a set of communicating objects.

    Client objects communicate with server objects using an Object Request Broker (ORB).

    The client invokes a method on a remote object.

    The ORB locates an instance of that object server class, invokes the requested method, and returns the results

    to the client object.

    Server objects must provide support for concurrency and sharing. The ORB brings it all together.

    Example:Digitals Object Broker, IBMs SOM 3.0, Suns NEO, HPs ORB Plus, Expersofts Power Broker,

    Microsofts DCOM or Network OLE.

    6. Web Servers

    WWW is the first truly intergalactic client/server application.

    This model of client/server consists of thin, portable, universal clients that talk to Superfast Servers.

    The clients and servers communicate using an RPC-like protocol called HTTP.

    This protocol defines a simple set of commands, parameters are passed as strings.

    The collection of HTML documents are stored in the Web Server.

    What do mean by Middleware?

    It is a standardized interfaces and protocols between clients and back-end databases. It hides complexity of data sources from the end-user

    Compatible with a range of client and server options

    All applications operate over a uniform applications programming interface (API).

    Why is Client-Server Different?

    Emphasis on user-friendly client applications

    Focus on access to centralized databases Commitment to open and modular applications

    8

    http://middlewares.files.wordpress.com/2008/04/6.jpghttp://middlewares.files.wordpress.com/2008/04/5.jpg
  • 7/31/2019 MTC Notes

    9/42

    Networking is fundamental to the organization

    Characteristics of Client/Server Architectures

    1. A 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 suchas 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 ofclient and server are not usually the same. Client and server processes communicate through a well-defined setof standard application program interfaces (APIs) and RPCs.

    4. An important characteristic of client-server systems is scalability. Horizontal scaling means adding orremoving client workstations with only a slight performance impact.

    What are the issues in Client-Server Communication?

    Addressing

    Hard-wired address

    o Machine address and process address are known a priori

    Broadcast-based

    o Server chooses address from a sparse address spaceo Client broadcasts request

    o Can cache response for future

    Locate address via name server

    Blocking versus non-blocking

    Blocking communication (synchronous)

    o Send blocks until message is actually sent

    o Receive blocks until message is actually received

    Non-blocking communication (asynchronous)

    o Send returns immediately

    o Return does not block either

    Buffering Issues

    Unbuffered communicationo Server must call receive before client can call send

    Buffered communication

    o Client send to a mailbox

    o Server receives from a mailbox

    Reliability

    Unreliable channelo Need acknowledgements (ACKs)

    o Applications handle ACKs

    o ACKs for both request and reply

    Reliable channelo Reply acts as ACK for request

    o Explicit ACK for response

    Reliable communication on unreliable channels

    o Transport protocol handles lost messages

    9

  • 7/31/2019 MTC Notes

    10/42

    Server architecture

    Sequential

    o Serve one request at a time

    o Can service multiple requests by employing events and asynchronous communication

    Concurrent

    o Server spawns a process or thread to service each request

    o Can also use a pre-spawned pool of threads/processes (apache)

    Thus servers could beo Pure-sequential, event-based, thread-based, process-based

    Scalability

    Buy bigger machine!

    Replicate

    Distribute data and/or algorithms

    Ship code instead of data

    Cache

    Client-Server Pros & Cons

    Advantages

    Networked web of computers

    Inexpensive but powerful array of processors

    Open systems

    Grows easily Individual client operating systems

    Cost-effective way to support thousands of users Cheap hardware and software

    Provides control over access to data

    User remains in control over local environment

    Flexible access to information

    Disadvantages Maintenance nightmares

    Support tools lacking Retraining required

    Complexity

    Lack of Maturity

    Lack of trained developers

    Maintenance Cost

    Training Cost

    Hardware Cost

    Software Cost

    WHAT IS CLIENT/SERVER COMPUTING?

    According to MIS terminology, Client/Server computing is new technology that yields solutions to many

    data management problems faced by modern organizations. The term Client/Server is used to describe a computing

    model for the development of computerized systems. This model is based on distribution of functions between two

    types of independent and autonomous processes: Server and Client. A Client is any process that requests specific

    services from the server process. A Server is a process that provides requested services for the Client. Client and Serverprocesses can reside in same computer or in different computers linked by a network.

    When Client and Server processes reside on two or more independent computers on a network, the Servercan provide services for more than one Client. In addition, a client can request services from several servers on

    the network without regard to the location or the physical characteristics of the computer in which the Server

    10

  • 7/31/2019 MTC Notes

    11/42

    process resides. The network ties the server and client together, providing the medium through which the

    clients and the server communicate. The Fig. 1.1 given below shows a basic Client/Server computing model.

    From the Fig. 1.1 it is clear that services can be provided by variety of computers in the network. The key

    point to Client/Server power is where the request processing takes place. For example: Client/Server Database. Incase of Client/Server database system, the functionality is split between the server system and multiple clients such that

    networking of computers allows some tasks to be executed on the client system.

    Application Task

    TYPES OF SERVERS

    A file server can store any type of data, and so on simpler systems, may be the only server necessary. On larger and

    more complicated systems, the server responsibility may be distributed among several different types of servers. Inthis section, we have discussed the purpose of various available server:

    File Server

    All the files reside on the server machine. File Server provides clients access to records within files from the server

    machine. File Servers are useful for sharing files across a network among the different client process requesting the

    services. The server process is somewhat primitive because of tends to demand many message exchanges over the

    network to find the requested data. The examples of File servers are:

    o UNIX: Network File Services (NFS) created by Sun Micro systems.

    o Microsoft Windows Map Drive e.g., Our Colleges Z-drive.

    o Samba: An open Source/Free Software suite that provides seamless file and print services to

    SMB/CIFS clients (i.e., Microsoft Windows clients).

    Print Server

    This machine manages user access to the shared output devices, such as printers. These are the earliest type of servers.Print services can run on a file server or on one or more separate print server machines.

    Application ServerThis machine manages access to centralized application software; for example, a shared database. When the

    user requests information from the database, the application server processes the request and returns the result of

    the process to the user.

    Mail Server

    This machine manages the flow of electronic mail, messaging, and communication with mainframe systems on

    large-scale networks.

    Fax Server

    11

  • 7/31/2019 MTC Notes

    12/42

    Provides the facility to send and receive the Faxes through a single network connection. The Fax server can be a

    workstation with an installed FAX board and special software or a specialized device dedicated and designed for Fax

    Services. This machine manages flow of fax information to and from the network. It is similar to the mail server.

    Directory Services ServerIt is found on large-scale systems with data that is distributed throughout multiple servers. This machine functions as an

    organization manager, keeping track of what is stored where, enabling fast and reliable access to data in various

    locations.

    Web ServerThis machine stores and retrieves Internet (and intranet) data for the enterprise. Some documents, data, etc.,

    reside on web servers. Web application provides access to documents and other data. Thin clients typically use a

    web browser to request those documents. Such servers shares documents across intranets, or across the Internet (orextranets). The most commonly used protocol is HTTP (Hyper Text Transfer Protocol). Web application servers are

    now augmenting simple web servers. The examples of web application servers are Microsofts Internet Information

    Server (IIS), Netscapes iPlanet IBMs WebSphere, BEAs WebLogic and Oracle Application Server.

    Database Server

    Data resides on server, in the form of a SQL database. Database server provides access to data to clients, in response to

    SQL requests. It shares the data residing in a database across a network. Database Server has more efficient protocol

    than File Server. The Database Server receives SQL requests and processes them and returning only the requested

    data; therefore the client doesnt have to deal with irrelevant data. However, the client does have to implement

    SQL application code. The example of database server is: Oracle9i database server.

    Transaction Servers

    The data and remote procedures reside on the server. The Server provides access to high-level functions, and

    implements efficient transaction processing. It shares data and high-level functions across a network. Transaction

    servers are often used to implement Online Transaction Processing (OLTP) in high-performance applications. Atransaction server utilizes a more efficient protocol in comparison to a Database Server. The transaction Serverreceives high-level function request from the clients and it implements that function. Often it needs to return less

    information to the client than a Database Server. Examples of the Transaction servers mainly categorized as

    o TP-Light with Database Stored Procedures like Oracle, Microsoft SQL Server etc.

    o TP-Heavy with TP Monitors like BEA Tuxedo, IBM CICS/TX Series.

    Groupware Servers

    Liable to store semi-structured information like text, image, mail, bulletin boards, flow of work. Groupware Server

    provides services, which put people in contact with other people, that is because groupware is an ill-defined

    classification protocol differing from product to product. For Example: Lotus Notes/Domino and Microsoft Exchange.

    Object Application Servers

    Communicating distributed objects reside on the server. The object server primarily provides access to those objectsfrom the designated client objects. The object Application Servers are responsible for sharing distributed objects across

    the network. Object Application Servers use the protocols that are usually some kind of Object Request Broker (ORB).Each distributed object can have one or more remote methods. ORB locates an instance of the object server class,

    invokes the requested method, and returns the results to the client object. Object Application Server provides an ORB

    and application servers to implement this. For example:

    Common Object Request Broker Architecture (CORBA): Ionas Orbix, Borlands Visibroker. Microsofts Distributed Component Object Model (DCOM), aka COM+. Microsoft Transaction Server (MTS).

    12

  • 7/31/2019 MTC Notes

    13/42

    COMPONENTS OF CLIENT SERVER

    middleware

    Requ

    est

    Result

    a client, a server, and middleware

    ClientServer

    Client machine

    Server machine

    Components of client server

    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-basedprocess 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 ofoperating system i.e. the window manager detects user actions, manages the windows on the display and displays the

    data in the windows.

    13

  • 7/31/2019 MTC Notes

    14/42

    Server process

    A server process (program) fulfills the client request by performing the task requested. Server programsgenerally receive requests from client programs, execute database retrieval and updates, and 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.

    14

  • 7/31/2019 MTC Notes

    15/42

    Examples

    A common client/server example is a print server. Most people have probably noticed a temporary lockup orslowdown when a document is printed on a stand-alone PC, especially if the document is complex. One can

    attach a printer to a PC and then share it with other users across the network. However, if everyone on thenetwork simultaneously prints to that shared printer, it would likely lock up or even crash. Therefore, many

    times a machine is dedicated solely to handle printing a print server. It "serves" print requests to all users,

    and off-loads this task from local machines. Another example is a mail server which functions much like a post

    office, receiving mail centrally and delivering individual messages to individual clients.

    In a small organization, a single server machine may serve more than one function, if the functions are simpleenough. One or more applications may reside on a single server machine, with the server being divided into different

    "logical" partitions. In a large corporate environment, there may be many servers for separate tasks.

    There is typically a primary domain controller (PDC), which authenticates users and controls access and log in

    to the computer system itself. There may be a mail server, which processes e-mail. There may also be a file server

    typically containing large disk drives and individual user directories to store user files in a uniform way. And there may

    be separate application servers for accounting, billing, customer care, Web, e-commerce, database, transaction,

    manufacturing, inventory, etc. They are typically linked together using integration software (frequently calledmiddleware) so that one can access many server applications from a single (client) machine, through a common

    interface, typically a browser.

    CLIENT/SERVER MODELS:

    Client/server systems can be classified based on the way in which the systems have been built. The mostwidely accepted range of classifications has come from the Gartner Group, a market research firm in Stamford,

    Connecticut {see Figure 1.1). Although your system will differ slightly in terms of design, these models give you a

    good idea of how client/server systems can be built. These models are not, however, mutually exclusive, and most good

    systems will use several of these styles to be effective and efficient. Over time, client/server systems may move models

    as the applications are replaced or enhanced. These models demonstrate that a full definition of a client/server system isa system in which a client issues requests and receives work done by one or more servers. The more server statement is

    important because the client may need to access several distinctly separate network systems or hosts. The followingsections describe each of the five basic models. In its simplest form, client/server identifies a system whereby a client

    issues a request to a second machine called the server asking that a piece of work is done. The client is typically

    15

  • 7/31/2019 MTC Notes

    16/42

    a personal computer attached to a LAN, and the server is usually a host machine such as a PC fileserver, UNIX file

    server, or midrange/mainframe.

    Gartner Group Model

    The job requests can include a variety of tasks, including, for example: Return all records from the customer

    file database where name of Customer = Holly

    Store this file in a specific file server data directory Attach to CompuServe and retrieve these items Upload this datapacket to the corporate mainframeTo enhance this definition you should also consider the additional requirements that a

    nessnormally has.

    Model 1: Distributed Presentation

    Distributed presentation means that both the client and the server machines format thedisplay presented to the

    end user. The client machine intercepts display output from the server intended for a display device and reroutes the

    output through its own processes before present-ing it to the user.As below figure shows, the easiest model is to provide

    terminal emulation on the clientalongside other applications. This approach is very easy to implement using products

    such asWallData's Rumba or Attachmate but provides no real business benefit other than to begin amigration toclient/server. Sometimes a company may use a more advanced form of terminalemulation whereby they hide

    the emulation screen and copy some of its contents, normally keyfields, onto a Visual Basic or Borland Delphi screen.

    This copying is often referred to as screenscraping. Screen scraping enables a company to hide its mainframe and

    midrange screens and present them under a PC interface such as Windows or OS/2. The major benefit of screenscraping

    is that it allows a system to migrate from an old mainframe-based system to a newclient/server system in small

    incremental steps.

    Model 2: Remote Presentation

    It may be necessary to move some of the application's program logic to the PC from

    thehost computer. The second model, as shown in the below figure , allows for some business/program logic as well as the presentation to reside on the PC. This model is particularly useful when moving from a dumb terminal environment

    to a PC-LAN environment.The logic can be of any type; however, validation of fields, such as ensuring that states and

    zipcodes are valid, are ideal types of logic

    Model 3: Distributed Logic

    A distributed logic client/server application splits the logic of the application between theclient and server

    processes. Typically, an event-driven GUI application on the client controls theapplication flow, and logic on the server

    centrally executes the business and database rules. Theclient and server processes can communicate using a variety of

    middleware tools, including APPC,Remote Procedure Calls (RPC), or data queues.Differentiating between the remotepresentation and distributed logic models isn't alwayseasy. For example, if a remote presentation application performs

    some calculations with the data itreceives, does it therefore become a distributed logic application? This overlap

    between the modelscan sometimes make the models confusing. The following figure shows the distributed logic cli-

    ent/server model

    Model 4: Remote Data

    16

  • 7/31/2019 MTC Notes

    17/42

    With the remote data model, the client handles all the application logic and end-user presen-tation, and the

    server provides only the data. Clients typically use remote SQL or Open DatabaseConnectivity (ODBC) to access the

    data stored on the server. Applications built in this way arecurrently the most common in use today. The below figure

    shows this model

    Model 5: Distributed Data

    Finally, the distributed data model uses data distributed across multiple

    networked systems.Data sources may be distributed between the client and the server or multiple servers. Thedistributeddata model requires an advanced data management scheme to enforce data concurrency,security, and integrity across

    multiple platforms. As you would expect, this model is the mostdifficult client/server model to use. It is complex andrequires a great deal of planning and decision-making to use effectively. The following figure shows this model

    MIDDLWARE

    Middleware is used to glue together applications or components. A few examples of middleware include: IPC by

    sockets, shared memory TCP/IP, X.25 Common database RPC, CORBA RMI MOM

    Connectivity allows applications to transparently communicate with other programs or processes, regardless of their

    location. The key element of connectivity is the network operatingsystem (NOS). NOS provides services such as

    routing, distribution, messaging, file and print,and network management services. NOS rely on communicationprotocols to provide specific services. The protocols are divided into three groups: 1.Media protocols,

    2.Transport protocols and 3.Client-server protocols

    Media protocols determine the type of physical connections used on a network. Someexamples 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

    toserver. 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, aclient-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 clienserver protocols are NetBIOS, RPC, Advanced Progr

    am-to-Program Communication (APPC), Named Pipes,Sockets, Transport Level Interface (TLI) and Sequenced Packet

    Exchange (SPX).

    Types of Middleware:

    1. Remote Procedure Calls (RPC)

    client makes calls to procedures running on remote computers synchronous and asynchronous2. Message-Oriented Middleware (MOM)

    asynchronous calls between the client via message queues3. Publish/Subscribe

    push technology server sends information to client when available4. Object Request Broker (ORB)

    17

  • 7/31/2019 MTC Notes

    18/42

    object-oriented management of communications between clients and servers5. SQL-oriented Data Access

    middleware between applications and database servers

    Database Middleware:

    1.ODBCOpen Database Connectivity

    Most DB vendors support this

    2.OLE-DB

    Microsoft enhancement of ODBC

    3.JDBCJava Database ConnectivitySpecial Java classes that allow Java applications/applets to connect to databases

    s with peer-to-peer connectivity without regard for the underlyingcommunications transport (i.e. TCP/IP, NetBIOS,

    Async).Piccolo is supported on UNIX versions AIX, SCO, HP-UX (HP9000/700 & 800),Tandem S2 Integrity, Solaris

    2.1, and Silicon Graphics (SGI). It is also supported on Windows3.x, Windows NT, and the Tandem Non-Stop Kernel.

    Application developers use the PiccoloAPI to access data and applications residing on any of the supported platforms

    on a network.The developers need no programming knowledge of the underlying transport protocol.3.PIPES Platform:

    PIPES Platform, from Peer Logic, is message-oriented middleware that provides theessential communications services

    for distributing applications across the enterprise. PIPES Platform's process-to process messaging allows development

    of applications with an asynchronous, non-blocking, event-driven architecture. A dynamic name service lets us find a

    trun-time and communicate with any application resource in the PIPES Platform network.

    PIPESPlatform automatically maintains information on all PIPES Platform resources, even asmachines and applications

    are added or moved. Session management services provideguaranteed message delivery, integrity, prioritization,sequencing, dynamic re-routing and error handling. PIPES Platform's cross platform and multiprotocol supportprovide a consistent communications interface that allows developers to focus on business logic, not

    communications.4.SmartSockets:

    SmartSockets, from Talarian Corporation, is a rapid application development

    toolkitwhich enables processes to communicate quickly, reliably, and securely across differentoperating system

    platforms, through the use of messages. The communicating processes canreside on the same machine, on a LAN, on a

    WAN, or anywhere on the Internet.SmartSockets is an industrial-strength package which takes care of network

    interfaces,guarantees delivery of messages, handles communication protocols, and deals with recoveryafter

    system/network failures. SmartSockets's programming model is built specifically to offer high-speed inter process

    communication, scalability, reliability and fault tolerance.

    It supports a variety of communication paradigms including publish-subscribe, peer-to- peer, and RPC. Included as part

    of the package are graphical tools for monitoring and debuggingour application. SmartSockets is available on most

    UNIX, OpenVMS, Windows 3.1, Windows95, Windows NT, and OS/2.

    The term middleware is used to describe separate products that serve as the glue between two applications.

    Middleware is sometimes called plumbingbecause it connects two sides of an application and passes data betweenthem. Common middleware categories include:

    TP monitors

    DCE environments

    RPC systems

    Object Request Brokers (ORBs)

    Database access systems

    Message Passing

    Middleware is software that functions as a conversion or translation layer. It is also a consolidator and

    integrator. Custom-programmed middleware solutions have been developed for decades to enable one application to

    communicate with another that either runs on a different platform or comes from a different vendor or both. Today,

    there is a diverse group of products that offer packaged middleware solutions

    What is Middleware?

    Middleware does not include the software that provides the actual service thats in the servers domain.

    18

  • 7/31/2019 MTC Notes

    19/42

    It also does not include the user interface or the applications logic thats in the clients domain.

    It starts with the API set on the client side that is used to invoke a service, and it covers the transmission of the

    request over the network and the resulting response.

    Middleware divided into two broad classes:

    (a) General Middleware (b) Service-Specific Middleware

    (a) General Middleware

    It is the substrate for most client/server interactions

    It includes the communication stacks, distributed directories, authentication stacks, distributed directories,authentication services, network time, remote procedure calls, and queuing services.

    Products that fall into the general middleware category include DCE, ONC+, NetWare, NamedPipes, LAN

    Server, LAN Manager, Vines, TCP/IP, APPC and NetBIOS.

    Message Oriented Middleware (MOM) products from Peerlogic, Covia, Message Express, System Strategies

    and IBM.

    These are depends on message queue system and increases portability, interoperability, flexibility.

    (b) Service-Specific Middleware

    It is need to accomplish a particular client/server type of service.

    This includes

    o Database-specific middleware such as ODBC, DRDA, EDA/SQL, SAG/CLI and Oracle Glue.

    o OLTP-specific middleware such as Tuxedos ATMI and /WS, Encinas Transactional RPC, and

    X/Opens TxRPC and XATMI

    o Groupware-specific middleware such as MAPI, VIM, VIC, SMTP and Lotus Notes Calls

    o Object-specific middleware such as OMGs CORBA and Microsofts Network OLE (or DCOM)

    o Internet-specific middleware such as HTTP, S-HTTP and SSL

    o System Management-specific middleware such as SNMP, CMIP and ORBs.

    19

  • 7/31/2019 MTC Notes

    20/42

    MOM Vs RPC

    Feature MOM RPC

    Metaphor Post-office like Telephone like

    Client/Server time

    relationship

    Asynchronous. Clients and

    Servers may operate at different

    times and speeds

    Synchronous. Clients and Servers

    must run concurrently. Servers

    must keep up with clients.

    Client/Server Sequencing No fixed sequence Servers must first come up before

    clients can talk to them.

    Style Queued Call-Return

    Partners need to be

    available

    No Yes

    Load-balancing Single queue can be used to

    implement FIFO or priority based

    policy

    Requires a separate TP Monitor.

    Transactional Support Yes (Some Products) Message

    Queue can participate in the

    commit synchronization

    No. Requires a Transactional

    RPC.

    Message Filtering Yes No

    Performance Slow. An intermediate hop is

    required

    Fast

    Asynchronous processing Yes. Queues and triggers arerequired

    Limited. Requires threads andtricky code for managing threads.

    Messaging and Queuing : The MOM Middleware

    MOM is a key piece of middleware that is absolutely essential for a class of client/server products.

    If the application can tolerate a certain level of time-independent responses, MOM provides the easiest path for

    creating enterprise and inter-enterprise client/server systems.

    This accumulates outgoing transactions in queue and do a bulk upload when a connection can be established

    with an office server.

    MOM allows general purpose messages to be exchanged in a client/server system using message queues.

    Applications communicate over networks by simply putting messages in queues and getting messages from

    queues.

    MOM hides all the nasty communications from applications and typically provides a very simple high-level of

    API to its services.

    A MOM consortium was formed in mid-1993 with the goal of creating standards for messaging middleware.

    Members are product providers including

    o IBM MQSeries

    o Covia Communications Integrator

    o Peerlogic PIPES

    o Horizon Strategies Message Express

    o System Strategies ezBridge

    20

  • 7/31/2019 MTC Notes

    21/42

    MOMs messaging and queuing allows clients and servers to communicate across a network without being

    linked by a private, dedicated, logical connection.

    The clients and servers can run at different times.

    Everybody communicates by putting messages on queues and by taking messages from queues.

    MOM products provide their own NOS services including hierarchical naming, security, and a layer that

    isolates applications from the network.

    They use virtual memory on the local OS to create their queues.

    Most messaging products allow the sender to specify the name of the reply queue.

    The products also include some type of format field that tells the recipient how to interpret the message data.

    MOM enabled programs do not talk to each other directly, so either program can be busy, unavailable, or

    simply not running at the same time. The target program can even be started several hours later.

    Many clients are sending requests to one server queue. The messages are picked off the queue by multiple instances of the server program that are concurrently

    servicing the clients.

    The server instances can take messages off the queue either on a FIFO basis or accounting to some priority to

    load-balancing scheme.

    The message queue can be concurrently accessed.

    The servers can also use messaging filters to throw away the messages they dont want to process, or they can

    pass them on to other servers.

    The MOM messaging products provide persistent (logged on disk) and non-persistent (in memory) message

    queues.

    Persistent messages are slower, that they can be recovered in case of power failures after a system restart.

    A message queue can be local to the machine or remote.

    System administrators can usually specify the number of messages a queue can hold and the maximum

    message size.

    21

  • 7/31/2019 MTC Notes

    22/42

    Remote Procedure Call

    RPCs are not procedure calls at all, they are truly process invocations. The invoked program runs across the wire in adifferent resource domain

    A client process calls a function on a remote server and suspends itself until it gets back the results.

    Parameters are passed like in any ordinary procedure.

    The RPC, like an ordinary procedure is synchronous.

    The process (or threads) that issue the call waits until it gets the results.

    Under the covers, the RPC run-time software collects values for the parameters, forms a message, and

    sends it to the remote server.

    The server receives the request, unpacks the parameters, calls the procedure, and sends the reply back to theclient.

    While RPCs make life easier for the programmer, they pose a challenge for the NOS designers who supply the

    development tools and run-time environments.

    The Common issues are:

    How are the Server functions located and started?

    Server starts the process, when a remote invocation is received with necessary parameters and returns the

    response to the client. What happens when multiple clients invoke the same function? Now an environment is needed to start and stopservers, prioritize requests, perform security checks, and provide some form of load-balancing.

    Each incoming requests invokes a thread in the server side.

    A server loop is created to manage the pool of threads waiting for work rather than create a thread for each

    incoming request.

    TP Monitors are really need on the server side, which provides more functions than a NOS.

    How are parameters defined and passed between the client and the server?

    The better NOSs provide an Interface Definition Language (IDL) for describing the functions and parameters

    that a server exports to its clients.

    An IDL compiler takes these descriptions and produces source code stubs (and header files) for both the client

    and server.

    These stubs can then be linked with the client and server code.

    The client stubs packages the parameters in an RPC packet, converts the data, calls the RPC run-time library

    and waits for the servers reply.

    On the server side, the server stubs unpacks the parameters, calls the remote procedure, packages the results,and sends the reply to the client.

    22

  • 7/31/2019 MTC Notes

    23/42

    How are failures handled?

    Both the sides of the RPC can fail separately, it is important for the software to be able to handle all thepossible failure combinations.

    If the server does not respond, the client side will normally block, timeout, and retry the call.

    The server side must guarantee only once semantics to make sure that a duplicate request is not re-executed.

    If the client unexpectedly dies after issuing a request, the server must be able to undo the effects of that

    transition.

    How is security handled by the RPC?

    Modern NOSs, like DCE make it easy to automatically incorporate their security features into the RPC.

    All you need to specify is the level of security required; then the RPC and security feature will cooperate to

    make it happen.

    How does the client find its server?

    The association of a client with a server is called binding.

    The binding information may be hardcoded in the client.

    The client can find its server by consulting a configuration file or an environment parameter.

    A client can also find its server at run time through the network directory services. The server must, of course,

    advertise their services in the directory.

    The process of using the directory to find a server at runtime is called dynamic binding RPC can be used to find a server. The RPC client stub will locate a server from a list of servers that support the

    interface. This is called automatic binding.

    23

  • 7/31/2019 MTC Notes

    24/42

    How is data representation across systems handled?

    The problem here is that different CPUs represent data structures differently (Ex: bigendian Vs little endian)

    To maintain machine independence, the RPC must provide some level of data format translation across

    systems.

    Example: Sun RPC requires that clients convert their data to a neutral canonical format using the External Data

    Representation (XDR) APIs.

    In contrast, DCEs Network Data Representation (NDR) service is multicanonical, meaning that it supportsmultiple data format representations.

    The client chooses one of these formats, tags the data with chosen format, and then leaves it up to the server to

    transform the data into a format it understands.

    In other words, the server makes it right. It lets the client to do translation, which makes the life easy for the

    server.

    With Sun, all clients look the same to the server: The Client makes it right.

    Datagrams Vs Sessions

    Connection-oriented protocols also known as session-based protocols, virtual circuits or sequenced packetexchanges provide a reliable two-way connection service over a session.

    Each packet of information gets exchanged over a session.

    Duplicate packets are detected and discarded by the session services.

    Overhead associated with creating and managing the session. If a session is lost, one of the parties must

    reestablish it.

    This can be a problem for fault-tolerant servers that require automatic switch overs to a backup server if theprimary server fails.

    The backup server needs to reestablish all the outstanding sessions with clients.

    Datagrams also known as connectionless protocols or transmits and pray protocols provide a simple but

    unreliable form of exchange.

    The more powerful datagram protocols such as NetBIOS provide broadcast capabilities.

    NetBIOS allows you to send datagrams to a named entity, to a select group of entities (multicast), or to all

    entities on a network (broadcast).

    Datagrams are unreliable in the sense that they are not acknowledged or tracked through a sequence number.

    Some stacks (ex: LAN Servers MailSlots) provide an acknowledged datagram service.

    Datagrams are very useful to have in discovery types of situations. These are situations where you discover

    things about your network environment by broadcasting queries and learning who is out there from the response.

    Broadcast can be used to obtain bids for services or to advertise the avilability of new services.

    Broadcast datagrams provide the capability of creating electronic bazaars The alternative to broadcast is to use a network directory service.

    Datagrams are also very useful in situations where there is a need to send a quick message (or) important

    message.

    Ex: All the systems have to send the I am alive message periodically to the network manager.

    o The ordinary method may need 500 sessions for each computer in the network and not possible.

    o Instead the system can broadcast the datagram to the manager.

    Peer to Peer Communications

    Most early client/server applications were implemented using low-level, conversational, peer-to-peer protocols such as sockets, TLI, CPIC/APPC, NetBIOS and Named Pipes.

    These low-level protocols are hard to code and maintain.

    Instead now, the programmers are using RPCs, MOMs, and ORBs, which provide high level abstraction.

    The term, peer-to-peer indicates that the two sides of a communication link use the same protocol interfaceto conduct a networked conversation.

    The protocol is symmetrical, and it is sometimes called program-to-program.

    The peer-to-peer interface not fully mask the underlying network from the programmer.

    Programmer have to handle the transmission timeouts, race conditions, and other network errors.

    The peer-to-peer protocols started as stack-specific APIs.

    a) Sockets

    24

  • 7/31/2019 MTC Notes

    25/42

    Sockets were introduced in 1981 as the UNIX BSD 4.2 generic interface that would provide Unix-to-Unix

    communications over network.

    In 1985, SUN OS introduced NFS and RPC over sockets.

    Sockets are supported on virtually every OS.

    The windows socket API, known as WinSock, is a multivendor specification that standardizes the use of

    TCP/IP under windows.

    In BSD Unix System, sockets are part of the Kernel and provide both a standalone and networked IPC service.

    Socket = Net_ID . Host_ID . Port_ID = IP Address + Port Address.

    The three most popular socket types are

    o Stream

    o Datagram

    o Raw

    Stream and datagram sockets interface to the TCP and UDP protocols, and raw sockets interface to the IP

    protocol.

    A port is an entry point to an application that resides on the host.

    It is represented by a 16-bit integer.

    Ports are commonly used to define the entry points for services provided by the server applications.

    b) TLI

    In 1986, AT&T introduced the Transport Layer Interface that provides functionality similar to sockets but in a

    more network-independent fashion.

    Sockets and TLI are very similar from a programmers perspective.

    TLI is just cleaner version of the sockets.

    It should run on IPX/SPX (or) TCP/IP with very few modifications.

    The TLI API consists of 25 API calls.

    Later standardized as XTI, X/Open Transport Interface.

    c) NetBIOS:

    It is the premier protocol for LAN-based, program-to-program communications.

    Introduced by IBM and Sytek in 1984 for the IBM PC network.

    It is used as an interface to a variety of stacks including NetBEUI, TCP/IP, XNS, Vines, OSI and IPX/SPX.

    The NetBIOS services are provided through a set of commands, specified in a structure called the Network

    Control Block (NCB)

    It does not support the routing of messages to other networks.

    d) Named Pipes:

    Provide highly reliable, two-way communications between clients and a server.

    They provide a file-like programming API that abstracts a session-based two-way exchange of data.

    Using named pipes, processes can exchange data as if they were writing to, or reading from, a sequential file.

    These are suitable for implementing server programs that require many-to-one pipelines.

    Important benefit of named pipes are part of the base interprocess communications service.

    Named pipes interface is identical, whether the processes are running on an individual machine or distributed

    across the network.

    Named pipes run on NetBIOS, IPX/SPX, and TCP/IP stacks.

    Named pipes are built-in networking features in Windows NT, Windows for Workgroups, Windows 95 and

    Warp Server.

    Unix support for Named Pipes is provided by LAN Manager/X.

    e) CPI-C/APPC:

    25

  • 7/31/2019 MTC Notes

    26/42

    Common Programming Interface for Communications (CPI-C) build on top of APPC and marks its

    complexities and irregularities.

    Writing to the CPI-C API allows you to port your programs to all SNA platforms.

    The CPI-C API consists of about 40 calls; APPC consists of over 60 calls.

    Most of these calls deals with configuration and services.

    Advanced program-to-program communication is a protocol which computer programs can use to

    communicate over a network.

    APPC was developed as a component of IBMs Systems Network Architecture (SNA).

    APPC is linked with the term LU6.2.

    LU6.2. (Logic Unit Version 6.2) is a device independent SNA Protocol.

    It was developed to allow computers in IBM environments to setup their own communications sessions, rather

    than rely on a hos computer to do so.

    Contrary to TCP/IP, in which both communication partners always possess a clear role, the communication

    partners in APPC are equal, i.e., everyone can be both servers and clients equally.

    With the wide success of TCP/IP, APPC has declined.

    RPC, Messaging and Peer to Peer

    Client/Server applications are split across address spaces, physical machines, networks and operating systems.

    All NOSs offer peer-to-peer interfaces that let applications communicate using close to the wire send/receive

    semantics.

    Most NOSs provide some form of RPC middleware that hides the wire. An alternative type of model message queueing or simple MOM incredibly helpful in situations when the

    tight synchronization is not needed between the clients and servers.

    Communication Stacks

    Application MessagingRPC

    Peer-to-Peer

    Named Pipes DCE SUN

    Presentation NDR XDR

    Session

    Peer-to-peer service API

    NetBIOS Sockets TLI CPI-C/APPC

    Transport

    Common Transport Semantics

    NetBEUITCP/IP SPX/IPX LU6.2 /APPN

    Network

    LLC IEEE802.2

    MAC NDIS (OR) ODI

    26

    http://middlewares.files.wordpress.com/2008/04/16.jpg
  • 7/31/2019 MTC Notes

    27/42

    IEEE 802.5 (Token

    Ring)IEEE 802.3 (Ethernet) SDLC ISDN

    Physical Fiber Optic Coax Twisted Pair

    Each layer has a well-defined set of APIs and Protocols.

    With these mix-and-match can be done.

    Practically, an entire stack of from a single vendor.

    The lowest layer of the communication software belongs to the device drivers that provide an interface to

    several types of communication hardware adapters. Real products dont have any notion of architectural boundaries or reference models they just get a job done.

    At the lower layers, they interface to the hardware using MAC protocols defined by IEEE.

    The LLC provides a common interface to the MACs and a reliable link service for transmitting communication

    packets between two nodes.

    The transport layer provides end-to-end delivery service.

    Inside the Building Blocks

    The Client Building Block

    Runs the client side of the application

    It runs on the OS that provides a GUI or an OOUI and that can access distributed services, wherever they may

    be.

    The client also runs a component of the Distributed System Management (DSM) element.

    The Server Building Block

    Runs the server side of the application

    The server application typically runs on top of some shrink-wrapped server software package.

    The five contending server platforms for creating the next generation of client/server applications are SQL

    database severs, TP Monitors, groupware servers, Object servers and the Web server.

    The server side depends on the OS to interface with the middleware building block. The server also runs DSM component

    It may be a simple agent or a shared object database etc.

    The Middleware Building Block

    Runs on both the client and server sides of an application

    This broken into three category

    o Transport Stacks

    27

  • 7/31/2019 MTC Notes

    28/42

    o NOS

    o Service-specific middleware

    Middleware is the nervous system of the client/server infrastructure

    This also has the DSM component

    DSM

    Runs on every node in the client/server network.

    A managing workstation collects information from all its agents on the network and displays it graphically.

    The managing workstation can also instruct its agents to perform actions on its behalf.

    Server-to-server Middleware

    Server-to-server interactions are usually client/server in nature servers are clients to other servers.

    However, some server-to-server interactions require specialized server middleware. For example, Two-Phase

    commit protocol may be used to coordinate a transaction that executes on multiple servers.

    Servers on mail backbone will use special server-to-server middleware for doing store-and-forward type

    messaging.

    But most modern software follows the client/server paradigm.

    Client/Server : A one size fits all model

    The building blocks of client/server applications are:

    1. Client

    2. Middleware

    3. Server

    These building blocks can be rearranged to use them in the following situations:

    28

    http://middlewares.files.wordpress.com/2008/04/8.jpg
  • 7/31/2019 MTC Notes

    29/42

    1. Client/Server for tiny shops and nomadic tribes This is a building-block implementation that runs the client, the

    middleware software, and most of the business services on the same machine. It is the suggested implementation for the

    one-person shops, home offices, and mobile users with well-endowed laptops.

    2. Client/Server for small shops and departments - This is the classic Ethernet client/single-server, building block

    implementation. It is used in small shops, departments, and branch offices. This is the predominant form of client/server

    today.

    3. Client/Server for intergalactic enterprises This is the multiserver building-block implementation of client/server.The servers present a single system image to the client. They can be spread out throughout the enterprise, but they can

    be made to look like they are part of the local desktop. This implementation meets the initial needs of intergalacticclient/server computing.

    4. Client/Server for a post-scarcity world This model transforms every machine in the world into both a client and a

    server. Personal agents on every machine will handle all the negotiations with their peer agents anywhere in the

    universe. This dream is almost within reach.

    1) Client/Server for Tiny Shops and Nomadic Tribes

    It is easy to run the client and server portion of an application on the same machine.

    Vendors can easily package single-user versions of a client/server application.

    The business critical client/server application runs on one machine and does some occasional communications

    with outside servers to exchange data, refresh a database and send or receive mail and faxes. Ex: Internet.

    2) Client/Server for small shops and departments

    The client/server architecture is particularly well-suited for the LAN-based single server establishments.

    It consists of multiple clients talking to a local server.

    This is the model used in small businesses.

    The single-server nature of the model tends to keep the middleware simple.

    The client only needs to look into a configuration file to find its servers name. Security is implemented at the machine level and kept quite simple.

    The network is usually relatively easy to administer; its a part-time job for a member of the group.

    There are no complex interactions between servers, so it is easy to identify failures- theyre either on the client

    or on the local server.

    29

    http://middlewares.files.wordpress.com/2008/04/9.jpg
  • 7/31/2019 MTC Notes

    30/42

    3) Client/Server for Intergalactic Enterprises:

    The client/server enterprise model addresses the needs of establishments with a mix of heterogeneous servers.

    These models are upwardly scalable.

    When more processing power is needed for various intergalactic functions, more servers can be added, or theexisting server machine can be traded up for the latest generation of superserver machine.

    The servers can be partitioned based on the function they provide, the resource they control, or the database

    they own.

    The servers can be replicated to provide a fault-tolerant service or to boost an applications performance.

    Multiserver capability, when properly used, can provide an awesome amount of compute power and flexibility,

    in many cases rivaling that of mainframes.

    To exploit the full power of multiservers, we need low-cost, high-speed bandwidth and an awesome amount ofmiddleware features -includingo network directory services

    o network security

    o remote procedure calls and

    o network time services.

    Middleware creates a common view of all the services on the network called a single system image.

    Good software architecture for intergalactic enterprise client/server implementations is all about creating

    system ensembles out of modular building blocks.

    Intergalactic client/server is the driving force behind middleware standards as distributed objects and the

    Internet.

    4) Client/Server for a Post-Scarcity World

    Every machine is both a client and a full-function server. Because every machine is a full-function server, it will run, at a minimum, a file server, database server,

    workflow agent, TP Monitor, and Web server all connected via an ORB.

    This is in addition to all the client software and middleware.

    In next few years, a hundred million machines or more may be running almost all the forms of client/server

    software

    In this model instead of mobile agents, personal agents will be used.

    30

    http://middlewares.files.wordpress.com/2008/04/10.jpg
  • 7/31/2019 MTC Notes

    31/42

    Intergalactic Client/Server

    Intergalactic client/server is a new threshold of client/server applications and this is because of

    1. the exponential increase of low-cost bandwidth on Wide Area Networks for example, the Internet and

    CompuServe

    2. a new generation of network-enabled, multi-threaded desktop operating systems for example, OS/2 Warp

    Connect and Windows 95.

    This new threshold marks the beginning of a transition from Ethernet client/server tointergalactic client/server that will

    result in the irrelevance of proximity.

    The center of gravity is shifting from single-server, 2-tier, LAN-based departmental client/server to a post-scarcity form

    of client/server where every machine on the global information highway can be both a client and a server.

    Application characteristics Intergalactic Era client/server Ethernet Era client/server

    Number of clients per

    application

    Millions Less than 100

    Number of servers per

    application

    100,000+

  • 7/31/2019 MTC Notes

    32/42

    b) Roaming agents the environment is populated with all types of agents. This agent technology includes cross-

    platform scripting engines, workflow, and Java-like mobile code environments that allow agents to live on any machine

    on the network.

    c) Rich data management This includes active multimedia compound documents that can move, store, view and edit

    in-place anywhere on the network. Most nodes on the network provides compound document technology for example,

    OLE or OpenDoc-for mobile document management.

    d) Intelligent self-managing entities With the introduction of new multi-threaded, high-volume, network-readydesktop operating systems, increased the workload on the server operating system. This type of distributed software

    knows how to manage and configure itself and protect itself against threats.

    e) Intelligent Middleware -The distributed environment must provide the semblance of a single system-image across

    potentially millions of hybrid client/server machines. The middleware creates this illusion by making all servers on the

    global network appear to behave like a single computer system. Users and programs should be able to dynamically join

    and leave the network, and then discover each other.

    2-Tier Vs 3-Tier

    Instead of Fat clients and fat servers these terms can be used.

    It is all about how you split the client/server applications into functional units.

    These functional units can be assigned to either the client or to one or more servers.

    The most typical functional units are:

    o User Interfaceo Business Logic and

    o the Shared Data

    In 2-tier, the application logic is either buried inside the User Interface on the client or within the database on

    the server (or both)

    2-tier system examples: File Servers and Database Servers with stored procedure.

    In 3-tier, the application logic (or) process lives in the middle-tier, it is separated from the data and the user

    interface.

    3-tier systems are more scalable, robust and flexible. In addition, they can integrate data from multiple sources.

    Examples: TP Monitors, Distributed Objects and the Web.

    Different Meanings for 3-tier:

    First:

    tier 1 Application in PC

    tier 2 Departmental Servers

    tier 3 Enterprise Servers

    Then:

    tier 1 Partitions across client

    tier 2 local database

    tier 3 enterprise database

    Now:

    tier 1 Client

    32

  • 7/31/2019 MTC Notes

    33/42

    tier 2 Application Server

    tier 3 Database Server

    Client/Server Concepts

    From Wikipedia, the free encyclopedia

    Client-server is acomputing architecture which separates a client from aserver, and is almost always implemented

    over acomputer network. Each client or server connected to a network can also be referred to as a node. The most basictype of client-serverarchitectureemploys only two types of nodes: clients and servers. This type of architecture is

    sometimes referred to as two-tier. It allows devices to share files and resources.

    Eachinstanceof the client software can send data requests to one or more connectedservers. In turn, the servers can

    accept these requests, process them, and return the requested information to the client. Although this concept can be

    applied for a variety of reasons to many different kinds of applications, the architecture remains fundamentally thesame.

    These days, clients are most oftenweb browsers, although that has not always been the case. Servers typically

    include web servers,database serversand mail servers.Online gaming is usually client-server too. In the specific case

    ofMMORPG, the servers are typically operated by the company selling the game; for other games one of the players

    will act as the host by setting his game in server mode.

    The interaction between client and server is often described using sequence diagrams. Sequence diagrams arestandardized in the Unified Modeling Language.

    Characteristics

    Characteristics of a client

    Request sender is known as client

    Initiates requests

    Waits for and receives replies.

    Usually connects to a small number of servers at one time

    Typically interacts directly with end-users using agraphical user interface

    Characteristics of a server

    Receiver of request which is send by client is known as server

    Passive (slave)

    Waits for requests from clients

    Upon receipt of requests, processes them and then serves replies

    Usually accepts connections from a large number of clients

    Typically does not interact directly with end-users

    Multi-tiered architecture

    Some designs are more sophisticated and consist of three different kinds of nodes: clients, application serverswhich

    process data for the clients, and database servers which store data for the application servers. This configuration is

    called a three-tier architecture, and is the most commonly used type of client-server architecture. Designs that containmore than two tiers are referred to as multi-tieredorn-tiered.

    The advantages ofn-tiered architectures is that they are far morescalable, since they balance and distribute the

    processing load among multiple, often redundant, specialized server nodes. This in turn improves overall system

    performance and reliability, since more of the processing load can be accommodated simultaneously.[1]

    33

    http://en.wikipedia.org/wiki/Network_architecturehttp://en.wikipedia.org/wiki/Network_architecturehttp://en.wikipedia.org/wiki/Client_(computing)http://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Computer_networkhttp://en.wikipedia.org/wiki/Computer_networkhttp://en.wikipedia.org/wiki/Computer_networkhttp://en.wikipedia.org/wiki/Node_(networking)http://en.wikipedia.org/wiki/Node_(networking)http://en.wikipedia.org/wiki/Software_architecturehttp://en.wikipedia.org/wiki/Instancehttp://en.wikipedia.org/wiki/Instancehttp://en.wikipedia.org/wiki/Instancehttp://en.wikipedia.org/wiki/Requesthttp://en.wikipedia.org/wiki/Application_softwarehttp://en.wikipedia.org/wiki/Application_softwarehttp://en.wikipedia.org/wiki/Web_browserhttp://en.wikipedia.org/wiki/Web_browserhttp://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Database_serverhttp://en.wikipedia.org/wiki/Database_serverhttp://en.wikipedia.org/wiki/Database_serverhttp://en.wikipedia.org/wiki/Mail_serverhttp://en.wikipedia.org/wiki/Mail_serverhttp://en.wikipedia.org/wiki/Online_gaminghttp://en.wikipedia.org/wiki/Online_gaminghttp://en.wikipedia.org/wiki/MMORPGhttp://en.wikipedia.org/wiki/MMORPGhttp://en.wikipedia.org/wiki/Sequence_diagramhttp://en.wikipedia.org/wiki/Unified_Modeling_Languagehttp://en.wikipedia.org/wiki/Graphical_user_interfacehttp://en.wikipedia.org/wiki/Graphical_user_interfacehttp://en.wikipedia.org/wiki/Master-slave_(computers)http://en.wikipedia.org/wiki/Application_serverhttp://en.wikipedia.org/wiki/Application_serverhttp://en.wikipedia.org/wiki/Database_serverhttp://en.wikipedia.org/wiki/Three-tier_architecturehttp://en.wikipedia.org/wiki/Three-tier_architecturehttp://en.wikipedia.org/wiki/Scalabilityhttp://en.wikipedia.org/wiki/Scalabilityhttp://en.wikipedia.org/wiki/Scalabilityhttp://en.wikipedia.org/wiki/Client_server#_note-0http://en.wikipedia.org/wiki/Network_architecturehttp://en.wikipedia.org/wiki/Client_(computing)http://en.wikipedia.org/wiki/Server_(computing)http://en.wikipedia.org/wiki/Computer_networkhttp://en.wikipedia.org/wiki/Node_(networking)http://en.wikipedia.org/wiki/Software_architecturehttp://en.wikipedia.org/wiki/Instancehttp://en.wikipedia.org/wiki/Requesthttp://en.wikipedia.org/wiki/Application_softwarehttp://en.wikipedia.org/wiki/Web_browserhttp://en.wikipedia.org/wiki/Web_serverhttp://en.wikipedia.org/wiki/Database_serverhttp://en.wikipedia.org/wiki/Mail_serverhttp://en.wikipedia.org/wiki/Online_gaminghttp://en.wikipedia.org/wiki/MMORPGhttp://en.wikipedia.org/wiki/Sequence_diagramhttp://en.wikipedia.org/wiki/Unified_Modeling_Languagehttp://en.wikipedia.org/wiki/Graphical_user_interfacehttp://en.wikipedia.org/wiki/Master-slave_(computers)http://en.wikipedia.org/wiki/Application_serverhttp://en.wikipedia.org/wiki/Database_serverhttp://en.wikipedia.org/wiki/Three-tier_architecturehttp://en.wikipedia.org/wiki/Scalabilityhttp://en.wikipedia.org/wiki/Client_server#_note-0
  • 7/31/2019 MTC Notes

    34/42

    The disadvantages of n-tiered architectures include:

    1. More load on the network itself, due to a greater amount of network traffic.

    2. More difficult to program and test than in two-tier architectures because more devices have to communicate in

    order to complete a clients request.

    Comparison to Peer-to-Peer Architecture

    Another type of network architecture is known as peer-to-peer, because each node or instance of the program can

    simultaneously act as both a client and a server, and because each has equivalent responsibilities and status. Peer-to-peer architectures are often abbreviated using the acronymP2P.

    Both client-server and P2P architectures are in wide usage today.

    Comparison to Client-Queue-Client Architecture

    While classic Client-Server architecture requires one of communication endpoints to act as a server, which is muchharder to implement, Client-Queue-Client allows all endpoints to be simple clients, while the server consists of some

    external software, which also acts as passive queue (one software instance passes its query to another instance to queue,

    e.g. database, and then this other instance pulls it from database, makes a response, passes it to database etc.). This

    architecture allows greatly simplified software implementation. Peer-to-Peer architecture was originally based on

    Client-Queue-Client concept.

    Advantages

    In most cases, client-server architecture enables the roles and responsibilities of a computing system to bedistributed among several independent computers that are known to each other only through a network. This

    creates an additional advantage to this architecture: greater ease of maintenance. For example, it is possible to

    replace, repair, upgrade, or even relocate a server while its clients remain both unaware and unaffected by that

    change. This independence from change is also referred to asencapsulation.

    All the data is stored on the servers, which generally have far greater security controls than most clients.

    Servers can better control access and resources, to guarantee that only those clients with the appropriate

    permissions may access and change data.

    Since data storage is centralized, updates to those data are far easier to administer than would be possible under

    a P2P paradigm. Under a P2P architecture, data updates may need to be distributed and applied to each peer inthe network, which is both time-consuming and error-prone, as there can be thousands or even millions of peers.

    Many mature client-server technologies are already available which were designed to ensure security,

    friendliness of the user inter


Recommended