适于科学计算的Kepler项目

开源的世界里总能发现有意思的项目,Kepler就是这样一个出色的科学计算工作流设计平台。Kepler项目由美国科学基金NSF支持,UC Berkeley和San Diego超级计算中心联合基于Java开发,目的是打造一个通用的科学工作流集成平台,并且将整合多种已有的计算模型。应用于仿真、建模的Ptolemy项目为Kepler提供了底层支持,同时Kepler的不少开发着都来自Ptolemy项目。有意思的是,在天文学发展的历史上,Kepler本人是日心说的支持者,而Ptolemy则是坚定的地心说支持者,曾经观点截然对立的两个人现在却成了两个相互支撑的项目名称。

在生物学、生态学以及天文学等领域内产生的科学数据往往需要经过复杂的分析和过滤才可以使用,这样的过程常会牵扯到大量的数据处理,Kepler集成了应用于网格计算的Globus组件,可以根据需要将应用部署在网格环境下面。同时Kepler允许用户定义自己的Web Service或者在线搜索可用的Web Service应用在数据处理流程中,使得虚拟化的服务可以随时动态调用。

Kepler的基本组件调用单元称为本体(Ontology),可以集成在数据处理过程中的本体有角色(Actor)、组件(Component)、项目(Project)、规则(Discipline)和统计(Statistics)等。用户不仅可以使用内置的本体组成工作流,还可以将自己的算法和组件定制为专用本体,对工作流程进行灵活的拓展。Kepler的应用非常广泛,目前国内关注此项目的人还比较少,希望将其应用在网格环境下各种服务的整合上,还需要再仔细研究。优秀的开源项目给我们提供了赶超国外先进水平的契机,如何好好利用,还需要后续的不断努力在行。

Google地图及其他

Google所带来的最大影响,在于它一直用前瞻性的技术改变着我们对互联网的看法。最近使用GoogleMaps的API做了些小的实验代码,基本就是将标注在数据库里的点坐标显示在Google提供的卫星地图上,不仅可以显示点标记的详细内容,还可以显示各点之间的路径信息。基于LAMP结构的PHP代码有很多不错的示例,只需将SQL脚本包含的坐标及路点信息存储在MySQL里就可以读取显示在GoogleMaps上,如果使用JSP开发,GoogleMaps JSP Taglibrary项目提供了一组Java类库,将JSP的Tag标签转化为调用地图的脚本,大大简化调用地图API的时间,并且它还能够与JSTL相结合生成数据库驱动的动态地图查询。

之所以说Google有时在引领Web技术的走向,Ajax的普及应用就是一个极好的证明,最近试用了Google发布的Ajax的工具包Web Toolkit,这个工具包可以加在Eclipse环境下通过Java类的编写自动生成Ajax所需的脚本,实现类似Gmail的富客户端效果的界面风 格,只是感觉上手使用还有些不方便,但随着版本更新,这应该会是很不错的Ajax代码生成方式。

当然Google的核心服务还是互联网搜索,说不准下一个Google神话将在何时诞生,但有兴趣的朋友可以使用开源的Java项目Nutch实现一个自己的互联网搜索引擎,在Nutch里面包含有完善的排序算法和网络爬虫程序,构建一个简单的互联网搜索站点应该不会只是一个梦想。

使用Eclipse开发网格服务及其相关

一直比较喜欢IBM Developer Works上的教程,大部分做的很细致而且基本都有源代码示例。不过最近调试IBM发布的使用Eclipse开发网格服务教程,示例代码中应该是有两个类没有实现,未能调试成功。还反馈给了IBM DW中文版的编辑,不过文章的原创是老美,也不知道人家会不会改正一下。(更正:文档重新细致的看了一遍,添加了漏掉的步骤,IBM的例子已经于06年3月31日调试通过,为我的不扎实做一下检讨)

推荐两个值得关注的网格、Java相关的开源项目:
1. GT4IDE:这个项目可以将Globus4集成到Eclipse中简化网格服务的开发,来自西班牙的开发者Borja正在攻读芝加哥大学的CS博士学位,看了一下他的简介,发现是个积极活跃的分子。

2.WebRCP:这个项目可以将Eclipse发布的RCP产品转化到Java Web Start的基于Web的应用上来。很不错,这样可以免去开发者编写JNLP配置文件的工作,同时可以规范化程序的结构。

时间似乎有些紧张,但感觉学习一直没有太大的进展,而且不经意就会遭到一连串小的打击,看来的好好计划一下了 :)

基于Web Start的应用发布设想

一直看好Java Web Start的应用前景,通过这种方式可以使部署在服务器上的富客户端应用通过一个HTTP链接加载到客户机上,取消了传统C/S结构的种种限制,给使用者带来很大的便利。可以看看Sun公司的Java Web Start官方站点。Sun公司提供JWS的demo演示可以在这里找到。左图为JWS的标准访问流程。

最近讨论了一下类似ww2d这种数字地球的产品化前景,要做的改进主要是数据应该像Google Earth那样进行加密传输,而不能像NASA World Wind都下载到缓存里让所有人都得到,因为国内用户对自己的数据保护还是相当看重的,毕竟高分辨率的数据买来也需要不少花费。ww2d程序在我的Win2K下用Eclipse重新编译了一下,简单修改了几个地方,比如增大初始窗口、状态栏增加了几个坐标的显示等,然后上传到基于FreeBSD的麒麟OS服务器上运行一切正常,不得不再赞一下Java的跨平台特性。

准备考虑使用Java网络装载协议(JNLP)发布一下ww2d这样的Virtual Earth应用,远程客户可以通过Internet访问和运行部署在服务器上的ww2d应用程序。同时值得尝试一下将Eclipse的RCP富客户端应用使用JNLP打包和配置,发布为Web Start应用,这样结合Eclipse的RCP技术和Java Web Start,应该会有不错的收效。

如果网络传输不是问题,随着JWS技术的不断成熟,可以预见,日后相当一部分的Java Desktop应用可以通过这种方式发布。

Evangelist们的宣传攻势

随着Evangelist这个词在技术领域越来越火,技术布道概念也漂洋过海带给了我们新的感受,Evangelist可以理解为传道者或技术布道者。典型代表算作是Java之父James Gosling,这位大叔似乎已经成为一个象征,逐渐向娱乐Java开发者的目标迈进,图片是James在米国著名卡通片South Park中的造型,非常可爱。

关于制作精美的技术宣传资料,先推荐一下自己很喜欢的BEA thinking liquid宣传片,点这里在线观看。这个BEA的Marketing Showcase,第一次看见是在BEA World2005年会开幕式上,很精致,整篇灌注了关于流体思考的理念,可是这段视频找不到下载地址,只能在线观看。

然后是IBM的关于Inspiring Innovation的各国语言版本宣传片,灌输着IBM一贯随需应变的On Demend理念,点这里在线观看

在造势与做秀方面,当然少不了这方面的先驱Microsoft,先推荐一下关于Microsoft Innovation创新理念的交互介绍。可以在菜单选择6为Microsoft的员工进行讲解,来了解MS技术在社会不同方面的应用,点击这里进入。然后是作为微软Live站点的最新噱头Virtual Earth,Preview的页面里通过采集大量图片资料,再现真实的视觉体验,点击这里进入

先消化这些,还有好的资料以后有时间慢慢介绍。向有意思的Evangelist们看齐。