CN112363755B - 一种基于插件引擎注入的低耦合扩展的业务系统 - Google Patents

一种基于插件引擎注入的低耦合扩展的业务系统 Download PDF

Info

Publication number
CN112363755B
CN112363755B CN202011309524.0A CN202011309524A CN112363755B CN 112363755 B CN112363755 B CN 112363755B CN 202011309524 A CN202011309524 A CN 202011309524A CN 112363755 B CN112363755 B CN 112363755B
Authority
CN
China
Prior art keywords
class
plug
engine
interface
strategy
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
Application number
CN202011309524.0A
Other languages
English (en)
Other versions
CN112363755A (zh
Inventor
邵泽华
向海堂
魏小军
罗国斌
庞飞龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Qinchuan IoT Technology Co Ltd
Original Assignee
Chengdu Qinchuan IoT Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Qinchuan IoT Technology Co Ltd filed Critical Chengdu Qinchuan IoT Technology Co Ltd
Priority to CN202011309524.0A priority Critical patent/CN112363755B/zh
Publication of CN112363755A publication Critical patent/CN112363755A/zh
Application granted granted Critical
Publication of CN112363755B publication Critical patent/CN112363755B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开的基于插件引擎注入的低耦合扩展的业务系统,包括外部调用方模块、策略工厂模块、插件引擎的抽象类、插件引擎的具体策略类和内部开发方;外部调用方根据客户定制的业务逻辑通过策略工厂配置指定的具体策略类;外部调用方通过插件引擎的抽象类调取配置指定的具体策略类;内部开发方开发业务逻辑并将各业务逻辑以动态链接库文件格式反向注入插件引擎得到对应的具体策略类;内部开发方随时对开发的业务逻辑进行添加、修改或删除;利用策略模式和抽象工厂模式实现不同业务模块和功能之间的隔离,实现在线式的灵活配置,满足多种复杂的业务场景,将原来复杂的业务逻辑按开发人员和客户需求独立处理,以动态链接库的形式进行灵活部署和配置。

Description

一种基于插件引擎注入的低耦合扩展的业务系统
技术领域
本发明涉及业务系统开发技术领域,具体涉及一种基于插件引擎注入的低耦合扩展的业务系统。
背景技术
大型的IT业务系统发展到今天,在经历了多轮的需求修改以及开发人员接手之后,特别是接手一个几万行甚至十几万行的代码的功能整改时,就会非常繁琐,增加了交接的成本,耗费了接手开发者的精力,也浪费了大量的公司资源,因为除了去理解原有的业务逻辑外,还要去整理代码执行的流程和实现方式,遇到那种“率性而为”的开发人员留下的代码,简直就难如登天。所以,在软件的开发过程中,是不是有一种更加不依赖原有业务逻辑、最低限度地解除对原有开发团队由于研发管理造成的代码混乱,可以尽量应对复杂多变的需求,特别是业务层的需求,以软件工程的高度去审视这个现状。
在项目初期,项目的规模可能比较小,代码量很少,项目中的代码或许还能整理得比较干净,但是随着项目规模的进一步扩大以及开发人员的增加,每个人的编码风格和对业务的理解存在偏差,实现的方式和代码也会千变万化,如何应对这些变化,让整个项目、甚至公司内所有的项目都能保持稳定和高效,就成了中大型公司面临的严峻问题。
目前在业务系统开发的领域出现了多种多样的方法,比如传统的瀑布模型以及近些年来较火的敏捷开发以及基于领域驱动的开发,都是时代的产物,应需求多变、快变的结果。但是由此造成原有的业务系统逻辑变得日益复杂,多人多团队开发也不可避免地造成了逻辑混乱,因为受个人编程风格和代码规范的影响,直接增加了新的开发人员对系统的学习和对接工作难度,也为后续的迭代升级埋下了很多不可预期的错误隐患。而且中大型的业务系统一般不只是面向一个客户,当多个客户的需求不尽相同时,传统的做法就会对原有的系统进行千疮百孔的“补丁式”硬代码编写以及公用配置项的不断增加,注释写得不够周详的话,时间久了可能连编写本人都会遗忘当初的设计理念和业务逻辑。
发明内容
为解决上述技术问题,本发明提供的一种基于插件引擎注入的低耦合扩展的业务系统,对各个不同的开发人员、客户的个性化需求进行隔离,互不影响,灵活配置,不影响原有应用程序的架构,也不需要人为重启生产环境中的服务器。
本发明通过下述技术方案实现:
本方案提供一种基于插件引擎注入的低耦合扩展的业务系统,应用于业务系统开发,其特征在于,包括外部调用方模块、策略工厂模块、插件引擎模块和内部开发方;所述插件引擎模块包含有插件引擎的抽象类和插件引擎的具体策略类;
所述外部调用方模块用于获取客户定制的业务逻辑;
策略工厂模块用于根据客户定制的业务逻辑配置指定的具体策略类;
外部调用方模块用于通过插件引擎的抽象类调取配置指定的具体策略类;
内部开发方开发业务逻辑并将各业务逻辑以动态链接库文件格式反向注入插件引擎得到对应的具体策略类;
当需要根据客户定制的业务逻辑对内部开发方开发的业务逻辑进行添加、修改或删除时,内部开发方随时对开发的业务逻辑进行添加、修改或删除。
进一步优化方案为,所述插件引擎模块还包括插件引擎的切面化机制,所述插件引擎切面化机制通过面向切面的编程方法实现对外部业务逻辑程序扩展的接口。
进一步优化方案为,插件引擎切面化机制包括:访问通知类,访问通知者,通知前处理逻辑,通知后处理逻辑,通知失败处理逻辑,通知的动态方法匹配表达式,通知拦截,通知修改者,是否已访问过的逻辑,是否已修改过的逻辑,扩展接口,扩展类的接口,是否已访问的接口,是否已修改的接口,通知的委托,通知工厂类,是否访问通知者实体类,是否修改通知者实体类,修改通知实体类。
进一步优化方案为,插件引擎切面化机制实现各类业务的拦截器;所述各类业务的拦截器包括:策略引擎配置帮助类,策略缓存拦截器,策略调用入口拦截器,策略调用返回拦截器,策略参数验证拦截器,策略执行异常捕获拦截器,策略性能监视拦截器。
进一步优化方案为,插件引擎的抽象类包括:插件的根接口、文件对象接口、消息接口、消息明细接口、认证接口、业务根接口、业务明细接口、参数对象接口、动作接口、插件的注册信息接口、插件的注册控制器接口、消息模型接口、插件的状态接口、远程服务抽象类和业务适配器抽象类。
进一步优化方案为,插件引擎的具体策略类包括:当前应用程序域、事件订阅器、插件对象类、弱事件处理委托、命令行帮助类、事件处理的扩展方法类、动作的事件的参数类、未注册对象的回调委托、加载业务对象委托、弱事件处理接口、事件帮助类、共享内存操作处理类、事件管理类、状态管理类、读写结果枚举、字符串压缩类、文件帮助类、事件提供者、简化版的共享内存操作处理类、文件格式大小结构体、插件工厂类、业务对象类、公用处理逻辑类、插件管理类、参数管理类、初始化结构枚举、网络检测帮助类、插件引擎日志类、压缩与解压帮助类、windows消息枚举、应用配置服务类、资源设置管理类、打包与解包帮助类、插件类型枚举。
进一步优化方案为,所述插件引擎模块还包括插件引擎的配置中心,
所述配置中心包括:普通应用配置项类,普通应用配置项集合类,子契约类,普通应用配置类,Json应用配置项类,Json应用配置项集合类,受限属性契约解析器,Json应用配置管理类,配置管理器,键值对转换器,Json应用配置类。
进一步优化方案为,所述插件引擎模块中设置有业务模型类,所述业务模型类实现客户定制的业务逻辑与其对应具体策略类的关系;
所述业务模型类包括:动作信息类,消息模型类,参数对象类,业务信息类,认证型插件注册类,UI事件型插件注册类,业务型插件注册类,消息型插件注册类,Json序列化器接口,Json序列化器,序列化对象处理类,消息异常类,序列化帮助类,文件对象类,多语言信息类,用户接口异常类,应用程序异常类,通知参数类。
业务模型类是完成从需求分析到面向对象设计的一座桥梁,就是显示最重要的业务概念和它们之间关系,是真实世界各个事物的表示,而不是软件中各构件的表示。它不仅是一种业务模型,更是一种分析和设计模型。
进一步优化方案为,所述插件引擎模块采用.NET的反射机制加载插件,插件引擎接口和插件引擎的抽象类与插件通信实现动态加载具体策略类。
进一步优化方案为,内部开发方开发业务逻辑同时备注对应的必要参数规格,各业务逻辑的动态链接库文件和其对应的必要参数规格一并反向注入插件引擎模块。
适配器是作为多个不兼容的接口之间的桥梁,它结合了多个独立接口的功能。
在本发明中,策略模式实现一个类的行为或其算法可以在运行时更改,我们创建表示各种策略,自动适配业务逻辑,对应业务的行为会随着策略改变而改变,策略改变后,策略执行引擎上下文context(既外部调用方)会根据插件引擎自动根据该策略执行指定的行为和算法,通过配置文件策略可以自由切换,策略模式实现依赖倒置,对将来那些未知的业务都可以开放,耦合度最低。
插件引擎注入技术,利用策略模式和抽象工厂模式实现不同业务模块和功能之间的隔离,实现在线式的灵活配置,可满足多种复杂的业务场景,通过配置文件实现不同业务之间的隔离以及灵活的扩展,将原来复杂的业务逻辑按开发人员和客户需求独立处理,以动态链接库的形式进行灵活部署和配置。实现了大型业务系统可允许多人同时开发,也可以同时交付给多个不同需求的客户的目标。由三方不同的开发人员、技术支持人员、客户进行灵活的开发和配置,能让每一个业务模块能够独立于系统中的其它模块,实现每个开发人员的开发任务、每个客户的个性化需求完全的隔离,也能让技术支持人员根据客户的情况进行灵活的调配,为后续哪些未知的市场需求提供一个尽可能大的灵活空间,而不至于受多个需求间的业务影响。
插件引擎模块采用.NET的反射(reflection)机制来加载插件(DLL或EXE),并且其接口和抽象类可以用于和插件通信,实现主程序动态加载外部的各类策略,并调用DLL里面的类、方法、属性等。
通过依赖接口、继承接口实现业务模块和功能之间的隔离,采用Json配置文档,按照指定的格式配置即可。框架提供标准的Json配置文档格式。根据配置文档里的配置项,自动通过反射(reflection)机制进行反射,并调用指定的程序集(DLL/EXE),实现预期的功能和逻辑。客户业务的隔离主要是通过插件引擎来实现策略上下文的环境一致性,客户的请求会在该上下文中进行过滤,并匹配到正确的业务插件(插件引擎来保证),最后返回该插件执行DoAction完毕的结果。
本发明与现有技术相比,具有如下的优点和有益效果:
本发明提出的一种基于插件引擎注入的低耦合扩展的业务系统,利用策略模式和抽象工厂模式实现不同业务模块和功能之间的隔离,实现在线式的灵活配置,可满足多种复杂的业务场景,通过配置文件实现不同业务之间的隔离以及灵活的扩展,将原来复杂的业务逻辑按开发人员和客户需求独立处理,以动态链接库的形式进行灵活部署和配置。实现了大型业务系统可允许多人同时开发,也可以同时交付给多个不同需求的客户的目标。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。
图1为基于插件引擎注入的低耦合扩展的业务系统结构图;
图2为策略工厂以及调用上下文图;
图3为插件引擎的抽象类;
图4为插件引擎的部分具体策略类;
图5为插件引擎的部分具体策略类;
图6为插件引擎的配置中心;
图7为插件引擎的切面化机制;
图8为插件引擎中模块的插件业务模型类。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1
如图1和图2所示,一种基于插件引擎注入的低耦合扩展的业务系统,应用于业务系统开发,包括外部调用方模块、策略工厂模块、插件引擎模块和内部开发方;所述插件引擎模块包含有插件引擎的抽象类和插件引擎的具体策略类;
售后技术人员得到客户A定制的业务逻辑A、客户B定制的业务逻辑B、客户C定制的业务逻辑C后输入本系统;
系统中外部调用方模块用于获取客户定制的业务逻辑A、B、C;
策略工厂模块用于根据客户定制的业务逻辑配置指定的具体策略类;
外部调用方模块用于通过插件引擎的抽象类调取配置指定的具体策略类;
内部开发方开发业务逻辑并将各业务逻辑以动态链接库文件格式反向注入插件引擎得到对应的具体策略类;
当需要根据客户定制的业务逻辑对内部开发方开发的业务逻辑进行添加、修改或删除时,内部开发方随时对开发的业务逻辑进行添加、修改或删除。
插件引擎的抽象类(策略接口):所有的外部策略必须继承该接口,主程序才能实现动态加载,以及实现外部开发者预期的行为和算法。比如:加法OperationAdd,减法OperrationSub等其它更加复杂的策略。通过StrategyFactory.CreateStrategy()实现策略的创建,通过Context.ExecuteStragety()实现策略的执行,在继承IStrategy接口的DoAction()方法里实现外部的行为和算法。
插件引擎模块还包括插件引擎的切面化机制,所述插件引擎切面化机制通过面向切面的编程方法实现对外部业务逻辑程序扩展的接口。
如图6所示,所述插件引擎切面化机制包括:访问通知类(AccessAdvice),访问通知者(AccessAdvisor),通知前处理逻辑(BeforeAdvice),通知后处理逻辑(AfterAdvice),通知失败处理逻辑(ExceptionAdvice),通知的动态方法匹配表达式(ExpressionDynamicPointcutAdvisor),通知拦截(InterceptAdvice),通知修改者(ModificationAdvisor),是否已访问过的逻辑(IsAccessedMixin),是否已修改过的逻辑(IsModifiedMixin),扩展接口(IExtender),扩展类的接口(IExtendType),是否已访问的接口(IIsAccessed),是否已修改的接口(IIsModified),通知的委托(AdviceHandler),通知工厂类(ExtendFactory),是否访问通知者实体类(IsAccessedAdvisor),是否修改通知者实体类(IsModifiedAdvisor),修改通知实体类(ModificationAdvice)。
所述插件引擎切面化机制实现各类业务的拦截器;所述各类业务的拦截器包括:策略引擎配置帮助类(QCStrategyHelper),策略缓存拦截器(CachingBehavior),策略调用入口拦截器(LogBeforeBehavior),策略调用返回拦截器(LogAfterBehavior),策略参数验证拦截器(ParameterCheckBehavior),策略执行异常捕获拦截器(ExceptionLoggingBehavior),策略性能监视拦截器(MonitorBehavior)。
如图3所示,所述插件引擎的抽象类包括:插件的根接口(IPlugin)、文件对象接口(IFileObject)、消息接口(IMessage)、消息明细接口(IMessageInfo)、认证接口(IAuthentication)、业务根接口(Ibussiness)、业务明细接口(IBussinessInfo)、参数对象接口(IArgsObject)、动作接口(IActionInfo)、插件的注册信息接口(IRegisterInfo)、插件的注册控制器接口(IRegisterControl)、消息模型接口(IMessageModel)、插件的状态接口(IStatus)、远程服务抽象类(RemoteService)、业务适配器抽象类(BusinessAdpter)及多语音枚举(LanguageType)。
如图4所示,插件引擎的具体策略类包括:当前应用程序域(CurrentDomain)、事件订阅器(EventSubscriber)、插件对象类(PluginObject)、弱事件处理委托(WeakEventHandler<T,E>)、命令行帮助类(CommandLineHelper)、事件处理的扩展方法类(EventHandlerExtensions)、动作的事件的参数类(ActionEventArgs)、未注册对象的回调委托(UnregisterCallback<E>)、加载业务对象委托(LoadBizHandler)、弱事件处理接口(IWeakEventHandler<E>)、事件帮助类(EventHelper)、共享内存操作处理类(ShareMemory)、事件管理类(EventManager)、状态管理类(StatusManager)、读写结果枚举(ReadWriteResult)、字符串压缩类(StringCompress)、文件帮助类(FileHelper)、事件提供者(EventProvider)、简化版的共享内存操作处理类(ShareMem)、文件格式大小结构体(FormatSize)、插件工厂类(PluginFactory)、业务对象类(BusinessClass)、公用处理逻辑类(Commons)、插件管理类(PluginManager)、参数管理类(ArgManager)、初始化结构枚举(InitResult)、网络检测帮助类(NetHelper)、插件引擎日志类(Log)、压缩与解压帮助类(DeflateCompress)、windows消息枚举(WM)、应用配置服务类(AppConfigurationServices)、资源设置管理类(ResourceSetManager)、打包与解包帮助类(UnPackHelper)、插件类型枚举(PluginType)。
如图5所示,插件引擎模块还包括插件引擎的配置中心,
所述配置中心包括:普通应用配置项类(AppSetting),普通应用配置项集合类(AppSettings),子契约类(ChildrenContract),普通应用配置类(Configuration),Json应用配置项类(JsonSetting),Json应用配置项集合类(JsonSettings),受限属性契约解析器(LimitPropsContractResolver),Json应用配置管理类(JsonConfigurationManager),配置管理器(ConfigurationManager),键值对转换器(ConverterKeyValue),Json应用配置类(JsonConfiguration)。
所述插件引擎模块中设置有领域模型,所述领域模型实现客户定制的业务逻辑与其对应具体策略类的关系;
如图7所示,所述领域模型包括:动作信息类(ActionInfo),消息模型类(MessageModel),参数对象类(ArgsObject),业务信息类(BussinessInfo),认证型插件注册类(AuthRegisterInfo),UI事件型插件注册类(UiEventRegInfo),业务型插件注册类(BizRegisterInfo),消息型插件注册类(MsgRegisterInfo),Json序列化器接口(IJsonSerializer),Json序列化器(JsonSerializer),序列化对象处理类(SerializableObject),消息异常类(MessageException),序列化帮助类(SerilizationHelper),文件对象类(FileObject),多语言信息类(LanguageInfo),用户接口异常类(UserinterfaceException),应用程序异常类(ApplicationException),通知参数类(NoticeArgs)。
所述插件引擎采用.NET的反射机制加载插件,插件引擎接口和插件引擎的抽象类与插件通信实现动态加载具体策略类。
内部开发方开发业务逻辑的动态链接库文件同时备注对应的必要参数规格,各业务逻辑的动态链接库文件和其对应的必要参数规格一并反向注入插件引擎。
实施例2
策略可以自由切换(通过配置文件)避免使用多重条件判断(如果不用策略模式我们可能会使用多重条件语句,不利于维护),扩展性良好,增加一个策略只需将该业务类实现策略接口即可,实现依赖倒置,对将来那些未知的业务都可以开放,耦合度最低;基于插件引擎注入技术,利用面向对象的继承与组合,实现动态注入和执行特定的业务逻辑的目标;在业务系统主程序中,添加本框架的类库,以及在Nuget上安装Spring.Aop即可。
配置文档示例详解:
Figure BDA0002789315440000071
Figure BDA0002789315440000081
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于插件引擎注入的低耦合扩展的业务系统,应用于业务系统开发,其特征在于,包括外部调用方模块、策略工厂模块、插件引擎模块、内部开发方;
所述插件引擎模块包含有插件引擎的抽象类和插件引擎的具体策略类;
所述外部调用方模块用于获取客户定制的业务逻辑;
策略工厂模块用于根据客户定制的业务逻辑配置指定的具体策略类;
外部调用方模块用于通过插件引擎的抽象类调取配置指定的具体策略类;
内部开发方开发业务逻辑并将各业务逻辑以动态链接库文件格式反向注入插件引擎得到对应的具体策略类;
当需要根据客户定制的业务逻辑对内部开发方开发的业务逻辑进行添加、修改或删除时,内部开发方随时对开发的业务逻辑进行添加、修改或删除;
所述插件引擎的抽象类包括:插件的根接口、文件对象接口、消息接口、消息明细接口、认证接口、业务根接口、业务明细接口、参数对象接口、动作接口、插件的注册信息接口、插件的注册控制器接口、消息模型接口、插件的状态接口、远程服务抽象类和业务适配器抽象类;
所述插件引擎的具体策略类包括:当前应用程序域、事件订阅器、插件对象类、弱事件处理委托、命令行帮助类、事件处理的扩展方法类、动作的事件的参数类、未注册对象的回调委托、加载业务对象委托、弱事件处理接口、事件帮助类、共享内存操作处理类、事件管理类、状态管理类、读写结果枚举、字符串压缩类、文件帮助类、事件提供者、简化版的共享内存操作处理类、文件格式大小结构体、插件工厂类、业务对象类、公用处理逻辑类、插件管理类、参数管理类、初始化结构枚举、网络检测帮助类、插件引擎日志类、压缩与解压帮助类、windows消息枚举、应用配置服务类、资源设置管理类、打包与解包帮助类和插件类型枚举。
2.根据权利要求1所述的一种基于插件引擎注入的低耦合扩展的业务系统,其特征在于,所述插件引擎模块还包括插件引擎的切面化机制,所述插件引擎切面化机制通过面向切面的编程方法实现对外部业务逻辑程序扩展的接口。
3.根据权利要求2所述的一种基于插件引擎注入的低耦合扩展的业务系统,其特征在于,所述插件引擎切面化机制包括:访问通知类,访问通知者,通知前处理逻辑,通知后处理逻辑,通知失败处理逻辑,通知的动态方法匹配表达式,通知拦截,通知修改者,是否已访问过的逻辑,是否已修改过的逻辑,扩展接口,扩展类的接口,是否已访问的接口,是否已修改的接口,通知的委托,通知工厂类,是否访问通知者实体类,是否修改通知者实体类和修改通知实体类。
4.根据权利要求2或3所述的一种基于插件引擎注入的低耦合扩展的业务系统,其特征在于,所述插件引擎切面化机制实现各类业务的拦截器;所述各类业务的拦截器包括:策略引擎配置帮助类,策略缓存拦截器,策略调用入口拦截器,策略调用返回拦截器,策略参数验证拦截器,策略执行异常捕获拦截器和策略性能监视拦截器。
5.根据权利要求1所述的一种基于插件引擎注入的低耦合扩展的业务系统,其特征在于,所述插件引擎模块还包括插件引擎的配置中心,
所述配置中心包括:普通应用配置项类,普通应用配置项集合类,子契约类,普通应用配置类,Json应用配置项类,Json应用配置项集合类,受限属性契约解析器,Json应用配置管理类,配置管理器,键值对转换器和Json应用配置类。
6.根据权利要求1所述的一种基于插件引擎注入的低耦合扩展的业务系统,其特征在于,所述插件引擎模块中设置有领域模型,所述领域模型实现客户定制的业务逻辑与其对应具体策略类的关系;
所述领域模型包括:动作信息类,消息模型类,参数对象类,业务信息类,认证型插件注册类,UI事件型插件注册类,业务型插件注册类,消息型插件注册类,Json序列化器接口,Json序列化器,序列化对象处理类,消息异常类,序列化帮助类,文件对象类,多语言信息类,用户接口异常类,应用程序异常类和通知参数类。
7.根据权利要求1所述的一种基于插件引擎注入的低耦合扩展的业务系统,其特征在于,所述插件引擎模块采用.NET的反射机制加载插件,插件引擎接口、插件引擎的抽象类与插件通信实现动态加载具体策略类。
8.根据权利要求1所述的一种基于插件引擎注入的低耦合扩展的业务系统,其特征在于,内部开发方开发业务逻辑的动态链接库文件同时备注对应的必要参数规格,各业务逻辑的动态链接库文件和其对应的必要参数规格一并反向注入插件引擎模块。
CN202011309524.0A 2020-11-20 2020-11-20 一种基于插件引擎注入的低耦合扩展的业务系统 Active CN112363755B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011309524.0A CN112363755B (zh) 2020-11-20 2020-11-20 一种基于插件引擎注入的低耦合扩展的业务系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011309524.0A CN112363755B (zh) 2020-11-20 2020-11-20 一种基于插件引擎注入的低耦合扩展的业务系统

Publications (2)

Publication Number Publication Date
CN112363755A CN112363755A (zh) 2021-02-12
CN112363755B true CN112363755B (zh) 2022-08-16

Family

ID=74533001

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011309524.0A Active CN112363755B (zh) 2020-11-20 2020-11-20 一种基于插件引擎注入的低耦合扩展的业务系统

Country Status (1)

Country Link
CN (1) CN112363755B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113076119B (zh) * 2021-03-25 2023-12-12 北京车和家信息技术有限公司 一种车机程序的更新方法、装置、介质和电子设备
CN114567667B (zh) * 2022-03-04 2024-03-15 深圳前海环融联易信息科技服务有限公司 一种基于责任链设计模式的业务处理组件系统
CN115291877A (zh) * 2022-10-10 2022-11-04 深圳市明源云客电子商务有限公司 业务开发方法、装置、终端设备及计算机可读存储介质
CN115658018B (zh) * 2022-10-20 2023-08-08 广东云徙智能科技有限公司 一种中台逻辑扩展方法、系统、装置及介质
CN116069379B (zh) * 2023-01-28 2023-08-04 深圳市明源云科技有限公司 二次开发功能的识别方法、装置、设备及介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271406A (ja) * 2002-03-12 2003-09-26 Yamaha Corp データ処理装置およびデータ処理方法ならびにそのプログラム
CN1601510A (zh) * 2003-03-06 2005-03-30 微软公司 分布式计算系统的架构和分布式应用程序的自动设计,部署及管理
EP2075711A1 (en) * 2007-12-20 2009-07-01 Accenture Global Services GmbH System for providing a configurable adaptor for mediating systems
CN104657142A (zh) * 2015-02-12 2015-05-27 中国科学院计算机网络信息中心 一种基于OSGi技术的CCFD系统
CN106293808A (zh) * 2016-07-26 2017-01-04 北京北森云计算股份有限公司 多语言云编译实现系统功能动态拦截扩展的方法及系统
CN108875089A (zh) * 2018-08-02 2018-11-23 成都秦川物联网科技股份有限公司 基于车联网的数据推送方法及车联网系统
CN109189589A (zh) * 2018-08-14 2019-01-11 北京博睿宏远数据科技股份有限公司 一种分布式大数据计算引擎及架构方法
CN109614158A (zh) * 2017-09-30 2019-04-12 北京国双科技有限公司 一种插件的调用方法、系统、存储介质和处理器
CN111596969A (zh) * 2020-05-09 2020-08-28 中国电子科技集团公司第二十八研究所 一种基于微内核加插件式的软件架构方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250178B (zh) * 2016-07-26 2019-10-25 北京北森云计算股份有限公司 通过多语言云编译实现系统动态功能在线拦截扩展的方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271406A (ja) * 2002-03-12 2003-09-26 Yamaha Corp データ処理装置およびデータ処理方法ならびにそのプログラム
CN1601510A (zh) * 2003-03-06 2005-03-30 微软公司 分布式计算系统的架构和分布式应用程序的自动设计,部署及管理
EP2075711A1 (en) * 2007-12-20 2009-07-01 Accenture Global Services GmbH System for providing a configurable adaptor for mediating systems
CN104657142A (zh) * 2015-02-12 2015-05-27 中国科学院计算机网络信息中心 一种基于OSGi技术的CCFD系统
CN106293808A (zh) * 2016-07-26 2017-01-04 北京北森云计算股份有限公司 多语言云编译实现系统功能动态拦截扩展的方法及系统
CN109614158A (zh) * 2017-09-30 2019-04-12 北京国双科技有限公司 一种插件的调用方法、系统、存储介质和处理器
CN108875089A (zh) * 2018-08-02 2018-11-23 成都秦川物联网科技股份有限公司 基于车联网的数据推送方法及车联网系统
CN109189589A (zh) * 2018-08-14 2019-01-11 北京博睿宏远数据科技股份有限公司 一种分布式大数据计算引擎及架构方法
CN111596969A (zh) * 2020-05-09 2020-08-28 中国电子科技集团公司第二十八研究所 一种基于微内核加插件式的软件架构方法

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
AgileBPM 敏捷工作流开发平台;Jeff;《https://gitee.com/lhcsx/agile-bpm-basic》;20190806;1-6 *
DLL injection plugin;Site Admin;《https://www.solarstrike.net/phpBB3/viewtopic.php?t=56》;20080105;1-10 *
iOS在线商城客户端优化方案设计与实现;赵钦;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20181118;I138-236 *
NAT用户间的TCP通信引擎机制的研究;刘三民;《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》;20100515;I139-40 *
Optimal Charge Control of Plug-In Hybrid Electric Vehicles in Deregulated Electricity Markets;Niklas Rotering等;《IEEE Transactions on Power Systems》;20101111;1021-1029 *
StarBreak Plugin Engine;atomizer;《https://github.com/atomizer/sbpe》;20200224;1-7 *
webpack插件--DllPlugin -- 动态链接库;janezhang;《https://www.jianshu.com/p/d0eec2cda18b》;20191028;1-4 *
可拓展架构模式;程序员学习圈;《https://blog.csdn.net/Luomingkui1109/article/details/103229442》;20191124;1-11 *
第二章《框架插件引擎设计》;浩淼;《https://www.cnblogs.com/chiangbt/archive/2008/08/19/1271284.html》;20080809;1-3 *

Also Published As

Publication number Publication date
CN112363755A (zh) 2021-02-12

Similar Documents

Publication Publication Date Title
CN112363755B (zh) 一种基于插件引擎注入的低耦合扩展的业务系统
Morin et al. An aspect-oriented and model-driven approach for managing dynamic variability
US8074218B2 (en) Method and system for constructing virtual resources
US20040176968A1 (en) Systems and methods for dynamically configuring business processes
Valetto et al. Using process technology to control and coordinate software adaptation
US20100100591A1 (en) System and method for a mobile cross-platform software system
US20030182461A1 (en) Service mapping method of enterprise application modeling and development for multi-tier service environments
US20070168926A1 (en) Software customization framework
US20090037921A1 (en) Techniques for instantiating and configuring projects
CN101387956A (zh) 可扩展地实现非功能逻辑的方法和设备及其系统
US9542656B2 (en) Supporting ETL processing in BPEL-based processes
CN117099079A (zh) 经由配置在云平台中的数据中心上的持续交付部署的服务的系统配置冻结和变更管理
CN116055308B (zh) 一种供应链金融平台的底层区块链网络部署方法及装置
US20120041991A1 (en) Scalable and extensible framework for data-driven web services
Almorsy et al. Mdse@ r: model-driven security engineering at runtime
Popescu et al. A formalized, taxonomy-driven approach to cross-layer application adaptation
WO2022250864A1 (en) Deploying a cloud service based on component dependencies
AU2014253672A1 (en) Checking undoability of an API-controlled computing system
Sousa et al. Model-driven development of DSML execution engines
CN111984623B (zh) 数据库集群自动化部署方法、装置、介质和电子设备
CN111522623B (zh) 组件化软件多进程运行系统
CN111813836A (zh) 一种提高Ethereum区块链系统扩展性的方法
US10176011B2 (en) Automatically generating and executing a service operation implementation for executing a task
US20050216881A1 (en) Software structure driven approach for implementing workflow
CN103677842A (zh) 软件工具配置式集成扩展调用方法与系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant