解决方案:App使用有米SDK遭下架事件分析:使用私有API就代表隐私侵犯?
优采云 发布时间: 2022-12-01 05:12解决方案:App使用有米SDK遭下架事件分析:使用私有API就代表隐私侵犯?
10月19日晚间,外媒率先报道了一起安全事件——研究机构SourceDNA发现,多款使用悠米SDK的APP在采集
用户个人数据,因此被苹果下架。今天的事件也被国内媒体广泛报道,很多网友并不知情。
苹果在一份声明中表示,“应用程序使用私有 API 采集
用户个人信息,包括电子邮件地址、设备身份验证信息和路由数据。这些应用程序使用由有米开发的第三方广告 SDK,并将采集
到的信息传递到公司服务器”
对此事件,有米官方也发布了回应(见下图)。回应称,悠米“从未在经营过程中采集
任何直接的个人身份信息,也未披露、出售任何用户个人信息”,悠米的SDK插件仅用于“帮助广告商和开发者防止作弊,在执行过程,不符合苹果官方规定”,而不是“安全漏洞”。
这当然不是安全漏洞
" />
与Xcode事件中安装的App后门不同,此次苹果公布的重要信息是该App使用私有API采集
用户个人信息。其实,这样的事件已经不是第一次发生了。比如在360 App被苹果下架的事件中,调用私有API就存在争议。
2012年2月9日,有网友爆料奇虎360的iOS应用程序调用私有API并涉及读取用户数据,怀疑360应用程序因此被苹果商店下架。一天后,又有网友提出了一些对比,说360浏览器调用的API主要用于浏览器加速,即上网时让网页在浏览器中显示速度更快,通过反编译,发现*敏*感*词*多款iPad浏览器应用都在调用该接口。
我们很难确定谁说的是真话,但我们可以知道的是,使用私有 API 不一定会采集
用户数据,也不一定会被用于不良目的。
关于私有 API 的争议
私有API是指放置在PrivateFrameworks框架中的API。Apple 通常不允许应用程序使用此类 API。因为调用私有API而被拒审的情况并不少见。然而,苹果的审查机制并不透明。很多使用私有API的应用也已经获批,包括像Google Voice这样的应用也是调用私有API的,也已经获准上架。就连苹果的预装应用iBooks也被爆出大量使用私有API,致使第三方应用无法实现亮度控制和调用词典等类似功能。
对于很多应用来说,私有API不是不能用的问题,而是不得不用的问题。以谷歌语音搜索传感器识别为例,在原有的SDK使用规范中,使用这些技术的APP将无法通过AppleStore的审核。事实上,如果严格遵守SDK规则,开发者是无法开发GoogleVoice的。
因此,我们更应该关注的是开发者调用私有API做了什么。
" />
悠米做了什么?
在此次事件中,有米官方表示,自家的SDK主要是为了帮助广告商和开发者防止作弊。简单来说,就是防止一个广告在一个设备上被重复下载,从而避免广告商浪费*敏*感*词*用。
国内移动互联网广告市场一直比较混乱。移动应用推广存在点击欺诈、虚假激活等诸多问题,损害了广告主和媒体的利益。为了过滤作弊流量,很多广告平台利用硬件序列号等信息来分析每台设备是否为真实用户设备,以确保广告商的应用安装在真实用户设备上。另一方面,欺诈流量被过滤后,广告主可以将更多的预算分配给正规媒体,保证正规媒体的收入。
苹果还在声明中指出,悠米采集
了设备应用安装列表信息,而悠米也解释了他们这样做的初衷:
悠米的大部分广告商都是移动应用制造商。在移动应用推广过程中,我们主要帮助广告主寻找新用户。悠米会根据用户的手机应用安装列表信息,筛选出安装过厂商APP的用户。避免无效推广,节省广告主预算,提升推广效果,是悠米的初衷。
这些做法并不特殊。事实上,国内很多广告平台和很多APP都在这样做。这就是为什么许多 Android 应用程序需要许多与功能完全无关的权限。在权限管理比较严格的iOS上,违反了苹果的规定。规则变得容易发生。
我们应该感谢苹果有如此严格的隐私政策,但我们也必须了解事件背后的真相是什么,而不是一味地恐慌和焦虑。说实话,Android系统下的个人信息安全可能更值得关注。
解决方案:BOSS中数据采集子系统的设计与实现
中山大学硕*敏*感*词*论文BOSS中数据采集子系统的设计与实现姓名:****学位级别:硕士专业:软件工程指导教师:**军20060501BOSS中业务数据采集子系统的设计与实现摘要论文题目:指导教师:**SS中数据采集子系统的设计与实现软件工程摘要BOSS全称是BusinessOperationSupportSystem,即业务运营支撑网网管系统(下面简称为BOSS系统),其提出旨在提高电信企业竞争力。而其中的数据采集层是BOSS系统中最重要的一层,其作用是完成网络系统中KPI(关键性能指标)的采集及监控。由于当前的网络管理软件的第三方网管功能(数据采集层所要采集的部分数据)越来越丰富,因此数据采集层的编写就也越来越复杂,同时对其的研究也越来越多。本文探讨的“BOSs中业务数据采集子系统”即是这一层的实现。其背景是以广东省立信集团从兴电子*敏*感*词*于2005年为中国移动某省分公司而做的项目:BOSS中的数据采集系统。该子系统的特点是:与其它的数据采集系统,如现有的网管采集系统,相并行使用。其中的业务数据采集子系统根据生产机(Linux操作系统)上业务数据的特点,采用被动式的采集方式进行采集。基于WebServices来实现功能。
使用SOAP协议进行通讯,以XML作为数据的配置与记录的媒体进行采集,WSDL进行WebServices描述。尽量体现WebServices的简单性与方便性。文章先介绍几种数据采集的方法,然后即着手介绍系统的框架,随后介绍业务数据采集子系统的实现,再通过由一组实验证明了该系统的可行性。最后对工作进行总结和展望。数据采集是BOSS系统的一个非常重要的方而,本文对此进行了一些有意义的探讨,所实现的框架有着较强的现实意义和实用价值。关键词:BOSS,数据采集,被动式数据采集,监控BOSS中业务数据采集子系统的世计与实现Title:Major:Name:Supervisor:DesignImplementationofdatacollectingsub-systemBOSSSoftwareEngl’neefingPanQiangLIWenJunABSTRACTBOSSisBusinessOperationSupporISystemshort,whichisusedtoimprovecompetitivepoweroftelcomenterprises.Datacollecting1evelcollectsandmonitorsKPI(KeyPerfomlanceIndicators)inthenetworksystemwhichjsthemostimportantlevelinBOSS.Asthefunctionofthirdadministrationofnetworksjsmuchrichness.programminginthedatacollectionlevelismorecomplex,andtheresearchtoitismoremeaningful.Datacollectingsubsystemdiscussedhereisonthedatacollectinglevel.ItbasedonprojectofBusinessDataCollectingprogrammedbyCongxingCO.,LTDofLixingroupin2005.TherearesomecharacteristicsofitlistedbelowItworkswithotherdatacollectingsystem,suchsomecommercialnetworkadministrationsystems.Itcollectsdatausingpassivemodebasedonthecharacterofdatacollectionmachines(usingLinux).ItbasedonWebServices.ConmmnicatewithSOAPconfigurewithXMLanddescriptwithWSDL.HereisthecontentofthisthesisFirst,introduceseveraldatacollectingmethods.Second,introducetheframeworkofthewholesystem.Third,introduceimplementationofbusinessdatacollectionsub-system.Fourth,provethefeasibleofthesystembyaserialoftestings.Finallydiscusstheconclusionsandprospects.DatacollectionisthemostimportancepartBOSS.Thethesisdoessomeusefuldiscussionsaboutit.Theframeworkmentionedinthethesisjsmuchmeaningfulvaluable.Keywords"BOSS,Datacollection,PassiveDatacollection,MonitorBOSS中业务数据采集予系统的设计与实现第一章绪论1.1系统背景第一章绪论BOSS全称是BusinessOperationSupportSystem,即业务运营支撑网网管系统(下面简称为BOSS系统),其提出旨在提高电信企业竞争力【”。
当今通信市场正由传统的以通信网和市场为中心的竞争转变为以客户为中心的服务质量的竞争,面对复杂多样的业务支撑系统和不断扩充的业务需求,建立一个能够对业务支撑系统进行集中监控、集中维护、集中管理的网管系统,乃是当前业务运营的迫切要求。BOSS系统通过对业务支撑系统的运行监测、诊断、调整和优化,逐步使得整个计算机系统运行合理化,实现业务运行的可用性、可靠性和必要的性能表现。而且通过发现、总结和挖掘所存在问题,不断明确管理重点并优化管理流程,从而对运维工作进行规范化、流程化管理,以加强运维管理能力、提高运维工作效率、改善运维工作质量,进而保证中国移动业务支撑网全网运维水平的可持续性提升。在中国移动通信*敏*感*词*的统一规划和指导下,各省、自治区、直辖市移动公司业务支撑网的建设已基本完成并正在完善中。面对业务支撑网的复杂多样性,为保障业务支撑网的正常稳定运行,迫切要求建立一个能够对业务支撑网进行集中监控、集中维护、集中管理的网管系统。以下是其现状:(1)业务运营支撑系统(BOSS):采用*敏*感*词*和省公司两级组织管理体系结构,其中一级BOSS系统和各省级BOSS系统的一期建设已经完成,目前各省jE在按照*敏*感*词*要求实施BOSSv1.5规范的建设:(2)经营分析系统:采用*敏*感*词*和省公司两级组织管理体系结构,其中一级经营分析系统和各省级经营分析系统的建设已经基本完成; (3)客服系统:各省级客服系统建设已经完成或正在扩容改造中; (4)容灾系统:目前已有部分省份已经实施容灾系统建设或正在建设中。
中国移动业务支撑网网管系统的体系结构分为两级,如下图所示,即有限 公司业务支撑网网管系统和省公司业务支撑网网管系统。 BOSS中业务数据采集子系统的设汁与实现 第一章绪沦 第一级 第二级 图卜1中国移动业务支撑网网管系统的体系结构 第一级:*敏*感*词*业务支撑网网管系统,负责全面监控、维护和管理有限 公司各支撑系统,同时通过省级网管系统管理各省、自治区、直辖市业务支撑 系统的运维工作。 第二级:省公司业务支撑网网管系统,负责全面监控、维护利管理本省、 自治区、直辖市、【k务支撑系统。 *敏*感*词*业务支撑刚网管系统与省公司业务支撑网系统通过广域网或专 门的传输线路相联,以实现业务管理数据的交换【“。 1.2问题的提出 征是由于网络发展带动市场需求,才使应用比例大幅度提高,下图显示了 近两年网络管理软件的高速发展,证明了其是值得研究的课题。 BOSS中业务数据采集子系统的设计与实现 第一章绪论 图卜22003至2004年上半年中国网络管理软件市场总量 省级业务支撑网网管系统接口 <二二二_ 监控人员、维护人员、管理人员一二) 监控管理平台 服务管理平台 圆圈其nH竹 图1—3中国移动业务支撑网网管系统的功能框架上图是中国移动业务支撑网网管系统的功能框架。
但现在网络管理软件的 重心又是哪一部分呢?根据Gartner Group的最新调查显示,当前信息主管们 最为关心的技术点已经从两年前的应用集成转变为设计、管理灵活高效的基础 设施、安全增强、以及桌面标准和IT绩效等12】。反映在电信运营商层面,就 是通过上述几个方面的治理提升,来有效地降低运营成本(OPEX)、同时提高 业务交付的质量和保障。在这方面的努力成为延续这两年电信IT建设的主旋 BOSS中业务数掂采集予系统的殴汁与实现 第一章绪论 一方面,电信企业通过建立、Ik务数据模型、流程模型和重组、建立统一客户资料库、建设数据仓库和主题分析等来深层发掘分析企业的业务发展、运营 过程中的多种发展的动力因素;另一方面,通过规划企业自身的IT战略发展 路线和规划(ITsP)、不断通过整合和集成来优化信息基础设施的效率,同时提 升其保障水平,控制企业的安全风险。这些都是建设IT保障体系的重要步骤。 IT综合保障体系由IT服务保障、安全保障和生命周期保障三个层面构成的, 是电信企业整体“保障”体系中至关重要的环节,是企业竞争的重要因素,不仅 仅是保护企业核心业务高质量的交付、信息资产不受外部攻击的威胁,更重要地 是良好有效地保障体系可以帮助建立起股东和公众的信心,保障企业的市场核心 竞争力。
业务支撑网网管系统的核心也划分为三层:数据采集层、业务逻辑层、应 用展现层【3】。 业务支撑网嗍管系统分为四大功能模块,即:监控管理平台、服务管理平 台、安全管理、接口。 图1—4业务支撑网网管总体功能 本文所论的BOSS中业务信息采集系统是处于峪控管理平台,因此我们简单 地介绍一F监控管理平台就足够了。 监控管理平台主要负责完成对被管平台部件R.Martinf2000):设计原则与设 计模式、应用部件的集中监控、集中维护和集中管理;服务管理平台侧重于通过 BOSS中业务数据采集予系统的设计与实现 第一章绪论 流程的管理完成对系统服务状况的统一管理。 监控管理平台主要完成对网管数据的采集、处理和呈现。通过网管数据的采 集和处理,实现对系统的统一临控,形成告警数据、性能数据和配置数据。这三 利,数据合称关键性能指标(Key PerformanceIndicator,简称KPI),监控管理平 台着重于及时发现各类告警和性能异常,进行数据分析和整合,同时以适当的形 式进行呈现;另一方面,维护人员借助监控管理平台应能进行相关操作,及时完 成维护职能。 被管对象分为两类:一类为平台部件,包括主机、数据库、网络、存储、中 间件等:另一类为应用部件,主要针对业务支撑系统的各类应用【“。
大用软件数据网管事业部总经理赵成栋就网管软件的发展有以下一段精辟 发言:“……当前的网络管理软件的第三方网管功能越来越丰富,管理的对象越 来越多,目前已经向‘网管部门的ERP方向’发展。它不仅提供覆盖信息环境 管理需要的所有功能,(即上面提到的两类被管对象),而且具有进一步扩充网管 流程和业务的管理功能。另外,网管软件需要适应更多品牌的硬件、软件的管理 需要,并且还要兼容同一品牌的各种细化版本,能够给用户提供更人性的使用体 本文所述的BOSS中业务信息采集系统所要完成的事,就是对已有持有成熟的网管软件(如IBM的Tivoli、HP的OpenView等)所不能采集的KPI,主要 是业务管理方面的KPI进行采集。 1.3本文结构安排 本文由六章组成。 第一章绪论主要介绍了本文研究背景和问题的提出。 绪论之后的第二章是各种数据采集方法的相关介绍及一些成熟产品的相关 介绍及其之间的比较,它是以后各章的理论基础。 第三章介绍信息采集系统的主要设计思想。 第四章介绍信息采集系统中的BMCAgent(也就是业务信息采集系统)的总 体设计。 第五章介绍BMCAgent本系统的主要实现的方法及主要涉及的技术。
BOSS中业务数据采集予系统的设汁与实现 第一章绪论 第六章是系统的运行结果及展现相关的所有实验的数据与图表。 第七章总结全文,并提出了更进一步的工作愿望及不足。 BOSS中业务数据采集子系统的设计与实现 第二章信息采集方法的比较 第二章数据采集方法的比较 数据采集是指根据特定目的和要求,将分散蕴涵在不同时空域的有关数据采 掘和积聚起来的过程【6]o采用基于SNMP协议进行数据采集是当前一种比较可行 的选择,而采用基于CMIP协议进行数据采集则是一种新的选择。随后是几种成 熟的网管软件的数据采集介绍及一些基本概念的解释。 2.1.基于SNMP协议数据采集的介绍 简单网络管理协议(SNMP)已经成为事实上的标准网络管理卧议n由于 SNMP首先是IETF的研究小组为了解决在Internet上的路由器管理问题提出的, 因此许多人认为SNMP在IP上运行的原因是Internet运行的是TCP/IP协议,但 事实上,SNMP是被设计成与协议无关的,所以它可以在IP、IPX、AppleTalk、 OSI以及其他用到的传输协议上使用。 SNMP是由一系列协议组和规范组成的,它们提供了一种从网络上的设备中 采集
网络管理信息的方法。
从被管理设备中采集
数据有两种方法:一种是轮询(polling—only)方法,另 一种是基于中断(interrupt—based)的方法。 SNMP使用嵌入到网络设施中的代理软件来采集
网络的通信信息和有关网 络设备的统计数据。代理软件不断地采集
统计数据,并把这些数据记录到一个管 理信息库(MIB)中。网管员通过向代理的MIB发出查询信号可以得到这些信 息,这个过程就叫轮询(polling)。为了能全面地查看一天的通信流量和变化率, 管理人员必须不断地轮询SNMP代理,每分钟就轮询一次。这样,网管员可以 使用SNMP来评价网络的运行状况,并揭示出通信的趋势,如哪一个网段接近 通信负载的最大能力或正使通信出错等。先进的SNMP网管站甚至可以通过编 程来自动关闭端口或采取其它矫正措施来处理历史的网络数据。 如果只是用轮询的方法,那么网络管理工作站总是在控制之下。但这种方法 的缺陷在于信息的实时性,尤其是错误的实时性。多久轮询一次、轮询时选择什 么样的设备顺序都会对轮询的结果产生影响。轮询的间隔太小,会产生太多不必 要的通信量;间隔太大,而且轮询时顺序不对,那么关于一些大的灾难性事件的 BOSS中业务数据采龌子系统的设计与实现 第二章信息采集方法的比较 通知又会太慢,就违背了积极主动的网络管理目的。
与之相比,当有异常事件发生时,基于中断的方法可以立即通知网络管理:1一 作站,实时性很强。但这种方法也有缺陷。产生错误或白陷需要系统资源。如果 自陷必须转发大量的信息,那么被管理设备可能不得不消耗更多的事件和系统资 源来产牛自陷,这将会影响到网络管理的主要功能。 结果,以上两种方法的结合:面向自陷的轮询方法(trap-directedpolling)可 能是执行网络管理最有效的方法了。一般来说,网络管理工作站轮询在被管理设 备中的代理来采集
数据,并且在控制台上用数字或图形的表示方法来显示这些数 据。被管理设备中的代理可以在任何时候向网络管理工作站报告错洪情况,而并 小需要等到管理工作站为获得这些错误情况而轮询它的时候才会报告。 SNMP的体系结构分为SNMP管理者(SNMPManager)和SNMP代理者 (SNMPAgent),每一个支持SNMP的网络设备中都收录
一个代理,此代理随时 纪录网络设备的各利一情况,网络管理程序再通过SNMP通信协议查询或修改代 理所纪录的信息。F图是基于SNMP的数掘采集模型图 带自密码 榆索管理信息 MIB管理信息 snrnp请求 代理 管理工作站 修改管理信息smTlnI ran 图21基于SNMI,的数据采集模型图 其中代理是设备厂商开发。
" />
部署在设备巾。管王坐工作站通过SNMP查询请 求与代理通信。SNMP基本操作有以下6种: (1)get清求。 getNext请求(3)getBulk请求 (4)get响应 set请求BOSS中业务数据采集子系统的设汁与实现 第二章信息采集方法的比较 2.2.基于CMIP协议数据采集的介绍 作为国际标准,由1SO制定的公共管理信息协议(CMIP)着重于普适性 (Generality)。CMIP主要针对OSI七层协议模型的传输环境而设计,采用报告 机制,具有许多特殊的设施和能力,需要能力强的处理机和大容量的存储器,因 此目前支持它的产品较少。但由于它是国际标准,因此发展前景很广阔【8】0 在网络管理过程中,CMIP不是通过轮询而是通过事件报告进行工作,由网 络中的各个设备监测设施在发现被检测设备的状态和参数发生变化后及时向管 理进程进行事件报告。管理进程一般都对事件进行分类,根据事件发生时对网络 服务影响的大小来划分事件的严重等级,网络管理进程很快就会收到事件报告, 具有及时性的特点。 与SNMP相比,两种管理协议各有所长。SNMP是Internet组织用来管理 TCP/IP互联网和以太网的,由于实现、理解和排错很简单,所以受到很多产品 的广泛支持,但是安全性较差。
CMIP是一个更为有效的网络管理协议,把更多 的工作交给管理者去做,减轻了终端用户的工作负担。此外,CMIP建立了安全 管理机制,提供授权、访问控制、安全日志等功能。但由于CMlP是由国际标准 组织指定的国际标准,因此涉及面很广,实施起来比较复杂且花费较高I”。 2.3.OpenView的数据采集介绍 HP公司专门的网管软件OpenView是由NNM(Networknodemanagement) 专门处理数据采集(101。以下是NNM的一些介绍: 2.6.1.NNM系统架构 系统采用三层架构:展现层,管理:[作站,采集层。 (1)采集层 其采集代理是由设备提供商开发支持标准通信协议的采集代理,并驻留在被 管设备中,供管理工作站查询获得设备Mm信息。所支持的采集通信协议广泛, 管理工作站支持的与采集代理之间的通信协议包括:SNMPvl,SNMPv2,TCP/IP IPX/DMI,UDPICMPARP/PARP。能采集的KPI信息包括代理系统中的MIB信 BOSS中业务数据采集子系统f内殴计与实现 第二章信息采集方法f门比较 (2)管理工作站管理二[作站相当于处理层,用_丁:执行网管任务来监视并控制代理系统。
管理工作站完成故障和问题管理,配置和变更管理,性能管理等网络管理功 能,和网络自动拓扑发现,网络问题故障预测与分析,网络优化,告警事件过滤 管理工作站不断轮询采集代理,获得代理系统的MIB信息,轮询的信息包括:节点的状态,网络拓扑的变化,节点配置的变化,性能数据。同时也支持 SNMP协议代理trap信息主动上传。 (3)展现层 支持web界面展现和窗口界面展现。 2.6.2.系统工作原理 2.3.2.1.采集关键信息 通过驻留在设备中的代理来采集信息,代理是由设备厂商开发。则采集的关 键信息是设备厂商设定,遵循MIB标准。 2.3.2.2.节点自动发现与拓扑展现 启动NNM后台进程将会发现IP设备和第二层设备并绘制拓扑图。但此拓 扑图是NNM管理1.作站和节点之间通信通道的逻辑视图,并不是物理视图。为 了发现网络中的所有节点,则初始网络节点轮询进程需要发儿分钟甚至几个小时 来进行划NNM内部拓扑数据库的初始化。则NNM故障与问题管理能准确定位 故障发生所在的节点。 NNM后台进程通过SNMP查询请求和ICMPping命令来找出网络中的节点。 要发现刚络中的节点,后台进程需要以下信息:管理:|_=作站上代理的子网掩码, 管理工作站路由表中的默认路由器地址和来自默认路由器的SNMP信息以及网 络巾其它路由器的SNMP信息,这样就能实现IP节点自动发现。
NNM后台进程通过IPX广播束发现节点,在发现节点后通过SNMP来获取 一1n一 BOSS中业务数据采集子系统的砹汁与实现 第二章信息采集方法的比较 节点的信息。IPx网络的符号存在与Inlernet的子图中,与IPx网关相连,可以 展开IPX网关获得网段和节点信息。要获得IPX网络节点信息,后台进程需要 满足以下条件:管理工作站的IPX配置必须正确,至少有一个IPX服务器或路 由器连接到管理工作站所在的网络。IPX网络节点可以响应IPX渗断请求。这样 就能实现IPX节点自动发现。 NNM利用三个标准MIB来获得第二层设备信息。三个标准MIB是:网桥 MIB,中继器Mm和802.3MAUMIB。只要设备支持其中任何一个MIB,后台 进程将会使用所搜集的信息开发一个拓扑模型,来展示设备之间的拓扑情况。 2.3.2.3.事件减少功能 NNM包括多个事件减少功能。这些功能可以确定不同事件之间的关系,以 便快速确定问题的根本原因,进行事件过滤或事件整合创建一个新的含有更丰富 告警信息的事件 2.3.2.4.NNM数据库 HNM有5个内置数据库,每个数据库存储特定类型的数据并服务于不同的 目的。
NNM还有一个数据仓库:存储网络历史信息的一个关系数据库。 具体内置数据库外部程序不可一直接访问,外部程序只能访问数据仓库。 2.6.3.系统与第三方集成的接口 2.3.2.5.采集接口 HPOpenView所提供的对象数据采集接口包括: (1)日志文件采集器 OpenViewOperationAgent提供了日志文件采集器LDgfileEncapsulator,通 过采集指定的系统或应用日志文件(包括ASCH型,二进制型),指定模式匹配 条件,从日志文件中获取故障信息。 (2)Opc消息发生器 BOSSq'!lk务数据采集予系统的设训与实现 茹二市信息采集方洼的比较 OpenViewOperationAgent提供了开放的消息生成接口opcmsg,通过在被管 节点定时执行测试的shell脚本,根据测试的结果生成故障消息。 (3)Opc数值*敏*感*词* OpenViewOperationAgent提供了开放的数值监控接口opcmon,通过在被管 节点定时执行测试的脚本的返回值,根据预先设定的闽值越界情况生成故障消息 (4)OenViewMessage StreamInterfaceAPI. OpenView在代理程序与服务器端都提供了基于C,c+十的消息流接口 Message StreamInterfaceAPI(MSI) (51)SNMP接口 接受snmptrap的事件和变量,OpenView Performance Agent DSl接口,通过 DSI接151采集其他系统所提供的性能数据。
2.3.2.6.与其他应用系统的接口 由于省BOSS网管系统作为省BOSS系统地一部分和总公司BOSS网管的子 系统,所以必须提供与外界系统互连的接口,HPOpenView与其他系统的接口包 OpenViewOperationsManagerApplication Program Interface:用于访问 OpenViewOperaionsManager的应用对象,包括消息流的访问,从而集成其他应 用的事件,界面等等。 OpenVicw Intereonnecttools:通过消息的方式与外界进行数据交换,支持流 行的JavaMessagingService(JMS)标准 SNMP Trap:通过转发SNMPTrap的方式集成外部系统 2.3.2.7.网管系统KPI与外界的数据接口 接口有两方而内容,数据的存取方式,及数据的格式。 数据的存取方式,可以有以下两种: API方式。API力式主要是通过程序进行调用的方式获得数据,具体实现上 可以是通过普通SocketSeer方式、JavaBeans方式,远程过程调用等。 BOSS中业务数据采集子系统的蹬计与实现 第二章信息采集方法的比较 文件方式。
数据通过文件的形式进行交换比较适于非实时性的批处理环境。 2.4.Tivo的数据采集介绍 IBM公司专门的网管软件Tivoli是由NetView专门处理数据采集。【12】以下 是NetView的一些介绍: NetView是IBM推向市场的一种网络管理系统。它是基于Hewlett--Packard 的OpenView管理系统的,但是IBM进~步发展了它。NetView被普遍认为是 当今销售的最先进的网络管理产品。IBMNetView的原创
动机是,对系统网络体 系结构(SNA)网络进行管理,但是它现在已经成为支持开放式系统互联(OSI), 以及传输控制协议/Internet协议(TCP/IP)的公用局域网(LAN)管理系统。 IBM NetView对被管理的网络定义了三个部件。IBMNetView是接收来自网络上 被管理设备警报的聚焦点。入口是在被管理没各上的代理,例如主机系统、前端 处理器、控制器和LAIN部件。服务点向非SNA协议系统提供了一个进入的途径, 并支持简单网络管理协议(SNMP)和公用管理信息协议(CMIP)。这里介绍 IBMNetView的一些主要部件: 口命令设备、基本命令和对IBMNetView的控制中心。
它建议在一些隋况 下如何采取行动。 口硬件监督器。负责管理网络警告,包括为今后引用而存储它们。 口会话监督器。采集
关于网络会话的信息,例如它们的状态、配置响应时 间、失效情况和出错代码。 口状态监督器。采集
SNA网络上资源的信息。这些信息对图形监督器是可 口图形监督器。运行在OS/2上的软件,它可以提供网络和其资源的图形化显示,用户可以通过点击获得关于I.AN网络段、结点或设备的信息。 口浏览设备。提供了…种观看IBMNetView采集
信息的途径。 IBMNet View可以被需要采集
和显示网络特定信息的用户个人化。可以使 用C语言,再构可执行外部语言REXX(RestructuredExecutiveExternall anguage) 和命令表(CLIST)等编程工具来个人化这一系统。 BOSS中_k务数据采集子系统的改计与实现 第二章信息采集方法的比较 2.5.LinkManager的数据采集介绍 神州数码网络LinkManager系列网管系统是基于MicrosoftWindows平台, 具有增强网元管理能力、增强网络性能及故障崎控能力、结构灵活、简单易用的 全中文图形化、用户界面IP嗍络管理系统。
LinkManager是神州数码网络根据中困网络用户的实际需求,遵循ISO网络 管理模型的百大功能域架构。它是基于Java技术,提供了--N基于SNMP协议、 XML、Java、JMX技术的网络管理f:具,并有机地将它们无缝集成在支持灵活 插拔的剧户平台中。 LinkManager分为基础版和标准版。基础版是神州数码网络根据r『_『小企业网 络用户对网络设备管理的需求而自主研发的网,i级网管系统;标准版则是根据企 业网用户,对lP网络综合管理需求而自主研发的综合网管系统平台。 2.6.主动采集与被动采集的介绍 采集中涉及到主动采集与被采集两个重要的概念。以下详细介绍主动采集与 被动采集及其之间的区别。 2.6.1.主动采集 主动采集指刈专业网管已采集到的数据进行采集151。包括数据库的采集 (JDBC接口)、对专业网管系统的采集(SOAP接口和JavaAPI接厂|)。 ~般情况下,专业网管系统将告警数据存放在数据库中,采集层只要从该库 中就可以读取到有网管系统所隘控的所有告警信息。并且,这种告警信息几乎是 实时的。[41 一般情况li,专、『k网管系统的性能数据不会集巾存放在服务器f_-'而是分散 在各个雌控代理节点上。
例如专业网管系统Tivoli提供了SOAP接口。只要向 Tivoli服务器发送SOAP清求,Tivoli将自动读取相应的采集代理中的性能数据, 并返同给客户端。[41 而专业网管系统OpenView则提供了JavaAPI读取性能数据。原理基本和 Tivoli一致。即在OpenView服务器端调用OpenView的JavaAPI,OpenView将 BOSS中业务数据采集子系统的设计与实现 第二章信息采集方法的比较 自动到各个采集代理中读取性能数据,并返回给客户端。 2.6.2.被动采集 在与BMCAgent这个采集代理进行数据传输时,采用被动采集方式。即有 BMCAgent将采集到的告警、性能和配置信息主动发送给采集、接收层。也就是 说,如果采集、接收层不发送命令的话,我们的代理程序就不将数据上传。不采 用主动方式的原因是:我们自己开发的采集代理基本上不缓存数据。在被动模式 下,采集、接收层需要使用SOAP服务,用户接收代理发送上来的数据。 2.7.小结 本章首先介绍了两种基于不同协泌的数据采集方法,然后介绍了三种成熟的 网管软件进行数据采集的主要思路。现有网管都应该采用积极主动的方式。
但在 一些业务数据的采集上我们不得不具体问题具体分析而被动的采集方式。这是因 为在生产机上采集一些业务上的数据时,为了方便起见,并不是所有数据都要采 集,也就是说并不所有采集过来的数据都要存入数据库的,除了一些必要的告警 数据以外。因此,我们使用被动的采集方式来实现这个业务采集子系统有其合理 的原因,除此以外,系统也必须实现上述的面向自陷的轮询方法,这样效率与准 确性才能平衡。 本章是其他章节的基础,随后几章将在此基础上设计并实现一个数据采集的 模型,并且重点会放在描述业务数据采集代理子系统上。 BOSS中业务数据采集予系统的谨汁与实现 旃三章数据采集子系统的改汁 第三章数据采集系统的设计 在第二章划BOSS系统中数据采集的几种模式的介绍的基础上,本章首先介 绍了本人在广州立信集团从兴电子*敏*感*词*参与开发的一个数据采集项目。以此 为背景,展现了一个自主开发的基于c/s模式的数据采集框架。 3.1.项目背景 BOSS中数据采集系统是广州立信集团从兴电子*敏*感*词*存应中因移动 BOSS系统建设的标而做的一个项目,它以解决中国移动公司的各种KPl数据的 采集为基本目标,并且对所采集的KPl信息进行必要的分析,对其中出现的故障 进行及时的解决。
" />
由于电信行业晒lk务不断向前发展,因此系统必须是个扩展性 强的系统。【5】 3.2.设计策略 BOSS系统拥有众多不同种类的需要峪控的系统,综合考虑到系统的性能、 呵靠性、扩展性及项目的开发、维护、升级、移植和实际使用操作等因素,特提 出以下的策略: 1.系统设计应简单可靠,数据流程清晰。 A)尽量采用成熟的工具或产品,避免自己从底层开发,而造成系统长时间 内无法稳定。 B)通讯采用SOAP机制,避免采用Socket编程。 c)数据交换机制采用XML格式,避免自定义包格式。 D)数据交换的参数尽量使用String和数值型,避免使用其他不常用的类型。 考虑系统的扩容,尽量做到简单增加机器,更改配置后便可扩容,而不需修改程序代码。 2.采用Java进行开发 前后台都采用Java进行开发。划J:使用Java开发量大,而使用脚本开发容易 的,则使用脚本开发。脚本统‘使用sh。 BOSS中业务数据采集子系统的设计与实现 第三章数据采集子系统的设H。 3.3.系统总体设计 由图3-1业务信息采集系统模型可知,围绕着网络数据库,接个系统主要分为 四个部分:PORTAL、处理层、采集层和接13应用。
以下是它们的一些简介。【5】 图3-1业务信息采集系统模型 BOSS中、【k务数据采集予系统的漩H与实现 帮三章数据采集子系统的设汁 (1)Portal BOSS监控门户网站是用户使用boss网管系统的界面。主要功能有: 口单点臀陆 口展现告警视图(包括关联性分析) 口展现性能视图 口展现配置视图,部分配置信息的录入 口展现业务流程拓扑结构视图 口信息查询 口报表展现 口展现网络视图(通过专业网管软件界面展现) 口服务流程视图(通过专业服务管理软件界面展现) 口网管系统的管理与配置 Portal的开发应该符合MVC模式。 (2)网管数据库 存放BOSS网管所有的数据,包括采集到的告警、性能、配置信息,网管本 身的配置信息,portal网站的配置信息等。 (3)处理层 口告警数据处理 告警数据处理针对来自平台部件类和应用部件类的告警事件,进行故障定 位、告警过滤、告警升级、告警级别重定义、告警前转、告警清除等操作。 口配置数据处理 使用采集层采集到的配置数据更新配置数据表。 口性能数据处理 预处理是剥采集来的原创
数据进行格式转换、检错纠错,形成内部标准记录, 支持比较灵活的格式转换配置和检错纠错配置。
对预处理后的数据进行必要的训算、汇总形成所需的性能指标。 处理后的性能数据保存到数据库中,供分析和呈现使用,性能数据的保留时 问可配置,须符合规范书的有关规定。 性能数据反映了系统的运行状况,是判别被管资源运行是否m常的关键数 BOSS中业务数据采集子系统的设计与实现 第三章数据采集子系统的设计 据。性能数据一旦超出预先殴定的阀值时。系统将触发一个告警,泼告警称为性 能告警。 系统应能提供设定/查询/修改/删除性能阀值的工具,可设多个阀值进行分级 告警。系统也应能设置性能数据的取样时间问隔。 性能阀值告警的内容应能比较全面地描述该性能数据超出阀值的情况,方便 分析、排除故障。 为了性能数据分析和呈现,以及故障的分析,系统应能定期生成统计数据。 通过分析历史指标的情况,预测未来的发展,提升管理层次,达到面向服务品质 的管理。系统应支持多种分类统计方式,如时间、应用种类等。 (4)采集层 数据采集包括平台数据采集和应用数据采集,各自分为性能数据采集、故障 数据采集和配置数据采集。 网元数据采集,包括主机、网络、数据库、中间件等,能采用专业网管软件 采集的KPI,采用专业网管软件采集,剩余的KPl需要编程实现。
业务应用的KPI需要编程实现。 (51与专业网管系统的接口 口数据库接口 Tivoli、OpenView等告警数据将存放到自身的数据库中,我们通过直接读取 数据库获取信息。 DAPI接口 OpenView的采集到的性能数据可以通过javaAPI进行获取。 口SOAP接口 Tivoli采集到的性能数据可以通过SOAP协议获取。 (6)与BMC的Agent接口 采用SOAP协议进行采集。一般情况下,SOAP协议为短连接,在需要传输 大量的数据时,应该将SOAP设为长连接。 BOSS中业务数据采集了系统的哎计’j实现 第三章数据采集予系统的杖汁 3.4.小结 在编写该项目时,本人主要负责BMCAgent的开发,也就是业务KPI信息 的采集,下一章就是丰要阐述该部分的总体设计。 BOSS中业务数据采集子系统的设计与实现 第四章BMCAgent的总体设计 第四章BMCAgent的总体设计 在第三章中,作者沦述了BOSS中信息采集系统的总体设计思想。本章接着 对浚系统下的BMC Agent的总体设计进行讨论,主要讨论其使用与以往不同的 使用被动采集的方式来采集的原因及意义,然后讨论如何与采集层的服务站的通 信、Policy Class(各KPI具体采集的策略类)的运行方式与数据的持久化实现。
4,1.BMC Agent的设计 4.2.1.设计思路 主要实现以下功能:Agent与服务端的通信;Agent的自身监控;Agent对 policyClass实现自动下载、部署、应用;policy Class的运行机制;采集数据的 持久化。 4.2.2.与采集层的服务端通信 4.2.2.1.通信的方式 采用SOAP协议进行采集。一般情况下,SOAP协议为短连接,在需要传输 大量的数据时,应该将SOAP设为长连接。114】经过实验证明:普通Pc机上(p4, 2.66G),SOAP请求的最大吞I止量为180个/秒。而需要Agent采集的KPI每秒 估计不超过50个,满足处理能力要求。具体的讨论放在第六章。 4.2.2.2.通信内容 主要通信的内容分为以下几类: 任务信息。获得当前Agent所需执行的policy列表以及版本号,以及其它的任务信息(如:|二发日志报告、Agent重启等…)。任务信息的实 现使用了适配器模式。【14】 BOSS中业务数据采集子系统的蹬H与实现 第川章BMCAgent的总体世计 升级信息。通过对比以上列表后,发现当前没有此类policy或版本号不是最新时发出的请求信息。
数据上发信息。包括告警、性能、配置的数据都在这类服务中传送。数据存放在一个HashMap中。 4.2.2.3.Agent的自身监控 自我蛉控丰要是:日志管理和自我启停。F面是对它们的详述 4.2.2.3.1日志管理 Agent的采集I:作都会记录在本地的R志中,当Agent抛出异常后会被广l志 记录F来,保存在本地。当发生特定的异常信息时,会主动提交错误信息剑服务 4.2.2.3.2自我启停由于BMCAgent运行所在的系统都为Linux。所以我们把采集代理系统放到 inittabLLl运行,以便当采集进行异常退出时,系统可以自动重肩。【15]1161 具体的实现方法如卜_:inittab中每一个登记项的格式是identifier、run level、: action、command。ldentificr表示刈象标识符,用于标识文件/etc/inittab中的每一 个登记项。Runlevel表示运行级。说明该登记项适用于哪一个运行级。,为空表 示适用于所有级别,我们系统选择为空。Action表示定义init命令应该向进程实 施什么动作,其中参数respawn:启动进程并在进程岁匕后重新启动该进程。
Command要执行的shell命令,即我们直接肩动丰线程Monitor.java就行了。 BOSS中业务数据采集子系统的垃计与实现 第四章BMCAgent的总体砹计 4.2.2.4.Agent对Policy Class采集程序实现自动下载、部署、 应用 4.2.2.6.1.下载 当Agent获得需要更新的信息后,会主动通过URL的方式,下载class文件 保存到本地,然后修改配置文件指向更新后的文件。【17】 4.2.2.6.2.部署 下载完成后,进行PolicyClass文件的正确性校验,校验通过后将文件路径 写入配置文件,然后更新内存中的配置文件。为了能更新内存中的类,按照一定 的版本更新规则来命名类的包,但类名是不变。因此本地的Agent会有不同的文 件夹放同样的名字的类。【18】[19】以下是某个KPI的采集配置文件: 表4-1采集配置文件样本 <P01icvClasses> <!一采集源文件数量一, <PolicyClass> <PolicyClassName>CountOfCollectSor</PolicyCIassName> <PolicyClassPath>Cocs01080701</PolicyClassPath> </PolicyClass> <!一采集异常记录数一> <PolicyClass> <PolicyClassName>CountOfliception</PolicyClassName> <PolicyClassPath>Coec01_08-07-ok/PolicyClassPath> </PolicyClass> </PolicyClasses> 下图是对于Policy Class的下载、部署与应用的形象解释 BOSS咔'-qk务数姑采集了系统的设训与实现 :修改目a置文件4.2.2.6.3.应用 图4-lPolicyClass的F载、部署与应用顺序图 当PolicyClass荻得运行指令,根据配置文件调用相应的Policy Class进{]二采 集。
12011211 4.2.2.6.4.配置文件的选用 本系统选用XML来作存储配置文件。 分析和操纵XML文档主要用到了XML的解析技术【”I。最基本的解析模式 分为文档对象模型(Document ObjectModel,DOM)和XML简单应用程序接口 (SimpleAPIs forXML,SAX)两种【“。 (1)基于DOM的分析器根据XML的文档结构,将一个XML文档转换成一 个树型的对象集合(通常称为DOM树),应用程序可以通过对DOM树 的操作,来实现对XML文档数据的操作。通过DOM接口,应用程序可 以在任何时候访问XML文档中的任何部分数据。由于XML本质【一就 BOSS中业务数据采集子系统的设计与实现第四章BMCAgent的总体最计 是一种分层结构,所以这种描述方法是相当有效的。然而,由于DOM 分析器把整个XML文档转化成的DOM树放在了内存中,文档较大时会 占用较多的内存。而且,对于结构复杂的树的遍历电是一项耗时的操作。 所以,DOM分析器对机器性能的要求比较高,实现效率不十分理想。 (2)基于SAX的分析器采取一种顺序模式进行文档分析。SAX分析器对 XML文档进行分析时,会依照XML文档结构顺序地触发一系列事件, 并激活相应的事件处理函数,应用程序通过这些事件处理函数来实现对 XML文档的操作,因而SAX接口也被称作事件驱动接口。
同DOM分 析器相比,SAX分析器缺乏灵活性。但由于SAX分析器实现简单,对 内存要求比较低,因此实现效率比较高,对于那些只需要访问XML文 档中的数据而不对文档进行更改的应用程序来说,SAX分析器更为合 由于只是读文件,所以用SAX来读取。优点:读取速度快、占内存少。4.2.3.PolicyClass的运行机制 根据PolicyClass选择一个最小的时间片区进行轮询,得到需要调用的 Policy,通过线程池创建相应的线程,然后调用相应的Policy Class。 由于要采集的KPI各种各样,目前足有数百个。如果每个KPI都专门起一 个线程来采集就不合算,因为不同KPI的采集时间不一样,可能是几秒一次, 也可能是几小时一次,显然我们可以用一个专门的线程来专门负责调度。【24【25" 4.2.4.数据的持久化 由于我们要将所有的告警数据发往portal进行事件关联分析,因此有必要对 这些告警数据进行储存,这是本系统唯一要进行储存数据的地方。其表如下: 表4-2创建告警数据的表 createtable hisAlarmEvent( se——hae——id SERIAL null,se—at id INTEGER, BOSS中业务数{i:|:采集予系统的i5}汁与实现 第pU章BMCAgent的总体吐计 sc idse ki id se al id vchaetitle 1NTEGER. INTEGER. INTEGER. VARCHAR(60) vchaecontent LVARCHAR, c—hae—cfmtime CHAR(14) chaeclrtime ckvcolltime CHARO4), CHAR04) vc_lastupgrade_ti VARCHAR(14), primarykey(se—hae—id) constraintPK—HISALARMEVENT 图42创建告警数据的图BOSS中业务数据采集子系统的啦计与实现 第四章BMCAgent的总体设计 4.2.小结 在第三章的对整个信息采集系统的介绍后,本章是对该系统下的BMCAgent 的总体设计进行讨论,介绍了其负责完成的各种功能,即包括如何与采集层的服 务站的通信、PolicyClass(各KPI具体采集的策略类)的运行方式与数据的持久 化实现。
下一章则是从如何来实现这些功能的角度来描述系统,并且对本章的一些未 展开讲解的一些细节进行详细的讲解,附予了许多的图表以便读者理解。 BOSS中业务数据采集子系统的"6t汁与实现 BMCAgent的详细砹计 第五章BMC Agent的详细设计 5.1架构 采集数据{ 图51BMCAgent.架构图 BMCAgent采用采集数据流与命令流分开的方法。采集数据直接上传给采 集层,没有返回数据或命令。而命令淆求(包括上传信息)则发送给portal, 并从portal获取服务器的命令返回。其运行的机制主要是线程的调度问题。下 面对各部分进行详细的叙述。【4】 BOSS中业务数据采集子系统的设计与实现 BMCAgent的详细设计 5.I.I系统状态图 图5-2BMC Agent状态幽 系统存在着以下几种状态,以下是其介绍: 1.初始化状态:启动所有的线程 2.运行状态:所有线程正常工作 3.暂停状态:采集线程睡眠。 4.退出状态:所有线程退出。 5.I.2总监控线程 主线程,负责启动其他所有的线程,并监控这些线程是否异常退出,是的 BOSS中业务数扼采集子系统的吐汁与实现 话,重启该线程。图53总j忾控线朽!流程图 总监控主线程读取配置文件进行必要的初始化后,首先检测任务调度线程 是否存在,如果不存在则启动任务调度线程;接着检测接口线程是否存在,如 果不存在则启动接口线程,然后检测采集驱动管理线程是否存在,如果不存在 则启动采集驱动管理线程,再然后检测采集驱动管理线程有没有死锁,是的话 则中断驱动管理线程;最后检测代理状态是否处于“退出状态”,是的话直接结 束,不是的话,睡眠N秒,直到被中断或被唤醒,如果检测代理状态处于“退 m状态”,也就结束。
126] 5.1.3 SOAP接口线程 通过调用SOAP通信子系统接口,提供高可用性的通信功能。 BOSS中业务数据采集予系统的世计与实现 BMCAgent的详细设计 接口线程从发送队列里读取发送的信息,发送给服务端,SOAP返回时, 将把服务器的命令捎带回来,并存放在接收队列中。 SOAP接口分采集数据与命令数据,分别走不同的途径。采集数据上发给 采集层。而命令数据则上传到Portal,由Portal分析处理后,返回命令结果。 图5—4SOAP线程流程图 5.1.4接收队列、发送队列 发送队列、接收队列使用Java的链表类实现,【27】并且是一个全局的实例 使用singleton模式实现。因为是多线程系统,读写时需要同步。 1.采集驱动向数据队列写数据后,需要唤醒SOAP发送线程。 2.调度线程写命令后,需要唤醒SOAP发送线程。 BOSS中业务数据采集子系统的设计与实现 BMCAgenl的详细设汁 3.SOAP线程返到命令后,需要唤醒调度线程 5.1.5任务调度线程 通过分析服务器发送过来的命令,执行相关揲作。 采集驱动程序下载、更新和重启。BOSS中业务数据采集子系统的设计与实现 BMCAgent的详细吐计 图5-5任务线程流程图 5.1.6采集驱动管理线程 为避免监控代理耗费过多的机器资源,采集驱动采用单线程,对于每个需 要采集的KPI项进行排队处理。
为避免有KPI采集时有长时间阻塞,在总监控 线程中要对采集驱动线程进行控制。 采集驱动管理线程采用类似JDBC方式的接口技术进行构建。【30J对于每个 不同性质的KPI,需要编写采集驱动类,并且需要实现采集接口,以供采集驱 动线程调用。 BOSS中业务数据采集于系统的设41。j实现 BMCAgent的详细设计 中断一/_丽甭甄五两两砸霸r astCoIIectTll31e 处理开始时间beginTime=当 前时间 奉、土采集耗时pTime=当前 时间一beginTime 计簋睡眠时间、 SampleInterval, 采集间P[intewalTime已经由调度线程赋值。 上次采集时间lastCollectTime=当 前时间一intewalTime, (t噤fastCoflectTime=当前时间, 则第一、文的采集发生在第一、史的睡 lastCollectTime,intetvalTime需要放到}E动接口中。通过get,set来读 SampteintervaI=min{intewalTime[i】+lastColledTime[i】 i=0,.rl一1)_pTime arrlbIeIntervaI>0 记录当前时间 beginTime=当前时间 调用采集}E动采集pki数据 数据发送到”发 进队列” 采集驱动 睡眠 SampleIntercal秒 条件:当前时间-(intervalTime[i】+ lastCollectTime[i”《1000ms astCoIIecfTlm8 =当前时间 唤醒soap技送 线程 图5-6采集驱动管理线程图 5.1.7采集驱动程序自动更新流程 流程图 BOSS中业务数据采集子系统的设计与实现BMCAgent的详细设计 驱动自动升级流程