客户端服务器
又叫主从式架构,简称C/S结构,是一种网络架构,它把客户端 (Client) (通常是一个采用图形用户界面的程序)与服务器 (Server) 区分开来。每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求。有很多不同类型的服务器,例如文件服务器、终端服务器和邮件服务器等。虽然它们的存在的目的不一样,但基本构架是一样的。
中文名客户端服务器又叫主从式架构 简称 C/S结构释义是一种网络架构
基本简介
这个方法通过不同的途径应用于很多不同类型的应用程序,最常见就是目前在因特网上用的网页。例如,当你在维基百科阅读文章时,你的电脑和网页浏览器就被当做一个客户端,同时,组成维基百科的电脑、数据库和应用程序就被当做服务器。当你的网页浏览器向维基百科请求一个指定的文章时,维基百科服务器从维基百科的数据库中找出所有该文章需要的信息,结合成一个网页,再发送回你的浏览器。
特征
客户端服务器意图提供一个可缩放 (scaleable)的架构,借此网上的计算机或者处理过程是一个客户端或者服务器。服务器软件一般,但不是总是,运行在强大的专用商业计算机上。另一方面,客户端一般运行在普通个人电脑或者工作站上。
服务端的特征:
被动的角色(从)。 等待来自客户端的要求。 处理要求并传回结果。
客户端的特征:
主动的角色(主)。 发送要求。 等待直到收到回应。 服务器可是有状态或者无状态的。无状态的服务器不会保留任何两个请求之间的信息,有状态服务器会记住请求之间的信息。这些信息的作用域可以是全局的或者某个事务 (session)的。静态 HTML 页面服务器是一个无状态服务器的例子,Apache Tomcat 是一个有状态服务器。
服务端与客户端的交互经常使用循序图描述,循序图是 UML 中的一个标准。
另一种已知的网络架构类型是点对点架构(peer-to-peer architecture),因为每一个即点或程序的实体都是客户端与服务器的角色,并且具有对等的责任。目前这两种架构都被广泛使用。
技术比较编辑
另一种已知的网络架构类型是点对点技术(peer-to-peer architecture),不同于客户端服务器,网络上的每个使用端或程式的实体都拥有相同的等级,同时扮演用户端与服务器的角色。Peer to peer 常被缩写成 P2P。
此两种架构目前都被广范使用,可以找寻有关中心式网络(Client-Server)或非中心式网络(Peer-to-peer)得到更详细的资讯,此两种架构都可于 Windows 与Linux上面使用。
体系结构编辑
文件共享架构, 在此之前是基于PC网络服务器使用的文件共享架构,下载文件的共享位置的桌面环境。客户端的工作,然后在桌面环境中运行。此体系结构的工作仅当共享使用率较低,更新竞争是低的,要传输的数据量是低的。在20世纪90年代,PC LAN(局域网)的计算,因为容量的文件共享是过度紧张的在线用户数的增长。 由于这些限制的文件共享架构,客户机/服务器体系结构的出现。
客户机/服务器体系结构, 这种方法介绍了由数据库服务器,文件服务器更换。使用关系数据库管理系统,可以直接回答用户查询。客户机/服务器体系结构的显着降低网络流量,提供查询响应,而不是总的文件传输。它通过一个GUI前端允许多用户更新到共享数据库。远程过程调用(RPC)或标准的查询语言(SQL)语句通常用于客户端和服务器之间的通信。 以下是客户机/服务器体系结构的例子。
1) 在两层客户机/服务器体系结构的两层架构,用户界面被放置在用户的桌面环境,通常在一台服务器,这是一个更强大的机器提供服务的许多客户数据库管理系统服务。拆分信息处理系统之间的用户界面环境的数据库管理服务器环境。数据库管理服务器支持存储过程和触发器。软件供应商提供的应用程序开发工具,以简化的两层客户机/服务器体系结构。
2)三层架构 的三层体系结构,克服缺点的两层结构。在三层体系结构,中间件之间使用用户系统接口的客户端环境和数据库管理服务器环境。这些中间件实现在各种方式,如事务处理监视器,消息服务器或应用程序服务器。的中间件进行排队,执行应用程序和数据库升级的功能。此外,中间件增加了调度和优先级的工作正在进行中。三层客户机/服务器体系结构,以提高性能为大量的用户,也两层的方法相比,提高了灵活性。三层架构的缺点是,开发环境是比较困难的使用比两层的应用程序的发展。
3)消息服务器的三层。 在这种体系结构中,消息异步处理和优先级。消息有头,包括优先级信息,地址和身份证号码。消息服务器的关系型数据库管理系统和其他数据源的链接。邮件系统是无线基础设施的替代。
4)三层与应用程序服务器 体系结构允许的应用程序运行在一个共享主机,而不是在用户接口的客户端环境的主体。应用程序服务器共享业务逻辑,计算和数据检索引擎。在这种体系结构中,应用程序的可扩展性和一台服务器上安装成本比维持在桌面上的客户端使用 客户机/服务器体系结构,用于工业以及军事。他们提供了一个灵活的架构,允许插入新的技术更容易比早期版本的软件设计。