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


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

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

 

PB三層架構方式一:EAServer

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

事實上除了EAServer這個選擇,可以自己開發服務端,比如topwiz公司的PBNIServ

使用BPNI查詢數據,經過自己設計的傳輸格式,使用BLOB將數據傳到客戶端。

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

 

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

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

 

PB三層架構方式三:WebService

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

 

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完>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM