zoukankan      html  css  js  c++  java
  • 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完>

  • 相关阅读:
    广域网(ppp协议、HDLC协议)
    0120. Triangle (M)
    0589. N-ary Tree Preorder Traversal (E)
    0377. Combination Sum IV (M)
    1074. Number of Submatrices That Sum to Target (H)
    1209. Remove All Adjacent Duplicates in String II (M)
    0509. Fibonacci Number (E)
    0086. Partition List (M)
    0667. Beautiful Arrangement II (M)
    1302. Deepest Leaves Sum (M)
  • 原文地址:https://www.cnblogs.com/windfic/p/10338419.html
Copyright © 2011-2022 走看看