【优秀硕士博士论文】dsp 广告审核业务系统的设计与实现_第1页
【优秀硕士博士论文】dsp 广告审核业务系统的设计与实现_第2页
【优秀硕士博士论文】dsp 广告审核业务系统的设计与实现_第3页
【优秀硕士博士论文】dsp 广告审核业务系统的设计与实现_第4页
【优秀硕士博士论文】dsp 广告审核业务系统的设计与实现_第5页
已阅读5页,还剩87页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

硕士专业学位论文DSP广告审核业务系统的设计与实现DESIGNANDIMPLEMENTATIONOFAUDITSYSTEMINDSPADVERTISINGBUSINESS北京交通大学硕士专业学位论文摘要摘要DSP(DEMANDSIDEPLATFORM,需求方平台)是互联网广告中一套新兴的体系,在这个体系中,各个参与者会经常涉及到流量和物料的交互,其中广告数据质量的保证是整个业务中非常重要的一环。审核系统的实现提供了广告数据属性的标注入口,并通过自动审核和人工审核相结合的方式,在保证广告数据质量的同时大大节省了人力成本。除此之外,系统通过提供多维度的查询接口,让公司内部人员能够实时的查看所有的业务数据。公司内部已经存在一版审核系统,专为传统的联盟广告设计,可以支持的数据量有限。所以新的审核系统需要提供DSP业务特有的功能和更大的数据吞吐量。本文根据现有的业务状况对系统进行了详细的需求分析,包括功能点的划分和非功能性需求分析;在此基础上,从系统架构,系统拓扑和系统构建三个角度进行了概要设计,详细说明了系统本身的三层架构和对其他服务的依赖情况以及线上的服务器部署情况。然后针对各个功能模块进行详细设计,对其中重要的模块做了流程说明和类设计,并明确了各个功能点在实现中方法的调用关系。考虑到DSP业务引入造成了巨大的数据增长,针对这块业务,系统从MVC三个层次的性能优化,以及对于常见的XSS(又叫CSS攻击,CROSSSITESCRIPT)网络攻击的防御措施。为了提供更好的灵活性和可维护性,采用了商业系统传统的B/S架构,使用J2EE开发。数据库使用了基于MYSQL的DDB分布式数据库,前端使用了VELOCITY模板减少了前端的开发量。为了提高查询效率,系统大量的使用了游标,缓存和集合等方式做性能优化,对于一些大数据功能使用LUCENE全文索引。最终完成了整个审核系统的开发,为后续的投放等系统提供了重要的数据支持。本人在项目中完成了从需求分析到设计开发再到部署上线的全过程,其中主要工作包括审核任务分配、任务查询,广告信息查询,人工审核、自动审核,审核情况统计和审核系统管理各个模块的功能设计、开发,以及性能优化和安全防御的部分。从DSP业务引进至今,审核系统采用敏捷开发的方式,已经开发并上线了八个版本,审核系统的所有功能及优化策略均已经上线。在这八个版本中除了功能的增加,性能方面也逐步的提高,最新版本目前已经稳定运行了近两个月。从数据角度来看,通过审核系统这个入口,DSP广告数据已经全部标注了品类和风险类型等属性,从根本上解决了高仿、虚假广告数据可能会带来的问题。关键词广告数据审核;LUCENE全文索引;DDB分布式数据库;性能优化;XSS防御;J2EEIII北京交通大学硕士专业学位论文ABSTRACTABSTRACTDSPDEMANDSIDEPLATFORMADVERTISEMENTISANEWINTERNETADVERTISEMENTSYSTEMEVERYPARTICIPANTWOULDOFTENTAKEPARTINEXCHANGINGTHEIRMATERIEL,WHICHMADEITVERYIMPORTANTTOGUARANTEETHEQUALITYOFADVERTISEMENTDATATHEIMPLEMENTOFAUDITSYSTEMPROVIDESTHEENTRANCEOFMARKINGTHEPROPERTIESOFADVERTISEMENTITALSOPROVIDESTHEFUNCTIONOFARTIFICIALAUDITANDAUTOAUDIT,WHICHGUARANTEETHEQUALITYOFADVERTISEMENTDATAANDSAVEHUMANRESOURCEBESIDES,SYSTEMPROVIDESQUERYINTERFACEINMULTIPLECONDITIONSANDMULTIPLEDIMENSIONALITIESSTAFFINTHECOMPANYCANSEARCHALLTHEADVERTISEMENTDATAINTIMETHEREISANOLDAUDITSYSTEMRUNNINGONLINE,WHICHWASDESIGNEDFORTRADITIONALADVERTISEMENTBUSINESSITCANONLYSUPPORTLIMITEDAMOUNTOFDATATHENEWSYSTEMSHOULDPROVIDEFUNCTIONSOFDSPBUSINESSANDSUPPORTMOREDATAINTHISARTICLE,THEAUTHORDIDTHEREQUIREMENTANALYSIS,INCLUDINGDIVIDINGTHEFUNCTIONSANDANALYZINGTHENONFUNCTIONALREQUIREMENTSWITHTHATFOUNDATION,THEPRELIMINARYDESIGNISFINISHEDBYDESIGNINGTHEARCHITECTURE,THETOPOLOGYOFTHESYSTEMANDDESCRIBINGHOWTOBUILDTHESYSTEMTHISPARTALSOCONTAINSTHETHREELEVELARCHITECTUREOFTHESYSTEMANDTHESERVICESDEPENDEDONANDTHEDEPLOYMENTONLINEWHATSMORE,THEDETAILDESIGNISALSOFINISHED,WHICHINTRODUCESTHECLASSDESIGNANDPROCESSDESIGNOFSOMEIMPORTANTFUNCTIONS,THEIMPLEMENTOFMETHODSINEACHFUNCTIONCONSIDERINGOFTHEINCREASEOFDATABROUGHTBYDSP,SOMEACTIONSHAVEBEENTAKENTOOPTIMIZETHEPERFORMANCEINMVCARCHITECTURE,ANDTODEFENDTHEXSSCSSATTACK,CROSSSITESCRIPT)ATTACKTOIMPROVETHEFLEXIBILITYANDTHEMAINTAINABILITYOFTHESYSTEM,THESYSTEMUSESTHEB/SARCHITECTUREWHICHISWIDELYUSEDINTRADITIONALBUSINESSSYSTEMSJ2EEISUSEDTODEVELOPTHEDATABASEISDDB,WHICHISADISTRIBUTEDDATABASESYSTEMDEVELOPEDBASEONMYSQL,ANDVELOCITYTECHNICISAPPLIEDTOMINIMIZETHEDEVELOPMENTINTHEVIEWLEVELINORDERTOSPEEDUPTHEQUERY,THECURSORS,THECACHESANDTHESETSAREUSEDALOTINTHESYSTEMANDLUCENEISAPPLIEDTODEALWITHTHEBIGDATAQUERYINGUNTILNOW,THEWHOLEAUDITSYSTEMHASBEENCOMPLETEDDEVELOPING,WHICHPROVIDESTHERELIABLEDATAFORALLTHEADVERTISEMENTBUSINESSSYSTEMSINTHISPROJECT,THEAUTHORTAKEPARTSINTHEWHOLEPROCESSOFREQUIREMENTANALYZE,DESIGN,IMPLEMENTANDPUBLISHTHEWORKFOCUSONDESIGNANDIMPLEMENTOFAUDITTASKDISTRIBUTEFUNCTION,TASKQUERYFUNCTION,ADINFORMATIONQUERYFUNCTION,HUMANAUDITFUNCTION,AUTOAUDITFUNCTION,AUDITSTATISTICSFUNCTIONANDAUDITSYSTEMMANAGEMENTFUNCTIONSTHEOPTIMIZATIONANDSECURITYPARTSAREALSOFINISHEDBYIV北京交通大学硕士专业学位论文ABSTRACTTHEAUTHORSINCEDOINGDSPBUSINESS,AUDITSYSTEMHASBEENDEVELOPEDEIGHTVERSIONSWITHAGILEDEVELOPMENTUNTILNOWALLFUNCTIONSANDMETHODSOFOPTIMIZATIONINTHISPAPERHAVEALLPUBLISHEDONLINEINTHESEVERSIONS,MOREANDMOREFUNCTIONSHAVEBEENADDEDANDTHEPERFORMANCEISGREATLYIMPROVEDTHELASTVERSIONHASBEENRUNNINGFORTWOMONTHSSTEADILYONLINEASFORDATA,ALLDSPADVERTISEMENTDATAHASBEENMARKEDCATEGORYANDRISKTYPETHROUGHAUDITSYSTEM,WHICHSOLVESTHEPROBLEMOFHIGHIMITATIONANDFAKEADVERTISEMENTKEYWORDSADDATAAUDITLUCENEINDEXINGDDBDISTRIBUTEDDATABASEPERFORMANCEOPTIMIZATIONXSSDEFENSEJ2EEV北京交通大学硕士专业学位论文序言序言本文研究内容旨在解决DSP(DEMANDSIDEPLATFORM)广告业务审核系统的设计、实现。该系统应该能够提供完整的广告业务审核功能,包括针对广告主、广告系列,广告组及变体、关键词的审核;审核任务的分配等具体功能。与此同时,由于DSP广告业务的扩展,会造成广告数据的大量增长,在这种情况下审核人员在传统的审核系统中一个操作往往会造成较大的性能压力。而对于这种性能问题由于业务需求和公司情况的不同很难找到一套现成的,成熟的,针对性强的解决方案。包括系统安全方面,以往大部分系统采用的方法是哪里有问题修补哪里,长此以往造成的情况就是代码风格和版本的混乱同时存在很多未发现的漏洞,一旦被发现后果不堪设想。现在很多互联网公司的商业系统往往采用J2EE来进行开发,本文涉及的审核系统也不例外。本文针对J2EE架构的WEB系统提供一些常用的性能优化方案来保证系统的可用性和易用性。由于现在互联网上存在很多不安全因素,在做系统开发的同时需要对系统的安全方面做考虑,本文针对WEB系统可能存在的XSS漏洞也提供了整套的防御方案。本文中提到的部分设计方法和性能优化方案在广告组的商业系统里是具备兼容性的,目前部分商业系统,比如发布系统已经使用了前端压缩,轻量级接口等方法,并且取得了较好的性能优化效果。但是像LUCENE等技术的使用由于受具体业务需求的限制,在扩展方面是有局限性的。在开发系统时注重了代码的可重用性,比如数据库相对应查询接口、DSP广告业务的功能接口以及系统防御等功能模块开发完成后会打包存至IVY(APACHEIVY)上,整个DSP广告业务链涉及的各个系统只要需要都可以直接复用。审核系统之前在线上已经存在一版,自从DSP广告业务引入后,业务架构已经有了较大变动。应对业务调整系统本身也需要从数据存储层到应用展示层做出相应调整。随着业务的快速发展,需求也是多变的。本项目采用敏捷开发的方式。敏捷开发的概念已经存在很多年了,项目里注重的是开发、测试、产品等人员之间的沟通和协作。开发的过程中版本快速迭代,使得系统可以快速提供最新功能。审核系统新版本的上线是整个DSP广告业务开展的前提,不安全、不健康的广告一旦发送到SSP(SUPPLYSIDEPLATFORM,供应方平台)方给公司带来的负面影响是不可估量的。同时从技术角度讲,通过审核系统的开发,积累了很多设计方法,项目管理的经验。性能优化方案和WEB安全的组件不仅提供了功能可靠的系统,也可以为未来开发更多更大的项目提供了技术支持。VI北京交通大学硕士专业学位论文目录目录摘要IIIABSTRACTIV序言VI1引言111项目背景112项目来源313研究目标和内容414论文组织结构52关键技术介绍721MVC722SPRING框架723LUCENE全文索引824DDB分布式数据库1025本章小结123审核系统需求分析1331系统背景业务的总体分析1332系统用例分析1433审核系统功能需求15331我的审核工作模块17332广告信息查询模块19333广告信息审核模块22334自动任务模块24335审核情况统计模块26336审核系统管理模块2734审核系统非功能需求2735可行性分析2836本章小结294审核系统设计及实现3141审核系统概要设计31VII北京交通大学硕士专业学位论文目录42审核系统详细设计和实现34421我的审核工作模块34422自动任务模块36423广告信息审核模块42424广告信息查询模块49425审核统计模块53426审核系统管理模块5443审核系统数据库设计57431广告业务库相关表57432审核库相关表59433行业库相关表6044审核系统性能优化设计61441前端优化61442系统中间逻辑层优化62443数据存储层优化6445审核系统WEB安全设计6546本章小结665审核系统质量保证6751代码版本控制6752代码评审6853功能和性能测试6954本章小结706结论71参考文献73附录A75附录B81作者简历及攻读硕士/博士学位期间取得的研究成果85独创性声明86学位论文数据集87VIII引言1引言引言部分主要介绍该项目的业务背景,项目来源,本文的研究目标和内容以及组织结构。包括的内容有互联网行业整体的趋势和DSP(DEMANDSIDEPLATFORM)广告的具体流程。在当前业务下,商业系统存在的问题和调整的方向,以及在此基础上新审核系统所需要具备的特性。11项目背景互联网广告自1997年在中国出现,发展到现在经过数次洗礼已经慢慢走向成熟。通过网络将广告信息传递给互联网客户的高科技广告运作方式,其充分利用了互联网传播速度快,传播广泛的优势,降低了传统广告的制作周期和成本,让其投放周期更加灵活,传播范围更广,而且不受时空限制。通过一些技术手段可以让广告的目标群体更加明确,受众数量统计更精确。据DCCI(DATACENTEROFCHINAINTERNET,互联网数据中心)的统计结果表明1,如今广告已经成为互联网最重要的盈利方式如图11所示。图11中国互联网经济规模及主要指标增长情况FIGURE11CHINASINTERNETECONOMYANDGROWTHOFTHEMAININDICATORS可以看到从2002年至今中国五大媒体广告收入规模呈持续上升的态势,至2012年已经达到大约百分之四十的比例。另外单独举一个例子看下GOOGLE公司1引言2013年的财报,其广告收入占到总收入的97,总金额达到了379亿。在互联网大规模增长的同时,市场出现了DSP广告,所谓DSP广告不是从网络媒体那里包买广告位,也不是采用CPD(COSTPERDAY)的方式获得广告位;而是从广告交易平台(ADEXCHANGE)来通过实时竞价的方式获得对广告展示的机会,DSP通过广告交易平台对每个曝光单独购买,即采用CPM(COSTPERMILLE)的方式获得广告位。一个真正意义的DSP,必须拥有两个核心特征,一是拥有强大的RTB(REALTIMEBIDDING)的基础设施和能力,二是拥有先进的用户定向(AUDIENCETARGETING)技术2。DSP对其数据运算技术和速度要求非常之高。从普通用户在浏览器中地址栏输入网站的网址,到用户看到页面上的内容和广告这短短几百毫秒之内,就需要发生了好几个网络往返(ROUNDTRIP)的信息交换,如图12是DSP的原理图。图12DSP原理图FIGURE12THEPRINCIPLEOFDSP用户访问SSP(SUPPLYSIDEPLATFORM)的网站时会产生流量,这时SSP会发消息给实时竞价的服务提供商到广告交易平台。这个平台可以整合SSP方的流量资源和DSP方的广告资源,平台一旦接到消息向所有DSP服务商发出竞价通知,DSP方面会先判断流量是否是自己的广告主所需的受众。判断的标准一般是品类和风险类型两个属性的契合程度,属性如果符合,DSP则根据流量的位置、媒体、尺寸等情况发出竞价请求到广告交易平台。平台选择出竞价优胜者,分给其流量,这时优胜者的广告得以展示。整个过程必须在30毫秒内完成,如果速度稍慢,交易平台就会认为DSP超时而不接受DSP的竞价响应,广告主的广告投放就无法实现。基于数据的用户定向(AUDIENCETARGETING)技术,则是DSP另一个重要的核2。DSP在整个过程中,通过运用自己人群定向技术来分析,所得出的分析结果将引言心特征。从网络广告的实质上来说,广告主最终不是为了购买媒体,而是希望通过媒体与潜在客户即目标人群进行广告沟通和投放。服务于广告主或者广告主代理的DSP,则需要对广告交易平台每一次传过来的曝光机会,根据关于这次曝光的相关数据来决定竞价策略。这些数据包括本次曝光所在网站、页面的信息,以及更为关键本次曝光的受众人群属性,人群定向的分析直接决定DSP的竞价策略3直接影响广告主的广告投放效果。这种广告模式突破了传统广告渠道的局限性,各个广告公司组成了需求方平台和供应方平台,整个行业形成一个巨大的生态链。由于业务环境的整合导致了广告爆炸式的增长,其变体内容分类和质量的把关就显得尤为重要。这些需求给商业系统也会带来大数据压力的挑战。同时以前的系统缺乏对流量和广告数据属性判断的标准,也就缺乏定向的数据基础。审核系统作为广告系统的数据源,则必须做出相应的调整,添加对应的数据属性标注功能和支持更大的数据吞吐量的查询、审核功能。现在很多互联网公司的广告商业系统采用J2EE的方式实现,针对大数据造成的系统压力,各个公司有不同的性能优化解决方案。比如阿里巴巴有一套非常完整的中间件等。但是由于各个公司的系统架构和业务需求各有不同,很难有一套通用的方案来满足日益增长的性能压力。同时由于商业系统均为WEB系统,而且涉及数据在业务体系中非常重要,所以网络安全是必须要注意的一个点。目前为止已经有诸多知名网站因为安全问题蒙受了巨大的损失,比如CSDN网站泄密数据库造成京东商城两千余账户被盗。所以一个能够提供完整审核功能同时保证良好性能和安全的系统是至关重要的。12项目来源本项目来源于本人的实习项目广告商业系统,该系统是整个传统广告联盟和DSP广告的重要基础系统之一。是众多广告系统比如投放系统,联盟系统,智选系统的数据提供者之一,其需要提供广告内容匹配和过滤的逻辑,用户信息的审核评估,及审核人员管理及工作量管理和统计等等一系列逻辑。并且随着原有广告联盟的发展和DSP广告业务的引入,公司与其他公司的合作越来越多,每个公司针对广告商和变体会采用不同的品类区分体系,在做竞价的同时要将这些审核信息上传并且实现对接。可以说审核系统不单提供广告数据的审核功能还要作为与其他公司数据对接的桥梁。之前在线上已经存在一版审核系统,但是由于开发的较久,功能还停留在原始广告联盟的阶段,已经跟不上业务需求。因为数据量的增加,在审核人员做一3引言个广告变体的查询的时候经常会造成服务器或者数据库大量压力,系统反应迟缓。一个查询可能要花超过一分钟,已经超过了公司的运维标准(一个操作必须在一分钟内完成,否则取消请求)。而且因为历史原因导致代码的风格和功能类的混乱,大大增加了维护的成本而且代码的可重用性不高。与此同时网易安全部通过检测发现了很多商业系统并存的以XSS漏洞为主的大量安全漏洞,经过产品,运营、研发人员的讨论后决定开发新版本系统同时将代码重构和优化。13研究目标和内容审核系统是广告商业系统链中至关重要的一环,本人的工作包括该系统的设计、实现、性能优化及安全防御。进入流程后,系统首先会通过黑名单,白名单和灰名单的过滤将一部分广告物料进行自动审核,从而减少审核人员的工作量;然后将其作为审核任务进行分配,分配的过程会保证每个审核人员的工作量相近。审核人员将对广告商提供的企业和广告相关信息(如广告系列、广告组、广告变体、关键词等)进行半自动审核,同时根据事先划分好的品类和风险类型进行批量标注,审核结果将对后续的广告投放和广告匹配产生影响。与此同时针对审核人员的工作情况进行统计和管理。本人完成开发的主要功能包括1“我的审核工作”,包括查看待审核账户及查看待审核任务。2广告相关信息查询,包括广告商查询,广告系列查询,广告组查询以及广告变体查询,其中每个查询的查询条件均在20个以上。3广告相关信息审核,包括关键词自动审核及人工复审,广告商的人工审核,文字广告、图片广告、图文广告的人工审核,广告商、广告变体的品类、风险类型人工标注及批量标注,审核不通过明细邮件发送。4审核情况统计,包括审核结果统计、审核及时性统计、审核人员工作指标查询、审核人员工作详情查询、审核结果查询、审核及时性查询。5审核系统管理,包括审核日志查询,审核专员查询,审核结果类型管理,关键词名单管理,分配日期管理。性能方面主要尝试了LUCENE,分布式数据库,MEMCACHED等技术,做一些查询性能对比,并且通过对JDK的调研,在业务逻辑层使用更合适的数据结构当作中间存储,同时通过一些JVM参数的调整提高系统的整体效率。使得一个三百到五百万的查询能够在30秒内完成响应。安全方面主要解决存储式、跨域等XSS的攻击带来的危害。整个系统将传统的手动审核工作系统化,大量节约了人力成本。这种人工加半自动审核的方式也提高了审核结果的准确度。目前该系统已经上线,并且达到了预期的性能标准。4引言本文将对项目开发的各个主要环节,包括系统需求分析、详细设计、开发实现及测试上线做详尽的描述。同时对系统使用的关键技术做了说明,解释了具体的实现过程和探索新技术在企业商务系统的开发中带来的优势。14论文组织结构本文共分为六章,主要内容如下第一章为引言,阐述了项目背景及来源,本文的研究目标和内容以及文章的组织结构。第二章简要介绍了项目中涉及的关键技术。第三章介绍了审核系统的整体业务架构和与其他子系统的关系,进行需求分析。第四章详细阐述了系统的设计与实现,包含模块划分与设计、类设计、数据库设计,介绍了整个系统的架构和各功能模块的的实现方法和结果。以及性能优化和安全防御的方案。第五章阐述审核系统开发流程中对其质量保证的解决方案。第六章总结了对审核系统的工作,对未来的工作进行了展望。5关键技术介绍2关键技术介绍本章主要介绍了审核系统在设计与实现中涉及的关键技术,具体说明如下。21MVCMVC(MODELVIEWCONTROLLER)是一种分层设计模式,如今已被广泛用于WEB应用系统的设计与实现,其中模型层主要用于访问企业数据和处理业务流程,其通过获取底层数据,经过业务逻辑的运算,最终向视图层提供运算结果数据,由于模型层与数据格式无关,因此一个模型可向多个视图提供显示数据,增加了代码的重用性。视图层主要用于向用户显示数据信息,提供易于理解和交互的用户界面,传统的视图层即HTML元素组成的界面,随着新技术的层出不穷,JSP、XHTML等也用于视图层的开发。控制器作为连接视图层与模型层的中间层,主要用于接收来自视图层的用户请求并通过调用模型层处理请求,最终将结果数据返回给用户,控制器本身不用于数据显示和数据处理,只是作为视图与模型连接的纽带4。与传统开发方式相比,MVC分层思想具有很大的优势,其中包括可重用性和适用性。由于视图与模型的隔离,同一服务器端的代码可被多个视图以多种方式访问如浏览器、手机终端等,以提供不同的用户体验。由于模型提供数据的无格式化,开发者可以灵活的选择视图层的实现技术,以满足不同的客户需求。低耦合性。耦合性指系统一方面进行改变,其他方面需要配合其改变的程度5。由于视图与模型的隔离,企业数据与业务逻辑的变化将只影响到模型层代码,视图层无需做任何改变,用户甚至无法察觉到系统变化。而对于用户界面方面的需求变化,开发人员只需改变视图层的代码,无需部署和重启系统服务。缩短开发周期。系统的分层模型使得项目组内开发人员分工明确,业务逻辑的开发人员可以集中精力于逻辑实现,界面开发人员可以集中精力于界面表现,提高了开发效率。可维护性6。MVC分层思想的应用是的代码层次变得清晰明确,非常有利于WEB应用的维护和修改。22SPRING框架SPRING框架是一个分层的开源框架,是为了减小企业应用开发的复杂性创建的。其优势在于分层的架构,开发人员可以根据需要选择性的使用,同时为开发者提供了集成的框架。核心容器提供了SPRING框架的基本功能,定义了创建、配7关键技术介绍置和管理BEAN的方式,是其他模块应用和实现的基础。其中最重要的组件是BEANFACTORY,其底层采用工厂方法设计模式实现。通过使用该组件,开发人员可以把类的配置和依赖性关系的说明与程序代码分开,将对象的创建交给容器执行,实现了IOC(INVERSIONOFCONTROL)模式6。SPRINGAOP是SPRING框架中面向切面的编程功能模块。该模块通过声明管理特性的方式向基于SPRING框架的对象提供事务管理服务,其实现不依赖EJB组件,无需在应用程序中添加额外代码。SPRINGDAO遵循了通用的DAO异常层次结构,为SPRING框架提供了异常管理服务,用于管理异常处理和不同的数据库抛出的错误消息。SPRINGDAO的异常层次结构简化了异常处理,并大大降低了异常处理的代码行数。SPRINGORM(OBJECT/RELATIONMAPPING)提供了对象与数据库关系的映射服务,其中包含的ORM框架有HIBERNATE、IBATISSQLMAP等,这些ORM框架同样遵循DAO异常层次结构和SPRING的通用事务。SPRINGWEB上下文模块建立于SPRING应用程序上下文模块之上,为基于WEB的应用系统提供了上下文,其支持SPRING框架与STRUTS的集成,并简化了用户请求处理和请求参数到程序类的绑定。SPRINGWEBMVC保证了WEB应用程序对MVC分层方式的实现,作为一个可配置的MVC框架,开发人员可以灵活的选择视图层的实现技术,如VELOCITY、JSP、ITEXT。SPRING框架中的IOC模式主要用于对象的创建上,与传统的对象创建方式不同,应用程序不需要在代码中显示的创建对象,而是将类的描述和与其他类的依赖关系声明在配置文件中,IOC容器通过读取类的配置创建对象,并将所需的属性类关联起来。IOC容器底层的BEANFACTORY组件负责创建和检索对象,并管理对象间的依赖关系,实现了该模式的应用。SPRING中的AOP(ASPECTORIENTEDPROGRAMMING)是IOC的补充性技术,其中切面是指应用程序在业务处理过程中提取的公共行为,如日志记录、安全控制。通过构造切面,将影响多个类的功能封装成一个模块,可被其他模块调用,增加了代码的可重用性7。23LUCENE全文索引LUCENE是一套用于全文检索和搜寻的开源程式库,由APACHE软件基金会支持和提供。LUCENE的API接口设计的比较通用,输入输出结构都很像数据库的表、记录、字段,所以很多传统的应用的文件、数据库等都可以比较方便的映射到LUCENE的存储结构/接口中。总体上看可以先把LUCENE当成一个支持全文索引的数据库系统。其架构如图21所示,从数据库,文件系统等多个数据源的数据通过整个存储到INDEXDOCUMENTS中,再分析用户的查询语句,查询到对应的索引从而找到对应的文件8。8关键技术介绍图21LUCENE框架图FIGURE21FRAMEWORKOFLUCENE通常比较厚的书籍后面常常附关键词索引表,该表能够帮助读者比较快地找到相关内容的页码。而数据库索引能够大大提高查询的速度,原理也是一样。而索引之所以效率高,另外一个原因是其已经排好序。对于检索系统来说核心是一个排序问题9。由于数据库索引不是为全文索引设计的,因此,使用模糊查询时,数据库索引是不起作用的,在使用模糊查询时,搜索过程又将变成遍历过程。所以对于含有模糊查询的数据库服务来说,模糊匹配查询对性能的危害是极大的,如果是需要对多个关键词进行模糊匹配,其效率则会进一步的降低。所以建立一个高效检索系统的关键是建立一个类似于科技索引一样的反向索引机制,将数据源(比如多篇文章)排序顺序存储的同时,有另外一个排好序的关键词列表,用于存储关键词到文章映射关系,利用这样的映射关系索引关键词出现关键词的文章编号,出现次数(甚至包括位置起始偏移量,结束偏移量),出现频率,检索过程就是把模糊查询变成多个可以利用索引的精确查询的逻辑组合的过程。从而大大提高了多关键词查询的效率,所以,全文检索问题归结到最后是一个排序问题9。由此可以看出模糊查询相对数据库的精确查询是一个非常不确定的问题,这也是大部分数据库对全文检索支持有限的原因。LUCENE最核心的特征是通过特殊的索引结构实现了传统数据库不擅长的全文索引机制,并提供了扩展接口,以方便针对不同应用的定制10。大部分的搜索引擎都是用B树结构来维护索引,索引的更新会导致大量的IO操作,LUCENE在实现中,对此稍微有所改进不是维护一个索引文件,而是在扩9关键技术介绍展索引的时候不断创建新的索引文件,然后定期的把这些新的小索引文件合并到原先的大索引中(针对不同的更新策略,批次的大小可以调整),这样在不影响检索准确度的前提下,提高了索引的效率11。24DDB分布式数据库DDB(DISTRIBUTEDDATABASE)分布式数据库系统为网易公司基于海量数据的各种前台应用提供统一的数据库管理平台,典型应用包括点卡计费系统、BLOG系统、POPO等。这类产品的特点是采用统一的数据库存储平台、数据库单表存储的数据量大、高并发访问量。随着数据量和访问量的不断增加,依靠提高数据库的服务器硬件性能所能获得的存取性能的提升空间越来越小,如果采用目前较为成熟的商业分布式存储解决方案,如ORACLE的RAC(REALAPPLICATIONCLUSTER),往往需要特殊的硬件环境,如SAN(STORAGEAREANETWORK),并需要支付昂贵的软件使用费12。该平台通过中间件的形式为前台提供一台虚拟的数据库服务器,而中间件在后台实际管理着多个数据库节点,为了解决单张表的数据和访问量过多造成的系统性能瓶颈,该系统允许将单张表分布到不同的数据库节点上进行性能均衡。同时允许后台数据库节点的动态加入,支持在线的可扩展,而不会影响系统的正常服务。图22分布式数据库的组成架构FIGURE22COMPONENTARCHITECTUREOFDISTRIBUTEDDATABASE分布式数据库的架构如图23所示,可以看到是由分布式数据库系统由客户机(CLIENT)、查询服务器(QS,QUERYSERVER)、数据库节点(DBN,DATABASENODE)、管理服务器(MASTER)和管理客户机五类节点组成(不考虑数据库备份)。其中管10关键技术介绍理服务器是一台而数据库节点服务器有多台。分布式数据库系统提供的查询处理功能由DBI(DATABASEINTERFACE)提供,部署于客户机之上,以JAR包的形式提供给应用程序使用。DBI通过JDBC驱动程序与部署于后台的数据库节点之上的MYSQL数据库交互13。由于每个DBI都会占用一定的后台数据库连接资源。为了有效地利用这些资源,多个客户机可以通过查询服务器对分布式数据库进行访问,查询服务器作为中间服务器通过DBI访问后台数据库节点,这样多个客户机就可以共享这个DBI上的连接资源。客户机上的应用程序通过轻量级的DBI与查询服务器通信。分布式数据库中一个重要的组件是管理服务MSSERVER,也称为分布式数据库MASTER,运行于管理服务器之上,是系统的核心,提供ID分配、系统配置管理、资源分配、负载统计、数据迁移、数据状态监控与管理等众多功能。MASTER使用系统数据库保存整个分布式数据库的配置、负载、报警等信息14。管理员日常管理工作主要通过DBADMIN这一图形化管理工具完成,DBADMIN与MASTER通信,可实现系统配置变更、状态或负载查询与统计、数据迁移、控制DBI和AGENT等功能。MONITOR程序负责监控MASTER是否能正常工作。为提高可靠性,MONITOR程序可以部署在多台节点上15。其中AGENT运行于每个DBN上,负责与MASTER交互。主要用于检测DBN上的MYSQL运行情况、协助MASTER进行数据备份、导出、以及启动和关闭MYSQL服务16。数据根据一定的均衡策略分布在每个DBN上,客户机通过特定数据库访问接口透明地访问存储在分布式数据库中的数据17,而其物理模型仍然是多点分布,DDB在使用的时候和一般的单点数据库是没有分别的。图23采用分布式数据库的三层网站物理架构FIGURE23THREELEVELSPHYSICALARCHITECTUREOFWEBSITESUSINGDISTRIBUTEDDATABASE11关键技术介绍如图23是一个典型三层网站物理架构,采用的是DDB分布式数据库交换机会处理来自不同WEBSERVER的请求给不同的应用服务器,同时应用服务器作为后端数据库的CLIENT,通过JDBC接口访问存储在多个数据库节点上的数据,但是对于CLIENT本身来说和访问传统的单台数据库节点没有太大区别,数据访问的复杂性被隐藏在了DBI中18。在客户端看来第三层的主服务器和备份服务器是统一的,但是当主服务器出故障的时候,备份服务器可以顶上。25本章小结本章概要介绍了审核系统在设计和实现中涉及到的主要技术,包括MVC思想,SPRING框架,LUCENE全文索引,DDB分布式数据库。12审核系统需求分析3审核系统需求分析审核系统是DSP广告业务中最重要的系统之一,本章将从广告业务体系入手针对审核系统所在流程进行说明,而后针对系统的功能性和非功能性需求进行详细的介绍和分析。31系统背景业务的总体分析业务分为平台、策略和系统三个部分,所谓平台即为收集发布后广告的展示、点击等数据并整合入库;策略即为研究广告投放策略,通过对历史数据的挖掘从而得到最优投放策略;系统则是广告投放、审核、数据查询等业务操作的入口。经销商客户/客服合作伙伴品牌广告运营人员经销商系统发布系统批量管理系统智选DSP发布系统品牌广告系统内部推广管理系统运营人员效果广告数据DSP广告数据品牌广告数据销售系统投放相关系统销售人员数据分析人员销售数据审核数据审核系统策略相关系统审核人员决策制定人员财务数据财务系统联盟业务数据财务人员客户管理系统联盟业务系统联盟管理系统质量平台客服人员图31审核系统相关系统关系FIGURE31RELATIONSHIPBETWEENADVERTISEMENTSYSTEMSANDAUDITSYSTEM图31所示是审核系统相关的广告系统,各系统职能如下要进入广告业务流程可以直接自己注册入资使用或是通过自己的经销商,内部人员可以通过审核系统或者经销商系统对客户信息进行管理。针对系统方面,系统主要有面向销售的如销售系统等,销售人员通过这些系统将客户和经销商的消费信息,活跃信息进行录入。有面向客服的如审核系统,客户管理系统等,客服人员通过这些系统对客户关系信息,广告内容进行管理从而提高客户满意度。此外还有面向联盟的如联盟业务系统、联盟管理系统、质量平台等,这些系统针对传统的联盟站点进行管理,消费查询,审核和统计等工作,这是一个相对独立的模块。面向客户的如发布系统,DSP系统,经销商系统等,这些系统直接面向客户,客户可以在这里13审核系统需求分析进行注册登录,广告发布,消费查询等一系列操作。最后是面向内部如财务系统、权限系统等。这些系统构成了完整的互联网广告业务的生命周期。以上便是审核系统在整个业务线的位置和其操作数据来源,审核系统在业务线中的是不可或缺的一环,且工作具有独立性。其数据流程如图32所示。图32审核系统数据流图FIGURE32DATAFLOWOFAUDITSYSTEM客户在发布系统里注册广告商并入资后,审核人员通过审核系统对客户的信息进行第一步审核,审核的结果客户可以通过发布系统进行查询,然后客户可以通过发布系统进行广告数据的创建和投放,这时审核系统进行第二步审核,采用了自动和人工审核相结合的方式。在审核同时对每项操作进行记录和统计。审核通过后平台会将广告真实发布,并同时记录广告页面的展示和点击量以便计费。根据客户投放的广告类型不同,业务线也有所不同比如广告是效果广告还是移动广告,计费方式是按照点击计费还是按照转化计费等等。但是对于审核系统来说并不关心这些差别,即广告必须无差别的进入审核系统统一保证数据质量。审核系统是相对独立的一个子系统,有自己的业务流程和数据存储,同时操作业务数据。审核数据库主要用以存放审核中间的计算结果和统计结果,比如审核任务和人员的信息等。审核库在一般的业务环节下只面向审核系统,而发布系统数据库也叫做广告业务库,则是面向几乎所有的商业系统。32系统用例分析审核系统的使用者一般是审核人员,运营人员和产品人员。其中审核人员作为系统使用主体,负责完成广告审核等主要任务,审核人员的状态有有效和无效两种;运营人员主要可以通过审核系统做一些指定条件的广告数据和证书查询;14审核系统需求分析而产品人员不止做相关查询还需要给出一定规格的EXCEL表格通过审核系统的批量操作工具更新品类、风险类型与广告的对应关系。不同人员对审核系统的各功能使用权限如表31所示,1代表有该权限,0代表无该权限。表31审核系统功能权限表TABLE31AUTHORITIESOFAUDITSYSTEMSFUNCTIONS有效审核人员无效审核人员产品人员运营人员广告数据审核1100广告数据查询1111审核任务分配1000更新品类数据0010批量更新广告品0010类和风险类型系统其他功能111133审核系统功能需求DSP广告在审核系统里的主要需求是广告属性,也就是品类和风险类型的标注。如前文提到的,在DSP广告业务中不同的公司针对广告变体数据的分类和风险控制有着不同划分标准,广告变体所属的类型叫做品类,品类的概念分为广告商和广告变体两个层次,在DSP系统在提交实时竞价的同时需要将审核结果以及对方SSP,提交的同时两边的品类信息应该有一个对应。风险类型的规则和品类是一样的,也是分为广告商和广告变体两个级别。其具体关系如图33。淘宝品类对应新浪品类广告商,广告变体1对1标注有道品类竞价对应对应好耶品类对应芒果品类图33广告物料品类对应关系FIGURE33ADVERTISEMENTMATERIALSRELATIONSHIPOFCATEGORIES15审核系统需求分析可以看到这里品类和其他公司的品类数据是典型的一对多关系。为了更好的区分效果,将品类和风险类型都设置成两级结构。这样设置存在的问题就是广告商和变体分别标注哪一级别的品类和风险类型。市场上经常有一个广告商会同时投放两个行业的广告,比如当当网在投放书的广告同时也投放其他电子产品的广告。根据这种情况,在系统里规定广告商可以只标注一级品类作为主属性,而变体必须细化到二级品类,投放端则只以变体的二级品类为准。而风险类型因为不涉及到这个问题所以只需要细化到二级结构。审核系统是品类和风险类型数据的入口,当审核人员在系统中完成标注后,客服和客户可以通过统计查询平台查询到自己所属的品类,同时品类一个重要的作用是策略可以根据变体所属的品类与其受众人群属性进行匹配,进行投放效果数据挖掘得到更好的投放策略。一般一个广告商会有很多广告变体,如果让审核将变体一个一个的标注是非常耗时的工作,所以系统必须提供批量标注的功能。审核系统的总体功能图如34所示。审核系统我的审核工作广告信息查询自动任务审核情况统计审核系统管理我的待审核账户我的待审核任务广告商查询广告系列查询广告组查询审核任务分配自动审核功能审核专员工作指标审核结果统计审核及时性统计审核专员工作详情审核日志查询审核工作量管理审核专员管理审核结果类型管理关键词黑名单管理广告信息审核广告商审核广告变体及关键词审核图34审核系统功能模块图FIGURE34FUNCTIONSOFAUDITSYSTEM审核系统的主要功能需要分成五部分审核已有广告数据,完善广告属性,业务数据的查询,审核人员及任务的管理和审核系统本身管理。因为审核任务的繁重,任务分为人工审核和自动审核两部分。图中其中标红的部分为DSP广告业务和主营业务共有的功能,也将是本文着重介绍的功能。至于完善广告属性和审16审核系统需求分析核广告信息则放到一个模块中,这样也减少了系统功能的入口,从而减少了审核人员的操作量。图中的每个功能模块是由更多的功能点构成的。331我的审核工作模块“我的审核工作模块”由“我的待审核账户”和“我的待审核任务”两个子功能构成。其用例如图35所示。查看待审核账户分配待审核账户查看待审核任务分配待审核关键词跳转待审核任务页面审核人员审核系统分配待审核变体跳转待审核账户页面图35“我的审核工作”模块用例图FIGURE35USECASEDIAGRAMOFMYAUDITWORKFUNCTION具体功能包括查看待审核账户,查看待审核任务,跳转待审核任务页面,跳转待审核账户页面,分配待审核账户,分配待审核关键词,分配待审核变体。1“我的待审核账户”功能用户点击该功能按钮,系统会将分配给当前登录审核人员的账户任务显示在该页面,展示信息包括用户名,广告商名称,邮箱,经销商,虚拟投放平台,广告系列列表和证件个数。在列表的上方需要提示审核人员待审核账号的个数。用户名处是一个超链接点击可以跳转到待审核账户的详细信息页,在该页可以进行信息修改和审核操作,同时提供页面跳转功能。其用例描述如表32所示。表32“我的待审核账户”功能用例分析TABLE32USECASEANALYSISOFMYSPONSORSTOAUDITFUNCTION用例名称“我的待审核账户”参与者审核人员17审核系统需求分析表32(续表)TABLE32CONTINUED描述允许查看分配给当前审核的待审核账户并可跳转到详细信息页。前置条件系统完成待审核账户分配定时任务。后置条件审核人员审核待审核账户。触发条件审核人员点击“我的待审核账户”按钮。基本流程1系统将待审核账户平均分配给审核人员,2审核人员点击“我的待审核账户”按钮进入查询。3系统展示所有待审核账户到页面上,一页显示20个支持分页。4待审核账户可点击进入详细信息页完成审核。替代流程1当前查询条件下没有数据时列表显示空,统计数据为02若系统崩溃,重新启动系统并登陆再次查询,由研发排查问题。结束当系统显示查询结果时,该用例结束。2“我的待审核任务”功能用户点击该功能按钮,系统会将分配给当前登录审核人员的关键词和广告变体按照广告组的集合显示在该页面,展示信息包括所属广告组,待审核关键词,待审核文字广告,待审核图片广告,待审核图文广告,所属广告商,广告商账号,所属广告系列。在列表上方同样会提示待审核广告组的数量,广告组处为超链接跳转到广告组详细信息页面,其用例如表33所示。表33“我的待审核任务”功能用例分析TABLE33USECASEANALYSISOFMYJOB

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论