写点什么

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

  • 2013-02-28
  • 本文字数:3078 字

    阅读完需:约 10 分钟

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


感谢对本文的审校。

2013-02-28 05:191939
用户头像

发布了 52 篇内容, 共 23.9 次阅读, 收获喜欢 5 次。

关注

评论

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

Node.js 模块化你所需要知道的事

vivo互联网技术

大前端 nodejs Node

今日随想

Nydia

算法喜刷刷

Kylin

算法 3月日更 21天挑战

正则表达式.04 - 引用

insight

正则表达式 3月日更

看完张一鸣近十年微博,我总结了这些成长特质

邴越

字节跳动 张一鸣 互联网 职场 抖音

2021年最新Redis面试题汇总

架构精进之路

redis 七日更 3月日更

网络知识一箩筐:IP地址划分的那些知识点

华为云开发者联盟

网络 虚拟私有云 子网 IP地址

《接口测试入门》 学习笔记

有梦想的tester

七日更 3月日更

《精通比特币》学习笔记(第五章)

棉花糖

区块链 读书笔记 3月日更

CR量化交易APP开发|CR炒币机器人软件系统开发

系统开发

Hadoop 核心-HDFS的API详解

五分钟学大数据

大数据 hadoop hdfs 28天写作 3月日更

Apache Sqoop中最重要的核心概念-导入导出

大数据技术指南

大数据 sqoop 28天写作 3月日更

为什么我们开发 San 项目时要用 CLI?

百度开发者中心

【动态规划/总结必看】从一道入门题与你分享关于 DP 的分析技巧 ...

宫水三叶的刷题日记

面试 算法 LeetCode

Java8 Stream 数据流,大数据量下的性能效率怎么样?

xcbeyond

Java java8 Stream<T> 3月日更

事务消息应用场景、实现原理与项目实战(附全部源码)

中间件兴趣圈

RocketMQ 实战 消息中间件 事务消息

(28DW-S8-Day17) 讲故事能力

mtfelix

28天写作 讲故事能力 复述能力

落袋为安——前景理论之确定性

Justin

心理学 28天写作 游戏设计

小赌怡情——激励不确定性效应

Justin

心理学 28天写作 游戏设计

MindSpore:基于本地差分隐私的 Bandit 算法

华为云开发者联盟

算法 强化学习 mindspore Bandit 隐私

币宽量化交易软件开发|币宽炒币机器人系统APP开发

系统开发

vm

梅花鹿鹿

28天写作 3月日更

进步

lenka

3月日更

不一样的软件们——GitHub 热点速览 v.21.10

HelloGitHub

数据库 GitHub 开源

鼎昂量化交易系统APP开发|鼎昂炒币机器人软件开发

系统开发

币神量化交易系统开发|币神量化交易APP软件开发

系统开发

如何在 Python 中清屏

HoneyMoose

Elasticsearch Dynamic Mapping

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

3-8 工作日志

技术骨干

越来越受欢迎的Vue想学么,90后小姐姐今儿来教你

华为云开发者联盟

算法 Vue 大前端 框架 组件

Python 数据类型

HoneyMoose

SAP基于OSGi的Java PaaS实现了对JavaEE6的Web Profile兼容性_语言 & 开发_Charles Humble_InfoQ精选文章