写点什么

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:191840
用户头像

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

关注

评论

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

构建AI原生的智能计算基础设施,百度百舸·AI异构计算平台2.0发布

Baidu AICLOUD

模型训练 异构计算 智算中心

有了QQ和微信,企业是否还需要另外一个即时通讯工具?

BeeWorks

SQL 嵌套 N 层太长太难写怎么办?

jiangxl

数据湖统一元数据与权限

阿里云大数据AI技术

大数据 企业号九月金秋榜

FreeRTOS记录(四、FreeRTOS任务堆栈溢出问题和临界区)

矜辰所致

堆栈溢出 临界区保护 FreeRTOS 9月月更

高性能数据访问中间件 OBProxy(四):一文讲透连接管理

OceanBase 数据库

MySQL不同隔离级别,都使用了什么锁?

Java全栈架构师

Java MySQL 数据库 程序员 程序人生

MobTech秒验 Android端如何在授权界面添加短信登录按钮

MobTech袤博科技

android sdk

红象云腾(Redoop Enterprise)V9 与龙蜥(Anolis OS)8 完成兼容认证

OpenAnolis小助手

大数据 开源 适配 龙蜥操作系统 红象云腾

Angular tsconfig.json 文件里的 paths 用途

汪子熙

typescript 前端开发 angular SAP UI5 9月月更

一文带你认知定时消息发布RocketMQ

华为云开发者联盟

云计算 后端 华为云 企业号九月金秋榜

Chrome操作指南——入门篇(一)

Augus

Chrome开发者工具 9月月更

如何快速的部署一个静态页面到 Web3.0 上?5 分钟解密

掘金安东尼

前端 Web3.0 9月月更

openGauss内核分析:SQL by pass & 经典执行器

华为云开发者联盟

数据库 后端 企业号九月金秋榜

NFT开发公司带你了解目前NFT开发属于什么状态

开源直播系统源码

区块链 NFT 数字藏品

微信小程序挖坑汇总

Shine

微信小程序

不容错过的技术盛宴,4场全是 eBPF 技术干货,今天见 | 第 44-47 期

OpenAnolis小助手

Linux 开源 ebpf sig 龙蜥大讲堂

NEO FANTASY:回合制策略游戏在ACGN文化与GameFi中的新探索 09-07

鳄鱼视界

设计模式的艺术 第四章简单工厂设计模式练习(使用简单工厂模式设计一个可以创建不同几何形状(如圆形、方形和三角形等)的绘图工具,每个图形都具有绘制draw()和擦除erase()两个方法,要求在绘制不支持的几何图形时,提示UnSupportedShape)

代廉洁

设计模式的艺术

Python图像处理丨认识图像锐化和边缘提取的4个算子

华为云开发者联盟

Python 人工智能 图像处理 企业号九月金秋榜

企业即时通讯IM能给移动办公带来哪些便利?

BeeWorks

[Go WebSocket] 单房间的聊天室

HullQin

Go golang 后端 websocket 9月月更

数据治理(十):Atlas案例演示

Lansonli

数据治理 9月月更

Servent

喜羊羊

9月月更

数字人技术在直播场景下的应用

百度Geek说

人工智能 直播 企业号九月金秋榜

从采集到存储:时序数据库到底怎么处理时间?

Apache IoTDB

IoTDB Apache IoTDB

VUE 如何格式化数字

HoneyMoose

【从零开始学docker】一、Docker的安装,启动以及工作原理

泡泡

云计算 容器 云原生 9月月更

阿里云如何基于边缘云设计终端云化场景的架构?

阿里云CloudImagine

边缘技术 边缘云

Java进阶(九)正则表达式

No Silver Bullet

Java 正则表达式 9月月更

【文本检测与识别-白皮书】第一章:技术背景

合合技术团队

文字识别 文本 人工智能’

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