客户/服务器计算技术

客户/ 服务器系统的核心思想是:系统具有一个中央信息存储池( central repository of
information),用来存储某种数据,它通常存在于数据库中,你可以根据需要将它分发给某
个人员或机器集群。客户/服务器概念的关键在于信息存储池的位置集中于中央,这使得它
可以被修改,并且这些修改将被传播给信息消费者。总之,信息存储池是用于分发信息的软
件,信息与软件的宿主机器(或机器的集群)被称为服务器(server)。宿主于远程机器上的
软件与服务器进行通信,以获取信息、处理信息,然后将它们显示在被称为客户(client)
的远程机器上。


客户机/服务器计算技术的基本概念并不复杂。问题在于你只有单一的服务器,却要同时为
多个客户服务。通常,这都会涉及数据库管理系统,因此设计者“权衡”数据置于数据表(table)
中的结构,以取得最优的使用效果。此外,系统通常允许客户在服务器中插入新的信息。这
意味着你必须保证一个客户插入的新数据不会覆盖另一个客户插入的新数据,也不会在将其
添加到数据库的过程中丢失(这被称为事务处理(transaction processing))。如果客户端软件
发生变化,那么它必须被重新编译、调试并安装到客户端机器上,事实证明这比你想象中的
要更加复杂与费力。如果想支持多种不同类型的计算机和操作系统,问题将更麻烦。最后还
有一个最重要的性能问题:可能在任意时刻都有成百上千的客户向服务器发出请求,那么随
便多么小的延迟都会产生重大影响。为了将延迟最小化,程序员努力地减轻处理任务的负载,
通常是分散给客户端机器处理,但有时也会使用所谓“中间件(middleware)”将负载分散
给在服务器端的其它机器。(中间件也被用来提高可维护性(maintainability))


分发信息这个简单思想的复杂性实际上是有很多不同层次的,这使得整个问题可能看起来高
深莫测得让人绝望。但是它仍然至关重要:算起来客户/服务器计算技术大概占了所有程序
设计行为的一半,从制定订单、信用卡交易到包括股票市场、科学计算、政府、个人在内的
任意类型的数据分发。过去我们所作的,都是针对某个问题发明一个单独的解决方案,所以
每一次都要发明一个新的方案。这些方案难以开发并难以使用,而且用户对每一个方案都要

学习新的接口。因此,整个客户/服务器问题需要彻底地解决。


你可能感兴趣的:(客户/服务器计算技术)