智能硬件阿里云服务器端应用开发_第1页
智能硬件阿里云服务器端应用开发_第2页
智能硬件阿里云服务器端应用开发_第3页
智能硬件阿里云服务器端应用开发_第4页
智能硬件阿里云服务器端应用开发_第5页
免费预览已结束,剩余75页可下载查看

下载本文档

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

文档简介

本科毕业设计(论文)智能硬件阿里云服务器端应用开发 学院专业学生姓名学生学号指导教师提交日期软件学院软件工程 V摘 要智能硬件是继智能手机之后的一个新的科技概念,通过智能手机与硬件结合的方式,对传统硬件设备进行改造。硬件通过无线蓝牙通信与智能手机进行通讯,进而与云端服务器进行数据交互,实现互联网服务的加载,形成“云+端”的典型架构。服务器端存储用户及其硬件设备的使用数据,具备了大数据等附加价值。该平台构建了以智能硬件产品为核心,通过产品线连接各硬件用户、销售方和经销商的业务网络,从而实现产品涉众通过网络进行数据分析,实现资源共享。由于该平台涉及多机构的用户,用户基数较大,用户权限关系复杂而且变动大。需要访问控制的资源多,分布广。对资源的操作复杂。既要保证平台信息资源的安全性,同时又要保证系统的灵活性与易访问性。为此,本文专门研究并实现了该平台的用户管理B/S子系统和智能硬件管理C/S子系统。用户管理B/S子系统为管理员提供用户管理、角色管理、权限管理、资源文件管理等功能。为所有的用户提供单点登录功能。应用RBAC(基于角色的访问控制策略),设计了一套角色结构与访问规则,以便快速地对用户进行权限授予与权限回收,高效地管理用户与控制访问权限。登录方面,应用基于经纪人的单点登录模型,使用Session作为Ticket认证设计了单点登录功能,方便用户访问多个平台服务的内容,在经过首次身份认证之后可以避免累赘的重复登录。智能硬件管理C/S子系统为用户提供智能硬件数据上传与数据查询共享功能。硬件与服务器之间通过智能手机进行通讯,进而硬件与云端服务器进行数据交互。本系统基于WAMP的Web应用程序平台实现了上述功能。通过ThinkPHP的Web应用开发框架实现MVC和AOP(面向切面编程)的系统架构,将用户管理与硬件管理子系统集成封装为基本服务模块,以标准接口来实现模块间的通信,使其能被平台其他模块使用,达到较高的复用性。关键词:智能硬件;用户管理;访问控制;单点登录;AOP面向切面编程;ThinkPHP ;AbstractArtificial Neuron Network (ANN) simulates human beings brain function and build the network structure. Convolutional Neural Network (CNN) have many advantage, such as (2) This paper introduces the common pretreatment method of image, such as collecting image, normalization, graying and binarization. And apply these to the handwritten numeral recognition experiment and handwritten numerals writer recognition experiments.Keywords: Writer recognition;Convolutional Neural Network;Handwritten character recognition目 录摘 要IAbstractII目 录III第一章绪论11.1课题背景11.2课题意义11.3主要研究内容21.4论文结构3第二章相关基础知识和关键技术介绍52.1WAMP与ThinkPHP52.1.1PHP的设计理念及特点52.1.2WAMP的Web应用程序平台62.1.3ThinkPHP62.2面向切面编程(Aspect Oriented Programme)72.3访问控制策略82.4单点登录技术92.5本章小结10第三章用户管理与智能硬件管理子系统需求分析113.1系统设计概述113.1.1系统需求目标113.1.2系统需求描述113.2功能性需求123.2.1用户管理133.2.2角色权限管理143.2.3资源文件管理163.2.4智能硬件管理173.3非功能性需求183.4本章小结19第四章系统设计204.1系统结构设计204.2基于角色的用户管理模块设计224.2.1用户权限管理模型设计224.2.2类图设计234.3智能硬件管理模块设计244.3.1智能硬件数据交互架构设计244.3.2智能硬件数据交互模块分解254.4数据库设计264.4.1E-R图设计264.4.2数据库表设计274.5登录认证模块设计314.5.1基于Session的单点登录架构设计314.6本章小结32第五章系统实现335.1面向切面的软件架构实现335.1.1“获得用户角色”的Behavior 封装335.1.2“获得用户角色”的Behavior调用。345.2用户管理模块的实现355.3角色权限资源管理模块实现425.3.1角色管理模块425.3.2权限管理模块465.3.3资源管理模块505.4登录认证模块的实现525.4.1基于Session的单点登录实现525.4.2基于Session的单点登录实现演示555.5智能硬件管理模块的实现565.5.1智能硬件使用数据上传565.5.2智能硬件使用数据查询615.6本章总结61第六章系统测试626.1测试方法及测试环境626.2测试用例626.2.1用户管理模块测试626.2.2角色权限资源管理功能测试646.2.3智能硬件管理模块测试656.2.4单点登录模块测试666.3本章小结67总结与期望681.论文工作总结682.工作展望68参考文献70致谢71第一章 绪论第一章 绪论1.1 课题背景为了提高智能硬件的使用服务水平,需要建立一个智能硬件信息公共服务的平台,积极探索云端数据与智能硬件的全面深度融合,以信息化促进智能硬件服务水平的改善,充分发挥云端数据在智能硬件信息交互的支撑作用。该平台构建以产品为核心,通过产品线连接各硬件用户、销售方和经销商的业务网络,从而实现产品涉众通过网络进行数据分析,实现资源共享。建设覆盖全智能硬件产品和各级用户的公共信息服务平台,实现用户分级管理,落实智能硬件信息资源的共建共享,实现产品数据的信息化。目前智能硬件端存在如下问题:用户分布广泛,由于基础数据不统一、各系统彼此独立,信息相对封闭,数据共享机制尚未建立,各系统之间缺乏协调,导致信息相对封闭,基本上处于“信息孤岛”状态。由于产品间未实现数据贯通等原因,无法形成协同工作的配合,系统的重复利用性比较低。1.2 课题意义 由于该平台将会被多级的用户所使用(从销售方超级管理员、销售方普通管理员到生产商管理员、智能硬件基础用户),用户结构比较复杂、用户基数较大,因此组织结构的管理十分重要。另外,由于智能硬件云端平台中的信息资源对于这些不同级别的用户的保密性有所不同,负责不同工作内容的用户所要使用的服务也有所不同,因此对于用户访问平台权限的管理与控制同样十分重要。基于以上背景,本课题将研究该平台的用户管理与文件管理子系统,设计一套完善的机制,既方便用户的管理,又保证平台信息资源的安全性。这对于研究企业信息化管理、信息安全保护具有切实、重要的意义。本次毕业设计将开发该系统的用户管理与智能硬件管理子系统,包括其分析、设计与实现,包含以下重要功能:1. 用户管理:包括新增用户、编辑用户信息等功能2. 角色权限管理:提供管理员管理本用户权限的方法与机制,包括新增角色、编辑角色、删除角色;3. 用户认证登录:提供密码登录验证机制,保护系统安全4. 资源文件管理:提供管理员上传、编辑、删除产品资源等功能。5. 智能硬件管理:提供移动端数据上传和查看数据功能。1.3 主要研究内容 文本关键词汇及其解释如表1-1所示:表1-1本文术语表术语解 释ThinkphpThinkPHP是一个快速、兼容而且简单的轻量级的PHP开发框架,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。AOPAspect Oriented Programming, 面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。RBACRole Based Access Control,基于角色的访问控制,将用户的访问权限与“角色”绑定的新型访问控制策略。SSOSingle Sign On,单点登录,用户在一次登录之后,可以访问多个已互相信任的服务系统。Ticket票据,指用户登录时的认证凭证信息,一般是用户名、用户ID等,有了票据才可访问应用。Session一个终端用户与服务器之间通信的时间间隔,服务器端维持Session对象记录用户状态信息.管理员有权限进行机构管理、用户管理、角色管理、文件管理等操作的用户用户泛指使用账户访问教育信息公共服务平台的访问者登录用户通过输入用户名和密码验证登录,访问教育信息公共服务平台注销用户注销个人登录认证,退出系统退出用户直接关闭浏览器,退出系统用户管理管理员进行查看用户列表、新增用户、修改用户、删除用户等操作角色管理管理员进行查看角色列表、创建角色、修改角色、删除角色等操作智能硬件管理用户通过移动端进行与云端的数据同步操作本文主要研究智能硬件云端平台的用户管理与智能硬件管理子系统的设计与实现。从软件工程的生命周期来叙述,将覆盖该子系统的需求分析、系统设计、系统实现、系统测试等各个阶段,本文将会给出该子系统在以上各个阶段的详细记录。技术应用方面,在系统架构上本文将涉及AOP(面向切面编程)以及WAMP组合ThinkPHP应用程序开发框架。在用户管理上将侧重研究用户的访问权限问题,探讨基于角色的用户访问控制;该系统是一个Web应用系统,本文将涉及其认证登录问题,平衡易用性与安全性,实现基于Session的单点登录。智能硬件管理上主要研究服务器如何跟移动端进行准确的数据交互,将数据信息合理地分配给用户角色。本次Web应用的开发在Microsoft Windows 7 操作系统上完成,使用Eclipse开发工具,apache2.4.9服务器,数据库采用 mysql5.6.17。图1-1系统部署图本系统的部署如图1-1所示:Pc客户端运行环境的要求:Windows操作系统,浏览器IE6.0或以上。服务器端运行环境要求:搭建wamp环境,Windows操作系统,apache2.4.9服务器,mysql5.6.17或以上数据库,php5.5或以上。1.4 论文结构本论文将分为六章,各章的安排如下:第一章介绍本课题研究背景以及课题意义,同时大致地描述了本项目将要设计与实现的功能,以及将会采用的技术方案。第二章介绍本次课题研究涉及的关键技术知识,架构上包括ThinkPHP与AOP(面向切面编程),子模块技术包括RBAC(基于角色的访问控制)、单点登录技术。第三章详细阐述用户管理与智能硬件管理子系统的需求分析,包括功能性描述(将会用具体的用例来定义)以及非功能性需求。第四章阐述该子系统的设计,包括应用ThinkPHP、AOP的架构设计,分模块包括用户管理、角色管理、权限资源文件管理、智能硬件管理的模块设计。第五章叙述关键技术在本次研究中如何得被应用,系统如何实现第六章是对本次开发的系统进行测试,记录了详细的测试用例以及测试结果。3第二章 相关基础知识和关键技术介绍第二章 相关基础知识和关键技术介绍2.1 WAMP与ThinkPHP2.1.1 PHP的设计理念及特点PHP是一种通用开源的脚本语言,PHP 的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。PHP的核心架构如下图:图2-1 php核心架构如图所示:php可分为4层体系:1.Zend引擎:Zend整体是用纯c实现,是php的内核部分,它将php代码编译为可执行opcode的处理并实现相应的处理方法、实现了基本的数据结构、内存分配及管理、提供了供外部调用的api方法。2.Extensions:围绕着zend引擎,extensions通过组件式的方式提供各种基础服务,内置函数、标准库等都是通过extension来实现,用户也可以根据需要实现自己的extension以达到功能扩展、性能优化等目的。3.Sapi:Sapi全称是Server Application Programming Interface,也就是服务端应用编程接口,sapi通过一系列钩子函数,使得php可以和外部进行交互数据,通过sapi成功的将php本身和上层应用解耦隔离。4.上层应用:这就是编写的php程序,通过不同的sapi方式得到各种各样的应用模式,如通过webserver实现web应用、在命令行下以脚本方式运行等等。2.1.2 WAMP的Web应用程序平台WAMP是指在Windows系统上集成Apache、MySQL和PHP的环境,可以快速搭建配置Web服务器。WAMP平台由几个组件组成,呈分层结构。每一层都提供了整个软件的一个关键部分:windows:处在最低层,提供操作系统。Apache:次低层是,它是一个 Web 服务器。Apache 提供可让用户获得 Web 页面的一款稳定的、支持关键任务的服务器,PHP 组件实际上是在 Apache 中,动态页面可以通过 Apache 和 PHP 创建。MySQL:提供数据存储端。是一个非常强大的、适合运行大型复杂站点的数据库。在 Web 应用程序中,所有数据、产品、帐户和其他类型的信息都存放在这个数据库中,实现数据的持久化,php动态页面通过服务器使用SQL 语言可以很容易地查询这些信息。PHP:可以将 WAMP 系统所有其他的组件粘合在一起。2.1.3 ThinkPHPThinkPHP是一个轻量级PHP开发框架,适用于简化企业级应用开发和敏捷WEB应用开发。遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。ThinkPHP中的MVC分层大致体现在: 模型(M):模型的定义由Model类来完成,负责存储后台数据。控制器(C):应用控制器(核心控制器App类)和Action控制器都承担了控制器的角色,Action控制器完成业务过程控制,而应用控制器负责调度控制。视图(V):由View类和模板文件组成,模板做到了100分离,可以独立预览和制作。图2-2 MVC架构ThinkPHP引入了CBD(核心Core+行为Behavior+驱动Driver)架构模式,提供了面向切面编程的功能,可以在行为层(Behavior)添加“行为”逻辑,在应用层(Action)添加自己的标签位置来调用“行为”。而标签位置相当于AOP概念中的“切面”,行为都是围绕这个“切面”来进行编程。AOP的概念将在下一节中详细说明。2.2 面向切面编程(Aspect Oriented Programme)面向切面编程(Aspect Oriented Programming,AOP)是一种编程思想。AOP主要实现的目的是针对业务处理过程中的具有相同功能的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。AOP的编程,就是把我们在某个方面的功能提出来与一批对象进行隔离,这样与一批对象之间降低了耦合性,可以就某个功能进行编程。例如应用程序有迭代的需求,在AOP的架构下就只需要更改对应的功能,而不用再所有调用到该功能的地方都进行更改代码。有了 AOP,我们可以定义应用于跨模块的、彼此不同的对象模型的交叉关系。AOP 同时还可以让我们层次化功能性而不是嵌入功能性,从而使得代码有更好的可读性和易于维护。AOP包含以下几个基本概念:aspect(切面):实现了cross-cutting功能,是针对切面的模块。jointpoint(连接点):连接点是切面插入应用程序的地方,该点能被方法调用,而且也会被抛出意外。连接点是应用程序提供给切面插入的地方,可以添加新的方法。advice(处理逻辑):advice是我们切面功能的实现,它通知程序新的行为。pointcut(切点):pointcut可以控制你把哪些advice应用于jointpoint上去。图2-3 AOP基本概念关系图2.3 访问控制策略访问控制的定义是根据用户被预定义的权限来限制用户对某些信息的的访问。访问控制的功能可以分成以下三种类型叙述:1.防止非法的主体进入被保护的系统;2.允许合法的主体进入受保护的系统;3.防止合法的主体进行未授权的访问。基于角色的访问控制策略RBACRBAC的主要目的是为了防止用户无限制地访问系统资源。为了达到目的,这个模型引入了角色的概念,同时把用户与角色联系起来。访问的权限与角色相关联。角色是企业为了组织活动使用的典型概念。因为我们可以把公司中的安全需求与角色和责任连接起来,所以RBAC可以应用于企业的安全模型。结合智能硬件云端服务器平台的当前应用情况,更适合于应用RBAC的策略。如图2-4所示,RBAC由四个基本要素构成,即用户(User)、角色(Role)、会话(Session)、许可权(Permission)。在一个系统中,定义并存在着多个用户、角色,同时对每个角色设置多个授权关系,称之为访问许可权的授予(Permission Assignment)。在RBAC中,用户和角色,角色和权限的关系是多对多的关系。通过定义角色分离了用户与权限之间的直接关联,方便管理员进行人员管理和授权。授权机制可以视之为在系统内通过特定的操作(Action)将主体与客体联系起来,语义可以是允许读、允许修改等。在一个系统中,根据系统的不同,客体的种类也不同,如在操作系统中考虑的客体一般是文件、目录、端口、设备等,操作则为读取、写入、打开、关闭和运行等。RBAC模型中授权就是将这些客体的访问权限在可靠的控制下连带角色所需要的操作一起提供给那些角色所代表的用户。通过授权的管理机制,可以给一个角色以多个访问许可权,而一个访问许可权也可以赋予多个角色,同时一个用户可以扮演多个角色,一个角色也可以接纳多个用户。图2-4 RBAC模型在一个RBAC模型的系统中,每个用户进入系统得到自己的控制时,就得到了一个会话。每个会话是动态产生的,从属于一个用户。只要静态定义过这些角色与该用户的关系,会话根据用户的要求负责将它所代表的用户映射到多个角色中去。一个会话可能激活的角色是用户的全部角色的一个子集,对于用户而言,在一个会话内可获得全部被激活的角色所代表的访问许可权。角色和会话的设置带来的好处是容易实施最小特权原则(Least-Privilege Principle)。所谓最小特权原则是将超级用户的所有特权分解成一组细粒度的特权子集,定义成不同的“角色”,分别赋予不同的用户,每个用户仅拥有完成其工作所必须的最小特权,避免了超级用户的误操作或其身份被假冒后而产生的安全隐患。2.4 单点登录技术单点登录(SSO,Single Sign On)技术是目前被广泛应用于企业应用中的服务解决方案,其定义是在互相信任的应用程序之间,用户只需要进行一次登录,就可以访问全部的应用程序。相较于传统的登录方式,单点登录有以下两个优势:1.对用户而言减少了登录认证的次数,免去在反复输入用户信息进行用户验证的累赘步骤,这对于用户体验的提升是不言而喻的;2.对系统而言,各系统之间通过信任关系来达成身份的自动认证,减少用户信息的管理成本。总而言之,单点登录技术对于提高系统的易用性、安全性有重要意义,但对于设计、开发上的难度上相对提高。目前单点登录的架构模型大致可以分为以下几类:基于经纪人(Broker Based)的模型、基于代理的模型、基于网关的模型、基于令牌(Token Based)的模型。从可实施性、管理型、安全性和易用性等维度综合考量各种模型的优缺点,结合智能硬件云端服务器平台的当前应用情况,本文采用基于经纪人的模型,设计了该平台的用户身份认证模块。基于经纪人的单点登录模型维护了一个专门用于管理用户账号以及用户身份认证的服务器。该模型可以描述成三个部分:客户端、认证服务器、应用服务器。认证服务器即本模型中的“经纪人”,用户访问过程中的身份认证事务都由认证服务器来完成。基于经纪人的单点登录模型工作流程如下:1.用户访问应用服务器前被定位至认证服务器进行验证登录;2.认证服务器完成身份验证,并且维护用户本次访问过程中的登录信息;3.应用服务器到认证服务器获得用户的登录信息;4用户使用该登录信息访问应用服务器。基于经纪人的典型应用系统为美国麻省理工大学的Kerberos认证系统。基于经纪人的单点登录模型中一个关键概念是Ticket.Ticket是用户记录用户登录状态的数据结构。目前的Ticket实现机制可以分为Session与Cookie两类。Cookie保存于客户端,而Session则由服务器端维护,客户端仅维护相对应的 SessionID来实现标识。2.5 本章小结本章介绍了本文研究的“智能硬件云端服务器平台”所涉及的关键知识:包括开发框架,架构使用的PHP与ThinkPHP以及面向切面编程(AOP);访问控制策略,着重介绍本文将会用到的基于角色的访问控制(RBAC);单点登录技术着重介绍基于经纪人的模型,以及认证票据ticket的概念。11第三章 用户管理与智能硬件管理子系统需求分析第三章 用户管理与智能硬件管理子系统需求分析3.1 系统设计概述3.1.1 系统需求目标为了提高智能硬件的使用服务水平,需要建立一个智能硬件信息公共服务的平台。该平台构建了以智能硬件产品为核心,通过产品线连接各硬件用户、销售方和经销商的业务网络,从而实现产品涉众通过网络进行数据分析,实现资源共享。由于该平台涉及多机构的用户,用户基数较大,用户权限关系复杂而且变动大。需要访问控制的资源多,分布广。对资源的操作复杂。既要保证平台信息资源的安全性,同时又要保证系统的灵活性与易访问性。为此,本文设计并实现用户管理与智能硬件管理子系统,以满足上述需求。3.1.2 系统需求描述通过对“智能硬件服务器端应用”的调研,总结出“用户管理与智能硬件管理”子系统可以分为以下几个子模块:用户管理、角色权限管理、资源文件管理、智能硬件管理、单点登录。表3-1中给出了对用户的每一个功能需求的描述。表3-1 用户需求说明表业务需求需求优先级模块名称功能描述查看用户列表1用户管理管理员查看系统中所有的用户修改用户1用户管理管理员修改某个用户的信息查看角色列表1角色权限管理管理员查看全部角色创建角色1角色权限管理管理员创建一个新的角色修改角色1角色权限管理管理员修改某一个角色的权限删除角色1角色权限管理管理员删除已存在的角色实体创建权限1角色权限管理管理员创建一个新的权限修改权限1角色权限管理管理员修改某一个权限的资源文件的操作权限删除权限1角色权限管理管理员删除已存在的权限实体查看文件列表1资源文件管理管理员、用户查看已存在的资源文件新增资源文件1资源文件管理管理员新增资源文件文件删除资源文件1资源文件管理管理员删除已存在的资源文件数据上传1智能硬件管理服务器接收移动端上传的硬件数据查看数据1智能硬件管理用户查看智能硬件数据登录1单点登录用户通过输入用户名和密码登录网站注册1单点登录用户通过输入用户名和密码注册账号注销1单点登录用户通过注销来退出登录状态上表列出的各项业务需求的模块从属之间的关系如图3-1所示:图3-1功能模块关系图 3.2 功能性需求针对上一节所描述的业务需求,本系统的用例图如图3-2所示:图3-2 用户管理与智能硬件管理子系统用例图本系统各个用例的说明表如表3-2 至3-15所示。3.2.1 用户管理表 3-2 查看用户列表用例表用例名称:查看用户列表用例ID:001参与者:管理员用例说明:管理员查看已存在的所有用户前置条件:管理员已登录基本事件流:1. 管理员点击进入用户管理界面2. 系统以“序号”为排序依据列出用户列表其它事件流:无异常事件流:无后置条件:无表3-3修改用户用例表用例名称:修改用户信息用例ID:002参与者:管理员用例说明:管理员修改用户的角色等信息前置条件:管理员已登录,存在一名或以上用户基本事件流:1. 管理员点击进入用户管理界面2. 机构管路员点击其中一名用户的分配按钮,系统返该用户的用户角色信息页面3. 管理员修改用户的角色等信息,点击保存4. 系统返回修改后该用户的用户角色信息页面其它事件流:无异常事件流:无后置条件:无3.2.2 角色权限管理表3-4 查看角色列表用例表用例名称:查看角色列表用例ID:003参与者:管理员用例说明:管理员查看已存在的所有角色前置条件:管理员已登录基本事件流:1. 管理员点击进入角色权限管理界面2. 系统以“序号”为排序依据列出角色列表其它事件流:无异常事件流:无后置条件:无表3-5 创建角色用例表用例名称:创建角色用例ID:004参与者:管理员用例说明:管理员创建新的角色前置条件:管理员已登录基本事件流:1. 管理员点击进入角色管理页面2. 管理员点击“创建角色”按钮3. 管理员输入角色名称,点击“创建”按钮4. 系统返回保存结果其它事件流:无异常事件流:无后置条件:无表3-6修改角色用例表用例名称:修改角色用例ID:005参与者:管理员用例说明:管理员修改已存在角色的角色权限前置条件:管理员已登录,角色列表内有1个或以上“角色”基本事件流:1. 管理员点击进入角色管理页面2. 机构管理员点击某一角色的“分配”按钮,系统返回其角色-权限页面3. 管理员修改角色添加或取消某些权限4. 管理员点击“保存”按钮5. 系统返回保存成功与否的提示信息其它事件流:无异常事件流:无后置条件:无表3-7 查看权限列表用例表用例名称:查看权限列表用例ID:006参与者:管理员用例说明:管理员查看已存在的所有权限前置条件:管理员已登录基本事件流:1. 管理员点击进入角色权限管理界面2. 系统以“序号”为排序依据列出权限列表其它事件流:无异常事件流:无后置条件:无表3-8 创建权限用例表用例名称:创建权限用例ID:007参与者:管理员用例说明:管理员创建新的权限前置条件:管理员已登录基本事件流:1. 管理员点击进入角色权限管理页面2. 管理员点击“创建权限”按钮3. 管理员输入权限名称,点击“创建”按钮4. 系统返回保存结果其它事件流:无异常事件流:无后置条件:无表3-9修改权限用例表用例名称:修改权限用例ID:008参与者:管理员用例说明:管理员修改已存在权限的权限操作前置条件:管理员已登录,权限列表内有1个或以上“权限”基本事件流:1. 管理员点击进入权限管理页面2. 机构管理员点击某一权限的“分配”按钮,系统返回其权限-资源页面3. 管理员修改权限添加或取消某些资源4. 管理员点击“保存”按钮5. 系统返回保存成功与否的提示信息其它事件流:无异常事件流:无后置条件:无3.2.3 资源文件管理表3-10 查看资源列表用例表用例名称:查看资源列表用例ID:009参与者:管理员用例说明:管理员查看已存在的所有资源前置条件:管理员已登录基本事件流:1. 管理员点击进入资源管理界面2. 系统以“序号”为排序依据列出资源列表其它事件流:无异常事件流:无后置条件:无表3-11 创建资源用例表用例名称:创建资源用例ID:010参与者:管理员用例说明:管理员创建新的资源前置条件:管理员已登录基本事件流:1. 管理员点击进入资源管理页面2. 管理员点击“创建资源”按钮3. 管理员输入资源名称,点击“创建”按钮4. 系统返回保存结果其它事件流:无异常事件流:无后置条件:无表3-12删除权限用例表用例名称:删除资源用例ID:011参与者:管理员用例说明:管理员修改已存在资源的资源操作前置条件:管理员已登录,资源列表内有1个或以上“资源”基本事件流:1. 管理员点击进入资源管理页面2. 机构管理员点击某一资源的“删除”按钮,系统返回其资源列表页面3. 系统返回保存成功与否的提示信息其它事件流:无异常事件流:无后置条件:无3.2.4 智能硬件管理表3-13 数据上传用例表用例名称:数据上传用例ID:012参与者:产品用户用例说明:产品用户上传移动端中的智能硬件使用数据前置条件:产品用户已拥有云端账号且拥有硬件使用数据并将其上传基本事件流:1. 云端服务器接收到移动端的上传数据请求,处理数据后保存到云端的数据库中。2. 服务器返回结果的操作码到移动端其它事件流:无异常事件流:无后置条件:无表3-14 查看硬件产品列表用例表用例名称:查看硬件产品列表用例ID:013参与者:产品用户用例说明:产品用户查看属于自己的所有硬件产品前置条件:产品用户已登录基本事件流:1. 用户点击进入智能硬件管理界面2. 系统以“序号”为排序依据列出资源列表其它事件流:无异常事件流:无后置条件:无表3-15 查看硬件产品数据列表用例表用例名称:查看硬件产品数据列表用例ID:014参与者:产品用户用例说明:产品用户查看属于自己的其中一个硬件产品的所有使用数据前置条件:产品用户已登录基本事件流:1. 用户点击进入智能硬件管理界面2. 用户点击某一硬件的“查看”按钮,系统返回其使用数据列表页面3. 系统以“序号”为排序依据列出该硬件产品的使用数据列表其它事件流:无异常事件流:无后置条件:无3.3 非功能性需求与本文系统相关的非功能性需求包括运行期和开发期两个质量属性方面。本文以这些质量属性驱动本文的软件体系结构设计。提出了基于AOP的系统和基于RBAC的访问控制架构系统实现方案。1.运行期的质量属性(1)性能。性能是指软件系统及时提供相应服务的能力。具体而言,性能包括速度、吞吐量和持续高速性这三方面的要求。(2)安全性。指软件系统同时兼顾向合法用户提供服务,又阻止非授权使用功能的能力。(3)易用性。指软件系统易于使用的程度。(4)可用性。可用性与易用性不相同。可用性指系统长时间无故障运行的能力。(5)可伸缩性。指当用户增加时,软件系统维持高服务质量的能力。(6)互操作性。指本软件系统与其他系统交换数据和相互调用服务的难易程度。(7)可靠性。软件系统在一定时间内无故障运行的能力。(8)健壮性。也称容错性。是指软件系统在异常情况仍能够正常运行的能力。2、开发期的质量属性(1)易理解性。是指系统设计能被开发人员理解的难易程度。(2)可扩展性。为适应新需求或者需求变化,为软件增加功能的能力。有些时候,称之为灵活性。(3)可重用性。重用软件系统或其中一部分的能力的难易程度。(4)可测试性。对软件测试以证明其满足需求规约的难易程度。在实际的项目中,主要指进行单元测试等难易程度。(5)可维护性。修改Bug,增加功能,提高质量属性。(6)可移植性。将软件系统从一个运行环境转移到另一个不同的运行环境的难易程度。在企业计算环境中,互操作性是主要关注的问题。企业网中聚集了以前属于各个部门和分部的计算资源,目的是允许整个网上的用户访问各个系统上的数据。3.4 本章小结本章描述了在“智能硬件云服务器”的背景下,开发用户管理与智能硬件管理子系统的详细需求分析。本章第一节给出了目前该平台的情况,同时给出了整体的系统需求描述。第二节描述了功能性需求,以具体的用例的形式描述了不同用户在该系统中所需要的操作。第三节从开发期到运行期不同的角度考量本系统,给出了非功能需求,阐述了具体功能以外的需求。经过本章的分析,提出了开发用户管理与智能硬件管理的不同维度的要求,意在指导该系统的设计与实现。19第四章 系统设计第四章 系统设计4.1 系统结构设计该系统采用MVC(模型-视图-控制器)结合AOP(面向切面编程)的架构系统,利用了thinkphp框架的多层MVC架构控制前台业务逻辑处理,CBD(核心Core+行为Behavior+驱动Driver)的行为控制整合后台提供的服务,MVC通过行为标签调用后台Behavior,完成为用户所提供的功能。图 4-1 智能硬件云端服务器 用户管理与智能硬件管理子系统系统框架图用户管理作为智能硬件云端服务器的一个子服务,作用一是用于维护整个教育机构的结构信息与用户信息,二是用于管理这些用户对整个平台的控制访问。如前文所说,该智能硬件云端服务器是以产品为核心,通过产品线连接各硬件用户、销售方和经销商的业务网络。在这样的应用背景下,设计该平台的用户管理系统必须要考虑模块之间的复用性。因此该系统采用AOP(面向切面编程)的架构,将功能模块作为“切面”来开发,将模块间共用的功能集成到CBD层的“行为”中,以便这些行为能被平台中其他子系统所使用。该架构大致可以分为四个部分:1.View视图层视图层是直接与用户进行数据交互的组件,通过调用Action层中各个模块的功能,实现查询数据及更新数据。ThinkPHP的框架提供了U方法,用于URL的动态生成,方便将View层的Tpl视图模板绑定到Action层的具体模块中的功能,确保项目在移植过程中不受环境的影响。2.Action层Action层按系统功能模块划分,功能模块即系统所实现的功能集合,每个功能模块维护各自的服务执行流程以及服务操作的数据。例角色管理维护了角色管理所包含的操作逻辑以及角色信息数据库,在角色管理中进行功能的开发或者优化都只需要在本模块中进行。Action层更加关注业务逻辑的流程,具体的实现方法通过调用CBD层中的Behavior实现,Action只需要知道这些Behavior所提供的标签接口,通过标签调用的方法使用这些功能。例如角色管理模块提供了角色权限查询服务,则仅需要利用接口调用对应Behavior,给出定义的查询参数,Behavior即可以用规定的格式返回查询的结果。3.CBD层CBD层是整个平台的核心,提供所有后台服务,定义了核心功能的具体实现方法。行为既可以独立调用,也可以绑定到某个标签中进行侦听,在Action层的重要位置设置了标签用以标记,当应用程序运行到这个标签的时候,就会被拦截下来,统一执行相关的行为,相当于AOP编程中的“切面”,给某一个标签绑定相关行为就成了一种类AOP编程的思想。4.Model层Model层定义了系统具体的数据模型实体,每一个模型里定义了具体字段及与数据库字段的映射。ThinkPHP的框架提供了M方法,CBD层通过M方法调用Model,动态生成SQL语句,防止了SQL语句的注入,提高了系统的安全性。4.2 基于角色的用户管理模块设计本节包含用户权限管理模型,设计,类图设计结果。4.2.1 用户权限管理模型设计如第一章所说,该智能硬件服务平台的用户管理问题中,对于用户访问平台权限的管理与控制十分的重要。访问控制控制的主要目的是防止用户无限制地访问平台内的信息,通过这样的机制来保证平台内信息的安全性。但是又考虑到该平台的用结构相对复杂、用户基数较大等因素,如果采用传统的访问控制模型,将可能出现的问题是:超级管理员需要单独管理平台内全部用户的每一项权限,不堪重负。为了解决这个问题,系统引入了RBAC的概念。RBAC实现了这样一种权限控制体制:利用角色这一个中间元素,把细粒度的权限与角色关联起来,再将角色指派给特定的用户,因此用户便可以获得角色内特定的权限,对平台进行访问。角色是在复杂的机构组织中为了组织事务所使用的典型概念,因此我们将机构组织中的安全需求与角色责任连接起来,达到规范、方便管理的目的,保证机构组织的安全性。图4-2基于角色的用户权限管理模型结构图图4-2所示的RBAC模型可以分以下几点描述:1. 权限:操作与要操作的资源对象绑定,定义为权限,描述了获得该权限的角色的权力与责任,权限是保证信息资源安全性的一个重要元素,通过规定权限,资源便有了最基本的访问控制。2. 角色与权限分配:角色是产品中一组特定权限的集合。角色与权限是多对多的关系,由产品管理员管理权限分配,将特定的权限分配给特定的角色。每个产品都有一组本产品的权限列表,仅本产品管理员可见。在“角色权限”列表中,以“角色”为列维度,以“权限”为行维度,映射成对应的二维表,则二维表中每一个元素决定了某角色是否具备某权限。二维表中每一个元素的值由机构管理员赋予。3. 用户与角色指派:用户从属于特定的产品,受该产品产品管理员的管理。角色指派操作模型化了用户能够扮演的角色,由本产品的产品管理员进行操作,在创建用户时指定用户的角色,或者编辑用户时修改用户的角色。在本系统中,用户与角色为多对一关系,即一个角色可能被指派给一个或多个的用户。4. 会话:RBAC模型包含了一系列的会话,每个会话映射在一个用户与其角色之间。当用户访问平台,建立一个会话时,他们便激活他们被指派的角色。每个会话与单独的用户关联,尽管每个用户可以参与一或多个会话。提供给用户的权限是那些被指派给在用户会话中激活的角色的权限,独立于其他系统用户建立的会话。5. 约束:约束描述了将权限分配给角色时、角色被指派给用户时以及Session激活用户角色时的应当遵守的限制条件。4.2.2 类图设计本系统的用户管理类图如4-3所示:图4-3 基于角色的用户管理类图4.3 智能硬件管理模块设计4.3.1 智能硬件数据交互架构设计图4-4 智能硬件数据交互设计架构图如图 4-4所示,智能硬件云服务器不会直接与智能硬件进行数据交互,而是通过移动端app先收集智能硬件使用数据,再通过标准的HTTP协议,以Json数据格式进行数据交互,移动端和服务器形成了C/S的架构。具体功能分为数据上传和查询数据两个模块:1.数据上传是智能硬件管理子系统的核心功能,是云端获得智能硬件数据的重要渠道。在用户使用了智能硬件后,使用数据首先保存在移动端的数据库中,在用户使用云端账号登录到移动端的时候,移动端检索出尚未和云端同步的智能硬件使用数据,并上传数据到云端中进行记录。同时用户的基本信息,如用户等级、用户金币数和其他用户信息也会上传到云端进行数据同步。2.查询智能硬件数据是连接用户管理模块与智能硬件管理模块的重要桥梁。在用户上传了智能硬件的使用数据之后,智能硬件云端服务器的多级用户都能通过各自不同的用户身份,在云端查询到自己关注的智能硬件使用数据。4.3.2 智能硬件数据交互模块分解由于该智能硬件产品的主要用户是年龄较小的宝宝用户,而云端平台的账号注册方式是采用电话号码的注册方式,不适用于宝宝,因此通常情况下由家长注册云端账号并进行数据交互,并将宝宝用户和家长用户划分到同一个用户组。用户上传数据时由家长用户上传,并将智能硬件与用户所在的用户组发生关联,这样只需家庭组内一个用户上传数据,其他用户都能够从云端共享家庭组内的智能硬件数据。表 4-1 数据上传模块IPO表模块名称数据上传使用者移动端与云端服务器输入部分(I)1. 移动端发送json格式的智能硬件数据请求到云端服务器处理部分(P)1. 云端服务器处理请求,查询用户所在的用户组;2. 将智能硬件的数据存储到家庭组内对应的智能硬件表中,云端服务器返回认证消息回移动端数据同步是否成

温馨提示

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

评论

0/150

提交评论