用于过程控制系统的分布式数据访问方法和设备的制作方法

文档序号:6384987阅读:275来源:国知局
专利名称:用于过程控制系统的分布式数据访问方法和设备的制作方法
技术领域
本发明一般涉及过程控制系统(process control system),特别涉及用于过程控制系统的分布式数据访问方法和设备。
背景技术
像那些用在化工、石油或其他生产过程中的过程控制系统,一般包含一个或多个中央过程控制器,该控制器通过模拟、数字或模拟/数字组合总线与至少一个主机或操作站以及一个或多个现场设备通信连接。现场设备可以是例如阀门、阀位定位器、开关和传送器(例如温度、压力和流量传感器),执行过程内的功能,例如打开或关闭阀门以及测量工业参数。过程控制器接收表示由现场设备所进行的过程测量的信号和/或关于现场设备的其他信息,使用该信息以执行控制例程(routine),然后产生通过总线或其他通信链路发送到现场设备的控制信号以控制过程的操作。来自现场设备和控制器的信息可用于由操作站运行的一个或多个应用程序,以使操作者能执行与过程相关的期望功能,例如观察过程的当前状态、修改过程的操作等等。
通常,过程控制系统在运营企业中运行,该运营企业可包含几个过程控制工厂、组成部分和/或服务供应商以及顾客,所有这些可分布在较大的地理区域中,或在某些情况下,分布在全世界中。过程控制工厂、供应商和顾客可使用各种通信介质和技术或平台来彼此通信,例如因特网、卫星链路、地基无线通信、电话线。当然,由于互联网提供了已建成的通信设施,从而最小化或减少了企业的通信设施成本,所以因特网已经成为许多运营企业的首选通信平台。此外,用于经由因特网传送信息的技术是众所周知的、稳定的、安全的。
企业中的每一个过程控制工厂可以包含一个或多个过程控制系统以及许多其他与业务相关的或信息技术系统,需要这些系统来支持或维护或补充过程控制系统的整个操作。一般地,相关于过程控制工厂的信息技术系统可以包含生产运行系统,例如维护管理系统,并且也可以包含企业资源计划系统,例如调度、财务和采购系统。虽然这些信息技术系统可以是物理上位于工厂之内或工厂附近,在某些情况下,这些系统中的一些或可能是所有的系统可以位于相对于该工厂较远的位置上,并且可使用因特网或采用无线和/或硬布线通信介质和技术的任意期望组合的其他任意合适的通信链路与工厂通信。
企业中的每一过程控制工厂也可以包含用户交互式应用程序,该应用程序可以运行在服务器或工作站上,该服务器或工作站通信连接至在工厂中协同工作或执行过程控制系统行为的一个或多个服务器、工作站或其他计算机的。这样的用户交互式应用程序可以实现计划管理功能、历史数据管理功能、资产管理功能、批量管理功能等等。此外,每一过程控制系统可以包含过程管理应用程序,该程序可以例如管理通信并且提供关于报警和/或其他过程事件的信息,提供相关于过程状态或由过程控制工厂执行的过程的信息或数据,提供涉及与过程控制工厂相关的设备的状态和性能的信息或数据等等。特别是,过程管理应用程序可以包含震动监视应用程序、实时优化应用程序、专家系统应用程序、预测维护应用程序、控制环监视应用程序或其他任何相关于控制、监视和/或维护过程操作系统或工厂的应用程序。
此外,过程控制工厂或企业可以包含一个或多个通信应用程序,该程序可用于经由各种不同通信介质和平台,将信息从过程控制系统或工厂传送到用户。例如,这些通信应用程序可以包含电子邮件应用程序、寻呼应用程序、语音通信应用程序、基于文件的应用程序等等,所有这些应用程序可以经由无线或硬布线介质向台式机、笔记本计算机、个人数据助理、蜂窝电话或寻呼机、或任意其他类型的设备或硬件平台发送信息。
一般来说,在企业中的信息技术系统、用户交互式应用程序、过程管理应用程序和通信应用程序之间进行通信并且集成这些系统和应用程序是相当困难的,这是因为它们一般广泛地分布在整个企业中,并且在某些情况下,它们在地理上是分散的。此外,许多前面提到的系统和应用程序可以通过例如笔记本计算机、蜂窝电话、寻呼机、个人数据助理等这样的手持或便携式硬件平台来运行,它们中的许多设备被构造成能提供适合运行包含例如web浏览器等复杂的客户端应用程序或软件的操作环境。
此外,这些系统和应用程序一般需要开发使不同系统和应用程序能互相通信的定制通信接口或软件驱动程序。结果,当企业中的任何系统、应用程序、设备或组成部分由于例如固件升级、设备更换等原因发生变化时,用于该系统、设备和组成部分的定制通信驱动器或接口也可能必须改变。很明显,所需的大量定制驱动器导致了需要大量耗时的驱动器维护工作,这就导致了很高的企业维护成本。此外,向企业或过程控制工厂增加系统或应用程序常需要大量的编程工作,这是因为必须开发大量定制通信驱动器或接口,以使新系统或应用程序能与企业中的其他系统和应用程序通信。因此,使用这样的定制通信接口的系统不是很灵活或可扩展的,并且不便于例如过程控制系统与其他系统和应用程序的集成,这种集成可以由过程控制系统的制造商和/或第三方制造商或开发者来提供。
更多的着重于增加企业内系统的灵活性和可扩展性的近期开发,伴随着例如Windows XP、Microsoft.NETTM等改进的操作系统的发展和普及以及例如以太网、基于Internet协议(IP)的语音、流视频等通信协议的发展。而且,已发展了例如由可扩展标记语言(XML)、简单对象访问协议(SOAP)、统一描述、发现和集成(universal description,discovery and integration,UDDI)等提供的改进的信息或数据传输以及中心数据存储设备和技术,例如Biztalk等改进的编排系统(orchestration system)或服务器,例如java等对运行平台不敏感的改进的编程语言,以及许多其他改进的通信和/或数据管理工具、标准、协议、编程语言等等。
当许多近来的开发使得组成运营企业的多个系统可被更容易地配置以相互通信时,相对于众所周知的客户端-服务器体系来说,这些系统互操作于其中的整个系统体系没有发生显著的变化。在许多众所周知的客户端-服务器体系中,客户端向服务器发送收集的数据或信息,并从被显示的和/或由系统操作者以别的方式利用的服务器接收处理结果。此外,服务器一般保持并且执行或运行业务或数据库规则,以对从一个或多个客户端接收的数据进行操作或处理。
然而,由于服务器一般保存和运行业务逻辑、数据库规则和/或其他数据集中处理,所以在具有经由一个或多个通信网络进行通信的多个分布式系统的企业、过程控制工厂或过程控制系统中,对已知客户端-服务器体系的使用很不充分。结果,客户端一般必须参与大量与服务器的往返通信(即向服务器发送信息或数据以及业务逻辑运行的请求,以及接收来自服务器的响应通信)。在基于已知客户端-服务器体系的分布式系统中的大量往返通信,可以消耗大量有限的且因此而很昂贵的通信网络或信道带宽。例如,在无线通信链路(例如蜂窝和卫星链路)的情况下,信道带宽相当昂贵,因此每分组、每比特等的成本相当高。而且,通信信道延迟(即往返传输时间)可导致长时间的延迟,这可能是许多面向过程的功能所不能接受的,特别是实时过程控制功能。
在任何情况下,由于这些面向过程的功能和服务器运行的业务逻辑需要频繁请求数据和规则运行以及由此而来的频繁的往返通信,所以由带宽限制、成本、通信信道延迟等造成的通信效率低或困难,在客户端参与面向过程的功能和/或服务器执行面向过程的业务逻辑的情况中都会加剧。同样,参与例如企业优化行为这样的企业级过程行为的客户端和/或服务器,一般也会陷入频繁的协调工作以及大量的信息或数据传输。因此,这样的企业级行为类似地加剧了通信的无效率以及已知客户端-服务器体系的困难(例如,有限的带宽、高数据传输成本、通信信道延迟等等)。
为了减少对过程控制系统、工厂和/或企业内的通信信道的需求(以及与之相关的运行和维护成本),一些系统虽然维护了已知或传统的客户端-服务器体系,却将大量数据、业务逻辑、数据库规则运行和数据处理逻辑从服务器移动至客户端。一般地,所有可能被客户端使用的信息或数据以及规则,都被移至相关于这些客户端的本地存储器。在这种方式下,客户端可以本地访问所需的信息、数据、规则等等以执行它们的行为,从而减少或最小化执行上述行为所需的网络通信量。
然而,将大量的数据、规则运行和其他处理职责向下推给客户端系统,导致难于安装和管理的“任务繁重”客户端。而且,在根据已知客户端-服务器体系配置的系统内,基于这样的任务繁重客户端的使用的系统导致了相对不灵活和不容易扩展的系统。特别是,许多利用现有客户端-服务器体系的系统非常依赖于特定的(ad-hoc)客户端逻辑和数据传输格式。换句话说,每一客户端应用程序可能执行它自己版本的规则和数据库结构。结果,简单的数据库更改以及由超过一个客户端使用的规则的改变,需要对大量可能使用该数据库和/或规则的客户端应用程序进行独立且耗时的重新配置。而且,由于客户端可能基于与不同制造商、开发团队等相关的不同类型的系统,其中必须执行给定规则的特定方式可能从一个客户端到一个客户端明显变化,从而使得系统维护行为(例如修改或改进)变得非常复杂和昂贵。而且,向这样一个现有系统增加一个客户端或服务器,需要对该客户端进行耗时的配置,以使该客户端能以期望的方式运行一个或多个规则,并且使系统中的其他客户端和/或服务器能与加入的客户端或服务器互操作。然而,为现有的客户端应用程序而开发的特定代码常常不能适应于新的客户端应用程序的使用。结果,向这样的系统添加客户端应用程序,一般会导致额外的新的特定软件或代码的开发。

发明内容
根据一个方面,访问相关于过程控制系统的数据库的系统和方法,将对客户端应用程序的信息请求发送到中间数据服务器过程(process),并确定该信息是否被存储在相关于该中间数据服务器过程的数据源中。如果该信息未被存储在该数据源中,则公开的系统和方法也可以将对该中间数据服务器过程的信息请求发送到另一个过程,并且可在其他过程接收该信息请求之后,访问该数据库以检索该信息。
根据另一方面,一种过程控制系统包含多个通信连接的中间数据服务器、多个可与一个或多个中间数据服务器通信的客户端应用程序和包含信息的数据库,所述信息至少包含相关于该过程控制系统的数据和规则。该中间数据服务器适应于互操作,以根据至少一些客户端应用程序的信息要求检索信息的子集,并且将其存储在相应的本地数据源中。


图1是其中可实现在此说明的设备和方法的示例企业的一部分的方框图。
图2是基于已知对象分层结构并且可用于实现所公开的设备和方法的示例数据库模式的概略图。
图3是公开的设备和方法可使用的示例对象结构的概略图。
图4是描述包含多个进行互操作以访问数据库的中间数据服务器的示例系统的方框图。
图5是描述一种方式的示例的详细图,客户端应用程序以该方式访问存储在相关于中间数据服务器的数据源中的信息或数据。
图6是具有使用中间数据服务器以访问数据库的多个处理系统的示例系统的方框图。
具体实施例方式
图1是可使用在此描述的分布式数据设备和方法的示例企业10的方框图。如图1所示,企业10包含具有通过总线或局域网(LAN)22通信连接的控制器14、操作站16、工作站18和20的过程控制系统12,该系统提出被称为应用控制网络(application control network,ACN)。工作站18和20可被构造成执行一个或多个信息技术应用程序、用户交互式应用程序和/或通信应用程序的应用程序站。例如,应用程序站18可被构造成主要执行与过程控制相关的应用程序,而应用程序站20被构造成主要执行通信应用程序,该通信应用程序使过程控制系统12能使用任何期望的通信介质(例如无线、硬布线等)和协议(例如HTTP、SOAP等)与其他设备或系统通信。当然,可使用一个或多个工作站或任意其他合适的计算机系统或处理系统,来实现操作站16以及工作站18和20。例如,可以使用单处理器个人计算机、单或多处理器工作站等,来实现操作站和/或工作站18和20。
可使用期望的通信介质或协议来实现LAN 22。例如,LAN 22可以基于硬布线或无线以太网通信方案,该方案是公知的,因此,在此不作详细说明。然而,本技术领域人员很容易理解,可以使用任何其他合适的通信介质和协议。此外,虽然只示出单个LAN,但是可以使用操作站16以及工作站18和20的范围内的多个LAN和合适的通信硬件,以便在这些系统之间提供冗余的通信链路。
控制器14可通过数字数据总线30和输入/输出(I/O)设备32连接至多个智能现场设备24、26和28。智能现场设备24-28可以是Fieldbus兼容阀门、传动器、传感器等,其中智能现场设备24-28经由采用已知的Fieldbus协议的数字数据总线30来进行通信。当然,也可以替代使用其他类型的智能现场设备和通信协议。例如,智能现场设备24-28可被替换成经由使用已知的Profibus和HART通信协议的数据总线30进行通信的Profibus和HART兼容设备。可将附加的I/O设备(与I/O设备32类似或相同)连接至控制器14,以使其他组智能现场设备能与控制器14通信,这些智能现场设备可以是Fieldbus设备、HART设备等等。
除了智能现场设备24-28之外,一个或多个非智能现场设备34和36可通信连接至控制器14。非智能现场设备34和36可以是例如传统4-20毫安(mA)或0-10伏直流(VDC)设备,它们经由各自的硬布线链路38和40与控制器14进行通信。
控制器14可以是例如由Fisher-Rosemount System,Inc.销售的DeltaVTM控制器。然而,可以替代使用任意其他控制器。此外,虽然在图1中只示出一个控制器,但是,任意期望类型或类型组合的其他控制器可连接至LAN 22。在任意情形中,控制器14可以执行一个或多个相关于过程控制系统12的过程控制例程,该例程由系统工程师或使用操作站16的其他系统操作者创建,并且被下载至控制器14中,并且在该控制器14被中实例化(instantiated)。
如图1所示,企业10也可以包含经由通信链路44、LAN 46以及工作站18和20通信链接至过程控制系统12的工作站42。工作站42可被构造成执行企业级功能,可与其他过程控制系统(未示出)相关联且被构造成主要执行过程控制功能,并且可被构造成执行一个或多个通信功能等。而且,当通信链路44是例如无线通信链路、基于因特网或其他基于分组交换的通信网络、电话线路(例如数字用户线)或它们的任意组合时,工作站42可以在地理上处于远程位置上。
提供示例企业10以说明一种类型的系统,其中可方便地采用下面所详细描述的数据分布式设备和方法。然而,只要需要,在此说明的数据分布式设备和方法可被方便地应用于比图1所示的示例企业10更复杂或更简单的其他系统和/或与过程控制行为、企业管理行为、通信行为等关联使用的系统中。
在此说明的数据分布式设备和方法使用分层结构的面向对象数据库模式连同多个互连接或通信连接的中间数据服务器,以便最大化客户端应用程序访问存储在公共数据库中的数据和/或规则的效率。特别是,中间数据服务器可以使用与客户端应用程序所期望的或预定的信息或数据要求相关的信息,来选择性地从数据库检索信息或数据,并本地存储这样选择性地检索到的信息或数据,以使客户端应用程序能更快且更有效率地访问数据或信息。
除了中间数据服务器的本地存储数据之外,它们还可以本地存储和运行所需的业务或数据库规则。在这种方式下,已装载本地客户端应用程序所需的信息和数据的中间数据服务器,可以实质上减少执行客户端应用程序的行为所要求的往返(round trip)通信(和时间)量。换句话说,中间数据服务器本地存储(例如,缓冲)足量的信息和相关规则。这样的信息和规则一般是从企业数据库所检索的信息和规则的子集,从而使本地客户端应用程序能快速地访问所需的信息和规则,并且在将更改提交到数据库之前执行多个连续操作。结果,客户端应用程序可以最小化被引入客户端应用程序的运行的数据延迟量(由于通信信道延迟造成的),该客户端应用程序要求访问来源于中心或公共数据库(例如,工厂级或企业级数据库)的信息、数据和/或规则。通过这样的数据和相关规则的分布而获得的处理速度效率是实质性的,特别是由分布在整个企业中的大量系统访问中心数据仓库或数据库的情况下,以及在客户端应用程序和数据库之间的通信链路超负荷(即接近或超过它们提供连接至该链路的系统所要求的信息的固有容量)的情况中。
图2是示例数据库模式(database schema)的原理图,该数据库模式基于众所周知的对象分层结构且用于执行在此描述的数据分布式设备和方法。一般地,图2所示的示例数据库模式被构造成与分层结构相关的对象的网络。换句话说,图2中的数据库模式被构造成以基本方式表示信息,以便每一条信息被虚拟地表示为分层结构中的单独的对象。图2中所示的特定示例是一种典型模式,可用于表示如图1中所描述的企业10和控制系统12这样的过程控制系统或企业的控制系统特征。当然,图2的数据库模式仅仅是一个示例,可以使用多种其他的模式来替代。例如,模式实现可根据运行期间是否使用特定模式进行离线编辑或配置行为或其他目的而改变。
如图2的示例分层结构所示,表示物理工厂的地点对象50(SITE)由多个区域对象52和54(AREA A和AREA B)组成,其中,该物理工厂是例如图1中所示的企业10这样的企业的一部分或全部。区域对象52和54与由地点对象50所表示的工厂内的特定物理区域相关联。例如,区域对象52可以与工厂的特定物理位置中的生产过程的特定部分相关联,而区域对象54可以与位于由地点对象50所表示的工厂的另一物理位置中的该生产过程(或另一生产过程)的另一部分相关联。
区域对象52和54由各自的控制模块56(MOD A)、58(MOD B)、60(MODB)和62(MOD C)组成。控制模块包含可以被实例化并且被运行以执行与它们各自的与工厂区域相关的控制功能或行为的控制例程。特别是,每一控制模块56-62可以与一个或多个物理设备或装置相关联,并且因而可用于监视和/或控制这些设备或装置。虽然图2的示例层次结构将区域52和54的每一个都描述成具有两个控制模块,但是,区域52和54的每一个都可以与一个或多于两个控制模块相关联。
每个模块56-62均由深一层对象和子对象组成。然而,为了讨论的目的,下面仅结合模块58(MOD B)来说明这样的对象和子对象。如图2所示,模块58可以与一个或多个属性64和66(ATTR 2和ATTR 1)以及一个或多个功能块68和70(BLOCK 1和BLOCK 2)相关联。属性64和66可以是诸如输入变量、输出变量等与企业或工厂内的物理和/或控制状态相关的参数。功能块68和70均可包含一个或多个数学功能(例如求和运算、乘法运算、除法运算等)、逻辑功能或表达式(例如逻辑或、与等)或者其他期望的功能。功能块68和70的每一个也可以与一个或多个属性72和74相关联。
除了属性和功能块之外,模块58也可以与算法78(ALGORITHM)相关联,该算法可以由一个或多个执行数学和/或逻辑运算的序列的软件例程组成。此外,图2中的示例分层结构可以包含一个或多个线对象80(WIRE),该对象与由图2的示例表示的整个控制分层结构的图形显示关联使用的线路的图形表示相对应。
诸如图2的示例中所示的对象分层结构和数据库模式,使用户或系统操作者能通过图形用户界面等揭示与由对象层次结构所表示的工厂及其控制系统的结构有关的任意期望级别的细节或信息。换句话说,用户或系统操作者可以从一个对象至一个或多个相关的子对象来遍历该层次结构(即在整个分层结构中移动),以揭示任意级别的所需细节。例如,在已揭示与区域对象52(AREA A)相关联的信息或数据之后,用户可以遍历分层结构以揭示与模块58(MOD B)相关联的信息或数据,然后,依次是与模块58相关联的对象64-80中的任意一个。
图3是在此说明的设备和方法可使用的示例对象结构100的更详细的示意图。图3所示的示例对象结构100可以被推广并且用作构成图2所示的每一对象和子对象的基本结构或模板。如图3所示,对象结构100包含主对象部分102和相关对象部分104。主对象部分102包含相关对象106、属性108和角色110。在其他信息或数据中,相关对象106可包含由主对象部分102表示的对象的名称以及唯一标识符。属性108可包含相关对象106的类型特性,例如当主对象部分102是模块时的描述和扫描速率等。
角色110表征相关对象106与相关对象部分104中的一个或多个相关对象112和114之间的相关性的特征。角色110表征相关对象106与在正和反方向上的相关对象112和114之间的相关性(即跨接(straddle)或接口)的特征。这样的特征可以例如包含与相关对象106与相关对象112和114之间的操作的可允许多重性(permissible multiplicity)和可允许传播性(permissiblepropagation)相关的信息。例如,模块类型对象可以具有特定块对象的多个实例。然而,这些应用中的任意一个只能与单个模块相关联。而且,如果删除块对象的应用(例如通过用户接口),在该块对象中的所有属性和块(即依赖于它的属性和块)也被删除。然而,如果这种节点当前已分配模块时,就希望防止删除节点(例如区域或地点)。
在特定示例中,主对象部分102可以例如相应于模块58(即MOD B),于是,属性108可以相应于描述和扫描速率。角色110可以将模块58(即相关对象106)与属性64和66(即相关对象112和114)相关联,并且可以进一步规定该属性将在正方向上(即从相关对象112和114)传播给相关对象106,以及删除将从相关对象106传播到相关对象112和114(即从模块58至属性64和66)。
图2和3所示以及上述的示例对象分层结构和对象结构,使用户或系统操作者能创建包含过程控制系统、工厂或企业的配置信息(例如控制配置信息、物理配置信息等)的数据库。这样的分层数据库可以容易地被遍历或操作,以揭示与由数据库所表示的系统的特征相关的任意期望类型和数量的细节。
以前或已知系统一般在中心仓库或服务器中维护如图2和3所示的对象结构,该中心仓库服务器维护可被一个或多个客户端应用程序或其他实体经由通信网络访问的数据库。而且,数据库中关于信息的规则一般已被存储在数据库中,并且已由服务器为客户端应用程序而运行。因此,关于它们的数据需要、规则处理需要等,已知系统中的客户端应用程序依赖于中心服务器。结果,由于企业或其他系统的复杂程度增加,经由连接客户端和服务器的通信网络传送的通信量也大大增加,从而显著地降低了客户端应用程序的运行速度和处理效率。
下面说明的示例分布式数据访问方法和设备利用一个或多个中间数据服务器,来分布用于由客户端应用程序进行本地访问和运行的信息和规则信息。换句话说,基于对象的分层结构数据库,例如以与图2的示例相同或类似方式构成的数据库,可以位于中心数据仓库(例如服务器)中,并且中间数据服务器可以要求装载客户端应用程序所需的部分数据库和相关规则,这些对于中间数据服务器来说是本地的。虽然可以要求装载客户端应用程序所需的数据和规则,但是在运行时间之前也可在本地存储器中装载一些或全部数据和/或规则。例如,可使用每一客户端位置的.net组件(例如DLL)的公共集合来本地装载相同集合或规则。在这种情况下,当运行期间所要求的数据到达特定客户端过程(client process)时,使用本地存储的规则集合自动将数据转换成合适的分层数据结构。
在任何情况下,在此说明的示例数据访问方法和设备可以将数据库信息和相关规则分布到中间数据服务器,该服务器对于客户端应用程序来说是本地的或最接近的,而不是要求所有客户端应用程序为了它们的信息需要和规则处理需要,而与服务器中的单个中心数据库连接。因而,可采用在此说明的数据分布式设备和方法,来减少或最小化使客户端应用程序能访问所需数据以及实现它们的功能所需的网络通信(例如往返通信)量,结果加快了客户端应用程序的运行时间,并且改善了应用程序的当前状态。
图4是描述具有多个通信连接的数据服务器过程(data server process)122和124的示例系统120的方框图,该数据服务器过程互操作以访问数据库126。数据服务器过程122是可以在工作站或处理器系统(例如,图1的工作站18、20和42中的一个)中执行的中间数据服务器过程,并且该过程可以接近和通信连接到一个或多个客户端应用程序128和130。客户端应用程序128和130可以在相同工作站或处理器系统中被实例化为中间数据服务器过程122,并且/或者在通信连接到客户端应用程序128和130的另一工作站或处理器系统中被实例化。
中间数据服务器过程122包含中间数据服务器132和可以在本地数据源136与数据库连接138之间协调信息或数据交换的会话(session)134。一般地,当中间数据服务器132从一个或多个客户端应用程序128和130接收到数据请求时,中间数据服务器132通过会话134来遍历数据源136,以确定所请求的信息或数据是否是本地可用的(即在中间数据服务器过程122的数据源136中可用)。后面将结合图5对会话134遍历数据源136的方式进行更详细的说明。
虽然在图4中未示出,客户端应用程序128和130均包含与结合中间数据服务器过程122示出的会话134、数据源136和数据库连接138类似或相同的会话、数据源和数据库连接。在该方式中,客户端应用程序128和130可以直接与数据服务器过程124通信(即客户端应用程序128和130不必通过中间数据服务器过程122与数据服务器过程124通信)。
如果客户端应用程序128或130所请求的信息不能从数据源136本地可用,会话134使得数据库连接138经由通信链路140向中间数据服务器124发送信息请求。另外或可替代地,在客户端应用程序130已请求处于数据库126中的数据的情况下,客户端应用程序130可以经由通信链路141向数据服务器过程124请求这样的数据或信息。当然,客户端应用程序128也可以经由它自己的链路(未示出)直接向数据服务器过程124请求信息。在任何情况下,可以采用无线或硬布介质的任意期望的组合,并且可以采用通信协议或技术的任意期望的组合,来实现通信链路140和141。例如,通信链路140和141可以包含电话线和/或分组交换通信网络(例如因特网)。经由通信链路140传送的数据或信息最好是,但不是必须的,使用可扩展置标语言(XML)来格式化的,并采用基于例如已知的传输控制协议(TCP)或超文本传输控制协议(HTTP)的传输机制来传送。而且,例如简单对象访问协议(SOAP)这样的消息编码协议可以与采用HTTP发送的信息一起使用。
数据服务器过程124包含中间数据服务器142、会话过程144、数据源146和用于访问数据库126的数据库访问器148。中间数据服务器142经由通信链路140从中间数据服务器122,和/或经由通信链路141从一个或多个客户端应用程序128和130,接收信息或数据请求。如上所述,当会话过程遍历数据源并确定所请求的信息或数据非本地可用(例如,在本地中间数据服务器过程中缓冲)时,由会话过程协调并经由数据库连接传送这样的信息或数据请求。中间数据服务器142使用它的会话过程144来遍历其本地数据源146,以确定所请求的信息(即,由一个或多个客户端应用程序128和130最初请求的信息)是否是本地可用的(例如,在本地中间数据服务器过程中缓冲)。如果会话过程144确定所请求的信息或数据不在数据源146中可用,则会话过程144通过数据库访问器148从数据库126检索所请求的信息或数据。数据库访问器148可以是任意期望的数据库或服务器过程,以使信息或数据能被存储在例如图2所示的示例数据库结构这样的分层结构的面向对象数据库中。
当从数据库126检索到所请求的信息或数据时,则由中间数据服务器过程124经由通信链路140向中间数据服务器过程122传送信息或数据,并且/或者经由例如链路141直接向一个或多个客户端应用程序128和130传送信息或数据。当中间数据服务器过程122经由数据库连接138接收到所检索的信息或数据时,它将所检索的信息或数据传送至最初经由会话过程134以及中间数据服务器132来请求信息或数据的客户端应用程序128和130。
因此,中间数据服务器过程122使用它的本地数据源136(例如本地缓冲)来存储客户端应用程序128和130所需的信息或数据,由于这种信息是客户端应用程序128和130所需的(即要求的)。当对于请求信息或数据的客户端应用程序(例如,客户端应用程序128和130中的一个)来说是最接近的或本地的中间数据服务器过程和本地数据服务器过程122当前不使所请求的信息在它其本地数据源(例如数据源136)中可用时,可以通过一个或多个其他中间数据服务器过程(例如中间数据服务器过程124)向服务器或其他过程传播对该信息或数据的请求,该服务器或其他过程最终访问包含与企业(例如企业10)或其中运行客户端应用程序的其他系统相关的整个配置数据库的数据库(例如数据库126)。
虽然图4所示的示例描述了两个链接在一起的中间数据服务器过程,但是,如果需要,也可以链接多于两个中间数据服务器过程。在这种情况下,数据库访问器148可以替代是另一个数据库连接(即与数据库连接138类似或相同的),该数据库连接与另一个中间数据服务器过程通信连接,并且最终通信连接到如数据库126等数据库。当然,由于客户端应用程序128和130也可以具有它们自己各自的会话、数据源和数据库连接,如果需要,这些应用程序128和130可以直接访问数据服务器过程124或任何其他与上述数据服务器过程相同或类似的数据服务器过程。然而,在这些情况中,如果可能(即如果在例如中间数据服务器过程122中,所请求的数据是本地可用的),可以避免由客户端应用程序128和130对数据服务器过程124进行直接访问,以最小化对中心数据库126的通信需求。
存储在数据库126中且经由中间数据服务器过程122和124传送以便由客户端应用程序128和130所使用的信息或数据,包含组成用于企业的面向对象的结构模型的所有信息或数据。例如,可以按需要(或根据规则,如果需要,在运行时间之前),将所有与包含属性值、数据库规则或相关性等的分层结构对象相关的信息从数据库126传送到客户端应用程序128和130中的一个,并且被本地存储(例如在数据源136中),并且,根据规则等,被本地运行。当客户端应用程序128和130所需的信息或数据被本地存储在数据源136时,客户端应用程序128和130对于相同信息的后续请求将不会导致经由通信链路140和141的通信。结果,在需要的地方并且按照需要,图4所示的示例系统120使企业或其他系统的复杂分层的面向对象结构的数据库中所包含的信息能被本地分布和存储,从而减少了支持构成企业或其他系统的客户端应用程序的信息需要所需的总网络通信量。
中间数据服务器过程122和124可以在经由通信链路140通信连接的物理上分离的工作站或处理系统中被实例化,该通信链路可以是通信网络的一部分。然而,可替换地,中间数据服务器过程122和124可以在相同工作站或处理系统中被实例化。
可以采用软件、固件和硬件的任意期望的组合,来将图4的示例系统120中所示的功能块构造成对象、过程等。例如,一个或多个微处理器、微控制器、特定用途集成电路(ASIC)等,可访问存储在机器或处理器可访问存储介质上的指令或数据,以便实现在此说明的设备和方法。存储介质可以包含例如固态存储介质、光存储介质、磁存储介质等这样的器件和/或介质的任意组合,其中,固态存储介质包含随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)等。而且,任何用于实现如图4所示的功能块的软件或固件,可以经由因特网、电话线、卫星通信等附加地或可替换地被传递至处理器或其他设备或运行软件的设备,并且被上述设备访问。
图5是描述客户端应用程序访问存储在中间数据服务器过程数据源中的信息或数据的一种方式示例的详细图。特别是,客户端应用程序的状态由一个或多个客户根(client root)200和202维护。客户根200和202是数据源204上的窗口。会话206管理客户根200和202与数据源204之间的交互。例如,客户根200和202可以保持各自的客户端应用程序128和130的状态(图4),数据源204可以相应于数据源136,而会话206可以相应于会话134。在这种方式下,客户端应用程序128和130不必直接访问数据源136,而是替代地,可维护各自的应用程序状态(相应于客户根200和202),该应用程序状态可以被快速地和重复地访问以获取当前本地存储在中间数据服务器过程122中的数据。例如,如果相关于客户根200的客户端应用程序请求相关于模块对象208(MOD A)的信息,会话206可以遍历客户根200和地点对象210(SITE)以从模块对象208检索所需的信息。另一方面,如果相关于客户根200的客户端应用程序请求相关于属性212(ATTR 1)的信息,则会话过程206遍历数据源204以检索相关于属性212的信息,并发送该信息以便被添加到相关于客户根200的客户端应用程序中。此外,如果相关于客户根200的客户端应用程序请求非本地存储的信息(即该信息尚未被存储或装载到本地数据源204中),则会话过程206可以从中间数据服务器过程214检索这样的信息。中间数据服务器过程214可以相应于,例如图4所示的中间数据服务器过程214。虽然,在图5中示出两个客户根,但是可以替代使用一个或多于两个客户根。
如结合图4和5所述,可以请求装载(即按需从数据库检索并且本地缓冲)客户端应用程序所需信息(例如,包含属性值、规则等的对象数据)。当在此说明的设备和方法使信息能被请求基于基本单元(即一次一个对象)装载时,通过识别数据库访问模式以及要求装载稍微比应用程序具体请求的信息多一些的信息,可以获得更高的通信效率。换句话说,可以使用数据库访问模式来预测在紧跟一条特定信息的应用程序请求之后,什么信息最可能是所需要的。例如,当客户端应用程序从模块对象遍历至属性角色(即客户端应用程序向另一数据服务器请求属性角色信息)时,由于这样的信息通常与属性名称和类型一起被显示,所以接下来通常是对于属性值的后续请求。因此,为了增加通信效率(即减少通信网络的总通信量),一般将属性值与属性角色信息一起发送。更一般地,通过预测特定于应用程序的特征信息请求模式,并随后以与这些访问模式一致的方式捆绑信息,来最小化网络通信(即为了获得客户端应用程序需要的信息所需的往返通信次数),从而可以获得通信效率。
当客户端应用程序请求对系统数据库进行离线访问时(例如,当需要离线编辑会话时),可以请求并本地缓冲数据库的整个内容(即所有规则和数据)。在这种方式下,客户端应用程序可以使系统用户能参与完整的离线编辑会话。由于所有的规则都本地可用,所以在这样的离线编辑会话期间可以使用本地规则检查以便于当将客户端应用程序重连接至中心数据库时(即结束离线编辑会话)的后续的数据同步和协调(reconciliation)行为。可以使用下面说明的示例对象更改处理技术来实现这种数据同步和调节行为。
客户端应用程序(例如客户端应用程序128和130)可以访问存储在本地存储或缓冲的数据源(即数据源136)中的信息,并可以修改或更改该信息。例如,客户端应用程序128(图4)可以相应于客户根200(图5),并可以遍历客户根200以访问相关于模块208的信息。当客户端应用程序128试图修改在事务的上下文内的模块208中的信息(例如角色和/或属性)时,根据数据库规则(即规则检查),产生一个“脏(dirty)”对象以存储所尝试的修改。如果事务被嵌套,然后出现进一步尝试以更改或修改相关于模块208的信息,其他的脏对象被创建以存储这些进一步的更改。当运行附加的内部嵌套的事务时,可以产生附加的脏对象。当最内层嵌套的事务被提交时,在最内层脏对象中反映的更改被传递到相关于下一外层事务的脏对象。当内层对象被提交时,从内层事务到下一外层事务的脏对象更改信息的传递继续进行,直到所有的更改已被传递至相关于最外层事务的脏对象。最外层事务的提交导致更改变成永久性的,从而防止更改的任何退回重来(即更改返回到事务开始之前的应用程序的状态)。
如上所述,事务(和嵌套事务)使应用程序能实现或记录对它们各自客户根内的对象信息的更改。然而,客户端应用程序可以额外地向数据库(例如数据库126)写入或记录对象更改,从而使所有连接至该数据库的中间数据服务器能给它们各自的客户端应用程序提供更改的信息。最好是,但不是必需的,响应于来自客户端应用程序的自动指示,并且/或者响应于来自系统用户或操作者的自动指示,由客户端应用程序对对象信息进行的永久更改可以被写回数据库(例如图4的数据库126)。
最初,向客户根(例如客户根200)提交的更改(即永久更改)通过会话过程(例如会话过程206)被写入到相关于客户根的数据源(例如数据源204)中。会话过程随后将对客户根所作的任意更改传播至数据源(例如包含它所连接到的任意对象的数据源204)。会话过程206接着将更改的数据源信息发送至被连接到数据库的中间数据服务器。当在发送更改信息的数据源与中心数据库之间存在两个或更多个居中的中间数据服务器时,更改被从数据服务器发送至数据服务器直到它们到达该数据库。为了促进平台的独立性和增加整个系统的灵活性,信息最好是,但不是必需的,以XML文档形式在中间数据服务器之间传送。数据库执行数据库规则,并且如果提供给数据库的任意信息(例如在所接收的XML文档中)不符合这样的规则,则数据库拒绝(即不记录)这些更改。
接着,由数据库所接收并接受的更改可以接着通过一个或多个中间数据服务器被传递至相关于企业的所有数据源。例如,包含由数据库所接收并存在的所有更改的完整列表的XML文档,可以被异步传回到发起该修改的客户端和/或企业或系统中的一些或所有中间数据服务器。类似地,发生在数据库内的且不是由一个或多个客户端应用程序向上传播至中心数据库的更改信息的结果的更改,可以作为更改通知机制被异步地向下传播至组成企业的数据服务器,然后是数据源。可以使用例如XML文档来实现这样的更改通知,该XML文档包含按照分层方式排列以使数据被数据源有效地使用的数据。接收这样的XML文档的数据源可以跳过在先前未被装载的文档中的对象,并产生新的简化的XML文档,该文档仅包含那些与连接至数据源的客户相关的更改。
图6是具有多个处理系统302、304、306和307的示例系统300的方框图。处理系统302、304和306使用各自的中间数据服务器308、310和312以访问数据库314。此外,处理系统304和307使用各自的中间数据服务器315和316以访问实时服务器317。系统302可以是例如应用程序站(例如图1的工作站18、20和42中的一个站),该应用程序站运行一个或多个基于Windows的客户端应用程序318。应用程序318可以包含连接至数据源322的客户根319和320。数据源322可以经由中间数据服务器312、经由数据库服务器324,连接至数据库314。系统302也可以包含通信连接至下面将详细说明的系统304的Web客户326。
系统304可以是例如,运行具有一个或多个会话状态330(该状态与应用程序状态类似)的互联网服务器过程328的web服务器(该服务器可以使用工作站或任何其他处理系统来实现)。会话状态330包含客户根332和334以及通信连接至中间数据服务器310和315的相应数据源336和338。因此,会话状态330可以访问存储在数据库314和/或实时服务器317中的信息(例如数据、规则等)。系统304也可以包含通信连接至互联网服务器过程328的web客户340。因此,web客户326和340均可以相应于一个会话状态330(即客户根332和334中的一个),并可以与中间数据服务器310、312、315和316互操作,以使用采用上述方法的数据库314和/或实时服务器317来交换信息。
因此,虽然已参照特定示例说明了本发明,但是这仅用于说明而不是对本发明进行限定。对本技术领域人员来说,在不脱离本发明的实质和范围的情况下,可以对所公开的实施例进行更改、增加或删除。
权利要求
1.一种访问与过程控制系统相关的数据库的方法,包括在中间数据服务器过程中从客户端应用程序接收信息请求;确定所述信息是否被存储在与所述中间数据服务器过程相关的数据源中;如果所述信息未被存储在所述数据源中,则将对所述信息的请求从所述中间数据服务器过程发送至另一个过程;和在所述另一个过程接收所述信息请求之后,访问所述数据库以检索所述信息。
2.如权利要求1所述的方法,其中,在所述中间数据服务器过程中从所述客户端应用程序接收所述信息请求包含接收对数据和至少一个与所述数据相关的规则的请求。
3.如权利要求1所述的方法,其中,在所述中间数据服务器过程中从所述客户端应用程序接收所述信息请求包含接收对至少一个对象信息和规则的请求。
4.如权利要求1所述的方法,其中,确定所述信息是否被存储在所述数据源中包含遍历与分层相关的第一组对象,所述第一组对象相应于存储在所述数据库中的第二组对象的子集。
5.如权利要求4所述的方法,其中,遍历与分层结构相关的所述第一组对象包含遍历相应于所述客户端应用程序的状态的客户根。
6.如权利要求1所述的方法,其中,将所述信息请求从所述中间数据服务器过程发送至所述另一个过程包含经由数据库连接和通信链路发送所述信息请求。
7.如权利要求1所述的方法,其中,所述另一个过程是另一个中间数据服务器过程。
8.如权利要求1所述的方法,其中,在所述另一个过程接收所述信息请求之后访问所述数据库以检索所述信息包含向通信连接至所述数据库的数据库访问器发送对所述信息的请求。
9.如权利要求1所述的方法,包含通过通信连接至所述数据源和所述数据库连接的会话来处理所述信息请求。
10.如权利要求1所述的方法,包含访问所述数据库以检索附加信息,其中所述附加信息与所述客户端应用程序的数据访问模式特征相关。
11.如权利要求1所述的方法,其中,将所述信息请求从所述中间数据服务器过程发送至另一过程的步骤包括使用可扩展置标语言、传输协议和消息编码中的至少一种以发送所述信息的请求。
12.一种访问与过程控制系统相关的数据库的系统,包括中间数据服务器,被通信连接至所述数据库,并且被编程以从客户端应用程序接收信息请求;确定所述信息是否被存储在与所述中间数据服务器相关的数据源中;和如果所述信息未被存储在所述数据源中,则将对所述信息的请求从所述中间数据服务器发送至另一个中间数据服务器。
13.如权利要求12所述的系统,其中,所述中间数据服务器被编程以建立会话,所述会话协调与所述数据源和数据库连接的通信。
14.如权利要求11所述的系统,其中,所述信息请求包含对数据和至少一个与所述数据相关的规则的请求。
15.如权利要求12所述的系统,其中,所述信息请求包含对至少一个对象信息和规则的请求。
16.如权利要求12所述的系统,其中,所述数据源包含与分层结构相关的第一组对象,所述第一组对象相应于存储在所述数据库中的第二组对象的子集。
17.如权利要求12所述的系统,其中,所述中间数据服务器被编程以经由数据库连接和通信链路向所述另一个中间数据服务器发送所述信息请求。
18.如权利要求12所述的系统,其中,所述另一个中间数据服务器经由数据库访问器访问所述数据库以检索所述信息。
19.如权利要求12所述的系统,其中,所述中间数据服务器被编程以通过使用可扩展标记语言、传输协议和消息编码中的至少一种来向所述另一个中间数据服务器发送所述信息请求。
20.一种其上存储指令的机器可读介质,当被运行时使机器在中间数据服务器过程中从客户端应用程序接收与过程控制系统相关的信息请求;确定所述信息是否被存储在与所述中间数据服务器过程相关的数据源中;如果所述信息未被存储在所述数据源中,则将对所述信息的请求从所述中间数据服务器过程发送至另一个过程;和在所述另一个过程接收所述信息请求之后,访问所述数据库以检索所述信息。
21.如权利要求18所述的机器可读介质,其上存储指令,以便当被运行时使所述机器通过接收对数据和至少一个与所述数据相关的规则的请求,在所述中间数据服务器过程中从所述客户端应用程序接收所述信息请求。
22.如权利要求20所述的机器可读介质,其上存储指令,以便当被运行时使所述机器通过接收对中间数据服务器对象中的至少一个对象信息和规则的请求,在所述中间数据服务器过程中从所述客户端应用程序接收所述信息请求。
23.如权利要求20所述的机器可读介质,其上存储指令,以便当被运行时使所述机器通过遍历与分层结构相关的第一组对象,来确定所述信息是否被存储在所述数据源中,所述第一组对象相应于存储在所述数据库中的第二组对象的子集。
24.如权利要求23所述的机器可读介质,其上存储指令,以便当被运行时使所述机器通过遍历相应于所述客户端应用程序的状态的客户根对象,来遍历与分层结构相关的所述第一组对象。
25.如权利要求20所述的机器可读介质,其上存储指令,以便当被运行时使所述机器通过经由数据库连接和通信链路发送所述信息请求,来将所述信息请求从所述中间数据服务器过程发送至所述另一个过程。
26.如权利要求20所述的机器可读介质,其上存储指令,以便当被运行时使所述机器通过被通信连接到所述数据源和数据库连接的会话来处理所述信息请求。
27.如权利要求20所述的机器可读介质,其上存储数据,以便当被运行时使所述机器访问所述数据库以检索附加信息,其中,所述附加信息与所述客户端应用程序的数据访问模式特征相关。
28.一种过程控制系统,包括多个通信连接的中间数据服务器;多个与至少一个所述中间数据服务器通信的客户端应用程序;和包含信息的数据库,所述信息至少包含与所述过程控制系统相关的数据和规则,其中,所述中间数据服务器适合于互操作,以便基于至少一些所述客户端应用程序的信息需要检索并且在相应的本地数据源中存储所述信息的子集。
29.如权利要求28所述的过程控制系统,其中,每一个所述中间数据服务器适合于提供中间数据服务器对象、数据源对象、数据库连接对象和会话对象,所述会话对象协调所述中间数据服务器对象、所述数据源对象和所述数据库连接对象的行为。
30.如权利要求28所述的过程控制系统,其中,至少两个所述中间数据服务器经由与网络相关的通信链路连接。
31.如权利要求30所述的过程控制系统,其中,对象的分层结构中的每一个所述对象包含相关对象、属性和角色。
32.如权利要求28所述的过程控制系统,其中,所述中间数据服务器适合于采用可扩展标记语言进行通信。
33.如权利要求28所述的过程控制系统,其中,所述客户端应用程序包含浏览器应用程序。
34.如权利要求28所述的过程控制系统,其中,所述中间数据服务器适合于运行至少一些与所述过程控制系统相关的所述规则。
35.如权利要求28所述的过程控制系统,其中,由每一个所述中间数据服务器接收的所述信息的子集包含与该中间数据服务器的数据访问特征一致的信息。
36.一种更改与过程控制系统相关的数据库中的信息的方法,包括将一组信息从第一中间数据服务器发送至第二中间数据服务器;将所述一组信息从所述第二中间数据服务器发送至数据库服务器;和将所述一组信息写入所述数据库以更改所述数据库中的所述信息。
37.如权利要求36所述的方法,其中,所述第一中间数据服务器和所述第二中间数据服务器的每一个包含数据源、会话和数据库连接。
38.如权利要求36所述的方法,其中,所述一组信息包含可扩展置标语言文档。
39.如权利要求36所述的方法,其中,将所述一组信息从所述第一中间数据服务器发送至所述第二中间数据服务器包含经由通信链路发送所述一组信息。
40.如权利要求33所述的方法,其中,所述一组信息包含与所述过程控制系统和企业中的至少一个相关的信息。
41.一种在网络化系统中传播数据库更改的方法,包括更改数据库中的一组信息以形成第二组信息;将所述第二组信息发送至在所述网络化系统中的第一中间数据服务器;将所述第二组信息从所述第一中间数据服务器发送至第二中间数据服务器;和在与客户端应用程序相关的数据源中存储所述第二组信息的至少一部分。
42.如权利要求41所述的方法,其中,将所述第二组信息从所述第一中间数据服务器发送至所述第二中间数据服务器包含将可扩展置标语言文档从所述第一中间数据服务器发送至所述第二中间数据服务器。
43.如权利要求41所述的方法,其中,在与所述客户端应用程序相关的所述数据源中存储所述第二组信息的至少一部分包含存储与所述数据源先前所请求的信息相关的信息。
44.一种访问与过程控制系统相关的数据库的方法,包括在中间数据服务器过程中从客户端应用程序接收对数据和至少一个与所述数据相关的规则的请求;和访问所述数据库以检索所述数据和所述至少一个与所述数据相关的规则。
45.如权利要求44所述的方法,还包括响应于更改所述数据的至少一部分的请求,执行所述至少一个规则。
46.如权利要求44所述的方法,其中,访问所述数据库包含被与连接至所述数据库的另一个中间数据服务器过程进行通信。
47.一种编辑过程控制系统数据库的方法,包括请求几乎所有与所述过程控制系统数据库相关的数据;在客户端应用程序中接收所请求的几乎所有与所述过程控制系统数据库相关的数据;当所述客户端应用程序相对于所述过程控制系统数据库离线时,在所述客户端应用程序中编辑几乎所有与所述过程控制系统数据库相关的数据的至少一部分;和当所述客户端应用程序相对于所述过程控制系统数据库离线时,运行与所述过程控制系统数据库相关的并且可被所述客户端应用程序访问的至少一个规则。
48.如权利要求47所述的方法,还包括在编辑之后,协调几乎所有与所述过程控制系统相关的数据的至少一部分。
49.如权利要求47所述的方法,其中,几乎所有与所述过程控制系统相关的数据包含所述过程控制系统数据库的拷贝。
全文摘要
访问与过程控制系统相关的数据库的系统和方法,将信息请求从客户端应用程序发送至中间数据服务器,并确定所述信息是否被存储在与所述中间数据服务器过程相关的数据源中。如果所述信息未被存储在所述数据源中,则该系统和方法还将所述信息请求从所述中间数据服务器过程发送至另一过程,并且在其他过程接收所述信息请求之后,访问所述数据库以检索所述信息。
文档编号G06F13/00GK1527227SQ20041000787
公开日2004年9月8日 申请日期2004年3月3日 优先权日2003年3月3日
发明者马克·J·尼克松, 斯蒂芬·吉尔伯特, 迈克尔·卢卡斯, 特里萨·查特科夫, 卢卡斯, 吉尔伯特, 查特科夫, 马克 J 尼克松 申请人:费舍-柔斯芒特系统股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1