云计算成为现实

2008年下半年这些日子,虽然微软还在表示进军云计算,但是云计算在Java世界实际上已经从口号变成现实。

这是一篇Web服务器Jetty集群文章的翻译,也就是说:Jetty已经可以嵌入下面这些云计算软件,而你只要将你的Web应用部署到Jetty,就能实现云计算,是不是很简单,现在就可以去做。

将你的应用部署到Cloud computing 云计算环境. 再也无需你管理,可以很容易伸缩,大大提高处理能力,提供失败的可恢复性,硬件上云计算由一批成本低廉的服务器器组成。这些成本远低于传统数据库集中模型。

Software as a service软件即服务正成为共识,云计算已经成为现实,看看下面除了EJB以外的一些成熟产品:

Cloud Platform云计算平台: Morph (http://www.mor.ph/)

作为可伸缩的Web应用的云计算平台Morph,当上传war文件就自动部署多个JVM点。Morph处理负载平衡,允许你增加调整服务器个数,可以访问共享资源:关系数据库 邮件服务或JMS服务。 Morph可以确保你应用服务配置为fail-over(以前只有EJB服务器才提供) 。Jetty作为一个比Tomcat还要轻量的serlvet 容器,可以被配置进入 cloud-hosted 环境。

这里谈谈SUN的serlvet容器开源glassfish,它有一个其高性能NIO Server:grizzly (https://grizzly.dev.java.net/)glassfish+grizzly可能走向P2P计算模式,P2P和Cloud computing 还是有区别的,P2P如果依赖PC机上的软件,比如QQ之类,而Cloud computing则可能无需客户端参与计算,通过浏览器就能获得结果,这两种模式可能针对不同应用。

今年8月google的云计算曾经发生Gmail等多个服务中断,是云计算脆弱?不够彻底存在单点风险?还是应该再考虑P2P呢?其实P2P有可能也不可靠,无法准确知道哪个节点出现问题。
http://www.readwriteweb.com/archives/google_failures_serious_time_t.php

云计算更适合内容企业服务,但是现在很多社区SNS服务,比如twitter(叨客) FriendFeed FaceBook之类更需要云计算。

Cloud Technology云技术:开源Terracotta(兵马俑 )(http://www.terracotta.org/)
是一种无需数据库和EJB等复杂技术实现的云技术,贯彻缓存为王宗旨,实现网络内存阵列Network-Attached Memory (NAM),可以在同台服务器的内存中同步对象状态,适合 HTTP Session Sharing, Distributed Caching分布式缓存, Single-Sign On单点登录等等. 个人非常推崇,可以说完全可以替代数据库和EJB,那些成天叫嚷“数据库不死 不用数据库用什么”的人最好多了解一下。

Terracotta特点:
Shared Heap (跨JVM的对象复制)
分布式锁 (synchronized, wait/notify, 包括 util.concurrent )
分布式数据源 – HashMap, ArrayList, LinkedBlockingQueue, any POJO
保证集群对象的一致性,自动将数据持久到硬盘
虚拟内存 (将heap扩展到 Terracotta直至硬盘)


Cloud Infrastructure: Hadoop (http://hadoop.apache.org/core/)
Hadoop是google的 MapReduce算法(http://labs.google.com/papers/mapreduce.html)实现的开源平台,MapReduce可以让TB级别的数据在数千台服务器上运行计算。Hadoop可以让计算模型细化到一个个小块,这些小块能够通过很多服务器并行计算。

最近Apache Hadoop 赢得了TB级别的基准测试,Hadoop可以在209秒内完成1 TB数据排序,打败了前期297秒的年度记录(Daytona),成为最快纪录冠军,这是一项1998由Jim Gray创建的基准测试,指定输入数据( 100亿个100字节的记录) ,彻底地排序,并写入磁盘(持久化)。再想想现在很多人还依赖传统数据库SQL排序,这个真是小巫见大巫了。详细测试情况:
Apache Hadoop Wins Terabyte Sort Benchmark
这是Java和开源社区的胜利。如果还有人怀疑Java慢,就显得他多么无知!


Cloud Infrastructure: Gigaspaces (http://www.gigaspaces.com/)
Gigaspaces是一个基于Space-Based Architecture (SBA:http://en.wikipedia.org/wiki/Space_based_architecture)架构的可伸缩方案,也是网格计算grid computing的一种,一个Web应用只要简单部署到网格中的处理单元,就能够即时实现集群。

原文:
http://blogs.webtide.com/janb/entry/jetty_and_cloud_computing

相关文章:
OO + 分布式计算 = 软件架构的方向
http://www.jdon.com/artichect/architecture.html

数据库已死
http://www.jdon.com/artichect/dbdead.htm

[该贴被banq于2008-11-07 09:19修改过]

看到这标题已让人兴奋了,内容就更别提了,热切关注中!

banq,这篇是不是抄袭:
http://www.alisdn.com/wordpress/?p=277

没关系,这篇文章也是我翻译的,希望更多人来传播这个喜讯,让先进思想和实践更快让更多人知道,这也是Jdon提出深入开放的原则。

这是个令人兴奋的消息,期待能够在咱国企业中普及.
JAVA无疑是领军舰队.

建模是不是应用这些新兴技术的根本地基?

哪banq老师,erlang语言怎么样呢.现在学习是不是时机呢.

>erlang语言怎么样呢.现在学习是不是时机呢

我不知道你怎么在Java云计算大发光芒的帖子下问这样一个非常不和谐的问题。

erlang语言也许在线程并发上做得更好,但这种语言级别的微架构已经不是决定因素。

我一直强调向上思维,云计算是一种高度架构的多核并发计算,目前Java已经取得了业界最快计算记录。注意案例中测试是使用J2se 6环境,Jdk5/6/7对单服务器的多核并发功能增强。

谁都想替代Java,erlang语言号称可替代,scala也想,Ruby也想,皇帝的位置谁都想坐...

至于你个人是否认为现在是否学习erlang机会,完全在于你个人。

参考文章:
Is Scala or Clojure poised for stardom?
Scala或Clojure 会成为明星吗?
http://www.nofluffjuststuff.com/blog/andrew_glover/2008/10/is_scala_or_clojure_poised_for_stardom_.html

Java + multicore = good news
http://www.sdtimes.com/link/32943
[该贴被banq于2008-11-12 10:20修改过]

赞!一直对云计算比较感兴趣,但一直不清楚是怎样一个实现步骤!对saas也有认识,但对现在企业来说到底能提供什么样的服务,而且企业并不愿意把数据存到你的数据库里。

>但对现在企业来说到底能提供什么样的服务,而且企业并不愿意把数据存到你的数据库里。

SAAS是SOA变种,别听那些所谓IT人翻嘴皮。SAAS和云计算是两个领域,不要混在一起搭便车。

云计算和数据库也是两码事,你只有将数据用对象封装起来,使用缓存进行内存计算,才会使用到云计算。只有将业务使用Java来运算,而不是让Java作为SQL搬运工,才发挥Java云计算的威力。上面Hadoop创记录就是完全使用Java,如果你的业务依赖数据库SQL,怎么能利用Java网格计算的威力呢?就是你数据库用Java编写也不一定能够啊。

云计算就是打破传统数据库计算模型,这个基本概念和方向要搞清楚。

云计算不是存储,计算和存储分家这是一个趋势,存储也不一定放在数据库里,还是可以放在企业自己的数据库中的。当然,如果你企业的业务是依赖数据库的,那么你就无法利用外界的云计算能力了,你自己企业软件也必须实现计算和存储分家,业务使用对象内存计算。

所以,云计算看上去是一个很玄的好东西,但是要用上,传统数据库为中心的编程模型必须抛弃,云计算诞生同时实际上就宣布数据库已死。能看清这个本质变化的人太少。
[该贴被banq于2008-11-12 09:35修改过]

感谢banq大哥的回复!
那我可以这样理解:soa提供服务,云计算处理对象实现业务逻辑,怎么来存储计算的后的结果?可能会有很多介质,并非一定要数据库。云计算的功力可能也会体现在业务逻辑的复用上,那么我们在实际项目中怎么去实现这种设计?还是值得思考的。

>soa提供服务,云计算处理对象实现业务逻辑,怎么来存储计算的后的结果

你还是把SOA/SAAS和云计算混同了,云计算你可以引入到自己的企业软件中,搞几台PC服务器,安装Jetty或以上云软件,就可以了。这些和SOA是没有关系的。

云计算也和业务逻辑的复用没有关系,只是一种网格并行计算方式,SOA才和业务逻辑的复用有些关系,业务逻辑的复用属于设计阶段,不是运行阶段,而云计算是指运行方式。

额,感谢BANG拨开云雾,让我从“晕”计算中不在晕了

云计算和集群一样属于性能领域,SOA是架构领域,不同的,SOA因为提供服务,可能访问量大,负载高,这时就需要云计算来帮忙提高处理性能。

就象政府提供服务,如果没有市民服务中心这样一个大厅,怎么能够接纳那么多市民,又怎么能为他们提供服务呢?

说实话,我到现在也不明白云计算为什么现在这么火,以及它未来的方向在什么地方。商业化已经成为了现在的主流,一种软件的出现以及发展必然要跟商业化的东西放在一起。那么麻烦大家想一想,当你用着网上的服务的时候,当你把word,excel存储在网络服务器上的时候。他们得到了什么??当用用免费的天气预报的时候他们为什么要免费把这种东西放出来让你用那?因为你出卖了你的信息,他们要必然要通过你或者你相关的东西来赚钱的。
那么由此可以想到,你觉得银行会使用云计算么??他们会把你的财务数据放到网上么??证券公司会用么??移动公司会用么??电信公司会用么??运输、石油、钢铁、这些大的行业那个会使用??如果这些大的企业不使用一种技术的寿命会有多久??