信息系统分析与开发技术(第3版) 课件 第八章 基于新一代信息技术的信息系统开发_第1页
信息系统分析与开发技术(第3版) 课件 第八章 基于新一代信息技术的信息系统开发_第2页
信息系统分析与开发技术(第3版) 课件 第八章 基于新一代信息技术的信息系统开发_第3页
信息系统分析与开发技术(第3版) 课件 第八章 基于新一代信息技术的信息系统开发_第4页
信息系统分析与开发技术(第3版) 课件 第八章 基于新一代信息技术的信息系统开发_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

第八章基于新一代信息技术的信息系统开发目录8.1新一代信息技术及其应用8.2信息系统架构设计和开发8.3移动端App开发8.4大数据驱动的信息系统开发8.5开放环境下信息系统安全设计

云计算:云计算(cloudcomputing)是分布式计算的一种,是通过网络“云”将巨大的数据计算处理程序分解成无数个小程序,然后,通过多部服务器组成的系统进行处理和分析这些小程序得到结果并返回给用户。云计算早期,简单地说,就是简单的分布式计算,解决任务分发,并进行计算结果的合并。云计算的核心概念就是以互联网为中心,提供快速且安全的云计算服务与数据存储,让每一个使用互联网的人都可以使用网络上的庞大计算资源与数据中心。

8.1.1新一代信息技术概述8.1新一代信息技术及其应用

大数据:大数据(bigdata)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产,具有海量的数据规模(Volume)、快速的数据流转(Velocity)、多样的数据类型(Variety)和价值密度低(Value)和真实性(Veracity)等5V特征。大数据技术的战略意义是数据进行专业化处理。

8.1.1新一代信息技术概述8.1新一代信息技术及其应用

物联网:物联网(InternetofThings,IoT)是新一代信息技术的重要组成部分,在IT行业又叫泛互联,意指物物相连,万物万联。主要有两层意思:第一,物联网的核心和基础仍然是互联网,是在互联网基础上的延伸和扩展的网络;第二,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。

8.1.1新一代信息技术概述8.1新一代信息技术及其应用

人工智能:人工智能(ArtificialIntelligence,AI)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学,是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等

8.1.1新一代信息技术概述8.1新一代信息技术及其应用

8.1.2新一代信息技术在信息系统中的应用8.1新一代信息技术及其应用新一代信息技术对信息系统设计和开发产生变革性影响,主要表现为:①存储计算能力的大幅增长;②基础资源的应用和管理方式发生颠覆性变化;③数据的应用场景和应用模式得到拓展;④数据的获取渠道和获取方式多样化、自动化、规范化;⑤信息安全趋于总体化。

8.1.2新一代信息技术在信息系统中的应用8.1新一代信息技术及其应用因此,信息系统向系统应用平台化、系统架构开放化、系统服务协同化和管理决策智能化等方面发展。①系统应用平台化。信息系统不再是某企业或组织内部的封闭式应用系统,而是面向信息共享与信息交互的公共服务平台,各信息系统可以有机结合起来,实现互通信息、共享数据资源。②系统架构开放化。信息系统之间的信息共享和信息交互需要信息系统必须基于开放共享的信息技术标准,具有更加开放、更具弹性的系统架构,系统服务以更加灵活多样的形式扩展,以适应信息系统之间的业务逻辑协作服务。

8.1.2新一代信息技术在信息系统中的应用8.1新一代信息技术及其应用③系统服务协同化。信息系统内部与外部环境之间更加和谐,信息系统服务的协同化将包括系统内各部分之间协同、基于业务流程系统内的流程协同和基于业务流程合作系统的全局流程协同。系统之间通过信息共享、信息交互和服务组件相互联系、相互制约。④管理决策智能化。信息系统的两个重要职能分别是服务和管理,既相互独立又相互依赖。服务为管理提供了丰富的数据,而管理借助云计算、大数据、人工智能等技术对各类实时信息进行判断、推理和决策,统筹、优化、调度各类服务资源,实现企业管理决策智能化。

8.1.2新一代信息技术在信息系统中的应用8.1新一代信息技术及其应用1.云计算在信息系统中的应用①云存储。②云数据库。③云应用程序托管。④云计算服务。⑤云安全服务。2.物联网在信息系统中的应用①数据采集。②远程控制。③智能化和自动化。

8.1.2新一代信息技术在信息系统中的应用8.1新一代信息技术及其应用3.区块链在信息系统中的应用①数据共享。②智能合约。③数字身份。④去中心化应用。4.人工智能在信息系统中的应用①系统架构设计。②数据分析。③机器学习。④自然语言处理。⑤系统测试。⑥人工智能决策支持系统。目录8.1新一代信息技术及其应用8.2信息系统架构设计和开发8.3移动端App开发8.4大数据驱动的信息系统开发8.5开放环境下信息系统安全设计信息系统架构是指导信息系统开发的理论方法,对信息系统开发过程具有重要意义。随着面向对象的发展,信息系统架构逐渐发展起来,抽象数据类型的设计方法提高了信息系统软件的重用度,面向对象的方法和设计原则降低了系统功能模块之间的耦合度,也提高了信息系统稳定性,信息系统架构的主要目标就是提高信息系统开发效率和稳定性。8.2信息系统架构设计和开发

1.定义信息系统架构(informationsystemarchitecture)是一系列相关的抽象模式,用于指导信息系统各个方面的设计。信息系统架构不仅显示了软件需求和软件结构之间的对应关系,而且指定了整个软件系统的组织和拓扑结构,提供了一些设计决策的基本原则。

8.2.1信息系统架构概述8.2信息系统架构设计和开发图8.1信息系统架构示意图根据关注的角度不同,可以将信息系统架构分成三种类型:

逻辑架构逻辑架构描述了信息系统中的各个组件之间所存在的关系,比如外部系统接口、用户界面、商业逻辑组件、数据库等。

物理架构物理架构述了描述信息系统运行软件的计算机、网络、硬件设施等情况,还包括如何部署软件包,以及它们运行时的配置情况,关注“功能的分布”和“数据的分布”。

系统架构系统架构一般涉及到两个方面的内容,其一是业务架构,其二是软件架构。业务架构描述了主要的业务模块及其组织结构。软件架构是对软件结构组成的规划和职责设定。

8.2.1信息系统架构概述8.2信息系统架构设计和开发2.分类①逻辑架构。逻辑架构描述了信息系统中的各组件之间所存在的关系,如外部系统接口、用户界面、商业逻辑组件、数据库等。②物理架构。物理架构描述了运行信息系统的计算机、网络和相关硬件设施等情况,如何将软件包部署到这些硬件资源上,以及它们运行时的配置情况,即软件系统最终如何安装或部署到物理机器上,主要有主机、整合服务器、应用服务器、代理服务器、存储服务器、报表服务器、Web服务器、网络分流器等。物理架构关注功能的分布和数据的分布两方面。③系统架构。系统架构一般涉及两方面的内容:业务架构和软件架构。业务架构描述了业务领域主要的业务模块及其组织结构。

8.2.1信息系统架构概述8.2信息系统架构设计和开发

3.信息系统架构演化信息系统开发主要经历了两个阶段:

单体架构基于单体架构开发的信息系统称为集中式信息系统或者称为单体式信息系统应用程序。就是把所有的程序、功能、模块都集中到一个项目中,部署在一台服务器上,从而对外提供服务。

分布式架构基于分布式架构开发的信息信息系统称为分布式信息系统应用程序。就是把所有的程序、功能拆分成不同的子系统,部署在多台不同的服务器上,这些子系统相互协作共同对外提供服务,而对用户而言他并不知道后台是多个子系统和多台服务器在提供服务。8.2信息系统架构设计和开发

8.2.1信息系统架构概述单体架构单体架构应用的全部功能被集成在一起作为一个完整的应用系统,系统中包含所有的业务功能模块。

单体架构更多地作为应用的部署架构,即只要它部署在同一台(虚拟)机器上,运行于同一进程中,而无论应用内部如何模块化,服务化或者分层。8.2信息系统架构设计和开发图8.2基于单体架构的销售管理系统示意图

8.2.1信息系统架构概述

单体架构的特点:(1)部署简单:由于是完整的结构体,可以直接部署在一个服务器上即可;(2)技术单一:项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发;(3)项目开发成本低:单个程序员可以完成业务接口到数据库的整个流程。(4)系统启动慢:一个进程包含了所有的业务逻辑,涉及到的启动模块过多,导致系统的启动、重启时间周期过长;(5)系统错误隔离性差、可用性差:任何一个模块的错误均可能造成整个系统崩溃;(6)可伸缩性差:系统的扩容只能只对这个应用进行扩容,不能做到对某个功能点进行扩容;(7)维修周期长:单体架构中的任何一个问题修复,都需要对整个应用系统进行全面升级。8.2信息系统架构设计和开发

8.2.1信息系统架构概述垂直应用架构随着企业的发展,用户的数量及数据量的逐渐增大,基于单体架构的信息系统适应能力越来越弱,因此按照业务做垂直划分,将应用拆成互不相干的几个应用系统提升效率。8.2信息系统架构设计和开发图8.3基于垂直架构的销售管理系统示意图

8.2.1信息系统架构概述

垂直架构的特点:(1)系统拆分实现了流量分担,解决了并发问题;(2)可以针对不通的模块进行优化;(3)方便水平扩展,负载均衡,容错率提高;(4)系统之间相互独立,互不影响,新的业务迭代更加高效。(5)服务之间相互调用,如果某个服务的端口或IP地址发生变化,调用的系统得手动改变;(6)搭建集群之后,实现负载均衡比较复杂;(7)服务之间调用方式不同意,有的是基于http协议,有的是基于webservice协议,接口协议不统一。8.2信息系统架构设计和开发

8.2.1信息系统架构概述SOA架构当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求,如图8.4所示。8.2信息系统架构设计和开发图8.4基于SOA的销售管理系统示意图

8.2.1信息系统架构概述

SOA的特点:(1)将重复的功能抽取为服务,提高开发效率,提高系统的可重用性、可维护性,由于服务的粒度过大,系统与服务之间耦合性高;(2)可以针对不同服务的特点制定集群及优化方案;(3)采用ESB减少系统中的接口耦合,但是服务的接口协议不固定,种类繁多,不利于系统维护;(4)系统与服务的界限模糊,不利于开发及维护。8.2信息系统架构设计和开发

8.2.1信息系统架构概述微服务架构当强调“业务组件化和服务化”时,原有的单个业务系统被拆分为多个可以独立开发、设计、运行的小应用,这些小应用之间通过服务完成交互和集成,如图8.5所示。8.2信息系统架构设计和开发图8.5基于微服务的销售管理系统示意图

8.2.1信息系统架构概述

微服务的特点:(1)服务拆分粒度更细,有利于资源重复利用,提高开发效率;(2)可以更加精准的制定每个服务的优化方案,提高系统可维护性;(3)微服务架构采用去中心化思想,服务之间采用RESTful等轻量协议通信;(4)适用于互联网时代,产品迭代周期更短。(5)微服务过多,服务治理成本高,不利于系统维护;(6)分布式系统开发的技术成本高(容错、分布式事务等),对团队挑战大。8.2信息系统架构设计和开发

8.2.1信息系统架构概述SOA与微服务架构比较8.2信息系统架构设计和开发SOA微服务应用程序服务的可重用性最大化专注于解耦系统性的改变需要整体修改系统性的改变是创建新服务DevOps和持续交付正在变得流行,不是主流强烈DevOps和持续交付专注一业务功能重用更重视上下文边界的概念通信使用企业服务总线ESB对于通信,使用较少和简单的消息系统支持多种消息协议使用轻量级协议,如HTTP、REST等容器(docker)的使用不太受欢迎容器在微服务方面效果很好SOA服务共享数据存储每个微服务可以拥有单独的数据存储共同的治理和标准轻松的治理,更注重团队协作和选择自由表8.1SOA与微服务架构比较

8.2.1信息系统架构概述8.2信息系统架构设计和开发(1)分层架构(layeredarchitecture)是最常见的软件架构,也是事实上的标准架构。这种架构将软件分成若干个水平层,每一层都有清晰的角色和分工,不需要知道其他层的细节。层与层之间通过接口通信。尽管分层架构没有规定要分成几层几种,大多数的结构都分成四个层次:表现层、逻辑层、持久层和数据库层,如图8.6所示。图8.6分层架构示意图

8.2.1信息系统架构概述4.信息系统常用架构

分层架构中的每一层都有着特定的角色和职能:(1)表现层(presentation):用户界面,负责视觉和用户互动;(2)逻辑层(business):实现业务逻辑;(3)持久层(persistence):提供数据,SQL语句就放在这一层;(4)数据库(database):保存数据。有的软件在逻辑层和持久层之间,加了一个服务层(service),提供不同业务逻辑需要的一些通用接口。8.2信息系统架构设计和开发

8.2.1信息系统架构概述8.2信息系统架构设计和开发分层架构中的每一层都是封闭的,访问请求将依次通过这四层的处理,不能跳过其中任何一层,如图8.7所示。图8.7分层架构请求传递示意图

8.2.1信息系统架构概述8.2信息系统架构设计和开发

分层架构的优点:结构简单,容易理解和开发;项目组成员分工明确,负责不同的层,非常适合企业组织架构;每一层都可以独立测试,与其他层的接口通过模拟解决。

分层架构的缺点:一旦信息系统应用环境发生变化,需要对相关层组件进行调整或增加或删除功能,对信息系统影响比较大;部署周期长,即使只修改一个小地方,往往需要整个软件重新部署,不容易做持续发布;软件升级时,可能需要整个服务暂停;扩展性差,用户请求大量增加时,必须依次扩展每一层,由于每一层内部是耦合的,信息系统扩展性较差。

8.2.1信息系统架构概述8.2信息系统架构设计和开发(2)事件驱动架构事件驱动架构(EventDrivenArchitecture)是一个流行的分布式异步架构模式,可以用来设计规模很大的应用程序。基于这种架构模式应用可大可小。它由高度解耦的,单一目的的事件处理组件组成,可以异步地接收和处理事件。图8.8事件驱动架构示意图

8.2.1信息系统架构概述8.2信息系统架构设计和开发

事件驱动架构优点:分布式的异步架构,事件处理器之间高度解耦,软件的扩展性好;适用性广,各种类型的项目都可以用;性能较好,因为事件的异步本质,软件不易产生堵塞;易部署,事件处理器可以独立地加载和卸载,容易部署。

事件驱动架构缺点:涉及异步编程(要考虑远程通信、失去响应等情况),开发相对复杂;难以支持原子性操作,因为事件通过会涉及多个处理器,很难回滚;分布式和异步特性导致这个架构较难测试。

8.2.1信息系统架构概述8.2信息系统架构设计和开发(3)微核架构微核架构又称为“插件架构”,指的是软件的内核相对较小,主要功能和业务逻辑都通过插件实现。内核(core)通常只包含系统运行的最小功能。插件则是互相独立的,插件之间的通信,应该减少到最低,避免出现互相依赖的问题,如图8.9所示。图8.9微核架构示意图

8.2.1信息系统架构概述8.2信息系统架构设计和开发

微核架构的优点:良好的功能延伸性(extensibility),需要什么功能,开发一个插件即可;功能之间是隔离的,插件可以独立的加载和卸载,使得它比较容易部署;可定制性高,适应不同的开发需要;可以渐进式地开发,逐步增加功能。

微核架构的缺点:扩展性(scalability)差,内核通常是一个独立单元,不容易做成分布式;开发难度相对较高,因为涉及到插件与内核的通信,以及内部的插件登记机制。

8.2.1信息系统架构概述8.2信息系统架构设计和开发

8.2.2基于SOA的信息系统开发SOA概述SOA是一个软件系统的架构,将软件系统的不同功能单元(称为服务)通过服务之间定义良好的接口和契约将软件系统的不同服务联系起来。SOA是一种设计和实现企业应用程序的方法。SOA研究领域是分布式系统的“架构”范式。SOA是一种分布式的软件架构,提倡以拆分业务的思想来分解单体架构的复杂度。8.2信息系统架构设计和开发

8.2.2基于SOA的信息系统开发SOA关键技术(1)SOAP

SOAP(SimpleObjectAccessProtocol)即简单对象访问协议。定义了服务请求者和服务提供者之间的消息传输规范。

SOAP用XML来格式化消息,用HTTP来承载消息。通过SOAP,应用程序可以在网络中心进行数据交换和远程过程调用。8.2信息系统架构设计和开发

8.2.2基于SOA的信息系统开发SOA关键技术(2)WSDL

WSDL(WebServicesDescriptionLanguage)是一种使用XML编写的网络描述语言。定义服务以及与该服务有关的具体信息,忽略该服务具体实现语言。

WSDL主要作用有两点:一是定义服务,包括服务所提供的功能及服务的细节描述;二是服务的使用,调用服务时所需要的协议及协议格式。8.2信息系统架构设计和开发

8.2.2基于SOA的信息系统开发SOA关键技术(3)UDDI

UDDI(UniversalDescriptionDiscoveryandIntegration)即一种统一描述、发现和集成协议,提供了一种服务发布、查找和定位的标准规范。通过UDDI

提供的标准规范,可以发布服务供其他用户查询和调用,也可以查询特定服务的描述信息,并动态绑定到该服务上。8.2信息系统架构设计和开发

8.2.2基于SOA的信息系统开发基于SOA的信息系统实现方法(1)WebService

WebService的解决方案有三部分组成,分别是服务提供者、服务请求者、注册中心。这三部分之间的交互与操作,构成了SOA的一种实现架构,如图8.18所示。图8.18WebService模型8.2信息系统架构设计和开发

8.2.2基于SOA的信息系统开发基于SOA的信息系统实现方法(2)服务注册表服务注册表提供一个策略执行点,在这个点上,服务可以在SOA中注册,从而可以被发现和使用。①服务注册。服务注册是指服务提供者向服务注册表发布服务的功能(服务合约)。②服务位置。服务位置是指服务使用者,帮助它们查询已注册的服务,寻找符合自身要求的服务。③服务绑定。服务使用者利用查找到的服务合约来开发代码,开发的代码将与注册的服务进行绑定,调用注册的服务,以及与它们实现互动。8.2信息系统架构设计和开发

8.2.2基于SOA的信息系统开发基于SOA的信息系统实现方法(3)企业服务总线企业服务总线是SOA的基础设施,用于保证服务使用者能够调用提供者提供的服务。SOA采用企业服务总线来管理所有的业务流程,每个业务的服务调用流程事先在企业服务总线中固定执行序列,其核心作用:①数据格式转换。因为SOA是支持异质的,所以企业服务总线主要的作用就是处理不同平台不同语言之间的相互调用。②路由功能。不同优先级的消息,不同类型的消息是需要给予不同处理。8.2信息系统架构设计和开发

8.2.2基于SOA的信息系统开发基于SOA的信息系统开发过程基于SOA的信息系统本质特征是服务发现与实现,以基本业务服务为系统的基本实现单元,然后通过服务流程管理“组装”信息系统。服务建模服务封装服务治理服务编排服务识别和颗粒度确定,确定了系统架构的耦合程度对服务进行规范性的描述,决定服务以何种形式向外提供服务将已经封装好的服务进行集中统一有效的管理根据信息系统业务流程的需求,对服务进行组合和组装应用交付完成信息系统服务化组装和服务部署,实现系统按需交付

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发基于微服务的信息系统总体设计微服务之间的通信模式是进程间通信方式,因为微服务的每一个服务实例都是一个独立的进程并且可能部署在不同的服务器上,其划分出5种不同的交互方式。如表8.3所示。

一对一一对多同步请求/响应无异步单向通知(单向请求)发布/订阅双向请求/异步响应发布/异步响应表8.4进程间通信交互模式关系表

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发基于微服务的信息系统总体设计基于微服务的信息系统开发就是将一个大型的单个应用或服务拆分成多个微服务,每个服务都是一个独立的功能,可以进行独立的测试、开发和部署等。图8.19基于微服务的信息系统总体架构示意图

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发基于微服务的信息系统总体设计微服务信息系统内部模块划分,一个服务组件的模块划分通常是由业务决定的,如果服务的功能比较复杂,服务内模块的划分就会比较多,反之,较少。层次命名功能描述业务控制层***Controller负责相应业务模块流程的控制,调用Service接口业务逻辑层***Service负责具体的逻辑功能的设计实现,调用Dao接口数据模型层***Dao负责对底层数据库中数据表的增、删、改、查等工作表8.5服务组件功能结构描述

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发基于微服务的信息系统总体设计

一个完整的服务组件是通过分层的思想来实现。一般的服务组件划分大概有一下几层:消息接口层,业务控制层,业务逻辑层,数据模型层,数据适配层,公共处理层等六层。服务组件设计规则及注意事项消息接口层用于定义微服务对外发布的接口,不应该有太多业务逻辑业务控制层调用下层的算法和数据库访问接口实现业务处理逻辑,通过调用一个或者多个算法接口完成整个业务流的处理业务逻辑层实现数据组装,模型转换等所有业务相关的逻辑处理数据模型层定义了微服务使用的公共业务模型,接口模型也可以定义在这里面,但是需要通过不同的子模块区分数据适配层提供访问数据库的接口,封装了底层数据库的JDBC访问接口,提供了各种针对不同业务的封装公共处理层提供的都是与业务员无关的公共组件和工具,定义微服务使用的常量(数字常量、字符串常量)和枚举值等组件表8.6服务组件设计规则及注意事项

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发微服务设计的六大原则(1)高内聚低耦合:单一职责、轻量级通信、服务间的契约;(2)高度自治:够独立开发、部署和发布、进程隔离、独立的代码库和流水线;(3)以业务为中心:每个服务代表了特定的业务逻辑、更快的响应业务变化、围绕业务组织团队;(4)弹性设计:容错、服务降级与服务熔断;(5)日志与监控:日志聚合、监控与告警;(6)自动化:持续集成、持续交付。微服务是为了快速响应业务变化而诞生的,其宗旨是围绕业务能力进行构建,最终达到去中心化的目的。

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发微服务拆分原则(1)AKF拆分原则

《可扩展的艺术》一书提出了一个更加系统的可扩展模型——AKF可扩展立方(ScalabilityCube)。这个立方体中沿着三个坐标轴设置分别为:X、Y、Z,如图8.20所示图8.20AKF可扩展立方

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发微服务拆分原—AKF拆分原则Y

轴(功能)

Y轴扩展会将庞大的整体应用拆分为多个服务。每个服务实现一组相关的功能。对于一个销售管理系统来说,可以拆分成不同的服务,组成下面这样的架构,如图8.21所示。图8.21销售管理系统服务拆分示意图

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发微服务拆分原—AKF拆分原则随着信息系统新功能的添加,要调用的服务数也变得不可控,由此引发了服务管理上的混乱。所以,采用服务注册的机制形成服务网关来进行服务治理。系统的架构将变成图8.22所示。图8.22带有服务网关的销售管理系统示意图

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发微服务拆分原—AKF拆分原则X

轴(水平扩展)

X轴扩展是通过绝对平等地复制服务与数据,以解决容量和可用性的问题。为了提升单个服务的可用性和容量,对每一个服务进行水平扩展。图8.23按X轴扩展的销售管理系统示意图

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发微服务拆分原—AKF拆分原则Z轴(数据分区)

Z轴扩展通常是指基于请求者或用户独特的需求,进行系统划分,并使得划分出来的子系统是相互隔离但又是完整的。单元化架构:客户端对服务端节点的选择一般是随机的,但是,如果在此加上Z轴扩展,那服务节点的选择是每个单元自成一体。图8.24按Z轴扩展的销售管理系统示意图

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发微服务拆分原—AKF拆分原则Z轴(数据分区)

Z轴扩展通常是指基于请求者或用户独特的需求,进行系统划分,并使得划分出来的子系统是相互隔离但又是完整的。数据分区:为了性能数据安全上的考虑,将一个完整的数据集按一定的维度划分出不同的子集。数据分区为一般包括以下几种数据划分的方式:数据类型(如:业务类型);数据范围(如:时间段,用户ID);数据热度(如:用户活跃度,商品热度);按读写分(如:商品描述,商品库存)。

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发微服务拆分原则(2)前后端分离原则前后端分离原则,简单来讲就是前端和后端的代码分离,也就是技术上做分离,我们推荐的模式是最好直接采用物理分离的方式部署,进一步促使进行更彻底的分离。这种分离模式的方式有几个好处:前后端技术分离,可以由各自的专家来对各自的领域进行优化,这样前端的用户体验优化效果会更好。分离模式下,前后端交互界面更加清晰,就剩下了接口和模型,后端的接口简洁明了,更容易维护。前端多渠道集成场景更容易实现,后端服务无需变更,采用统一的数据和模型,可以支撑前端的webUI、移动App等访问。

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发微服务拆分原则(3)无状态服务阻碍单体架构变为分布式架构的关键点就在于状态的处理。如果状态全部保存在本地,无论是本地的内存,还是本地的硬盘,都会给架构的横向扩展带来瓶颈。要将整个架构分成两个部分,无状态部分和有状态部分,而业务逻辑的部分往往作为无状态的部分,而将状态保存在有状态的中间件中,如缓存、数据库、对象存储、大数据平台、消息队列等。

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发微服务拆分原则(4)RESTful的通信风格

RESTful通信风格,它有许多优点:无状态协议HTTP,具备先天优势,扩展能力强,例如安全加密有成熟的https;JSON报文序列化,轻量简单,人与机均可读,学习成本低,搜索引擎友好;语言无关,各大热门语言都提供成熟的RESTfulAPI框架,相对一些其他RPC框架生态更加完善。

8.2.3基于微服务的信息系统开发8.2信息系统架构设计和开发基于微服务的信息系统服务治理服务治理相关描述服务注册和服务发现微服务采用服务注册中心的方式来充当服务间的调用中介,服务注册中心负责为每个微服务提供它要调用的其它服务信息服务配置基于微服务的信息系统中每个服务或多或少总有一些配置参数要管理,比如配置服务访问的端口、数据库连接参数、日志参数等服务熔断为了保证信息系统在高负荷情况下的可靠运行,信息系统必须具有自我保护机制。这种自我保护机制可以通过限流、降级以及熔断等措施实现负载均衡基于微服务的信息系统通过负载均衡实现系统的高可用和集群扩容等功能。负载均衡主要分两种:服务端负载均衡和客户端负载均衡服务网关基于微服务的信息系统屏蔽服务内部细节,为服务调用者提供统一入口,接收所有调用者请求,同时系统也必须保证能将请求通过路由机制传递给服务实例,这些都可交由服务网关来实现表8.7服务治理相关描述目录8.1新一代信息技术及其应用8.2信息系统架构设计和开发8.3移动端App开发8.4大数据驱动的信息系统开发8.5开放环境下信息系统安全设计移动终端移动终端或者叫移动通信终端是指可以在移动中使用的计算机设备,广义的讲包括手机、笔记本、平板电脑、POS机甚至包括车载电脑。但是大部分情况下是指手机或者具有多种应用功能的智能手机以及平板电脑。移动终端是指具有独立的操作系统,可以安装和运行第三方软件,并具备移动通信能力的手持设备。8.3移动端App开发

8.3.1移动端App概述移动操作系统移动操作系统是安装在移动设备(例如智能手机,个人数字助理(PDA),超移动PC和MID)中的通用操作系统。也称为移动操作系统,移动通用操作系统,移动平台。目前主要两大移动操作系统:一个是iOS系统,另一个是Android系统。8.3移动端App开发

8.3.1移动端App概述移动终端的特点(1)硬件体系上,移动终端具备中央处理器、存储器、输入部件和输出部件,也就是说,移动终端往往是具备通信功能的微型计算机设备,可以具有多种输入方式,诸如键盘、鼠标、触摸屏、送话器和摄像头等。(2)在软件体系上,移动终端必须具备操作系统,同时,这些操作系统越来越开放,基于这些开放的操作系统平台开发的个性化应用软件层出不穷,极大程度地满足了个性化用户的需求。(3)在通信能力上,移动终端具有灵活的接入方式和高带宽通信性能,并且能根据所选择的业务和所处的环境,自动调整所选的通信方式,从而方便用户使用。8.3移动端App开发

8.3.1移动端App概述移动App开发移动App开发又称移动互联网开发,移动应用开发等。是指以智能手机、PDA、UMPC等便携终端为基础,进行相应的开发工作,由于这些随身设备基本都采用无线上网的方式,因此,称作为无线开发。移动App开发不仅仅是指为这些移动终端设备开发应用程序,还要关注这些设备支持的常见操作系统、平台和语言。8.3移动端App开发

8.3.1移动端App概述移动App应用开发模式多种多样,选择合适的模式是移动应用系统开发首先面临的一个重要问题。移动App开发模式主要包括原生开发模式(NativeApp)、网页开发模式(webApp)、混合开发模式(HybridApp)和微信小程序等四种模式。

8.3.2移动端APP开发主要模式8.3移动端App开发NativeAPP开发模式

NativeAPP开发模式又称传统型开发模式,是基于本地操作系统运行的APP应用程序。移动APP的开发需要针对不同的移动终端操作系统采用不同的语言和框架进行开发,一般包括云服务器数据和APP应用客户端两个构成部分,但所有的图形用户界面元素、内容以及逻辑框架均需要下载安装在移动终端。NativeApp开发采用的是C/S架构,即客户端/服务端架构,如图8.13所示。

8.3.2移动端APP开发主要模式图8.13原生应用架构示意图8.3移动端App开发

NativeApp优势:(1)审核对App的质量以及安全性有保证,增加用户对App的信任;(2)可在应用商店进行推荐,用户下载安装后在桌面有小图标,易发现;(3)在本地有缓存,省流量、响应速度快、性能高、整体用户体验良好;(4)能充分利用设备提供的硬件资源;(5)部分支持离线(己下载的内容,无网也可访问);(6)有消息推送的功能。

8.3.2移动端APP开发主要模式8.3移动端App开发

NativeApp劣势:(1)需要下载安装,安装后占用内存,同时本地的缓存也占用大量内存,造成用户设备运行越来越慢的局面;(2)与操作系统绑定,增加开发、维护人员的工作量;(3)开发成本高、周期长,维护难度大;(4)发布过程繁琐,不同版本上线时间不统一;(5)新版本需要用户重新下载升级,如果不更新,用户体验不到新版本改善或添加的功能。

8.3.2移动端APP开发主要模式8.3移动端App开发WebAPP开发模式

WebAPP开发模式是一种框架型开发模式,其本质上是针对智能移动终端特殊优化后的web站点,运行于网络与浏览器的移动应用。与NativeApp不同,WebApp所有的数据都由服务器端提供,实现了与数据服务器端的实时交互,也正是这种实时交互导致它的响应能力不如NativeApp。WebApp的架构如图8.14所示。

8.3.2移动端APP开发主要模式8.3移动端App开发图8.14WebApp应用架构示意图

WebApp优势:(1)不需要下载安装,只需要在浏览器输入网址就可打开,可进行收藏或添加标签,以便下次打开;(2)用户得到的永远是最新的版本;(3)跨平台,开发成本低,周期短;(4)上线不需要审核;(5)不同WebApp之间可以通过链接跳转;(6)HTML5的新特性减少对插件的依赖。

8.3.2移动端APP开发主要模式8.3移动端App开发

WebApp劣势:(1)无法调用设备提供的API,只能通过JS或HTML5提供的API;(2)需要良好的网络环境,响应速度不如原生,并且需要流量大;(3)依赖于浏览器(支持HTML5);(4)不需要审核导致安全性不如其他开发模式。

8.3.2移动端APP开发主要模式8.3移动端App开发HybridAPP开发模式

HybridAPP开发模式是在NativeAPP和WebAPP开发模式基础上衍生的一种APP开发模式,HybridAPP的架构与NativeAPP架构比较接近,但客户端与服务器端数据访问形式又与WebAPP比较接近。HybridApp架构如图8.15所示。

8.3.2移动端APP开发主要模式8.3移动端App开发图8.15HybridAPP应用架构示意图

HybridApp优势:(1)具有WebApp跨平台、实时更新、低成本、开发周期短等优势;(2)具有NativeApp用户体验良好、调用设备硬件API等优势。

HybridApp劣势:(1)用户体验不如原生;(2)开发成本比WebApp大。HybridApp开发模式一般适用于大部分的移动应用,是目前电商、餐饮等领域首选开发模式。

8.3.2移动端APP开发主要模式8.3移动端App开发微信小程序

微信小程序简称小程序,目前己经是开发人员开发移动应用时首选的开发模式,它的架构如图8.16所示。小程序是一种不需要下载安装就可以使用的应用,体现了‘用完就走’的思想,给那些放在桌面累赘又不能丢弃的应用提供了住所。

8.3.2移动端APP开发主要模式8.3移动端App开发图8.16微信小程序应用架构示意图

微信小程序优势:(1)不需要下载安装;(2)跨平台,占用内存少;(3)可以通过微信释放的API来获取设备硬件资源的调用;(4)用户获得的数据永远为最新数据。

微信小程序劣势:(1)小程序首次启动时需要从CDN加载小程序包,启动较慢;(2)小程序代码有1M限制,适合小应用的开发。

8.3.2移动端APP开发主要模式8.3移动端App开发APP开发模式和小程序的比较

8.3.2移动端APP开发主要模式8.3移动端App开发表8.2NativeApp、HybridApp、WebApp和微信小程序的分析对比

维度NativeAppWebAppHybridApp微信小程序跨平台否是是是下载安装是否是否实时更新否是部分是是调用设备API支持很少支持微信提供的API离线是是是是用户体验优中优优开发成本高低中低于Web

APP维护成本高低中低于Web

APP流量使用少多介于原生与网页应用之间少APP开发模式和小程序的比较

选择适合移动App开发模式的建议:(1)极度追求画面流畅度的大型游戏建议使用Native开发模式,比如王者荣耀;(2)工具类应用建议使用Native开发模式,如百度地图等工具;(3)除非必要,否则不建议选择Native开发模式;(4)对于像新闻资讯这样需要经常更新的应用,首先要摒弃NativeApp开发模式;(5)对于使用频率低的应用,建议开发小程序(注意小程序1M的容量限制),当然在此基础上也可开发HybridApp;(6)对于涉及资金、敏感信息这类应用,不建议使用WebApp;(7)如果资金充足,可以考虑开发HybridApp。

8.3.2移动端APP开发主要模式8.3移动端App开发

8.3.3移动端APP开发一般流程8.3移动端App开发移动APP开发会根据不同的应用程序特征,制定相应的开发流程。但一般意义上,APP软件开发的主要阶段包括需求分析、软件设计、代码编写、测试以及发布与维护,如图8.17所示。图8.17移动APP软件开发一般流程

8.3.3移动端APP开发一般流程8.3移动端App开发(1)需求分析。相比其他软件,App软件更注重客户的特定需求,因而软件开发者必须深入了解客户诉求,明确客户需求,明确相关的功能诉求以及友好界面诉求。(2)软件设计。完成用户需求分析后,就需要对App软件进行规划设计。设计阶段主要包含功能设计和界面设计。(3)代码编写。编程人员根据功能设计和界面设计内容,完成相关的代码开发编写工作。(4)测试阶段。测试在App软件开发中尤为重要,通过测试反馈,可以不断地修正App产品,使之无限接近客户需求。一般App软件会在完成代码编写工作后,在目标客户群中进行测试,收集反馈意见并不断完善。(5)发布与维护。反复测试与完善后,App软件即可正式发布运营,但后期软件开发者还需要对软件进行有效维护,应对突发事件。目录8.1新一代信息技术及其应用8.2信息系统架构设计和开发8.3移动端App开发8.4大数据驱动的信息系统开发8.5开放环境下信息系统安全设计数据驱动信息系统数据驱动是指通过互联网或以其它相关系统为手段,采集海量的数据,将数据进行组织形成信息,利用规则、算法、机器学习、深度学习等手段进一步处理信息,在数据的基础上进行经过训练和拟合,实现对数据中隐含规律的挖掘,形成自动化的决策模型。简单来说就是以数据为中心进行决策和行动。数据驱动的信息系统拥有一套完整的数据价值体系,将数据分析纳入决策流程,对企业决策提供有价值和影响的数据。通过对数据的收集、整理、提炼,总结出规律形成一套智能模型,之后通过人工智能的方式给出决策方案。8.4大数据驱动的信息系统开发

8.4.1数据驱动的信息系统概述数据驱动的信息系统数据结构类型(1)结构化数据:结构化数据类型包括预定义的数据类型、格式和结构的数据,表现为二维形式的数据,如关系型数据库中数据表里的数据

。(2)半结构化数据:半结构化数据不符合关系型数据库的数据模型结构,但具有自描述的结构,包含相关标记,用来分隔语义元素以及对记录和字段进行分层。常见的半结构数据有XML和JSON。(3)准结构化数据:具有不规则数据格式的文本数据,使用工具可以使之格式化。(4)非结构化数据:没有固定结构的数据,如语音、图片、视频等格式的数据。

8.4.1数据驱动的信息系统概述8.4大数据驱动的信息系统开发数据驱动的信息系统特点在互联网、云计算及大数据环境下,信息系统的数据已经发生显著的变化。数据来源广泛性。互联网发展使得信息系统数据产生的来源愈加多元多样,获取数据的渠道也更加宽泛。数据类型多样化。传统信息系统数据以结构化数据类型为主,而大数据环境下的信息系统数据不仅包含结构化数据,更多是以非结构化数据为主。数据量大。大数据时代,信息系统的数据量迅速增加。价值密度高。在大数据变革中数据和技术的结合,数据驱动信息系统从传统的“业务功能为主”转为“信息资源为主”模式。

8.4.1数据驱动的信息系统概述8.4大数据驱动的信息系统开发数据驱动的信息系统关键技术(1)分布式文件管理技术数据存储与管理是大数据应用的基础之一,但是传统的数据文件管理系统不适用于大数据信息系统,需要根据实际应用需求进行设计与分析。该管理技术通过分块存储、关联链接、追加更新等对数据进行存储与管理,但是对于大文件的管理与存储,该技术存在一定的不足,为弥补和完善该不足,多个类GFS文件管理系统被开发应用到大数据管理中。这些技术通过增加缓冲层、使用内存加载部分元数据的方式提升了数据的存储和读取效率,使得大数据文件管理系统进入集群管理阶段。

8.4.1数据驱动的信息系统概述8.4大数据驱动的信息系统开发数据驱动的信息系统关键技术(2)分布式数据处理系统数据大数据信息的处理方式主要有流处理和批处理两种。前者将所需要处理的海量数据看作是一个不间断的流,可以实时的对进入处理系统的数据进行处理和结果返回。分布式处理方式的应用极大的提升了系统的数据处理实时性。后者则是将需要处理的数据先执行存储操作再对其进行处理。该技术可以使用将数据按照特定的分割方式分为多块数据,这些数据可同时由多个处理终端进行并行处理。显然,该处理技术淡化了数据的关联部分,但是极大的提升了数据的可调度性、集群性。该技术的核心在于数据的分割、分发以及处理。

8.4.1数据驱动的信息系统概述8.4大数据驱动的信息系统开发数据驱动的信息系统关键技术(3)分布式数据库系统为实现大数据的处理需要采用更简单的数据库模型。

8.4.1数据驱动的信息系统概述技术特点优化Bigtable技术

将数据信息看作字符串使得所被管理的数据具有结构化或半结构化特征Dynamo技术

键值存储、分布式哈希表、向量时钟等技术实现对大数据库系统的可靠高效管理NoSQLogic

数据库

模式智能识别、一致化与简单化应用程序接口等技术达到较好的应用效果表8.3典型数据库技术对比

8.4大数据驱动的信息系统开发数据驱动的信息系统关键技术(4)其他系统及关键技术数据驱动的信息系统结构复杂,除上述几部分系统之外还包括其他多个系统,这些系统又由多个大数据处理与分析技术构成,如数据挖掘技术、云计算技术、模式识别技术、聚类分析技术、稀疏问题处理技术等。

8.4.1数据驱动的信息系统概述8.4大数据驱动的信息系统开发数据驱动的系统应用意义(1)提高工作效率,保证工作质量数据在以往的管理过程中,管理人员的工作常常是机械性的、处理时间冗长、过程复杂麻烦,缺乏及时性。而企业管理工作的信息化,既可以提升管理工作效率,减轻管理人员的工作,又能够保证工作的质量。企业管理人员能够更准确及时的判断当前公司的运营状态,实时掌握企业状况,做出经济决策。

8.4.1数据驱动的信息系统概述8.4大数据驱动的信息系统开发数据驱动的系统应用意义(2)科学管理企业,准确预测风险利用大数据信息化管理工作可以提升对数据的利用价值,可以更加科学地进行系统化管理,使数据信息传递更加快速规范,缩短预测花费的时间,准确预测企业存在风险,提高的预测效率。

8.4.1数据驱动的信息系统概述8.4大数据驱动的信息系统开发数据驱动的系统应用意义(3)降低企业成本,优化配置资源大数据技术具有分布式、大规模及深层次的信息存储分析能力,这就为管理信息系统的发展带来了技术支持。大数据环境下的中小企业信息管理,仅需要申请软件许可证并定期完成软件升级就可实现,企业并不需要重复购买硬件设备。只要企业确保有很好的网络信号,大数据就能以服务资源形式提供计算能力,随时监测和衡量服务资源的使用情况,也能结合实际情况针对用户和供应商提供不同的报告,这些服务资源就能被定量化控制。

8.4.1数据驱动的信息系统概述8.4大数据驱动的信息系统开发数据驱动的系统应用意义(4)打破工作模式,提高核心竞争力由于大数据对终端硬件配置的要求不高,用户不需要再配备储存设备和操作系统,在网络状态下就能存储大量数据资料。对企业来说,仅需要借助于大数据技术就能在员工间远程传输数据,工作效率大幅度提高。大数据环境下的中小企业管理信息系统可以随时依据社会需求,对管理信息系统的服务能力与管理效能进行增强,企业的运维成本降低,进一步促进了企业管理模式的创新与商业模式的创新。

8.4.1数据驱动的信息系统概述8.4大数据驱动的信息系统开发

8.4.2数据驱动的信息系统开发8.4大数据驱动的信息系统开发数据驱动的信息系统开发关键要素数据驱动是大数据下信息系统开发实施关键技术。第

温馨提示

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

评论

0/150

提交评论