iT邦幫忙

2021 iThome 鐵人賽

DAY 5
0
Software Development

Genero Packages - 可接替4GL的LowCode商業語言系列 第 5

[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

直通模式:httdpispatch

可直接將 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 訊息的做法與方法,還請各位進行實證,接下來我們將以此為基礎,開始建置我們的應用程式


上一篇
[FGL] 可連結資料庫的種類與連線方法
下一篇
[GAS] Genero GAS 控制台網頁版 (3.20後套件提供)
系列文
Genero Packages - 可接替4GL的LowCode商業語言32

尚未有邦友留言

立即登入留言