基于关系型数据库的App Inventor网络应用(2)

第二节 后端技术

1. 网络结构

如图2所示,你一定见到过这类图,它被称作网络拓扑图,描述了网络应用中的几个重要角色以及它们之间的关系。以图中的云(internet)为分界线,云的一端是种类及型号繁多的客户端设备,人类用户使用这些设备从网络上获取信息。云的另一端是看起来冷冰冰的服务器。

图2 网络应用赖以生存的环境

图中一共有三台服务器,分别是web服务、应用服务器以及数据库服务器,问题是,要提供一个网络服务,真的需要这么多服务器吗?问题还有另外一个角度,当访问服务的用户数量及业务处理量非常庞大时,这三台服务器够用吗?其实,这并不是一个精确的网络部署方案,而是一个表示结构和功能的示意图,其中的“服务器”指的不是物理上的硬件设备,而是安装在硬件设备上的服务器软件。正如我们在第一节中提到的,在LAMP架构中,L代表Linux,是安装在服务器上的操作系统;A代表阿帕奇,是一款可以提供web服务的软件;M代表MySQL,是一款数据库服务器软件,而P代表php,是用来编写并运行服务器端程序的软件。对于一个用户规模不大的网络服务来说,这些软件完全可以安装在一台设备上。相反,当网络服务的用户数量或业务处理量巨大时,这些服务器端的软件可以分布在不同的设备上,以均衡用户及各项服务。

本文所采用的网络服务,从功能及结构上与上图相同,该服务部署在阿里云的云主机上,Web和应用服务器软件采用的是Node-RED,数据库服务器采用的是SQLite,开发服务程序所使用的语言是Node.js,其开发环境同样为Node-RED,也就是说,Node-RED既是服务器软件,也是开发服务程序的开发工具。如图3所示,注意比较图2与图3的细微差异。

图3 “单词本”案例中使用的服务器端软件

在上图中,与MIT App Inventor遥相呼应的是Node-RED,这是一款由IBM开发的、基于流的可视化编程工具,运行在浏览器中,用于开发物联网应用,可以将硬件(如Arduino)、Web API及在线服务连接起来。本文将使用Node-RED开发服务器端程序。

2. Node-RED安装与部署

为了降低学习难度,我们将在本地计算机上安装Node-RED开发环境,在完成主要开发任务之后,再以附录的方式介绍其他安装部署方式。

2.1 下载安装Node.js

访问网址https://nodejs.org/en/download/,下载所需版本的node.js,注意区分不同操作系统以及32/64位的差异。本文采用的是Windows-32位版本。安装过程很简单,一路点击“next”即可,如图4所示。

图4 安装Node.js

2.2 安装Node-RED

Node.js安装成功后,以管理员身份运行node.js,如图5所示。

图5 以管理员身份运行Node.js

执行上述命令后,将打开windows命令行窗口,在窗口中输入下列指令并回车:

npm install -g --unsafe-perm node-red

安装将自动进行,如图6所示。

图6 安装Node-RED

2.3 启动Node-RED

Node-RED安装完成后,继续在命令行中输入node-red并回车,将启动node-RED服务。

2.4 进入开发环境

在浏览器地址栏中输入http://localhost:1880即可进入开发环境。如图7所示。

图7 在浏览器中打开Node-RED开发环境

早在今年(2017)五月,Roadlabs就写过两篇文章《从零开发TinyWebDB原型系统》(1)(2),其中第2篇文章中初步地介绍了Node-RED使用方法。关于Node-RED的更多内容,请访问https://nodered.17coding.net/,该网站由Roadlabs移植并加以汉化,目前尚未完成全部汉化。为了保证本案例讲述的完整性,我会在下一节重复Roadlabs讲过的部分内容,有兴趣的读者可以根据上述链接先行阅读相关内容。

(0)

相关推荐

  • ssr知识汇总

    查看是不是服务端渲染 右键查看源码 有值就是服务端渲染 没有就是客户端渲染 把react组件 变成字符串 放在浏览器 import . {renderToString} from 'react-dom ...

  • docker 中运行的 jenkins 使用 npm 构建 Node.js 应用

    配置要求 最小 256MB 内存,推荐 512MB 以上 10GB硬盘空间,用于安装 Jenkins.Docker 镜像和容器 在 Docker 中运行 Jenkins 我们在服务器上面为 jenki ...

  • 基于关系型数据库的App Inventor网络应用

    一直想介绍这个题目,但顾虑重重.一方面担心自己为了面面俱到,迷失在对细节的纠缠中,另一方面,也担心读者的知识背景不尽相同,阅读过程中会止步于某个陌生的环节,半途而废. 我们的目标是用App Inven ...

  • 基于关系型数据库的App Inventor网络应用(3)

    第三节 初识Node-RED 开发环境简介 如图8所示,整个浏览器窗口被划分为四个部分: (1) 顶部黑色通栏,左侧显示Node-RED的LOGO,右侧显著位置为部署按钮,部署按钮的右侧(三条横线)为 ...

  • 基于关系型数据库的App Inventor网络应用(4)

    第四节 消息对象 在上一节的图10中,在设置debug节点的输出(Output)属性时,我们看到了这样的内容: msg.payload 随后我们将其中的payload改为topic.这项操作中的msg ...

  • 基于关系型数据库的App Inventor网络应用(5)

    第五节 安装SQLite数据库模块 SQLite是一款轻型的数据库软件,在Node-RED中使用SQLite数据库,需要安装一个模块.方法如下: (1) 点击系统菜单,选择"编辑调面板&qu ...

  • 基于关系型数据库的App Inventor网络应用(6)

    第六节 操作SQLite数据库 创建数据表 首先创建一个名为word(单词表)的数据表,该表有三个字段,分别为wid.english.chinese,其中wid为整数类型,是数据表的主键,englis ...

  • 基于关系型数据库的App Inventor网络应用(7)

    第七节 创建服务器端程序 对于客户端(前端)程序来说,当它需要访问服务器端(后端)程序时,需要知道两件事:一是请求数据指令的书写方式,二是返回数据的格式,只有这样,才能正确调用后端程序,并正确处理后端 ...

  • 基于关系型数据库的App Inventor网络应用(8)

    第八节 在App Inventor中访问Node-RED服务 手机端的单词本应用将要实现两个目标: (1) 向数据库插入新记录,即,新增单词: (2) 根据英文单词查询对应的中文,或查询全部单词. 在 ...

  • 基于TCGA数据库肿瘤免疫细胞浸润分析流程

    分析基本思路: 1.首先我们应该要知道什么是肿瘤的免疫细胞浸润模式,通过一些什么样的原理,可以用什么样的软件进行分析. 肿瘤免疫细胞浸润是指免疫细胞从血液中移向肿瘤组织,开始发挥它的作用,可以从肿瘤组 ...

  • 技术贴 | 微生太宏基因组报告解读 | 第十一篇:功能分析-基于ENZYME数据库

    本文由阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 ENZYME收录了7大类酶的四级分类信息.EC编号或EC号是酶学委员会(Enzyme Commission)为酶所制 ...