PB在富客戶端時代,是一線開發工具。隨着網絡發展,主流架構演進到三層架構的時代,PB拿不出有力的三層架構,已經明顯力不從心,市場份額也江河日下。今天咱們來細數一下PB的三層架構方式及其改進方法。html
這是PB官方首推的三層架構,可是用三句能夠總結,無感的體驗,無奈的價格,無語的速度。git
事實上除了EAServer這個選擇,能夠本身開發服務端,好比topwiz公司的PBNIServgithub
使用BPNI查詢數據,通過本身設計的傳輸格式,使用BLOB將數據傳到客戶端。sql
我也嘗試了Node.js插件的方式來實現,使用JS開發服務端邏輯。可是PB的單線程的模式,註定在速度與資源消耗上不能利人滿意。數據庫
這是PB傳統版本最後推廣的PB.net的實現方式,把PowerScript轉換成JAVA或者C#,在成熟的J2EE和.NET環境中運行。這簡直是官方版的《PB從入門到放棄》,結果我都不想置評。編程
這個方式與方式二的簡易與手動版本,僅適用於大型公司與大型ERP軟件。由於必需要有不少開發人員和服務器支撐才行。json
這是一個PB官方正在推動的方式,下面是REST相關特性的規劃與進展。服務器
相比須要最新的PB2017或PB2019才支持的REST特性,咱們能夠本身開發更簡單易用的接口,在老版本上使用。網絡
接口很簡單,只需更改一行代碼架構
//dw_rest.retrieve() i_thread.of_request(dw_rest, "http://jsonplaceholder.typicode.com/users")
RESTful接口有一個巨大的問題,就是服務器開發的耗費,不能用少許代價進行架構升級。因此我把目光投向了GraphQL。
GraphQL是一種用於 API 的數據查詢語言,至關於REST接口上的SQL,雖然還在演進過程當中,可是已經出現了根據數據庫結構直接生成API的工具。
好比
只須要幾分鐘。下面這個更狠,30秒
還有更自動的
因此使用了GraphQL接口,你只須要更改一句代碼就能夠完成二層到三層架構的轉變。
//dw_qraphql.retrieve() i_thread.of_request(dw_graphql, "http://localhost:3000/?query={ allPosts { id title views User { name } } }")
提供了PB10.5 PB11.5 PB12.5三個版本
<第一部分 Inside完>