跳转到主要内容

Grayson集群、网格和云计算SDK。

项目描述

GRAYSON
=======

Grayson是一个用于设计、执行、调试和共享科学工作流的工具链。它包括
1. 用于创建可视工作流组件的编辑器,yEd by yWorks
2. 用于解析和链接组件到工作流中的编译器
3. 用于执行和故障排除工作流的可视化调试器

编辑器
-------

yEd是一个桌面应用程序和GraphML编辑器。它提供了点、点击、拖放和其他熟悉的用户界面隐喻。图节点可以进行注释,所有工件都保存为XML。

编译器
---------

编译器是一个Python命令行程序,它将GraphML模型组装成抽象语法树,并输出带有所有必要目录的Pegasus DAX。

它还提供了一个打包器,将工作流工件组装成压缩存档,以便提交到执行环境。

执行环境
----------------------

执行环境是一个Web应用程序,允许上传和执行打包的工作流。

它读取带有嵌入式JSON注释的GraphML工作流,并使用HTML5 Canvas API进行渲染。

它还将工作流编译成Pegasus WMS DAX,并提交以执行。

它提供了一套监控基础设施,包括
- 一个AMQP消息队列
- 分布式任务队列 - Celery
- 通过Node.js异步将事件通知给客户端

这允许工作流事件在用户界面上动态渲染。

安装
============

先决条件
-------------

1. Pegasus 3.0.1
2. Condor 7.7.5+
3. Globus
4. Python 2.7

概述
---------

Grayson非常处于alpha阶段。这些是初步的安装说明。

这些已在Fedora和CentOS 5.7上进行了测试

git clone git://github.com/stevencox/grayson.git
export GRAYSON_HOME=$PWD/grayson
source $GRAYSON_HOME/bin/setup.sh
grayson-install --clean --frozen --python=$(which python2.7)

这将为您提供以下目录

grayson
├── bin
├── conf
├── event
├── lib
├── samples
├── target
├── var
├── venv
└── web
stack
├── apache
├── erlang
├── java
├── modwsgi
├── node
├── pegasus
└── rabbitmq


开发环境
------------------------

在开发环境中运行 -

cd grayson
export GRAYSON_HOME=$PWD
source $GRAYSON_HOME/bin/setup.sh

cp conf/dev.conf conf/grayson.conf
web/manage.py runserver 0.0.0.0:8000
sudo bin/grayson-rabbit.sh
web/manage.py celeryd -l debug
node event/server.js

生产实例
--------------------

在您的 apache 实例中安装 mod_wsgi 并将其添加到 apache 配置中

LoadModule wsgi_module modules/mod_wsgi.so
WSGIDaemonProcess host.domain.name user=<user> group=<user> processes=2 threads=25
WSGIProcessGroup host.domain.name
WSGISocketPrefix run/wsgi
WSGIScriptAlias /grayson /opt/grayson/current/web/apache/django.wsgi
Alias /grayson/static/ <installdir>/web/graysonapp/static/
<Directory <installdir>/web/graysonapp/static/>
Order deny,allow
Allow from all
</Directory>
LogLevel info

将 <installdir>/bin/init.d/* 复制到 /etc/init.d 并确保它们是可执行的。

您需要更改这些路径以匹配您的环境。

将 <installdir>/prod.conf 复制到 <installdir>/grayson.conf
编辑 <installdir>/grayson.conf 以提供 Web 服务器证书的路径。

作为 root 用户

<installdir>/start-rabbitmq
/etc/init.d/grayson-httpd
/etc/init.d/grayson-celeryd
/etc/init.d/grayson-event

适当地修改防火墙设置以允许访问 httpd 和 node。node 的默认端口为 8080,可以在 <installdir>/grayson.conf 中设置。

Grayson 可在 https://<host.domain.name>/grayson 访问


下一步
==========

Grayson 处于早期 alpha 阶段。它已经与 Pegasus 3.0.1 进行了测试。

一些事情很明确

* 支持并移动所有示例到 Pegasus 4.0.x
* 将使用 Pegasus STAMPEDE 进行事件检测
* 使用 Pegasus 提供的 SQLAlchemy STAMPEDE API
* 修改事件通知以将事件范围限定为所选子工作流 - 而不是整个工作流。
* 至少需要一个非图形化方法作为选项。


构建环境
=================

Grayson 在 [RENCI 持续集成系统](http://continuousintegration.wordpress.com) 中构建。

* [自动构建](http://ci-dev.renci.org/hudson/view/RCI/job/rci-grayson/)
* [API 文档](http://ci-dev.renci.org/hudson/view/RCI/job/rci-grayson/javadoc/)
* [覆盖率报告](http://ci-dev.renci.org/hudson/view/RCI/job/rci-grayson/507/cobertura/)
* [静态分析](https://ci-dev.renci.org/hudson/view/RCI/job/rci-grayson/ws/pylint.html)

自动单元测试输出可以在构建日志中看到。测试目前集中在 Pegasus DAX 生成上。还使用了 PhantomJS 来测试用户界面。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅有关 生成分发存档 的教程。

构建分发

grayson-0.1.0.linux-x86_64.tar.gz (291.4 kB 查看哈希值)

上传

由以下支持