使用简档的web门户应用定制方法和系统的制作方法

文档序号:6335154阅读:308来源:国知局
专利名称:使用简档的web门户应用定制方法和系统的制作方法
技术领域
本申请涉及web门户应用的定制,并且更具体地涉及用于使用简档来支持web门 户应用的定制的方法和系统,以使得可以基于单个软件代码库来开发高度定制的web门户应用。
背景技术
较多的企业正使用因特网来向其他企业或者个人提供服务。近来,允许企业在因 特网上托管的web站点上向其他企业提供信息和服务的web门户应用已经成为提供此类服 务的一种受欢迎的方式。为了在因特网上提供特定服务,开发了特别设计为提供此类服务 的web门户应用。因为web门户应用特别设计为提供特定服务,所以需要从头开始开发新 的web门户应用以提供不同类型的服务或者为附加类型的服务添加支持。此外,由于使用 web门户应用的企业数目增加并且因此在因特网上提供类似服务的企业数目增加,所以出 现了区分web门户应用的外观和感觉的需要。而且,企业向其提供服务的用户群变得更大 并且更多样。为了适应用户群的多样性以及通过web门户应用提供的不同类型的服务,出 现了提供不同的应用行为以及不同的外观和感觉以适应每个用户的需求的需要。然而,为了提供新服务或者向不同用户提供不同的外观和感觉,web门户应用底层 的软件代码必须进行大量的——或者甚至是全部——重写,并且必须投入大量的精力和资 源。由此,技术挑战包括提供允许以有效、可靠和有成本效益的方式来开发适合于不 同种类的服务和用户的web门户应用的方法和系统。

发明内容
所公开的方法和系统提供了开发web门户应用的更加有效、可定制的方式。该系 统接收各种类型的用户的简档。该系统还接收默认和简档特定状态以及默认和简档特定转 移。状态可以绑定至可以表示在web门户应用的工作流的各步骤处显示的图形用户界面 (“GUI”)的web页面。转移可以表示软件程序在工作流的步骤之间执行的业务逻辑。系 统还标识与web门户应用的用户相关联的简档。系统从存储器选择和获取状态,并且显示 绑定至该状态的web页面。另外,系统可以从用户接收对于所显示的状态可用的转移输入。 转移输入可以包括例如继续到工作流的下一状态的指令或者返回工作流的先前状态的指 令。在接收到来自用户的转移输入之后,该系统从存储器获取与所接收的转移输入相关联 的转移(“输入关联转移”)。在获取输入关联转移中,系统确定是否存在对应于标识的用 户简档的输入关联转移(“简档特定转移”)。如果存在简档特定转移,则系统从存储器获 取简档特定转移作为输入关联转移。如果不存在简档特定转移,则系统从存储器获取与接 收的转移输入相关联的默认转移作为输入关联转移。随后,系统执行所获取的输入关联转 移中指定的任务。在获取选择状态中,系统确定是否存在对应于所标识的用户简档的选择状态的版本(“简档特定状态”)。如果存在简档特定状态,则系统从存储器获取简档特定状态作为 选择状态。如果不存在简档特定状态,则系统从存储器获取选择状态的默认版本作为选择 状态。在查看以下附图和具体实施方式
之后,其他系统、方法、特征和优点将对于本领域 技术人员易见或者变得易见。所有此类附加系统、方法、特征和优点包括在本说明书中,包 括在本发明的范围之内,并且由所附权利要求书保护。


可以参考以下附图和描述对系统进行更好地理解。附图中的元素未必是按比例绘 制的,而是将重点放在示出本发明的各种实施方式的原理。在附图中,贯穿不同视图,相似 的参考数字指定相应的特征。图1示出了本发明一个实施方式的组件的总体概观。图2示出了本发明一个实施方式的操作的简要概观。图3示出了本发明一个实施方式的系统示图。图4示出了本发明一个实施方式的简档管理机制的概观。图5示出了本发明一个实施方式的操作的状态图的示例。图6示出了本发明一个实施方式可以采用以提供web门户应用的可定制工作流的 逻辑的流程图。图7A示出了可以在本发明一个实施方式中实现的转移的示例。图7B示出了可以在本发明一个实施方式中实现的一系列任务的示图。图8示出了本发明一个实施方式可以采用以提供可定制GUI的逻辑的流程图。图9示出了用于实现⑶I的模板的软件代码的示例。图10示出了用于实现可定制GUI的模板的简档特定部分的软件代码的详细示例。图11示出了可定制⑶I的示例。图12示出了表示站点地图资源文件的结构的示图。
具体实施例方式图1示出了根据本发明的系统的一个实施方式(“系统”)的组件的概观100。该 系统包括简档管理器102,其存储和管理用户简档信息。简档管理器102可以与系统的各组 件(诸如模板管理器104、数据验证提供器106、工作流引擎108、参考数据源110和站点地 图提供器112)通信。在由系统组件请求之后,简档管理器102可以向系统组件提供用户简 档信息。工作流引擎108通过一系列定义的步骤来驱动应用过程以及用户交互。工作流引 擎108可以例如使用Microsoft Windows Workflow Foundation 技术来实现。模板管理 器104可以实现为可以提供模板的独立组件,可以在该模板上构建web门户应用的图形用 户界面(GUI)。模板管理器104允许数据及其向用户的表示之间的完全分离。数据验证提 供器106还可以是独立组件,其与简档管理器102通信以提供web门户应用的工作流所需 要的各种数据检查服务。数据验证提供器106还可以与模板管理器104通信(未示出)。 参考数据源110可以是可以存储各种参考数据源的数据库,诸如用于存储实现web门户应 用可能需要的数据的储存库、接口消息以及本地化数据库。站点地图提供器112也可以是独立组件,其可以存储关于web页面层级、流结构以及可访问资源的信息。站点地图提供器 112可以使用例如Microsoft ASP. NET 架构来实现。图2示出了系统使用简档提供可定制工作流的操作的示例200。工作流可以包括 一系列数据获取、产品配置和/或数据提交步骤,并且可以表示为通过转移彼此链接的一 系列状态。转移和状态可以实现为由Microsoft Windows Workflow Foundation 库定义 的基类的实例。状态可以绑定至用于数据表示和用户的数据录入的特定web页面。状态与 特定web页面的关联可以通过使用例如Microsoft WebClient Software Factory 扩展 Windows Workflow Foundation 组件来实现,从而允许每个状态指向特定web页面。web 页面可以通过独立组件(例如ASP. NET 库)来实现和存储。转移可以定义将要连续执行 的一系列任务,以便成功继续到工作流中的下一状态。转移中定义的任务可以是实现web 门户应用所必需的业务逻辑。状态与转移之间的关联例如可以通过在XML文件中存储其关 联来实现,该XML文件可以通过可视化编辑工具来编辑。状态之间的转移可以由用户输入 来触发。工作流引擎108可以通过选择初始状态202来开始web门户应用的工作流。初始 状态202可以与转移“过程开始” 204相关联,该“过程开始” 204可以将工作流导航至“标 准过程状态1”206。状态206可以与执行默认任务的转移210以及执行对简档特定的任务 的简档特定变体转移208相关联。虽然示例200示出仅一个变体转移208与“标准过程状 态1” 206相关联,但是不止一个变体转移可以与一个状态相关联。变体是系统仅针对具有特定简档的用户选择和执行的转移或者状态。工作流引擎 108可以请求转移执行。在工作流引擎108请求转移之后,系统可以进行“简档化”,意味着 系统可以根据当前用户的简档来选择和执行转移的版本(默认或者变体)。“简档化”过程 对于工作流引擎108是透明的。因此,工作流引擎108不需要指示要执行的转移的版本。 通过“简档化”,如果当前用户的简档与“简档特定转移1,,相关联的简档匹配,则系统执行 变体转移(“简档特定转移1” 208),如果当前用户的简档与“简档特定转移1”的简档不匹 配,则系统执行默认转移“默认转移1”210。如果当前用户的简档与“简档特定转移1”208的简档匹配,则“简档特定转移1” 可以将工作流导航至“变体状态1”212。转而,“变体状态1”212可以与“简档特定转移 2”214相关联,该“简档特定转移2”214可以将工作流导航至“变体状态2”216。变体状 态216可以与“简档特定转移3” 218相关联,该“简档特定转移3” 218可以将工作流导航 至“过程最终状态” 224。另一方面,在状态206处,如果当前用户的简档与“简档特定转移 1”208的简档不匹配,则系统将执行“默认转移1”210,其可以将工作流导航至“标准过程状 态2” 220。“标准过程状态2” 220可以与“默认转移2” 222相关联,该“默认转移2” 222可 以将工作流导航至“过程最终状态” 224。“过程最终状态” 224可以与“过程结束”转移2 相关联,该“过程结束”转移2 可以结束web门户应用的工作流。如以上示例所描述的, 系统可以通过进行简档化,使用工作流引擎108的一个实现来提供适于不同用户简档的不 同工作流,而不是必须为具有不同简档的每个用户实现不同的工作流。图3示出了本发明一个实施方式的系统300的一般配置。系统300包括处理器 302、存储器304、简档管理器306、控制器308、模板管理器310、数据验证提供器312、站点地 图提供器314、参考数据源管理器316和后端通信层318。组件302-318可以耦合并且彼此之间通信。存储器304可以包括简档定义320。简档定义320可以包括针对多个不同用户 或者多个不同类型的用户的简档322。简档322可以实现为字符串。例如,与公司CTZ相关 联的用户可以与简档322相关联,该简档322可以实现为字符串“XYZ_Pr0file”。简档322 可以由系统300的组件引用以选择适合与简档相关联的用户的适当业务逻辑。存储器304还可以包括状态定义3M和转移定义3 。状态定义3M还可以包括 默认状态3 和简档特定状态330。每个简档特定状态与特定简档相关联。转移定义326 可以包括默认转移332和简档特定转移334。每个简档特定转移与特定简档相关联。存储器304还可以包含模板定义336,其存储默认模板338和简档特定模板340。 模板定义绑定到每个状态的web页面的用户界面的布局。默认模板还可以包含默认部分 342和/或简档特定部分344。模板可以使用超文本标记语言(HTML)来实现。模板允许简 化的用户界面创建和管理。使用模板增加了用户界面数据管理(数据获取/界面建立/用 户输入的读取和存储)与web页面的布局/呈现之间的分离。例如,模板允许独立管理页 面布局的不同特征,从而允许跨多个不同的web页面复用重现的特征(诸如框架和数据表 示表单)。存储器304还可以包括站点地图资源文件346。站点地图资源文件346存储关于 web页面的层级以及用户可用的可访问资源的信息。站点地图资源文件346可以实现为可 扩展标记语言(XML)文档。web页面可以表示为站点地图资源文件346内的节点348。每 个节点可以包含标签350,其指示节点与用户的简档之间的关联。节点348还可以包括关于 其表示的web页面的其他信息,诸如web页面的属性。存储器304还可以包含工作流程序352,其包含逻辑,该逻辑在由处理器302执行 时,使得系统执行web应用的工作流。工作流引擎108可以实现为工作流程序352的一部 分。可以实现为独立组件的简档管理器306标识当前用户的身份,标识与当前用户相 关联的简档,并且向请求此类信息的系统300的组件提供所标识的简档信息。控制器308 接收用户输入,并且根据用户输入和web门户应用的工作流来管理转移。模板管理器310 管理模板,系统300使用该模板来构建绑定到web门户应用的状态的web页面的用户界面。 在请求工作流程序352时,模板管理器310可以根据当前用户的简档来获取相关的模板,以 构建web页面的用户界面。数据验证提供器312也可以实现为独立组件,其根据用户的简档来获取数据并且 对数据执行验证。所接收的数据例如可以是响应于系统300实现的web门户应用的请求而 由用户输入的数据。验证例如可以是对接收的数据执行完整性检查,以保证所接收的数据 符合预定义规则。在说明性的示例中,web页面可以配置用于从用户接收银行账号。通过 web页面接收的银行账号可以传输至数据验证提供器312,并且由其进行验证。数据验证提 供器312可以将结果提供回工作流程序352,其可以根据系统300实现的web门户应用的需 要来使用该结果。在上文讨论的说明性示例中,银行账号可以由数据验证提供器312针对 正确格式来验证,并且如果银行账号的格式不正确,则工作流程序352可以向用户发布警告。站点地图提供器314可以实现为管理站点地图资源文件346的独立组件。在请求 工作流程序352时,站点地图提供器可以在站点地图资源文件346中搜索节点348,以标识与web页面相关联的属性,并且向工作流应用提供所标识的信息。参考数据源管理器316管理参考数据,该参考数据可以存储在存储器304中。参 考数据例如可以是可以在构建web页面的用户界面中使用的,或者以其他方式可以在执行 工作流程序352中使用的值或者配置数据的列表。后端通信层318管理系统300与后端系统(诸如SRM)和计费系统之间的通信,该 计费系统可能是执行系统300实现的web门户应用所需要的。图4示出了表示可以在系统300中实现的简档管理机制400的概观。简档管理机 制400可以包括三种类型的组件应用组件402、资源管理器404和资源储存库406。应用组件402表示实现特定业务需求的系统300的组件。应用组件402可以从 资源管理器404请求满足业务需求所必需的资源408。应用组件402的一个示例是工作流 程序352,其可以从资源管理器404请求执行web门户应用的工作流的执行所需要的资源 408。在说明性示例中,为了显示绑定到工作流状态的web页面,工作流程序352可以从资 源管理器404请求显示绑定到该状态的web页面所必需的资源408。在该示例中,资源408 可以是用于构建绑定到工作流的状态的web页面的用户界面的模板。资源管理器404表示系统300的组件,其可以从应用组件402接收针对资源408的 请求,并且可以使得将适合的资源提供至应用组件。应用组件402针对资源408的请求可 以指示满足应用组件402实现的业务需求所需要的资源的类型。可以做出请求而不指示请 求的是简档特定资源还是默认资源。换言之,应用组件402做出的请求不是“简档化”的。 相反,资源管理器404通过接收请求并且使得“简档化”的资源408递送至应用组件402而 有效地将请求“简档化”。换言之,资源管理器404使得对应于当前用户的简档的适合资源 408被提供给应用组件402。根据应用组件402的请求类型,资源管理器404可以是控制器 308、模板管理器310、数据验证提供器312、站点地图提供器314、参考数据源316或者系统 300中可以管理数据并且使得数据被提供给应用组件402的其他组件。在应用组件402请求资源408之后,资源管理器404可以与简档管理器306通信 已标识与当前用户相关联的用户简档322。资源管理器404可以搜索资源储存库406以标 识所请求资源408的正确简档化版本,即对应于标识的简档322的所请求资源版本。资源储存库406可以表示存储资源408的储存库或者储存库组。如果标识了对应 于当前用户的简档322的所请求资源408的简档特定版本,则资源管理器404使得资源储 存库406向应用组件402提供所请求资源的所标识的简档特定版本。如果没有标识对应于 当前用户的简档322的所请求资源408的简档特定版本,则资源管理器404使得资源储存 库408向应用组件402提供所请求资源的默认版本。资源储存库406可以是存储器304,或 者特别提供用于存储特定资源管理器404管理的资源类型的存储器或者数据库系统。所请求资源408例如可以是控制器308所管理的转移或者状态、模板管理器310 所管理的模板、站点地图提供器314所管理的页面属性信息或者参考数据源管理器316所 管理的数据。简档特定资源可以由附加到资源408的名称末尾的简档名称来标识。如果简档 称为“profileA (简档A) ”,则资源管理器404可以查找附加到资源名称末尾的简档名称为 "profiIeA"的资源408。例如,如果模板名称为“mairuwindow”,模板的默认版本的名称可 以是“mairuwindow”,而对应于与“profileA”相关联的用户的模板的简档特定版本可以命名为“main_window_profileA”。因此,处理针对profileA用户的模板“main_window”的请 求的模板管理器310可以查找附加到名称“mairuwindow”末尾的字符串“profile_A”。利 用web门户应用定制系统,可以开发单个web门户应用来支持符合向其相应客户提供不同 服务的不同业务的需要的变体。在说明性示例中,可以开发单个web门户应用以用于由两 个不同的公司(公司A和公司B)向客户销售电话卡。虽然web应用所提供的电话卡或者 服务的某些特征可能是相似的,但是通过使用变体和简档,两个公司可以向用户提供不同 的用户体验,并且通过单个web应用来销售具有不同特征的电话卡。不同的简档可以与不 同公司的客户相关联,并且可以通过向web门户应用的工作流提供与当前用户的简档相关 联的变体来实现产品特征和用户体验的差异。图5示出了示出在支持多个简档的web门户应用中实现的状态与转移之间的关系 的一个示例的示图500。工作流的初始状态可以设置为“CardSearch”状态502,其与转移 “CardSearch_goNext”相关联。当系统300接收针对转移“CardSearch_goNext”的转移输 入时,工作流程序352从控制器308请求与所接收的转移输入相关联的转移。控制器308 与简档管理器306通信以标识和获取当前用户的简档322。利用简档322中的信息,控制 器308标识存储器304(资源储存库406)中的“简档化”转移(“简档化”资源408),并且 使得存储器304向工作流程序352提供所标识的“简档化”转移。在图5所示的示例中,两种类型的资源408对于转移输入“CardSearch_goNext” 是可用的默认转移“ CardSearch_goNext,,504和简档特定转移“ CardSearch_goNext_ profileA”506。在这种情况下,控制器 308 将转移“CardSearch_goNext_profileA”506 标 识为简档特定资源408,因为字符串“profileA”附加到了转移名称“CardSearCh_g0Next” 的末尾。如果当前用户的简档是“prof ileA”,则系统300可以选择和执行简档特定转移506 中定义的任务。如果当前用户的简档不是“profileA”,则控制器可以不查找针对当前用户 简档的简档特定资源。在这种情况下,系统300可以选择和执行默认资源408,即,转移504。 在profileA用户的情况下,转移506可以使工作流继续到简档特定状态508。状态508可以绑定到概述可用于购买的电话卡列表的、特别为profileA用户设计 的web页面。状态508可以具有两个与其相关联的简档特定转移输入转移输入“Summary, profileA_goBack”和转移输入“Summary_profileA_goNext”。资源储存库406可以分别针 对转移输入存储转移510和512。转移510可以使得工作流返回先前状态502,而转移512 可以使得工作流继续到下一状态“ConfirmOrder”状态514。在状态502中,如果当前用户的简档不是“profileA”,则系统300可以获取和执 行默认转移504,从而使得工作流继续到默认状态,即“Summary”状态516。状态516还 可以显示概述可用于购买的电话卡列表的、针对任何非profileA用户的使用设计的web 页面。状态516可以与两个默认转移输入相关联转移输入“Summary_g0BaCk”和转移输 入“Summary_g0Next”。资源储存库406可以分别针对转移输入存储转移518和520。转 移518可以允许工作流返回先前状态502,而转移520可以允许工作流继续到下一状态, 即“ConfirmOrder”状态514。因为在该示例中没有简档特定状态与状态514相关联,所 以转移512和520都可以继续到相同状态514。状态514可以与两种类型的转移输入相 关联转移输入“Confirm0rder_goNext”和转移输入“Confirm0rder_goBack”。在这种情 况下,转移输入“ConfirmOrdei^goNext”没有与其相关联的简档特定转移。因此,如果从用户接收了针对转移“ConfirmOrder_goNext”的转移输入,则系统300可以针对具有任 何类型的简档的用户执行默认转移,即转移“ConfirmOrder_g0Next”522。然而,针对转 移输入“ConfirmOrder_gcAack”存在简档特定转移。因此,如果从用户接收了针对转移 “ConfirmOrder_goBack”的转移输入,则系统300可以针对非profileA用户执行默认转移, 即转移“Confirm0rder_gOBack”5M,并且针对所有profileA用户执行简档特定转移,即转 移“Conf irmOrder_goBack_prof i1eA“ 526。图6示出了系统300的工作流程序352可以实现的逻辑的流程图600。系统300 可以从web门户应用的开发者接收与用户类型相关联的简档,并且将简档存储在资源储存 库406(诸如存储器304)中(602)。系统300还可以从web门户应用的开发者接收并且在 存储器304中存储默认和简档特定模板(604)、默认和简档特定状态定义(606)、默认和简 档特定转移定义(608)以及站点地图资源文件346 (610)。默认和简档特定模板、默认和简 档特定状态定义、默认和简档特定转移定义以及站点地图资源文件的接收和存储也可以由 独立于工作流程序352的其他系统来执行。当工作流的执行开始时,系统300选择初始状态(612)。接下来,系统300进行初 始状态的“简档化”,即工作流程序352从控制器308请求初始状态,并且控制器使得“简档 化”的初始状态被提供至工作流程序352。换言之,系统300确定是否存在对应于当前用户 简档的简档特定状态(614)。如果不存在简档特定状态,则系统选择默认状态(616)并且显 示该默认状态所绑定到的web页面。另一方面,如果系统300标识了对应于当前用户简档 的简档特定状态,则系统选择简档特定状态(618),并且显示该状态绑定到的web页面。在默认和简档特定状态之一处,系统300可以从用户接收转移输入,以指示用户 在可用于所显示的web页面的转移中的选择(620)。在从用户接收了转移输入之后,系统 300进行与所接收的转移输入相关联的转移的“简档化”,即工作流程序352从控制器308请 求与所接收的转移输入相关联的转移,并且控制器使得与所接收的转移输入相关联的“简 档化”的转移被提供至工作流程序342。换言之,系统300确定是否存在对应于转移输入的 简档特定转移(622)。并且如果不存在简档特定转移,则系统300选择对应于转移输入的默 认转移(624)。如果存在针对转移输入的简档特定转移,则系统300选择对应于转移输入的 简档特定转移(626)。一旦选择了默认转移和简档特定转移之一,系统300就执行所选择的 转移中定义的动作(6 )。根据转移中定义的动作,工作流应用352根据工作流可以结束, 或者可以选择下一状态(630)。如果选择了下一状态,逻辑可以从上述步骤614重复。除了被定义或者继续到特定状态之外,转移还可以被定义为在从一个状态继续到 下一个之前执行简档特定任务。图7A示出了继续到相同状态的默认转移和简档特定转移 的说明性示例700a。状态702可以与允许工作流继续到状态708的转移相关联。在该示例 中,资源储存库406包含针对转移“karchDat^goNext ”的默认转移704和简档特定转移 706。默认转移704和简档特定转移706都通知工作流继续到相同的默认状态708。然而, 默认转移704和简档转移706都可以定义为在从状态702继续到状态708之前执行对简档 特定的业务过程。图7B示出了可以在图7A描述的转移中实现的一系列任务的示图700b。默认转移 704可以开始于任务712,其可以发起转移。接下来,默认转移704可以执行例如从资源数 据源316获取必需数据的数据获取模块713。默认过滤器716可以应用于所获取的数据,并且默认转移704可以执行用于继续到下一状态708的模块718。简档特定转移706可以开始于任务720,其可以发起转移。接下来,转移706可以 执行用于例如从资源数据源316获取必需数据的数据获取模块714。获取模块714可以与 默认转移704所使用的模块相同。随后,简档特定过滤器722可以应用于所获取的数据,并 且简档特定转移706可以执行用于继续到下一状态708的模块718。再一次,允许工作流继 续到下一状态708的模块718可以与默认转移704所使用的模块相同。如上所述,默认转 移704和简档特定转移706都可以定义为允许工作流继续到相同的状态708,同时执行对其 相关联的简档特定的数据获取和过滤任务。图8示出了系统300中的工作流程序352可以实现以用于显示绑定到状态的web 页面的逻辑的流程图800。当系统300选择某个状态时,系统300可以标识绑定到该状态 的web页面(未示出)。系统300还可以通过站点地图提供器314获取与web页面相关联 的信息(802)。该信息例如可以包括指示用户是否可以访问web页面的可访问性信息。系 统300基于所获取的页面属性来确定当前用户是否可以访问该web页面(804)。如果当前 用户可以访问该web页面,则系统300继续构建web页面的用户界面。web页面可以包括一个或者多个称为web部件的构建块。web部件可以包含用于 用户界面定义和用户输入获取的简档独立的计算机软件代码。web部件可以访问参考数据 源316以加载web门户应用用于实现业务逻辑所使用的值的列表或者web页面所必需的配 置数据。web部件可以包含请求数据验证提供器312以验证用户录入的数据的计算机软件 代码。web部件还可以使用模板来构建用户界面。web页面的“简档化”和/或web部件可 以通过模板来实现。模板可以通过模板管理器310获取。继续参考图8,当访问web部件所需要的模板时,系统300通过模板管理器310获 取针对web部件的“简档化”的模板。换言之,系统300确定是否存在针对所请求模板的简 档特定模板(806)。如果存在简档特定模板,则简档特定模板被选择(808),并且该系统在 构建用户界面时应用该简档特定模板(810)。如果不存在简档特定模板,则系统300可以选 择默认模板(812)。在说明性示例中,当工作流程序352请求用于向prof iIeA用户显示web门户应用 的主页的“Hompage. html”模板时,系统300可以在存储器304(资源储存库406)中搜索针 对“Hompage. html”的简档特定模板。简档特定模板可以利用附加到模板名称末尾的简档 名称来标识。例如,针对默认模板“Hompage. html”的简档特定模板可以命名为“Hompage_ profiIeA. html”。如果存储器304(资源储存库406)中标识了名称为“H0mpage_pr0fileA. html”的模板,则工作流352可以选择模板“H0mpage_pr0fileA. html”。如果在存储器 304(资源储存库406)中没有找到名称为“Hompage_profileA.html”的模板,则可以选择默 认模板"Hompage. html,,。模板转而可以包含一个或多个部分,该一个或多个部分可以包括默认部分和/或 简档特定部分。继续参考图8,一旦选择了模板,系统300就针对模板中的每个部分确定 该部分是否是默认部分(814)。如果该部分是默认部分,则系统300应用默认部分(816)。 如果该部分不是默认部分,则系统确定该部分是否是对应于当前用户简档的简档特定部分 (818)。如果该部分不是对应于当前用户简档的简档特定部分,则系统不应用简档特定部 分。如果该部分是对应于当前用户简档的简档特定部分,则系统应用简档特定部分(820)。例如,如果当前用户的简档是“profileA”,则系统300应用标记了“profileA”的所有部分, 并且可以不应用标记了例如“prof iIeB (简档B) ”、“prof iIeC (简档C) ”或者“prof iIeD (简 档D) ”的部分。如果一个部分是默认部分,则系统300可以在构建用户界面时应用该部分, 而不考虑当前用户的简档。现在更加详细地描述模板。模板可以是使用HTML实现的。然而,模板也可以使用 其他计算机编程语言来实现。模板可以被指定和定义为页面模板,其定义特定web页面,该 特定web页面定义针对web页面的控件和布局。然而,模板还可以指定和定义为布局模板, 以指定web页面的重现页面布局元素,诸如框架、信息框或者数据录入域。页面模板可以包 含一个或多个布局模板。布局模板可以包括一个或多个其他布局模板。图9示出了针对页面模板的代码部分900的一个示例。在针对页面模板的代码 900的开始处,可以调用通用布局模板902。通用布局模板可以是建立web页面的整体布局 的布局模板,其跨所有简档是统一的。因为通用布局模板902针对所有简档是相同的,所以 其也可以由其他模板调用或者复用。页面模板还可以包括部分904和906,其定义对页面模 板特定的个体页面布局特征。部分904和906还可以包括代码908,其用于特别声明和定位 web页面内的页面布局元素。图10示出了用于实现模板的简档特定部分的计算机软件代码1000的部分的详细 示例。如上所讨论的,模板可以包含可以特别指定用于特定简档的部分。该模板可以包含 “profileA”部分1002和“profileB”部分1004。部分可以实现为布局模板或者页面模板 的任何部分,并且可以由包含简档名称的指示符来标记。例如,部分1002可以包含部分标 识符1006,其指示该部分1002是对“profileA”特定的部分。部分标识符1008指示部分 1004是对“profileB”特定的部分。图11示出了使用包含默认部分和profileA特定部分(针对profileA用户的简 档特定部分)的相同模板的两个用户界面构建的示例1100。用户界面1102可以表示向 “profileA”用户显示的web页面,而用户界面1104可以表示向“profileB”用户显示的web 页面。用于构建界面1102和1104 二者的模板可以是包含用于显示页面特征1106的默认部 分和用于显示页面特征1108的profileA特定部分的相同模板。当构建针对prof ileA用 户的用户界面时,系统显示默认部分1106和profileA特定部分1108 二者。然而,当构建 针对profileB用户的用户界面时,系统仅显示默认部分1106而使profileA特定部分1108 静默,因为用户的简档(“profileB”)与prof ileA特定部分1108不匹配。简档特定部分 可以仅与一个简档相关联,或者可以与多个简档相关联。图12示出了表示站点地图资源文件346的结构的示图1200。站点地图资源文件 346可以存储关于web门户应用的工作流的结构的信息。例如,系统300可以使用来自站点 地图资源文件346的信息来按照图形地示出web门户应用的web页面的层级的树形视图的 形式显示站点地图示图。系统300还可以访问站点地图资源文件346,以确定用户对特定 web页面的可访问性。站点地图资源文件346可以实现为布置在树形结构中的多个节点。每个节点可以 表示web门户应用的状态或者web页面,并且可以存储指示树形结构中接下来的一个或多 个节点(“子”节点,或者“派生”节点)的信息。每个节点还可以包括关于状态或者web页 面的信息(诸如状态或者web页面的属性)。每个节点还可以包括标签350(图12中未示14出;在图3中示出)。标签可以包含用户对节点所表示的页面的可访问性信息。例如,站点 地图资源文件346可以包括“应用根”节点1202,其具有子节点1204和1206。每个子节点 可以分别表示“业务流1”和“业务流2”的初始状态。子节点1204可以包括包含指定该节 点可以由所有类型的用户访问的可访问性信息的标签。子节点1206可以包括包含指定该 节点仅可以由ProfileA用户访问的可访问性信息的标签。节点350的可访问性信息可以在树形结构中向下传播。换言之,如果将节点1206 添加了标签,使得仅授权profileA用户访问,则位于节点1206下游的派生节点1208也仅 可以由profileA用户访问,不考虑派生节点1208本身没有利用此类可访问性信息添加标 签的事实。节点的可访问性信息还可以指定为不向下传播。例如,节点1204可以包含子节 点1210,其转而可以具有子节点1212。即使其祖父节点1204被添加了标签为允许所有类型 的用户访问,但是节点1212可以添加标签使得该节点对profileB用户是难以访问的。节 点1212的可访问性也可以指定为不向下传播,则节点1212的子节点,即节点1214,可以再 次对所有类型的用户可访问。站点地图提供器314管理站点地图资源文件346。站点地图提供器例如可以使用 ASP. NET 架构的站点地图提供器组件来实现。当工作流程序352从站点地图资源文件346 的节点请求信息时,站点地图提供器314标识当前用户的简档。站点地图提供器314还在 站点地图资源文件346中搜索所请求的节点。站点地图提供器314可以在“应用根”节点 1202处开始搜索,并且沿节点1202的派生节点继续,直到标识了所请求的节点。搜索可以 使用二分搜索方法进行。然而,可以使用适于搜索树形结构的任何其他搜索方法。在搜索 期间,站点地图提供器314可以标识包括指定为向下传播的可访问性信息的、所请求的节 点的任何父节点的标签。当标识了所请求的节点时,站点地图提供器314基于用户的简档、 从父节点向下传播的可访问性信息以及所标识的节点的标签的可访问性信息,确定当前用 户是否可以访问所请求的节点。如果站点地图提供器确定用户可以访问所请求的节点,则 站点地图提供器使得所标识节点的所请求信息被提供至工作流程序352。在参考图12的说明性示例中,如果工作流程序352请求包含在节点1206的子节 点1208中的信息,则站点地图提供器314开始于节点1202,并且沿节点1202的派生节点向 下搜索,直到站点地图提供器标识了父节点1206的所请求子节点1208。在搜索期间,站点 地图提供器314可以标识父节点1206,其可以包括包含仅授权profileA用户访问的可访 问性信息。该标签也可以指定为向下传播。当站点地图提供器314标识了子节点1208时, 节点1208可以没有利用限制任何用户访问的信息添加标签。如果当前用户是profileA用 户,则站点地图提供器314可以使得包含在所标识节点中的所请求信息被提供至工作流程 序352。然而,如果当前用户是profileB用户,则站点地图提供器314可以确定用户不可以 访问所标识的节点,并且可以不使包含在所标识节点中的所请求信息被提供至工作流程序 352。在后一种情况中,站点地图提供器314确定当前用户不可以访问所标识节点,因为所 标识节点的父节点1206包括这样的标签,其仅允许profileA用户访问,并且其指定为向下 传播。系统300还可以允许工作流应用352验证从用户接收的数据。工作流应用352可 以请求数据验证提供器312确定从用户接收的数据是否符合预定规则。例如,用户输入的 数据可以是要对其进行支付的银行账号,并且数据验证提供器312可以确定(“验证”)用户提供的银行账号是否具有正确的数字数目。工作流应用352例如可以使用请求数据验证 的一行代码(“验证请求代码”)来请求数据验证,其例如可以写为ClientValidateC txtBankAccount" , ‘‘ check_exactLenght",‘‘ 22〃,‘‘ blocking",‘‘ Please check the Bank AccountNumber")根据用户的简档,验证在相同的数据片上可以不同地进行。例如,可以验证 profileA用户的银行账户信息以确定银行账号的长度是否是22个数字。然而,可以针对 15个数字的银行账号来验证profileB用户的银行账户信息。可以通过将简档名称作为参 数之一包括在验证请求代码中来指示简档特定验证。例如,针对profileA用户的验证请求 代码可以写为ClientValidateC ProfileA" , “ txtBankAccount “,“ check_exactLenght", “ 22", “ blocking", “ Please checkthe Bank Account Number")针对profileB用户的验证请求代码例如可以写为ClientValidateC ProfileB" , “ txtBankAccount“,‘‘ check_exactLenght〃,‘‘ 15〃,‘‘ blocking",‘‘ Please checkthe Bank Account Number")在一个实施方式中,针对相同类型的数据可以存在多种验证请求代码,其中每种 代码可以指定特定简档(简档特定验证请求代码)或者可以不指定任何简档(默认验证请 求代码)。如果针对相同类型的数据存在对立的验证请求代码的两个或更多个实例,则系统 300确定是否存在针对当前用户简档的简档特定验证请求代码。如果系统300确定存在简 档特定验证请求代码,则系统选择相应的代码,并且使用简档特定验证请求代码来请求数 据验证。如果系统300确定不存在简档特定验证请求代码,则系统使用默认验证请求代码 来请求数据验证。在另一实施方式中,验证请求代码可以是“简档化”的。换言之,针对一种类型的 数据可以存在一种验证请求代码,而不指定代码相关联的简档。当工作流程序352向验证 提供器312请求验证请求代码的执行时,验证提供器312可以确定是否存在针对所请求验 证的对当前用户简档特定的预定规则。如果存在简档特定规则,则验证提供器312可以基 于预定的简档特定规则来执行验证。如果不存在简档特定预定义规则,则验证提供器312 可以基于默认预定规则来执行验证。预定规则可以存储在资源储存库406中。系统300可以按多种不同的方式实现。例如,虽然一些特征示为存储在计算机可 读存储器中(例如,作为实现为计算机可执行指令的逻辑或者作为存储器中的数据结构), 但是系统的全部或者部分及其逻辑和数据结构可以跨其他机器可读介质分布存储,或者从 其他及其可读介质读取。介质可以包括硬盘、软盘、CD-ROM或者信号,诸如从网络接收的信 号,或者在跨网络通信的多个分组上接收的信号。系统300可以实现有附加的、不同的或者较少的组件。作为一个示例,处理器可以 实现为微处理器、微控制器、DSP、专用集成电路(ASIC)、离散逻辑或者其他类型的电路或者 逻辑的组合。作为另一示例,存储器可以是DRAM、SRAM、闪存或者任何其他类型的存储器。 系统的处理能力可以分步在多个组件上,诸如分布在多个处理器和存储器上,可选地包括多个分布式处理系统。资源储存库、数据库和其他数据结构可以独立存储和管理,可以并 入单个存储器或者数据库中,可以按照多种不同的方式逻辑地或者物理地组织,并且可以 实现有不同类型的数据结构,诸如链表、散列表或者隐式存储机制。逻辑(诸如程序或者电 路)可以跨若干存储器和处理器分布地在多个程序之间组合或者分离,并且可以在诸如共 享库(例如,动态链接库(DLL))的库中实现。DLL例如可以存储准备中间映射或者实现映 射上的搜索的代码。作为另一示例,DLL本身可以提供系统、工具或者二者的全部或者某些 功能。作为一个特定示例,上述逻辑所执行的处理可以利用一个或多个Microsoft Windows Workflow Foundation 技术来实现。过程可以在支持 Microsoft Windows Workflow Foundation 技术系统的任何环境中执行。此类环境的示例包括运行Windows 操作系统和Unix 操作系统的计算机系统。虽然已经描述了本发明的各种实施方式,但是对于本领域普通技术人员易见的 是,在本发明的范围内,多种实施方式和实现是可能的。因此,本发明仅由所附权利要求书 及其等同限制。
权利要求
1.一种用于定制软件应用的方法,包括 在存储器中存储与用户相关联的简档;在所述存储器中存储多个状态,每个状态与用户界面相关联; 在所述存储器中存储多个转移,所述转移包括默认转移和简档特定转移,每个转移包 括要由工作流程序执行的任务;利用处理器执行所述工作流程序,所述工作流程序包括当执行时使得所述处理器执行 以下动作的逻辑标识与所述用户相关联的简档; 显示所述多个状态中的状态的所述用户界面;从所述用户接收可用于所述状态的转移输入,其中所述转移输入与所述多个转移中的 转移相关联;确定是否存在对应于所述用户的简档的、与接收的转移输入相关联的简档特定转移; 如果存在对应于所述用户的简档的、与所述接收的转移输入相关联的简档特定转移, 则获取与所述接收的转移输入相关联的所述简档特定转移作为获取的转移;如果不存在对应于所述用户的简档的、与所述接收的转移输入相关联的简档特定转 移,则获取与所述接收的转移输入相关联的默认转移作为所述获取的转移;以及 执行包括在所述获取的转移中的任务。
2.如权利要求1所述的用于定制软件应用的方法,其中确定是否存在简档特定转移的逻辑进一步包括针对与所述接收的转移输入相关 联的转移来请求控制器的逻辑,其中所述控制器在所述存储器中搜索对应于所述用户的简 档的、与所述接收的转移输入相关联的简档特定转移;其中获取与所述接收的转移输入相关联的所述简档特定转移作为获取的转移的逻辑 进一步包括使用所述控制器获取所述简档特定转移的逻辑;以及其中获取与所述接收的转移输入相关联的默认转移作为获取的转移的逻辑进一步包 括使用所述控制器获取所述默认转移的逻辑。
3.如权利要求1所述的用于定制软件应用的方法,还包括在所述存储器中存储多个模板,其中显示所述多个状态中的所述状态的用户界面的逻辑进一步包括从所述存储器获 取所述多个模板中的模板的逻辑,以及将获取的模板应用至所述用户界面的逻辑。
4.如权利要求3所述的用于定制软件应用的方法, 其中所述多个模板包括默认模板和简档特定模板, 其中获取所述模板的逻辑进一步包括以下逻辑确定是否存在与对应于所述用户的简档的、与所述用户界面相关联的简档特定模板; 如果存在对应于所述用户的简档的、与所述用户界面相关联的简档特定模板,则获取 所述简档特定模板作为获取的模板;如果不存在对应于所述用户的简档的、与所述用户界面相关联的简档特定模板,则获 取所述默认模板作为所述获取的模板。
5.如权利要求3所述的用于定制软件应用的方法,其中所述多个模板中的模板包括默认部分和简档特定部分,其中应用所述模板的逻辑进一步包括逻辑以 应用默认部分;以及如果存在对应于所述用户的简档的简档特定部分,则应用所述简档特定部分。
6.如权利要求1所述的用于定制软件应用的方法,其中所述简档特定转移包括要由所 述工作流程序执行的简档特定任务。
7.如权利要求1所述的用于定制软件应用的方法,其中要由所述工作流程序执行的所 述任务包括继续到所述多个状态中的下一状态。
8.一种用于定制软件应用的系统,包括 处理器;计算机可读存储器,其耦合至所述处理器,并且存储与用户相关联的简档;多个状态,每个状态与用户界面相关联;多个转移,包括默认转移和简档特定转移,每个转移包括要由工作流程序执行的任务;工作流程序,所述工作流程序包括当执行时使得处理器执行以下动作的逻辑 标识与所述用户相关联的简档;基于用于显示所述用户界面的信息来显示所述多个状态中的状态的所述用户界面; 从所述用户接收可用于所述状态的转移输入,其中所述转移输入与所述多个转移中的 转移相关联;确定是否存在对应于所述用户的简档的、与接收的转移输入相关联的简档特定转移; 如果存在对应于所述用户的简档的、与所述接收的转移输入相关联的简档特定转移, 则获取与所述接收的转移输入相关联的简档特定转移作为获取的转移;如果不存在对应于所述用户的简档的、与所述接收的转移输入相关联的简档特定转 移,则获取与所述接收的转移输入相关联的所述默认转移作为所述获取的转移;以及 执行包括在所述获取的转移中的任务。
9.如权利要求8所述的用于定制软件应用的系统,其中确定是否存在简档特定转移的逻辑进一步包括针对与所述接收的转移输入相关 联的转移来请求控制器的逻辑,其中所述控制器在所述存储器中搜索对应于所述用户的简 档的、与所述接收的转移输入相关联的简档特定转移;其中获取与所述接收的转移输入相关联的简档特定转移作为所述获取的转移的逻辑 进一步包括使用所述控制器获取所述简档特定转移的逻辑;以及其中获取与所述接收的转移输入相关联的默认转移作为所述获取的转移的逻辑进一 步包括使用所述控制器获取所述默认转移的逻辑。
10.如权利要求8所述的用于定制软件应用的系统,所述存储器还存储多个模板, 其中显示所述多个状态中的状态的用户界面的逻辑进一步包括从所述存储器获取所述多个模板中的模板的逻辑,以及将获取的模板应用至所述用户界面的逻辑。
11.如权利要求10所述的用户定制软件应用的系统, 其中所述多个模板包括默认模板和简档特定模板, 其中获取模板的逻辑进一步包括用于以下动作的逻辑确定是否存在对应于所述用户的简档的、与所述用户界面相关联的简档特定模板; 如果存在对应于所述用户的简档的、与所述用户界面相关联的简档特定模板,则获取 所述简档特定模板作为获取的模板;如果不存在对应于所述用户的简档的、与所述用户界面相关联的简档特定模板,则获 取所述默认模板作为所述获取的模板。
12.如权利要求10所述的用于定制软件应用的系统,其中所述多个模板中的所述模板包括默认部分和简档特定部分, 其中将所述模板应用至所述用户界面的逻辑进一步包括用于以下动作的逻辑以 应用所述默认部分;以及如果所述简档特定部分对应于所述用户的简档,则应用所述简档特定部分。
13.如权利要求8所述的用于定制软件应用的系统,其中所述简档特定转移包括要由 所述工作流程序执行的简档特定任务。
14.如权利要求8所述的用于定制软件应用的系统,其中要由所述工作流程序执行的 任务包括继续到所述多个状态中的下一状态。
15.一种用于定制软件应用的方法,包括 在存储器中存储于用户相关联的简档; 在所述存储器中存储站点地图资源文件,其中所述站点地图资源文件包括表示工作流的状态的节点,以及 其中所述节点包括标识与简档相关联的用户对所述节点的可访问性的标签,以及 所述节点表示的状态的状态信息;从工作流程序接收针对所述节点的状态的状态信息的请求; 标识与所述用户相关联的所述简档;在所述站点地图资源文件中搜索表示包括请求的状态信息的状态的节点; 标识表示包括所述请求的状态信息的状态的节点的标签;基于表示请求的状态的节点的标签来确定所述用户对所述请求的状态的可访问性;以及如果确定所述用户可访问所述请求的状态,则向所述工作流程序传送所述状态信息。
16.如权利要求15所述的用于定制软件应用的方法,其中所述站点地图资源文件进一 步包括表示所述工作流的状态的节点的父节点,其中所述父节点包括标识与简档相关联的 用户对所述父节点的可访问性的标签,所述方法还包括 标识所述父节点的所述标签;基于所述父节点的所述标签来确定所述用户对所述请求的状态的可访问性。
17.一种用于定制软件应用的系统,包括 应用组件;与所述应用组件通信的资源管理器,所述资源管理器存储多个资源,所述多个资源包 括默认资源和简档特定资源;与所述应用组件和所述资源管理器通信的资源储存库;以及与所述资源管理器通信的简档管理器;其中所述资源管理器从所述应用组件接收针对所述多个资源中的资源的请求, 从所述简档管理器接收与用户相关联的简档信息,确定对应于所述用户的简档的、与请求的资源相关联的简档特定资源是否存在于所述 资源储存库中;如果对应于所述用户的简档的、与所述请求的资源相关联的简档特定资源存在于所述 资源储存库中,则向所述应用组件提供对应于所述用户的简档的、与所述请求的资源相关 联的所述简档特定资源作为所述请求的资源;以及如果不存在对应于所述用户的简档的、与所述请求的资源相关联的简档特定资源,则 向所述应用组件提供对与所述请求的资源相关联的工作流引擎而言默认的、对应于所述用 户的简档的资源作为所述请求的资源。
18.如权利要求17所述的用于定制软件应用的系统, 其中所述资源管理器包括控制器;其中所述多个资源还包括多个转移,所述多个转移包括默认转移和简档特定转移,每 个转移包括要由所述应用组件执行的任务;以及其中所述默认资源和所述简档特定资源分别包括默认转移和简档特定转移。
19.如权利要求17所述的用于定制软件应用的系统, 其中所述资源管理器包括控制器;其中所述多个资源还包括多个状态,所述多个状态包括默认状态和简档特定状态,每 个状态与用户界面相关联;以及其中所述默认资源和所述简档特定资源分别包括默认状态和简档特定状态。
20.如权利要求17所述的用于定制软件应用的系统, 其中所述资源管理器包括模板管理器;其中所述多个资源还包括多个模板,所述多个模板包括默认模板和简档特定模板; 其中所述默认资源和所述简档特定资源分别包括所述默认模板和所述简档特定模板;其中从所述应用组件针对所述多个资源中的资源的请求包括针对所述多个模板中的 模板的请求;以及其中所述应用组件将请求的模板应用至用户界面。
21.如权利要求20所述的用于定制软件应用的系统,其中所述多个模板中的模板包括默认部分和简档特定部分。
22.如权利要求18所述的用于定制软件应用的系统,其中所述简档特定转移包括要由 所述应用组件执行的简档特定任务。
23.如权利要求18所述的用于定制软件应用的系统,其中要由所述应用组件执行的所 述任务包括从一个状态继续到第二状态的任务,其中状态与用户界面相关联。
全文摘要
本发明涉及使用简档的WEB门户应用定制方法和系统。具体地,使用简档的web门户应用定制方法和系统允许开发者向术语不同用户简档的用户显示不同的功能以及不同的外观和感觉。具体地,该方法允许开发者定义默认转移和简档特定转移以及默认状态和简档特定状态。在工作流引擎请求转移之后,如果与用户相关联的简档特定转移可用,则系统向工作流引擎透明地提供简档特定转移。如果简档特定转移不可用,则系统向应用提供默认转移。同样地,根据用户的简档以及简档特定状态的可用性,系统向应用透明地提供简档相关状态。因此,该方法可以有效地和节省成本地实现高度可定制的功能以及外观和感觉。
文档编号G06F17/30GK102054021SQ201010530938
公开日2011年5月11日 申请日期2010年11月2日 优先权日2009年11月2日
发明者C·科米斯, N·伊昂弗里达, P·卡迪纳尔 申请人:埃森哲环球服务有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1