使用开源软件设计开发和部署协作型 Web 站点 第1doc.docx
- 文档编号:911714
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:10
- 大小:27.31KB
使用开源软件设计开发和部署协作型 Web 站点 第1doc.docx
《使用开源软件设计开发和部署协作型 Web 站点 第1doc.docx》由会员分享,可在线阅读,更多相关《使用开源软件设计开发和部署协作型 Web 站点 第1doc.docx(10页珍藏版)》请在冰豆网上搜索。
使用开源软件设计开发和部署协作型Web站点第1doc
使用开源软件设计开发和部署协作型Web站点第1
from:
使用开源软件设计、开发和部署协作型Web站点,第1部分:
简介和概述
文档选项
未显示需要JavaScript的文档选项
打印本页
将此页作为电子邮件发送
讨论
级别:
中级
AlisterLewis-Bowen,高级软件工程师,IBMStephenEvanchik,软件工程师,IBMLouisWeitzman,高级软件工程师,IBM2007年3月15日
在这个系列中,在IBMInternetTechnologyGroup团队的带领下使用一套可免费获得的软件来设计、开发和部署一个完整的社区Web站点。
开放源码社区提供了各种工具,结合使用这些工具可以为复杂的Web应用程序创建一个有用的开发和生产环境。
以这些工具作为基础,我们提供了一种方法和一些改进,能帮助简化开发过程。
尽管定制仍然是有必要的,但是这个系列讲解了如何使用开放源码工具快速建立和运行相当复杂的Web站点,这些工具包括Drupal、MySQL、PHP、Apache和Eclipse技术。
第一篇文章将我们的方法与其他可用软件工具进行比较,并讨论我们所做的改进。
简介
现在,Web站点已经成了业务的重要部分,而用来创建和部署Web站点的工具也变得更灵活和容易使用。
但是,复杂Web应用程序的开发并不轻松,它们需要的不只是标准的交互方法(比如blog)。
组织中的每个应用程序常常需要进行定制。
在这个系列中,我们通过一个虚构的组织,InternationalBusinessCouncil(IBC),来展示如何更有效地尽可能扩展Web站点的功能。
IBC让它的职员在一个协作型社区中与外部业务伙伴进行交流;但是,目前的Web站点无法满足当前的业务需要,这个站点必须进行重新设计。
这个新的定制Web站点必须有文档存储、讨论组、专门的工作组、研讨会日程安排、日程议题描述、会话过期和其他任务。
用户的角色是通过改进战略和战术决策来改进公司提供的产品。
用户社区是按照工作组的核心问题进行组织的。
社区每年举办数次研讨会,以当面会晤。
在研讨会上提出问题,然后在会晤的间隔解决这些问题。
Web站点用来提供关于社区活动(比如研讨会)的信息,并跟踪会晤中所提出问题的解决进度。
现有的Web站点基于一个文档存储库,这个库用来交换文档、更新关于即将举办的活动的信息。
但是,这个Web站点不足以促进社区的交互,尤其是缺乏Web2.0站点的那些新功能,比如Weblog、讨论组、RSS提要等等。
团队的目标是鼓励社区的交互,并提供一个发布框架来支持社区活动。
问题
因为这应该是个安全的Web站点,我们需要进行会话管理来支持过期,以及在授予访问权之前对条款和条件文档进行确认。
还需要支持一种直接的操作方法来进行内容编辑--如果要对内容进行操作,我们希望交互控件放在它所影响的内容旁边。
现有Web站点的其他问题涉及不一致的可视语言、导航和信息体系结构。
内容常常隐藏在文档中,而文档放在存储库中;直到下载并查看文档之前,没有任何线索能够表明文档中有什么内容。
根据我们的分析,团队认为文档存储库采用了错误的模型。
我们需要一个能够完成更多任务的内容管理系统。
设计过程
我们的设计过程是迭代式的,首先进行分析,然后是原型设计,然后是评估。
我们利用调查表、备选设计和不同精度的原型让最终用户尽早参与进来。
我们希望将决策集中于业务目标和最终用户的需要。
我们发现,在着手处理一组功能需求或开发之前,用户参与得越早,我们就越能了解什么特性是有用的以及怎样的决策是正确的。
我们没费多大的力气就收集了一些非常有价值的反馈,同时使用户感觉他们是设计过程的一部分。
我们还获得了用户社区的高度信任。
理解设计还需要理解信息体系结构。
例如,根据用户调查的发现,最重要的需求之一是对三种主要信息的访问能力:
关于工作组的信息关于以前的和即将召开的研讨会的信息关于所有成员的信息用户反馈还清晰地表明,需要一种清洁、整齐且简单的体系结构。
我们的分析表明,访问这个站点的有三类用户:
顾客、工作组负责人和管理员。
这些人影响了我们的设计和决策过程。
通过了解哪些信息是重要的以及这些信息与主要用户群的关系,我们能够确定一个内容体系结构、它的层次结构、呈现方式以及各类用户与此种信息的交互方式。
例如,研讨会信息可能包括议程(即会议议题)、这些议题的日程安排、跨多次研讨会的主题以及在研讨会之间已经解决的议题。
本系列中的下一篇文章将更详细地讨论我们的设计过程。
随着分析的深入,需要增加的特性也逐渐明朗化。
例如,为了支持一个活跃的社区,我们希望支持对内容进行讨论和评论的功能,并支持与上下文相关的反馈和在线协作。
另一个重要的客户需求是使用惟一的中立的品牌(即可视化标识)。
因为这个Web站点是一个中立的场所,具有不同背景的用户在这里进行协作,与任何一家公司或任何一种背景有关的强烈视觉关联都会造成不必要的障碍。
回页首
开发环境
为了简化开发过程,我们希望使用一个现有的内容管理系统来帮助生成一个及时的解决方案。
大多数内容管理系统都支持我们需要的基本功能,但是都需要进行详细的定制。
开箱即用的实现不足以满足需要。
我们希望以开放源码社区中已经取得的成果为基础进行开发。
我们最终使用的工具就是按照这一原则选择的。
我们对开发环境有几项要求,比如能够在不依靠网络的情况下编写和测试代码的修改。
在对修改进行充分测试之后,我们希望与开发团队共享代码。
这个迭代式的开发循环导致我们选用一种远程版本系统CVS,从而可以与团队成员保持同步并维护一个所有人共享的代码基。
我们选用Eclipse来支持这个项目,并在一个集成开发环境(IDE)中使用所有技术。
Eclipse提供了许多扩展并可以非常轻松地与ConcurrentVersionsSystem(CVS)进行集成。
Eclipse透视图提供了几个支持当前活动的视图和编辑器。
在我们的情况中,活动就是编辑PHP模块和HTML片段。
Eclipse还跟踪对代码的修改。
所以,即使没有将文件签入CVS,仍然可以从本地机器恢复文件的先前版本。
Eclipse的这个特性有助于确保不会丢失代码。
我们创建了一个集中的开发和测试环境,这样就可以顺畅地处理代码并与团队的其他成员进行协作--您的时间应该花费在编写和测试代码上,而不是管理文件和系统上的其他资源。
对内容管理系统的选择影响到需要使用的其他工具。
对于Drupal,这意味着用PHP、HTML和层叠样式表(CSS)来开发页面,用MySQL进行后端存储。
回页首
需求
我们建立了一套需求,这将指导我们选择内容管理系统。
如果某些特性不存在,我们希望系统能够轻松地扩展以包含这些特性。
这些需求包括:
内容与表示的分离对内容进行就地(in-place)评论对内容进行就地编辑按线索组织的讨论组(Threadeddiscussiongroup)控制访问特权搜索内容在查看任何内容之前进行身份验证会话控制,包括过期以及合法条款和条件的签名支持通过讨论进行社区交互内容管理系统要便于学习提供给客户的内容管理系统的管理界面要简单图1显示了来自这个Web站点的最终设计的一个典型页面。
在我们讨论设计和实现的不同方面时,将会详细描述这个页面。
图1.来自IBCWeb站点的典型页面
回页首
开放源码内容管理解决方案
管理Web站点内容有许多方法,从简单的Weblog(blog)引擎系统(只支持有限的内容发布功能)到完整的内容管理系统框架,再到应用程序框架(可以在其上构建自己的定制内容管理系统)。
由于在开放源码领域中存在众多的选择,所以很难选择适合自己需要的解决方案。
最终,我们选择了Drupal。
但是,描述一下我们进行决策的基本原则是有好处的。
下一节描述一些候选系统,包括Drupal、Mambo、Typo3、RubyonRails、MovableType、WordPress和TextPattern。
内容管理解决方案的对比
Drupal
"Drupal软件允许个人或用户社区轻松地发布、管理和组织Web站点上的各种内容。
数以万计的个人和组织已经使用Drupal建立了不同类型的Web站点,包括
社区Web门户和讨论站点公司Web站点/内部网门户个人Web站点爱好者站点电子商务应用程序资源目录Drupal支持内容管理系统、blog、协作型编写环境、论坛、时事通信、图片库、文件上载和下载等等。
Drupal是采用GPL许可协议的开放源码软件,由一个包括数千用户和开发人员的社区来维护和开发。
Drupal可以免费下载和使用。
"(来源:
CMSMatrix)与其他内容管理系统(CMS)相比,Drupal还相当"年轻"。
但是,我们感到这个框架编写得非常好,既健壮又非常灵活,而且有一个兴旺的开发社区,这意味着会有大量用户采用和支持它。
与其他CMS一样,这个框架有很强的可扩展性。
我们需要的许多特性已经以模块的形式提供了,可以轻松地将这些模块与Web站点的核心功能集成起来。
这个框架和模板(主题化)系统完全是用PHP编写的;我们不需要学习另一种标记语言。
如果需要摆脱这个框架,可以非常容易地做到。
(当然,不建议这么做,但是这提供了最大的灵活性。
)
会话管理内置在核心功能中,这是其他CMS没有提供的。
这免去了后面的许多麻烦。
Drupal以其可伸缩性而闻名,也就是可以支持Web站点从少量用户发展到企业级。
这个框架还能够对站点的某些区域进行"节流",可以避免这些区域在高流量期间造成潜在的问题。
学会用"Drupal方式"创建站点仍然需要一个学习过程,但是其难度与其他CMS相比低多了。
为了在业务逻辑层和表示层之间自由地移动(使用PHP模板引擎),还需要掌握PHP。
有人认为Drupal的访问控制粒度应该更细,但是我们认为可以利用灵活的可扩展性应对这方面的问题。
Drupal4.7刚刚发布,它对4.6版本做了许多改进。
Mambo
"MamboOpenSource是当今最出色的开放源码内容管理系统之一。
Mambo的默认安装很容易设置和维护。
设置实用程序使用一个分4步的向导,允许用户安装整个系统而不需要掌握高级技术知识。
安装之后,系统包含许多可供选择的模板和大量现成的功能。
用户不必掌握HTML、XML或DHTML,也能够添加、编辑和操作内容--只需使用一个友好的编辑器输入内容并点击Publish。
更高水平的用户可以以适合自己技能的层次控制这个系统。
核心文件是用PHP编写的[Mambo基于Linux、Apache、MySQL和PHP、Perl或Python(LAMP)],而且很容易修改。
这个系统既健壮又可靠,而且由一个包括用户和专业开发人员的大社区提供支持。
(到2006年初,Mambo已经有5年历史了!
)"(来源:
CMSMatrix)目前,Mambo很流行,它提供了非常容易的安装和吸引人的容易使用的管理界面。
常常被忽视的一点是,如果客户需要在您交付系统后管理Web站点,而您希望它能很好地工作,那么CMS系统的后端就会变得非常重要。
轻松的安装似乎意味着我们需要的几乎所有功能都已经就位了,可以开始主题化了。
但是,与许多CMS一样,模板受到一个标记系统的限制,这使您无法控制标记的质量。
如果标记是有效的,其结构符合语义,而且充分地设置了CSSID和class属性以支持样式化,那么很不错。
但是,如果不是这样,您就必须探索应用程序的核心,了解如何纠正生成的输出。
Mambo只提供了有限的会话管理功能,但是仍然比其他CMS提供的功能多。
Mambo的开发路径似乎有点儿混乱,而且对于这个解决方案的未来我们也没有把握。
Mambo的开发划分成几个解决方案。
Miro是一个商业产品,而Joomla似乎是从Mambo衍生出来的一种新的CMS。
Mambo仍然存在,它的当前开发路径似乎比较稳定了。
Typo3
"TYPO3是一种在GPL之下发布的企业
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用开源软件设计开发和部署协作型 Web 站点 第1doc 使用 软件设计 开发 部署 协作 doc