我是一名从事Java Web应用程序的S / W开发人员。
我对Java的知识非常有限,并希望从简单的术语中高度理解我的应用程序架构。作为一名开发人员,我并不完全了解大局。
任何人都可以帮我理解这个吗?
答案 0 :(得分:2)
每个层代表一个解决某些问题的地方是类似的方式,通常使用某些特定的库或框架。试图通过各层了解这项工作。但请注意,每个图层都隐藏了下面的细节,您无需了解较低图层的细节即可理解一个图层。
因此,Struts部分正在处理与用户界面相关的问题,即了解用户请求,选择一些业务逻辑来调用并选择如何将结果显示给用户。它不关心业务逻辑的如何,这是下一层的工作。
By Business Logic我指的是表达客户业务现实的Java(或其他语言)代码。例如,在零售应用程序中,我们可能需要计算特定订单量的折扣。因此,UI层希望显示客户订单的价格。它本身没有任何折扣逻辑,相反它向业务逻辑层说“客户X是订单N小部件和M zettuls,我们什么时候可以供应以及我们应该收取多少”,业务逻辑会计算出这个的定价客户,可能取决于各种事物,例如客户的状态,我们库存的商品数量,订单的大小等等。用户界面只能获得£450的答案,将于9月16日交付并显示。
这导致诸如“为什么将业务逻辑分离到自己的层?”之类的问题。有几个可能的原因:
这种思维方式遵循层次。在考虑每一层时,重要的是尝试关注图层的角色并将其他图层视为黑盒子。我们的大脑往往太小,无法同时考虑整个事物。当我在各层之间切换时,我几乎可以感觉到自己正在改变模式 - 取下我的UI头,戴上我的持久性头。
每层都有很多“外面”的材料。建议您首先阅读其中一个,并在遇到问题时提出具体问题。
答案 1 :(得分:0)
对我来说,看起来像是一个标准的“企业”应用程序。
这个程序。主要用于人类通过Web浏览器使用。这个界面或UI层(广义上)是使用MVC框架Struts构建的。如果您不了解MVC,那么阅读这个术语是个好主意。
该应用。还公开了Web服务接口,该接口旨在供非人类(其他应用程序或脚本)使用。
因此,提供了2种接口。
请求来自上面提到的2个接口,最终与下半部分(应用程序层)交谈以完成一些真正的工作。这里发生了实际的过程(计算东西,存储东西和不存在的东西)。另请注意,此层还与外部系统(通过服务网关)进行通信以完成请求。
他们这样分离系统的原因可能会有所不同。如果它是一个非常简单的小应用程序。那么这些抽象并不值得,所以它可能是一个非常复杂的系统。也许应用程序。 tier是一些遗留应用程序。他们想在它上面放置一些更好的用户界面。也许应用程序。层和Web层碰巧使用不同的技术堆栈。或许应用程序。层被许多其他外部系统使用。它还使得更新每个服务/更换每个服务等更容易,所以也许他们正在预料到这一点。无论如何,它看起来像是一种非常常见的SOA设计类型。
不确定您还想知道什么。我看到设计者打算在两个层中使用分布式缓存。总而言之,它是一种非常常见的系统集成图。
答案 2 :(得分:0)
App Tier - 基本应用程序逻辑所在的位置(想想基本的控制台程序)。
Web Tier - 为使应用程序可以从Web访问而添加的所有逻辑。
随意添加/更正此说明。