首页> 中国专利> 用于减少过程控制系统软件应用的存储需求的方法与装置

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

摘要

公开了过程控制系统中用于减少软件应用的存储需求的方法与装置。示例的装置包括:主进程空间,用于执行主应用,以在过程控制系统中使用;主用户界面,其与主应用相关联,并且用于呈现于显示器上;以及次级应用,用于通过主应用调用。次级应用包括:客户端应用,用于使得主应用和次级应用之间能够交互;以及服务器应用,其服务于客户端应用,以实施至少一个软件构件,从而生成与次级应用相关联的次级用户界面。次级用户界面用于与主应用通信,以在主用户界面中呈现。

著录项

  • 公开/公告号CN103294023A

    专利类型发明专利

  • 公开/公告日2013-09-11

    原文格式PDF

  • 申请/专利权人 费希尔控制国际公司;

    申请/专利号CN201310067768.6

  • 发明设计人 D·C·因格拉姆;

    申请日2013-02-27

  • 分类号G05B19/418;

  • 代理机构北京市金杜律师事务所;

  • 代理人郑立柱

  • 地址 美国爱荷华州

  • 入库时间 2024-02-19 20:43:39

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-11-07

    授权

    授权

  • 2015-02-18

    实质审查的生效 IPC(主分类):G05B19/418 申请日:20130227

    实质审查的生效

  • 2013-09-11

    公开

    公开

说明书

技术领域

本公开大体涉及计算机软件架构,尤其涉及减少过程控制系统 软件应用存储需求的方法与装置。

背景技术

过程控制系统,像那些在化学、石油或其他过程中用到的系统, 典型地包括一个或多个过程控制器,该过程控制器通过模拟总线、 数字总线或组合的模拟/数字总线通信地耦合至一个或多个现场设 备。现场设备,其可以是,例如阀、阀定位器、开关、变送器(譬 如温度、压强和流速传感器)。现场设备在过程中执行过程控制功 能,譬如打开或关闭阀以及测量过程参数等。过程控制器接收指示 由现场设备所做的过程测量的信号,并处理该信息,以产生控制信 号,从而实施控制例程、作出过程控制决定,并发出过程控制系统 警报。

来自现场设备和/或控制器的信息经常通过数据总线或通信网 络提供给一个或多个其他硬件设备,譬如操作员工作站、个人电脑、 数据历史记录、报告生成器、集中式数据库等等。这些设备通常运 行“顶层”的过程控制系统软件应用,该应用使得操作员和/或工程 师能够实施任何一种关于过程控制系统的过程的功能,并与不同的 控制器、现场设备以及过程控制系统中的其他构件进行交互。除了 控制系统软件应用以控制过程控制系统的运行外,操作员和/或工程 师也可以使用资产管理软件应用和/或其他软件应用,进行建立、配 置、维护和/或测试过程控制系统中的构件和设备的可靠性(即,相 关联的过程是否确实处于操作中)。在这里,这些各种“顶层”软 件应用可以共同地被称为过程管理软件应用。

除了“顶层”过程管理软件应用,很多独立控制器、现场设备 和/或其他过程控制系统构件都具有关联的、与过程管理软件应用进 行交互的软件应用。然而,过程控制系统中的控制器、现场设备、 和/或其他构件可以由任何不同的制造商生产。因此,每个制造商均 可以提供不同的硬件设备,每个硬件设备均有相应的软件,其不同 于其他制造商的硬件与软件。进一步地,过程管理软件应用的开发 者可以与另外的实体相关联。因此,过程控制系统工业中的很多制 造商和软件开发者创建与标准化的应用连接架构相适应的硬件和软 件,从而使得过程控制系统中的不同的软件应用和过程硬件之间可 以交互。

过程控制系统工业中使用的典型的应用连接架构是基于由 开发的对象链接和嵌入(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可以是现场总线兼容(Fieldbus compliant)阀、致 动器、传感器等等,在这种情况下,智能现场设备110、112和114 采用公知的基础现场总线协议(Foundation Fieldbus protocol)、通 过数据总线116进行通信。当然,也可以使用其他类型的现场设备 和通信协议进行代替。例如,替代的,智能现场设备110、112和114 可以为Profibus和/或HART兼容(Profibus and/or HART compliant) 设备,其使用公知的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-Rosemount Systems公司销售的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之类的可移动存储装置。

虽然在此描述了示例的方法、装置以及工业制造品,但并非根 据此来限制本专利的保护范围。这些例子是非限制性的例证。相反 的,不论是字面等同或是原则等价,本专利涵盖了所有的落入权利 要求保护范围的方法、装置以及工业制造品。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号