發(fā)布于:2021-02-11 00:00:34
0
234
0
Oracle在標(biāo)題為“ Avatar Persistence”(Avatar 的持久性)的標(biāo)題下,引入了一個(gè)模型存儲(chǔ)API,該模型可以使用統(tǒng)一的API(JSON)將對(duì)象保存在不同的數(shù)據(jù)庫(kù)中。這些數(shù)據(jù)庫(kù)可以是關(guān)系數(shù)據(jù)庫(kù)或非關(guān)系數(shù)據(jù)庫(kù)(NoSQL)。
由于Avatar持久性基于JPA(使用EclipseLink實(shí)現(xiàn)),因此只能通過(guò)JDBC驅(qū)動(dòng)程序與其他數(shù)據(jù)庫(kù)進(jìn)行通信。以下示例說(shuō)明了新的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數(shù)據(jù)庫(kù),MySQL和Derby數(shù)據(jù)庫(kù)的JDBC通信已測(cè)試成功。在NoSQL方面,已經(jīng)支持Oracle NoSQL數(shù)據(jù)庫(kù)。MongoDB驅(qū)動(dòng)程序?qū)⒑芸斐霈F(xiàn)。
此外,作為小禮物,已為用戶提供了模型存儲(chǔ)API JDBC調(diào)用的異步處理。由于JDBC阻止,Avatar封裝了調(diào)用并將結(jié)果返回為Promise。
客戶端框架和JMS
完全刪除了使用JSF表達(dá)式語(yǔ)言提供舒適綁定的客戶端框架以及基于jQuery UI的呈現(xiàn)窗口小部件。從一開(kāi)始,該框架就不是一個(gè)成熟的解決方案。
在用戶界面方面,甲骨文在一年前表示,用戶可能會(huì)退回到他們選擇的框架(例如Angular,Knockout,Backbone,ember等),因?yàn)椤皟H”服務(wù)器和服務(wù)器之間正在進(jìn)行基于協(xié)議的通信。客戶端和客戶端組件不依賴服務(wù)器。曾經(jīng)的“罐頭”現(xiàn)在變成了“必須”,其結(jié)果是整個(gè)客戶端庫(kù)都消失了。
JMS處于類似情況。已經(jīng)有一個(gè)集成的解決方案,它將同步JMS調(diào)用(JMS 1.1 / Java EE 6規(guī)范)打包在一個(gè)異步調(diào)用中–就像JDBC層一樣。但是,由于取消了Application Server作為運(yùn)行時(shí)環(huán)境,因此JMS環(huán)境不再可用。但是,Oracle希望根據(jù)他們自己的內(nèi)部t3協(xié)議開(kāi)發(fā)一個(gè)遠(yuǎn)程瘦客戶機(jī),以便使用WebLogic應(yīng)用服務(wù)器訪問(wèn)JMS資源。
REST
由于取消了應(yīng)用程序服務(wù)器,REST,推送和套接字服務(wù)也遭受了損失。Oracle聲稱提供反饋的大多數(shù)用戶都喜歡使用基于Node.js構(gòu)建的實(shí)現(xiàn)并從那里定義服務(wù)。對(duì)于REST服務(wù),它可以是Express包,對(duì)于套接字服務(wù)Node-WS和Server-Sent事件,可以是Node Package Manager(NPM)中的相應(yīng)包。
希望我們很快就會(huì)知道,Avatar 2.0將會(huì)是什么樣子。源代碼尚不可用,但是應(yīng)在“幾周到幾個(gè)月內(nèi)”將其發(fā)布在項(xiàng)目頁(yè)面上。到目前為止,“舊” Project Avatar仍在此處可見(jiàn)。Oracle希望從社區(qū)本身獲得大量反饋。為此,請(qǐng)確保注冊(cè)郵件列表。
作者介紹
熱門(mén)博客推薦