当前位置:  开发笔记 > 编程语言 > 正文

Web开发中前端,后端和中间件之间的区别

如何解决《Web开发中前端,后端和中间件之间的区别》经验,为你挑选了3个好方法。

我想知道是否有人可以简洁地比较/对比前端,后端和中间件("中端"?)之间的差异.

是否存在重叠的情况?是否有必须重叠的情况,前端/后端不能分开?在瓶颈方面,哪一方面与哪种类型的瓶颈有关?



1> JB King..:

这是一个细分:

前端层 - >用户界面层通常由HTML,Javascript,CSS,Flash和各种服务器端代码组成,如ASP.Net,经典ASP,PHP等.将此视为最接近用户在代码方面.

中间件,中间层 - >一层返回,通常称为系统的"管道"部分.Java和C#是编写这部分的常用语言,可以被视为UI和数据之间的粘合剂,可能是Web服务或WCF组件或其他SOA组件.

后端层 - >数据库和其他数据存储通常处于此级别.Oracle,MS-SQL,MySQL,SAP以及各种现成的软件都会浮现在这个软件上,这是对数据的最终处理.

任何这些之间都可能存在重叠,因为您可以将所有内容都放入一个层,就像ASP.Net网站一样,它使用内置的AJAX功能生成Javascript,而后面的代码可能包含数据库命令,使后面的代码包含中间和后面 - 等级.或者,可以使用VBScript作为所有层使用ADO对象并将所有三个层合并为一个层.

同样,在某些情况下,可以组合使用中间件和前端或后端.

瓶颈通常有几个不同的水平:

1)数据库或后端处理 - >这可能不同于工资单或销售或其他任务,其中数据库的吞吐量正在减少.

2)中间件瓶颈 - >这可能是某些Web服务可能达到容量但前端和后端具有处理更多流量的带宽.或者,可能有一些服务器是系统的一部分,不是UI部分或原始数据可能是使用Biztalk或MSMQ之类的瓶颈.

3)前端瓶颈 - >这可能是客户端或服务器端问题.例如,如果您购买了一台低端PC,并且加载了一个由下载大量数据组成的网页,那么客户端可能就是瓶颈所在.同样,如果服务器受到像Amazon.com或其他高流量网站有时可能获得的请求的影响,服务器可能会对请求进行排队.

其中一些是需要解释的,所以它并不是完美的任何方式和YMMV.


编辑:需要考虑的是一些系统可以有多个前端或后端.例如,内容管理系统可能会让网站访问者查看作为前端的内容,但内容编辑者如何更改网站上的数据呢?提取这些数据的能力可以被视为前端,因为它是一个UI组件,或者它可以被视为后端,因为它被内部用户而不是观看网站的一般公众使用.因此,这里有一些内容可以说.


php是前端?这与我的期望不符,所以我查了一下,发现了不同的意见
@JBKing我感到困惑,中间层是与前端(UI)和后端(DB)相互作用的那个?在这种情况下,我的网站有HTML,JS Frontend和MySQL Backend ... Php是中级na?

2> Dan Davies B..:

一般来说,人们将应用程序的表示层称为前端,将持久层(通常是数据库)称为后端,将任何内容称为中间层.这组想法通常被称为3层架构.它们允许您将应用程序分成更容易理解(和可测试!)的块; 您还可以在更高层中更轻松地重用较低层代码.

哪个代码是哪一层有些主观; 图形设计人员倾向于将所有不是表示的东西都视为后端,数据库人员将数据库前面的所有内容都视为前端,依此类推.

但是,并非所有应用程序都需要以这种方式分离出来.拥有3个独立的子项目肯定比打开index.php和破解更多的工作; 取决于(1)您希望维护应用程序需要多长时间(2)您希望应用程序获得的复杂程度,您可能希望放弃复杂性.



3> spiritoo..:

您的问题实际上有3个问题:

定义前端,中间和后端

它们如何以及何时重叠?

他们相关的常见瓶颈.

JB King所描述的是正确的,但它是一个特殊的简单版本,实际上他将front,middle和bacn映射到MVC层.他将M映射到后面,V映射到前面,C映射到中间.

对于很多人来说,它很好,因为它们来自丑陋的世界,甚至没有应用MVC,你可以在视图中直接调用DB.

然而,在真实,复杂的Web应用程序中,您确实有两个或三个不同的层,称为前,中和后.它们中的每一个都可以具有关联的数据库和控制器.

最终用户可以看到前端.它不应该与前台混淆,后台是前端参数和管理的UI.前端通常是某种CMS或电子商务平台(Magento等)

中端不是强制性的,是商业逻辑的所在.它将基于PIM,MDM工具或某种自定义数据库,您可以在其中丰富您的产品或文章(用于CMS).它也是您编写需要在不同前端之间共享的业务功能的地方(例如在PC前端和基于API的移动应用程序之间).有时,像ActiveMQ这样的ESB或工具将是您的中端

后端将是第3层,覆盖源数据库或ERP.它可能是API跟踪和读取ERP的过程.如果您正在进行电子商务,它可能是您的供应商数据库.实际上,它实际上取决于Web项目,但它始终是一个中央存储库.它可以通过DB调用,API,Hibernate层或全功能的后端应用程序访问

这个描述意味着在这个帖子中不可能回答其他两个问题,因为瓶颈实际上取决于你的3个结尾包含什么:JB King写的内容对于简单的MVC架构仍然是正确的

在问到这个问题的时候(5年前),也许MVC模式还没有被广泛采用.现在,绝对没有理由不遵循MVC模式,并且视图将与DB调用相关联.如果您阅读"是否存在必须重叠的情况,并且前端/后端不能分开?" 在更广泛的意义上,有3个不同的组件,那么有时候3层架构当然没用.想想一个简单的个人博客,你不需要提取外部数据或轮询RabbitMQ队列.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有