王傲然 陈雪姣 王胤 张大卫 韩源
(天津职业技术师范大学 信息技术工程学院 天津市 300222 )
摘要:我们致力于创造一个开放的基于scratch的easyduino应用平台,让每个人的成果能被更多人所关注,以此来促进青少年间的编程普及度。应用平台内容主要包括用户间成果的联机体验,用户提交代码的查重,分析每个用户感兴趣的项目并做到主页智能化推荐,应用关键词检索,应用的更新及推荐的推送服务以及应用平台基础的应用分类及其上传下载与存储。
关键词: Scratch、应用平台、存储
1.引言
该项目的内容制定确立前夕经历了开发小组多次会议讨论,在调研期间,开发组成员对现今的青少年编程学习方式进行了深度调研,调研发现,随着科学技术发展和家庭对青少年教育重视程度的增加,青少年对编程学习的需求与日俱增。其中Scratch则成为了最受欢迎的编程学习工具。但Scratch作为一个单机的学习软件,缺少一个公开的交流平台。青少年缺少与其他人交流的渠道,既不能与他人分享自己的编程创意,也不能阅览他人的公开成果,从而引发如创作环境差,效率低下以及由此导致的学习情绪受影响等问题。此项目致力于创造一个开放的应用平台,让每个人的成果能被更多人所关注,以此来促进青少年间的编程普及度。我们的项目给使用Scratch的青少年一个更广阔的平台去了解编程,吸引更多的人去喜欢它。项目支持用户的分享及联机,打破了编程枯燥的刻板印象,让人们以一种全新的角度去了解编程,喜欢编程。
2.项目的现状与前景
Scratch是当下让青年人接触编程,爱上编程的有效方式。本项目增加了用户间的交流,为客户提供了一个更广阔的平台,对于客户的定位更加准确,有效地解决了现在Scratch代码缺乏开源交流的问题,使用户有更多的灵感和更广阔的创作空间,这将给青少年编程学习带来更好的方式和更多的可能,而且也能吸引更多的青少年喜欢编程,并开始去了解学习编程。
此软件利用Python作为与Scratch之间的数据交互,其中Python语言作为一种解释型的高级语言,其特性使得其与Scratch能够良好地进行数据交互。Easyduino应用平台采用阿里云服务器作为服务器端,采用PC端作为客户端。能够很好的兼顾Scratch编程的便利性和我们希望的能够实现其分享性的初衷。此外我们应用了游戏通信平台(GateServer)作为网络数据交互的接口,用于服务器和客户端之间的数据交互。
当下,Scratch在世界各地都拥有着广泛的使用群体,这些拥有相同兴趣爱好的同好却缺少一个能够为其提供可以自由交流学习空间的平台。由于使用者遍布世界各地,Scratch应用平台就成为了他们沟通交流相互学习的必要途径。而这些平台用户所上传的各种Scratch程序,也能够更好的启迪并激发后来学习者的兴趣。
综上所述,显然一个easyduino应用平台有着广泛的应用前景。
3.项目所存在的问题与处理
在开发项目的过程中,的确存在着许多的问题需要我们去一一处理。例如最开始的框架选择,架构图的确定与修改,对数据交互的通讯平台的抉择和学习和平台的搭建等。由于没有项目经验,小组着实遇到了许多困难。通过咨询老师,查找资料等途径,最终我们解决了这些困难并从中收获了很多项目经验。也从这次的项目中学会了如何解决一些问题,更好地了解了一些前沿的技术。
4.项目所存在的问题但尚未解决
应用平台目前功能还不太完善,预想中对用户感兴趣的程序的推送方案还未能完全实现,对服务器与所有玩家间的连接管理还不够灵活完善,没有达到预期的程度。同时对服务器的监控还不够详细完全,希望通过今后对技术的进一步学习,可以继续完善以上不足。
5.系统的设计与技术
5.1各功能描述:
1.用户下载已有系统
1)通过关键字检索应用
选择页面中的tag或手动键入应用关键词或作者以搜索应用。系统会根据应用与关键词的相近程度对用户进行反馈。另外用户可以利用上传时间,程序大小,下载量等对搜索出来的程序进行排序。
2)检验应用是否可供免费下载
检测应用是否为免费应用,是则进入下载模块,从云端下载应用到客户端。反之则进入付费界面进行支付。
2.客户端的应用数据上传、审核与评级
1)应用数据的上传
将含有用户信息的Scratch程序上传至云端,存入到数据库中。程序信息包括程序的内容,程序所带标签,程序的作者以及程序是否免费。以上信息有助于其他用户搜索和下载相似程序,详细的信息有助于系统对程序和用户的管理。
2)应用数据的查重
用户上传的数据不会立刻上架,首先会经过数据库的查重,以保证程序的原创性。
3.用户感兴趣消息推送
后台运算后根据用户历史下载所具有的tag给其定时推送相应的消息内容,让用户可以更简便的获取到感兴趣的消息。
5.2关键技术
项目应用了游戏通信平台(Gateserver)用于服务器和客户端之间数据交互,管理所有玩家和游戏服务器连接。GateServer作为网络游戏数据交互的接口,是一个高性能的服务器底层通信模型。它采用Winsocket网络编程实现玩家与游戏服务器的通信,其技术核心是利用Socket和消息队列构建。GateServer对外接口全部采用标准TCP协议,丰富的API接口,可以方便进行二次开发,而且不依赖具体网络环境,从点对点、一点对多点到多点对多点的模式都能适用。
6.结语
目前此应用平台已经可以实现对于scratch应用程序的上传、下载与分享,系统对应用程序和用户的管理也趋于完善,已经是一个相对比较完善的系统。以下是对项目编写过程中的一些总结。
(1)首先通过对需求的研究和分析,可以正确地确定系统的设计,然后挑选出一些系统需要的关键技术和协议的原理。随后对系统的架构进行一些简单的规划,确定出系统的简单逻辑架构。
(2)最后对逻辑架构的各个模块所需数据进行分析,把所需数据列表列出来。接下来是对系统详细的分析,项目中使用到GateServer进行数据交互,开发人员考虑到用户多为青少年群体,可能不具备良好畅通的网络状态,因GateServer对具体网络环境无强要求,且多种模式都能适用的特性,故选用GateServer作为接口;
(3)接下来考虑到应用商店的特殊性,我们为其增加了个性推送服务与主页推荐,来增加应用程序的曝光度,也让用户能够接触更多自己感兴趣的内容;
参考文献:
[1]翟永超.Spring Cloud微服务实战[M].北京:电子工业出版社,2017:11-201.
[2]Mark Summerfield.Python编程实战-运用设计模式并发和程序库创建高质量程序[M].爱飞翔,译.北京:机械工业出版社.2014.
[3]鸟哥.鸟哥的Linux私房菜:服务器架设篇(第3版)[M].北京:机械工业出版社.2012.
本篇论文成果与国家级大学生创新创业计划“easyduino应用平台”项目(项目编号202010066036)一致。