掌桥专利:专业的专利平台
掌桥专利
首页

一种基于容器的多端开发方法

文献发布时间:2024-05-31 01:29:11


一种基于容器的多端开发方法

技术领域

本发明涉及多端开发相关技术领域,尤其涉及一种基于容器的多端开发方法。

背景技术

当前在互联网上存在各种不同的平台,例如网页(包括用微信公众号展示的形式)、小程序(微信小程序、支付宝小程序等)、App等平台。以医疗信息系统为例,很多内容业务系统,例如Html5形式的老旧内容仍然存在,在不重构重新开发情况下无法支持这些新的平台的上线发布,除了这个问题以外,还有一些其他问题:每个医院提出需求不同,多个医院都有特定需求,再为每家医院定制化重构无疑是一个耗时耗力的问题;医院需求多变,即时更新需求非常重要,但小程序、App都需要平台审核通过才能发布,无法做到即时更新快速迭代。

发明内容

针对上述问题,本发明提供一种基于容器的多端开发方法,可实现在支持已有业务系统的同时,实现快速发布到多目标平台。

为了实现本发明的目的,采用以下方案:

一种基于容器的多端开发方法,包括以下步骤:

S100:通过uni-app编写容器,容器包括业务系统接入模块、目标平台接口模块、登录模块、通信模块、获权模块,其中,业务系统接入模块、目标平台接口模块用于容器分别和各业务系统、各目标平台通信连接,登录模块用于开发者登录容器,并登录业务系统,通信模块用于两个业务系统之间的通信,以及业务系统与容器之间的通信,获权模块用于业务系统获取目标平台的权限;

S200:对容器的业务系统接入模块、目标平台接口模块、登录模块分别进行配置,业务系统接入模块包括n条接入规则,目标平台接口模块包括与目标平台数量相同的m个目标平台接口,登录模块包括i条登录规则和认证数据库;

S300:通过登录模块统一登录所有业务系统,并将各业务系统接入容器;

S400:业务系统在容器中构建出各个目标平台的应用代码;

S500:将容器复制并部署到所有目标平台,然后分别通过目标平台接口模块与各目标平台的程序建立通信连接;

S600:容器将应用代码发布到目标平台。

进一步,接入规则包括接入规则ID、业务系统名称、接入地址,登录规则包括登录规则ID、登录平台名称、登录地址,S300包括:

S310:确定要登录的平台,根据登录平台名称在对应的登录规则中获取登录地址;

S320:从获取到的登录地址进入登录平台,输入登录信息,然后发送登录请求;

S330:登录模块接收从登录平台收到的登录请求,读取登录请求中的登录信息;

S340:将登录信息与认证数据库中的认证数据比对;

S350:判断登录信息是否在认证数据库中,若是,则执行S360,若否,则登录失败;

S360:登录到容器,容器生成认证信息;

S370:容器将认证信息发送到所有业务系统,登录到各业务系统;

S380:业务系统根据业务系统名称匹配对应的接入规则,从接入规则的接入地址接入容器。

进一步,目标平台接口包括目标平台接口ID、目标平台名称、接口地址,S500中,容器根据目标平台名称匹配对应的目标平台接口,然后通过接口地址与目标平台的程序通信。

进一步,通信模块的通信步骤包括:

业务系统初始化通信监听,容器初始化通信监听;

当业务系统与容器通信时,业务系统向容器发起通信请求,容器接收通信请求后处理通信内容,然后向业务系统返回通信结果;

当业务系统与业务系统通信时,第一个业务系统向容器发起通信请求,容器接收通信请求后处理通信内容,然后向第二个业务系统转发通信请求,第二个业务系统处理通信内容后,向容器返回通信结果,容器接收通信结果后再向第一个业务系统返回通信结果。

进一步,单个业务系统通过获权模块的获权步骤包括:

T100:业务系统向容器发出平台权限请求;

T200:获权模块接收平台权限请求,并从目标平台获取权限,T200包括:

先判断业务系统是否向各平台请求相同权限,无论是否,均再判断业务系统是否向所有目标平台请求权限,若业务系统向各平台请求相同权限,且向所有目标平台请求权限,则执行第一获权步骤,若业务系统向各平台请求相同权限,且未向所有目标平台请求权限,则执行第二获权步骤,若业务系统未向各平台请求相同权限,且向所有目标平台请求权限,则执行第三获权步骤,若业务系统未向各平台请求相同权限,且未向所有目标平台请求权限,则执行第四获权步骤;

T300:容器向业务平台返回权限;

T400:业务系统从容器接收权限。

进一步,第一获权步骤包括:

A100:在所有目标平台部署的各容器同步执行以下步骤;

A200:获权模块生成并初始化第一计数器e,e=1;

A300:判断目标平台是否具有第e项请求的权限且可授权给发出请求的业务系统,若是,则记录第e项权限的名称到权限池中,然后e=e+1,若否,则直接e=e+1;

A400:判断e>请求的权限项数q是否成立,若是,则获权模块获取在权限池中的所有权限,若否,则返回A300。

进一步,第二获权步骤包括:

B100:在被请求权限的各目标平台部署的各容器同步执行以下步骤;

B200:获权模块生成并初始化第一计数器e,e=1;

B300:判断目标平台是否具有第e项请求的权限且可授权给发出请求的业务系统,若是,则记录第e项权限的名称到权限池中,然后e=e+1,若否,则直接e=e+1;

B400:判断e>请求的权限项数q是否成立,若是,则获权模块获取在权限池中的所有权限,若否,则返回B300。

进一步,第三获权步骤包括:

C100:获权模块生成并初始化第二计数器f,f=1;

C200:在第f个被请求权限的目标平台部署的各容器执行以下步骤;

C300:获权模块生成并初始化第一计数器e,e=1;

C400:判断目标平台是否具有第e项请求的权限且可授权给发出请求的业务系统,若是,则记录第e项权限的名称到权限池中,然后e=e+1,若否,则直接e=e+1;

C500:判断e>向该目标平台请求的权限项数g是否成立,若是,则获权模块获取在权限池中的所有权限,若否,则返回C400;

C600:f=f+1;

C700:判断f>m是否成立,若是则结束第三获权步骤,若否则返回C200。

进一步,第四获权步骤包括:

D100:获权模块生成并初始化第二计数器f,f=1;

D200:在第f个被请求权限的目标平台部署的各容器执行以下步骤;

D300:获权模块生成并初始化第一计数器e,e=1;

D400:判断目标平台是否具有第e项请求的权限且可授权给发出请求的业务系统,若是,则记录第e项权限的名称到权限池中,然后e=e+1,若否,则直接e=e+1;

D500:判断e>向该目标平台请求的权限项数g是否成立,若是,则获权模块获取在权限池中的所有权限,若否,则返回D400;

D600:f=f+1;

D700:判断f>被请求权限的目标平台数量h是否成立,若是则结束第三获权步骤,若否则返回D200。

本技术方案的有益效果在于:

1、无需对现有业务系统重构开发,只需要轻量快速的接入改造,就可实现多平台的支持。

2、由于容器部署在平台端,在不改变容器配置的情况下,若发布新版本,则更新的是业务系统的内容,而不是容器,因此平台方不需要对新版本进行审核,新版本快速迭代时,缩短了审核发布流程。

3、登录模块包括认证数据库,在进行多个业务系统的登录时,采用统一登录、统一接入容器的方式,与目前需要在每个业务系统单独登录、单独接入到平台相比,大幅缩短了时间。

4、容器部署在所有目标平台,然后目标平台接口模块通过特定接口与特定目标平台的程序建立通信连接,便于多平台的产品发布。

5、通过容器,还可以使业务平台之间进行方便的通信。

附图说明

图1示出了本申请实施例整体流程图。

图2示出了本申请实施例容器内容结构图。

图3示出了本申请实施例业务系统接入模块、目标平台接口模块、登录模块内容结构图。

图4示出了本申请实施例S300步骤流程图。

图5示出了本申请实施例通信模块的通信步骤流程图。

图6示出了本申请实施例单个业务系统通过获权模块的获权步骤流程图。

图7示出了本申请实施例T200步骤流程图。

图8示出了本申请实施例第一获权步骤流程图。

图9示出了本申请实施例第二获权步骤流程图。

图10示出了本申请实施例第三获权步骤流程图。

图11示出了本申请实施例第四获权步骤流程图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面对本申请的实施方式进行详细说明,但本申请所描述的实施例是本申请一部分实施例,而不是全部的实施例。

如图1~图11所示,基于容器的多端开发方法,按以下步骤实施:

S100:通过uni-app编写容器,容器包括业务系统接入模块、目标平台接口模块、登录模块、通信模块、获权模块,其中,业务系统接入模块、目标平台接口模块用于容器分别和各业务系统、各目标平台通信连接,登录模块用于开发者登录容器,并登录业务系统,通信模块用于两个业务系统之间的通信,以及业务系统与容器之间的通信,获权模块用于业务系统获取目标平台的权限,例如从手机相册读取照片的权限、定位权限等;

S200:对容器的业务系统接入模块、目标平台接口模块、登录模块分别进行配置,业务系统接入模块包括n条接入规则,接入规则包括接入规则ID、业务系统名称、接入地址,目标平台接口模块包括与目标平台数量相同的m个目标平台接口,目标平台接口包括目标平台接口ID、目标平台名称、接口地址,登录模块包括i条登录规则和认证数据库,登录规则包括登录规则ID、登录平台名称、登录地址,接入地址、接口地址、登录地址采用域名或IP地址的形式进行记录;

S300:通过登录模块统一登录所有业务系统,并将各业务系统接入容器;

具体地,S300包括:

S310:确定要登录的平台,根据登录平台名称在对应的登录规则中获取登录地址;

S320:从获取到的登录地址进入登录平台,输入登录信息,然后发送登录请求;

S330:登录模块接收从登录平台收到的登录请求,读取登录请求中的登录信息;

S340:将登录信息与认证数据库中的认证数据比对;

S350:判断登录信息是否在认证数据库中,若是,则执行S360,若否,则登录失败;

S360:登录到容器,容器生成认证信息;

S370:容器将认证信息发送到所有业务系统,登录到各业务系统;

S380:业务系统根据业务系统名称匹配对应的接入规则,从接入规则的接入地址接入容器;

S400:业务系统在容器中构建出各个目标平台的应用代码;

S500:将容器复制并部署到所有目标平台,然后分别通过目标平台接口模块与各目标平台的程序建立通信连接,具体地,S500中,容器根据目标平台名称匹配对应的目标平台接口,然后通过接口地址与目标平台的程序通信;

S600:容器将应用代码发布到目标平台。

以通过微信小程序访问业务平台中的Html5内容为例,由于移动操作系统如Android等具有自带控件Webview,App、小程序中都提供对应API来使用webview,应用代码中可包括通过微信小程序的API调用业务系统中Html5内容的代码,以实现访问。

具体地,通信模块的通信步骤包括:

业务系统初始化通信监听,容器初始化通信监听;

当业务系统与容器通信时,业务系统向容器发起通信请求,容器接收通信请求后处理通信内容,然后向业务系统返回通信结果;

当业务系统与业务系统通信时,第一个业务系统向容器发起通信请求,容器接收通信请求后处理通信内容,然后向第二个业务系统转发通信请求,第二个业务系统处理通信内容后,向容器返回通信结果,容器接收通信结果后再向第一个业务系统返回通信结果。

具体地,单个业务系统通过获权模块的获权步骤包括:

T100:业务系统向容器发出平台权限请求;

T200:获权模块接收平台权限请求,并从目标平台获取权限,T200包括:

先判断业务系统是否向各平台请求相同权限,无论是否,均再判断业务系统是否向所有目标平台请求权限,若业务系统向各平台请求相同权限,且向所有目标平台请求权限,则执行第一获权步骤,若业务系统向各平台请求相同权限,且未向所有目标平台请求权限,则执行第二获权步骤,若业务系统未向各平台请求相同权限,且向所有目标平台请求权限,则执行第三获权步骤,若业务系统未向各平台请求相同权限,且未向所有目标平台请求权限,则执行第四获权步骤;

T300:容器向业务平台返回权限;

T400:业务系统从容器接收权限。

以下对第一获权步骤、第二获权步骤、第三获权步骤、第四获权步骤依次进行说明。

第一获权步骤包括:

A100:在所有目标平台部署的各容器同步执行以下步骤;

A200:获权模块生成并初始化第一计数器e,e=1;

A300:判断目标平台是否具有第e项请求的权限且可授权给发出请求的业务系统,若是,则记录第e项权限的名称到权限池中,然后e=e+1,若否,则直接e=e+1;

A400:判断e>请求的权限项数q是否成立,若是,则获权模块获取在权限池中的所有权限,若否,则返回A300。

第二获权步骤包括:

B100:在被请求权限的各目标平台部署的各容器同步执行以下步骤;

B200:获权模块生成并初始化第一计数器e,e=1;

B300:判断目标平台是否具有第e项请求的权限且可授权给发出请求的业务系统,若是,则记录第e项权限的名称到权限池中,然后e=e+1,若否,则直接e=e+1;

B400:判断e>请求的权限项数q是否成立,若是,则获权模块获取在权限池中的所有权限,若否,则返回B300。

第三获权步骤包括:

C100:获权模块生成并初始化第二计数器f,f=1;

C200:在第f个被请求权限的目标平台部署的各容器执行以下步骤;

C300:获权模块生成并初始化第一计数器e,e=1;

C400:判断目标平台是否具有第e项请求的权限且可授权给发出请求的业务系统,若是,则记录第e项权限的名称到权限池中,然后e=e+1,若否,则直接e=e+1;

C500:判断e>向该目标平台请求的权限项数g是否成立,若是,则获权模块获取在权限池中的所有权限,若否,则返回C400;

C600:f=f+1;

C700:判断f>m是否成立,若是则结束第三获权步骤,若否则返回C200。

第四获权步骤包括:

D100:获权模块生成并初始化第二计数器f,f=1;

D200:在第f个被请求权限的目标平台部署的各容器执行以下步骤;

D300:获权模块生成并初始化第一计数器e,e=1;

D400:判断目标平台是否具有第e项请求的权限且可授权给发出请求的业务系统,若是,则记录第e项权限的名称到权限池中,然后e=e+1,若否,则直接e=e+1;

D500:判断e>向该目标平台请求的权限项数g是否成立,若是,则获权模块获取在权限池中的所有权限,若否,则返回D400;

D600:f=f+1;

D700:判断f>被请求权限的目标平台数量h是否成立,若是则结束第三获权步骤,若否则返回D200。

各业务系统分别通过以上单个业务系统通过获权模块的获权步骤,进行权限的获取。

由于业务系统向不同目标平台请求的权限可能有所差别,且不同类型的目标平台存在的权限和可用性具有差别,所以采用四种不同的获权步骤,在第一获权步骤和第二获权步骤中,由于向各平台请求的都是相同权限,因此在各目标平台中部署的容器同步进行权限获取,效率较高,同时,在第二获权步骤中,可仅对被请求权限的各目标平台进行权限获取,而在第三获权步骤和第四获权步骤中,可针对更复杂的情况,即需要对不同目标平台获取不同权限,进行处理,且能根据被请求权限的目标平台数量是否等于目标平台总数量进行分别处理,实现了较为复杂的功能,另外,在这四个获权步骤中,会进行目标平台是否具有被要求的权限的校验,以及被要求的权限是否可授权给业务系统的校验,可以避免业务系统提交的权限要求有错误导致整个获权流程无法继续,也可以提高获权时的安全性。

以上仅为本申请列举的部分实施例,并不用于限制本申请。

相关技术
  • 一种基于多端交互的稽查管理方法及移动体稽查管理方法
  • 基于Flutter动态生成跨平台多端应用的开发方法
  • 基于vue开发的H5应用快速成型为多端应用实现方法
技术分类

06120116625974