实习日志 订阅
《实习日志》是连载中的一部超现实都市类网络小说,作者是蛇夭矫。 [1] 展开全文
《实习日志》是连载中的一部超现实都市类网络小说,作者是蛇夭矫。 [1]
信息
类    型
超现实都市
中文名称
实习日志
连载状态
连载中
作    者
蛇夭矫
实习日志内容简介
摩羯历11年年末,一场史无前例的地变摧毁了九分之一的苍鹭洲,黑山、蛇岛之间曾经汹涌的海水缓缓退去,露出原本深藏在沙下的大片遗迹。距今三千七百多年的遗迹重见天日,被海水侵蚀却依稀可辨的古老符文、令人毛骨悚然却又不可名状的化石、包裹着前所未有生物构造的茧状物……是巧合,还是预谋? [1] 
收起全文
精华内容
下载资源
问答
  • 实习日志

    千次阅读 2019-01-31 19:33:51
    考研完到杭州迈睿机器人公司实习了一个月,感觉收获不少,学到了很多工程相关的经验,之前对大型工程没有什么概念,有无从下手的感觉,现在经过一个月的实习,大致对实际的开发流程有了了解。 这一个月的实习中,我...

    考研完到杭州迈睿机器人公司实习了一个月,感觉收获不少,学到了很多工程相关的经验,之前对大型工程没有什么概念,有无从下手的感觉,现在经过一个月的实习,大致对实际的开发流程有了了解。

    这一个月的实习中,我基本上了解了MRTA的全部内容,并重写了一个利用最小费用最大流原理的算法取代了原本的匈牙利算法,测试小车数大于30辆时可以缩短时间10倍。然后基本了解了MRPP中的路径规划,学会了A*算法,交通管理没怎么看懂。给公司解决了实际应用下小车倒车以及出入库的近远端终点选择。

    经过了一个月的实习,我了解了前端和底层数据可以通过JSON交互数据,这样可以实现JS做web的UI,C++实现底层的调度,再利用JAVA实现后端和有关数据库的整个软件系统的实现。并且认识到了设计模式和重构的重要性。


    11:38 2018/12/28    到公司,安装环境
    13:21 2018/12/28    看MRTA代码


    8:38 2018/12/29    看MRTA代码
    9:55 2018/12/29    利用#define和#ifdef进行注释开关


    8:59 2019/1/2    学习了静态库和动态库的使用
    13:38 2019/1/2    用匈牙利算法解决指派问题的理论搞懂
    20:27 2019/1/2    最小费用最大流代码(spfa)写完


    15:59 2019/1/3    最小费用最大流调试完成,但是发现比原本的匈牙利算法慢1.5倍
    20:36 2019/1/3    发现主要问题应该是内存分配慢,原本的都是一开始分一个整体内存,我自己写的是每次用malloc


    8:36 2019/1/4    内存问题解决,发现快了1/5,但是还是比匈牙利慢一倍
    10:07 2019/1/4    已知最小费用最大流采用原始对偶法+dijkstra可以快一些,网上给的测试是spfa的1/3.3,尝试重写
    16:31 2019/1/4    写出来发现比用spfa还慢,可能是因为本身负权比较少,这种算法不适用二分图最佳匹配
    17:35 2019/1/4    还剩一个km算法可以选择,时间复杂度是O(n^3),需要递归,排除


    9:40 2019/1/5    将工作的车辆数提高到100以上时,发现最小费用最大流的性能大约是匈牙利的20倍,原本测试7台车辆时两者差距不大,也就1倍;也就是当工作量小时两者差距不大,但工作量大时最小费用最大流优势很大
    10:15 2019/1/5    开始考虑如何将已经到的那些车辆考虑进去


    9:37 2019/1/7    vs调试学习
    10:12 2019/1/7    看整个工程中的调度代码
    11:09 2019/1/7    C++11中,用emplace_back()取代push_back(),有效率上的提升
    13:34 2019/1/7    工程使用最小费用最大流静态库小车会停止,查找原因
    16:57 2019/1/7    找到原因:最小费用最大流未考虑空闲车为0的情况
    17:37 2019/1/7    |=是位或,用于实现能力集


    8:29 2019/1/8    当小车个数比较小的时候最小费用最大流出现内存占用错误,查找到原因是head中总边数分配过少导致初始化有问题
    9:34 2019/1/8    测试3辆小车时调度没有问题
    9:49 2019/1/8    会出现小车不跑到最近的工作台而是跑到较远处的原因是排队时延,原本的20过大,改为5就会好很多
    1:29 2019/1/8    看RCS中整合的调度代码
    19:51 2019/1/8    6辆小车分别测试匈牙利和最小费用最大流,结果差不多,都会出现一些调度问题
    19:56 2019/1/8    详细测试匈牙利和最小费用最大流,当车辆*工作台数量>300时,最小费用最大流就占优,整体来说用最小费用最大流比较合适


    9:10 2019/1/9    想法:在死锁的情况下重新分配,下位机改变不了,只能更改上位机->实现不了
    10:23 2019/1/9    virtual:C++中的虚函数,特点是动态链编,可以根据指针类型判断调用的是基类还是继承类中的函数
                                override:表示当前函数重写了基类的虚函数
                                explicit:防止类构造函数函数的隐式转换,比如A=14,防止自动把14看成一个类
                                typename:模板中说明T::bar是一个类型而不是变量
    13:49 2019/1/9    上位机MRPP也是利用线程,不会线程,学一下
    14:51 2019/1/9    基本的线程学习完成
    16:31 2019/1/9    MRPP和MRTA都是利用分配线程,循环调用函数得到,MRTA已经没办法更改,MRPP是下位机静态库代码看不到,所以只能想办法更改上位机中使用MRPP的函数
    19:55 2019/1/9    学习C++中的单例模式和工厂模式,单例模式可以使类所存储的数据都存放在一个单例中,这样就不用每次使用都new一个对象


    10:49 2019/1/10    工厂模式可以使用户只需知道工厂子类,传递所需类型就能得到具体的产品,每次使用不同的子类时不需要知道具体用哪一个子类而是只需要知道类型号即可
    13:52 2019/1/10    新需求:当储位和工作区之间存在障碍物时,因为简单使用曼哈顿距离,导致绕开障碍物后的优先去中间位置而不是边上位置的工作区。
    14:12 2019/1/10    想法1:障碍可以作为不可行的申请输入,先将所有申请的坐标建立矩阵,筛去那些上下左右旁边都有申请的中心点,策略是优先取外围,矩阵不行,
    19:12 2019/1/10    初步修改完,写测试函数
    20:23 2019/1/10    测试函数完成,基本测试完成,明天使用模拟器跑


    8:51 2019/1/11    画图测试,车辆停止
    11:05 2019/1/11    更改代码,更加完善
    13:43 2019/1/11    模拟测试,小车乱跑


    9:30 2019/1/14    模拟测试,任务接收成功但是没有分配
    10:28 2019/1/14    查找出原因是配置文件没有设对,现已经可以正确执行任务
    11:08 2019/1/14    出库入库的逻辑搞懂
    15:05 2019/1/14    自画图验证,将筛选逻辑改为一行一列中所有中间的都筛去
    15:38 2019/1/14    检验出一个bug,修改
    15:46 2019/1/14    需求基本达成,但会有一个问题:出发点离上方道路不能过远,否则会选择最下方的点
    17:34 2019/1/14    为了克服该问题,必须在任务分配中加入地图。
    19:25 2019/1/14    dynamic_cast<D*>(pb)可以在执行期决定真正的类型
    20:31 2019/1/14    加入地图节点接口


    10:46 2019/1/15    学习了如何不使用静态库而使用代码
    11:49 2019/1/15    复习了C++中Lambda表达式的使用,[&a](b){},a是获取的外部变量,b是比较的内部变量
    13:57 2019/1/15    资源与地图上的点id匹配
    15:42 2019/1/15    代码基本写完
    17:28 2019/1/15    TopoNode中存的是单向边,双向边是后面建立的存在MR_TOPO_MAP中
    20:22 2019/1/15    直接将路径规划中的私有成员使用要改动的地方太多,选择重新计算一遍图


    8:34 2019/1/16    需要在MRTA中分配地图的内存
    9:18 2019/1/16    代码修改完成,出现问题:机器人读不出来->误删了initMrtaInput
    10:00 2019/1/16     运行有些问题,找到原因是拓扑点的坐标和资源点的坐标表示方式不同
    10:20 2019/1/16    测试同一列4个点基本成功
    11:38 2019/1/16    两列8个点测试成功
    13:42 2019/1/16    出库没有问题,但是入库出现问题,因为入库找的是最远的策略,从起点出发会导致选取的点混乱
    13:59 2019/1/16    想法:先找出所有可以进入的点,再找出对应的旋转点,算出离旋转区的距离,根据它进行最大最小策略
    15:56 2019/1/16    程序写完,测试原料出库、入库,空托盘出入库均成功
    16:18 2019/1/16    匈牙利和最小费用最大流做一个选择接口
    16:48 2019/1/16    MRTA重构完成,分配策略设置在能力集中
    16:51 2019/1/16    测试两辆车的情况,两辆车时,其中一辆车会卡住,应该是MRPP的问题


    8:57 2019/1/17    MRTA尝试加入蚁群算法,MRPP学习A*算法
    9:49 2019/1/17    蚁群算法用于最佳平衡负载,跟期望不匹配,加入不了
    9:58 2019/1/17    MRTA告一段落,转向MRPP
    10:58 2019/1/17    看MRPP代码,学习C++处理UDP
    14:31 2019/1/17    学会C++建立UDP
    19:19 2019/1/17    学会A*算法,代码有内存泄漏的问题,尝试手动分配内存->内存分配解决


    9:23 2019/1/18    A*算法可以用二叉堆优化,学习一下,priority_queue不好用,得手造二叉堆
    17:06 2019/1/18    看了一天MRPP的代码,过于复杂,估计得看上好几天才能看懂


    10:54 2019/1/22    最小费用最大流代码交付合并,上传至服务器
    13:34 2019/1/22    看MRPP代码
    13:46 2019/1/22    学习使用assert中断错误
    15:53 2019/1/22    弄懂时间窗用于处理冲突,每次记录转弯前的时间窗,目前是只要有其他机器人出现在时间窗内就不申请
    20:22 2019/1/22    MRPP主要是这么几个部分:A*算法用于路径规划,用最小堆优化;交通管制,也就是处理小车之间路径冲突。交通管制这块存在难点


    13:33 2019/1/23    通过路径规划中对每辆小车建立各自的私有地图,私有地图中通过其他小车的预约格设定地图节点的权重来进行路径规划
    14:02 2019/1/23    看MRPP中拓扑图的处理
    15:40 2019/1/23    拿到新需求:德企机器人,特定拓扑图中旋转点固定,因此会出现绕一圈回来的情况,需加入倒车
    19:16 2019/1/23    机器人的方向由位姿中的角度决定

    8:57 2019/1/24    德企的因为分配点不是旋转点,所以MRTA的分配逻辑有问题
    10:30 2019/1/24    尝试将原本的最近旋转点改为最近的邻近非货架点,原本的查找最近旋转点函数只是根据xy坐标简单判断,没有进行是否连接,地图一大会出现问题
    13:57 2019/1/24    想法:对起点进行bfs搜索,因为只往起点的四个方向进行搜索,所以可以大量剪枝,不会花费很多时间
    15:32 2019/1/24    普通的和叉车的不同,但是叉车还是得加上连接
    16:31 2019/1/24    普通的拓扑图是以单向边可翻转来表示,真正建立拓扑图是在MRPP中,因此寻找旋转点等存在问题,想法:在拓扑图建图的同时建立真正的双向图
    19:21 2019/1/24    发现bug:处理拓扑图的邻接点会出现重复->找到原因:建双向边会导致后面的节点新加入的反向边也加入建双向边的过程


    9:14 2019/1/25    解决了昨天的bug:每次建立新边将可逆行标志改为0解决
    10:00 2019/1/25    重构了拓扑图地图的有关代码,原本建立真实的拓扑图是在MRPP中,现在加载地图后即建立真实的双向拓扑图便于有关地图节点连接的判断
    11:17 2019/1/25    学习JSON,可以用它来进行不同语言之间数据的交换,感觉还是很好用的
    14:21 2019/1/25    修改了寻找最近旋转点的函数,加入了判断连接的逻辑
    14:34 2019/1/25    拓扑图节点的id和下标是对应的,优化了建拓扑图函数,时间复杂度大概减小了n/2倍
    15:22 2019/1/25    任务分配没有问题,但是小车不经过旋转点会直接开过去


    9:32 2019/1/26    小车具体怎么走,是倒车还是前进是在交通管制中,存在小车的Cmd.CmdType中
    13:25 2019/1/26    小车方向是向前,路径是向后的情况,还是会原地掉头
    14:30 2019/1/26    可以做出倒车动作,但是会出现原地旋转360度的问题,需要把TCM彻底看懂
    16:08 2019/1/26    map中的高速路都是可以转向的,造成问题
    16:45 2019/1/26    发现不是高速路的问题,是一开始路径因为判断转向,turnflag=1,所以加入小车角度180的处理逻辑,完成基本倒车
    16:51 2019/1/26    倒车经过十字路口的时候逻辑有很大的问题。


    9:11 2019/1/28    倒车经过十字路口即旋转点时还是会选择倒车
    10:28 2019/1/28    逻辑其实已经写好了,主要是起始点加入非转弯的逻辑
    13:47 2019/1/28    倒车功能完成


    9:28 2019/1/29    理解对象组合和继承,也就是has-a和is-a的差别
    16:43 2019/1/29    经过倒车修改后的MRPP交付
    18:44 2019/1/29    新需求:新小车现在可以取多个货架,所以每次把所有能取的货架取完,要求是用MRTA分配得到每辆车要取的点,然后对这些点的顺序进行路径规划,路径规划是重点        
            

    10:02 2019/1/30    昨天需求废除,优先需求:现在需要小车走直线、
    15:56 2019/1/30    需求做不出来,开完年会就爬


     

    展开全文
  • 实习日志实习日志

    2013-10-13 14:34:29
    本人在十五所实习时的实习日志,先是插电路板,然后是黑盒测试,一个记录整个年级各个班每个学生成绩的软件。
  • 计算机生产实习日志计算机生产实习日志计算机生产实习日志计算机生产实习日志计算机生产实习日志计算机生产实习日志计算机生产实习日志
  • 实习日志-软件项目开发,实习日志

    热门讨论 2011-05-26 20:54:08
    软件项目开发,实习日志软件项目开发,实习日志软件项目开发,实习日志软件项目开发,软件项目开发,实习日志软件项目开发,实习日志软件项目开发,实习日志软件项目开发,实习日志软件项目开发,实习日志软件项目...
  • 软件工程实习日志

    2021-02-06 19:00:18
    软件工程专业的实习日志。日志报告。说的是实习期间的情况,有的还是工作日志。 软件工程专业的实习日志。日志报告。说的是实习期间的情况,有的还是工作日志。
  • 律师事务所实习日志

    2020-12-08 06:45:34
    律师事务所实习日志怎么写呢,对于一些不知道报告怎么写的朋友,小编为大家带来了最新的律师事务所实习日...该文档为律师事务所实习日志,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • 软件编程实习时25周的实习日志,12000字,详细记录每一周的工作内容,大四实习生上交实习日志时可以参考。
  • 销售类实习报告与实习日志,销售类实习报告与实习日志,销售类实习报告与实习日志
  • 实习日志文档

    2013-03-11 12:27:01
    毕业实习日志,有需要的朋友情下载,谢谢你的下载
  • 计算机实习日志

    2012-03-31 14:02:03
    计算机实习日志,实习总结,20多篇,自己毕业用的。肯定有价值!
  • 计算机实习周记,实习日志,实习报告等,适用于计算机相关各专业毕业生使用
  • 计算机教师实习日志.

    2011-09-09 17:08:49
    计算机教师实习日志.计算机教师实习日志.计算机教师实习日志.计算机教师实习日志.
  • 云计算生产实习----实习日志

    千次阅读 2018-01-26 15:42:04
    第一天实习日志如下 第二天实习日志如下 第三天实习日志如下 第四天实习日志如下 第五天实习日志如下 第六天实习日志如下 第七天实习日志如下 第八天实习日志如下 第九天实习日志如下 第十天实习日志如下 第十一天...

    0.前言

    本来打算每天都写一个博客作为实习的日志,结果发现,因为自己的笔记本的性能问题,有些实验同学的笔记本可以完成,但是自己的笔记本就无法的完成。幸好无法完成的实验只是整个环节中了解的内容。
    所以,下面我把自己的实习日志贴出来,也是比较完善的。

    1. 第一天实习日志如下

    项目名称:
    实验环境软件的安装与调试
    项目功能简介:
    安装虚拟机软件VMware与实验镜像CAS-CVM云虚拟化管理平台并进行连接性调试
    本人负责模块:
    首先在计算机中安装VMware虚拟机软件,在VMware中新建一个无操作系统的虚拟机;然后在虚拟机中安装CAS-CVM云虚拟化管理平台镜像,配置其参数包括IP地址、网关、需要安装的系统、磁盘、设置最高权限的密码等;最后更改虚拟机的虚拟网卡IP地址及网关地址,使用计算机的cmd软件进行连接调试,使得计算机和虚拟机可以ping通。
    心得:
    在安装VMware软件的过程中,需要使用管理员权限进行安装,因为需要添加虚拟的网络适配器供虚拟机使用,所以如果不使用管理员权限进行安装,那么会发生虚拟网络适配器安装失败的错误,导致通信失败。
    这里写图片描述
    图1 CVM云虚拟化管理平台配置图
    在安装CAS-CVM云虚拟化管理平台镜像的过程中,设置参数需要正确的设置参数,比如设置最高权限的密码时,一定要记得密码,否则在后面调试的时候会导致调试失败,在选择磁盘的时候需要选择可以操作的磁盘,因为要对添加的磁盘进行格式化,如果添加的磁盘软件无权限进行格式化,会导致磁盘不可用的错误,而且磁盘的格式也需要选择正确。
    这里写图片描述
    图2 CVM云虚拟化管理平台安装过程
    这里写图片描述
    图3 CVM云虚拟化管理平台安装成功
    在调试连接性的过程中,需要设置虚拟网络适配器的IP地址与网关地址,同时需要设置计算机的IP地址与虚拟网络适配器的地址不相同,而且计算机的网关地址和虚拟网络适配器的网关地址应该是一样的,否则通信不能成功,在使用计算机的cmd进行ping操作的时候,需要全面的了解ping命令的参数和意义,同时正确的选择命令,比如是常规的ping还是带参数的ping操作。
    这里写图片描述
    图4 CVM云虚拟化管理平台连接性测试

    2. 第二天实习日志如下

    项目名称:
    从服务器的安装与内置系统的访问测试
    项目功能简介:
    从服务器CAS-CVK云虚拟化内核系统的安装与CAS-CVM云虚拟化管理平台内置系统CAS虚拟化管理平台、CIC云业务管理中心、SSV用户自主服务平台管理的访问测试
    本人负责模块:
    首先在计算机的虚拟机软件VMware中重新创建一个无操作系统的虚拟机;然后在新建的虚拟机里安装CAS-CVK云虚拟化内核系统镜像,配置其参数包括IP地址、网关、需要安装的系统、磁盘、设置最高权限的密码等;最后启动安装了CAS-CVM云虚拟化管理平台镜像的虚拟机,通过使用浏览器进行访问CAS-CVM云虚拟化管理平台内置系统CAS虚拟化管理平台、CIC云业务管理中心、SSV用户自主服务平台管理进行测试。
    心得:
    安装CAS-CVK云虚拟化内核系统从服务器的过程中,设置参数需要正确的设置参数,比如设置最高权限的密码时,一定要记得密码,否则在后面调试的时候会导致调试失败,以及不选择安装内置系统,在选择磁盘的时候需要选择可以操作的磁盘,因为要对添加的磁盘进行格式化,如果添加的磁盘软件无权限进行格式化,会导致磁盘不可用的错误,而且磁盘的格式也需要选择正确。
    这里写图片描述
    图5 CVK云虚拟化内核系统配置图
    在访问内置的系统时,因为内置系统是使用Java语言进行开发,部署到tomcat8服务器中,所以浏览器的访问链接中必须加入访问的端口号8080,然后添加需要访问的系统。比如访问CAS虚拟化管理平台的链接应当是:http://192.168.11.1:8080/cas,其中http表示访问的协议是http协议,首先访问的是Apache服务器的80端口(tomcat是Apache下面的一个子服务器项目),然后在访问tomcat服务器的8080端口,192.168.11.1是目标主机的IP地址,也就是部署了tomcat服务器的IP地址,/cas表示访问的是cas应用,在tomcat服务器中的应用的实际存储地址在tomcat的webapps文件夹下,如果不添加/cas,那么访问的是webapps文件夹中的ROOT文件夹中的index.jsp文件(tomcat服务器默认访问的起始界面是index.*,包括index.html,index.htm,index.jsp),tomcat服务器中的Java类在src文件夹下,通过包结构进行存储Java编译过的class文件,其余的页面等文件在WEB-INF文件夹下。
    了解了tomcat服务器的结构以及访问链接的含义后,访问不同的系统,只需要重写不同的访问链接即可;同时tomcat服务器可以通过server.xml进行配置,使tomcat监听其他的端口进行访问,也可以配置web.xml文件更改起始页面。
    这里写图片描述
    图6 CAS虚拟化管理平台访问
    这里写图片描述
    图7 CIC云业务管理中心访问
    这里写图片描述
    图8 SSV用户自主服务平台管理访问

    3. 第三天实习日志如下

    项目名称:
    部署云服务器资源
    项目功能简介:
    在CAS-CVM云虚拟化管理平台主服务器中的内置系统的CAS虚拟化管理平台中进行云服务器中配置NTP服务器、添加主机池、添加集群、添加主机、添加虚拟交换机、添加共享文件系统等
    本人负责模块:
    首先使用浏览器访问CAS虚拟化管理平台,为主服务器以及从服务器配置NTP协议服务,然后为所有的服务器增加一个服务器群,并添加一个主机池,在主机池中为不同的需要分配不同的集群,在集群中添加一个无操作系统的主机,为了使不同的主机可以通信,添加虚拟的交换机,以及共享的文件系统,所有的集群内的主机都可以访问的共享文件。
    心得:
    在部署NTP服务器中,了解到NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议,作为一个服务器集群,使用相同的时间是一个非常重要的事情,标准时间,是由原子钟报时的国际标准时间UTC(Universal Time Coordinated,世界协调时),所以NTP获得UTC的时间来源可以是原子钟、天文台、卫星,也可以从Internet上获取;在NTP中,定义了时间按照服务器的等级传播,按照离外部UTC源远近将所有的服务器归入不同的Stratum(层)中,但Stratum层的总数限制在15以内;计算机主机一般同多个时钟服务器连接,利用统计学的算法过滤来自不同服务器的时间,以选择最佳的路径和来源以便校正主机时间。即使在主机长时间无法与某一时钟服务器联系的情况下,NTP服务依然可以有效运转;为了防止对时钟服务器的恶意破坏,NTP使用了识别机制,检查发送来的信息是否是真正来自所宣称的时钟服务器并检查信息的返回路径,以提供对抗干扰的保护机制;NTP时间同步报文中包含的时间是格林威治时间,是从1900年开始计算的秒数。
    在添加主机池的过程中,理解了池的一些含义:Pool(池)的概念被广泛的应用在服务器端软件的开发上。使用池结构可以明显的提高你的应用程序的速度,改善效率和降低系统资源的开销。所以在现在的应用服务器端的开发中池的设计和实现是开发工作中的重要一环。那么到底什么是池呢?我们可以简单的想象一下应用运行时的环境,当大量的客户并发的访问应用服务器时我们如何提供服务呢?我们可以为每一个客户提供一个新的服务对象进行服务这种方法看起来简单,在实际应用中如果采用这种实现会有很多问题,显而易见的是不断的创建和销毁新服务对象必将给造成系统资源的巨大开销,导致系统的性能下降。针对这个问题我们采用池的方式。池可以想象成就是一个容器保存着各种我们需要的对象。我们对这些对象进行复用,从而提高系统性能。从结构上看,它应该具有容器对象和具体的元素对象。从使用方法上看,我们可以直接取得池中的元素来用,也可以把我们要做的任务交给它处理。
    这里写图片描述
    图 9 云资源分布图

    4. 第四天实习日志如下

    项目名称:
    配置主机
    项目功能简介:
    在服务器存储资源中上传操作系统镜像文件、在主机池中创建虚拟机、为虚拟机安装操作系统、为虚拟机安装CAS Tools工具、为虚拟机分配IP地址等
    本人负责模块:
    首先登陆CAS虚拟化管理平台,在存储空间中开辟一块空间用于存储操作系统的镜像,然后在计算机中选择需要上传的镜像,等待上传完成后,在主机池中创建一个虚拟机,设置使用刚上传的镜像作为需要安装的镜像,然后启动虚拟机,点击显示控制窗口,在控制窗口完成操作系统的安装。在控制窗口中安装操作系统与计算机安装操作系统的步骤与构成完全相同;操作系统安装完成后,在虚拟机的操作系统中安装CAS Tools,与计算机安装的步骤相同,最后在虚拟机的操作系统中打开网络设置,为虚拟机分配设置IP地址以及网关。
    心得:
    在存储空间中开辟用于存储操作系统的镜像的空间时,应该注意开辟的空间大小应当能够完全容纳操作系统的镜像,否则会导致存储空间不足,导致上传失败,其次,在计算机中选择操作系统镜像的路径时尽可能的避免使用含有中文的路径,有可能会导致上传路径无法识别导致上传失败。
    启动虚拟机进行操作系统的安装时,要在启动虚拟机前设置使用的镜像作为驱动器进行启动,否则虚拟机没有检测到可使用的镜像,无法安装操作系统;在安装操作系统时,需要打开控制窗口,会发生点击打开控制窗口后没有任何的反应,此时应当检查是否允许浏览器打开另一个窗口,如果不允许打开额外的窗口,那么打开控制窗口就会失败,这是一般的浏览器应在地址栏的右侧显示一个红色的叉号,表示浏览器自动的拒绝这一个动作,点击叉号,选择允许打开额外的窗口,会打开控制窗口,控制窗口显示的内容与计算机正常打开镜像的内容完全相同。
    在控制窗口中安装操作系统时,应当有足够的耐心,等待虚拟机做出反应,因为计算机中的虚拟机软件中的系统上安装另一个操作系统,所以对计算机的性能有较高的要求,计算机反应较慢属于正常;正确的做法是耐心的等待,而不是多次的输入命令,否则会发生虚拟机完全的卡死情况的发生。当发生虚拟机完全卡死的情况时,返回CAS资源管理系统,在管理系统中关闭虚拟机,如果点击了关闭虚拟机,长时间没有关闭虚拟机,那么说明虚拟机的资源不够,或者发生阻塞,不能正确的响应关闭虚拟机的操作,这时,应当点击关闭虚拟机的电源强行关闭虚拟机,然后重新启动虚拟机,进行操作系统的安装。

    5. 第五天实习日志如下

    项目名称:
    管理虚拟机
    项目功能简介:
    制作虚拟机模板、通过模板部署虚拟机、虚拟机克隆、虚拟机快照、虚拟机迁移、虚拟机关联
    本人负责模块:
    在主机池中已经存在一个安装了操作系统的虚拟机,通过把虚拟机克隆为模板和转化为模板两种操作创建一个与虚拟机完全相同的虚拟机机模板,然后通过虚拟机模板部署一个虚拟机,部署的虚拟机与原虚拟机完全相同,在使用虚拟机克隆出更多的虚拟机,然后为刚安装的虚拟机创建一个快照,后面的操作中发生错误时,通过快照进行虚拟机状态的恢复,在CAS-CVM云虚拟化管理平台中此时有3个虚拟机,把其中带有快照的虚拟机通过迁移功能迁移到CAS-CVK云虚拟化内核系统中,即可减轻主服务器的负担,然后把CAS-CVM云虚拟化管理平台中剩余的两个虚拟机关联为一个整体,然后把CAS-CVM云虚拟化管理平台与CAS-CVK云虚拟化内核系统中的主机进行交换,验证是否成功的把两个虚拟机正确的关联。
    心得:
    在主机池中创建虚拟机应当考虑到需要安装的操作系统以及即将的用途方面,对虚拟机分配足够的资源,否则在安装操作系统后,无法进行其他的用途,比如需要虚拟机安装WIN7系统,那么最少应当分配给虚拟机20G的磁盘和1G的内存,1个CPU。但是考虑到其他更高要求的用途,应适当的进行调节,避免出现资源不充足的错误,导致前功尽弃。
    在创建虚拟机模板的存储空间时,选择服务器的存储空间而不是虚拟机的存储空间,然后在CAS虚拟化管理平台中进行创建模板。注意到创建模板的两种方式,转化和克隆,区别在于,转化完成后会删除掉虚拟机,而克隆则不会删除虚拟机,这是最主要的区别。在计算机上进行实验过程中,如果计算机的配置并不是很好,应当选择克隆的方式获得模板,这是因为转化的实现可以认为是克隆加删除组合而成的,如果选择转化的方式,那么,就相当于同时执行了两个命令,对于性能不是很好的计算机是一个不小的负担。
    在使用模板部署虚拟机时,应该主要云服务器集群剩余的资源是否满足模板需要的资源,如果剩余的资源不够模板需要的资源,那么就应当选择其他资源较少的模板或者增加资源的方式解决问题。在进行虚拟机快照时,应当选择正确无误的时候进行快照,确保在保存快照时,虚拟机的一切正常,在使用快照恢复时,也应当确认快照是无损的,这样才能正快速的找到之前操作的错误之处,然后进行改正。
    在进行虚拟机迁移时,保证目标服务器的资源能够完全的满足需要迁移的虚拟机需要的资源,同时,因为迁移需要时间,所以在迁移的过程中,要保证目标服务器与源服务器之间的通信不断开,如果之间的通信在迁移的过程中断开,那么是肯定不会迁移成功的。在进行关联两个虚拟机后,测试的过程中,保证目标服务器的资源充足,以及之间的通信的连接。

    6. 第六天实习日志如下

    项目名称:
    云服务创建
    项目功能简介:
    增加云资源、创建组织、增加用户和用户组
    本人负责模块:
    增加云资源包括外挂的磁盘,以及新增的内存,CPU等等,创建不同的组织,了解CIC云业务管理中心的权限管理方式,增加不同的权限的用户,并对用户进行分组,认识到分组的组织管理的优点
    心得:
    增加云资源首先需要保证让CAS虚拟化管理平台能够检测到需要增加的云资源,比如需要增加一个额外的磁盘,首先应当保证被增加的磁盘应当是能够使用的,完好的,能被计算机识别,并加入到待增加的资源的列表中。在增加的实际操作中,正确的选择被增加的资源的各种参数,否则会发生增加资源不匹配的错误。
    CIC云业务管理中心主要的管理方式是组织管理方式,内部有默认一个最高权限的admin管理员,再下来是默认的组织管理员,一个默认的系统管理员,其中系统管理员的权限大于组织管理员。其中admin管理员能够对所有的用户进行管理,对所有的组织进行管理,对所有的业务进行处理;系统管理员能够对系统内的用户进行管理,以及分配的其他的管理员进行管理,以及业务的管理;组织管理员能够管理组织下的用户,以及用户提交的业务。
    这里写图片描述
    图10 用户权限分布图
    在创建许多的用户后,对用户进行管理是一件重复劳动的体力工作,使用用户分组,可以快速进行多用户的管理,比如为不同的用户组发布不同的虚拟机模板,或者为有需要的同一用户组的许多用户分配资源等等,所以说,用户组可以大量的减轻管理者的负担,减轻管理者的工作量。
    同样的,分组不仅仅可以对普通用户进行使用,对于在系统中创建的其他的管理员同样可以进行分组管理,比如为同一类管理员分配相同的权限,比如为业务审核管理员提供查看业务,审核业务的权限,为部署管理员分配修改云资源的权限,查看业务的权限,这样可以对不同的管理员进行不同权限划分,不仅仅可以使专业的人只做专业内的事情,还为大型,超大型的人员管理提供了解决方案,减小部门职能冗余,减少管理员的要求等等。

    7. 第七天实习日志如下

    项目名称:
    云服务的使用
    项目功能简介:
    创建固定桌面池、创建浮动桌面池、SSV用户自主服务平台管理
    本人负责模块:
    在CAS虚拟化管理平台中创建固定的桌面池,然后通过桌面池来部署虚拟机,其次在创建一个浮动的桌面池,通过浮动桌面池部署虚拟机,最后登陆SSV用户自主服务平台管理申请虚拟机,通过CIC云业务管理中心进行审核部署虚拟机,然后通过SSV用户自主服务平台提交注销虚拟机的业务申请,通过CIC云业务管理中心审核并注销虚拟机,比较固定桌面池和浮动桌面池的区别。
    心得:
    固定的桌面池部署的虚拟机,每次关闭虚拟机后,之前所做的工作全部会进行保存,再次开启虚拟机后,状态与环境会从磁盘进行恢复,与上次关闭电源时的情况完全相同;但是浮动桌面池部署的虚拟机,每次关闭虚拟机后,之前所做的工作全部不会进行保存,再次开启虚拟机后,状态与环境与刚部署的情况完全相同,就相当于是从服务器刚刚申请了一个全新的虚拟机。也就是说,浮动的桌面池部署的虚拟机是一个带有还原卡的虚拟机,而固定的桌面池是不带有还原卡的虚拟机。
    通过SSV用户自主服务平台管理进行云业务的申请,用户可以自行指定需要的通过发布给本用户组的系统模板,然后通过审核后,以模板进行部署,同时也可以自行指定需要的系统以及对应的资源,管理员审核通过后,手动进行资源的分配和系统的部署安装,但是手动部署的方式不仅容易出错,效率也不高,但较为灵活。

    8. 第八天实习日志如下

    项目名称:
    计科专业的实验室云资源管理系统—-分析设计
    项目功能简介:
    计科专业的实验室的现状与问题,设计解决方案
    本人负责模块:
    发现计科专业实验室的现状与问题所在,设计一个针对问题的解决方案,并对解决方案进行评估。
    心得:
    通过调查发现,计科专业的实验室一般是一室多用,实验室内部的计算机也是一机多用,不仅仅用来做一个实验,另一个实验也在相同的计算机上进行,所以导致实验室内部的计算机大多装有不止一个操作系统,而操作系统内针对不同的实验安装有不同的软件环境。比如同一个实验室,既可以做计算机组成原理的实验,也可以做编译原理的实验,同时也可以做计算机控制技术的实验,那么就要求计算机至少安装3个操作系统,每个操作系统安装多个软件,包括实验所用软件,还有一些常用的办公软件等等。
    其次调查发现,如果任课老师对于实验室的环境提出新的要求,但是实验室的管理员却不能在短时间满足任课老师的要求,包括给实验室内部的计算机安装一个新的软件,通常需要耗费较多的时间,同时也需要耗费大量的人力资源对每台计算机进行单独的部署安装,等待安装完成后,有需要对每一个计算机进行环境的配置,需要耗费大量的时间,而且不能及时的完成。
    还有实验室的管理人员通常是一个实验室,一个负责管理的老师进行管理,那么就会造成实验室的使用是基于管理老师的,比如说某个老师需要临时的使用实验室带着学生进行实验,但是此时管理老师却不在学校,那么就无法使用实验室,而且依靠人力进行管理,通常有较多的错误,遗漏的发生。
    学生们在上完实验后,有部分学生遗忘关闭计算机的电源,计算机的系统等等,通常需要管理老师检查后方能关闭总电闸,而且实验室的计算机都带有还原卡,如果实验的学生没有及时的保存自己的实验数据,那么下次实验就不能使用上次的实验数据。但是有些实验是从头贯穿到结束的,也就是说,这次的实验结果是下一次实验的开始环境,如果学生没有保存数据,下次就需要重新做上一次的实验,相当的浪费时间。
    基于以上发现的问题,通过使用云管理手段,可以解决这些问题。
    首先为每一个计科专业的学生添加一个SSV用户,其次根据实验的时间,内容,把用户进行分组,为每一个实验进行一个分组,一个用户可能在不同的分组,以组为单位进行管理。为每一个实验创建一个桌面池,根据需要,如果每次实验的数据无需保存,那么就采用浮动的桌面池进行部署,如果每次实验的数据需要保存,那么就采用固定的桌面池进行部署。
    这样可以解决一机多用的问题,在每一次实验中,释放掉无用的系统与软件,可以使有效的资源量进行增加,同时也保证了实验环境的纯净性。比如之前的实验室的计算机是4G的内存,512G的磁盘,但是因为计算机安装了其他的操作系统,那么磁盘的大小就会受到影响;一个操作系统内安装多个软件,内存也会受到影响。所以使用云管理手段,可以避免这些问题。当学生做完试验后,管理员也可以在管理端统一的关闭计算机。

    9. 第九天实习日志如下

    项目名称:
    计科专业的实验室云资源管理系统—-实现
    项目功能简介:
    分析计科专业现有实验室的管理方案,进行实现云资源管理方案的实现
    本人负责模块:
    首先创建一个计科专业的组织,在组织下创建3个子组织,分别是计科1,2,3班,然后根据实验内容与时间进行分组,比如,计科1班周一上午计算机组成原理作为一个用户组,计科2班周一下午计算机组成原理作为一个用户组,因为实验都是以班为单位,所以,直接操作用户组即可。然后增加访问策略,比如计科1班周一上午计算机组成原理,那么就通过限制其IP地址来限定实验的地点,通过限定其访问时间来限定实验的时间,然后根据需要来使用浮动或者固定的桌面池来部署。当实验完成后,管理员在管理端关闭实验室的计算机。
    心得:
    在为不同的实验创建不同的用户组时,需要仔细的理清楚用户组之间的关系,尽可能使用直观的图表方式进行设计。
    这里写图片描述
    图11 网络资源部署图
    这里写图片描述
    图12 用户组管理组成图
    这里写图片描述
    图13 用户组权限图
    这里写图片描述
    图14 为实验设置的模板
    这里写图片描述
    图15为实验室的IP做出访问策略
    这里写图片描述
    图16用户分组情况
    这里写图片描述
    图17 管理员分组
    这里写图片描述
    图18 管理员
    这里写图片描述
    图19设置的桌面池
    这里写图片描述
    图20浮动桌面池的回收策略中设置访问时间限制
    这里写图片描述
    图21实验同学提交的电子流申请
    这里写图片描述
    图22为临时实验增加的云消息
    这里写图片描述
    图23实验同学选择模板
    这里写图片描述
    图24云主机申请成功
    这里写图片描述
    图25实验完成后注销云主机

    10. 第十天实习日志如下

    项目名称:
    计科专业的实验室云资源管理系统—-测试与总结
    项目功能简介:
    对计科专业的实验室云资源管理系统进行全测试,总结云资源管理系统与现有管理系统的对比
    本人负责模块:
    通过使用不同的用户身份登陆SSV用户自主服务平台管理,模拟使用实验室资源,验证设置的策略是否正常工作,实验环境进行评估,部署流程的优化。最后总结云资源管理系统的优缺点。
    心得:
    降低计算机成本:由于操作系统在云端部署,一台台式机不需要传统操作系统进行安装的或者安装多个操作系统。
      改进的性能:云计算系统中的计算机启动并运行速度更快,因为它们将更少的程序和进程加载到内存中。
      降低软件成本:无需购买昂贵的软件应用程序,而可以免费获得大部分所需的软件。
      即时软件更新:当应用程序基于Web时,会自动更新。也就是说,当访问基于Web的应用程序时,将获得最新版本。
      改进的文档格式的兼容性:不需要担心兼容的文件在的计算机上创建其他用户?应用程序或操作系统。
      无限存储容量:云计算几乎无限存储。
      提高数据可靠性:如果的个人计算机崩溃,所有数据在云中都是安全的,仍然可以访问。
      更轻松的团队合作:多个用户可以轻松协作文档和项目。
      设备独立性:不再需要连接到单个计算机或网络。  

    11. 第十一天实习日志如下

    项目名称:
    生产实习报告的撰写与排版
    项目功能简介:
    按照要求正确详细的排版电子版的生产实习的报告,打印出纸质版后对需要进行手写的部分认真的撰写。

    12. 第十二天实习日志如下

    项目名称:
    生产实习报告的提交
    项目功能简介:
    在规定时间将生产实习报告提交到相应老师处

    展开全文
  • 0718实习日志

    2019-07-18 11:23:52
    0718实习日志 今天的主要内容是做网页用户信息的批量删除功能 1.1 用户信息界面的补充 首先将用户界面左边和右上角的空余地方添加用户名增加可读性, <security:authentication property="principal.username" &...

    0718实习日志


    今天的主要内容是做网页用户信息的批量删除功能
    1.1 用户信息界面的补充
    首先将用户界面左边和右上角的空余地方添加用户名增加可读性,
    <security:authentication property="principal.username" ></security:authentication>
    使用security框架的内置将用户名显示上去。然后添加右上角的注销功能的路径。
    1.2 用户凭借权限显示模块
    只需要
    <security:authorize access="hasRole('ADMIN')" >
    使用这个可以让权限角色不为ADMIN的用户隐藏用户管理界面。

    2.0 批量删除功能
    首先做的就是导入jar包,添加使用的配置声明。导入网页所需要的js文件夹。
    2.1 网页
    在jsp文件中添加有关js相关的函数和deleteAll方法,

    <script type="text/javascript">
                        function deleteAll() {
                            var checkNum=$("input[name='ids']:checked").length;
                            if(checkNum==0){
                                alert("请至少选择一项");
                                return;
                }
                if(confirm("确定要删除吗?")){
                    var userList = new Array();
                    $("input[name='ids']:checked").each(function () {
                        userList.push($(this).val())
                    });
                }
                $.ajax({
                    type:"post",
                    url:"${pageContext.request.contextPath}/user/deleteAll.do",
                    data:{userList:userList.toString()},
                    success:function () {
                        alert("删除成功");
                        location.reload();
                    },
                    error :function () {
                        alert("删除失败");
                    }
                })
           }
    	</script>
    

    这一段代码收集了页面端勾选的所有用户id,然后使用ajax,带着包含所有用户id的list转入deleteAll.do
    2.2 后台
    需要创建deleteAll.do的执行。首先写控制层,

    @RequestMapping("deleteAll.do")
        @ResponseBody
        public String deleteAll(String userList){
            String[] strs =userList.split(",");
            List<Integer> ids=new ArrayList<>();
            for (int i=0;i<strs.length;i++){
                ids.add(Integer.parseInt(strs[i]));
            }
            userInfoService.deleteAll(ids);
            return "";
        }
    

    因为是使用了ajax,需要一个ResponseBody,本例中我们不需要回复就返回空,主要功能是转换格式 ,然后是服务层和持久层,基本没有什么实际功能,最后写sql语句,

    delete from userinfo where id in
            <foreach collection="list" item="id" open="(" close=")" separator=",">
                #{id}
            </foreach>
    

    这样写就可以将格式重新编写。

    展开全文
  • 0717实习日志

    2019-07-17 21:53:30
    0717实习日志 今天的内容是权限管理 1.0准备 首先创建数据库,一共创建两个表。首先是一个确定身份种类的表,第二个是用户和身份的对应关系表(一对多)。 1.1 配置文件 spring-security.xml 这个文件用来配置spring...

    0717实习日志


    今天的内容是权限管理
    1.0准备
    首先创建数据库,一共创建两个表。首先是一个确定身份种类的表,第二个是用户和身份的对应关系表(一对多)。
    1.1 配置文件
    spring-security.xml 这个文件用来配置spring-security框架,然后在web.xml中添加。最后还有对于pom.xml的修改,增加了相关jar包。
    2.0 权限管理
    首先是实体类,创建一个Role类,内含id用户名和用户描述,在持久层创建一个使用用户的id来查找用户权限的方法,然后再创建RoleMapper.xml文件来存放sql文件。今天的最重要的部分就是使用框架实现功能,首先这些方法在服务层重写,

    @Override
        public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
            UserInfo userinfo = userInfoDao.findByUserName(username);
            List<Role> roles =roleDao.findRoleByUserId(userinfo.getId());
            User user =new User (userinfo.getUsername(),"{noop}"
                    +userinfo.getPassword(),getAuthority(roles));
            return user;
        }
    private Collection<? extends GrantedAuthority> getAuthority(List<Role> roles){
                List<SimpleGrantedAuthority> list=new ArrayList<>();
                for(Role role:roles){
                    list.add(new SimpleGrantedAuthority("ROLE_"+role.getRolename()));
                }
                return list;
    }
    

    首先重写getAuthority方法用来编辑存放用户权限的列表来适合框架User使用,然后我们要重写loadUserByUsername这个方法,使用传入的用户姓名获取他的权限信息,然后将用户名用户密码和编辑过格式的用户权限列表作为参数创建User对象,返回user对象。整体来说就是需要使用框架的固定规范来实现权限功能。

    展开全文
  • 0711实习日志

    2019-07-11 16:56:47
    0711实习日志 1.1 创建数据库 首先我们安装了指定的数据库管理软件,SQLyog。创建一个user的数据库,添加一个userinfo的表,向表中添加id、username和password,添加几条数据来做测试。 2.1 使用idea创建一个基础...
  • 0715实习日志

    2019-07-15 15:02:39
    0715实习日志 今天的任务大致是来重现创建一个ssm框架的小项目,在使用相同框架模式的情况下还是很快的 。 1.1创建项目: 今天的创建项目主要是对之前操作的重温,主要目的是需要在将配置文件导入时给我们讲解配置...
  • 电信实习日志

    热门讨论 2008-03-12 22:23:26
    南京电信实习日志 很好的借鉴
  • 0712实习日志

    2019-07-12 19:55:46
    0712实习日志 今天的内容都是我之前没有接触过的,老师在讲课的过程中会先使用我们之前写程序的方法写,然后在使用架构进行优化修改,比如一个@Autowired的关键字,可以让我们创建变量的时候省下很多事。当然最直观...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,794
精华内容 717
关键字:

实习日志