SAE Java 实际应用 在这里写上你的标题 作者名字/日期

Slides:



Advertisements
Similar presentations
第 4 章 配合 例子源代码一起使用 Power point 制作:耿祥义 张跃平 普通高等教育 “ 十一五 ” 国家级规划教材 JSP 内置对象.
Advertisements

LOGO 第 9 章 Java Servlet 和 JSP 编程 孙焘. 重点: servlet 编程原理 1 servlet 的基础类与编程实现 2 JSP 编程原理 3 JSP 的常用语法 4.
软件编程基础 一、程序的编辑 Java 源程序是以 Java 为后缀的简单的文本文件,可以用各种 Java 集成开发环境中的源代码编辑器来编写,也可以用其他文 本编辑工具,如 Windows 中的记事本或 DOS 中的 EDIT 软件等。 利用文字编辑器编写下列程序 public class Hello.
第 9 章 测试部署  9.1 测试  9.2 部署. 9.1 测试  应用测试:使用 JUnit 单元测试框架 测试的目的是检验开发结果是否满足规定需求,测试是保证软件质量的一个重要手段, 在软件开发过程中是不可缺少的组成部分。 单元测试与集成测试分别有各自的定义:在实际开发中,两者之间的界定是模糊的。
程序设计语言基础 软件工程系 秦晓燕. 课程目标 了解面向对象程序设计的思想,以及软件 开发流程。 学习 Java 语言的基本概念和编程方法,基 本掌握 Java 类库的使用。 能够利用所学的方法开发简单的小型应用 程序.
Web Maple— 云端计 算 数学学院刘海洋 胡婷婷. 需求 什么是 Web Maple ? Maple : “ 数学家的软件 ” 符号和数值计算 动态编程语言 集成编辑环境与图形输出 Web Maple :网页上的数学家 完整的 Maple 功能 云端计算 网页独特的输入输出格式.
1 网站设计理念 大连理工大学创新实验学院 优秀网站展示 - LAMP 类网站
动态网站开发 【HTTP与网络基础】 李博杰
动态Web开发技术--JSP.
爱上我们的图书馆 —新生入馆引导 河海大学图书馆.
数字化校园建设与思考 扬州大学信息中心 沈 洁 2017年3月3日.
电子工业出版社《云计算(第二版)》配套课件
第一章 JSP概述.
学生教育办介绍 2015年9月.
协同过滤推荐算法 及其模型的设计与开发 毕业论文答辩 陈鹏 - 信息与计算科学 指导老师:王国庆 –
Java程序设计教程 第一讲 Java概述.
阿里云计算开放平台与产品 阿里云-刘飞 2012年10月.
基于SSH的web开发 AND 企业级WEB应用开发新技术
汇报大纲 一、报送系统总体介绍 二、自查及检查评分报送流程 三、自查及检查方法及关键点 四、建议及注意事项.
北京科技大学天津学院 信息工程系 面 向 对 象 程 序 设 计 第1讲 Java初探 主讲:于静.
攻击JAVA WEB 阿里巴巴集团安全中心 周拓.
Apache PHP MySQL 介紹與安裝設定 NIT 戴琬諭 NIT 林佳保.
J2EE Struts 和Spring 的区别.
天涯运维的那些事 网络系统部.天涯.
Oracle WebLogic 数据库连接原理及案例探讨
浙江省贸促会智慧贸促金桥工程项目 演示介绍
精英型软件人才 培养模式的探索与实践 卢 苇 北京交通大学国家示范性软件学院.
荷福威士顿机器人科技有限公司 上海荷福集团
Hello World 體驗實作第一個JSP程式.
第9章 过滤器和监听器技术 过滤器(Filter)和监听器(Listener)是两种特殊的Servlet技术。过滤器可以对用户的请求信息和响应信息进行过滤,常被用于权限检查和参数编码统一设置等。监听器可以用来对Web应用进行监听和控制的,增强Web应用的事件处理能力。 本章主要介绍过滤器和监听器的编程接口、基本结构、信息配置、部署和运行,最后通过案例说明过滤器和监听器的典型应用。
第3章 分布式文件系统HDFS (PPT版本号:2017年2月版本)
软件设计模式与体系结构课程设计 周 宇 College of Information Science and Technology
Java语言程序设计 清华大学出版社 第9章 网络通信.
北市學生生涯輔導紀錄數位化 行政端之運用
Arena System Technology Architecture 系统技术架构 1、Database V2(Lotus Notes)V3(Oracle8i) 2、Application Server SilverStream2.53 (Java as server side programming.
課程名稱:資料庫系統 授課老師:李春雄 博士
以多媒體簡訊服務及智慧型手機建置具物流管理之行動商務系統與 Web Service的應用
精通redis数据库开发、管理与优化 第1讲 什么是redis 讲师:黄锡峰.
第一章: Java Web 开发技术概述.
2018/12/3 面向对象与多线程综合实验-网络编程 教师:段鹏飞.
Oracle Containers for J2EE(OC4J) 独立版
Java语言程序设计 第八部分 Applet小程序.
Java基础入门 第1章 Java开发入门 · Java语言的特点 · Java开发环境的搭建 · 环境变量的配置 · Java的运行机制.
简单的介绍,简单的配置,简单的扩展 By jfm
Cloud Computing Google云计算原理.
Spring依赖注入及AOP简介.
DWR WEB开发交流 1、自我介绍 2、DWR概述 3、DWR DEMO介绍 4、DWR实现机制 5、DWR配置说明 6、JS开发注意事项.
辅导课程九.
第一讲 J2EE基础 博和利初级培训 —开发技能.
软件工程基础 云计算概论 刘 驰.
集合框架和泛型(一).
Embed Google Map 資二乙 1號 王思洋.
第11章 Android客户端与服务器交互.
C/C++/Java 哪些值不是头等程序对象
01.Java语言概述 讲师:复凡.
Sym社区系统商业版 背景、功能以及技术架构简介.
第3章 Java語法的JSP程式 3-1 Java語言的基礎 3-2 JSP程式的基本架構 3-3 Java的變數與資料型態
面向对象 程序设计语言基础 马骏
SDA(Standard development architecture)框架介绍
基于struts和hibernate的网上新 闻发布系统
VSB9网站群管理平台 系统管理.
VSB9网站群管理平台 系统管理.
OceanBase 0.4:从API到SQL 日照
主编:钟元生 赵圣鲁.
2019/5/3 JAVA Socket(UDP).
課程名稱:資料庫系統 授課老師:李春雄 博士
助教:廖啟盛 JAVA Socket(UDP) 助教:廖啟盛
為民服務白皮書 台灣電力公司嘉義區營業處 .
----以《西北民族音乐学术资源数据库》为例 西安音乐学院 景 月 亲
Java语言程序设计.
Presentation transcript:

SAE Java 实际应用 在这里写上你的标题 副标题文字副标题文字 @智云0o/2012年6月 作者名字/日期 大家下午好,我是来自新浪云计算的黎智云。今天和大家分享的课题是SAE Java的实际应用。说之前问大家一个问题,大家有用过SAE Java平台的么?请大家用一个一句话描述一下 @智云0o/2012年6月 作者名字/日期

SAE Java 是什么 普 青:是一个Java 语言的 Paas 文 青:是一个云服务的集合 文 青:是一个云服务的集合 MySQL、Memcache、KVDB、FetchURL、Storage、TaskQueue、TmpFS、Cron、DefferedJob、Mail 、微博API、服务商店等等 这几位同学说得非常好,这个问题我在网络上问过很多人,回答大致分为三类。第一类说SAE Java是一个java的paas平台,第二类说的是SAE Java是一个包含MySQL、KVDB、Memcache等等云服务的集合,第三类说的是SAE Java平台是一个大的Java web容器 看来大家都是普通青年 二 青:是一个很大的Java Web 容器 ? 不需要维护任何服务器,只需上传的war包,它便可为你提供服务

SAE Java 是什么 Sina App Engine Java 提供了 安全稳定的Java运行时环境(沙盒) 强大的云服务支持(云存储) 各种应用监控和统计体系 有力的开发支持(日志) 对各种Web框架支撑 社区的支撑(Cloudbbs) …… 好,我们来看看SAE Java给我们提供了这些东西。首先给我们提供了一个安全稳定的Java运行时环境,然后是强大的云服务特别是一些云存储的支持,还提供各种应用和统计体系,当然还有有力的开发支持,对各种web框架支撑,当然还少不了社区的支撑 等等等等一些东西 那SAE Java给我们提供了这么多好用的东西我们如何来用呢,如何充分应用SAE Java平台来创造价值呢,这就是今天我和大家分享的

目录 1 Why SAE Java 2 SAE Java 如何用 3 SAE Java 能做什么 00 写上你的文字你的文字 01 02 03 04 05 写上你的文字你的文字 2 SAE Java 如何用 3 SAE Java 能做什么 今天主要和大家分享以上三点 为何选择SAE Java 以及SAE Java如何用 当然最重要的是SAE Java可以用来做什么 那么Why Sae java呢?

Why SAE Java 更快(高效开发) 更安全稳定(代码、应用) 更强大云服务(总类繁多) 更低成本(开发、迁移、维护) 更简单(易用性) 用几个短语概况一下 更快 更安全稳定 拥有更强大的云服务 更低的成本 跟简单易用

Why SAE Java 更快更高效 只需上传 war 包即可使用 (后期eclipse插件支持单文件上传) 强大的服务API,让你专注业务加速开发 应用访问速度更快 (强大的Sina 机房群的支撑) 问题反馈迅速高效 所谓更快更高效 表现为以下几点 使用速度快 只需要上传一个war包就可以开始使用SAE Java 另外拥有强大的服务API 让你更加专注于业务加速开发 还有一个快就是应用访问速度快 因为有强大的sina机房群的支持 当然还有一点难得的就是问题反馈快速高效

Why SAE Java 更安全稳定 安全的“沙盒”环境 每个应用独享 JVM 应用独享工作空间和日志空间 数据安全 分布式环境(应用、服务) keeper机制,应用永不宕机 更安全稳定 安全的应用沙盒环境 每个应用独享JVM 独享工作空间和日志空间 当然数据安全也很重要 加上应用服务和代码的分布式部署 另外我们的keeper机制 在下节课中王阳同学会给大家说的keeper机制,使得应用永不宕机

Why SAE Java 更多更强大的云服务 -- 云存储 MySQL/RDC 更多更强大的云服务 -- 云存储 MySQL/RDC KVDB key-value 数据分布式存储(每位用户支持100G容量) Memcache 分布式缓存 Storage 分布式文件存储 更多更强大的云服务 首先云存储 主从分布的MySQL/RDC KVDB

Why SAE Java 更多更强大的云服务 FetchURL 抓网页,发请求 Mail(兼容JavaMail形式发送) TaskQueue 任务队列 TmpFS 临时IO空间 DeferredJob 离线任务队列 ( 数据库导出、导入 ) 服务商店提供服务 (第三方接入服务:短信服务、服务接入)

Why SAE Java 更低的成本 开发成本低 强大的API支撑(日志、社区) 迁移成本低 (支持SSH等流行web框架,各种API hook) 维护成本低 (SAE帮你完成) 使用成本低 (JVM关闭和自动伸缩、开发者认证、)

Why SAE Java 更简单易用 只需要上传一个war包就可开始体验 云服务API支持 多人协同开发 各类日志和报表 SVN支持

SAE Java 如何用 如何在SAE上创建一个Java应用 ? 本地环境搭建? 如何使用云服务 ? 如何看应用日志? 问题如何反馈 ? 以上说了这么多选择SAE Java的理由,SAE Java如何用呢,今天主要跟大家分享以下几点,首先是如何创建一个应用,sae提供这么多的云服务,如何使用这些云服务,应用日志如何查看,还有大家比较关心的SAE Java对框架的支持以及一些使用技巧和如何反馈问题

SAE Java 如何用 SAE Java 环境 JDK版本 1.6 WEB 服务器版本 jetty 7.x Servlet 2.5 首先介绍一下SAE Java的运行环境,JDK1.6 + Jetty 7 servlet2.5

SAE Java 如何用 SAE上创建一个Java应用 – 创建应用 登陆SAE 进入我的首页,点击“创建应用”,填写 App 信息

SAE Java 如何用 SAE上创建一个Java应用 – 创建应用 JVM 相关设置 需要上传war包才会开启 JVM 包括选择jvm数量和jvm动态伸缩的一些设置这里要提到一点就是创建了应用jvm不会立即起来,需要你上传了你的war包后才会起对应的jvm

SAE Java 如何用 SAE上创建一个Java应用 – 上传WAR包 网页上传:进入应用管理,先创建版本 第二部是上传war包,上传war包有两种形式,第一是网页上传,第二是svn上传,网页上传先创建一个版本,然后进到列表上传war包即可

SAE Java 如何用 SAE上创建一个Java应用 – 上传WAR包 网页上传:每个war包大小不能超过50M

SAE Java 如何用 SAE上创建一个Java应用 – 上传WAR包 SVN上传 第二种是svn的形式,按照这个地址将应用仓库checkout下来,用户名是sae安全有效,密码是sae安全密码

SAE Java 如何用 SAE上创建一个Java应用 – 上传WAR包 SVN上传 创建版本(文件夹),SVN 提交war包--完成

SAE Java 如何用 SAE上创建一个Java应用 – 完成 输入 http://your_app_name.sinaapp.com 访问应用 上传成功后就可以再浏览器输入url地址开始访问了,这样一个创建应用流程就走完了。很简单

SAE Java 如何用 本地环境搭建 不使用云服务:跟普通的J2EE环境无任何差异 要使用云服务:只需将sae-local.jar和依赖jar引入classpath 文档中心->开发手册->SAE Java开发手册->下载中心 那有同学会问,sae开发环境跟普通的开发环境会有什么差别么?分两种情况,一种是不使用云服务,不使用服务的话跟我们普通的j2ee的环境是没有任何差别的。第二种是使用云服务,使用云服务的话你只需要到sae官网把对应api下载下来放到classpath下即可

SAE Java 如何用 本地环境线上环境区别? 线上多了一层沙盒环境 服务的使用没有区别(本地只是模拟环境、相同API接口) //自动忽略ip和port参数 SaeMemcache mc = new SaeMemcache(“localhost”,11211); 区分线上线下环境SaeUserInfo对象 取得应用的appname、version、Ak、SK 、SaeTmpPath、McIP 可读取sae.properties文件信息( MySQL 无缝结合) 那么本地环境跟线上环境有哪些区别呢,其实主要区别在于多了一层沙盒环境,云服务的使用是没有什么区别的,线上和现象的云服务实现是完全不一样的,但是拥有相同的api接口,这就保证你在迁移项目的时候不需要做任何代码的变动,以memcache这个api为例,我们线下环境的代码是,上传代码后可以不用做任何修改,那么如何区分线上和线下环境呢 我们提供一个SaeUserInfo的对象,通过这个对象我们可以拿到应用的数据比对,当然你也可以添加一个sae.properties文件来配置SaeUserInfo对象拿到的信息

SAE Java 如何用 如何使用云服务 MySQL、 KVDB、 Memcache、FetchURL、Storage、TaskQueue、TmpFS、Cron、DefferedJob、Mail 、服务商店 下载服务API 服务使用的doc http://sae4java.sinaapp.com/doc/index.html 刚刚说了这么多,

SAE Java 如何用 如何使用云服务 MySQL/RDC RDC 关系型数据库集群,一主多从的DB结构,支持千万级数据后端,监控DB健康状况和同步延迟情况,出现异常自动切换。 和传统MySQL一样来使用,使用前需要开启应用 MySQL 服务

SAE Java 如何用 如何使用云服务 MySQL/RDC 管理MySQL:phpMyAdmin客户端管理数据库 跨应用授权:将数据库授权给其他应用

SAE Java 如何用 如何使用云服务 MySQL/RDC phpMyAdmin管理数据库

SAE Java 如何用 如何使用云服务 MySQL/RDC 数据库信息 主库写(读)数据 从库读数据 主库域名 SAE_MYSQL_HOST_M = 'w.rdc.sae.sina.com.cn' 从库域名 SAE_MYSQL_HOST_S = 'r.rdc.sae.sina.com.cn' 端  口 SAE_MYSQL_PORT = '3307' 数据库名 SAE_MYSQL_DB = 'app_appname' 用 户 名 SAE_MYSQL_USER = access_key 密  码 SAE_MYSQL_PASS = secret_key

SAE Java 如何用 如何使用云服务 MySQL/RDC 原生的JDBC 代码: //主库域名 数据库名为"app_应用名称" String url="jdbc:mysql://w.rdc.sae.sina.com.cn:3307/app_java4test"; String username=SaeUserInfo.getAccessKey(); String password=SaeUserInfo.getSecretKey(); String driver="com.mysql.jdbc.Driver"; Class.forName(driver).newInstance(); Connection con=DriverManager.getConnection(url,username,password); …… 支持数据库连接池 (dbcp)

SAE Java 如何用 如何使用云服务 KVDB KV DB 高性能高可靠的 key - value 存储,采用一主多从的分布式架构,读写可达 10w qps 。每个用户支持 100G 存储空间,可支持1,000,000,000 条记录。 应用使用 KV DB 需手动开启服务 量比较大,需要频繁读写的数据,

SAE Java 如何用 如何使用云服务 KVDB KVDB 支持boolean、long、double、byte[] 四种类型的存储 本地使用 JavaDB 实现 需要存储对象可将对象转化成byte[] 再进行存储 SaeKV kv = new SaeKV(); kv.init(); User user1 = new User(1,"jim",21); kv.set("user1", SaeKVUtil.serializable(user1)); //get 数据 User user2 = SaeKVUtil.deserializable(kv.get("user2"));

SAE Java 如何用 如何使用云服务 Memcache Memcache 分布式缓存服务,快速读写小于 1M 的数据。和标准的 Memcache一样,适合用来存储小数据。需要手动开启

SAE Java 如何用 如何使用云服务 Memcache Memcache 服务提供 8 种基本类型的存储,以及String 类型,byte[] 和对象类型的存储,本地可使用Memcache模拟 SaeMemcache mc = new SaeMemcache(); mc.init(); mc.set("num", 9527); mc.set("user",new User(1,"jim",21)); //get 数据 User user2 = SaeKVUtil.deserializable(mc.get("user")); System.out.println(user2.getName()); System.out.println(mc.get("num"));

SAE Java 如何用 如何使用云服务 Storage / TmpFS http://appname-domain.stor.sinaapp.com/fileName 访问

SAE Java 如何用 如何使用云服务 Storage / TmpFS TmpFS SAE提供的请求级别IO路径,请求完成后路径下的文件将会被销毁。 TmpFS 是本地临时文件,不是共享存储和持久化 可以用于请求内处理 IO ,如对图片进行处理后上传至Storage中

SAE Java 如何用 如何使用云服务 Storage / TmpFS Storage 配合 TmpFS 存储文件代码范例(使用) //使用SaeUserInfo拿到TmpFS路径 String realPath = SaeUserInfo.getSaeTmpPath()+"/"; //使用common-upload 将流写到realPath下 可 ….代码省略…..  SaeStorage ss = new SaeStorage();   //使用upload方法上传到域为image下 ss.upload("image", realPath+fullFile.getName(), fullFile.getName()); //当然也可以直接用SaeStorage .write()方法更加简洁 ss.write("domain" , "filename" , "filecontent!");  

SAE Java 如何用 如何使用云服务 FetchURL FetchURL 是为开发者提供的网页抓取服务,当然你也可以用它来发送http rest请求,弥补了Socket 暂时无法使用的缺陷 //抓取页面 SaeFetchurl fetchUrl = new SaeFetchurl(); String content = fetchUrl.fetch("http://sina.cn"); //发送post请求 fetchUrl.setMethod("post"); Map maps = new HashMap(); maps.put("name1","value1"); maps.put("name2","value2"); fetchUrl.setPostData(maps); String result = fetchUrl.fetch("http://photo.sinaapp.com/save.php");

SAE Java 如何用 如何使用云服务 Mail Mail 为开发者提供的分布式邮件发送服务,用来异步发送 SMTP 邮件。邮件服务兼容了JavaMail发送邮件方式,同时提供了SaeMail的发送邮件接口。 SaeMail mail = new SaeMail(); //快速发送邮件 mail.quickSend("from@sina.com",new String[]{"to@sina.cn"},"邮件标题","邮件内容","smtpaccount@gmail.com","password");

SAE Java 如何用 如何使用云服务 TaskQueue TaskQueue 为开发者提供的分布式任务队列服务,用来异步HTTP方式执行用户任务 (可配合Mail发送更多的邮件) SaeTaskQueue taskQueue = new SaeTaskQueue("test"); taskQueue.addTask("http://freedemo.sinaapp.com/page1.php"); taskQueue.addTask("http://freedemo.sinaapp.com/page2.php", “param", true); //将任务推入队列 taskQueue.push();

SAE Java 如何用 如何使用云服务 DefferedJob DefferedJob 分布式离线任务队列,用于数据库的导入导出(前提开启 Storage 服务)

SAE Java 如何用 如何使用云服务 服务商店 第三方服务接入,更多的服务选择,自动生成API

SAE Java 如何用 如何看应用日志 每个应用对应的日志中心可看到应用的各种类别日志,包括JVM、HTTP、MySQL、Mail、Cron、TaskQueue

SAE Java 如何用 如何看应用日志 那些日志会输出到日志中心? Jetty 服务器启动和关闭日志 应用访问日志 服务使用日志( MySQL、Mail、Cron、TaskQueue ) System.out 或者System.error 输出 Log4J各级别的日志(SAE 对Log4J 进行了hook)

SAE Java 如何用 如何看应用日志 各级别的日志显示在哪 控制台界面显示 类别 requests http非静态资源访问日志,server端的访问 debug log4j.debug,log4j.trace error log4j.error,log4j.fatal,(jetty启动关闭error日志) warning log4j.warning,system.err,(jetty启动关闭warn日志) notice log4j.info, system.out,(jetty启动关闭info日志) resources http静态资源访问日志,如.jgp之类的

SAE Java 如何用 SAE Java 对框架的支持 Struts 2.x Spring 3.x / Spring MVC Hibernate 3.x DWR Myibatis ?

SAE Java 如何用 SAE Java 对框架的支持 Struts 2.x 在 SAE Java上使用需要配置一个Listener ,内容如下 public class InitListener implements  ServletContextListener,HttpSessionListener,HttpSessionAttributeListener {         public void contextInitialized(ServletContextEvent sce) {                 OgnlRuntime.setSecurityManager(null);         }         ........ }

SAE Java 如何用 SAE Java 使用技巧 使用JDK1.6 编译war包 一个应用下不要创建过多的版本(抢资源) 避免jar包冲突 (servlet-api.jar xmlsec.jar 删掉) 如果不用避免使用session (减少MC操作:<%@ page session="false" %>) 数据库连接池选择 (c3p0 NO | dbcp Yes)

SAE Java 如何用 问题如何反馈 遇到问题先看文档,如果确定代码没有问题可以到Cloudbbs Java 板块中提问,提问时说清楚应用名和问题情况 当然也可以微博@我们

SAE Java 能做什么 对于企业用户来说 高品质的企业服务,维护成本低,迁移成本低,更安全稳定,更高配额 对于创业团队来说 低廉的创业成本,安全稳定的应用环境,海量的云服务 对于普通开发者来说 丰富的服务API,高效易用的开发环境,完善的社区环境

SAE Java 能做什么 业务系统? 中信银行业务模块

SAE Java 能做什么 微博应用? 微博手机大屏幕 Struts2 + Spring + myibatis 微博API

SAE Java 能做什么 网络游戏? 海贼时代 Struts2 + Spring 3 + MyIbatis 手机游戏后端

SAE Java 能做什么 电子商务? Legendshop 产品 SpringMVC+ Hibernate3 B2C、C2C

SAE Java 能做什么 未来你的应用会在SAE上吗…….