草庐IT

B/S架构

是李黏黏鸭 2024-06-02 原文

目录

一、什么是B/S架构

二、三层架构

三、Active技术

四、网络节点

五、分布式网络计算

六、JavaScript


一、什么是B/S架构

1.B/S架构是软件系统体系结构,是指 浏览器-Web服务器( Broswer-Server ), 采用三层架构,即 表现层、业务逻辑层、数据访问层
2.B/S架构是随着Internet技术的兴起,对C/S结构的一种变化或者改进。
3.B/S架构中,用户界面完全通过浏览器实现,一部分事务逻辑在前端实现,但是主要的事务逻辑在服务器端实现,形成所谓的三成架构。
4.B/S结构,主要是利用了不断成熟的浏览器技术,结合了浏览器的多种Script语言(VBScript、JavaScript......)和Active技术,通过浏览器实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。B/S结构就是指安装维护一个服务器(Server),而客户端采用浏览器运行的软件。
5.在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程序的执行等工作全部由Web Server完成。随着Windows将浏览器技术植入操作系统内部,这种结构已经成为当今应用软件的首选结构体系。

二、三层架构

1.通常是指将整个业务应用划分为:表现层、业务逻辑层、数据访问层。目的是高内聚,低耦合。

 

  • 表现层:是展示给用户的界面。
  • 业务逻辑层:针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。
  • 数据访问层:该层所做事务直接操作数据库,针对数据的增添,删除,修改,查找等。
2.各层的作用
  • 表现层:离用户最近,用于显示数据和接收用户输入的数据,以及接收数据的返回,为用户提供了一种交互式操作的界面。
  • 业务逻辑层:是针对具体问题的操作,也可以理解成对数据层的操作,对数据业务逻辑的处理。主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计。
        业务逻辑层在体系架构中的位置很关键,他处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,          层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层设计对于其调用底层而言没有任何影响。
  • 数据层:数据访问层,有时候也称为持久层,主要功能是对原始数据(数据库或者文本文件等形式存放的数据)的操作层,而不是原始数据;也就是说,是对数据的操作,而不是数据库,具体为业务逻辑层或表示层提供数据服务。简单来说就是实现对数据表的select,insert,update,delete的操作。
3.三层架构原理
  • 3个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理。
  • 将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层进行连接,再经由中间层与数据库进行交互。
  • 应用程序:指为了完成某几项特定的任务而被开发运行于操作系统之上的计算机程序。
  • COM:组件对象模型,是关于如何建立组件以及如何通过组件建立应用程序的一个规范,说明了如何可动态交替更新组件。COM规定了对象模型和编程要求,是COM对象可以与其他对象相互操作。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后按照需要将他们组合起来,构成复杂的应用系统。
  • DCOM:分布式组件对象模型,是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。DCOM基于COM,COM上提供了一套允许同一台计算机上的客户端和服务端之间通信端口。
4.优点
  • 分布性强,开发人员可以只关注整个结构中其中的某一层。
  • 可以降低层与层之间的依赖。
  • 降低维护成本和维护时间,总体拥有低成本的特征。
5.缺点
  • 降低了系统的性能,数据传输速度慢。如果不采用分层式结构,很多业务可以直接造访数据库,一次获得相应的数据,如今却必须通过中间层来完成。
  • 有时候会导致级联的修改,这种修改尤其体现在自上而下的方向。如果在表示层中需要增加一个新的功能,为保证其设计符合分层式结构,可能需要在相应业务逻辑层和数据访问层中都增加相应的代码。
  • 对服务器要求高。
  • 数据安全性存在问题。

三、Active技术

1.Active网络允许用户在网络节点插入自定义的程序,可对通过网络的用户数据进行计算。该方式使得在网络中可以进行专门的程序处理。
2.为分布式网络计算提供了基础。

四、网络节点

1.是指一台电脑或其他设备与一个具有独立地址并且具有接收和传输数据功能的网络相连。
2.节点可以是工作站、客户,网络用户或个人计算机等。

五、分布式网络计算

1.分布式计算主要研究分布式系统,一个分布式系统包括若干个通过网络互联的计算机。这些计算机相互配合以完成一个共同的目标。

六、JavaScript

1.是一种直译式脚本语言,他的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言。
2.常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
3.最早JavaScript脚本是通过嵌入在html中来实现自身功能,例如在HTML(标准通用标记语言下的一个应用)网页上使用,用来给html网页增加动态功能。

有关B/S架构的更多相关文章

  1. ruby - Ruby 和 Ruby on Rails 中的三层架构 - 2

    我是一名决定学习Ruby和RubyonRails的ASP.NETMVC开发人员。我已经有所了解并在RoR上创建了一个网站。在ASP.NETMVC上开发,我一直使用三层架构:数据层、业务层和UI(或表示)层。尝试在RubyonRails应用程序中使用这种方法,我发现没有关于它的信息(或者也许我只是找不到它?)。也许有人可以建议我如何在RubyonRails上创建或使用三层架构?附言我使用ruby​​1.9.3和RubyonRails3.2.3。 最佳答案 我建议在制作RoR应用程序时遵循RubyonRails(RoR)风格。Rails

  2. ruby-on-rails - 具有六边形架构和 DCI 模式的框架和数据库适配器 - 2

    我尝试用Ruby设计一个基于Web的应用程序。我开发了一个简单的核心应用程序,在没有框架和数据库的情况下在六边形架构中实现DCI范例。核心六边形中有小六边形和网络,数据库,日志等适配器。每个六边形都在没有数据库和框架的情况下自行运行。在这种方法中,我如何提供与数据库模型和实体类的关系作为独立于数据库的关系。我想在将来将框架从Rails更改为Sinatra或数据库。事实上,我如何在这个核心Hexagon中实现完全隔离的rails和mongodb的数据库适配器或框架适配器。有什么想法吗? 最佳答案 ROM呢?(Ruby对象映射器)。还有

  3. 设计一个亿级高并发系统架构 - 12306火车票核心场景DDD领域建模 - 2

    “架设一个亿级高并发系统,是多数程序员、架构师的工作目标。许多的技术从业人员甚至有时会降薪去寻找这样的机会。但并不是所有人都有机会主导,甚至参与这样一个系统。今天我们用12306火车票购票这样一个业务场景来做DDD领域建模。”开篇要实现软件设计、软件开发在一个统一的思想、统一的节奏下进行,就应该有一个轻量级的框架对开发过程与代码编写做一定的约束。虽然DDD是一个软件开发的方法,而不是具体的技术或框架,但拥有一个轻量级的框架仍然是必要的,为了开发一个支持DDD的框架,首先需要理解DDD的基本概念和核心的组件。一.什么是领域驱动设计(DDD)首先要知道DDD是一种开发理念,核心是维护一个反应领域概

  4. ruby - 写密集型特征的架构 - 2

    我在当前项目中使用由Oracle数据库和memcached支持的RubyonRails。有一个非常常用的功能,它依赖于单个数据库View作为数据源,并且该数据源内部有其他数据库View和表。这是一个虚拟数据库View,能够从一个地方访问所有内容,而不是物化数据库View。大多数情况下,如果用户正在使用他们希望更新的功能,那么让数据保持最新很重要。从这个View获取数据时,我将安全表内部连接到View(安全表不是View本身的一部分),其中包含一些我们用来在更细粒度级别上控制数据访问的字段。例如,安全表有user_id,prop_1,prop_2列,其中prop_1,prop_2是数据库

  5. ruby - 模块化、基于组件的 Sinatra 应用程序的架构 - 2

    我正在开发一个包含大约10个不同功能组件的Sinatra应用程序。我们希望能够将这些组件混合并匹配到应用程序的单独实例中,完全从config.yaml文件配置,如下所示:components:-route:'/chunky'component_type:FoodListercomponent_settings:food_type:baconmax_items:400-route:'places/paris'component_type:Mappercomponent_settings:latitude:48.85387273165654longitude:2.340087890625-

  6. 【哈士奇赠书活动 - 20期】-〖从程序员到架构师〗 - 2

    文章目录⭐️赠书活动-《从程序员到架构师》⭐️编辑推荐⭐️作者简介⭐️赠书活动→获奖名单⭐️赠书活动-《从程序员到架构师》内容简介:《从程序员到架构师:大数据量、缓存、高并发、微服务、多团队协同等核心场景实战》分为数据持久化层场景实战、缓存层场景实战、基于常见组件的微服务场景实战、微服务进阶场景实战和开发运维场景实战5个部分。基于对十余个架构搭建与改造项目的经验总结,介绍了大数据量、缓存、高并发、微服务、多团队协同等核心场景下的架构设计常见问题及其通用技术方案,包含冷热分离、查询分离、分表分库、秒杀架构、注册发现、熔断、限流、微服务等具体需求下的技术选型、技术原理、技术应用、技术要点等内容,将

  7. Ruby 插件架构 - 2

    我想要一个非常基本的小型基础程序示例,它读入两个插件并注册它们。这两个插件以相同的方式以不冲突的方式挂接到基础程序。就此而言,我对任何编程语言的元编程都很陌生,我不确定从哪里开始。 最佳答案 我已经研究这个问题一段时间了。我尝试了很多不同的方法来做这件事,并征求了很多人的建议。我仍然不确定我所拥有的是否是“正确的方法”,但它运作良好并且很容易做到。在我的例子中,我专门查看配置并引入配置插件,但原理是相同的,即使我的术语特定于cnfiguration。在非常基础的层面上,我有一个配置类,里面什么都没有——它是空的。我还有一个Confi

  8. ruby-on-rails - 为什么我需要更加努力地使我的 Rails 应用程序适应 RESTful 架构? - 2

    我最近开始了一个Rails项目,并决定使用RESTfulController。我为我的关键实体(例如国家/地区)创建了Controller并添加了index、new、edit、create、显示、更新和删除。我将我的map.resources:country添加到我的路线文件中,生活很美好。开发稍有进展后,就开始遇到问题了。我有时需要在我的Controller中执行额外的操作。首先是search操作,它返回我喜欢的自动完成搜索框的选项。然后需要在应用程序的不同位置以两种不同的方式显示国家/地区(显示的数据也不同,所以它不仅仅是两个View)-我添加了index_full操作。然后我想在

  9. ruby-on-rails - 使用 EBC 的架构的实际示例? - 2

    关闭。这个问题不满足StackOverflowguidelines.它目前不接受答案。想改善这个问题吗?更新问题,使其成为on-topic对于堆栈溢出。2年前关闭。Improvethisquestion我对RobertMartin的演讲很感兴趣"Architecture:TheLostYears".在其中,他讨论了MVC所基于的实体、边界、控制设计模式。我喜欢推迟架构决策的想法。他描述了在他自己的wiki应用程序FitNesse中推迟关于如何实现DB层的决定。我在自己的编码中有机地推迟了这样的决定,尽管没有先入为主的模块化设计带来了这一点。我想从实际的角度更好地理解这个EBC架构(它似

  10. javascript - 文本编辑器的 Redux 架构 : dealing with coupled state - 2

    我正在使用React/Redux构建一个在某些方面类似于文本编辑器的应用程序。它不完全是一个文本编辑器,但它是相同的通用范例。有一个用于放置新项目的光标。可以添加、选择、删除项目等。我正在努力寻找一种符合redux精神的最佳方式来构建我的reducer。我有单独的状态切片来表示选择状态、文本本身、光标状态和其他设置。我认为“redux”方法是为每个状态切片设置缩减器,独立地改变状态以响应Action。然而,在文本编辑器中,这些状态片比乍看之下更加耦合。当你按下一个键时,有时会在光标所在的位置添加一个字母,并且光标会向前移动。但是,如果选择了文本,则将首先删除所选文本。如果您处于“插入”

随机推荐