寻找意见上的模块化的网络应用程序。已经大多数应用中无论语言的后端数据库和支持联系与它们各自的网络应用服务器(Apache,IIS,Lighttp,等等),但大量的开发我已经处理了有问题未来条款与使用缓存或任何外部网络应用程序的即时过程的空间。

模块化是一个网络应用程序作为良好的事情的事情,因为我相信还有什么是我失,导致每个人都从Sr.开发技术的能犹豫动的特定部分的商务逻辑的网前结束并进入专门的后端服务?

例如,几年前我中枪倒在项目设计会议的一个非常高的通信网站时,我建议我们撕裂的过程中密集的ACL逻辑的前端的框架,并把它变成一个半,所以业务应用程序中的后台。对我来说的好处是一个清洁的分代码并能够重复使用的ACL的逻辑在多个地点通过使用其他/JSON之间的桥梁说PHP和蟒蛇。

开发者不同意我的想法认为它是"太复杂",但是我只是不能怎么看?我的论点是,正如有可签汤介绍层,有可能并经常是一个逻辑汤的代码这样合在一起,如果一个问题可能是几乎不可能执行"外科手术式"的解决。

因此,要缩短它下来,什么是骗的&或专断的大型应用程序下变成独立而合作进程(不线或子请求)。MySQL、缓存、相似业务流程都是伟大的...但为什么不是别的什么?怎么是走这条路"太复杂"?

有帮助吗?

解决方案

嗯,有时候“太复杂”的意思是“我不想觉得我的舒适区之外。”

在基本概念听起来不错---你在这里谈论的相当合理的面向服务的架构。

现在,至于利弊,针对它的第一件事情是,你的的确实不得不让人们认为自己的舒适区之外。更多的技术con是,你需要保存的是,实际上,会话状态。假设你拿起您的身份验证服务的身份验证令牌;该令牌将如何保持与正确的用户会话相关联。

另一个问题是,这可能是难以调试,因为它的发生更加动态。

在亲的一面,不过,如果你能满足会话状态的问题,你会得到一个高度可扩展的体系结构;如果你需要更多的服务,您可以放大的服务器或只需添加另一台服务器。

其他提示

我的粉丝分离核心服务器/业务逻辑功能的网络应用程序的代码。这是一些不同的原因:

  1. 你可以更好地控制业务的逻辑。将没有任何方式混合,这在与GUI码和创建一个烂摊子。你想让所有的商务逻辑的独立,因此您可以在以后进行API叫码的功能并不希望没有商业逻辑的方式作出了成GUI代码。
  2. 从一开始走你必须要设计一个良好的API,你必须要使用你自己与你的服务器。客户可在网接口,或者它可以是一个远程用户。
  3. 稳定。GUI网的代码可以很容易地被写错误和消耗过多的存储器,从而把整个应用程序。
  4. 扩你可以将这些独立的部件,以不同的服务器。如果您使用的是一个缓冲系统已经允许为集群的扩大可以很简单,只是增加更多的高速缓存服务器。
  5. 我已经发现,应用程序做出更新数最多的GUI码的核心服务不必采取下来的大部分时间。
  6. 安全。你可以肯定,安全代码实在服务器编码所以如果有人使用API他们不可能绕过任何的安全代码的方式作出了成GUI代码。

我们的系统具有核心'发动机'的服务实现为Java应用程序。该网络应用程序也是写在爪哇和(前)通信是通过RMI。我们的网站/应用程序越来越大,我们还没有开始使用缓存服务喜欢缓存或JCS.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top