具体实施方式
本发明的实施例通过提供业务或其他实体与它们的顾客、厂商或其他信息交换伙伴之间的信息连接来解决上面的和其他问题。由业务或其他实体以及它们的顾客、厂商和其他信息交换伙伴运营的业务应用和相关联的数据存储库之间的连接是通过绑定到所述业务应用和相关联的数据存储库的网页经由分布式计算和通信***(亦称“云”)提供的。例如,网页可以与绑定回到制造公司数据管理应用的数据输入域一起发布,所述制造公司数据管理应用允许制造公司的厂商将原材料供应数据输入到该网页中,使得所输入的供应数据被直接传递回到该制造公司的数据管理应用,而不需要制造公司为该示例性数据交换利用数据输入人员或编写专门的数据管理代码。附加于所述实体之间的数据交换,还可以交换有助于所述实体之间的关系的信息,比如广告信息、联系人信息、帮助内容等等。
根据一个实施例,元数据从业务应用和相关联的数据存储库和视觉表示到所发布网页形式的变换允许接收通过所发布网页收集的数据并且将所接收的数据变换回用于与该业务应用和相关联的数据存储库进行同步的格式。可以提供模板以用于在业务应用***(例如ERP***)内创建和管理网页和网站。业务应用用户可以创建这样的页面或站点以作为:用于营销活动的着陆页面;针对报价站点的从业务伙伴接收报价的专用请求;用于产品注册信息和顾客反馈的页面或站点;用于职务招聘的人力资源信息的页面或站点;和/或用于与社区或其他最终用户通信的页面或站点。
来自诸如ERP***之类的业务应用***的信息可以被发布给业务应用用户生成的网页以用于显示给最终用户、以及用于从最终用户收集信息以供用于下载到业务应用***中。用户生成的网页可以被定义成基于web的结构化的数据解决方案,该基于web的结构化的数据解决方案可以定义数据、网页呈现、以及数据绑定元数据以用于实现给定的解决方案场景。示例性解决方案场景可以包括网页以用于允许最终用户输入购买订单数据以供制造业务销售功能使用。数据、网页呈现和数据绑定元数据可以以允许组织有效利用通过基于web的结构化数据解决方案所接收的信息的方式被结构化。
业务应用用户可以在web上实现连接场景,而无需信息技术(IT)依赖性。也就是说,基于web的结构化数据解决方案可以在用户不必编写代码的情况下被创建。业务应用用户可以从业务应用***内连接潜在和已有的顾客、伙伴和厂商,并且可以将交互直接捕捉到业务应用***中。
根据另一实施例,基于web的结构化数据解决方案可以通过业务应用和相关联的数据存储库与基于web的结构化数据解决方案(网页/网站)之间的数据绑定来实现。数据绑定允许建立业务应用和相关联的数据存储库(例如ERP***)与基于web的结构化数据解决方案中的相应数据对象或域之间的关系。数据绑定可以被编组成实例绑定和元数据绑定二者。实例绑定包括:当与业务应用相关联的数据被创建或改变时,将网页动态地绑定到与业务应用相关联的数据。元数据绑定建立规定实例绑定的行为的一组关系。因此,元数据绑定是针对解决方案开发者的,而实例绑定是针对业务应用的最终用户的。根据实施例,数据绑定还实现同步接口以用于维护两个分立***之间的绑定。
根据另一实施例,基于web的结构化数据解决方案可以基于访问网页或网站的最终用户的角色而作为网页或网站来呈现。也就是说,用于允许与业务应用和相关联的数据的最终用户交互的网页或网站的呈现可以适应于最终用户的角色(例如销售人员、购买者、人力资源经理等等)。业务应用(例如ERP***)用户常常利用数据密集型用户界面来工作,并且他们从他们的厂商/供应商或其他伙伴收集的信息可能是他们通常工作所利用的数据的子集。结果,业务应用用户需要如下方面的灵活性:定义什么数据来显示、以及如何将数据显示给他们的顾客、厂商、伙伴等等。因此,用户对要显示的数据以及数据到他们的最终用户的呈现具有完全的控制。这使得能够以适应于最终用户的格式显示和呈现信息。
出于说明原因,考虑到如下示例性业务:该业务期望发布基于web的页面以用于允许个人申请该业务内的职位。该组织可以具有其业务应用***(例如ERP***)与指定职位相关联的数据,比如职务头衔、职务描述、最低资格等等。根据本发明的实施例,诸如基于web的雇用应用之类的解决方案可以由诸如该组织的人力资源(HR)代理之类的业务应用用户来构造。业务应用***内的所选数据可以被绑定到该解决方案,使得当一个或多个雇用应用网页被发布时,可以呈现来自该业务应用***的所选数据。潜在的申请者可以访问基于web的雇用应用,查看来自业务应用***的所发布的所选数据,并且可以在线申请指定职位。基于web的职务应用可以包括基于web的呈现,该基于web的呈现可以具有域以用于允许申请者输入指定数据(比如他/她的姓名、地址、电话号码、资格、经验年限)、附加简历等等。基于web的职务应用可以具有多个图像或者可能对申请人具有价值的其他公司信息,比如公司标志、关于公司的信息、到公司网站的链接等等。附加地,基于web的职务应用可以具有各种可选功能控件以用于允许潜在的申请者将所输入的数据提交回组织或者以其他方式操纵所输入的数据。应当理解,前述示例仅仅是可以利用本发明的实施例的大量解决方案之一。
下面的描述涉及附图。只要可能,就在附图和以下描述中使用相同的附图标记来指示相同或类似的元素。尽管可能描述了本发明的实施例,但修改、改编、以及其他实现是可能的。例如,可对附图中所示的元素进行置换、添加、或修改,并且可通过对所公开的方法置换、重新排序、或添加阶段来修改本文中所描述的方法。因此,以下详细描述并不限制本发明。相反,本发明的正确范围由所附权利要求书定义。
现在参考附图,其中在若干附图中相似的附图标记表示相似的元素,将描述本发明的各方面和示例性操作环境。尽管将在结合在个人计算机上的操作***上运行的应用程序执行的程序模块的一般上下文中描述本发明,但本领域的技术人员可以认识到,本发明也可结合其他程序模块实现。
一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本领域的技术人员将理解,本发明可以使用其他计算机***配置来实施,包括手持式设备、多处理器***、基于微处理器或可编程的消费电子产品、小型计算机、大型计算机等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
图1是示出可实现本发明的实施例的***架构的简化框图。现在参考图1,示出了业务应用105。许多组织和业务将他们的组织/业务的多个方面集成到单个基于计算机的***中,比如企业资源规划(ERP)***。组织/业务可以将ERP***用于各种业务工作量中的各种业务活动(例如制造、供应链管理、财务、采购、项目管理、人力资源、顾客关系管理、数据服务网、访问控制、以及其他业务活动等等)。例如,诸如ERP***之类的业务应用105可以将组织/业务的业务操作(比如制造、供应链管理、财务***/数据、项目管理、人力资源、顾客关系管理、数据服务网和访问控制)联合到统一和全企业范围的***环境。诸如ERP***之类的业务应用105可以驻留在集中式的服务器上,或者可以分布在通过通信网络被链接的远程处理设备中。
组织和业务可以通过诸如因特网之类的分布式计算和通信网络/***和/或通过一个或多个第三方托管的服务与顾客和/或其他远程实体连接。这样的第三方托管的服务在此称为“云”110。云110可以一般被描述为通过因特网实现计算服务的递送的一组服务和技术。云服务操作***的示例是华盛顿州雷蒙德市微软公司的WINDOWS AZURE。业务应用105可以从场内延伸到云110。在进行业务的过程中,常常可能存在各种逻辑过程,其中与诸如其他人、公司、组织以及信息数据交换网络等等之类的其他实体的通信是必须的。这些逻辑过程中的一些可以在业务应用105内开始,但是可以在云110中结束或者可以通过云被传递。
电子商务是要完成的可能经过云110中一个或多个中间公司的交易的示例。例如,商家可以展示打算在网上销售的产品。顾客可以访问该网站,选择该产品,并且将该产品添加到购物车。可以进行到交易服务器的连接,其中可以向顾客提供***或其他支付信息以购买该产品。商家的交易服务器可与第三方***处理服务器连接以检查顾客是否具有足够资金来为所购买的产品支付。该交易可以对仅仅知道自己的交易已经进行的最终顾客是透明的。各个交易、处理步骤和数据存储动作中的每个都可以在一个或多个远程站点处一起进行或者在彼此远程处进行,其中远程计算活动的集合可以称为在“云”中存在和/或运营。
本发明的实施例提供允许业务应用用户102在web上启用不需要IT依赖性的连接解决方案场景。可以启用的解决方案场景的类型的示例可以包括、但不限于厂商登记、采购、时间输入、职务列表、厂商管理的库存、销售引导数据捕捉、购买订单/计价、服务合同更新以及顾客支持请求。连接解决方案场景可以使得业务应用用户102能够从顾客、厂商和伙伴连接、共享和捕捉业务信息。连接和共享可以通过创建和发布对结构化数据解决方案(此后称为“网页”)115的基于web的视觉表示来实现,结构化数据解决方案公开地展示由组织存储和利用并且通过业务应用105可用的信息。这可以通过如下方式进行:在云110上将元数据从业务应用105变换到结构化数据解决方案120的视觉表示(网页115)。然后,信息可以通过结构化数据解决方案120的基于web的视觉表示115被捕捉,并且随后在业务应用105内可用于直接处理和后续事物。在此参考在线职务申请的上述示例,结构化数据解决方案(网页)115的所发布的视觉表示将是职务申请网页。
根据实施例,可能需要元数据来实现解决方案场景,比如在线职务申请。解决方案场景所需的元数据的结构化的编组可以称为解决方案120。解决方案120一般可以被描述为将声明性构造打包、涵盖元数据、数据和视觉元素。作为声明性语句,解决方案120可以声明:元数据的完成;元数据到视觉元素115的绑定;以及该数据如何被呈现以及带回到业务应用***105中。解决方案120可以包括数据元数据125,所述数据元数据12是对可以发布的实体的类型的结构化的描述。解决方案120还可以包括呈现元数据130,所述呈现元数据130可以是网页115形式的数据125的呈现的结构化描述,并且可以解决信息可以如何视觉地和根据上下文地出现。
另外,解决方案120还可以包括数据绑定元数据135,所述数据绑定元数据135可以允许通过云110建立业务应用***105(和相关联的数据存储库)与在网页115中呈现的相关联的数据和功能之间的关系。数据绑定135可以包括实例绑定和元数据绑定。实例绑定包括:在数据被创建和/改变时将网页115动态地绑定到业务应用数据,而元数据绑定可建立可以规定实例绑定的行为的一组关系。元数据绑定可以被描述为通过云110将元数据从业务应用105变换到网页115,这可以通过解决方案120来声明性地描述。数据绑定元数据135不仅可以声明数据如何被呈现给最终用户104,而且可以声明数据如何被带回到业务应用***105中。
根据实施例,通用框架可以用于在云上实现基于模型的应用,所述基于模型的应用可以满足对使用抽象模型的业务应用的三个主要要求,包括:关系数据存储、数据呈现工作流、以及与其他***105(例如后端ERP***)的数据同步。每个模型都可以使用声明性元数据结构(例如表示性XML)来描述,其中元数据可以被组织成以自包含的包(称为解决方案120)形式的层。如图2所示,关系数据存储200可以基于实体和关系被表达成实体关系(ER)模型,其中某些业务逻辑语义可以通过隐式结构限制(例如属性限制和一阶关系限制)来表达。关系数据存储模型可以提供可以用于存储文档和图像的二进制大对象(BLOG)的存储和检索。关系数据存储模型可以支持属性和关系的可变长度的集合。
根据实施例,数据呈现工作流130可以解决什么信息可以被呈现给最终用户、以及信息如何视觉地和根据上下文地出现。数据呈现130可以包括四个子区域:布局、数据绑定、工作流和站点分层结构。如图3所示,站点分层结构可以解决如何在各个业务流的上下文内组织信息,并且可以被分解成4个方案:网页115、页面组、页面类型、以及页面模板170(template)。根据实施例,网页115是可浏览的端点,该端点可以显示预先确定的信息并且可以用于收集来自最终用户104的输入。
网页115是站点分层结构300中的叶。页面组310是页面115的特定编组,该编组提供该集合的一些上下文语义。页面组310可以是其他页面组的一部分,从而允许嵌套的分层结构。例如,页面组310可以是不同的业务流区域(例如采购、营销等等)。页面类型315是基于网页行为规范化或标准化对页面115的另一编组,其中可以具有一个以上可能的视觉表示的数据可以被标准化为页面上类型315。页面类型315可以定义总体呈现行为(例如销售引导捕捉页面或者联系我们页面)并且因此实施某些设计限制。每个网页115都可以属于一个、且仅仅一个页面类型315,并且因此遵循该类型的限制。页面模板170是创建网页115的起点。页面模板170可以定义与网页115相同的呈现行为,然而,它们不是可浏览的端点,并且仅能在创建新页面时使用。
现在参考图4,页面布局400解决如何在网页115内呈现数据,并且可以由三个构造框来定义:控件、容器控件和合成控件。控件405是具有特定呈递和用户交互行为的呈现实体(例如文本框、标签、下拉菜单等等)。容器控件410是具有各个布局的子控件的经组织的集合,并且合成控件415是可重用的呈现片段(例如地址框)。页面布局400可以支持嵌套容器、栈布局420和网格布局425、以及基于主题的样式化。
现在参考图5,页面数据绑定138可以解决什么数据被呈现在网页115内,并且可以按照实体数据源505、属性绑定510、以及关系绑定515来表述。实体数据源505是网页115将在运行时被绑定到的实体记录的页面设计时间抽象。网页115可以具有一个以上数据源,并且可以通过关系形成非循环图。页面数据绑定138图可以遵循所定义的实体元数据结构。属性绑定510可以建立控件505与数据源图中的节点之间的链接。属性绑定510可以指定要在控件505中显示和捕捉所绑定记录的哪些属性。关系绑定515是页面数据绑定138图中的两个数据源节点之间的关系边。关系绑定515可以定义所绑定的记录彼此如何相关。数据绑定引擎可以在网页115在特定绑定上下文中呈递时动态地加载页面数据绑定138图,并且该图的经修改部分(即记录)可以在用户提交以后被提交回到数据库中。
工作流是呈现状态和管理状态之间转移的控制器逻辑的链。工作流可以使用声明性结构来描述。工作流可以以两层复杂度来展示,其中知识彼此共享。简单形式的工作流在图6A中予以示出,并且可以被包含在单个网页115内。网页115可以具有一个或多个称为视图605的呈现状态。每个视图605都可以使用上述布局和页面数据绑定138结构来定义。视图605可以描述:网页115看上去如何、以及什么数据在特定网页状态下示出。页面控制器610是网页115内的工作流,并且可以使用事件驱动和/或基于规则的转移模型来定义视图605的连锁。
如图6B所示,更高级和更强大的工作流被示为过程615。过程615可以包括以与相应网页115中的视图605类似的方式被连锁的页面115(即基于规则或事件驱动)。过程控制器625是过程615的连锁逻辑,并且可以实现高级解决方案场景,比如主细节导航、门户(到多个页面的类似枢纽的导航)等等。
页面和过程控制器610、625二者都可以在每个状态下展示许多内部和/或外部事件。过程内部事件可以由过程615内的组件(例如过程控制器625、页面视图605、页面控制器610等等)来绑定。页面内部事件可以类似地由网页115内的组件来绑定。外部事件可以绑定到过程615或网页115之外。例如,外部事件可以绑定到在远程计算完成并且结果可用时要触发的通信信道(例如服务总线(Service Bus))。
本发明的实施例可以提供数据同步模型,其中每个存储实体记录都可以具有自动生成的版本号,并且对所述记录的任何改变都可以使版本号递增。同步模型可以基于改变列表,其中可以提供来自指定标记版本号的所有改变的列表。该模型可以是类型不可知的,其中改变列表使用元数据结构来描述对实体的改变。可以通过同步策略向所连接的客户端描述同步行为或合同(例如频率、记录选择过滤器等等)。客户端可能需要在利用本发明的平台执行同步操作时遵守同步策略。
根据实施例,双向数据同步被提供并且包括冲突检测和解决以便将业务应用105(例如ERP***)中的后端数据保持为与通过云110来发布的网页115同步。当数据在业务应用105中被修改时,其可以通过同步信道被自动接收,并且可以被推送出到云110和解决方案120以用于将经修改的数据与网页115同步。相反,当数据在解决方案120或网页115处被修改时,经修改的数据可以通过同步信道被自动接收以用于将经修改的数据与业务应用105同步。当相同数据元素在业务应用105和解决方案120或网页115二者中都被修改时,可能导致冲突,因为其可能不能确定业务应用或解决方案120或网页115中的哪个是主源以确定哪个修改应当起控制作用,并且因此可能导致冲突。在一些情况下(例如针对某些数据类型),用户102、104可以通过如下方式导致自动解决:确定所述多方之一作为冲突修改的主源;以及根据对所确定的主源的数据修改自动地解决该冲突。在其他情况下,用户可以检查同步日志并且通过合适地合并来自双方的数据来人工地解决冲突。应当理解,可以执行在双方处的改变跟踪以用于比较每方处的数据版本以及执行在此所述的冲突检测和解决。另外,可以向包括解决方案120的开发者在内的***的两端处的用户自动通知修改和/或轮询关于改变或冲突解决的输入。
根据实施例,可以展示元数据驱动的应用模型。能够理解,由于应用解决方案场景可能变得复杂,因此元数据可能是大的。解决方案场景常常可以由各个提供者来开发,但是可以被安装在一起以充当单个端对端解决方案。因此,实施例提供了用于将元数据打包到解决方案120中的方式。解决方案120可以包括身份、公共合同、以及元数据。解决方案120可以具有有效标识,包括名称、唯一标识符、版本、提供者名称、任选的公钥、以及任选的描述。
公共合同可以描述解决方案如何与***中其他组件(例如其他解决方案)交互。公共合同可以包括方案合同,该方案合同可以描述:为了使解决方案起作用而在数据存储模型中可能需要什么样的其他实体元数据。来自所安装的其他解决方案120的方案合同可以被平台组合,并且可以被传播到同步接口。解决方案公共合同还可以包括依赖性合同,该依赖性合同可以描述特定解决方案所引用的其他解决方案120。解决方案120可以在***的当前状态不满足其公共合同的情况下被禁用。元数据组件可以包含定义解决方案120的呈现组件(例如站点分层结构300、页面模板170、工作流等等)和行为的所有元数据结构。可能需要元数据以遵守之前由解决方案声明的公共合同。解决方案120可以由基于公钥基础设施(PKI)的证书来数字地签名以避免篡改和保护完整性。如果解决方案120被签名,则可能需要解决方案的身份包括签名者证书的公钥。
如上所述,实施例提供了数据绑定抽象平台,其中来自业务应用***105的数据可以被变换成利用结构化的定义的格式,比如可扩展标记语言(XML)数据结构。XML绑定方案可以按照数据到最终用户104的呈现来解释数据,使得该数据可以从业务应用***105被变换到云上的视觉表示115。应当理解,XML仅仅是用于表示数据和元数据在业务应用***105与云110之间的变换的一种方式。数据的变换允许作为上下文来绑定数据,并且元数据的变换允许确定针对呈现方面可以被绑定的数据的类型。
如上所述,本发明的实施例允许将数据输入到结构化数据解决方案115的基于web的视觉表示中以供被同步回到业务应用105中。组织的业务应用***105内的数据可以被变换成视觉表示115,在所述视觉表示115内,最终用户输入的数据可以被接收并且然后被相应地变换成一定格式,使得最终用户输入的数据可以与业务应用***同步并且在需要时被使用。数据绑定元数据135可以定义有向的绑定、即定义什么数据可以是传入或传出的、可以如何用来自业务应用105的数据填充数据图、以及网页115上的所填充的数据如何可以回到数据图中。
现在参考图7,在诸如ERP***之类的业务应用***105内示出了各个工作量。工作量可以是业务的方面或操作,比如、但不限于:制造705、供应链管理710、财务715、采购720、项目管理725、人力资源730、顾客关系管理735、数据服务740、访问控制745、以及其他业务活动750。在每个工作量705、710、715、720、725、730、735、740、745、750内,可以存储各种信息。应当理解,示例性的业务工作量是仅仅出于示例目的,而不是限制大量组织功能或者可以与在此所述的基于web的解决方案页面115相关联的过程。
例如,采购720工作量可以包括诸如下列这样的数据:厂商信息755、针对报价的请求(RFQ)760、购物要求765等等。诸如采购代理之类的业务应用用户102可能希望生成场景,其中他/她可能希望发布新的RFQ以用于通过RFQ网页115向各个厂商请求报价或提议。如图8所示,根据实施例,可以提供各个模板170以用于创建新页面。如所示那样,可以显示每个所提供模板170的预览和描述815。模板170可以由诸如独立软件厂商(IVS)之类的解决方案开发者、从软件发布者、或者从能够编写代码以生成模板的任何用户来提供。页面模板170可以用作创建网页115的起点。页面模板170可以定义呈现行为,可以显示预先确定的信息,并且可以从最终用户104收集输入。回过来参考该示例,采购代理可以选择和上传RFQ模板170以用于构建基于web的RFQ页面。
如图9所示,可以提示业务应用用户102输入页面细节,比如页面名称905(pagename)和页面URL 910()。也就是说,用户102可以使用图9所示的页面通过提供网页115的名称和页面定位符来启动构建网页115的过程。参考图10,可以提供用户界面1000,利用所述用户界面1000,业务应用用户102可以声明把与业务应用105相关联的哪些数据包括在网页中并且绑定到该页面内的各个数据元素。例如,诸如RFQ号码1005()、RFQ联系人1010()、RFQ提交结束日期1015()、递送日期1020()和递送地址1025()等等之类的数据元素可以绑定到业务应用/***105内的数据元素。
所声明的数据绑定可以保存为数据绑定元数据135。数据可以在云110上使用该数据的结构化定义(例如XML)从业务应用***105变换到视觉表示115。如图10所示,诸如公司标志、关于公司的信息、以及公司的数据库内的其他数据之类的数据125可以绑定到网页115。可以提供各种功能以用于允许业务应用用户102定制网页115的呈现外观。例如,可以有业务应用用户102可从中选择的各种背景、页眉、页脚、颜色或布局选择可用。业务应用用户102可以编辑数据,将附加的域添加到模板以及移除域。页面的各方面可以保存为呈现元数据130。
可以选择或输入业务应用用户102可能想要与之共享结构化数据解决方案115的基于web的视觉表示的一个或多个最终用户(例如厂商)104。最终用户104可以是个人或公司,其可以是现有厂商、顾客、申请者、或者在业务应用105中可能已经存在信息的其他实体。可替代地,网页115可以被发送给潜在的厂商申请者、顾客,或者可以公开地被发布以供未定义的最终用户104进行访问。当业务应用用户102已经完成:输入他/她想要包括在页面上的数据、选择业务应用105中的他/她想要绑定到页面中的域的域、定制页面的外观、以及选择或输入他/她想要将视觉表示115发送给的人时,解决方案120可以被发布给云110。
根据实施例,可以生成网页115的URL,其中最终用户104可以访问结构化数据解决方案(网页115)的基于web的视觉表示。如图11所示,消息(例如电子邮件)1100可以被发送给最终用户104,该消息1100可以包含到视觉表示115的链接1105。
一旦解决方案120被发布,就可以向最终用户104呈现在业务应用***105与基于web的结构化数据解决方案115之间绑定的数据的抽象表示。如图12和13中所示,结构化数据解决方案115的基于web的视觉表示可以包含最终用户104可以向里面输入信息的域1205。例如,如图12所示,页面可以包含输入联系人信息的域1205。每个域1205都可以绑定到业务应用105中的域。在被最终用户104提交以后,输入到结构化数据解决方案(网页)115的基于web的视觉表示中的每个域1205中的信息可以通过域1205与业务应用105中或同业务应用105相关联的相关联数据对象之间的数据绑定被发布到业务应用105中。根据实施例,如图13所示,可以提供域1305以用于上传可以被提交给业务应用用户102的文档。
应当理解,可以为给定业务应用105开发和发布并且由其使用多个解决方案120和相关联的网页115。例如,给定业务应用用户102可以已经开发并可能在任何给定时间已运行数十个网页115,所述网页115覆盖他/她的业务或组织工作量和/或职能的数十个方面。如图14所示,可以提供用户界面1400,其中业务应用用户102可以查看各个解决方案120的状态。当解决方案120的状态改变时,可以提供通知(例如电子邮件、弹出消息等等)。例如,如果最终用户104响应RFQ,则可以显示弹出消息1405。业务应用用户102可以查看所提交的数据并且作出状态改变。例如,采购代理可以接受或拒绝RFQ或者将其返回并要求附加的信息。状态的改变可以被发布到结构化数据解决方案115的基于web的视觉表示,使得最终用户104可以查看状态并且可以作出相应反应。根据实施例,呈现视图可以基于实体的状态。也就是说,页面的呈现可以由业务应用用户102来设计,使得针对给定状态,该页面可以以特定方式被呈现。例如,如果RFQ已经被接受,则结构化数据解决方案115的基于web的视觉表示可以被显示给最终用户104,其中包括“祝贺!”文本。
在已经描述了本发明实施例的各方面的操作架构以后,图15是示出了一种方法的逻辑流程图,该方法用于通过云110提供元数据在业务应用105到网页115之间的变换、接收作为该网页的一部分所收集的数据、以及将所接收的数据变换回用于与业务应用同步的格式。
方法1500始于操作1505,并且进行到操作1510,其中接收生成将作为基于web的结构化数据解决方案被显示的基于web的结构化数据解决方案120以及相关联的网页呈现115的请求。生成数据解决方案120的请求可以在由业务应用用户102作出选择以启用新场景时进行。如上所述,可以由业务应用用户102启用的场景可以包括、但不限于厂商登记、采购、时间输入、职务列表、厂商管理的库存、引导捕捉、购买订单/计价、服务合同更新以及顾客支持请求。可以在UI内提供可由业务应用用户102从中选择的多种用于创建新场景的可选择功能。
在操作1515,在接收创建新场景的请求以后,可以提供一个或多个模板170以用于生成基于web的结构化数据解决方案120。使用所选的模板,基于web的结构化数据解决方案的开发者可以标识出与业务应用相关联的一个或多个数据类型(例如针对雇用应用解决方案的姓名、受教育程度、经验数据类型),其中所述一个或多个数据类型中的每个都将与最终用户输入数据类型相关联。标识出与业务应用相关联的一个或多个数据类型可包括:标识出与所指定结构化数据解决方案(例如雇用应用结构化数据解决方案)相关联地需要的数据的一个或多个数据类型。
如上所述,模板170可以由呈现元数据130来定义。模板可以提供一组数据、例如文本语句(例如“在这里输入您的姓名”)之类的语义、以及业务应用用户102可以操纵的视觉元素。可以为各种解决方案场景提供各种模板170。例如,回过来参考图8,可以基于业务应用用户102可以创建的场景来选择页面类型。如图8所示,业务应用用户102已经选择创建针对报价的新厂商请求805(new)。因此,向用户102提供各种模板170选择以供选择。可以显示所提供的模板170的图像和描述815以帮助用户102选择所期望的模板。
在选择模板170以后,方法1500进行到操作1520,其中接收业务应用用户输入的数据125、呈现数据130、数据绑定元数据135。由解决方案的开发者标识出的一个或多个数据类型可以与基于web的结构化数据解决方案模板中的一个或多个相应数据域相关联,使得输入到基于web的结构化数据解决方案的所显示形式中的所述一个或多个数据域中任何数据域中的数据将与同业务应用相关联的一个或多个所标识出的相应数据类型相关联。将一个或多个所标识出的数据类型与基于web的结构化数据解决方案模板中的一个或多个相应数据域相关联可以包括:接收一个或多个数据类型与基于web的结构化数据解决方案模板中的相应一个或多个数据域的关联,使得输入到所述一个或多个数据域中任何数据域中的数据都可以被业务应用接收,并且可以与所述一个或多个所标识出的数据类型相关联地同业务应用相集成。
根据实施例,数据域可以出现在重复器(repeater)或网格内。因此,数据域可以根据其可以绑定到的数据实体的实际数目在网页呈现上重复多次。也就是说,数据可以通过网页115以表格格式显示给最终用户104,所述表格格式绑定到业务应用105中的相同类型记录的集合、而不是仅仅一个记录。示例可以是网页以在公司职务站点中示出所有职务列表。可以按照如下的模板行针对重复器来描述绑定:所述模板行包含代表性的一组控件以及它们的到后端数据实体的域的相应绑定。在运行时期间,可以确定:将在网页上加载数据实体的多少实例。基于该确定,可以生成表格,其中该表格的每行表示一个数据实体实例。
在模板170中指定的信息可以被定制和编辑。域可以根据业务应用用户102的需要被添加、删除或修改。可以选择数据元素,并且数据绑定元数据135可以由用户102来定义。可以定义各个域以用于从最终用户104接收信息。根据实施例,与所指定的基于web的结构化数据解决方案相关联的模板170可以具有一个或多个域以用于与同业务应用相关联的一个或多个所标识出的数据类型相关联。该模板可以具有一个或多个要在网页115呈现的所显示格式中显示的一或多个视觉元素。附加地,该模板可以具有一个或多个文本语义(例如“在这里输入受教育程度信息”)以用于帮助网页呈现的所显示格式的最终用户以将最终用户数据提供给一个或多个所标识出的数据类型中的一个或多个的结构化数据解决方案。模板170还可以提供模板的视觉图像以允许基于web的结构化数据解决方案的开发者预览:网页呈现的所显示形式将在显示给一个或多个最终用户时如何被呈现。可以提供简单的UI以用于页面创建,使得业务应用用户102可以快速和容易地创建结构化数据解决方案120。
业务应用用户102可以声明:他/她想要把来自业务应用105内的哪些数据元素绑定到结构化数据解决方案120的基于web的视觉表示内的元素。本发明的实施例允许由业务应用用户102作出声明,而该业务应用用户不必理解如何编写代码。用户102可以声明绑定哪些元素,并且可以声明他/她想要如何呈现。
根据实施例,数据绑定过程可以包括:生成基于web的结构化数据解决方案的实例并且将基于web的结构化数据解决方案的实例绑定到相关联的业务应用,使得与该业务应用相关联的一个或多个所标识出数据类型中的任何数据类型的任何改变都反映在基于web的结构化数据解决方案的实例中的一个或多个相应数据域中。可以在基于web的结构化数据解决方案的实例中的一个或多个数据域中的每个与相关联的业务应用中的相应数据类型之间生成一个或多个关系,以用于致使在基于web的结构化数据解决方案的实例中的一个或多个相应数据域中反映与业务应用相关联的一个或多个所标识出的数据类型中任何数据类型的任何改变。可以将元数据同基于web的结构化数据解决方案的实例中的一个或多个数据域中的每个与相关联的业务应用中的相应数据类型之间的一个或多个关系相关联,以用于绑定基于web的结构化数据解决方案的实例与相关联的业务应用中的相应数据类型之间的一个或多个关系。
另外,可以执行通过基于web的结构化数据解决方案的实例所接收的数据从与基于web的结构化数据解决方案的实例相关联的第一形式到与业务应用相关联的第二形式的变换。例如,通过网页115接收的数据可以根据一种格式或结构化语言(例如HTML)来接收,而该数据可能需要被变换成另一格式或结构化语言(例如XML)以供相关联的业务应用使用。所建立的变换可以用变换元数据来描述,并且该变换元数据可以绑定到相关联的业务应用以用于规定通过基于web的结构化数据解决方案的实例所接收的数据从与基于web的结构化数据解决方案的实例相关联的第一形式到与业务应用相关联的第二形式的变换。
数据绑定元数据可以与基于web的结构化数据解决方案相关联以用于声明基于web的结构化数据解决方案的所显示形式(即网页115)将如何被呈现给最终用户。数据绑定元数据还可以与基于web的结构化数据解决方案相关联以用于声明输入到基于web的结构化数据解决方案的实例中的一个或多个数据域中的任何数据域中的数据如何被传输给相关联的业务应用。
在操作1525从业务应用用户102接收到发布结构化数据解决方案120的请求以后,方法1500进行到操作1530,生成基于web的结构化数据解决方案,其中建立由结构化解决方案文件120定义的关系和限制,从业务应用***105变换数据,并且根据所定义的声明和呈现元数据130绑定该数据,并且作为网页115形式的结构化数据解决方案的基于web的视觉表示将该数据显示给最终用户104。生成基于web的结构化数据解决方案可以包括:生成所指定的结构化数据解决方案,使得可以为所标识出的数据类型中的每个接收数据,并且生成所指定的结构化数据解决方案可以在处于业务应用远程的计算***(例如云110)处执行以用于允许一个或多个最终用户通过远程计算***访问所生成的所指定结构化数据解决方案。
在操作1530,可以通过网页115接收最终用户输入的数据(比如输入到网页115中的一个或多个数据域中的一个或多个数据输入)。如图12和13已经示出的那样,可以提供各个域以接收最终用户输入的数据。
在操作1535,可以将最终用户输入的数据传递给业务应用,并且将该数据与同该业务应用相关联的相应数据类型相关联地存储。也就是说,接着,在操作1540,用户输入的数据可以与数据绑定元数据135所定义的业务应用***105同步。可以变换最终用户输入的数据,使得该数据可以被利用和上传到业务应用***105并且在需要时由相关联的组织利用。当业务应用用户102进行改变或更新时,可以重新发布反映该改变或更新的网页呈现115。对解决方案场景的改变或更新的通知可以被提供给业务应用用户102和/或最终用户104。因此,网页115可以用作通信门户,利用所述通信门户,业务应用用户102和最终用户104可以接收和传送业务数据。
如上所述的发明的各实施例可通过本地和远程计算和数据存储***来实现,包括参考图1所示和所述的***。符合本发明的实施例,上述存储器存储和处理单元可在诸如图16的计算设备1600之类的计算设备中实现。可使用硬件、软件或固件的任何合适的组合来实现存储器存储和处理单元。例如,存储器存储和处理单元可用计算设备1600或任何其他计算设备1618结合计算设备1600来实现,其中在分布式计算环境(如内联网或因特网)中可通过网络将功能集合在一起,以执行如本文所述的功能。根据本发明的实施例,上述***、设备和处理器是示例,而其他***、设备和处理器可包括上述存储器存储和处理单元。此外,计算设备1600可包括如上所述的操作环境100。操作环境100并不限于计算设备1600。
参考图16,符合本发明的各实施例的***可包括诸如计算设备1600的计算设备。在基本配置中,计算设备1600可包括至少一个处理单元1602和***存储器1604。取决于计算设备的配置和类型,***存储器1604可包括,但不限于,易失性存储器(例如,随机存取存储器(RAM))、非易失性存储器(例如,只读存储器(ROM))、闪存、或任何组合。***存储器1604可包括操作***1605、一个或多个编程模块1606,并可包括业务应用***105,其中业务应用***是具有充足的计算机可执行指令的软件应用,该应用在被执行时执行如本文所述的功能。例如,操作***1605可适用于控制计算设备1600的操作。此外,本发明的实施例可结合图形库、其他操作***、或任何其他应用程序来实践,并且不限于任何特定应用或***。该基本配置在图16中由虚线1608内的那些组件示出。
计算设备1600可具有附加特征或功能。例如,计算设备1600还可包括附加数据存储设备(可移动和/或不可移动),诸如例如,磁盘、光盘、或磁带。这些附加存储在图16中由可移动存储1609和不可移动存储1610示出。计算设备1600还可包含可允许设备1600诸如通过分布式计算环境中的网络(例如,内联网或因特网)来与其他计算设备1616进行通信的通信连接1618。通信连接1616是通信介质的一个示例。
如上所述,可在***存储器1604中存储包括操作***1605在内的多个程序模块和数据文件。在执行在处理单元1602上时,编程模块1606可包括业务应用***105,其中业务应用***可包含充足的计算机可执行指令,所述指令在被执行时执行如本文所述的功能。上述过程是一个示例,且处理单元1602可执行其他过程。根据本发明的实施例可使用的其他编程模块可包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片演示应用、绘图或计算机辅助应用等。
一般而言,根据本发明的实施例,程序模块可包括可执行特定任务或可实现特定抽象数据类型的例程、程序、组件、数据结构和其他类型的结构。此外,本发明的实施例可用其他计算机***配置来实践,包括手持式设备、多处理器***、基于微处理器的***或可编程消费电子产品、小型机、大型计算机等。本发明的实施例还可在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备两者中。
此外,本发明的实施例可在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路、或在包含电子元件或微处理器的单个芯片上实践。本发明的实施例还可使用能够执行诸如例如,AND(与)、OR(或)和NOT(非)的逻辑运算的其他技术来实践,包括但不限于,机械、光学、流体和量子技术。另外,本发明的实施例可在通用计算机或任何其他电路或***中实践。
例如,本发明的实施例可被实现为计算机过程(方法)、计算***、或诸如计算机程序产品或计算机可读介质之类的制品。计算机程序产品可以是计算机***可读并对用于执行计算机过程的指令的计算机程序编码的计算机存储介质。因此,本发明可以硬件和/或软件(包括固件、常驻软件、微码等)来体现。换言之,本发明的实施例可采用其上包含有供指令执行***使用或结合其使用的计算机可使用或计算机可读程序代码的计算机可使用或计算机可读存储介质上的计算机程序产品的形式。计算机可使用或计算机可读介质可以是可包含、存储、通信、传播、或传输程序以供指令执行***、装置或设备使用或结合其使用的任何介质。
本文所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。***存储器1604、可移动存储1609和不可移动存储1610都是计算机存储介质(即,存储器存储)的示例。计算机存储介质可包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或者可用于存储信息且可由计算设备1600访问的任何其他介质。任何这样的计算机存储介质都可以是设备1600的一部分。计算设备1600还可以具有输入设备1612,如键盘、鼠标、笔、声音输入设备、触摸输入设备等。还可包括诸如显示器、扬声器、打印机等输出设备1614。上述设备是示例,并且可使用其他设备。
本文所使用的术语计算机可读介质还可包括通信介质。通信媒介可由诸如载波或其他传输机制的已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。
以上参考例如根据本发明的实施例的方法、***和计算机程序产品的框图和/或操作示图描述了本发明的实施例。框中所注明的各功能/动作可按不同于任何流程图所示的次序出现。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可基本同时执行,或者这些框有时可按相反的次序执行。
尽管已描述了本发明的特定实施例,但也可能存在其他实施例。此外,虽然本发明的实施例被描述为与存储在存储器和其他存储介质中的数据相关联,但是数据还可被存储在其他类型的计算机可读介质上或从其读取,诸如辅助存储设备(像硬盘、软盘、或CD-ROM)、来自因特网的载波、或其他形式的RAM或ROM。此外,所公开的方法的各步骤可以任何方式修改,包括通过对各步骤重新排序和/或***或删除步骤,而不背离本发明。
包括此处所包括的代码中的版权在内的所有权利都归属于申请人并且是本申请人的财产。本申请人保持并保留此处所包括的代码中的所有权利,并且授予仅关于所授权专利的再现且未出于其他目的再现该材料的许可。
尽管本说明书包括示例,但本发明的范围由所附权利要求书来指示。此外,尽管用对结构特征和/或方法动作专用的语言描述了本说明书,但权利要求书并不限于以上所描述的特征或动作。相反,以上所描述的特定特征和动作是作为本发明的实施例的示例来公开的。