信息服务器技术,11.11 客户-服务器信息处理技术(1)

11.11  客户-服务器信息处理技术(1)

在这种情况下,如数据库管理系统这样的程序被分割成两部分:工作站(或客户部分)和服务器部分。这就是为什么该环境被称为客户-服务器计算环境的原因。这样的分割方式在客户-服务器计算诞生之前就已经出现了--尤其是在IBM环境中,在此它们被分为数据通信(Data Communication,DC)和数据库(Database,DB)两部分。DC负责屏幕管理、用户界面以及向DB发送对期望数据的请求。一旦DB提供记录,DC还要负责对记录的进一步计算和处理工作,并将结果显示在屏幕上。这种情况下,DC软件(如CICS/VS、IMS/DC或IDMS/DC)以及DB软件(如VSAM、IMS/DB、IDMS/DB或DB2)通常会运行在一个中枢主机上。因此,这不能被称为客户-服务器计算环境。

在实际的客户-服务器环境中,这两部分通常在两个不同的机器上。DC部分运行在客户机上,而客户机通过如Visual Basic、Visual C++或PowerBuilder这样的编程开发语言向用户提供友好的图形用户界面。DB运行在服务器上。在当今的环境中,它可以是如ORACLE、SYBASE或SQL Server这样的数据库产品。因此,对应用程序而言,用户界面由客户机提供,数据库服务由服务器提供。这就是将任务进行分布式处理的方式。每个机器都可以完成自己最擅长的工作。

服务器(数据库)部分接收来自客户端(DC)的请求,然后定位期望的数据库记录,并将其发送给客户端。对该记录的处理工作在客户机器上进行。

因此,服务器不仅要负责维护数据库中的索引,还要使用这些索引执行搜索任务,以便对服务器上想要的记录进行定位和访问。它还要通过使用记录锁来负责处理对相同记录的并发请求。实际上,在将服务器上的DBMS当作用于数据检索的数据库时,它还要负责处理基于事务的恢复工作以确保数据库的完整性。例如,如果用户输入开货单,结果有三条不同的记录需要更新(例如客户、销售分析以及销售注册记录),为了保证数据库的完整性和一致性,这三条记录要么全部更新,要么都不更新。

为了确保原子性,数据库系统允许用户将这三个更新作为一个事务封装在一起,并确保可以使用回滚/前滚这样的特性进行基于事务的恢复。该特性维护更新前和更新后的副本,因此在出现故障的时候可以确保事务得到完全恢复。要点在于:事务(本例中也就是这三个更新工作)要么全部执行,要么根本不执行。在客户-服务器计算的情况下,由服务器上的软件完成该功能,在文件服务器的情况下则并非如此。这就是为什么客户-服务器计算中的服务器软件被称为数据库服务器的原因。

简而言之,服务器实现数据库功能,并处理来自客户机的请求。但这些请求应该采用什么样的格式(比如DML)呢?因为关系数据库非常普及,所以SQL的标准版本可以提供这样的标准。然而,数据库服务器的概念也可以用在非关系数据库或如Btrieve这样的文件管理系统中。是否要将处理工作分成两部分,以及服务器在该处理工作中所起的作用都是区分客户-服务器环境与纯基于客户的计算环境的因素。

因此,数据库服务器是一个智能数据库。它会处理高层数据请求,并且只给客户工作站返回所需的记录,然后客户工作站使用这些记录进行计算或显示/打印并由此得到进一步的结果。这会减少网络上不必要的负荷。因为数据库服务器可以接收来自多个客户的多个请求,所以需要一种机制对这些请求进行排队和设置优先级,以逐个响应这些请求。简而言之,数据库服务器也要是一个具有调度功能的多任务处理服务器。

做到这一点有两种方法。一种是如果在服务器上已经有多用户操作系统,就用它来调度多个请求。这种情况下,数据库服务器的前端程序接收来自用户的不同请求,而多用户操作系统会为每个请求生成一个进程。完成索引搜索之后就会进行该工作。因此从根本上讲,每个进程都会针对特定的记录按照数据库服务器的指示执行读/写操作。图11-26描述了这种情况。如果数据库服务器所在的操作系统只是一个如DOS这样的单用户操作系统,那么就不可能完成该工作。

6d59207d90471c54bd1a6445cd3f3ff2.png

(点击查看大图)图11-26  包含数据库服务器的多用户操作系统示例

在这个多用户操作系统中,客户端发送的数据库请求成为服务器上操作系统中的一个进程。操作系统将这些进程与任意其他进程一起调度。例如,当进程生成读取磁盘中的索引记录的I/O请求时,该进程被"阻塞",另一个索引已经被读取而且需要在内存中进行索引搜索的进程就要被派发,因为它已经"准备就绪"。

在读取想要的数据库记录后,前端负责将该记录传送给合适的客户。因此,如果需要,它会使用NOS的通信功能或自己的程序完成该工作。

该方法的缺点在于多进程体系结构使得如内存这样的系统资源利用率很低。在该方案中,上下文切换代价也很大。理由之一就是由于服务器操作系统中存在多个进程,因此系统中有结构很大的PCB链表。这就是为什么常使用一种类似于IBM 3090中MVS/XA上的CICS工作原理的方法(也就是单进程多线程方法)的原因,如图11-27所示。2df812cf59ff7b91cbb8881ba91dd011.png

(点击查看大图)图11-27  单进程、多线程

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了python应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值