Flutter 和 IBM as400
Flutter and IBM as400
一个特定的问题:是否有直接的方法来建立 AS400 连接,还是必须通过 PHP?我不必读取 DB2 上的数据,而是执行各种命令(wrkactjob、wrksyssts 等)。谢谢……对不起英语。
我的想法(也许无法完成)是这样的:在应用程序屏幕中有按钮,每个按钮执行一个命令(wrkactjob、clroutq 等),答案出现在另一个屏幕中……我没有想在5250或者telnet上直接写命令
我不确定您所说的“直接”是什么意思。你的意思是做你自己的套接字编程?可以,但有更简单的连接方式。
最明显和直接的选择可能是 ODBC、JDBC、HTTP 和 SSH。
ODBC 和 JDBC 当然提供了一个 SQL-based 接口,您可以使用它来发出命令(通过 QCMDEXC 过程或标量函数)或访问越来越全面的数组 IBM i services.
如果您仍然无法通过 SQL 获得您需要的东西,或者您只是不喜欢在 SQL 中工作,您可以使用 XMLSERVICE library, which provides its own programming interface "on top of" any of the connection types mentioned above. Despite all the instructions for building from source, normally this should already be installed on your IBM i. There are higher-level wrappers for XMLSERVICE in several programming languages (.NET, Node.js, PHP, Python, Ruby, and Swift), but as of this writing, not Dart. I am not familiar with Flutter, but I imagine you could use the JavaScript interop package 来使用Node.js 包装器。
根据您推荐的典型“健康检查”程序,例如 wrkactjob 和 wrksyssts,我猜您的主要目标是在您的 Android 上创建一个基于 phone 的应用程序 运行无论您身在何处,都可以快速检查机器的状态。正确吗?
有没有考虑过在路上没有连接本地WiFi的情况下如何获取机器的IP地址?
您可以通过 SQL 访问此“性能数据”——正如 John Y 指出的那样——并在您的移动设备上以任何方便的方式显示它。但是我非常怀疑 Android 是否提供了 ODBC 基础结构,即使您可能设法从 IBM 的 ODBC 驱动程序中获取了正确的二进制 blob(CPU 明智),这些驱动程序被篡改到 Android.
否则,如果你想要 UI 个元素而不是文本输出,你想创建一个 scrape the screen for whatever is displayed, and translate that textual representation into UI elements provided by Flutter 的机制。
如果您已经怀疑不能使用 Flutter 进行 telnet,我认为您必须先学习 很多 关于 Flutter 作为 SDK 的知识,然后再考虑如何开始开发应用程序。 TCP/IP 网络服务是底层 OS 的一项功能,您必须通过所有 Flutter 抽象层才能最终构建 TCP 会话。幸运的是,已经有代码可以为您处理 telnet 协议的特性。也许不是,那么你需要自己提供telnet协商和协议。这在许多 RFC 中都有记录。自己用Google。
下一点是:您需要建立将 EBCDIC 字符集数据转换为 ASCII 的转换例程。因为 Android 是基于 Linux 的,所以需要学习如何通过 Flutter 调用像 iconv()
这样的 libc 例程,提供 C 接口进行字符集转换,包括 EBCDIC 风格如 source/target。
最后一点:您需要学习如何解释 5250 数据流,并将终端仿真器指令翻译成动态地将 Flutter UI 元素放置在屏幕上的适当位置。当然,您需要了解将什么发送回 IBM i 以使其理解您的请求。 tn5250 数据流也记录在公开可用的 RFC 中。
OS 中曾经有一个名为 Workstation Gateway 的工具,但据我所知,它已在 V5R2 中删除。这可能提供了一种更简单的方法,因为 5250 数据流被即时转换为普通 HTML.
现在轮到你来决定你的目标是否值得你付出明显的努力了。
一个特定的问题:是否有直接的方法来建立 AS400 连接,还是必须通过 PHP?我不必读取 DB2 上的数据,而是执行各种命令(wrkactjob、wrksyssts 等)。谢谢……对不起英语。 我的想法(也许无法完成)是这样的:在应用程序屏幕中有按钮,每个按钮执行一个命令(wrkactjob、clroutq 等),答案出现在另一个屏幕中……我没有想在5250或者telnet上直接写命令
我不确定您所说的“直接”是什么意思。你的意思是做你自己的套接字编程?可以,但有更简单的连接方式。
最明显和直接的选择可能是 ODBC、JDBC、HTTP 和 SSH。
ODBC 和 JDBC 当然提供了一个 SQL-based 接口,您可以使用它来发出命令(通过 QCMDEXC 过程或标量函数)或访问越来越全面的数组 IBM i services.
如果您仍然无法通过 SQL 获得您需要的东西,或者您只是不喜欢在 SQL 中工作,您可以使用 XMLSERVICE library, which provides its own programming interface "on top of" any of the connection types mentioned above. Despite all the instructions for building from source, normally this should already be installed on your IBM i. There are higher-level wrappers for XMLSERVICE in several programming languages (.NET, Node.js, PHP, Python, Ruby, and Swift), but as of this writing, not Dart. I am not familiar with Flutter, but I imagine you could use the JavaScript interop package 来使用Node.js 包装器。
根据您推荐的典型“健康检查”程序,例如 wrkactjob 和 wrksyssts,我猜您的主要目标是在您的 Android 上创建一个基于 phone 的应用程序 运行无论您身在何处,都可以快速检查机器的状态。正确吗?
有没有考虑过在路上没有连接本地WiFi的情况下如何获取机器的IP地址?
您可以通过 SQL 访问此“性能数据”——正如 John Y 指出的那样——并在您的移动设备上以任何方便的方式显示它。但是我非常怀疑 Android 是否提供了 ODBC 基础结构,即使您可能设法从 IBM 的 ODBC 驱动程序中获取了正确的二进制 blob(CPU 明智),这些驱动程序被篡改到 Android.
否则,如果你想要 UI 个元素而不是文本输出,你想创建一个 scrape the screen for whatever is displayed, and translate that textual representation into UI elements provided by Flutter 的机制。
如果您已经怀疑不能使用 Flutter 进行 telnet,我认为您必须先学习 很多 关于 Flutter 作为 SDK 的知识,然后再考虑如何开始开发应用程序。 TCP/IP 网络服务是底层 OS 的一项功能,您必须通过所有 Flutter 抽象层才能最终构建 TCP 会话。幸运的是,已经有代码可以为您处理 telnet 协议的特性。也许不是,那么你需要自己提供telnet协商和协议。这在许多 RFC 中都有记录。自己用Google。
下一点是:您需要建立将 EBCDIC 字符集数据转换为 ASCII 的转换例程。因为 Android 是基于 Linux 的,所以需要学习如何通过 Flutter 调用像 iconv()
这样的 libc 例程,提供 C 接口进行字符集转换,包括 EBCDIC 风格如 source/target。
最后一点:您需要学习如何解释 5250 数据流,并将终端仿真器指令翻译成动态地将 Flutter UI 元素放置在屏幕上的适当位置。当然,您需要了解将什么发送回 IBM i 以使其理解您的请求。 tn5250 数据流也记录在公开可用的 RFC 中。
OS 中曾经有一个名为 Workstation Gateway 的工具,但据我所知,它已在 V5R2 中删除。这可能提供了一种更简单的方法,因为 5250 数据流被即时转换为普通 HTML.
现在轮到你来决定你的目标是否值得你付出明显的努力了。