探讨一种基于存储过程的web service模型

    本小菜初来cnblogs,看园里各位大神写的博客心向往之,于是开了写博客的权限。想着得乘热打铁写点什么才能止住我三分钟热度的一贯心态,于是有了这篇博文。

    想法的来源是实际工作中,我们部门的做法是将大多数业务逻辑都做在存储过程里面,服务器端仅仅做一些登录验证、权限校验的零碎逻辑。于是我想,能不能以后工作都不用涉及到服务器端代码的编写,新增或修改功能仅仅只变动存储过程就能实现了?

    我设想的结构是这样的(如下图)。

    Web Service负责接收请求(来自客户端或网页),将请求路由到正确的存储过程,校验身份是否合法,校验参数是否合法,然后执行存储过程,将存储过程的结果包装成json格式返回给请求者。整个流程如下:

    首先,网页或者客户端发起一个http请求,post参数包括请求服务名称(service),动作名称(action),用户名(user),密码(pass)和业务参数。服务器根据服务名称和动作名称按一定规则路由到某一条存储过程,例如service:teacher,action:getScore,对应的存储过程是teacher_getscore。服务器根据用户名密码验证用户是否有操作该存储过程的权限,此处为实现RESTful,服务器不维护登录状态等信息,所以每一次请求都需要客户端传送用户名和密码。尔后验证post参数名称和参数类型是否与存储过程的输入参数一致。如果准备工作都没问题,服务器将同名POST参数赋值给存储过程,执行存储过程。存储过程的结果集自动打包成json格式发送到请求者。

    整个执行过程期间如果出现错误会返回错误信息给请求者。

    这个设计有如下好处:

  1. 修改方便:添加、修改、删除功能只需要增加前端页面和存储过程,不需要服务器端编译,也就不需要停机维护。
  2. 减小编写难度:sql语句和前端js相比服务器语言难度较小。
  3. 提高性能?:业务逻辑全在数据库执行,减小了数据库与服务器通讯的代价。

    以上只是我的一个不成熟的想法,欢迎各位指导批评,或者有现成类似想法的开源实现?也请大家告知。

转载于:https://www.cnblogs.com/bennyzhao/archive/2013/05/01/3053532.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Web上信息就像一条河流,从我们身边不停流过。已经有很多人认识到这些信息的价值,从而展开了对Web信息多方面的研究。本文阐述的内容就是基于这些研究,并希望能够对他人的相关工作带来方便。文章围绕的中心是Web数据的高效获取与存储,为此也专门研究了信息在Web上大量重复出现的现象和原因。 本文的主要内容包括: (1) 有关Web信息状况的一些统计数据,结合一些Web的基本概念,这些数据让读者对Web宏观上能有一些具体的认识。这是理解本文其他部分的基础, (2) 提出了同义主机的概念。在Web上有很多不同的域名代表着相同的主机,负责获取网页的系统如果不知道这种信息,就会重复的获取这台主机上的网页。这样导致网络资源和机器资源的浪费,并且对相应的Web服务器也造成额外负担,本文通过分析IP地址与域名的关系,总结出哪些主机名有同义关系,从而避免了网页的重复获取;另外,对于消除Web上存在的重复或相似的网页,本文提出了多种算法,一一进行评测,并选择最好的用于实际的网页消重中。 (3) 本文还具体的讨论了Web数据获取系统的设计目标,并给出了计算系统效率的方法。然后参照这些设计目标,比较了两种具体的收集系统结构。 (4) 同时,论文还基于Web InfoMall的目标,给出了一种海量网页存储系统的设计方案以及实现的种种考虑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值