zoukankan      html  css  js  c++  java
  • 软件的体系结构

    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),在各个超级节点上存储了系统中其他部分节点的信息,发现算法仅在超级节点之间转发,超级节点再将查询请求转发给适当的普通节点。
  • 相关阅读:
    php去除字符串(空格,换行,反斜杠)
    周末撸了个Excel框架,现已开源,yyds!!
    Python基础之pytest参数化
    解决 remote: HTTP Basic: Access denied Authentication failed for 'https://'报错
    删除上传 github 中的 .idea 文件夹
    Nacos配置管理最佳实践
    痞子衡嵌入式:在IAR开发环境下将整个源文件代码重定向到任意RAM中的方法
    痞子衡嵌入式:我入选了2021年度与非网(eefocus)星选创作者Top10
    《痞子衡嵌入式半月刊》 第 47 期
    重新iviewUI Modal 组件 ok事件默认直接关闭modal 的行为[Code Snippet]
  • 原文地址:https://www.cnblogs.com/qionglouyuyu/p/4617663.html
Copyright © 2011-2022 走看看