QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

电子商务领域中的 OSS、SOA 和 Web 2.0

  • 2008-02-18
  • 本文字数:2834 字

    阅读完需:约 9 分钟

一直以来,人们就有建立SOA 和 Web 2.0 之间关系的想法。但是,Dion Hinchcliffe 写道

……这两种文化通常无法象它们应该的那样交叉授粉,尽管可能有的特别机会。

从架构的观点来看,一些人刚刚开始寻找两者匹配的方式。在这篇文章中 Ganesh Prasad(大型金融机构的资深架构师),Rajat Taneja 和 Rhys Frederick(两个都是咨询师)通过定义 SOFEA(service-oriented front-end architecture,面向服务前端架构)细化了他们关于如何关联 SOA 和 Web 2.0 的分析。

过去的几个月中,Mashup 框架开始成为沟通两者的桥梁,一些来自如 IBM WSO2 这样公司的新产品主要关注于关联 Web 2.0 用户体验和 RESTful 或 Web 服务的消费。

二月初,Apache Tuscany 项目通过促进服务和Web 2.0 用户界面装配打开了结合SOA 和Web 2.0 的新途径。

通过开发 Atom 发布协议(它暴露 RESTful 服务来管理一组资源),企业联合组织领域的相关问题已经被解决到了一定的程度。但是一些人注意到了在企业中更加广泛利用的限制

有人会说,我们只是刚刚开始集成SOA, Web 2.0 的其它方面,例如协作(wiki、标签、博客)、搜索、广告或文件共享,依旧有许多值得探索。

Optaros ,一家总部位于 Boston 在欧洲有办事处的咨询公司,实际上已经做了深入探索,并开发了一套关注于尽量利用开源软件交付 Web 2.0 + SOA 解决方案的实践。

InfoQ 采访了 Optaros 的 Marc Osofsky 和 Dave Gynn 以进一步了解细节。

InfoQ: 你们如何看待 Web 2.0 在企业中的应用?

Dave: 我们称之为“下一代互联网”。尽可能扩展 Web 2.0。社会方面,读 / 写,富用户界面,更多的网络感知组件(不仅仅是单块应用)。

过去,一个页面通常来自单个应用。现在,我们注意到用户交互实际并非是一个来自不同服务器的页面。人们对一些更简单的接口感兴趣:REST 接口,一些人期望将来与之交互。Ajax 驱使你思考给页面提供数据的方式。以及 JSON 用做格式化。

Marc: 在交付层面,Web 2.0 技术的关键是使用户体验和架构都达到最优。客户通常无法完全清晰地说出它的需求。这些技术能快速搭建原型,这使得用户能对之反应并给出新的想法。这的确非常有效,以致我们能够创建一个固定时间、固定价格的业务模型。

Web 2.0 和 SOA 之间存在有极大的协同效应。我们留意了其它单独使用 SOA 或 Web 2.0 的系统集成商,系统花的时间要更长一些。

InfoQ: 在企业中开源和更通用的组件重用的影响是什么?

Dave: 4 年前,Optaros 的创始人就意识到 OSS 将力量由 ISV 转移到了使用者的身上。这种转移将会改变咨询公司的机会环境,并要求一个新的交付模型。

我们的目标是将项目预算集中在那些对客户来说真正造成差异的地方。一般来说,项目的 80% 可以使用低成本商用组件交付,而 20% 是特定于这个用户的。

开源引入了一个新的重用模型。在任何一家公司,应用通常使用一次。这意味着,在公司内真的很难创建一个围绕一些代码的社区。

在 Optaros,我们重用整个解决方案,SOA 中间件组件如 Mule ,内容管理系统使用 Drupal Sugar CRM

InfoQ: 关于你们的解决方案和组件选择的方法,你们能给我们一些细节吗?

Dave: 今天,你们仍在试图重用一个整体解决方案,而不是服务个体。服务仍然难以找到,尽管越来越多的应用开始提供好的服务接口。例如,我们还没有谈论内容管理服务;我们仍在着眼于实现内容管理解决方案。

我们的方法论由产品和组件评估开始。在此,我们采用了全新的方法;我们寻找那些试图解决同样问题的人们,并识别他们正在使用的解决方案和组件,而不是评估一个标准矩阵。

例如,我们有一个客户是一家大学。他们雇用我们帮助他们实现一个内容管理系统,我们比较了他们和另外一个客户的需求,这把我们引向了 Sakai

Marc: Wonderbox [他们完成的一个零售项目,结合了商店前端、CRM 和后端集成] 项目中,我们采用了一种对许多零售店都普遍的方法。我们使用装配、动态脚本语言和Web 2.0(RIA、Ajax 和Streaming)完全地“重建平台”。我们在内核部署了一个请求代理,放置了一个他们基础设施的包装器,并开始迁移他们的后端服务。我们全部使用开源组件:OS Commerce,Sugar CRM 管理BOM 并跟踪使用和付费。我们使用Mule ESB 将所有服务连接起来。

InfoQ: 使用开源 SOA 基础设施你们有什么心得?

Dave: 以我们的经验,你可以从让你的中间件保持厂商中立过程中受益,如你可以得到对标准更好的支持。也使你对厂商的依赖更少:如果你将你的基础设施连接到了一个厂商协议,那么你就背离了 SOA 的观点。当然,从成本的角度来说,你还会有所收获,因为开源组件是免费的或是成本非常低廉。

随着时间推移,开源组件倾向于集成任何东西,而一家特殊的厂商并非总会这么做。

开源软件的关键优势是在项目的前期阶段。当人们做一些概念验证时,他们会使用一个开源组件作为替代物,之后在同一地方他们可能会购买产品。但是客户通常最终会保留这个开源组件,这一点对于 ESB 特别适用。

人们使用服务来获得他们的应用不同部分的好处的一个好的案例是 SwissCom Hospitality,一家酒店的无线提供商。基于 PhP 的前端。开发和修改前端,但是他们期望后端服务使用 Java,使用第三方服务(代理,数据缓存)。我们使用了 Web 服务在 PhP 和 Tomcat 容器之间穿梭。

Marc: 像 Symphony 或 Python 这样的脚本语言伸缩非常有效。我们开始留意使用这些技术的高流量网站。对我们来说,关键是它们能够与用户体验设计者一起快速的搭建原型。我们可以在几周内展示功能完全的站点。SOA 代理和容器也非常成熟,这儿我们没有看到太多的问题。依我们看来整个 SOA 方法正展示企业级的强度。

我们认为缺失的东西更多的是功能组件。例如,可以管理全部商店前端价格和产品信息的“商人桌面”。这常常是一个自定义组件。从 SaaS 观点来看,我们所看到的这一缺失领域是订单管理检验过程(checkout process)的核心。有些解决方案提供这一组件,但是它与表现层紧密地耦合在一起。

在 WonderBox 案例中,我们在不到半年的时间内设计和实现了一个新平台。提高交付你的体验的速度是关键,因为在零售业,你有 6 到 9 个月时间来改变任何东西。对于假期季节,系统必须保持稳定。

InfoQ: 你们能告诉我们你们开发的方法论和使用的工具吗?

Dave: 我们的方法论结合了敏捷方法和固定范围。你必须关注重用和装配组件,远离自定义组件。在非常早期,我们关注识别我们可以得到的解决绝大多数问题的组件。我们尽量最小化我们书写的代码。

当某些我们的开发包含着并非单个客户的特定差异,即具有一定的普遍价值,我们常常试图将其回馈给开源项目。例如,在 ActiveMQ 还没有一强大的死信处理能力的时候我们正在使用它。我们为 ActiveMQ 写了一个死信处理,并将这个使我们客户受益的特性提交回了这个项目:当下一个发布出来的时候,他们就不必经历一次大的升级,并且随着时间推移他们受益于错误修复和性能优化。对于客户和开源项目,这确实是一个双赢的情形。

我们试图尽可能的使用开源工具,因为要移交给客户。

查看英文原文: OSS, SOA and Web 2.0 in the e-Commerce sector

2008-02-18 20:411130
用户头像

发布了 255 篇内容, 共 58.7 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

不要让这2个坏习惯限制了你的成长

俞凡

认知

Docker的学习体验

吴脑的键客

,docker

怎么才能写出100个用户体验的关键时刻?

石云升

读书笔记 用户体验 关键时刻 7月日更

什么是 Druid

HoneyMoose

从鉴黄师到阿里程序员,我成功逆袭上岸

Java 编程 程序员 计算机

实践解析丨如何通过 WebAssembly 在 Web 进行实时视频人像分割

声网

大前端 WebRTC webassembly

结构化流-Structured Streaming(八-下)

Databri_AI

spark 流式计算框架 structuredStreaming

我学编程时最后悔的事!

程序员鱼皮

Java c++ Python 大前端 后端

58字节常量池面试题,你如何应对?

卢卡多多

intern 字符串 7月日更

网络攻防学习笔记 Day83

穿过生命散发芬芳

网络攻防 7月日更

Apache Druid 简介

HoneyMoose

大三就拿到字节提前批,你不想成长,生活总会逼着你成长

Java架构师迁哥

学习下服务器端漏洞,受益匪浅!

网络安全学海

运维 网络安全 信息安全 漏洞扫描 渗透测试·

微观管理?

escray

学习 极客时间 朱赟的技术管理课 7月日更

Go语言:运行时反射,深度解析!

微客鸟窝

Go 语言

大厂的产品研发流程,你知道么?

Simon郎

产品 研发体系 大厂 互联网公司

使用数据库乐观锁的方式解决数值累加的问题

陈靓-哲露

上线仅7天,GitHub已标星48.4k!原来是阿里巴巴内部《高并发系统设计》

Java redis 编程 架构 面试

极光开发者周刊【No.0723】

极光JIGUANG

C# 三个Timer

喵叔

7月日更

在线条码生成器

入门小站

工具

去阿里应聘P7Java岗,都会被问到哪些问题?

Java架构师迁哥

【Kafka技术专题】「实践操作篇」单机部署实践手册(2.8.0)

洛神灬殇

kafka MQ kafka配置 消息队列 kafka架构

如何在Go 服务中做链路追踪

Rayjun

微服务 Go 语言

线上教育培训机构如何推广自己

石头IT视角

Linux之cal命令

入门小站

Linux

我应该在什么时候使用 Apache Druid

HoneyMoose

根据四个商业指标找到MOT

石云升

读书笔记 用户体验 商业洞察 关键时刻 7月日更

加速基因测序进程,北鲲云高性能计算平台再发力

北鲲云

从鉴黄师到阿里程序员,我成功拿下阿里offer

白亦杨

Java 编程 程序员 计算机

完整视频+源码!十六天带你精通基于Spring Cloud微服务电商项目

Java架构追梦

Java 架构 面试 微服务 SpringCloud

电子商务领域中的OSS、SOA和Web 2.0_SOA_Jean-Jacques Dubray_InfoQ精选文章