网站系统及基于所述网站系统的数据交互方法

文档序号:7692346阅读:83来源:国知局
专利名称:网站系统及基于所述网站系统的数据交互方法
技术领域
本发明涉及网站架构及其应用领域,特别是涉及一种网站系统,以 及, 一种基于所述网站系统的数据交互方法。
背景技术
网站(Website)是指在因特网上,根据一定的规则,使用HTML等 工具制作的、用于展示特定内容的相关网页的集合。简单地说,网站是 一种通讯工具,就像布告栏一样,人们可以通过网站来发布自己想要公 开的资讯,或者利用网站来提供相关的网络服务。人们还可以通过网页 浏览器来访问网站,获取自己需要的资讯或者享受网络服务。目前的网 站系统通常包括域名(俗称网址),网站源程序和网站空间。其中,域名 的开j式诸"i口 www.yahoo.com (—级i或名),cn.yahoo.com/e000 ( 二级/三 级域名);网站空间由专门的独立服务器或租用的虚拟主机承担;网站源 程序则放在网站空间里面,表现为网站前台和网站后台。这种网站系统 一般基于B/S的交互模式,B/S是Brower/Server的缩写,即浏览器和服 务器结构。客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,月良务器安装Oracle、 Sybase、 Informix或 SQL Server等数据库。浏览器通过Web服务器(Server)同数据库进行数据 交互。在这种结构下,用户工作界面是通过浏览器来实现,极少部分事 务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端实现的。 具体地,现有的网站应用交互过程通常包含以下步骤
步骤Sl、将用户请求通过超文本传输协议(Hypertext Transfer Protocol, HTTP )和超文本标记"i吾言(HyperText Mark-up Language, HTML) 提交至展现层(浏览器),展现层采用动态网页编程语言(PHP: Hypertext Preprocessor, PHP )牙口通用网关才妄口 ( Common Gateway Interface, CGI) 与服务器的动态交互层之间交互,动态交互层通过结构化查询语言 (Structured Query Language, SQL)连接服务器端的it据库完成数据处理,并逐层返回数据处理结果至展现层,响应用户的请求。
基于这种网站系统,公开号为CN1510608的中国专利公开的一种面 向对象的商业网站架设系统,该系统中包括有一 Web服务器、 一数据库 服务器及一数据库,其中,Web服务器运行有一网站开发平台,用于在 Web服务器上架设商业网站,该网站开发平台通过面向对象技术编程实 现,包括有多个预设类别,由这些预设类别可衍生出适用于待架设的商 业网站的商务逻辑对象。数据库服务器和数据库共同提供对网站开发平 台和待架设的商业网站所需资料的存储和访问。通过上述的系统,网站 设计者可以快速架设及简易维护商业网站;并且可以对所架设的商业网 站进行扩展,在不重新编译的情况下,修改其中的商务逻辑对象。即通 过在Web服务器上增加架设商业网站的网站开发平台,使开发人员可以 快速架设和简易维护商业网站。
可以看出,目前的网站开发及应用完全依赖于这种现有的网站系统, 在这种情况下,要开发一个网站,至少需要执行以下过程
一、 网站环境部署过程,包括
1 )购买或租用硬件服务器,可以是一台或多台;
2) 部署或租用网页下载空间;
3) 部署或者租用动态网页服务器端的开发空间;
4) 部署或者租用数据库;
5) 选取并购买一个域名,并将这个域名与自己租用或者购买的硬件 服务器绑定等;
二、 网站制作过程,包括
1) 选耳又动态网页服务器端开发语言(如Java, PHP等);
2) 设计动态网页服务需要的数据库结构;
3) 设计网站软件结构;
4) 设计网站界面,并通过HTML、 JavaScript等界面描述语言实现;
5) 用选取的动态网页服务器开发语言开发网站软件;
6) 开发测试完毕后部署到前述网站环境中。
显然,现有的网站需要具备完整的服务器、服务器端编程能力、数 据库能力,以及服务器负载和扩展能力才能提供网络应用服务;并且,需要为大量的用户访问提供足够的带宽;还需要网站开发人员具备网站 界面服务的界面设计的HTML、 JavaScript知识,动态网页的服务器端脚 本知识,数据库设计知识甚至包括架设网站环境需要的Unix/Linux等系 统管理知识。网站开发成本较高、过程复杂,并且难度较高。
因此,目前需要本领域技术人员迫切解决的一个技术问题就是如 何能够创新的提出一种网站系统,用以简化结构、提高效率、节约资源 和降低成本。

发明内容
本发明所要解决的技术问题是提供一种网站系统和基于这种网站系 统的数据交互方法,用以简化结构、提高效率、节约资源和降低成本。
为了解决上述技术问题,本发明实施例公开了一种网站系统,包括 浏览器端和Web数据库所述浏览器端包括
用户接口模块,用于提供访问所述Web数据库的接口;
所述Web数据库包括
存储模块,用于存储网站应用交互所需的数据; Web接口模块,用于接收所述浏览器端传送的用户对所述Web数据 库的访问请求;
解析模块,用于将所述请求解析成对应的一个或多个数据操作动作; 数据处理模块,用于连接所述存储模块执行所述数据搡作动作,并 返回操作结果。
优选的,所述Web数据库还包括
原子封装模块,用于将所述多个数据操作动作封装为一个搡作对象。 优选的,所述Web数据库还包括
权限控制模块,用于判断提交请求的用户是否具备相应数据的访问
权限,如果是,则触发所述解析模块。
优选的,所述浏览器传送的请求为HTTP请求,所述解析模块包括 协议解析子模块,用于将所述HTTP请求解析成对应的一个或多个
数据操作动作。
优选的,所述浏览器传送的请求为封装了 SQL类请求的HTTP请求,所述解析模块还包括
SQL解析子模块,用于解析所述SQL类请求,获得SQL执行语句。 优选的,所述用户"t妄口才莫块由标准HTML和JavaScript生成。 优选的,所述Web接口模块采用标准HTTP协议基于REST架构实现。
优选的,所述Web数据库包括Web数据库集群。 本发明实施例还公开了一种基于权1所述的网站系统进行数据交互 的方法,包括
浏览器将用户提交的Web数据库访问请求传送至Web数据库; 所述Web数据库将所述Web数据库访问请求解析成对应的一个或多 个数据操作动作,并调用存储的网站应用数据执行所述数据操作动作,
返回#:作结果。
优选的,在执行多个数据操作动作前,本方法还包括 将所述多个数据操作动作封装为一个操作对象。 优选的,在所述Web数据库接收所述请求后,本方法还包括 判断提交请求的用户是否具备相应数据的访问权限,如果是,则触 发所述解析步骤。
优选的,所述浏览器传送的请求为封装了 SQL类请求的HTTP请求, 所述解析步骤还包括
解析所述SQL类请求,获得SQL执行语句。 与现有技术相比,本发明具有以下优点
本发明通过进一 步细化网站应用的分工,即提供网络基本流量和服 务器托管服务的服务商不变(ISP),提供网站应用公共需求的服务商(即 Web数据库服务商),和提供网站应用业务的服务商(ICP)。在这种情况 下,ICP可以专心从事自己的业务,也就是用户和内容的互动的组织上, 原来的内容的存储、提取和网站建设的环节,都交给Web数据库服务 商来服务。按照本发明的分工方式,网站应用的提供商可以在很大程度 上简化结构、提高效率,达到节约成本(的目的。因为很多Web数据库 服务商(比如雅虎)本身已经具备了大范围内一致的、良好性能和高度 安全性的网站应用访问基础,因此网站应用服务商本身可以避免这样昂
7贵的网站环境建设环节的开销,而因为这样的优良的网站应用访问基础 得以多家复用,从而提高了网站环境的使用效率,从而降低了所有人的 总体拥有成本。从另一方面而言,网站应用服务商也可以避免有冗长臃 肺的全方位的开发技能和环境,可以把技能集中在纯客户端的技术和普 遍性的技术基础上,而不需要去组织很冗长臃肿的开发队伍,从而也提 高了效率、降低了成本。


图1是本发明的一种网站系统实施例1的结构框图2是本发明的一种基于图1所示的网站系统进行数据交互的流程
图3是本发明的一种网站系统实施例2的结构框图4是本发明的一种基于图3所示的网站系统进行数据交互的流程
图5是本发明的一种网站系统实施例3的结构框图6是本发明的一种基于图5所示的网站系统进行数据交互的流程
图7是一种基于本发明的网站系统进行数据交互的方法实施例的流 程图。
具体实施例方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合 附图和具体实施方式
对本发明作进一步详细的il明。
本发明可用于众多通用或专用的计算系统环境或配置中。例如个 人计算机、服务器计算机、多处理器系统、基于微处理器的系统、置顶 盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括 以上任何系统或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的 一般上下文中描 述,例如程序模块。 一般地,程序模块包括执行特定任务或实现特定抽 象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络 而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块 可以位于包括存储设备在内的本地和远程计算机存储介质中。
本发明实施例的核心构思之一在于,进一步细化网站应用的分工。
具体而言,现有技术的网站应用分工是提供基本网络流量和服务器托 管服务的服务商(ISP),和提供网站应用的服务商(ICP),对于所有网 站制作者来说,其自身都是ICP的概念,因此,它们需要自己处理所有 的服务细节,包括内容的存储、内容的提取、内容的展现以及网站环境 的建设、维护等等(比如采购服务器、部署服务器、日常运维、监控等 等)以及在用户与内容之间互动的组织。而本发明提出的网站应用分工 是提供网络基本流量和服务器托管服务的服务商不变(ISP),提供网站 应用公共需求的服务商(即Web数据库服务商),和提供网站应用业务的 服务商(ICP)。在这种情况下,ICP可以专心从事自己的业务,也就是用 户和内容的互动的组织上,原来的内容的存储、提取和网站建设的环 节,都交给Web数据库服务商来服务。按照本发明的分工方式,网站应 用的提供商可以在很大程度上简化结构、提高效率,达到节约成本(的 目的。因为很多Web数据库服务商(比如雅虎)本身已经具备了大范围 内一致的、良好性能和高度安全性的网站应用访问基础,因此网站应用 服务商本身可以避免这样昂贵的网站环境建设环节的开销,而因为这样
的优良的网站应用访问基础得以多家复用,从而提高了网站环境的使用 效率,从而降低了所有人的总体拥有成本。从另一方面而言,网站应用 服务商也可以避免有冗长臃肺的全方位的开发技能和环境,可以把技能 集中在纯客户端的技术和普遍性的技术基础上,而不需要去组织很冗长 臃肺的开发队伍,从而也提高了效率、降低了成本。
参考图1,示出了本发明的一种网站系统架构的结构框图,可以包括 以下模块
浏览器端101,可以包括
用户接口模块ioil,用于提供访问所述Web数据库的接口; 优选的,所述用户"l妻口才莫块可以-使用标准的HTML和JavaScript,或者其它标准的浏览器支持技术生成,无需实现任何浏览器插件,或对浏
览器进行扩展,只需标准的浏览网站功能支持即可; Web数据库102,可以包括
存储模块1021,用于存储网站应用交互所需的数据; Web接口模块1022,接收所述浏览器端传送的用户对所述Web数据 库的访问i青求;
优选的,所述Web接口模块采用标准HTTP协议基于REST架构实 现。公知的是,REST (Representational State Transfer)是一种针对网络 应用的设计和开发方式,具有一些设计概念和准则,诸如l.网络上的所 有事物都被抽象为资源(resource); 2.每个资源对应一个唯一的资源标识 (resource identifier ); 3.通过通用的连接器接口 ( generic connector interface)对资源进行操作;4.对资源的各种操作不会改变资源标识;5. 所有的操作都是无状态的(stateless )。
解析模块1023,用于将所述请求解析成对应的一个或多个数据操作 动作;
数据处理模块1024,用于连接所述存储模块1021执行所述数据操作 动作,并返回操作结果。
参考图2,示出了基于图1所示的网站系统进行数据交互的流程图, 具体可以包括以下步骤
步骤201、浏览器端的用户接口模块将用户提交的Web数据库访问 请求传送至所述Web数据库的Web接口才莫块;
步骤202、所述Web数据库的解析模块将所述Web数据库访问请求 解析成对应的一个或多个数据操作动作,并传递给数据处理模块;
步骤203、所述数据处理模块连接所述存储模块执行所述数据操作动 作,并返回操作结果。
可以看出,本发明实现了一个零服务器端(无需CGI、无需数据库, 只需要HTML和JavaScript)的新一代的网站架构,以简化开发流程、降 低网站成本;提高了网站(应用)的灵活性以及扩展网站(应用)开发 的范围。本发明的改进之处之一在于,将对Web数据库的操作推进到了 浏览器端,也就是说,直接在用户的浏览器端发起对Web数据库的查询
10和调用,以此来实现网站应用的交互。在这种情况下,用户至少可以省 却一个访问数据库的动态网页环节,因而简化了整个网站架构、降低了 成本,同时简化了网站开发的过程。
在实际中,为满足数据服务的需求,所述Web数据库也可以为一个 数据库集群。例如,所述Web数据库可以为单机版PostgreSQL数据库和 基于PL/Proxy的PostgreSQL数据库集群。需要说明的是,尽管本发明 自身带有单机版的数据库和/或数据库集群,但还可以拥有其他关系型数 据库作为后台,比如mysql数据库,MS SQL Server数据库,以及Oracle 数据库等。即本发明为一种后端"即插即用"的松散式体系结构。在这种情 况下,开发人员可以很容易地更换本发明的后端,或者开发新的后端。
本发明的又一改进之处在于,在Web数据库的Web接口模块实现了 可编程的Web service。具体而言,现有技术中的Web service大多通过 固化在服务器上的代码来提供针对特定应用目的和业务逻辑的接口 。而 本发明提供的服务则与具体的应用目的和业务逻辑无关,用户在客户端 可以通过本发明提供的服务,自己定义新的接口和功能。例如
1) 本发明的web service界面直接提供了 RestyScript语言,来让 用户自己定义参数化的视图对象(即view),来生成全新的查询接口 ,从 而实现对浏览器端进行数据库访问接口的个性化扩展。需要说明的是, RestyScript是一种用于web service编程的混合语言。它在语法上是标 准SQL的一个非严格子集与HTTP命令记法的一种混合方式。 RestyScript中的语句可以是一个类SQL语句,如
update Post set comments = comments + 1 where Post.id = 5;
也可以是一条类HTTP命令,如
PUT V=/model/Post/id/5' { "comments": 2 };
还可以混合在一起(以分号分隔),从而构成一个语句序列。 RestyScript中可以使用参量变量,比如$var,来定义RestyScript模板, 从而可以在使用时通过用户提供不同的参量值,从模板生成与之对应的 最终的RestyScript脚本。RestyScript中还可以添加对条件分支语句, 循环语句和结果集变量的支持。
2) 本发明的web service界面直接提供了 JavaScript语言来定义数3)本发明的web service界面允许把用户的多个请求,连同 RestyScript的数据修改及删除操作封装成一个整体,形成action对象, 从而形成一个新的操作接口 ,供随后反复调用。同时,如此得到的action 对象是保证事务性和原子性的。这点可以参考本说明书中系统实施例2 和方法实施例2中的相关描述,在此就不详述了。
同时,相较于现有的 web浏览器对 AJAX ( Asynchronous JavaScript and XML,异步JavaScript和XML, —种创建交互式网页应用 的网页开发技术)请求的跨域操作有严格的限制。本发明在其web service 接口中提供了相应的选项供用户开启对跨域AJAX请求的额外支持。因 此,可以直接在客户端JavaScript代码中访问这些服务。借助于本发明 的这种具有跨域功能的web service,用户可以使用纯客户端JavaScript 语言编写整个网站,而不依赖于传统的服务器编程环境的支持,比如 PHP, Java, .NET, Python, Ruby, 和Perl等等服务器端编程语言, 从而实现了纯客户端的零部署成本的网站。
优选的,所述浏览器传送的请求为HTTP请求,在这种情况下,所 述解析模块可以包括
协议解析子模块,用于将所述HTTP请求解析成对应的一个或多个 数据操作动作。
基于前述描述可以得知,所述浏览器端传送的请求不仅可以包括直 接数据的HTTP请求,还可以先将SQL类请求封装在HTTP请求中,通 过浏览器内置的HTTP引擎进行数据的收发,再将该请求传送至Web数 据库端。即在这种情况下,所述浏览器传送的请求为封装了 SQL类请求 的HTTP请求,所述解析模块则还可以包括
SQL解析子模块,用于解析所述SQL类请求,获得SQL执行语句。
在Web数据库端的Web接口模块接收浏览器发送过来的、封装了 SQL类请求的HTTP请求之后,可以解析出对应的SQL请求,然后传递 给Web数据库底层的SQL数据库进行处理,最后经逆顺序返回,从而实 现了浏览器端对SQL数据库的访问。
需要说明的是,所述直接数据请求通常对应参数式的数据操作方法;
12SQL类请求则对应SQL语言描述的数据操作方法。SQL是Structured Query Language (结构化查询语言)的缩写。SQL是专为数据库而建立的 操作命令集,是高级的非过程化编程语言,允许用户在高层数据结构上 工作。其不要求用户指定对数据的存放方法,也不需要用户了解具体的 数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用 相同的SQL语言作为数据输入与管理的接口。所述SQL类请求相对于直 接数据请求更加灵活,也是本发明可以省略服务器的关键点所在,即通 过Web数据库的SQL语句操作,实现现有服务器的相应功能。
以下分别通过两个例子来说明针对不同请求处理的情形。
例1、直接数据请求举例
假如用户发起同时获取用户账户的积分以及用户所在地的天气的请 求,相应的过程为
步骤A1、用户发起请求,在浏览器端生成类似以下代码所示的请求 命令
<请求〉用户余额<参数〉用户10<参数值〉123</参数值〉</参数><参数 〉密码<参数值〉456</参数值〉</参数></请求〉<请求>天气<参数〉地区 <参 数值>北京</参数></参数></请求〉
步骤A2、 Web数据库端的Web接口模块收到请求后,通过解析模块 把上面的类XML的数据解析成两个请求, 一个是请求用户余额,参数是 值为123的用户ID、密码为456;另外一个是请求天气,参数是值为北 京的地区;
步骤A3、数据处理一莫块进行如下处理
A31、 ^是耳又用户的ID和密码,;险查是否正确,如果不正确,就返回 错误提示信息;如果ID和密码正确,则查询用户余额; A32、查询北京的天气
A33、把余额和北京天气组装成返回数据返回。 例2、 SQL类请求举例
假如用户发起同时获取用户账户的积分以及用户所在地的天气的请 求,相应的过程为
步骤B1、用户发起请求,在浏览器端生成类似下面这样的请求命令POST /=/model/q=,select余额from用户表where用户ID=123 and 用户密码二456join (select天气from天气表where地址=北京)b on (1=1)'
步骤B2、 Web数据库端的Web接口模块收到请求后,判断是SQL 类请求,于是对该SQL类请求进行分析,确认没有安全漏洞后,进入下 一步;
步骤B3、解析模块解析出相应的SQL执行语句; 步骤B4、数据处理模块根据所述SQL执行语句进行如下处理 B41、服务器对数据库调用SQL语句select余额from用户表where 用户ID=123and用户密码=456 4企查用户的权限是否正确,如果不正确, 则返回错误;如果正确,则数据库执行SQL语句select余额from用户 表where用户ID=123 and用户密码^456join (select天气from天气 表where地址=北京)b on ( 1=1 ) 获取结果;
B42、服务器将结果集组装成返回数据返回给用户。
参考图3,示出了本发明的一种网站系统实施例2的结构框架图,可 以包括浏览器端201和Web数据库202: 所述浏览器端可以包括
用户接口模块2011,用于提供访问所述Web数据库的接口 ;
所述Web数据库202可以包括
存储模块2021,用于存储网站应用交互所需的数据;
Web接口模块2022,用于接收所述浏览器端传送的用户对所述Web 数据库的访问请求;
解析模块2023,用于将所述请求解析成对应的一个或多个数据操作 动作;
原子封装模块2024,用于将所述多个数据操作动作封装为一个操作 对象;
数据处理模块2025,用于连接所述存储模块执行所述数据操作动作, 并返回操作结果。
参考图4,示出了基于图3所示的网站系统进行数据交互的流程图,具体可以包括以下步骤
步骤401、浏览器端的用户接口模块将用户提交的Web数据库访问 请求传送至所述Web数据库的Web接口模块;
步骤402、所述解析模块将所述Web数据库访问请求解析成对应的 一个或多个数据操作动作,并将多个数据操作动作通过原子封装模块封 装成一个操作对象,传递给数据处理模块;
步骤403、所述数据处理模块连接所述存储模块执行所述数据操作动 作,并返回操作结果。
在实际中,所述封装具有原子性, 一个原子(即一个个操作对象) 操作成功,则它包含的所有独立操作都成功;否则所包含的独立才喿作都 失败。即把若干个独立操作当作一个整体来看待。所述封装操作可以理 解为将一组操作封装为一种类似编程语中的"函数"的实体(即Action)。 该实体可以带参数,并且有名字。用户创建了 Action之后,就可以在web service的接口中使用不同的实际参数反复调用。即相当于扩展了 web service的接口。 一个Action可以调用其他的Action;同时,有名字的 Action可以实现直4妻或者间4^的调归调用,从而可以实现更高层次的复 用。
需要说明的是,前述REST规范中的"无状态",是指每个HTTP请 求本身包含了执行目标操作所需的所有信息,与本发明的原子封装模块 实现原子性批处理的操作并不矛盾,本发明可以将需要保证原子性的多 个操作封装在一个Action实体中,因此对于该Action的定义和调用而 言,仍是在一次HTTP请求中完成,而且确实在这样的请求中编码了所 有所需的信息,因此仍是"无状态,,的。
以下通过一 个具体的例子进一 步说明本发明的原子封装模块。 假设通过HTTP协议在Web数据库端创建了名为Foo的Action

POST /=/action/Foo
{ "definition": "POST /=/model/Comment/ /~ { V'authorV': $author, V'commentV': $comment , V'postV': $post—id }; update Post set comments_count = comments—count + 1 where id : $post_id" }可以看出,Action Foo包含了两个操作,第一个操作是
POST /=/model/Comment/~/~ { "author": $author , "comment":
$ comment,
"post": $post—id };
这是一条类HTTP动作。它的含义是向名为Comment的Model
中插入一条记录,它引用了 3个待定参量,$author,$comment, 和
$post—id。
第二个操作是
update Post set comments—count = comments—count + 1 where id = $post—id
这是一个类SQL操作。它的含义是将Post这个Model中的id 为 $post—id的行的 comments—count增 一 。其中,$post—id和前面的 $post—id引用的是同一个待定参量。
在这种情况下,浏览器端可以使用不同的参量值来调用这个Foo Action ; 例 如 , GET
/=/action/Foo/~/~ author=agentzh&comment=Hello&post—id=5
以上调用就将值'agentzh', 'Hello', 和'5'分别绑定到了参量 $ author,
$comment,和$post—id上。
jt匕夕卜,还可以在定义的其4也Action中i周用Foo Action,比^口 POST /=/action/Bar
{"definition": "GET/=/action/Foo/~/ ?author=$author&comment=$com ment—l&post—id=$post—id;
GET/=/action/Foo/ /~ author=$author—2&comment=$comment—2&post
—id" }
此时通过相应的参数调用Bar Action就一次性实现了对Foo Action 的两次调用。
简而言之,本发明可以通过先定义
define—action :action—name=action—l&action—2&action—3
后使用
16some—url/action—name
即可以预先存储的(定义),然后再具体执行的,设计使用上更加灵 活、方便,并且更容易实现很复杂的动作,比如,
可以"t巴两个预定义的action—name纟且合成新的action: define—action :action一namel =action—l&action—2 define—action: action—name2=action—3&action—4 define—action:action—name3=action—namel&action—name2 然后调用
some—url/action—name3
实际上就调用了 action—name 1和action—name2。 当然,上述封装方法仅仅用于示例,本领域技术人员根据实际需要 或经验釆用任一种封装操作都是可行的,本发明对此不需要进行限定。
参考图5,示出了本发明的一种网站系统实施例3的结构框架图,可 以包括浏览器端501和Web数据库502: 所述浏览器端可以包括
用户接口模块5011,用于提供访问所述Web数据库的接口 ;
所述Web数据库502可以包括
存储模块5021,用于存储网站应用交互所需的数据;
Web接口模块5022,用于接收所述浏览器端传送的用户对所述Web 数据库的访问请求;
权限控制模块5023,用于判断提交请求的用户是否具备相应数据的 访问权限,如果是,则触发所述原子封装模块。
解析模块5024,用于将所述请求解析成对应的一个或多个数据操作 动作;
原子封装模块5025,用于将所述多个数据操作动作封装为一个操作 对象;
数据处理模块5026,用于连接所述存储模块执行所述数据操作动作, 并返回操作结果。
参考图6,示出了基于图5所示的网站系统进行数据交互的流程图,
17具体可以包括以下步骤
步骤601、浏览器端的用户接口模块将用户提交的Web数据库访问 请求传送至所述Web数据库的Web接口模块;
步骤602、权限控制模块判断提交请求的用户是否具备相应数据的访 问权限,如果是,则触发所述解析模块执行步骤603;
步骤603、所述解析模块将所述Web数据库访问请求解析成对应的 一个或多个数据操作动作,并将多个数据操作动作通过原子封装模块封 装成一个操作对象,传递给数据处理模块;
步骤604、所述数据处理模块连接所述存储模块执行所述数据操作动 作,并返回操作结果。
在实际中,如果提交请求的用户没有相应数据的访问权限,可以向 用户提示错误信息,并禁止用户的访问操作。
可以看出,本发明的又一改进之处在于,在web service 内建了咒整 的角色系统。角色是一阶对象,即其地位与Model及View相同。通过 用户接口可以对角色对象自身进行操作,而角色对象所关联的访问控制 规则又反过来约束了当前用户所能进行的操作。具有足够权限的用户才 能通过web service接口创建新的角色,或者修改已有的角色。角色可以 通过密码,匿名,以及完成验证码图片(captcha)等多种方式进4亍身4分 验证。角色也可以通过继承方式加以创建。角色的访问控制规则(ACL) 定义了接口中哪些操作是允许的。每一条规则都是一个二元组。二元组 由对应操作的HTTP动作和该动作所作用的URL模式所组成。优选 的,还可以通过HTTP动作和该动作所作用的URL模式以及URL强制 参数这一三元组的方式来描述ACL访问控制规则。因此角色的ACL规 则可以在整个数据库接口中精确而完整地定义该角色能访问的资源以及 操作。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间 相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施 例的不同之处。
参考图7, 一种基于本发明的网站系统进行数据交互的方法实施例的
18流程图,具体可以包括以下步骤
步骤701 、浏览器将用户提交的Web数据库访问请求传送至Web数 据库;
步骤702、所述Web数据库判断提交请求的用户是否具备相应数据 的访问权限,如果是,则执行步骤703;
步骤703、将所述Web数据库访问请求解析成对应的一个或多个数 据操作动作,将所述多个数据操作动作封装为一个操作对象,并调用存 储的网站应用数据执行所述数据操作动作,返回操作结果。
优选的,所述浏览器传送的请求为封装了 SQL类请求的HTTP请求, 所述解析步骤还包括解析所述SQL类请求,获得SQL执行语句。
由于图7所示的方法在本发明的网站系统上完成,相关内容和详细 的实施过程可以参考前述系统实施例中的相应部分,在此就不再赘述了 。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其 都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并 不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其 他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所 描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发 明所必须的。
基于本发明网站系统的网站开发过程则可以为
一、 网站环境部署过程,包括 1)选取并购买合适的域名;
2 )租用或者购买提供HTML、 JavaScript下载的空间;
3) 选用一个合适的Web数据库提供商;
4) 绑定自己的域名;
二、 网站制作过程,包括
1 )设计网站数据库;
2 )设计网站界面和业务逻辑,可以用HTML和JavaScript实现;
3 )将设计开发成具体的HTML和JavaScript代码;
4)将开发的代码部署到前述租用或购买的下载的空间。 基于上述开发过程可以看出,本领域技术人员只需要了解数据库基本知识和HTML、 JavaScript知识即可,而无需完整掌握服务器端开发语 言的知识,和现有的网站环境架设的大部分知识,只要懂得如何上传 HTML 、 JavaScript文件到自己的购买和绑定的域名对应的空间即可。
以上对本发明所提供的一种网站系统和一种基于该网站系统进行数 据交互的方法进行了详细介绍,本文中应用了具体个例对本发明的原理 及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的 方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的 思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说 明书内容不应理解为对本发明的限制。
权利要求
1、一种网站系统,其特征在于,包括浏览器端和Web数据库所述浏览器端包括用户接口模块,用于提供访问所述Web数据库的接口;所述Web数据库包括存储模块,用于存储网站应用交互所需的数据;Web接口模块,用于接收所述浏览器端传送的用户对所述Web数据库的访问请求;解析模块,用于将所述请求解析成对应的一个或多个数据操作动作;数据处理模块,用于连接所述存储模块执行所述数据操作动作,并返回操作结果。
2、 如权利要求1所述的网站系统,其特征在于,所述Web数据库还 包括原子封装模块,用于将所述多个数据操作动作封装为一个操作对象。
3、 如权利要求2所述的网站系统,其特征在于,所述Web数据库还 包括权限控制模块,用于判断提交请求的用户是否具备相应数据的访问 权限,如果是,则触发所述解析模块。
4、 如权利要求3所述的网站系统,其特征在于,所述浏览器传送的 请求为HTTP请求,所述解析模块包括协议解析子模块,用于将所述HTTP请求解析成对应的一个或多个 数据操作动作。
5、 如权利要求4所述的网站系统,其特征在于,所述浏览器传送的 请求为封装了 SQL类请求的HTTP请求,所述解析模块还包括SQL解析子模块,用于解析所述SQL类请求,获得SQL执行语句。
6、 如上述任一项权利要求所述的网站系统,其特征在于,所述用户 接口才莫块由标准HTML和JavaScript生成。
7、 如权利要求6所述的网站系统,其特征在于,所述Web接口模块 采用标准HTTP协议基于REST架构实现。
8、 如权利要求7所述的网站系统,其特征在于,所述Web数据库包 括Web数据库集群。
9、 一种基于权1所述的网站系统进行数据交互的方法,其特征在于, 包括浏览器将用户提交的Web数据库访问请求传送至Web数据库; 所述Web数据库将所述Web数据库访问请求解析成对应的一个或多个数据操作动作,并调用存储的网站应用数据执行所述数据操作动作,返回操作结果。
10、 如权利要求9所述的方法,其特征在于,在执行多个数据操作 动作前,还包4舌将所述多个数据操作动作封装为 一个操作对象。
11、 如权利要求IO所述的方法,其特征在于,在所述Web数据库接 收所述请求后,还包括判断提交请求的用户是否具备相应数据的访问权限,如果是,则触 发所述解析步骤。
12、 如权利要求9所述的方法,其特征在于,所述浏览器传送的请 求为封装了 SQL类请求的HTTP请求,所述解析步骤还包括解析所述SQL类请求,获得SQL执行语句。
全文摘要
本发明公开了一种网站系统,包括浏览器端和Web数据库所述浏览器端包括用户接口模块,用于提供访问所述Web数据库的接口;所述Web数据库包括存储模块,用于存储网站应用交互所需的数据;Web接口模块,用于接收所述浏览器端传送的用户对所述Web数据库的访问请求;解析模块,用于将所述请求解析成对应的一个或多个数据操作动作;数据处理模块,用于连接所述存储模块执行所述数据操作动作,并返回操作结果。本发明可以简化结构、提高效率、节约资源和降低成本。
文档编号H04L29/08GK101582066SQ200810098120
公开日2009年11月18日 申请日期2008年5月13日 优先权日2008年5月13日
发明者何伟平 申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1