前情回顾
在上一篇博客中,我们提到了鸿蒙的框架模块中的系统框架和一些系统类型的区别,了解到系统框架的功能主要是提供服务,今天我们顺着框架模块的学习,继续探讨框架模块下提供的服务框架的实现。
服务架构
面向服务的架构是一种软件架构或者软件模型,这种架构下,系统提供的各种功能都会以服务的形式提供给用户或者系统内外的其它服务来使用。
服务之间的关系
服务与服务之间是松耦合的关系,互相之间使用中立的接口和标准的方式进行通信和交互,与硬件平台、操作系统、编程语言没有相关性。
这种架构特别适合在分布式的环境中使用,而鸿蒙系统就是一个分布式的操作系统。
服务架构的角色构成
在面向服务的架构中,主要存在以下三种角色:
①Provider:架构中各种服务的提供者,为系统提供对外的接口,同时接收消费者的请求并执行。能够将自己的服务和接口发布到服务管理中心,以便服务的消费者可以发现和访问该服务。
②Consumer:架构中各种服务的使用者,通常为了实现某种结果而调用生产者提供的各种功能。它可以是一个应用程序、一个软件模块或者另一个服务,它发起对服务管理中心的服务查询、绑定服务, 然后执行服务提供的能力。
③Samgr:服务管理中心是一个中介者,它管理着Provider提供的能力,同时帮助Consumer发现Provider的能力。
三者的关系可以简单的用下图表示:
由此可见,关于服务模块的内容,其实就是两个不同的端口在工作,一个是服务端server,一个是客户端client。
在模块二的文件下对应了两个文件夹,一个是samgr_client,另一个是samgr_server,这两个文件的代码标注我在之前的博客中有介绍,接下来我将更深层次的分析两个文件,探究系统框架下客户端和服务端的工作流程