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