PHP中文俱乐部's Archiver

抽烟的蚊子 发表于 2008-11-11 16:39

Web 2.0 的软件开发生命周期

2008 年 11 月 04 日

    任何软件开发生命周期都必须进行适当的组织,然后才能按预期成功地执行项目。对于 Web 2.0 来说也是如此,其中规划良好的生命周期将使您能够实现在更短的开发周期中构建 Web 服务的愿景,允许快速的测试和开发,并提供服务版本管理。通过本文开始了解基于 Web 2.0 的应用程序的软件开发生命周期。

Web 2.0 应用程序开发流程要比使用标准开发方法的流程更加敏捷。在 Web 2.0 领域,用户在其思考方面将更加敏捷,将希望一切变得更快速,并开始习惯于快速的更改。支持 Web 2.0 的内容管理工具的作用正在变得清晰起来。以下是一个例子:

看看 Joomla、Drupal 或其他诸如此类工具——允许准技术人员快速构建基于 Web 2.0 的社区站点的快速开发环境,所构建的站点具有各种各样的功能,包括 Blog、论坛、调查、Google gadget、RSS Feed 甚至多媒体内容。这些工具还允许进行针对性的营销和广告宣传活动以产生收入,并具有若干传统电子商务功能。功能以预构建和预打包的形式提供,只需最少的工作即可使站点正常运行起来。然而,作为负责提供基础功能的开发人员,您需要配置细粒度的安全性,并拥有对用户界面 (UI) 的完全控制。如果您是资深的开发人员,可以编写新的插件并扩展这些平台的功能。

此流程是面向服务的体系结构 (Service-Oriented Architecture, SOA) 和 Web 2.0 开发的极好示例。此流程基本上就是利用某个平台——比方说 Joomla——并使用层叠样式表和若干第三方插件对该平台进行自定义,以满足特定的功能和业务需求。因此,产生相当可靠的社区站点现在只是几天而不是数周或数月的事情。此外,这种范式允许迭代开发,因此您可以在随后的发布中为站点添加和自定义插件。
       
社会化网络

Web 2.0 的另一个方面是社会化网络,我没有将其包括在本文的范围内。在本文的几乎每个句子中,您都可以将社区 或内容管理 替换为社会化网络,并且本文可能仍然通顺。这是好的一方面。

然而对我来说,社会化网络意味着比社区 更多的大量人员和内容,这显然在可伸缩性和基础结构方面带来了更多的技术挑战。就功能而言,可能存在一些需要自定义编码并使用较传统的软件开发方法的社会化网络方面(尽管 80% 至 90% 的都应该来自内容管理系统功能)。

内容管理系统 (Content-Management System, CMS) 和社区网站无论如何也不是 Web 2.0 的界限和边界。我所描述的只是一个可能的用例。然而,考虑一下可以发现,这正是 Web 2.0 真正表现出众并在其工具集方面最成熟的领域。这也是大多数人使用 Web 2.0 的方式,因此值得讨论一下。

RUP 在 Web 2.0 中的位置

在我看来,诸如瀑布模型或 IBM® Rational® 统一过程 (IBM® Rational® Unified Process®, RUP®) 等传统生命周期模型对于 Web 2.0 开发来说有点太僵化了。如果您在构建诸如 Joomla 或 WordPress 等核心 Web 2.0 平台,RUP 也许非常适合于该任务。我甚至坚持认为,您可能真的需要一个可靠的软件开发流程来完成这样的项目。除非准备了适当的控制措施,否则您的范围和功能集会很快变得难以控制。了解需求并拥有此类项目的可靠设计计划是非常关键的。请记住,您不知道谁将会使用或者将会如何使用您正在构建的项目。在设计时考虑到此问题需要仔细的规划和可靠的流程才能确保成功。



Web 2.0 中对敏捷性 (Agile) 的要求

请考虑 Web 2.0 在某个项目上的应用。您的营销团队要求您提供一个社区平台以促销某个新产品。团队成员希望创建某些评论或广告,也许是一些视频,也或许是调查。他们实际上是在设法拿出一个策略以促使大众对新产品的追捧,并希望使用 Internet 作为促销和销售该产品的手段。在当今的世界中,新颖的思想本身还不足够。

您是将帮助他们实现所有这些目标的信息技术 (IT) 人员。您与营销负责人进行了第一次会面,并听取了他或她的想法。您立即想到了 Web 2.0 内容管理系统 (CMS),例如 Joomla。您是否会奢侈地提到有关该站点应该如何工作的详细问题?您是否会奢侈地创建传统的需求文档、用例等等?您是否会为系统创建一个基于统一建模语言 (Unified Modeling Language, UML) 的设计?答案应该是“显然不会!”

您需要变得敏捷。您需要调查一些有关所需功能的基本事实,然后您将下载并安装 Joomla。您将找到适当的插件并让功能正常工作。您的大多数时间——也许超过 75%——将花在自定义样式表上,您需要这些自定义样式表以便站点能够突出您正在促销的新产品。

取决于细节和范围,从概念到部署,应该花不到一个月时间即可创建新产品的营销站点。请记住,此站点可能只有很短的存续期。在大多数情况下,这不是将要使用五年的站点——有时甚至不超过一年。

这种快速开发流程可以根据软件生命周期模型进行更正式的定义。您也许对极限编程 (XP)、Scrum 和其他敏捷开发流程有所了解。对我来说,那些流程对所需的东西来说可能仍然太僵化了。您必须定义敏捷流程的哪些方面可采用来最好地满足您的需求。用户案例、迭代开发和发布以及简单规划策略是新流程的关键元素。包括质量保证和测试周期以及用户验收测试也是个好主意。




EA 在 Web 2.0 中的角色

企业架构 (Enterprise architecture,EA) 必须在此类领域中扮演不同的角色。列出标准、框架、策略和治理的传统实践更为重要,但是它们也需要适应 Web 2.0 项目所要求的敏捷性。

就标准而言,EA 团队应该重点关注要使用哪些 Web 2.0 工具,以及如何和在何处部署它们。例如,团队不需要对您选择使用的每个插件进行微管理。

EA 团队应该确保基础结构是可伸缩的,并且更重要的是安全。除此之外,必须准备某些治理,以防止开发团队做任何危害系统完整性和安全性的事情。EA 团队还可以为这些平台的管理和监视定义标准。客户体验是社区 Web 2.0 站点的关键。每个客户只给您一次机会。您不希望客户访问您的站点时发现站点关闭或响应很慢。

EA 在 Web 2.0 CMS 中扮演的关键角色集中于内容保护。该团队应该与您的信息安全代表(也许还有法律部门)密切合作定义保护标准和法律免责声明等等,以便在启动该社区站点后,公司会受到保护。EA 还可以帮助定义针对站点内容的实践和治理流程。毕竟,您不希望某些 Blog 作者在您的站点上张贴谩骂或攻击性的语言或图像。



总结

Web 2.0 需要软件开发流程方面的敏捷性。尝试跨越标准需求模板和设计流程的障碍,并将它们调整为更加迭代的流程。为变化而构建,为灵活性而构建,并利用可用于简化 Web 2.0 项目的丰富工具。然后,使用 EA 团队来定义网站的内容保护、安全性、管理和监视标准。


参考资料
学习

    * 您可以参阅本文在 developerWorks 全球网站上的 英文原文。

    * “The Best of Web 2.0 content-management systems”:了解与 CMS 相关的顶尖 Web 2.0 应用程序、软件、开放源代码、网站、产品和服务。

    * “Creating an Agile Environment”:阅读 Gregory S. Smith 的 Software Development Magazine 文章。

    * 在 developerWorks Architecture 架构专区中,获取用以提高您在体系结构方面的技能的各种资源。

    * developerWorks Web 2.0 资源中心:developerWorks 上所有有关 Web 2.0 的技术资源都可以在这里找到。

    * 浏览 技术书店,以了解有关这些技术主题及其他技术主题的相关书籍。


获得产品和技术

    * 下载 IBM 产品评估版,使用 DB2®、Lotus®、Rational®、Tivoli® 和 WebSphere® 的应用程序开发工具和中间件产品。


讨论

    * 在这个 Inside Architecture Blog 中,了解 EA 如何支持 Web 2.0。

    * 了解有关 EA 和 Web 2.0 的更多信息。

    * 访问 developerWorks Blog,从而加入到 developerWorks 社区中来。



关于作者

Kunal Mittal
               

Kunal Mittal 是一位擅长 Java 技术、J2EE 和 Web 服务技术的顾问。他已经和人合作出版了多本有关这些主题的书籍。他是 Sony Pictures Entertainment 公司 Domestic TV IT 小组的主管,负责该部门应用程序的技术架构和管理。在业余时间,他为 IBM developerWorks 撰写文章,提供 SOA 咨询服务,同时他还是一位私人飞机驾驶员。有关更多信息,请访问 Kunal 的网站 [url]www.kunalmittal.com[/url]。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.