区块链系统分层和架构分析

论坛 期权论坛 期权     
巧讲堂   2020-1-4 10:58   1320   0



前面我们说了什么是区块链,即区块链术语,还有区块链所有的特性,在这里我们不妨说说区块链有些什么功能。这就像我们拿到一件新的东西,首先我们知道了它是什么,然后肯定想知道它能做什么,最后就会去了解它的使用方法,就是怎样才能让它做什么。对,这就是区块链使用说明书。







1 一个比喻
如今几乎每个人手里都有手机,不管是老式的2G手机还是最新款的IOS或安卓智能手机,它就像贴身衣物一样必不可少,而手机里几乎都有一款或者多款社交软件——微信,QQ亦或者陌陌等。那么您对这些社交软件如何运作了解多少?您对作为网络通信基础的电磁波了解多少?嗯,我们大多数人都不知道这些细节,也没有人会因为我们使用这些社交软件而去了解它的原理,我们大多数人也没有时间去了解它们。通常情况下我们在心里把社交软件分成我们需要知道的部分(例如如何使用以及特别功能)和可以忽略或想当然的部分(就是我们看不到由软件工程师们控制的部分)。
这种知其然不知其所以然的现象并不局限于社交软件。在我们的生活中当我们学习如何使用一台新电视机、一台电脑、一台洗衣机时,我们也一直在忽略它的运作原理。因为每个人对事物的理解都有各自的心理分区,而这些心理分区还是高度独立的,每个分区把什么被认为重要,什么不重要隔离开来,这些重要与不重要又取决于我们个人的偏好、特定的技术、以及我们的目标和经验。因此,对于一款社交软件,您对它的心理分区可能与我对同它的心理分区不同。这通常会导致沟通上的问题,尤其是当我试图向您推荐您不太了解的社交软件的时候。因此,这时候统一系统的划分方式便成了教学和讨论技术的关键。
在这里我们明确了一个事物在我们心里的分区或者说分层,也就更好地让我们有了了解区块链通信的心理准备。




2 软件系统的层次
本书采用了以下两种划分系统的方法:


应用与实现
.功能性vs.非功能性


3 应用程序与实现
将用户的需求从系统的技术内部分离出来会导致应用层和实现层的分离。属于应用层的一切都与用户的需求有关(例如,听音乐、拍照或预订酒店房间)。所有属于实现层的事情都与实现这些事情有关(例如,将数字信息转换为声音信号,识别数码相机中像素的颜色,或通过Internet向预订系统发送消息)。实现层的元素本质上是技术性的,并且被认为是达到目的的一种手段。
简单的说应用层就是您住酒店,您要的是一间能睡觉能洗澡和做其他私人事情的房间,而实现层就是酒店工作人员为您提供您所需要的这些东西,其过程您是看不到。


4 功能性方面与非功能性方面
区分一个系统做了什么,以及它做得怎样会导致功能和非功能方面的分离。功能方面的例子包括通过网络发送数据、播放音乐、拍照和操作图片的单个像素。非功能性方面的例子包括漂亮的图形用户界面、快速运行的软件以及保持用户数据私有和保存的能力。系统的其他重要的非功能方面是安全性和完整性。完整性意味着系统按照预期方式运行的规则,它涉及许多方面,比如安全性和正确性,不知道您是否还记得上学的时候英语老师给您说的语法知识,在这里有一个很好的方法可以记住系统功能和非功能方面的区别:动词描述动作或做了什么,而副词描述动作是如何做的。例如,一个人可以走得快或慢。在这两种情况下,“行走”的动作是相同的,但是执行的方式不同,即快慢。根据经验,我们可以说功能方面类似于动词,而非功能方面类似于副词。




5 同时考虑两层
对于一个软件系统化,我们可以同时识别功能和非功能方面以及分离应用程序层和实现层,从而得到一个二维表。表3-1展示了以这种方式在脑海中分层移动电话或者社交软件的结果。





            



表1




表1 我们可以向用户解释系统中特定元素用户所见的程度(或不可见的程度)。应用程序层的功能方面是系统中最明显的元素,因为它们服务于用户的明显需求。这些元素通常是用户所了解的。另一方面,实现层的非功能方面很少被视为系统的主要元素。它们通常被认为是“理所当然”的。也就是前面,我们说的在使用社交软件时,只会在意它有什么功能怎么用这些功能,而不会去想要了解它是怎样运作的,除非出现BUG导致社交软件不能正常运作,也就是系统失去了完整性,人们才会注意到他们认为“理所当然”的部分,但是一般用户也无能为力,只能抱怨几句。




6 完整性
完整性是任何软件系统的一个重要的非功能性方面。它有三个主要部分:
数据完整性:系统使用和维护的数据完整、正确、无矛盾。
行为完整性:系统行为符合预期设计,没有逻辑错误。
安全性:系统只对授权用户访问有限的数据和使用功能。
我们大多数人可能认为软件系统的完整性是理所当然的,因为大多数时候我们幸运地与保持其完整性的系统交互还有就是大多数人觉得自己付了钱就该得到完整的服务。殊不知软件系统的完整性因为程序员和软件工程师在系统开发上投入了大量的时间和精力来实现和维护完整性。因此,当我们欣赏软件工程师所做的工作来创建保持高水平完整性的系统时,我们可能有点被宠坏了。但一旦我们与一个无法做到这一点的系统互动,我们就会感觉到失落和失望。这种情况下,您将面临数据丢失、不合逻辑的软件行为,或者意识到陌生人能够访问您的私有数据。当您的手机APP、电脑、电子邮件、文字处理软件或电子表格计算器让您生气时,您就会忘记自己的礼貌。在这些情况下,我们开始意识到软件完整性是一种非常有价值的商品。因此,软件专业人员花费大量时间在实现层的这个看起来很小的非功能性方面,这并不奇怪。


这就是区块链的分层和架构系统。
长按二维码关注







分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:160
帖子:3
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP