三个应用程序的互操作性

时间:2015-05-17 08:18:53

标签: php web-services nusoap

现在,我面临着三个独立系统之间的互操作性问题。有三台机器运行不同的应用程序。应用程序A使用MsSQL Server 2008,应用程序B使用Oracle数据库服务器,应用程序C使用MySQL。

要生成一些月度报告,应用程序A必须自动从应用程序B和C的数据库中检索数据。检索的数据不会太大,查询结果最大值为100行。但这些数据是保密的,不应传播给公众。因此,必须将数据安全性方面视为重要事项。出于某种原因,不允许对每个应用程序A,B和C上的代码进行更改或添加。只允许数据访问。

经过一番研究后,我提出了以下基本思路作为解决方案:

  1. 创建Web服务作为应用程序通信桥梁

  2. 为每个应用程序创建一个Web服务客户端。因此,对于应用程序A,将有一个Web服务客户端应用程序:Ws-A-Client。对于B:Ws-B-Client。和C:Ws-C-Client。通常,Ws-B-Client从数据库B获取数据并请求Webservice将数据存储到Webservice数据库中。 WS-C-Client与WS-B-Client类似,从数据库C获取数据并将其存储到Webservice数据库中。 WS-A-Client自动向webservice执行数据请求并将其存储在数据库A中。

  3. 然后我尝试使用php NuSoap Library实现这个想法并创建SOAP客户端和服务器。但现在,我怀疑这个想法是否是解决这个问题的正确方法。因为需要在系统上进行数据同步,因此变得更加复杂。

    A,B和C上没有安装Web服务器。因此,应用程序A,B和C之间没有直接的SOAP通信.A,B和C中的所有数据都将存储在单独的Web中服务数据库。因此,如果应用程序需要来自客户端的东西,他们将联系Web服务以提供数据。我这样做的原因是因为我认为如果将数据存储在单个数据库中(在Webservice中),它将便于将此数据用于其他目的。例如,可以将这些数据显示为管理信息,而无需向每个应用程序请求。或者,例如,可以提取或处理数据并将其显示在组织网站中。所以,我决定,我不需要在每台机器(A,B或C)上安装Web服务。每台机器只有一个php脚本程序,它只用于发出SOAP请求(就像SOAP客户端一样),但是 无法作为SOAP服务器执行。 SOAP服务器仅存在于单独的Web服务上。但我不确定这是不是正确的方式...

    这是问题的案例。假设应用程序B上的用户之前更改了已发送到Web服务的数据。因此,WS-Client-B必须能够检测此用户所做的更改,并对webservice执行请求以更新Web服务数据库上的相关数据。此外,如果数据已被应用程序A检索并存储在其数据库中,则数据库A中的数据也需要更新。因此,它变得更加复杂。

    我的问题是: 你能否就解决这个问题的正确方法或步骤给我建议?在这种情况下使用webservice是否合适,还是有其他更简单的方法?

    提前致谢

0 个答案:

没有答案