论企业集成架构设计及应用之新闻文本分析
研发项目过程的数据管理以及企业系统的集成化都是在行业中提高企业竞争力的关键因素.随着企业应用系统数量不断增加,异构的应用系统之间交互困难形成一个个"信息孤岛".传统的企业集成方案都有各自的局限性.企业的发展对企业应用系统集成提出了新的需求. 本文章结合参加过的实战项目新闻文本分析对企业集成架构设计和应用进行描述和分析。
1企业系统集成介绍
1.1企业系统集成分类
交互型系统(System of Engagement)与记录型系统(System of Record)
1.2企业微服务架构的引入主要集中的系统
记录型系统:(定义)是指传统的应用系统,对应用所关注领域的信息进行增删改查作为应用的核心能力。如CRM(客户关系管理)、ERP(企业资源计划)、OA(办公自动化)等系统。(缺点)记录型系统使用的往往是一些传统的经典IT技术构建,往往更难改变,其集成难度也较高。
交互型系统:(定义)是指以与用户交互为主要目的而开发的应用系统。如各种移动应用、微信、微博等等。(优点)交互型系统更多地会采用现代的各种新技术语言及运行时部署,具体高度的敏捷性,通过简单的现代化连接即可实现集成。
1.3系统集成中的问题与原则
部分系统无法重构为微服务架构:例如非常老旧又缺乏维护的系统,(解决)对此类系统可以采用“如果应用无法被打破,就不要试图解决它”的策略,其中SOA资产重用化是更佳的解决方案。
原有系统无法改变数据存储方式:对这种情况,(分析)第一,需要考虑如果数据仍然保持烟囱式(单体)或集中式存储,那对应用进行微服务化是否具有业务价值;第二,切分数据库是否会导致事务性一致性问题并进而影响系统的稳定性;第三,考虑应用能否采用如BASE、CQRS等模式解决数据的一致性问题。
1.4企业应用集成解决方案
在应用集成和重构方面,我们的团队对项目中可能的微服务进行了梳理:(1)每个REST服务是一个潜在的微服务;(2)每个SOAP web服务或EJB是一个潜在的微服务,特别是无状态的session bean,需要将面向功能的接口重新设计为面向资产的接口,并使接口转变为RESTful形式;(3)使用领域驱动设计(domain-driven design)发现企业资产,这些资产可能是微服务。
在数据集成和重构方面,我们的团队通过以下方式:(1)寻找与其他数据关联不大的数据孤岛,(解释)检查系统的实体-关系图;如果有与其他数据断开的数据,作为一个潜在的数据重构点;(2)数据表非规范化,找到高规范化数据库中非规范化一些数据表 , 将其重组为更大的逻辑块,其目的是增加数据冗余度使其更容易被打破;(从而便于构建独立的数据库微服务)(3)反向批数据更新,当数据重构失败时可批量地将新数据反向导回旧的数据模式;(4)使用主数据管理,对被广泛使用的数据实体组成一个单一的一致性视图,并开发相应的微服务与主数据一起工作;
2企业集成平台的实现
2.1数据集成
数据集成:即为平台上运行的各种应用、系统或服务,提供具有完整性、一致性和安全性的数据访问、信息查询及决策支持服务。其是构建企业集成平台的首要目的。
数据集成主要是为了解决不同应用和系统间的数据共享和交换需求,具体包括共享信息管理、共享模型管理和数据操作管理三个部分。
数据集成的三种典型模式:数据联邦、数据复制和基于接口的数据集成。
数据联邦:是指不同的应用共同访问一个全局虚拟数据库,通过全局虚拟数据库管理系统未不同的应用提供全局信息服务,实现不同的应用和数据源之间的信息共享和数据交换,其具体实现由客户端应用、全局信息服务和若干个局部数据源三部分组成。
数据复制:通过底层应用数据源之间的一致性复制来实现(访问不同数据库的)不同应用之间的信息共享和互操作,其实现的关键是必须能够提供在两个或多个数据库系统之间实现数据转换和传输的基础结构(以屏蔽不同数据库间数据模型的差异)。
基于接口的数据集成模式:不同的应用系统之间利用适配器(或接口代理)提供的API来实现相互调用。接口调用方式可以是同步调用/异步调用(基于消息中间件)。
2.2应用集成
应用集成是指两个或多个应用系统根据业务逻辑的需要而进行的功能之间的相互调用和互操作。应用集成在底层的网络集成和数据集成的基础上实现异构应用系统之间语用层次上的互操作。
应用集成模式:适配器集成模式、信使集成模式、面板集成模式、代理集成模式。
适配器集成模式:通过适配器完成不同的系统间数据格式及访问方式的转换和映射,进而实现不同的系统之间业务功能及业务数据的集成。
信使集成模式:系统之间的通信和数据交换通过信使(消息代理)来实现,每个应用只需要建立与集成信使之间的接口连接,就可以实现与所有通过集成信使相关联的应用系统间的交互。
面板集成方式:该模式与面向对象软件设计方法中的面板模式很相似,它是从应用交互实现的层面来描述客户端应用和服务端应用集成的一种方法。集成面板在收到客户端应用服务请求后,将客户端的服务器请求转换为服务端能够理解的形式,并将该请求提交给服务器端应用。
代理集成模式:在面板集成模式中,实现了服务器端应用交互逻辑的分离。在代理集成模式中,由于不存在很明显的客户端端应用和服务端应用的划分,它仅需要将待集成的应用间的交互逻辑从应用中分离出来,并对应用间的交互逻辑进行封装,进而由集成代理来引导多个应用之间的交互。
2.3企业集成
从企业集成运行的实现策略上看,EAI主要有如下三种实现模式:
·前端集成模式:侧重于业务系统的表示层的集成,主要通过单一的用户入口实现跨多个应用事务的运作。
·后端集成模式:侧重于应用系统的数据层面的集成。
·混合集成模式:前端集成模式和后端集成模式的组合。
3新闻文本分析之集成架构
3.1文章抓取与分析
我们日常产生原创新闻在1万篇左右,包括各大新闻网站和地方站,另外还有一些小说,博客等文章。这些对于工程师来讲,写个Crawler并非困难的事。接下来,今日头条会用人工方式对敏感文章进行审核过滤。此外,今日新闻头条号目前也有为数不少的原创文章加入到了内容遴选队列中。接下来我们会对文章进行文本分析,比如分类,标签、主题抽取,按文章或新闻所在地区,热度,权重等计算。
3.2用户建模
当用户开始使用今日头条后,对用户动作的日志进行实时分析。使用的工具如下:
Scribe、Flume、Kafka
我们对用户的兴趣进行挖掘,会对用户的每个动作进行学习。主要使用:
Hadoop、 Storm
3.3、新用户的“冷启动”
新闻文本分类系统会通过用户使用的手机,操作系统,版本等“识别”。另外,比如用户通过社交帐号登录,如新浪微博,头条会对其好友,粉丝,微博内容及转发、评论等维度进行对用户做初步“画像”。
分析用户的主要参数如下:
- 关注、粉丝关系
- 关系
- 用户标签
除了手机硬件,今日头条还会对用户安装的APP进行分析。例如机型和APP结合分析,用小米,用三星的和用苹果的不同,另外还有用户浏览器的书签。头条会实时捕捉用户对APP频道的动作。另外还包括用户订阅的频道,比如电影,段子,商品等。
3.4、推荐系统
推荐系统,也称推荐引擎。它是新闻文本分析技术架构的核心部分。包括自动推荐与半自动推荐系统两种类型:
1)自动推荐系统
- 自动候选
- 自动匹配用户,如用户地址定位,抽取用户信息
- 自动生成推送任务
这时需要高效率,大并发的推送系统,上亿的用户都要收到。
2)半自动推荐系统
- 自动选择候选文章
- 根据用户站内外动作
新闻的频道,在技术侧划分的包括分类频道、兴趣标签频道、关键词频道、文本分析等,这些都分成相对独立的部分进行实现。
在还没有推出头条号时,内容主要是抓取其它平台的文章,然后去重,一年几百万级,并不太大。主要是用户动作日志收集,兴趣收集,用户模型收集。
资讯App的技术指标,比如屏幕滑动,用户是不是对一篇都看完,停留时间等都需要我们特别关注。