一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于数据库通信的基于计算机的装置的制作方法

2022-07-23 23:27:27 来源:中国专利 TAG:


1.本公开内容涉及用于数据库通信的基于计算机的装置,其中计算机系统对数据库的访问受到控制。


背景技术:

2.在传统的软件开发过程中,通常有两种操作软件系统中的数据库的方式。一种方式是将数据库连接信息——例如数据库ip、用户名、密码、端口等——和数据库操作逻辑——例如sql语句——记录/包含到软件业务代码中。另一种方式是单独提供数据库操作模块。在这种情况下,数据库连接信息将以明码文本格式存在于数据库操作模块配置文件中,并且数据库操作逻辑将存在于数据库操作模块的业务代码中。
3.在复杂的软件系统中,这两种传统的数据库操作不容易应用于扩展业务代码。此外,由于业务代码和数据库操作代码之间的耦合的程度相对较高,所描述的已知的数据库操作的方法在很大程度上是不灵活的。所以,业务开发人员在编写业务代码时不得不编写一些复杂的数据库操作sql语句。因此,对业务开发人员的技术要求——即数据库专业知识——相对较高,并且代码开发是困难的。此外,开发周期长,并且往往难以实现面向的开发目标。
4.除此之外,在这两种传统的数据库操作方法中,数据库连接信息和数据库逻辑将暴露于软件业务代码或配置文件。这对数据安全构成了潜在风险。
5.随着敏捷开发模式在软件方法中的日益普及,对软件开发交付进度和软件质量的需求将变得更加挑剔。由于上述技术问题,这两种传统的数据库操作方法都不能满足敏捷开发模式中的进度和质量要求。
6.希望提供一种用于数据库通信的基于计算机的装置,其中确保了计算机系统和数据库之间的高度解耦和封装。


技术实现要素:

7.本发明要解决的问题是提供一种用于数据库通信的基于计算机的装置,其允许在第一计算机系统(application side,应用侧)上提供的业务代码和在第二计算机系统(data service side,数据服务侧)上提供的数据库操作代码之间的高度解耦。还希望具有高的体系结构灵活性。
8.在独立权利要求中描述了该问题的解决方案。从属权利要求涉及本发明的进一步改进。
9.用于数据库通信的基于计算机的装置的一个实施方案包括用于执行至少一个应用程序的第一计算机系统,以及用于提供至少一个数据库和用于评估所述至少一个数据库的数据的第二计算机系统。第一计算机系统和第二计算机系统被配置为彼此通信。第二计算机系统被配置为封装所述至少一个数据库以防止第一计算机系统对所述至少一个数据库的直接访问。
10.第一计算机系统被配置为向第二计算机系统发送通信请求。第二计算机系统被配置为评估通信请求并响应于通信请求访问所述至少一个数据库的数据。第二计算机系统被配置为通过执行数据操作来处理所述至少一个数据库的数据并提供数据操作执行结果。第二计算机系统被配置为响应于数据操作执行结果将响应数据返回到第一计算机系统。
11.根据基于计算机的装置的一个可能的实施方案,第二计算机系统可以包括被配置为接收来自第一计算机系统的通信请求的反向代理服务器。
12.根据基于计算机的装置的另一实施方案,第二计算机系统可以包括数据库服务器,该数据库服务器被配置为封装数据库存储的过程和函数以防止第一计算机系统对所述至少一个数据库的任何数据库操作和原始数据的直接访问。任何数据库操作逻辑都可以被封装在数据库存储的过程和函数中。
13.在一个实施方案中,通信是无状态的。第一计算机系统和第二计算机系统可以包含被配置为使用无状态通信的软件架构。在多个请求之间可以不存在存储在第二计算机系统上的关于第一计算机系统的背景。来自第一计算机系统的每个请求可以含有服务该请求所必需的所有信息,并且会话状态被保存在第一计算机系统中。会话状态可以由第二计算机系统传送到另一服务诸如数据库以在一段时间内保持持久状态并且允许认证。这种无状态架构允许在不同的第二计算机系统(或第二计算机系统的不同计算机)之间切换并且使用不同的反向代理服务器,这提供了第一计算机系统和第二计算机系统之间的进一步解耦。
14.根据基于计算机的装置的另一实施方案,第二计算机系统可以包括数据封装服务器,该数据封装服务器被配置为执行在数据库服务器上的数据库存储的过程。数据库服务器可以被配置为向封装服务器提供数据操作执行结果。此外,封装服务器可以被配置为封装数据操作执行结果并且将经封装的数据操作执行结果返回到反向代理服务器。任何数据库连接信息都可以被存储在封装服务器上的配置文件中。反向代理服务器可以被配置为将经封装的数据操作执行结果作为响应数据返回到第一计算机系统。
15.计算机系统可以被配置为使用表述性状态转移(rest)软件架构风格。
16.根据基于计算机的装置的一个优选实施方案,第一计算机系统可以被配置为通过向反向代理服务器发送http请求来与第二计算机系统通信。具体地,第一计算机系统可以被配置为通过使用restful api(rest风格的api)通信架构向反向代理服务器发送http请求。
17.根据基于计算机的装置的一个可能实施方案,反向代理服务器可以被配置为解析http请求并且将http请求转换为数据库请求。数据库请求被配置为提供对数据库存储的过程中的一个的访问。反向代理服务器被配置为将数据库请求转发到封装服务器。
18.提出的用于数据库通信的基于计算机的装置可以解决传统软件开发过程的上述数据库操作问题。由于在应用侧上的第一计算机系统中提供业务代码,所以应用业务代码中不包含数据库连接信息和数据库操作逻辑。相反,业务代码和数据库操作代码存在于相应的、单独的代码文件和配置文件中。具体地,应用侧的业务代码存在于第一计算机系统中并且数据库操作代码——即代码文件和配置文件——存在于第二计算机系统中。
19.因此,添加/修改在一侧/计算机系统上的代码将不会影响在另一侧/计算机系统上的代码。因此,提出的用于数据库通信的基于计算机的装置在第一计算机系统的应用侧
上的业务代码和第二计算机系统的数据服务侧上的数据库操作代码之间提供了高度解耦。
20.根据提出的用于数据库通信的基于计算机的装置,在第一计算机系统上实现的应用侧和在第二计算机系统上实现的数据库服务侧被彻底地隔离使得数据库操作逻辑对于应用业务侧是彻底地隐藏和完全地不可见的。具体地,第一计算机系统的应用业务代码中不包含数据库操作逻辑,并且第二计算机系统上的所有数据库操作逻辑都将被封装到数据库存储的过程和函数中。数据库连接信息可能只能在数据封装服务器上提供。
21.从应用业务侧——即第一计算机系统——访问数据库的唯一方式是发送通信请求,例如restful api的调用。除了使用从第一计算机系统的应用侧不可见的数据封装服务器外,后端数据库服务器/数据库实例服务器只能与数据封装服务器通信以确保数据安全。
22.数据服务侧的第二计算机系统可以包括多个反向代理服务器和封装服务器。此外,有可能在反向代理服务器上配置和绑定restful api的各种逻辑到不同封装服务器。还可能部署多个数据库服务器以使用主从模式处理同一数据业务。
23.总之,用于数据库通信的基于计算机的装置可以完美地支持数据库服务负载平衡和高可用性。此外,可以部署多个数据库服务器,将数据库读写操作拆分到不同的数据库中,并且减少数据库压力。此外,提出的基于计算机的装置提供了对微服务和soa架构的支持以及对云服务器架构的支持。
24.在应用具有一些数据库操作要求的情况下,用于数据库通信的基于计算机的装置允许在数据库中添加/修改存储的过程并且在反向代理服务器上修改配置文件以在新的restful api和数据库存储的过程之间建立任何映射关系。因此,任何开发工作都可以在数据服务侧的第二计算机系统上实现的数据库服务层上完成。
25.当利用提出的用于数据库通信的基于计算机的装置工作时,应用业务开发人员只需关注应用侧的第一计算机系统中使用的业务代码。无需关心在第二计算机系统上的数据库服务层实现。所有的数据库服务层操作都可以由专业的数据库开发人员来实现。应用业务代码开发人员和数据库开发人员可以并行地工作使得用于数据库通信的基于计算机的装置允许在敏捷开发模式中完美地满足进度和质量要求。
26.在下面的详细描述中阐明了附加的特征和优点。应理解,前述的总体描述和下面的详细描述都仅仅是示例性的,并且意在提供用于理解权利要求的本质和特点的概述或框架。
具体实施方式
27.在下面将参考附图通过对实施方案的示例举例而不限制其总体发明构思的方式描述本发明。
28.附图示出了提出的用于数据库通信的基于计算机的装置1的一种实施方案,该基于计算机的装置1包括应用侧上的第一计算机系统和用以实现数据服务侧的第二计算机系统。
29.附图示出了用于执行至少一个应用程序的第一计算机系统10,以及用于提供至少一个数据库300a、300b和300c并且用于评估至少一个数据库的数据的第二计算机系统20。第一计算机系统10和第二计算机系统20被配置为彼此通信。具体地,数据服务侧上的第二计算机系统20被配置为封装至少一个数据库300a、300b和300c以防止应用侧的第一计算机
系统10对至少一个数据库——尤其是对至少一个数据库的任何原始数据——的直接访问。
30.第一计算机系统10被配置为向第二计算机系统20发送通信请求。第二计算机系统20被配置为评估通信请求并且响应于通信请求访问至少一个数据库300a、300b和300c的数据。第二计算机系统20被配置为通过执行数据操作来处理至少一个数据库300a、300b和300c的数据并且提供数据操作执行结果。第二计算机系统20被配置为响应于数据操作执行结果将响应数据返回到第一计算机系统10。
31.在第一计算机系统10上实现的应用侧是指需要访问数据库的一系列应用。根据提出的用于数据库通信的基于计算机的装置1,应用侧通过从第一计算机系统10发送到第二计算机系统20的通信请求或通过从第二计算机系统20发送到第一计算机系统10的响应数据与数据库服务侧通信。
32.第二计算机系统20包括反向代理服务器100,该反向代理服务器100被配置为从第一计算机系统10接收通信请求。第一计算机系统10可以被配置为通过向反向代理服务器100发送http请求来与第二计算机系统20通信。具体地,第一计算机系统10可以通过使用restful api通信架构向反向代理服务器100发送http请求。
33.第二计算机系统20还包括数据库服务器300,该数据库服务器300被配置为封装数据库存储的过程和函数以防止第一计算机系统10对任何数据库操作的直接访问。任何数据库操作逻辑都被封装在第一计算机系统10——即应用侧——无法访问的数据库存储的过程和函数中。
34.第二计算机系统20还包括数据封装服务器200,该数据封装服务器200被配置为执行在数据库服务器300上的数据库存储的过程。具体地,数据库服务器300被配置为向封装服务器200提供数据操作执行结果。封装服务器200被配置为封装数据操作执行结果并且将经封装的数据操作执行结果返回到反向代理服务器100。反向代理服务器100被配置为将经封装的数据操作执行结果作为响应数据返回到第一计算机系统10。
35.在下文中,描述了应用侧的第一计算机系统10和数据服务侧的第二计算机系统20之间的示例通信过程。
36.如上文解释的,应用侧的第一计算机系统10可以通过restful api与数据库服务侧的第二计算机系统20通信。例如,应用侧的第一计算机系统10通过restful api向反向代理服务器100启动http请求。
37.具体地,反向代理服务器100将来自第一计算机系统10的restful通信请求转换为易于处理的数据库包/数据库存储的过程请求,并且然后将经转换的请求转发到由数据封装服务器200提供的数据封装服务。具体地,反向代理服务器100接收来自应用侧的第一计算机系统10的http请求,解析http请求并将其重新打包为另一个http/wsgi/uwsgi请求,然后将新的http/wsgi/uwsgi转发到数据封装服务器200以用于进一步处理。
38.数据封装服务器200连接数据库服务器300以用于执行数据库存储的过程。具体地,数据封装服务器200从反向代理服务器100接收http请求。它解析http方法和数据库存储的过程名称以及请求字符串中对应的参数值。然后,数据封装服务器200使用数据库连接配置信息执行在数据库服务器300上的数据库存储的过程。由数据封装服务器200提供的数据封装服务桥接restful请求和数据库之间的连接。
39.数据库服务器300将数据操作执行结果返回到数据封装服务器200。在下一步骤
中,在数据封装服务器200上实施的数据处理程序将执行结果封装为统一的数据格式,例如json格式的数据,并且将经封装的数据操作执行结果返回到反向代理服务器100。数据封装服务器200上的数据处理程序需要包含数个模块,例如数据库连接模块、异常处理模块、参数解析模块、数据库存储的过程执行模块和数据库执行结果处理模块(处理为restful json格式)。反向代理服务器100将经封装的数据操作执行结果(例如json格式的数据)作为响应数据返回到应用侧的第一计算机系统10。
40.反向代理服务器100可以被部署在开源反向代理软件中。待使用的软件可以是nginx或apache。反向代理服务器100被实现为配置需要将来自应用侧的http请求转发到的目标服务器(数据封装服务器200)。反向代理服务器100上的所有配置都可以存在于配置文件中。
41.数据封装服务器200将被部署在开源uwsgi服务中,开源uwsgi服务是支持uwsgi和http协议的定制数据处理程序。数据处理程序可以通过c、c 、java、c#、python、go等中的一种被开发。数据库服务器300的连接和登录信息将被记录在数据封装服务器200上的配置文件中。数据封装服务器200直接地与数据库服务器300交互以执行数据操纵请求。根据一个可能实施方案,数据封装服务器200将任意数据库返回结果都封装为json格式的字符串。
42.数据库服务器300将被部署为数据库系统。候选数据库系统可以是oracle、mysql、sql server等。来自应用侧的所有数据库操作都将被封装到数据库存储的过程和函数中。所有数据库操作对应用侧都将是不可见的。数据库操作可以包含如select(选择)、insert(插入)、update(更新)、delete(删除)、create(创建)、drop(丢弃)、truncate(清空)、rename(重命名)、alter(修改)、audit(审计)、grant(授权)、commit(提交)、rollback(回滚)等命令。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献