CN1798148A - 总线抽象 - Google Patents

总线抽象 Download PDF

Info

Publication number
CN1798148A
CN1798148A CNA2005100035092A CN200510003509A CN1798148A CN 1798148 A CN1798148 A CN 1798148A CN A2005100035092 A CNA2005100035092 A CN A2005100035092A CN 200510003509 A CN200510003509 A CN 200510003509A CN 1798148 A CN1798148 A CN 1798148A
Authority
CN
China
Prior art keywords
bus
computer
equipment
abstract
assembly
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.)
Pending
Application number
CNA2005100035092A
Other languages
English (en)
Inventor
D·A·沙瑟
T·K·贝克曼
T·W·库内尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN1798148A publication Critical patent/CN1798148A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2803Home automation networks
    • H04L12/2807Exchanging configuration information on appliance services in a home automation network
    • H04L12/2809Exchanging configuration information on appliance services in a home automation network indicating that an appliance service is present in a home automation network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

通过抽象系统促进总线协议和网络统一的系统和方法,该抽象系统能把设备模型和较高级协议与多个总线实现绑定。这样的抽象系统提供总线中的公共语言用于根据优先级的消息传送-例如,被提供用于控制消息的消息传送组件、用于高优先级的流组件、以及用于低优先级的批量传送组件的语义。此外,发现组件能结合关联组件在总线或网络上识别设备,该关联组件用于确定设备之间建立的信任和验证设备或服务。

Description

总线抽象
                             技术领域
本发明一般涉及网络和总线系统,尤其涉及在协议总线和/或网络中用于其统一的总线抽象的编程模型。
                             发明背景
计算机技术的日益发展(例如,微处理器速度、存储器容量、数据传送带宽、软件功能等)已经对在各种产业中增加的计算机应用做出了贡献。即使更强大的通常被配置成服务器阵列的服务器系统也一般被提供用以服务由诸如例如万维网的外部源发起的请求。在这样的网络环境中,多个总线标准可被使用以连接外围设备以及设备到计算机。例如,具有自己的协议并支持1.5、12、以及480mbps传送速度的通用串行总线(USB)能被用于具有不同数据速度要求的USB设备。并且,在主计算机内的通信软件和硬件能作为通信网络和通用串行总线之间连接的中介。像许多传统的协议那样,USB协议是包括多个层的分层协议。一种这样的层是定义通用串行总线的电气规格的物理层。另一种层是定义在通用串行总线上许可的事务类型的数据链路层(也就是说,USB事务的格式)。
另一总线协议,IEEE 1394与USB标准类似,并可用在当今的个人计算机中,通过IEEE 1394,当今多种通过USB连接的设备也可通过IEEE 1394连接(只要该设备支持IEEE 1394)。此外,IEEE 1394对于同步事务的支持对于在每个在其中事务被等同地分开的事务中发送固定数据量的设备的连接而言是理想的。在IEEE 1394协议模型中有多个层,诸如与链路层频繁交互的物理层,该链路层负责把软件驱动请求设置到要通过电线被发送的有效的IEEE 1394包中。此外,总线管理层主要依赖于物理层进行纠正操作,该层负责:装配总线仲裁包以检测和防止多个用户在总线上,用于调节总线速度和用于控制同步发送时间。
此外,新兴的网络技术诸如:外围部件接口(PCI)Express和超宽频带(UWB)被越来越多地用以连接计算机底板内部和外部的外围设备。相应地,由于新连接技术的不断提高的数据速率,内部总线和外部总线之间清楚的区别在减小。诸如容量聚合和保留协议以及在无线环境内间歇性地连接和更改拓扑结构等属性对于如传统地以较慢速度发展的和依赖现有PAI的应用的中间设备层承担着新的挑战。
此外,诸如蓝牙或UWB的无线网络技术一般被用以连接移动的由电池供电的设备。由此这样的电源管理是以前没有被总线管理层支持的重要的特性。类似地,数据必须被缓冲直到远程设备苏醒。
与此同时,在传统的总线协议和网际协议(IP)之间存在不一致。例如,一般地这样的总线协议和它们相关的编程模型通常是特定于总线的且不提供诸如访问因特网的服务。此外,IP通常不能充分利用总线的发信号能力,诸如同步传送、时钟同步、发现等。
因此,存在克服以上提到的与现有系统和设备关联的典型缺陷的需要。
                            发明内容
以下呈现了本发明简化的概要以提供对本发明一个或多个方面的基本理解。该概要不是本发明的全面综述。它不是要标识本发明的重要或关键元素,也不是限定本发明的范围。而是,该概要的唯一目的是以简化的形式呈现本发明的某些概念作为以下呈现的更为详细的描述的序幕。
本发明提供通过能绑定设备模型(例如,与设备通信的设备特定应用)和/或服务以及更高等级协议的抽象系统促进多个总线实现的总线协议和网络统一的系统和方法。本发明的抽象能表达现有总线协议的语义。作为这样的抽象的一部分,能被实现的编程模型包括用于发现组件、消息传送组件、以及关联组件的语义。
发现组件能允许附加到总线和/或网络的设备提供用于这样的设备的发现的发信号机制。消息传送组件能提供传送消息的能力,这样的消息诸如快速传送以实质地维护各种设备良好的控制通常所需的具有中等优先级的控制消息。类似地,关联组件能确定在各种总线的设备中建立的信任和关系。关联组件能进一步通过使用先前建立的证书验证设备和/或服务,诸如质询响应协议方式或公钥基础结构。此外,消息传送组件能执行加密以确保通信的私密性,并能在操作上连接到关联组件。
在本发明相关的方面中,寻址方案也被用于指定应用程序接口(API)、以及希望与其通信的设备,其中总线抽象系统能作为接口。相应地,这样的寻址组件能提供用于各种应用的标准方式以引用在总线或网络上的设备。此外,语义能被提供于:流组件、批量传送组件和时钟同步组件。流组件一般满足延时要求和以可靠方式进行的时间敏感信息的发送。类似地,批量传送组件能促进低优先级项和消息的传送而不影响消息传送组件和流组件的操作。时钟同步组件能促进高精确时钟在总线上的分布,例如通过使用每个总线自然实现的各自的时钟同步,以使设备能同步或它们具有某些能被关于该总线共享的时基。
本发明能促进不熟悉总线技术的应用与该总线之间的交互。如此,应用能使用总线并与其交互,而不需要一般地知道总线技术的规格。在相关的方面,这样的抽象能被通过网络定位以把网络当做总线,以使与在网络上交互的应用能使用相同的抽象用于通信。例如,该抽象系统能作为在通过各种网络通信的设备之间、应用和总线之间、在计算机上的进程之间等的公共语言。
在本发明的另一方面,通过诸如USB、IEEE 1394等的基于协议的总线技术,抽象系统能通过与每个总线技术关联的适配组件而被实现。这样的适配组件能使总线或网络能实现本发明的抽象系统,其中从应用方而言总线抽象能表现统一,即使适配组件能用于具体的总线技术而不同地操作。这样的安排能鼓励通过多种总线技术的设备特定应用和设备驱动的重用,这能允许跨多个这样的总线技术充分利用在单设备模型中的智力投资。
在本发明的另一方面中,一般不需要对于现有总线的有线协议的更改,如所指的当前与它们各自的总线绑定的设备,例如,本发明作为用于现有设备模型的实现的编程模型。相应地,单个应用程序接口(API)能被提供以通过多个不同的总线发送消息,并支持设备类,而不管总线类型或协议。
此外,总线驱动能根据本发明的另一方面公开抽象。就分层而言,这样的驱动能被定位在理解被涉及用于具体机器的总线硬件的驱动的下面。这样的模型能提供使用网络抽象的便捷以及在网络协议下的稳定的编程模型能开发而不需要应用程序被修改。此外,在进程间通信中的上下文内,本发明允许客户机和服务能容易地利用大量的传送性能而不管位置。可以理解的是无线介质的其他特性能通过在各种连接中平衡资源而被补偿,其他特性诸如能导致更改数据速率或甚至更改拓扑结构的变化信道特性。
在本发明的又一方面中,当总线抽象被应用到驱动模型时允许协议总线和装载/存储总线(例如,CPI)的统一。相应地,设备类支持能在装载/存储总线、协议总线和网际协议(IP)连接的设备中被共享。
为了前述的和相关方面的实现,那么本发明包括以下充分描述的特性。以下的描述和附加的附图详细描述了本发明的某些说明的方面。然而,这些方面是仅指示能被本发明的原理所使用的各种方式中的一些方式。当结合附图时,本发明的其他方面、优点和新的特性将从以下本发明的详细的描述中变得明显。
                          附图描述
图1示出了根据本发明一个方面的抽象系统的示意性框图,该抽象系统把应用与多个总线实现和网络技术绑定。
图2示出了根据本发明一个方面通过适配组件与抽象系统交互的多个总线。
图3示出了各种与抽象系统关联的子组件,该抽象系统能包括用于发现组件、消息传送组件、和关联组件的语义。
图4示出了根据本发明相关的方面的与抽象系统关联的其他子组件。
图5示出了根据本发明一个方面的具体分层安排。
图6示出了根据本发明一个方面的总线抽象的方法。
图7示出了合适的计算环境的简明、一般的描述,在该环境中能实现本发明的多个方面。
                        发明详细描述
现在参考附图描述本发明,其中相似的编号被用以表示相似的元素。在以下描述中,为了解释的目的,描述了大量特定细节以提供对本发明的全面理解。然而,显然本发明可以在没有这些具体细节的情况下被实现。在其他实例中,以框图的形式显示了已知的结构和设备以促进描述本发明。
如在本申请中所使用的,术语“组件”、“处理器”、“模型”、“系统”等是旨在引用计算机相关实体、或硬件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是,但不局限于,在处理器上运行的进程、处理器、对象、可执行的程序、执行的线程、程序、和/或计算机。作为说明,运行在服务器上的应用程序和服务器都可以是组件。一个或多个组件可驻留在执行的进程和/或线程内并且组件能被定位在一台计算机上和/或被分布在两台或更多计算机之间。并且,这些组件能从各种具有存储在其上的数据结构的计算机可读介质中执行。组件可通过本地和/或远程进程通信,诸如:根据具有一个或多个数据包的信号(例如,来自通过信号与在本地系统、分布系统、和/或在例如具有其他系统的因特网的网络中的另一组件交互的组件的数据)。
本发明提供通过绑定设备特定应用和较高等级的协议到多个总线实现的抽象系统促进总线协议和网络统一的系统和方法。首先参考图1,示出了抽象系统110,该抽象系统可作为单个应用程序接口(API)以通过多个不同的总线115、117、119(1到n,n是整数)、或网络120、122、124(1到N,N是整数)发送消息,并支持设备类,而不管总线类型或协议。例如,这样的抽象系统110能指定不熟悉总线技术115-119的应用126、128、130(1到m,m是整数)能使用总线和/或网络并与之交互,而不需要一般地知道总线或网络技术的细节的方式。
如示出的,总线115-119能基于诸如通用串行总线(USB)、IEEE 1394等总线技术使用协议,例如,总线系统115可以是USB总线。一般地,这样的USB115可以是外部总线架构,例如把外部外围设备与主计算机(未示)连接。USB总线115能作为支持主机系统和能支持USB的外围设备之间的串行数据传送的能通信的外围设备协议。此外,USB系统可以由主机方和设备方所组成。两方通过物理总线连接,该物理总线是USB电缆的一部分。一般地,这样的主机的基本责任是提供用于数据传送的控制接口,而设备方能向用户提供各种功能。主机方本身可由USB适配器或USB主机控制器硬件层与较高级系统软件层所组成。主机控制器能,例如,负责传送主机和USB设备之间的数据流。当例如配置被做出时,主机控制器能基于由主机软件提供的参数提供服务。
例如,USB的系统软件能由两层所组成。顶层可由USB设备驱动所组成。这样的驱动能建立到它们所控制的设备的连接,并使用USB系统软件功能配置和与设备通信。类似地,底层可由执行各种任务的USB系统软件所组成,这样的任务诸如管理在USB设备驱动和主计算机之间的通信、在适当的时候装载和卸载设备驱动、转换在数据与USB的协议帧和包格式之间进行转换。
类似地,图1中示出的网络120-124可以是系统区域网络或其他类型的网络,以及能包括多个主机(未示),可以是个人计算机、服务器或其他类型的计算机。这样的主机一般能运行或执行一个或多个应用级(或用户级)的程序以及发起I/O请求(例如,I/O读或写)。此外,网络能进一步包括一个或多个输入/输出单元(I/O单元),其中这样的I/O单元能包括一个或多个与之连接的控制器,并且I/O中的每个可以是多个类型的I/O设备中的任何一个,诸如存储设备(例如,硬盘驱动、磁带驱动)或其他I/O设备。主机和I/O单元以及它们附加的I/O控制器和设备能被组织到诸如群集的组中,每个群集包括一个或多个主机并一般包括一个或多个I/O单元(每个I/O单元包括一个或多个I/O控制器)。主机和I/O单元能通过路由器、交换机以及通信链路(诸如电线、连接器、电缆等)的集合互连,该集合连接一个或多个群集的节点组(例如,连接主机组和I/O单元)。如此,抽象系统110能作为通过多个网络通信的设备之间、应用和总线之间、在计算机上的进程之间等的公共语言。
图2示出了多个总线1到n(n是整数),根据本发明的一个方面,该总线通过适配组件210、212、214与抽象系统220交互。可以理解的是即使本发明主要在总线操作的上下文中被描述,本发明的抽象系统能通过网络被定位以把网络作为总线以使在网络上的设备能使用相同的抽象系统220用于通信。
这样的适配组件210-214能使多个总线实现本发明的抽象系统220,其中来自应用方的抽象系统220能表现出统一,即使适配组件210-214能对具体的总线技术不同地操作。这样的安排能鼓励跨多种总线技术的设备驱动的重用,这能允许跨多个诸如消息总线、USB或IEEE 1394总线的总线技术充分利用在单设备模型中的智力投资。
消息总线230、240、250中的每个总线能擅长于在应用之间传送消息。例如,消息总线中的每个总线能包括一组协议后的消息方案、一组公共命令消息以及用于发送总线消息到接收方的共享基础结构。这样的协议后的方案能通过抽象系统220被抽象以提供在通过各种应用和总线通信的设备之间、在计算机的进程之间等的公共语言。通常,通过使用本发明的抽象系统,发送消息的应用不再需要熟悉被用以发送消息到具体设备的总线技术。而是,应用仅仅通过由抽象系统220提供的格式发送消息到所需的消息总线,且消息总线通过共享的基础结构或网络传送消息到所有其他正在监听总线消息的应用。
一般地,在消息总线环境中,发送消息的应用没有到所有必须接收消息的应用的单独连接。类似地,接收消息的应用从消息总线取得消息。在这样的环境中,内部优化、路由、缓冲和底层传送机制能影响消息如何发送到接收应用。其他逻辑能被合并作为参与应用的一部分。例如,发送应用能把序号插入到传出的消息,并且接收器能使用那些编号以重新排列传入的消息。通常,通过总线发送消息的应用应该准备消息,以使消息符合总线期望的消息类型。
同样地,接收消息的应用必须能理解消息类型。本发明的抽象系统220提供单个应用程序接口(API)以通过多种不同的总线发送消息、并支持设备类,而不管总线类型或协议。这表示编程模型,由此抽象系统220能从应用方角度表现统一,并且协议能在不需要应用被修改的情况下开发。
此外,总线230、240、250中的任何一个可以是IEEE 1394驱动总线,该总线是允许设备活动时的设备添加和/或移除的高性能串行总线。这样的总线支持异步和同步数据传送。例如,对于传统的存储器映射的装载和存储应用,异步传送可能是适当的,其中这样的传送能提供保证的发送和可靠性。
此外,同步数据传送能以预定的速率提供通常保证的数据传送。这对于多媒体应用而言是重要的,在此时间关键数据的不间断传送以及即时发送可以减少代高开销缓冲的需要。此外,IEEE 1394总线能包括三个协议层,包括物理层、链路层以及事务层。物理层能连接到IEEE 1394连接器并提供设备之间电气和机械地连接。类似地,链路层能提供用于异步和同步包发送的数据包发送服务。
也是用于IEEE 1394总线,事务层能支持异步协议写、读以及锁定命令,其中写命令发送来自发起者的数据至接收方,读命令把数据返回给发起者而锁定命令通过在发送方和包括通过接收方的处理的接收方之间产生数据的往返行程来组合读和写命令的功能。根据本发明,一般不需要对于现有总线的有线协议的更改,如所指的当前与它们各自的总线绑定的设备,例如,本发明作为用于现有设备模型的实现的编程模型。相应地,总线抽象系统220能作为单个应用程序接口以通过多个不同的总线230、240、250发送消息,并支持设备类,而不管总线类型或协议。
可以理解的是虽然本发明已经主要结合USB和IEEE 1394总线描述,其他基于总线技术的协议,诸如:外围组件接口(PCI)Express、超宽频带、蓝牙等能与本发明结合。简要地,PCI Express是定义用于多种计算和通信平台的高性能、通用I/O互连。PCI Express架构包括三个分离的逻辑层:事务层、数据链路层以及物理层。PCI Express使用包在组件之间发送信息。包在事务层和数据链路层中被形成以将来自发送组件的信息传送到接收组件。对于存储器事务(例如,读和/或写),包括请求者ID(例如,源标识符)、事务类型(例如,存储器读或存储器写)以及存储器地址的包被形成。请求者ID(例如,源标识符)标识是存储器事务的源的设备。包还包括其他字段,对它们的讨论为了简要而被省略。类似地,一般地,蓝牙是被用以描述在设备之间用于提供设备之间无线连接的短范围(例如,大约10米)跳频无线链路的术语。蓝牙能使用高斯频移键控以调制数据到大约2.4GHz频率并能点对点或点对多点通信。然后,本发明能促进不熟悉这样的总线技术的应用与总线之间的交互,并且应用能使用总线并与之交互,而不需要一般地了解总线技术规格。
图3示出了多个与能包括用于发现组件、消息传送组件、以及关联组件的语义的抽象系统关联的子组件。发现组件310能允许附加到总线和/或网络350上的设备提供用于设备的发信号机制以相互发现。例如,在分布式系统中,对于应用360而言通常发现协议中参与者的身份是必要的;例如,新的客户机需要确定一组服务于主体的服务器;新的服务器需要确定是否有客户机具有未决的请求;复制服务器需要确定是否有客户机具有未决的请求等。换句话说,发现组件320能标识在总线和/或网络350中的参与者。例如,需要确定能服务主体的服务器组;或新的服务器可被需要以确定是否有客户机具有未决的请求。如此,发现协议能以“谁在那里”的形式存在并且其他参与者发布“我是”,以及其他参与者描述它们的状态。
类似地,消息传送组件330能提供传送消息的能力,例如,控制消息的传送。这样的控制消息能以一般需要被即时发送的具有中等优先级的消息的形式存在以准确地控制设备。
此外,如图3所示的,关联组件340能确定在各种总线和/或网络350的设备之间的信任和/或关系建立。在网络上,当非常需要安全要求并且物理总线本身不是充分地安全时,可通过关联组件340在设备之间建立双向信任。例如,对于打印机设备,用户需要确保打印作业显示在哪里以及对于打印机的未被授权的访问被拒绝。这样信任的建立能通过关联组件340来提供。对于某些总线,如USB,当各种设备之间的物理连接或链路证明要求的关联时,对于这样关联组件的要求可被减轻。例如,打印机被物理地连接到计算机的事实是确认的声明,该声明是该打印机和计算机之间在USB环境内需要关联。尽管如此,这样不是在无线和IP网络环境内的情况。关联组件能进一步通过使用先前建立的证书验证设备和/或服务,诸如质询响应协议方法或公钥基础结构。此外,消息传送组件能执行加密以确保通信的私密性,并能在操作上连接到关联组件。
现在参考图4,示出了多个其他与抽象系统关联的子组件。尤其,本发明能提供用于:流组件410、批量传送组件420和时钟同步430的语义。流组件410一般满足延时要求和以可靠方式的时间敏感信息的发送。一般地,同步传送能被用于是时间关键和错误容忍的流数据或在需要恒定数据传送率的实时应用中被使用,诸如执行实时对话的因特网电话应用。
此外,同步数据一般需要保证的带宽量和保证的最大传送时间。例如,通过能通过总线传送音频和视频的IEEE 1394总线,要求的带宽能被用于这样的传送而保留以使总线不参与其他传送操作,并且数据能被无损的传送。一般地,对于同步传送,及时的数据发送比准确的或完整的数据传送更为重要。
类似地,批量传送组件420能促进低优先级项和消息的传送而不影响消息传送组件和流组件的操作。一般地,批量传送被用于具有大量数据的设备以发送或接收,并需要保证的发送,但不具有任何特别的带宽或延时要求,诸如打印机和扫描仪。即使是非常慢或大量延迟的传送一般对于这些类型的设备而言也是可接受的,只要数据最终被完全地发送。
并且,时钟同步组件430能例如通过使用每个总线自然实现的各自的时钟同步来促进高准确时钟在总线上的分布,以使设备能同步化或它们具有可关于该总线被共享的时基。通常,各种总线以不同的方式应用总线同步并基于正在被传送的消息的类型,可存在非常高质量的在设备和计算机之间高度同步的时钟。例如,如果存在快速交替访问总线,并且这以固定的时间间隔完成,那么这样的时间间隔能被用于时钟同步。本发明能充分利用现有的同步能力,例如IEEE 1394总线的高时钟同步能力。
图5示出了根据本发明的方面的具体分层安排。如所示的,硬件层510能形成具有位于其上的总线驱动层520的分层安排的基础。总线驱动520可特定于某总线类型,并且可被定位在总线抽象层530下。应用层540能被定位在总线抽象层530上。如此,当本发明的总线抽象被应用到驱动模型上时,能允许协议总线和装载/存储总线(例如,CPI)之间的统一。相应地,设备类支持能在装载/存储总线、协议总线以及网际协议(IP)中被共享。如此,单个应用程序接口(API)能被提供以通过多个不同的总线发送消息,并支持设备类,而不管总线类型或协议。
图6示出了根据本发明的方面的总线抽象的方法600。方法开始于610,其中总线抽象通过应用公开发现要与之通信的设备的能力。例如,字符串能被用为对设备寻址的一部分或多部分。接下来在620,能做出关于命令组的关键性的确定(例如,应用能显式请求批量传送、流等),该命令需要与设备或设备的部分通信。在630,诸如消息传送或流或批量传送的适当的消息传送组件,如在先前详细描述的,能被选择以传送消息到设备或设备的部分。接着,基于这样的选择并且在640,选择的总线的时钟同步特性能被用于适当的消息对于所需的地址的发送所影响。这样的安排能鼓励跨多种总线技术的设备模型的重用,后者依次能允许跨多种总线技术充分利用单设备模型内的智力投资。如此,从应用方角度,总线抽象能表现统一,而不管总线技术或网络。
尽管在此显示和描述的典型方法作为各种事件和/或动作的表现的一系列框,本发明不被这些框的次序所限制。例如,根据本发明,某些动作或事件能以不同的次序发生和/或与其他动作或事件同时发生,而不管在此说明的次序。此外,不是所有示出的框、事件或动作被需要以实现本发明的方法。此外,可以理解的是根据本发明的典型方法和其他方法能结合在此示出和描述的方法以及与其他没有被示出和描述的系统和装置实现。
现在参考图7,示出了合适的计算环境的简要的、一般的描述,其中可实现本发明的各个方面。尽管本发明已经在运行在计算机和/或多个计算机上的计算机程序的一般计算机可执行指令的上下文中被描述,本领域的技术人员可以意识的是本发明也能结合其他程序模块实现。一般地,程序模块包括执行具体任务和/或实现具体抽象数据类型的例行程序、程序、组件、数据结构等。此外,本领域的技术人员可以理解的是这些创新的方法能结合其他计算机系统配置实现,该计算机系统配置包括单处理器或多处理器计算机系统、小型计算机、大型计算机、以及个人计算机、手持计算设备、基于微处理器或可编程消费者电子设备等。如先前解释的,本发明示出的方法也能在分布式的计算环境中被实现,在此任务由通过通信网络链接的远程处理设备所执行。然而,本发明的某些(如果不是所有)方面能在单机中实现。在分布式的计算环境中,程序模块能被定位于本地或远程存储器存储设备。典型环境包括计算机720,该计算机720包括处理单元721、系统存储器722、以及把包括系统存储器的各种系统组件耦合到处理单元721的系统总线723。处理单元721可以是多种市场上提供的处理器中的任何一个。双微处理器以及其他多处理器架构也能被用作处理单元721。
系统总线可以是多种类型的总线结构中的任何一种,包括USB、IEEE 1394、外围设备总线、以及使用多种市场上提供的总线架构中的任何一种的本地总线。系统存储器包括只读存储器(ROM)724和随机存取存储器(RAM)725。包括诸如在启动期间帮助在计算机720的元素之间传送信息的基本程序的基本输入/输出系统(BIOS)被存储在ROM 724中。
计算机720还包括硬盘驱动727、,例如从可移动磁盘729中读或写入可移动磁盘729中的磁盘驱动728、以及例如用于从CD-ROM盘731中读或写入CD-ROM盘731或从其他光介质中读或写入其他光介质的光盘驱动730。硬盘驱动727、磁盘驱动728、以及光盘驱动730分别通过硬盘驱动接口732、磁盘驱动接口733、以及光盘驱动接口734被连接到系统总线723。驱动和它们关联的计算机可读介质为计算机720提供数据、数据结构、计算机可执行指令等的非易失性存储。虽然以上计算机可读介质的描述涉及硬盘、可移动磁盘以及CD,本领域的技术人员可以理解的是其他类型的可由计算机读的介质也能在典型操作环境中被使用,诸如磁带、闪存卡、数字视频卡、贝努里盒等,并且任何这样的介质可包括用于执行本发明方法的计算机可执行指令。
多个程序模块能被存储在驱动和RAM 725中,包括操作系统735、一个或多个应用程序736、其他程序模块737、以及程序数据738。在示出的计算机内的操作系统735实质上可以是任何市场上提供的操作系统。用户能通过键盘740和诸如鼠标742的定位设备向计算机720中输入命令和信息。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常由串行端口接口746连接到处理单元721,上述串行端口接口746和系统总线相耦合,但是上述和其它输入设备也可以由其它接口和总线结构连接到处理单元,诸如,并行端口、游戏端口或通用串行总线(USB)。监视器747或其它类型显示设备也可以通过诸如视频适配器748的接口连接到系统总线723。除了监视器,计算机一般包括其他外围输出设备(未示),诸如扬声器和打印机。
计算机720可以在网络化的环境中运行,该环境使用逻辑连接连接到一个或多个诸如远程计算机747的远程计算机。远程计算机749可以是工作站、服务器计算机、路由器、对等设备或其它普通网络节点,通常包括以上描述的和计算机720相关的多个或全部组件,尽管在图7中只示出了存储器储存装置750。在图7中描绘的逻辑连接包括局域网(LAN)751和广域网(WAN)752。这样的网络环境在办公室、企业范围的计算机网络、内联网和因特网中是普遍的。
当在LAN网络环境中使用时,计算机720通过网络接口或适配器753连接到本地网络751。当在WAN网络环境中使用时,计算机720通常包括调制解调器754和/或连接到LAN上的通信服务器,和/或具有通过诸如因特网的WAN 752建立通信的其他装置。调制解调器754可以是内置的或外置的,可以通过串行端口接口746连接到系统总线723。在一网络化的环境中,所描述的和计算机720相关的程序模块或其中的一部分可以存储在远程存储器储存设备内。可以理解的是所示的网络连接是示例性的,也可以使用在计算机间建立通信链路的其他装置。
根据计算机编程领域的技术人员的实践,本发明已经参考由诸如计算机720的计算机执行的操作的动作和符号表示,除非被另外描绘。这样的动作和操作有时称为是计算机可执行的。可以理解的是动作和符号表示的操作包括通过表示数据位的电信号的处理单元721的处理,这导致电信号表示的结果转换或减少,以及在存储系统(包括系统存储器722、硬盘驱动727、软盘728、以及CD-ROM 731)内的存储器位置上的数据位的维护,从而重新配置或更改计算机系统的操作以及信号的其他处理。在其中这样的数据位被维护的存储器位置是具有具体响应于数据位的电、磁、或光特性的物理位置。
虽然本发明已经结合某些示出的方面被显示和描述,可以理解的是在本领域的技术人员阅读和理解本说明和附加的附图后,等同的替换和修改会发生。具体关于由以上描述(配置、设备、电路、系统等)的组件执行的各种功能,用以描述这样的组件的术语(包括对于“装置”的参考)是要对应任何执行描述的组件的特定的功能的组件(例如,功能性的等同),除非被另外描述,即使不是结构地等同于执行在此示出的本发明的典型方面中执行功能的公开的结构。在这方面,也应认为本发明包括系统和计算机可读介质,该计算机可读介质具有用于执行本发明的各种方法的动作和/或事件的计算机可执行指令。此外,对术语“包括”、“具有”以及它们的变化在详细的描述或权利要求书中的使用范围,这些术语以类似于术语“包括”的方式是包含性的。

Claims (20)

1.一种促进总线协议或网络统一的系统,包括:
抽象系统,所述抽象系统把设备模型和较高级协议绑定到多个总线实现或网络,所述抽象系统包括:
发现组件,所述发现组件提供用于设备相互发现的信号机制;以及
消息传送组件,所述消息传送组件传送用于控制设备的控制消息。
2.根据权利要求1所述的系统,其特征在于,所述抽象系统进一步包括关联组件,至少用于促进在设备中建立的信任的确定以及通过使用先前建立的证书验证设备或服务中的一个。
3.根据权利要求1所述的系统,其特征在于,所述抽象系统进一步包括流组件,所述流组件促进在设备中的时间敏感信息的发送。
4.根据权利要求1所述的系统,其特征在于,所述抽象系统进一步包括批量传送组件,所述批量传送组件促进低优先级项的发送。
5.根据权利要求1所述的系统,其特征在于,所述抽象系统使不熟悉总线的应用能使用所述总线。
6.根据权利要求1所述的系统,其特征在于,所述总线抽象系统在多个不同的总线上提供单个应用程序接口。
7.根据权利要求1所述的系统,其特征在于,所述总线抽象系统促进在协议总线和互联网协议之中的设备类支持的共享。
8.根据权利要求1所述的系统,其特征在于,进一步包括作为总线的一部分的适配组件,所述适配组件与所述抽象系统交互。
9.根据权利要求1所述的系统,其特征在于,所述总线抽象系统跨多种总线技术重用设备模型。
10.一种统一总线协议的方法,包括:
通过抽象系统绑定设备模型和较高级协议到多个总线实现或网络,以及
发现消息要被传送到的设备。
11.根据权利要求10所述的方法,其特征在于,进一步包括使用流组件用于时间敏感信息的传送。
12.根据权利要求10所述的方法,其特征在于,进一步包括使用批量传送组件用于消息的传送。
13.根据权利要求10所述的方法,其特征在于,进一步包括以异步和同步中的至少一种方式传送消息。
14.一计算机可读介质,具有存储在其上的计算机可执行指令用于实现权利要求10所述的方法。
15.一计算机可读介质,具有存储在其上的数据结构,包括:
一计算机可执行组件,把设备模型和较高级协议与多个具有不同总线技术的总线绑定,以使不熟悉不同的总线技术的规格的应用能使用多个总线,该计算机可执行组件包括又一计算机可执行组件,所述又一计算机可执行组件提供用于应用和设备在多个总线上相互发现的信号机制。
16.根据权利要求15所述的计算机可读介质,其特征在于,所述计算机可执行组件包括促进在设备中确定建立的信任的其他计算机可执行组件。
17.根据权利要求15所述的计算机可读介质,其特征在于,所述计算机可执行组件包括促进设备中时间敏感信息的发送的另一个计算机可执行组件。
18.根据权利要求15所述的计算机可读介质,其特征在于,所述计算机可执行组件促进在协议总线和互联网协议中的设备类支持的共享。
19.根据权利要求15所述的计算机可读介质,其特征在于,所述计算机可执行组件跨多种总线技术重用设备模型。
20.根据权利要求15所述的计算机可读介质,其特征在于,所述计算机可执行组件具有寻址方案,所述寻址方案向应用提供用于引用在多个总线上的设备的标准方式。
CNA2005100035092A 2004-12-30 2005-12-28 总线抽象 Pending CN1798148A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/026,190 2004-12-30
US11/026,190 US20060168269A1 (en) 2004-12-30 2004-12-30 Bus abstraction

Publications (1)

Publication Number Publication Date
CN1798148A true CN1798148A (zh) 2006-07-05

Family

ID=35825424

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005100035092A Pending CN1798148A (zh) 2004-12-30 2005-12-28 总线抽象

Country Status (16)

Country Link
US (1) US20060168269A1 (zh)
EP (1) EP1684173A1 (zh)
JP (1) JP2006190280A (zh)
KR (1) KR20060079108A (zh)
CN (1) CN1798148A (zh)
AU (1) AU2005246944A1 (zh)
BR (1) BRPI0505537A (zh)
CA (1) CA2531605A1 (zh)
CO (1) CO5770119A1 (zh)
IL (1) IL172696A0 (zh)
NO (1) NO20056105L (zh)
NZ (1) NZ544320A (zh)
RU (1) RU2005141590A (zh)
SG (1) SG123734A1 (zh)
TW (1) TW200635291A (zh)
ZA (1) ZA200510328B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104620559A (zh) * 2012-09-07 2015-05-13 甲骨文国际公司 用于支持分布式数据网格集群中的可伸缩消息总线的系统和方法

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BRPI0622274A2 (pt) * 2005-06-09 2011-08-09 Whirlpool Co aparelho configurado para executar um ciclo de operação para completar uma operação fìsica em um artigo e rede de aparelho
US8676656B2 (en) * 2005-06-09 2014-03-18 Whirlpool Corporation Method for product demonstration
US20080137670A1 (en) * 2005-06-09 2008-06-12 Whirlpool Corporation Network System with Message Binding for Appliances
US20070288331A1 (en) 2006-06-08 2007-12-13 Whirlpool Corporation Product demonstration system and method
US7831321B2 (en) * 2005-06-09 2010-11-09 Whirlpool Corporation Appliance and accessory for controlling a cycle of operation
US10333731B2 (en) 2005-06-09 2019-06-25 Whirlpool Corporation Methods and apparatus for communicatively coupling internal components within appliances, and appliances with external components and accessories
US9122788B2 (en) * 2005-06-09 2015-09-01 Whirlpool Corporation Appliance network for a networked appliance with a network binder accessory
US9009811B2 (en) * 2005-06-09 2015-04-14 Whirlpool Corporation Network system with electronic credentials and authentication for appliances
US8155120B2 (en) * 2005-06-09 2012-04-10 Whirlpool Corporation Software architecture system and method for discovering components within an appliance using fuctionality identifiers
US8250163B2 (en) 2005-06-09 2012-08-21 Whirlpool Corporation Smart coupling device
US8856036B2 (en) * 2005-06-09 2014-10-07 Whirlpool Corporation Method of providing product demonstrations
US9164867B2 (en) * 2005-06-09 2015-10-20 Whirlpool Corporation Network for communicating information related to a consumable to an appliance
US8571942B2 (en) 2005-06-09 2013-10-29 Whirlpool Corporation Method of product demonstration
US8615332B2 (en) 2005-06-09 2013-12-24 Whirlpool Corporation Smart current attenuator for energy conservation in appliances
US8027752B2 (en) 2005-06-09 2011-09-27 Whirlpool Corporation Network for changing resource consumption in an appliance
US8816828B2 (en) 2005-06-09 2014-08-26 Whirlpool Corporation Recipe wand and recipe book for use with a networked appliance
US8682733B2 (en) * 2006-06-08 2014-03-25 Whirlpool Corporation System for product demonstration
US20100299517A1 (en) * 2009-05-22 2010-11-25 Nuvon, Inc. Network System with a Plurality of Networked Devices with Various Connection Protocols
KR101383053B1 (ko) * 2012-11-01 2014-04-08 한국과학기술정보연구원 개방형 api를 이용하여 네트워크 추상화 정보를 생성하여 전송하기 위한 장치 및 방법
US10168676B2 (en) * 2014-04-29 2019-01-01 Cox Communications, Inc. Systems and methods for intelligent customization of an automation control service
US9703742B2 (en) * 2014-09-26 2017-07-11 Intel Corporation Unified device interface for a multi-bus system
WO2017127634A1 (en) * 2016-01-22 2017-07-27 Sony Interactive Entertainment Inc Simulating legacy bus behavior for backwards compatibility
EP3274896B1 (en) * 2016-04-22 2019-08-21 Hewlett-Packard Enterprise Development LP Configuration of a memory controller for copy-on-write with a resource controller
ES2847550T3 (es) 2018-02-28 2021-08-03 Kistler Holding Ag Sistema de comunicación para la transmisión de datos entre fuentes de datos y evaluadores de datos

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764890A (en) * 1994-12-13 1998-06-09 Microsoft Corporation Method and system for adding a secure network server to an existing computer network
US5838910A (en) * 1996-03-14 1998-11-17 Domenikos; Steven D. Systems and methods for executing application programs from a memory device linked to a server at an internet site
US7349391B2 (en) * 1999-03-19 2008-03-25 F5 Networks, Inc. Tunneling between a bus and a network
US6892230B1 (en) * 1999-06-11 2005-05-10 Microsoft Corporation Dynamic self-configuration for ad hoc peer networking using mark-up language formated description messages
JP2002164898A (ja) * 2000-11-24 2002-06-07 Matsushita Electric Ind Co Ltd データ送受信装置及びデータ送受信方法
US7343427B2 (en) * 2000-12-13 2008-03-11 Sony Corporation Method and an apparatus for the integration of IP devices into a HAVi network
US20020078161A1 (en) * 2000-12-19 2002-06-20 Philips Electronics North America Corporation UPnP enabling device for heterogeneous networks of slave devices
JP2003186819A (ja) * 2001-12-17 2003-07-04 Ricoh Co Ltd セキュリティ機能付きusb機器を備えたコンピュータシステム
EP1396962A1 (en) * 2002-08-05 2004-03-10 Sony International (Europe) GmbH Bus service interface
US8346884B2 (en) * 2003-01-21 2013-01-01 Nextio Inc. Method and apparatus for a shared I/O network interface controller
US7690004B1 (en) * 2003-12-04 2010-03-30 The Math Works, Inc. Method of providing consistent interface to image acquisition devices
US7694312B2 (en) * 2004-09-10 2010-04-06 Pleora Technologies Inc. Methods and apparatus for enabling bus connectivity over a data network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104620559A (zh) * 2012-09-07 2015-05-13 甲骨文国际公司 用于支持分布式数据网格集群中的可伸缩消息总线的系统和方法

Also Published As

Publication number Publication date
RU2005141590A (ru) 2007-07-20
JP2006190280A (ja) 2006-07-20
AU2005246944A1 (en) 2006-07-20
EP1684173A1 (en) 2006-07-26
NZ544320A (en) 2007-09-28
IL172696A0 (en) 2006-04-10
SG123734A1 (en) 2006-07-26
BRPI0505537A (pt) 2006-09-12
CO5770119A1 (es) 2007-06-29
NO20056105L (no) 2006-07-03
US20060168269A1 (en) 2006-07-27
ZA200510328B (en) 2008-08-27
TW200635291A (en) 2006-10-01
KR20060079108A (ko) 2006-07-05
CA2531605A1 (en) 2006-06-30

Similar Documents

Publication Publication Date Title
CN1798148A (zh) 总线抽象
CN108449418B (zh) 一种混合云平台管理系统及方法
CN111539726B (zh) 区块链共识系统及方法
CN111565113B (zh) 用于sdn控制器的灵活以太网网络拓扑抽象方法及系统
CN1798105A (zh) 具有状态同步的集群的虚拟组播路由
CN1659833A (zh) 用于确定光纤信道结构中路由特征的方法和装置
CN112887120A (zh) 一种信息处理方法及装置
CN1816014A (zh) 用于通过网络通信相关消息的排队会话
US20170272190A1 (en) Time synchronization method and apparatus for network devices and time synchronization server
WO2021244206A1 (zh) 报文处理方法、设备、系统及存储介质
CN101159611A (zh) 一种批量系统部署方法和部署装置
US20240256351A1 (en) Methods for generating application for radio-access-network servers with heterogeneous accelerators
WO2014079629A1 (fr) Dispositif et procede de retransmission de donnees dans un commutateur reseau
JP2010124465A (ja) データを電子的にルーティングするシステム及び方法
JP2024537662A (ja) チャネル構成方法、及び装置
US20230079205A1 (en) Computer system
CN102110074A (zh) 多核处理器及流分类控制装置和方法
CN103701943B (zh) Mac地址的控制方法及装置
CN1553738A (zh) 一种对短消息中心功能进行测试的方法及系统
Morgenroth Event-driven Software-architecture for Delay-and Disruption-tolerant Networking
CN118568277B (zh) 电力图像数据的并发处理和存储系统、电子设备及方法
WO2024119403A1 (zh) 区块链建立方法及通信装置
Herbertsson Implementation of a Delay-Tolerant RoutingProtocol in the Network Simulator NS-3
CN116599871B (zh) 一种网络时延的确定方法和相关装置
US20220374262A1 (en) Methods for Offloading A Task From A Processor to Heterogeneous Accelerators

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20060705