您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 销售管理 > 下一代网络中第三方业务管理的研究(计算机应用)
下一代网络第三方业务管理的研究和实现曾锡山1,范冰冰1,卫建安2(1华南师范大学计算机学院,广东广州510631)(2广州大学实验中心,广东广州510006)摘要:下一代网络的开放服务架构OSA中,第三方服务提供商的管理是需要解决的关键问题。本文研究了托管的第三方业务系统的管理总体结构,依据Java安全模型和面向方面编程方法,给出基于MiLifeISGSimulator对网关业务能力调用限制模块的实现,并进行性能测试。关键词:下一代网络;第三方业务;Java安全模型;面向方面编程中图分类号:TP393.07文献标识码:ATHESTUDYANDIMPLEMENTIATIONFORTHIRDPARTYSERVICEMANAGEMENTINNGNFanBing-bing,WeiJian-an(1SchoolofComputer,SouthChinaNormalUniversity,Guangzhou510631,China)(2ExperimentCenter,GuangzhouUniversity,Guangzhou510006,China)Abstract:ServicemengaementofThirdpartyserviceproviderisakeyprobleminNGNOSA.Amodelofthirdpartyservicemanagementisproposed.ByJavasecuritymodelandAspectOrientedProgramming,thegatewayservicecapabilityrestrictionmoduleisimplementedwithMiLifeISGSimulator,andtheTestingperformanceispresented.Keywords:NGN,thirdpartyservice,Javasecuritymodel,AspectOrientedProgramming1引言下一代网络NGN是一种最大方便利用底层网络资源和业务开放的集成模式[1],焦点集中在支持下一代应用和不同商业模式的最大化能力重用和业务开放管理的实现结构和途径。NGN业务开放环境将引入独立于网络运营商的第三方服务提供商SP,为提供极大丰富的个性化业务和缩短业务生成周期成为可能。建立NGN应用环境的目的是将通用的、可重用的网络能力呈现给第三方服务提供商,使服务提供商能创建、部署和运行新业务,而不需要自身建设这些能力;换言之,网络运营商或基础设施拥有者通过可重用方式能够向服务提供商开放已有的网络投资。NGN业务支撑环境的核心组成:一系列通用能力的实现,通过可管理、紧凑的能力发布,安全机制,开发和运行环境。但期望的重用,也导致通用网络资源的竞争,以致必须在多重服务间进行能力管理,及在服务和能力基础间进行隔离;如所知那样,一种设备(组件)的能力和性能可从外部被设计,但当同时使用一能力的服务数目增加时,将变得不可管理。所以,此时需要一个对通用能力很好定义、标准接口的应用网关,除新服务能很快、很容易得到和使用外,同时可根据SLA承诺进行管理。如图1所示,第三方服务提供商SP可将业务独立外部部署,也可以通过托管或合作等形式在运营商内部的应用服务器上部署。当业务内部部署与Parlay网关的交互不经过Parlay框架,直接使用SCS提供的网关业务能力[2],从而简化了在外部调用时所需的框架接入、业务发现、业务选择等步骤,大大提高了业务的执行效率。但与此同时第三方业务可能会调用未经授权的网关业务能力,造成网络资源授权使用的失控。鉴于此,本文提出结合Java安全模型和面向方面编程来限制未经授权的网关业务能力调用,并在此基础上搭建测试平台,以基于Web的用户信息查询业务为测试业务对Java安全模型和面向方面编程的应用进行功能测试和性能测试,实验结果表明这两种技术能完成阻止未经授权的调用,并且具有可接受的性能,对促进下一代网络的广泛部署及其BOSS系统的建设有一定实际意义。图1、NGN服务框架2第三方业务管理的关键技术2.1Java安全模型安全性是Java主要考虑因素之一,随着Java的发展,更多的安全机制被加入其中,JDK1.4开始更是集成了JCE、JSSE和JAAS等Java安全扩展平台[3]。在Java安全模型中有三个重要的安全支柱:类加载器、类文件验证器和安全管理器。其中,安全管理器java.lang.SecurityManager是一个具有完全功能的、资源级的访问控制工具,每一时刻JVM只允许存在一个激活的安全管理器。图2显示其基本的交互流程,如果没有定义安全管理器,应用程序可以访问任何系统资源。在设置安全管理器后当应用程序试图访问保护域中没有定义的系统资源时,安全管理器会抛出SecurityException,阻止该访问。图2Jave基本安全交互流程2.2面向方面编程面向方面编程(AOP)利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的行为封装到一个可重用模块,并将其命名为“Aspect”,即方面。所谓“方面”,就是将与业务无关,却为业务模块所共同调用的逻辑或责任,例如权限控制、事务处理、日志管理等,封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可操作性和可维护性。能力运营商业务环境独立运行SP托管SP底层功能用户门户框架SP3第三方业务管理的设计及关键模块实现3.1第三方业务管理系统的总体结构下一代网络的第三方业务管理系统是基于NGOSS思想的下一代网络业务运营支撑系统的子系统,可以对驻留在网络运营商内部应用服务器的第三方业务进行有效的监控管理。图3第三方业务管理系统总体结构如图3所示,系统主要包括四大模块:服务器资源访问限制模块、网关业务能力调用限制模块、OAM模块和接口适配模块。服务器资源访问限制模块:该模块确保网络运营商内部应用服务器的正常运行,针对服务器功能组件的访问权限,规定应用服务器中的哪些资源可以被授权业务访问。网关业务能力调用限制模块:该模块实现只有被授权的第三方业务才能对网关业务能力进行调用,确保网络运营商的自身利益以及最终用户的服务质量。OAM模块:该模块调用另外三个模块协同工作,并为第三方业务管理系统提供GUI界面,网络运营商通过它进行业务部署和卸载、权限授予和撤销,以及业务运行的监控。接口适配模块:该模块负责和业务管理系统与业务运营支撑系统等其他子系统的交互,包括与计费子系统、结算子系统、故障管理子系统、QoS管理子系统等的通信,并且提供基于NGOSS组件规范的接口供其他子系统调用。3.2网关业务能力调用限制模块的实现该模块结合使用Java安全模型和面向方面编程来实现网关业务能力的调用。应用开源AOP框架编写拦截器,基于业务代码来源对网关业务能力的调用进行拦截,并根据策略文件的配置判断其是否具有调用权限,没有的话弹出异常处理,从而有效阻止第三方业务调用未经授权的网关业务能力。在下一代网络中,Parlay网关通常由专业的设备供应商提供,此时网络运营商只有编译好的ParlayAPI库,为了对调用进行拦截,要采用能对字节码动态添加方面的开源AOP框架DynamicAspects,在加载字节码时对其进行转换,转换完成后交付JVM的Classloader加载执行。这里以基于Web的用户信息查询业务为例予以说明,采用轻量级的Tomcat来模拟网络运营商内部的应用服务器,并用朗讯的MiLifeISGSimulator来模拟底层的Parlay网关。应用服务器与Parlay网关之间接口调用的承载方式为CORBA,为了隐藏CORBA通信的复杂性,MiLifeISGSDK提供了称为ConvenienceClasses的高层API[5]。该业务调用了ConvenienceClasses中UserStatusAdapter类的requestStatus方法。在DynamicAspects框架中,提供了基类DefaultBeforeAfterAdvice,这个类起到拦截器的作用。必须继承该类并重写里面的before方法,将权限判断的代码添加进去。在MyAspect子类中,berfore方法的核心代码如下:publicvoidbefore(ArgumentInfomai){*****SecurityManagersm=System.getSecurityManager();If(sm!=null){If(mai.getMethodName().equals(requestStatus)){sm.checkPermission(newweb.AOPPermission(requestStatus));System.out.println(Checkingpassed!);}}*****}在业务的初始化过程中加入如下代码:DefaultBeforeAfterAdviceadvice=newMyAspect();advice.installAroundExecution(UserStatusAdapter.class,public.*);这里首先生成拦截器MyAspect的实例advice。接着调用该实例的installAroundExecution方法将MyAspect与UserStatusAdapter进行绑定,使得当UserStatusAdapter类被实例化后,里面所有的公共方法被调用前都要由MyAspect拦截,并执行before方法体中的验证代码。当requestStatus方法被拦截时,安全管理器会检查策略配置中是否包含名为requestStatus的AOPPermission,AOPPermission是从java.security.BasicPermission继承的网关业务能力调用许可类。在策略文件service.policy中为业务设置requestStatus的调用权限,并在Tomcat的JVM设置中添加如下参数:1.-Djava.security.manager——启用安全管理器2.-Djava.security.policy==“C:\service.policy”——指定自定义的策略文件位置(不加载系统默认的策略文件)3.-javaagent:..\dynamicaspects-0.8-20050318.jar——指定框架提供的代理位置启动服务器并运行业务,由于在策略文件中为业务设置了调用权限,所以业务可以顺利执行,如图4所示;否则会因为没有相应的权限而弹出如下异常java.security.AccessControlException:accessdenied(web.AOPPermissionrequestStatus),阻止了业务调用未经授权的网关业务能力,如图5所示。图4查询结果页面图5出错信息页面4第三方业务管理的性能测试以基于Web的用户信息查询业务为测试业务,在里面添加计时代码,计算业务的执行时间,在启用网关业务能力调用限制模块和未启用该模块的情况下分别进行了20次查询,得出的结果如图6所示,其中横轴代表测试次数,纵轴代表以毫秒为单位的业务执行时间。用户信息查询业务010002000300040005000135791113151719测试次数时间(毫秒)启用网关业务能力调用限制模块未启用网关业务能力调用限制模块图6启用网关业务能力调用限制模块前后的执行时间从上图可以看出,第一次用户信息查询的执行时间过长,是网关模拟器初始化的必然结果。此后两种情况的执行时间都稳定在约1400~1800ms之间,并且蓝线总体上比红线稍高,但差距仅约100~200ms。可见启用网关业务能力调用限制模块后业务的执行时间仍能保持在可接受的范围之内,因此结合Java安全模型和面向方面编程来限制网关业务能力调用在性能上总体是可以接受的。5结束语下一代网络是融合与开放的网络,网络运营商有必要对第三方业务进行有效的管理,外部第三方服务提供商可通过Parlay框架进行授权能力使用,而对托管于运营商内部的第三方业务就需要其它处理方法。本
本文标题:下一代网络中第三方业务管理的研究(计算机应用)
链接地址:https://www.777doc.com/doc-2811786 .html