PowerBuilder編程新思惟3:適配(三層架構與GraphQL)

PowerBuilder編程新思惟3:適配(三層架構與GraphQL)

PB在富客戶端時代,是一線開發工具。隨着網絡發展,主流架構演進到三層架構的時代,PB拿不出有力的三層架構,已經明顯力不從心,市場份額也江河日下。今天咱們來細數一下PB的三層架構方式及其改進方法。html

 

PB三層架構方式一:EAServer

 這是PB官方首推的三層架構,可是用三句能夠總結,無感的體驗,無奈的價格,無語的速度。git

事實上除了EAServer這個選擇,能夠本身開發服務端,好比topwiz公司的PBNIServgithub

使用BPNI查詢數據,通過本身設計的傳輸格式,使用BLOB將數據傳到客戶端。sql

我也嘗試了Node.js插件的方式來實現,使用JS開發服務端邏輯。可是PB的單線程的模式,註定在速度與資源消耗上不能利人滿意。數據庫

 

PB三層架構方式二:代碼轉換

 這是PB傳統版本最後推廣的PB.net的實現方式,把PowerScript轉換成JAVA或者C#,在成熟的J2EE和.NET環境中運行。這簡直是官方版的《PB從入門到放棄》,結果我都不想置評。編程

 

PB三層架構方式三:WebService

這個方式與方式二的簡易與手動版本,僅適用於大型公司與大型ERP軟件。由於必需要有不少開發人員和服務器支撐才行。json

 

PB三層架構方式四:RESTful接口

這是一個PB官方正在推動的方式,下面是REST相關特性的規劃與進展。服務器

 

 相比須要最新的PB2017或PB2019才支持的REST特性,咱們能夠本身開發更簡單易用的接口,在老版本上使用。網絡

 接口很簡單,只需更改一行代碼架構

//dw_rest.retrieve()
i_thread.of_request(dw_rest, "http://jsonplaceholder.typicode.com/users")

PB三層架構方式五:GraphQL接口

 RESTful接口有一個巨大的問題,就是服務器開發的耗費,不能用少許代價進行架構升級。因此我把目光投向了GraphQL。

GraphQL是一種用於 API 的數據查詢語言,至關於REST接口上的SQL,雖然還在演進過程當中,可是已經出現了根據數據庫結構直接生成API的工具。

 好比

  • Prisma - Turn your database into a GraphQL API. Prisma lets you design your data model and have a production ready GraphQL API online in minutes.

 只須要幾分鐘。下面這個更狠,30秒

  • json-graphql-server - Get a full fake GraphQL API with zero coding in less than 30 seconds, based on a JSON data file.

 還有更自動的

  • tuql - Automatically create a GraphQL server from any sqlite database.

因此使用了GraphQL接口,你只須要更改一句代碼就能夠完成二層到三層架構的轉變。

//dw_qraphql.retrieve()
i_thread.of_request(dw_graphql, "http://localhost:3000/?query={ allPosts { id title views User { name } } }")

 

源碼: PowerPlumeDemoV0.3.3.rar

 提供了PB10.5 PB11.5 PB12.5三個版本

<第一部分 Inside完>

相關文章
相關標籤/搜索