Symbian之client-server架构
2010-05-31 19:49:00 来源:WEB开发网1. Client/Server架构
在Symibian OS中所有的异步服务都是Server通过C/S架构来实现的。Client是利用Server提供的特定服务的程序,Server接受来至Client 的请求消息并同步或异步的处理他们。C/S架构有如下的优点:
1,可扩展性
2,有效性:相同的Server可以服务多个Client。
3,安全性:Server和Client存在于单独的进程中,并且通过消息传递进行通信。具有错误行为Client 不会使他的Server崩溃(但是,Server可以通过客户线程的句柄来是具有错误行为的Client产生严重错误)。
4,异步性:在服务器完成请求的时候使用AO机制来通知他的Client。通过AO来挂起线程而不是轮询请求的状 态,Symbian OS减少了处理该请求的处理器周期,从而节约了电源,这对于移动设备来说是非常重要的。
2. Client/Server架构的处理流程
Clinet和Server处于不同的进程中,他们无法访问彼此的虚地址空间,所以他们使用消息传递协议来通信,这 种通信的渠道就称为会话。会话由内核创建,同时内核还在所有的Client/Server通信中充当媒介。
服务,特别是系统提供的服务,比如:文件服务,窗口服务和字体和位图服务等都是在系统启动的时候就启动了。当然如果 是自己做的server可以在需要的时候,即当有client发出请求的时候再启动。然后服务器阻塞在某个点上,等待client请求的到来。在 Client发出一个请求后,服务器会new一个子会话来处理这个client的请求,然后自己又继续阻塞在监听请求的点上,以满足其他Client的请 求。每个Client和Server的后续交互都是通过连接Server时创建的Session来完成的。
Server主要是用来管理一些共享的资源,如File Server-管理文件系统;Window Server-管理对屏幕、键盘等的共享访问;通常服务和客户端工作在不同的线程或进程,互相之间不干扰。每个服务在启动时候都有一个名字,系统服务的名 字以!开头,每一个服务有对应的API,他们知道对应服务的名字。客户端和服务端通过session进行通信,消息以TIpcArgs的形式进行传递,包 括要访问的服务类型和参数。客户端的RSessionBase和服务端的一个CSession2对应,前者发起连接后,RServer2会从内核负责协调通信的 DServer哪里获得消息,然后CServer2会通过NewSessionL()创建对应CSession2。
3. 相关类的分析
跟client-server Framework相关的类有8个:
更多精彩
赞助商链接