我想知道是否有人可以简单地比较/对比前端、后端和中间件(“中端”?)之间的差异。是否存在重叠的情况?是否存在必须重叠且前端/后端无法分离的情况?就瓶颈而言,哪一端与哪种类型的瓶颈相关?
nwnhqdif1#
以下是一个细目:前端层-〉用户界面层通常由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加载一个包含大量下载数据的网页,客户端可能就是瓶颈所在。同样,如果服务器被www.example.com或其他高流量网站的请求所冲击,它可能会排队等待请求Amazon.com。其中一些是受解释,所以它不是完美的任何手段和YMMV。编辑:需要考虑的是某些系统可以有多个前端或后端,内容管理系统可能有一种方法让站点访问者查看前端的内容,但是内容编辑者如何能够更改站点上的数据呢?提取此数据的功能可以被视为前端,因为它是UI组件,或者可以被视为后端结束,因为它是由内部用户使用,而不是一般公众查看网站。因此,有一些要说的上下文在这里。
wbgh16ku2#
一般来说,人们把应用程序的表示层称为“前端”,持久层(通常是数据库)称为“后端”,中间层称为“中间层”。这一系列概念通常被称为3层架构。它们允许您将应用程序划分为更容易理解(和测试!)的块;您还可以更容易地在较高的层中重用较低层的代码。哪个代码是哪个层的一部分多少有些主观;图形设计人员倾向于将表示以外的所有内容视为后端,数据库人员将数据库前面的所有内容视为前端,等等。然而,并不是所有的应用程序都需要这样分离,拥有3个独立的子项目肯定比只打开index.php并开始破解要多得多;取决于(1)您预计必须维护应用程序的时间(2)您预计应用程序会变得多么复杂,您可能希望放弃复杂性。
vulvrdjw3#
事实上,您的问题中包含3个问题:
JB King所描述的是正确的,但这是一个特殊的、简单的版本,实际上他将front、middle和bacnMap到一个MVC层,他将MMap到后面,VMap到前面,CMap到中间。对于许多人来说,这是很好的,因为他们来自甚至没有应用MVC的丑陋世界,并且可以在视图中直接调用DB。然而在真实的的复杂的web应用程序中,你确实有两个或三个不同的层,称为前、中、后,每个层都可能有一个关联的数据库和一个控制器。前端将由最终用户可见。它不应与前端办公室混淆,前端办公室是前端的参数和管理的UI。前端通常是某种CMS或电子商务平台(Magento等)。中间端不是强制性的,它是业务逻辑所在的地方。它将基于PIM、MDM工具或某种自定义数据库,您可以在其中丰富您的产品或文章(对于CMS)。它也将是您编码需要在不同前端之间共享的业务功能的地方(比如PC前端和基于API的移动的应用之间)有时候ESB或者ActiveMQ这样的工具会是你的中端后端将是第三层,围绕您的源数据库或ERP。它可能只是API写入和阅读您的ERP。它可能是您的供应商数据库,如果您正在做电子商务。事实上,它确实依赖于Web项目,但它始终是一个中央存储库。它将通过一个数据库调用,通过一个API,或一个Hibernate层来访问。或全功能后端应用程序此描述意味着在此线程中不可能回答其他2个问题,因为瓶颈实际上取决于3个端点包含的内容:JBKing所写的对于简单的MVC架构仍然适用在被问到这个问题的时候(5年前),也许MVC模式还没有被如此广泛地采用。现在,绝对没有理由不遵循MVC模式,一个视图将绑定到DB调用。如果你读到问题“是否存在它们必须重叠,前端/后端不能分离的情况?”在更广泛的意义上,有3个不同的组件,那么有时候3层架构当然是无用的。想想一个简单的个人博客,你将不需要拉取外部数据或轮询RabbitMQ队列。
gupuwyp24#
这是一个真实的的示例,显示了前端/中端/后端。
前端和后端之间可能会有重叠。这通常会导致应用程序维护和可伸缩性的长期问题。在遗留应用程序中相当常见。大多数现代技术栈都鼓励开发人员严格分离。例如,在图片中,你可以看到第一个系统的后端有一个清晰的分离线。瓶颈大部分瓶颈都是由数据库/网络造成的。数据库位于后端。至于网络问题,每个连接都要经过网络,所以每个连接都有可能变慢。如果有好的应用程序设计,这些问题在很大程度上是可以避免的。
iih3973s5#
就网络和安全性而言,后端是迄今为止最安全的节点。中端部分通常是一个Web服务器,它在某种程度上是处于野外的,在许多方面与公司的网络断开。中端节点通常位于DMZ中,并通过防火墙设置与网络隔离。大多数服务器端的网页代码解析都在中端Web服务器上处理。到达后端意味着通过中间端,中间端有一套精心制作的规则,允许/不允许访问存储在数据库(后端)服务器上的重要数字。
syqv5f0l6#
前端是指客户端,后端是指服务器端。两者对Web开发都至关重要,但它们的角色、职责和工作环境完全不同。前端基本上是用户看到的,而后端则是一切工作的方式
qojgxg4l7#
前端-〉这些是网站的客户端,用户可以通过用户界面与服务器进行交互。通常使用Html和CSS构建。中间件-〉中间件是负责系统通信和管理数据的软件或服务,它处理组件之间的通信和输入/输出后端-〉后端是任何应用程序的服务器端,包括所有对数据执行的功能和操作。这部分被认为是任何应用程序最基本的部分。只有服务器管理员可以访问它。它主要包括数据库和服务器。
7条答案
按热度按时间nwnhqdif1#
以下是一个细目:
前端层-〉用户界面层通常由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加载一个包含大量下载数据的网页,客户端可能就是瓶颈所在。同样,如果服务器被www.example.com或其他高流量网站的请求所冲击,它可能会排队等待请求Amazon.com。
其中一些是受解释,所以它不是完美的任何手段和YMMV。
编辑:需要考虑的是某些系统可以有多个前端或后端,内容管理系统可能有一种方法让站点访问者查看前端的内容,但是内容编辑者如何能够更改站点上的数据呢?提取此数据的功能可以被视为前端,因为它是UI组件,或者可以被视为后端结束,因为它是由内部用户使用,而不是一般公众查看网站。因此,有一些要说的上下文在这里。
wbgh16ku2#
一般来说,人们把应用程序的表示层称为“前端”,持久层(通常是数据库)称为“后端”,中间层称为“中间层”。这一系列概念通常被称为3层架构。它们允许您将应用程序划分为更容易理解(和测试!)的块;您还可以更容易地在较高的层中重用较低层的代码。
哪个代码是哪个层的一部分多少有些主观;图形设计人员倾向于将表示以外的所有内容视为后端,数据库人员将数据库前面的所有内容视为前端,等等。
然而,并不是所有的应用程序都需要这样分离,拥有3个独立的子项目肯定比只打开index.php并开始破解要多得多;取决于(1)您预计必须维护应用程序的时间(2)您预计应用程序会变得多么复杂,您可能希望放弃复杂性。
vulvrdjw3#
事实上,您的问题中包含3个问题:
JB King所描述的是正确的,但这是一个特殊的、简单的版本,实际上他将front、middle和bacnMap到一个MVC层,他将MMap到后面,VMap到前面,CMap到中间。
对于许多人来说,这是很好的,因为他们来自甚至没有应用MVC的丑陋世界,并且可以在视图中直接调用DB。
然而在真实的的复杂的web应用程序中,你确实有两个或三个不同的层,称为前、中、后,每个层都可能有一个关联的数据库和一个控制器。
前端将由最终用户可见。它不应与前端办公室混淆,前端办公室是前端的参数和管理的UI。前端通常是某种CMS或电子商务平台(Magento等)。
中间端不是强制性的,它是业务逻辑所在的地方。它将基于PIM、MDM工具或某种自定义数据库,您可以在其中丰富您的产品或文章(对于CMS)。它也将是您编码需要在不同前端之间共享的业务功能的地方(比如PC前端和基于API的移动的应用之间)有时候ESB或者ActiveMQ这样的工具会是你的中端
后端将是第三层,围绕您的源数据库或ERP。它可能只是API写入和阅读您的ERP。它可能是您的供应商数据库,如果您正在做电子商务。事实上,它确实依赖于Web项目,但它始终是一个中央存储库。它将通过一个数据库调用,通过一个API,或一个Hibernate层来访问。或全功能后端应用程序
此描述意味着在此线程中不可能回答其他2个问题,因为瓶颈实际上取决于3个端点包含的内容:JBKing所写的对于简单的MVC架构仍然适用
在被问到这个问题的时候(5年前),也许MVC模式还没有被如此广泛地采用。现在,绝对没有理由不遵循MVC模式,一个视图将绑定到DB调用。如果你读到问题“是否存在它们必须重叠,前端/后端不能分离的情况?”在更广泛的意义上,有3个不同的组件,那么有时候3层架构当然是无用的。想想一个简单的个人博客,你将不需要拉取外部数据或轮询RabbitMQ队列。
gupuwyp24#
这是一个真实的的示例,显示了前端/中端/后端。
一般说明:
重叠:
前端和后端之间可能会有重叠。这通常会导致应用程序维护和可伸缩性的长期问题。在遗留应用程序中相当常见。
大多数现代技术栈都鼓励开发人员严格分离。例如,在图片中,你可以看到第一个系统的后端有一个清晰的分离线。
瓶颈
大部分瓶颈都是由数据库/网络造成的。数据库位于后端。至于网络问题,每个连接都要经过网络,所以每个连接都有可能变慢。如果有好的应用程序设计,这些问题在很大程度上是可以避免的。
iih3973s5#
就网络和安全性而言,后端是迄今为止最安全的节点。
中端部分通常是一个Web服务器,它在某种程度上是处于野外的,在许多方面与公司的网络断开。中端节点通常位于DMZ中,并通过防火墙设置与网络隔离。大多数服务器端的网页代码解析都在中端Web服务器上处理。
到达后端意味着通过中间端,中间端有一套精心制作的规则,允许/不允许访问存储在数据库(后端)服务器上的重要数字。
syqv5f0l6#
前端是指客户端,后端是指服务器端。两者对Web开发都至关重要,但它们的角色、职责和工作环境完全不同。前端基本上是用户看到的,而后端则是一切工作的方式
qojgxg4l7#
前端-〉这些是网站的客户端,用户可以通过用户界面与服务器进行交互。通常使用Html和CSS构建。
中间件-〉中间件是负责系统通信和管理数据的软件或服务,它处理组件之间的通信和输入/输出
后端-〉后端是任何应用程序的服务器端,包括所有对数据执行的功能和操作。这部分被认为是任何应用程序最基本的部分。只有服务器管理员可以访问它。它主要包括数据库和服务器。