通信
在同一地址空间的单机应用的交互参数传递是通过函数调用或全局变量访问来得到的。而在网络环境下不同地址空间的各个组件间通讯是通过下列一些通信机制来完成的:
l 消息传送 与 共享内存
消息传送:应用程序开发人员通常需要定义这些消息的格式和容量,协议采纳方将遵循他们交换信息。协议本身也定义了在一次消息交互过程中可能的参与方数目比如点到点、广播和多点传送,而且还定义了消息交互参与者怎样开始、进行和结束一次消息的传送。目前许多流行的中间件的体系结构采用了基于消息传送的通信模式,比如CORBA。
共享内存这种方式分为两种,包括本地式共享内存和分布式共享内存
Ø 本地共享内存:对于单机中多个线程或进程需要共享数据,这是一种不错的选择。但是这给这些应用的适用性带来了伤害,而且他们的实现也变得必须小心翼翼。
l 分布式共享内存:这是一种更高层次的编程抽象,她为应用程序提供了网络的分布式虚拟内存。这种方式扩展了虚拟内存的概念,系统提供机制保证各个进程和不同的网络接点的同步更新。这种模型经常在底层采用消息传递机制在读写者间保持协调和同步
服务端的体系结构
单服务服务器 仅仅提供一个服务。
多服务服务器 集成一系列单服务服务器到一个管理单元,具有如下优势:
Ø 减少系统资源开销
Ø 简化服务端开发实现,重用有效代码
Ø 允许外部服务在不修改其他存在代码和中断服务器运行的前提下升级服务
Ø 加强了对网络服务的监控管理。这可以通过一些网络应用配置管理程序来完成的
一次性服务器 与 持久服务器
一次性服务器 只有在请求到来时才会启动,在触发它的请求结束后结束。
持久服务器 在他们处理的服务请求生命周期之外持续运行,他们通常在系统启动或者被客户第一次调用时启动。