软件的体系结构

C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。

B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种 结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端(表示层)实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构(表示层, 业务逻辑层,数据访问层)。

我们将三层架构的中间层(业务逻辑层)的所有服务器软件统称为中间件,其主要的任务是响应客户端的请求,进行复杂的企业逻辑运算,访问企业的后台数据资源,生成满足客户需要的结果并返回给客户。 于是,客户对数据源的直接访问被对应用程序的请求所替代,客户端访问的是应用程序,由应用程序对数据进行查询和存取,这样就保证了数据不被非法使用和篡 改。

P2P结构,相比C/S,弱化甚至取消传统意义上的服务器,使分布式系统中的各个节点逻辑对等。P2P的拓扑结构:

  • 集中式拓扑结构:Napster实质上并非是纯粹的P2P系统,它通过一个中央服务器保存所有NaPster用户上传的音乐文件索引和存放位置的信息。当 某个用户需要某个音乐文件时,首先连接到Napster服务器,在服务器上进行检索,并由服务器返回存有该文件的用户信息,再由请求者直接连到文件的所有 者进行文件的传输。
  • 无中心无结构拓扑:Gnutella是一个P2P文件共享系统,它和Napster最大的区别在于Gnutena是纯粹的P2P系统,没有索引服务器,它 采用了基于完全随机图的泛洪(Ffooding)发现和随机转发(RandomW巨Iker)机制。为了控制搜索消息的传输,通过  TTL(TimeToLive)的减值来实现。
  • 结构化拓扑: 采用分布式散列表DHT (Distributed Hash Table)
  • 混合式拓扑: 选择性能较高(处理、存储、带宽等方面性能)的节点作为超级节点(SuPerNode),在各个超级节点上存储了系统中其他部分节点的信息,发现算法仅在超级节点之间转发,超级节点再将查询请求转发给适当的普通节点。
时间: 2024-07-28 20:02:34

软件的体系结构的相关文章

EYES组——软件体系结构上机规划

EYES组——软件体系结构上机规划 考勤助手 第九周: 需求分析的详细撰写,并在此基础上讨论与完善,讨论软件的体系结构风格: 第十周: 选择合适的软件构架风格(暂定分层风格),确定整个项目的分层设计,做出“考勤助手”的软件体系结构图: 第十一周: 数据库设计,包括数据库需求分析,设计E-R图,数据库结构的实现: 第十二周: 组长分配任务,各自选择子系统合适的描述方式,所选内容随后在介绍: 时间允许情况下:“教务老师”功能模块的详细设计: 第十三周: 完成子系统的分层图和用例图后,汇总所有材料,讨

iOS软件体系结构之核心服务层(Core Service)

我们讲到了iOS软件体系结构中的基础层Core OS,那么在核心操作系统层之上的就是iOS系统的核心服务层Core Service,核心服务层主要由两个部分组成:核心服务库和基于核心服务的高级功能.本文对这两种功能做一详解. 一.核心服务层所包含的库如下: 1.Address Book Framework 用于地址簿管理,开发者可以通过这个库管理电话联系人列表,访问联系人列表的数据库,然后进行添加.删除和编辑等其他操作. 2.CFNetwork Framework 提供了一系列的接口,可以让开发

284.软件体系结构集成开发环境的作用

软件体系结构集成开发环境基于体系结构形式化描述从系统框架的角度关注软件开发.体系结构开发工具是体系结构研究和分析的工具,给软件系统提供了形式化和可视化的描述.它不但提供了图形用户界面.文本编辑器.图形编辑器等可视化工具,还集成了编译器.解析器.校验器.仿真器等工具:不但可以针对每个系统元素,还支持从较高的构件层次分析和设计系统,这样可以有效地支持构件重用.具体来说,软件体系结构集成开发环境的功能可以分为以下5类. 1.辅助体系结构建模 建立体系结构模型是体系结构集成开发环境最重要的功能之一.集成

软件的重用性的高低就取决于它的耦合程度的高低

一个软件,它具有许多类,类与类之间需要互相调用,一旦某个类与另一个类具有紧密耦合关系的时候,这个软件的重用性就会大大降低.所以一个软件的重用性的高低就取决于它的耦合程度的高低. 耦合度:程序模块之间的关联.依赖程度. 在设计过程中提出:当设计这个软件的体系结构的时候,就发现了这个软件的逻辑运行部分(SimpleRouter类)和输出部分(SimpleRouterFrame类)不能很好的结合起来.即:我们不得不将程序界面的引用(reference to SimpleRouterFrame)一层一层

解读IEEE 7417的软件体系架构描述的概念模型

本文将解读标准IEEE Std 1471-2000(密集型软件的体系结构描述推荐实施规程)的概念模型图部分,从中一窥作为软件架构师的进行架构设计的思考角度与策略.如果我们把世界当做一场游戏,现在要玩的就是策略游戏而已. 说明: IEEE 1471是适用于软件密集的系统,其目标在于:便于体系结构的表达与交流,并通过体系结构要素及其实践标准化,奠定质量与成本的基础. 细读这个标准,可以加强策略游戏的装备,全新上战场. 基本概念 IT框架的设计者必须是杰出的问题驱动者,设计往往是一个模糊的,非理性的过

《编程匠艺》之软件的架构与改良

第三部分: 代码的形成过程(软件的架构) 1. 崇尚设计(如何做良好的软件设计) 软件设计的层次 系统体系结构(整体系统和子系统,以及子系统之间的连接方式) 模块于组件 类和数据类型 函数 设计良好的特征 简洁和优雅 模块化(高内聚,低耦合) 良好的接口(为了创建良好的接口,可以遵循下面的步骤:) 确定客户端, 了解它的需求 确定供应端, 了解它的能力 推断所需的接口类型(函数, 类, 网络协议?) 确定操作的性质(究竟需要提供什么样的功能?) 可扩展性(需要仔细评估现在的功能, 以后可能有的功

286.软件体系结构研究展望

软件体系结构研究新方向 21世纪软件技术展望1.开放源代码 下一世纪的操作系统将继承现在好的操作系统的主要优点,变成开放的和进化的.在操作系统开放之后,系统软件产业将主要集中在软件环境平台和工具的研究开发上.可视化编程环境与工具.办公套件.家庭套件.学习套件等将会有很大的空间. 21世纪软件技术展望2.跨平台使得一次写好的应用软件在各种不同硬件系统上都可以运行.使得已经设计好的程序模块被有效地重复利用. 目前跨平台这一设想还没有完全有效地被实现,相信21世纪第一个10年一定可以完成.当然,如何解

多年收集的一些稀有软件2

QQ:365543212 Fuel Economy Calculator v1.1 B.001(汽车工程软件,用于预测车辆燃油消耗率,是目前此类软件中最为全面的,能接收从最新的发动机分析程序Engine Analyzer自动发送来的强大的游标和发动机规格) Psat v5.1 1CD ProScan.v5.1 1CD PowerFlow v3.3p3a for Linux 1CD(Exa公司的汽车外气流计算软件) Rotating Inertia Calculator v1.1 A.000(一款

SOAP webserivce 和 RESTful webservice 对比及区别

简单对象访问协议(Simple Object Access Protocol,SOAP)是一种基于 XML 的协议,可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME),基于"通用"传输协议是 SOAP的一个优点.它还支持从消息系统到远程过程调用(Remote Procedure Call,RPC)等大量的应用程序.SOAP提供了一系列的标准,如WSRM(WS-Reliable Messaging)形