用于减少过程控制系统软件应用的存储需求的方法与装置与流程

文档序号:12866636阅读:247来源:国知局
用于减少过程控制系统软件应用的存储需求的方法与装置与流程
本公开大体涉及计算机软件架构,尤其涉及减少过程控制系统软件应用存储需求的方法与装置。

背景技术:
过程控制系统,像那些在化学、石油或其他过程中用到的系统,典型地包括一个或多个过程控制器,该过程控制器通过模拟总线、数字总线或组合的模拟/数字总线通信地耦合至一个或多个现场设备。现场设备,其可以是,例如阀、阀定位器、开关、变送器(譬如温度、压强和流速传感器)。现场设备在过程中执行过程控制功能,譬如打开或关闭阀以及测量过程参数等。过程控制器接收指示由现场设备所做的过程测量的信号,并处理该信息,以产生控制信号,从而实施控制例程、作出过程控制决定,并发出过程控制系统警报。来自现场设备和/或控制器的信息经常通过数据总线或通信网络提供给一个或多个其他硬件设备,譬如操作员工作站、个人电脑、数据历史记录、报告生成器、集中式数据库等等。这些设备通常运行“顶层”的过程控制系统软件应用,该应用使得操作员和/或工程师能够实施任何一种关于过程控制系统的过程的功能,并与不同的控制器、现场设备以及过程控制系统中的其他构件进行交互。除了控制系统软件应用以控制过程控制系统的运行外,操作员和/或工程师也可以使用资产管理软件应用和/或其他软件应用,进行建立、配置、维护和/或测试过程控制系统中的构件和设备的可靠性(即,相关联的过程是否确实处于操作中)。在这里,这些各种“顶层”软件应用可以共同地被称为过程管理软件应用。除了“顶层”过程管理软件应用,很多独立控制器、现场设备和/或其他过程控制系统构件都具有关联的、与过程管理软件应用进行交互的软件应用。然而,过程控制系统中的控制器、现场设备、和/或其他构件可以由任何不同的制造商生产。因此,每个制造商均可以提供不同的硬件设备,每个硬件设备均有相应的软件,其不同于其他制造商的硬件与软件。进一步地,过程管理软件应用的开发者可以与另外的实体相关联。因此,过程控制系统工业中的很多制造商和软件开发者创建与标准化的应用连接架构相适应的硬件和软件,从而使得过程控制系统中的不同的软件应用和过程硬件之间可以交互。过程控制系统工业中使用的典型的应用连接架构是基于由开发的对象链接和嵌入(OLE)、构件对象模型(COM),以及分布式构件对象模型(DCOM)技术,以及后来产生的包括COM+和.NET的技术。一般来说,这些应用连接架构为基于Windows的软件应用的连接构件/对象提供了常用的结构。过程管理工业中的这些基于构件的连接架构的一个特定的实施例是公知的现场设备工具(FDT)技术。FDT技术定义了在过程控制系统设置中所有现场设备和其主机间的通信和配置接口的标准。FDT技术包含两个主要构件:(1)FDT架构应用和(2)设备类型管理器(DTM)。FDT架构是一个主机应用,例如“顶层”过程管理软件应用,其可以基于FDT技术标准化的连接架构,与过程控制系统中任意的DTM通信和/或交互。DTM是一个与特定现场设备或其他过程控制系统设备相关联的软件包,该软件包包含所有的设备特定的数据、功能和管理规则,以及用于操作员和/或工程师通过FDT架构应用配置、操作和/或维护设备的用户界面单元。进一步地,已知为CommDTMs的一些DTMs特别地为通信设备开发(例如,网关、多路复用器等等),以使得数据能够从一个协议变换至另外一个协议(譬如,以太网,HART,PROFIBUS等等)。因此,FDT技术使得来自任意制造商的设备能够无缝整合,该些制造商通过单一的用户界面(譬如,FDT架构应用)来在一个或多个现场总线协议上遵守FDT架构。上述另一个基于构件的连接架构的实施例是已知的基于FDT技术构建的现场设备界面或现场设备整合(FDI)。特别地,FDI技术采用FDT技术,并融入已知的关于设备描述(DD)技术的过程工业中的标准,从而进一步使得过程控制系统设置中现场设备之间能够连接并通信。

技术实现要素:
公开了用于减少一种过程控制系统中软件应用的存储需求的方法和装置。在一个实施例中,设备包括主进程空间,用于执行主应用;主用户界面,其与所述主应用相关联,并且呈现于显示器上以在过程控制系统中使用;以及次级应用,用于通过所述主应用调用。所述次级应用包括:客户端应用,用于使得所述主应用和所述次级应用之间能够交互;以及服务器应用,其服务于所述客户端应用,以实施至少一个软件构件,从而生成与所述次级应用相关联的次级用户界面,其中所述次级用户界面用于与所述主应用通信,以在所述主用户界面中呈现。还公开了另一个实施例,一种方法,包括:通过与主应用相关联的主用户界面接收请求,该主应用与过程控制系统相关联,以执行与该过程控制系统中的设备相关联的次级应用中的至少一个构件,其中该次级应用包括客户端应用和服务器应用,并且,其中该至少一个构件由该服务器应用实施;实例化该客户端的第一实例,以使得能够与该主应用进行交互;实例化该服务器应用,以服务该客户端应用;基于由该服务器应用实施的至少一个构件,生成与该客户端应用的第一实例相关联的次级用户界面;以及使该次级用户界面与该主应用通信,用于在该主用户界面上呈现。附图说明图1为示例的过程控制系统的示意图,在该过程控制系统中可以实施本发明的教导;图2描述了实施图1中示例的操作员站的示例的方法;图3描述了已知的与图2中示例的主应用相关联的主用户界面的显示,以及与图2中次级应用的第一和第二实例相关联的第一和第二次级用户界面;图4A描述了另外一个已知的具有已知软件架构的主用户界面的显示,其在主用户界面的窗口中显示图3的第一次级用户界面;图4B描述了已知的图4A的显示,图3中第二次级用户界面在图4A的主用户界面窗口中显示;图5描述了示例的软件架构,其用以生成图4A和4B的显示400;图6A描述了示例的单用户/单进程进程空间架构,用于实施图5的软件架构;图6B描述了示例的多用户/多进程进程空间架构,用于以示例的进程外的服务器架构实施图5的软件架构;图6C描述了可替代的示例的进程外服务器架构,其可以在图6B的进程空间架构中实施;图7是可以用于实施图5的示例的软件架构、图6A-6C的示例的进程空间架构,和/或,更一般的,图1和/或2的示例的操作员站的示例的进程的流程图;图8是示例的计算机800的示意图,其可以被使用或编程为实施图7的示例的过程。具体实施方式很多过程控制系统包括多个不同的设备和其他可以由多个不同制造商生产的装置。进一步地,每个制造商往往开发了自己专有的软件应用,这些应用与每个设备相关联。然而,产业还是开发了标准化的非专有的应用连接架构(譬如,FDT技术),该连接架构可以被整合到每个设备特定的软件应用(譬如DTM),从而使得同样符合标准化架构的“顶层”过程管理软件应用(譬如,FDT结构的应用)能够识别并与设备特定的软件进行交互,该软件与每个不同的设备相关联。尽管下面对实施例的描述主要基于FDT技术,但本公开的教导可适用于其他任何适合的基于构件的连接架构,例如,譬如上述的FDI技术。典型的,当操作员和/或工程师想要诊断、配置、校准、或与过程控制系统中的设备进行任何交互时,他们需要通过过程管理软件应用调用感兴趣的设备的设备特定的软件。一旦被调用,设备特定的软件将基于标准化架构执行所选择的任务,并提供相应的输出至过程管理软件应用以显示,该标准化架构与过程管理软件和设备特定的软件相连接。因此,尽管显示可以被整合进与主应用相关联的一个单独的用户界面,但是包含与设备相关联的功能化的软件构件和/或用户界面软件构件的核心的业务逻辑仍将被相应的设备特定的软件所包含并执行。在一些情况下,操作员和/或工程师可能需要在多个设备上同时进行配置、诊断、校准等。因此,每当他们选择关注一个新的设备,过程管理软件应用将调用相应的设备特定的软件。进一步,当操作员和/或工程师想要通过关注分布在整个过程控制系统不同位置的多个相同或相似的设备时,过程管理软件应用将调用相关联的设备特定的软件的单独实例,即使每个所选择的设备均含有与其相关联的相同的软件。例如,过程控制系统可以具有多个由同一家制造商生产的阀,因此,每个阀可与同样的专有软件相关联,该专有软件包含同样的业务逻辑以执行配置、校对、诊断或其他与每个阀相关联的任务。从而,如果操作员和/或工程师想要控制多个这样的阀,由每个所选择的阀共享的设备特定的软件的相同的核心功能构件和/或用户界面构件可以被多次实例化。相同软件构件的多余的实例将增加计算机存储需求和/或降低过程管理和相关软件应用的性能。图1是可以实施本公开教导的示例的过程控制系统100的示意图。图1的示例的过程控制系统100包括一个或多个过程控制器(其中一个以附图标记102表示),一个或多个操作员站(其中一个以附图标记104表示),以及一个或多个工作站(其中一个以附图标记106表示)。示例的过程控制器102、示例的操作员站104和示例的工作站106通过总线和/或局域网(LAN)108通信地耦接,该总线和/或局域网通常称为应用控制网络(ACN)。图1的示例的操作员站104可允许操作员和/或工程师检查和/或操作一个或多个操作员显示屏和/或应用,其使得操作员和/或工程师能够查看过程控制系统的变量、状态、条件、警报;改变过程控制系统的设置(譬如,设定点、操作状态、清除警报、关闭警报等);配置和/或校准过程控制系统100中的设备;执行过程控制系统100中设备的诊断;和/或其他与过程控制系统100中的设备的交互。结合图2,在下文描述图1的示例的操作员站104的示例的实施方法。示例的操作员站104包括和/或实施主应用(例如,图2中的示例的主应用),以充当过程管理软件应用。主应用与主用户界面(例如,图4中的示例的主用户界面)相关联,以显示信息和/或提供过程控制系统的状态及其构件部分的可视指示。当操作员和/或工程师通过主应用的主用户界面实现对过程控制系统的高层次的纵览时,它们可能还需要更详细的信息和/或对过程控制系统内特定的设备进行控制。因此,示例的操作员站104还包括和/或实施一个或多个与特定设备相关联的次级应用(例如,图2的示例的次级应用),该次级应用包含核心业务逻辑和功能构件,以实现特定设备的任务,其包括维护、校正、可靠性测试、配置、诊断、通信、数据收集和存储、电子邮件、打印等等。进一步,示例的次级应用还包括核心用户界面构件,以生成对应于与特定设备相关联的前述任务的次级用户界面的内容。在一些例子中,操作员和/或工程师可以通过主应用调用次级应用。主应用充当“顶层”主机应用,以与过程控制系统内的多个设备的次级应用连接和/或通信。进一步,在一些例子中,主应用和次级应用间的连接结构能够让次级应用产生的输出显示中的一些或全部呈现在主用户界面中。因此,当相应的次级应用执行特定的设备的核心功能和用户界面软件构件时,次级用户界面(或次级用户界面的部分)所产生的内容可以嵌入主用户界面,从而使得操作员和/或工程师能够通过主用户界面进行检查和/或交互。图1中示例的工作站106可以配置为应用站以执行一个或多个信息技术应用、用户交互应用和/或通信应用。例如,工作站106可以被配置为主要执行过程控制相关的应用,而其他的应用站(图中未显示)可以被配置为主要执行通信应用,该通信应用使过程控制系统100能够使用任何期望的通信媒介(例如,无线、电路等)和协议(例如,HTTP,SOAP等等)与其他设备或系统通信。使用一个或多个工作站和/或任何其他适合的计算机系统和/或处理系统,可以实施图1中示例的操作员站104和示例的工作站106。例如,通过使用单处理器个人电脑、单或多处理器工作站,能够实施操作员站104和/或工作站106。图1中示例的局域网108可以通过任何期望的通信媒介和协议实现。例如,示例的局域网108可以基于电路和/或无线以太网通信方案。然而,本领域普通的技术人员可以很容易地想到,任何其他合适的通信媒介和/或协议均可以被采用。进一步,尽管图1中示出了一个局域网108,但是多个局域网和/或其他可替代的通信硬件部件可以被采用,从而在图1的示例的系统间提供多余的通信路径。图1的示例的控制器102通过数据总线116和输入/输出(I/O)通道118耦接至多个智能现场设备110、112和114。智能现场设备110、112和114可以是现场总线兼容(Fieldbuscompliant)阀、致动器、传感器等等,在这种情况下,智能现场设备110、112和114采用公知的基础现场总线协议(FoundationFieldbusprotocol)、通过数据总线116进行通信。当然,也可以使用其他类型的现场设备和通信协议进行代替。例如,替代的,智能现场设备110、112和114可以为Profibus和/或HART兼容(Profibusand/orHARTcompliant)设备,其使用公知的Profibus和HART通信协议通过数据总线116通信。额外的I/O设备(与I/O通道118类似或相同)可以耦接至控制器102,以使得额外的多组智能现场设备能够与控制器102通信,这些智能现场设备可以是基础现场总线设备、HART设备等等。除了示例的智能现场设备110、112和114,一个或多个非智能现场设备120和120可以通信地耦接至示例的控制器102。图1中示例的非智能现场设备120和120可以是,例如,传统的4-20mA或0-24伏直流设备,它们可以通过各自的电路连接与控制器102进行通信。图1中示例的控制器102可以是,例如由Emerson过程管理公司旗下Fisher-RosemountSystems公司销售的DeltaVTM控制器。当然,也可以用任何其他的控制器代替。进一步,尽管图1中仅示出了一个的控制器102,但任何期望类型和/或类型的结合的额外的控制器和/或过程控制平台也可以耦接至局域网108。在任何情况下,示例的控制器102执行与过程控制系统100相关联的一个或多个过程控制例程,该例程由系统工程师和/或其他系统操作员使用操作员站104生成,并下载至控制器102和/或在控制器102中实例化。尽管图1示出了示例的过程控制系统100,在该过程控制系统100中,可以有利地使用用于显示下文中将更加详细描述的过程管理软件应用的界面的方法与设备,然而,如果需要,在此描述的用于控制呈现给操作员和/或工程师的信息的方法和装置可以有利地在比图1示出的例子更复杂或不复杂(例如,具有多个控制器,横跨多个地理位置)的过程工厂和/或过程控制系统中使用。图2描述了一种实施图1中示例的操作员站104的示例方法。虽然下面的描述与操作员站104相关,实施示例的操作员站104的示例的方法也可以用于实施图1中的示例的工作站106。图2中示例的操作员站104包括至少一个可编程处理器200。图2中示例的处理器200执行处理器200的主存储器202(例如,在随机存取存储器(RAM)中和/或在只读存储器(ROM)中)中的编码指令。处理器200可以是任何类型的处理单元,例如处理器内核、处理器和/或微控制器。此外,处理器200可以执行操作系统204、主应用206、主用户界面208以及一个或多个次级应用210。虽然已知的软件架构可以将次级应用210作为单独的应用执行,但是在公开的示例中次级应用210可以通过客户端应用部分212和服务器应用部分214来执行。示例的操作系统204是来自的操作系统。图2中示例的主存储器202可以由处理器200实现和/或在处理器200中实现,还可以是可操作耦接至处理器200的一个或多个存储器或存储设备。为了允许操作员和/或工程师与示例的处理器200进行交互,图2的示例的操作员站104包括任何类型的显示器216。示例的显示器216包括,但不限于,计算机监视器、计算机屏幕、电视、移动设备(例如,智能手机,BlackberryTM和/或iPhoneTM等),其能够显示用户界面和/或由处理器200实施的应用和/或,更一般地,示例的操作员站104。图2中示例的操作系统204通过示例的显示器216和/或在示例的显示器216上显示和/或有助于显示示例的主应用206的示例的主用户界面208。类似的,示例的操作系统204显示和/或有助于显示与示例的次级应用210相关联的次级用户界面。下文中结合图3-5对示例的主用户界面210进行描述。示例的主应用206可以是“顶层”过程管理软件应用或其他任何人机界面(HMI)软件应用,其使得操作员和/或工程师能够得到过程控制系统(例如,图1中的过程控制系统100)的高层次的纵览,和/或控制、配置、诊断,或其他关于过程控制系统100中的过程和构件的交互和/或获取数据。更特别地,主应用206可以调用和/或与过程控制系统100中的各种设备和其他构件通信,上述的设备和构件包括与每个控制系统构件相关联的任何软件,例如次级应用210。经常地,通过执行上述的次级应用210可获得期望的信息或执行期望的任务,其包括与特定的设备相关联的核心业务逻辑、功能构件、和/或用户界面构件。在很多已知的过程控制系统中,对应于特定的设备的每个次级应用210是单一的应用。如此,当操作员和/或工程师想要与特定的设备进行通信或交互时,整个对应的次级应用210将被调用,并在存储器202中实例化。进一步,在典型的过程工厂中,操作员和/或工程师可能需要在每次对多个设备进行诊断、校准、配置等等。然而,通常的,分布在过程工厂中不同的位置处的感兴趣的设备是相同或相似的设备。例如,一个过程工厂可具有分布于过程空间的数百个相同或类似的阀。因此,这些设备中的每一个可与通用的次级应用210相关联。然而,在很多已知的过程控制系统中,每次操作员或工程师通过主应用206调用次级应用210,次级应用210的新的实例被实例化,即使次级应用210已经为其他设备调用。结果,次级应用210的多次复制可对计算机存储资源产生不必要的负担,从而降低了效率,并增加了成本。为了减小由同一个次级应用210的多个实例导致的占用大量存储的影响,此处所描述的示例的次级应用210包括客户端应用部分212,以及用于服务客户端应用212的服务器应用部分214。特别地,服务器应用214可以包含并执行次级应用210的大部分或其任一部分,包括次级应用210的核心功能构件和/或核心用户界面构件的任一或全部。客户端应用212继而作为次级应用210的前端使用,以使得能够与如上所描述的主应用206形成连接关系。因此,从主应用206的角度,客户端应用212和服务器应用214共同地如同单一的应用运行。这就是说,因为服务器应用214通过执行次级应用210的核心软件构件服务客户端应用212,客户端与主应用206相接,以在主应用206和服务器应用214之间提供无缝连接。因此,上述例子中的次级应用210能够合并到任何过程控制系统中,而不必改变主应用206或不必改变除了最初被完成的用于实施本质上是单一的许多已知次级应用之外的任何东西。结合图4、5,对主应用206和次级应用210之间的界面(经由客户端应用212)、以及客户端应用212和服务器应用214之间的界面进行更详细地描述。虽然图2已经示出了实现图1的示例的操作员站104的示例的方法,但图2中描述的数据结构、元件、过程和设备可以任何其他方式结合、分开、重布置、省略、消除和/或实施。进一步,图2中示例的操作系统204、示例的主应用206、示例的主用户界面208、示例的次级应用210、示例的客户端应用212、示例的服务器应用214,和/或,更一般的,示例的操作员站104可以由硬件、软件、固件和/或硬件、软件和/或固件的任意结合来实现。更进一步的,作为替代的或者除了图2中所示出的,示例的操作员站104可以包括额外的元件、过程和/或设备,和/或可以包括所示出的数据结构,元件,过程和/或设备中的任一或全部中的超过一个。图3描述了与图2中示例的主应用206相关联的主用户界面302的已知显示300,以及与次级应用210的第一和第二实例相关联的第一和第二次级用户界面304a-b。在一些示例中,主用户界面302可包括管道仪表图(P&ID)、过程流程图(PFD)、过程控制系统设备树、或其他过程工厂布局306显示(例如,使用文本和/或图像),过程控制系统(例如,过程控制系统100)中的一些或全部设备。如上所述,对关于工厂布局306中显示的特定的设备的详细信息感兴趣的操作员和/或工程师可以点击这些设备上,以调用与该设备相关联的次级应用212(图2)。如果共享通用次级应用212的多个设备被选择,每次额外的设备被选择时,次级应用212的额外实例被实例化。例如,操作员和/或工程师可能希望通过绘出图像和/或其他描绘与阀308和310中每一个相关联的感兴趣的特征的数据,诊断、校准、配置和/或实施过程工厂布局306中显示的第一阀308和第二阀310(二者均与同样的次级应用210相关联)上的其他任务。为了实施上述内容,操作员和/或工程师可以点击位于主用户界面302中的工厂布局306中的第一阀308,由此调用与第一阀308相对应的次级应用210的第一实例。次级应用210的第一实例一旦被调用,其将基于诊断、校准、配置和/或由次级应用210执行的其他任务产生具有所需内容的相应的次级用户界面304a。操作员和/或工程师然后可以对第二阀310重复该过程,以使得次级应用210的第二实例生成包含了与第二阀310对应的输出数据的第二次级用户界面304b。因此,尽管第一和第二次级用户界面304a-b显示的内容不相同,但是在每个情况下相同的任务使用相同的计算机代码的重复实例(也即,相同的次级应用210的两个实例)来执行。更进一步,除了次级应用210的常用功能构件的复制,次级应用210的用户界面构件也被复制,以生成分开的第一和第二次级用户界面304a-b。通过多次调用相同的次级应用212以实现同样的功能而产生的多余量不必要地增加了对计算机存储资源的需求,由此潜在地降低了效率和/或增加了运行图1的过程控制系统100的成本。参阅图4A和4B,图中描述了另外一个已知的主用户界面402的显示400和已知的软件架构404,以在主用户界面402中显示与工厂布局306的第一和第二阀308和310对应的第一和第二次级用户界面406a-b。如结合图3所描述的,每个次级用户界面406a-b由次级应用210单独的实例支持。在很多典型FDT实施中,FDT框架应用(例如,主应用206)提供了视窗或框架408,在窗口或框架408中单个DTM(即,次级应用210中的一个)可以显示内容(即,次级用户界面406a)。因此,图4A示出了第一次级用户界面406a显示在主用户界面402的框架408中的已知的显示400,而图4B示出了第二次级用户界面406b显示在主用户界面402的框架408中的图4A的已知的显示400。虽然在本产业中不经常使用,但是FDT框架应用可以适用于同时刻地为来自多个DTM的内容提供各自的屏幕空间。例如,可以使主用户界面402能够在同一时间显示次级用户界面406a-b。如此,虽然每次只显示次级用户界面406a-b中的一个,但是次级应用210的两个实例同时被实例化,并与主应用206连接。特别地,主应用206(图2)和次级应用210的每个实例通过上述的应用连接架构交互以在应用间传输数据,包括由次级应用210对应的实例产生的、显示于主用户界面402的框架408中的次级用户界面406a-b。图4A和4B中显示的次级应用210的每个实例均与主应用206独立连接。因此,图4中次级应用210的每个实例执行相同的核心功能构件410和相同的用户界面构件412,以执行所请求的任务和生成对应于所选择的阀308和310中的每一个阀的第一和第二次级用户界面406a-b。为了使第一和第二次级用户界面406a-b能够显示在主用户界面402中,已知软件架构404中的次级应用210的每个实例可以包含应用连接构件414,该应用连接构件414包含符合应用连接架构的标准化代码,以在次级应用210的每个实例和主应用206间建立连接。如此,次级应用210的每个实例可以接收来自主应用206的请求,并提供相应的输出(例如,次级用户界面406a-b),以嵌入在主用户界面402中。类似的,主应用206可以包含由应用连接架构定义的标准化代码,以将该请求发送至次级应用210并在主用户界面402中提供显示次级应用210输出的框架408。更特别地,建立在主应用206和次级应用210之间的部分连接关系包括由主应用206提供的指针,例如句柄或其他智能指针,其指向框架408的位置,以使得次级应用210可以经由指针直接传输待显示在主用户界面402中的内容。除了可在框架408中显示的图形化内容,次级用户界面406a-b可以包含按钮416和/或其他交互的元件,以使得操作员和/或工程师能够与主用户界面402的框架408中显示的内容进行交互。图5示出了示例的软件架构500,其可以用于生成图4A和4B的显示400。虽然图5中的显示400和图4A中的显示400相同,即第一次级用户界面406显示于主用户界面402的框架408中,但根本的软件架构500是不同的。不同于图4A和4B的已知的软件架构,其中次级应用210的每个实例均为全实例化单一的应用,示例的软件架构500中的次级应用210的第一和第二实例被分成客户端应用部分212的第一和第二实例(对应于第一和第二阀308和310)以及服务客户端应用212的两个实例的服务器应用部分314的单个实例。如所示出的,客户端应用212的每个实例均包含应用连接构件414,以与图4A和4B的单一的次级应用210相同的方式与主应用206连接(图2)。在描述的例子中,服务器应用214可以包含功能构件410和次级应用210的相关的业务逻辑,以执行与第一和第二阀308和310相关联的任何任务(譬如,校准、配置、诊断等等)。更进一步,服务器应用214可以包含次级应用210的用户界面构件412,以基于功能构件410执行的任何计算或其他任务的结果来生成第一和第二次级用户界面406a-b的内容。虽然图中的服务器应用214包含所有的用户界面构件412和次级应用210的功能构件410,但在其他示例中,次级应用210的构件可以任何适合的方式下在服务器应用214和客户端应用212之间划分。如前述,有客户端应用212的两个实例,但只有服务端应用214的一个实例。因此,不同于图4显示的已知的软件架构404,其中功能构件410在次级应用210的每个单独的实例中被多次实例化,图5中示例的软件架构500中的功能构件410只实例化一次,以服务客户端应用212的两个实例,并执行与第一和第二阀308和310对应的配置、校准、诊断和/或其他任务。类似的,图4显示的已知软件架构404在次级应用210的每个实例中对用户界面构件412进行多次实例化,而在图5所示出的示例中,服务端应用214对用户界面构件412仅实例化一次,以服务客户端应用212的两个实例。通过在服务器应用214的单个实例中放置核心功能构件和/或核心用户界面构件,可以明显减少客户端应用212所占用的存储量。例如,当操作员和/或工程师需要对特定的设备执行诊断、配置、校准等时,和前述一样,他们可以通过主应用206调用与关注的设备相关联的示例的次级应用210。然而,在所公开的例子中,关注的设备具有通用次级应用210,仅次级应用210的客户端应用212对于每个设备被实例化,而单个的服务器应用214被实例化,以服务客户端应用212的两个实例。因此,虽然有客户端应用212的两个实例(每个包含相同的应用连接构件414),但服务器应用214中包含的功能和用户界面构件410和412仅实例化一次,由此避免了这些构件的复制。进一步,功能和用户界面构件410和412通常包含次级应用210的主要部分。因此,由于服务器应用214仅实例化一次且客户端应用212的两个实例相对很小(即,具有相对小的存储占用量),示例的软件架构500的全部存储占用量大概是图4描述的已知软件结构404的存储占用量的一半。另外,当对除了客户端应用212的第一和第二实例以外的实例进行实例化时,由于它们也共享同一服务器应用214,因此节省的存储空间将更为明显。因此,客户端应用212的三个实例可以全部共享单个服务器应用214,意味着其存储占用量几乎是根据图4中已知软件架构404实施的次级应用210的全部三个实例的存储占用量的三分之一。因此,此处描述的示例的软件架构500可以有效地减少次级应用210的多个实例的存储占用量,从而通过减少全部存储的需求来运行所需应用,来为其他应用释放存储,提升系统的效率,和/或减少成本。如上所述,通过基于任何合适的应用连接架构,在主应用206和客户端应用212之间建立连接,客户端应用212的每个实例均可以与主应用206交互。由于图5中客户端应用212的第一和第二实例的应用连接构件414与图4中次级应用210的第一和第二实例的应用连接构件414相同,因此,主应用206和客户端应用212之间的接口与结合图4所描述的主应用206和次级应用210之间的接口相同。因此,从主应用206的角度来看,图4A和4B中描述的已知架构404和图5中示出的示例的软件架构500之间没有功能性的不同。因此,主应用206的软件开发者可以实施示例的软件架构500,而无需改变他们的软件产品,只要主应用206已经符合应用连接架构标准来建立主应用206和客户端应用212之间的关系。更进一步,主应用206仍可以和与不实施此处所描述的示例的软件架构500的设备相对应的单一的次级应用210(如图4所述)进行交互。客户端应用212的第一和第二实例除了和主应用206连接,客户端应用212的第一和第二实例还和服务器应用214连接。在一些例子中,客户端应用212和服务器应用214以与上述主应用206和次级应用212通信和/或交互一样的方式进行通信和/或交互。这就是说,服务器应用214也可以包含与客户端应用212的实例的应用连接构件414类似的标准化代码,所述代码符合当前应用执行的应用连接架构,从而使得每个应用能够对其他的构件进行识别、实例化、和/或交互。由于客户端应用212与主应用206和服务器应用214相连接,因此主应用206和服务器应用214能够通过客户端应用212的一个实例间接地通信和/或交互。在一些例子中,客户端应用212可以在主应用206和服务端应用212之间仅提供传递的功能。例如,当主应用206为客户端应用212的一个实例提供指针时,客户端应用212的实例可以与服务器应用214共享该指针。因此,由于服务器应用214计算数据或确定将显示在主用户界面208中的其它内容时,因此,通过客户端应用212共享的指针,这些内容从服务器应用214直接传输至主用户界面402的框架408。类似的,当通过主用户界面206请求关于特定的设备的数据、图形、和/或其他任务时,对应的客户端应用212可以与服务器应用214共享该请求,该服务器应用214包括功能和/或用户界面构件,以提供和/或执行请求的数据、图形、和/或其他任务。前面讨论的示例的软件架构500可以根据FDT标准实施,主应用206和客户端应用212之间的接口,以及客户端应用212和服务器应用214之间的接口可以基于任何其他合适的连接架构,该连接架构标准化了软件应用的构件如何交互。特别地,由连接架构使能的软件应用间的交互可包括确定其它软件应用的构件/对象的存在和/或可用性,确定其它软件应用的构件/对象的能力,实例化其它软件应用的构件/对象,建立与其它软件应用的其他构件/对象之间的通信(相互通信)和/或建立与同一软件应用的其他构件/对象之间的通信(内部通信)等等图6A-6C描述了用于实施图5的软件架构500的示例的进程空间架构600和602。特别的,图6A描述了示例的单用户/单进程架构600,图6B描述了具有示例的进程外的服务器架构604的多用户/多进程架构602,以及图6C描述了可替代的示例的进程外服务器架构606,其可以在图6B的进程空间架构602中实施。参阅图6A的细节,这里描述了用于执行图2的主应用206的实例的单个主进程空间608。在所示出的例子中,主应用206根据图5的示例的软件架构500,已经调用客户端应用212的多个实例。进一步,图6A的主进程空间600也包含用于服务客户端应用212的多个实例的服务器应用214。虽然在示出的例子中显示了客户端应用212的三个实例,但通过主应用206可以调用客户端应用212任何适合数目的实例。图6B描述了具有两个单独的主进程空间608的示例的多用户/多进程架构602,每个主进程空间执行主应用206的实例。如所示,多用户/多进程架构602也包含示例的进程外服务器架构604,其中服务器应用214在服务器进程空间610中被执行,服务器进程空间610与主进程空间608彼此分开。虽然仅显示了客户端应用212的两个实例,但通过此处描述的多客户端/多进程架构602可以实施任意合适数目的主应用206。类似的,虽然只显示了一个进程外的服务器架构604,然而任意适当数目的、包含单独的服务器应用214的服务器进程空间610可以被实施。图6A和6B主要的不同在于图6B中的服务器应用214可以是服务器进程空间612中用于在进程外执行的独立可执行文件(EXE),而图6A中的服务器应用214可以是利用主应用206进行进程内运行的动态链接库(DLL)文件。在其他方面,进程空间结构600、602和不同的应用以相同的方式工作。例如,不考虑进程空间架构(是否根据图6A或6B),主应用206的一个或多个实例中的每一个,客户端应用212的一个或多个实例中的每一个,以及服务器应用214的一个或多个实例中的每一个建立连接关系,以与结合图4和5所描述的方式相同的方式进行通信和/或交互。不同的进程空间架构600和602提供了不同的优点,其可以依赖于实施进程空间架构600和602的特定的应用和环境被使用。例如,图6A中示例的单用户/单进程架构600可以在单进程空间中有利地执行,从而提升主应用206和客户端应用212之间的通信性能,因为它们处于同样的进程空间中(即主进程空间608)。然而,如果图6A中示例的架构600的服务器应用214发生故障,主应用206将同样发生故障,因为它们处于同样的进程空间中(即主进程空间608)。相反地,图6B中的示例的多用户/多进程架构602通过将服务器应用214放置在其自身的进程空间中,来解决这个问题。因此,当服务器应用214在多用户/多进程架构602中实施时,如果服务器应用214发生故障,它将不会使主应用206中断,因为它们运行在分开的进程空间中(即,主进程空间608)。进一步,多客户端/多进程架构602的优点在于服务器应用214可以服务多个用户(例如,图1和/或2中描述的分开的操作员站104)。图6C描述了可替换的示例的进程外服务器架构606,其可以在图6B的多客户端/多进程架构602中被执行。如所示出的,服务器应用214可以是位于可执行包装器(例如,服务器应用包装器612)中的DLL文件。在这种方式下,服务器应用214,作为DLL文件,与服务器应用包装器612同进程运行,而服务器包装器612(EXE文件)在分开的服务器进程空间610中相对于图6C中示出的主进程空间608进程外运行。因此,图6A的单用户/单进程架构600和图6B的多客户端/多进程架构602可以通过对于多客户端/多进程架构602将服务器应用214布置在服务器包装器612内而以具有同样文件格式(即,DLL)的服务器应用214来实现。图7是可以用于实施图5的示例的软件架构500、图6A-6C的示例的进程空间架构600和602、和/或,更一般的,图1和/或2的示例的操作员站的的示例的过程的流程图。尤其地,图7的示例的进程可以代表机器可读指令,其包括在下文中结合图8进行讨论的示例的计算机800中显示的例如处理器812之类的处理器执行的程序。该程序可以整合于存储在有形的计算机可读媒介上的软件中,有形的计算机可读媒介譬如是CD-ROM、磁盘、硬盘、DVD、蓝光盘、或与处理器812相关联的存储器。可替代的,图7的示例的进程的一些或全部可以使用专用集成电路(ASIC)、可编程逻辑器件(PLD)、现场可编程逻辑器件(FPLD)、离散逻辑、硬件、固件等的任意组合来实施。同样,图7的示例的操作中的一个或多个可以手动地或以任意前述技术的任意组合来实现,例如,固件、软件、离散逻辑和/或硬件的任意组合。进一步,虽然参照图7所示的流程图描述了示例的过程,但是很多其他实施图5中示例的软件架构500、图6A-6C中示例的进程空间架构600和602、和/或图1和/或2中的示例的操作员站104可以可替代地使用。例如,可以改变模块执行的顺序,和/或改变、去除或组合其中的一些模块。额外地,图7的示例的进程的任意或全部可以通过例如单独的处理线程、处理器、设备、离散逻辑、电路等顺序地和/或并行地执行。如上所述,图7的示例的过程可以使用存储于有形的计算机存储媒介上的代码指令(例如,计算机可读指令)来实现,有形的计算机存储媒介譬如是硬盘、快闪存储器、只读存储器(ROM)、光盘(CD)、数字多功能光盘(DVD)、缓存、随机存取存储器(RAM)和/或信息可以在其中存储任意时长(例如,延长的时间周期,永久地,简短的实例,用于临时缓存、和/或用于缓冲信息)的任何其他存储媒介。如这里所使用的,明确定义了有形的计算机可读媒介,以包括任何类型的计算机可读存储器,并排除传播信号。额外地或可替代地,图7的示例的过程可以使用存储在永久的计算机可读媒介上的指令来实现,所述媒介譬如是硬盘、快闪存储器、只读存储器(ROM)、光盘(CD)、数字多功能光盘(DVD)、缓存、随机存取存储器(RAM)和/或信息可以在其中存储任意时长(例如,延长的时间周期,永久地,简短的实例,用于临时缓存、和/或用于缓冲信息)的任何其他存储媒介。如这里所使用的,明确定义了永久的计算机可读媒介,以包括任何类型的计算机可读存储器,并排除传播信号。如这里所使用的,当“至少”这种表达用作权利要求前序的过渡词时,这是开放式的,如同“包括”也是开放式的一样。因此,在其前序中使用“至少”作为过渡词的权利要求可以包括除了权利要求中记载之外的元件。图7的示例的过程在块700处开始,其中,次级应用210(图2)接收来自主应用206(图2)的请求,以执行次级应用210的构件。如图2所示的例子,次级应用210包括客户端应用212和服务器应用214。进一步,次级应用210的核心功能构件410(图5)和/或核心用户界面构件412(图5)可以位于服务器应用214中,而应用连接构件414(图5)可以位于客户端应用212的实例中,以与主应用206进行交互。因此,在块702处,建立了主应用206和客户端应用212实例的接口。尤其的,当调用客户端应用212的实例时,其在存储器202中实例化。客户端应用212的实例和主应用206通过客户端应用212中的应用连接构件414以及主应用206中对应的应用连接构件建立联系。除此之外,主应用206可提供指向主用户界面402的框架408(图5)的指针给客户端应用212,在主用户界面402中,次级应用210的对应的次级用户界面(例如,图5中次级用户界面406a-b)可以呈现。为了执行由主应用206请求的构件,因为服务器应用214包含请求的构件,客户端应用212的实例将试图与服务器应用214建立联系。为此,图7的过程确定服务器应用214是否已经为客户端应用212的另一个实例进行实例化(块704)。如果服务器应用214并未被客户端212的其他任意实例调用,将实例化服务器应用(块706)。一旦服务器应用214被实例化,客户端应用212建立与服务器应用214的连接(块708)。然而,如果在图7示例的过程中确定服务器应用214已经被实例化(块704),控制直接前进至块708,其中,客户端应用212的实例建立与已经实例化的服务器应用214的连接。客户端应用212的实例和服务器应用214之间的接口与客户端应用212和主应用206之间的接口相似。这意味着,客户端应用212通过客户端应用212的应用连接构件414和服务器应用214中相应的连接构件与服务器应用214连接。服务器应用214然后可服务客户端应用的实例和已经同服务器应用214建立连接的客户端应用212的其他任何实例。在块710中,客户端应用212的实例可以与服务器应用共享从主应用处接收的指针。在这种方式下,与客户端应用212的实例对应的次级用户界面(例如,图5中次级用户界面406a-b)的内容可被直接发送至主用户界面210的窗口408中。图7示例的过程然后前进至块712,在块712处,服务器应用214生成与正被服务器应用214服务的客户端应用212的实例相关联的次级用户界面。服务器应用214通过执行包含在服务器应用214中的任意或全部的功能构件410和/或包含在服务器应用214中的任意或全部的用户界面构件412,来确定生成次级用户界面的数据。服务器应用214也可基于通过主用户界面206产生的额外用户输入来确定次级用户界面的内容。服务器应用214通过由客户端应用的实例共享的指针,发送与客户端应用212相关联的所生成的次级用户界面至主应用206(块714)。一旦次级用户界面提供至主应用206,主应用206可在主用户界面208的框架408中显示次级用户界面.图7的示例的过程然后确定客户端应用212的实例是否结束使用服务器应用212(块716)。如果客户端应用212的实例仍在使用服务器应用214,控制返回至块712和714,其中,服务器应用214继续为客户端应用212的实例生成次级用户界面。然而,如果客户端应用212的实例结束使用服务器应用214,客户端应用212和服务器应用214之间的连接将断开(块718)。图7的示例的过程然后确定客户端应用212的其他实例是否仍然与服务器应用214连接(块720)。如果是,控制返回至块712和714,用于服务器应用214继续服务客户端应用212的其他实例。如果客户端应用212的其他实例没有使用服务器应用214,控制进行至块722,其中,示例的过程确定是否要等待来自主应用206的新的请求,以执行次级应用210的构件。如果是,则控制返回至块700,其中,重复图7的示例的过程;如图7的过程决定不等待来自主应用206的额外的请求,则过程结束。图8是示例的计算机示意图,其可以被使用和/或编程为实施图7的示例的过程和/或,更一般地,实施图5中的软件架构500,图6A-6C的示例的进程空间架构600和602,和/或图1和/或2的示例的操作员站104。本例的系统800包括处理器812。例如,处理器812可以由来自任何期望公司或制造商的一个或多个微处理器或控制器来实现。处理器812包括本地存储器813(例如,缓存),并通过总线818与包括易失存储器814和非易失存储器816的主存储器通信连接。易失存储器814可以由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或任何其他类型的随机存取存储器实现。非易失存储器816可以由快闪存储器和/或任何其他所期望的类型的存储设备实现。通过存储控制器控制对存储器814和816的存取。计算机800还包括接口电路820。接口电路820可以由任何类型的标准接口实现,譬如,以太网接口、USB、和/或PCI-E接口。一个或多个输入设备822可连接至接口电路820。输入设备822允许用户可以对处理器812输入数据和指令。输入设备可以通过例如,键盘、鼠标、触摸屏、触控板、轨迹球、感光点和/或语音识别系统来实现。一个或多个输出设备824也连接至接口电路820。输出设备824可以通过例如,显示设备(例如,液晶显示器、阴极射线管显示器、打印机和/或扬声器)来实现。因此,接口电路820通常包括图形驱动卡。接口电路820还包括通信设备,譬如调制解调器或网络连接卡,从而有助于通过网络826(例如,以太网连接、数字用户线(DSL)、电话线、同轴电缆、手持电话系统等等)与外部计算机进行数据交换。计算机800还包括用于存储软件和数据的一个或多个大容量存储设备828。大容量存储设备828的例子包括磁盘驱动器、硬盘、光盘驱动器和数字多功能光盘(DVD)驱动器。用于实施图7示例的过程的编码指令832可以存储在大容量存储设备828、易失存储器814、非易失存储器816,和/或例如CD或DVD之类的可移动存储装置。虽然在此描述了示例的方法、装置以及工业制造品,但并非根据此来限制本专利的保护范围。这些例子是非限制性的例证。相反的,不论是字面等同或是原则等价,本专利涵盖了所有的落入权利要求保护范围的方法、装置以及工业制造品。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1