- 浏览: 534499 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
gaolegao2008:
如果报 is_volum 列名找不到之类的,我是从新部署了一个 ...
spring quartz 定时器报错 -
gaolegao2008:
部署到linux上时,还有一种情况就是mysql数据库区分大小 ...
spring quartz 定时器报错 -
qq123zhz:
yahier 写道 对我有帮助,但我看的一个demo程序,却没 ...
spring quartz 定时器报错 -
qq123zhz:
这个要在eclipse的插件环境下运行的,你不懂eclipse ...
GEF 自动布局 -
qq123zhz:
这个很久了,不记得啥时候写的了
json转为Map
Sina App Engine (简称SAE)是由新浪网研发中心出品的云计算平台,也是国内第一个公有云平台。从09年11月alpha版本发布到今年8月beta版上线,SAE已经进入了稳定运行的阶段。即使是在我们严格控制邀请码的情况下,也已经拥有了超过4000的开发者和超过3000的应用。光是新浪微博的应用频道,就有40个以上的应用运行在SAE上,而在Web应用的Top10中,有7个都运行于SAE。
- SAE可以降低开发者在硬件方面的投入,省钱;
- 可以加快应用开发的速度,省时间;
- 可以提供门户级别的可靠性,让大家专注于应用本身,省心。
- 特别适合于没有专门的架构团队和运维团队的公司和个人使用。
SAE采用大家熟悉的PHP+Mysql作为主要环境。所以在SAE上开发应用并不需要学习新的知识,只需要注意一些细节就可以了。移植一个现有的PHP应用到SAE上是很简单的事情,之前我将WordPress移植到SAE上时就只花了3个小时。
本地文件操作
在SAE上不允许对本地文件系统进行写操作。这既是系统架构的要求,也是为了保证代码的安全和应用的性能。
我们提供了TMPFS服务来解决临时文件的问题。TMPFS服务为开发者提供了一个目录,开发者可以将文件写到这个目录下,但是当本次请求结束时,这个文件将不再存在。
为了方便大家迁移项目,我们还允许大家利用PHP Wrapper通过文件系统函数来操作SAE的Memcache和Storage。大家知道Smarty是很依赖文件系统的模板,但是通过Wrapper方式,只需要修改非常少的代码,就可以让Smarty改为使用SAE的Memcache服务。(https://code.google.com/p/smarty4sae/)
数据抓取
出于安全原因,SAE不允许应用直接抓取外部的数据。所有对外的抓取操作,都需要使用Fetchurl服务。相对于CURL来做,封装后的Fetchurl服务其实更为简单,也可以支持自定义头和cookie等操作。
数据库
SAE使用的是标准的Mysql数据库,所以以Mysql为核心的应用不用做任何修改就能使用。Mysql的host和端口信息我们通过环境变量提供,直接在Runtime中获取就可以了。
我们强烈建议大家使用SaeMysql class来操作SAE的数据库,因为这个class默认进行了主从分离,可以避免在高并发时出现锁表等问题。
分布式存储
由于不允许对本地文件系统进行写操作,我们提供了分布式存储服务来帮大家存放一些应用运行过程中产生的文件,比如用户上传的图片等。使用SaeStorage可以方便的保持这些内容并生成可访问的URL。
在了解了以上需要注意的地方后,大家就可以很容易的在SAE上开发应用了。
在开发应用之前,你需要有新浪微博的账号和SAE的账号。微博的账号可以在这里注册;SAE的账号在这里可以注册。
有了微博账号之后,就可以在微博开放平台创建应用了。
这部分微博开放平台上有详细的图文说明,就不再重复了。完成应用的创建后,可以得到应用App Key和App Secret。
在SAE上创建应用
使用之前注册的SAE账号(不同于微博账号,是完全独立账号)登入SAE,在“我的应用”下,“创建应用”。
我们创建了一个appname为relink的应用,它可以通过relink.sinaapp.com进行访问。
在SAE上写微博应用不用从头开始,有方便快捷的应用向导可用。
在“应用向导”下选择“社会化应用”分类,点击“新浪微博OAuth框架”下边的“安装”按钮。
选择安装到应用“relink”下,安装为新版本1。
填写好我们从微博开放平台得到的微博应用的AppKey和AppSecret。
至此,我们已经完成了最基本的微博应用。
访问relink.sinaapp.com,已经可以进行应用的授权和当前用户最新微博的列表了。
编写代码
接下来我们修改weiblolist.php的代码,加入“查看转发”连接。
进入应用“relink”的管理页面,点击左侧的“代码管理”,在右侧的“操作”列点击“编辑代码”,启用SAE的在线编辑器。
点击左侧的文件名,进入代码编辑。
我们给现在的微博列表添加一个“查看转发”的链接。
Ctrl+S发布代码,刷新页面看效果。
在点击编辑器左侧的新建文件按钮,创建show.php。
编写展示代码
<?php // 载入共用函数和配置 session_start(); include_once( 'config.php' ); include_once( 'saet.ex.class.php' ); header('Content-Type:text/html; charset=utf-8'); // 创建SaeTClient 对象 $c = new SaeTClient( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret'] ); // 获取并展示转发信息 if( $items = $c->oauth->get('http://api.t.sina.com.cn/statuses/repost_timeline.json' , array('id'=>$_REQUEST['sid'])) ):?> <div style="border:1px solid red;padding:5px;margin:5px">原始微博 - <?=$items[0]['retweeted_status']['user']['name']?>: <?=$items[0]['retweeted_status']['text']?></div> <?foreach( $items as $item ):?> <div style="border:1px solid #eee;padding:5px;margin:5px"><?=$item['user']['name']?>: <?=$item['text']?></div> <?endforeach;?> <?php endif; ?>
点击之前页面的“查看转发”链接,即可查看到相关信息。
基于SAE的微博应用开发
作者 陈理捷 发布于 2010年12月15日 上午12时0分
<script src="http://s7.addthis.com/js/250/addthis_widget.js#username=infoq" type="text/javascript"></script>
<!-- AddThis Button END -->之前在微博开发者大会上做过一个演讲,不过因为时间和形式的问题,忽略了很多细节。正好InfoQ的同学问我能不能写一篇文章,于是就有了本文。文章分三个部分,介绍篇讲SAE的基本情况;环境篇讲SAE和标准PHP环境的主要区别;实践篇则提供了一个完整的微博应用开发实例。
相关厂商内容
Adobe Flash Builder 4简体中文正式版高速下载
Sybase在线课堂第三期:详细解析——Sybase Unwired Platform移动应用开发平台(12月28日 周二)
介绍篇
Sina App Engine (简称SAE)是由新浪网研发中心出品的云计算平台,也是国内第一个公有云平台。从09年11月alpha版本发布到今年8月beta版上线,SAE已经进入了稳定运行的阶段。即使是在我们严格控制邀请码的情况下,也已经拥有了超过4000的开发者和超过3000的应用。光是新浪微博的应用频道,就有40个以上的应用运行在SAE上,而在Web应用的Top10中,有7个都运行于SAE。
- SAE可以降低开发者在硬件方面的投入,省钱;
- 可以加快应用开发的速度,省时间;
- 可以提供门户级别的可靠性,让大家专注于应用本身,省心。
- 特别适合于没有专门的架构团队和运维团队的公司和个人使用。
环境篇
SAE采用大家熟悉的PHP+Mysql作为主要环境。所以在SAE上开发应用并不需要学习新的知识,只需要注意一些细节就可以了。移植一个现有的PHP应用到SAE上是很简单的事情,之前我将WordPress移植到SAE上时就只花了3个小时。
本地文件操作
在SAE上不允许对本地文件系统进行写操作。这既是系统架构的要求,也是为了保证代码的安全和应用的性能。
我们提供了TMPFS服务来解决临时文件的问题。TMPFS服务为开发者提供了一个目录,开发者可以将文件写到这个目录下,但是当本次请求结束时,这个文件将不再存在。
为了方便大家迁移项目,我们还允许大家利用PHP Wrapper通过文件系统函数来操作SAE的Memcache和Storage。大家知道Smarty是很依赖文件系统的模板,但是通过Wrapper方式,只需要修改非常少的代码,就可以让Smarty改为使用SAE的Memcache服务。(https://code.google.com/p/smarty4sae/)
数据抓取
出于安全原因,SAE不允许应用直接抓取外部的数据。所有对外的抓取操作,都需要使用Fetchurl服务。相对于CURL来做,封装后的Fetchurl服务其实更为简单,也可以支持自定义头和cookie等操作。
数据库
SAE使用的是标准的Mysql数据库,所以以Mysql为核心的应用不用做任何修改就能使用。Mysql的host和端口信息我们通过环境变量提供,直接在Runtime中获取就可以了。
我们强烈建议大家使用SaeMysql class来操作SAE的数据库,因为这个class默认进行了主从分离,可以避免在高并发时出现锁表等问题。
分布式存储
由于不允许对本地文件系统进行写操作,我们提供了分布式存储服务来帮大家存放一些应用运行过程中产生的文件,比如用户上传的图片等。使用SaeStorage可以方便的保持这些内容并生成可访问的URL。
在了解了以上需要注意的地方后,大家就可以很容易的在SAE上开发应用了。
实践篇
接下来我们来看看如何从头到尾开发一个简单的微博应用。
应用目标
先说说我们要做的应用。微博开放平台最近新增了一个接口,可以查询当前用户发布的某一条微博的转发信息。在微博平台上,信息通过转发进行链式传播,转发信息对微博营销来说是很重要的;而目前微博Web版本并不显示这些信息。所以我们想做一个应用,允许用户可以查看某条微博的转发情况。
具体做法如下:
- 首先要取得用户授权
- 取得当前用户的最近若干条微博,添加查看链接
- 获取并展示被选中微博的转发信息
准备工作
在开发应用之前,你需要有新浪微博的账号和SAE的账号。微博的账号可以在这里注册;SAE的账号在这里可以注册。
有了微博账号之后,就可以在微博开放平台创建应用了。
这部分微博开放平台上有详细的图文说明,就不再重复了。完成应用的创建后,可以得到应用App Key和App Secret。
在SAE上创建应用
使用之前注册的SAE账号(不同于微博账号,是完全独立账号)登入SAE,在“我的应用”下,“创建应用”。
我们创建了一个appname为relink的应用,它可以通过relink.sinaapp.com进行访问。
在SAE上写微博应用不用从头开始,有方便快捷的应用向导可用。
在“应用向导”下选择“社会化应用”分类,点击“新浪微博OAuth框架”下边的“安装”按钮。
选择安装到应用“relink”下,安装为新版本1。
填写好我们从微博开放平台得到的微博应用的AppKey和AppSecret。
至此,我们已经完成了最基本的微博应用。
访问relink.sinaapp.com,已经可以进行应用的授权和当前用户最新微博的列表了。
编写代码
接下来我们修改weiblolist.php的代码,加入“查看转发”连接。
进入应用“relink”的管理页面,点击左侧的“代码管理”,在右侧的“操作”列点击“编辑代码”,启用SAE的在线编辑器。
点击左侧的文件名,进入代码编辑。
我们给现在的微博列表添加一个“查看转发”的链接。
Ctrl+S发布代码,刷新页面看效果。
在点击编辑器左侧的新建文件按钮,创建show.php。
编写展示代码
<?php // 载入共用函数和配置 session_start(); include_once( 'config.php' ); include_once( 'saet.ex.class.php' ); header('Content-Type:text/html; charset=utf-8'); // 创建SaeTClient 对象 $c = new SaeTClient( WB_AKEY , WB_SKEY , $_SESSION['last_key']['oauth_token'] , $_SESSION['last_key']['oauth_token_secret'] ); // 获取并展示转发信息 if( $items = $c->oauth->get('http://api.t.sina.com.cn/statuses/repost_timeline.json' , array('id'=>$_REQUEST['sid'])) ):?> <div style="border:1px solid red;padding:5px;margin:5px">原始微博 - <?=$items[0]['retweeted_status']['user']['name']?>: <?=$items[0]['retweeted_status']['text']?></div> <?foreach( $items as $item ):?> <div style="border:1px solid #eee;padding:5px;margin:5px"><?=$item['user']['name']?>: <?=$item['text']?></div> <?endforeach;?> <?php endif; ?>
点击之前页面的“查看转发”链接,即可查看到相关信息。
小结
到这里,我们已经完成了应用的开发。虽然应用本身很简单,但是完整的演示了整个开发流程。期待大家都能在SAE上开发出优秀的微博应用。微博开放平台的接口可以查阅API文档,SAE提供的API可以访问http://apidoc.sinaapp.com/。
文章来源:http://www.infoq.com/cn/articles/clj-sae-mini-blog-app
我的sina app 应用地址:http://zhenghuazhi.sinaapp.com,如果你看到的是:SAE ERROR: APP IS OUT OF QUOTA,说明我的配额用完了,流量真少,效果见:http://huazhizheng.appspot.com.......希望新浪搞好一点。。。。。哎。。。。。
发表评论
-
eclipse Resource 资料
2016-11-15 16:51 617IWorkspace/IWorkspaceRoot/IPro ... -
.docker/machine/machines/default/ca.pem: no such file or directory
2016-09-06 15:59 886Was doing adocker-machine env ... -
list.AddAll 去重复
2015-09-11 12:01 5901问题描述: 有List A和B,A、B中元素都是可保证 ... -
eclipse 插件开发 Setting the Java build path
2014-06-04 11:00 1216JDT Plug-in Developer Guide & ... -
xstream 下划线_问题
2013-12-30 10:18 4180最近在使用xtream 1.4.3,出现了如下的问题: ... -
RCP MessageConsole设置显示的最大行数
2013-09-05 11:34 966MessageConsole.setWaterMarks(5 ... -
freemarker 自定义freeMarker标签
2013-08-12 16:09 3886import java.io.IOException; i ... -
xstream javabean设置属性默认值的问题
2013-04-24 09:54 6568在xstream反序列化使用过程中发现,如果xml无该属 ... -
在使用xstream反序列化时遇到的问题
2013-04-24 09:42 1747public abstract class SBase { ... -
RCP 知识点
2013-03-14 15:10 997获得工作区的所有工程: //获得workspace的所有 ... -
RCP FileSystem 文件系统
2013-02-19 10:42 1381public static File toLocalFile ... -
json转为Map
2013-01-19 22:27 32829package digu.pendant.util; ... -
eclipse4.x 去掉quick access
2013-01-11 14:57 4057/** * 去掉quick access * ... -
xstream 的高级用法,自定义输出结构
2012-12-19 14:35 2423public static void main(Stri ... -
jdt 核心知识
2012-11-27 21:39 1279jdt官方核心知识...................... ... -
jdt 创建java工程,生成代码,运行main方法
2012-11-27 10:50 2345public static IJavaProje ... -
两个osgi的例子程序
2012-11-20 10:21 1077osgi的例子....................直接上代 ... -
jfreechart 的官方例子,很全
2012-11-20 10:19 944jfreechart的官方的demon,很全。 -
SWT 隔行换色-自动宽高调整
2012-10-16 17:32 1710** * 创建:ZhengXi 2009-8-4 */ ... -
RCP 为action添加操作进度条
2012-10-16 13:59 1292public class StartAction extend ...
相关推荐
### 基于SAE J1939协议的发动机虚拟仪表及故障诊断系统开发 #### 一、引言 随着汽车电子技术的迅速发展,现代汽车越来越多地集成了复杂电子设备,这些设备的集成提高了汽车性能的同时也带来了对车载通信网络的需求...
本文主要探讨了基于SAE(新浪云服务平台)的北斗信息服务混合应用程序的开发,旨在提升公众对北斗导航系统的认知并推动其广泛应用。北斗导航系统作为中国自主研发的全球卫星导航系统,已不再局限于导航功能,而是...
在覃熊艳的研究中,可能详细探讨了如何设计和实现这样一个基于SAE J1939的智能载重系统,包括硬件选型、协议解析、软件开发以及系统集成。这可能涉及到传感器的选型与接口设计、ECU之间的通信协议实现、数据处理算法...
本文针对云计算技术在四旋翼飞行器数据处理方面的应用问题,提出了一个基于SAE云计算平台的原型服务平台架构模型。在深入分析当前四旋翼飞行器采集数据所面临的数据量大、处理速度慢、存储困难及资源消耗大的问题后...
新浪SAE是新浪公司提供的一个基于云计算的平台即服务(PaaS)产品。它提供了一整套Web应用托管服务,包括动态网站托管、数据库服务、存储服务等,支持PHP、Python、Java等多种编程语言。对于开发者来说,SAE消除了...
最后,搭建基于SAE平台的《信息化概论》教学网站,旨在优化教师的教学过程和学生的学习过程。在网站中教师可以发布和更新教学内容,学生可以在线学习和讨论,同时网站可以作为评估学生学习成效和教师教学质量的工具...
基于SAE J1939的汽车网络监控系统为汽车电子设备的开发、调试提供了强大的支持。通过结合USB接口的便捷性和CAN总线的可靠性,该系统不仅能有效监控车载网络的状态,还能简化J1939协议的学习曲线,对于提升汽车电子...
SAE(Sina App Engine)是新浪提供的基于云计算的平台,可以简化应用的部署和管理。 二、建立微博应用的过程 创建微博应用时,首先需要在新浪微博开放平台上注册并获取AppKey(WB_AKEY)和App Secret(WB_SKEY),...
- **sae_app_wizard.xml**:SAE应用的配置文件,用于指导自动部署。 - **App**:存放应用程序的核心代码,如控制器、模型、视图等。 - **ThinkPHP**:ThinkPHP框架的核心库文件,包含各种组件和类库。 - **Public**...
本文将深入探讨基于SAE J1939协议的车用燃料电池管理系统的设计,包括协议栈的结构、燃料电池系统的基本原理以及如何利用J1939协议实现有效的系统监控和控制。 首先,SAE J1939协议是针对重型商用车辆和工程设备...
【标题】"一个旅游产品电子商务网站,基于SAE的PHP版.zip" 描述了一个使用PHP编程语言构建的电子商务平台,该平台特别强调了其在腾讯云服务平台(SAE,即Server Application Engine)上的运行环境。这表明这个项目是...
标题“yii-sae-app”指的是一个基于Yii框架的示例应用程序,特别设计用于在新浪SAE(Sina App Engine)平台上运行。这个项目是开发者学习如何在新浪SAE上部署和运行Yii应用的一个实例。 首先,我们需要理解Yii框架...
在描述中提到的“python代码(SAE代码)”,暗示我们处理的是一个用Python编写的SAE应用实例。Python是SAE支持的主要编程语言之一,它提供了丰富的库和简洁的语法,使得开发者可以轻松地构建各种Web应用。 针对...
SAE是新浪公司提供的一种基于云计算的PaaS(平台即服务)平台,它为开发者提供了便捷的Web应用程序托管和运行环境,无需关心底层硬件和基础设施的维护。 首先,SAE支持多种Web框架,如PHP、Python、Java等,这里...
在本篇文章中,作者详细介绍了基于STM32微控制器以及SAE-J1939协议在压裂车数字化控制系统中的应用。文章首先讨论了压裂技术发展对作业质量和精度提出的新要求,强调了使用模拟量监控的不足。接着,文章深入探讨了...
本文将深入探讨在SAE平台上使用Spring MVC框架进行Web应用开发的知识点。 1. **SAE平台概述** SAE提供了丰富的服务,如存储、数据库、缓存、消息队列等,使得开发者能够构建复杂的分布式应用。它支持多种编程语言...
新浪SAE(Sina App Engine)是新浪公司推出的...总之,新浪SAE云计算入门攻略详细介绍了SAE平台的基本概念、优势、不足、使用方法和一些操作上的细节,为有志于利用SAE平台进行应用开发的用户提供了实用的指导和帮助。
新浪云Sae是一个基于云计算的服务平台,提供了包括存储、数据库、计算在内的多项服务,为开发者提供了一个无需关心底层硬件设施,只需专注于应用开发的环境。OneThink Sae版就是在这样的背景下诞生的,它对原版One...
新浪SAE是新浪公司提供的一种基于云计算的服务,它允许开发者在无需购买和维护硬件的情况下运行Web应用程序。这个程序可能是为了帮助用户在SAE平台上方便地展示、分析和理解数据,通过图表的形式进行数据可视化。 ...