工程管理?
这里的工程管理,我想表达的是java工程的管理。Taverna工程是用Maven来组织和管理的,Taverna2.2.1整个源代码非常庞大,用Maven导入后,一共有155个大大小小的Java工程。其中最要命的是文件名很长,在Windows下,导入了源代码,一个很不辛的事情是,如果你想删除Taverna,系统会告诉你文件名太长无法删除~~~,有点悲剧。
文档支持如何?
Taverna虽然结构如此庞大,但是相关文档非常齐全,非常规范。除了会想到这是背后有大靠山myGrid支持的缘故,还有一层就是做软件的态度。别人的文档真可以说是具体而微,解释得非常细致。
值得一“读”?
之前一直在研究Taverna1.5-这个都是别人几年前就开发完成的事情了,感觉差距很大。唯一值得欣慰的是对freefluo的源代码摸得还算清楚,对这个系统也产生的强大的兴趣。现在Taverna2的技术非常“时髦”,看文档,在架构上,他们正在像OSGI移植(Taverna 2.3这个版本),而应用技术上,把工作流放到了亚马逊云上,这些事情都是人家马上就要做好的事情了。
都有些什么技术?
整个Taverna系统就像一锅大杂烩,什么都有,而且粘合得比较合适,让你觉得它不会大多,也不会太少,毕竟这些技术是用于科学领域,稳定,高效是宗旨,据我目前在Taverna1.7以前的了解到的情况,它包含了:
工具:
Eclipse、Maven、Hudson、Jira、jProfiler、 ATLASSIAN、 Conflunce 、jUnit
Java技术:
设计模式:里面涵盖了大量的设计模式
基于Java的插件设计:如何用Java来设计插件-这里是思想
Web服务组合:不同服务之间的配合
图像显示:特别是大规模DAG图的展示
工作流技术:数据驱动为主,控制驱动为辅
Java脚本:在工作流描述语言中使用Java脚本
其他脚本语言在Java中的结合:R,Python......
GUI界面设计:AWT
分布式计算:这个也是科学工作流要面对的
跨平台特性:我们都知道Java是跨平台的,但是还有很多地方时要考虑的,多特性糅合后,是否还跨平台?
如何设计长时间、稳定、高效的系统:科学领域的软件,有些处理的时长从几天到几个星期~~~~
其他:
嵌入式数据库技术、Provenance的实现、如何可扩展、灵活~~~~
Hibernate、Spring、SPI、OSGI(下一个版本)、云计算..................
无语了