分布式计算的客户/服务通信

  如前所述,“客户”和“服务”这两个字眼实质上描述的是在一个通信过程中,参加通信的各方所扮演的不同角色。不过,对于“客户/服务”这个组合起来的词组,从普遍意义上来说,更多地是指一种更高层次上的软件结构,虽然,从概念上来看,“客户/服务”和“客户”、“服务”并无多大区别。“客户/服务”代表着一种处理逻辑结构,在这个结构中,一些较为关键的处理过程在客户端进行,当然客户端也会提交一些操作到服务端去。“客户/服务”方式通常是一种同步模式,因为客户端通常都需要确认提交的操作被服务端执行后,方可继续往下运行。

数据库协议

  “X/Open调用级接口标准”(X/Open Call Level Interface)[CLI 96]使用结构化查询语言为关系数据库管理系统提供了一个标准的接口,而微软的ODBC接口则是目前CLI标准在实际应用中的最好典范。另外,Sun的JDBC是CLI标准在JAVA应用程序中的实际表现形式。

  CLI以及它所支持的程序架构也许在客户/服务计算中应用得最为普遍,它让各种遵循这种标准的应用程序能和大部分数据库进行连接,而不需要了解数据库的具体类型。当然,这种“公用控制器”的缺点也是明显的,那就是它不可能提供访问各种RDBMS的专有特性的接口和方法。

  依据CLI标准开发的API表现形式是很多样化的,其中既有封闭性不高的消息接口,也有RPC远程过程调用接口。类似于消息机制的组件接口所表现出来的是一种混合的同步/异步模式:服务端将初步处理好的不完整结果同步返回给客户端,并且继续独立于客户端异步地完成剩下的工作,在这种模式里,客户端只要得到服务端的初步响应集,就可以继续进行下面的工作,而服务端则将客户端发来的请求放入请求队列中,再一个个地异步处理,处理完了之后再放入反馈队列中;而RPC组件接口常常是运用于实时控制,它的操作必须严格同步。