SAP 基于 OSGi 的 Java PaaS 实现了对 JavaEE6 的 Web Profile 兼容性

阅读数:924 2013 年 2 月 28 日

话题:语言 & 开发

SAP AG 于 2012 年 12 月 16 日宣布,其基于 Java 的 PaaS 产品——NetWeaver Cloud,已经实现了对 JavaEE6 的 Web Profile 兼容性。

NetWeaver Cloud 运行在 OSGi 上,并以Eclipse Virgo作为 OSGi 容器。该产品包含了一套基于 Eclipse 的 SDK,可用于在云上对应用进行构建,测试及部署。并可以通过基于 web 的控制台,对应用和虚拟基础设施进行监控。

“我们与开源社区一起在 Eclipse Virgo 项目中开发了这项技术,”SAP 技术和创新平台核心组的执行副总裁 Björn Goerke 在某次申明中说道。“这项成就是 SAP 保持与开源社区的持续接触并致力于开放标准的结果。我们的策略是支持和启用新技术,首先是在云上,然后再是我们的定制(on-premise)客户”

该平台本身由 SAP 作为服务提供,而供应商向 InfoQ 说明短期内暂无提供定制使用的计划。但是该运行时环境仍然包含了一个云链接服务,可用于在 SAP NetWeaver Cloud 和定制系统之间建立一个 SSL 隧道。其他运行时服务还包含了:

  1. 通过 JDBC,JPA2.0 和EclipseLink,并采用 Sybase ASE 和供应商的 HANA 内存数据库平台进行持久化。
  2. 通过 Apache Chemistry 开放内容管理互通性服务 (CMIS) 进行企业内容管理
  3. 联邦身份(Identity federation)
  4. 邮件

SAP 计划逐步打造一个围绕 NetWeaver Cloud 的市场和合作伙伴生态圈,就像 Salesforce.com 创建的 Force.com 平台一样,而该产品将与SAP Store进行集成。

InfoQ 与 SAP 云平台的布道师 Matthias Steiner,以及 SAP 云平台的专家 Krasimir Semerdzhiev 进行了交流,以期对该产品进行更多的了解。

开放标准在 Paas 领域中有多重要?

对于提供一个成功的 PaaS 服务来说,标准是个关键因素!据我们观察,到目前为止,大多数移植到云上的解决方案不外乎两种,已经运行在某个定制的服务器上或对已经存在的解决方案或开发库进行了大量的复用。在这种情况下,两个主要被使用的开发栈是 Java EE 和 Spring。而在我们这边,对它们都做了支持。此外,一个基于标准的 PaaS 极大的降低了新人进入该平台的门槛,因为他们可以使用已知的框架和开发库而无需去熟悉某些专有技术。这同样极大加快了投放市场的速度。最后,开放标准和开源对防止供应商的封锁(lock-in)是极其关键的,这对公司考虑是否采用云计算来说非常重要。企业不仅仅关心如何开始进入云计算,他们同样关心是否能保持自己对数据的掌控,并是否可以在一定时间后根据需要迁移至其他的供应商或平台。

开发者们可以做些什么?仅仅是 Java EE 6 Web profile 吗?

相比于其他供应商服务,SAP NetWeaver Cloud 提供了无限制的 Java 支持。我们不会对包名创建黑名单或做出禁止,因此我们没有以任何方式限制 Java 语言或标准 Java 包。从全球合作伙伴实施解决方案,门户聚合网站和业务流程分段到简单的小打小闹以检测可能性,我们看到人们实现了很多不同的场景。Java EE 6 Web Profile 是我们平台的基础。在这之上,我们提供了很多增值服务,包括移动性(mobility),云,定制集成和分析等等。我们拥有永久免费的开发者账号,可以通过云开发者中心获取。然而,除了技术能力,我们希望提供一个整体平台,这也意味着我们将对解决方案供应商开发的应用进行变现(monetization)。为了达到这个目的,我们将提供成为 NW Cloud 认证(www.sapcloudappspartnercenter.com)的机会并通过 SAP Store 将解决方案出售给更广大的 SAP 客户。

另外,我们鼓励人们带来他们自己的基于 JVM 的运行时。我们已经有用户在平台上运行 JRuby, Scala 和 JavaScript 应用。虽然我们不会做任何事来显式的启用这些功能,但是我们会对这方面的努力给予支持。因为我们信奉 Bring Your Own Language (BYOL) 范式,只要我们有一个一致的基础来运行它。(译者注:Bring Your Own Language:语言自备,即 SAP 欲将平台做成语言无关,即只要是基于 JVM 的语言,都将得到支持)

HAMA 是什么?

HANA 是 SAP 新型的内存技术数据库,它同时支持行存储和列存储能力,允许在单个数据库中运行 OLAP 和 OLTP 场景。它从设计一开始就针对并行化进行了优化,允许实时数据处理和在次秒级(sub-second)分析数十亿的记录。无论是对超过 70 亿地球居民进行实时分析还是即时概览纽约市中心所有公寓的能源功耗——已不再是技术问题。

它只适用于那些将 SAP 集成并作为后端的人吗,还是可以将其作为独立的 PaaS 服务提供?

都可以!我们希望提供一个平台来支持更加多样化的场景。当然,后端集成能力将会引起我们当前客户群的兴趣,然而对于 SAP NW Cloud,我们明确的目标是让更多的新人加入我们的生态圈。由于实际上我们都基于了开放标准,任何基于 Java 的场景将可以运行在我们的平台之上。通过 SAP Store,解决方案供应商可以立即访 问我们现有的客户群以向他们出售应用。

SAP 为什么会决定基于 OSGi 之上来构建 PaaS?

这是一个历经多年而漫长的故事。当时我们意识到需要一个基于标准的,模块化的,可伸缩的轻量级容器来支持在 SAP 内部或外部的应用开发。我们选择了 OSGi,因为它提供了所有我们需要的这些特性。我们使用 OSGi 作为所有平台构建模块的基础,工作的主要内容是声明式服务(Declarative Services)。另外,它给我们带来了模块依赖的概览,对变更产生影响具有更好的可预测性,以及标准配置机制等等。

SAP 为什么会选择 Virgo 作为 OSGi 容器?

在项目早期,我们运行在简单的 Eclipse Equinox 之上。OSGi 似乎是最好的方式,所以这是一个有意识的决定。在对不同的运行时环境进行可伸缩性和灵活性评估之后,我们最终开发了基础设施以完成对日志的聚合,更好的跟踪以及 bundle 的故障排除等。此外我们意识到并非只有我们在致力于这些挑战。我们密切关注由 SpringSource 发起的对于 Eclipse 中 Virgo 项目的最初贡献,并决定在一开始就加入这个队伍并参与进来。在那时并没有真正的可选方案可以提供 Tomcat 的简易性以及管理基于 OSGi 的大型模块化软件项目的能力。与项目提交者的初步讨论是非常具有前瞻性和建设性的,我们很快调整了优先级以及行进的方向。这就是我们如何取得目前这个状态的原因——SAP 是 Eclipse Virgo 项目背后的主要贡献者之一。SAP NetWeaver Cloud 基础架构及应用中的很多部件都是由该项目提供。我们为曾经所做的选择真正的感到高兴,因为我们最终相信,通过开源项目与其他各方合作是一种创新,同时也促成了未来的合作伙伴关系。毫不意外——我们已经可以看到当不同的工具供应商与 Eclipse Virgo 集成后所带来的利益。因此,随后与 NetWeaver Cloud 的集成将变得更加容易实现。

如何将对象持久化到数据库?

SAP NetWeaver Cloud 提供了若干存储选项。其中之一就是非结构化存储,用于保存文件、文档以及附加的元数据。与此相对,我们也提供基于 SAP HANA 和 MaxDB 的关系型持久化。Sybase ASE 也已经快接近发布了。所有这些都通过一个持久化服务进行消费,这将允许开发者任意选用简单的 JDBC 或 JPA 向数据库存储数据。

对应的数据库模式会被自动创建,受到保护并预分配给应用。可以认为这就是“数据库即服务(DB-as-a-service)”,开发者完全不需要为此操心。他们唯一需要做的就是在他们的 web.xml(或者是相应的注解)中定义一个数据源的引用。再次强调,我们会继续坚持好已经建立的标准,让它变得更加简单,并且尽可能对应用开发者保持透明。

SAP NetWeaver Cloud 的免费开发者版本可以通过SAP NW Cloud 开发者中心进行访问,可用于对云应用的开发。这方面可以通过论坛,博客和学习指南获得更多的信息。

原文链接:SAP's OSGi-Based Java PaaS Achieves Java Enterprise Edition 6 Web Profile Compatibility


感谢对本文的审校。