在开放
系统下,运用协调
技术进行
软件实体间的通信是一种非常有效的方法,能够满足开放
系统互操作性、可移植性、伸缩性要求。Linda在1985(
http://www.chinaicmart.com/series-198/1985.html)年提出了基于数据驱动的协调模型体系结构,
Sun Microsystem和
IBM公司在此基础上开发了各自的商业产品JavaSpaces和TSpaces。这些都是利用一种被称为再生通信(genera-tire commtmication)的模式:数据的发送方和接收方通过一个共享的数据元组
空间进行通信,发送方将数据送入这个共享
空间。接收方从共享
空间读取数据。数据共享
空间独立于任何一方而存在,即一旦发送方将数据写入共享
空间,数据将不属于数据的提供者。任何接收方都可以从中提取相应的数据。Linda模型定义了out(e)、int(t)和rd(t)三种基本操作。输入操作out(e)是将数据项e写入共享元组
空间;int(t)是用模板t和共享
空间中的数据项e匹配,如果发现匹配数据项e,然后读e并将共享
空间中的e删除。rd(t)和im(t)类似,仅仅是读取而不删除。Linda模型定义的匹配规则如定义1.1。
定义1.1:设e=<d1;……;dn>为一数据项,t=<dt;……;dtm>为匹配模板,若要t和e匹配需满足下列条件:
(1)m≤n
(2)dti=di or dti=null,1≤i≤m
从定义1.1可以看出最初的Linch协调模型并没有提供相应的安全访问控制机制对读写操作进行控制,也不能区分int(t)和带有破坏性的rd(t)操作。