用于灵活在线/离线部署n层软件应用程序的错接接口的制作方法

文档序号:6611237阅读:174来源:国知局
专利名称:用于灵活在线/离线部署n层软件应用程序的错接接口的制作方法
技术领域
本发明涉及一种产生带有处理层和过程层的n层的(即,至少两层的) 软件应用程序的方法,其中,每个层都被封装并因而可以独立于平台地运 行,并且,所封装的层通过应用接口相互通信。本发明同样涉及一种系统, 该系统用于产生一种带有在所封装的层之间的应用接口内的灵活的错接接 口的应用程序。
背景技术
软件应用程序的建立要求开发者在构想软件结构时具有高度的编程技 术知识和经验。迄今为止,应用程序几乎全部是单片式的(monolithisch) 并且因此作为一个应用程序块建立的,该应用程序块在必需的改动时(例 如软件更新时)总是必须被完全改变。这导致建立和维护该应用程序时需 要较高的成本。此外,这种基于单片式的系统相对容易出错。除了其中应用程序层可以仅仅在公用的计算机上运行的用于桌面应用 的应用程序之外,还已知有网络应用程序,其中应用程序层是为在客户机 -服务器结构上,即为在多个计算机上运行而设计的。不过,网络应用程 序也需要客户机-服务器结构,即在没有服务器的情况下是不可用的。在现有的应用程序系统中规定,应用程序访问各个动态或静态链接形 式的库,并在可执行文件形式的执行文件内运行。在此,该应用程序引用 多个不同的服务、组件和数据,它们为在不同的体系结构层面内分别调用 的应用程序提供所基于的软件结构。在现有技术下,这些服务直接地在一 个应用程序的源代码中实现,其中,该服务和组件部分地在不同的平台(例 如基于Windows或基于Linux的操作系统)上运行,以及在计算机网络内 的不同运行位置(例如桌面计算机或基于网络的服务器-客户机配置)上 运行。该应用程序事后的与变化的平台环境和/或其它的运行位置的匹配或 改动(也被统称为部署)由于对于不同部署(Deployment)的各自不同的软 件结构是不可能的。
因此问题在于,在为应用程序编制软件结构时,在改变或匹配其它应 用环境或其它部署时,迄今为止必须对所基于的软件结构进行调整,这通 常要求大量的改动。在此,首先应用程序的结构层在不同部署的计算机结 构上的布置总是重新由开发人员规定。尤其是必须为应用程序确定新的软 件结构,编制新的源代码并将其编译成可执行文件形式的执行文件。这种 措施要求较高的时间和资源成本来编制相应的应用程序,并使得现在必需 以用于不同部署的计算机应用的不同软件结构来并行开发不同的应用程 序。因此,存在所谓的框架结构(framework)作为开发人员的支持环境, 其中,框架结构经常在类运行时环境(generische Laufzeitumgebung)内封 装软件应用程序的各层。应用程序层被称作是被封装的,该层可以嵌入到 类运行时环境中与各平台和/或运行位置无关地运行。一种重要的框架结构是Microsoft公司的.NET框架结构。这种框架结 构提供了将不同编程语言(如C#、 Visual Basic.NET、 C++/CLI或 JScript.NET)用作n层应用程序的编程基础的可能性。应用程序和/或应用 程序的相应结构层独立于所用编程语言类型地转换成一种"中间语言" (Microsoft Intermediate Language ,微软中间语言;缩写为MSIL )。然后, 该用中间语言编写的应用程序被编译并被转换为执行文件。在此,各层之间必需的应用编程接口 (英语application programming interface;API)具有重要意义。区分为面向功能的、面向界面的、以及面向 协议的应用接口。与面向功能和面向界面的应用接口不同的是,面向协议 的应用接口与平台的操纵系统和应用程序所要连接的层的类型无关。不过, 目前并不能改变在两个封装的层之间一次确定的应用接口,因此,针对于 相应的部署,各种固有的、准单片式的软件应用程序是必需的。因此,DE 69819188 T2描述了 一种用于带有不同环境的计算机的编程 接口转换器。按照该发明, 一个服务程序产生并更新用于转换为一个平台 编写的应用接口的自动代码模块,以使得该模块可以在另一平台上正常运 行。为 一种操作系统或者一种其它的软件环境的每个新的开发步骤执行的 服务程序与用于产生翻译模块的基于由该应用接口执行的功能的源代码的一系列模板一起工作。DE 69908121 T2同样描述了 一种操作系统内的应用编程接口 。与该发
明相对应地给出了 一种系统,该系统包括用于带有有限资源的环境的 一组 用于多个软件模块及组件的应用接口 。带有有限资源的环境的 一个例子是 一种有多个用电器设备和专门的工控机的嵌入式系统,这些用电器设备和 工控机共同具有手持式或掌上个人电脑。现有技术中的所有借助框架结构产生n层应用程序的已知方法的缺点 在于,尽管应用接口可以针对必需的平台和运行位置进行转换,但是迄今 还不能将一次为一个部署确定的所述层的交互作用通过各个居间设置的应 用接口用于另一个部署。因此,现在还需要为不同的部署并行开发源代码 主体(Quellcodestaemmen )。发明内容因此,本发明所要解决的技术问题在于,使得在考虑到在一个计算机 网络中所用平台和运行位置的情况下能够独立于所基于的软件结构地集中 开发n层的应用程序。所述技术问题是通过一种产生带有处理层和过程层的至少两层的软件 应用程序的方法解决的,其中,各层都被封装并且所封装的层通过应用接 口相互通信。根据本发明,应用接口包括灵活的错接接口 ,并且灵活的错 接接口根据各封装层的所基于的平台提供对于通过应用接口在封装层之间 进行通信而言必需的通信规范概要(Kommunikationsprofile )。由此,可以 独立于相应的部署地使用应用程序的所基于的软件结构。仅仅在应用接口 中集成的错接接口与相应的部署相匹配。就本发明的意义而言,应用程序的封装层是软件结构的不同分级层面, 其中所述层面与平台无关,也与在计算机网络内的运行位置无关。各封装 层尤其在类运行时环境内运行并通过各类运行时环境的接口彼此结合成一 体。在各封装层向可连接的计算机网络内的不同运行位置的不同分布(部 署)的过程中,整个(即包含所有应用程序层的)应用程序可以,或者在 唯一的计算机上在桌面应用(或者说是离线应用)中分布为所谓肥客户机 (Fat-Client),或者通过不同计算机在可连接的计算机网络内(在线应用) 分布为智能客户机、多功能瘦客户机(Rich-Thin-Client )、瘦(HTML )客 户机或网络服务。在另一个被描述为多功能客户机的部署变形中,应用程 序可以选择性地运行在离线应用或在线应用中。
利用根据本发明的方法允许将每个在框架结构上编写的应用程序可以 自动地按照上述部署运行,而应用程序开发人员却不必为各种软件结构开 发和维护不同的源代码主体。因此,对于应用程序开发人员而言可能的是, 仅仅处理其应用程序所基于的层结构 一次,这大大地减少了应用程序的开 发时间。同时,集中的软件开发也因此是可能的,从而不必为不同的部署 提供和维护带有不同源代码主体的不同软件结构。通过利用与应用接口内各灵活的通信层的实现相连的框架结构而确保 了由封装层组成的应用程序既可以在肥客户机的桌面运行中又在例如瘦(HTML )客户机的网络运行中运行。灵活的错接接口确保了通过带有灵活 的通信层的相应的应用4妻口对所述层内的相应的服务和/或组件进4亍对应用 程序的数据处理和访问,使得应用程序保持隐藏其当前应用环境。在该方法的 一个优选实施例中,封装层能够在计算机网络中的可不同 相互连接的运行位置上运行,其中,应用接口提供所述封装层之间的必需 的通信规范概要,并监控可连接的计算机网络的数据接口之间的数据通信。在封装层内实现的服务和/或组件和/或数据优选地针对于标准化应用 接口和/或标准化数据接口设计。通过统一标准的应用,为在封装层内编制 相应服务和组件开发人员不必在整个层边界上额外地付出在数据处理、数 据传输、以及服务管理上的努力。因此可能的是,以不同的编程语言来为 不同的封装层编程,并且仍然能够在没有额外的中间过程的情况下调用封 装层内的相应服务。还有利地给出,在封装层内实现标准化的服务并分别可以独立地调用 它们。在该方法的 一个优选实施例中,在规定平台以及计算机网络内相应运 行位置形式的部署时,自动地选出对于各封装层之间各自的通信而言必需 的通信规范概要。由此,应用程序的开发人员在其工作时支持并同时确保 将灵活的错接接口的各必需的通信规范概要作为每两个封装层之间的应用 才妻口的组成部分选出。将应用接口的通信规范概要和/或数据接口的通信规范概要,根据所封 装层的平台和在计算机网络内的运行位置动态地实现。尤其是借助用于配 置灵活的错接接口的XML或DLL配置文件可能与平台无关地且与部署无 关地对应用程序进行编译。在相应部署上使用该应用程序时,才借助XML 或DLL配置文件为在封装层之间的应用接口内的灵活的错接接口实现各自 必需的通信规范概要。由此确保了应用程序在不进行进一步的编译或转换 的情况下能够在各种部署上运行。根据本发明,应用程序的结构包括作为最底层的服务层,用于为一 个框架结构提供本地和/或外部的服务和/或数据;数据访问层,用于对数据 进行访问并提供本地和/或外部的数据和通信服务;处理层,用于提供处理 服务和处理组件;过程层,用于提供业务逻辑和服务总线;以及作为体系 结构最上层的表示层,用于表示数据以及表示组件。在该方法的 一 个优选实施例中,应用程序控制对各封装层本身的访问 并且可以作为封装的应用与相应的软件结构所基于的部署无关地独立于平 台地运行。在类运行时环境中,封装的应用程序能够运行并因而与对于所 封装的层的相应部署无关。所封装的应用程序,或者能够在类运行时环境中运行,或者所封装的 应用程序能够运行在一个运行在网络服务器中的类运行时环境中运行。不 过,应用程序与类运行时环境的交互作用保持在各个部署中获得。由此将 实现,应用程序在不同的部署下不必改变,并且无论在桌面部署还是在网 络部署下都能不变地运行。封装的层(例如表示层)的概念在应用程序转 换到另一部署上时(即,在应用程序的软件结构保持相同时)不变。应用 程序结构和所用编程语言因此同样保持不变。具体而言,所述封装层分别 通过分别居间设置的应用接口的 一个集成的灵活的错接接口进行通信。如 果应用程序用于桌面应用,那么就为该灵活的错接接口使用通信规范概要 的一个确定的用于桌面应用的实现。由于在封装层之间的通信总是通过相 应的居间接入的错接接口实现,因而可能在框架结构一侧交换灵活的错接 接口的实现,而不会为此改变应用程序也不必重新编译。由此,降低了应用程序的开发和维护成本。概念"零管理部署"在此 上下文中的特征在于,与避免用于应用程序的相应部署的任何维护成本相 联系的功能。由此,对用于不同部署的源代码主体的并行编制和维护完全 与相应的应用程序解耦合。同样被视为有利的是,根据预定的平台和/或在可连接的计算机网络内 的运行位置自动地实现对各封装层的软件结构的编制。该方法不仅在选择 封装层之间的应用接口内的各个必需的错接接口时,而且在针对所要进行
的用于计算机应用的部署对封装层进行布置和实施时支持开发人员。所述技术问题同样是通过一种用于产生带有处理层和过程层的至少两 层的软件应用程序的系统解决的,其中, 一个框架结构用于封装各层,并且所封装的层通过应用接口相互通信。根据本发明,设置了一种用于产生n层软件应用程序的系统,其中,在应用接口内在框架结构的上方部分地构 成一个灵活的错接接口 ,并且该灵活的错接接口根据各封装层所基于的平 台提供对于通过封装层之间的应用接口进行通信而言必需的通信规范概要。在该系统的一个优选实施例中,应用程序被封装,并因此可以在一个 类运行时环境上运行。与用于各封装层的平台的系统配置无关的是,运行 的应用程序同样是独立的并且不必在不同的配置下发生改变。本发明可以按照硬件、软件或硬件和软件的组合的形式实现。各种类 型的系统或者各种其它的为实施根据本发明的方法而建立的装置适用于 此。 一种典型的硬件和软件的组合可以是带有计算机程序的通用计算机系 统,该程序被加载到通用计算机系统内并执行,并这样控制该计算机系统, 使得实施根据所述方法建立的应用程序。在硬件和软件的进一步通信中, 可以例如在专门的图像处理硬件内设置例如用于进行图像处理的处理层,而在传统的PC硬件上实施其余的层。本发明也可以集成在计算机程序产品中,该计算机程序产品包括能够实现在此描述的计算机支持的方法的所有 特征,并在加载到计算机系统内之后能够实施该方法。概念计算机程序介质、计算机程序以及计算机应用,在各种表达在此 处的上下文中被理解为一组指令的任意计算机语言、代码或符号,这些指 令能够使得计算机系统进行数据处理并因此实施特定的功能。该计算机程 序介质、计算机程序以及计算机应用能够或者直接地运行,或者在转换成 另一种语言、代码、符号后或通过以其它实体形式在该计算机系统上的显示而运行。


在下面的详细的

中借助于附图对实施例的特征及其它优点进行了解释,所述实施例并不应被理解为是限定性的。附图中图1是带有根据本发明的错接接口的软件结构的一种示意性结构,图2是带有根据本发明的错接接口的作为肥客户机的软件结构的一种 示意性结构,图3是带有根据本发明的错接接口的作为多功能瘦客户机的软件结构 的一种示意性结构,图4以示意对照图的形式示出了作为肥客户机、多功能客户机、智能 客户机、多功能瘦客户机、瘦客户机以及网络服务的软件结构的结构。
具体实施方式
图1示出了一个五层的软件应用程序10,其中,该软件结构具有最下 面的服务层ll、紧接着的数据访问层12、接下来的处理层13、位于其上的 过程层14以及接下来的表示层15。在这些至少部分地借助一个框架结构封 装的层ll、 12、 13、 14、 15之间分别存在带有集成的错接接口的应用接口 17a、 17b、 17c、 17d。这些应用接口 17a、 17b、 17c、 17d的错接接口是这 样地灵活,以至于它们能够实现这样一种软件结构,其通过配置可用于不 同部署、即用于层ll、 12、 13、 14、 15在平台和在可连接的计算机网络中 的运行位置16a、 16b上的不同分布,而并不需要为此对错接接口进行源代 码匹配。仅仅是必须将集成在应用接口 17a、 17b、 17c、 17d中的错接接口 的通信规范概要与相应的部署进行匹配。对错接接口的匹配可以或者在编 译的范围内实现,或者通过与数据库19的文件(例如XML或DLL配置文 件)动态连接而实现。各封装层11、 12、 13、 14、 15的相应服务、数据或组件20a、 20b、 20c、 20d、 21a、 21b、 21c、 21d、 22a、 22b、 22c、 22d、 23a、 23b、 23c可以或者 通过层11、 12、 13、 14、 15或者通过应用程序IO本身而被调用。通过带 有集成的错接接口的应用接口 17a、 17b、 17c、 17d进行的交互作用在图中 用箭头表示。在此,必须这样设计通信规范概要,使得应用程序IO内的服务和组件 20a、 20b、 20c、 20d、 21a、 21b、 21c、 21d、 22a、 22b、 22c、 22d、 23a、 23b、 23c可以穿过封装层11、 12、 13、 14、 15相互通信。就此而言,该通 信规范概要必须考虑并根据部署规定和监控客户机/服务器-需求-/反应协 议、基于事件的数据处理、数据通信的一般任务管理及问题(如同步数据 交换)、数据协议的格式、对数据通信的监控、以及消息格式。
图2示出了肥客户机部署下的应用程序10的软件结构。该软件结构不需要为该在唯一计算机上的实现进行匹配。应用接口 17a、 17b、 17c、 17d 的集成的错接接口的通信规范概要使得能够实现应用程序10的一种桌面应 用。在此,封装层ll、 12、 13、 14、 15在它们自身的运行时环境内运行, 使得这里也可以使用各封装层11、 12、 13、 14、 15的不同编程语言。与之相反,图3示出了一种多功能瘦客户机部署。应用程序10的服务 层11、紧接着的数据访问层12以及处理层13,在作为服务器16a的第一计 算机上运行。过程层14和表示层15在客户机16b上运行,其中,通过处 理层13和过程层14之间的数据接口 18进行数据传送和对这些层13、 14 的相应服务、数据及组件22a、 22b、 22c、 22d的访问,必要时通过防火墙 确保安全。而且,所基于的软件结构在此既不需要为多功能瘦客户机部署改变, 也不需要为肥客户机部署改变,因为仅仅是应用接口 17a、 17b、 17c、 17d 的错接接口的通信规范概要必须与相应的部署相匹配。上述部署变形、即肥客户机25a和瘦多功能客户机25d在图4中与其 它的部署变形、即多功能客户机25b、智能客户机25c以及瘦客户机25e对 照地示出。如可以由图4进一步了解到的,这些其它的部署变形通过在服 务器16a和客户机16b之间重新布置一个或多个层11至15或者这些层11 至15的个别组成部分而形成。在瘦客户机25e的情况下,仅仅是将表示层15的前端以网络接口的形 式设置在客户机16b上。表示层15的其余部分以及其余的层11至14设置 在一个或多个服务器16a上。表示层15在此尤其以HTML技术实现。在此, 服务器16a尤其又被划分成提供用户界面并向客户机15b进行输出的网络 服务器、包含层12至14的应用程序服务器、以及容纳有服务层11的数据 服务器。在多功能客户机25b的情况下,与之相反地将层12至15设置于客户 机一侧。仅仅是服务层11设置在一个或多个服务器16a、特别是数据汇总 器(Daten-Cluster)上。在多功能客户机部署中,应用程序10可以至少继 续在离线应用中使用。为了特定服务(例如加载图像数据)的需求,可以 将客户机15b与服务器16a相连。在智能客户机25c的情况下,处理层13和数据访问层12的组成部分
分布在客户机16b上,而处理层13和数据访问层12的其它组成部分则分 布在一个或多个服务器16a上。在智能客户机部署中,应用程序10 (与在 多功能客户机中不同)在没有与服务器16a的持续网络连接的情况下不能被 运行。不过,层12和13在客户机16b和服务器16a之间的分布使得应用程 序10的性能在与客户机16b和服务器16a的计算和存储能力以及网络的可 用数据传输容量相匹配的情况下能够得到特别有效的优化。根据本发明,应用程序可以基于唯一的源代码主体在所有表示出的部 署变形中运行。在此,应用程序的各层11至15也可以具有不同的版本。 为与特定部署相匹配,仅仅将该应用程序在此相应的进行配置。此外,服 务层11和过程层14可以在一种同样在图4中示出的部署中也隔离地作为 纯粹的网络服务26运行。
权利要求
1.一种产生带有处理层(13)和过程层(14)的至少两层的软件应用程序(10)的方法,其中,每个层(13,14)都被封装并且所封装的层(13,14)通过应用接口(17c)相互通信,其特征在于,该应用接口(17c)包括一个灵活的错接接口,并且该灵活的错接接口根据各封装层(13,14)所基于的平台提供对于通过封装层(13,14)之间的应用接口(17c)进行通信而言必需的通信规范概要。
2. 根据权利要求1所述的方法,其特征在于,该应用程序(10)具有 至少五个封装层(ll, 12, 13, 14, 15),这些封装层带有分别居间设置的 带有相应的集成的错接接口的应用接口 ( 17a, 17b, 17c, 17d)。
3. 根据权利要求1或2所述的方法,其特征在于,封装层(ll, 12, 13, 14, 15)能够在一个计算机网络内的可不同相互连接的运行位置上运 行,其中,该应用接口 (17a, 17b, 17c, 17d )的错接接口提供封装层(11 , 12, 13, 14, 15)之间必需的通信规范概要和/或监控该可连接的计算机网 络的数据接口 (18)之间的数据通信。
4. 根据权利要求1至3中任一项所述的方法,其特征在于,在封装层 (11, 12, 13, 14, 15)中实现的服务和/或组件和/或数据(20a, 20b, 20c,20d, 21a, 21b, 21c, 21d, 22a, 22b, 22c, 22d, 23a, 23b, 23c)针对标 准化的应用接口 (17a, 17b, 17c, 17d)和/或标准化的数据接口 (18)而 被设计。
5. 根据权利要求1至4中任一项所述的方法,其特征在于,在该封装 层(ll, 12, 13, 14, 15)中实现标准化的服务和/或组件和/或数据(20a, 20b, 20c, 20d, 21a, 21b, 21c, 21d, 22a, 22b, 22c, 22d, 23a, 23b, 23c)并且分别可以被独立地调用。
6. 根据权利要求1至5中任一项所述的方法,其特征在于,在规定各 封装层(ll, 12, 13, 14, 15)的平台以及计算机网络内相应运行位置(16a, 16b)时,自动地选出各自必需的通信规范概要。
7. 根据权利要求1至6中任一项所述的方法,其特征在于,该应用接 口 (17a, 17b, 17c, 17d)的通信规范概要和/或数据接口 (18)的通信规 范概要被动态地根据封装层(11, 12, 13, 14, 15)的平台和在计算机网络中的运行位置(16a, 16b)实现。
8. 根据权利要求1至7中任一项所述的方法,其特征在于,该应用程 序(10)的结构按照自下向上的顺序包括下述封装层(11, 12, 13, 14, 15):-服务层(ll),用于为框架结构提供本地和/或外部的服务(20a, 20b, 20c, 20d);-数据访问层(12),用于对数据进行访问并提供本地和/或外部的数据 和通信服务(21a, 21b, 21c, 21d);-处理层(13),用于提供处理服务和/或处理组件(22a, 22b, 22c, 22d );-过程层(14),用于提供业务逻辑和服务总线;隱表示层(15),用于表示数据和/或组件(23a, 23b, 23c )。
9. 根据权利要求1至8中任一项所述的方法,其特征在于,应用程序 (10)组织对各封装层(ll, 12, 13, 14, 15)及其服务和/或组件和/或数据(20a, 20b, 20c, 20d, 21a, 21b, 21c, 21d, 22a, 22b, 22c, 22d, 23a, 23b, 23c)的访问,并且本身可以作为封装应用独立于相应的软件结 构所基于的部署而运行。
10. 根据权利要求1至9中任一项所述的方法,其特征在于,根据预定 的平台和/或在可连接的计算机网络中的运行位置(16a, 16b)自动地实现 所述各封装层(ll, 12, 13, 14, 15)的软件结构的编制。
11. 一种用于产生带有处理层(13)和过程层(14)的至少两层的软件 应用程序(10)的系统,其中, 一个框架结构用于封装每个层(13, 14), 并且所封装的层(13, 14)通过应用接口 (17c)相互通信,其特征在于,应用接口 ( 17c)被构造为灵活的错接接口 ,并且该灵活 的错接接口根据各封装层(13, 14)所基于的平台提供对于通过封装层(13, 14)之间的应用接口 (17c)进行通信而言所必需的通信规范概要。
12. 根据权利要求11所述的系统,其包括用于实施根据上述权利要求 1至9中任一项的方法的步骤的适当装置。
13. 根据权利要求12所述的系统,其特征在于,该应用程序(10)被 封装并且可以在一个类运行时环境中运行。
14. 一种用于在数据处理系统中实施的数据处理程序,其中,当该程序在计算机中运行时,该数据处理程序包括用于执行根据上述权利要求1至 10中任一项所述的方法的源代码的组成部分。
15. —种计算机程序产品,其存储在计算机可读介质中并且包括计算机可读的程序介质,当该程序在计算机中运行时,计算机借助这些程序介质执行根据上述权利要求1至10中任一项所述的方法。
全文摘要
本发明涉及一种产生带有处理层和过程层的至少两层的软件应用程序的方法,其中,每个层都被封装并因而可以独立于平台地运行,并且,所封装的层通过应用程序接口相互通信。本发明还涉及一种系统,该系统用于产生一种带有在所封装的层之间的灵活的错接接口的应用程序。通过在该应用程序接口中在分别两个被封装的应用程序接口之间实现一个另外的可配置的错接接口,可以独立于各自的部署地包含结构层并且仅仅该错接接口的通信规范概要与所述部署相匹配。这具有如下优点对于不同的部署不必产生和维护不同的源代码主体,而是仅需要建立和维护该应用程序的唯一的结构层。
文档编号G06F9/54GK101110031SQ20071013691
公开日2008年1月23日 申请日期2007年7月23日 优先权日2006年7月21日
发明者卡尔海因茨·多恩, 拉尔夫·霍夫曼 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1