精华内容
下载资源
问答
  • 2020-06-16 20:41:14

    谓词逻辑及形式系统 (语义)【中】

     

    一、概述

    一、什么是语义
    简单地说,所谓语义,不管是自然语言的语义还是形式语言的语义,基本上就是两个系统之间的映射关系。自然语言的语义,是语言符号和我们大脑中概念之间对应;而形式语言的语义,则是符号系统和某个学科的知识体系之间建立的对应关系,现在研究最多的是符号系统与数学结构之间的映射关系,以及符号系统与哲学体系之间的对应关系。如果要用一个统一的概念表达符号系统所对应的其它学科知识体系,那么这个概念就是【模型】。
    有了模型的概念,对什么是语义的定义就可以简明扼要地表示为:
    语义:符号系统 → 模型
    模型,在我们日常生活语言中,通常称作“语境”、“上下文”、“世界”、“背景”、“客观环境”等,但是这些表达通常意义模糊,无法准确、精确地把握模型的基本概念。

    模型的概念,在数学中,又称作结构,这是对任何数学分支、数学对象的一种统称。上世纪1930年代,法国的布尔巴基学派曾经企图用“结构”这个概念统一所有的数学分支。虽然没有获得学界完全的接纳,但相当一部分数学家是认可这样的定义的,而且就算不认可的数学家迄今为止也未曾提出过比“结构”更强有力的概念作为数学研究的统一概念。结构作为一个严格的数学概念,用不太严谨的语言表述就是:一个非空集合、以及在这个集合之上所定义的集合元素间的关系和对集合元素的操作。例如,自然数可以看做是一个结构,它是由所有非负整数构成的集合、

    更多相关内容
  • 瀑布模型、增量模型、螺旋模型(含原型方法)

    一、瀑布模型、增量模型、螺旋模型(含原型方法)

    瀑布模型

    瀑布模型的开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段。

    优点:
    1、为项目提供了按阶段划分的检查点。
    2、当前一阶段完成后,只需要去关注后续阶段。
    3、可在迭代模型中应用瀑布模型。
    4、提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
    缺点:
    1、各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
    2、由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
    3、通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
    4、瀑布模型的突出缺点是不适应用户需求的变化。

    增量模型

    增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交。
    优点:
    1、将待开发的软件系统模块化,可以分批次地提交软件产品,使用户可以及时了解软件项目的进展。
    2、以组件为单位进行开发降低了软件开发的风险。一个开发周期内的错误不会影响到整个软件系统。
    3、开发顺序灵活。开发人员可以对组件的实现顺序进行优先级排序,先完成需求稳定的核心组件。当组件的优先级发生变化时,还能及时地对实现顺序进行调整。
    缺点:
    1、增量模型对软件设计有更高的技术要求,特别是对软件体系结构,要求它具有很好的开放性与稳定性,能够顺利地实现构件的集成。
    2、在把每个新的构件集成到已建软件系统的结构中的时候,一般要求这个新增的构件应该尽量少地改变原来已建的软件结构。

    原型模型

    螺旋模型是一种演化软件开发过程模型,它兼顾了快速原型的迭代的特征以及瀑布模型的系统化与严格监控。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失。同时,在每个迭代阶段构建原型是螺旋模型用以减小风险的途径。
    优点:
    1、设计上的灵活性,可以在项目的各个阶段进行变更。
    2、以小的分段来构建大型系统,使成本计算变得简单容易。
    3、客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。
    4、随着项目推进,客户始终掌握项目的最新信息 , 从而他或她能够和管理层有效地交互。
    5、客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。
    缺点:
    很难让用户确信这种演化方法的结果是可以控制的。建设周期长,而软件技术发展比较快,所以经常出现软件开发完毕后,和当前的技术水平有了较大的差距,无法满足当前用户需求。

    二、统一过程三大特点

    (1)统一过程是用例驱动的

    用户(User) :软件系统是为了解决用户的需求的,因此对于一个系统必须首先确定它的用户(User),即参与者。这个User不仅仅指人,也可以是其他系统。即用户是与系统进行交互的事物。
    用例(User Case) :是用户对系统的业务需求,即用例是能够像用户提供有价值结果的系统中的一种功能。
    所有的用户和用例组合在一起就是用例模型,它描述了系统的全部功能。用例图促使我们从系统对用户的价值方面来考虑问题,是站在用户的角度出发,以人为本。并且用例图不仅能确定用户的需求,还可以驱动系统设计、实现和测试的进行,也就是说用例可以驱动开发过程。用例驱动表明开发过程是沿着一个流——一系列从用例得到的工作流前进的:用例被确定、用例被设计、最后用例又称为测试人员构造测试用例的基础

    (2)统一过程是以架构为中心的

    什么是软件架构?
    软件架构的作用与建筑架构所起的作用类似。软件系统的架构是从不同的角度描述即将构造的系统。

    注意:软件架构(software architecture),是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。软件架构是一个系统的草图。它描述的对象是直接构成系统的抽象组件,各个组件之间的连接明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,在面向对象领域中,组件之间的连接通常用接口来实现。
    软件架构包含了系统中最重要的静态和动态特征。架构刻画了系统的整体设计,去掉了细节部分,突出了系统的重要特性,然而“究竟什么是重要的”部分依赖于判断,而判断由来自于经验,所以架构的价值也就依赖于执行该任务的人的素质,在架构的过程中可以帮助架构师确定正确的目标。

    用例和架构之间是什么关系?
    每一种产品都具有功能和表现形式两个方面,其中功能与用例相对应,表现形式与架构相对应。因此用例在实现时必须适应于架构,然而随着系统的发展,用例也在不断的进化,所以架构必须设计得使系统能够进化,不仅要考虑系统的初始开发,而且要考虑将来的发展。为了能够找到这样的一种表现形式(架构),架构师必须从全面了解系统的主要功能(即主要用例)入手,这些主要的用例构成了系统的核心功能。

    架构应该遵循什么步骤?
    首先,从不是专门针对用例的那部分架构开始,如平台,创建一个粗略的架构轮廓。
    其次,着手处理已经确定重要的用例子集,这些用例代表着即将开发系统的主要功能,详细描述每一个用例,并通过子系统、类和构件来实现。随着用例的描述趋于完善,架构的更多部分便会显现出来,从而也使更多的用例趋于完善。
    最后,迭代这个工程直到确信得到一个稳定的架构为止。

    (3)统一过程是迭代和增量的过程

    软降开发是一项复杂的过程,因此可以将这些项目划分为切实可行并能够产生一个增量的迭代过程。

    什么是迭代和增量?
    迭代:工作流中的步骤;
    增量:产品中增加的部分。

    迭代的原则是什么?
    为了获得最佳的效果,迭代过程必须是受控的(Controlled),也就是说他们必须按照计划好的步骤有选择地执行。

    如何确定迭代过程中要实现的目标呢?
    首先迭代过程就是用来处理一组用例的,这些用例组合起来就能够扩展所开发产品的可用性。其次迭代过程要解决最突出的风险问题。只有这样后续的迭代过程才能建立在前一次迭代过程的基础上。

    迭代的过程是什么?
    以选定的架构为向导,用构件来实现设计前期已经标识并详细描述好的有关用例。如果一次迭代达到了目的,就可以进入下一次迭代,如果一次迭代没有带到预期的目标,那么必须重新审核前面的方法,并尝试一种新的方法。

    对增量的理解
    一个增量不一定是对原有制品的增加,在生命周期初始期,增量是对最初简单设计的完善和改进;而在以后的阶段增量通常是对原有制品的增加。

    与面向对象的关系

    统一过程是基于架构的,它采用新的可视化建模标准,即统一建模语言(UML),它依赖三个关键概念——用例驱动、以架构为中心及迭代和增量式的开发。而这些都建立在面向对象的基础之上。

    三、统一过程四个阶段

    每次迭代分为四个阶段:初始、细化、构造和移交。

    每次迭代都要经历一定的时间,这个迭代的时间又可以分为四个阶段:初始、细化、构造和移交。而在每个阶段,管理人员或开发人员又可以将本阶段的工作进一步划分为多次迭代过程以及每次迭代过程所产生的增量。每个阶段都以一个里程碑作为结束标记,并可以获得一组可用的制品来定义每个里程碑。
    初始阶段(inception phase)
    主要回答下列问题:

    • 系统向每个主要用户提供什么基本功能?(确定参与者和用例)
    • 该系统的基本粗略构架是什么?(包括主要子系统的大致轮廓)
    • 开发该产品的计划是什么?
    • 开销多大?(可行性分析)

    里程碑:这个阶段最主要的是确定项目的风险及其优先次序,并对细化阶段进行详细规划和对整个项目进行粗略计算。

    细化阶段(elaborattion phase)
    根据主要的用例描述设计出详细的系统构架。构架包括了用例模型、分析模型、设计模型、实现模型(包含一些构件)和实施模型的视图。

    里程碑:这个阶段主要是解决用例、构架和计划是否足够稳定可靠,风险释放得到充分控制,以便能够按照合同的规定完成整个开发任务。

    构造阶段(construction phase)
    在构建阶段,所有剩余的构件和应用程序功能被开发并集成为产品,所有的功能被详细测试。从某种意义上说,构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。

    里程碑:构造出最终产品。

    移交阶段(transition phase)
    包括产品进入beta版后的整个阶段。开发人员改正用户报告产品的缺陷和不足。

    里程碑:确定最终目标 是否实现,是否应该开始产品下一个版本的另一个开发周期。在一些情况下这个里程碑可能与下一个周期的初始阶段相重合。

    四、软件企业为什么能按固定节奏生产、固定周期发布软件产品?它给企业项目管理带来哪些好处?

    采用统一过程,将软件开发过程的每次迭代分为四个阶段:初始、细化、构造和移交,明确了不同阶段迭代的里程碑与目标;支持 CI/CD 的版本交付;为固定项目周期提供了可能。利用软件产品范围的弹性,合理规划范围(20%业务决定80%满意度),使得软件生产按 固定节奏 运行,固定迭代周期、固定开发周期、固定升级周期。

    给企业管理带来的好处

    • 每个迭代产品在增量(制品是可运行的),利于及时交付给客户使用并反馈,提高企业竞争力;
    • 固定的迭代周期(等量的人月),利于量化团队/个人生产率
    • 建立了简洁和清晰的过程结构,为开发过程提供较大的通用性
    展开全文
  • 数据流图和数据字典

    千次阅读 2019-09-22 16:17:24
    当数据在软件系统中移动时,它将被一系列**“变换”**所修改。 **数据流图(DFD)**是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。 在数据流图中没有任何具体的物理部件,它只是描绘...

    数据流图

    数据流图DFD(data flow diagram)

    当数据在软件系统中移动时,它将被一系列**“变换”**所修改。
    **数据流图(DFD)**是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。
    在数据流图中没有任何具体的物理部件,它只是描绘数据在软件中流动和被处理的逻辑过程。
    画数据流图一般步骤:
    1.考虑源点,终点
    2.考虑处理
    3.考虑数据流、数据储存
    4.考虑事物功能分解

    数据字典

    数据字典(data dictionary)

    数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。
    数据字典的作用是在软件分析和设计的过程中给人提供关于数据的描述信息。
    数据流图与数据字典的关系:
    数据字典和数据流图共同构成系统的逻辑模型,没有数据字典,数据流图就不严格,没有数据流图数据字典也难于发挥作用。只有数据流图和对数据流图中每个元素的精确定义放在一起,才能共同构成系统的规格说明。
    数据字典的组成
    1.数据流
    2.数据流分量(数据元素)
    3.数据存储
    4.处理
    数据字典的用途
    数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义有助于改进分析员和用户之间的通信,可消除许多可能的误解。
    数据字典中包含的每个数据元素的控制信息都很有价值。
    数据字典是开发数据库的第一步。

    展开全文
  • 分布式系统(2)系统模型

    千次阅读 2019-01-23 08:57:25
    一、系统模型引言 这篇文章描述系统模型。我们知道在上一篇博客当中主要介绍了分布式系统的概念、前景和挑战。这篇文章主要介绍系统模型。什么是系统模型呢?系统模型也就是分布式系统是如何设计的、整体的架构是...

    一、系统模型引言

    这篇文章描述系统模型。我们知道在上一篇博客当中主要介绍了分布式系统的概念、前景和挑战。这篇文章主要介绍系统模型。什么是系统模型呢?系统模型也就是分布式系统是如何设计的、整体的架构是什么?在这里从三个方面来介绍,物理模型、体系结构模型、基础模型。下面先看一下这三个模型的介绍以便在下面详细介绍时有更加深刻的认识。

    1. 物理模型:考虑分布式系统中计算机是如何互联的,以及这些设备的类型,不考虑特定的技术细节(也就是从硬件方面来看如何组成分布式系统的)
    2. 体系结构模型:他是从系统的计算元素执行的计算和通信任务来描述分布式系统的。这里的计算元素指的是网络上互联的计算机集合。C-S模型和对等模型是最常见的体系结构模型。
    3. 基础模型:采用了抽象的观点描述了分布式系统中单个问题的解决方案,他通过三个模型来讨论
    • 交互模型:处理分布式系统中的性能问题和设置时间约束的困难(在系统元素之间通信的结构与顺序)
    • 故障模型:他定义了可靠地通信和正确的进程(考虑分布式系统正确操作的方式)
    • 安全模型:讨论对进程和通信通道的各种可能的危险(考虑不被干扰或者是不被窃取数据)

    二、物理模型

    1、基线物理模型

    在上一篇博客当中我们介绍了分布式系统的概念,被定义为位于联网计算机上的硬件或者是软件组织通过消息传递进行通信和协调的系统。这引出了分布式系统中的最小的物理模型,也就是可以扩展的计算机节点,这些节点通过网络进行消息传递。

    2、三代分布式系统

    由基线物理模型,引出下面三代分布式系统。

    1. 早期的分布式系统:这样的系统在70年代中期到80年代早期,随着局域网的出现而出现,这时候一般由10到100各节点组成,他们与互联网链接有限只支持少量的服务,比如本地打印机还有电子邮件等等。此时的系统是同构的,开放性不是主要的问题。
    2. 互联网规模的分布式系统:实在90年代早期开始出现,此时底层的物理础设施是如下图所示的。这些节点是可扩展的,通过互联网连接。在这样的系统中,其异构性其异构性是非常突出的, 这使得开放标准和中间件技术的不断增加。在这样的全球化系统中采用了额外的服务来提供端到端的服务质量特性。
    3. 当代的分布式系统:在上面的系统中通常是台式机,因此是相对静态的、分立的(没有嵌入到其他物理实体内)、自治的。第一、但是当前笔记本电脑和智能手机这样的节点可以从一个位置移动到另外一个位置,第二、并且无处不在计算的出现导致了体系结构从分立节点型开始转变,开始转变到计算机被切入到日常物品和周围环境当中(比如智能家居)。第三、云计算的出现导致了之前是一个自治节点完成一个任务,现在是一柱节点完成一个任务。这些原因最终导致了异构性得到很大增加的物理体系结构。

    系统的系统:超大规模的分布式系统,其子系统也是一个系统,他们一起完成一个或者是多个任务。举一个例子考虑一个洪水预测的环境管理系统,传感器收集洪水状态的系统与预测洪水可能性的系统耦合在一起为民众提供早期的洪水报警。

    最后对这三代系统做出一个总结:

    三、体系结构模型

    一个系统的体系结构是这样一种结构,用独立的组件以及这些组件之间的关系来表示的结构。整体的目标是满足现在和将来可能的需求。主要关系的是系统的可靠性、可管理性、适应性和性价比。比如说设计一个建筑物,不仅要决定它的外观,还决定其总体结构和体系结构风格(哥特式、现代是),并设计一个参考框架。

    1、体系结构元素

    为了理解一个分布式系统的基础构建块,现在考虑下面四个问题:

    • 分布式系统中通信的实体是什么
    • 分布式系统如何通信?使用什么通讯范型?
    • 这些实体在整个系统中扮演什么角色?承担什么责任?
    • 他们被放置到哪里?

    下面来一个一个看这些问题:

    第一:通信实体

    通常情况下,通信的实体被认为是进程,这导致普遍的认为分布式系统其实就是,带有恰当进程间通信范型的多个进程。但是在一些情况下不是这样的,比如说在传感器网络当中,操作系统中可能不支持进程抽象,这时候系统通信的实体是节点。还有一些系统中,使用线程而不是进程,所以严格的来讲,通信的末端是线程。我们已经抽象出了进程和线程的概念,然而从编程的观点来看,这还不够,更多问题的抽象已经被提出:

    • 对象:在分布式面向对象的方法中,一个计算由若干相互交互的对象组成,并通过结构访问这些对象。
    • 组件:组件类似于对象,也是通过结构访问,关键的区别在于组件不仅给出接口,而且给出其他组件/接口的假设。他为系统提供了一个更加完成的合约。类似于Android中的组件,当然这里只是类比其实完全不一样,在这里姑且这样理解。我们通过接口使用Android中的组件,并且可以通过这些组件开发其他组件(自定义View的实现)。
    • web服务:web服务与对象和组件紧密相关,也是采用基于行为封装和通过接口访问的方法。W3C联盟把web服务定义成如下的概念:

    第二:通信范型

    在上面已经看到分布式系统中通信的实体很多,有进程、线程、对象、组件等等。在这里开始讨论这些实体如何进行通信。

    我们考虑三种通信范型:

    1. 进程间通信
    2. 远程调用
    3. 间接通信

    (1)进程间通信

    进程间通信指的是用于分布式系统之间通信的相对底层的支持,包括消息传递原语、直接访问由互联网协议提供的API和对多播的支持.以后再详细介绍。

    (2)远程调用

           远程调用时分布式系统中最常见的通信范型,覆盖一系列分布式系统中通信实体之间基于双向交换的技术。请求应答协议是一个有效地模式,他加在一个底层消息传递服务之上,用于支持客户-服务器计算。比如请求一个网页,第一个消息包含在服务器端执行操作的编码,第二个消息包含操作的结果。这种范型相对原始。

          远程过程调用(RPC)的出现是一个突破,在RPC中,远程计算机上的进程能够被调用,好像在本地调用一样。就好像在QQ里面的远程控制一样,我们可以控制别人的电脑,此时我们的电脑(服务器)通过一个服务接口提供一套操作,当这些操作在本地可用时候,我们可以直接调用这些操作(在别人电脑上操作)。因此RPC系统提供访问和位置透明性。

          远程方法调用(RMI)类似于远程过程调用,用这种方法,一个对象可以调用远程对象中的方法。与RPC一样,底层的细节都对用户隐藏。我对此的理解就好比WebService。

          上面这些方法都有一个共同点:通信代表了发送者和接受者之间的双向关系,在大多数情况之下,双方必须同时存在。相比之下,开始出现一些新的技术,这些技术支持间接通信。他们通过第三个实体之间进行通信,实现了发送者与接受者之间的解耦合。

    (3)间接通信

    为什么要使用间接通信呢?先看一下下面这两个问题:

    • 发送者不需要知道他们发给谁
    • 发送者和接受者不需要同时存在

    这时候发送者和接受者如何进行通信呢?就是刚刚提到的使用第三个实体进行通信。下面是一些实现的技术。

    1. 组通信:组通信指的是消息传递给若干接受者,是一对多的通信。一个组在系统中用一个组标识符来表示,接受者通过加入这个组,有选择性的接收到组内的消息。此时发送者只需要通过组标识符发送消息,而不需要知道消息的接受者。
    2. 发布-订阅系统:类似于报纸系统,报社发报纸,用户订报纸。ROS的发布-订阅系统和这个原理是一样的。
    3. 消息队列:消息队列提供了一种点到点的服务,其中生产者进程发送消息到一个指定的队列,消费者从队列中接收消息,因此,队列是生产者和消费者进程之间的中介。
    4. 元组空间:进程能把任意的结构化数据项(元祖)放到一个持久的元祖空间,其他进程可以指定感兴趣的模式,从而可以在元组空间读或者是删除元组。因为元组空间是持久的,因此不需读写操作同时存在。这也被称之为生成通信。
    5. 分布式共享内存(DSM):它提供了一种抽象,用于支持在不共享物理内存的进程之间共享数据,程序员在使用这些数据时候,就好像这些数据在本地一样。

    现在总结一下到目前为止说的体系结构:

    第三:承担的角色与责任

    在这里我们考察两种起源于单个进程角色的体系结构风格:客户-服务器风格和对等风格。

    (1)客户-服务器风格

    这是分布式系统中最常用的体系结构,下面给出一个简单的结构,其中进程扮演服务器和客户的角色。

    如图所示,一台服务器也可以是其他服务器的客户。比如web服务器和大多数其他互联网服务是DNS服务的客户,DNS服务用于将互联网域名翻译成网络地址。

    (2)对等体系结构

    在这种体系结构中,设计意向任务或者是活动的所有进程都扮演这相同的角色,作为对等关系进行交互,没有客户与服务器的关系。使用这种体系结构是因为客户-服务器模型虽然为数据和其他资源提供了一个直接和相对简单的方法,但是他的伸缩性比较差,比如我们把一个服务放在同一个地址,此时意味着集中化的管理这个服务,当我们集中的去使用这个服务时候,就会出现问题。因为我们的电脑提供服务的能力和这个计算机所在的网络连接的带宽是有限的。他的伸缩性会受限。

    针对这个问题,就促使了对等系统的发展,这是因为在对等系统中,一个用户使用一个服务时,自己的计算机所拥有的网络和计算资源也能被投入使用,以支持哪个服务。这会产生一个非常好的效果,当我们的用户数量增加时候,此时可用于运行的服务也会随之增加。

    第四:实体被放置在哪?

    这是最后一个要考虑的问题,也就是对象、组件、进程这样的实体是怎么映射到底层的物理设施之上的。物理分布式基础设施由大量的机器组成,这些机器通过一个任意复杂的网络互联。放置是一个很重要的操作,因为它会影响分布式系统的性能、安全等特性。我们主要关注下面的这些放置策略:

    • 将服务映射到多个服务器
    • 缓存
    • 移动代码
    • 移动代理

    (1)将服务映射到多个服务器

    意思是服务器将服务所基于的对象集分区,然后将这些分区分布到各个服务器上,或者是服务器可以在几个主机上维护复制的对象集。这两种选择可以用下面例子说明

    web是一个常见的将数据分区的例子。一个基于复制数据的服务是Sun网络信息服务。

    (2)缓存

    它类似于我们手机中的缓存,缓存用于存储最近使用的数据对象,当服务器接受一个新对象时候,就将他存入缓存,必要的时候会替换掉那些对象。比如我们的浏览器,当我们访问一个界面时候,浏览器会在本地的文件系统中寻找是否含有我们访问的那个界面,如果有就直接拿出来使用。web代理服务器为一个或者是多个地点的客户机提供共享的存放web资源的缓存。代理服务器的目的是通过减少广域网和web服务器的负载,提供服务的可用性和性能。

    (3)移动代码

    applet是一个广泛使用的移动代码的例子,也就是运行浏览器的用户选择了一个到applet的链接,applet的代码存储在web服务器上将applet的代码下载到浏览器并在浏览器端运行。

    (4)移动代理

    移动代理可以通过安装和维护一个组织内部的计算机软件,或者是通过访问每个销售商的站点并执行一些列数据库操作,来比较多个销售商的产品价格。和移动代码一样,移动代理对所访问的计算机上的资源而言是一个潜在的安全威胁,另外移动代理自身是脆弱的,如果他们访问所需要信息的要求被拒绝时候,那么他们可能完成不了任务。

    2、体系结构模式

    在上述的体系结构元素中都是单个的,而这里的体系结构模式是组合重复出现的结构。在本节中给出几个关键的体系结构模型,包括分层体系结构、层次化体系结构、瘦客户。

    (1)分层

    在分层方法中,一个系统被分成若干层,每一层利用下一层提供的服务。因此,一个给定的层提供了一个软件抽象,更高层次的层不清楚其下面的层的实现细节。他只使用下层提供的服务。

    举一个例子,在互联网上基于网络时间协议可以实现一个网络时间服务,意思是服务器在互联网的主机上,给请求的用户提供当前的时间。下面是其分层的体系结构。

    在这里提到了两个概念:平台和中间件,下面看看其概念

    平台:

    中间件

    中间件表示成计算机上的集成或者是对象,这些进程或者是对象相互交互,实现分布式系统应用的通信和资源共享支持。特别的,他提供多个协作的计算机上的分布,放置和检索、共享数据对象的复制以及多媒体数据的实时传送,提升应用程序通信活动的层次。其实就是把一些底层抽象,来提供两个计算机的通信。

    (2)层次化体系结构

    分层将服务垂直组织成抽象层,而层次化是一项组织给顶层功能的技术。他把这个功能放在合适的服务器上,或者作为第二选择放在物理节点上。我们先看二层和三层体系的结构概念:

    • 表示逻辑:设计用户交互和修改呈献给用户的应用试图。
    • 应用逻辑:涉及与应用相关的详细的应用特定处理。
    • 数据逻辑:涉及应用的持久性存储,通常放在一个数据库管理系统中。

    下图分别给出了两层和三层体系结构给出的解决方案:

    二层和三层的对比
     二层三层
    优点

    1、具有交互的低延迟

    2、仅有调节信息的消息交换

    1、提高软件的可维护性
    缺点1、将应用逻辑分离到不同的进程,带来的后果是一部分应用逻辑不能被另一部分直接调用

    1、增加了管理三个服务器的复杂性

    2、增加了与每个操作相关的网络流量和延迟

    下面举一个例子来说明分层体系结构的好处:

    以维基百科为例,它采用了多层体系结构(大于三层)来处理大量的web请求(每秒高达60000页)。我们知道浏览器发送了一个请求web网页的http请求,用户不能与该页面进行交互,一直到新的HTML内容被浏览器收到并呈现,这个时间间隔是不固定的,因为他受限于网络以及服务器延迟。此时便有了ajax。ajax能够有效地处理这种问题,他能局部的更新整个页面,就像我们浏览器中的时钟一样,我们的时间在一秒一秒的更新(更新时间需要请求服务器),此时我们的浏览器依然可以做其他事情。

    专业一点的术语是:AJAX提供一套通信机制,使运行在一个浏览器中的前端组件能够发送请求,并从运行在服务器上后端的组件接受结果。

    比如我们的地图,当地图被移动时候,浏览器中的Javascript代码重定位可见的图片,需要填充可见区域的额外的图片,可以通过AJAX调用Google服务器去获得。图片一旦收到就会被展示,但浏览器在等待的时候可以继续应答用户的交互。

    (3)瘦客户

    术语瘦客户指的是一个软件层,在执行一个应用程序或者访问远程计算机上的服务时候,由该软件层提供一个基于窗口的本地用户界面。他减少了用户的硬件要求,各种复杂的服务,通过云来解决。它的缺点是,因为各种复杂的服务都是通过云来解决,此时会有网络延时。

    比如,QQ的远程桌面控制。

    (4)其他经常出现的模式

    1. 代理:支持远程过程调用或者是远程方法调用的位置透明性
    2. web服务中的业务代理:在一个可能很复杂的分布式基础设施中支持互操作性的体系结构模式。
    3. 反射

    3、相关的中间件解决方案

    先看中间件的分类

    四:基础模型

    在上述完全不同的系统模型中,都有一个共同点,也就是所有的进程都由若干进程组成,这些进程通过在计算机网络上发送消息而相互通信,但是所有的模型都没有达到下列需求:实现进城以及网络的性能和可靠性特征,确保系统中资源的安全性。

    因此,我们希望在我们的基本模型中提取的分布式系统情况能解决下列问题

    • 交互:计算在进程中发生,进程通过传递消息交互,并引发进程之间的通信和协调。交互模型必须反映通信带来的延迟,这些延迟的持续时间会比较长。并且,交互模型必须反映独立进程相互配合的准确性受限于这些延迟,受限于在分布式系统中很难跨所有计算机维护同一时间概念。
    • 故障:只要分布式系统出现故障,我们的模型将对这些故障进行定义和分类。
    • 安全:分布式系统暴露在外部代理和内部代理的攻击之下。我们的安全模型对这些攻击进行定义和分类。

    1、交互模型

    首先看影响进程交互的两个条件:

    • 通信性能经常是一个限制特性
    • 不可能维护一个全局时间概念

    2、故障模型

    3、安全模型

    展开全文
  • SIM逻辑模型与APDU

    千次阅读 2017-03-29 20:32:46
    下表是上图SIM逻辑结构模型对应的有效的文件选择路径: 保留文件ID 以下文件ID作为GSM中的保留项: 专有文件DF: administrative use(授权者使用): '7F 4X' ; operational use(操作使用): '...
  • 是数据在系统内传播的路径,由一组固定的数据项组成。除了与数据存储之间的数据流不用命名外,数据流应该用名词或名词短语命名。 b.数据源点和终点 统称为外部实体,指系统外部环境中的实体(包括人员、组织或其他...
  •  逻辑数据模型LDM是数据仓库的数据建设阶段为解决业务需求而定义的数据仓库模型解决方案,它是指导数据仓库进行数据存放、数据组织、以及如何支持应用的蓝图(blue print),定义需要追踪和管理的各种重要实体、属性...
  • 1.1系统开发目的 (1) 大大提高汽车管理的运作效率; (2) 通过全面的信息采集和处理,辅助提高汽车管理的决策水平;...数据流图和数据字典共同构成系统逻辑模型。汽车销售管理系统的数据流图得到数据字典如下:
  • 由于逻辑回归模型简单,可解释强,易实现,广泛应用于机器学习、深度学习、推荐系统、广告预估、智能营销、金融风控、社会学、生物学、经济学等领域。现在看来,LR依然是推荐系统、广告预估的三大基础模型之一。如果...
  • 1. 前言 随着信息技术和互联网的发展, 我们已经步入了一个信息过载的时代,这个时代,无论是信息消费者还是信息生产者都遇到了很大... 推荐系统近几年有了深度学习的助推发展之势迅猛, 从前深度学习的传统推荐模型(协
  • 系统模型和仿真

    千次阅读 2014-10-20 22:05:16
    为了了解现实世界的系统或设想的未来系统随着时间变化的行为,先开发一个模型,等模型通过有效性验证后,以该模型来代替该系统,就可以用于解答现实世界系统各种各样的“如果······就会······”的问题了...
  • 推荐系统详解(五)模型融合

    千次阅读 2020-05-07 20:51:17
    经典模型融合办法:线性模型和树模型的组合拳 推荐系统在技术实现上一般划分为三个阶段:挖掘、召回、排序。 为什么要融合? 挖掘的工作就是对用户和物品做非常深入的结构化分析,庖丁解牛一样,各个角度各个层面...
  • 逻辑结构设计---步骤三4.1 E-R 模型向关系模式的转换4.2 关系模式的优化4.3 设计用户子模式5.物理结构设计---步骤四5.1 确定数据库的物理结构5.2 物理结构进行评价6.数据库实施---步骤五7.数据库运行维护---步骤六 ...
  • 作者:崔广章来源:大数据DT(ID:hzdashuju)01 边缘计算系统逻辑架构简介由图3-1可知,逻辑架构侧重边缘计算系统云、边、端各部分之间的交互和协同,包括云、边协同,边、端协同和云、边、端协同3个部分。...
  • 典型的企业级应用通常可以分为三个大类,即支撑企业核心业务的应用系统(如生产制造业的MES、交通运输业的TMS)、涵盖企业全流程的大规模综合型系统和基于行业软件定制开发的个性化模块。这些企业级应用支撑着企业的...
  • 数据库原理——图书馆管理系统

    千次阅读 2022-04-06 10:49:31
    数据库原理课程设计——C++实现图书馆管理系统
  • 软件工程的十大模型

    千次阅读 2021-06-11 12:40:05
    1.软件生命周期模型 软件生命周期由软件定义、软件开发与运维(也称软件维护)3个时期组成,每个时期又进一步划分成若干个阶段。 问题定义:“要解决的问题是什么?”通过对客户的访问调查,系统分析员扼要地写出...
  • 系统可靠性分析与设计

    千次阅读 2022-04-23 22:34:46
    可靠性分析与设计的重要内容是建立可靠性模型,以及可靠性指标的预计与分配。在系统分析与设计过程中,系统分析师及相关人员要反复地进行可靠性预计和分配,并不断深化,以选择合适的方案,预测系统可靠性水平,找出...
  • 3.一个去中心化的数据中心操作系统模型 3.1定义和概念 3.2要求 3.2.1效率要求 3.2.2安全要求 3.2.3其他要求 3.3分布式对象 3.4资源命名 3.5资源管理 3.6永久存储 3.7并发访问 3.8总结 前言 本文是Malte...
  • 系统设计(还需要输入1个字)

    千次阅读 2022-03-26 22:27:52
    系统设计阶段又称为物理设计阶段,任务是根据系统规格说明书中规定的功能要求,考虑实际条件,具体设计实现逻辑模型的技术方案,即设计新系统的物理模型。相对地,系统分析确定系统的基本目标和逻辑模型,因此又称为...
  • 消息通知系统模型设计

    千次阅读 2019-02-21 00:42:29
    本篇主要明确消息通知系统的概念和具体实现,包括数据库设计、技术方案、逻辑关系分析等。消息通知系统是一个比较复杂的系统,这里主要分析站内消息如何设计和实现。 我们常见的消息推送渠道有以下几种: 设备推送 ...
  • 用户参与原则,由使用部门的业务人员、主管人员和设计部门的系统分析员、系统设计员共同进行 2.2管理业务调查 管理业务调查分为: (1)组织结构调查 (2)管理功能调查 (3)管理业务流程调查 2.2.1管理业务流程图 ...
  • 第二章:可行性研究 1.1研究方案的可行性 (1)技术可行性 (2)操作可行性 (3)经济可行性 1.2系统流程图 系统流程图表达的是系统各部件间的流动情况,不是对信息...数据流图和数据字典共同构成系统逻辑模型 ...
  • 《地理信息系统概论》课后习题全部答案_黄杏元

    千次阅读 多人点赞 2020-08-14 18:11:56
    答:地理信息系统:是由计算机硬件、软件和不同的方法组成系统,该系统设计支持空间数据的采集、管理、处理、分析、建模和显示,以便解决复杂的规划和管理问题。 GIS脱胎于地图学,是计算机科学、地理学、测绘...
  • 深入浅出推荐系统(一):推荐系统基本架构 提纲 过去八九年在广告、生活服务、电商等领域从事大数据及推荐系统相关工作,近来打算对过去的工作做一个系统性的梳理。一方面帮自己查缺补漏、进行更深入的学习;另一...
  • 智慧城市系列之智能交通系统(ITS)

    万次阅读 2020-09-14 09:44:42
    ITS的基本功能模块包括:先进的出行者信息系统(ATIS),先进的交通管理系统(ATMS),先进的公共交通系统(APTS),先进的车辆控制系统(AVCS),以及商用车运营管理系统、先进的乡村运输系统、自动公路系统等。...
  • 演示机型:华为MateBook X系统版本:win10完整的计算机系统组成分为硬件系统和软件系统两大部分,硬件系统包括运算器、控制器、存储器、输入设备、输出设备五大部分;软件系统则包括系统软件(计算机操作系统)以及...
  • 第五节 结构化分析模型

    千次阅读 2020-04-26 09:57:42
    1.数据流图(Data Flow Diagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图.....
  • 系统分析师之路】第九章 软件工程(上)
  • 开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,305
精华内容 29,722
关键字:

共同构成系统的逻辑模型