HSFramework应用服务器手册

上传人:工**** 文档编号:507693127 上传时间:2023-08-06 格式:DOC 页数:16 大小:770.02KB
返回 下载 相关 举报
HSFramework应用服务器手册_第1页
第1页 / 共16页
HSFramework应用服务器手册_第2页
第2页 / 共16页
HSFramework应用服务器手册_第3页
第3页 / 共16页
HSFramework应用服务器手册_第4页
第4页 / 共16页
HSFramework应用服务器手册_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《HSFramework应用服务器手册》由会员分享,可在线阅读,更多相关《HSFramework应用服务器手册(16页珍藏版)》请在金锄头文库上搜索。

1、HSFramework应用服务器手册编写 描述:这是一个自制的Linux系统下的应用服务器,及其对应分布式应用开发框架。该框架提供基于UDP的进程间和分布式的服务调用和主题发布与订阅。且具有平均负载均衡、服务自动发现和主题自动发现的特性。特性:l 服务调用;l 一对多的主题发布和订阅;l 异步请求应答交互;l 分布式应用服务部署;l 服务自动发现;l 主题自动发现;l 服务调用的平均负载均衡;l 引用计数智能指针;l 单例模式模板;l 基于智能指针的线程池;l 可配置日志应用服务:应用服务器目录结构如图1所示:图1 应用服务器目录结构app目录:存放待部署应用程序;bin目录:应用服务命令;c

2、onf目录:应用服务器配置目录;tmp目录:存放应用服务器运行时产生的临时文件MicroKernel进程为应用服务器核心进程,负责服务发现,定位,负载均衡,主题发布。该进程放置于app目录下。MicroKernelConf.data配置文件主要配置应用服务器运行需要配置的参数。配置项如图2所示:图2 配置文件Interface: 应用程序通信接口;ReceptorPort:应用服务器核心进程接收消息使用的端口;AppMinPort:应用服务器中应用程序的接收消息端口最小值;AppMaxPort:应用服务器中应用程序的接收消息端口最大值;Log.data配置文件主要配置应用服务器所采用的日志方式

3、。配置项如图3所示:图3 日志配置文件应用:在对应平台上编译MicroKernel工程,将编译成功的目标程序MicroKernel放置于app目录下。修改配置文件接收IP与端口和广播地址。点击bin/ startup启动应用服务器。将利用框架开发的app部署在app/目录即可。开发:l Eclipse方式1)创建新应用工程。如图4所示:图4 新工程2)拷贝framework框架目录到工程的src目录下如图5所示:图5 拷贝框架到新工程3)加载框架所需库函数。右键点击工程目录,在弹出菜单中选择“属性”选项,通过 C/C+ Build-Settings-Tool Settings进入编译选项配置界

4、面。在Libraries中添加线程库,添加后效果如图6所示:图6 加载框架所用库4)添加框架头文件路径。右键点击工程目录,在弹出菜单中选择“属性”选项,通过 C/C+ Build-Settings-Tool Settings进入编译选项配置界面。在GCC C+ Compiler的includes中添加framework路径,效果如图7所示:图7 加载框架头文件路径5)在主文件中包含框架头文件,并在主函数中,调用初始化环境函数,使新应用具有框架和应用服务器提供的功能,如图8所示:图8 使用框架非IDE方式:1) 创建工程目录,将框架文件夹拷贝到新创建的工程目录中,并拷贝框架makefile文件(

5、makefile_frwk.mk)到工程目录下,如图9所示:图9 非IDE方式工程实例2) 修改新建工程makefile文件,包含框架内容到编译选项中,如图10所示:图10 包含框架的makefile实例工程建立完成后,在代码中引用FrameworkContext.h即可使用框架提供的接口和功能。模块交互l 同步服务以函数调用的方式提供服务。首先实现服务类,并在服务端注册该服务,客户端可通过服务ID获取该服务。服务实现类必须申明并定义execute函数,参数为const修饰的指针类型。返回值为指针类型。参数与返回值均为ISerialable接口的实现类。需实现串行化和解串行化函数。参数示例类如

6、图11所示,结果示例类如图12所示,服务实现示例类如图13所示:图11 参数示例类图12 返回值示例类图13 服务实现示例类注册服务以便应用服务器中的客户端调用。注册方式如图14所示:图14 注册服务示例运行在应用服务器中的客户端,通过函数调用的方式调用服务端注册的服务。首先通过定位器获取一个服务代理,通过服务代理调用服务,客户端可以根据业务需求设置服务代理的超时时间(setTimeout参数单位为秒)和重试次数(setRetries)。该代理可以是本地的,或者远程的。本地服务是指该服务注册在同一进程内;远程服务是指该服务注册在另一进程或另一台服务器。获取本地服务代理,调用服务示例如图15所示

7、:图15 通过本地代理调用服务获取远程服务代理,调用服务示例如图16所示:图16 通过远程代理调用服务通过远程代理也可以调用本地服务。l 异步服务实现异步方式的请求和响应处理。服务端首先要定义服务实现类。并注册该实现类。服务实现类必须申明并定义execute函数,参数为const修饰的指针类型。返回值为指针类型。参数与返回值均为ISerialable接口的实现类。需实现串行化和解串行化函数。参数示例类如图17所示,结果示例类如图18所示,服务实现示例类如图19所示:图17 参数示例类图18 返回值示例类图19 异步服务示例类注册异步服务以便应用服务器中的客户端调用。注册方式如图20所示:图20

8、 注册异步服务客户端首先定义响应处理和超时处理,然后注册响应订阅者。在请求时注册响应和超时处理。响应处理类需要申明并实现函数handle。参数为const修饰的实现接口ISerialable的指针。返回值为空。响应处理示例类声明如图21所示:图21 响应处理示例类超时处理类需要实现。超时处理示例类如图22所示:图22 超时处理示例类在进程中注册响应主题订阅者。注册方式如图23所示:图23 注册异步响应主题订阅者客户端请求时,根据请求ID,响应处理,超时处理创建一个请求对象/指针。调用invoke函数发起异步交互处理。如图24所示:图24 异步调用异步调用发起时,创建的响应处理和超时处理指针在创

9、建调用者asyncInvoker后,不需要手动释放。l 主题订阅多个模块需要关注同一个事件发生,并作出各自的处理,可采用主题订阅机制。主题订阅由发布者,订阅者,主题构成。发布者向主题发布消息。订阅了该主题的订阅者即可收到发布者发出的消息。消息均需实现ISerialable接口。发布者向主题发布消息的示例如图25所示:图25 发布主题订阅者类需要实现notify函数,参数为const修饰的ISerialable实现类指针。订阅者示例类如图26所示:图26 订阅者示例类注册订阅者示例如图27所示:图27 注册订阅者示例框架提供的功能框架除了提供模块间同一的交互接口,还提供了很多实用工具,模板。l

10、智能指针框架中的智能指针是计数引用形式的智能指针。实际类类型如图28所示,方法如图29所示:图28 实际类型图29 智能指针实用方式l 读写锁对临界资源进行读写访问加锁。以提高效率。首先申请互斥体,然后在需要加锁时,定义对应guard类实例。锁的生命周期为guard实例的生命周期。示例如图30和图31所示:图30 定义对象互斥体图31 加读/写锁操作l 互斥锁互斥访问临界资源采用互斥锁,首先申请互斥体,然后在需要加锁时,定义对应guard类实例。锁的生命周期为guard实例的生命周期。使用方式如图32和图33所示:图32 定义对象互斥体图33 加锁操作l 单例模式模板当需要将一个类应用为单例模

11、式,不需要在类内做任何改变,只需采用框架提供的单例模板,对该类进行封装即可。使用单例模式注意单例创建的顺序。实际类,该类将通过模板转变为单例模式,如图34所示:图34 实际类通过单例模板将实际类转变为单例类,如图35所示:图35 申明单例类使用框架封装的单例类,如图36所示:图36 框架单例类使用方法l 定时器首先定义定时器任务类,用于定时到时后的处理。该类需实现IPoolTask接口。使用时将定时任务类实例注册到定时器中。定义示例定时器任务类如图37所示:图37 示例定时器任务类注册定时器如图38所示:图38 注册定时器方法注册的定时器任务实例不需要手动释放。该实例由定时器维护。l 日志框架提供的日志功能,可以根据配置使用打印控制台,打印到文件等。配置文件如图39所示:图39 日志配置文件图39所示配置文件中配置了两个日志打印类型。SYSTEM写控制台;TEST写文件,日志文件写入Test.log。使用日志如图40所示:图40 框架日志使用方式l Next

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 模板/表格 > 财务表格

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号