第十六讲API和中间件技术自学讲义主要内容一、API概述二、Parlay应用编程接口(ParlayAPI)三、中间件技术常用术语介绍基于协议和基于API的应用开发技术定义API的语言和方法一、API概述常用术语介绍下一代网络是一个开放的网络,它允许业务提供商(尤其是第三方业务提供商)通过标准的应用编程接口(API)开发能够接入网络资源的各种业务或应用。API:是一个工具,编程者通过它编写一个应用程序便能够请求另外的应用、底层操作系统或通信架构来实现其想要的功能或动作。开放式API:指一种公开出版的API,即API的定义是公开的。常用术语介绍标准API:指已经被工业论坛采用或被标准化组织认可为标准的一种API。资源API:能够接入并控制部署在网络中特定资源的API,包括交换机、媒体网关等。网络能力API:指能够接入并控制网络业务的API,网络业务包括呼叫控制、定位、认证、号薄、登录、计费等。网络API:定义了网络向外部应用提供的功能集合。其定义通常独立于网络的内部体系结构,典型的例子有ParlayAPI。常用术语介绍内部API:仅仅由位于同一管理域内的其它实体使用的API。外部API:可以被位于其它管理域内的实体使用的API。电话应用:一种能够部署在电话网络中的软件实体,或者能够通过电话网向网络用户供给增值业务的软件实体。智能网应用:一种能够部署在智能网中的软件实体,或者能够通过智能网协议将业务传送到网络呼叫控制层的软件实体。常用术语介绍网络API应用:能够通过网络API接入网络功能的软件实体。组件:是提供一种功能的软件单元,可以通过已经定义的接口来访问其功能。接口:是一些规则的形式化集合,用来和一个实体进行交互。接口的例子包括TAPI、INAP、SQL、ODBC、MGCP以及包含12个数字的电话键盘。常用术语介绍协议:是接口的形式化定义,这里的接口是根据消息的交换来定义的。协议定义通常包括消息格式的定义(包括每个消息参数的名称和类型)和能够保证消息按序进行交换的规则清单。业务:用来特指实际存在的一个业务提供者(可以是一个人、一个系统或者一个网络)以及一个用户(也可以是一个人、一个系统或一个网络)或用户团体。业务通常是根据其功能实体(是传递给用户的功能集合)来定义的。常用术语介绍网络业务:网络业务指那些由网络提供的、终端用户(通过用户网络接口)或外部应用(通过网络API)能够使用的、已经定义完善的功能。智能网业务:是在网络的呼叫控制层用来增强网络的基本呼叫控制功能的一种功能或一些功能的集合。特征:又称为智能网特征或者智能网业务特征,指能够实现智能网业务的一个功能或者能够用来实现一个或多个智能网业务的一个组件。常用术语介绍即插即用:指能够在参考体系结构内的任何层内无缝添加组件或替代另一厂家的组件的功能,而位于其它层内的组件能够自动识别新的组件,并且不影响业务的运行,也不需要进行任何整合动作。触发或触发点:能够通知交换机在呼叫的某一点上进行动作的一个事件。触发检测点:是呼叫状态进展中的一个点,通过该点,呼叫处理可以被转移到智能网业务的控制层。基于协议和基于API的应用开发技术在通信系统开发中,基于API的开发技术和基于协议的开发技术的主要分歧在于基于协议的基础网络或基于API的基础网络是否能够提供最有效的机制来支持分布式应用的开发,在这一方面,基于API的应用开发方法显然占了上峰。下图显示了基于协议的开发应用系统的过程。基于协议的开发应用系统的过程应用第一步:定义协议第二步:实现驱动第三步:定义内部专用API(如果有的话!)第四步:开发应用应用驱动驱动驱动应用专用APIIP传输基于IP的协议规范特定的系统应用(不可便携、无互通性)应用应用驱动驱动驱动应用系统A系统B基于API的方法开发系统的过程应用第一步:定义API(通过形式化语言)第二步:开发和链接个人应用第三步:引进分布式平台应用标准API(如在IDL、XML等中定义的API)IP传输标准的通信协议(如IIOP、HTTP等)可互通的应用应用应用系统A系统B存根应用IP驱动存根应用IP驱动APIAPI分布式平台(如CORBA、XML-RPC等)基于API的方法开发系统的过程基于API的应用开发过程的优点:互通性:DPE和标准API能够共同保证系统和应用间的互通,这样,应用就能够被移植到不同的平台上。可编程性:API是面向编程的,而协议并非如此。通过API,编程人员就可以将精力集中于应用提供的功能上。而且,API还支持应用和组件的重用。基于API的方法开发系统的过程可扩展性:定义API的形式化语言支持扩展和向后兼容,不同的厂商可通过扩展由标准API支持的功能来相互区分。定义和开发时间:由于API允许编程人员将精力集中于接口的能力上,而不用关心传输这些接口的方法,因此,可以缩短接口的定义周期,减少制订规范的时间。开放性:标准API便利了第三方对应用的开发,将重点放在功能上、而不是低层的协议细节,从而允许更多的人员参与到应用的开发中来。定义API的语言和方法定义API接口的形式化语言可以和编程语言独立(如IDL和UML),也可以和编程语言相关(如C++和Java)。API接口可以被描述为一些功能和子程序调用的集合,通常包括接口名称、接口中的功能名称和类型以及每个功能参数的名称和类型。在网络应用的情况下,在不同的抽象层提供不同的标准API是非常有用的,应遵守以下原则:定义API的语言和方法接入下层通信协议的API应该隐藏协议的实现细节和消息传输格式;向应用提供抽象层的API应该隐藏协议的差异;接入特定网络元素功能和数据的API支持在网络内开发和部署多厂商应用;接入网络业务的API应该可以为应用隐藏网络结构,支持在多网络中部署应用(即部署在任何能够提供相同API的网络中)。定义API的语言IDL语言:是一种接口定义语言,最初是由OMG提出的,用于定义对象接口,它独立于任何编程语言,而且有一些可以从IDL定义自动生成代码(如C、C++或者Java等)的工具。IDL最大的好处是支持对象的分布,缺点是存在一些专用术语(如OMGIDL、微软IDL和TINAIDL)。定义API的语言UML(统一建模语言):是一种建立软件组件关系模型的形式化语言,包括组件接口的定义,主要用于软件的设计阶段,其接口可以被自动映射到相同的IDL接口。XML(扩展标记语言):是一种用来定义基于文本语言的元语言。由于它是基于文本的,因此很容易使用和传输,能够通过标准的Web工具来使用该语言。定义API的语言Java语言:是一种编程语言,支持常规的对象模型(即支持对象类的集合)和组件模型(如企业Java豆,即EJB)。Java语言应用的实现、重用、分配和生产都非常容易。定义API的几种方法及其间的关系如下图所示:定义API的方法OMGIDL规范UML规范接口规范JavaAPI微软IDL规范其它中间件规范其它规范C++API其它编程语言API}}}中间件技术接口规范编程语言规范:API定义API的方法接口规范是一个可选步骤,它在某种程度上独立于API所针对的技术,将一个接口规范转换为某种编程语言或者接口定义语言没有唯一的方法。中间件技术的接口规范是另一个可选步骤,但它对特定中间件技术的用法依赖性很强。中间件使用的接口定义语言能够提供自动翻译工具(如IDL编译器),它可以将接口规范翻译为编程语言接口。定义API的方法编程语言规范是完全定义API的步骤,因为在这个阶段可以和给定的编程语言(也可以是其它中间件技术),一起来使用规范。二、Parlay应用编程接口(ParlayAPI)ParlayAPI概述ParlayAPI是一种允许电信公司和独立的软件销售商(ISV)都能够创建应用的规范。ParlayAPI允许应用开发人员访问网络业务(如消息处理、呼叫选路和控制),也支持应用开发人员在网络外部整合这些应用和数据。Parlay接口是通过一个“Parlay网关”(属于业务提供商)来实现的。ParlayAPI概述Parlay规范的第一阶段任务已经由其发起成员包括英国电信(BT)、Uiticom、微软、北电网络和西门子完成,主要解决了呼叫控制、消息处理和安全方面的问题;第二阶段的规范已经于2000年6月底发布,包含了几个新成员:AT&T、Cegetel、Cisco、IBM、朗讯和爱立信。Parlay组的主要目标是提供允许位于网络外部的企业访问网络信息并控制各种网络能力的API规范。ParlayAPI的体系结构电信网络电信网络电信网络企业运营商管理工具客户应用Parlay架构架构运营商管理工具Parlay业务业务提供商管理工具不在Parlay阶段2范围内不在Parlay阶段2范围内123546ParlayAPI的体系结构ParlayAPI体系结构是由一些不同的接口组成的。第一阶段解决了基于企业的客户应用和Parlay业务之间的公共接口(接口1)以及客户应用和Parlay架构之间的公共接口(接口2);第二阶段将引进其它公共接口,如支持企业内部管理功能的接口4和接口6、支持第三方厂商接入Parlay业务的接口3和接口5。接口2也表示了呼叫控制业务接口。Parlay网络API体系结构Parlay网络API体系结构图中表示了需要通过“资源API”接入基于网络的资源来实现ParlayAPI。资源API提供了一种结构化的方法,以便将网络资源集成到API的实现中。现有的特殊接口或API(如H.323或INAP等)可以插入到资源API中,从而允许ParlayAPI可以被运用到更加广泛的网络环境中,也能够避免重复开发功能。ParlayAPI的组成ParlayAPI定义了一套与技术无关的接口,这些接口规定了外部应用创建者(如不可信赖的第三方)和内部应用创建者(如传统的网络运营商)控制核心网络资源和能力的方法、事件、参数和语义。ParlayAPI由两类接口组成:业务接口:允许业务接入一部分网络能力和信息;架构接口:提供保证业务接口安全、开放和可管理的能力。ParlayAPI的组成业务接口的功能:保证用户能够接入传统网络能力(如呼叫控制、发送消息、用户交互等)。架构接口提供的功能有:业务登记、业务预定、业务发现、认证、授权和综合管理。ParlayAPI包括四个角色:企业运行商、客户应用、业务提供商和架构运营商。前两者可归为客户,后两者组成提供商。Parlay的体系结构Framework封装FWFramework封装SvcFrameworkSvcFrameworkAppFrameworkAppFramework·业务·业务·业务·业务·客户·客户·客户·业务·业务·业务·业务·业务·客户·客户·客户·客户·客户·客户业务提供商业务提供商企业运营商企业运营商架构Parlay的体系结构Parlay架构的目标是提供保证客户和服务之间接口安全、开放和可管理的特征。架构描述了业务提供商(即特殊业务提供者)和企业运营商域(如特殊客户应用)之间必须的信息流。从企业运营商的观点来看,Parlay架构应该被视为对各种服务的安全接入;从业务提供商的观点来看,架构应该被看作是对网络业务进行安全外包的关联。Parlay的体系结构API可以根据角色的功能进行分组,业务提供商使用FWFramework和SvcFramework两个API,而客户应用使用的API是Framework和AppFramework。Parlay的架构接口Parlay的架构接口:以“Ip”命名,代表“InterfaceParlay(Parlay接口)”。为区分架构网络接口和回叫接口,在“Ip”后紧跟“App”表示客户接口,而在“Ip”之后加上“Svc”表示业务提供商接口。Parlay的架构接口架构由七个模块组成:信任和安全管理、事件通知、综合管理、业务注册、业务租用、业务发现和业务工厂模块。信任和安全管理模块为用户接入架构提供了第一个联系点,也提供了登记(即认证)到架构的能力和选择业务或者接入另一个架构的能力。信任和安全管理模块该模块由以下接口组成:IpInitial、IpAuthentication和IpA