架构隔离机制

时间:2012-10-16 08:32:32

标签: architecture isolation

我们目前正在审核如何将我们的核心业务组件(在代码中)与前端开发隔离开来。我们已经有了多层架构,但它们是使用dll(或某些地方的webservices)引用的。

我们想要做的是将UI的某些部分外包给外部开发人员。问题是我们必须提供可以进行逆向工程的dll,然后可以“获得”核心业务逻辑代码。

解决此问题的一种方法是使用Web服务来暴露BO,而不是使用dll公开BO。然而,几乎没有问题。例如安全性,调试,异常处理,托管等对我而言,这听起来不适合上述问题,但Web服务也不适用于此类问题。

我想知道是否有人遇到过类似情况?或者如果有人这样做了?如果是这样的话?

谢谢,

3 个答案:

答案 0 :(得分:1)

提供实现业务逻辑的Web服务点 - 这将由您自己托管并可供UI开发人员访问。

通过这种方式,您可以控制业务逻辑,并且UI团队可以访问API。

如果无法做到这一点,请将业务逻辑的公共接口提取到自己的软件包中,并实现一组“预制”响应 - 只需要UI用户的硬编码数据。这允许您为UI团队提供他们将要集成的界面以及示例数据,但是没有您的实际业务逻辑。

答案 1 :(得分:1)

接口合同的概念似乎在这里发现。

如果你的接口的合同定义得很好(让它们成为DLL入口点,WSDL,无论如何),创建一个允许UI开发人员测试行为的模拟实现应该不是很困难。

我们采取的唯一预防措施是让UI承包商将代码提交到我们的SVN存储库(不,没有Git :) :)这样我们的构建机器可以连续运行集成测试,我们可以每天评估进度和问题

答案 2 :(得分:-1)

y原则可以帮助您分离您所要求的关注点。

这是一种系统地分离业务和技术问题的方法。

以下字符图形描述了该方法:

  Business requirements      Technical requirements
+------   |                             |  ------+
|         v                             v        |
|  Business model               Technical model  |
\          \                            /      /
 \          \                        /       /
   \          \                    /       /
     \          > Mapping rules <        /
       \              |                /
         \            |              /
          \           v             /
           \    Implementation     /
            \         |           /
             \        |          /
              \       v         /
               Acceptance Tests

如果映射规则一致且可以重复应用,则可以自动化该方法。 反向分析可以显示是否是这种情况。

如果该方法适用,将对效率产生深远影响。 而不是必须一遍又一遍地将业务问题映射到技术问题 该过程可以重复并最终实现自动化。

您可以在我的公司网页上找到更多相关信息。