具有网站和后端事务处理器的n层设计

时间:2008-11-04 01:12:12

标签: n-tier-architecture

我们有一个网站,可以输入交易并通过工作流程进行交易。我们将遵循标准BLL(业务逻辑层),DTO(数据传输对象),DAL(数据访问层)等用于分层应用程序。我们需要将所有内容分开,因为某些事务将跨越具有不同业务逻辑的多个应用程序。

我们还有一个后端处理器。它在工作流程完成后处理我们的事务。它适用于各种第三方系统,其中一些系统不稳定,或者它们的接口不稳定,然后报告事务的状态。每个网站都有自己的后端处理器版本。

现在问题是,对于N-Tier,他们为每个应用程序建议一个新的BLL。通过上面的应用程序布局,可以说后端处理器和网站是一个一致的应用程序,或两个具有不同业务逻辑的应用程序。处理这个问题的理想方法是什么?它是否像一个系统或两个系统一样?

4 个答案:

答案 0 :(得分:1)

如果您很好地区分您的问题,那么我认为您将能够将它们视为具有单个业务逻辑层的相同应用程序,没有必要两次编写相同的代码。诀窍是强制将网站的用户界面部分与BLL库中的业务逻辑分开。

性能也将成为一个问题,您必须确保批处理不会阻止您的网站执行由于您的资源而需要执行的任务。这可能是让它们更加分离的一个论点,但是因为它们可能无论如何共享数据库(或其他一些基于文件的资源),然后这可能是一个问题。

我会将一个通用的业务逻辑库编程为接口,并与其他问题完全分开。

答案 1 :(得分:1)

您可以考虑对功能进行分区以反映利益相关方的组织。通常,如果您有两个不同的组织组,那么如果功能被类似地分配,则开发和管理要求更容易管理。反之亦然。

我们大多数人都没有花那么多时间编写探索硬件和软件功能外部边界的应用程序。

答案 2 :(得分:1)

我在过去几年学习MVC时所学到的一件事是我称之为应用逻辑和域逻辑之间的区别。我不再喜欢商业逻辑这个术语了,因为它过于宽松地使用了那个使用该术语的所有相互冲突的理论和实践。

域逻辑是“传统”业务逻辑,事物应该如何行动,它们需要什么(验证)等。应用程序逻辑是特定于您的域的给定表示的任何内容,当用户单击此时IE在您的网络应用程序中提交按钮,然后将它们定向到此网页(请注意,这与没有有关WinForms应用程序或后台处理器的工作原理)。应用程序逻辑应该存在于您的应用程域逻辑应该存在于BLL中并降低,并且可以在可能使用您的常用“业务逻辑”的不同应用程序之间重用。

有点一般的答案,但我希望有所帮助。

答案 3 :(得分:0)

“理想”的方式取决于手头的项目和系统的各种要求。

我的默认设计是让它充当一个应用程序。但是如果有更多的重量级进程发生,我想创建一个批处理过程,其中所请求作业的参数被存储并由单独的进程执行。