移动应用管理平台项目投标方案_第1页
移动应用管理平台项目投标方案_第2页
移动应用管理平台项目投标方案_第3页
移动应用管理平台项目投标方案_第4页
移动应用管理平台项目投标方案_第5页
已阅读5页,还剩157页未读 继续免费阅读

下载本文档

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

文档简介

目录

1.项目建设方案..............................................3

1.1.项目建设原则..........................................3

1.1.1.先进性原则......................................3

1.1.2.标准性原则.......................................3

1.1.3.可用性原则.......................................3

1.1.4.经济、实用性原则................................3

1.1.5.开放式、组件化设计原则..........................4

1.1.6.安全、可靠性原则.................................4

L2.总体设计...............................................4

1.2.1.总体架构设计.....................................4

1.2.2.总体技术架构.....................................6

1.2.3.系统安全设计....................................41

1.2.4.系统性能设计....................................45

1.2.5.系统部署设计...................................53

1.3.安全建设方案..........................................56

1.3.1,安全建设需求分析................................56

1.3.2.安全建设目标....................................57

1.3.3.安全设计架构....................................57

1.3.4.基础设施安全....................................60

1.3.5.平台安全........................................74

1.4.技术管理与项目保障....................................91

1.4.1.项目进度控制...................................91

1.4.2.实施开发方法...................................94

1.4.3.项目建设过程..................................114

1.4.4.项目阶段交付物................................126

1.5.售后服务及质保措施..................................129

1.5.1.售后服务内容及措施............................129

2.对本项目的实施意见及重点、难点控制.........................148

2.1.项目建设优化建议.....................................148

2.1.1.项目建设阶段分析................................148

2.1.2.风险评估........................................153

2.1.3.项目优化建议....................................154

2.2.项目建设改进措施.....................................157

2.2.1.针对项目安全的改进..............................157

2.2.2.针对项目风险指定的风险缓解方案..................160

2.2.3.针对项目性能的改进..............................161

2

1.项目建设方案

LL项目建设原则

在保证平台安全可靠的前提下,使应用平台易用、可维护、可扩

展。具体地讲,我们在进行平台应用软件的设计中遵循以下主要原则:

1.1.1.先进性原则

采用目前国际上先进而成熟的计算机软、硬件技术,使系统具有

较高的技术水平和较长的生命周期。它同时也保证了平台具有良好的

开放性、可靠性及可扩展性,能够满足未来企业发展的需要。

1.L2.标准性原则

平台所采用的产品和技术,满足ISO标准。平台软件、硬件、编

码、文档、操作平台、网络协议等以及所采用的开发技术遵循相应的

国际标准和国家标准。

1.1.3.可用性原则

应用的可用性指平台是否具有简单、易用,和功能完善的可管理

性。应用应具有友好的用户界面,使用户便于掌握、能方便地解决具

体的实际问题。应用还应具有使用方便的日常维护和管理工具,可根

据管理制度和规程的要求,对一些诸如权限管理、应用配置等进行调

整。另外还包括应用的可维护性和可扩充性等。

1.1.4.经济、实用性原则

经济、实用性包括三个方面。一是尽可能保障现有的资源(包括

硬件资源和软件资源)能够得到充分利用,在保证平台性能并达到要

求的前提下,尽量使平台投资最省。二是确保平台具有良好的性能、

3

较高的处理效率,且配置和使用灵活。三是以实际各管理业务流程为

基础,但不是成为手工系统的仿真,而是加以提炼并提高,使其对管

理水平的提高有所帮助。

1.L5.开放式、组件化设计原则

使应用保持开放性以便于应用的扩展,平台具备扩充的接口与手

段,在应用的规模与功能需要增长时,可以保证平台的平滑升级与扩

充。体现在软件的设计上表现在应用基础平台设计、数据结构设计、

软件构件化程序、软件文档的实用和规范,以及公共部件,应用类库

的开放程度等方面。

1.1.6.安全、可靠性原则

建立完整严密的网络资源和应用数据的存取控制体系,严格区分

网络用户的权限,防止越权使用数据信息。同时,采用高度可靠和稳

定的企业级网络操作系统、操作平台和相应的硬件平台,并从软硬件

两方面采取一定策略保证信息存储和访问可靠。同时,保障应用具备

安全备份和恢复的功能。

1.2.总体设计

1.2.1.总体架构设计

通过对项目需求的理解分析,我们认为项目总体架构应该从基础

设施、数据资源、组件支撑、功能应用和对外展现几个方面统筹考虑。

项目总体架构设计具体如下:

4

(1)基础设施层

基础设施层定位于为项目提供基础软硬件支持,由本项目提供主

机、存储、网络等云平台服务,同时部署负载均衡设备、下一代防火

墙、态势感知平台等安全设备。

(2)数据资源层

数据资源层定位于平台信息资源资源中心,汇聚各类数据资源,

并实现数据资源采集、资源处理、资源建模、资源存储、资源管理、

资源监管等数据资源的全生命周期管理。项目按照XXXX工业有限责

任公司通用的资源分类方法对资源进行存储和管理,通用的分类包括

信息发布库、功能服务库、用户信息库、用户行为库、资源目录库、

数据开放库等。

(3)支撑层

支撑层是支撑移动平台各项功能的核心,是保障平台安全、高效、

稳定运行的关键所在。支撑层包括两部分,一部分是技术支撑组件,

包括服务发布引擎、ETL数据整合软件、图形数据库引擎、分布式消

息组件等技术组件;另一部分是应用支撑,可实现对平台各类应用的

5

统一标准化支撑与管理,包括统一服务管理、统一身份认证、统一用

户管理、统一权限管理、统一表单管理、统一安全审计、统一流程管

理、统一业务支撑等。

(4)应用层

应用层提供移动平台的各项应用功能,平台应用功能包括4大部

分,分别是移动审批、综合管理类应用、安全质保类应用以及生产管

理类应用。

(5)展现层

移动平台的各类应用支持PC端、移动端等多种方式统一调用、

统一展现。

1.2.2.总体技术架构

1.2.2.1.云计算视角的技术架构设计

项目总体技术采用云计算技术,我方提供的平台产品采用微服务

和分布式架构进行构建。软件平台体系架构具备良好的灵活性与开放

性,能够方便部署新的业务系统或者新增功能模块,能够方便地和关

联系统的软件、硬件系统进行整合,实现数据共享和联通。从云计算

的角度,本平台分为laaS层、DaaS层、PaaS层和SaaS层,)

系统采用JAVA语言开发,支持Tomcat>WebLogic>WebSphere

等多种应用服务器运行平台,遵循通用浏览器规范实现,支持HTML、

DHTML等通用的标准。采用成熟的后端开发框架并支持多数据源应用,

提供插件库,能够将上传、下载、即时通信、内存数据库等功能组件

化,形成对应的插件库。并形成标准API,能够快速实现业务形态调

6

整。数据库采用oracle大型关系型数据库。

(1)laaS层服务设计

laaS层基础设施即服务(Infrastructureasaservice)。提

供给用户的服务是对所有计算基础设施的利用,包括处理计算、存储、

网络和其它基本的硬件资源,用户能够部署和运行有需要软件,包括

操作系统和应用程序。用户不管理或控制任何云计算基础设施,但能

控制操作系统的选择、存储空间、部署的应用。laaS层由专业云服

务厂商提供云主机、云存储、云网络、云安全、云管理等基础设施层

服务。

(2)DaaS层服务设计

DaaS层数据即服务(Data-as-a-service)。提供分布式数据库、

全文数据库、NoSQL数据库、缓存数据库、分布式文件系统等数据相

关的服务,实现数据资源采集、资源处理、资源建模、资源存储、资

源管理、资源监管等数据资源的全生命周期管理。

(3)PaaS层服务设计

PaaS层平台即服务(Platfornras-a-Service)。PaaS承担了“承

上启下”的重要使命,衔接了上层应用功能,对接调度下层基础资源,

是整个平台建设的核心能力支撑层。平台采用微服务架构进行构建,

将业务系统完全组件化和服务化,可辅以容器技术将各类应用封装为

统一的、标准的容器镜像,屏蔽了不同模块之间的差异化,使得平台

微服务化应用的开发、部署与运维变得简单方便。同时提供文本分析

引擎、内容发布、智能检索、身份认证、监控、日志、消息队列等基

7

础应用支持,为系统的高效稳定运行、资源弹性伸缩提供了良好的支

撑。

(4)SaaS层服务设计

SaaS层软件即服务(Software-as-a-Service)。SaaS层应用服

务体系包括了移动审批、综合管理类应用、安全质保类应用以及生产

管理类应用等四部分,重点提供采购管理、合同管理、生产运行管理、

公文文档管理等应用。

系统总体采用混合云模式构建,混合云是一种IT架构,在

两个或更多环境中进行某种程度的工作负载移植、编排和管理。

当计算和处理需求波动时,混合云计算使企业能够将其本地基础

设施无缝扩展到公共云以处理任何溢出,而无需提供第三方数据

集中访问整个数据。组织可以获得公共云的灵活性和计算能力,

用于基本和非敏感计算任务,同时将业务关键型应用程序和数据

安全地部署在组织防火墙之后。它允许企业根据自己对特定功能

的独特成本效益分析来定制其IT基础设施。这些可能包括对经济

实惠的高速处理(可能仅通过云计算提供商提供)以及在内部维

护某些关键任务数据或应用程序的愿望,因此即使是互联网连接

问题也不会减慢企业正常运作的速度。混合云能够为亲们提供更

好的安全性,因为它在同一环境下结合使用公共和私有云服务。

所有敏感方面都可以通过由组织完全控制的私有云系统来处理。

可以轻松调整和配置混合云,无需依赖任何各种外部公共云服务

提供商(麻烦、繁琐、步骤多、流程多、操作复杂)。所以,混

8

合云是边缘计算的基础。这种互联体现了工作负载的移动方式、

统一管理的方式,以及流程的编排方式。这些连接的完善程度,

直接影响着混合云的工作效果。

1.2.2.2,微服务和分布式视角的技术架构设计

移动平台的技术架构重点关注如何满足平台的技术要求、安全要

求、性能要求、可伸缩性要求、部署要求、灵活性要求等,从微服务

和分布式的视角,

本项R将采用微服务框架,把一个大型的单个应用程序和服务拆

分为数个甚至数十个的支持微服务,它可扩展单个组件而不是整个的

应用程序堆栈,从而满足服务等级协议。本项目将围绕业务领域组件

来创建应用,这些应用可独立地进行开发、管理和迭代。在分散的组

件中使用云架构和平台式部署、管理和服务功能,使产品交付变得更

加简单。

本项目中的N个组件和UI之间通过APIGateway进行访问与调

度,其作用包括:

①提供统一服务入口,让微服务对前台透明

②聚合后台的服务,节省流量,提升性能

③提供安全,过滤,流控等API管理功能

所有的微服务组件都是独立的Java进程跑在独立的虚拟机上,

服务间的通信可通过异步消息中心完成(Kafka,Notify,MQ等)。异步

消息的方式在分布式系统中有特别广泛的应用,他既能减低调用服务

之间的耦合,又能成为调用之间的缓冲,确保消息积压不会冲垮被调

9

用方,同时能保证调用方的服务体验,继续干自己该干的活,不至于

被后台性能拖慢。从根本上解决突发性、临时性的特殊活动期间大规

模并发访问,导致系统性能下降或应用无法提供服务的情况。=导致

系统后台运行缓慢并发队列延迟等待的问题也将得以解决。

在微服务架构中,每个组件有自己独立的业务逻辑,可以根据自

身的访问压力和存储特点进行分布式多节点部署与扩展。一般每一个

服务都是有多个拷贝,来做负载均衡。一个服务随时可能下线,也可

能应对临时访问压力增加新的服务节点。服务之间相互感知和管理通

过zookeeper等类似技术做服务注册信息的分布式管理。当服务上线

时,服务提供者将自己的服务信息注册到ZK(或类似框架),并通

过心跳维持长链接,实时更新链接信息。服务调用者通过ZK寻址,

根据可定制算法,找到一个服务,还可以将服务信息缓存在本地以提

高性能。当服务下线时,ZK会发通知给服务客户端。

1.2.2.3.项目关键技术路线

项目总体技术采用云计算技术。平台产品采用微服务和分布式架

构进行构建。软件平台体系架构具备良好的灵活性与开放性,能够方

便部署新的业务系统或者新增功能模块,能够方便地和公司关联系统

的软件、硬件系统进行整合,实现数据共享和联通。

1.2.2.4.云计算

云计算(CloudComputing)是分布式计算

(DistributedComputing)、并行计算(ParalleiComputing)、效

用计算(UtilityComputing)、网络存储

10

(NetworkStorageTechnologies)、虚拟化(Virtualization)、负

载均衡(LoadBalance)>热备份冗余(HighAvailable)等传统计算

机和网络技术发展融合的产物。云计算是一种按使用量付费的模式,

这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算

资源共享池(资源包括网络,服务器,存储,应用软件,服务),这

些资源能够被快速提供,只需投入很少的管理工作。云计算是通过使

计算分布在大量的分布式计算机上,而非本地计算机或远程服务器

中,这使得用户业能够将资源切换到需要的应用上,根据需求访问计

算机和存储系统。云计算特点如下:

(D超大规模

“云”具有相当的规模,Google云计算已经拥有100多万台服

务器,Amazon、IBM、微软、Yahoo等的“云”均拥有几十万台服务

器。企业私有云一般拥有数百上千台服务器。“云”能赋予用户前所

未有的计算能力。

(2)虚拟化

云计算支持用户在任意位置、使用各种终端获取应用服务。所请

求的资源来自“云”,而不是固定的有形的实体。应用在“云”中某

处运行,但实际上用户无需了解、也不用担心应用运行的具体位置。

只需要一台笔记本或者一个手机,就可以通过网络服务来实现我们需

要的一切,甚至包括超级计算这样的任务。

(3)高可靠性

“云”使用了数据多副本容错、计算节点同构可互换等措施来保

11

障服务的高可靠性,使用云计算比使用本地计算机可靠。

(4)通用性

云计算不针对特定的应用,在“云”的支撑下可以构造出千变万

化的应用,同一个“云”可以同时支撑不同的应用运行。

(5)高可扩展性

“云”的规模可以动态伸缩,满足应用和用户规模增长的需要。

(6)按需服务

云计算环境下,软件技术、架构将发生显著变化。首先,所开发

的软件必须与云相适应,能够与虚拟化为核心的云平台有机结合,适

应运算能力、存储能力的动态变化;二是要能够满足大量用户的使用,

包括数据存储结构、处理能力;三是要互联网化,基于互联网提供软

件的应用;四是安全性要求更高,可以抗攻击,并能保护私有信息;

五是可工作于移动终端、手机、网络计算机等各种环境。

1.2.2.5.微服务架构

微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这

些就应用可独立地进行开发、管理和加速。在分散的组件中使用微服

务云架构和平台使部署、管理和服务功能交付变得更加简单。

微服务架构它提倡将单一应用程序划分成一组小的服务,服务之

间互相协调、互相配合,为用户提供最终价值。每个服务都围绕着具

体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。

另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服

务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

12

微服务架构提倡将单一应用程序划分成一组小的服务,服务之间

互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立

的进程中,服务于服务间采用轻量级的通信机制互相沟通(通常是基

于HTTP的RESTfulAPI)。每个服务都围绕着具体业务进行构建,

并且能够被独立地部署到生产环境、类生产环境等。微服务架构新特

性如下:

(1)单一职责

微服务架构中的每个服务,都是具有业务逻辑的,符合高内聚、

低耦合原则以及单一职责原则的单元,不同的服务通过“管道”的方

式灵活组合,从而构建出庞大的系统。

(2)轻量级通信

服务之间通过轻量级的通信机制实现互通互联,而所谓的轻量

级,通常指语言无关、平台无关的交互方式。

对于轻量级通信的格式而言,我们熟悉的XML和JSON,它们是

语言无关、平台无关的;对于通信的协议而言,通常基于HTTP,能

让服务间的通信变得标准化、无状态化。目前大家熟悉的REST

(RepresentationalStateTransfer)是实现服务间互相协作的轻

量级通信机制之一。使用轻量级通信机制,可以让团队选择更适合的

语言、工具或者平台来开发服务本身。

(3)独立性

在微服务架构中,每个服务都是独立的业务单元,与其他服务高

度解耦,只需要改变当前服务本身,就可以完成独立的开发、测试和

13

部署。微服务架构提供自主管理其相关的业务数据,这样可以随着业

务的发展提供数据接口集成,而不是以数据库的方式同其他服务集

成。另外,随着业务的发展,可以方便地选择更合的工具管理或者迁

移业务数据。

(4)进程隔离

在微服务架构中,应用程序由多个服务组成,每个服务都是高度

自治的独立业务实体,可以运行在独立的进程中,不同的服务能非常

容易地部署到不同的主机上。

理论上所有服务可以部署在同一个服务器节点,但是并不推荐这

么做,因为微服务架构的主旨就是高度自治和高度隔离。

(5)技术多样性

微服务架构中,提倡针对不同的业务特征选择合适的技术方案,

有针对性的解决具体业务问题,而不是像单块架构中采用统一的平台

或技术来解决所有问题。

(6)基础设施自动化

在微服务架构的实践过程中,对持续交付和部署流水线的要求很

高,将促进企业不断寻找更高效的方式完成基础设施的自动化及

DevOps运维能力的提升。

微服务架构与单体架构的对比如下:

微服务架构与单体架构对比

对比点微服务架构单体架构结论

上手难API接口调用数据库共享或本地程序单体架

14

度调用构胜

开发效早期设计和沟通的工作

早期工作量小,随着项目

率(简量加大,随着项目规模和单体架

规模和时间的推移,效率

单项时间的推移,效率变化不构胜

大幅度下降

目)大

开发效早期设计和沟通的工作

早期工作量小,随着项目

率(复量加大,随着项目规模和微服务

规模和时间的推移,效率

杂项时间的推移,效率变化不架构胜

大幅度下降

目)大

以包的形式对代码进行

系统设每个业务单独包装成一

模块划分,控制得当即可

计(高个微服务,数据和代码都微服务

实现高内聚。但最终都是

内聚低从物理上隔离开来,实现架构胜

在数据层面将整个系统

耦合)高内聚低耦合相对容易

耦合在一起

系统设

独立开发新模块,通过A在现有系统上修改,与现微服务

计(扩

PI与现有模块交互存业务逻辑高度耦合架构胜

展性)

需求变各个微服务组件独立变需要了解整个系统才可

微服务

更响应更,容易实施敏捷开发方以正确修改,容易导致不

架构胜

速度法相关模块的意外失败

系统升各个微服务组件独立升需要了解整个系统才可微服务

级效率级,上手和开发效率高,以正确修改,容易导致不架构胜

15

影响面小相关模块的意外失败

大系统被拆分为多个小

系统,部署和运维难度加

运维效单体架

大,但可以利用DevOps简单直接

率构胜

等方式将运维工作自动

微服务组件可以在新项

知识积一般以共享库的形式复微服务

目中直接复用,包括前端

累用后台代码架构胜

页面

硬件需

一个系统需部署多个微

求(简整个系统只需要一个运单体架

服务,需要启动多个运行

单项行容器构胜

容器

目)

硬件需

求(高按需为不同业务模块伸为整个系统分配资源,导微服务

要求项缩资源节点致冗余架构胜

目)

项目成

本(简项目早期和后期,成本变项目早期成本低,后期成单体架

单系化曲线平缓本大构胜

统)

16

项目成

本(复项目早期和后期,成本变项目早期成本低,后期成微服务

杂系化曲线平缓本大架构胜

统)

为单独的微服务按需调

非功能为整个系统调优,牵一发微服务

优,甚至更换实现方式和

需求而动全身架构胜

程序语言

拥有明确的职责划分,主

职责、职责不明确,容易产生扯微服务

人翁意识和成就感加强,

成就感皮行为架构胜

容易形成自组织型团队

大系统被拆分为小系统,

风险可被控制在小系统系统是一个整体,一荣俱微服务

风险

内,但也引入了各小系统荣,一损俱损架构胜

之间的交互风险

L2.2.5.1.分布式系统

分布式软件系统是支持分布式处理的软件系统,是在由通信网络

互联的多处理机体系结构上执行任务的系统。它包括分布式操作系

统、分布式程序设计语言及其编译(解释)系统、分布式文件系统和分

布式数据库系统等。

•分布式文件系统:具有执行远程文件存取的能力,并以透明方

式对分布在网络上的文件进行管理和存取。

•分布式数据库系统:由分布于多个计算机结点上的若干个数据

17

库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。

分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布

在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻

辑上是相关的。

分布式系统要比其他体系结构如处理机和共享存储器多处理机

更优越。

分布式系统优势

本地自治不依赖于中心场地

可连续操作性位置独立性

分片独立性复制独立性

分布式查询处理分布式事务管理

硬件独立性操作系统独立性

网络独立性DBMS独立性

1.2.2.5.2.大数据

一、大数据的基木概念

大数据(BigData),指无法在一定时间范围内用常规软件工具

进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强

的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的

信息资产。

.数据

关于数据的定义,大概没有一个权威版本。为方便,此处使用一

18

个简单的工作定义:数据是可以获取和存储的信息。

直观而言,表达某种客观事实的数值是最容易被人们识别的数据

(因为那是“数”)。但实际上,人类的一切语言文字、图形图画、音

像记录,所有感官可以察觉的事物,只要能被记下来,能够查询到,

就都是数据(data)。

不过数值是所有数据中最容易被处理的一种,许多和数据相关的

概念,例如下面的数据可视化和数据分析,最早是立足于数值数据的。

传统意义上的数据一词,尤其是相对于今天的“大数据”的“小

数据”,主要指的就是数值数据,甚至在很多情况下专指统计数值数

据。这些数值数据用来描述某种客观事物的属性。

2.数据可视化

对应英语的datavisulization(或可译为数据展示),指通过图

表将若干数字以直观的方式呈现给读者。比如非常常见的饼图、柱状

图、走势图、热点图、K线等等,目前以二维展示为主,不过越来越

多的三维图像和动态图也被用来展示数据。

3.数据分析

这一概念狭义上,指统计分析,即通过统计学手段,从数据中精

炼对现实的描述。例如:针对以关系型数据库中以table形式存储的

数据,按照某些指定的列进行分组,然后计算不同组的均值、方差、

分布等。再以可视化的方式讲这些计算结果呈现出来。目前很多文章

中提及的数据分析,其实是包括数据可视化的。

4.数据挖掘

19

这个概念的定义也是众说纷纭,落到实际,主要是在传统统计学

的基础上,结合机器学习的算法,对数据进行更深层次的分析,并从

中获取一些传统统计学方法无法提供的Insights(比如预测)o

简单而言:针对某个特定问题构建一个数学模型(可以把这个模

型想象成一个或多个公式),其中包含一些具体取值未知的参数。我

们将收集到的相关领域的若干数据(这些数据称为训练数据)代入模

型,通过运算(运算过程称为训练),得出那些参数的值。然后再用这

个已经确定了参数的模型,去计算一些全新的数据,得出相应结果。

这一过程叫做机器学习。

机器学习的算法纷繁复杂,最常用的主要有回归分析、关联规则、

分类、聚类、神经网络、决策树等。

二、大数据和大数据分析

大数据首先是数据,其次,它是具备了某些特征的数据。目前公

认的特征有四个:Volumne,Velocity,Variety,和Value,简称4V。

Volume:大量。就目前技术而言,至少TB级别以下不能成大数据。

Velocity:高速。1TB的数据,十分钟处理完,叫大数据,一年

处理完,就不能算“大”了。

Variety:多样。就内容而言,大数据已经远远不局限数值,文字、

图片、语音、图像,一切在网络上可以传输显示的信息,都属于此列。

从结构而言,和存储在数据库中的结构化数据不同,当前的大数据主

要指半结构化和非结构化的信息,比如机器生成信息(各种日志)、自

然语言等。

20

Value:价值。如果不能从中提取出价值,不能通过挖掘、分析,

得到指导业务的insights,那这些数据也就没什么用。不过现在还有

另外一种提法:只要是数据就都有用,能不能获得价值,是分析人员

的能力问题。

大数据分析,顾名思义,就是将前述的数据可视化、数据分析、

数据挖掘等方法作用到大数据之上。

从某种意义上讲,大数据可谓机器学习的福音,很多原有的简单

粗糙的机器学习模型,仅仅因为训练数据量级的增加就大幅提高了准

确性。还有一些模型则因为准确性随着数据量增加而增加的势头尤其

明显,得以脱离默默无闻而被广泛使用。

另一方面,大数据分析对于运算量的需求激增,原有的基于单机

的运算技术显然已经不能满足需求,这就催生了一些列新技术。

三、大数据技术

抽象而言,各种大数据技术无外乎分布式存储+并行计算。具

体体现为各种分布式文件系统和建立在其上的并行运算框架。这些软

件程序都部署在多个相互连通、统一管理的物理或虚拟运算节点之

上,形成集群(cluster)。因此不妨说,云计算是大数据的基础。下

面介绍几种当前比较流行的大数据技术:

1.Hadoop

Hadoop无疑是当前最知名的大数据技术了。

2003年到2004年间,Google发布了关于GFS、MapReduce和

BigTable三篇技术论文(这几篇论文成为了后来云计算、大数据领域

21

发展的重要基石)。当时一位因公司倒闭赋闲在家的程序员Doug

Cutting根据前两篇论文,开发出了一个简化的山寨版GFS-HDFS,

以及基于其的MapReduce计算框架,这就是Hadoop最初版本。后来

Cutting被Yahoo雇佣,得以依赖Yahoo的资源改进Hadoop,并将其

贡献给了Apache开源社区。

简单描述Hadoop原理:数据分布式存储,运算程序被发派到各个

数据节点进行分别运算(Map),再将各个节点的运算结果进行合并归

-(Reduce),生成最终结果。相对于动辄TB级别的数据,计算程序

一般在KB-MB的量级,这种移动计算不移动数据的设计节约了大

量网络带宽和时间,并使得运算过程可以充分并行化。

在其诞生后的近10年里,Hadoop凭借其简单、易用、高效、免

费、社区支持丰富等特征成为众多企业云计算、大数据实施的首选。

2.Storm

Hadoop虽好,却有其“死穴”.其一:它的运算模式是批处理。

这对于许多有实时性要求的业务就无法做到很好的支持。因此,

Twitter推出了他们自己的基于流的运算框架--Storm.不同于

Hadoop一次性处理所有数据并得出统一结果的作业(job),Storm对

源源导入的数据流进行持续不断的处理,随时得出增量结果。

3.Spark

Hadoop的另一个致命弱点是:它的所有中间结果都需要进行硬盘

存储,I/O消耗巨大,这就使得它很不适合多次迭代的运算。而大多

数机器学习算法,恰恰要求大量迭代运算。

22

2010年开始,UCBerkeleyAMPLab开始研发分布式运算的中间

过程全部内存存储的Spark框架,由此在迭代计算上大大提高了效

率。也因此成为了Hadoop的强有力竞争者。

4.NoSQL数据库

NoSQL数据库可以泛指非关系型数据库,不过一般用来指称那些

建立在分布式文件系统(例如HDFS)之上,基于key-value对的数据

管理系统。

相对于传统的关系型数据库,NoSQL数据库中存储的数据无需主

键和严格定义的schema.于是,大量半结构化、非结构化数据可以在

未经清洗的情况下直接进行存储。这一点满足了处理大量、高速、多

样的大数据的需求。当前比较流行的NoSQL数据库有

MongoDB,Redis,Cassandra,HBase等。

NoSQL并不是没有SQL,而是不仅仅有(notonly)SQL的意思。为

了兼容之前许多运行在关系型数据库上的业务逻辑,有很多在NoSQL

数据库上运行SQL的工具涌现出来,最典型的例如Hive和Pig,它们

将用户的SQL语句转化成MapReduce作业,在Hadoop上运行。

四、大数据的影响

大数据概念的兴起正在对我们的社会产生多方面的影响:

1.定量分析

因“大数据”而使得人们开始关注“数据”,可谓最首要的影响。

尤其对于国内而言,越来越多的决策者开始重视数据的力量,会在决

断同时参考各类统计、分析报表,而不再是凭直觉拍脑袋。

23

2.从必然到相关

相对于传统的小数据统计,大数据更关注与发现事物之间的相关

性,而非因果关系。人类历经百万年基于数据贫乏的现状而形成的“因

为……所以……”的思维习惯,在大数据时代,会向“……有关联……”

转变。

3.信息安全

以今日的技术,一个人的个人信息、网页浏览记录、购物记录、

对图书影片等内容的偏好,在浏览不同页面时的行为习惯,如此种种,

都可以轻易被商家或某些机构获取。在大数据的笼罩之下,每个人都

将无所遁形。那么,对于每个人本该拥有的隐私权,该如何保护都是

需要思考的问题。

新技术解决了许多之前无法解决的问题,然而,新生事物也带来

了新的问题。像所有技术一样,大数据也是一把“双刃剑”.能否用

其利除其弊,有赖于全社会的共同努力。

1.2.2.5.3.NLP

NLP是计算机科学领域与人工智能领域中的一个重要方向。它研

究能实现人与计算机之间用自然语言进行有效通信的各种理论和方

法。自然语言处理是一门融语言学、计算机科学、数学于一体的学科。

NLP由两个主要的技术领域构成:自然语言理解和自然语言生成。

语言处理的研究也是充满魅力和挑战的。随着计算机和互联网的

广泛应用,计算机可处理的自然语言文本数量空前增长,面向海量信

息的文本挖掘、信息提取、跨语言信息处理、人机交互等应用需求急

24

速增长,自然语言处理研究必将对我们的生活产生深远的影响。

NLP是神经语言程序学(Neuro-LinguisticProgramming)的英

文缩写。在香港,也有意译为身心语法程式学的。

N(Neuro)指的是神经系统,包括大脑和思维过程。

L(Linguistic)是指语言,更准确点说,是指从感觉信号的输

入到构成意思的过程。

P(Programming)是指为产生某种后果而要执行的一套具体指

令。即指我们思维上及行为上的习惯,就如同电脑中的程式,可以透

过更新软件而改变。

故此,NLP也可以解释为研究我们的大脑如何工作的学问。知道

大脑如何工作后,我们可以配合和提升它,从而使人生更成功快乐。

也因此,把NLP译为“身心语法程式学”或“神经语言程式学”。

NLP典型应用如下:

情感倾向分析

针对带有主观描述的中文文本,可自动判断该文本的情感极性类

别并给出相应的置信度。情感极性分为积极、消极、中性。情感倾向

分析能帮助企业理解用户消费习惯、分析热点话题和危机舆情监控,

为企业提供有力的决策支持。

评论观点抽取

自动分析评论关注点和评论观点,并输出评论观点标签及评论观

点极性。各类产品用户评论的观点抽取,包括美食、酒店、汽车、景

点等,可帮助商家进行产品分析,辅助用户进行消费决策。

25

词义相似度计算

用于计算两个给定词语的语义相似度,基于自然语言中的分布假

设,即越是经常共同出现的词之间的相似度越高。词义相似度是自然

语言处理中的重要基础技术,是专名挖掘、query改写、词性标注等

常用技术的基础之一。

词法分析

词法分析向用户提供分词、词性标注、命名实体识别三大功能。

该服务能够识别出文本串中的基本词汇标注和词汇的词性,并进一步

识别出命名实体,词法分析的算法效果大幅领先已公开的主流中文词

法分析模型。

短文本相似度

能够提供不同短文本之间相似度的计算,输出的相似度是一个介

于T到1之间的实数值,越接近1则相似度越高。这个相似度值可

以直接用于结果排序,也可以作为一维基础特征作用于更复杂的系

统。

DNN语言模型

语言模型是通过计算给定词组成的句子的概率,从而判断所组成

的句子是否符合客观语言表达习惯。在机器翻译、拼写纠错、语音识

别、问答系统、词性标注、句法分析和信息检索等系统中都有广泛应

用。

词向量表示

词向量表示表示是通过训练的方法,将语言词表中的词映射成一

26

个长度固定的向量。词表中所有的词向量构成一个向量空间,每一个

词都是这个词向量空间中的一个点,利用这种方法,实现文本的可计

算。

依存句法分析

利用句子中词与词之间的依存关系来表示词语的句法结构信息

(如主谓、动宾、定中等结构关系),并用树状结构来表示整句的的结

构(如主谓宾、定状补等)。

1.2.2.5.4.缓存技术

在移动平台建设过程中,建议采用缓存技术来应对大负载、高并

发的查询访问。Memcached(或redis等缓存数据库)是高性能的分

布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,

减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

Memcached(或redis等缓存数据库)是以Key/Value的形式单个对

象缓存。

RemoteDictionaryServer(Redis)是一个开源的由Salvatore

Sanfilippo使用ANSIC语言开发的key-value数据存储服务器。其

值(value)可以是字符串(String),哈希(Map),列表(list),集

合(sets)和有序集合(sortedsets)等类型,所以它通常也被称为

数据结构服务器。

27

姿redis

缓存数据库架构

FMiber6clients

Redis与memcache性能压力测试比较

Redis的典型应用场景

1、缓存热点数据

热点数据(经常会被查询,但是不经常被修改或者删除的数据),

首选是使用redis缓存,redis的性能非常优秀。

2、计数器

诸如统计点击数、访问数、点赞数、评论数、浏览数等应用,由

28

于单线程,可以避免并发问题,保证数据的正确性,并且100%毫秒

级性能,同时开启Redis持久化,以便于持久化数据。

3、单线程机制

验证前端的重复请求,可以自由扩展类似情况),可以通过redis

进行过滤,比如,每次请求将RequestIP、参数、接口等hash作为

key存储•redis(幕等性请求),设置多长时间有效期,然后下次请

求过来的时候先在redis中检索有没有这个key,进而验证是不是一

定时间内过来的重复提交;再比如,限制用户登录的次数,比如一天

错误登录次数10次等。

秒杀系统,基于redis是单线程特征,防止出现数据库超卖;

全局增量ID生成等;

4、排行榜

谁得分高谁排名在前,比如点击率最高、活跃度最高、销售数量

最高、投票最高的前10名排行等等。

5、分布式锁

使用redis可以实现分布式锁,为了确保分布式锁可用,我们至

少要确保锁的实现同时满足以下四个条件:

互斥性,在任意时刻,只有一个客户端能持有锁。

不会发生死锁,即使有一个客户端在持有锁的期间崩溃而没有主

动解锁,也能保证后续其他客户端能加锁。

具有容错性,只要大部分的Redis节点正常运行,客户端就可以

加锁和解锁。

29

解铃还须系铃人,加锁和解锁必须是同一个客户端,客户端不能

解他人加的锁。

6^Session存储

使用Redis的进行会话缓存(sessioncache)是非常常见的一

种场景。用Redis缓存会话比其他存储(如Memcached)的优势在于:

Redis提供持久化,目前大量的方案均采用了redis作为session的

存储方案。

1.2.2.5.5.HTML5技术

HTML5是Web中核心语言HTML的规范,用户使用任何手段进行

网页浏览时看到的内容原本都是HTML格式的,在浏览器中通过一些

技术处理将其转换成为了可识别的信息。HTML5在从前HTML4.01的

基础上进行了一定的改进,虽然在技术人员在开发过程中可能不会将

这些新技术投入应用,但是对于该种技术的新特性开发技术人员是必

须要有所了解的。

HTML5技术结合了HTMK4.01的相关标准并革新,符合现代网络

发展要求,在2008年正式发布。HTML5由不同的技术构成,其在互

联网中得到了非常广泛的应用,提供更多增强网络应用的标准机。与

传统的技术相比,HTML5的语法特征更加明显,并且结合了SVG的

内容。这些内容在网页中使用可以更加便捷地处理多媒体内容,而且

HTML5中还结合了其他元素,对原有的功能进行调整和修改,进行标

准化工作。HTML5在2012年已形成了稳定的版本。

HTML5将Web带入一个成熟的应用平台,在这个平台上,视频、

30

音频、图像、动画以及与设备的交互都进行了规范。

智能表单

表单是实现用户与页面后台交互主要组成部分,HTML5在表单的

设计上功能更加强大。input类型和属性的多样性大大地增强了HTML

可表达的表单形式,再加上新增加的一.些表单标签,使得原本需要

JavaScript来实现的控件,可以直接使用HTML5的表单来实现;一

些如内容提示、焦点处理、数据验证等功能,也可以通过THML5的智

能表单属性标签来完成。

绘图画布

HTML5的canvas元索可以实现画布功能,该元索通过自带的API

结合使用JavaScript脚本语自在网页上绘制图形和处理,拥有实现

绘制线条、弧线以及矩形,用样式和颜色填充区域,书写样式化文本,

以及添加图像的方法,且使用JavaScript可以控制其每一个像素。

HTML5的canvas元索使得浏览器无需Flash或Silverlight等插件

就能直接显示图形或动画图像。

多媒体

HTML5最大特色之一就是支持音频视频,在通过增加了〈audio》、

〈video》两个标签来实现对多媒体中的音频、视频使用的支持,只要

在Web网页中嵌入这两个标签,而无需第三方插件〔如Flash)就可

以实现音视频的播放功能。HTML5对音频、视频文件的支持使得浏览

器摆脱了对插件的依赖,加快了贞面的加载速度,扩展了互联网多媒

体技术的发展空间。

31

地理定位

现今移动网络备受青睐,用户对实时定位的应用越来,要求也越

来越高。HTML5通过引人Geolocation的API可以通过GPS或网络信

息实现用户的定位功能,定位更加准确、灵活。通过HTML5进行地位,

除了可以定位自己的位置,还可以在他人对你开放信息的情况下获得

他人的定位信息。

数据存储

HTML5较之传统的数据存储有自己的存储方式,允许在客户端实

现较大规模的数据存储。为了满足不同的需求,HTML5支持D0M

Storage^0WebSQLDatabase两种存储机制。其中,DOMStorage适

用于具有key/value对的基本本地存储;而WebSQLDatabase是适用

于关系型数据库的存储方式,开发者可以使用SQL语法对这些数据进

行查询、插入等操作。

多线程

HTML5利用WebWorker将Web应用程序从原来的单线程业界中

解放出来,通过创建一个WebWorker对象就可以实现多线程操作。

JavaScript创建的Web程序处理事务都是在单线程中执行,响应时

间较长,而当JavaScript过于复杂时,还有可能出现死锁的局面。

HTML5新增加了一个WebWorkerAPI,用户可以创建多个在后台的线

程,将耗费较长时间的处理交给后台面不影响用户界面和响应速度,

这些处理不会因用户交互而运行中断。使用后台线程不能访问页面和

窗口对象,但后台线程可以和贞面之间进行数据交互。子线程与子线

32

程之间的数据交互,大致步骤如下:①先创建发送数据的子线程;②

执行子线程任务,把要传递的数据发送给主线程;③在主线程接受到

子线程传递回的消息时创建接收数据的子线程,然后把发送数据的子

线程中返回的消息传递给接收数据的子线程;④执行接收数据子线程

中的代码。

1.2.2.5.6.页面静态化

静态的HTML页面严格地由标准的HTML标示语言构成,并不需要

服务器端即时运算生成。这意味着,对一个静态HTML文档发出访问

请求后,服务器端只是简单地将该文档传输到客户端。从服务器运行

的那个时间片来看,这个传输过程仅仅占用了很小的CPU资源。

页面静态化就是采用效率最高、消耗最小的纯静态化的html页

面来替换动态页面。我们尽可能使上的页面采用静态页面来实现,这

个最简单的方法其实也是最有效的方法。

同时,HTML静态化也是某些缓存策略使用的手段,对于系统中

频繁使用数据库查询但是内容更新很小的应用,可以考虑使用HTML

静态化来实现,这些信息其实大量被前台程序调用,但是更新频率很

小,可以考虑将这部分内容进行后台更新的时候进行静态化,这样避

免了大量的数据库访问请求。

1.2.2.5.7.采用J2EE架构

J2EE是Java2EnterpriseEdition的简称,继承了Java平台无

关性的特点,是一种功能完备、稳定可靠、安全快速的企业级计算平

台,

33

J2EE平台适用多层次分布式应用模型,采用基于组件的方式来

设计、开发、组装和部署企业应用系统,以及基于可扩展标记语言

(XML)的数据交换、统一的安全模式和灵活的事务控制。

Client-SideServer-SideServer-SideEnterprise

PresentationPresentationBusinessLogicInformation

J2EE开发平台

J2EE作为主流技术体系已成为一个工业标准,围绕着J2EE有众

多的厂家和产品,其中不乏优秀的软件产品,合理集成以J2EE为标

准的软件产品构建市级平台,可以得到较好的稳定性、高可靠性和扩

展性。J2EE技术的基础是JAVA语言,JAVA语言的与平台无关性,保

证了基于J2EE平台开发的应用系统和支撑环境可以跨平台运行。

J2EE作为主流技术体系已成为一个工业标准,围绕着J2EE有众

多的厂家和产品,其中不乏优秀的软件产品,合理集成以J2EE为标

准的软件产品构建市级平台,可以得到较好的稳定性、高可靠性和扩

展性。

J2EE技术的基础是JAVA语言,JAVA语言的与平台无关性,保证

了基于J2EE平台开发的应用系统和支撑环境可以跨平台运行。

J2EE相对具有较好的开放性、较好的可移植性、较好的跨平台

34

和企业级应用支持能力,建议在整体框架和应用支撑平台中结合采用

J2EE技术标准和相关产品。

应用客户端其他支持HTTPCORBAHOP

的技术分布式组件

应用客户端

容器RMMIOPJMS

温馨提示

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

评论

0/150

提交评论