CN1523917A - 软件开发环境 - Google Patents

软件开发环境 Download PDF

Info

Publication number
CN1523917A
CN1523917A CNA2004100052515A CN200410005251A CN1523917A CN 1523917 A CN1523917 A CN 1523917A CN A2004100052515 A CNA2004100052515 A CN A2004100052515A CN 200410005251 A CN200410005251 A CN 200410005251A CN 1523917 A CN1523917 A CN 1523917A
Authority
CN
China
Prior art keywords
adapter
data
component software
agent components
software
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.)
Granted
Application number
CNA2004100052515A
Other languages
English (en)
Other versions
CN100485609C (zh
Inventor
K
K·拉卡里宁
J·托尔克利
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.)
Nokia Technologies Oy
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Publication of CN1523917A publication Critical patent/CN1523917A/zh
Application granted granted Critical
Publication of CN100485609C publication Critical patent/CN100485609C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及在软件开发环境中、在实施移动通信应用的软件组件之间安排数据系统中的数据传输。该数据系统包含用于不同软件组件的适配器和用于在不同适配器之间传输数据的代理组件,其中,该适配器为与之相连的至少一个软件组件提供到代理组件的接口。与数据系统中的适配器有关的寻址信息被保持在代理组件中。数据系统中的第一适配器被激活用于第一软件组件并且第二适配器用于第二软件组件,以响应在第一软件组件和第二软件组件之间传输数据的需要。根据寻址信息而在第一适配器和第二适配器之间的代理组件中传输数据。

Description

软件开发环境
技术领域
本发明涉及软件开发环境,并且更具体地涉及与移动通信有关的软件的软件开发环境。
背景技术
如图1所示,移动通信环境包括在其间传输数据的几个不同方。终端TE表示业务的用户。业务由业务提供者SP和网络MNW(例如,移动网络)提供。该环境还可以包括内容提供者CP,它提供的内容被业务提供者SP或者网络MNW提供到终端TE。例如,为了得到新闻,从终端TE发送短消息到移动网络MNW,后者将短消息转发到天气业务提供者SP。该业务提供者SP根据从提供天气预报的内容提供者CP处获得的天气数据产生多媒体消息。该多媒体消息被转发到移动网络MNW,后者将之转发到终端TE。如果不能建立到移动站TE的连接,则移动网络可以将多媒体消息存储在消息中心并且当TE再次连接到网络时立即发送该消息。当为终端TE开发新的业务时,当开发了新的终端TE或者网络元件时,以及当为终端TE或者网络元件开发了新的功能时,需要测试所开发的软件环境的功能。
软件组件可以在软件开发环境中的开发阶段被测试,因此不需要实际的装置,而是可以只借助例如一台计算机、完全用软件进行测试。已经开发了终端仿真器,它完全地或者部分地模型化一个终端的运行。这种应用开发环境的优点是不需要为了测试应用的功能而将这些应用加载到实际的设备中。在美国公布的专利申请号20020169591中示例了利用仿真器的应用开发环境。终端仿真器可以被加载到软件开发环境中,并且可使用它来测试应用的运行,以便例如象在终端中那样去测试由服务所发送的是什么消息。通常,特殊软件开发环境适应于不同的技术,但是不可能将环境互相连接。例如,对于不同通信应用存在特定的软件开发环境,以及对于因特网浏览器应用存在特定的软件开发环境。即使可以将几个不同终端仿真器加载到一个软件开发环境中,被开发的软件组件也必须在单独的测试过程中对每个终端仿真器进行测试。这样做的一个实例是,软件开发者必须分开地为每个电话模型加载一个仿真器,并且把由应用创建的多媒体消息单独发送给这些仿真器中的每一个。
发明内容
因而,本发明的目的是改善软件组件的连通性。本发明的该目的可以通过一种方法、数据系统、数据处理设备、软件产品、数据存储介质和信号来实现,其特征正如独立权利要求中所记载的。在从属权利要求中描述了本发明的优选实施例。
本发明基于数据系统,其包括用于不同软件组件的适配器以及用于在不同适配器之间传输数据的代理组件(broker component),其中适配器为至少一个连接到该适配器的软件组件提供了到代理组件的接口,并且其中在代理组件中保持关于数据系统中该适配器的寻址信息。在数据系统中,该数据系统中的第一适配器被激活用于第一软件组件,而第二适配器用于第二软件组件,以响应在第一软件组件和第二软件组件之间传输数据的需要。数据根据该寻址信息,而在第一适配器和第二适配器之间的代理组件中传输。适配器通常是指在软件组件和代理组件之间使能数据传输的功能性。
本发明这种安排的一个优点是,提供了一个通用通信平台,支持很多不同技术种类的软件组件可以被连接到该平台上并且可以在这些软件组件之间安排数据传输。该适配器使得由代理组件提供的数据传输功能性对于该软件组件是隐蔽的,并且,另一方面,支持不同技术的软件组件可以被连接到代理组件上。对于每个软件组件只需要一个适配器。这允许例如内容提供者只使用一个到代理组件的接口来在各种终端仿真器中测试它的内容。本发明允许更加简单和快速地测试移动通信应用的运行,因为经由代理组件和适配器可以将所有的、到需要的软件组件的数据传输安排在相同的软件开发环境中。
根据本发明的优选实施例,适配器提供了到移动系统的数据传输应用的接口,该应用允许把从代理组件和适配器接收到的消息进一步传输到第二移动站或者移动网络。该实施例提供了优点,例如可以通过使用一个实际设备来安排测试,或者安排数据传输例如从软件开发环境到移动网络中的实际元件。多个软件组件可以被同时测试,并且它们可以都驻留在实际终端中或者终端仿真器中。
附图说明
以下,将参照附录1和附图详细来描述本发明的优选实施例,在附图中:
图1概括地示出了移动通信环境中的不同方;
图2示出了本发明优选实施例的软件开发环境;
图3示例了数据处理设备;
图4示例了本发明优选实施例的适配器的层;
图5示例了本发明优选实施例的代理组件的层;以及
图6示例了依照本发明优选实施例的方法。
具体实施方式
图2示例了依照本发明优选实施例的数据系统200。该数据系统200可以作为软件开发环境工作,至少使能不同软件组件201的测试。软件组件201可以是例如移动通信应用软件开发工具、终端、系统或者业务仿真器、内容开发工具、测试工具、或者外部系统或者设备的应用。数据系统200包括一些适配器203,它们为至少一个与其连接的软件组件201提供了接口。特别是,适配器203将(外部)软件组件201连接到代理组件202,后者在适配器之间起到数据传输网关的作用。代理组件202照看适配器203之间,且因而也是软件组件201之间的所有数据传输。该代理组件202是数据系统200的通信中心,并且照看适配器203之间的所有数据传输。适配器203和代理组件202构成外部软件组件201的代理功能性。
数据系统200还包括一个自适应监督程序(daemon)组件207,一个控制台组件208、以及优选地还包括一个滤波器组件206和与之相关联的滤波器适配器205。该自适应监督程序组件207管理在本地工作站中可执行的软件组件201、206,代理组件202、滤波器203、205,控制台组件208并且维护一个本地的日志文件。控制台组件208是一个图形用户接口工具(GUI工具),利用它,用户能够获得有关系统200的信息,并且管理系统200的功能,诸如适配器203,205以及经由代理组件202的数据传输。滤波器适配器205使能监控、分析或者还可能改变在代理组件202中传输的数据。代理组件202可经由滤波器适配器205在给定的适配器203之间传输业务,以便在滤波器组件206中分析。数据系统200可以在一个数据处理设备中执行或者在几个例如经由TCP/IP网络彼此连接的数据处理设备中执行。要注意的是,图2中所示的系统只是实施本发明的一种方式,例如控制台组件208和自适应监督程序组件207的功能可以在一个组件中执行。
图3示例了数据处理设备301,其中实现了数据系统200的至少一部分。该数据处理设备301包括存储器302、用户接口304、用于安排外部数据传输的I/O装置305、以及包含一个或者多个处理器的中央处理单元303 CPU。存储器302包括一个非易失性部分,用于存储控制该中央处理单元303的应用及其它要被存储的数据,还包括一个易失性部分用于临时的数据处理。在中央处理单元303中执行的计算机程序代码可以使得数据处理设备301实现图2中所示的功能,以及稍后在图3、4、5和6中所示的功能,例如一个或者多个软件组件201、适配器203、205、自适应监督程序组件207、控制台组件208和代理组件202。计算机程序代码可以被存储在任意一个或者多个存储器装置中,例如PC中的硬盘、存储卡、或者CD ROM,从其中将计算机程序代码加载到执行它们的设备301的存储器302中。例如,计算机程序代码还可使用TCP/IP协议栈(传输控制协议/网际协议)经由网络加载。也可以至少部分地利用硬件方案来实现该创造性的装置。
还应指出,图2中所示的功能可以在几个彼此通信的数据处理设备301中执行。在这种情况下,数据系统200可以是分布式的,且移动应用的开发和测试可以在例如几个分开的设备301中进行。在这种情况下,代理组件202可以由不同设备中的实体实现;这些实体使用任意的数据传输协议通信,例如TCP/IP协议栈。在一个分布式数据系统中,可以安排远程使用,由此可以从第一数据处理设备的软件组件201、207、208激活第二数据处理设备的软件组件201。数据处理设备301可以是能够执行几种可能甚至很大的软件组件的任意设备。根据优选实施例,系统200利用基于Java的功能,在设备301中执行的JavaTM运行时环境。以下,将参照此实施例;然而还应指出也可以使用其它编程技术来实现本发明。
图4示例了依照优选实施例的适配器203、205的层。适配器203、205是将(外部)软件组件201、206连接到代理组件202的组件。适配器203、205由以下部分组成:到软件组件201的应用程序接口、用于在软件组件201和应用程序接口之间的数据传输的适配代码、以及执行该适配代码的部分。适配器203、205公布了用于在不同软件组件201和代理组件202之间指定适配代码的接口,公布了用于将自适应监督程序组件207和控制台组件208连接到代理组件202的系统接口,并且适配器203、205还保持一个到代理组件202的连接。适配器203、205对软件组件201、207和208隐藏代理组件202的功能性。可以通过使用可再用的组件来实现适配器203、205,以便使能对不同适配类型的适配。在这种情况下,为各种平台而生成的适配器(例如)可以利用相同的组件。
适配器203包含一个适配层,后者由框架接口(框架IF)407、业务接口(业务IF)406以及点到点接口(P2P IF)405组成。在适配层之下是实施层,它包括框架应用程序接口(框架API)402、业务应用程序接口(业务API)403、以及点到点应用程序接口(点到点API)404。在实施层下面是传输层,它包括通信应用程序接口(通信API)401。适配层405、406、407是用于将外部软件连接到代理组件202的基本适配接口;它将实施层402、403、404连接到有关的技术上。适配层是在适配器203被开发用于新技术时不得不被修改的唯一的层。框架接口407是用于将适配器203连接到代理组件202的主要接口,并且它包括通常的和适配器有关的功能,诸如点对点的注册。业务接口406照看基于事件的数据的同步和异步传输及接收(即,事件)。点对点接口405包括与点对点连接(即P2P连接)的管理相关的功能。当另一个适配器203希望打开连接时,它通知适配器203,它使能打开和关闭对一个连接到代理组件202的适配器203的输入流和输出流。相似地,适配层的块405、406和407使用实施层的应用程序接口404、403、402。根据优选实施例,适配层405、406和407是独立于平台的Java实现。传输层,即通信应用程序接口401将适配器203连接到代理组件202。它照看连接、连接错误以及自动连接重新建立。根据优选实施例,在适配器203和代理组件202之间的数据传输是基于RMI(远程方法调用)的,传输层对其它的块隐藏了RMI功能性。
有两种不同的方式来实现软件组件201、206和代理组件202之间的适配:通过软件适配或者通过通信适配。在软件适配中,软件组件201被软件401到407使用API调用(应用程序接口调用)而直接地集成到适配接口。因此,适配器203的适配逻辑和图4中所示的功能可以在软件组件201进程中执行。这种实施方式提供的优点在于软件组件201还可以被从数据系统200(从自适应监督程序组件207)来管理。
在通信适配中,软件组件201使用一些数据传输协议和适配器203通信。适配器203和软件组件201是彼此完全分开的分开进程。传输协议可以是底层操作系统和编程语言所支持的任何协议,例如,基于TCP/IP的协议或者文件传输。对于通信适配,可以在适配器203中规定各种通常的数据传输组件,例如发送器组件408和接收器组件409,它们根据其地址数据来照看软件组件201和适配器203之间的数据传输。其实例有用于从规定的TCP/IP端口接收数据的接收器组件和用于在规定的目录和文件中写入的发送器组件408。除了数据传输组件之外,通信适配还使用内容处理机组件410,其正确地解释规定的内容并且照看内容传输,例如HTTP命令的传输。通信适配使能通过利用软件组件201的现有组件来实施适配器203,这样无需修改软件组件的代码。
对于可以被称为产品的不同软件组件201,已配置的适配器203是基于模板而被规定的。一个模板表示一个被安装的(外部)软件组件201,并且包括与安排数据传输所需要的属性有关的信息。为了集成软件组件201,该模板包括一个通常的规定,可以被用来为有关的软件组件201精确地配置适配器203。该模板还特别规定了用于标识适配器以及用于规定它的诸如业务类型标识符的属性的元素。该模板还优选地包括用于规定主机地址的元素,它可以被用来(例如)激活不同设备中的适配器。该模板还可包括与该适配器的管理相关的元素,以及与通信适配相关的元素,例如用于发送器和接收器类名称的元素。每个被配置的适配器203基于存储在适配器配置中的标识符而被识别。该标识符是一个字符串,例如电话号码。已配置的适配器被连接到代理组件202上,此后数据可以经由它传输。该模板也可以在控制台组件208中使用,以便向用户表示安装在该系统中的软件组件201。根据优选实施例,该模板包括一个或者多个XML文件以及一个JAR文件,前者包含信息,后者包含适配器特定的Java类和资源。为不同的软件组件创建独立的模板,例如每个移动站仿真器具有一个特殊的移动站模型特定的模板。附录1示例了模板的DTD定义(文档类型定义),即它示例了可以被包含在依照实施例的模板中以及其中定义的配置中的元素。根据优选实施例,同一模板可以被用来在数据系统200中配置多个适配器203,使得能够例如在系统200中安排几个相同的并行移动站仿真器。
一旦知道了软件组件201的特性,就很容易创建模板。首先规定适配机制,即所关心的是软件适配还是通信适配。基于此,创建模板,即规定要使用的元素并且赋予这些元素缺省值。在通信适配中要求使用和软件适配中不同的元素,特别是还额外需要设置那些使能安排数据传输的组件408、409以及410。在软件适配中,模板被集成到软件组件201中。所创建的模板被用于创建安装文件,以便在数据系统200中安装该模板。例如,可以使用附录1中所示例的元素,其中规定了用于这些元素的缺省值。
图5示例了依照优选实施例的代理组件202的层。代理组件202作为软件开发系统200中的通信平台运行。它执行以下功能:
维持已安装模板的列表506,
管理与其连接的适配器203、205的列表507以及它们的属性,
管理适配器203、205的寻址信息,
管理适配器203、205之间基于事件和基于流的数据传输,
为适配器203、205提供命令接口以便实施命令,例如用于断开连接适配器203、205或者用于获得已连接适配器的列表,以及
将可用模板、配置以及适配器状态中的变化通知给适配器203、205。
代理组件202包括:包含多个接口的接口层、代理接口(代理IF)502、事件回调接口503、点到点管道接口(P2P管道IF)504。接口502包括与代理组件202相关的通用功能,例如传输功能。接口503包括基于事件的数据传输功能,用于安排与适配器203、205之间基于事件的数据传输。接口504包括用于处理输入和输出流的功能。根据优选实施例,代理组件202的实施层包括代理实施类;代理501和点到点管道功能性(P2P管道)505。代理组件202的配置最好存储在XML文件中。该配置包括代理组件202的通用设置,诸如广播号码和RMI端口。
通常,代理组件202将消息直接从一个适配器203路由到另一个。消息也可以经由滤波器适配器205和滤波器组件206传送。这使滤波器组件206在该消息中干预并且例如模拟要被传输的消息的数据传输错误。发送和接收适配器203不去检测该干预的滤波器适配器205。在该代理组件202中也可以使用静态路由。在这种情况下,代理组件202例如对于测试情况来设定路由表中的条目,根据该条目,来自第一适配器203的消息被自动转发到指定的第二适配器203,由此要被传输的分组甚至不需要目的地地址。
指定给适配器203、205的标识符可以被用作代理组件202中的通信地址。当一个P2P连接被激活时,这允许第一适配器203、205指示第二适配器203、205的标识符,通信是利用该标识符进行的。在代理组件202中,目的地适配器还可以根据要被传输的数据条目规定。例如,适配器203根据要被发送的短消息的目的地号码字段来指定目的地电话号码。该目的地电话号码对于该代理组件202被设定为用于包括要被发送的短消息在内的数据分组的目的地地址,并且基于此,代理组件202将数据分组发送到适配器203、205,后者的指定标识符(在列表507中)为所述电话号码。如前面提到的,根据一个实施例,适配器203、205和代理组件202之间的数据传输使用通用的RMI功能实现,由此适配器203、205具有到代理组件202的特殊RMI接口(逻辑端口)。
系统200还可以包括广播或者多播地址。如果消息被发送到一个广播地址,则代理组件202发送该消息的拷贝到所有操作中的适配器203。根据优选实施例,代理组件202还在列表507中维持与已连接适配器203的属性(即由它们所表示的软件组件201的属性)有关的信息,并且当一个事件被发送或者一个到它的连接正在被建立时检查软件组件201的这些属性。这允许代理组件将数据传输只安排在适配器203和能够彼此传输数据的相应软件组件201之间。例如,在需要时,消息可以在系统中被发送到支持MMS技术(多媒体消息业务)的所有软件组件201。对于这种编组传输,可以使用例如特殊业务类型特定的地址,根据该地址,代理组件202知道所涉及的是指向给定业务类型之软件组件的编组传输。在这种情况下,代理组件202根据已连接适配器的列表507,检查在适配器配置中哪个适配器203的业务类型被定义为MMS。代理组件202然后将消息发送到支持这种MMS业务的所有适配器203上。
还应指出在图4和5中所示的适配器202和代理组件203的功能只是在数据系统200中实现它们的一种方式。并非图4和5中的所有功能都是必需的,并且另一方面可以增加新功能到适配器202和/或代理组件203中。
以下,参照附图6示例了将新软件组件201连接到软件开发环境的数据系统以便例如测试该软件组件。当要将新的软件组件201连接到系统200时,根据模板而为之创建一个已配置的适配器203。在系统200中,可以通过控制台组件208激活安装程序,以便在系统200中安装新软件组件201和为其创建的模板601。自适应监督程序207检测到新模板并将它通知给代理组件202。如果需要,则代理组件202把有关新模板的信息广播给控制台组件208。
通过控制台组件208从用户接收的输入602可以被用来通过把用户的设置附加603到所取的该模板的拷贝上、至少为适配器203设定一个标识符,而根据该模板来创建一个已配置的适配器203。由用户给出的任何设定代替了从该模板中获得的缺省设定。该已配置的适配器203将该标识符赋给该系统200中的软件组件201;它可能包括与该软件组件201相关的各种指定参数,诸如文件名和目录路径。代理组件202存储604该配置以便稍后使用。根据优选实施例,该配置被存储为XML文件(来自XML形式的模板)。适配器202现在被指定用于该新的软件组件,因此它可以被用于安排该组件的、经由代理组件到其它软件组件的数据传输连接。
当该已配置的适配器203被连接到代理组件202,特别是连接到由它保持的、有关已连接适配器的列表507时,该适配器203(以及由它指定的软件组件201)变成数据系统200的部分。在这种情况下,诸如其主机的运行时设置也可以与适配器203相关联。通过控制台组件208,用户能够根据与软件组件201相关联的标识符1111来激活该软件组件201,例如,由此而将命令605转发到自适应监督程序组件207,以便也连接该适配器203。自适应监督程序组件207激活软件组件201和适配器203。然后可以从适配器203向代理组件202发送请求,以便连接由标识符1111所标识的适配器,由此,代理组件202(代理501)根据标识符1111检索606该适配器的配置。代理组件202把同标识符1111相关联的配置转发到适配器203,并且把适配器203添加到它所保持的、有关已连接的适配器的列表507,即把适配器203连接607到代理组件202。
然后可以通过已连接适配器203来安排去向/来自软件组件201的数据传输。当响应于从与其连接的软件组件201或者从代理组件202接收的命令608,需要通过已连接的适配器203传输数据时,适配器203被激活609。当用户在由软件组件201提供的用户接口中选择给其它软件组件的数据传输时,通常会激活适配器203。在适配器203的激活609中,所需要的资源被设置,例如接收/发送数据的P2P接口405。然后可以通过代理组件202在适配器203和另一适配器203之间传输610数据。
系统200的用户能够通过控制台组件208以及适配器203的框架接口407跟踪工作的适配器203、205。在这种情况下,根据由代理组件202所保持的、有关已连接到该系统上的适配器的列表507,而给出可用适配器(和/或特别是与其连接的软件组件201)的通知。
以下,将详细描述通过适配器203和代理组件202安排数据传输(即图6的步骤609和610)的不同方式。如前所述,适配器203、205之间的数据传输可以是面向连接的或者是基于事件的,即无连接的。
在基于事件的数据传输中,适配器203、205通过框架接口407获得业务接口实例403、406。如果业务接口实例403、406还不存在,则发送适配器也可以获得它。适配器203、205两者将一个用于将来的事件的监听者加到业务接口403、406。适配器203把从软件组件201所接收的、将要发送的内容打包作为事件,其具有传输标识符和接收适配器203、205的标识符。事件被发送到代理组件202,后者查找其保持的、用于接收适配器203的列表507,以查明该接收适配器是否被激活并且能够处理此类事件。如果是,则代理组件202将该事件发送到被寻址的接收适配器203。被寻址的接收适配器203通过监听者接收该事件,并将该事件的内容转发给软件组件201。如果是同步事件,则接收适配器203发送响应事件给该发送适配器203。
对于P2P数据传输,初始适配器203通过接口407发送一个打开连接的请求。P2P接口405被安排用于该连接,并且它将该连接表示给该连接的第二端点,即被呼叫适配器203。代理组件202将请求转发给第二适配器203,以便打开一个P2P连接,该第二适配器203通过一个监听接口来接收请求。两个适配器的接口405都被设置为发送和/或接收数据流。根据优选实施例,数据流可以是通常的java.io流;任意数据流本身都可以通过代理组件202所提供的P2P连接传送。
根据实施例,检测功能在数据系统200中实现,优选地在自适应监督程序组件207中实现,该功能自动检测一个新的软件组件201,例如安装在数据处理设备301中的终端仿真器。在检测到新的软件组件后,该检测功能可以执行图6所示的功能,并将软件组件连接到数据系统200,即为它安排适配器203以便连接到代理组件202。
根据又一实施例,在数据系统200中通过控制台组件208提供数据系统拓扑的拓扑,特别是软件组件201的拓扑给用户。此处,用户通过使用图形图标而获得数据系统200的示例性的总体视图。该用户可被提供通过绘图而在已有组件之间指定新组件或者接口的机会。例如,如果用户在两个软件组件201之间画了一条线,则可以自动激活它们的适配器203并且可以在它们之间安排一条数据传输连接。当用户通过增加新软件组件201的图标到图片中来增加该新软件组件201到数据系统200时,可以执行与该软件组件201及其适配器203的配置和连接相关联的所有功能,即可执行图6中的步骤601到607。该实施例还改善了软件开发环境的可用性,因为新组件的增加和修改对于用户来说十分容易。
因此,在依照优选实施例的数据系统200中,通过适配器203和代理组件202可以互连非常不同的软件组件201。以下,给出在不同拓扑中安排数据传输以及怎样在不同的软件开发环境中利用上述数据系统200的例子。
在第一个例子中,数据传输被安排用于为SMS/MMS(短消息业务)中的服务器的软件开发提供测试。此处,为该服务器开发MMS应用的应用开发人员通过不同的终端仿真器可很容易地测试应用的功能。短消息从终端仿真器经由适配器203被发送到代理组件202。该代理组件202检测到SMS服务器仿真环境已经通过与该SMS服务器仿真器相连接的适配器203连接至代理组件202,并把该消息路由到代理组件202。代理组件202将短消息转发到SMS服务器仿真器(SMSC仿真器;短消息业务中心),即,转发到仿真网络短消息业务的一个功能上。SMS服务器仿真器把该短消息转发到要被测试的外部MMS应用,例如使用CIMD协议(到消息分布的计算机接口)。MMS应用接收该短消息的指示。在本例中,应用逻辑创建一个MMS消息,并将其发回到发送该短消息的终端仿真器。MMS应用通过使用例如EAIF协议(外部应用接口)将MMS消息发送到MMS服务器仿真器,即仿真MMS功能的软件组件。MMS服务器仿真器通过与之连接的适配器203将该消息转发到代理组件202。代理组件202根据由它保持的寻址数据,通过与它相连的适配器203把该消息转发到正确的终端仿真器。适配器203(与短消息发送中的适配器相同或者不同)把该MMS消息发送到终端仿真器201,其中MMS消息可以被查看并检查它是否与想要的相一致。在该实施例中,软件开发人员一方面可以测试所开发的应用的运行并查找其中的错误,另一方面可以测试在相同的软件开发环境中由不同终端的应用所创建的消息的正确性。
在第二个例子中,内容开发人员能够轻松地将内容转发到不同终端仿真器和/或实际终端,并且发现该内容在不同终端如何呈现。内容开发人员的内容开发软件组件(201)的内容(例如MMS消息)只使用一个接口转发,即通过与内容开发软件组件相连的适配器203、经由代理组件202以及与终端仿真器相连的适配器203而被转发到不同的终端仿真器。该内容还可以被转发到实际的无线终端,例如通过提供到蓝牙环境(蓝牙应用)的接口的适配器203。此类适配器将MMS消息适配为经由蓝牙连接传送的形式,此后,开发该内容的数据处理设备的蓝牙应用能够将该消息转发到实际终端。这使能同时测试几个软件组件,这些软件组件即可以在实际终端中也可以在终端仿真器中。适配器203还可以被连接到代理组件202,并且经由该适配器安排一个到远程操作员网络的接口,例如到3GPP(第三代合作项目)系统的MMS中继功能性,通过它可以将内容中继到实际的终端TE或者移动网络MNW。
在第三个例子中,应用开发人员可以通过使用终端仿真器、适配器203、代理组件202以及蓝牙环境模拟器,来在一个数据处理设备中测试和/或模拟蓝牙应用。在软件开发环境(201)中开发蓝牙应用。所开发的应用的软件可以经由应用开发组件的适配器203、代理组件202以及终端仿真器的适配器203被传送到终端仿真器。被接收的应用可以在终端仿真器中被执行,并且通过使用为它们所安排的适配器203与蓝牙环境的模拟器和/或实际的蓝牙环境一起测试。
在第四个例子中,在软件开发环境中开发端到端短消息传送应用,通过该软件开发环境的适配器203和代理组件202,应用可以被传送到终端仿真器和短消息中心仿真器(或者服务器仿真器)。然后可以根据所传送的应用逻辑在终端仿真器(客户端)和短消息中心仿真器或者服务器仿真器之间中继消息,允许在甚至使用一个数据处理设备的情况下测试该应用逻辑的功能。
如基于以上例子所见,本发明的方案使能测试端到端的应用,而不管可用的技术。例如,在Java仿真器(201)中执行的应用经由Java接口(Java API)发送短消息SMS,所述短消息SMS经由适配器(203)和代理组件(202)被传送到系统中的服务(201)。该服务监听SMS消息,并且在接收SMS消息之后创建MMS消息,后者经由与该服务相连的适配器203和代理组件202被发送到环境中的MMS软件组件(例如仿真器、MMSC、MMSC模拟器)。换而言之,本发明的方案允许“链式化”应用以便测试它们的运行。这些应用自然可以使用其它编程语言实现,例如C、C++或者Pascal语音。代替短消息,IP形式的消息、MMS消息或者依照HTTP协议的消息都可以被传送,即传输协议可以是任意的现有协议或者将来开发的协议。可用的传输信道包括短距离无线电连接、诸如GPRS或者UMTS连接的蜂窝连接、或者诸如红外的光连接。
对于本领域技术人员来说,显然本发明的技术改进、基本思想可以用多种方式实现。本发明及其实施例因而不限于上述例子,而是可以在权利要求的范围内有各种变化。
附录1:DTD定义
  <?xml version=″1.0″ encoding=″ISO-8859-1″?>

  <!ELEMENT Property EMPTY>
  <!ATTLIST Property

       Id ID #IMPLIED

       Name CDATA #REQUIRED

       Value CDATA #REQUIRED

  >

  <!ELEMENT ClassName(#PCDATA)>

  <!ELEMENT Description(#PCDATA)>

  <!ELEMENT FrameworkConfiguration (AdapterConfiguration|AdapterUI-

  Configuration)>

  <!ELEMENT AdapterConfiguration(ClassName?,AdapterHosting,AdapterI-

  dentification,InstanceSettings?,ServiceSupports,ProductManage-

  ment?,Property*)>

  <!ELEMENT AdapterHosting EMPTY>

  <!ATTLIST AdapterHosting

       HostAddress CDATA #IMPLIED

       Autostart(TRUE|FALSE)#REQUIRED

  >

  <!ELEMENT InstanceSettings EMPTY>

  <!ATTLIST InstanceSettings

       MaxCount CDATA #REQUIRED

       ActionWhenViolated(NONE|KILL)#REQUIRED

  >

  <!ELEMENT ServiceSupports(ServiceSupport+)>

  <!ELEMENT ServiceSupport(ServiceType,ServiceVersion,ContentHan-

  dlers?,Senders?,Receivers?)>

  <!ATTLIST ServiceSupport

       ServiceID ID #REQUIRED

       CanReceive(TRUE|FALSE)#REQUIRED

       Filtering(TRUE|FALSE)#REQUIRED

  >

  <!ELEMENT ServiceType(#PCDATA)>

  <!ELEMENT ServiceVersion(#PCDATA)>

  <!ELEMENT ContentHandlers(ContentHandler+)>

  <!ELEMENT ContentHandler(ClassName,Property*)>

  <!ELEMENT Senders(Sender*)>

  <!ELEMENT Sender(ClassName,Property*)>

  <!ELEMENT Receivers(Receiver*)>

  <!ELEMENT Receiver(ClassName,Property*)>

  <!ELEMENT AdapterIdentification(AdapterGroup,AdapterType,AdapterD-

  escription,AliasIDs?)>

  <!ATTLIST AdapterIdentification

       AdapterID CDATA #REQUIRED

       InitialCreationMethod(USER|SYSTEM) #REQUIRED

  >

  <!ELEMENT AliasIDs(AliasIDRange*,AliasID*)>

  <!ELEMENT AliasIDRange EMPTY>

  <!ATTLIST AliasIDRange

       Min CDATA #REQUIRED

       Max CDATA #REQUIRED

  >

  <!ELEMENT AliasID EMPTY>

  <!ATTLIST AliasID
        <!-- SIPO <DP n="14"> -->
        <dp n="d14"/>
       Value CDATA #REQUIRED<br/>

  >

  <!ELEMENT AdapterGroup(#PCDATA)>

  <!ELEMENT AdapterType(#PCDATA)>

  <!ELEMENT AdapterDescription(#PCDATA)>

  <!ELEMENT ProductManagement(ProductStarter?,ProductStopper?,Pro-

  ductDetector?,ProductConfigurator?)>

  <!ELEMENT ProductStarter(ClassName,Property*)>

  <!ELEMENT ProductStopper(ClassName,Property*)>

  <!ELEMENT ProductDetector(ClassName,Property*)>

  <!ELEMENT ProductConfigurator (ClassName,Property*)>

  <!ELEMENT DefaultAdapterID(#PCDATA)>

  <!ELEMENT Framework(ClassName,Identification,Property*)>

  <!ELEMENT Identification(Description)>

  <!ELEMENT AdapterUIConfiguration(Component+)>

  <!ELEMENT Component EMPTY>

  <!ATTLIST Component

       Id ID #REQUIRED

       Label CDATA #REQUIRED

       LabelKey CDATA #IMPLIED

  >

Claims (12)

1.一种在软件开发环境中、在实施移动通信应用的软件组件之间安排数据系统中的数据传输的方法,该数据系统至少包含第一软件组件和第二软件组件,至少一个软件组件包含用于控制移动站的程序代码,其特征在于该数据系统包含用于不同软件组件的适配器和用于在不同适配器之间传输数据的代理组件,其中,适配器为与之相连的至少一个软件组件提供到该代理组件的接口,以及其中,与数据系统中的适配器有关的寻址信息被保持在代理组件中,在该方法中:
在该数据系统中第一适配器被激活用于该第一软件组件并且第二适配器用于该第二软件组件,以响应在第一软件组件和第二软件组件之间传输数据的需要,以及
数据根据该寻址信息而在第一适配器和第二适配器之间的代理组件中传输。
2.如权利要求1所述的方法,其特征在于
为该第一适配器和第二适配器安排到代理组件的接口,用于面向连接或者无连接的数据传输,以响应在第一软件组件和第二软件组件之间传输数据的需要。
3.如权利要求1或者2所述的方法,其特征在于
在代理组件中保持该第一适配器和第二适配器的标识符以及有关这些适配器属性的信息,以响应第一适配器和第二适配器被连接到该代理组件上,以及
基于该标识符和该适配器的属性而在该代理组件中检查在该第一适配器和第二适配器之间数据传输是否可能,以响应在该第一软件组件和第二软件组件之间传输数据的需要。
4.如以上任一权利要求所述的方法,其特征在于
该数据系统具有至少一个被存储的模板,该模板包含有关该第一软件组件的属性的信息,以便为该第一软件组件指定一个适配器,由此
基于该模板而指定第一适配器的配置,
该第一适配器的配置被存储在该数据系统中,以及
当该第一适配器被连接到该代理组件时,检索第一适配器的配置。
5.如以上任一权利要求所述的方法,其特征在于
使用软件适配来安排由适配器所提供的适配功能性,该适配器在软件组件进程中实施,或者
使用通信适配来安排由适配器所提供的适配功能性,该适配器在单独的进程中实施,以及通过使用数据传输协议来安排在适配器和软件组件进程之间的数据传输。
6.如以上任一权利要求所述的方法,其特征在于
该系统还包括与代理组件相连的至少一个滤波器适配器,由此,
在第一软件组件和第二软件组件之间的数据传输被安排通过该滤波器适配器,以及
与在第一软件组件和第二软件组件之间所传输的信息有关的信息在滤波器适配器中被收集。
7.如以上任一权利要求所述的方法,其特征在于
第一适配器提供接口到移动通信系统的数据传输应用,该应用为该第一软件组件。
8.一种数据系统,至少包含第一软件组件和第二软件组件,至少一个软件组件包含用于控制移动站的程序代码,其特征在于,该数据系统还包含用于不同软件组件的适配器以及在不同适配器之间传输数据的代理组件,其中,该适配器为与之相连的至少一个软件组件提供到该代理组件的接口,以及其中,该代理组件被安排用来保持有关该数据系统中的适配器的寻址信息,
在该数据系统中安排第一适配器为该第一软件组件而被激活并且安排第二适配器为该第二软件组件而被激活,以响应在该第一软件组件和第二软件组件之间传输数据的需要,以及
该代理组件被安排用来在该第一适配器和第二适配器之间根据寻址信息而传输数据。
9.一种数据处理设备,其特征在于该数据处理设备包含依照权利要求8的数据系统。
10.一种用于控制一个或者多个数据处理设备的计算机程序产品,以便在第一软件组件和第二软件组件之间安排数据传输,至少一个软件组件包含用于控制移动站的程序代码,其特征在于该计算机程序产品包含:
用于为不同软件组件实现适配器的程序代码部分,其中该适配器为与之连接的至少一个软件组件提供到代理组件的接口,
用于为不同适配器之间的数据传输实现代理组件的程序代码部分,该代理组件被安排用于保持与该数据系统中的适配器有关的寻址信息,
用于控制数据处理设备的程序代码部分,以便为该第一软件组件激活第一适配器并为第二软件组件激活第二适配器,以响应在第一软件组件和第二软件组件之间传输数据的需要,
用于控制数据处理设备去设定代理组件的程序代码部分,以便根据寻址信息在第一适配器和第二适配器之间传输数据。
11.一种数据处理设备可读的数据存储介质,其特征在于该数据存储介质包含依照权利要求10的计算机程序产品。
12.一种信号,其特征在于该信号包含依照权利要求10的计算机程序产品。
CNB2004100052515A 2003-02-17 2004-02-17 软件开发环境 Expired - Lifetime CN100485609C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20030240A FI114581B (fi) 2003-02-17 2003-02-17 Ohjelmistokehitysympäristö
FI20030240 2003-02-17

Publications (2)

Publication Number Publication Date
CN1523917A true CN1523917A (zh) 2004-08-25
CN100485609C CN100485609C (zh) 2009-05-06

Family

ID=8565657

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100052515A Expired - Lifetime CN100485609C (zh) 2003-02-17 2004-02-17 软件开发环境

Country Status (5)

Country Link
US (1) US7317912B2 (zh)
EP (1) EP1447749A3 (zh)
KR (1) KR100950212B1 (zh)
CN (1) CN100485609C (zh)
FI (1) FI114581B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101311903B (zh) * 2007-05-22 2011-05-18 国际商业机器公司 对基于组件的软件系统中的组件进行重用的方法和装置
CN101609396B (zh) * 2008-06-16 2012-12-26 成都吉锐触摸技术股份有限公司 一种触摸屏通讯协议的实现方法
CN114466055A (zh) * 2021-12-27 2022-05-10 天翼云科技有限公司 一种业务处理方法及装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895589B2 (en) * 2003-02-26 2011-02-22 International Business Machines Corporation Dynamic data-driven application integration adapters
US7698383B2 (en) * 2004-02-27 2010-04-13 Research In Motion Limited System and method for building component applications using metadata defined mapping between message and data domains
KR100679865B1 (ko) * 2005-03-07 2007-02-07 아주대학교산학협력단 유비쿼터스 컴퓨팅 환경의 다양성을 지원하기 위한 시스템
US7546131B1 (en) 2006-01-20 2009-06-09 Google Inc. Emulating a messaging operation for mobile devices
US7958487B2 (en) * 2006-03-21 2011-06-07 International Business Machines Corporation Apparatus, system, and method for modifying an integration software template
US8495594B2 (en) * 2008-01-10 2013-07-23 International Business Machines Corporation Method and system for providing a componentized resource adapter architecture
US8620856B2 (en) * 2008-01-18 2013-12-31 International Business Machines Corporation Method and system for providing a data exchange service provider interface
US8402084B2 (en) * 2008-09-11 2013-03-19 Intel Corporation Host embedded controller interface bridge
US8699499B2 (en) * 2010-12-08 2014-04-15 At&T Intellectual Property I, L.P. Methods and apparatus to provision cloud computing network elements
KR101323270B1 (ko) 2012-05-22 2013-10-30 주식회사 오비고 웹 애플리케이션 개발용 에뮬레이터를 제공하기 위한 방법, 개발자 단말 장치 및 컴퓨터 판독 가능한 기록 매체
US9588788B1 (en) 2012-08-23 2017-03-07 Amazon Technologies, Inc. Optimized communication between program components executing in virtual machines
US9912517B1 (en) * 2012-08-23 2018-03-06 Amazon Technologies, Inc. Optimized deployment and execution of programs in a distributed computing environment
CN113535135B (zh) * 2021-09-09 2022-02-15 深圳市蓝凌软件股份有限公司 软件开发方法、装置、计算机设备和存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6041365A (en) * 1985-10-29 2000-03-21 Kleinerman; Aurel Apparatus and method for high performance remote application gateway servers
US5619685A (en) * 1994-11-04 1997-04-08 Ball Corporation Run-time dynamically adaptive computer process for facilitating communication between computer programs
US6272556B1 (en) 1996-07-01 2001-08-07 Sun Microsystems, Inc. Object-oriented system, method and article of manufacture for migrating a client-server application (#5)
EA003744B1 (ru) * 1998-11-18 2003-08-28 Сага Софтвеар, Инк. Расширяемая распределенная интеграционная система приложения для предприятия
US20030018694A1 (en) * 2000-09-01 2003-01-23 Shuang Chen System, method, uses, products, program products, and business methods for distributed internet and distributed network services over multi-tiered networks
US7155381B2 (en) * 2001-03-12 2006-12-26 Sun Microsystems, Inc. Module for developing wireless device applications using an integrated emulator

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101311903B (zh) * 2007-05-22 2011-05-18 国际商业机器公司 对基于组件的软件系统中的组件进行重用的方法和装置
CN101609396B (zh) * 2008-06-16 2012-12-26 成都吉锐触摸技术股份有限公司 一种触摸屏通讯协议的实现方法
CN114466055A (zh) * 2021-12-27 2022-05-10 天翼云科技有限公司 一种业务处理方法及装置
CN114466055B (zh) * 2021-12-27 2024-04-26 天翼云科技有限公司 一种业务处理方法及装置

Also Published As

Publication number Publication date
FI20030240A0 (fi) 2003-02-17
US20040192277A1 (en) 2004-09-30
KR100950212B1 (ko) 2010-03-29
EP1447749A2 (en) 2004-08-18
FI20030240A (fi) 2004-08-18
KR20040074922A (ko) 2004-08-26
FI114581B (fi) 2004-11-15
CN100485609C (zh) 2009-05-06
EP1447749A3 (en) 2008-09-03
US7317912B2 (en) 2008-01-08

Similar Documents

Publication Publication Date Title
CN100485609C (zh) 软件开发环境
US7949773B2 (en) Wireless internet gateway
US7894431B2 (en) System and method for communicating asynchronously with web services using message set definitions
US7603476B1 (en) Pseudo-synchronous messaging
US7346893B2 (en) Exchange infrastructure system and method
EP1872227B1 (en) System and method of testing wireless component applications
US7228333B1 (en) Wireless internet gateway
CA2511926A1 (en) System and method of creating and communicating with component based wireless applications
US7191232B2 (en) Extendable provisioning mechanism for a service gateway
EP1195677A1 (en) Dynamic class loading
AU2003223040B2 (en) Exchange infrastructure system and method
US20020069257A1 (en) Provisioning mechanism for a service gateway
US7908397B1 (en) Application server gateway technology
CA2543887A1 (en) System and method for exposing synchronous web services as notification style web services
CN102075646B (zh) 呼叫中心设备控制系统及方法
KR100735667B1 (ko) 컨텍스트 지향 이벤트 서비스 시스템 및 그 방법
US8276158B2 (en) HTTP based bounding storage space protocol
CA2544010C (en) System and method for providing various levels of reliable messaging between a client and a server
CN101616145A (zh) 跨平台网络通信方法及用于跨平台网络通信的通信服务器
Kang et al. Using management markup language for remote control of OSGi-based home server
CN117971516A (zh) 消息队列的访问方法、系统、设备及存储介质
Lakay et al. SIP-based content development for wireless mobile devices
KR20020026299A (ko) 코바에서의 그룹 통신 시스템 및 방법
CN111200533A (zh) 基于OpenDDS的分布式网络配置部署方法
Holmström End-to-end monitoring of mobile services

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20160114

Address after: Espoo, Finland

Patentee after: NOKIA TECHNOLOGIES OY

Address before: Espoo, Finland

Patentee before: NOKIA Corp.

CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20090506