去中心化,Internet、企业内部网、移动和无处不在的计算,这些都是典型的分布式系统。
资源共享是形成分布式系统的主要动力。
分布式操作系统的特点
1、具有干预互连的各处理机之间交互关系的责任。
2、分布式操作系统的控制结构是分布式的。分布式操作系统一般由内核和实用程序组成。内核主要负责处理各种中断、通信、调度实用程序。内核一般由基本部分和外加部分组成。外部部分主要用来控制外部设备。主要用于让系统管理员以它为基础建立操作系统其主要功能为进程通信、低级进程管理、低级存储管理、I/O管理等。
3、分布式操作系统按其逻辑功能可以分为全局操作系统和局部操作系统两部分。分布式操作系统把资源看成统一的整体来处理,系统基于单一策略来控制和管理,体现出各处理机的协调一致,整体地去分配任务及公共事务、特殊事务(意外处理、错误捕获),即把整体性分散于内核和管理程序之中,这一部分称为全局操作系统。独立于其他机器的管理功能,这一部分称为局部操作系统,它主要负责属于本机独立运行的基本管理功能以及其他机器的同步通信、消息发送的事务管理。
4、分布式操作系统的基本调度单位不是一般系统的进程,而是一种任务队列,即多个处理机上的并发进程的集合。多处理机系统以任务级并行为特征。任务队列的各进程或各个任务队列之间都有很复杂的内在联系。
5、分布式操作系统的组成情况与系统的耦合方式关系很大。系统资源耦合度高的,需要专门的各种软件/硬件机制来解决冲突和竞争等问题,在松耦合系统中,各处理机配有自己的本地资源,系统的重要问题是处理机间的同步与通信的管理。
6、借鉴了网络操作系统中的消息传送协议技术,具体采用什么协议则根据系统的互连模式而定。
分布式操作系统的构造方法
1、从头开始。不足之处在于其中所涉及的所有系统软件和应用软件几乎要全部修改。
2、修改、扩充现有的操作系统。对集中式操作系统进行修改和扩充,使其具有分布处理和通信功能。不足之处,开发期间的某些策略由于要考虑到如何与原操作系统相容而不得不采用折中方案。
3、层次式。在集中式操作系统和用户之间增加一个层次以提供分布处理和通信功能。类似于网络操作系统,不足之处在于所有对底层操作系统引用,由于必须经由中间层而使系统性能受到了影响。
分布式操作系统
分布式数据库系统特点:
1、数据独立性。除了数据的逻辑独立性与物理独立性外,还有数据分布独立性,分布透明性。
2、集中于自治共享结合的控制结构。个局部的DBMS可以独立管理局部数据库,具有自治的功能。同时,系统又设有集中控制机制,协调各局部DBMS的工作,执行全局应用。
3、适当增加数据冗余度:在不同的舱底存储同一数据的多个副本,这样可以提高系统的可靠性、可用性、同时也能提高系统性能。
4、全局的一致性、可串行性和可恢复性。
在集中式操作系统中,主要目标是减少对磁盘的访问次数。对分布式系统,压倒一切的性能目标是使用网络传送信息的次数和数据量最小。
分布式数据存储
数据分配和数据分片。数据分配是指数据在计算机网络个场地上的分配策略:
集中式,分割式,全复制式,混合式;在实际应用中,对上述分配策略,可以从4个方面进行评估,分别是存储代价、可靠性、检索代价、跟新代价。存储代价跟可靠性矛盾;检索代价跟跟新代价矛盾;
数据分片是指数据存放单位不是全部关系,而是关系的一个片段,也就是关系的一部分:
水平分片、垂直分片、混合型分片。
分布式数据库系统的架构
分布式DBS的架构分为四级,分别是全局外模式、全局概念模式、分片模式和分布模式
数据分布独立性也称为分布的透明性,是指用户不必关系 数据的逻辑分片、数据物理位置分配细节、各个场地数据库数据模型。分布透明性可以归入物理独立性的范围,包括3个层次,分别是分片透明性、位置透明性、局部数据模型透明性。
分布式数据库管理系统主要功能:
1、接受用户请求,并判定把它送到哪里,或必须访问哪些计算机才能满足该请求
2、访问网络数据字典,或者至少了解如何请求和使用其中的信息
3、目标数据存储在系统的多个计算机上,就必须进行分布式处理
4、通信接口功能,在用户、局部DBMS和其他计算机的DBMS之间进行协调。
5、各平台的兼容
分布式DBMS由4个部分组成:
1、LDBMS局部DBMS,建立和管理局部数据库,提供场地自治能力、执行局部应用及全局查询的子查询。
2、GDBMS全局DBMS,提供分布透明性,协调全局事务的执行,协调各LDBMS以完成全局应用,保证数据库的全局一致性,执行并发控制,实现跟新同步,提供全局恢复功能。
3、全局数据字典,存放全局概念模式、分片模式、分布模式的定义,以及各模式之间映像的定义;存放有关用户存取权限的定义,以保证全局用户的合法权限和数据库的安全性;存放数据完整性约束条件的定义,其功能与集中式数据库的数据字典类似。
4、通信管理,在分布式数据库个场地之间传递消息和数据,完成通信功能。
分布式系统设计的方式
难点在于其组件的异构性、开放性、安全性、可伸缩性、故障处理以及组件的并发性和透明性,可以有基于实例的协作和基于基于服务的协作。
在分布式系统中,倾向于使用大粒度的设计方式,往往在一个方法中包含许多参数,当需要修改参数时,需要对比较大范围的一段过程代码进行修改,而不是像小粒度设计那样,只需要修改少量代码。
基于Web的分布式系统设计
一般的Web应用程序大都采用三层B/S架构:
传统B/S架构的不足,数据对象的处理复杂,花费时间较长,一般都是长 事务处理。
1、普通的Web应用程序一般都运行在Web服务器上,Web服务器负载十分严重
2、由于HTTP协议不是面向连接的协议,而是无状态、无连接、以文档描述为基础和基于页面的协议,一次连接只能实现单项数据浏览,不能进行双向数据传输。
3、目前HTTP存在客户端在一次TCP连接中不能实现多次访问,只能进行一次访问。
4、基于HTML和ASP等脚本语言的页面文档浏览技术不能保存已经浏览过的页面,以及页面为基本元素的访问机制,这必然造成占有大量网络通信宽带和服务器处理时间。
5、不能完成用户和浏览器复杂的交互。所以传统的B/S架构的系统难以进行大规模事务处理以及大量的实时用户交互。
分布式对象技术
在浏览器的HTML页面或脚本页面中内嵌一些Java Applet或者ActiveX控件对象插件,这些插件对象能够完成一些复杂的事务,实现复杂的交互。通过一些特定的协议,如IIOP (Internet Inter-ORB Protocol互联网内部对象请求代理协议)、COM、RMI等,来访问事务服务器,事务服务器中 利用分布式对象技术开发的对象 远程调用这些对象的方法,由事务服务器完成请求动作。
云计算
软件即服务 SaaS;平台即服务 PaaS;基础设施即服务 IaaS
云计算的应用
1、云安全:通过网状的大量客户端对网络中软件行为的异常监控,获取互联网中木马、恶意程序的最新信息。推送到Server端进行自动分析处理,在把针对病毒和木马的解决方案发到每一个客户端。
2、云存储;3、云呼叫;4、云会议