当前位置:首页 > News > 正文
Comments Off on 拥抱开源,Oracle 将更加开放 Java EE 和 ODPI-C

拥抱开源,Oracle 将更加开放 Java EE 和 ODPI-C

近日,我们从 Oracle 官方博客获悉,随着 Java EE 8 的可喜进展,接下来将考虑如何让 Java EE 更开放、更灵活、更加贴近开源社区。由此可推断,Oracle 要移交 Java EE 的主导权,同时希望开源社区有更多力量参与进来,共同促进 Java EE 发展。

 — 01 —
更加开放的 Java EE

以下是博客译文,供参考。

我们在 Java EE 8 上持续取得长足进展,规范工作也已接近尾声,参考实现也预计会在今夏末交付。随着 Java EE 8 和 JavaOne 2017 交付会议的临近,我们相信是时候重新思考如何不遗余力引领 Java EE,使其成为业界的标杆,让它变得更加敏捷,能够更及时地响应业界的技术需求。

Java EE 已经取得巨大的成功,各种实现占据了强有力的市场份额,各种技术被广泛采用,拥有着一个庞大的框架和工具生态系统,无数个应用程序正在给企业和个人带来价值……尽管 Java EE 已经处于开源模式,并由 Java EE 社区在主导开发,但整个流程仍然不够敏捷和灵活,或者说不够开放,如果跟其他的开源社区相比,还有很大差距。我们希望做得更好。

我们正在讨论如何在 Java EE 8 交付之后进一步改进 Java EE 开发过程。我们认为,将 Java EE 技术(包括参考实现和测试兼容性工具包)向更广大的社区开放是下一步正确的决定,这样便于让流程更加敏捷,实现更灵活的许可,并改变监管制度。 我们计划与开发者社区、许可证持有者以及一些开源基金会探讨这种可能性,是否可以朝这个方向推进 Java EE。

我们打算满足对开发商、终端用户、客户、技术消费者、技术贡献者、合作伙伴和许可证持有者的现有承诺,继续支持现有的 Java EE 实现和 Java EE 8 的未来实现。此外,还会参与促进 Java EE 技术演化的工作。 我们相信,一个更加开放、不依赖所谓的平台主导者的单个厂商的流程将会促进更好的创新,这对整个社区来说才是最有益的。

如果您想在此方向提供意见或建议,请发送电子邮件至 feedback@javaee.groups.io,我们也会随时更新进展。”

博客原文链接:https://blogs.oracle.com/theaquarium/opening-up-java-ee
译文如有不合适之处,请以原文为准。

— 02 —
开源库驱动强大的 Oracle 数据库应用程序



Oracle Database Programming Interface for C(ODPI-C)的生产级版本现已放在了代码托管平台 GitHub(https://github.com/oracle/odpi)上,该版本让广大 C 和 C++ 开发人员可以更便捷地访问 Oracle 数据库。

ODPI-C:

  • 以更简洁的方式为 C 和 C ++ 开发人员开放一个 C API,便于为 Oracle 数据库编写应用程序;
  • 针对语言接口和开发速度很重要的部分应用程序,特殊情况下还有一些不需要的 Oracle 特性;
  • 已经被用于 Python,Node.js,Go 和 Rust 等接口以及自定义应用程序;
  • 使用较少的代码可以实现更快的应用程序执行;
  • 简化内存和资源管理,特别是“绑定”和“定义”数据时,旨在使用一种参考计数机阻止应用程序破坏使用中的资源;
  • ODPI-C 源代码现已公开发布在 GitHub,采用 Apache 2.0 和 Oracle UPL 两种许可证,可直接嵌入到接口或其他项目的代码库中。

ODPI-C 是 Oracle Call Interface 的封装器,而 OCI 是面向 Oracle 数据库的主要的 C API,在产品和应用程序中已经广泛使用,因此具有稳定、快速、可扩展和可支持等特性,并且非常灵活,为开发人员的大量使用提供了精准的控制操作。

这个开源封装器主要针对语言接口的开发人员,他们是在脚本语言的类型系统和语义范围内编程的。这些语言通常会通过跨平台的共同 API 来向用户展示简化的数据访问。因此,ODPI-C 可以为通用数据访问提供易于使用的功能,同时仍然允许使用 Oracle 数据库的强大功能。

当然,ODPI-C 不仅限于语言接口的使用。由于它提供了简单的编程体验,如果 ODPI-C 具有访问 Oracle 数据库所需的功能,就可以将其添加到自己的项目中。

这个项目是 Oracle Database Data Access 团队的杰作,该团队负责维护 OCI 及面向 Oracle 数据库的额外 API。ODPI-C 领导人是开发人员安东尼·图宁加(Anthony Tuininga),他还领导开发面向 Pytho 的 cx_Oracle 接口这项工作。

Oracle 感谢所有给予 ODPI-C 测试版本反馈的用户。

ODPI-C 特性

目前看来,ODPI-C 功能列表包含了大家期望的所有管理连接并有效执行 SQL 和 PL / SQL 的需求。 它还具有诸如 SQL 和 PL / SQL 对象支持,可滚动游标,高级队列和连续查询通知等可贵之处。 ODPI-C 进行额外的验证,并具有弹性的参考计数机制,以帮助阻止占用使用中 OCI 资源的应用程序。此外,编写线程模式应用程序更容易。

此初始版本中的 Oracle 功能列表(无特定顺序):

  • 11.2、12.1 和 12.2 Oracle 客户端支持
  • 9.2 及更高版本的 Oracle 数据库支持(取决于 Oracle Client 版本)
  • SQL 和 PL / SQL 执行
  • 字符数据类型(CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB,LONG)
  • 数字数据类型(NUMBER,BINARY_FLOAT,BINARY_DOUBLE)
  • 日期、时间戳、间隔
  • 二进制类型(BLOB,BFILE,RAW,LONG RAW)
  • PL / SQL 数据类型(PLS_INTEGER,BOOLEAN,Collections,Records)
  • JSON
  • 用户定义的类型
  • REF CURSOR,嵌套光标,隐式结果集
  • 数组提取
  • 数组绑定/执行
  • 会话池,连接验证
  • 独立连接
  • 数据库驻留连接池(DRCP)
  • 外部认证
  • 语句缓存
  • 端到端跟踪,中间层认证和审计
  • 基于版本的重新定义
  • 可滚动光标
  • DML 返回
  • 特权连接支持(SYSDBA,SYSOPER,SYSASM,PRELIM_AUTH)
  • 数据库启动/关闭
  • 会话标记
  • 代理认证
  • 批量错误
  • 数组 DML 行计数
  • 查询结果缓存
  • 应用连续性
  • 查询元数据
  • 密码更改
  • 两阶段承诺
  • 连续查询通知
  • 高级排队

如果你想无需修改 ODPI-C 代码来访问其他 OCI 功能,有一个调用来获取底层 OCI服务内容控制。

ODPI-C 应用程序可以利用不需要 API 访问的 OCI 功能,例如启用语句缓存自动调优的 oraaccess.xml 配置。 同样,如大家所料,由 SQL 和 PL / SQL 控制的 Oracle 数据库功能(如分区)也可以在应用程序中使用。

它与数据库之间的联系由 Oracle 的网络来决定,因此可以轻松配置加密通信和 LDAP 等功能。

使用 ODPI-C

有关详细说明,请参阅 ODPI-C 安装:https://oracle.github.io/odpi/doc/installation.html

ODPI-C 代码可以包含在 C 或 C ++ 应用程序中,并像任何 OCI 应用程序一样编译。如果使用 ODPI-C 作为共享库,可以使用 Makefile。在尝试时,可以编译这里的示例程序(https://github.com/oracle/odpi/tree/master/samples);这些也展示了一部分 ODPI-C 特性,可以查看 https://github.com/oracle/odpi/tree/master/test.

ODPI-C 开源之后可以轻松构建和分布应用程序代码或二进制文件,在编译时不再需要OCI 头文件及库文件,而应用程序只在运行时需要标准的 Oracle 客户端库文件。

Oracle 客户端库必须单独安装,且版本要求是11.2、12.1 或 12.2,这方便应用去连接 Oracle 9.2 及以上版本(取决于客户端版本)。

在运行时 ODPI-C 利用每个支持平台上共享库加载机制加载 Oracle 客户端库,这使得使用 ODPI-C 代码只能构建一次,然后使用当时可用的 Oracle Client 库运行。

Oracle 客户端库不仅用在免费易于安装的 Oracle Instant Client "Basic" 和"Basic Light" 软件包中,任何 Oracle 数据库安装或完整的 Oracle Client 安装都可以使用。

ODPI-C 已经在 Windows,macOS 和 Linux 上进行了测试,在其他平台(如 AIX 和 Solaris x64)上的编译是可行的,但尚未完全测试。

封装

ODPI-C 为 Oracle 数据库提供了一个 API,可实现功能性的、灵活的应用程序和脚本语言 API 开发。

ODPI-C 目前已经在 Python cx_Oracle 6 和 Node.js node-oracledb 2 接口上应用,第三方开发人员也启用了 Go and Rust,这些都是 ODPI-C 方便且强大的实例。同时,我们也希望从 Oracle 内部 ODPI-C 接入的大量应用程序开发项目中获得积极的反馈。

ODPI-C 还将在数据库技术方向继续完善, 脚本语言驱动程序同样会有功能的增强,并从通用 ODPI-C 代码库中汲取一些精华。

在2017年未来的日子里,希望大家对我们为开发者和脚本语言量身定制的发展方向和计划满怀期待!

ODPI-C 参考文档
主页:https://oracle.github.io/odpi/
代码:https://github.com/oracle/odpi
文档:https://oracle.github.io/odpi/doc/index.html
问题报告并讨论:https://github.com/oracle/odpi/issues

博客原文链接:https://blogs.oracle.com/opal/open-source-library-drives-powerful-oracle-database-applications
译文如有不合适之处,请以原文为准。

本文章由 admin 于2018年01月31日发布在News分类下,
转载请注明:拥抱开源,Oracle 将更加开放 Java EE 和 ODPI-C-中国 Oracle 用户组

好文章就要一起分享!

更多

评论已关闭!