发明内容
本发明的目的是提供一种云计算系统,要解决的技术问题是降低企业信息化的系统的开发和调试工作,实现数据访问与数据表修改统一,提高数据库维护性。
本发明采用以下技术方案:一种云计算系统,所述企业信息化云计算系统由WEB服务器和数据库服务器组成,WEB服务器通过互联网连接客户端,所述WEB服务器通过互连网链接到设置在云端的数据库服务器;
所述WEB服务器由数据监控单元、数据更新单元、数据表修正单元和企业信息化单元组成,其中:
数据监控单元,用于监控数据存放单元中的数据库是否有新添加的数据库信息需要启动,并将修改命令反馈到数据表修正单元;
数据表修正单元,根据数据监控单元反馈的修改命令,修改数据库中指定的数据表结构,并将修改后的信息发送到数据更新单元替换原文本文件;
数据更新单元,将数据表修正单元修改的数据库中指定的数据表结构,根据修改后的数据表重新生成并替换原文本文件,并将新的文本文件保存在数据访问类存放单元内;
所述企业信息化单元包括数据存放单元、数据访问类存放单元和数据库连接单元,其中:
数据存放单元,将用户通过客户端编写的数据库或数据表的结果以国际通用的数据库或数据表操作命令以文件的形式保存到该单元中,并接受数据监控单元进行数据监控;
数据访问类存放单元,接收并保存数据更新单元发送的新的文本文件,保存用户设计后每个数据表对应的数据库操作方法的程序文件,该数据访问类存放单元中保存着每个数据表对应的数据库访问类,通过数据库连接单元链接到数据库服务器;
数据库连接单元,将存放在企业信息化单元的数据访问类存放单元中的修改后的数据库信息发送到数据库服务器,并替换原数据库服务器中的数据库信息;
数据库服务器,用于存储数据库信息的服务器,采用网络存储方式,分布在云端的计算机集群;
客户端,用于客户输入编写的数据库或数据表信息,为云计算终端。
本发明所述的数据监控单元对数据存放单元中存放的数据库信息进行监控。
本发明所述的数据库监控单元的监控周期为1秒。
本发明所述的数据库信息的命名方式为:编号-数据库操作类别-数据表名称.sql。
本发明所述的数据监控单元扫描数据存放单元,找出所有以“数字-行为分类字符串-数据表名称字符串.sql”为文件命名格式的数据库信息文件。
本发明所述的数据访问类存放单元保存每个数据表对应的数据库访问类。
本发明所述的数据表修正单元分析数据存放单元下数据库信息中的注解信息和数据库操作命令。
本发明所述的数据表修正单元将数据库信息名称中的数据表操作行为根据数据库信息行为检查数据库操作指令。
本发明所述的数据表修正单元通过数据库连接单元确认可以正确连接数据库服务器后,数据表修正单元将数据库信息中SQL操作命令传入数据库服务器并执行SQL操作命令。
本发明所述的数据监控单元将在数据存放单元下发现的数据库信息顺序启动并将启动过的编号以文件形式保存到数据监控单元。
本发明与现有技术相比,主要是最大限度的降低开发工程师的工作量,只需要将开发工程师的职责范围从一:设计数据库或数据表结构;二:实现数据库访问方法及调试工作;三:数据库及数据表结构脚本保存,降低为“设计数据库或数据表结构”和“保存数据表结构脚本”。
具体实施方式
下面结合附图和实施例对本发明作进一步详细说明。
如图1所示,现有技术的开发数据库部分时,开发人员根据需要设计数据库和数据表结构,首先通过数据库客户端工具或数据库命令实现数据库中各个数据表的创建、修改等操作;其次需要根据数据库结构编程实现每个数据表对应一个数据对象和数据库访问方法;最后根据逻辑部分需要,调试数据库访问方法,必要时需要反复对数据表,数据结构,数据库访问方法进行修改并重新测试。
如图2所示,现在行业应用中,从普遍采用的数据库框架开发所要经历的开发流程,可以看到,当数据库模型修改后,开发人员需要通过第三方数据库访问框架系统反复修改数据库访问方法,这样大大浪费了开发时间。第三方数据库访问框架系统是第三方软件组织为了降低开发人员在编写数据库访问方法的开发时间,提高数据库访问方法的稳定性而开发的框架。在这种开发方式下开发人员需要熟练的使用数据库访问框架开发框架,开发过程复杂。
如图3所示,本发明的云计算系统,由WEB服务器和数据库服务器组成,WEB服务器通过互联网连接云端的客户端电脑。所述WEB服务器通过互连网链接到设置在云端的数据库服务器,WEB服务器与数据库服务器的设置有两种方式,一:WEB服务器与数据库服务器安装在同一台服务器上,这样在WEB服务器的企业信息化单元中的数据库连接单元中指定数据库服务器地址即完成链接;二:WEB服务器与数据库服务器安装在不同服务器上,这样在WEB服务器中的企业信息化单元中的数据库连接单元中指定数据库服务器地址为本服务器地址以外的地址即完成链接。
所述WEB服务器包括数据监控单元、数据表修正单元、数据更新单元和企业信息化单元。
数据监控单元,用于监控企业信息化单元的数据存放单元中的数据库是否有新添加的数据库信息需要启动,并将修改命令反馈到数据表修正单元,该单元位于WEB服务器下,比如用户需要开发的是一个WEB应用项目,这样数据监控单元就对用户WEB应用目录中的数据存放单元进行监控;所述数据存放单元中的数据库是开发人员在完成数据库和数据表结构设计后将这些结构信息通过数据库命令保存到数据库的信息;
数据表修正单元,根据数据监控单元反馈的修改命令,修改数据库中指定的数据表结构,并将修改后的信息发送到数据更新单元替换原文本文件;
数据更新单元,将数据表修正单元修改的数据库中指定的数据表结构,根据修改后的数据表重新生成并替换原文本文件,并将新的文本文件保存在数据访问类存放单元内;
所述企业信息化单元包括数据存放单元、数据访问类存放单元和数据库连接单元,其中,
数据存放单元,将用户通过客户端编写的数据库或数据表的结果以国际通用的数据库或数据表操作命令以文件的形式保存到该单元中,并接受数据监控单元进行数据监控;
数据访问类存放单元,接收并保存数据更新单元发送的新的文本文件,保存用户设计后每个数据表对应的数据库操作方法的程序文件,用户可以通过数据存放单元的数据库信息中添加Package注释标记(该注释的使用方法请见下面附件中说明)指定所述数据访问类存放单元的具体路径,所述数据访问类存放单元中保存着每个数据表对应的数据库访问类,通过数据库连接单元链接到数据库服务器;
数据库连接单元,将存放在企业信息化单元的数据访问类存放单元中的修改后的数据库信息发送到数据库服务器,并替换原数据库服务器中的数据库信息。
数据库服务器,用于存储数据库信息的服务器,为云计算服务器,采用网络存储方式,分布在云端的计算机集群。
客户端,用于客户输入编写的数据库或数据表信息,并浏览企业信息化系统的计算机,为云计算终端。
如图4所示,采用本发明的云计算系统构建企业信息化系统,包括以下步骤:
一、设计数据库模型,开发人员根据开发需求进行数据库和数据表设计。
二、保存数据库信息,开发人员根据设计好的数据库模型通过国际标准结构查询语言(即数据库命令)编写一个数据库信息(数据库信息是一个以后缀名为.sql的文本文件),保存到数据监控单元监控的数据存放单元里,并按如下方式命名:编号-数据库操作类别-数据表名称.sql,例如:1-Create-User.sql(这表示在程序执行前首先创建一个数据表名称为User的数据表,并生成名称为User的数据库访问类文件);
三、开发人员在数据库信息中添加注释信息;
四、数据表修正单元首先根据数据库信息中配置的数据库名称,通过访问数据库的方式验证数据库是否存在,如果数据库不存在则创建新的数据库,再通过访问数据表的方式验证数据表是否存在,若不存在则根据数据库信息中定义的数据表结构创建新的数据表,如果数据表已经存在,则根据数据库信息中定义的数据表修改命令对已存在的数据表结构进行修改,并将数据库信息名称(该名称中标识出了数据库操作行为以及数据表名称,详细信息可参见步骤二。)以参数的形式传递给数据更新单元;
五、数据更新单元首先删除已经生成的存放在数据访问类存放单元中的数据库访问类文件,再将修改后的数据表结构中的每一行被视为一个完整的对象,数据更新单元为数据表创建一个具有和数据表名称相同的数据库访问类文件,并在这个类文件中为数据表中的每个列创建一个的具有相同名称的属性,例如:在数据库中有个名称叫做User的数据表,而这个数据表中有两个字段:name和age,那么数据更新单元在创建这个数据库访问类的程序文件时会给这个类添加一个name属性和age属性,而这个数据库访问类的程序文件名称叫做User.java,然后为这些属性创建修改方法,通过该方法可以修改指定属性的属性值,为该数据库类添加数据表通用的增加记录的数据库访问方法,删除记录方法,修改记录方法和查询记录方法,用户通过自己编写的逻辑部分通过创建一个数据表对应的对象变量调用由数据更新单元生成的数据库访问类实现数据库的访问,创建数据库,数据表,生成可靠的数据库访问类;
六、数据库访问类可以正常访问数据库后,开发人员就可以根据业务需要完成企业软件的开发,所述数据库访问类是由数据更新单元根据修改后的数据表结构生成的新的访问数据库的方法类。
如图5所示,本发明的云计算系统的实现方法,包括以下步骤:
一、编写数据库信息,开发人员将编写好的符合国际标准的数据库或数据表操作指令-即SQL操作命令以文件形式保存到数据存放单元下的数据库信息中。
二、开发人员保存数据库信息到数据存放单元下,由本地计算机或者远程服务器的数据监控单元对数据存放单元中存放的数据库信息进行监控,比如:企业信息化云计算系统的数据监控单元通过定时检查,系统默认监控周期为1秒钟,数据监控单元扫描数据存放单元,找出所有以“数字-行为分类字符串-数据表名称字符串.sql”为文件命名格式的数据库信息文件;
三、数据监控单元验证数据库信息名称是否有效,如果有效则进入下一步,否则结束;
四、启动数据表修正单元;
五、数据表修正单元首先分析数据存放单元下数据库信息中的注解信息和数据库操作命令,其中需要分析的注解信息包括9种注释指令,数据表修正单元将数据库信息名称中的数据表操作行为(例如:Create行为,Modify行为,Drop行为和Load行为等)根据数据库信息行为检查数据库操作指令然后经过数据表修正单元的数据库验证方法验证数据库信息中指定的数据库是否存在,数据表是否有效。
六、数据表修正单元通过数据库连接单元连接确认可以正确连接数据库服务器后,数据表修正单元将数据库信息中SQL操作命令传入数据库服务器并启动;
七、数据表修正单元判断SQL命令是否执行成功即:当数据表修改单元执行数据库信息中的SQL命令时可以正常返回并无任何错误发生,数据表修正单元认为此次SQL命令执行成功并通知数据监控单元,当数据监控单元接收到SQL命令执行成功的结果后则启动数据更新单元修改数据库访问类;如果数据表修正单元在SQL命令执行时发生错误则表示数据表修改失败则不启动数据更新单元;
八、数据更新单元重新生成数据库访问类;
九、结束。
本发明的数据更新单元重新生成数据库访问类,包括以下步骤;
一、数据更新单元首先为数据表中的每个字段生成数据库访问类中的属性;
二、数据更新单元为这些属性添加属性修改方法,属性查询方法;
三、数据更新单元为该数据表创建通用的添加记录方法,删除记录方法,修改记录方法,查询记录方法;
四、数据更新单元将这些属性和操作方法以java文件的形式保存到用户在数据库信息中通过Package标记(该标记将在下面详细介绍)指定的数据访问类存放单元下。
所述数据库信息注解信息包括为以下9种:
1.Persistence-持久化注释标记;
2.Database-数据库名称标记;
3.Package-程序包名标记,用于指明该程序所属的命名空间;
4.Import-导入开发包标记,用于指明该程序所依赖的开发包;
5.Emit-是否需要创建更多文本文件的标记,通常在增加,删除等操作发生异常时允许用户指定是抛出异常还是返回指定的值;
6.Exception-当添加,删除,修改或查询方法发生异常时指定的异常信息标记;
7.WebParam-当用户希望自动生成的数据库访问类需要支持Web方式访问数据库时指定的参数标记;
8.Translation-是否创建转义的标记;
9.Enum-在创建的数据表字段中有部分字段使用了枚举类型,则使用该注解标识出所有可能出现的枚举值。
前面提到的“数字-行为分类-字符串.sql”脚本名称格式中的数据库信息行为分类主要被划分为以下四类:
1.Create--该动作主要用于标明创建数据表的行为。;
2.Modify--该动作主要用于标明修改数据表的行为;
3.Load--该动作主要用于从数据文件中导入数据记录到指定的数据表;
4.Drop--该动作主要用于标明删除指定的数据表命令。
如图6所示,所述数据监控单元验证数据库信息名称,包括以下步骤:
一、数据监控单元启动;
二、数据监控单元查找位于企业信息化单元下的数据存放单元;
三、数据监控单元查找未启动过的数据库信息,数据监控单元将在数据存放单元下发现的数据库信息,根据“编号-行为-数据表名称.sql”数据库信息命名规范找出名称中的编号与本系统记录的已经启动过的列表编号进行对比,如果已经启动过了这个编号的数据库信息,则该数据库信息将不再被启动,反之将启动数据库信息,如果是第一次启动数据库信息,则所发现的数据库信息将全部被顺序启动并将启动过的编号以文件形式保存到数据监控单元,如果有需要启动的数据库信息则进入步骤四,否则休眠1秒钟并返回步骤二;
四、数据监控单元从新发现的数据库信息名称中找出数据表操作类别,将数据表操作行为与所述数据库操作类别,即是否为本系统定义的Create,Modify,Drop或者是Load操作中之一,否则休眠1秒种并返回继续查找数据库信息存放文件夹。
五、数据监控单元验证数据表名称是否有效,从需要启动的数据库信息名称中找出需要操作的数据表名称,如果该数据表名称与数据库信息中的数据库操作命令所要操作的数据表名称一致则数据表名称验证通过。
八、验证通过。
实施例1:WEB服务器和数据库服务器采用PC机,内存:4G,硬盘:500G,CPU是Intel(R)Pentium(R)Dual CPU E2200,2.2GHz,操作系统采用openSUSE11.1;WEB服务器和数据库服务器都安装在操作系统所在硬盘的/dev/sda3分区中;采用JAVA编程语言,采用JDK(Java Development Kit)编程软件;数据库系统采用的是MySQL5.0数据库系统,该系统安装在云计算系统中,网络通讯协议采用TCP/IP协议进行WEB服务器与数据库服务器通信。客户端通过个人电脑中的浏览器采用TCP/IP协议访问企业信息化系统,该信息化系统也是通过TCP/IP连接云计算机中的数据库服务器;WEB服务器通常采用多台PC机作为服务器部署在云计算机系统中;数据库服务器也采用多台PC机作为服务器并部署在云计算系统中。
企业信息化系统迁移:在企业信息化系统迁移至云计算系统时需要保证在云计算系统也安装有本系统,并在迁移过程中保证每个数据监控单元中的所有数据脚本都拷贝到云计算系统中的数据监控单元中即可以实现企业信息化系统数据库应用部分快速迁移的目的。
在企业信息化系统使用过程中如果遇到数据库容量限制或者WEB服务器性能限制,则可以充分发挥云计算系统的高可用,高扩展的特性,在企业信息化系统运行过程中动态的增加WEB服务器和数据库服务器个数,已实现快速响应客户的需求。因为任何计算机都有异常停止服务的情况,当企业信息化系统部署到云计算系统后,由于云计算系统具有高可靠性运行的特性,所以即使有部分服务器在运行过程中异常停止服务,也能保证企业信息化系统在不影响性能的前提下正常运行。
在企业信息化系统服务的过程中,每当WEB服务器接收到来自客户端的TCP/IP请求后,将这个请求通过系统内部各个模块间协作将数据操作请求再通过TCP/IP协议转发给云计算系统中的数据库服务器执行数据操作,并将数据操作结果通过企业信息化系统反馈给客户端。
本发明配置数据库连接单元中数据库服务器所在的服务器IP地址,该单元主要用于通过数据库驱动文件连接用户指定的数据库服务器。如果在数据库连接的IP地址处配置的IP地址是:127.0.0.1则表示链接的数据库是企业信息化单元所在的服务器,如果配置的IP地址不是127.0.0.1则表示链接其他服务器。
数据监控单元监控数据存放单元中的数据库有新添加的数据库信息需要启动的命令:
SqlSchemaStart
数据监控单元将修改命令反馈到数据表修正单元的命令:
SchemaUpdaterStart
数据表修正单元修改数据库中指定的数据表结构的命令:
SqlSchemaModify
数据表修正单元将修改后的信息发送到数据更新单元替换原文本文件的命令:
SaveCode
数据存放单元将用户通过客户端编写的数据库或数据表的结果以文件的形式保存到该单元中的命令:
SaveScript
数据访问类存放单元接收并保存数据更新单元发送的新的文本文件的命令:
SaveScript
数据库连接单元将存放在企业信息化单元的数据访问类存放单元中的修改后的数据库信息发送到数据库服务器,并替换原数据库服务器中的数据库信息的命令:
SaveScript
实施例2:开发人员编写数据库信息,将符合国际结构化数据库操作命令保存到“1-Create-User.sql”文件中,并在文件中添加package注释信息,数据库信息,脚本信息命令:
其中:
#Package[com.test.xxx.yyy.zzz]表示由该脚本对应生成的数据表访问类文件存放路径应该在数据访问类存放单元com/test/xxx/yyy/zzz目录下,操作的数据表名称是User数据库操作类文件名称为:User.java;
#Persistence[database=”databasename”]表示由该脚本对应生成的数据表访问类需要持久化到数据库名为“databasename”中的User表中;
以上数据库命令是需要在数据库中执行的数据表创建命令,保存上述举例的数据库信息到企业信息化单元下的数据脚本存放单元。
修改指定属性的属性值,数据库访问类文件中会被添加两个属性修改方法的命令分别是:
获得类指定属性的属性值,数据更新单元添加属性值到数据访问类存放单元的两个命令: