[GAS] GAS 应用服务器的启动与 demos.html

GAS 全称为Genero Application Server,是一个将Genero应用程序与网页连结起来的工具,本篇主要在介绍启动Server上的附属元件,如程序范例介绍网页demos (By GBC) / 服务器数值监控。
https://ithelp.ithome.com.tw/upload/images/20210906/2005116951qxWmJOUv.png
GAS 2.50的启动页面

Genero 3.20 版本後,增加 GIP(身分识别Genero Identity)、Deployment Console (应用程序部署工具),将另外介绍配置方式。
https://ithelp.ithome.com.tw/upload/images/20210906/20051169y5wB8qyTzA.png
GAS 3.20 的启动页面

GAS 用途与原理

以下摘录 FourJs 对於 GAS 套件的功能简介:
(https://4js.com/online_documentation/fjs-gas-manual-html/#gas-topics/c_gas_what_is.html )

  • 管理前端和 DVM 之间的通信
    GAS 在各种前端和运行应用程序的动态虚拟机 (DVM,fglrun )之间创建关系。
  • 嵌入 Web 服务器
    用嵌入Web 服务器 (如apache/ IIS),用於处理来自 Internet 的请求 。它包括调度和代理。Web 服务器和 GAS 之间的通信由调度员 (dispatch) 处理。
  • 简化应用程序部署
    GAS 通过处理与应用程序的连接来简化部署。对於 Web 类型的应用程序,客户端无需安装或配置软件;只需浏览器即可访问该应用程序 (指2.50板前的GDC ActiveX套件或 GBC套件)。
  • 为客户提供 Genero Web Services (GWS)
    GAS 可以配置为纯 Web Service (GWS)。
    https://ithelp.ithome.com.tw/upload/images/20210906/20051169bW2ejdxfE2.png

GAS可支援两种方式提供服务
https://ithelp.ithome.com.tw/upload/images/20210906/200511696V9sqdJzEv.png

直通模式:httpdispatch

可直接将 as.xcf 复制到个人路径下进行修改
https://ithelp.ithome.com.tw/upload/images/20210906/200511695FN2mTJ5rG.png
启动後,即可使用 IP:6394/demos.html 确认是否完成启动
https://ithelp.ithome.com.tw/upload/images/20210906/20051169gDawD3d3vG.png

发生Failed to bind socket 错误
https://ithelp.ithome.com.tw/upload/images/20210906/20051169YYYh12fJxY.png
此为 port 已有其他服务占用,需要对as.xcf进行修改:找出 port ,并将预设值从6300调整为其他数值,如16300。范例如下:
https://ithelp.ithome.com.tw/upload/images/20210906/20051169g8bW7y6bYQ.png
完成再执行 httpdispatch (as.xcf完整配置可参考设定说明)

发生 Failed to initialize administrative service. Check TCP_ADMIN_PORT entry in as.xcf. 错误
此为 3.20 以上版本须注意事项,需调开管理用的通讯埠。请依照指示调开port即可

崁入模式:fastcgidispatch

以下设定在 T 系列ERP产品中均已完成配置,使用ip/wtopprd 路径映射到 port 6394
可在 Apache 2.4的配置 /etc/httpd/conf/httpd.conf 中增加下列设定:

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#Apache 2.4须使用fastcgi与Genero进行连结

<IfModule proxy_fcgi_module>
  # Unescapes the path component of the request URL 
  SetEnvIf Request_URI . proxy-fcgi-pathinfo=unescape
  #上述设定为Genero 3.X 以上版本需要 (T100 V3以上版本),为确保可正确解码含空格的 URL
  # Maps the fastcgi server to the GAS URL space
  ProxyPass /gas/ fcgi://localhost:6394/ enablereuse=on timeout=100
  #上述设定在转换http路径为 Genero GAS对应路径。若起多组时需指定不同路径对应
  #另外可设定 Redirect 或 Alias 方便用户操作
</IfModule>

资料参考来源: https://4js.com/online_documentation/fjs-gas-manual-html/#gas-topics/t_gas_config_mod_proxy_fcgi.html

崁入时另外可以搭配 nginx / Lighttpd,微软 IIS 则需搭配专属的 isapidispatch。相关配置可参阅原厂配置说明 (参考上方资料来源)

接下来介绍两个服务

Genero Demos

https://ithelp.ithome.com.tw/upload/images/20210906/200511699eSmHjniCZ.png
在 demos.html 中主角即为 Genero demo网页。在此处 FourJs 提供各式参考范例码。
点选後会在浏览器中执行DEMO程序,内有许多范例程序码可提供参考。
https://ithelp.ithome.com.tw/upload/images/20210906/20051169B8dVfwlvWI.png
若需要程序原始码,可以在fgl 套件下的 demo 路径看到这一整套的范例代码。包含

  • Language features 列出各种资料型态的处理样式
  • User Interface 区分为基本、进阶两类。基本部分将各个画面元件逐一介绍用法,进阶的则示范了复杂操作,例如拖拉的功能、表单复选、栏位字型或底色变换、排序、树状作业等
  • Compatibility 呈现旧版的程序如何转换为新版本的Genero操作
  • WebServices 透过中、大型的程序(甚至区分client/server)实现了资料对抛、微服务等现行网页常见的范例,例如简易的RSS, 论坛, 档案检索等功能
  • WebComponents DEMO中提供一些大型的外挂工具可运用,例如『富文本编辑器(RichText Edit)』、图片艺廊、SVG绘图器等范例

Monitoring Data 网站监视器

https://ithelp.ithome.com.tw/upload/images/20210906/20051169eOXdFytdIj.png

若点选後出现 HTTP Error 403 : Access to monitor forbidden ,则为 as.xcf 中 Monitor段落尚未开放您的 IP 区段查看监控器资料。可适当修改後重新启动 GAS 即可使用。
https://ithelp.ithome.com.tw/upload/images/20210906/20051169aD8CNT0eGi.png
依据 FourJs 所述,Monitoring页面可察看下列主机上的讯息

  • 查找无效的 Web 服务配置文件
    必须再点选下列连结,自动检查 as.xcf 的无效配置设定。
    https://ithelp.ithome.com.tw/upload/images/20210906/20051169tvdexpYDvY.png
  • 监控调度员(dispatch)日志
    点选下列连结後,可直接查阅GAS 中的调度员日志(dispatch log)。
    https://ithelp.ithome.com.tw/upload/images/20210906/20051169qU4I7MPy4u.png
  • 监控代理和 DVM
    按照此过程监控在GAS中运行的uaproxy log。
  • 监控 HTTP 请求
    最下方会列出有关由运行 Web 应用程序和 Web 服务的 GAS 执行的不同类型的 HTTP 请求的信息,可以为您提供用於分析和故障排除的有用信息。

参考来源 http://4js.com/online_documentation/fjs-gas-manual-html/index.html#gas-topics/c_gas_monitoring_001.html

本章节的目标,在於提供各位可检视这些 GAS 讯息的做法与方法,还请各位进行实证,接下来我们将以此为基础,开始建置我们的应用程序


<<:  [iT铁人赛Day6]JAVA的运算简写

>>:  Day 6 - Rancher 系统管理指南 - 使用者登入管理

[FGL] 4GL程序的资源档Resource file体系

也学过 OPEN WINDOW了,可是为什麽 T 产品可以有TOOLBAR和 TOPMENU 我这...

完全理解React的completeWork以及错误边界

点击进入React源码调试仓库。 概述 每个fiber节点在更新时都会经历两个阶段:beginWor...

30天学会C语言: Day 9-Arrrrrrrrrrrrray~~

目前的内容中,一个变数在同一个时间只能储存一个资料,如果有多笔资料就需要有多个变数 如果要计算三个数...

Day 29 - 实战演练 — 元件单元测试

测试会用到的工具是 React Testing Library,後续对元件有改动时也可以使用 Sn...

Day8 NodeJS-libuv与Asynchonous

JavaScript是一个Synchronous(同步)执行的语言,以「一次只做一件事」的方式执行,...