CN116450309A - ***服务提供方法、装置、存储介质及电子设备 - Google Patents

***服务提供方法、装置、存储介质及电子设备 Download PDF

Info

Publication number
CN116450309A
CN116450309A CN202310159193.4A CN202310159193A CN116450309A CN 116450309 A CN116450309 A CN 116450309A CN 202310159193 A CN202310159193 A CN 202310159193A CN 116450309 A CN116450309 A CN 116450309A
Authority
CN
China
Prior art keywords
service
cross
process communication
communication interface
sub
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
Application number
CN202310159193.4A
Other languages
English (en)
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.)
Shenzhen Leiniao Network Media Co ltd
Original Assignee
Shenzhen Leiniao Network Media 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 Shenzhen Leiniao Network Media Co ltd filed Critical Shenzhen Leiniao Network Media Co ltd
Priority to CN202310159193.4A priority Critical patent/CN116450309A/zh
Publication of CN116450309A publication Critical patent/CN116450309A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请公开了一种服务提供方法、装置、存储介质及电子设备,涉及计算机技术领域,该方法包括:将应用层中业务***进行组件化,得到组件集,所述组件集中包括至少一个组件;从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务;创建软件开发工具包,并在所述***层创建继承所述***服务的子服务;在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,所述跨进程通信接口用于供应用访问所述***服务。本申请可以针对应用对于业务***的调用,实现有效简化应用调用使用流程,降低维护成本,提升业务质量。

Description

***服务提供方法、装置、存储介质及电子设备
技术领域
本申请涉及计算机技术领域,具体涉及一种***服务提供方法、装置、存储介质及电子设备。
背景技术
随着业务***的复杂性越来越高以及***之间的调用也越来越多,应用对于业务***的可靠性调用面临挑战。目前,实现业务***可靠性调用的相关方式,一些方式中,通过将业务***组件化后供调用,这种方式下,通常可维护性较差,一旦组件本身有重大变更,依赖该组件的所有应用都需要同步升级,成本高且风险大;另一些方式中,通过自实现进程间通信(IPC)方式供应用进行调用,这种方式实现较为繁琐,需要处理很多通用实现,应用调用业务***的流程复杂。
因此,目前应用对于业务***的调用方式,存在应用调用使用流程复杂、维护成本高及风险大等问题,导致业务质量较差。
发明内容
本申请实施例提供一种服务提供方案,可以针对应用对于业务***的调用,实现有效简化应用调用使用流程,降低维护成本,提升业务质量。
本申请实施例提供以下技术方案:
根据本申请的一个实施例,一种服务提供方法,其包括:将应用层中业务***进行组件化,得到组件集,所述组件集中包括至少一个组件;从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务;创建软件开发工具包,并在所述***层创建继承所述***服务的子服务;在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,所述跨进程通信接口用于供应用访问所述***服务。
在本申请的一些实施例中,所述将应用层中业务功能模块进行组件化,得到组件集,所述组件集中包括至少一个组件,包括:将所述业务***中业务功能按相似度进行分离,得到至少一个业务模块;从所述各业务模块中抽取公共逻辑方法,并将抽取的各所述公共逻辑方法封装成独立的组件,得到所述组件集。
在本申请的一些实施例中,所述从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务,包括:从所述组件集中提取具有基础能力的代码;将提取的所述代码转换为统一架构标准的统一架构代码;将所述统一架构代码下沉至***层作为所述***服务。
在本申请的一些实施例中,所述在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,包括:在所述***层创建跨进程通信接口定义文件;将所述***层中的所述跨进程通信接口定义文件与对应的目录复制到所述软件开发工具包;在所述软件开发工具包中,基于所述跨进程通信接口定义文件构建所述子服务对应的跨进程通信接口。
在本申请的一些实施例中,所述基于所述跨进程通信接口定义文件构建所述子服务对应的跨进程通信接口,包括:在所述***层定义预定操作;在所述子服务中声明实现存根类接口的跨进程通信对象;在所述软件开发工具包中,通过所述预定操作绑定所述子服务;在所述软件开发工具包中添加所述跨进程通信对象,并转换为所述接口定义文件中的跨进程通信接口对象;基于所述跨进程通信接口对象对应的接口方法生成所述跨进程通信接口。
在本申请的一些实施例中,所述在所述软件开发工具包中添加所述跨进程通信对象,并转换为所述接口定义文件中的跨进程通信接口对象,包括:在所述软件开发工具包中构建服务连接成功回调方法;将所述跨进程通信对象添加至所述服务连接成功回调方法,并在所述服务连接成功回调方法中转换为所述接口定义文件中的跨进程通信接口对象。
在本申请的一些实施例中,所述方法还包括:在所述***层针对所述子服务设置自定义权限,所述自定义权限用于向所述子服务的调用方授予调用权限。
根据本申请的一个实施例,一种服务提供装置,所述装置包括:组件化模块,用于将应用层中业务***进行组件化,得到组件集,所述组件集中包括至少一个组件;下沉模块,用于从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务;创建模块,用于创建软件开发工具包,并在所述***层创建继承所述***服务的子服务;构建模块,用于在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,所述跨进程通信接口用于供应用访问所述***服务。
在本申请的一些实施例中,所述组件化模块,用于:将所述业务***中业务功能按相似度进行分离,得到至少一个业务模块;从所述各业务模块中抽取公共逻辑方法,并将抽取的各所述公共逻辑方法封装成独立的组件,得到所述组件集。
在本申请的一些实施例中,所述下沉模块,用于:从所述组件集中提取具有基础能力的代码;将提取的所述代码转换为统一架构标准的统一架构代码;将所述统一架构代码下沉至***层作为所述***服务。
在本申请的一些实施例中,所述构建模块,用于:在所述***层创建跨进程通信接口定义文件;将所述***层中的所述跨进程通信接口定义文件与对应的目录复制到所述软件开发工具包;在所述软件开发工具包中,基于所述跨进程通信接口定义文件构建所述子服务对应的跨进程通信接口。
在本申请的一些实施例中,所述构建模块,用于:在所述***层定义预定操作;在所述子服务中声明实现存根类接口的跨进程通信对象;在所述软件开发工具包中,通过所述预定操作绑定所述子服务;在所述软件开发工具包中添加所述跨进程通信对象,并转换为所述接口定义文件中的跨进程通信接口对象;基于所述跨进程通信接口对象对应的接口方法生成所述跨进程通信接口。
在本申请的一些实施例中,所述构建模块,用于:在所述软件开发工具包中构建服务连接成功回调方法;将所述跨进程通信对象添加至所述服务连接成功回调方法,并在所述服务连接成功回调方法中转换为所述接口定义文件中的跨进程通信接口对象。
在本申请的一些实施例中,所述装置还包括权限模块,用于:在所述***层针对所述子服务设置自定义权限,所述自定义权限用于向所述子服务的调用方授予调用权限。
根据本申请的另一实施例,一种存储介质,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行本申请实施例所述的方法。
根据本申请的另一实施例,一种电子设备可以包括:存储器,存储有计算机程序;处理器,读取存储器存储的计算机程序,以执行本申请实施例所述的方法。
根据本申请的另一实施例,一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例所述的各种可选实现方式中提供的方法。
本申请实施例中,将应用层中业务***进行组件化,得到组件集,所述组件集中包括至少一个组件;从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务;创建软件开发工具包,并在所述***层创建继承所述***服务的子服务;在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,所述跨进程通信接口用于供应用访问所述***服务。
以这种方式,实现通过软件开发工具包(SDK)提供跨进程通信接口的形式,屏蔽所有实现细节,将组件化后组件集中具有基础能力的代码(复用度高、通用性强、健壮的代码)实现下沉到***层为***服务,可以跨进程通信形式进行跨进程调用访问该***服务,实现应用对于业务***的可靠性调用,一方面,可以做到资源隔离、模块间解耦,提升开发效率,***服务发生异常不会到影响调用该***服务的应用,另一方面可以做到业务需要使用时才启动加载软件开发工具包(SDK)来调用接口,节省内存和CPU资源,逻辑方法发生变化时,只要接口协议不发生变化,使用该***服务的***及应用都无需变动。进而,针对应用对于业务***的调用,实现整体上有效简化应用调用使用流程,降低维护成本,提升业务质量。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请的一个实施例的服务提供方法的流程图。
图2示出了根据本申请的一个实施例的组件***服务化的流程图。
图3示出了根据本申请的一个实施例的实现服务提供的流程图。
图4示出了根据本申请的一个实施例的服务提供装置的框图。
图5示出了根据本申请的一个实施例的电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示意性示出了根据本申请的一个实施例的服务提供方法的流程图。该服务提供方法的执行主体可以是任意的服务提供设备,例如电脑、手机、智能手表、车载终端、云端服务器以及家电设备等。
如图1所示,该服务提供方法可以包括步骤S110至步骤S140。
步骤S110,将应用层中业务***进行组件化,得到组件集,所述组件集中包括至少一个组件;步骤S120,从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务;步骤S130,创建软件开发工具包,并在所述***层创建继承所述***服务的子服务;步骤S140,在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,所述跨进程通信接口用于供应用访问所述***服务。
以这种方式,基于步骤S110至步骤S140,实现通过软件开发工具包(SDK)提供跨进程通信接口的形式,屏蔽所有实现细节,将组件化后组件集中具有基础能力的代码(复用度高、通用性强、健壮的代码)实现下沉到***层为***服务,可以跨进程通信形式进行跨进程调用访问该***服务,实现应用对于业务***的可靠性调用,一方面,可以做到资源隔离、模块间解耦,提升开发效率,***服务发生异常不会到影响调用该***服务的应用,另一方面可以做到业务需要使用时才启动加载软件开发工具包(SDK)来调用接口,节省内存和CPU资源,逻辑方法发生变化时,只要接口协议不发生变化,使用该***服务的***及应用都无需变动。进而,针对应用对于业务***的调用,实现整体上有效简化应用调用使用流程,降低维护成本,提升业务质量。
下面描述图1实施例中进行服务提供时,所进行的各步骤进一步可选的具体实施例。
一种实施例中,步骤S110,所述将应用层中业务功能模块进行组件化,得到组件集,所述组件集中包括至少一个组件,包括:
将所述业务***中业务功能按相似度进行分离,得到至少一个业务模块;从所述各业务模块中抽取公共逻辑方法,并将抽取的各所述公共逻辑方法封装成独立的组件,得到所述组件集。
参阅图2,在应用层可以将业务***中业务功能(即***功能)按相似度进行分离,形成各个业务模块,例如,图2中业务模块1至业务模块N。然后,从各个业务模块抽取公共逻辑方法,封装成为独立jar包(即组件),例如,图2中组件1、组件2、组件3等,实现各个业务模块中公共业务下沉为独立jar包(即组件),得到组件集。
一种实施例中,步骤S120,所述从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务,包括:
从所述组件集中提取具有基础能力的代码;将提取的所述代码转换为统一架构标准的统一架构代码;将所述统一架构代码下沉至***层作为所述***服务。
循环最小化可行原则可以从组件集中进一步抽象出最小的部分且可以提供满足业务需求的代码(即基础能力的代码),进而提取到具有基础能力的代码,最小化可行原则即以最小的部分且可以提供满足业务需求的原则。
进一步的,参阅图2,从组件集(如图2中组件1、组件2、组件3等)中抽象出的具有基础能力的代码后,转换为统一架构标准的统一架构代码,将统一架构代码下沉至***层,得到***服务(如图2中服务1、服务2及服务3等)。
一种实施例中,步骤S140,所述在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,包括:
在所述***层创建跨进程通信接口定义文件;将所述***层中的所述跨进程通信接口定义文件与对应的目录复制到所述软件开发工具包;在所述软件开发工具包中,基于所述跨进程通信接口定义文件构建所述子服务对应的跨进程通信接口。
在***层创建跨进程通信接口定义文件后可以生成对应的目录,跨进程通信接口定义文件即用于定义跨进程调用时服务端跟客户端用于数据交互的接口的文件,通过跨进程通信接口定义文件可以构建子服务对应的跨进程通信接口,应用可以通过跨进程通信接口可以跨进程通信的方式调用***层的子服务,进而调用子服务继承的***服务(如图2和图3中服务1、服务2及服务3等)。参阅图3,本示例的一种方式中,跨进程通信接口定义文件为AIDL(Android Interface Definition Language)接口文件,跨进程通信接口可以实现为如图3所示的AIDL接口,软件开发工具包即如图3所示的壳SDK,应用可以接入壳SDK,应用可以在又业务需求时加载壳SDK,通过壳SDK的跨进程通信接口以跨进程通信(即IPC形式)跨进程调用***服务。
一种实施例中,所述基于所述跨进程通信接口定义文件构建所述子服务对应的跨进程通信接口,包括:
在所述***层定义预定操作;在所述子服务中声明实现存根类接口的跨进程通信对象;在所述软件开发工具包中,通过所述预定操作绑定所述子服务;在所述软件开发工具包中添加所述跨进程通信对象,并转换为所述接口定义文件中的跨进程通信接口对象;基于所述跨进程通信接口对象对应的接口方法生成所述跨进程通信接口。
具体地,参考如下示例一:
在***层,可以创建继承***服务Service的子服务MyService,然后,自定义预定操作Action,预定操作Action可以记为:android.intent.action.MyService。
进一步的,参考如下示例二:
在子服务MyService中声明跨进程通信对象:binder对象,并实现存根类接口:Stub接口,进而,在子服务中声明实现存根类接口的跨进程通信对象。
进一步的,参考如下示例三:
在软件开发工具包中,通过预定操作Action绑定子服务MyService,在软件开发工具包中添加跨进程通信对象(binder对象),并转换为接口定义文件(IBlogManager)中的跨进程通信接口对象(IBlogManager.Stub.asInterface(service));基于跨进程通信接口对象对应的接口方法,生成可以调用该接口方法的接口即形成跨进程通信接口。
一种实施例中,所述在所述软件开发工具包中添加所述跨进程通信对象,并转换为所述接口定义文件中的跨进程通信接口对象,包括:在所述软件开发工具包中构建服务连接成功回调方法;将所述跨进程通信对象添加至所述服务连接成功回调方法,并在所述服务连接成功回调方法中转换为所述接口定义文件中的跨进程通信接口对象。
如上述示例三中:
服务连接成功回调方法为onServiceConnected()方法,在该onServiceConnected()方法中接收跨进程通信对象(binder对象),并转换为所述接口定义文件(IBlogManager)中的跨进程通信接口对象(IBlogManager.Stub.asInterface(service)),以这种方式,通过ServiceConnection对象可以监听访问者与服务端间的连接情况,如果成功连接,则回调onServiceConnected()方法,进而,可以在成功连接后进一步通过跨进程通信接口对象跨进程调用***服务。
一种实施例中,所述方法还包括:在所述软件开发工具包中构建服务连接失败回调方法;将所述跨进程通信对象添加为所述服务连接成功回调方法中的空对象。
如上述示例三中:override fun onServiceDisconnected(name:ComponentName?){binder=null};服务连接失败回调方法为onServiceDisconnected()方法,将跨进程通信对象添加为服务连接成功回调方法中的空对象(binder=null),以这种方式,通过ServiceConnection对象可以监听访问者与服务端间的连接情况,如果连接失败,则调用onServiceDisconnected()方法,进一步避免通过跨进程通信接口对象跨进程调用***服务。
一种实施例中,所述方法还包括:在所述***层针对所述子服务设置自定义权限,所述自定义权限用于向所述子服务的调用方授予调用权限。
在***层自定义权限可以记为:android.permission.ipc.service;在***层针对子服务MyService设置自定义权限,可以如下示例所示:
以这种方式,自定义权限用于向子服务的调用方授予调用权限,此权限可以确保调用方是可信的,进一步提升服务提供可靠性,提升应用对于服务的调用可靠性。
为便于更好的实施本申请实施例提供的服务提供方法,本申请实施例还提供一种基于上述服务提供方法的服务提供装置。其中名词的含义与上述服务提供方法中相同,具体实现细节可以参考方法实施例中的说明。图4示出了根据本申请的一个实施例的服务提供装置的框图。
如图4所示,服务提供装置200中可以包括:组件化模块210、下沉模块220、创建模块230及构建模块240。
组件化模块210可以用于将应用层中业务***进行组件化,得到组件集,所述组件集中包括至少一个组件;下沉模块220可以用于从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务;创建模块230可以用于创建软件开发工具包,并在所述***层创建继承所述***服务的子服务;构建模块240可以用于在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,所述跨进程通信接口用于供应用访问所述***服务。
在本申请的一些实施例中,所述组件化模块,用于:将所述业务***中业务功能按相似度进行分离,得到至少一个业务模块;从所述各业务模块中抽取公共逻辑方法,并将抽取的各所述公共逻辑方法封装成独立的组件,得到所述组件集。
在本申请的一些实施例中,所述下沉模块,用于:从所述组件集中提取具有基础能力的代码;将提取的所述代码转换为统一架构标准的统一架构代码;将所述统一架构代码下沉至***层作为所述***服务。
在本申请的一些实施例中,所述构建模块,用于:在所述***层创建跨进程通信接口定义文件;将所述***层中的所述跨进程通信接口定义文件与对应的目录复制到所述软件开发工具包;在所述软件开发工具包中,基于所述跨进程通信接口定义文件构建所述子服务对应的跨进程通信接口。
在本申请的一些实施例中,所述构建模块,用于:在所述***层定义预定操作;在所述子服务中声明实现存根类接口的跨进程通信对象;在所述软件开发工具包中,通过所述预定操作绑定所述子服务;在所述软件开发工具包中添加所述跨进程通信对象,并转换为所述接口定义文件中的跨进程通信接口对象;基于所述跨进程通信接口对象对应的接口方法生成所述跨进程通信接口。
在本申请的一些实施例中,所述构建模块,用于:在所述软件开发工具包中构建服务连接成功回调方法;将所述跨进程通信对象添加至所述服务连接成功回调方法,并在所述服务连接成功回调方法中转换为所述接口定义文件中的跨进程通信接口对象。
在本申请的一些实施例中,所述装置还包括权限模块,用于:在所述***层针对所述子服务设置自定义权限,所述自定义权限用于向所述子服务的调用方授予调用权限。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
此外,本申请实施例还提供一种电子设备,该电子设备可以为终端或者服务器,如图5所示,其示出了本申请实施例所涉及的电子设备的结构示意图,具体来讲:
该电子设备可以包括一个或者一个以上处理核心的处理器301、一个或一个以上计算机可读存储介质的存储器302、电源303和输入单元304等部件。本领域技术人员可以理解,图5中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器301是该电子设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器302内的软件程序和/或模块,以及调用存储在存储器302内的数据,执行计算机设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器301可包括一个或多个处理核心;优选的,处理器301可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户页面和应用程序等,调制解调处理器主要处理无线通讯。可以理解的是,上述调制解调处理器也可以不集成到处理器301中。
存储器302可用于存储软件程序以及模块,处理器301通过运行存储在存储器302的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器302可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器302还可以包括存储器控制器,以提供处理器301对存储器302的访问。
电子设备还包括给各个部件供电的电源303,优选的,电源303可以通过电源管理***与处理器301逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源303还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该电子设备还可包括输入单元304,该输入单元304可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,电子设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,电子设备中的处理器301会按照如下的指令,将一个或一个以上的计算机程序的进程对应的可执行文件加载到存储器302中,并由处理器301来运行存储在存储器302中的计算机程序,从而实现本申请前述实施例中各种功能,如处理器301可以执行下述步骤:
将应用层中业务***进行组件化,得到组件集,所述组件集中包括至少一个组件;从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务;创建软件开发工具包,并在所述***层创建继承所述***服务的子服务;在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,所述跨进程通信接口用于供应用访问所述***服务。
在本申请的一些实施例中,所述将应用层中业务功能模块进行组件化,得到组件集,所述组件集中包括至少一个组件,包括:将所述业务***中业务功能按相似度进行分离,得到至少一个业务模块;从所述各业务模块中抽取公共逻辑方法,并将抽取的各所述公共逻辑方法封装成独立的组件,得到所述组件集。
在本申请的一些实施例中,所述从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务,包括:从所述组件集中提取具有基础能力的代码;将提取的所述代码转换为统一架构标准的统一架构代码;将所述统一架构代码下沉至***层作为所述***服务。
在本申请的一些实施例中,所述在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,包括:在所述***层创建跨进程通信接口定义文件;将所述***层中的所述跨进程通信接口定义文件与对应的目录复制到所述软件开发工具包;在所述软件开发工具包中,基于所述跨进程通信接口定义文件构建所述子服务对应的跨进程通信接口。
在本申请的一些实施例中,所述基于所述跨进程通信接口定义文件构建所述子服务对应的跨进程通信接口,包括:在所述***层定义预定操作;在所述子服务中声明实现存根类接口的跨进程通信对象;在所述软件开发工具包中,通过所述预定操作绑定所述子服务;在所述软件开发工具包中添加所述跨进程通信对象,并转换为所述接口定义文件中的跨进程通信接口对象;基于所述跨进程通信接口对象对应的接口方法生成所述跨进程通信接口。
在本申请的一些实施例中,所述在所述软件开发工具包中添加所述跨进程通信对象,并转换为所述接口定义文件中的跨进程通信接口对象,包括:在所述软件开发工具包中构建服务连接成功回调方法;将所述跨进程通信对象添加至所述服务连接成功回调方法,并在所述服务连接成功回调方法中转换为所述接口定义文件中的跨进程通信接口对象。
在本申请的一些实施例中,还包括:在所述***层针对所述子服务设置自定义权限,所述自定义权限用于向所述子服务的调用方授予调用权限。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过计算机程序来完成,或通过计算机程序控制相关的硬件来完成,该计算机程序可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例还提供一种存储介质,其中存储有计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种方法中的步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种方法中的步骤,因此,可以实现本申请实施例所提供的方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的实施例,而可以在不脱离其范围的情况下进行各种修改和改变。

Claims (10)

1.一种服务提供方法,其特征在于,包括:
将应用层中业务***进行组件化,得到组件集,所述组件集中包括至少一个组件;
从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务;
创建软件开发工具包,并在所述***层创建继承所述***服务的子服务;
在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,所述跨进程通信接口用于供应用访问所述***服务。
2.根据权利要求1所述的方法,其特征在于,所述将应用层中业务功能模块进行组件化,得到组件集,所述组件集中包括至少一个组件,包括:
将所述业务***中业务功能按相似度进行分离,得到至少一个业务模块;
从所述各业务模块中抽取公共逻辑方法,并将抽取的各所述公共逻辑方法封装成独立的组件,得到所述组件集。
3.根据权利要求1所述的方法,其特征在于,所述从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务,包括:
从所述组件集中提取具有基础能力的代码;
将提取的所述代码转换为统一架构标准的统一架构代码;
将所述统一架构代码下沉至***层作为所述***服务。
4.根据权利要求1所述的方法,其特征在于,所述在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,包括:
在所述***层创建跨进程通信接口定义文件;
将所述***层中的所述跨进程通信接口定义文件与对应的目录复制到所述软件开发工具包;
在所述软件开发工具包中,基于所述跨进程通信接口定义文件构建所述子服务对应的跨进程通信接口。
5.根据权利要求4所述的方法,其特征在于,所述基于所述跨进程通信接口定义文件构建所述子服务对应的跨进程通信接口,包括:
在所述***层定义预定操作;
在所述子服务中声明实现存根类接口的跨进程通信对象;
在所述软件开发工具包中,通过所述预定操作绑定所述子服务;
在所述软件开发工具包中添加所述跨进程通信对象,并转换为所述接口定义文件中的跨进程通信接口对象;
基于所述跨进程通信接口对象对应的接口方法生成所述跨进程通信接口。
6.根据权利要求5所述的方法,其特征在于,所述在所述软件开发工具包中添加所述跨进程通信对象,并转换为所述接口定义文件中的跨进程通信接口对象,包括:
在所述软件开发工具包中构建服务连接成功回调方法;
将所述跨进程通信对象添加至所述服务连接成功回调方法,并在所述服务连接成功回调方法中转换为所述接口定义文件中的跨进程通信接口对象。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
在所述***层针对所述子服务设置自定义权限,所述自定义权限用于向所述子服务的调用方授予调用权限。
8.一种服务提供装置,其特征在于,包括:
组件化模块,用于将应用层中业务***进行组件化,得到组件集,所述组件集中包括至少一个组件;
下沉模块,用于从所述至少一个组件中提取具有基础能力的代码,并将所述代码下沉为***层的***服务;
创建模块,用于创建软件开发工具包,并在所述***层创建继承所述***服务的子服务;
构建模块,用于在所述软件开发工具包中构建所述子服务对应的跨进程通信接口,所述跨进程通信接口用于供应用访问所述***服务。
9.一种存储介质,其特征在于,其上存储有计算机程序,当所述计算机程序被计算机的处理器执行时,使计算机执行权利要求1至7任一项所述的方法。
10.一种电子设备,其特征在于,包括:存储器,存储有计算机程序;处理器,读取存储器存储的计算机程序,以执行权利要求1至7任一项所述的方法。
CN202310159193.4A 2023-02-14 2023-02-14 ***服务提供方法、装置、存储介质及电子设备 Pending CN116450309A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310159193.4A CN116450309A (zh) 2023-02-14 2023-02-14 ***服务提供方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310159193.4A CN116450309A (zh) 2023-02-14 2023-02-14 ***服务提供方法、装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN116450309A true CN116450309A (zh) 2023-07-18

Family

ID=87120952

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310159193.4A Pending CN116450309A (zh) 2023-02-14 2023-02-14 ***服务提供方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN116450309A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116991380A (zh) * 2023-09-21 2023-11-03 腾讯科技(深圳)有限公司 一种应用程序的构建方法、装置、电子设备及存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116991380A (zh) * 2023-09-21 2023-11-03 腾讯科技(深圳)有限公司 一种应用程序的构建方法、装置、电子设备及存储介质
CN116991380B (zh) * 2023-09-21 2024-01-09 腾讯科技(深圳)有限公司 一种应用程序的构建方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
KR101618476B1 (ko) 휴대용 컴퓨팅 디바이스에서 분산 리소스 관리
CN108958729B (zh) 一种数据处理方法、装置及存储介质
CN111988337B (zh) 权限管理方法及***
CN116450309A (zh) ***服务提供方法、装置、存储介质及电子设备
CN109343970B (zh) 基于应用程序的操作方法、装置、电子设备及计算机介质
CN111090442B (zh) 一种应用更新方法、装置和存储介质
CN113127775B (zh) 一种页面加载方法、装置、设备和存储介质
CN111045746B (zh) 代码扩展方法和框架
CN106775608B (zh) 独立***进程的实现方法和装置
CN110120963B (zh) 一种数据处理方法、装置、设备和机器可读介质
CN116382929A (zh) 分布式锁处理方法、装置、电子设备和存储介质
CN113867831B (zh) 智能设备控制方法、智能设备、存储介质及电子设备
CN113849161A (zh) 应用控制方法、装置、存储介质及电子设备
CN113626001A (zh) 一种基于脚本的api动态编排方法及装置
CN113448585A (zh) 一种对线程池的优化方法、装置、电子设备和存储介质
CN112631692B (zh) 一种应用程序运行控制方法、装置和存储介质
CN112968825B (zh) 一种消息发送方法、装置、设备及存储介质
CN116962523B (zh) 一种数据上传方法、装置、计算机设备及存储介质
CN117331878A (zh) 操作***处理方法、装置、电子设备及计算机存储介质
CN112114862B (zh) spring boot实例并发处理方法及装置
CN113760374B (zh) 一种处理器的绑定方法、装置及电子设备
CN116010968A (zh) 基于边车模式的FaaS分布式计算***、方法及存储介质
CN116737399A (zh) 分布式锁实现方法、装置、计算机设备和存储介质
CN116776315A (zh) ***登录方法、装置及电子设备
CN106557359B (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