CN101655795B - 服务实例的创建方法和系统 - Google Patents
服务实例的创建方法和系统 Download PDFInfo
- Publication number
- CN101655795B CN101655795B CN200910177828A CN200910177828A CN101655795B CN 101655795 B CN101655795 B CN 101655795B CN 200910177828 A CN200910177828 A CN 200910177828A CN 200910177828 A CN200910177828 A CN 200910177828A CN 101655795 B CN101655795 B CN 101655795B
- Authority
- CN
- China
- Prior art keywords
- mode
- establishment
- service instance
- create
- class
- 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.)
- Active
Links
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种服务实例的创建方法和企业资源计划系统,方法包括:通过读取创建标注确定解析创建处理类,调用该解析创建处理类,通过预置的策略利用该解析创建处理类获取待创建的服务实例的类型和创建方式,根据所述服务实例的类型和创建方式创建服务实例。由于本发明实施例利用创建标注来标识和调用解析创建处理类,并通过预置的策略利用该解析创建处理类来确定创建方式,因此可以在保证各种创建方式自身的独立性的同时,将这多种创建方式整合起来,即可以兼容多种创建方式,使得在发生需要增加新的创建方式或需要对配置文件进行修改等情况时,可以不需要对服务创建代码进行修改或重新编写,即实现零耦合。
Description
技术领域
本发明涉及企业资源计划系统技术领域,具体涉及服务实例的创建方法和企业资源计划系统。
背景技术
在企业资源计划(ERP,Enterprise Resource Planning)系统中,创建服务实例(即企业服务实例)去执行服务方法是常见的服务使用场景之一。
创建服务实例,目前较常用的有三种方式:(1)直接创建;(2)使用各种设计模式进行创建,例如工厂方法;(3)由系统或容器进行依赖注入来进行创建,例如由系统或容器通过在构造方法中注入所需的服务,或者通过配置文件来指定注入的服务,从而实现服务实例的创建。
在对现有技术的研究和实践过程中,本发明的发明人发现,以上所述的各种创建方法的耦合性均较高,所谓耦合,指的是系统或模块或类之间的互相依赖关系,依赖越大,耦合就越高,运行和维护的成本也就越高。例如,如果需要增加新的创建服务类或者改变了配置文件或者增加新的创建方式,则需要对服务创建代码进行改变,甚至重新编写服务创建代码。
发明内容
本发明实施例提供服务实例的创建方法和企业资源计划系统,以实现零耦合。
一种服务实例的创建方法,其特征在于,包括:
通过读取创建标注确定解析创建处理类;
调用所述解析创建处理类;
通过预置的策略利用所述解析创建处理类获取待创建的服务实例的类型和创建方式;
根据所述服务实例的类型和创建方式创建服务实例。
一种企业资源计划系统,其特征在于,包括:
确定单元,用于通过读取创建标注确定解析创建处理类;
调用单元,用于调用所述确定单元确定的解析创建处理类;
获取单元,用于通过预置的策略利用所述调用单元调用的解析创建处理类获取待创建的服务实例的类型和创建方式;
创建单元,用于根据所述获取单元获取到的服务实例的类型和创建方式创建服务实例。
本发明实施例利用创建标注来标识和调用解析创建处理类,并通过预置的策略利用该解析创建处理类来确定创建方式,从而在保证各种创建方式自身的独立性的同时,将这多种创建方式整合起来,即可以兼容多种创建方式,使得在发生需要增加新的创建方式或需要对配置文件进行修改等情况时,可以不需要对服务创建代码进行修改或重新编写,即实现零耦合。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的方法的方法流程图;
图2是本发明实施例二提供的方法的方法流程图;
图3是本发明实施例提供的ERP系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供服务实例的创建方法和企业资源计划系统。以下分别进行详细说明。
实施例一、
本实施例将从ERP系统的角度进行描述。
一种服务实例的创建方法,在接收到用户输入的创建标注后,通过读取创建标注确定解析创建处理类,并调用该解析创建处理类,然后通过预置的策略利用所调用的解析创建处理类获取待创建的服务实例的类型和创建方式,最后根据该获取到的服务实例的类型和创建方式创建服务实例。如图1所示,具体流程可以如下:
101、通过读取创建标注确定解析创建处理类;
102、调用步骤101中所确定的解析创建处理类;
103、通过预置的策略利用步骤102中调用的解析创建处理类获取待创建的服务实例的类型和创建方式;其中,策略可以根据由设备提供方或用户进行预置。
例如,可以调用预置的配置文件;根据配置文件利用所述解析创建处理类获取待创建的服务实例的类型和创建方式。
又例如,可以通过查询数据库或注册表等可以保存配置和信息的模块,然后根据数据库或注册表等模块的记录利用步骤102中调用的解析创建处理类获取待创建的服务实例的类型和创建方式。
其中,创建方式可以是直接创建的方式、使用设计模式进行创建的方式和由系统/容器进行依赖注入以进行创建的方式中的任一种,也可以是其他的比如新配置的创建方式。
104、根据获取到的服务实例的类型和创建方式创建服务实例;例如,可以如下:
若步骤103中获取到的创建方式为直接创建的方式,则直接根据获取到的服务实例的类型创建服务实例;
若步骤103中获取到的创建方式为使用设计模式进行创建的方式,则调用该服务实例类型所对应的设计模式的类,以进行服务实例的创建;
若步骤103中获取到的创建方式为由系统/容器进行依赖注入以进行创建的方式,则使用配置文件中指定的类来创建服务实例,或根据类标注调用标注处理类,由标注处理类来创建服务实例;
若步骤103中获取到的创建方式为一种新的创建方式,则调用该新的创建方式来创建服务实例,等等。
需说明的是,为了描述方便以及便于区别,在本发明实施例中将创建服务实例的标注命名为创建标注,而将于创建方式相对应的标注称为类标注,应当理解的是,两者均为标注,只是应用的场景略有不同。
由上可知,本发明实施例利用创建标注来标识和调用解析创建处理类,并通过预置的策略利用该解析创建处理类来确定创建方式,从而在保证各种创建方式自身的独立性的同时,将这多种创建方式整合起来,即可以兼容多种创建方式,使得在发生需要增加新的创建方式或需要对配置文件进行修改等情况时,可以不需要对服务创建代码进行修改或重新编写,即实现零耦合。
实施例二、
根据实施例一所描述的方法,下面将举例作进一步详细说明。
假设某个服务类的名称为ERPService,需要创建的服务实例的名称为ServiceA,则,参见图2,创建过程可以如下:
201、ERP系统读取到创建标注:ERPService,确定解析创建处理类为ERPService服务类的解析创建处理类;
202、ERP系统调用ERPService服务类的解析创建处理类;
203、ERP系统通过预置的策略利用ERPService服务类的解析创建处理获取待创建的服务实例的类型和创建方式,即交由ERPService服务类的解析创建处理类来处理创建;
例如,可以调用预置的配置文件;根据配置文件利用所述解析创建处理类获取待创建的服务实例的类型和创建方式;
又例如,可以通过查询数据库或注册表等可以保存配置和信息的模块,然后根据数据库或注册表等模块的记录利用调用的解析创建处理类获取待创建的服务实例的类型和创建方式。
其中,创建方式可以是直接创建的方式、使用设计模式进行创建的方式和由系统/容器进行依赖注入以进行创建的方式中的任一种,也可以是其他的比如新配置的创建方式。
假设在此解析创建处理类通过发射知道了需要创建出来的是一个ServiceA实例,则在确定创建方式为直接创建的方式时,执行步骤204;在确定创建方式为使用设计模式进行创建的方式时,执行步骤205;在确定创建方式为由系统/容器进行依赖注入以进行创建的方式时,执行步骤206;在确定创建方式为一种新的创建方式时,则执行步骤207;
204、缺省的创建一个ServiceA实例,即直接根据获取到的服务实例的类型创建个ServiceA实例;比如可以采用如下语法:
ERPService serviceA=new ServiceA(),即表明创建一个新的名称为“ServiceA”的服务实例;
205、调用该服务实例类型所对应的设计模式的类,以进行ServiceA实例的创建,比如,调用ServiceA的类工厂(即调用工厂类),来创建ServiceA实例,语法可以如下:
ERPService serviceA=ServiceAFactory.getInstance(),即表明通过类工厂创建一个新的名称为“ServiceA”的服务实例;
206、使用配置文件中指定的类来创建ServiceA实例,或根据类标注调用标注处理类,由标注处理类来创建ServiceA实例,比如存在一个SUPERERPService标注处理类,则根据类标注“SUPERERPService”调用对应的标注处理类,然后交由这个标注处理类来创建ServiceA实例,等等。
(1)以Spring(当今流行的优秀开源框架之一)支持的方式为例,在此假设使用bean.xml作为配置文件,则使用配置文件中指定的类来创建ServiceA实例的语法可以如下:
ApplicationContext ctx=new//表示需要建立一个新的服务实例
FileSystemXmlApplicationContext(“bean.xml”);//表示使用bean.xml作为配置文件
IERPService serviceA=(ERPService)ctx.getBean(″ID001″);//表示ID001为唯一服务标识,配置文件中指向ServiceA服务
(2)以EJB3.0中的方式为例,假设用EJB用于注入EJB业务对象,则由标注处理类来创建ServiceA实例的语法可以如下:
EJB(beanName=“ServiceA”)//标注这是一个EJB服务,并且是“ServiceA”服务实例
private ERPService serviceA;//表示创建“ServiceA”服务实例
207、调用该新的创建方式来创建ServiceA实例。
当然,除了上面所列举的创建方式之外,还可以采用其他的创建方式,在此不再赘述。
当服务实例创建完毕后,可以返回创建好的ServiceA实例,以进行后续的其他操作。
由上可知,本发明实施例利用创建标注来标识和调用解析创建处理类,并通过预置的策略利用该解析创建处理类来确定创建方式,从而在保证各种创建方式自身的独立性的同时,将这多种创建方式整合起来,即可以兼容多种创建方式,使得在发生需要增加新的创建方式或需要对配置文件进行修改等情况时,可以不需要对服务创建代码进行修改或重新编写,即实现零耦合。而且,该方案的实施简便,具有较强的可读性和可维护性,便于用户理解(用户通过标注即可知道创建的是什么服务)。
实施例三、
为了更好地实施以上方法,本发明实施例还相应地提供一种企业资源计划系统,即ERP系统,如图3所示,该ERP系统包括确定单元301、调用单元302、获取单元303和创建单元304。
确定单元301,用于通过读取创建标注确定解析创建处理类;
调用单元302,用于调用确定单元301确定的解析创建处理类;
获取单元303,用于通过预置的策略利用调用单元302调用的解析创建处理类获取待创建的服务实例的类型和创建方式;其中,创建方式可以包括:直接创建的方式,或使用设计模式进行创建的方式,或由系统/容器进行依赖注入以进行创建的方式。
创建单元304,用于根据获取单元303获取到的服务实例的类型和创建方式创建服务实例。
其中,所述获取单元303,具体用于调用预置的配置文件,根据配置文件利用调用单元302调用的解析创建处理类获取待创建的服务实例的类型和创建方式;或者,
所述获取单元303,具体用于查询数据库或注册表,根据数据库或注册表的记录利用调用单元302调用的解析创建处理类获取待创建的服务实例的类型和创建方式。
其中,所述创建单元304包括直接创建子单元、设计模式创建子单元和依赖注入创建子单元;
直接创建子单元,用于当获取单元303获取到的创建方式为直接创建的方式时,直接根据所述服务实例的类型创建服务实例;
设计模式创建子单元,用于当获取单元303获取到的创建方式为使用设计模式进行创建的方式时,调用所述服务实例类型所对应的设计模式的类,以进行服务实例的创建;
依赖注入创建子单元,用于当获取单元303获取到的创建方式为由系统或容器进行依赖注入以进行创建的方式时,使用配置文件中指定的类来创建服务实例,或根据类标注调用标注处理类,由标注处理类来创建服务实例。
以上各个单元的具体实施,可参见前面实施例,在此不再赘述。
由上可知,本发明实施例的ERP系统利用创建标注来标识和调用解析创建处理类,并通过预置的策略利用该解析创建处理类来确定创建方式,从而在保证各种创建方式自身的独立性的同时,将这多种创建方式整合起来,即可以兼容多种创建方式,使得在发生需要增加新的创建方式或需要对配置文件进行修改等情况时,可以不需要对服务创建代码进行修改或重新编写,即实现零耦合。而且,该方案的实施简便,具有较强的可读性和可维护性,便于用户理解(用户通过标注即可知道创建的是什么服务)。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上对本发明实施例所提供的服务实例的创建方法和企业资源计划系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种服务实例的创建方法,其特征在于,包括:
通过读取创建标注确定解析创建处理类;
调用所述解析创建处理类;
通过预置的策略利用所述解析创建处理类获取待创建的服务实例的类型和创建方式;
根据所述服务实例的类型和创建方式创建服务实例;
其中,所述通过预置的策略利用所述解析创建处理类获取待创建的服务实例的类型和创建方式包括:
调用预置的配置文件;根据配置文件利用所述解析创建处理类获取待创建的服务实例的类型和创建方式;或者,
查询数据库或注册表,根据数据库或注册表的记录利用所述解析创建处理类获取待创建的服务实例的类型和创建方式。
2.根据权利要求1所述的方法,其特征在于,
所述创建方式包括:直接创建的方式,或使用设计模式进行创建的方式,或由系统/容器进行依赖注入以进行创建的方式。
3.根据权利要求2所述的方法,其特征在于,所述根据所述服务实例的类型和创建方式创建服务实例包括:
若获取到的创建方式为直接创建的方式,则直接根据所述服务实例的类型创建服务实例;
若获取到的创建方式为使用设计模式进行创建的方式,则调用所述服务实例类型所对应的设计模式的类,以进行服务实例的创建;
若获取到的创建方式为由系统/容器进行依赖注入以进行创建的方式,则使用配置文件中指定的类来创建服务实例,或根据类标注调用标注处理类,由标注处理类来创建服务实例。
4.一种服务实例的创建系统,其特征在于,包括:
确定单元,用于通过读取创建标注确定解析创建处理类;
调用单元,用于调用所述确定单元确定的解析创建处理类;
获取单元,用于调用预置的配置文件,根据配置文件利用所述调用单元调用的解析创建处理类获取待创建的服务实例的类型和创建方式;或者,查询数据库或注册表,根据数据库或注册表的记录利用所述调用单元调用的解析创建处理类获取待创建的服务实例的类型和创建方式;
创建单元,用于根据所述获取单元获取到的服务实例的类型和创建方式创建服务实例。
5.根据权利要求4所述的服务实例的创建系统,其特征在于,
所述创建方式包括:直接创建的方式,或使用设计模式进行创建的方式,或由系统/容器进行依赖注入以进行创建的方式。
6.根据权利要求5所述的服务实例的创建系统,其特征在于,所述创建单元包括直接创建子单元、设计模式创建子单元和依赖注入创建子单元;
直接创建子单元,用于当所述获取单元获取到的创建方式为直接创建的方式时,直接根据所述服务实例的类型创建服务实例;
设计模式创建子单元,用于当所述获取单元获取到的创建方式为使用设计模式进行创建的方式时,调用所述服务实例类型所对应的设计模式的类,以进行服务实例的创建;
依赖注入创建子单元,用于当所述获取单元获取到的创建方式为由系统/容器进行依赖注入以进行创建的方式时,使用配置文件中指定的类来创建服务实例,或根据类标注调用标注处理类,由标注处理类来创建服务实例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910177828A CN101655795B (zh) | 2009-09-25 | 2009-09-25 | 服务实例的创建方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910177828A CN101655795B (zh) | 2009-09-25 | 2009-09-25 | 服务实例的创建方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101655795A CN101655795A (zh) | 2010-02-24 |
CN101655795B true CN101655795B (zh) | 2012-10-10 |
Family
ID=41710091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910177828A Active CN101655795B (zh) | 2009-09-25 | 2009-09-25 | 服务实例的创建方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101655795B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102566992B (zh) * | 2010-12-17 | 2015-04-22 | 卓望数码技术(深圳)有限公司 | 一种基于系统运行的依赖注入方法及装置 |
US20120216219A1 (en) * | 2011-02-21 | 2012-08-23 | General Electric Company, A New York Corporation | Methods and apparatus for dynamic customization of clinical workflows |
CN103186417B (zh) * | 2011-12-30 | 2016-04-06 | 鼎捷软件股份有限公司 | 一种服务管理的方法 |
CN105677347A (zh) * | 2016-01-05 | 2016-06-15 | 浪潮通用软件有限公司 | 一种数据处理的方法及装置 |
CN105681346A (zh) * | 2016-03-15 | 2016-06-15 | 福建星海通信科技有限公司 | 一种基于工厂类实现报文解析的方法 |
CN112445868B (zh) * | 2019-08-30 | 2024-04-12 | 北京京东振世信息技术有限公司 | 业务报文处理方法和装置 |
CN111105249B (zh) * | 2019-12-09 | 2024-02-20 | 金蝶软件(中国)有限公司 | 供应链数据的追溯方法、装置、计算机设备 |
CN112035859A (zh) * | 2020-08-28 | 2020-12-04 | 光大科技有限公司 | 密码服务的调用方法及装置、存储介质、电子装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1669020A (zh) * | 2002-02-15 | 2005-09-14 | 特里迪姆公司 | 用于实时系统控制的组件模型 |
US20070083813A1 (en) * | 2005-10-11 | 2007-04-12 | Knoa Software, Inc | Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications |
CN101441560A (zh) * | 2007-11-23 | 2009-05-27 | 国际商业机器公司 | 执行基于上下文模型的面向服务架构的策略的方法和策略引擎 |
CN101454766A (zh) * | 2006-06-15 | 2009-06-10 | 国际商业机器公司 | 组合软件服务的管理 |
-
2009
- 2009-09-25 CN CN200910177828A patent/CN101655795B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1669020A (zh) * | 2002-02-15 | 2005-09-14 | 特里迪姆公司 | 用于实时系统控制的组件模型 |
US20070083813A1 (en) * | 2005-10-11 | 2007-04-12 | Knoa Software, Inc | Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications |
CN101454766A (zh) * | 2006-06-15 | 2009-06-10 | 国际商业机器公司 | 组合软件服务的管理 |
CN101441560A (zh) * | 2007-11-23 | 2009-05-27 | 国际商业机器公司 | 执行基于上下文模型的面向服务架构的策略的方法和策略引擎 |
Also Published As
Publication number | Publication date |
---|---|
CN101655795A (zh) | 2010-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101655795B (zh) | 服务实例的创建方法和系统 | |
CN109246251B (zh) | 一种微服务调用方法、装置、系统、设备及可读存储介质 | |
CN101727648B (zh) | 服务系统中的超时控制方法及服务系统 | |
CN102171993B (zh) | 联动策略实现方法及装置、开放平台单板和设备 | |
CN101777008A (zh) | 移动终端系统线程池实现方法及装置 | |
CN102566992B (zh) | 一种基于系统运行的依赖注入方法及装置 | |
CN104216912A (zh) | 一种无侵入式的业务表单工作流化的实现方法与装置 | |
CN102087594A (zh) | 扩展点和插件的管理方法和装置 | |
CN102043624B (zh) | 中间件通讯接口自动编程方法及装置 | |
CN101833738A (zh) | 国内托管银行与境外托管代理银行间的数据处理方法及系统 | |
CN103309985A (zh) | 针对服务注册中心的业务服务注册与发布方法及其系统 | |
CN102208081A (zh) | 用于使bpm应用能为多租户使用的方法和装置 | |
CN109683888A (zh) | 一种业务模块的复用方法和可复用业务模块 | |
CN108804197B (zh) | 一种动态组件化实现方法、装置、设备及存储介质 | |
CN101763340B (zh) | 一种业务单据转换的方法、装置及系统 | |
CN105763541B (zh) | 一种同一系统内多个应用网盘互通的方法 | |
CN101639775B (zh) | 一种组件构建方法和装置 | |
CN102520929A (zh) | 系统资源的管理方法及装置 | |
CN107807884B (zh) | 一种模块化管理错误码的方法 | |
CN103714065A (zh) | 一种信息数据整合方法 | |
CN104317915A (zh) | 基于关联关系的数据抓取方法及装置 | |
US9286330B2 (en) | Migration of data objects | |
CN109614442A (zh) | 数据同步的数据表维护方法、装置、存储介质和电子设备 | |
CN103914304A (zh) | 一种基于sap平台的不同结构类型参数转换方法 | |
CN108469992A (zh) | Android系统基于URI的进程级别路由方法及装置 |
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 |