业务开发方法及装置的制作方法

文档序号:6381852阅读:120来源:国知局
专利名称:业务开发方法及装置的制作方法
技术领域
本发明涉及计算机领域,尤其涉及一种业务开发方法及装置。
背景技术
JavaScript是一种基于对象和事件驱动并且具有相对安全性的客户端脚本语言,被广泛用于WEB开发给HTML (Hypertext Markup Language,超文本标记语言)网页添加动态功能。Mozilla Rhino是一个完全使用Java语言编写的开源JavaScript实现,常被用于Java程序中,为最终用户提供脚本化能力。SOA (Service Oriented Architecture,面向服务架构)是一个组件模型,用于将应用程序中不同的功能单元(即服务)通过定义良好的接口和契约联系起来。ESB (Enterprise Service Bus,企业服务总线)为企业及应用中分散的服务提供定位,路由,集成,管理等功能,是SOA系统中核心基础设施。在SOA系统中,组成系统的所有组件都被看成是服务,服务层是SOA的基础,所有的业务逻辑都通过服务来实现,为了快速满足灵活多变的业务需求,维护人员需要开发不同的服务来实现,这样就出现了不断开发新需求的问题,常见的处理方式有如下两种1,重新定义,开发业务服务来满足新需求。这种方式是最常用的方式,主要的缺点是一方面整个系统中服务的复用率不高,随着业务需求的不断增加,业务模块重复开发严重,造成资源浪费;另一方面业务模块界限不清,导致维护难度增大;2,对现有的接口进行改造来满足新需求。这种方式对原服务产生潜在影响,增加了原服务的复杂度,需要重新进行回归测试,同时也增加维护难度。在软件工程中,“高内聚低耦合”一直是软件系统建设追求的技术目标,高内聚低耦合的系统具有更好的重用性、维护性和扩展性。在SOA系统中,所有的业务逻辑都是由服务这一原子组件实现,每个业务都是由单独的服务来实现,但服务与服务不能互相调用,导致系统中的服务越来越多,维护难度增大。

发明内容
本发明所要解决的技术问题是提供一种业务开发方法及装置,提高业务需求的处理速度,提高原子服务的复用率。为解决上述技术问题,本发明提出了一种业务开发方法,包括获取与业务需求相关的原子服务;将所述原子服务组装成复合服务;发布所述复合服务。进一步地,上述业务开发方法还可具有以下特点,在所述发布所述复合服务之后还包括运行所述复合服务。
进一步地,上述业务开发方法还可具有以下特点,所述将所述原子服务组装成复合服务包括将所述原子服务组装成多个第一复合服务;将所述多个第一复合服务组装成第二复合服务,所述第二复合服务为与所述业务需求对应的服务。进一步地,上述业务开发方法还可具有以下特点,所述将所述原子服务组装成复合服务通过Mozilla Rhino脚本引擎将前台页面编写的JavaScript代码段进行解析并编译成Java字节码的方式实现。为解决上述技术问题,本发明还提出了一种业务开发装置,包括获取模块,用于获取与业务需求相关的原子服务;组装模块,用于将所述获取模块获取的原子服务组装成复合服务;发布模块,用于发布所述组装模块组装的复合服务。进一步地,上述业务开发装置还可具有以下特点,还包括运行模块,用于运行所述复合服务。进一步地,上述业务开发装置还可具有以下特点,所述组装模块包括第一组装单元,用于将所述原子服务组装成多个第一复合服务;第二组装单元,用于将所述多个第一复合服务组装成第二复合服务,所述第二复合服务为与所述业务需求对应的服务。进一步地,上述业务开发装置还可具有以下特点,所述组装模块通过MozillaRhino脚本引擎将前台页面编写的JavaScript代码段进行解析并编译成Java字节码的方式实现将所述原子服务组装成复合服务。本发明的业务开发方法及装置,基于脚本引擎Mozilla Rhino通过在页面编写JavaScript脚本语言,将原子服务进行组装编排形成新的复合服务,这种方式降低了新业务需求的响应时间,提高了新业务需求的处理速度,提高了原子服务的复用率,易于维护,是实现SOA系统“高内聚低耦合”目标的有效手段。


图1为将原子服务组装成复合服务的示意图。
具体实施例方式本发明的主要构思是通过脚本引擎Mozilla Rhino将前台页面编写的JavaScript代码段进行解析并编译成能正常运行的Java字节码,当调用服务的时候服务器端直接运行这些Java字节码,这种方式相当于在不更改服务器端的情况下通过JavaScript脚本动态地扩展了服务器端的功能。以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。本发明提出了一种业务开发方法,该业务开发方法包括如下步骤步骤一,获取与业务需求相关的原子服务;其中,原子服务是指对业务系统或者源业务系统提供的业务接口,不进行任何数据改造和转换逻辑,直接发布成Web服务,该服务的业务逻辑,请求和响应与源业务系统业务接口保持一致,这种服务称为原子服务。与业务需求相关的原子服务可以由业务专家进行业务梳理后得到。通过业务梳理,业务专家会输出业务需求和原子服务的对应关系,并梳理出业务需求的业务逻辑。步骤二,将步骤一获取的原子服务组装成复合服务;复合服务是对若干个原子服务进行逻辑编排、重新组装成的新的Web服务。例如调用一个原子服务A,当调用结果返回正确时,则调用原子服务B,否则调用原子服务C,此由原子服务A、原子服务B和原子服务C组成的服务即为复合服务,此服务在源业务系统中并不存在。对于简单的业务需求,可以由原子服务直接组装成与业务需求对应的复合服务。对于复杂的业务需求,则需要由原子服务组装成多个第一级的复合服务,再由该多个第一 级的复合服务组装成多个第二级的复合服务……,最终组装成与业务需求对应的服务。下面以图1为例,说明在复杂的业务需求下,由原子服务组装成与业务需求对应的服务的过程。图1为将原子服务组装成复合服务的示意图。如图1所示,首先,将原子服务1、原子服务2和原子服务3组装成复合服务1,将原子服务3、原子服务4和原子服务5组装成复合服务2 ;然后,将复合服务I和复合服务2再组装成复合服务3。复合服务3就是与业务需求对应的服务。下面给出图1中复合服务3的组装过程(I)业务人员梳理出需求和原子服务1-5的业务逻辑关系;(2)发布原子服务1-5这5个原子服务;(3)根据业务逻辑,调用原子服务1-3这3个原子服务,组装服务复合服务I ;//获取输入参数,对输入参数进行重新组装以调用原子服务I vai ruot=pin. getRootElementO;
var masterServIdNode = root. selectSingleNode("MASTER_SERV_ID");var serviceNoNode = root. selectSingleNode("PHONE-NO");var pinl = "< xral version=/1 0 encoding=' GBK' standalone=' no' ><R00TXBIND-PH0NE_N0 type=' string' >" + serviceNoNode. getText () +"〈/BIND—PHONE—NOXID—TYPE type='string' >1</ID—TYPEXREGION—IDtype='string'>11</REGI0N_ID></R00T>";
//获取原子服务I返回结果,并可对返回结果进行解析 vai outl = ESB. epCall ("原子服务 1", pinl); var outlRoot = outl. getRootElementO ;
VarIdNoNode= outlRoot. selectSingleNode ("OUT-DATA/DATA/ID-NO");
//同理,调用原子服务2获取返回结果,并对返回结果进行解析
var pin2 =组装输入参数;
var out2 = ESB. epCall ("原子服务 2", pin2);
vdi out2Root = out2. getRootElement ();
var IdNoNode= out2Root. selectSingleNode ("OUT_DATA/DATA/ID_NO");
//调用服务3,并返回复合服务I的结果 If (idNoNode == idNoNode) { var pin2 =组装输入参数;
return ESB. epCalI (”原子服务 3", pin3);
}(4)同理,根据业务逻辑,调用原子服务3-5,组装服务复合服务2 ;(5)同理,再把复合服务1、服务服务2组装为复合服务3。具体地,步骤二可以通过Mozilla Rhino脚本引擎将前台页面编写的JavaScript代码段进行解析并编译成Java字节码的方式实现。通过本发明,可以通过运用顺序、条件判断、循环、入参出参格式转换、调用原子服务等手段将系统中众多的原子服务任意组装、编排,定制灵活的业务逻辑,快速实现业务需求。在系统原子服务业务逻辑划分清晰,粒度合适的情况下,这种方式的好处更加显而易见,所有的业务需求都能通过组装原子服务来实现,真正实现积木式开发,系统上线后业务人员在熟悉JavaScript脚本的情况也能自行组装新服务快速满足新业务需求。本发明使用JavaScript脚本语言,JavaScript脚本语言已经标准化,应用广泛、简单灵活,且学习成本低,适合业务人员学习。步骤三,发布步骤二组装好的复合服务;通过ESB提供的发布复合服务页面,将JavaScript脚本传输到服务器端,在输入过程中,可以对用户输入的脚本进行提示和自动补全,如在输入脚本Example,call ( “service”)时,当用户输入完Example后,在输入”时,系统会将Example类中所有的public方法签名提示给用户供用户选择。在页面输入完脚本后,点击提交将脚本提交到服务器端,服务器端会对这段脚本进行编译,如果脚本有误页面会提示用户修改脚本重新提交,服务器端通过Rhino将正确的脚本编译为Java Class字节码并存储起来,新发布的服务是停止状态的,需要通过页面进行启动后才能被调用。步骤四,运行步骤三发布的复合服务。服务成功发布并启动后,能对新复合服务进行调用,通过调用对服务进行业务功能测试。本发明的业务开发方法,对于熟悉业务和了解JavaScript脚本的人来说非常简单易行,整个开发过程耗时很短,开发一个新业务需求平均不到2个小时,在客户业务需求复杂多变且需要及时响应的情况这种方式尤其有效。下面通过一个应用实例来说明本发明业务开发方法的具体执行过程1、在 http://www.mozilla.org/rhino/ 上下载 js. jar,将 js. jar 加入到classpath中,Rhino需要1.1及以上的Java版本;2、编写用于脚本引用的类,如下所示
权利要求
1.一种业务开发方法,其特征在于,包括获取与业务需求相关的原子服务;将所述原子服务组装成复合服务;发布所述复合服务。
2.根据权利要求1所述的业务开发方法,其特征在于,在所述发布所述复合服务之后还包括运行所述复合服务。
3.根据权利要求1所述的业务开发方法,其特征在于,所述将所述原子服务组装成复合服务包括将所述原子服务组装成多个第一复合服务;将所述多个第一复合服务组装成第二复合服务,所述第二复合服务为与所述业务需求对应的服务。
4.根据权利要求1所述的业务开发方法,其特征在于,所述将所述原子服务组装成复合服务通过Mozilla Rhino脚本引擎将前台页面编写的JavaScript代码段进行解析并编译成Java字节码的方式实现。
5.一种业务开发装置,其特征在于,包括获取模块,用于获取与业务需求相关的原子服务;组装模块,用于将所述获取模块获取的原子服务组装成复合服务;发布模块,用于发布所述组装模块组装的复合服务。
6.根据权利要求5所述的业务开发装置,其特征在于,还包括运行模块,用于运行所述复合服务。
7.根据权利要求5所述的业务开发装置,其特征在于,所述组装模块包括第一组装单元,用于将所述原子服务组装成多个第一复合服务;第二组装单元,用于将所述多个第一复合服务组装成第二复合服务,所述第二复合服务为与所述业务需求对应的服务。
8.根据权利要求5所述的业务开发装置,其特征在于,所述组装模块通过Mozilla Rhino脚本引擎将前台页面编写的JavaScript代码段进行解析并编译成Java字节码的方式实现将所述原子服务组装成复合服务。
全文摘要
本发明涉及一种业务开发方法及装置。业务开发方法包括获取与业务需求相关的原子服务;将所述原子服务组装成复合服务;发布所述复合服务。业务开发装置包括获取模块,用于获取与业务需求相关的原子服务;组装模块,用于将所述获取模块获取的原子服务组装成复合服务;发布模块,用于发布所述组装模块组装的复合服务。本发明的业务开发方法及装置,基于脚本引擎Mozilla Rhino通过在页面编写JavaScript脚本语言,将原子服务进行组装编排形成新的复合服务,这种方式降低了新业务需求的响应时间,提高了新业务需求的处理速度,提高了原子服务的复用率,易于维护,是实现SOA系统“高内聚低耦合”目标的有效手段。
文档编号G06F9/44GK102999338SQ20121047338
公开日2013年3月27日 申请日期2012年11月20日 优先权日2012年11月20日
发明者郑亚群 申请人:北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1