(一)分布式系统-Introduction to Distributed Systems

1.Definition of a Distributed System

  • A distributed system is  A collection of autonomous computing elements that appears to its users as a single coherent system [TvS2017]
  • A distributed system is A system in which components located at networked computers communicate and coordinate their actions only by passing messages [CDKB2012]
  1. autonomous computing elementsNodes need to collaborate,time need for synchronisation,communicate Network support
  2. single coherent system:as a whole operates the same no matter where, when, and how interaction between a user and the system takes place

2.Examples of Distributed Systems

  • Examples of Distributed Systems
  • The World Wide Web
  • A cellular mobile phone network
  • The Cloud

Middleware:

the OS of Distributed Systems 中间件像是分布式系统的操作系统

是一类提供系统软件和应用软件之间连接、便于软件各部件之间的沟通的软件,应用软件可以借助中间件在不同的技术架构之间共享信息与资源

评判关键

1. 性质:中间件是软件。

2. 作用层级:系统软件和应用软件之间、软件各部件之间;管理客户机与系统软件之间的计算资源和网络通信。

3. 服务对象:中间件为应用软件服务,应用软件为最终用户服务,最终用户并不直接使用中间件。

3.Challenges for Distributed Systems

Want to Achieve:

1. Support Sharing of Resources: 

Cloud-based shared storage and files,File sharing Peer-to-Peer networks

2.透明性(Distribution transparency)

透明性被定义为对用户和应用程序程序员隐藏分布式系统中的组件分离,这样系统就被视为一个整体,而不是独立组件的集合。换句话说,分布式系统设计者必须尽可能地隐藏系统的复杂性。分布式系统透明度的一些术语是:

  • 访问透明性:固定统一的访问接口和方式,不因为分布式系统内部的变动而改变系统的访问方式。Hide differences in data representation and how an object is accessed
  • 位置透明性:外部访问者不需要知道分布式系统具体的地址,系统节点的变动也不会影响其功能。Hide where an object is located
  • 并发透明性:几个进程能并发的使用共享资源而不互相干扰。Hide that an object may be shared by several competitive users
  • 复制透明性:使用资源的多个实例提升可靠性和性能,而用户和程序员无需知道副本的相关信息。Hide that an object is replicated
  • 故障透明性:分布式系统内部部分节点的故障不影响系统的整体功能。Hide the failure and recovery of an object
  • 移动透明性:资源和客户能够在系统内移动而不受影响。Hide that an object may be moved to another location while in use
  • 性能透明性:负载变化时,系统能够被重新配置以提高性能。
  • 伸缩透明性:系统和应用能够进行扩展而不改变系统结构和应用算法。

3. 异构性(Heterogeneity)

因特网使用户能够在异构的计算机和网络集合上访问服务和运行应用程序。异质性(即多样性和差异性)适用于以下所有情况:

  • 硬件设备:电脑、平板电脑、移动电话、嵌入式设备等
  • 操作系统:Ms Windows, Linux, Mac, Unix等
  • 网络:局域网、因特网、无线网络、卫星链路等。
  • 编程语言:Java, C/ c++, Python, PHP等
  • 软件开发人员、设计人员、系统管理人员的不同角色

不同的编程语言对字符和数据结构(如数组和记录)使用不同的表示。如果要使用不同语言编写的程序能够相互通信,就必须解决这些差异。由不同的开发人员编写的程序不能相互通信,除非它们使用共同的标准,例如,用于网络通信和

消息中基本数据项和数据结构的表示。为了实现这一点,标准需要得到认可和采用——正如互联网协议一样。

中间件:术语中间件适用于软件层,该层提供了编程抽象,同时掩盖了底层网络、硬件、操作系统和编程语言的异构性。大多数中间件都是通过Internet协议实现的,Internet协议本身掩盖了底层网络的差异,但是所有中间件都处理操作系统和硬件的差异

4. 开放性(Openness)

计算机系统的开放性是决定该系统能否以各种方式扩展和重新实现的特征。分布式系统的开放性主要取决于新的资源共享服务能被增加和供多种客户程序使用的程度。如果发布了系统定义良好的接口,开发人员将来就更容易添加新特性或替换子系统。

5. 可伸缩性(Scalability)

可伸缩性有3个维度:

  • Size: number of users and/or processes. 大小需要处理的用户和资源数。相关的问题是重载
  • Geographically: maximum distance between nodes. 地理位置用户与资源之间的距离。相关的问题是通信的可靠性Synchronisation and Communication
  • –Administratively: number of administrative domains. 管理随着分布式系统规模的增加,许多系统需要被控制。相关的问题是管理混乱

Scaling Techniques:

  • Hiding Communication latencie
  • Distribution
  • Replication

Pitfalls 8个谬误:

  • 网络可靠。
  • 延迟为零。
  • 带宽是无限的。
  • 网络是安全的。
  • 拓扑不会改变。
  • 有一个管理员。
  • 运输成本为零。
  • 网络是同质的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值