毕业论文范文 (3)

时间:2024.4.20

毕业论文范文3

打印 保存

文本复制检测报告单

№:ADBD2013R_201304191xxxxxxxxxxxx223521401327455664

检测文献

作 者

检测范围 日常产品管理及服务监控 中国学术期刊网络出版总库

中国博士学位论文全文数据库/中国优秀硕士学位论文全文数据库

中国重要会议论文全文数据库

中国重要报纸全文数据库

中国专利全文数据库

大学生论文联合比对库

互联网资源

英文数据库(涵盖期刊、博硕、会议的英文数据以及德国Springer、英国Taylor&Francis 期刊数据库等)

港澳台学术文献库

优先出版文献库

时间范围

检测时间

总文字复制比:0.2%

去除引用:0.2%

去除本人:0.2% 重合字数:33 文献总字数:14306 1900-01-01 至 2013-04-19 2013-04-19 22:35:21

毕业论文范文3

毕业论文范文3

毕业论文范文3

毕业论文范文3

( 表格 ) ( 观点 )

( 注释: 无问题部分 文字复制比部引用部分 ) 分

日常产品管理及服务监控 总文字复制比:0.2%(33) 总字数:14306

1 ·Python语言在晕渲制作中的应用

郭贵洲;余磊;张寒梅; - 《地理空间信息》- 2012-08-28

0.2% 是否引用:否

2 ·LAMOST一维光谱自动处理

韦鹏(导师:潘景昌;罗阿理) - 《山东大学硕士论文》- 2011-05-21

0.2% 是否引用:否

毕业论文(设计) 日常产品管理及服务监控

Manage Product and Server Monitoring System 完成日期 20xx年 04月.日

吉林大学珠海学院本科毕业论文(设计)开题报告 日常产品管理及服务器监控 摘要

随着科技的发展,移动互联网已经开始走进我们的生活。中小型移动互联网企业将变得越来越多,移动互联网产品也会随之越来越多。每个产品从构思到形成产品都有一套流程,每个产品的流程又有差异。所以很多的企业内部都有自己的一套规范和工作流程。一个好的工作平台,能够提高工作的效率,能够尽可能的减少重复性的操作。也能够减少中间环节出现的错误,所以,一个好的产品的管理流程是对于企业来讲是非常重要的。

本次设计只要是针对企业的一些流程开发的一套管理产品的工作流程。主要根据公司流程的一些特点,将部分的手工操作以转化成自动化的操作。设计上主要讲述了从产品设计到形成到发布的一系列工作的设计思路。基本满足公司的需求,并且能够简化日常的工作。

关键词:产品管理;PHP;MySql;Shell;Python Manage Product and Server Monitoring System Abstract

With the development of technology, the Internet has come into our lives. There are more small and medium-sized Internet business enterprises and more Internet products as well. From a simple idea to product formation, each product has a set of process, with differences in one and another. That’s why a lot of business enterprises have their own s

毕业论文范文3

et of norms and workflow. A good work platform can help to improve the work efficiency, while to reduce repeatability of operation as much as possible. It also reduces the errors of the intermediate parts. Thus, a good product management process is very important for business enterprises.

The design is aimed at a set of management products in the process of workflow development for the enterprise. According to the features of the business enterprise, mainly, it is to transform the partial manual operation into automatic operation. The design focuses on the ideas of a series of working processes from product design to product formation and final product release, which not only meets the needs of the business enterprise, but also simplifies the daily work.

Keywords:Product Management;PHP;MySql;Shell;Python

目录

1 绪论………………………1

1.1 研究背景 ………………………1

1.2 数据库介绍 ………………………1

1.2.1 MYSQL概述………………………2

1.2.2 LDAP概述………………………2

1.3 开发环境简介 ………………………2

1.3.1 语言的选择………………………2

1.3.2 开发平台………………………3

1.4 服务端与客户端简介 ………………………3

1.4.1 服务器端基础环境………………………3

1.4.2 客户端使用须知………………………3

1.4.3 文件夹组织结构………………………3

1.4.4 服务器部署图………………………5

2需求分析………………………6

2.1 需求分析 ………………………6

2.2 系统功能分析图 ………………………7

3 总体设计………………………8

3.1 系统目标 ………………………8

3.2 数据库设计 ………………………8

3.2.1 系统数据分析………………………8

3.2.2 系统E-R图………………………9

3.2 数据字典 ………………………10

3.2.1 申请构建表………………………10

3.2.2 构建完成………………………10

3.2.3 申请测试………………………11

3.2.4 渠道………………………11

3.2.5 用户………………………11

3.2.6 监控………………………12

4设计思想与实现………………………13

4.1 用户登录模块 ………………………13

4.2 菜单 ………………………15

4.3 申请构建页面 ………………………16

4.4 构建列表 ………………………19

4.5 构建完成页面 ………………………21

4.6 部署页面 ………………………22

4.7邮件表格 ………………………23

4.8传包发布页面 ………………………24

4.9监控图 ………………………25

5 系统测试与运行………………………27

5.1 系统验收测试 ………………………27

5.2 系统运行 ………………………28

5.3 系统的维护 ………………………28

6 结束语………………………29

参考文献………………………30

致谢………………………31

1 绪论

1.1 研究背景

移动互联网在最近几年的发展非常的迅速,手机成了人与人之间沟通和交流的重要工具之一,移动应用产品也随之越来越多,移动互联网公司之间的竞争也也来越激烈。产品要想获得用户的信赖和肯定,就需要不断的完善和创新。对于一个企业来说,有没有竞争力,关键在于有没有一个团结,高效的一个团队。而对于一个团队来将,工具是非常重要的。就像Facebook,特别强调团队内部工具的重要性,好的工具能让效率事半功倍,能更快的推出产品,赢得先机。

工欲善其事,必先利其器。自动化工具在IT行业的需求越来越大,单纯依靠人力劳动是不可取的。一个大型企业的生产开发线会有许许多多的程序,如果没有一套自动化生产工具,那需要付出多少的人力劳动。例如Google的服务器有成千上万台,如果他们的运维人员没有一套工具去操作,而一个个ssh连接到服务器去操作,那是一件多么耗时的体力活啊。实现运维自动化,不依赖手工操作,这将会有效的提高工作效率,降低企业成本。也不会使IT部门觉得重复的做一件事情,疲惫不堪。而有更多的时间和精力投入到其他事情中去。

在参加学校生产实习的过程中,我加深对IT企业的认识。工作的过程也发现,我们需要根据工作的需要,写一些脚本去协助我们更好的完成工作。例如去统计数台服务器一周的登陆人数,一个个的去数可以完成任务,但是这个会比较耗时间,而且很大的可能会数错。编写脚本去统计的话就会有效的节省时间,得到的数据也比较可靠。

对于监控方面,服务器的运行关系很重要,有一个比较直观的数据展示能让我们更好的了解服务器的状态,尽量减少我们工作的时候服务器宕机。并且有助于我们更好的了解服务器的性能,充分利用服务器。监控在这里面只是其中很小的一部分,其实是需要建立一套完整的体系的,常用的监控方案有好几种,这里只是做一个尝试,之后回独立做一个有关这方面的一个系统。

根据以上的问题。为了简化工作流程,提高工作效率和人工操作的失误,决定开发一套关于产品的管理流程,方便对产品和服务的管理,规范管理流程。

1.2 数据库介绍

数据库是一门重要的计算机技术,数据的存储及管理是一个企业的核心。企业对于大数据的处理也越来越重视,很多时候都是数据驱动应用,数据能够说明用户的需求。本设计的数据存储采用Mysql+LDAP。

1.2.1 MYSQL概述

MYSQL容易入手。该系统使用它来存储数据,主要是考虑到数据量并不大,而且本系统主要以linux作为服务器,SQL-Server只能运行在windows系统上面。而与Oracle相比较,oracle的成本则比较高,因为oracle并非免费版本,oracle在处理大数据方面具备优势,但是对于这种小数据量来说,oracle的优势并不能得到体现。所以我们就选择了mysql。

1.2.2 LDAP概述

LDAP是Lightweight Directory Access Protocol的简称,是数据库的一种,但是他和关系数据库不一样,他是以树状结构存储数据的,这种目录组织结构经常用来存储用户信息,可以包含邮件,电话,家庭住址等等。LDAP目录中,每一条条目都有一个唯一的DN。它是由基础的DN和CN组成的。

例如:基础的DN为dc=jluzh,dc=com,那么该学校里的某学生可以这么设置:cn=mou,ou=student,dc=jluzh,dc=com,如果要以系别分,例如计算机,可以设置为cn=mou,ou=computer,ou=student,dc=jluzh,dc=com,这就是一个LDAP的一个

条目。LDAP适合不需要频繁更新,但需要频繁读取的数据源应用,所以本设计用他来做验证登录。

1.3 开发环境简介

1.3.1 语言的选择

本系统的开发语言是PHP+Shell+Python,这个组合是开发的过程中商量决定的,应为各自有自己语言的特点,能够利用其特点获得我们想要的效果。PHP是WEB开发的重要工具,前台的展示也都是由PHP处理,Shell是Linux下的一中脚本语言,在Linux系统下的执行效率相对比较高,有部分的处理便使用Shell进行,Python是一门面向对象的计算机语言,包含了完善而且容易理解的标准库,能够轻松的完成很多常见的任务。

PHP是Hypertext Preprocessor的简称,他是一种服务器端解释的脚本语言。PHP与HTML的兼容性非常的好, PHP的运行速度较快,运行损耗较小。这也是PHP的一大优势。

Shell是Linux的脚本语言,也可以说是Linux的一个命令程序。能够便捷快速的处理用户的任务。能够调用系统内核的大部分功能来帮助我们实现要求。

1.3.2 开发平台

开发平台是ubuntu+Zend Studio

Ubuntu是linux操作系统,因其开源和稳定而受欢迎。绝大多数的服务器也都采用linux系统。

Zend Studio是PHP语言的集成开发环境,本系统用他来做开发。

1.4 服务端与客户端简介

服务端和客户端的介绍,主要是介绍基础环境、程序文件夹结构和服务器的部署。这有助于我们认识程序的基本结构,使得我们的思路更加清晰。

1.4.1 服务器端基础环境

操作系统:linux server

服务器:nginx1.3.2

PHP软件:PHP5.6.1

数据库:Mysql

开发工具:Zend Studio

浏览器:Chrome或者fire fox

1.4.2 客户端使用须知

浏览器:Chrome或者firefox

1.4.3 文件夹组织结构

设计的时候,将整体的文件夹框架建立起来,方便开发,不会导致开发工程混乱,规范开发代码。图1-1为设计的文件夹结构图。主要是将各个模块分出来,将公共的模块抽出来单独完成,这样减少代码的重复编写。也使得条例清晰。

主工程名为product,里面包含有多个文件夹,这些都是按照特定的功能分开的,about是存放软件关于信息很相关操作的ajax文件夹主要是存放运用到的ajax页面的代码,buid文件夹是关于构建模块的,有关构建的提交,构建的处理,构建完成的代码模块都是在这里完成。connect里面是有关数据库mysql的连接,关闭。css是存放页面的css样式和布局,distribute这部分是产品发布的功能实现,所有的发布代码都在这个文件夹里面。html,这个是用来存放html文件的,image存放程序使用到的图片,js存放程序使用到的js文件,log,程序日志输出文件夹。send_mail发送邮件的功能模块,test存放测试相关操作的代码。主界面的代码都是放在根目录下面,也很容易找到对应的功能代码,这样存放基本的层次结构就比较清晰了,开发过程也能较快的找到相应的代码修改。这样使得开发效率更高。

图1-1 文件结构图

1.4.4 服务器部署图

如图1-2所示,服务器A主要是部署主要的工程,web服务器是Nginx、FastCGI。由于产品人员需要提交产品资料,这是一个带图片和产品说明及更新文档的文件夹。所以还需要搭建一个samba服务器作为共享的目录。程序从这个samba共享目录中去读取相关的文件。

服务器B需要部署OpenLDAP作为认证中心。这里面存放的是员工的基本信息。

服务器C需要部署的时Nginx和python的基础环境,python用来批量的修改大量的文件内容,将版本信息及其他

相关的信息修改成需要的内容。

服务器D需要部署的时Django的环境,使python编写的一个页面,使用Ant构建,将程序打包处理。

这里其实可以将所有的东西放到一台服务器上运行,但是考虑到服务器的性能和程序运行的效率,才将这些拆开,以最好的效果展现。

服务器Amysql+nginx+php+sambaBCLDAP验证测试部署D构建平台

图1-2 服务器部署图

2需求分析

2.1 需求分析

对于公司产品的管理,不同的人有不同的职责。因此,这个管理平台需要为用户提供不同的功能和权限,需要为他根据产品的设计流程,能够提供便捷的操作,界面简洁。综合考虑,本系统的要求如下:

1. 能够给开发人员提交构建需求:

(1) 提供svn代码地址,版本,是否有定制需求,渠道号;

(2) 要求输入能判断是否有效,能最快速填写表单;

2. 能够处理构建需求:

(1) 使用Ant构建,将程序打包并且签名;

(2) 使用Ant自带的邮件发送功能将软件包的地址发送到相关人员邮箱中。

3. 能够处理产品验收通过并提交申请测试:

(1) 提供申请测试页面,能够从前面的构建信息中继续操作;

(2) 仅仅填写很少的信息并让需要知道的人知晓;

4. 能够给测试人员填写测试计划:

(1) 测试人员填写测试计划表单,部分会插入HTML表格;

5. 能够测试提交测试环境部署并处理:

(1) 构建过程生成一个升级包,测试人员可以点击对应产品的这一条任务而执行申请部署并且自动执行升级包的部署;

(2) 能通过网页查看升级文件的详细信息判断和收手机的信息是否一致;

6. 有测试结果的处理:

(1) 提交测试通过或者不通过的列表;

7. 能够申请发布,将软件包传到外网:

(1) 申请发布操作,需要将构建好懂俄程序包和产品放到samba中的文件夹合并;

(2) 能够打包成7z压缩包;

(3) 可以将压缩包上传到外网的一个固定的地址;

(4) 程序还需要读取产品放到samba中的文件夹的资料,需要读出产品简介、更新日志的内容和图片的像素大小;

(5) 可以将上面获取到的信息以表格的形式制成一张表以邮件形式发送给相关的人员;

8. 能够产品状态查询:

(1) 查询产品处于哪个状态,是测试中还是构建未完成。这里都需要能通过对应的信息查询到。以便相关人员查看;

9. 能够实现服务器的状态监控:

(1) 服务器的相关状态显示,只有运维人员需要知晓,其他人不需要权限查看。需要监控nginx的状态、cpu使用情况、系统负载等信息;

10. 所有的操作都能有邮件实时通知:

(1) 每个操作都会需要通知相关的人员,所以邮件能便捷的提醒相关人员。

2.2 系统功能分析图

如图2-1所示,系统功能分析如下,各部门有对应的功能模块,也将整个程序串成一条连贯的流水线: 登录产品部门研发部门运维部门测试部门产品资料产品发布环境部署构建任务监控处理任务结束

图2-1系统功能分析图

3 总体设计

3.1 系统目标

根据需求分析以及与用户的沟通,系统地基本目标如下:

1. 系统界面简洁,美观大方,框架清晰,能实现基本的功能。

2. 数据传输存储安全可靠。

3. 对用户的输入框提供校验功能,尽可能的减少失误。

4. 具有邮箱提示能,最快速的通知相关的人员。

5. 网站的维护简单,易操作。

6. 获取图片像素功能准确。

7. 文件上传功能逻辑正确,安全可靠。

8. 压缩资源快速准确。

9. Wimdows文件和Linux文件互相传递没有编码问题。

10. 系统运行稳定,能够支持公司员工多人操作。

11. 构建的处理及时,准确。

12. 测试部署逻辑准确,有效。

13. 用户权限控制合理,权限能给的尽量给到最低。

14. 监控力度实时有效,监控图直观。

3.2 数据库设计

3.2.1 系统数据分析

通过对整个流程的分析,该流程主要的数据实体有这么几类:构建、测试、渠道、用户,申请测试

这些实体涉及的实体项目分别是:

(1) 构建:id、标题、工程名称、svn地址、版本、渠道、定制需求、邮件、备注、构建后软件包地址、更新包地址、更新信息、状态、人员、测试ID

(2) 测试:id、标题、当前时间,测试文档、软件包地址、修改内容、备注、状态、需要测试时间

(3) 渠道:渠道号,渠道名,渠道简短名

(4) 用户:中文名,名字拼音

3.2.2 系统E-R图

申请构建提交构建处理产品版本渠道Svn地址定制需求软件信息更新包地址软件包地址验收申请测试产品需求文档软件包地址要包时间备注测试计划处理目的内容人员时间版本设备测试结果测试部署提交结果内容版本设备人员时间测试处理申请发布产品可发布监控ftp服务器htt、tomcatSamba更新包N111N1N11111

图3-1 系统E-R图

3.2 数据字典

3.2.1 申请构建表

申请购建表主要用于开发提交构建申请,id为该表的主键,该数据表结构如表3-1所示:

表3-1 申请构建表

3.2.2 构建完成

构建完成的表主要是存储构建完成的数据包地址,具体的表结构如表3-2所示:

表3-2 构建完成表

3.2.3 申请测试

申请测试表主要用于存储申请测试的信息。Aid是主键,id是构建表的外键,数据表的结构如表3-3所示:

表3-3 申请测试表

3.2.4 渠道

渠道信息表主要用于存储渠道信息,id作为表的主键,其数据结构如表3-4所示:

表 3-4 渠道信息表

3.2.5 用户

用户表主要用于存储用户的信息,主要是用户的姓名和姓名的拼音,数据表没有外键,与其他表格的联系不大,只是用来方便用户输入的,所以只有有三个数据。数据结构如表3-5所示:

表3-5用户表

3.2.6 监控

监控表主要用于存放监控获取到的数据,主要包含id、流量、接口、php-fpm。如表3-5所示:

表3-6用户表

4设计思想与实现

4.1 用户登录模块

登录模块,对用户身份的验证,使用比较简介的设计,只需要用户输入帐号和密码,就会到LDAP服务器上去验证。如图4-1所示。本系统是没有用户表的,在公司有多个系统的情况下能使用统一的帐号密码进行登录,实现单点登录。当然,权限的设置在程序中还是必须要的。

图4-1 登陆模块

登陆模块主要的思路是:根据LDAP的特性,验证是通过DN和密码来验证的。上面介绍过LDAP的一些基础信息。例如基础的DN设置成dc=jluzh,dc=com。那么我们个人的DN可以是cn=zhangsan,ou=student,dc=jluzh,dc=com,如果验证的话,我们不可能让用户输入这么长的用户名,所以,我们只让用户输入前面的cn。然后去服务器通过cn获取到用户的dn,然后再通过DN去验证。

用到的一些函数,主要是关于LDAP的连接的函数。

session_start()打开session的函数,用session来保存用户名和密码,这个能在之后的权限设置上发挥比较大的作用。 ldap_connect("ip:port")LDAP连接函数,返回的是一个链接代号。

ldap_search($conn,$base_dn,cn)根据cn获取到用户的信息,列出树状资料。这里我们将会获取到用户的全部信息。然后再去处理。

ldap_get_entries($conn,$search)把用户的信息放到一个数组里面。然后通过一个for循环找出用户dn。

ldap_bind($conn,$user_dn,$pass)连接函数,用户dn和密码正确返回true。错误返回false。验证结束。

验证通过之后跳转到main页面。

如图4-2所示,代码的编写如下:

图4-2 登陆代码

4.2 菜单

如图4-3所示:这是所有的产品管理的菜单栏。能够最快速的找到我们需要完成的任务。

侧边拦主要就是把所有的功能列出来,供用户直观的看到系统的功能,找到相应的操作。

部分代码实现如下所示:

<div class="box">

<h2 id="current_project" >当前目录:</h2>

<ul class="menu">

<li class="level1"><a href="">构建</a>

<ul class="level2">

<?php

if($ou=="运维组"||$ou=="测试组")

{

echo '<li id="newProject"><a href="./build//submit.php" target="cFrame">提交构建</a></li>

<li id="prolist"><a href="./build/list_build.php" target="cFrame">构建任务</a></li>

<li id="newProject"><a href="./build/build_complete.php" target="cFrame">构建完成</a></li>';

// <li id="newProject"><a href="AssetManegement/addcomputer.php" target="cFrame"></a></li>

}

if($ou=="产品组"||$ou=="客户端")

{

echo '<li id="newProject"><a href="./build/html/submit.html" target="cFrame">提交构建</a></li>

<li id="newProject"><a href="./build/list_build.php" target="cFrame">任务列表</a></li>';

}

?>

图4.3 菜单栏

4.3 申请构建页面

如图4-4所示,申请构建页面的表单较简单,主要用到的技术有JS动态添加一组对话框、根据对话框多少将数据录入数据库和Ajax不刷新页面自动显示输入数据后面部分这三个。

图4-4 申请构建

一、 JS动态添加一组对话框。

动态添加对话框,其实就是在JS写一个点击事件的函数,点击后将HTML显示到一个DIV里面。关键代码如下: $(function(){

$('#addTextImput').click(function(){

$('# addTextImput ').append("输出");

});

});

将上面的输出替换成我们需要的东西就能够实现动态添加的需求。

二、 数据录入数据库。

录入数据的条目是根据上面的i得到的,然后调用录入数据库的函数,成功则返回这一条数据的ID,多个构建任务时循环调用这个函数。

数据库的录入用到的知识其实就是sql的insert语法,这里建立了一个录入的函数,主要是考虑到多个输入之后输出的问题,需要返回插入数据库之后的ID,关键代码有:

插入语法:insert into 表名 (字段)values(字段)

获取ID语法:select id from 表明 where 条件。

三、 Ajax不刷新页面自动显示输入后面数据

根据需求分析,我们要求系统能最大的节省我们的输入和严格的控制输入的正确性,所以本系统对文本框多处的使用了输入一部份自动显示其他的功能。这样就能减少人工输入错误。提高输入的效率。针对这个一要求,在做渠道号输入框的时候,就运用了这个技巧,填写的过程中不断的后台搜索并且展示15个结果。主要实现的思路如下:

1. 获取输入框的id,监听输入框的keyup事件。

2. 通过AJAX的GET方式提交数据,传递参数到我们需要的页面,在处理页面成功执行之后返回一个字符串,然后把字符串放到我们创建的一个table中这样就能把数据显示出来了。

3. 然后我们在通过鼠标的悬浮,并且监听鼠标的点击事件。将鼠标点击的值传递给输入框,从而达到我们的要求。 具体的实现代码如图所示:

图4-5 输入框Ajax

4.4 构建列表

如图4-4所以,构建列表主要显示标题、渠道和申请的时间,这里显示的都是处理的构建任务,加入处理完成,会默认把这个产品放到下一个工作流程中去。这里的技术点有两个:

1. 详细信息的显示。

* 点击详细信息之后,下方会出现这个构建的所有信息,这是通过Ajax实现的,实现不刷新页面动态显示详细信息,减少用户查看需要刷新页面的苦恼。实现的思路:

(1) 首先获取到鼠标点击button的id值,Ajax传递ID给后台页面处理。

(2) 后台处理页面将数据传送到前台页面,前台提供一个table存放这些数据。

(3) 关键代码:

xmlHttp.onreadystatechange = function() {

if (xmlHttp.readyState == 4) {

var str = xmlHttp.responseText;

document.getElementById('info').innerHTML=str;

var obj = eval('('+ xmlHttp.responseText +')');

}

}

var arr = document.getElementsByTagName('button');

for(var i = 0;i<arr.length;i++){

arr[i].onclick = function(){

// alert(this.id);

var data =document.getElementById(this.id).value;;

xmlHttp.open("POST", "show_info.php", true);

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

xmlHttp.send("id="+data);

}

}

}

2. 构建的处理

如图4-6所示,点击详细信息下面的框的数据会变化。

图4-6 构建列表

如图4-7所示,编译的代码主要是使用python编写的,主要是使用python做一些其他的处理,例如构建升级包,增加定制的需求,主要的核心是使用google的ant构建。主要是使用google的ant构建。

(1) Ant构建的过程主要是通过build.xml文件执行的;

(2) 生成一个release的apk;

(3) 需要签名,打包;

(4) 用ant自带的邮件功能发送邮件。

图4-7 构建代码

4.5 构建完成页面

如图4-6所示,构建完成的页面是同样适用ajax技术,增加一个多选的操作。

复选框的实现:

(1) 支持多选,就要获取到用户的鼠标点击事件,所以就用JS获取到点击的checkbox的值。

(2) 将checkbox的ID变成以逗号隔开的字符串形式传递个下一个页面,下一个页面可以通过字符串切割得到各个ID,然后通过ID查询到相关数据。

图4-6 构建完成

4.6 部署页面

如图4-6所示,主要用到的是批量修改文件。

图4-6 部署页面

部署页面的设计思路是:软件包会有一个更新文件,部署的话分当前版本和高版本的部署,当前版本可以直接将构建出来的软件包解压到一个nginx的目录里面,客户端会去读取对应的配置文件。

高版本的升级则需要修改配置文件,将version的属性修改。还有修改log日志。日志会更具apk包的名字不同而有所差异。所以修改的关键是修改apk包名字,apk包的MD5值变化更新到配置文件,配置文件的version也需要更改。由于配置文件有时候是近百个,所以手动修改时不可取的。因此需要软件批量修改。

4.7邮件表格

邮件表格功能的实现,效果如图4-7。主要的功能点有:动态获取samba上产品上传的文件夹里面的资料信息,包括图片尺寸大小,文档名称,产品简介和更新日志里面的内容,并发送邮件。

获取图片大小是去递归遍历文件夹,判断是否是图片,然后获取图片大小

1. 递归遍历文件夹代码实现

(1) 使用opendir($dir)打开文件夹,通过if(is_dir($dir . DIRECTORY_SEPARATOR . $file))

(2) 判断是不是文件夹,不是则输出文件名和路径,是文件夹则继续打开,继续上一步操作。最后返回一个文件名的数组

2. 获取图片大小的实现

(1) 使用getimagesize获取到图片的基本信息,获取到的是一个数组,

(2) 由得到的数组很多信息是我们不需要的,我们仅仅只是需要其中的像素大小这一个数据。通过array ($img_info[0],$img_info[1])通过这个获取到图片的大小

(3) 函数return一个图片像素值。

3. 获取txt文档内容实现

(1) 使用fopen打开文件

(2) 使用file_get_contents获取文本内容

(3) 使用explode函数分行显示

图4-7 邮件表格

4.8传包发布页面

这个主要是把软件包传送到一个FTP服务器上面去,然后有相关的人员去获取软件包,主要的过程有:去samba服务器获取对应的文件夹,将文件夹压缩成7z包,将包发送到FTP

7zip压缩时使用linux的7za命令执行的,将对应的软件包打包之后,包会自动删删除。PHP调用外部命令的方式主要有两种,一种是system的方法。另外一种是使用exec()进行调用。如exec(7za a 文件夹.7z 文件夹)的形式就可以打包。

产品文件夹的数据来源是根据前面两个下拉列表的信息得到的,是联动下拉列表,联动下拉列表的实现主要是使用Ajax实现的,也是将参数传递到一个php页面,然后在服务端处理完之后将数据返回到客户端显示。Ajax技术的实现,使我们的页面简介性得到优化,也使得我们的操作显得流畅,舒服。

获取对应的文件夹使用的是Ajax

基本思路是将按钮联动,选择前面两个选择框的数据,将直接影响下面的下来选框出现的数据是samba上的那个目录的文件夹。

连接FTP发送文件的实现

$ftp_server="192.xx.xx.xx";

$ftp_user_name="ftpuser";

$ftp_user_pass="passwd";

$conn = ftp_ssl_connect($ftp_server,21,3000)or die("can not connect ftp");

$login_result = ftp_login($conn, $ftp_user_name, $ftp_user_pass);

ftp_pasv($conn, true);

图4-8 传包发布

4.9监控图

如图4-9所示,监控的图像,主要是使用snmp获取数据,然后使用js将数据展示出来。主要的思路是,使用shell和snmp结合,从服务器获取到需要的基础数据,然后将这些数据保存到数据库中,数据的处理是每五分钟一次。将这些数据使用rrd的形式绘图。

(1)检查物理内存值:# free -m | grep Mem | awk {print $4}

(2)检查缓冲区的指:# free -m | grep - | awk {print $4}

(3)Swap交换分区的值:# free -m | grep Swap | awk {print $4}

(4)提取本服务器的IP地址信息

IP=`ifconfig eth0 | grep "inet addr" | cut -f 2 -d ":" | cut -f 1 -d " "`

图4-8 监控图像

图4-8 监控图像

5 系统测试与运行

5.1 系统验收测试

系统的验收,主要检查系统的功能与需求是否一致,检查系统的逻辑是否正常。系统验收前的详细部署可以查看第一章图1-2。系统验收测试分两个方面,性能测试和功能测试:性能测试程序会24小时运行以测试系统的稳定性,并会模拟用户访问测试系统的并发量。测试程序能承受多少压力。功能测试主要验收的功能如图5-1所示:

表 5-1系统功能验收表

5.2 系统运行

系统验收测试完成,系统将开始正常的使用,使用的注意点有:

1. 系统的会有使用说明,详细操作看使用说明书

2. 系统的功能基本都是一看就知道是什么功能的,没有歧义。

3. 大量数据处理时会有等待时间,不要重复刷新提交。

4. 系统权限有权限限制,需要权限找相关人员开通

5. 需要实时监控系统状态。

5.3 系统的维护

系统使用的过程中会产生这样那样的问题,系统的维护需要长期进行,维护工作可以根据设计文档进行,主要的维护点有:

1. LDAP服务帐号管理,确保认证正常运行

2. SAMBA共享目录的管理,磁盘空间的整理备份,使共享目录能够正常运行

3. FTP的运行状态。

4. 系统的权限设置,对相关人员的权限进行设置

5. nginx的访问进程设置优化。

6 结束语

这个设计的过程中,让我对整个流程有个更加深入的了解,也对工具的运用有了进一步的了解,系统基本上完成了设定的目标,需要完善的地方也还有很多。系统的稳定性经过测试是比较好的,便捷性和规范型也相对符合需求。这个系统的设计,还没有需要修改,UI的设计,界面的简洁性,功能的完善这些都还需要改进。之后会将这些一一的去完成。

在这个设计的过程中,我深切的认识到需求分析的重要性。开发之前,先顶需求。这个是我再这个过程最大的体会,刚开始并没有想太多,很粗糙的定需求,开发过程中觉得该成其他更合适,结果会不断的变需求,这个过程是非常耗时间的,也会导致开发的过程思维变的混乱。所以,之后的设计上,应该先想好要什么样的系统,具体的细化工作也可以想好,然后目的性非常强的去用代码实现,这样开发周期会变短,即使需求需要更改也不会有太大的变化。

这次的设计,我参与了设计、开发、测试的整个环节,将学校学到的理论知识和实际操作结合到一起,将理论变成自己的知识。也是我学习到了更多的知识和技术。

开发的过程中,交流是非常重要的,要和别人沟通,这样你遇到问题别人的思路或许能让你相对较快的解决问题,对于一些需求,沟通也能让你对需求有更深的了解。

通过这个设计,开拓了我的眼界,也让我认识到自己的不足。很多之前学习的知识没有得到巩固,有些已经忘记,所以要乘着参与项目努力学习。为自己以后打下好的基础。

参考文献

[1] Hugh E.Williams等著.PHP & MYSQL Web数据库应用开发指南[M].中国电力出版社.2003

[2] STERLING HUGHES等著.徐牧等译.PHP 经典实例.中国电力出版社.2003

[3] 高俊峰.高性能Linux服务器构建实战.[M].机械工业出版社.2012

[4] 殷人昆.实用软件工程(第三版).[M].北京.清华大学出版社.2010.

[5] 吉尔摩(W.Jason Gilmore,W.J).PHP与MySQL程序设计..人民邮电出版社.2009

[6] Larry Ullman.PHP与MySQL动态网站开发(第4版).人民邮电出版社.2009

[7] 卧龙小三.实战Linux Shell编程与服务器管理.电子工业出版社.2010

[8] Steve Parker (作者), 万千 (译者).Shell脚本编程诀窍:适用于Linux、Bash等.清华大学出版社.2012

[9] 丘恩 (Wesley J.Chun) (作者), 宋吉广 (译者).Python核心编程(第2版).人民邮电出版社.2008

[10] 余洪春.构建高可用Linux服务器(第2版).[M].机械工业出版社.2012.

致谢

在这次设计首先要感谢我的指导老师单缅,她在忙碌的工作中还给予我毕业论文的选题、编写和设计上的指导以及提出修改意见,在此表示感谢。每次有问题都能不厌其烦的帮助我解决问题。让我能顺利的完成设计。她的认真的工作精神值得我们学习。

( 注释:红色文字表示文字复制部分; 黄色文字表示引用部分)

打印 保存

返回顶部

更多相关推荐:
优秀毕业论文范文

HUNANUNIVERSITY毕业论文论文题目新闻整体真实操作论学生姓名学生学号专业班级学院名称指导老师刘四20xx221024新闻学20xx级6班新闻与传播学院柳四四学院院长肖海梅20xx年6月5日湖南大学毕...

大学本科毕业论文范文

北京大学本科生毕业论文题目学生姓名指导老师学院专业班级完成时间北京大学毕业论文设计任务书毕业论文设计题目重大环境污染事故罪主观方面探析题目类型理论研究题目来源生产实际题网址毕业论文设计时间从20xx年3月1日至...

毕业论文例文

毕业论文题学专年姓20xx年5月广东工业大学管理学院制I摘要近些年来随着工业生产的发展佛山广粮饮料食品有限公司的生产规模在不断壮大因为客户的需求和生产的需要公司生产使用的机器设备在不断地更新换代并朝着集成化大型...

本科毕业论文范文模板

题目程序在线评测系统题目程序在线评测系统姓名学号所在学院年级专业指导教师职称讲师完成时间20xx年月日指导教师评语评定成绩指导教师签名答辩小组意见评定成绩答辩小组长签名综合评定成绩日期日期程序在线评测系统后台评...

成都大学本科毕业论文范文优秀论文

本科毕业论文下面的字体:方正黑简体三号题目企业内部控制的诊断及对策研究以成都市G房地产企业为例学院经济管理学院专业会计学学生姓名学号年级20##级指导教师职称教授20##年5月30日《论文声明》本人声明所呈交的…

毕业论文写作的基本步骤

以下是硕士论文写作的基本步骤几个重点环节以及引证的规范问题第一节写作八个步骤严格地说提笔写或在电脑上打字之前的许多步骤都属于论文写作的必要环节一定程度上比实际动手写重要得多许多过来的人都有体会完成一篇较大的论文...

大学生毕业论文范文参考

福建交通职业技术学院毕业论文题目浅谈对报关行外勤工作的认识姓名江金晶学号0564414专业报关与国际货运年级班级05级报关4班指导教师职称江明光副教授系部管理系年六月1福建交通职业技术学院毕业设计论文成绩评定表...

工程测量毕业论文范文

毕业设计[论文]题目:RTK与全站仪联合定界的系别:测绘与城市空间信息系专业:工程测量技术姓名:***学号:指导教师:20XX年5月15日毕业设计(论文)本科毕业设计(论文)任务书一、主要任务与目标:随着GPS…

奥鹏毕业论文写作

奥鹏毕业论文写作学生端平台操作说明毕业论文设计是学习阶段非常重要的教学环节是各位同学几年寒窗之后知识与技能的展示因此需各位同学高度重视投入足够的时间和精力在本专业知识范畴内挑选自己感兴趣而又有一定资料积累的问题...

本科毕业论文范文

目录目录摘要IAbstractII第一章前言111研究依据和意义1111研究背景1112研究意义112研究方法及预期成果113国内外研究现状2131国外研究现状2132国内研究现状3第二章创业板上市公司的现状分...

本科毕业论文标准范文

过去的习惯决定今天的你所以过去的懒惰决定你今天的一败涂地清华大学本科生毕业论文题目学生姓名指导老师学院专业班级完成时间清华大学毕业论文设计任务书毕业论文设计题目重大环境污染事故罪主观方面探析题目类型理论研究题目...

中文本科毕业论文范文

浅议荷马史诗的艺术魅力四川师范大学汉语言文学曹世芳指导老师内容摘要诗史是用诗歌的形式书写一个民族的历史在世界文学史上成就最高流传最广影响最大的诗史当属荷马史诗古住今来东西方文学家哲学家都从不同角度对荷马史诗给予...

毕业论文 (48篇)