基于海量数据资产的电商数据服务系统设计与实现 电子商务管理专业_第1页
基于海量数据资产的电商数据服务系统设计与实现 电子商务管理专业_第2页
基于海量数据资产的电商数据服务系统设计与实现 电子商务管理专业_第3页
基于海量数据资产的电商数据服务系统设计与实现 电子商务管理专业_第4页
基于海量数据资产的电商数据服务系统设计与实现 电子商务管理专业_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

5.1用户登录模块的设计5.1.1单点登录技术(SSO)单点登录技术的本质是一种统一认证和授权的机制,通俗来讲,就是在一个系统中如果存在多个独立的应用时,用户想要访问全部的应用只需要登录一次,然后在访问其他应用时通过安全验证就能对其进行访问,无需重复登录的一种处理方式。其是将第一次登录状态映射到其他应用的同一用户的登录方式,用户在完成安全检验之后就能获取其他应用的访问权限,不需要重复的输入账号秘密,目前的一些企业中存在大量的业务时都会采用这种登录方式。单点登录技术的出现让用户只需要登录依次就能访问所有应用之间相互信任的应用系统,而不用重复的登录,并且还能对角色的权限进行管理,从而让企业在权限的管理上更加科学合理。系统的集中式身份认证则是这个系统中非常重要的一个功能。首先用户通过SSO系统的登录安全认证,那么这个单点登录系统则会为用户提供相应的受信任的应用系统功能。这样一来原本较为离散的用户就能采用单点登录系统的方式集中管理,从而让简化不同受信任的应用对于用户身份的认证过程。信息资源的访问权限采用SSO的方式集中管理,结合角色的权限管理模型,能够让企业对于权限的管理方式更加科学合理。5.1.2单点登录的实现机制单点登录实现机制如下图所示图5.1SSO实现机制如果用户首先访问的应用系统是应用系统1时,这次系统中并不能是识别出当前用户的认证信息,此时,系统会自动的引导用户进入登录界面进行登录。用户在登录界面输入账号和密码并提交登录请求之后,系统会对输入的账号和密码同数据库中存储的已注册的账号和密码进行匹配,通过匹配成功用户则会通过系统的安全校验。此时登录系统则会给用户分配一个认证凭据-token;之后用户在申请访问应用系统1时会提交这个token,应用系统1会对提交的token进行校验并返回其是否合法。此时,用户再去访问应用系统2时,用户会在Session中携带上这个token,让这些数据信息作为自己的认证凭据,当应用系统2受到访问请求时,会对提交的Session和token数据信息进行校验,如果通过安全系统的校验,则用户就可以不在进行登录,直接访问应用系统2,如果不能通过系统的安全校验,则需要重新登录。用户访问应用系统3时,则会重复执行上面的步骤。从单点登录系统的实现机制来看,单点登录系统的技术特点如下:身份认证系统被所有应用系统共享使用单点登录系统的前提就是所用的应用系统共享一套身份认证系统。认证系统的功能就是将提交的用户信息和数据库中存储的信息进行比对,比对成功则会生成唯一的认证票据-token,并将这个token返回给用户。身份认证系统还需要具备对token校验功能,判断其是否真实有效。所有的应用系统都能识别并校验身份认证系统的token要想让系统实现单点登录功能,那么整个系统中所用的应用系统就必须能够对已经登录用户提交的token进行识别,能够和单点登录系统进行通讯,判断用户提交的token是否真实有效。5.1.3用户登录模块的设计本文所设计的用户登录模块采用的登录方式是session登录机制,但是在其中加入了认证令牌-token。采用session作为票据实现单点登录功能,因为大多数都是采用http协议提交,而http协议是一种无连接的方式。因此系统只能通过将提交的session数据段和token信息来判断用户的状态。身份认证流程用户成功登录系统之后,系统会生成唯一的token返回给用户的同时并将其存储在认证中心的内存中。用户的session信息会采用二进制序列化的方式存放在认证服务器上的配置文件中,如果用户需要访问应用服务器时,被访问的应用服务器就会和认证服务器进行通信,让认证服务器读取相应的配置文件并将其中的内容反序列化,在被访问的应用服务器其上重新生成用户的session信息。下图是用户的身份认证流程:图5.2身份认证流程用户在未登陆的状态下访问Web服务器1,Web服务器1会对用户提交的session信息和token进行校验,如果未能通过校验,则会将用户引导到登录界面。用户向Web服务器1提交的session和token信息通过安全认证系统验证之后,会将用户提交的session和token信息保存下来;Web应用服务器1得到安全认证系统认证的成功返回后,会在本地重新构建session信息。模块结构认证中心。用户身份验证、session共享模块是认证中心的主要构成部分。其中,用户身份严重主要是通过对比用户提交的信息和数据库中存储的信息,采用这种方式判断用户当前的身份是否真实有效。如果认证成功,接下来就会转入到session共享模块中,保存用户的登录信息,并将用户的访问转移到其提交的请求的对用的应用服务器上。Web应用服务器。每个应用服务器上都需要部署票据检验,身份信息验证模块。对用户提交的信息和令牌进行校验,如果信息和令牌都合法则在本地重新构建session信息。5.2任务调度模块的设计5.2.1任务调度模型计算机科学中,对于调度的定义通常是指让系统的负载性处于平衡的状态,然后完成对任务的管理和维护工作,例如维护系统线程、进程等。日常生活中,调度的方式一般可以划分为以下两种:定时触发。运用场景——定时开奖系统。例如,福利彩票开奖系统,在特定的时间点执行对应的操作。从上面的描述中可以得出定时触发任务模型的主要两个因素,时间和动作。模型如下图所示:图5.3定时触发模型模型中的时间通常而言都是一个确切的时间,当时间到达时就会执行对应的动作。这种任务调度模型通常都是采用定时器触发任务。因此也被称为经典定时器任务调度模型。事件触发。运用场景——银行存取款时的短信提醒。描述:当用户在银行或者自助机器上存取款时,手机会接收到对应的短信提醒。从上述的场景中可以得知事件触发模型的两个模型元素:时间(银行的存取款)——动作(手机接收到短信挺行)。事件触发模型如下:图5.4事件触发模型所以,事件触发模型中的事件被执行,那么就会触发相应的动作,例如,银行存取款时手机会收到短信验证。上面的两种任务调度模型都是简单的任务调度模型,在实际的使用中,任务的调度方式多种多样,并且任务之间还存在着某种关系,例如共存和互斥。一般而言,任务调度都是通过一揽子复杂的动作完成。对于这种任务调度方式被称为工作流任务调度方式。工作流任务调度方式主要是通过执行条件来控制任务的执行方向。通过上面的分析,可以将任务模型简单的划分为以下三种:时间——事件。时间——事件,触发方式由独立的定时器或者事件触发器触发。工作流。由一揽子动作组成的工作流。本系统所采用的任务调度方式主要是通过quartz架构完成,用户只需要调用相关接口就能完成相应的功能。Quartz任务调度框架具有如下的几点优势:任务持久化。框架会自动将调动的任务信息保存到数据库中,因此任务在重新启动时会自动从数据库中读取相关的信息然后设置任务当前状态。具有强大的任务调度功能,调度任务时采用可以通过任何方式和形式完成任务的调度工作,能够满足任务的常规调度需求和一般不太复杂的特殊的调度需求。多样的应用方式,能够支持不同方式和调度策略进行任务的调度。具有较强的分布式能力和应用集群能力,框架在任务的调度上会对任务的负载进行平衡,避免出现任务只在单一服务器上执行,还能有效的避免任务被重复执行,从而保证了任务的可靠性和较高的效率。不需要对环境无特殊要求,只需要满足普通的java程序运行,框架就能运行在其中。较好的整合性。Quartz框架和Spring有着较强的集成性,两者结合能够完成复杂的任务调度功能。5.2.2任务调度模块设计基于quartz框架的任务调度系统,任务的开发和任务的调度是两个独立的部分,任务的开发者不需要了解任务的调度方式,只需要完成任务的执行工作,得到想要的结果就行;任务的调度一般由系统的使用者控制,系统的使用者需要根据自身的情况或者爱好进行任务的调度工作,其中包含任务基本属性的设置。例如,暂停任务、开始任务等。因为本系统的任务调度模块是基于quartz框架设计,因此开发人员只需要在任务的开发过程中实现XyJob接口,该接口继承与quartz框架中的Job接口。该接口中常用的两种任务定义方式由两种方式。Execute接口是指任务采用何种方式执行。getName()接口的结果是获取当前任务的名字。Spring容器会唤醒后或者被启动后,系统会搜寻任务中已经被实现的XyJob接口,然后对任务进行初始化操作,系统在初始化任务时会向数据库读取任务之前的运行信息,如果有则会将任务恢复到之前的正确的运行状态,如果没有,则会重头开始执行任务,并且在任务的执行中,系统会自动的在数据库中保存任务的执行状态。用户可以在系统的任务管理器界面查看当前系统运行的所有任务,还能设置任务的基本属性和改变当前状态,例如停止、暂停等。Spring框架会将任务开发者实现的XyJob接口实例化,然后将实例化的对象装入到List集合中。此时,Spring容器启动,然后对Spring容器进行初始化,当容器被正确的初始化之后,就会将List集合中的所有XyJob接口在Scheduler容器中进行注册。任务被注册时,回去读取用户配置的Crom表达式,根据表达式将结构运用到任务中。用户需要查询任务的状态时,可以通过GetName()结构获取任务的名字,然后根据获取的任务名称查询任务的状态或者设置任务的状态以及属性。5.3安全防护系统的设计5.3.1网络安全存在的威胁因素1、自然因素因为使用环境中总会存在一些不可抗拒的因素,会让计算机设备以及系统遭受破坏。根据其发生的条件大致可以将这些因素分为自然灾害和存放环境带来的影响这两种。其中自然灾害主要是指雷电天气、地震等人为不可干预的事件,这些灾害的发生不仅会对计算机设备造成极大的破坏,也对人的生命财产安全有着严重的威胁。而存放环境主要是指计算机设备长期存放在潮湿、高温等地方对计算机设备造成不可逆的损坏。2、网络攻击以Hansman和Hunt为代表的研究者,将系统遭遇的网络攻击大致的分为了四个维度,笔者通过系统受到攻击的方式对其进行了分类,分类如下:(1)病毒:计算机病毒并不是由计算机自身产生,而是有一些特殊的程序附带感染到计算机上,从而让计算机上的文件受到感染,具有在不同设备上传播和复制的特点。(2)计算机病毒蠕虫:计算机病毒蠕虫出现之后,Kienzle和Elder将这种计算机系统攻击方式定义为:其能够在非人力控制的情况下通过网络传输协议进行传播。目前将计算机病毒蠕虫主要分为三种:Email蠕虫,文件共享蠕虫以及传统蠕虫。(3)计算机木马:计算机木马这种系统攻击方式是因为互联网技术兴起而出现的一种特殊的攻击方式,其本身是一段带有特殊目的的程序,其目的一般是通过控制目标设备从而窃取存在在目标设备上重要的信息。木马具有较好的隐藏特性,但是因为其设计的目的不纯,因此对计算机系统会造成非常严重的影响。(4)缓冲区溢出:将程序或者进程开辟出的缓冲区填满并且造成其一处,从而获取程序的控制权或者造成程序的崩溃,从而达到对系统破坏的目的。(5)拒绝服务攻击:拒绝服务也就是常说的Dos攻击,其主要实现方式是采用大量的访问请求,让目标服务器造成请求阻塞,导致服务器不能处理正常用户发送的请求。(6)密码攻击:在不知道密码的情况,利用社工的方式或者密码爆破的方式尝试登陆系统,从而获取系统的控制权。(7)信息收集攻击:信息收集攻击的主要目的是收集有用的信息,本身对系统并不会造成严重的损坏,但是会对系统的信息造成严重的泄露。3、计算机硬件或软件的漏洞和缺陷目前,计算机技术发展的速度越来越快,软硬件之间的适应性就显得尤为重要,软件在升级的同时也需要对硬件进行升级,如果硬件对软件不能起到很好地支撑作用时,会导致软件存在较多的漏洞,从而让黑客有机可乘。对于软件而言,要想一款软件没有漏洞是非常困难的,因此在软件发布时需要对其进行充分的测试,但是一些隐藏的漏洞和设计缺陷依然会给黑客的入侵创造条件,从而导致计算机系统的数据出现破坏和信息泄露的情况发生。5.3.2安全防护系统的设计结构对于本次设计的计算机网络安全防护系统中,应该在全面了解网络结构及网络应用相关的信息之后,能够分析计算机网络中存在的安全隐患,分析网络的安全防范需求,依据网络安全目标以及安全防范设计的相关原则,优化构建基于计算机网络的安全防范系统,构建完善的网络安全防范体系。因此,在本次设计的安全防范系统之中,能够基于多层次系统设计体系,从计算机网络的物理层、安全层、系统安全层,并联合应用层、管理安全层方面,构建安全防范系统的总体结构,如下图所示。图5.5安全防护系统的设计架构物理层中,主要就是做好计算机网络在物理方面的安全防护工作,保障计算机网络的设备可以避免遭受自然雷电灾害、人为失误操作以及黑客蓄意攻击的危害,保护计算机网络能安全运行。在安全防护系统设计中,也可以做好系统数据的储备工作,做好计算机网络备份设备,避免计算机运行中因数据流失造成运行故障。网络层之中,可以在设计计算机网络安全防护系统之中,能够做好计算机内网与外网之间的物理隔离工作,确保内网与外网不能实现通信,保障计算机网络内网安全,避免遭受黑客攻击,发挥积极影响。系统层内,主要中系统设计中,可以通过模拟一些黑客攻击的方法技术手段,以此来模拟攻击系统,找出当前系统中的不足,加以设计改进,补救系统现存的网络安全隐患,以确保可以将计算机网络运行安全风险降到最低水平。同时,也可以定期整改安全防护系统的安全策略,并做好用户访问系统的相关信息,记录用户权限、访问次数、访问的内容,事后审查安全防范系统的安全,强化系统的安全防范决策,保障系统层安全。应用层之中,为维护系统的应用层安全,强化防范网络病毒的攻击。主要在实践中就是能过真对系统可能受到的病毒攻击程序,设置一些相应的杀毒、防毒的软件,可以多方位、全面的设置杀毒软件,监测系统薄弱环节是否有病毒攻击,保障计算机网络安全。同时也可以做好应用层的数据审计工作,这样保障安全防护系统管理人员可以准确管理系统的数据安防信息,并可以维护系统数据库信息安全,发挥积极影响。管理层方面,可以为计算机网络安全防护系统设计合理的安全管理体制,根据系统的实际应用需求,对计算机网络操作、故障、管理人员以及使用等多个方面,优化建立管理机制,保障计算机网络在实践中可以平稳运行。5.4API网关服务模块的设计5.4.1API网关的应用场景微服务概念还未出现之前,API网关的相关技术就已经出现了,那时的API网关的主要运用场景是开放性平台,也就是让企业外部的合作伙伴也能够使用这一API网关,而大多数人接触到的API网关的应用场景也是这种开放性的平台。之后随着微服务概念的兴起,API网关更是成为了上层应用集成的主要构成部分。API网关的主要使用场景如下图所示:图5.5API网关应用场景运用场景为Web或者移动APP。这种运用场景中,物理上的结构和软件上的前后端分离结构雷同,前端应用通过调用网关提供的API从而实现相关的功能,需要网关具备认证、鉴权等功能。运用场景为面向伙伴开发的API。这种运用场景中,主要是企业和企业合作伙伴建立密切的生态圈,并且这种API网关形式属于对外开发的形式。所以这种运用场景中的API网关重点需要突出安全认证、权限分级、流量管控等功能。这些功能是API对外开发时必须具备的功能。企业内部系统的互联互通场景。对于大型企业而言,企业内部通常存在着较多的系统,尤其是微服务的概念出现之后,导致企业内部系统的数量呈现爆炸式的增长。系统之间的依赖性增加,从而让企业内部的系统呈现为网状,但是这种情况的出现,让企业对于系统的维护和管理变得更加艰难,因此,这种情况可以采用API网关对系统进行统一的认证,判断请求的权限,监控告警等功能。这样能够让系统的稳定性得到提高的同时减少企业在维护和运营系统上的成本的开支。5.4.2网关的作用网关在整体系统中可以被认为是客户端和服务端中间的一个挡板,其主要具有如下三个功能:内外隔离大多数的系统主要分为两部分,也就是客户端和服务端。一些系统对于安全性的要求较高,因此只接受内部的访问请求,禁止通过外部的方式访问。这种情况下API网关通常是部署在防火墙的外层,从而起到禁止访问的功能。内部系统只会响应从API网关转发过来的网络请求。请求首先通过的是API网关,如果要向下一层传递则需要通过网关设置的白名单或者校验规则的检验,这样能够对请求起到过滤的效果,使用网关的过滤功能相比使用防火墙对请求过滤要更加灵活。解耦功能与非功能当系统的网关需要提供给其他人使用时,除了基本的业务逻辑功能,好需要添加一些非功能的要求。例如,需要防护黑客的技术攻击,应对突发的大量的访问请求量,需要确认访问者的权限等。这些都属于非功能逻辑,因此不能和业务逻辑代码放在一起开发,应该交于专业的团队和人员处理。解耦客户端与服务端客户端和服务提供者通常不属于同一开发团队,其所属的工作性质也有所不同。对于网关的服务提供者而言,其主要的工作是将业务单独抽象出来,提供一个可复用的业务功能,因此服务提供者需要花费大量的时间设计模型,保证模型不会对系统的稳定性和请求的回应速度造成影响。但是客户端的需求发生改变的速度可能较快,这就需要在网关中添加一个中间层,将服务层的接口封装起来,从而能够快速的满足客户端的需求的变更。采用解耦的方式,使用同一的协议和接口以及报文格式,从而满足不同形态的客户端。5.4.3API网关的设计设计API网关时需要从如下几个方面展开:安全性API网关通常都会暴露在外层,因此API网关的安全性对于系统而言就显得尤为重要。因此,API网关在设计时首先需要考虑的问题就是安全性,防止外部的恶意访问对系统造成影响,如果系统中存在交易服务时,那么API网关的安全性就更加重要。提供API网关安全性可以采用加密通讯数据,保证数据完整性和不可抵赖性等方式。性能问题API网关作为系统的第一层请求处理单元,所有的网络请求第一次都会经过API网关,然后再有API网关进行请求的转发。由此看见,网关所需要处理的访问请求是非常巨大的,有些系统的网关甚至在需要在一分钟内处理上千万次的访问请求。如果不能保证网关的性能,那么大量的访问涌入对于系统而言无疑是致命的。高可用问题API网关作为系统的主要组成部分,若其发生故障,那么将会导致系统无法正常运转,外部的网络请求无法通过API网关向系统发送请求,系统无法接受外部的网络请求,一直处于待机状态,这样的状态会给使用者带来极大的不便。因此,API网关需要具备高稳定性以及API热更新功能。扩展性问题API网关在系统中有一个脚手架的作用。例如,日志、安全等一些非业务逻辑的功能都是以插件的形式集成在API网关中。系统不断的升级和业务的变更只需要修改相应的插件就行,不需要对整个网关层进行修改,从而确保网关层的稳定性。API高效运维问题API不管是更新还是发布都需要网关层的配合。网关层需要知道API发布的地址、接口形式以及其报文格式,并且网关层还需要根据发布的API完成对后台API的重新封装。所以,再设计网关时,需要明确的换分出网关层和服务层之间的关系,从而提高对API的管理和开发效率。API生命周期管理问题

API的开发、测试以及上线发布等都是API的生命周期。API网关的开发者可能提高的API较多,针对不同的使用者提供不同的API,或者采用不同的访问策略。因此,需要与API网关配套的自主系统,让网关的服务提供者、管理者管理网关。本系统中所使用的API网关是Mashape公司所提供的API网关——Kong。其是基于Ngnix+lua架构,但是在功能的配置上却比nginx要更加的简单。这款API网关有这较为完整的功能并且还具有很好的扩展性,用户可以根据自身的需求对于功能进行扩展。扩展的方式就想之前设计API网关中提到的方式一样,需要将扩展功能编写成插件,然后集成到kong中。Kong本身就提供了丰富的功能,只需要用户根据自身的使用情况对功能进行配置,其默认提供的功能如下:身份认证功能:Kong提供的身份认证功能是基于BasicAuthentication,Keyauthentication等认证方式。安全:可以使用ACL功能对访问进行控制,动态SSL,限制IP访问,爬虫检测实现。流量控制:请求限流(采用的实现方法是控制请求计数限流),上流响应限流(控制Upstream相应次数得到限流的目的),控制请求数据的大小。并且支持的限流方式也多种多样,包含本地限流、Redis以及集群限流模式。分析监控:Galileo(能够对接收到的请求和数据进行记录,采用API的方式对其进行分析),Datadong(可以记录接收到请求次数,每次请求的大小,以及系统根据请求做出回应的时间),Runscope(能够记录请求和根据请求响应的数据,能够调用特定的API实现性能测试和监控功能)。转换:能够自由的设定请求转换和响应转换功能。因为Kong也是Nginx架构的一种实现方式,因此也具备Nginx的一些特性,有着较好的性能和稳定性。因为其具备良好的性能和技术支持,并且能够让用户根据自身的需求自由的配置功能,还能对其功能进行扩展,因此市面上对于Kong的使用也非常的普及。5.5数据分析模块的设计5.5.1数据收集设计数据收集是有目的的将相关的数据收集到一起的过程。该步骤是进行数据分析的前提,也是数据分析系统中必不可少的一个功能。随着数据量的增多,对于数据收集而言,其难度也在不断的提高。让数据收集难度增加的根本原因是数据源的多种多样,数据量的增多以及如何保证收集到的数据的质量等问题。数据收集时的目标如下:需要尽可能的保证收集到足够多的数据,减少数据的丢失率,降低和业务系统之间的数据交互情况,降低数据收集时对业务系统造成的影响。Hadhoop平台中数据的收集根据客户端的不同其数据的收集方式也不同,当客户端为PC端时,数据的收集方式是通过JSSDK将数据发送到服务器上,当客户端为移动端时,数据的收集是通过Android/IOSSDK将数据发送到服务器端上,如果数据存放在后台系统上时,数据则会通过javaSDK将数据发送到服务端上,从而达到数据收集的目的。服务器端上会一直运行Flume程序,其功能是监视日志文件,当有数据发送到服务端时,日志文件中会有相应的记录,当Flume任务监测到日志文件发生更改时,并且记录的内容为数据时,Flume程序会将数据上传到HDFS中。这样一系列的操作下来,才是完成的数据收集过程。数据收集流程如下图:图5.6数据收集流程数据收集的过程中如何提高数据收集的容错率和降低数据的丢失率是数据收集流程中非常重要的一个问题。Nginx的容错机制的出现就是为了提高数据的容错率。而Flume中的sinkgroups机制是为了提高sink容错,结合Flume的扇入扇出机制,能够极大的缓解服务器处理大数据量日志的压力。5.5.2数据处理设计数据处理

温馨提示

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

评论

0/150

提交评论