CN1609791B - 接口模块 - Google Patents

接口模块 Download PDF

Info

Publication number
CN1609791B
CN1609791B CN200410064418.5A CN200410064418A CN1609791B CN 1609791 B CN1609791 B CN 1609791B CN 200410064418 A CN200410064418 A CN 200410064418A CN 1609791 B CN1609791 B CN 1609791B
Authority
CN
China
Prior art keywords
operating system
interface module
instruction
program
api
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.)
Expired - Fee Related
Application number
CN200410064418.5A
Other languages
English (en)
Other versions
CN1609791A (zh
Inventor
J·A·林布
J·G·吉布勒尔
J·M·卡梅伦
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
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 Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of CN1609791A publication Critical patent/CN1609791A/zh
Application granted granted Critical
Publication of CN1609791B publication Critical patent/CN1609791B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)

Abstract

用于进行程序接口的一种方法、系统和设备实施例被公开。计算设备110可以包括应用层116、操作系统层120和接口模块118。操作系统层120可以包括第一类型的操作系统和相联系的应用程序接口(API)。接口模块118可以被耦合在应用层116和操作系统层120之间。接口模块118可以从应用层116中为第二类型操作系统而写的程序中接收程序指令并且通过将指令导引到正确执行指令的API可以处理所述指令。

Description

接口模块
技术领域
本发明涉及一种接口模块。
背景技术
一种计算设备,如服务器、路由器、以及其它设备,其具有处理器逻辑和存储器,包括操作系统层和应用层以使设备能够执行各种功能或任务。操作系统层包括运行计算设备的主控制程序。主控制程序提供任务管理、设备管理、以及数据管理(除了别的以外)。操作系统层包含设定在计算设备上运行的应用程序标准的操作系统。操作系统层具有包括应用程序接口(API)集合的软件程序。API包括由应用程序所使用的用来与操作系统通信的语言和/或消息格式。例如,API的语言和/或消息格式允许操作系统来解释从应用层中的程序应用所接收的可执行指令并且将结果返回到应用中。
通过在程序中写功能调用,API被加以执行,其提供到所要求的用于执行的子程序的链接。在成熟的操作系统,如Windows,Mac或Unix中存在多于一千个的API调用。
在软件编程领域中,程序经常被建立用于在特定的操作系统中使用。换句话说,程序应用通常被建立用来提供这样的指令,所述指令处以由与特定操作系统相联系的API可识别的语言和/或格式。因此,为在Microsoft Windows下使用而建立的程序将有可能不能够在另一操作系统如Linux上运行。为了使Windows基程序在Linux基系统上被使用,程序将有可能不得不基本上被重写且将有可能不得不被写在Linux基系统上。通过这种方法,基于一个操作系统而用在另一操作系统中的程序的适应实际上建立了两个截然不同的程序,所述程序完成类似的功能,但却在两个不同的操作系统上。通过写程序以与许多不同操作系统的API进行接口可是昂贵的且可花费大量时间。
在电信领域,更新的程序连续地被写以提供附加的电信应用服务。许多这些较新的程序被写以和与较新的和更鲁棒的操作系统相联系的特定API发挥作用。即,程序可被写,以在较大、较快速或更专业化的计算设备上执行,所述计算设备具有比存在于较早代的电信设备硬件中的那些更先进的操作系统和不同的API集合。照那样地,程序应用总体上可能不能够在不同的或较早的操作系统上执行,或由这些程序所提供的特征和/或功能可能不能够在与这些程序为此而写的操作系统不同的或者较早代的操作系统上执行。因此,这些应用的新的或不同的服务或能力总体上并未由较早代的设备所得到。
一个替代选择是用具有容纳新程序类型的操作系统的计算设备取代较早代的设备和与其相联系的操作系统.然而,当取代高端计算设备时,这个替代选择并不总是可行的经济性替代选择.世界上许多商业性电信骨干系统具有传统的硬件,取代其并不是经济的.例如,在中美洲和南美洲的电信市场,大量的电信设备是较旧代的设备,其在其它市场上退休之后才被购买.在这些环境下,使计算设备硬件升级以适应新的软件应用可能并不是可能的.因而,新的软件应用或者不可用于具有较旧操作系统的硬件,或者将具有在较旧操作系统上不正确地执行的某些特征和/或功能,且由此不能够被使用到它们最完全的能力.为了提供较新或不同软件程序的一些或全部更新的或不同的特征和/或功能,程序将不得不被重写以执行在现存硬件的操作系统上的API,或如果操作系统并不具有用以执行那个特征或功能性的API则除去所述特征或功能.如上所注解,这个选项对于软件制造商是所不希望的,因为制造商不得不花费大量努力来重写软件.
发明内容
提供了一种计算设备,包括:应用层,具有第一类型操作系统和相联系的应用程序接口(API)的操作系统层以及被耦合在应用层和操作系统层之间的接口模块,其中所述接口模块从应用层中为第二类型操作系统而写的程序中接收程序指令并且通过将指令导引到正确执行指令的API来处理所述指令。
附图说明
图1是示例设备实施例的方框图。
图2是示例接口模块实施例的详细视图的方框图。
图3是示例接口模块另一实施例的详细视图的方框图。
图4是网络实施例的方框图。
图5是用于在选择性平台上执行应用的方法实施例的方框图。
图6是用于在选择性平台上执行应用的另一方法实施例的方框图。
具体实施方式
本发明的实施例提供这样的设备、系统和方法,其允许针对第二类型(即,特定类型)操作系统而写的程序应用(即,在应用层中的软件)要被使用在第一类型操作系统(即,与程序应用为此而被写的操作系统完全不同的操作系统或较早或较迟代的操作系统)上。本发明的各种实施例可以在一个或更多个计算设备和/或计算设备的系统,如电信系统(除了别的以外)中被执行。
在本应用中,在电信领域中的计算设备被示例为较新程序应用和较旧代传统硬件所面对议题的实例。然而,本发明的实施例并不局限于这个示例性的实施。
作为参考,电信系统(除了别的以外)可以包括计算设备的网络。计算设备包括其上具有操作系统的计算设备。电信程序通常被写以在特定的操作系统软件下执行,使设备针于系统或网络结构能够在不同的任务中发挥作用。例如,各种电信计算设备可以包括使给定的计算设备能够起到归属位置寄存器(HLR)作用的程序。HLR包括具有用于在蜂窝网络提供商的家用服务区域内跟踪订户的程序和数据库。作为另一实例,电信计算设备可以包括使给定的计算设备能够在无线电信网络中起到Mobile Switching Center(移动交换中心)(MSC)作用的程序。MSC包括将Public Switched Telephone Network(公用交换的电话网络(PSTN)中的陆上通讯线连接到无线电话系统上的计算设备。作为另一实例,电信计算设备可以包括使给定的计算设备起到Intelligent NetworkServers(智能网络服务器)(INS)作用的程序。智能网络服务器可以充当介质平台以提供附加的电话服务,如免费的800个呼叫选择路由和/或虚拟私人网络呼叫选择路由。每个HLR、MSC和INS程序被写以在特定的操作系统中执行,所述操作系统驻存于在其上程序将要被运行的计算设备上。
图1是示例计算设备110的方框图.计算设备110可以用作一段电信设备,以起到HLR,MSC或INS(除了别的以外)的作用.图1示例计算设备110包括应用层116,所述应用层116可以包括具有可执行指令的程序应用以致使计算设备110来完成某些功能以为了服务于计算设备110的预期任务,例如,作为HLR,MSC,INS或其它.计算设备进一步包括操作系统层120.如上面所提到的,操作系统层具有包括应用程序接口(API)集合的软件程序.API的语言和/或消息格式允许操作系统来解释从应用层中的程序应用所接收到的可执行指令并且将结果返回到应用中.当程序指令并不处以正确的语言或消息格式用来与操作系统层120中的API通信时,可以在程序执行中出现错误.
如图1的实施例中所示,计算设备可以被提供有被耦合在应用层116和操作系统层120之间的接口模块118。将如下面更详细地加以解释地那样,接口模块118将使应用层116中的程序应用在第一操作系统层120中的第一类型操作系统中适当地执行,所述第一类型操作系统不同于第二类型操作系统,程序应用针对所述第二操作系统而被写。如此处所使用的,第一类型和第二类型的指定标识出存在于操作系统层120中的操作系统与程序应有为此被设计用来执行的操作系统的差别。在各种实施例中,所述差别可以是两个是完全不同的操作系统(例如,Linux操作系统对UNIX操作系统)或者所述差别可以是一个操作系统是相同类型操作系统的不同版本(例如,在计算设备上的操作系统是来自UNIX操作系统的较早或较迟代的UNIX操作系统,程序应用为此UNIX操作系统而写。)第一类型和/或第二类型的操作系统中的任何一个可以是Linux,UNIX和/或Windows操作系统(除了别的以外)。然而,实施例并不局限于这些实例。
接口模块118可以从应用层116中的程序应用中接收指令并且可以处理这些指令,如下面更加详细地加以解释,以返回正确的结果,甚至当程序应用并不针对与操作系统层120中的操作系统软件相联系的特定API而被写时。
接口模块118在许多情形中有用。例如,如较早所提到的,有时取代具有不同或较早代操作系统的某些设备或硬件从经济性上并不可行。
较旧的电信计算设备是在此所说明的实施例实施的一个实例。例如,预期充当HLR角色的较旧计算设备可具有某一版本的UNIX操作系统软件,使相联系的API运行在其操作系统层120中。HLR设备将典型地包含在其应用层116中的程序应用,所述程序应用针对某一版本的UNIX操作系统软件和其相联系的API而被写。这些API将具有由程序应用所使用的语言和消息格式以与操作系统或一些控制程序,如数据库管理系统(DBMS)或通信协议进行通信。
程序应用具有可执行的指令以致使计算设备完成其预期的任务。对于运行在其为此而被写的特定操作系统上的程序,程序应用可以访问操作系统软件中的适当API以正确地执行程序应用的指令。这允许计算设备起到其预期角色的作用,例如在HLR的情况下,用来在提供商的家用服务区域内维持蜂窝电话网络提供商的订户的数据库。
根据各种实施例,接口模块118可以允许并不是针对上述UNIX操作系统的实例版本而写的程序应用正确地在计算设备110上被执行.正如下面将更详细地所解释的那样,通过提供在UNIX操作系统层120中并未被发现的适当API的访问,接口模块118获得这个能力.照那样的,具有与程序应用为其而被写的操作系统不同类型的操作系统的计算设备110也可以正确地执行这些程序应用指令.因而,不同的程序应用可以被提供在应用层116中,所述程序应用针对不同版本的UNIX操作系统软件而被写,或者针对不同类型的操作系统软件,例如Linux操作系统软件而被写,并且借助于接口模块118可以正确地在计算设备110上被执行.接口模块118可以处理来自这样的程序应用的可执行指令,以使这些指令能够正确地在不同的操作系统上执行.处理的实例包括对接口模块118的解释、翻译及转换操作,并且下面更详细地加以说明.
例如,通过解释哪些指令可以从将必须被进一步加以处理的API进行到操作系统中的原始API,接口模块118可以处理来自程序应用的指令。这可以通过使用清单、表、矩阵、或可以具有其中列有将处理的指令的其它组织性结构。清单中的指令可以被链接到有关指令要做什么的方向上。然后从程序应用被发送的指令可以与这些所列的指令加以比较。例如,如果从程序应用所发送的指令并不与清单上的指令相匹配,则所述指令可以被传递到操作系统层上。然而,如果从程序应用所发送的指令与清单中的指令相匹配,则方向可以被用来处理指令。然后指令可以以各种方法被加以处理,例如,通过翻译指令以从原始的API接收正确的结果,通过转换来自原始API的结果,或通过将指令导引到经修改的或新的API(除了别的以外)。
接口模块118中的清单或查询表可以包括与计算设备上的第一类型操作系统相联系的码或文件名结构。通过这种方式,当所接收的程序应用指令并不与清单中的码或文件名结构匹配时,接口模块118将解释到指令不得不被翻译或代用API(例如,新的或经修改的)即将被使用。当所接收到的程序应用指令的确与清单中的码或文件名结构匹配时,接口模块118可以将程序应用指令传递到第一类型的操作系统。作为选择地,仿真模块可以包括与第二类型操作系统相联系的码或文件结构,当在第一类型操作系统上运行程序应用时针对所述第二类型操作系统的API相关错误已经被加以识别。通过这种方式,当所接收到的程序应用指令与清单中的码或文件名匹配时,接口模块118将指令解释成需要一代用API并且将程序应用指令导引到代用API。相反地,当所接收到的程序应用指令并不与清单中的任何码或文件名匹配时,接口模块118可以将程序应用指令直接发送到第一类型操作系统。
如上所陈述,接口模块118可以翻译来自应用层116内的程序应用的指令。例如,在一些情况下,第一操作系统将能够把正确的结果从第二操作系统提供到程序应用,但是由程序应用所使用的指令并不被正确地格式化以要求信息。例如,程序应用指令被设计以通过使用指令READCLOCK从操作系统请求时间,并且期望结果的格式成为例如1:00P.M.July 19,2003。然而,驻留在计算设备上的操作系统并不理解指令READCLOCK,但是如果要求GETTIME,则将以正确的格式(即1:00P.M.July19,2003)返回数据。在这种情况下,通过用GETTIME指令代替READCLOCK指令,接口模块可以翻译来自程序应用的指令。通过这种方法,指令可以被改变并且在第一操作系统中的原始API可以被使用。
其中接口模块118可以采用来处理指令的另一方法是通过转换从API所接收到的信息。当例如第一操作系统将不能够将正确的结果从第二操作系统提供到程序应用时,这个类型的处理是有用的,但是来自操作系统的结果可被转换以提供正确的结果。例如,通过使用与上面所示实例相类似的实例,通过使用指令READCLOCK程序应用请求时间并且期望结果的格式成为1:00P.M.July 19,2003。然而,在这种情况下,操作系统理解指令READCLOCK,但是当被要求时则返回不正确的结果,如130007/19/2003。在这种情况下,通过将结果的格式改变成正确的格式(即1:00P.M.July 19,2003),接口模块可以转换来自程序应用的结果.为了实现信息的转换,软件算法可以被加以设计以采取军事时间(即1300)并且将它改变成标准的时钟时间(即,1:00P.M.).通过这种方法,结果可以被改变并且在第一操作系统中的原始API可以被使用.
在一些情形下,操作系统可能不能够提供可以被程序应用所使用的结果。例如,通过使用与上面所示那些实例类似的实例,第一操作系统并不具有返回时间的功能性,或者可以被返回的时间结果不能够被转换。在这些情形下,新的API可以被提供,其将使操作系统能够提供正确的结果。在其中来自第一操作系统中原始API的结果不能够被转换的情况下,接口模块118可以将指令,如上所说明导引到新的API。
简单地说,识别出这样的API,其使程序应用能够正确地运行和发挥作用,但是其并不以另一格式呈现在或存在于计算设备110的操作系统层120,例如第一类型的操作系统上。一旦被识别,则在第一类型操作系统,例如在操作系统层120上的现存API可以被拷贝并且被修改或与程序为此而被写的第二类型操作系统相联系的新API可以被添加到接口模块118以使所需要的API可用于程序应用。通过这种方式,新的API被提供而没有影响第一类型操作系统内的原始API。原始API可以被保留在操作系统层120中的第一类型操作系统中。如下面更详细所解释,当原始的API不适合于特定的程序应用时,接口模块118可以导引程序指令以绕过原始的API。将API留在第一类型操作系统中的优点是第一类型操作系统可以继续服务于为那个特定类型操作系统而写的程序应用。
通过在接口模块118中提供新的且经修改的API,计算设备上的操作系统(例如第一类型操作系统,其不同于其中程序应用为此而写的第二类型操作系统)并不是不得不被改变。通过使用根据此处所说明的实施例的接口模块118,API可以被修改、删除、以及或被添加而没影响第一类型的操作系统。
作为实例且并不作为限制,HLR、MSC和/或INS程序应用(除了别的以外)可以在具有这样操作系统软件的计算设备上运行,所述操作系统软件不同于给定的HLR、MSC和/或INS程序应用为此而写的软件。通过这种方法,程序应用,包括为较新的和更鲁棒的操作系统而写的较新电信程序应用,可以被利用在不同类型的操作系统中,而无需不得不重写整个程序。为在较新的、不同的、和/或更鲁棒的操作系统上发挥作用而写的较新的或不同的电信程序应用包括所写的程序应用,以在具有同存在于较早代或不同的电信设备硬件上的操作系统相比更先进的操作系统的较大、较快速、或更专业的计算设备上执行。
图2是示例接口模块218另一实施例的方框图。接口模块218可以充当图1中所示为118的接口模块。
如图2的实施例所示,接口模块218可以被分成分立的段。在这个实施例中,接口模块218被分成仿真模块222和抽象模块224。仿真模块222可以包含待被处理的某些程序应用指令的清单或查询表。仿真模块222还可以包括用于将这些某些程序应用指令从在操作系统层,例如在图1中的120中所发现的那些程序应用指令发送到API的指令。
不同的API可以被提供在抽象模块224中。通过这种方法,操作系统层,例如图1中的120中的API可以被保留原封不动并且将使用不同API的那些程序应用指令可以被仿真模块222发送到抽象模块224中的不同API。这个实施例还允许程序应用指令用于其它的程序应用,其可以与操作系统层,例如图1中的120中的API发挥作用以具有对其的入口。
在图2的实施例中,仿真模块222可以使用软件和/或固件以接收程序应用指令、将那些指令与清单或查询表比较、并且当程序应用指令,例如来自于图1中的应用层116中的程序应用,将不得不被处理或应该使用不同于操作系统软件(例如在图1的操作系统层120)中原始API的API时进行识别。仿真模块222还包括软件和/或固件,以提供用于将所接收的程序应用指令发送到其适当的API的方向,不管所述API是在操作系统层,例如图1中的120中的操作系统软件中,或当作为抽象模块224中新的或经修改的API而被提供时。
仿真模块222可以提供处理功能如解释和翻译程序应用指令并且转换结果,如就图1所讨论的。在各种实施例中,仿真模块222可以将程序应用指令发送到可以处理指令的抽象模块224中的API。因此,这些API可以正确地执行指令,如在应用程序为其而写的操作系统中的API那样。
为了提供抽象模块224并且给仿真模块222提供查询表或清单,为第二类型操作系统而写的应用程序可以运行在第一类型操作系统(例如驻存在图1的操作系统层120中用于计算设备110的操作系统,在其上需要使用应用程序),以为了优先地识别在执行应用程序指令中错误可能出现在哪里。可以对出现在这个演习中的错误进行程序分析,以识别哪些错误可归因于对不正确API的访问。正如本领域中一个普通技术人员所知,当程序应用运行在并不是为它而被加以设计的操作系统上时,API相关的错误可以通过对数据和操作结果的人工回顾而被识别。即,当程序应用运行在其为此而写的第二类型操作系统中时,返回的数据和/或所执行的操作可以与已知的正确数据和所接收的操作结果进行比较。软件还可以被用来监视程序应用指令的执行并且跟踪哪些指令被返回而没有结果(例如被触发错误)或返回不正确的结果,从而产生数据错误以及计算设备在别处的故障。
一旦被识别,为第二类型操作系统而写的程序应用指令的清单可以被编辑且被存储在组织结构,如仿真模块222中的查询表或清单中,当所述程序应用指令运行在第一类型的操作系统上时其具有API相关的错误。同样,当运行在第一类型操作系统上时具有API相关错误的那些程序应用指令的代用API可以被存储到抽象模块224中的特定位置。抽象模块224可以包括软件、固件和/或其组合以访问抽象模块224中的特定存储器位置。本领域中的普通技术人员将理解代用API可以被提供的方式。例如,存在于程序应用为此而写的第二类型操作系统中的API可以被拷贝且存储到抽象模块224中的特定存储器位置。同样,存在于计算设备上的第一类型操作系统,例如在图1的操作系统层120中的API,可以被拷贝、被修改并且被存储到抽象模块224中的特定存储器位置。修改可以包括写附加的计算机码以改变API的语言和/或格式或其结果,以便于API不同于加以执行。然而,实施例并不取决于API被修改的方式,或代用API被存储到抽象模块224中的存储器位置的方式。
例如,在一些实施例中,通过向API的编程中添加if-then格式的语句,API的修改可以被实现。if-then语句可以提供:如果来自应用的指令请求处以不同于操作系统将提供格式的格式的时间印记,则在将结果返回到程序应用之前,将从操作系统所获得的时间印记转换成正确的格式。然而,本发明并不局限于添加if-then语句,并且各种方法可以被用来改变API的编程以做修改。
本发明的实施例包括为那些程序应用指令在仿真模块222中提供清单或查询表,其中当运行针对计算设备的第二类型操作而写的程序应用时已经识别出所述那些程序应用指令的API相关错误.一旦被识别,实施例还包括使代用API可用于计算设备,不管计算设备将被用作HLR、MSC、INS或其它什么.不管代用API是从其中特定的应用为此而写的第二类型操作系统中,还是从第一类型的操作系统中被拷贝,且然后被修改,或是新的API,它们均被存储到抽象模块224中特定的存储器位置.然后仿真模块222被提供有路由选择方向,以便于当为第二类型操作系统而写的且当运行在第一类型操作系统中时具有API相关错误的程序的程序应用指令被仿真模块222接收时,仿真模块222可以将这些特定的程序应用指令发送到抽象模块224中的代用API中.换句话说,当程序应用指令被仿真模块222所接收时,模块222上面的软件和/或固件可以将所接收的指令与清单或查询表进行比较以查明程序应用指令是否已经在抽象模块224中被提供有代用API.本发明的实施例并不局限于用于执行查阅并且比较功能的特定软件程序,并且本领域中的一个普通技术人员将理解这样的功能可以被加以执行的方式.然而,一旦从代用API存在的清单或查询表中被识别,则仿真模块222将这些程序应用指令导引到抽象模块224中代用API的正确位置.
就图1中接口模块118所说明,图2中的接口模块218可以处理指令,如通过解释、翻译以及/或转换程序应用指令。使用图2中接口模块218来解释指令的实例被提供如下。当来自应用层,例如图1中的应用层116的程序应用指令被仿真模块222所接收时,仿真模块222将指令与其清单或查询表进行比较并且可发现这个指令是这样的一个指令,在操作系统层,例如图1中的操作系统层120中并不存在所述指令的适当API。照那样地,仿真模块222将这个程序应用指令解释为需要代用API。因而,仿真模块222使用清单或查询表来为这个程序应用指令发现到可以处理所述指令的抽象模块224中代用API的适当路由选择方向。
因此,本发明的实施例包括接口模块218,其可以被添加在应用层,例如图1中的应用层116与操作系统层,例如图1中的操作系统层120的数据路径之间。根据实施例,如上所说明,包括仿真模块222和抽象模块224的接口模块218被添加到较早代的计算设备上,所述计算设备具有与某些类型的程序应用并不为此而写的操作系统不同类型的操作系统。通过如此做,则这些某些类型的程序应用可以正确地在较早代的计算设备上执行。
图3是示例接口模块另一实施例的方框图。接口模块318可以代替在如图1中所示设备中的接口模块118。
图3实施例中的接口模块318以附加的方法被分割。例如,接口模块318的功能可以被分成独立的主题模块,如操作系统仿真模块322以处理与计算设备的操作系统功能相联系的API语言和格式,以及网络服务器仿真模块以处理与计算设备的网络服务器功能相联系的API语言和格式。然而,本发明并不局限于此(例如,一个模块可执行几个模块的功能或一个模块可被包括在另一模块中等)。对于图2的实施例,图3的实施例提供将功能分割成截然不同的模块,其允许模块被添加、被编辑、或被去除而不影响其中的其它模块。在图3中,接口模块318被分割成几个模块,其包括操作系统仿真模块322、抽象模块324、网络服务器仿真模块326及部件模块328。
在图3中所示的实施例中,网络服务器仿真模块326可以将有关网络功能性的指令导引到API用于执行网络功能。API可以在操作系统层中,在抽象模块324中,或抽象模块324可以被分割成用于网络服务器功能和操作系统功能(除了别的以外)的单独模块。
例如,在电信网络中,网络服务器如HLR保持对网络用户的跟踪。这典型地通过识别具有标识号的用户而完成。一些类型的标识号包括移动标识号(MIN)、电子序列号、以及国际移动设备标识符(IMEI)。在一些情况下,被设计用于第二类型操作系统的网络服务器应用通过使用由使用第二类型操作系统的API而建立的数据库来跟踪标识号,以指令操作系统正确地将新的数据格式化进入数据库。当应用运行在具有第一类型操作系统的设备上时,用于建立标识号数据库的API可以是不同的,因此,信息可能被丢失、被不正确地定位、或更新可能不被执行。
在这些情况下,用于在第一类型操作系统中数据库管理的现存API可以被修改或者提供可以将进入的数据格式化并且/或将其放置在接口模块318内的正确位置中的新API。这些经修改的和/或新的API可以被提供在接口模块318内,如在抽象模块324内。到经修改的和/或新的API的方向可以被提供在网络服务器仿真模块326中。通过这种方法,网络服务器功能可以被网络服务器仿真模块,例如图3中的NS模块326所赋址,而同时其它功能性如操作系统功能可以被一个或更多个其它模块如操作系统仿真模块322所寻址。
附加地,部件模块328可以被提供,其中部件可以由可以被插入来提供特定特点的第一方加以设计或提供。这个实施例还示例可以使设备适应于利用组装软件模块,所述组装软件模块提供必要的功能而无需不得不将整个码重写进设备中。例如,如果时间印记模块已经被设计,则模块可以作为部件模块328被插入并且操作系统仿真模块322可以将时间印记请求导引到部件模块328中。
在各种实施例中,接口模块318可以被用来解释、翻译、和/或转换来自应用层或操作系统层的指令或结果。附加地,接口模块318的各种模块,如模块322、324、326和328可以将信息在彼此之间传递以为了执行来自应用程序的指令并且提供正确的结果。
实施例可以由在此处或其它地方所示的系统和设备上可操作的计算可执行指令、软件、和应用模块来执行。然而,本发明的实施例并不局限于任何特定的操作环境或以特定编程语言而写的软件。适合于执行本发明实施例的软件、应用模块和/或计算机可执行指令可以驻留在一个或更多个设备或位置中或在几个甚至许多位置中。
图4是移动网络实施例的方框图,其示例与移动交换中心(MSC)404进行通信的移动设备402。一种类型的移动网络包括与本领域中一个普通技术人员所知且理解相同的IS-41/CDMA网络。就可以得益于本发明实施例的计算设备环境的类型,图4的实施例被提供以作为参考。
在典型的无线电信系统中,MSC被连接到由系统所服务的贯穿于地理区域而分散的多个基站。由无线电信系统所服务的地理区域被分割成若干被称为“单元”的空间上截然不同的区域。每个MSC负责(除了别的以外)建立且维护移动设备之间以及移动设备与无线终端之间的呼叫,所述无线终端经由当地和/或长途网络被连接到系统上。MSC是专门用于无线和移动支持的电话交换。MSC执行各种功能,包括移动管理、呼叫传接(handoff)、呼叫允许、呼叫控制、资源分配等。然后呼叫被从MSC中继到基站并且经由无线通信到移动设备。
在图4中,每当移动设备402触发或漫游进入新的MSC覆盖区域(即,MSC所负责的“单元”),新的MSC变成服务MSC.移动设备将其所存储的身份经由基站406传递到新的服务MSC.如图4中所示,订户身份信息以应允空气接口(air interface)(例如ANSI/IS-41)的格式被传递经过无线通道408并且被基站406的天线410所检测。基站406反过来将订户身份信息传递到服务MSC 404,如例如经由通信线412。
为了向最新登记的移动设备402提供移动服务,服务MSC 404经由发信号链路如信号传递点(STP)414将移动应用部件基信号,如登记通知信号(IS-41消息)或位置更新信号(GSM消息)传递到归属位置寄存器(HLR)416。STP是发信号系统7(SS7)电话网络中的节点,所述网络在交换之间以及交换与支撑订户与路由选择信息的数据库之间发送消息。HLR是在蜂窝系统中的一个这样的数据库,其包含在提供商的家用服务区域内的所有订户。在HLR中的数据被请求且经由SS7被传输到新区域中的VLR。
在图4的实施例中,STP 414将MAP基信号发送到网关MSC 418。如图4中所示,网关418可以充当网络交换用于连接到公用交换的电话网络(PSTN)420。SS7是用在PSTN中用于建立呼叫且提供服务的协议。SS7网络建立且拆毁呼叫、自理所有路由选择决定且支持所有现代的电话服务,如当地号码可移植性(LNP)(local number portability)。当订户重新安置在国家的不同地区时,甚至在当地区域码可不同时,LNP允许电话订户持有他/她的电话号码。通过使用被已知为信号传输点(STP)的分组交换(packet switch),被已知为服务交换点(SSP)的语音交换问询服务控制点(SCP)数据库。
MAP基信号通知HLR 416与目前服务于移动设备402的MSC 404相联系的网络地址,并且还请求必要的订户信息用于将移动服务提供到漫游移动设备402。HLR 416更新其基站以存储表示服务MSC 404的网络地址并且将所请求的订户信息拷贝到与服务MSC 404相联系的VLR 422。存储于HLR 416中的表示服务MSC 404的网络地址随后被移动网络所利用,以将打算供移动设备402使用的任何进入呼叫改道发送到服务MSC404。
因而,每当电信订户拨打移动服务402的电话号码,HLR 416被移动网络问询以确定移动设备402的当前位置。通过利用在HLR 416中所存储的表示服务MSC 404的网络地址,响应于问询信号的接收HLR 416从服务MSC 404请求漫游号码。然后由服务MSC 404所提供的漫游号码被电信网络使用以将进入的信号发送到服务MSC 404。然后服务MSC 404传呼移动设备402并且因而建立了与移动设备402的语音连接,如果可获得的话。
如果移动设备402漫游出服务MSC 404的覆盖区域并且进入到另一MSC 424的覆盖区域,则MSC 404将通信传接到MSC 424和基站426。在电信网络的这个实施例中,在网络内的MSC、HLR、VLR和其它计算机设备可以使用接口模块,如就图1-3所详细说明的那些模块,以使设备能够运行来自不同的或其它版本操作系统的程序应用。通过这种方法,网络可以使用可以改善网络的性能而不改变网络硬件的不同软件。
正如人们从学习上述所说明的实施例中所理解的,MSC、HLR和/或VLR等全部是可以被接口模块加以补充的计算设备。当根据在此处所说明实施例的接口模块被耦合在应用层和操作系统层之间时,为第二类型操作系统而写的程序应用将能够运行在计算设备上的第一类型操作系统中且正确地加以执行,即使所述第一类型的操作系统不同于程序为此而写的操作系统。
图5-6示例用于在选择性平台上执行应用的方法实施例.除非明确地加以陈述,在此所说明的方法实施例并不限制于特定的次序或顺序.附加地,一些所说明的方法实施例和其要素可以在相同的时间出现或被加以执行.附加地,本领域中的普通技术人员将理解到在本发明实施例内的一个或更多个各种部件可以包括计算可读取介质,在所述介质上可以验留计算机可执行的指令集合.计算机可执行的介质的形式包括闪存储器、RAM、ROM和DDRAM,除了别的以外.
图5是用于在选择性平台上执行应用的方法实施例的方框图。在图5中,所述方法包括在块510处的提供身为第一类型的操作系统,为第二类型操作系统而配置的应用以及接口模块。在各种实施例中,为第二类型操作系统而配置的应用可以包括不间断的核心型操作系统。第二和/或第一类型的操作系统可以包括Linux,Windows,或UNIX基的操作系统,除了别的以外。
图5的方法还包括在块520处的将指令从应用通信到接口模块。所述实施例还包括在块530处的如通过解释、翻译或转换来处理指令以能够在第一类型操作系统发挥作用。处理指令可以包括使用待被处理的指令清单。
图6是用于在选择性平台上执行应用的另一方法实施例的方框图。在图6的实施例中,所述方法包括在块610处的将指令从应用通信到接口模块,所述应用为第一系统操作系统而配置。在各种实施例中,将指令从应用通信到接口模块可以包括通信到操作系统仿真模块、网络服务器仿真模块、抽象模块、或在接口模块内的部件模块。
被示例于图6中的方法还包括在块620处的利用接口模块,如通过解释、翻译或转换指令来处理来自应用的指令。解释指令可以包括将来自操作系统仿真模块的指令导引到应用程序接口。图6的方法还包括在块630处的将来自接口模块的指令通信到第二类型操作系统。所述方法还包括识别待被翻译和/或转换的指令。
在此已经示例且说明了特定的实施例,在领域中的那些普通技术人员将理解到为取得相同技术而加以计算的任何装置可以替代所示的具体实施例。这个公开内容旨在覆盖本发明各种实施例的适应或变型。要理解到已经以示例性型式而不是以限制性型式做出上述说明。
在回顾上述说明时,上述实施例与在此未加以特别说明的其它实施例的组合对本领域中的普通技术人员将是显而易见的。本发明各种实施例的范围包括其中使用上述结构和方法的任何其它应用。因此,本发明各种实施例的范围应该参考所附的权利要求,连同这种权利要求所赋予的全范围等效物被加以确定。
在上述详细的说明中,出于简化公开内容的目的,各种特点被共同集合在单个实施例中。这种公开内容的方法并不被解释成反映这样的旨意,即本发明的实施例要求比在每个权利要求中所明确叙述的特征还要多的特片。相反,如下面的权利要求所反映,发明性的主题在于:少于单个所公开的实施例中的全部特征。因此,下面的权利要求在此被引入到详细说明中,使每个权利要求本身独自作为单独的实施例。

Claims (9)

1.一种计算设备110,包括:
应用层116;
具有第一类型操作系统和相联系的应用程序接口(API)的操作系统层120;以及
被耦合在应用层116和操作系统层120之间的接口模块118,其中所述接口模块118从应用层116中为第二类型操作系统而写的程序中接收程序指令并且通过将指令导引到正确执行指令的API来处理所述指令,
其中,所述接口模块包括清单或查询表,所述清单或查询表包括与第一类型操作系统相联系的码或文件名结构,当所接收到的程序指令与所述码或文件名匹配时,接口模块将程序指令传递到第一类型操作系统,或者
所述码或文件名结构不与第一类型操作系统相联系,当所接收到的程序指令并不与任何码或文件名匹配时,接口模块将程序指令发送到第一类型操作系统。
2.根据权利要求1的计算设备110,其中所述接口模块118包括用于仿真若干操作系统功能的操作系统仿真模块322。
3.根据权利要求1的计算设备110,其中所述接口模块118仿真操作系统功能和网络服务器功能。
4.根据权利要求1的计算设备110,其中所述接口模块118仿真归属位置寄存器的功能。
5.根据权利要求1的计算设备110,其中所述接口模块118仿真智能网络服务器功能。
6.根据权利要求1的计算设备110,其中所述接口模块118在位于接口模块118内的分立模块中具有用于仿真操作系统功能和网络服务器功能的部分。
7.根据权利要求1的计算设备110,其中接口模块118通过解释指令是否必须被进一步处理来处理程序指令。
8.根据权利要求7的计算设备110,其中接口模块118转换从操作系统层120所接收的结果,以便于所转换的结果处以应用程序可以使用以执行指令的格式。
9.根据权利要求7的计算设备110,其中应用接口模块118翻译所接收的指令以便于操作系统层120可以执行指令。
CN200410064418.5A 2003-10-24 2004-08-24 接口模块 Expired - Fee Related CN1609791B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/692939 2003-10-24
US10/692,939 US8424023B2 (en) 2003-10-24 2003-10-24 Program interface architecture

Publications (2)

Publication Number Publication Date
CN1609791A CN1609791A (zh) 2005-04-27
CN1609791B true CN1609791B (zh) 2010-05-05

Family

ID=34394579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200410064418.5A Expired - Fee Related CN1609791B (zh) 2003-10-24 2004-08-24 接口模块

Country Status (3)

Country Link
US (1) US8424023B2 (zh)
EP (1) EP1526455A3 (zh)
CN (1) CN1609791B (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4725955B2 (ja) * 2005-06-30 2011-07-13 株式会社リコー 情報処理装置、メッセージ管理方法、プログラムおよび記憶媒体
US11762972B1 (en) * 2006-08-13 2023-09-19 Tara Chand Singhal System and methods for a multi-factor remote user authentication
TWI352909B (en) * 2007-09-05 2011-11-21 Htc Corp Method and system for supporting network sharing a
US8484609B2 (en) * 2008-07-16 2013-07-09 Apple Inc. Specification files for call translation and trace
JP4888742B2 (ja) 2009-02-25 2012-02-29 ソニー株式会社 情報処理装置および方法、並びにプログラム
CN102053871B (zh) * 2009-10-28 2013-03-13 中国移动通信集团公司 一种应用程序图像的显示方法和装置
CN101894042B (zh) * 2010-06-24 2014-05-07 宇龙计算机通信科技(深圳)有限公司 一种多操作系统间共享应用的实现方法、系统及移动终端
CN102141929B (zh) * 2010-10-21 2014-05-07 华为技术有限公司 应用程序的运行方法、模拟器、宿主机及系统
US20120151095A1 (en) * 2010-12-09 2012-06-14 Ibm Corporation Enforcing logical unit (lu) persistent reservations upon a shared virtual storage device
CN102868588B (zh) * 2011-07-07 2016-05-11 腾讯科技(深圳)有限公司 停靠栏的实现方法和装置
CN103108244B (zh) * 2013-01-31 2015-09-30 冠捷显示科技(厦门)有限公司 一种将电视系统虚拟化的方法
CN103399753A (zh) * 2013-08-19 2013-11-20 银联商务有限公司 软件架构
CN103399754B (zh) * 2013-08-19 2017-02-22 银联商务有限公司 软件架构设计方法
WO2015196330A1 (zh) * 2014-06-23 2015-12-30 华为技术有限公司 一种路由设备的操作方法、路由设备和终端设备
WO2016197155A1 (en) * 2015-06-02 2016-12-08 Viirii, Llc Operating system independent, secure data storage subsystem
CN111343221B (zh) * 2018-12-18 2024-06-18 北京奇虎科技有限公司 基于通用接口框架的命令模式下的业务处理方法和装置
CN112181504B (zh) * 2020-09-23 2024-06-07 深圳市奋达智能技术有限公司 一种操作系统的调用方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020052727A1 (en) * 2000-10-30 2002-05-02 Barry Bond Kernel emulator for non-native program modules

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2002201C (en) 1988-12-06 1999-04-27 John Charles Goettelmann Translation technique
US5574915A (en) * 1993-12-21 1996-11-12 Taligent Object-oriented booting framework
US5767849A (en) * 1995-08-18 1998-06-16 International Business Machines Corporation Personality neutral window management subsystem
US6063128A (en) * 1996-03-06 2000-05-16 Bentley Systems, Incorporated Object-oriented computerized modeling system
US6067584A (en) * 1996-09-09 2000-05-23 National Instruments Corporation Attribute-based system and method for configuring and controlling a data acquisition task
US6519623B1 (en) * 1996-10-31 2003-02-11 International Business Machines Corporation Generic semaphore for concurrent access by multiple operating systems
US5889954A (en) * 1996-12-20 1999-03-30 Ericsson Inc. Network manager providing advanced interconnection capability
US5958049A (en) * 1997-03-17 1999-09-28 International Business Machines Corporation Operating system debugger using kernel and dynamic extension with debugger drivers to support different output devices
US6086623A (en) 1997-06-30 2000-07-11 Sun Microsystems, Inc. Method and implementation for intercepting and processing system calls in programmed digital computer to emulate retrograde operating system
US6026238A (en) 1997-08-18 2000-02-15 Microsoft Corporatrion Interface conversion modules based upon generalized templates for multiple platform computer systems
US6014511A (en) 1997-08-29 2000-01-11 Intel Corporation O/S abstraction architecture for HID PC applications
USH1921H (en) * 1997-09-26 2000-11-07 Dsc/Celcore, Inc. Generic wireless telecommunications system
WO1999031584A1 (de) * 1997-12-17 1999-06-24 Fujitsu Siemens Computers Gmbh Verfahren zum umsetzen eines systemaufrufs
US6553429B1 (en) * 1998-06-05 2003-04-22 Microsoft Corporation Fast conditional thunk utility
US6484309B2 (en) * 1998-10-08 2002-11-19 Intel Corporation Enabling software designed for one operating system to operate on another operating system
US6393605B1 (en) * 1998-11-18 2002-05-21 Siebel Systems, Inc. Apparatus and system for efficient delivery and deployment of an application
US6651123B1 (en) * 2000-03-30 2003-11-18 International Business Machines Corporation File system locking
US7085705B2 (en) * 2000-12-21 2006-08-01 Microsoft Corporation System and method for the logical substitution of processor control in an emulated computing environment
US6986148B2 (en) * 2001-07-17 2006-01-10 Appforge, Inc. Methods and systems for providing platform-independent shared software components for mobile devices
US6907519B2 (en) * 2001-11-29 2005-06-14 Hewlett-Packard Development Company, L.P. Systems and methods for integrating emulated and native code
BR0309334A (pt) * 2002-04-19 2005-03-08 Computer Ass Think Inc Sistema e método para gerenciar valores de opção de sistema operacional

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020052727A1 (en) * 2000-10-30 2002-05-02 Barry Bond Kernel emulator for non-native program modules

Also Published As

Publication number Publication date
US20050091669A1 (en) 2005-04-28
US8424023B2 (en) 2013-04-16
CN1609791A (zh) 2005-04-27
EP1526455A2 (en) 2005-04-27
EP1526455A3 (en) 2007-01-31

Similar Documents

Publication Publication Date Title
CN1609791B (zh) 接口模块
CN1109473C (zh) 改进寻呼移动用户和更新移动用户位置的系统和方法
KR100445717B1 (ko) 기존 가입자를 무선 통신 시스템으로 전환하는 방법
AU658404B2 (en) Method in mobile telephone systems in which a subscriber identity module (SIM) is allocated at least two identities which are selectively activated by the user
CN1973526B (zh) 在事件处理系统中处理业务初始请求消息的事件处理方法
CN1082294C (zh) 支持智能网络结构的通信网节点间传输用户数据的方法
RU2007148282A (ru) Мобильный узел, способ и компьтерный программный продукт для передачи обслуживания от одного типа сети к другому типу сети
KR960705465A (ko) 인텔리젼트 이동 전기통신 네트워크 장치(intelligent mobile telecommunications network arrangement)
CN1997222A (zh) 一卡多号的实现方法及其系统
MXPA99011832A (es) Arquitectura hlr de programatica.
CN110536279A (zh) 一种用户数据迁移的方法、装置和用户数据演进系统
US6226516B1 (en) Method for invoking dynamically modifiable subscriber services and an intelligent telecommunication network incorporating the same
CN106465038A (zh) 在运营移动网络中提供多imsi方案的方法和系统
CN109672688A (zh) 呼叫处理方法、装置、设备及存储介质
CN109474971A (zh) 呼叫漫游用户的方法、装置、设备及存储介质
JP2004535689A (ja) 加入者情報の訪問先網に向けた転送
KR100346342B1 (ko) 전기통신망에서의이동성
CN100512464C (zh) 归属地短号码业务的系统、平台及实现方法
CN101026644A (zh) 一种通信终端及显示移动电话主叫发起地信息的方法
CN101064937B (zh) 一种漫游用户的归属地的接入方法及系统
CN104125552A (zh) 基于网络传输原理实现号码传输的方法和系统
CN101771996B (zh) 终端、位置信息提供设备、位置更新方法及系统
CN100477832C (zh) 被叫用户路由查询的方法
RU2003136745A (ru) Способ индивидуализированной настройки и вызова (услуга "мой вызов") для абонентов мобильных услуг
CN100531068C (zh) 短消息信令模拟测试系统及测试方法

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100505

Termination date: 20160824