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