当前位置:首页 > 嵌入式 > 嵌入式硬件
[导读]前面基本已经将的典型模式、主要机制及要点都介绍了。可能有些同学会好奇系统内部的技术架构。下面截取部分系统的技术架构图供大家参考,同样对于非技术的同学对此有个感性

前面基本已经将的典型模式、主要机制及要点都介绍了。可能有些同学会好奇系统内部的技术架构。下面截取部分系统的技术架构图供大家参考,同样对于非技术的同学对此有个感性认识即可。也不做大篇幅的展开了。

1.技术架构概要

如图7-22所示,DSP系统从技术架构上涉及:投放平台、投放设置用户交互模块(setupUI)、报表(Report)、算法引擎等等模块。算法引擎模块主要是大数据及算法的机器学习大量采用分布式技术(例如hadoop),对用户日志、人群数据进行建模及机器智能处理。算法引擎模块处理好的人群数据、算法模型等等数据通过海量内存技术(例如redis)暂存在内存中,便于Bid投放引擎快速查询使用,全部暂存在内存中的目的是为了在100ms完成竞价过程,确保在DSP方<30ms处理完成,为网络通讯流出时间。Bid投放引擎是典型的大集群模式用于响应大并发的请求,且确保每个请求<30ms处理完成。Bid投放引擎的投放规则(预算、频次、投放策略设置等等数据)也都是存在内存中的便于快速查询。投放策略设置的数据内容都是用户通过投放设置用户交互模块中的界面完成的。另外还有一些十分重要的辅助模块,例如:广告曝光点击数据回收模块、idmapping模块、大数据报表模块、内置DMP模块等等。

图7-22技术架构概要示例

2.DSP内部技术处理流程概要

DSP内部技术处理主要依赖一些关键技术处理设施,主要的包括:原始海量log系统、海量消息并行处理队列(例如采用spark技术)、海量内存系统(例如采用redis技术)、业务系统关系型数据数据库等等。如图7-23所示,一条技术处理线路是广告请求处理线:广告竞价Bidder海量的实时广告请求处理会产生海量的原始log、同时Bidder也频繁的同海量内存系统交互读写广告请求相关的频次、消耗等等数据,然后广告请求log经过过并行处理队列处理灌入报表数据库及相应的大数据人群及模型数据库。另一条技术处理线路是广告曝光、点击等等监测数据的回收,开始也是产生大量的原始log、同时数据回收引擎同海量内存系统交互写如广告曝光、点击相关的频次、消耗等等数据。然后广告曝光、点击log经过过并行处理队列处理灌入相应报表数据库及相应的大数据人群及模型数据库,同时并行处理队列进行大量的机器智能分析更新部分人群数据及模型数据,同时同步更新到Bidder数据库及内容系统中供Bidder实时竞价时使用。

图7-23DSP内部技术处理流程概要示例

3.DSP竞价核心处理流程概要(<30ms)

如图7-24所示,DSP的Bidder竞价模块设计约束核心处理时间极短,<30ms。为了解决适配不同ADX流量的不同接口。在接受广告请求,及输出返回时,会针对不同ADX平台接口使用适配器设计模式采用不同适配器予以处理。但整体处理流程不变。中间业务处理部分也使用过滤器的设计模式,增加新业务时根据业务需要增加过滤器实现即可。这样做的好处是整体的Bidder竞价核心模块处理流程框架相对稳定,不会随这业务的变化而变化。具备十分强大的业务灵活性和应对高性能的水平扩充性。

图7-24DSP竞价核心处理流程概要示例

4.竞价程序处理过程概要

如图7-25所示,Bidder竞价处理器内部也会依据业务处理依次分为:索引器快速过滤广告(采用索引器的好处是检索效率极高,当然索引器仅能用户简单的过滤条件,例如:尺寸索引、平台及广告位索引、浏览器索引、操作系统索引、地域索引等等)。广告过滤(投放策略相关规则需计算的过滤条件是无法使用索引器,例如:预算、曝光、日期、频次、人群定向、创意类型等等)。上述这两层过滤都是为了广告请求过滤可供投放的候选广告列表,然后通过出价算法的处理给出该广告列表中各广告的出价(这里可能会用到动态出价算法,也可能使用的固定出价策略(采用何种出价策略及是否使用算法都是在投放设置界面中有人工设设置的))。然后会进行低价过滤(根据广告请求中的底价过滤掉出价低于底价的那些候选广告)。最后排序并决策胜出(根据各候选广告的出价及算法附带给出的优先级权重综合排序,排名第一的胜出,即将以该广告内容准备竞价返回)。曝光点击动态代码生成(以上一步胜出的广告内容生成曝光点击动态代码,生成动态曝光点击代码有很多目的,例如防作弊,全程携带投放参数追踪等等)。Bid/Unbid日志记录(结束处理时异步启动)。

图7-25竞价程序处理过程概要示例

5.分布式集群概要

如图7-26所示,为了应对海量的广告竞价业务需要,及大数据的分布式计算基础设施的需要。DSP在系统架构设计上需要支持分布式支持水平扩容,架构支持大并发、大数据、高可用、高容错等等特征。

图7-26分布式集群概要示例

0次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在嵌入式系统开发、调试和测试过程中,J-Link作为一种高效的调试工具,为开发者提供了极大的便利。然而,要想充分发挥J-Link的功能,首先需要正确安装其驱动程序。本文将详细介绍J-Link驱动的安装过程,并深入解析其中...

关键字: jlink 嵌入式系统 嵌入式开发

与谷歌的合作使 Nordic 能够在 nRF Connect SDK 中嵌入开发人员软件,以构建与安卓移动设备兼容的谷歌Find My Device和未知跟踪器警报服务

关键字: 谷歌 SoC 嵌入式开发

嵌入式开发作为当今电子工程和信息技术领域的核心分支,涵盖了广泛的软硬件技术和系统集成方法,用于构建高性能、低成本、低功耗、体积小巧且功能专一的嵌入式系统。这些系统无处不在,从微型传感器节点到复杂的工业控制设备,从日常使用...

关键字: 嵌入式开发 Python

嵌入式开发是当今信息技术领域不可或缺的一部分,它融合了硬件设计、软件开发和系统集成等多个学科,专门用于创建那些被嵌入到特定设备或系统中的专用计算机系统。嵌入式开发的主要过程包括利用分立元件或集成器件进行电路设计、结构设计...

关键字: 嵌入式开发 硬件设计 软件开发

嵌入式开发作为一种专业且技术密集型的领域,涵盖了从硬件底层驱动、中间件到应用层软件开发等多个层面的工作,其所需的工具种类繁多,各有针对性,旨在提升开发效率、保证代码质量以及简化调试过程。

关键字: 嵌入式开发 keil

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

嵌入式开发是一项综合了硬件设计、软件编程以及系统整合的技术活动,其目的是为了创造出能够在特定环境中高效、稳定运行的嵌入式系统。这一流程涵盖了多个紧密关联且不可或缺的阶段,从最初的客户需求分析到最终的产品测试和交付,每个环...

关键字: 嵌入式开发 硬件设计

嵌入式开发作为一个融合了计算机软硬件和系统工程的综合性领域,其成功与否往往取决于三个核心要素的有效整合与协调。这三个要素分别是:硬件平台的选择与设计、软件开发及其优化、以及系统级的设计与集成。深入理解并熟练掌握这三个方面...

关键字: 嵌入式开发 ARM

嵌入式开发作为信息技术的关键支柱,在全球数字化转型浪潮中扮演着无可替代的角色。从传统的嵌入式微控制器到如今先进的片上系统(SoC),再到与云计算、人工智能深度融合的智能终端,嵌入式系统的演进与发展始终紧跟时代脉搏。本文将...

关键字: 嵌入式开发 智能应用

嵌入式开发是一种专门针对特定硬件平台设计和实现软件系统的工程实践,它涵盖了从需求分析、系统设计、编程实现、调试测试直到产品部署及维护的全过程。本文将深入探讨嵌入式开发的主要阶段,分解其流程并阐述每个步骤的关键要点,以便于...

关键字: 嵌入式开发 嵌入式软件
关闭
关闭