iOS高性能高扩展网络架构及实现方法、服务器及介质与流程

文档序号:15847446发布日期:2018-11-07 09:17阅读:155来源:国知局
iOS高性能高扩展网络架构及实现方法、服务器及介质与流程

本发明涉及ios网络架构技术领域,尤其涉及一种ios高性能高扩展网络架构及实现方法、服务器及介质。

背景技术

在移动应用架构设计中,网络层的设计是重中之重,如何设计一个性能好且扩展性高的网络架构会直接影响整个app的开发效率与用户体验。目前,业界没有确切架构设计方案,已知的方案中存在着有一定扩展性,但几乎仅限于数据解析扩展性,同时为了兼容所有情况,代码非常冗余。



技术实现要素:

有鉴于此,本发明实施例提供了一种能够对网络请求前逻进行扩展,同时支持解析器自由组合插件化扩展,且分层清晰、职责单一、性能优秀、便于维护的ios高性能高扩展网络架构及方法、服务器及介质。

本发明实施例的第一方面,提供了一种ios高性能高扩展网络架构,所述ios高性能高扩展网络架构包括业务网络层和基础网络层,其中,所述业务网络层的网络逻辑包括用于根据扩展协议生成基础请求数据的请求前逻辑,和用于作为子类接受基础请求数据创建请求的请求中子类逻辑;所述基础网络层的网络逻辑包括用于作为父类接受基础请求数据、生成网络请求并发起的请求中父类逻辑,以及用于对服务器根据网络请求返回的数据进行解析、并返回解析后的请求数据或判定请求失败的请求后逻辑。

本发明实施例的第二方面,提供了一种ios高性能高扩展网络架构的实现方法,所述ios高性能高扩展网络架构的实现方法包括如下步骤:

将网络请求逻辑分为请求前逻辑、请求中逻辑以及请求后逻辑,并进一步将请求中逻辑分为请求中子类逻辑、请求中父类逻辑;

设置业务网络层和基础网络层,将请求前逻辑和请求中子类逻辑设置在业务网络层,将请求中父类逻辑和请求后逻辑设置在基础网络层;

在业务网络层中,根据生成器协议定义一用于将自外部业务层任意传入参数转换为基础请求数据的生成器类,根据解析器协议定义至少一个用于注册解析器的解析器类,定义一将基础请求数据传入基础网络层实现网络请求对象创建并注册解析器的请求对象继承类;

在基础网络层中,定义一根据业务网络层中的基础请求数据实现网络请求对象创建的网络请求对象类,以及定义一搭建网络请求基础逻辑,并通过网络请求基础逻辑完成网络请求发起的管理网络请求对象类。

本发明实施例的第三方面,提供了一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述ios高性能高扩展网络架构的实现方法的步骤。

本发明实施例的第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述ios高性能高扩展网络架构的实现方法的步骤。

本发明所述一种ios高性能高扩展网络架构及实现方法、服务器及介质,其通过将网络层分为业务网络层和基础网络层,并将网络请求逻辑分为请求前逻辑、请求中子类逻辑、请求中父类逻辑以及请求后逻辑,然后将依赖私有组件的请求前逻辑和请求中子类逻辑设置在业务网络层,将依赖第三方网络库的请求中父类逻辑和请求后逻辑设置在基础网络层,从而在外部任何地方实现了网络请求生成器逻辑,实现了对网络请求前逻辑的扩展,同时支持解析器自由组合插件化扩展,还通过串行队列将网络请求发起前与数据解析放在子线程中执行,达成高性能请求的需求。本发明所述一种ios高性能高扩展网络架构,分层清晰、职责单一、性能优秀、且便于维护。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的ios高性能高扩展网络架构的逻辑分层图;

图2为本发明实施例提供的ios高性能高扩展网络架构的架构图;

图3为本发明实施例提供的ios高性能高扩展网络架构的模块调用逻辑图;

图4为本发明实施例提供的ios高性能高扩展网络架构的实现方法的流程框图;

图5为本发明实施例提供的服务器的结构示意图。

具体实施方式

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

本发明实施例提供一种ios高性能高扩展网络架构,如图1至图3所示,所述ios高性能高扩展网络架构包括业务网络层和基础网络层。

如图1所示,所述业务网络层的网络逻辑包括用于根据扩展协议生成基础请求数据的请求前逻辑,和用于作为子类接受基础请求数据创建请求的请求中子类逻辑。

所述基础网络层的网络逻辑包括用于作为父类接受基础请求数据、生成网络请求并发起的请求中父类逻辑,以及用于对服务器根据网络请求返回的数据进行解析、并返回解析后的请求数据或判定请求失败的请求后逻辑。

简单来说,所述业务网络层的网络逻辑包括依赖私有组件的不可复用逻辑;例如:

日志系统:持久储存日志,上报策略相关实现。帮助记录请求错误。

用户信息:基本用户信息管理,登录态管理等。存取鉴权等基本参数。

设备信息管理:用户设备信息,服务端鉴权需要部分参数。

鉴权加密:由部分核心开发者实现加密库,完成与服务端同步鉴权的逻辑。

域名管理:管理整个app中所有基础域名,并提供切换功能方便开发过程中切换。

yymodel等第三方网络库:业务层需要使用到数据模型转换的第三方网络库;优选的,本发明采用的第三方网络库为afnetworking。

所述基础网络层的网络逻辑包括依赖第三方网络库的可复用逻辑,具体包括处理基础请求发起及性能,扩展协议等仅依赖第三方库afnetworking的功能逻辑。使得以后更换底层库只需调整基础层网络库即可。

如图2所示,所述业务网络层包括生成器定义模块、解析器定义模块以及请求对象继承类模块,

所述生成器定义模块用于定义一个扩展协议‘dyrequestmakerprotocol’,定义协议方法如下:

i.‘requestmethod’,返回值为枚举:get方法、post方法。

ii.‘requestparams’,返回值为字典:请求参数。

iii.‘requesturl’,返回值为字符串:请求完整路径。

该扩展协议能够使实现这个扩展协议的对象将复杂的业务参数转换为基础请求数据,进而根据基础请求数据创建网络请求,将把原来的网络请求前逻辑与根据该扩展协议生成的网络请求本身通过这个协议隔离开来了,从而实现在不需要调整代码情况下扩展网络请求前逻辑的目的。

具体的实现方式是:定义一个类‘dyrequestmaker’为生成器,遵循‘dyrequestmakerprotocol’协议,通过调用鉴权加密、域名管理库、用户信息、设备信息等私有库完成外部任意传入参数转换为基础的请求方法、请求路径、请求参数。

所述解析器定义模块用于定义一个扩展协议‘dyrequestparserprotocol’,定义协议方法如下:

‘request:parsedresponse:completion:’,无返回值,第一个参数为请求对象本身,第二个参数为被上一个解析器解析过后的参数,第三个参数为一个block回调,当解析完成后调用,会传递给下一个解析器,通过定义上述协议,从而使解析器支持自由组合插件化扩展。

具体的实现方式是:定义三个类如‘dyerrorparser’为错误解析器、‘dytokenparserr’为登录态解析器、‘dymodelparser’为模型解析器,均遵循‘dyrequestparserprotocol’协议,且三个解析器之间的层级关系为:登录态解析器为错误解析器的下层解析器,模型解析器为登录态解析器的下层解析器。

错误解析器按照与服务器约定逻辑识别服务器接受请求后返回的参数是否错误,若没有错误继续下层解析器(即登录态解析器);登录态解析器接收到上层解析器(即错误解析器)传回的参数,并按照与服务器约定逻辑识别该参数是否存在登录态错误,若有则调用用户信息管理更新登录态,否则继续下层解析器(即模型解析器);所述模型解析器接收到上层解析器(即登录态解析器)传回的参数,将服务器返回的字典转换为数据模型并抛出。

所述解析器的数量根据需要可以自行设定,解析器之间的层级关系也可以自行设定。

所述请求对象继承类模块用于定义一请求对象继承类,所述请求对象继承类与基础网络层的网络请求对象类之间为继承关系,所述请求对象继承类为子类,所述网络请求对象类为父类,因此,所述请求对象继承类通过调用网络请求对象类类方法将基础请求数据传入基础网络层实现网络请求对象创建,并注册解析器。

具体的实现方式是:定义一个请求对象继承类‘dyrequest’,所述请求对象继承类作为子类继承自基础网络库中的父类即网络请求对象类‘dynetworkrequest’,定义类方法‘requestwithmaker:’,如图3所示,通过该方法实现通过dyrequestmakerprotocol’协议取出请求方法、请求路径、请求参数,并调用父类方法‘requestwithmethod:url:params:’将请求方法、请求路径、请求参数传入基础网络层实现网络请求对象的创建;创建网络请求对象后默认注册预先定义的错误解析器、登录态解析器、模型解析器,使解析器保存在网络请求对象中,方便在网络请求结束后会调用这些解析器对服务器传回的数据进行解析。

如图2所示,所述基础网络层包括网络请求对象类定义模块、管理网络请求对象类定义模块。

其中,所述网络请求对象类定义模块用于定义一网络请求对象类,所述网络请求对象类根据业务网络层中的基础请求数据实现网络请求对象创建,并通过管理网络请求对象类定义模块发起网络请求,且将传入的回调存入网络请求抽象类的回调属性中。

具体的实现方式是:定义一个类‘dynetworkrequest’为网络请求对象。定义类方法‘requestwithmethod:url:params:’,通过该方法将请求方法、请求路径、请求参数传入基础网络层实现网络请求对象的创建;定义对象方法‘sendcompletion:’,通过该方法调用管理网络请求对象类的api接口发起网络请求,并将外部业务层传入的回调保存在生成的网络请求对象的回调属性中;定义对象方法‘resgisetparser:’,实现将注册的解析器保存在网络请求对象的解析属性中。

所述管理网络请求对象类定义模块用于定义一管理网络请求对象类,所述管理网络请求对象类对网络请求对象进行发起、回调、取消、解析等逻辑管理,具体的实现方式如下:

定义一个类‘dynetworkrequestmanager’为管理网络请求对象,定义对象方法‘sendrequest:’,通过该方法使基础网络层的网络库内部通过afnetworking的api接口完成整个网络请求基础逻辑的搭建,从而使管理网络请求对象能够实现对网络请求对象进行发起、回调、取消、解析等逻辑管理。具体如图3所示,网络请求对象‘dynetworkrequest’通过‘sendcompletion’调用管理网络请求对象‘dynetworkrequestmanager’的对象方法‘sendrequest:’,实现网络请求的发起,并将外部业务层传入的回调保存在生成的网络请求对象的回调属性中。

当网络请求完成,接收到服务器返回的数据时,调用存储在网络请求对象中的解析器对返回数据进行解析,并调用存储在网络请求对象中的外部业务层传入的回调,将解析完成的数据进一步返回给外部业务层。

另外,在管理网络请求对象类中初始化一个异步串行队列,并将网络请求开始发起到实际发起的过程、以及数据解析的过程放入异步串行队列中执行。其中,实际发起由系统并发发起。

本发明所述一种ios高性能高扩展网络架构,其通过将网络层分为业务网络层和基础网络层,并将网络请求逻辑分为请求前逻辑、请求中子类逻辑、请求中父类逻辑以及请求后逻辑,然后将依赖私有组件的请求前逻辑和请求中子类逻辑设置在业务网络层,将依赖第三方网络库的请求中父类逻辑和请求后逻辑设置在基础网络层,从而在外部任何地方实现了网络请求生成器逻辑,实现了对网络请求前逻辑的扩展,同时支持解析器自由组合插件化扩展,还通过串行队列将网络请求发起前与数据解析放在子线程中执行,达成高性能请求的需求。本发明所述一种ios高性能高扩展网络架构,分层清晰、职责单一、性能优秀、且便于维护。

上面主要描述了一种ios高性能高扩展网络架构,下面将对一种ios高性能高扩展网络架构的实现方法进行详细描述。如图4所示,所述ios高性能高扩展网络架构的实现方法包括如下步骤:

s1、将网络请求逻辑分为请求前逻辑、请求中逻辑以及请求后逻辑,并进一步将请求中逻辑分为请求中子类逻辑、请求中父类逻辑;

s2、设置业务网络层和基础网络层,将请求前逻辑和请求中子类逻辑设置在业务网络层,将请求中父类逻辑和请求后逻辑设置在基础网络层;

s3、在业务网络层中,根据生成器协议定义一用于将自外部业务层任意传入参数转换为基础请求数据的生成器类,根据解析器协议定义至少一个用于注册解析器的解析器类,定义一将基础请求数据传入基础网络层实现网络请求对象创建并注册解析器的请求对象继承类;

s4、在基础网络层中,定义一根据业务网络层中的基础请求数据实现网络请求对象创建的网络请求对象类,以及定义一搭建网络请求基础逻辑,并通过网络请求基础逻辑完成网络请求发起的管理网络请求对象类。

其中,所述请求对象继承类与基础网络层的网络请求对象类之间为继承关系,所述请求对象继承类为子类,所述网络请求对象类为父类,因此,所述请求对象继承类通过调用网络请求对象类类方法将基础请求数据传入基础网络层实现网络请求对象创建,并注册解析器。

网络请求对象类调用管理网络请求对象类的对象方法,实现网络请求的发起,并将外部业务层传入的回调保存在生成的网络请求对象的回调属性中。

另外,所述ios高性能高扩展网络架构的实现方法包括步骤s5:

s5、在管理网络请求对象类中初始化一个异步串行队列,并将网络请求开始发起到实际发起的过程、以及数据解析的过程放入异步串行队列中执行。其中,实际发起由系统并发发起。

图5是本发明一实施例提供的ios高性能高扩展网络架构的服务器结构的示意图。所述服务器,为提供计算服务的设备,通常指具有较高计算能力,通过网络提供给多个用户使用的计算机。如图5所示,该实施例的服务器6包括:存储器61、处理器62以及系统总线63,所述存储器61包括存储其上的可运行的程序611,本领域技术人员可以理解,图5中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

下面结合图5对终端设备的各个构成部件进行具体的介绍:

存储器61可用于存储软件程序以及模块,处理器62通过运行存储在存储器61的软件程序以及模块,从而执行终端的各种功能应用以及数据处理。存储器61可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器61可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

在存储器61上包含ios高性能高扩展网络架构的实现方法的可运行程序611,所述可运行程序611可以被分割成一个或多个模块/单元,所述一个或多个模块/单元被存储在所述存储器61中,并由处理器62执行,以完成通知的传递并获取通知实现过程,所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序611在所述服务器6中的执行过程。例如,所述计算机程序611可以被分割为获取模块、比对模块、拼接模块和发送模块。

处理器62是服务器的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器61内的软件程序和/或模块,以及调用存储在存储器61内的数据,执行终端的各种功能和处理数据,从而对终端进行整体监控。可选的,处理器62可包括一个或多个处理单元;优选的,处理器62可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器62中。

系统总线63是用来连接计算机内部各功能部件,可以传送数据信息、地址信息、控制信息,其种类可以是例如pci总线、isa总线、vesa总线等。处理器62的指令通过总线传递至存储器61,存储器61反馈数据给处理器62,系统总线63负责处理器62与存储器61之间的数据、指令交互。当然系统总线63还可以接入其他设备,例如网络接口、显示设备等。

所述服务器应至少包括cpu、芯片组、内存、磁盘系统等,其他构成部件在此不再赘述。

在本发明实施例中,该终端所包括的处理器62执行的可运行程序具体为:一种ios高性能高扩展网络架构的实现方法,所述ios高性能高扩展网络架构的实现方法包括如下步骤:

s1、将网络请求逻辑分为请求前逻辑、请求中逻辑以及请求后逻辑,并进一步将请求中逻辑分为请求中子类逻辑、请求中父类逻辑;

s2、设置业务网络层和基础网络层,将请求前逻辑和请求中子类逻辑设置在业务网络层,将请求中父类逻辑和请求后逻辑设置在基础网络层;

s3、在业务网络层中,根据生成器协议定义一用于将自外部业务层任意传入参数转换为基础请求数据的生成器类,根据解析器协议定义至少一个用于注册解析器的解析器类,定义一将基础请求数据传入基础网络层实现网络请求对象创建并注册解析器的请求对象继承类;

s4、在基础网络层中,定义一根据业务网络层中的基础请求数据实现网络请求对象创建的网络请求对象类,以及定义一搭建网络请求基础逻辑,并通过网络请求基础逻辑完成网络请求发起的管理网络请求对象类;

s5、在管理网络请求对象类中初始化一个异步串行队列,并将网络请求开始发起到实际发起的过程、以及数据解析的过程放入异步串行队列中执行。其中,实际发起由系统并发发起。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的模块、单元和/或方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1