我有许多应用程序(.Net和Java),它们使用通信层相互通信。 我现在需要扩展通信层以允许第三方应用程序访问它 - 如下所示。 但是,虽然我想确保我的应用程序仍然可以访问通信层中的所有可用方法,但我希望限制对第三方应用程序的访问。
因此,本质上我需要为我的应用程序找到一种方法来证明它们确实是我的。当然,我可以在每条消息中使用公钥/私钥加密或唯一哈希值,但这会降低我的应用程序之间的通信速度,达到非常不可接受的限制。有没有人有其他想法?
答案 0 :(得分:3)
你几乎完美地描述了Enterprise application integration的概念。
可以一起使用的两种模式我想确保我的应用程序仍然可以访问通信层中我希望限制对第三方应用程序访问的所有可用方法。
此处第一个 - Mediation pattern 可以帮助您作为自己的应用程序之间的代理。只要在一个应用程序中发生有趣事件,就会通知EAI系统中的集成模块。然后,模块将更改传播到其他相关应用程序。
部分
需要扩展通信层以允许第三方应用程序访问它
Federation pattern 将确保来自“外部世界”的所有来电。任何应用程序都是EAI系统的前端。因为它在多个应用程序中充当总体 Facade 。 EAI系统配置为仅向底层公开底层应用程序的相关信息和接口,并代表请求者执行与底层应用程序的所有交互。
对于
沟通层
您可以查看通信架构部分,这也在那里提到。在我目前的项目中,我们使用Tibco。
答案 1 :(得分:-2)
创建用于进行通信的Web服务,并使用该服务让所有应用程序相互通信。 还要继续在每个服务消息中使用公钥/私钥加密或唯一哈希值。