网络架构、云平台和微信公众平台开发接入

版权声明:本文为博主原创文章,未经博主允许不得转载。

云与后端相关的技术似乎并不属于嵌入式和物联智能硬件开发工程师的范畴,但是嵌入式开发工程师有必要认识成熟的网络架构和相关的云技术,以拓展自己在系统架构方面的视野。大数据分析是物联网背后的核心价值,物联智能硬件是物联大系统的终端,开发工程师不仅要深入精通物联技术,也应该去理解大系统,甚至整个生态领域的相关技术。

作为嵌入式开发工程师,也许并不需要熟悉云和后端的技术开发,但至少要对其中用到的技术和接口有一定的认识。

一、网络架构

常见的网络架构分为C/S和B/S两种模式。

1. C/S是客户端/服务器模式,典型应用如QQ客户端、百度云管家等;B/S则是浏览器/服务器模式,典型的应用就是门户网站、银行业务系统等。两种模式的优点和缺点都显而易见。

2. C/S交互性强、网络通信量低、响应速度快,很多处理都集中在本地客户端完成,是胖客户端/瘦服务器。但是其是针对性开发,不利于变更和扩展。C/S通信编程基于TCP/IP层的socket编程,或者基于对socket的封装类。

3. B/S方式分布性强、升级维护方便、开发简单、总体成本低,本地只需要安装一个通用的浏览器即可,是瘦客户端/胖服务器。但其有数据安全性问题、对服务器要求过高、数据传输速度慢。B/S的通信是基于HTTP协议。随着网页脚本技术的提高,B/S也逐渐增强本地浏览器端的处理能力,以减轻服务器的负荷。

4.以上分析都是基于对PC端网络架构的思考,但是在移动互联网上却有截然不同的体验。以门户新闻网站而言,在PC领域是以B/S方式来呈现的,但是如果将其直接移植到手机和平板端,会因为屏幕尺寸的差异使得用户体验变差,尽管在服务器端可以通过获取终端的个性化参数来进行适配,但总体体验是远不上APP客户端来展现的,所以我们在手机看到的是新浪新闻、网易新闻等等客户端。在移动互联网领域,应该考虑的是更多的垂直服务,而不是大而全的产品。

二、服务器架构

接下来以B/S架构为例来分析服务器端的架构。示意图如下:

1.用户浏览器来访问业务系统,如银行业务,浏览器是直接跟WEB页面服务器交互的。WEB服务器一般会部署apache(或者tomcat),而业务系统的网页(如html,php)则通过apache服务转为HTTP协议通信给用户。

2.业务系统不同的业务页面由业务引擎来进行控制和处理,业务引擎还会访问数据库,另外还需要将处理结果的页面视图通过WEB向用户展示。

3.如果数据访问量不大,我们一般可以认为WEB是一台服务器,业务引擎是一台服务器,数据库和服务是一台服务器。如果数据量大,那WEB前面可能还有负载均衡服务器,业务引擎和数据库可能是服务器集群。如果是超大型数据,如大数据,那传统的oracle根本就不管用,要用到分布式文件系统,如Hadoop里面的HDFS。当然,如果数据量很小,一台服务器装下三者也可以。

三、后端软件架构

以上分析是基于部署视图对整个系统的理解。在一般的软件业务系统中,web服务使用apache(开源),数据库服务用MySQL(开源)等,都是成熟的软件产品,或者我们可以认为它们是一种软件工具。在实现业务系统中,我们能做的是去高效利用apache和mysql,而业务实现的核心是业务引擎的实现。

业务引擎是应用系统的核心,应用系统上成熟的模型是MVC模型。M是模型,是对数据库应用接口的封装,业务引擎即通过M模型的接口来访问数据库的业务数据;V是视图,是应用根据数据处理的结果而整合的页面,最终会通过WEB推向用户的浏览器;而C则是控制,即业务引擎的核心,其根据用户的交互来进行有针对的数据处理。

用户的交互最终都会通过HTTP协议来传送,而HTTP有两种方式,类似编程中的函数的参数传递,一种是GET的方式,即在网页的访问地址后面加上参数来传递;另一种是POST方式,不出现在访问地址后面,而是出现在消息体中。MVC的控制器会根据参数的不同来区分不同的子业务请求,并将它们交给对应的数据处理引擎来处理。

业务引擎的开发一般都是用解释性语言来开发,如php,JSP,asp等等。中小型系统常用apache+php+Mysql这种组合,另外就是tomcat+jsp+mysql.

四、云平台

云平台并不是什么神秘的技术,对于应用者而言,云技术能给我们带来极大的便利和成本优势。我们来想象一下,一个公司如果只在广州办公,它开发的产品系统是服务全国,如果它只是在自己的公司架设服务器,但全国各地用户访问的IP包都要在网络上跋山涉水来到广州,北方的用户的体验肯定很差。假设淘宝的服务器都在杭州,那11.11的抢购,我们在广州怎么抢得过杭州的。因为租赁云平台来假设分布式的服务平台是大型系统的不二选择,有人可能会想,这些公司可以在全国各地租机房买服务器放着啊,成本呢?而且用户的访问也有峰值和周期性,360的抢票虽然牛掰,但如果不是过年,也没多少人用吧。平时买那么多服务器就为了过年抢一抢多浪费,肯定比不上过年有针对性地租用云资源来得便宜。

简单地说,对于一般用户来说,云平台就是提供在看不见的地方提供虚拟服务器主机(CPU、内存、硬盘)和数据库、WEB服务(apache)等资源。对于云平台的提供商,那才是虚拟集群技术人才的聚居地,咱们不去讨论了。

目前,国内有阿里云、新浪云和百度云等知名云平台。新浪云对于体验用户是免费的(php免费,Java是收费的)。对于初学者,可以考虑申请新浪云来进行技术开发。

各种云的申请和创建云应用的过程都比较简单。以新浪云为例简单说明一下,详细的例程可以百度得到。

1.注册新浪微博账号,两者是绑定的。

2.以新浪账号登陆新浪云计算中心。

3.在新浪SAE上创建新应用,如图:

这个时候可以通过二级域名来访问了,即意味着你拥有了云平台的主机资源和apache服务和php脚本解释引擎。

4.编辑或者上传代码(php语言开发)

五、微信公众平台开发接入

微信公众平台的后台管理有两种模式,一种是常规的模式,即由微信官方提供的后台菜单功能来进行管理,如用户管理、群发、交互回复等等;另一种是开发者模式,即由公众号的运营商自行开发后端,来对关注该公众号的用户提供服务,如自动回复、地理信息服务、移动支付等等。微信硬件服务也属于开发者模式,由微信硬件的厂商提供后端进行支持,详细的架构可以参考《物联网架构场景技术分析》一文。开发者模式给微信公众号注入了强大的生命力,有第三方创造力的加入,使得微信公众服务大放异彩,也可以预见基于微信的物联网会推到物联网大幅前进。

第三方后端服务假设在云前述的云平台基础上,只要按照微信提供的接口即可以接入微信公众平台。

1.先使用token来验证第三方主机方的存在。

2.第三方服务按照微信的接口来提供服务。目录微信公众号提供消息服务、对话服务、移动支付、硬件服务、地理信息、图像音频等方面的接口。详细请参考微信官方资料。

本文从大的宏观网络架构一步一步深入到所谓微观的微信后台接入,希望对你有所启发。

1、讲述C/S和B/S网络架构

2、从部署视图理解(S)服务器架构,包含web、业务引擎、数据库

3、从开发视图理解业务引擎的软件架构

4、云平台提供服务器资源(web服务、数据库服务、主机资源),申请免费云

5、云平台实现微信公众平台开发接入

作为嵌入式开发工程师,不用对未知领域有所畏惧,只要付出足够的努力,一切都能在掌握之中!

敬请关注微信公众号:嵌入式企鹅圈,获取更多嵌入式和物联网开发相关技术原创分享。

时间: 2024-12-14 18:51:16

网络架构、云平台和微信公众平台开发接入的相关文章

微信公众号开发--接入

微信公众号开发 微信开发者工具:https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html 需要绑定开发者账号:微信公众平台--开发者工具--web开发者工具--绑定开发者微信号 微信公众平台接口调试工具:https://mp.weixin.qq.com/debug/ 接口调试需要使用"access_token",access_token的获取需要从在基本设置中的url访问获取,其他终端基本无法获取 1

微信公众平台开发(一)——环境搭建与开发接入

一. 初始微信公众平台 微信公众平台,即我们平时所说的“公众号”,曾用名“官方平台”.“媒体平台”,但最终命名为“公众平台”.从微信的命名我可以发现,公众平台不只是官方.媒体使用的平台,而是对所有公众都开放的统一平台. 微信公众平台地址:https://mp.weixin.qq.com/ 微信公众平台公分4大板块:订阅号.服务号.小程序.企业号.企业号后续将与企业微信合并,因此主要针对前三部分开始了解: 1. 订阅号和服务号均为传统意义的“公众号”,具有消息群发能力,详细区别可在官方平台查看:h

1.微信公众平台开发概述

一.微信公众平台简介 微信公众平台是腾讯在微信app内退出的针对个人.企业和组织提供业务服务与用户管理能力的全新服务平台,可以这样理解:“每个公众号就相当于一个轻量级的APP” 1.公众号基本类型 订阅号 为媒体和个人提供一种新的信息传播方式,构建与读者之间更好的沟通与管理方式 服务号 给企业和组织提供更强大的业务服务与用户管理能力,帮助企业快速实现全新的公众号服务平台 企业号 为企业或组织提供应用接口,帮助企业简历与员工.上下游供应链及企业应用间的连接 2.微信公众平台的基本功能 用户对话(订

微信公众平台开发最佳实践(第2版)

<微信公众平台开发最佳实践 第2版>微信公众平台开发经典之作全新改版,精心挑选最经典的商业项目开发,成千上万人次微信公众平台开发者从中受益 前言 出版说明 自从方倍工作室在博客园推出微信公众平台开发系列教程后,受到广大微信开发人员及爱好者的热情关注,相关文章的日访问量高达2万人次,而<微信公众平台开发入门教程>的阅读量超过50万,博客访问量总计超过500万,成为微信公众平台开发更新最快,传播最广.受众最多.资料最全的博客,很多博文被许多有影响力的网站转载,并被各大搜索引擎收录且排名

使用JAVA开发微信公众平台(一)——环境搭建与开发接入

一. 初始微信公众平台 微信公众平台,即我们平时所说的“公众号”,曾用名“官方平台”.“媒体平台”,但最终命名为“公众平台”.从微信的命名我可以发现,公众平台不只是官方.媒体使用的平台,而是对所有公众都开放的统一平台. 微信公众平台地址:https://mp.weixin.qq.com/ 微信公众平台公分4大板块:订阅号.服务号.小程序.企业号.按照微信2016年公开课规划,企业号后续将与企业微信合并,因此我们主要针对前三部分开始讲解: 简单的对比一下前三者的区别以及本次课程即后续课程的讲解重点

微信公众平台开发(一) 申请微信公众账号

一.微信公众平台介绍 微信公众平台是腾讯公司在微信的基础上新增的功能模块,通过这一平台,个人和企业都可以打造一个微信的公众号,可以群发文字.图片.语音.视频.图文消息五个类别的内容. 二.注册微信公众号 1.注册地址: https://mp.weixin.qq.com/ 点击右上角的"立即注册"申请微信公众账号. 2.填写基本信息 3.激活邮箱账号 到邮箱中收取邮件,激活公众平台账号. 4.信息登记 通过邮箱激活后,填写基本信息.选择为"个人"后,后面只能选择&qu

Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册

原文:Senparc.Weixin.MP SDK 微信公众平台开发教程(一):微信公众平台注册 微信公众平台(下面简称“公众平台”)注册步骤和导航还是比较流畅的,因此这个教程对于上网经验丰富的朋友来说,有点多余.不过为了保持教程系列的完整性,这里还是认认真真把流程梳理一遍. 第一步:进入公众平台地址:https://mp.weixin.qq.com 第二步:如果还没有账号,点击右上角的立即注册按钮. 第三步:填写“1.基本信息”,并点击[注册]: 第四步:登陆注册邮箱进行激活: 在邮箱中打开激活

微信公众平台运营指导

一.微信公众平台简介 微信公众平台,简称weChat,2012年腾讯推出.曾命名为“官号平台”和“媒体平台”,最终定位为“公众平台”,无疑让我们看到一个微信对后续更大的期望.和新浪微博早期从明星战略着手不同,微信此时已经有了亿级的用户,挖掘自己用户的价值,为这个新的平台增加更优质的内容,创造更好的粘性,形成一个不一样的生态循环,是平台发展初期更重要的方向. 二.订阅号和服务号 订阅号和服务号分别是微信公众平台针对不同用户和企业开发的两种不同类型的平台. 两者不同点: 订阅号一天仅能推送一条消息,

微信公众平台消息接口开发(32)空气质量指数查询

原文:微信公众平台消息接口开发(32)空气质量指数查询 微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 空气质量指数 PM2.5 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/archive/2013/05/30/weixin-if32-air-quality.html 一.获取原版数据 在中国环境监测总站http://www.cnemc.cn/ 可以找到全国城市空气质量实时发布平台,其地址为 http://113.108.142.147:20