原文地址:
http://blog.sina.com.cn/s/blog_869bf7c5010100rd.html
近期在研究openstack,打算从openstack前端展现dashboard开始研究,计划通过汉化的方式,整理把握dashboard的设计原理和源码结构。
horizon是openstack 的dashboard的项目名,以下分别从逻辑、部署、开发几个方面分析。
- 逻辑架构




其实老外把rest接口当做展现presentation一种其实是很有道理的,不过在现有公司里面展现主要还是界面相关。这点和公司现在的产品线架构类似,目前都是web+rest的模式,web不做数据存储和复杂业务逻辑的处理,horizon的定位类似,基于nova和swift以及keystone的基本REST接口实现,不过它通过调用已有的python-novaclient或者python-keystoneclient实现REST接口调用。
- 部署架构
- 开发架构
./api | 调用nova、swift、glance等接口封装 |
./dashboards | 界面展示主要目录 |
终端用户界面 | |
云主机&云硬盘 | |
云主机 | |
云主机列表 | |
云硬盘 | |
云主机&云硬盘在左侧页面导航 | |
url映射 django框架 | |
主页视图 | |
html界面模板 | |
管理员界面 | |
./forms | 界面表单,统一的表单显示和表单处理,基类 |
./tables | 界面表格,列表/查询,统一的列表和查询基类 |
表单列表基类文件 定义类表单的整个框架布局 | |
表单列表视图 | |
./templates | 公用界面模板 |