Architecture 将多个系统从直接JDBC迁移到RESTful Web服务的含义

Architecture 将多个系统从直接JDBC迁移到RESTful Web服务的含义,architecture,rest,Architecture,Rest,在我的部门内,大约有20个左右的应用程序使用DirectJDBC从同一数据库中获取类似的财务数据集。我正在考虑引入一个服务来公开这些财务信息,然后迁移各种应用程序以使用该服务(而不是直接使用JDBC)。这里的目的是将数据访问/操作逻辑放在一个地方,以便将来对数据模型的更改更易于开发和协调 大多数客户端都是用Java编写的,有些是用C++/C#编写的,还有一些shell脚本 我听说过很多关于REST的好东西,因此我考虑公开一个RESTful接口,而不是说SOAP 所以。。。我想知道人们对于a)在这

在我的部门内,大约有20个左右的应用程序使用DirectJDBC从同一数据库中获取类似的财务数据集。我正在考虑引入一个服务来公开这些财务信息,然后迁移各种应用程序以使用该服务(而不是直接使用JDBC)。这里的目的是将数据访问/操作逻辑放在一个地方,以便将来对数据模型的更改更易于开发和协调

大多数客户端都是用Java编写的,有些是用C++/C#编写的,还有一些shell脚本

我听说过很多关于REST的好东西,因此我考虑公开一个RESTful接口,而不是说SOAP


所以。。。我想知道人们对于a)在这种场景中使用REST会有什么想法b)从直接JDBC转移到可伸缩性/性能考虑c)任何其他可能更适合这种类型的技术/技术

我认为在您的特定情况下(您控制所有客户端,它们只是同一系统的一部分,而且(似乎)在同一局域网上),我会更倾向于使用一层视图和存储过程,将访问/逻辑放在DB服务器中


理想情况下,这些进程不应该具有访问“原始”数据的权限,而应该只访问视图和存储过程。即使只是读取单个表,如果添加1:1视图,以后也可以在不更改客户端的情况下修改行为。

这很有趣。。出于性能原因,我打算让服务前端有一个缓存(很可能是一致性)。我知道Oracle已经内置了缓存,但我不确定这是否会像独立服务+预填充一致性缓存那样有性能-我想在您进行一些性能测试之前,很难回答这个问题。