跳转到主要内容
Chinese, Simplified

在web开发中,mashup(计算机行业术语)是一个web页面或web应用程序,它使用来自多个源的内容来创建单个新服务,并显示在单个图形界面中。例如,用户可以将其图书馆分支的地址和照片与谷歌映射相结合,以创建地图mashup。这个术语意味着简单、快速的集成,经常使用开放的应用程序编程接口(open API)和数据源来产生丰富的结果,而这些结果不一定是产生原始数据源数据的原始原因。mashup这个术语最初来自于英西印度群岛的俚语,意思是喝醉了,或者描述某人或某事没有达到预期的功能。在最近的英语中,它可以指音乐,人们无缝地将一首歌曲的音频和另一首歌曲的音轨结合在一起,从而创造出新的东西。

mashup的主要特征是组合、可视化和聚合。使现有数据对个人和专业使用更有用是很重要的。为了能够永久地访问其他服务的数据,mashup通常是客户端应用程序或在线托管。

在过去的几年里[什么时候?,越来越多的Web应用程序已经发布了api,这些api使软件开发人员能够以SOA的方式轻松地集成数据和功能,而不是自己构建它们。可以认为mashup在社交软件和Web 2.0的发展中扮演着积极的角色。Mashup组合工具通常非常简单,可供最终用户使用。它们通常不需要编程技能,而是支持GUI小部件、服务和组件的可视化连接。因此,这些工具为Web的新愿景做出了贡献,用户可以在其中做出贡献。(需要澄清)

术语“mashup”并不是由任何标准设置机构正式定义的.

历史

Web历史的更广泛背景为mashup的开发提供了一个背景。在Web 1.0模型下,组织将消费者数据存储在门户网站上,并定期更新它们。他们控制了所有的消费者数据,消费者必须使用他们的产品和服务来获取信息。[引文需要]

Web 2.0的出现引入了一些Web标准,这些标准在传统的竞争对手之间得到了普遍和广泛的采用,从而打开了消费者数据。与此同时,mashup出现了,允许混合和匹配竞争对手的api来开发新服务。

第一个mashup使用映射服务或照片服务将这些服务与任何类型的数据组合起来,从而产生数据的可视化。最初,大多数mashup是基于消费者的,但最近[什么时候?混搭将会被谁看到?这是一个有趣的概念,对企业也很有用。业务mashup可以将现有的内部数据与外部服务组合起来,以生成关于数据的新视图。

混搭的类型

mashup有许多类型,比如业务mashup、消费者mashup和数据mashup。最常见的mashup类型是面向普通大众的消费者mashup。

业务(或企业)mashup定义将其自身的资源、应用程序和数据与其他外部Web服务组合在一起的应用程序。他们将数据集中在一个单一的演示中,并允许企业和开发人员之间的协作行动。这对于敏捷开发项目非常有效,因为敏捷开发项目需要开发人员和客户(或客户代理,通常是产品经理)之间的协作来定义和实现业务需求。企业mashup是安全的、视觉上丰富的Web应用程序,它公开来自不同内部和外部信息源的可操作信息。

使用者mashup在浏览器中组合来自多个公共源的数据,并通过一个简单的浏览器用户界面对其进行组织。[5](例如:Wikipediavision结合了谷歌地图和Wikipedia API)

与消费者mashup相反,数据mashup将类似类型的媒体和来自多个源的信息组合成单一表示。所有这些资源的组合创建了一个新的、独特的Web服务,它最初不是由任何一个源提供的。

通过API类型

mashup也可以根据它们使用的基本API类型进行分类,但其中任何一种都可以相互组合或嵌入到其他应用程序中。

数据类型

  • 元搜索引擎使用的索引数据(文档、网络日志、图像、视频、购物文章、工作……)
  • 制图和地理数据:地理定位软件,地理可视化
  • 提要、播客:新闻聚合器

功能

  • 数据转换器:语言翻译,语音处理,网址缩短器…
  • 沟通:电子邮件,即时消息,通知…
  • 可视化数据绘制:信息可视化,图表
  • 安全相关:电子支付系统,身份识别…
  • 编辑器

Mashup的推动者

在技术领域,mashup enabler是一种工具,用于将不兼容的IT资源转换为可以轻松组合的形式,从而创建mashup。Mashup使能者允许使用强大的技术和工具(例如Mashup平台)来将数据和服务组合到新的资源类型中。mashup启用程序的一个示例是一个从电子表格(不能轻松用于创建mashup)创建RSS提要的工具。许多mashup编辑器包括mashup推动者,例如Presto mashup连接器、Convertigo Web Integrator或Caspio Bridge。

Mashup推动者也被描述为“使Mashup成为可能的服务和工具提供者”。[引文需要]

历史

早期的mashup是由热情的程序员手工开发的。然而,随着mashup变得越来越流行,公司开始创建用于构建mashup的平台,这些平台允许设计人员通过连接mashup组件来可视化地构建mashup。

Mashup编辑器极大地简化了Mashup的创建,极大地提高了Mashup开发人员的工作效率,甚至向最终用户和非it专家开放了Mashup开发。标准组件和连接器使设计人员能够轻松地以各种复杂的方式组合mashup资源。然而,Mashup平台在扩展Mashup可以访问的资源范围方面做得很少,而且还没有将Mashup从对结构化数据和开放库(RSS提要和公共api)的依赖中解放出来。

Mashup启用程序不断发展,以解决这个问题,提供了将其他类型的数据和服务转换成mashable资源的能力。

Web资源

当然,并不是所有有价值的数据都位于组织内部。事实上,对于业务智能和决策支持最有价值的信息通常来自组织外部。随着富internet应用程序和在线Web门户的出现,越来越多的业务关键流程(例如订购)可以在线使用。不幸的是,这些数据源很少以RSS格式聚合内容,而且很少有这些服务提供可公开访问的api。因此,Mashup编辑器通过提供启用程序或连接器来解决这个问题。

数据集成的挑战

在集成来自不同来源的数据时,有许多挑战需要解决。这些挑战可以分为四组:文本/数据不匹配、对象标识符和模式不匹配、抽象级别不匹配、数据准确性

文本数据不匹配

大部分数据是用文本来描述的。人类的语言常常是含糊不清的——同一家公司可能在几个变体中被提及(例如IBM、国际商业机器公司和蓝色巨人)。这种模糊性使得与结构化数据的交叉链接变得困难。此外,用人类语言表达的数据很难通过软件程序来处理。数据集成系统的功能之一是克服文档与数据之间的不匹配

对象标识和独立的模式

结构化数据有各种各样的格式。因此,将数据提升到公共数据格式是第一步。但是,即使所有数据都以一种通用的格式提供,但在实践中,数据源在如何表述本质上相同的事实方面是不同的。这种差异存在于单独的对象级别和模式级别。作为对象级别不匹配的一个示例,请考虑以下内容:SEC使用所谓的中央索引键(Central Index Key, CIK)来识别人员(ceo、cfo)、公司和金融工具,而其他来源(如DBpedia (Wikipedia的结构化数据版本))使用uri来识别实体。此外,每个源通常使用自己的模式和特性来说明本质上相同的事实。因此,必须使用方法来协调对象和模式的不同表示。

抽象级别

数据源提供不兼容的抽象级别的数据,或者根据与某个扇区相关的分类法对其数据进行分类。由于数据是在不同的抽象层次(如个人、公司、国家或部门)发布的,为个人观点而聚合的数据可能与来自统计部门的数据不匹配。此外,在地理汇总方面也存在差异(例如,来自一个来源的区域数据和来自另一个来源的国家一级数据)。一个相关的问题是使用当地货币(美元对欧元),为了使来自不同来源的数据具有可比性并便于分析,必须对这些货币进行协调。

数据质量

在自动集成来自自治数据源的数据时,数据质量是一个普遍的挑战。在开放环境中,数据聚合器对数据发布服务器几乎没有影响。数据常常是错误的,并且组合数据常常会加重问题。特别是在执行推理(从现有数据自动推断新数据)时,错误的数据可能会对结果数据集的整体质量造成毁灭性的影响。因此,一个挑战是数据发布者如何协调以修复数据或黑名单站点中无法提供可靠数据的问题。需要的方法和技术:检查完整性和准确性;突出、鉴定和确证证据;评估一个给定命题为真的概率;等同市场部门或公司之间的权重差异;设立清算所,以提出和解决相互竞争(可能相互冲突)的数据提供者之间的争端;并与可能来源和质量可疑的混乱的错误Web数据交互。总之,标识、数量、标记和分类中的错误会严重妨碍系统对这些数据进行操作。

Mashup和门户网站

mashup和门户都是内容聚合技术。门户是一种较老的技术,被设计为对传统动态Web应用程序的扩展,其中将数据内容转换为标记的Web页面的过程分为两个阶段:生成标记“片段”和将片段聚合为页面。每个标记片段由一个“portlet”生成,门户将它们组合成单个Web页面。portlet可以本地托管在门户服务器上,也可以远程托管在单独的服务器上。

门户技术定义了一个完整的事件模型,包括读取和更新。在门户上对聚合页面的请求被转换为构成页面的所有portlet上的单个读取操作(本地的“呈现”操作、JSR 168 portlet或远程的“getMarkup”操作、WSRP portlet)。如果在门户页面上的任何portlet上按下了submit按钮,那么它将被单独转换为该portlet上的更新操作(本地portlet上的processAction或远程WSRP portlet上的performBlockingInteraction)。更新之后立即对页面上的所有portlet执行读操作。

门户技术是关于服务器端表示层聚合的。它不能用于驱动更健壮的应用程序集成形式,比如两阶段提交。

mashup与门户在以下方面有所不同:

  Portal Mashup
分类 较老的技术,使用定义良好的方法对传统Web服务器模型的扩展 使用更新的、定义松散的“Web 2.0”技术
哲学/方法 通过将Web服务器的角色划分为标记生成和标记片段聚合两个阶段来实现聚合 使用不同内容站点提供的api以另一种方式聚合和重用内容
内容相关性 聚合面向表示的标记片段(HTML、WML、VoiceXML等) 可以操作纯XML内容,也可以操作面向表示的内容(如HTML)
位置的依赖关系 传统上,内容聚合是在服务器上进行的 内容聚合可以在服务器上进行,也可以在客户机上进行
聚合的风格 “沙拉吧”风格:聚合的内容“并排”显示,没有重叠 “大熔炉”风格-个别内容可以以任何方式组合,导致任意结构的混合内容
事件模型 读取和更新事件模型是通过特定的portlet API定义的 CRUD操作基于REST架构原则,但是不存在正式的API
相关标准 Portlet行为由标准JSR 168、JSR 286和WSRP控制,尽管门户页面布局和门户功能是未定义的,并且是特定于供应商的 基本标准是作为REST或Web服务交换的XML。RSS和Atom是常用的。更具体的mashup标准(如EMML)正在出现。

 

门户模式存在的时间更长,并且有更大的投资和产品研究。因此,门户技术更加标准化和成熟。随着时间的推移,mashup技术的日益成熟和标准化可能会使它比门户技术更受欢迎,因为它与Web 2.0和最近的面向服务的体系结构(SOA)联系得更紧密。预计[7]新版本的门户产品最终将添加mashup支持,同时仍然支持遗留portlet应用程序。相比之下,Mashup技术预计不会提供对门户标准的支持。

业务mashup

Mashup在业务环境中的使用正在扩展。业务mashup对于集成业务和数据服务非常有用,因为业务mashup技术提供了快速开发新集成服务的能力,可以将内部服务与外部或个性化信息相结合,并通过用户友好的Web浏览器界面将这些服务呈现给业务用户

业务mashup与消费者mashup在与业务计算环境的集成级别、安全性和访问控制特性、治理以及使用的编程工具(mashup编辑器)的复杂性方面有所不同。业务mashup和消费者mashup之间的另一个区别是,在商业软件即服务(SaaS)中使用业务mashup的趋势越来越明显。

许多业务mashup技术的提供者都添加了SOA特性。

Mashup的体系结构方面

mashup的架构分为三层:

  • 演示/用户交互:这是mashup的用户界面。所使用的技术有HTML/XHTML、CSS、JavaScript、异步JavaScript和Xml (Ajax)。
  • Web服务:可以使用API服务访问产品的功能。使用的技术有XMLHTTPRequest、XML-RPC、JSON-RPC、SOAP和REST。
  • 数据:处理发送、存储、接收等数据。使用的技术有XML、JSON和KML。

在体系结构上,有两种类型的mashup:基于web的和基于服务器的。基于web的mashup通常使用用户的web浏览器来组合和重新格式化数据,而基于服务器的mashup在远程服务器上分析和重新格式化数据,并将数据以最终形式传输到用户的浏览器

mashup似乎是外观模式的变体。这是一种软件工程设计模式,它为更大的代码体提供了一个简化的接口(在本例中,代码使用不同的api聚合不同的提要)。

mashup可以与作为服务(SaaS)提供的软件一起使用。

经过几年的标准开发,主流企业开始采用面向服务的体系结构(SOA),通过将不同的数据作为离散的Web服务提供来集成它们。Web服务提供开放的、标准化的协议,以提供从各种平台(操作系统、编程语言、应用程序)访问信息的统一方法。可以重用这些Web服务来在组织内部和跨组织提供全新的服务和应用程序,从而提供业务灵活性。

原文:https://en.wikipedia.org/wiki/Mashup_(web_application_hybrid)

本文:https://pub.intelligentx.net/node/799

讨论:请加入知识星球或者小红圈【首席架构师圈】

Tags
 
Article
知识星球
 
微信公众号
 
视频号