CN1050916C - 在应用程序之间建立通信协议的方法和系统 - Google Patents
在应用程序之间建立通信协议的方法和系统 Download PDFInfo
- Publication number
- CN1050916C CN1050916C CN93107918A CN93107918A CN1050916C CN 1050916 C CN1050916 C CN 1050916C CN 93107918 A CN93107918 A CN 93107918A CN 93107918 A CN93107918 A CN 93107918A CN 1050916 C CN1050916 C CN 1050916C
- Authority
- CN
- China
- Prior art keywords
- software unit
- communication
- interface
- software
- interface specification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Measuring Volume Flow (AREA)
- Communication Control (AREA)
- Interface Circuits In Exchanges (AREA)
Abstract
一般,在计算系统,尤其是分布型或网络型系统中,需要利用大量的通信协议来完成系统各部分之间的通信。为了使通信合理和高效地进行,必须实现一种完美定义了协议的系统。本发明所披露的系统具有利用一套专门开发的术语和语言结构,产生通用、可重复使用的语言独立接口或协议说明的能力。该系统可以提高通信系统的可用性、模块性以及可扩展性。
Description
本发明涉及分布式和模块式计算或数据处理系统,诸如电信交换系统中有关协议和接口的说明,尤其涉及有关应用层,即开放系统互连(OSI)中的第7层协议栈的说明。
为了在构成系统的各个部分之间进行有效的通信,计算机系统,尤其是网络型或分布式系统的一个方面,就是必须采用大量的通信协议。管理一个计算系统中各部分之间的通信,需要建立起意义明确的通信协议。一个计算系统内部处理通讯,典型地方式是通过请求和响应进行通讯。这种系统限制了通信的灵活性,它只能按其收到的请求次序处理所有请求。这种典型的进程间协议只能提供相当简单的数据传输性能。
为了在各计算部分之间有效地实现有序的信息交换,在计算系统内需要执行协议。为了各计算部分之间的通讯,需要有一些规则,协议可以用来在两台计算装置之间建立一种标准的通信途径。约定的协议规则典型地确定了数据表示的性质,在通信路径上数据表示的格式和速度,以及被发送的任何控制信息的顺序。虽然协议是用于相同处理之间进行通信的一种逻辑的或概念上的一套规则,而接口却包括了不同处理之间的一套规则,并通常是物理上的连接而不是逻辑上的连接。协议的规程建立了一种预定的,必须由通信链路两端精心维护的对话。在通信链路层,协议包含了多个八位字节或字节序列的交换,以保证对报文传输的控制和完整性。
在数据处理系统内部的进程间通信情况下,协议典型地仅提供非常简单的数据传输性能。数据仅以其被发送的次序接收,在进程之间通过的信息包含请求,响应以及可能的某些数据。所有数据或请求必须通过依次接收过程而处理,多路传输不能同时处理。这类通信系统很难完成建立服务器或某种其它装置,以允许同时处理多路请求的任务。这类系统的一实例揭示于Segarra等人的第4,396,983号美国专利。该项专利描述了一种在分布式处理机系统内部的进程间通信的系统。
能够处理多路请求的某些服务器已经开发,但它们所典型地开发利用的一种方式,限制了以报文为基础的协议的有效性。这种服务器在各进程之间仅发送数据地址,而不是数据本身。1980年10月出版的《IBMTechnical Disclosure Bulletin》第23卷第5期发表的“分布式数据处理系统”一文,描述了此类系统的一种改进方案。同样,1979年12月出版的《IBM Technical Disclosure Bulletin》第22卷第7期发表的“用于处理机间通信的以报文为基础的协议”一文,揭示了一种以报文为基础的协议,用于在不同处理机上运行的各进程之间的通信,而这些处理机是通过共用总线松散地耦合的。
Hammer等人的第4,649,473号美国专利披露了一种利用进程间信息传输性能的系统,以提供在不共享共用存储器和位于一个以上处理机内的各进程之间的信息传输。该系统采用“笔记本”,即信息包。每个信息包都包含了一个工作请求,这样,服务器处理可以尽其方便控制对请求及其相应数据的接收和处理。
廉价数据处理装置的出现已经带来局域网的发展,它可以处理用于单个业务环境的大量装置。现有系统的性能局限于将单个通信协议用于每个不同的处理系统。这将意味着,一旦该系统可操作,要增加新的装置,如果并非不可能,也是很难的,因为要求新的装置用相同于已在系统内的其它装置所用的相同通信协议操作。
然而,现已开发了更为先进的局域网系统,它允许大量的远程处理装置通过通信信道,连接到主处理机。典型地,与每个数据终端装置相联的是一种带有旋转开关的通信控制器,它可以有选择地设定控制器的输出地址。然后,每个控制器将其地址发送到主机。主处理机将检索存储在该处理机内的一张查阅表,程序指令中包括通信协议在控制主机与指定的远程装置之间进行数据传输时,由该控制器采用此通信协议。这样一种系统在Finrtock等人的第4,787,028号美国专利中已作了披露。
现有系统的另一缺陷由这样一种情况而引起,即技术上的进步已产生了各式各样的计算机和数据处理系统,它们以不同的数据速率和数据格式工作。计算机业尚未开发或采纳一套标准化的协议。因此,各种计算机系统相互之间要通信以及交换信息通常是不可能的。目前,如果采用各种各样硬件的单独计算机,想与中央计算机或其它独立计算机通信的话,对于第二台或接收计算机来说,以不同于发送系统的速率和格式来接收发送的数据将是无法接受的。通常,第二台计算机将不会使用与第一台或发送系统相同的速率和相同的格式。
有些系统已作了改进,至少能部分地解决这一问题。例如,对一些装置进行改进,或者利用软件程序,或者利用计算机硬件来分析输入数据,以确定发送来的数据精确的速率和准确的数据格式。然而,由于这种系统要求对其中指定的大量数据速率和格式开发一种算法,故该系统典型地变得相当昂贵和复杂。这种算法必须在确定所发送数据的速率和格式后,才在接收计算机中实现必需的改变,以允许其迅速解释所收到的数据。
如第4,688,170号美国专利所披露的“一种用以与配备不同协议的计算机进行通信的通信网络”,克服了以上所指出的某些缺陷。该项专利描述了在利用不同数据速率和不同数据格式的各种大小和类型的计算机之间的一种全球通信网络。所披露的系统通过将包含一张数据速率和格式表的程序存入网络中每一台计算机的存储器内,即可达到这一目的,而这些数据速率和格式用于全球网络中的所有计算机中,网络中的任何一台计算机都可以进行通信。系统由个别用户初始化,该用户必须选择一个与所需通信的计算机有关的指定信道数。然后,用户的计算机将注册到指定的计算机,并激活指定计算机的数据速率和格式。然而,如果发送计算机是含有程序表的一台计算机,那么,该发送计算机在查阅了这张表后,将以适合于接收计算机的速率和格式发送信息。
对通信问题的其它解决办法,已经涉及到在计算机体系结构朝分布式系统发展的过程中的各个不同方面,即发展趋势朝向在整个通信网络内利用适合用户的独立子系统、资源管理以及通信管理。由Segarra等人的第4,396,983号美国专利所披露的一种系统,使任何这类本地系统都能与网络内的任何其它本地系统进行通信,而无需利用主系统或中央系统。该系统通过多种通信约束,以及利用位于分布式系统功能通讯层中的特定通讯模块来管理通信协议而达到这一点。然而,该系统局限于某些特定类型的分布式系统。
用以解决计算与数据处理系统之间,及其内部通信中所存在的问题的其它途径,包括使用CCITT(国际电话电报咨询委员会)建议的X.219,“远程操作”,以及国际标准组织ISO9072-1“适合CCITT应用的信息处理系统一文本通信一开放系统互连的远程操作模式”,这两个标准是紧密合作一起发展的,并且在技术上是相吻合的。为了支持分布式开放系统环境中的交互式应用,CCITTX.219建议定义了适合CCITT应用的远程操作服务以及开放系统互连标记。然而,按照X.219建议,这种操作仅在形式上作了规定。没有实际协议或任何交互约束的正式规定。CCITT标准是国际电话电报咨询委员会的推荐标准。许多CCITT通信标准已经出版,并已得到计算机业的认可。例如,“CCITTV.24”已被广泛认可用于较低几层的网络体系结构中。这些标准对于定义数据设备与调制解调器之间的常规连接是有用且很必需的。这种物理上的标准提供了两个不同硬件装置之间的一种有效的、可兼容的接口。
本发明的系统适用于应用层,即OSI(开放系统互连)协议栈的第7层,这样,上述讨论的与协议栈的较低层次有关的大多数现有技术与本发明并非直接相关,另一方面,CCITTX.219的远程操作,以及先进的网络系统体系结构(ANSA)标准则涉及到应用层协议,从而涉及到本发明,先进网络系统体系结构ANSA(ISA(国际标准协会)设计)提供了多种接口,其中规定了各组的操作。然而,考虑到通信两方是同等的,任何一方都可以发起通信,因此必须根据其间没有正规连接的两个不同的客户一服务器说明来建立对等协议。此外,接口说明至少部分与执行程序结合在一起,该执行程序使得系统缺少灵活性、缺少模块化以及缺少系统独立性。该ANSA系统确实提供了已规定的交互约束,但仅适合某些有限的目的,而与说明本身无关。ANSA计算模型包括由ANSA为应用程序设计员提供的结构概念,用于设计分布式程序。它包括诸如服务、操作、目标、接口、启用、接口类型、活动以及类型相一致的数据等主要概念。
另一种有关的体系结构和说明是由一组公司,其中包括SunMicrosystems,Inc;Hewlett-Packard,Inc以及Digital EguipmentCorporation新开发的共用目标请求经纪人(Common Object ReguestBroker)。这种说明提供了一种方式,通过该方式系统内的目标可明显地生成,并发送请求和接收响应。目标请求经纪人是一种传统的、具体的目标模式,它在处于复杂的分布式环境中的不同机器的各种应用之间进一步提供了相互间可操作性,在多个目标系统之间提供无接缝的互连。然而,这种说明不能提供由同等对待的双方所实现的规定的对等协议。
因此,在电讯业中,能够以单独、独立的说明来规定某种通信协议和其它接口,将是非常有用的。这种说明的存在,或者与通信双方的实现无关,或者与组分部分的实现无关。即,这将有利于使计算系统内的多对用户,通过一种方法即可以相同的通用的说明或说明描述双向通信。进而可见,所有这种协议都能以这种方式描述,不管它们是客户一服务器协议或对等协议。本发明的系统提供这样一种系统,其部分地利用称为ELIN的专门语言。在本发明作为附件A所附的“ELIN语言参考书”拷贝中,详细介绍了ELIN语言,其概念及其结构,在此作为参考材料结合在内。
根据本发明的一个方面,提供一种用以在具有一或多个处理机的计算系统中,生成和监督多个动态变化的软件单元组的交互作用的方法,每个所述软件单元能交互性地建立和操纵属于一或多个目标类的目标,每一所述目标类均由一接口说明自动生成,所述方法包括以下步骤:
定义独立于计算机语言的接口说明,通过以下步骤管理跨接一或多个处理机的所述多个软件单元的交互作用:
为所述接口说明提供唯一的名称;
提供具有一或多个实例变量的一张表,它定义了一个目标类的特性;
提供零或多个交互变量,它规定了一组所述目标的公用或专用交互;以及
如有任何约束则对所述软件单元的交互规定各种约束;
将所述独立于计算机语言的接口说明转换为计算机语言专用接口执行程序,适合专用计算系统采用至少如下的信息;
用以在所述软件单元之间交换数据的通信协议的名称,
对需要交换数据的软件单元的鉴定,以交互性地建立和操作目标,
用于每个所述软件单元的操作指令集合,以及
如有任何约束则对所述软件单元的交互规定的各种约束;
建立多个操作软件单元,它们能利用所述计算机语言专用接口执行程序相互进行交互或通信;
调节所述软件单元的交互,致使允许所述多个软件单元启动或响应于来自任何其它软件单元的通信;以及
利用所述计算机语言专用接口执行程序在所述计算系统上执行所述多个软件单元,以在所述软件单元之间进行数据通信。
根据本发明的另一方面,提供一种用以在具有一或多个处理机的计算系统中,生成和监督多个动态变化的软件单元组之间交互作用的系统,每个所述软件单元能交互性地建立和操纵属于一或多个目标类的目标,每一所述目标类均由一接口说明自动生成,所述系统包括:
定义独立于计算机语言的接口说明的装置,通过以下步骤管理跨接一或多个处理机的所述多个软件单元的交互作用:
为所述接口说明提供唯一的名称,
提供具有一或多个实例变量的一张表,它定义了一个目标类的特性,
提供零或多个交互变量,它规定了一组所述目标的公用或专用交互,以及
如有任何约束则对所述软件单元的交互规定各种约束;
将所述独立于计算机语言的接口说明转换为计算机语言专用接口执行程序的装置,适合专用计算系统采用至少如下的信息:
用以在所述软件单元之间交换数据的通信协议的名称,
对需要交换数据的软件单元的鉴定,以交互性地建立和操作目标,
用于每个所述软件单元的操作指令集合,以及
如有任何约束则对所述软件单元的交互规定的各种约束;
建立多个操作软件单元的装置,它们能利用所述计算机语言专用接口执行程序相互进行交互或通信;
调节所述软件单元的交互的装置,致使允许所述多个软件单元启动或响应于来自任何其它软件单元的通信;以及
利用所述计算机语言专用接口执行程序在所述计算系统上执行所述多个软件单元的装置,以在所述软件单元之间进行数据通信。
本发明的系统提供给用于计算系统的各种说明的应用层通信协议,实质上。该计算系统不论是单工还是双工均可,且每种协议都存储于一个脱机的软件开发系统内。各种协议说明都是独立设计的结果,它可以用作实现通信双方的一对软件模块之间的“合同”。在本发明的系统中,一对通信用户之间的各种通信“合同”都是共同规定的。即,这种合同可以包括各对用户交互的各个方面,包括其相应的响应度、其相应的允许采用的数据操作、其方向以及为了如何操作所允许的次序都可以在相应的一对用户之间发送。这种采用接口规范,以意义明确、特殊而通用的语言规定协议的方法,也允许将规范重新用作其它各对通信用户之间的“合同”。
此外,本发明系统的这一方面提高了可在一个计算系统内达到的模块化的水平,并且提高了与系统有关的标准化程度,以及系统可得到扩展的容易程序。另外,允许对必须相互交互的软件程序进行真正独立的开发和测试,本发明的这一方面提供了更快地完成独立软件开发和测试的能力,甚至在很广阔的无联系的地理位置上也是如此。
另一方面,本发明的系统包括利用某些特定以及明确定义的结构,来规定位于计算或数据处理系统内应用层的所有内部接口。这些已定义的部分例如允许对等协议说明经改进包含下列内容:(1)用于协议双方的一组正规的操作;以及(2)用于协议的交互约束说明。另一方面,本发明的系统还提供定义客户一服务器或单向类型的协议的性能。
在另一方面,本发明的系统包括用以产生存根代码的协议说明,这样,能确保达到两个通信用户之间的理想配合。在本发明的系统中,各种操作由下列信息定义:操作类;自变量;结果以及错误。此外,本发明系统的这一方面还提供被定义为接口部分或协议说明的交互约束。本发明系统的这一方面帮助通信用户的执行者利用协议了解,可以在给定时间请求哪个操作。
另一方面,本发明的系统包括用以产生“协议监督程序”的机制,以监视系统并检测个别的执行程序何时发生误动作,并违背已定义的交互规则。当违反规则时,本发明系统的这一方面将使通讯双方得到违反的通知,并实现校正作用。然而,这一特征只有在通信用户一方的执行程序中存在设计错误的情况下才可能出现。因此,本发明系统的协议监督程序方面在系统测试阶段和软件开发中具有最主要的实用性。
另一方面,本发明的系统包括用以定义交互约束的手段,它包括一组符号状态,每个状态具有一列允许操作的成分。交互约束说明的结果为一种有限状态机,即协议监督程序。每一操作被分别定义,且在操作说明中,用名称和数据类型定义自变量,结果和错误,操作说明本身也可以具有或原始的,或构造的类型。
另一方面,本发明的系统采用一种面向目标的接口设计语言,称为ELIN,它可以用来生成统一的、独立的接口说明。该ELIN语言包括若干独特的和规定的术语和结构,提供一种用以形成双向通信所用说明的机制。因此,所产生的各种说明可以由多对通信用户所利用,以专门执行它们的通信接口协议。此外,ELIN语言提供了一种机制,不仅用以描述一个用户控制数据交换的通信类型,而且描述了两个用户起同样作用,并可以启动和/或控制数据交换的通信类型。
在另一方面,本发明的系统包括这样一种机制,即使接口说明与任何程序设计语言和任何规定的计算机体系结构相独立。根据利用本发明系统的ELIN语言形成的说明,可以应用各种工具来产生用于各种独立的程序设计语言的根代码。本发明系统的这一根代码生成方面,对于整个系统和机制是不可少的,作为一个整体而言,这一概念依靠这些根代码发生器,相对已规定的适用于系统或应用程序员的协议,提供一种有效和直观的接口。
本领域的熟练人员将很容易地理解到,本发明的原理和各方面还可以适用于除电信交换系统以外的各种各样的计算机应用。
为了了解本发明及其进一步的目的和优点,以下将结合附图对本发明作进一步的详细描述。
图1是说明一个现有技术,即用以与具有不同协议的计算机进行通信的一种通信网络的一个功能方块图;
图2是说明一个现有技术,即适合大量远程装置的数据处理系统的方块图,其中每台远程装置都通过利用通信控制器而工作于不同的通信协议下,该控制器输出包括控制器地址在内的输出信号;
图3是表示一个现有技术,即一个具有进程间通信能力的多进程系统的示意图,它用以控制处理机系统内各进程之间的通信;
图4是说明本发明系统的通用接口说明用作一个服务器一客户类接口说明所用方法的方块图,它用于以程序设计语言独立方式完成的动态运行时连接;
图5是说明利用本发明系统内的交易处理器(trader)寻址软件单元所用方法的方块图,至交易处理器的输入由接口说明和单元说明产生;
图6是说明可以利用接口说明,产生用以促进和协调本发明系统内通信的根代码的方法示意图;
图7是说明在本发明的系统内利用接口说明方法的示意图;
图8是说明利用面向目标的接口描述语言,实现通用接口说明或协议的方法示意图,该接口说明或协议促进本发明系统内的通信。
本发明的系统在某些方面利用了面向目标的程序设计原理。面向目标的程序设计基本上包括四个要素一类,目标,实例变量(或以C++执行的数据成员),以及方法(或以C++表示的数据成员函数。类简单地是用以定义目标的模板,目标是从类中产生的实例。类都具有两种类型的成份一实例变量和方法。实例变量用作数据元素,方法用作函数,即,它们定义了目标的特性。在执行期内,实例变量和方法可以结合在一个共同目标中。即,目标封闭了通过利用该方法处理的变量的实例。由此,程序设计是集中于目标而完成的,而并非集中于所完成的功能或任务。
在程序设计语言C++方面,本发明系统的较佳实施例中,将本领域众所周知的面向目标的某些程序设计技术结合在本发明的系统中。这种技术包括继承、同素异构和封闭。继承使一个新的类能从一个现有类中导出来,这样,编码就很容易重复使用,由此,数据和编码可以加到一个类中,或一个类的特性可以修改,而不必改变现有的类。由于不同的目标类型分享一共用接口,同素异构就是提供以相同方式采用不同类型目标的能力的特性。接口的继承就是使其能从一个共同的标准导出其它的目标类型。最后,封闭就是将数据与所需要处理的操作结合起来放在一个“屋顶”下的一种技术。它进一步允许具有防止对数据过份或毫无必要的存取的能力,以及隐蔽数据结构细节的能力。
在本发明的系统中,将软件单元连接到外部环境(除了交叉程序编译器和有关文件库外)的公用接口全部是用ELIN定义的。这就允许所有的软件单元都通过其所连接的接口进行定义,用这样一种说明驱动一个根代码发生器。接下来就是用步骤描述形式,说明根据用以开发按C++执行的目标一逻辑的较佳方法,利用ELIN开发软件单元的步骤,其它并行的处理用以开发数据库说明、功能单元以及其它系统元件。下列步骤说明目标一程序块开发(步骤1和2)、目标一单元开发(步骤3至6)以及软件包(步骤7)。
步骤1接口说明是现成的或新的用ELIN定义。
步骤2鉴别带接口的软件单元。
步骤3C++标题元件根据单元一说明单元所连接的接口说明而形成(ADT-自动数据翻译程序、PROTOCOL-协议、PERSISTENTADT-持久的自动数据翻译程序)。
步骤4手写码写入.h和.cc文件中,如果需要的话,包括所产生的.h文件。
步骤5所有.cc文件都用一个交叉程序编译器编译,目标-文件(.o)对每个.cc文件产生。
步骤6所有目标-文件都与标准文件库连接在一起,且建立完整的软件-单元。
步骤7将必须分配给相同处理机的系统实体内的那些软件单元组装在一起。这种软件包称为负荷-软件包,它能包含一组不同类型的单元。
步骤8将软件包传送到目标-系统。
步骤9在目标一系统中:暂时性存储该软件包。
步骤10根据信息的种类,连接/重定位和拷贝软件包中的负荷模块到存储器内的适当位置上。
参见图1,图1说明现有技术中的一种通信网络,它能使具有不同协议的各计算机之间实现通信。尽管这些计算机采用各种数据速率和数据格式来接收和发送数据,它们仍旧能在所示网络中进行可以理解的相互通信。这种通信网络例如可以包括若干台不同类型的主计算机10、12,若干台个人计算机14、16,便携式计算机18以及局域网网点20。主计算机10和12以及个人计算机14和16可能包括诸如打印机22和磁盘文件24等外围设备。所有计算机都通过独立的调制解调器26和一个全球性电话系统27或当地电话交换台28与另一台计算机通信。
然而,由于利用该通信网络的各计算机经程序编制后,用来发送或接收以特定比特率和数据格式为基础的数据,因此,各计算机之间的通信将是不可能的,除非每台独立计算机都能了解各种比特率和数据格式。例如,每种数据格式都应当包括具有奇偶校验位的数据信息包,应当具有各种字长,应当包括一个循环冗余码校验,并应当或者是同步的,或者是异步的。图1所示的系统允许通过在网络内,提供存储在至少一台计算机的随机存取存储器(RAM)中的程序,在这些系统之间进行通信。这种程序应当包含由各类计算机所利用的、计算机希望利用其进行通信的各种比特率和数据格式。通常,所存储的程序将不包含这些规定的数据比特率和数据格式,但应当包含使系统模拟各种数据速率和数据格式所需的信息。在这种情况下,独立用户将确定用来与所指定的计算机通信的各种数据的比特率和数据格式,并将这一信息输入计算机本身。
参见图2,图2表示一种现有技术的数据处理系统,它通过利用通信控制器,用不同的通信协议来适应多个远程装置,该控制器给主处理机输出的信号提醒主机接到其地址中。所披露的系统包括一个局域网处理系统,其中有大量的远程处理装置诸如销售点数据终端,通过通信信道连接到主处理机。与每个数据终端装置相联系的是一台通信控制器,其上安装了一个旋转式开关,可以有选择地设定输出包括该控制器的地址在内的二进制信号。当系统上电后,每台控制器将一个包括其地址在内的信息发送到与该控制器有关的主处理机。主处理机将控制器的地址用作其地址,它将从存储在处理机内的一张查找表中检索包括通信协议在内的程序指令,而该通信协议将由控制器用于控制主处理机与远程处理装置之间的数据传送。这些指令存放在设置于控制器内的RAM存储器内。地址开关手控设置,这样,每台控制器都将具有不同的地址。
参见图2,它表示一个数据处理系统的方块图,其中主处理机30通过通信信道或链路32耦合到多台远程处理装置。后者可以包括数据终端装置34和一台通信控制器36,控制器36用以控制终端装置34与主处理机30之间的数据传送。控制器36、处理机30以及终端装置34,每个都通过一个分接头盒38和总线40连接到通道32。如以下将要完整描述的那样,每台控制器36都能经过通信线路42,通过调制解调器44或直接耦合到远程控制器46,而控制器46则控制主处理机32与连接到远程控制器46的处理装置,诸如数据终端装置48之间的数据传送。磁盘文件存储器50通过线路54连接到主处理机30,它包括一张查找表52,内含许多与不同类型的通信协议有关的程序,例如由远程处理装置在信道32内传送数据时所采用的异步,双同步以及位同步,它们为远程处理装置通过信道32传送数据时所用。至于对不同类型的通信协议的完整描述,请参见1982年8月25日公布的第4,346,440号美国专利。
参见图3,图3表示一个现有技术多处理机系统的概貌,它采用一种进程间通信手段,用于处理机系统内各处理机之间的通信。图3中,用60总体上表示一个分布式处理环境的高层次概貌。以62表示的处理机A通过以线路64表示的物理路径,耦合到以66表示的处理机B。其中,处理机A表示拥有以68表示的进程A以及以70表示的进程B。存储区72通过线路74和76分别表示与进程A和进程B有关,提供进程控制和对数据存储的存取。
处理机B按图示,其中包括以78表示的进程C以及以80表示的进程D。存储区82通过线路84和86表示与进程C和进程D有关,线路84和86分别提供进程控制和对数据存储的存取。
处理机内的进程或执行程序需要相互通信。在不同配置的处理机中,或在同一处理机中,不同时间采用不同的配置,进行通讯的两个进程可能处于不同的相对位置,它们之间也可以拥有不同的物理路径。
在图3所示系统中,分别以88和90表示在处理机A和处理机B内的进程间通信装置(IPCF),它们显而易见地设置在通信过程中,用以实现进程间通信。IPCF88如线92所示那样耦合到处理机A中的进程A,并如线94所示那样耦合到进程B。线92和94表示进程A和进程B至IPCF88之间的接口。这些接口允许进程A和进程B间的通讯,只要建立合适的数据路径。IPCF88还通过传送机制96,经线64,并通过处理机B内的传送机制98耦合到IPCF90。而IPCF90如接口100和102所示那样耦合到进程C和进程D。这些连接IPCF的接口以及传送机制允许在所有示出的进程之间建立通信,而无需与之进行通讯的进程位置有关的进程知识。
在图3所示系统中,传送机制96和98最好包括多台传送装置,诸如本地传送装置,当进程A和进程B或进程C和进程D在单个处理机内通信时使用。如果处理机A和处理机B在同一机器中,可以用总线传送机制来简化处理机A和处理机B中各进程之间的通信。对于机器间通信,适合采用诸如SNA一类的通信协议。
传送机制96、98为数据移动器。它们负责将数据的字节从一个地方传送到另一个地方,而不必了解所传信息的内容。这样,处理机A中的存储区72通过线104所示那样,耦合到传送机制96,处理机B中的存储区82通过线106所示那样,耦合到传送机制98,以允许信息直接通过传送机制96、98进行传送。
进程的IPCF试图选择用作通信的传送机制进行通信。通信处理不需要了解所用机制。如同对试图通信的进程已为众所周知的那样,试图通信的进程将目标进程的名称提供给IPCF,而IPCF则采用适当的目录服务加以安排。然后,IPCF选择合适的传送机制,并采用系统提供的服务,以一种标准方式建立各进程之间的连接。IPCF可以为从应用到诸如分页管理的基本系统服务的所有的进程级所采用。
每个传送机制都具有不同的性能和特征,为了允许利用许多不同的传送机制,IPCF包括一个总传送机制接口,用于每一进程。该接口定义了一组功能,用以建立各进程之间的连接,并用以传送各进程之间的信息。所定义的功能映照到IPCF所用的那些传送机制。通信时,写入接口的程序与传送机制无关,因而与它们的相对位置也无关。
在由IPCF所建立的各进程之间的连接范围内,各进程之间的通信是依据发送和接收信息而进行的。这些信息包含了工作请求和/或数据。相对于特殊的工作请求,一个进程可以假定一个请求员或一个服务器的角色。请求员通过将一个请求发送到一个执行此请求的服务器,而使一个工作请求初始化。请求包含一种工作请求(一个命令及其参数)也可附加某些数据。请求和数据都具有可变长度。
参见图4,图4中说明了建立和涉及类和类的实例的机制,利用在操作系统的核心122内包含的交易处理器120的概念,建立一对软件单元124与126之间的接口关系,能分别包含一个客户类目标128和一个服务器类目标130。图4详细说明了为了在系统内建立目标所需的步骤,以及所建立的目标如何能调用,或如何通过驻留在服务器软件内的编码进行控制的问题。上述服务器软件设置在“服务器”软件单元130中。
目标是类的实例,而类是语言结构,它在一个单一的包或单元内含有数据和编码或函数。由于它们能够在单个包或单元内包含对数据和函数两者的定义,故它们可以起到小型、独立的程序作用。因此,在设计更为复杂的程序时,它们可以用作积木块,而无需重新开发用于这些函数的编码。由于它们可以单独维护和修改,程序的维护和更新得到了简化。
类是用以定义目标的模板,因此,目标是类的一个实例。类包含两种组成部分,实例变量或数据成员,以及方法或成员函数。为了支持程序设计员开发计算机系统内扮演用户角色的程序,一种用户类程序可以通过利用一种接口说明而自动生成。所生成的用户类起到一种类似于代表服务器类的作用。系统的用户程序单元从用户类目标调用操作,以确保调用能传送到驻留于服务器类中的软件执行器中。因此,尽管它使使用者不知道这用户类,而所有与动态联编函数有关的编码,在用户类中都可以发现。用户类的使用者得到了控制服务器的效果。
类说明控制程序编译器将在目标-数据中存储地址,以及操作表中的地址将以哪种次序规定的方式。某些类说明由系统自动生成。当一个目标在系统内产生时,其“产生方法”可以通过请求位于核心122内的操作系统的交易处理器120部分而确定。交易处理器120包括例如存储器地址,所有接口执行程序的位置等信息。当软件单元置于计算系统内时,它即公布了有关交易处理器120中其它单元对它的存取能力的某种信息。产生该类的目标的函数的地址也在交易处理器120中以地址134名义公布,地址134指向服务器类130中的产生方法136。
为了使软件单元124产生一个新的确定类的目标,首先必须要求交易处理器120提供有关新的目标所需的类的信息。通过相应于接口说明132的一个独特的成员所产生的脱机“X”,它可以接收到用以调用该函数的、恰当生成方法136的地址。所返回的为最新生成目标的地址,或所需类的实例。
图4中所述的机制用作K.Landin等人于1992年7月1日申请的、题为“用于计算机系统中软件模块的动态运行时连接的系统”的第07/907,307号美国专利申请中所披露的连接过程调用机制的部分,该项专利申请已转让给L.M.埃利克逊电话股份有限公司,并在此作为参考而结合其中。连接过程调用机制实现了一种适用于对分别装入的软件单元进行动态运行时连接的系统。尤其对在计算机操作期间改变软件的系统文本内,这一点是很有用的,文本中,老的和新的版本的软件都将在系统内共存一定时期。由Nilsson等人于1992年7月1日申请的、题为“用以在计算机操作期间改变软件的系统”的第07/907,294号美国专利申请,披露了在操作期间用以修改或改变软件的这样一种系统。该专利申请已转让给L.M.埃利克逊电话股份有限公司,并在此作为参考资料结合文中。在该系统中,交易是用来访问采用连接过程调用的接口的。由于在存入期间,所有可通过连接过程调用机制访问的接口都公布给操作系统核心122中的交易处理器120,因此,在交易处理器120中应提供必要的数据。
图5说明了通过前述连接过程调用机制,在运行期间对程序单元的老的软件150和新的软件152进行交互连接和限定的方法。核心122内的交易处理器120可以直接针对或者老的软件单元150,或者新的软件单元152而执行软件单元154。当进行替换时,根据老的和新的版本的服务器类,每个都有其在交易处理器120内分布的接口。交易处理器120拥有两个地址项用于每一时间,一项156用于老的软件单元150,一项158用于新的软件单元152。在替换前所形成的进程将接收指向老的软件单元150及其服务器类的地址,而其它的进程可以接收新的版本的服务器类的地址。
在替换已经完成,而且老的软件单元150内的活动已经结束后,老的软件单元150可以从存储器中撤出,由老软件单元150内的服务器类所公布的接口可以取消。如果试图从存储器内撤消这些服务器类的工作是在老的软件单元内的所有进程运行完成之前实现的,系统将从核心122产生一个例外调用。然后,系统内的例外处理过程将允许未完成的进程有一个机会来重新生成,并利用新的软件单元152或其它单元作为结束。
作为利用连接过程调用机制的部分,本发明系统的接口说明,用称为ELIN的面向目标的接口描述语言书写,关于它的完整的语言手册作为附件A。在此种语言中,有称为摘要数据类(ADTs)的特殊结构,它是特别针对连接过程调用接口的说明的。采用ELIN语言的ADT是一种由某些类的目标所提供的接口的说明。如果采用一种面向目标的程序设计语言,这些目标就更适合于作为类的实例实现。适用于采用ELIN语言的连接过程调用接口的说明,将包括下列信息:
(a)用于该说明的名称;
(b)作为本接口基础而采用的其它接口;
(c)一或多个设计师(用以形成各种实例);
(d)没有或有多种方法说明,每一种说明包括一个方法名,自变量、返回类以及例外。
以下用编码所述的是一例能作为连接过程调用机制部分用的接口说明,它描述了一种类型栈的目标的接口:
ADTStackIS
BASETelecomObject;
METHODS
CONSTRUCTOR(INsize:Integer);
push(INdata:Integer);
popORETURNSInteger;
ENDADTStack;
C
1992TelefonaktiebolagetLMEricsson
该接口说明定义了称为栈的ADT,其基础称为“Telecom Object”该基础的目标可以接收从所列函数成员来的进程调用。对该基础进行标识,表明有称为TelecomObject的这一类的另一种说明。这种基础也有某些特定的方法,目前将作为由基础ADT导出的一种ADT而加以继承。上述ADT定义中所规定的函数成员或方法,将加到基础ADT中所规定的那些方法。总之,上述编码包括了一种ADT说明,它是接口说明的一种类型,可以在系统内生成。
一种接口可以从另一种接口导出,这另一种接口就称为该导出接口的基础接口。各种接口可以从一种以上的其它接口导出,而所导出的接口则继承了其每一种基础接口的操作。此外,所导出的接口可以发布其自己的附加操作,尽管它不可以定义具有与基础接口所继承的同样名称的操作。显然,这一继承仅仅影响到类的接口层,而不影响到执行层。
如图6所示,本发明的系统包括一个根代码发生器170,它用以保证不必连接在一起的用户与服务器之间的协调一致。通过根代码的使用,替代连接可能在运行时期动态地发生,该根代码用于接口说明172的每一方面。接口说明172以一种独立于语言的形式规定,既使采用面向目标的范例也不例外。根代码生成过程能保证达到对几种程序设计语言之一的映照,在接下来的部分中,将简要描述怎样才能利用语言C++实现这种映照。
再参见图6,图6说明接口说明172采用根代码发生器170的一种方法,根代码发生器170与本发明系统的一组所产生的文件174有关。尤其是,图6说明了以该语言实现时,C++映照的整体结构。用于本发明系统的ELIN,以面向目标的接口描述语言ELIN书写的一种接口说明,类似于程序设计语言C++中所用的一种类定义。同样,通过目标存取操作的机制,类似于程序设计语言C++处理虚拟成员函数的方法。因此,根据图6中所述C++的映照,就本发明系统的这一方面来说是有指导性的。
根代码发生器170产生两个文件用于客户一方和服务器一方,其中一个文件用尾标“.h”(标题),另一个文件用尾标“.cc”(代码)。对于客户来说,“.h”或标题文件包含两种类的定义。就虚拟成员函数和实例变量而言,一类是服务器的“.h”或标题文件中相应类的相兼容的文件。这样就保证了客户与服务器之间的兼容性,并使客户有可能调用由服务器所产生的目标。然而,这种类设计员是专用的,以致于不能用类在栈上产生自动目标。第二类是在客户方面所采用的一类,它起到一种鲜明的指针的作用,通过其可以存取由服务器所产生的目标。
至于服务器一方,则由根代码发生器170生成相同的两个“.h”(标题)和“.cc(代码)文件。“.h”文件的内容包括将保证对客户具有兼容性的一类定义。这就是作为实施基础所采用的一类。实施可以直接以所产生的类为基础,或者,所产生的类也可以用作导出其它类的基础。“.cc”文件包括了用于“生成方法”的一个骨架,以及用以公布该生成方法的地址的代码。该生成方法的主体负责生成与所产生的类相兼容的目标,并使指针返回到最新生成的目标。
有几种理由用以形成适合于客户和服务器方面的,不同的但却是兼容的类定义,而并非为一种共享的类定义。首先,它为客户和服务器内的成员提供不同层次的能见度。例如,设计员在服务器中必须是公用的,但如果它留在客户中,将不必是公用的。其次,如果采用不同的类,客户和服务器程序可以连接在一起用于测试目的,而不会产生名称抵触的问题。
参见图7,图7表示各个流程图的某种排列,它说明了某种说明,类定义以及其与本发明系统内所用另一种说明和类定义的关系。图7说明某些生成的文件的结构,以及当它们可以在本发明的系统中实现时所写的说明。在最高层,通用接口说明180定义了ADT“X”,以及类将接收调用的方法。在定义的下一层,逻辑上从属于该ADT的是通用接口说明180的用户单元180的说明,以及通用接口说明180的供应者单元184的说明。用户单元规定为ADTX的用户,而供应者单元规定为ADTX的服务器。
位于单元说明182和184底下的下一个逻辑层分别为用户和供应者的生成类定义。作为X User186所生成的类定义表明为公用和专用两者所定义的某些用户类。作为X Provider所生成的类定义表明用作供应者数据和函数的某些公用和专用的定义。
最后参见图8,图8是表示协议说明是如何用以生成根代码的一个示意图,它保证两个通信用户之间的理想协调关系。图8中表明了根代码的结构,它包括用户书写代码200,生成代码202以及核心代码204。在分布式和模块式计算机系统中,其中一例就是一个电信系统,可以利用许多应用层协议来简化系统各部分内及其之间的通信。
协议可以视作为系统内同意以特定方式和格式进行通信的,各对通信双方之间的各个合同的集合。某些协议可描述为客户-服务器协议,其中仅有一方是启动者。称为对等协议的其它协议,允许双方启动通信。在本发明的系统中,与其它现有系统不同,各对双方之间的全部合同或协议是以一种单一的接口说明规定的,这种说明与双方规定的执行程序相分离。即各对双方之间的“合同”可以包括各对双方各个方面的交互,包括其相应的责任,各自所允许的对数据及其方向的操作,以及关于操作怎样才能在同一对各方之间传送所允许的次序。因此,这意味着这种单一的说明可以用作一种普遍的合同,可复用作系统内任何一对双方之间的合同。
本发明的系统以称为ELIN的专有的面向目标的接口描述语言,用于描述各对通信双方的单一接口/协议说明成为一种通信合同。采用这样一种语言,例如对等型协议的说明包括以下部分:(1)协议内的一个形式的操作组,每个协议都有两个通信方;(2)交互约束的说明。对等协议说明是独立于采用协议来执行其通信的执行程序而存在的。对等协议说明根据以下规则组成:(1)协议名称;(2)第一方名称及其认可的操作表;(3)第二方名称及其认可的操作表;(4)交互约束(附加)。
以下用编码所表示的是一例用于一对具有交互约束的通信双方的一种协议说明。包括在这样一种协议说明内的信息可以用来产生根代码:
PROTOCOLCommunicationService;
PARTYDataproducer;
ACCEPTS
StartTransmission,
TerminateTransmission,ReSendData;
ENDPARTYDataProducer;
PARTYDataConsumer;
ACCEPTS
StringData,IntegerData,
NoMoreDataToSend;
ENDPARTYDataConsumer;INTERACTIONSTATESTARTWHENStartTransmissionTHENstarted;STATEStartedWHENTerminateTransmissionTHENSTART;WHENIntegerDataTHENDataphase;WHENStringDataTHENDataphase;STATEDataphaseWHENIntegerDataTHENDataphase;WHENStringDataTHENDataphase;WHENResendDataTHENDataphase;WHENNoMoreDataToSendTHENDataphaseEnded;STATEDataphaseEndedWHENResendDataTHNEResendOrdered;WHENTerminateTransmissionTHENSTART;STATEResendOrderedWHENStringDataTHENDataphaseEnded;WHENIntegerDataTHENDataphaseEnded;ENDPROTOCOLCommunicationService;C1992TelefonaktiebolagetLMEricsson
图8还表示了系统内双方通信的逻辑结构。如图8中所示,利用包含ELIN的专门术语和结构来描述系统两头的进程和处理机之间,以及用于系统的数据类型的通讯。同本领域现有的其它系统不相同,本发明系统的这一方面提供了将用于整个系统的所有接口信息,设置在一个单一脱机存储位置上的性能。此外,采用本发明这一方面所用和定义的协议,允许各个装置起同等的作用,通信双方都能启动通信。作为通信目的而言,通信双方并不预先定义谁为主谁为从属。本发明系统的这一方面允许在各个不同的以及远距离的地方所开发和操作的系统能方便地进行交互操作,只要每个系统都用单一规定的接口进行开发。本发明系统这一方面的协议说明是与系统内任何应用执行程序相分离和截然不同的。
如图8中进一步所示,用户书写代码200作为通信协议中的一方,如果信号能满足协议说明,它可以发送和接收信号。数据接收装置206、208和210处理符合协议的输入信号。数据发送步骤212、214和216包括由根代码生成装置自动产生的代码,以根据协议说明产生并向外发送信号到系统。接收信号218和发送信号220的动作都是直接通过接口媒介222进行的,它是生成码202的一部分。该接口说明222是生成码202的强制性部分,对于接口和协议而言,它必须适当地呈现为功能。
调度程序224是一个由根代码生成装置所产生,并根据每个输入信号调用本说明专用执行程序的规程。调度程序224接收该信号,对该信号解码,将信号识别符从信号载体上分离开来,然后如图中226所示将它分配给写入该执行程序的规程中。
协议监督程序228,作为生成码202的一个附加部分,用来监督通信量,并确定位于任何给定场合下的通信双方,在发送或接收信号过程中是否遵守接口说明。协议监督程序228在监督遵守协议规则中,作为一台状态机操作。该状态机的逻辑用以上提供的取样码表示。
如图8中所示,在核心码204中包括了一个通信端口230。根据本发明系统的寻址机制,该通信端口230被视为一种无源支持装置。该通信端口230不注意经由其而通过的协议,但可以用来简化通信。通信支持232是包括在操作系统内的总的通信支持。它可以工作在同一处理机内的各进程之间,或工作在不同处理机的各进程之间。如果工作在各处理机之间,通信支持232将形成一条硬件通信线路。图8中所包括的整个镜像将表现在系统内第二通信方的支持和操作过程中所产生的相应的活动。
如前所述,本发明的系统使贯穿计算或数据处理系统的通用协议或接口说明,能产生并存储于一个单一的脱机场合。它进一步允许采用专门的术语以及允许用公式简易和一般地表示说明的结构,来生成这种通用的说明,并采用独立于语言的方式生成。这种方法不仅进一步方便了使用,而且进一步提高了包括本发明上述这些方面在内的系统的模块性以及可扩展性。此外,本发明的系统允许将说明复制用于特定的执行程序,并由某些根代码发生器用来生成专门语言的执行程序。本发明的通用接口说明可以进一步通过提供与公布的或可存取的接口和软件单元有关的指针信息,来实现对软件单元的动态连接,以及软件的运行时改变。
根据以上描述可以确定,本发明的操作和结构已很清楚。而其中所示和所描述的方法、装置以及系统被认为是较佳的,显然,在不脱离本申请的权利要求书所限定的本发明的精神和范围的情况下,还可以对此作出种种变化和变换。
Claims (19)
1.一种用以在具有一或多个处理机的计算系统中,生成和监督多个动态变化的软件单元组的交互作用的方法,其中,每个所述软件单元能交互性地建立和操纵属于一或多个目标类的目标,每一所述目标类均由一接口说明自动生成,其特征在于所述方法包括以下步骤:
定义独立于计算机语言的接口说明,通过以下步骤管理跨接一或多个处理机的所述多个软件单元的交互作用:
为所述接口说明提供唯一的名称,
提供具有一或多个实例变量的一张表,它定义了一个目标类的特性,
提供零或多个交互变量,它规定了一组所述目标的公用或专用交互,以及
如有任何约束则对所述软件单元的交互规定各种约束;
将所述独立于计算机语言的接口说明转换为计算机语言专用接口执行程序,适合专用计算系统采用至少如下的信息:
用以在所述软件单元之间交换数据的通信协议的名称,
对需要交换数据的软件单元的鉴定,以交互性地建立和操作目标,
用于每个所述软件单元的操作指令集合,以及
如有任何约束则对所述软件单元的交互规定的各种约束;
建立多个操作软件单元,它们能利用所述计算机语言专用接口执行程序相互进行交互或通信;
调节所述软件单元的交互,致使允许所述多个软件单元启动或响应于来自任何其它软件单元的通信;以及
利用所述计算机语言专用接口执行程序在所述计算系统上执行所述多个软件单元,以在所述软件单元之间进行数据通信。
2.如权利要求1所述的方法,其特征在于,所述定义独立于计算机语言的接口说明,管理跨接一或多个处理机的所述多个软件单元的交互作用进一步包括:
为一个母说明提供名称,无论何时所述接口说明都以所述母说明为基础。
3.如权利要求1所述的方法,其特征在于,所述将独立于计算机语言的接口说明转换为所述计算机语言专用接口执行程序的步骤利用一根代码生成工具实现,与所述软件单元是静态链接还是动态链接无关。
4.如权利要求1所述的方法,其特征在于,所述定义一独立于计算机语言的接口说明的步骤进一步包括以下步骤:
将所述接口说明的操作分组为多个双方通信协议,所述双方通信协议的每一个规定参与通信合同的一对软件单元之间的通信;以及
如有任何约束则对参与所述通信合同的每一成对软件单元的交互规定这些约束。
5.如权利要求4所述的方法,其特征在于,所述双方通信协议的每一个协议的说明进一步包括:
所述双方通信协议的名称;
第一软件单元的名称;
用于第一软件单元的操作指令集合;
第二软件单元的名称:
用于所述第二软件单元的操作指令集合;以及
如有任何约束则对参与所述通信合同的两个软件单元的交互规定的约束。
6.如权利要求1所述的方法,其特征在于,根据所述接口说明建立的操作软件单元进一步包括一接口媒介。
7.如权利要求6所述的方法,其特征在于,所述接口媒介还包括一调度程序,它接收来自一通信方的信号,将所述信号分析成地址和消息,从所述信号分解所述地址,并根据所述地址将所述信号的消息分配给能接受的软件单元。
8.如权利要求1所述的方法,其特征在于,根据所述接口说明建立的操作软件单元还包括作为一状态机工作的协议监督程序,以监督遵守在所述接口说明中预定的协议规则。
9.如权利要求1所述的方法,其特征在于,有关已实现用于所述计算系统内软件单元之所有接口的信息主要存储在一交易处理器模块中,所述交易处理器模块为所述计算系统之操作系统的核心部分。
10.一种用以在具有一或多个处理机的计算系统中,生成和监督多个动态变化的软件单元组之间交互作用的系统,其中,每个所述软件单元能交互性地建立和操纵属于一或多个目标类的目标,每一所述目标类均由一接口说明自动生成,其特征在于所述系统包括:
定义独立于计算机语言的接口说明的装置,通过以下步骤管理跨接一或多个处理机的所述多个软件单元的交互作用:
为所述接口说明提供唯一的名称,
提供具有一或多个实例变量的一张表,它定义了一个目标类的特性,
提供零或多个交互变量,它规定了一组所述目标的公用或专用交互,以及
如有任何约束则对所述软件单元的交互规定各种约束;
将所述独立于计算机语言的接口说明转换为计算机语言专用接口执行程序的装置,适合专用计算系统采用至少如下的信息:
用以在所述软件单元之间交换数据的通信协议的名称,
对需要交换数据的软件单元的鉴定,以交互性地建立和操作目标,
用于每个所述软件单元的操作指令集合,以及
如有任何约束则对所述软件单元的交互规定的各种约束;
建立多个操作软件单元的装置,它们能利用所述计算机语言专用接口执行程序相互进行交互或通信;
调节所述软件单元的交互的装置,致使允许所述多个软件单元启动或响应于来自任何其它软件单元的通信;以及
利用所述计算机语言专用接口执行程序在所述计算系统上执行所述多个软件单元的装置,以在所述软件单元之间进行数据通信。
11.如权利要求10所述的系统,其特征在于,所述定义独立于计算机语言的接口说明,管理跨接一或多个处理机的所述多个软件单元的交互作用的装置进一步包括:
为一个母说明提供名称的装置,无论何时所述接口说明都以所述母说明为基础。
12.如权利要求10所述的系统,其特征在于,所述将独立于计算机语言的接口说明转换为所述计算机语言专用接口执行程序的装置包括一根代码生成工具,与所述软件单元是静态链接还是动态链接无关。
13.如权利要求10所述的系统,其特征在于,所述定义一独立于计算机语言的接口说明的装置进一步包括:
将所述接口说明的操作分组为多个双方通信协议的装置,所述双方通信协议的每一个规定参与通信合同的一对软件单元之间的通信;以及
如有任何约束则对参与所述通信合同的每一成对软件单元的交互规定这些约束的装置。
14.如权利要求13所述的系统,其特征在于,规定所述双方通信协议的每一个协议的装置进一步包括:
为所述双方通信协议提供名称的装置;
提供第一软件单元名称的装置;
为所述第一软件单元提供操作指令集合的装置;
提供第二软件单元名称的装置;
为所述第二软件单元提供操作指令集合的装置;以及
如有任何约束则对参与所述通信合同的两个软件单元的交互规定约束的装置。
15.如权利要求10所述的系统,其特征在于,根据所述接口说明建立操作软件单元的装置进一步包括一接口媒介。
16.如权利要求15所述的系统,其特征在于,所述接口媒介还包括一调度程序,它接收来自一通信方的信号,将所述信号分析成地址和消息,从所述信号分解所述地址,并根据所述地址将所述信号的消息分配给能接受的软件单元。
17.如权利要求10所述的系统,其特征在于,根据所述接口说明建立操作软件单元的装置还包括作为一状态机工作的协议监督程序,以监督遵守在所述接口说明中预定的协议规则。
18.如权利要求10所述的方法,其特征在于进一步包括位于交易处理器模块内的主要存储装置,所述交易处理器模块为所述计算系统之操作系统的核心部分,所述存储装置用以存储有关已实现用于所述计算系统内软件单元之所有接口的信息。
19.如权利要求10所述的系统,其特征在于所述计算系统为通用于远程通信环境类型的分布式或模块式计算系统。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US90729392A | 1992-07-01 | 1992-07-01 | |
US07/907293 | 1992-07-01 | ||
US07/907,293 | 1992-07-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1080751A CN1080751A (zh) | 1994-01-12 |
CN1050916C true CN1050916C (zh) | 2000-03-29 |
Family
ID=25423851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN93107918A Expired - Lifetime CN1050916C (zh) | 1992-07-01 | 1993-07-01 | 在应用程序之间建立通信协议的方法和系统 |
Country Status (13)
Country | Link |
---|---|
US (1) | US5546584A (zh) |
EP (1) | EP0648354B1 (zh) |
KR (1) | KR100328516B1 (zh) |
CN (1) | CN1050916C (zh) |
AU (1) | AU686105B2 (zh) |
BR (1) | BR9306654A (zh) |
DE (1) | DE69329577T2 (zh) |
ES (1) | ES2154647T3 (zh) |
FI (1) | FI946194A0 (zh) |
GR (1) | GR3035130T3 (zh) |
MX (1) | MX9303456A (zh) |
NO (1) | NO311388B1 (zh) |
WO (1) | WO1994001820A1 (zh) |
Families Citing this family (120)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5329619A (en) * | 1992-10-30 | 1994-07-12 | Software Ag | Cooperative processing interface and communication broker for heterogeneous computing environments |
WO1994011810A1 (en) * | 1992-11-13 | 1994-05-26 | Microsoft Corporation | A method and system for marshalling interface pointers for remote procedure calls |
DE69534523D1 (de) * | 1994-08-19 | 2006-03-02 | Sony Corp | Cyberspace-System |
JP3632705B2 (ja) * | 1994-08-31 | 2005-03-23 | ソニー株式会社 | 対話型画像提供方法、サーバ装置、提供方法、ユーザ端末、受信方法、画像提供システム、および画像提供方法 |
WO1996010787A1 (en) * | 1994-10-04 | 1996-04-11 | Banctec, Inc. | An object-oriented computer environment and related method |
US6408333B1 (en) * | 1994-11-23 | 2002-06-18 | Horizon Technologies Inc. | System for portable establishing network server |
US5761425A (en) * | 1994-12-02 | 1998-06-02 | Compuserve Incorporated | System for facilitating data transfers between host computers and workstations by having a first, second and third computer programs communicate in a matching application-level protocol |
US5737543A (en) * | 1995-02-23 | 1998-04-07 | International Business Machines Corporation | High performance communications path |
EP0733971A3 (en) * | 1995-03-22 | 1999-07-07 | Sun Microsystems, Inc. | Method and apparatus for managing connections for communication among objects in a distributed object system |
US5740438A (en) * | 1995-03-31 | 1998-04-14 | International Business Machines Corporation | Methods and system for network communications of multiple partitions |
EP0735472A3 (en) * | 1995-03-31 | 2000-01-19 | Sun Microsystems, Inc. | Method and apparatus for conspiracy among objects |
US6249822B1 (en) | 1995-04-24 | 2001-06-19 | Microsoft Corporation | Remote procedure call method |
US5706434A (en) * | 1995-07-06 | 1998-01-06 | Electric Classifieds, Inc. | Integrated request-response system and method generating responses to request objects formatted according to various communication protocols |
US6020885A (en) * | 1995-07-11 | 2000-02-01 | Sony Corporation | Three-dimensional virtual reality space sharing method and system using local and global object identification codes |
CA2180891C (en) * | 1995-07-12 | 2010-01-12 | Junichi Rekimoto | Notification of updates in a three-dimensional virtual reality space sharing system |
CA2180899A1 (en) | 1995-07-12 | 1997-01-13 | Yasuaki Honda | Synchronous updating of sub objects in a three dimensional virtual reality space sharing system and method therefore |
US5655080A (en) * | 1995-08-14 | 1997-08-05 | International Business Machines Corporation | Distributed hash group-by cooperative processing |
US6009464A (en) * | 1995-09-20 | 1999-12-28 | Sun Microsystems, Inc. | Method and apparatus for enabling application programs to communicate with network clients and servers |
US5758186A (en) * | 1995-10-06 | 1998-05-26 | Sun Microsystems, Inc. | Method and apparatus for generically handling diverse protocol method calls in a client/server computer system |
US6516355B1 (en) * | 1995-11-08 | 2003-02-04 | Adc Newnet, Inc. | Methods and apparatus for controlling digital communications switching equipment |
US5790809A (en) * | 1995-11-17 | 1998-08-04 | Mci Corporation | Registry communications middleware |
US5966545A (en) * | 1996-01-25 | 1999-10-12 | Apple Computer, Inc. | System for interfacing network applications with different versions of a network protocol by providing base class at session level and invoking subclass from base class at session level |
US6167432A (en) * | 1996-02-29 | 2000-12-26 | Webex Communications, Inc., | Method for creating peer-to-peer connections over an interconnected network to facilitate conferencing among users |
US5953392A (en) | 1996-03-01 | 1999-09-14 | Netphonic Communications, Inc. | Method and apparatus for telephonically accessing and navigating the internet |
US5727145A (en) * | 1996-06-26 | 1998-03-10 | Sun Microsystems, Inc. | Mechanism for locating objects in a secure fashion |
US6038590A (en) | 1996-07-01 | 2000-03-14 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system |
US5999972A (en) | 1996-07-01 | 1999-12-07 | Sun Microsystems, Inc. | System, method and article of manufacture for a distributed computer system framework |
US5987245A (en) | 1996-07-01 | 1999-11-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture (#12) for a client-server state machine framework |
US6272555B1 (en) | 1996-07-01 | 2001-08-07 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system |
US6266709B1 (en) | 1996-07-01 | 2001-07-24 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server failure reporting process |
US6304893B1 (en) * | 1996-07-01 | 2001-10-16 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system |
US6424991B1 (en) | 1996-07-01 | 2002-07-23 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server communication framework |
US5848246A (en) | 1996-07-01 | 1998-12-08 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server session manager in an interprise computing framework system |
US6434598B1 (en) | 1996-07-01 | 2002-08-13 | Sun Microsystems, Inc. | Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system |
US5748897A (en) * | 1996-07-02 | 1998-05-05 | Sun Microsystems, Inc. | Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer |
US20040194101A1 (en) * | 1997-08-21 | 2004-09-30 | Glanzer David A. | Flexible function blocks |
US6424872B1 (en) | 1996-08-23 | 2002-07-23 | Fieldbus Foundation | Block oriented control system |
US7146230B2 (en) * | 1996-08-23 | 2006-12-05 | Fieldbus Foundation | Integrated fieldbus data server architecture |
US6710786B1 (en) | 1997-02-03 | 2004-03-23 | Oracle International Corporation | Method and apparatus for incorporating state information into a URL |
US6845505B1 (en) | 1997-02-03 | 2005-01-18 | Oracle International Corporation | Web request broker controlling multiple processes |
US6026404A (en) * | 1997-02-03 | 2000-02-15 | Oracle Corporation | Method and system for executing and operation in a distributed environment |
US6225995B1 (en) | 1997-10-31 | 2001-05-01 | Oracle Corporaton | Method and apparatus for incorporating state information into a URL |
US6247056B1 (en) | 1997-02-03 | 2001-06-12 | Oracle Corporation | Method and apparatus for handling client request with a distributed web application server |
US5966451A (en) * | 1997-02-20 | 1999-10-12 | Kabushiki Kaisha Toshiba | Distributed network computing system, and data exchange apparatus and method and storage medium used in this system |
US6263376B1 (en) | 1997-02-24 | 2001-07-17 | Novell, Inc. | Generic run-time binding interpreter |
US6064983A (en) * | 1997-03-21 | 2000-05-16 | Koehler Consulting, Inc. | System for performing tax computations |
US5941945A (en) * | 1997-06-18 | 1999-08-24 | International Business Machines Corporation | Interest-based collaborative framework |
US6378001B1 (en) | 1997-06-18 | 2002-04-23 | International Business Machines Corp. | Collaborative framework with shared objects |
US6192419B1 (en) * | 1997-06-18 | 2001-02-20 | International Business Machines Corporation | Collaborative framework for disparate application programs |
US6999824B2 (en) * | 1997-08-21 | 2006-02-14 | Fieldbus Foundation | System and method for implementing safety instrumented systems in a fieldbus architecture |
US6275870B1 (en) * | 1997-09-24 | 2001-08-14 | Sony Corporation | Network object request broker |
US6334114B1 (en) | 1997-10-31 | 2001-12-25 | Oracle Corporation | Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm |
US6446204B1 (en) * | 1997-10-31 | 2002-09-03 | Oracle Corporation | Method and apparatus for implementing an extensible authentication mechanism in a web application server |
US6574673B1 (en) * | 1997-10-31 | 2003-06-03 | Oracle Corporation | Data type mapping for external callouts |
US6185617B1 (en) * | 1997-11-26 | 2001-02-06 | International Business Machines Corporation | Construction and usage of a pre-warmed cache for client-server emulator |
CN1115824C (zh) * | 1998-05-07 | 2003-07-23 | 三星电子株式会社 | 网络中的装置对装置命令与控制的方法和系统 |
US6490623B1 (en) * | 1998-08-24 | 2002-12-03 | International Business Machines Corporation | System, method and computer readable code for encapsulating system, language and device independent communications socket functionality in a lightweight uniform communications object model |
US6163794A (en) * | 1998-10-23 | 2000-12-19 | General Magic | Network system extensible by users |
GB9828159D0 (en) * | 1998-12-19 | 1999-02-17 | Global Financial Networks Gfn | Protocol for computer software inter-application communication |
US6408272B1 (en) * | 1999-04-12 | 2002-06-18 | General Magic, Inc. | Distributed voice user interface |
US20050261907A1 (en) | 1999-04-12 | 2005-11-24 | Ben Franklin Patent Holding Llc | Voice integration platform |
US20050091057A1 (en) * | 1999-04-12 | 2005-04-28 | General Magic, Inc. | Voice application development methodology |
US6931440B1 (en) * | 1999-04-21 | 2005-08-16 | Emc Corporation | Method and apparatus for dynamically determining whether access to a resource connected to a computer has changed and determining how to access the resource with a new identifier |
US7107329B1 (en) * | 1999-05-21 | 2006-09-12 | Lucent Technologies Inc. | In networks of interconnected router nodes for routing data traffic, a method of and system for imperceptibly upgrading router node software and the like without traffic interruption |
US6370582B1 (en) * | 1999-05-28 | 2002-04-09 | Adc Technologies International Pte Ltd. | Method and system for providing cross-platform remote control, monitoring, and up-dating of a facility access controller |
US6366932B1 (en) * | 1999-06-24 | 2002-04-02 | International Business Machines Corporation | Apparatus and method for accessing an object oriented object using a smart passive reference |
US6772413B2 (en) | 1999-12-21 | 2004-08-03 | Datapower Technology, Inc. | Method and apparatus of data exchange using runtime code generator and translator |
DE10065286B4 (de) * | 1999-12-29 | 2004-12-09 | Holger Giese | Verfahren zum Entwurf und/oder zum Betrieb kombinierbarer Komponenten (TYCS) |
US7089242B1 (en) * | 2000-02-29 | 2006-08-08 | International Business Machines Corporation | Method, system, program, and data structure for controlling access to sensitive functions |
US6842892B1 (en) * | 2000-05-15 | 2005-01-11 | Sun Microsystems, Inc. | Automatic generation of an optimized API |
US20050240286A1 (en) * | 2000-06-21 | 2005-10-27 | Glanzer David A | Block-oriented control system on high speed ethernet |
US7100153B1 (en) * | 2000-07-06 | 2006-08-29 | Microsoft Corporation | Compiler generation of a late binding interface implementation |
US7150010B1 (en) | 2000-07-06 | 2006-12-12 | Microsoft Corporation | Unification of a programming language and a definition language |
GB0029622D0 (en) * | 2000-12-05 | 2001-01-17 | Nokia Networks Oy | Improved user interface |
GB0105583D0 (en) * | 2001-03-06 | 2001-04-25 | Sony Uk Ltd | Development apparatus and method of developing an interactive application |
US6928464B2 (en) * | 2001-04-30 | 2005-08-09 | Microsoft Corporation | Systems and methods for unified remote control access |
US20020198994A1 (en) * | 2001-05-15 | 2002-12-26 | Charles Patton | Method and system for enabling and controlling communication topology, access to resources, and document flow in a distributed networking environment |
US7290030B2 (en) * | 2001-07-13 | 2007-10-30 | Rockwell Automation Technologies, Inc. | Internet object based interface for industrial controller |
US7228537B2 (en) * | 2001-09-06 | 2007-06-05 | International Business Machines Corporation | System and method for configuring an application |
US7137104B2 (en) * | 2002-05-21 | 2006-11-14 | International Business Machines Corporation | Semantics-based composition of class hierarchies |
FI116166B (fi) * | 2002-06-20 | 2005-09-30 | Nokia Corp | Menetelmä ja järjestelmä sovellusistuntojen suorittamiseksi elektroniikkalaitteessa, ja elektroniikkalaite |
CA2393502A1 (en) * | 2002-07-15 | 2004-01-15 | Mark J. Frazer | System and method for reliable transport in a computer network |
AU2003268402A1 (en) * | 2002-09-10 | 2004-04-30 | Sigcom, Inc. | Software architecture system for a security management system |
US7857761B2 (en) * | 2003-04-16 | 2010-12-28 | Drexel University | Acoustic blood analyzer for assessing blood properties |
US7613767B2 (en) * | 2003-07-11 | 2009-11-03 | Microsoft Corporation | Resolving a distributed topology to stream data |
US7653911B2 (en) * | 2003-09-05 | 2010-01-26 | Alcatel-Lucent Usa Inc. | Implicit interprocess communications (IPC) versioning support |
US7733962B2 (en) * | 2003-12-08 | 2010-06-08 | Microsoft Corporation | Reconstructed frame caching |
US7712108B2 (en) * | 2003-12-08 | 2010-05-04 | Microsoft Corporation | Media processing methods, systems and application program interfaces |
US7900140B2 (en) * | 2003-12-08 | 2011-03-01 | Microsoft Corporation | Media processing methods, systems and application program interfaces |
US7735096B2 (en) * | 2003-12-11 | 2010-06-08 | Microsoft Corporation | Destination application program interfaces |
CN100377556C (zh) * | 2004-01-01 | 2008-03-26 | 浙江大学 | 通信协议的构件化实现方法 |
US7941739B1 (en) | 2004-02-19 | 2011-05-10 | Microsoft Corporation | Timeline source |
US7934159B1 (en) | 2004-02-19 | 2011-04-26 | Microsoft Corporation | Media timeline |
US7664882B2 (en) * | 2004-02-21 | 2010-02-16 | Microsoft Corporation | System and method for accessing multimedia content |
US7577940B2 (en) | 2004-03-08 | 2009-08-18 | Microsoft Corporation | Managing topology changes in media applications |
US7609653B2 (en) * | 2004-03-08 | 2009-10-27 | Microsoft Corporation | Resolving partial media topologies |
US7519719B2 (en) * | 2004-04-15 | 2009-04-14 | Agilent Technologies, Inc. | Automatic creation of protocol dependent control path for instrument application |
US7669206B2 (en) * | 2004-04-20 | 2010-02-23 | Microsoft Corporation | Dynamic redirection of streaming media between computing devices |
US7681184B1 (en) | 2004-05-24 | 2010-03-16 | Borland Software Corporation | System and methodology for cross language type system compatibility |
US7590750B2 (en) * | 2004-09-10 | 2009-09-15 | Microsoft Corporation | Systems and methods for multimedia remoting over terminal server connections |
US8166174B2 (en) * | 2005-10-27 | 2012-04-24 | Microsoft Corporation | Methods and systems for providing proprietary access to a server |
US7489977B2 (en) * | 2005-12-20 | 2009-02-10 | Fieldbus Foundation | System and method for implementing time synchronization monitoring and detection in a safety instrumented system |
US8676357B2 (en) * | 2005-12-20 | 2014-03-18 | Fieldbus Foundation | System and method for implementing an extended safety instrumented system |
US7945893B2 (en) * | 2006-10-10 | 2011-05-17 | Oracle International Corporation | Mapping web services description language documents to XQuery functions |
US8028274B2 (en) | 2007-06-27 | 2011-09-27 | Microsoft Corporation | Integrating loosely coupled tools using contracts and references |
US9092380B1 (en) * | 2007-10-11 | 2015-07-28 | Norberto Menendez | System and method of communications with supervised interaction |
US9009657B2 (en) * | 2008-04-20 | 2015-04-14 | Microsoft Technology Licensing, Llc | Component-oriented architecture for web mashups |
US20090302588A1 (en) * | 2008-06-05 | 2009-12-10 | Autoliv Asp, Inc. | Systems and methods for airbag tether release |
US8001174B2 (en) * | 2008-09-17 | 2011-08-16 | Calamp Corp. | Application process in communication system using central processor for forwarding request to destination processor based on connection status |
US8549093B2 (en) | 2008-09-23 | 2013-10-01 | Strategic Technology Partners, LLC | Updating a user session in a mach-derived system environment |
US8301687B2 (en) * | 2009-03-31 | 2012-10-30 | Software Ag | Systems and/or methods for standards-based messaging |
US8656392B2 (en) * | 2009-06-10 | 2014-02-18 | The Boeing Company | Consensus based distributed task execution |
CN102137123A (zh) * | 2010-01-25 | 2011-07-27 | 腾讯科技(北京)有限公司 | 实现移动终端上不同应用程序的进程之间通信的装置和方法 |
CN102014302B (zh) * | 2010-12-01 | 2012-10-03 | 福建新大陆通信科技股份有限公司 | 一种机顶盒高性能模块调度的方法 |
US8663018B2 (en) * | 2011-06-29 | 2014-03-04 | Amazon Technologies, Inc. | Data locker synchronization |
US9299049B2 (en) * | 2013-03-15 | 2016-03-29 | Sap Se | Contract-based process integration |
US9851952B2 (en) * | 2014-09-25 | 2017-12-26 | Oracle International Corporation | Seamless restful API generation and consumption through a single channel |
US10466993B2 (en) * | 2017-05-05 | 2019-11-05 | Micro Focus Llc | Application deployment on multiple platforms |
US10803087B2 (en) * | 2018-10-19 | 2020-10-13 | Oracle International Corporation | Language interoperable runtime adaptable data collections |
CN112067925B (zh) * | 2020-09-07 | 2023-05-26 | 淮阴工学院 | 一种针对升压变换器电路的实时加权故障检测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0272835A2 (en) * | 1986-12-22 | 1988-06-29 | AT&T Corp. | Virtual execution of programs on a multiprocessor system |
EP0387172A2 (en) * | 1989-03-06 | 1990-09-12 | International Business Machines Corporation | Procedure call interface |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4677546A (en) * | 1984-08-17 | 1987-06-30 | Signetics | Guarded regions for controlling memory access |
US4791550A (en) * | 1985-02-13 | 1988-12-13 | Rational | Higher order language-directed computer |
US4736321A (en) * | 1986-05-05 | 1988-04-05 | International Business Machines Corporation | Communication method between an interactive language processor workspace and external processes |
US5142622A (en) * | 1989-01-31 | 1992-08-25 | International Business Machines Corporation | System for interconnecting applications across different networks of data processing systems by mapping protocols across different network domains |
US5249293A (en) * | 1989-06-27 | 1993-09-28 | Digital Equipment Corporation | Computer network providing transparent operation on a compute server and associated method |
US5175817A (en) * | 1989-11-20 | 1992-12-29 | Digital Equipment Corporation | Data representation protocol for communications between different networks |
AU631749B2 (en) * | 1990-09-14 | 1992-12-03 | Digital Equipment Corporation | System and method for communication between windowing environments |
EP0501610B1 (en) * | 1991-02-25 | 1999-03-17 | Hewlett-Packard Company | Object oriented distributed computing system |
TW313282U (en) * | 1991-03-07 | 1997-08-11 | Digital Equipment Corp | Apparatus for automatically interfacing call conventions between two dissimilar program units |
JPH0778775B2 (ja) * | 1991-06-12 | 1995-08-23 | インターナショナル・ビジネス・マシーンズ・コーポレイション | アプリケーション・プログラム間における情報交換システム及び方法 |
US5301326A (en) * | 1991-09-24 | 1994-04-05 | Microsoft Corporation | Method and system for controlling the execution of an application program |
US5278834A (en) * | 1992-05-26 | 1994-01-11 | Alcatel Network Systems, Inc. | Method for implementing a data communication protocol stack |
-
1993
- 1993-05-25 AU AU45168/93A patent/AU686105B2/en not_active Expired
- 1993-05-25 KR KR1019940704630A patent/KR100328516B1/ko not_active IP Right Cessation
- 1993-05-25 BR BR9306654A patent/BR9306654A/pt not_active IP Right Cessation
- 1993-05-25 WO PCT/SE1993/000458 patent/WO1994001820A1/en active IP Right Grant
- 1993-05-25 EP EP93915040A patent/EP0648354B1/en not_active Expired - Lifetime
- 1993-05-25 DE DE69329577T patent/DE69329577T2/de not_active Expired - Lifetime
- 1993-05-25 ES ES93915040T patent/ES2154647T3/es not_active Expired - Lifetime
- 1993-06-09 MX MX9303456A patent/MX9303456A/es unknown
- 1993-07-01 CN CN93107918A patent/CN1050916C/zh not_active Expired - Lifetime
-
1994
- 1994-12-27 NO NO19945054A patent/NO311388B1/no not_active IP Right Cessation
- 1994-12-30 FI FI946194A patent/FI946194A0/fi unknown
-
1995
- 1995-04-13 US US08/422,625 patent/US5546584A/en not_active Expired - Lifetime
-
2000
- 2000-12-20 GR GR20000402812T patent/GR3035130T3/el unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0272835A2 (en) * | 1986-12-22 | 1988-06-29 | AT&T Corp. | Virtual execution of programs on a multiprocessor system |
EP0387172A2 (en) * | 1989-03-06 | 1990-09-12 | International Business Machines Corporation | Procedure call interface |
Also Published As
Publication number | Publication date |
---|---|
NO311388B1 (no) | 2001-11-19 |
EP0648354B1 (en) | 2000-10-18 |
AU686105B2 (en) | 1998-02-05 |
DE69329577D1 (de) | 2000-11-23 |
NO945054L (no) | 1995-02-06 |
AU4516893A (en) | 1994-01-31 |
KR950702314A (ko) | 1995-06-19 |
BR9306654A (pt) | 1998-12-08 |
US5546584A (en) | 1996-08-13 |
FI946194A (fi) | 1994-12-30 |
CN1080751A (zh) | 1994-01-12 |
ES2154647T3 (es) | 2001-04-16 |
WO1994001820A1 (en) | 1994-01-20 |
KR100328516B1 (ko) | 2002-11-27 |
GR3035130T3 (en) | 2001-04-30 |
FI946194A0 (fi) | 1994-12-30 |
EP0648354A1 (en) | 1995-04-19 |
MX9303456A (es) | 1994-02-28 |
NO945054D0 (no) | 1994-12-27 |
DE69329577T2 (de) | 2001-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1050916C (zh) | 在应用程序之间建立通信协议的方法和系统 | |
Schmidt et al. | C++ Network Programming, Volume I: Mastering Complexity with ACE and Patterns | |
Schmidt et al. | C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks | |
AU648113B2 (en) | Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes | |
CN102033848A (zh) | 基于soa的三维设计系统集成方法及系统 | |
KR101027259B1 (ko) | 웹 서비스의 메시지 지향 구축 | |
Medvidovic et al. | A family of software architecture implementation frameworks | |
Cabri et al. | Implementing role-based interactions for internet agents | |
GB2304430A (en) | Managing exceptions | |
Doscher et al. | SEMATECH's experiences with the CIM framework | |
Waddington et al. | A distributed multimedia component architecture | |
JP5081888B2 (ja) | ロボットソフトウェアコンポーネントのためのメソッドポート装置及び構成方法 | |
CN101521592B (zh) | 一种建立打印机snmp代理的方法及装置 | |
Liao et al. | OMEI: an open mathematical engine interface | |
CN100464303C (zh) | 构件化软件系统中实现分布式业务逻辑计算的方法 | |
Liu | A distributed data flow model for composing software services | |
Serain | Client/server: Why? What? How? | |
Svarstad et al. | A higher level system communication model for object-oriented specification and design of embedded systems | |
Hugues et al. | A case study of middleware to middleware: Mom and orb interoperability | |
Huang et al. | URPC: A toolkit for prototyping remote procedure calls | |
Parlavantzas et al. | An approach to building reflective component-based middleware platforms | |
Arsenis et al. | DDTK Project: Analysis, Design and Implementation of an ODP Application | |
CN115357240A (zh) | 微服务模型构建方法、装置、计算机设备和存储介质 | |
Segal | dynamic program updating in a distributed computer system | |
Santos et al. | Distributed Platforms for Shop Floor Communications: A Comparative Analysis |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CX01 | Expiry of patent term |
Expiration termination date: 20130701 Granted publication date: 20000329 |