精华内容
下载资源
问答
  • 软件体系结构表示系统的框架结构,用于从较高的层次上来描述各部分之间的关系和接口,主要包括构件、构件性质和构件之间的关系。 通过使用软件体系结构,可以有效地分析用户需求,方便系统的修改,以及减小程序构造...

    一、概述

    软件体系结构表示系统的框架结构,用于从较高的层次上来描述各部分之间的关系和接口,主要包括构件构件性质构件之间的关系

    通过使用软件体系结构,可以有效地分析用户需求,方便系统的修改,以及减小程序构造风险。

    随着软件规模不断地增大和复杂程度日益增高,系统框架架构的设计变得越来越关键。软件框架设计的核心问题是能否复用已经成型的体系结构方案。由此,产生了软件体系结构风格的概念。

    二、常见风格分类

    体系结构风格的形成是多年探索研究和工程实践的结果。一个良好和通用的体系结构风格往往是工程技术领域成熟的标志。经过多年的发展,已经总结出许多成熟的软件体系结构风格,例如:

    1. 数据流风格:批处理和管道/过滤器。
    2. 调用/返回风格:主程序/子程序、层次结构和C/S。
    3. 面向对象风格。
    4. 独立部件风格:进程通信和事件驱动。
    5. 虚拟机风格:解释器和基于规则的系统。
    6. 数据共享风格:数据库系统和黑板系统。

    三、 体系结构风格

    1.管道/过滤器 体系结构风格

    惯用模式:

    主要包括过滤器和管道两种元素。在这种结构中,构件被称为过滤器,负责对数据进行加工处理。每个过滤器都有一组输入端口和输出端口,从输入端口接收数据,经过内部加工处理之后,传送到输出端口上。数据通过相邻过滤器之间的连接件进行传输,连接件可以看作输入数据流和输出数据流之间的通路,这就是管道。

    原理图:

     

    优点:

    1. 简单性。
    2. 支持复用。
    3. 系统具有可扩展性和可进化型。
    4. 系统并发性(每个过滤器可以独立运行,不同子任务可以并行执行,提高效率)。
    5. 便于系统分析。

    缺点:

    1. 系统处理工程是批处理方式。
    2. 不适合用来设计交互式应用系统。
    3. 由于没有通用的数据传输标准,因此每个过滤器都需要解析输入数据和合成数据。
    4. 难以进行错误处理。

     

    传统的编译器就是管道/过滤器体系结构风格的一个实例。编译器由词法分析、语法分析、语义分析、中间代码生成、中间代码优化和目标代码生成几个模块组成,一个模块的输出是另一个模块的输入。源程序经过各个模块的独立处理之后,最终将产生目标程序。编译器的框架结构如图:

    2.面向对象 体系结构风格

    惯用模式:

    在面向对象体系结构中,软件工程的模块化、信息隐藏、抽象和重用原则得到了充分的体现。在这种体系结构中,数据表示和相关原语操作都被封装在抽象数据类型中。在这种风格中,对象是构件,也成为抽象数据类型的实例。对象与对象之间,通过函数调用和过程调用来进行交互。

    原理图:

    优点:

    1. 一个对象对外隐藏了自己的详细信息
    2. 对象将数据和操作封装在一起
    3. 继承和封装方法为对象服用提供了技术支持

    缺点:

    1. 如果一个对象要调用另一个对象,则必须知道它的标识和名称
    2. 会产生连锁反应

    3.事件驱动 体系结构风格

    惯用模式:

    事件驱动就是在当前系统的基础之上,根据事件声明和发展状况来驱动整个应用程序运行。

    事件驱动体系结构的基本思想是:系统对外部的行为表现可以通过它对事件的处理来实现。在这种体系结构中,构件不再直接调用过程,而是声明事件。系统其他构件的过程可以在这些事件中进行注册。当触发一个事件的时候,系统会自动调用这个事件中注册的所有过程。因此,触发一个事件会引起其他构件的过程调用。

    原理图:

    优点:

    1. 事件声明者不需要知道哪些构件会响应事
    2. 提高了软件复用能力
    3. 便于系统升级

    缺点:

    1. 构件放弃了对计算的控制权,完全由系统来决定
    2. 存在数据·传输问题

    4.分层 体系结构风格

    惯用模式:

    在分层风格中,系统将划分为一个层次结构。

    每一层都具有高度的内聚性,包含抽象程度一致的各种构件,支持信息隐藏。

    分层有助于将复杂系统划分为独立的模块,从而简化程序的设计和实现。

    通过分解,可以将系统功能划分为一些具有明确定义的层,较高层是面对特定问题,较低层具有一般性。

    每层都为上层提供服务,同时又利用了下层的逻辑功能。在分层体系结构中,每一层只对相邻层可见。层次之间的连接件是协议和过程调用。用以实现各层之间的交互。

     

    原理图:

    优点:

    1. 设计者可以将系统分解为一个增量的步骤序列从而完成复杂的业务逻辑。
    2. 每一层之多和相邻的上下两层进行交互。
    3. 只要给相邻层提供相同的接口。

    缺点:

    1. 并非所有系统都能够按照层次来进行划分。
    2. 很难找到一种合适和正确的层次划分方法。
    3. 在传输数据是,需要经过多个层次。
    4. 多层结构难以调试。

    5.C2 体系结构风格

    惯用模式:

    C2结构是一个层次网络,包括构件和连接件两种软件元素。构件和连接键都是包含顶部和底部的软件元素。构件和构件之间只能通过连接件进行连接,而连接件之间则可以直接进行连接。构件的顶部、底部分别与连接件的底部、顶部连接,连接件的顶部、底部也分别与连接件的底部、顶部连接。

    在C2体系结构中,构件之间的所有通信必须使用消息传递机制来实现。构件之间所有传递的信息可以分为两种,一种是向上层构件发出服务请求的请求消息另一种是向下层构件发出指示状态变化的通知消息。连接件负责消息的过滤、路由、广播、通信和相关处理。

    原理图:

    优点:

    1. 可以使用任何编程语言来开发构件,构件重用和替换比较容易实现
    2. 具有一定的扩展能力,可以有多种不同粒度的构件
    3. 构件不需要共享地址空间,避免了共享全局变量所造成的复杂关系
    4. 具有良好的适应性
    5. 在C2体系结构中,可以使用多个工具集和多种媒体类型,能够动态地更新系统的框架结构

    缺点:

    1. 构件和构件之间不允许直接相连
    2. 与某一个连接件相关联的构件和连接件的数目没有限制

    6.数据共享 体系结构风格

    定义:

    数据共享风格也成为仓库风格。

    在这种风格中,有两种不同类型的软件元素:一种是中央数据单元,也成为资源库,用于表示系统的当前状态;另一种是相互依赖的构件组,这些构件可以对中央数据单元实施操作。中央数据单元和构件之间可以进行信息交换,这是数据共享体系结构的技术实现基础。

    根据所使用的控制策略不同,数据共享体系结构可以分为两种类型,一种是传统的数据库,另一种是黑板

    如果由输入流中的事件来驱动系统进行信息处理,把执行结构存储到中央数据单元,则这个系统就是数据库应用系统。

    如果由中央数据单元的当前状态来驱动系统运行,则这个系统就是黑板应用系统。

    黑板是数据共享体系结构的一个特例,用以解决状态冲突并处理可能存在的不确定性知识源

    黑板常用于信号处理,如语音和模式识别,同时在自然语言处理领域中也有广泛的应用,如机器翻译和句法分析。

     

    原理图:

    一个典型的黑板系统主要包括知识源、中央控制单元、控制单元。

    优点:

    1. 便于多客户共享大量数据,而不必关心数据是何时产生的、由谁提供的及通过何种途径来提供
    2. 便于将构件作为知识源添加到系统中来

    缺点:

    1. 对共享数据结构,不同知识源要达成一致
    2. 需要同步机制和加锁机制来保证数据的完整性和一致性,增大了系统设计的复杂度

    7.解释器 体系结构风格

    惯用模式:

    解释器作为一种体系结构,主要用于构建虚拟机,用以弥合程序语义和计算机硬件之间的间隙。实际上,解释器是利用软件来创建的一种虚拟机,因此,解释器风格又被称为虚拟机风格

    原理图:

    优点:

    1. 能够提高应用程序的抑制能力和变成语言的跨平台移植能力。
    2. 实际测试工作可能费城复杂,测试代价极其昂贵,具有一定的风险性。

    缺点:

    1. 由于使用了特定了语言和自定义操作规则,因此增加了系统运行的开销。
    2. 解释器系统难以设计和测试。

    8.反馈控制环 体系结构风格

    定义:

    反馈控制环是一种特定的数据流结构。传统数据流结构是线性的,而控制连续循环过程的体系结构应该是环形的。

    反馈控制环系统主要包括以下三个部分:

    1. 过程,指操纵过程变量的相关机制。
    2. 数据元素,指连续更新的过程变量,包括输入变量、控制变量、操纵变量和相关参考值。
    3. 控制器,通过控制规则来修正变量,收集过程的实际状态和目标状态,调节变量以驱动实际状态朝目标状态前进。

     

    原理图:

    优点:

    1. 过程控制是连续的,可以利用各种构件和相关规则来设计反馈控制环系统,实现各种功能。
    2. 反馈控制环结构能够处理复杂的自适应问题,机器学习就是一个例子。

    缺点:

    9.C/S 体系结构风格

    惯用模式:

    ……

    原理图:

    优点:

    1. 客户机构件和服务器构件分别运行在不同的计算机上,有利于分布式数据的组织和处理。
    2. 构件之间的位置是相互透明的,客户机程序和服务器程序都不必考虑对方的实际存储位置。
    3. 客户机侧重数据的显示和分析,服务器则注重数据的管理。
    4. 构件之间是彼此独立和充分隔离的。
    5. 将大规模的业务逻辑分布到多个通过网络连接的低成本的计算机,降低了系统的整体开销。

    缺点:

    1. 开发成本较高。
    2. 在开发C/S结构系统时,大部分工作都都集中在客户机程序的设计上,增加了设计的复杂度。
    3. 信息内容和形式单一。
    4. 如果对C/S体系结构的系统进行升级,开发人员需要到现场来更新客户机程序,同时需要对运行环境进行重新配置,增加了维护费用。
    5. 两层C/S结构采用了单一的服务器,同时以局域网为中心,因此难以扩展到Intranet和Internet。
    6. 数据安全性不高。

    10.B/S 体系结构风格

    惯用模式:

    B/S结构是三层C/S体系结构的一种实现方式,主要包括浏览器,Web服务器和数据库服务器。B/S结构主要利用不断成熟的WWW技术,结合浏览器的多脚本语言,采用通用浏览器来实现原来需要复杂的专用软件才能实现的强大功能,节约了开发成本。

    B/S体系结构的核心是Web服务器,可以将应用程序以网页的形式存放在Web服务器上。

    当用户运行某个应用程序时,只需要在可以断的浏览器中输入响应的 URL,向 Web 服务器提出 HTTP 请求。

    当Web 服务器接收 HTTP 请求之后,会调用相关的应用程序(Servlets),同时向数据库服务器发送数据操作请求。

    数据库服务器对数据操作请求进行响应,将结果返回给Web服务器的应用程序。

    Web服务器应用程序执行业务处理逻辑,利用 HTML 来封装操作结果,通过浏览器呈现给用户。在B/S结构中,数据请求、王爷生成、数据库访问和应用程序执行全部由Web 服务器来完成。

    原理图:

    优点:

    1. 客户端只需要安装浏览器,操作简单。
    2. 运用HTTP标准协议和统一客户端软件,能够实现跨平台通信。
    3. 开发成本比较低,只需要维护Web服务器程序和中心数据库。

    缺点:

    1. 个性化程度比较低,所有客户端程序的功能都是一样的。
    2. 客户端数据处理能力比较差。
    3. 在B/S结构的系统中,数据提交一般以页面为单位,动态交互性不强,不利于在线事务处理。
    4. B/S体系结构的可扩展性比较差,系统安全性难以保障。
    5. B/S结构的应用系统查询中心数据库,其速度要远低于C/S体系结构。

    11.公共对象请求代理(CORBA)体系结构风格

    惯用模式:

    公共对象请求代理(Common Object Request Broker Architecture,CORBA)是由对象管理组织(Object Management Group,OMG)提出来的,是一套完整的对象技术规范,其核心包括标准语言、接口和协议。

    在异构分布式环境下,可以利用CORBA来实现应用程序之间的交互操作,同时,CORBA也提供了独立于开发平台的编程语言的对象重用方法。

     

    原理图:

    优点:

    1. 实现了客户端程序与服务器程序的分析。
    2. 将分布式计算模式与面向对象技术结合起来,提高了软件复用率。
    3. 提供了软件总线机制,软件总线是指一组定义的完整的接口规范。
    4. CORBA能够支持不同的编程语言和操作系统,在更大的范围内,开发人员能够相互利用已有的开发成果。

    缺点:

    12.正交 体系结构风格

    惯用模式:

    正交体系结构是一种以 垂直线索构件族 为基础的层次化结构,包括组织层线索

    在每一个组织层中,都包含具有相同抽象级别的构件。

    线索是子系统的实例,是由完成不同层次功能的构件通过相互调用而形成的,每一条线索完成系统的一部分相对独立的功能。

    在正交体系结构中,每条线索的实现与其他线索的实现无关或关联很少。在同一层次中,构件之间不存在相互调用关系。

    原理图:

    优点:

    1. 结构清晰。
    2. 便于修改和维护。
    3. 易于重用。

    缺点:

    13.MVC 体系结构风格

    惯用模式:

    模型-视图-控制器(Model-View-Controller,MVC)是一种常见的体系结构风格。MVC被广泛应用与用户交互程序的设计中。

    原理图:

    优点:

    1. 多个视图与一个模型相对应
    2. 具有良好的移植性。
    3. 系统被分割为三个独立的部分,当功能发生变化时,改变其中的一个部分就能够满足要求。

    缺点:

    1. 增加了系统设计和运行复杂性。
    2. 视图与控制器连接过于紧密,妨碍两者的独立复用。
    3. 视图访问模型的效率比较低。
    展开全文
  • 嵌入式X86和ARM优缺点对比

    千次阅读 2019-04-04 16:41:28
    嵌入式X86和ARM优缺点对比  X86架构是使用复杂指令集CISC,X86 CISC是一种为了便于编程和提高记忆体访问效率的芯片设计体系,包括两大主要特点:一是使用微代码,指令集可以直接在微代码记忆体里执行;二是拥有庞大...

      嵌入式X86和ARM优缺点对比

      X86架构是使用复杂指令集CISC,X86 CISC是一种为了便于编程和提高记忆体访问效率的芯片设计体系,包括两大主要特点:一是使用微代码,指令集可以直接在微代码记忆体里执行;二是拥有庞大的指令集,拥有包括双运算元格式、寄存器到寄存器、寄存器到记忆体以及记忆体到寄存器的多种指令类型。X86架构的优势是能够有效缩短新指令的微代码设计时间,允许实现CISC体系机器的向上兼容,新的系统可以使用一个包含早期系统的指令集合。另外微程式指令的格式与高阶语言相匹配,因而编译器并不一定要重新编写。

    ARM工控主板基于NXP_LS1012A

      ARM架构相较复杂指令集CISC而言,以RISC为架构体系的ARM指令集的指令格式统一、种类少、寻址方式少,简单的指令意味着相应硬件线路可以尽量做到最佳化,从而提高执行速率。ARM架构的优势是体积小、低功耗、低成本、高性能,支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件,大量使用寄存器,并且大多数数据操作都在寄存器中完成,指令执行速度更快,寻址方式灵活简单,执行效率高,指令长度固定,可以通过多流水线方式提高处理效率

      X86架构缺点:X86指令集只有8个通用寄存器,这就意味着CPU大部分时间在访问存储器内的数据,将影响整个系统的执行速度;解码分为硬件解码和微解码,对于简单的x86指令只要硬件解码即可,速度较快,而遇到复杂的x86指令则需要进行微解码,并把它分成若干条简单指令,速度较慢且很复杂;X86指令集的寻址范围小,大大约束了用户的需求;X86 CISC相对来说结构复杂,很难将CISC全部硬件集成在一颗芯片上。

      ARM缺点是:在性能上接近X86,频率就要比X86处理器高,这就会造成高能耗。

    展开全文
  • 分布式存储与传统存储对比优缺点

    千次阅读 2020-07-24 16:55:45
    典型的SAN应当属于关系型数据库,数据以块数据为主,所谓结构化数据;而NAS以文件数据为主,可以认为是非结构化数据。期间,也有所谓融合存储或者统一存储,用单一阵列兼顾SAN和NAS应用,所谓SAN+NAS。 实际上,...

    传统的存储以EMC,HDS,NetApp为代表,产品方案以SAN和NAS应用为主。典型的SAN应当属于关系型数据库,数据以块数据为主,所谓结构化数据;而NAS以文件数据为主,可以认为是非结构化数据。期间,也有所谓融合存储或者统一存储,用单一阵列兼顾SAN和NAS应用,所谓SAN+NAS。

    实际上,传统阵列存储也在向软硬件分离方向发展,也是一种软件定义的存储方式,在新的方式下,统一的存储不再需要额外的添加NAS机头,用软件方式来实现。

    分布式存储方面,以对象存储、软件定义存储、云存储、超融合、ServerSAN......为主,以x86本地存储为核心,构建统一资源池共享存储。

     

    传统SAN存储一般采用双控制器架构,两者互为备份,配置两台交换机与前端的服务器进行连接,这种双控制器架构方式有以下两方面的缺点:

    1. 网络带宽容易变成整个存储性能的瓶颈;

    2. 如果一个控制器损坏,系统的性能将大幅下降,影响存储的正常使用。

    传统存储架构的局限性主要体现在:

    1. 横向扩展性差

    受限于前端控制器的对外服务能力,纵向扩展磁盘数量无法有效提升存储设备对外提供服务的能力。同时,前端控制器横向扩展能力非常有限,业界最多仅仅实现几个控制器的横向。

    2. 不同厂商之间差异带来的管理问题

    不同厂商设备的管理和使用方式不同,由于软硬件紧耦合,管理接口不统一等限制因素无法做到资源的统一管理和弹性调度,也会带来存储利用率较低的现象。因此不同存储的存在影响了存储使用的便利性和利用率。

    分布式存储往往在用分布式系统结构,利用多台存储服务器分担负荷,利用位置服务器定位存储信息。它不但提高了系统的可靠性、可用性和存取效率,还易扩展,将通用硬件引入的不稳定因素降低,有点如下:

    1. 高性能

    支持自动的分级存储,能够高效地管理读缓存和写缓存。分布式存储通过将热点区域内数据映射到高速存储中,来提高系统响应速度;一旦这些区域不再是热点,那么存储系统会将它们移出高速存储。而写缓存技术则可使配合高速存储来明显改变整体存储的性能,按照一定的策略,先将数据写入高速存储,再在适当的时间进行同步落盘。

    2. 支持分级存储

    由于通过网络进行松耦合链接,分布式存储允许高速存储和低速存储分开部署,或者任意比例混布。在不可预测的业务环境或者敏捷应用情况下,分层存储的优势可以发挥到***。解决了目前缓存分层存储***的问题是当性能池读不***后,从冷池提取数据的粒度太大,导致延迟高,从而给造成整体的性能的抖动的问题。

    3. 多副本的一致性

    与传统的存储架构使用RAID模式来保证数据的可靠性不同,分布式存储采用了多副本备份机制。在存储数据之前,分布式存储对数据进行了分片,分片后的数据按照一定的规则保存在集群节点上。为了保证多个数据副本之间的一致性,分布式存储通常采用的是一个副本写入,多个副本读取的强一致性技术,使用镜像、条带、分布式校验等方式满足租户对于可靠性不同的需求。在读取数据失败的时候,系统可以通过从其他副本读取数据,重新写入该副本进行恢复,从而保证副本的总数固定;当数据长时间处于不一致状态时,系统会自动数据重建恢复,同时租户可设定数据恢复的带宽规则,最小化对业务的影响。

    4. 容灾与备份

    在分布式存储的容灾中,一个重要的手段就是多时间点快照技术,使得用户生产系统能够实现一定时间间隔下的各版本数据的保存。特别值得一提的是,多时间点快照技术支持同时提取多个时间点样本同时恢复,这对于很多逻辑错误的灾难定位十分有用,如果用户有多台服务器或虚拟机可以用作系统恢复,通过比照和分析,可以快速找到哪个时间点才是需要回复的时间点,降低了故障定位的难度,缩短了定位时间。这个功能还非常有利于进行故障重现,从而进行分析和研究,避免灾难在未来再次发生。多副本技术,数据条带化放置,多时间点快照和周期增量复制等技术为分布式存储的高可靠性提供了保障。

    5. 弹性扩展

    得益于合理的分布式架构,分布式存储可预估并且弹性扩展计算、存储容量和性能。分布式存储的水平扩展有以下几个特性:

    1) 节点扩展后,旧数据会自动迁移到新节点,实现负载均衡,避免单点过热的情况出现;

    2) 水平扩展只需要将新节点和原有集群连接到同一网络,整个过程不会对业务造成影响;

    3) 当节点被添加到集群,集群系统的整体容量和性能也随之线性扩展,此后新节点的资源就会被管理平台接管,被用于分配或者回收。

    6. 存储系统标准化

    随着分布式存储的发展,存储行业的标准化进程也不断推进,分布式存储优先采用行业标准接口(SMI-S或OpenStack Cinder)进行存储接入。在平台层面,通过将异构存储资源进行抽象化,将传统的存储设备级的操作封装成面向存储资源的操作,从而简化异构存储基础架构的操作,以实现存储资源的集中管理,并能够自动执行创建、变更、回收等整个存储生命周期流程。基于异构存储整合的功能,用户可以实现跨不同品牌、介质地实现容灾,如用中低端阵列为高端阵列容灾,用不同磁盘阵列为闪存阵列容灾等等,从侧面降低了存储采购和管理成本。

    分布式存储与传统的SAN、NAS相比,优势如下:

    1、性能: 在分布式存储达到一定规模是,性能会超过传统的SAN、NAS。大量磁盘和节点,结合适当的数据分布策略,可以达到非常高的聚合带宽。传统的SAN、NAS都会有性能瓶颈,一旦达到***扩展能力,性能不会改变甚至降低。

    2、价格: 传统的SAN、NAS,价格比较高。特别是SAN网络设备,光纤网络成本比较高。而且,以后扩展还需要增加扩展柜。成本太高。分布式存储只需要IP网络,几台X86服务器加内置硬盘就可以组建起来,初期成本比较低。扩展也非常方便,加服务器就行。

    3、可持续性: 传统的SAN、NAS扩展能力受限,一个机头最多可以带几百个磁盘。如果想要个PB以上的共享存储,分布式存储只***的选择。不用担心扩展能力问题。

    缺点:

    1、需要比较强的技术能力和运维能力,甚至有开发能力的用户。传统存储开箱即用,硬件由厂家提供,也有完善的文档和服务。而分布式很多是开源或者是有公司基于开源系统提供支持服务,版本迭代比较快,出问题后有可能需要自己解决。

    2、数据一致性问题。对于ORACLE RAC这一类对数据一致性要求比较高的应用场景,分布式存储的性能可能就稍弱了,因为分布式的结构,数据同步是一个大问题,虽然现在技术一致在进步,但是也不如传统存储设备数据存储方式可靠。

    3、稳定性问题,分布式存储非常依赖网络环境和带宽,如果网络发生抖动或者故障,都可能会影响分布式存储系统运行。例如,一旦发生IP冲突,那么整体分布式存储可能都无法访问。传统存储一般使用专用SAN或IP网络,稳定性方面,更可靠一些。

    超融合架构迅速发展的原因是其具有显著的优势,能够带来极高 的客户价值。超融合架构实现了计算、存储、网络等资源的统一管理 和调度,具有更弹性的横向扩展能力,可以为数据中心带来***的效 率、灵活性、规模、成本和数据保护。使用计算存储超融合的一体化 平台,替代了传统的服务器加集中式存储的架构,使得整个架构更清 晰简单,极大简化了复杂 IT 系统的设计。

    展开全文
  • 各种编程软件的优缺点对比

    千次阅读 2008-10-10 09:47:00
    方案一 Basic语言 & Visual Basic 优点 (1)Basic 简单易学,很容易上手。 (2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序... 缺点 (1)Visual Basic 不是真正的面向对象的开发文具。
    方案一 Basic语言 & Visual Basic 
    

    优点
    (1)Basic 简单易学,很容易上手。
    (2)Visual Basic 提供了强大的可视化编程能力,可以让你轻松地做出漂亮的程序。
    (3)众多的控件让编程变得象垒积木一样简单。
    (4)Visual Basic 的全部汉化让我们这些见了English就头大的人喜不自禁。

    缺点
    (1)Visual Basic 不是真正的面向对象的开发文具。
    (2)Visual Basic 的数据类型太少,而且不支持指针,这使得它的表达能力很有限。
    (3)Visual Basic 不是真正的编译型语言,它产生的最终代码不是可执行的,是一种伪代码。它需要一个动态链接库去解释执行,这使得Visual Basic 的编译速度大大变慢。

    综述:方案一适合初涉编程的朋友,它对学习者的要求不高,几乎每个人都可以在一个比较短的时间里学会vB编程,并用VB 做出自己的作品。对于那些把编程当做游戏的朋友来说,VB 是您最佳的选择。

    Basic/Visual Basic简介
    ==============================================
    方案二 Pascal语言 & Delphi

    优点
    (1)Pascal语言结构严谨,可以很好地培养一个人的编程思想。
    (2)Delphi是一门真正的面向对象的开发工具,并且是完全的可视化。
    (3)Delphi使用了真编译,可以让你的代码编译成为可执行的文件,而且编译速度非常快。
    (4)Delphi具有强大的数据库开发能力,可以让你轻松地开发数据库。

    缺点
    Delphi几乎可以说是完美的,只是Pascal语言的过于严谨让人感觉有点烦。

    综述: 方案二比较适合那些具有一定编程基础并且学过Pascal语言的朋友。

    Pascal语言简介
    Delphi简介
    ==============================================
    方案三 C语言 & Visual C++

    优点
    (1)C语言灵活性好,效率高,可以接触到软件开发比较底层的东西。
    (2)微软的MFC库博大精深,学会它可以让随心所欲地进行编程。
    (3)VC是微软制作的产品,与操作系统的结合更加紧密。

    缺点
    对使用者的要求比较高,既要具备丰富的C语言编程经验,又要具有一定的WINDOWS编程基础,它的过于专业使得一般的编程爱好者学习起来会有不小的困难。

    综述: VC是程序员用的东西。如果你是一个永不满足的人,而且可以在编程上投入很大的精力和时间,那么学习VC你一定不会后悔的。


    ==============================================
    方案四 C++语言 & C++ Builder

    优点
    (1)C++语言的优点全部得以继承。
    (2)完全的可是化。
    (3)极强的兼容性,支持OWL、VCL和MFC三大类库。
    (4)编译速度非常快。

    缺点
    由于推出的时间太短,关于它的各种资料还不太多。

    综述:我认为C++ Builder 是最好的编程工具。它既保持了C++语言编程的优点,又做到了完全的可视化。


    ==============================================
    方案五 SQL语言 & Power Builder

    对于一些传统的数据开发人员来说,Foxpro系列也许让他们感到更加熟悉。但是对于初学者来说,PowerBuilder也许是最好的数据库开发工具。各种各样的控件,功能强大的PowerBuilder语言都会帮助你开发出自己的数据库应用程序。

    [NextPage]
    JSP简介

    在Sun正式发布JSP(Java Server Pages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照 Sun 的说法,JSP能够适应市场上包括Apache WebServer 、IIS4.0在内的85%的服务器产品。

    JSP与ASP的简单比较

    JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。

    ASP的编程语言是VBScript之类的脚本语言,JSP使用的是Java,这是两者最明显的区别。

    此外,ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在ASP下,VBScript代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。

    运行环境

    执行 JSP 代码需要在服务器上安装 JSP 引擎。此处我们使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。为便于学习,这个软件包提供了大量可供修改的示例。安装 JSWDK 之后,只需执行 startserver 命令即可启动服务器。在默认配置下服务器在端口 8080 监听,使用 http://localhost:8080 即可打开缺省页面。

    在运行 JSP 示例页面之前,请注意一下安装 JSWDK 的目录,特别是" work "子目录下的内容。执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet )。 JSWDK 软件包中的示例页面分为两类,它们或者是 JSP 文件,或者是包含一个表单的 HTML 文件,这些表单均由 JSP 代码处理。与 ASP 一样, JSP 中的 Java 代码均在服务器端执行。因此,在浏览器中使用"查看源文件"菜单是无法看到 JSP 源代码的,只能看到结果 HTML 代码。所有示例的源代码均通过一个单独的" examples "页面提供。

    Java Servlet是一种开发Web应用的理想构架。 JSP以Servlet技术为基础,又在许多方面作了改进。JSP页面看起来象普通HTML页面,但它允许嵌入执行代码,在这一点上,它和ASP技术非常相似。利用跨平台运行的JavaBean 组件,JSP为分离处理逻辑与显示样式提供了卓越的解决方案。JSP必将成为ASP技术的有力竞争者。

    [NextPage]
    SQL语言简介

    SQL全称是“结构化查询语言(Structured Query Language)”,最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle ,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。

    Structured Query Language包含4个部分:

    数据查询语言DQL-Data Query Language SELECT
    数据操纵语言DQL-Data Manipulation Language INSERT, UPDATE, DELETE
    数据定义语言DQL-Data Definition Language CREATE, ALTER, DROP
    数据控制语言DQL-Data Control Language COMMIT WORK, ROLLBACK WORK

    SQL的优点

    SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益非浅。

    (1) 非过程化语言

    SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL 语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。 SQL不要求用户指定对数据的存放方法。 这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。

    (2) 统一的语言

    SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、 应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL 命令只需很少时间就能学会,最高级的命令在几天内便可掌握。 SQL为许多任务提供了命令,包括:

    ● 查询数据
    ● 在表中插入、修改和删除记录
    ● 建立、修改和删除数据对象
    ● 控制对数据和数据对象的存取
    ● 保证数据库一致性和完整性

    以前的数据库管理系统为上述各类操作提供单独的语言,而SQL 将全部任务统一在一种语言中。

    (3) 是所有关系数据库的公共语言

    由于所有主要的关系数据库管理系统都支持SQL语言,用户可将使用SQL的技能从一个RDBMS转到另一个。所有用SQL编写的程序都是可以移植的。


    [NextPage]
    Java语言简介

    一. Java的由来

    当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?

    Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。

    在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。

    二. Java的定义

    Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。

    Java的开发环境有不同的版本,如sun公司的Java Developers Kit, 简称 JDK。后来微软公司推出了支持Java规范的Microsoft Visual J++ Java开发环境,简称 VJ++。

    三. Java的特点

    1. 平台无关性

    平台无关性是指Java能运行于不同的平台。Java引进虚拟机 原理,并运行于虚拟机,实现不同平台的Java接口之间。使 用Java编写的程序能在世界范围内共享。Java的数据类型与 机器无关,Java虚拟机(Java Virtual Machine)是建立在 硬件和操作系统之上,实现Java二进制代码的解释执行功能, 提供于不同平台的接口的。

    2. 安全性

    Java的编程类似C++,学习过C++的读者将很快掌握Java的精 髓。Java舍弃了C++的指针对存储器地址的直接操作,程序 运行时,内存由操作系统分配,这样可以避免病毒通过指 针侵入系统。Java对程序提供了安全管理器,防止程序的 非法访问。

    3. 面向对象

    Java 吸取了C++面向对象的概念,将数据封装于类中,利用类 的优点,实现了程序的简洁性和便于维护性。类的封装性、 继承性等有关对象的特性,使程序代码只需一次编译,然后 通过上述特性反复利用。程序员只需把主要精力用在类和接 口的设计和应用上。Java 提供了众多的一般对象的类,通 过继承即可使用父类的方法。在 Java 中,类的继承关系是单一的非多重的,一个子类 只有一个父类,子类的父类又有一个父类。Java 提供的 Object 类及其子类的继承关系如同一棵倒立的树形,根类 为 Object 类, Object 类功能强大,经常会使用到它及其 它派生的子类。

    4. 分布式

    Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。

    5. 键壮性

    Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大提高了开发Java应用程序的周期。Java提供: Null指针检测、 数组边界检测、 异常出口、 Byte code校验。



    [NextPage]
    PowerBuilder简介

    PowerBuilder的产生

    PowerBuilder是美国著名的数据库应用开发工具生产厂商PowerSoft推出的成功产品,其第一版于1991年6月正式投入市场。它是完全按照客户/服务器体系结构研制设计的,采用面向对象技术,图形化的应用开发环境,是数据库的前端开发工具。

    PowerBuilder的特点

    它支持应用系统同时访问多种数据库,其中既包括Oracel,Sybase之类的大型数据库,又包括FOXPRO之类支持ODBC接口的小型数据库,PowerBuilder是完全可视化的数据库开发工具,它提供了大量的控件,大大加快了项目的开发速度,也使开发者更容易掌握数据库的开发。

    它使用的编程语言叫做工PowerScripr,它也是一种高级的,结构化的编程语言。PowerScript提供了一套完整的嵌入式SQL语句,开发人员可以像使用其它语句一样自由地使用SQL语言,这样就大大增强了程序操纵和访问数据库的能力。可以说PowerBuilder既适合初学者快速学习数据库的开发,又可以让有经验的开发人员开发出功能强大的数据库,是一种适用面非常广的开发工具。

    PowerBuilder是一个用来进行客户/服务器开发的完全的可视化开发环境。使用PowerBuilder,你可以用一种可视的直观的方式来创建应用程序的用户界面和数据库接口。这是一个总的概念,实际上是开发人员使用PowerBuilder去开发应用程序,由于所开发的各种应用程序充分利用了图形用户接口(GUI)的优点,所以PowerBuilder被认为是一个图形工具。

    在客户/服务器结构的应用中,PowerBuilder具有描述多个数据库连接与检索的能力。特别是PowerBuilder能从大多数流行的RDBMS中存取数据,且不管数据存放在什麽地方;另外,各种应用程序又可以独立于RDBMS,因为PowerBuilder可以使用数据库的标准操作语言SQL(结构化查询语言)进行。

    使用PowerBuilder,可以很容易地开发出功能强大的图形界面的访问服务器数据库的应用程序,PowerBuilder提供了建立符合工业标准的应用程序(例如订单登记、会计及制造系统)所需的所有工具。

    PowerBuilder应用程序由窗口组成,这些窗口包含用户与之交互的控件。开发人员可以使用所有标准空间(如按钮、复选框、下拉式列表框或编辑框)以及PowerBuilder提供的特殊的使应用程序更易于开发和使用的控件。

    通常人们把PowerBuilder看成是一种开发工具,实际上它比其他工具强得多,是一种强有力的开发环境。开发人员不仅能用它来开发用户容易使用的各种应用程序还可以通过PowerBuilder修改数据库,利用400多个内部定义函数,可以开发能和其他应用程序进行的各种应用程序。

    PowerBuilder正在成为客户/服务器应用开发的标准。相对于其他任何客户/服务器开发环境,PowerBuilder使开发人员的工作更快、成本更低、质量更高、功能更强。

    PowerBuilder为应用开发提供了全面综合性的支持,可以分别概括为如下几点:

    事件驱动的应用程序
    功能强大的编程语言与函数
    面向对象的编程
    跨平台开发
    开放的数据库连结系统

    PowerBuilder开发环境

    PowerBuilder开发环境由一系列集成的图形画板(Painter)组成,应用开发人员通过简单的鼠标操作即可设计、建立、交互检验和测试客户/服务器应用程序。
    展开全文
  • 磁盘阵列RAID原理、种类及性能优缺点对比 磁盘阵列(Redundant Arrays of Independent Disks,RAID) 1. 存储的数据一定分片; 2. 分基于软件的软RAID(如mdadm)和基于硬件的硬RAID(如RAID卡); 3. RAID卡...
  • Volley的优点很多,可拓展、结构合理、逻辑清晰、能识别缓存、通过统一的方式,获取网络数据,包括且不限于文本、图片等资源。用了一段时间,果断放弃以前用过的其他框架。 Volley在一开始创建请求队列的过程中,...
  • 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。 每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。 数据是数据库中存储的基本对象,是按一定顺序排列组合的...
  • 业务逻辑层与存储过程优缺点对比

    千次阅读 2011-09-05 12:51:35
    一,存储过程 优点: 1,减少网络带宽,按理论存储过程会提高性能. 2,无需重新编译,更改后即可运行,无需重新编译代码 3,由专门的dba写的sql语句更高效 ...缺点: 1,依赖于数据库厂商,难以移植(当一个
  • 导读: 1、SQL Server是一个关系数据库管理系统。 2、ACCESS是由微软发布的关联数据库管理系统。 3、Oracle是基于服务器的大型数据库。
  • 建立网络的主要目的就是参与...实际的实现方式在很大程度上,要依赖于网络的功能,总体上可以分为两大类:集中系统和分布式系统。 集中系统 集中系统有一个大型的中央处理系统,中央处理系统时一台高性能...
  • B/S、C/S软件架构优缺点对比

    千次阅读 2013-04-11 19:19:19
    C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件...
  • RAID5比RAID0优缺点比较

    万次阅读 2018-12-26 10:42:47
    RAID5的读出效率很高,写入效率一般,块的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性,允许单个磁盘出错。RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的...
  • 对小规模数据表现很好,能处理多分类任务,适合增量训练 对缺失数据不太敏感,算法较简单,多用于文本分类 如果满足条件独立假设,NB的收敛速度将快于判别模型如LR,所以只需要少量数据,即使NB条件独立...
  • 存储过程的优缺点

    万次阅读 2015-04-19 22:40:43
     用户满意:实际上这个只是要将访问数据库的接口统一,是用存储过程,还是EJB,没太大关系,也就是说,在三层结构中,单独设计出一个数据访问层,同样能实现这个目标。     6. 开发调试:一样由于IDE的问题,...
  • 分布式缓存集群方案特性使用场景(Memcache/Redis(Twemproxy/Codis/Redis-cluster))优缺点对比及选型 分布式缓存特性: 1) 高性能:当传统数据库面临大规模数据访问时,磁盘I/O 往往成为性能瓶颈,从而...
  • RAID级别的技术原理以及优缺点简介

    千次阅读 2013-08-23 19:25:43
    RAID 0 原理及简介:系统向三个磁盘组成的逻辑硬盘(RAID 0 磁盘组) ...缺点:正是因为没有数据冗余,RAID 0在提高性能的同时,并没有提供数据可靠性,  如果磁盘失效,将影响到整个数据,一旦损坏
  • 客观评价golang的优缺点

    千次阅读 2019-05-21 18:19:10
    Go 语言的优点,缺点和令人厌恶的设计 Donng·2018-05-06 22:44:53· 14289 次点击 ·预计阅读时间 31 分钟·大约5小时之前开始浏览 https://studygolang.com/articles/12907?fr=sidebar 这是一个创建于2018-05-...
  • 数组、链表、Hash的优缺点

    千次阅读 2019-06-12 15:17:00
    中文描述 原文链接:https://www.goroutine.me/2019/06/03/data-structure-array-linked-hash.html 1、数组是将元素在内存中连续存放...平衡了数组和链表的优缺点。hash的具体实现有很多种,但是需要解决冲突的问题。​
  • 各大CMS系统优缺点(2017)

    千次阅读 2018-04-06 02:56:00
    各大CMS系统优缺点(2017) 总结 WordPress之前用过,可能需要再完整的用一个才会比较了解.   从2015年各行业建站规模来看,还有一大批人想自己搭建网站,下面为大家盘点一下比较实用CMS系统的特点及缺点!首先...
  • Oracle与SQL Server,MySQL优缺点比较 Oracle Oracle简介: 定义: Oracle database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。 优点: ...
  • mongodb与mysql相比的优缺点

    千次阅读 2018-03-02 11:08:00
    转载地址:http://blog.csdn.net/yamaxifeng_132/article/details/53490827与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型...
  • 各种数据库的优缺点

    千次阅读 2012-04-21 11:00:21
    另外,新的对等交易复制性能,通过使用复制,改进了其对数据向外扩展的支持。         对于程序开发人员而言,目前使用最流行的两种后台数据库即为MySQL and SQL Server。这两者最基本的相似之...
  • 一直以来,phper讨论最多的就是php各种框架的优缺点,网上的资料也是比较零散,现把几款主流的框架收集汇总一下,其中本人只是用过Yii2、Laravel、Yaf、Thinkphp这四种框架,因此大部分对各种框架的评价皆来自与网上...
  • ci、tp、yii优缺点

    千次阅读 2016-08-22 16:21:23
    Thinkphp CI YII框架对比   简述一下你用过的开源框架,说说他们的有缺点?   从语言方面:Tp与Yii都可以满足中文用户的需求,但是由于Yii是国际化的项目,所以代码注释仍旧是英文,不过呢两个框架的创始人依旧都...
  • SVN与Git比较的优缺点差异

    千次阅读 2019-07-03 10:02:38
      若是宕机一小时,那么在这一小时内,谁都无法提交更新、还原、对比等,也就无法协同工作。如果中央服务器的磁盘发生故障,并且没做过备份或者备份得不够及时的话,还会有丢失数据的风险。最坏的情况是彻底丢失...
  • 单例模式的七种实现方式及优缺点

    千次阅读 多人点赞 2019-01-11 20:21:46
    单例模式什么是单例模式为什么需要单例模式单例模式的基本构造常见的七种单例模式的写法饿汉单例模式经典的单例模式(线程不安全)懒汉单例模式(线程安全)双重检查实现懒汉单例模式另一种懒汉单例模式静态...
  • 2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数...
  • 文章不仅从理论上讨论了各个框架的优缺点,还从两个实际的案例出发,分析了每个框架具体使用方法。这篇文章对比了三大主流调度框架:Docker Swarm、Google Kubernetes和Apache Mesos(基于Marathon框架)。在解释了...
  • can 485 232 422 优缺点汇总

    千次阅读 2013-07-25 09:31:49
    RS-422标准全称是“平衡电压数字接口电路的电气特性”,它定义了接口电路的特性。实际上还有一根信号地线...而利用RS-485只能构成主从式结构系统,通信方式也只能以主站轮询的方式进行,系统的实时性、可靠性较差;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,249
精华内容 13,299
关键字:

对比式结构访问的优缺点