CN102902577A - 异构环境中跨***服务分层处理*** - Google Patents
异构环境中跨***服务分层处理*** Download PDFInfo
- Publication number
- CN102902577A CN102902577A CN2012103716279A CN201210371627A CN102902577A CN 102902577 A CN102902577 A CN 102902577A CN 2012103716279 A CN2012103716279 A CN 2012103716279A CN 201210371627 A CN201210371627 A CN 201210371627A CN 102902577 A CN102902577 A CN 102902577A
- Authority
- CN
- China
- Prior art keywords
- service
- parameter
- cross
- protocol
- layer
- 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.)
- Granted
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种异构环境中跨***服务分层处理***,其特征在于所述***包括绑定与服务相关的协议并提供协议接口的协议层、提供服务声明,并根据服务实现部分返回结果的外部层和提供服务实现细节,并对服务中参数进行声明、填补、检查和重载的内部层。该***让参数开发遇到问题时更容易排查,可扩展的参数默认值可以让编码更灵活。
Description
技术领域
本发明属于异构环境下服务开发技术领域,具体涉及一种异构环境中跨***服务分层处理***。
背景技术
现有的技术对外公布服务有多种方式,webService的参数处理方式虽然声明上比较准确,但是调用起来较为麻烦,而其他的方式参数声明不够准确,同时两种方式的处理方式各有不同,在异构环境中会带来比较大的困扰。
WebService的参数处理方式虽然是比较通用的方式,可以调用效率较为低下。可以说是异构环境中不得已而为之的方案。如果想交互的并非异构环境,这种调用方式比之其他的协议要慢上10倍以上。同一内容如果需要公布为多种协议才能更好的支持效率,可是一旦分成了多种就势必带来了多环境里行为不统一,带来了开发难度上的弊端。
参数调用不够灵活,只能以顺序入参的方式入参。并且无法设置当某一参数未传时应该给予什么默认值。本发明因此而来。
发明内容
本发明目的在于提供一种异构环境中跨***服务分层处理***,解决了现有技术中异构环境中跨***服务开发时参数调用及参数管理等问题。
为了解决现有技术中的这些问题,本发明提供的技术方案是:
一种异构环境中跨***服务分层处理***,其特征在于所述***包括绑定与服务相关的协议并提供协议接口的协议层、提供服务声明,并根据服务实现部分返回结果的外部层和提供服务实现细节,并对服务中参数进行声明、填补、检查和重载的内部层。
优选的,所述***中协议层包括webService协议接口、RMI协议接口、Hessian协议接口和Burlap协议接口。
优选的,所述内部层设置有参数重载模块、参数填补模块、参数检查模块和服务实现模块。
现有技术文本式的调用接口虽然可以在异构环境中跨***使用,可以这种方式有着一个很大的问题,那就是这种方式对于参数的处理比较弱,如何进行参数区分?参数异常时如何处理?本发明就是为了解决这些问题。
本发明技术方案采用服务分层的方式,使得多种协议并存,并且开发过程只需要一次。对调用方来说他只需要使用自己熟悉的协议即可。入参方式可以分为几种,既可以顺序入参,也可以map方式入参,在很多情况也可以使用默认参数方式的让一些参数自动填充一些设定好的值。
本发明技术方案用统一的方式对外公布服务,服务调用的技术有所不同,但是调用的内容、入参方式、返回值方式都是统一的。同时这种参数处理可以多种方式入参、校验、配置默认值。
相对于现有技术中的方案,本发明的优点是:
本发明技术方案对于外部***来说每个外部***都能以自己最熟悉的协议与本***交互,而不需要另外学习新的知识。鲜明的参数体系让参数开发遇到问题时更容易排查,可扩展的参数默认值可以让编码更灵活。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为异构环境中跨***服务分层处理***的***架构图;
图2为异构环境中跨***服务分层处理***的工作流程图;
图3为异构环境中跨***服务分层处理***中协议层的架构图;
图4为异构环境中跨***服务分层处理***中内部层的工作流程图。
具体实施方式
以下结合具体实施例对上述方案做进一步说明。应理解,这些实施例是用于说明本发明而不限于限制本发明的范围。实施例中采用的实施条件可以根据具体厂家的条件做进一步调整,未注明的实施条件通常为常规实验中的条件。
实施例
如图1所示,本实施例得到的异构环境中跨***服务分层处理***,包括绑定与服务相关的协议并提供协议接口的协议层、提供服务声明,并根据服务实现部分返回结果的外部层和提供服务实现细节,并对服务中参数进行声明、填补、检查和重载的内部层。协议层包括webService协议接口、RMI协议接口、Hessian协议接口和Burlap协议接口。所述内部层设置有参数重载模块、参数填补模块、参数检查模块和服务实现模块。
本实施例中异构环境中跨***服务分层处理***进行服务开发时的工作流程如图2所示。
协议层:本发明把协议层与真实服务分开,一个服务可以被多种服务调用,编写代码只需要编写服务实现部分即可。不同技术的人选用不同的协议进行调用,如果需要支持一种新的协议也只要在协议层扩展一个协议即可,实际的逻辑代码不需要有任何改动。
声明层:声明层是声明部分,他仅仅是一个名称的声明不会再其中加入任何技术性成分,该部分要求必然唯一。
内部层:内部层也就是服务的真实实现部分,包括服务的参数声明、实现手段、实现代码等内容。其中参数声明部分是本发明的重点部分。
一个标准的参数声明如表1所示:
表1标准的参数声明
id | 名称 | 类型 | 默认值 |
p | 参数1 | String | |
p2 | 参数2 | int | {sysDate.now} |
参数填补
参数填补是本发明的一个特色功能,当外部只传入1个参数,而第二个参数有设定了默认值时,此时就会将默认值填补为第2个参数。默认值的规则可以是直接写内容,也可以写表达式。表达式是我们内部的一套解释体系他通过{范围.内容}这样的方式获取动态的内容,该内容甚至可以是另一个服务或者代码。
参数检查
参数是否正确是一个很重要的问题,因为在远程调用的情况下无法进行异地debug,并且远程调用一个接口自然是只能了解到这个接口能提供什么服务而不了解其内部结构,当发现了问题以后进行问题排查将是一件非常头疼的事。因此一个足够健全的参数检查和错误信息提示体系可以起到非常大的帮助。参数才设定时和一般方法类似,不同的是需要设定一个参数名,其设定个格式就是表2。
表2参数声明例表
id | 名称 | 类型 | 默认值 |
p1 | 参数1 | String | |
p2 | 参数2 | int | {sysDate.now} |
这里id就是入参的id,名称是用来描述该参数的用途,类型是用来约束参数的基本类型。参数的入参方式有两种,顺序入参和map入参,list入参就是根据上面列表的上下顺序进行顺序入参,map方式就是根据上面列表里提供的id进行对号入座式的入参。
在一个请求过来时会获取到服务名,然后根据服务名来确认校验某服务是否存在,不存在就抛出某服务不存在。如果存在继续往下,这里就开始参数填补,填补时如果发生异常则抛出详细哪一个填补时发生问题。没有问题继续往下,这里就要校验参数个数是否正确,在调用池里是否存在名称和参数个数都匹配的服务实现。如果找不到就会抛出异常。
如果没问题继续往下,这里就要校验参数的类型正确不正确,如果不正确会准确报出那个参数类型不正确。到此为止下一步就会交给服务实现去进行实现,以这样的方式保证参数准确的传入到实现里去。
参数重载
高级语言里存在方法重载这种技术,很多人也会比较喜欢使用这种技术来开发代码,同样本发明也提供了参数重载的功能。
参数重载一般来说分为参数个数重载、顺序重载、类型重载,其中顺序重载和类型重载可以归于一类。我们这里参数重载提供了数量重载,因为在异构环境中类型并非可靠的手段所以只考虑参数数量重载。
比如:在服务调用库里有两个实现都叫commitData,其中一个是两个参数,另一个是三个参数,这两个实现就可以根据入参数量进行重载。
上述协议层、内部层和外部层的具体逻辑如下所述:
协议层内容为对外开发部分,每一种协议都有一种自己的对外接口目录,比如:WebService的接口,有一个公共的接口叫fixWSEndpoint,针对于这个接口传递服务名、参数,就可以调用这个借口。
RMI接口,有一个公共接口叫FixRMIServer,使用RMI协议的使用者,可以通过这个接口直接调用,并且直接拿到返回值。
如图3所示,从上面两个接口可以看出,每个技术都可以使用自己熟悉的接口,但是调用的效果是完全相同,通过横向的扩展协议类型来做到扩展,而核心的业务逻辑始终只有一份,这就是协议层的目的。
外部层主要负责这服务的声明,我们之所有把该部分与协议层分开是为了保证服务可以一次声明,处处可用。在所有的协议之下,服务的声明都是统一的。
一个服务声明包括:
服务id:服务的唯一标识;
服务描述:服务的文字描述;
服务安全:服务的安全策略;
服务实现:服务的实现,也就是具体实现,主要内容也就是内部层的部分;
服务入参:服务需要哪些参数;
服务返回:通知该服务将返回一个什么样的结果。
内部层是服务的具体实现部分,这部分也负责对之前传入的服务参数进行校验和处理,在选定了处理逻辑后进行业务逻辑处理,同时将结果返回。由外部层根据结构再返回给调用者,具体的处理过程如图4所示。
上述实例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人是能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
Claims (3)
1.一种异构环境中跨***服务分层处理***,其特征在于所述***包括绑定与服务相关的协议并提供协议接口的协议层、提供服务声明,并根据服务实现部分返回结果的外部层和提供服务实现细节,并对服务中参数进行声明、填补、检查和重载的内部层。
2.根据权利要求1所述的异构环境中跨***服务分层处理***,其特征在于所述***中协议层包括webService协议接口、RMI协议接口、Hessian协议接口和Burlap协议接口。
3.根据权利要求1所述的异构环境中跨***服务分层处理***,其特征在于所述内部层设置有参数重载模块、参数填补模块、参数检查模块和服务实现模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371627.9A CN102902577B (zh) | 2012-09-28 | 2012-09-28 | 异构环境中跨***服务分层处理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210371627.9A CN102902577B (zh) | 2012-09-28 | 2012-09-28 | 异构环境中跨***服务分层处理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102902577A true CN102902577A (zh) | 2013-01-30 |
CN102902577B CN102902577B (zh) | 2015-05-27 |
Family
ID=47574823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210371627.9A Active CN102902577B (zh) | 2012-09-28 | 2012-09-28 | 异构环境中跨***服务分层处理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102902577B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101078995A (zh) * | 2007-06-08 | 2007-11-28 | 北京大学 | 构件运行支撑平台接入消息服务的方法 |
CN101188520A (zh) * | 2007-11-06 | 2008-05-28 | 北京航空航天大学 | 基于配置策略的电信领域遗留***集成工具 |
CN101206648A (zh) * | 2006-12-20 | 2008-06-25 | 鸿富锦精密工业(深圳)有限公司 | 网络服务生成***及方法 |
CN102291464A (zh) * | 2011-08-29 | 2011-12-21 | 上海普元信息技术股份有限公司 | BPM中业务流程动态生成Web Service的***及方法 |
CN102497451A (zh) * | 2011-12-28 | 2012-06-13 | 用友软件股份有限公司 | 服务处理***和服务处理方法 |
CN102567400A (zh) * | 2010-12-31 | 2012-07-11 | 阿里巴巴集团控股有限公司 | 一种实现Web访问的方法和Web服务器 |
CN102624766A (zh) * | 2011-01-31 | 2012-08-01 | 无锡华润上华半导体有限公司 | ***集成方法及其装置 |
-
2012
- 2012-09-28 CN CN201210371627.9A patent/CN102902577B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101206648A (zh) * | 2006-12-20 | 2008-06-25 | 鸿富锦精密工业(深圳)有限公司 | 网络服务生成***及方法 |
CN101078995A (zh) * | 2007-06-08 | 2007-11-28 | 北京大学 | 构件运行支撑平台接入消息服务的方法 |
CN101188520A (zh) * | 2007-11-06 | 2008-05-28 | 北京航空航天大学 | 基于配置策略的电信领域遗留***集成工具 |
CN102567400A (zh) * | 2010-12-31 | 2012-07-11 | 阿里巴巴集团控股有限公司 | 一种实现Web访问的方法和Web服务器 |
CN102624766A (zh) * | 2011-01-31 | 2012-08-01 | 无锡华润上华半导体有限公司 | ***集成方法及其装置 |
CN102291464A (zh) * | 2011-08-29 | 2011-12-21 | 上海普元信息技术股份有限公司 | BPM中业务流程动态生成Web Service的***及方法 |
CN102497451A (zh) * | 2011-12-28 | 2012-06-13 | 用友软件股份有限公司 | 服务处理***和服务处理方法 |
Non-Patent Citations (2)
Title |
---|
任捷等: "Web Services技术在异构***集成中的应用研究", 《计算机应用》, no. 01, 28 January 2004 (2004-01-28) * |
申德荣等: "Web服务合成中的异构问题", 《东北大学学报(自然科学版)》, no. 03, 15 March 2004 (2004-03-15) * |
Also Published As
Publication number | Publication date |
---|---|
CN102902577B (zh) | 2015-05-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104407976B (zh) | 一种接口健壮性测试用例生成方法及装置 | |
CN108762764A (zh) | 代码自动生成方法、装置、计算机设备及存储介质 | |
CN104133765B (zh) | 网络活动的测试用例发送方法及测试用例服务器 | |
CN109858257B (zh) | 访问控制方法及装置 | |
CN103164206A (zh) | 基于saas的软件定制*** | |
CN104679739A (zh) | 一种非真实信息传播控制方法 | |
CN103678138A (zh) | 一种生成状态转换测试用例的方法及装置 | |
CN106940714B (zh) | 一种数据处理方法、装置及电子设备 | |
CN105245579B (zh) | 一种配电网***海量数据通讯处理方法及*** | |
CN105868170A (zh) | 一种服务器端工业数据报表生成方法 | |
WO2011070334A9 (en) | Accessing stored electronic resources | |
CN109684033A (zh) | 云平台裸机管理方法、存储介质、电子设备及*** | |
CN103561113A (zh) | Web Service接口的生成方法及装置 | |
CN102855278B (zh) | 一种仿真方法和*** | |
CN102902577A (zh) | 异构环境中跨***服务分层处理*** | |
CN107769934A (zh) | 资费处理方法及装置 | |
CN108810024A (zh) | 一种隔离网络数据传输方法、装置、介质、管理平台 | |
CN104216707A (zh) | 一种支持多种管理模式的统一管理方法 | |
DE102014114829A1 (de) | Intelligenter Maschenobjekt-Listenaufbau | |
CN105551500B (zh) | 一种音频信号处理方法及装置 | |
CN103152233B (zh) | 一种数字家庭文化公益服务内容接入接口实现方法及*** | |
Anderson | Professionalization of journalism | |
Watanabe et al. | J apan's National Innovation System | |
CN104281534A (zh) | 一种存储元数据的方法和装置 | |
CN102065133B (zh) | 支持Portlet协作构建复杂业务逻辑的方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |