早在WSS v3 和 MOSS 2007正式发布前, 在业界就已获得许许多多赞美之词。例如“......但对于终端用户而言,WSS v3 绝不仅仅只是一种协作工具。它还是一个成熟的开发平台,为 ASP.NET 增添了巨大的价值。”;“Office 2007 具备重要的企业开发平台所需的所有特性。Office 提供了广泛的基线功能集、一系列扩展点和供选择的开发人员功能集。”......笔者一次突发灵感,意识到实际上WSS v3 和 MOSS 2007还为SaaS开发提供了一个绝佳的基础构造和开发平台!让我们首先从SaaS架构师,WSS & MOSS程序员的perspective看一看WSS v3和MOSS 2007的亮点;看一看它们对SaaS architecture的极好支持;看一看基于它们的Web application为何能够可扩展,多租赁和可配置。
WSS v3和MOSS 2007的最大亮点在于它们支持最高层的SaaS architecture,所以我从后往前进行论述。(正常顺序为可配置,多租赁和可扩展)。
l 可扩展
对于SaaS架构师,WSS v3最迷人之处,莫过于它与生俱来的对the Fourth-level SaaS maturity model --- tenant load balancer的支持。正因为如此,SaaS开发人员甚至于可以零编码快速部署一个基于Farm的SaaS应用!
“WSS 3.0 是 Windows Server™ 2003 的附件。其核心是,WSS 作为可伸缩的站点提供引擎,简化了成百上千个Web 站点的创建和管理过程,并使得成千上万的用户能够对其进行访问。通过使用在考虑 Web 领域环境的基础上所设计的体系结构,从而实现了 WSS 的可伸缩性。此体系结构基于依赖于 SQL Server™ 来存储内容和其他站点相关数据的无状态前端 Web 服务器而构建。”
可扩展包含两方面。扩展the Application如上所述。
扩展the Data如下:多个运行WSS的机器可进入一个SQL Server database或一组以网站分区的database。这样一来就改进了可扩展性,允许大量的用户进入同样的网站。值得一提的是,尽管它们逻辑上是分开的及对用户来讲看似不同,在内部,documents和items 实际上很相似:都只不过是SQL Server tables中的记录而已。
l 多租赁
如果说“可扩展”是WSS v3和MOSS 2007的最大亮点,那么“多租赁“的确定则是笔者的一大难点!通过反复研究,还咨询了MVP,最终却认定a Web Application 作为 a single instance。Different Top-level sites belonging to different site collections of a Web Application 服务different Tenants. The child-level sites belonging to a Top-level site服务end users of the same tenant。
l 可配置
可配置分为data model 配置,workflow配置以及UI 配置。
data model 配置:
List是WSS的一切的中心。WSS中的所有content都存储为一个List。WSS甚至于可以在SQL Server中为existing 和 new lists存储items,而无需产生new SQL Server tables。这成为WSS scalability的根本。笔者认为不仅如此,它还是data model customization的关键所在。Lists可有多个由用户通过WSS UI产生的views。
lists schema由一组names and types组成的columns构成。lists schema 决定the structure of each item。WSS也支持content type。content type schema 决定document or list item。
“许多开发人员希望能够在较低级别使用 WSS 字段,以获取字段呈现和验证的更多控制权限。为了响应上述问题,WSS 3.0 添加了新的可扩展字段类型。可通过使用 C# 或 Visual Basic® 编写类来创建可扩展字段类型,该字段类型继承自其中一种内置 SharePoint 字段类型(如 SPFieldText 和 SPFieldNumber)。可扩展字段类型也可以使用包含您所喜欢的 Web 控件的 ASP.NET 用户控件,对于控件初始化和验证,您可以使用在 ASP.NET 应用程序中所使用的相同技术。”
“WSS 3.0 中的另一个有用创新是自定义站点列。站点列是可以应用在多个列表中的可重复使用定义。它定义了列的名称,其基本字段类型以及其他特征(如默认值、格式和验证)。只要定义了站点列,便可以在定义您的用户定义列表的结构时使用该站点列。一个明显的优点是您可以在一个位置更新站点列,而该更新会影响到使用该站点列的所有列表。站点列在单个站点范围内定义,但对于下面的所有子站点而言,该站点列都是可见的。”
“WSS 3.0 引入了一种强大的新存储机制,称为内容类型。内容类型是一种灵活的、可重复使用的 WSS 类型,它用于为列表中的项或文档库中的文档定义样式和行为。”
亮点, 难点过后,现在可谓精彩纷呈,太多的选择。特别是workflow配置以及UI 配置。
workflow配置:
WSS 3.0 建立在 Windows Workflow Foundation 之上以提供将业务逻辑连接到list items 和 documents上的结构。SharePoint Designer也支持information workers 在WSS 3.0 sites上产生custom workflows。Developers则可用WF’s Workflow Designer 和 Visual Studio 2005。
WSS 3.0提供很多document-oriented workflows。然而最终,它是一个platform for development and execution.。它本身提供end users直接可用的workflow。
Developer 产生Windows SharePoint Services workflow时,可以产生 custom activities。
一旦产生了Windows SharePoint Services workflow and its forms,Developer 必须把它们包装为a feature。可以产生 a feature that defines a custom list type, an instance of that list type, and an event handler or workflow on that list instance.
Feature被安装后,它可以在any site within a farm 内被激活。然后这个站点就包含了new custom list and any behavior you want to attach to it.
Office SharePoint Server 2007为建立在Windows SharePoint Services 之上的workflow applications增加了更多的功能。通过这个产品, workflows 可用由Microsoft Office InfoPath 2007 产生的custom forms,通过Office applications,例如Word 2007和Outlook 2007,与Users进行交互。Users 也能用Web Parts定制browser interface ,允许each user产生一个非常适合于他的interface。
Office SharePoint Server 2007在Windows SharePoint Services 3.0之上所做的增加可分为三方面:support for Office 2007 clients, the ability for workflows to use forms created with InfoPath, and pre-defined workflows。
正如大家看到的那样,data model, workflow and UI 是紧密联系在一起的。
UI 配置:
“术语重像和取消重像通常与 WSS 2.0 站点的 .aspx 页面结合使用。通过页面重像,前端 Web 服务器可在其本地文件系统上存储一个 .aspx 页面模板,然后在许多个不同的站点中共享该模板。由于通过使用存储在本地文件系统并只需载入内存一次的页面模板,WSS 可为数千个站点提供页面,所以页面重像具有性能优势。
WSS 3.0 依旧支持存储在 Web 服务器上的页面模板以及存储在 SQL Server 中的定制版本。不过,文档不再使用重像和取消重像这两个术语。现在,“取消定制的页面”这一术语用于描述直接从 Web 服务器的本地文件系统使用的页面模板,而在谈到已写入到特定站点内容数据库中的页面模板的已修改版本时,则使用“定制的页面”这一术语。
WSS 3.0 从头开始设计,以包含 ASP.NET 2.0 的“母版页”基础结构。
可以很方便地用您自己的 ASP.NET 控件来代替 WSS 元素,如菜单和导航栏。这可适用于站点范围或站点集合中的页面。
母版页和内容页面的存储和加载方式类似于先前介绍的页面模板和页面定制的存储和加载方式。为母版页和内容页面定义的页面模板位于前端 Web 服务器的本地文件系统上。每个站点最初使用母版页模板和内容页面模板的取消定制(重像)版本。当用户使用诸如 SharePoint Designer 之类的工具为特定站点定制和保存其中的一个页面时,一个定制(取消重像)版本会保存到 SQL Server 数据库中。
如果喜欢,您可以为站点定制母版页,而将内容页面保留为取消定制。也可以定制一个或多个内容页面,而将母版页保留为取消定制。可以撤消任何更改;”
SharePoint的最有价值的特点之一,是users 可用web parts定制 user interface 。
“WSS 3.0 的一个重要设计目标就是能够同时运行 WSS 样式的 Web 部件和 ASP.NET 样式的 Web 部件。实现这一目标的方法是:在 ASP.NET Web 部件基础结构的顶部构建 WSS 3.0 对 Web 部件的支持。
用作 Web 部件页面的 .aspx 页可以包含编辑器部件,用户可以利用这些部件自定义和个性化永久 Web 部件属性。Web 部件页面也可包含目录部件,用户可以利用这些部件将新 Web 部件添加到各个区域中。
WSS 3.0 负责添加目录和编辑器部件,因此无需 Web 页面设计器来明确地执行此任务。”
开发人员还可以开发自定义 Web 部件。
除Web application以外,高级应用程序体系结构还包括智能客户端。笔者认为Smart Doc to support SaaS 将是另一个大的Topic.
WSS v3和MOSS 2007 对SaaS开发的支持在元数据服务Meta Data Service,Security Services,Shared services 等方面也表现得淋漓尽致。
以上从SaaS架构师,WSS & MOSS程序员的perspective ( Application Architecture )看到 WSS v3和MOSS 2007很好地支持了 SaaS开发。
从Enterprise perspective ( Consumption Architecture ),同样看到很好的支持。