0
我将以下面的情况为例。公司开发部署在客户端的组件A(该组件位于客户端区域,该客户端可能不被公司信任)。组件需要访问存储在位于公司区域(可信区域)的数据库服务器中的数据。该公司开发的核心模块之一是数据模型,使用Hibernate作为ORM。直接访问数据库与间接访问数据库
一种方法是组件A直接依赖数据模型模块并直接访问数据库(通过Hibernate)。第二种方法是间接访问数据库,使用连接组件A和数据库服务器的中间模块。
将组件直接连接到数据库服务器可能会出现哪些问题?使用API的优点是什么?你有什么建议?
谢谢
我知道多层架构的存在,但对我来说似乎不同,因为这里并不意味着单个物理机器。你认为数据访问层必须分发给客户端吗?通常,数据访问层直接访问数据库(有时通过ORM工具),但直接从客户端访问数据库(使用数据访问层)会让我认为可能会出现安全问题。 – 2011-12-19 10:00:26
如果客户端机器不受您的控制,并且客户端计算机可以直接连接数据库,则安全性可能会受到影响。 API模块(即使它处于与客户端应用程序不同的进程中)可能会被篡改,反向设计等。使用N层体系结构,可以使用访问数据库的API层,并且客户端只能使用API层访问一个定义良好的API,适当的安全性可能审计,让它只执行明确定义的行为,没有什么比这更少的了。 DAL将成为您的API层的实现细节。 – softveda 2011-12-19 10:57:09
顺便说一句当我说API时,我的意思是某种形式的远程API使用低层传输,比如套接字,RMI/.Net远程处理,或者更高级别的SOAP,REST等。 – softveda 2011-12-19 10:59:39