CN102999338A - 业务开发方法及装置 - Google Patents
业务开发方法及装置 Download PDFInfo
- Publication number
- CN102999338A CN102999338A CN2012104733873A CN201210473387A CN102999338A CN 102999338 A CN102999338 A CN 102999338A CN 2012104733873 A CN2012104733873 A CN 2012104733873A CN 201210473387 A CN201210473387 A CN 201210473387A CN 102999338 A CN102999338 A CN 102999338A
- Authority
- CN
- China
- Prior art keywords
- service
- business
- composite service
- atomic
- composite
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及一种业务开发方法及装置。业务开发方法包括:获取与业务需求相关的原子服务;将所述原子服务组装成复合服务;发布所述复合服务。业务开发装置包括:获取模块,用于获取与业务需求相关的原子服务;组装模块,用于将所述获取模块获取的原子服务组装成复合服务;发布模块,用于发布所述组装模块组装的复合服务。本发明的业务开发方法及装置,基于脚本引擎Mozilla Rhino通过在页面编写JavaScript脚本语言,将原子服务进行组装编排形成新的复合服务,这种方式降低了新业务需求的响应时间,提高了新业务需求的处理速度,提高了原子服务的复用率,易于维护,是实现SOA系统“高内聚低耦合”目标的有效手段。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种业务开发方法及装置。
背景技术
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字节码的方式实现。为解决上述技术问题,本发明还提出了一种业务开发装置,包括:
获取模块,用于获取与业务需求相关的原子服务;
组装模块,用于将所述获取模块获取的原子服务组装成复合服务;
发布模块,用于发布所述组装模块组装的复合服务。
进一步地,上述业务开发装置还可具有以下特点,还包括:
运行模块,用于运行所述复合服务。
进一步地,上述业务开发装置还可具有以下特点,所述组装模块包括:
第一组装单元,用于将所述原子服务组装成多个第一复合服务;
第二组装单元,用于将所述多个第一复合服务组装成第二复合服务,所述第二复合服务为与所述业务需求对应的服务。
进一步地,上述业务开发装置还可具有以下特点,所述组装模块通过Mozilla Rhino脚本引擎将前台页面编写的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;然后,将复合服务1和复合服务2再组装成复合服务3。复合服务3就是与业务需求对应的服务。
下面给出图1中复合服务3的组装过程:
(1)业务人员梳理出需求和原子服务1-5的业务逻辑关系;
(2)发布原子服务1-5这5个原子服务;
(3)根据业务逻辑,调用原子服务1-3这3个原子服务,组装服务复合服务1;
(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、编写用于脚本引用的类,如下所示:
通过Scriptable.put(“Helper”,scope,new Helper())将Helper类加入到Rhino的运行上下文中,这样在脚本中就能直接使用Helper并调用里面的方法;
3、编写JavaScript脚本,如下所示:
4、通过Context.compileFunction方法对上面的脚本进行编译;
5、编译后调用Funct ion.call方法运行脚本。
本发明的业务开发方法,基于脚本引擎Mozilla Rhino通过在页面编写JavaScript脚本语言,将原子服务进行组装编排形成新的复合服务,这种方式降低了新业务需求的响应时间,提高了新业务需求的处理速度,提高了原子服务的复用率,易于维护,是实现SOA系统“高内聚低耦合”目标的有效手段。
本发明提出了一种业务开发装置,该业务开发装置用于执行上述的业务开发方法,上述业务开发方法部分的所有说明均适用于本发明的业务开发装置。
该业务开发装置可以包括获取模块、组装模块和发布模块。获取模块用于获取与业务需求相关的原子服务。组装模块用于将获取模块获取的原子服务组装成复合服务。发布模块用于发布组装模块组装好的复合服务。
其中,组装模块可以包括第一组装单元和第二组装单元。第一组装单元用于将获取模块获取的原子服务组装成多个第一复合服务。第二组装单元用于将第一组装单元组装的多个第一复合服务组装成第二复合服务,该第二复合服务为与业务需求对应的服务。
其中,组装模块可以通过Mozilla Rhino脚本引擎将前台页面编写的JavaScript代码段进行解析并编译成Java字节码的方式实现将所述原子服务组装成复合服务。
在其他实施例中,业务开发装置可以包括运行模块。运行模块用于运行发布模块所发布的复合服务。
本发明的业务开发装置,基于脚本引擎Mozilla Rhino通过在页面编写JavaScript脚本语言,将原子服务进行组装编排形成新的复合服务,这种方式降低了新业务需求的响应时间,提高了新业务需求的处理速度,提高了原子服务的复用率,易于维护,是实现SOA系统“高内聚低耦合”目标的有效手段。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种业务开发方法,其特征在于,包括:
获取与业务需求相关的原子服务;
将所述原子服务组装成复合服务;
发布所述复合服务。
2.根据权利要求1所述的业务开发方法,其特征在于,在所述发布所述复合服务之后还包括:
运行所述复合服务。
3.根据权利要求1所述的业务开发方法,其特征在于,所述将所述原子服务组装成复合服务包括:
将所述原子服务组装成多个第一复合服务;
将所述多个第一复合服务组装成第二复合服务,所述第二复合服务为与所述业务需求对应的服务。
4.根据权利要求1所述的业务开发方法,其特征在于,所述将所述原子服务组装成复合服务通过Mozilla Rhino脚本引擎将前台页面编写的JavaScript代码段进行解析并编译成Java字节码的方式实现。
5.一种业务开发装置,其特征在于,包括:
获取模块,用于获取与业务需求相关的原子服务;
组装模块,用于将所述获取模块获取的原子服务组装成复合服务;
发布模块,用于发布所述组装模块组装的复合服务。
6.根据权利要求5所述的业务开发装置,其特征在于,还包括:
运行模块,用于运行所述复合服务。
7.根据权利要求5所述的业务开发装置,其特征在于,所述组装模块包括:
第一组装单元,用于将所述原子服务组装成多个第一复合服务;
第二组装单元,用于将所述多个第一复合服务组装成第二复合服务,所述第二复合服务为与所述业务需求对应的服务。
8.根据权利要求5所述的业务开发装置,其特征在于,所述组装模块通过Mozilla Rhino脚本引擎将前台页面编写的JavaScript代码段进行解析并编译成Java字节码的方式实现将所述原子服务组装成复合服务。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104733873A CN102999338A (zh) | 2012-11-20 | 2012-11-20 | 业务开发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104733873A CN102999338A (zh) | 2012-11-20 | 2012-11-20 | 业务开发方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102999338A true CN102999338A (zh) | 2013-03-27 |
Family
ID=47927944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104733873A Pending CN102999338A (zh) | 2012-11-20 | 2012-11-20 | 业务开发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102999338A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105338045A (zh) * | 2014-08-12 | 2016-02-17 | 中国移动通信集团广东有限公司 | 一种云计算资源的处理装置、方法及云计算系统 |
CN105893260A (zh) * | 2016-03-31 | 2016-08-24 | 上海携程商务有限公司 | 呼叫中心的自动化发布系统和方法 |
CN106569786A (zh) * | 2015-10-10 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 业务应用的开发方法及系统 |
CN108304219A (zh) * | 2016-09-18 | 2018-07-20 | 广东电网有限责任公司佛山供电局 | 二次开发平台及方法 |
CN109783140A (zh) * | 2018-12-27 | 2019-05-21 | 远光软件股份有限公司 | 一种统推集成接口差异化的共存处理方法及系统 |
CN110780914A (zh) * | 2018-07-31 | 2020-02-11 | 中国移动通信集团浙江有限公司 | 服务发布方法及装置 |
CN112241285A (zh) * | 2019-07-16 | 2021-01-19 | 腾讯科技(深圳)有限公司 | 运营程序的配置方法、装置及设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070282655A1 (en) * | 2006-06-05 | 2007-12-06 | International Business Machines Corporation | Method and apparatus for discovering and utilizing atomic services for service delivery |
CN101482817A (zh) * | 2008-12-18 | 2009-07-15 | 浙江大学 | 基于黑盒的大粒度Java构件组装方法 |
US20090254411A1 (en) * | 2008-04-04 | 2009-10-08 | Kamal Bhattacharya | System and method for automated decision support for service transition management |
CN101650652A (zh) * | 2009-09-17 | 2010-02-17 | 中兴通讯股份有限公司 | 一种业务流程开发的方法及装置 |
CN101997873A (zh) * | 2010-10-21 | 2011-03-30 | 中兴通讯股份有限公司 | 一种能力接入的方法和接入平台 |
CN102207861A (zh) * | 2010-06-25 | 2011-10-05 | 南京联创科技集团股份有限公司 | 一种业务中个性化信息展现方法 |
-
2012
- 2012-11-20 CN CN2012104733873A patent/CN102999338A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070282655A1 (en) * | 2006-06-05 | 2007-12-06 | International Business Machines Corporation | Method and apparatus for discovering and utilizing atomic services for service delivery |
US20090254411A1 (en) * | 2008-04-04 | 2009-10-08 | Kamal Bhattacharya | System and method for automated decision support for service transition management |
CN101482817A (zh) * | 2008-12-18 | 2009-07-15 | 浙江大学 | 基于黑盒的大粒度Java构件组装方法 |
CN101650652A (zh) * | 2009-09-17 | 2010-02-17 | 中兴通讯股份有限公司 | 一种业务流程开发的方法及装置 |
CN102207861A (zh) * | 2010-06-25 | 2011-10-05 | 南京联创科技集团股份有限公司 | 一种业务中个性化信息展现方法 |
CN101997873A (zh) * | 2010-10-21 | 2011-03-30 | 中兴通讯股份有限公司 | 一种能力接入的方法和接入平台 |
Non-Patent Citations (1)
Title |
---|
李鹏等: "一种面向用户的Web服务组装方法", 《计算机应用》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105338045A (zh) * | 2014-08-12 | 2016-02-17 | 中国移动通信集团广东有限公司 | 一种云计算资源的处理装置、方法及云计算系统 |
CN106569786A (zh) * | 2015-10-10 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 业务应用的开发方法及系统 |
CN105893260A (zh) * | 2016-03-31 | 2016-08-24 | 上海携程商务有限公司 | 呼叫中心的自动化发布系统和方法 |
CN108304219A (zh) * | 2016-09-18 | 2018-07-20 | 广东电网有限责任公司佛山供电局 | 二次开发平台及方法 |
CN110780914A (zh) * | 2018-07-31 | 2020-02-11 | 中国移动通信集团浙江有限公司 | 服务发布方法及装置 |
CN109783140A (zh) * | 2018-12-27 | 2019-05-21 | 远光软件股份有限公司 | 一种统推集成接口差异化的共存处理方法及系统 |
CN112241285A (zh) * | 2019-07-16 | 2021-01-19 | 腾讯科技(深圳)有限公司 | 运营程序的配置方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102999338A (zh) | 业务开发方法及装置 | |
Erradi et al. | SOAF: An architectural framework for service definition and realization | |
Grassi et al. | Filling the gap between design and performance/reliability models of component-based systems: A model-driven approach | |
US20200371755A1 (en) | Tri-affinity model driven method and platform for authoring, realizing, and analyzing a cross-platform application | |
Li et al. | Business processes oriented heterogeneous systems integration platform for networked enterprises | |
CN103189839A (zh) | 用于多部件计算机环境的自动化部署的系统和方法 | |
CN101887370A (zh) | 创建系统用户界面的方法及装置 | |
CN103577165A (zh) | 一种表单生成方法和表单生成器 | |
Hreňo et al. | Integration of government services using semantic technologies | |
CN103473034B (zh) | 一种动态发布Web服务的方法和装置 | |
Yu et al. | Model-driven development of adaptive web service processes with aspects and rules | |
CN104123155A (zh) | 一种基于web的业务系统页面层开发平台及方法 | |
Zhuang et al. | ‘MEAN+ R’: implementing a web-based, multi-participant decision support system using the prevalent MEAN architecture with R based on a revised intuitionistic-fuzzy multiple attribute decision-making model | |
CN104793928A (zh) | 一种基于Java的开发与运行平台实现方法及系统 | |
CN106354723B (zh) | 一种在线数据采集系统 | |
Achilleos et al. | Pervasive service creation using a model driven petri net based approach | |
Salnitri et al. | Preserving compliance with security requirements in socio-technical systems | |
CN102571789A (zh) | 一种增强soa可生存性的降级服务替换验证方法 | |
Kopel et al. | Automatic web-based user interface delivery for soa-based systems | |
Koç et al. | Capability-driven development: a novel approach to design enterprise capabilities | |
Nocera et al. | MoSAIC: A middleware-induced software archIteCture design decision support system | |
Freudenstein et al. | A workflow-driven approach for the efficient integration of web services in portals | |
Tsai et al. | Semantic interoperability and its verification and validation in C2 systems | |
Ellner et al. | An integrated tool chain for software process modeling and execution | |
CN104021003A (zh) | 修改信息管理系统首页的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130327 |