Oracle提出:Avatar 2.0 –下一步呢?第二部分-Avatar 持久性

发布于:2021-02-11 00:00:34

0

188

0

Oracle Avatar javascript java

Oracle在标题为“ Avatar Persistence”(Avatar 的持久性)的标题下,引入了一个模型存储API,该模型可以使用统一的API(JSON)将对象保存在不同的数据库中。这些数据库可以是关系数据库或非关系数据库(NoSQL)。

由于Avatar持久性基于JPA(使用EclipseLink实现),因此只能通过JDBC驱动程序与其他数据库进行通信。以下示例说明了新的Model Store API的用法:

// define a connection to a data store var store = avatar.newStore(‘mysql’, {     host: 'localhost',     port: 3306,     database: 'test',     username: 'root' });   // define object 'Family' var Family = avatar.newModel('family', {         "name" : {             type : "string",             primary : true         },         "description" : "string"     }); // define object 'Product' var Product = avatar.newModel('product', {         "name" : {             type : "string",             primary : true         },         "price" : "number",         "quantity" : "integer"     });   // create a relation between the two objects Family.hasMany(Product, {     as : 'products',     foreign : 'family' });   // bind the objects to the store store.bind(Family, Product);   // create an product object and save it to the store store.connect(function() {   Product.create({     name: 'myProduct',     price: 1.00,     quantity: 2,   }, function(err, product) {     console.log(JSON.stringify(product));     store.disconnect(function() {       // done     });   }); });

到目前为止,与Oracle数据库,MySQL和Derby数据库的JDBC通信已测试成功。在NoSQL方面,已经支持Oracle NoSQL数据库。MongoDB驱动程序将很快出现。

此外,作为小礼物,已为用户提供了模型存储API JDBC调用的异步处理。由于JDBC阻止,Avatar封装了调用并将结果返回为Promise。

客户端框架和JMS

完全删除了使用JSF表达式语言提供舒适绑定的客户端框架以及基于jQuery UI的呈现窗口小部件。从一开始,该框架就不是一个成熟的解决方案。

在用户界面方面,甲骨文在一年前表示,用户可能会退回到他们选择的框架(例如Angular,Knockout,Backbone,ember等),因为“仅”服务器和服务器之间正在进行基于协议的通信。客户端和客户端组件不依赖服务器。曾经的“罐头”现在变成了“必须”,其结果是整个客户端库都消失了。

{xunruicms_img_title}

JMS处于类似情况。已经有一个集成的解决方案,它将同步JMS调用(JMS 1.1 / Java EE 6规范)打包在一个异步调用中–就像JDBC层一样。但是,由于取消了Application Server作为运行时环境,因此JMS环境不再可用。但是,Oracle希望根据他们自己的内部t3协议开发一个远程瘦客户机,以便使用WebLogic应用服务器访问JMS资源。

REST

由于取消了应用程序服务器,REST,推送和套接字服务也遭受了损失。Oracle声称提供反馈的大多数用户都喜欢使用基于Node.js构建的实现并从那里定义服务。对于REST服务,它可以是Express包,对于套接字服务Node-WS和Server-Sent事件,可以是Node Package Manager(NPM)中的相应包。

希望我们很快就会知道,Avatar 2.0将会是什么样子。源代码尚不可用,但是应在“几周到几个月内”将其发布在项目页面上。到目前为止,“旧” Project Avatar仍在此处可见。Oracle希望从社区本身获得大量反馈。为此,请确保注册邮件列表。