使用 JTOpen 进行 RPG (iSeries) 现代化 - 有什么可能?

发布于 2024-12-05 04:24:29 字数 595 浏览 1 评论 0原文

我们将在不久的将来实施一个解决方案来实现 iSeries 应用程序的现代化 编写为带有一些存储过程的 RPG 程序,我们的首选方式是利用 Java 在该领域提供的最新、最强大的功能。

通过谷歌搜索并检查 STOVFlow 上的其他问题,JTOpen 似乎是事实上的 对大多数人来说都有效的库/工具集,我很高兴看到 Tomcat 在 I 系列机器上运行而没有任何问题。

以此为背景,我将以下内容视为高级 sol arch

  1. 安装 IBM JRE 并使用 JTOpen 的功能来调用 RPG 程序,并在某些情况下直接调用在 DB2 上运行的存储过程
  2. 让 Tomcat 托管使用以下命令构建的现代 Web 应用程序Grails 和其他框架(Camel、Smooks)提供一个应用程序逻辑层,该层将填充从浏览器向用户提供旧功能所需的任何中介和转换

问题 -

  1. 如果你们中的任何一个人参与过这样的练习,请分享这种方法的陷阱
  2. 最终用户的响应时间是否会显着降低性能?
  3. 对于某些人来说,如何将 JT400 代码公开为 Web 服务并在完全使用这些 Web 服务的另一台计算机上运行 Web 应用程序会更好吗?

We would be in near future implementing a solution to modernize our iSeries applications
written as RPG programs with some stored procedures, and our preferred way is leveraging the latest and greatest of what Java has to offer in this space.

From googling and checking other questions here on STOVFlow, JTOpen seems to be the defacto
library/toolset which has worked for most and I was encouraged to see that Tomcat runs on an I-series box with out any issues.

With this as the background, I am thinking of the following as the high level sol arch

  1. Install IBM JRE and use JTOpen's capabilities to invoke RPG Programs and in some cases directly call the stored procedures running on DB2
  2. Have Tomcat host a modern web application built using Grails and other frameworks (Camel, Smooks) to provide an application logic layer which would fill any mediations, transformations required for the old functionality to be offered to the user from a browser

Questions-

  1. If any one of you has been involved in such an exercise, please share the pitfalls with this approach
  2. Is there a significant performance drop with respect to response times for the end user?
  3. Would it be better to some how expose the JT400 code as web services and run the web app on a different machine altogether consuming these web services?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

眼睛会笑 2024-12-12 04:24:29

从 Java 调用 RPG 时要非常小心,因为如果不进行一些更改,RPG 不是线程安全的

Be very careful with calling RPG from Java because RPG is not threadsafe without some changes.

不疑不惑不回忆 2024-12-12 04:24:29

当我在COMMON时,我感觉市场上最好的产品是Profound UI。还有来自不同供应商的其他一些产品。大多数这些产品不使用 Java。 i 上的 Java 往往很慢。 (可以采取一些措施来使其更快,但原生总是更快。)您将为这些产品付出代价,但想象一下您自己做这件事会花费多少时间。对于上述内容,我的报价在 20+ 千美元范围内。但与所有 i 产品一样,价格因系统而异。

直接回答你的问题:

  1. 在时间允许的情况下,我一直在对现代化进行研究,但产品还没有完全达到我们想要的目的(在 COMMON 2011 之前)(在我查看的时候)。现在看来它可能会起作用。
  2. 这实际上取决于您的系统。新系统的问题比旧系统少。网络永远比绿屏慢。毫无疑问,人们不会喜欢它。高管和年轻人都会喜欢它。
  3. 你的慢点是运行业务逻辑。 HTML 来自哪个服务器并不重要。

When I was at COMMON, the best product I felt on the market was Profound UI. There are several others from a variety of vendors. Most of these products do not use Java. Java on the i tends to be slow. (There are things that can be done to make it faster, but native is always faster.) You'll pay the price for these products, but just imagine how much time it would take you to do this yourself. For the above, I was quoted in the $20+ thousand range. But like all i products prices vary greatly based on system.

To directly answer your questions:

  1. I have been doing research on modernization as time allows, the products weren't quite there yet (at the time I looked) to use it for what we wanted to use it for (before COMMON 2011). Now it looks like it might work.
  2. This really depends on your system. A newer system will have less problems than an older system. Web will always be slower than the green-screen. Hands-down entry people won't like it. Executives and younger people will love it.
  3. Your slow point is running the business logic. It wouldn't matter which server the HTML is coming from.
我们只是彼此的过ke 2024-12-12 04:24:29

我发现,出于所有实际目的,AS/400 的行为就像从 Java 代码中看到的 AIX 机器一样,并且您必须使用 jt400 (jtOpen) 与 AS/400 特定功能(如数据队列、文件等)进行通信。这非常有效好吧,但是调用 JVM 的速度很慢,这迫使基于 Java 的解决方案需要长时间运行。

另请注意,由于预启动作业的性质,QTEMP 通常不可用作保持状态的机制。

在 V6R1 下,Java 6 可用并且在“新技术”版本中运行得很好。然后,您可以运行几乎所有基于 Java 的解决方案,包括其中的 Jetty 等 Web 服务器。请注意,直接访问 IFS 文件时,Java 默认使用代码页 819。使用 AS/400 作为网络驱动器的 Windows 客户端使用兼容的代码页。

I've found that for all practical purposes an AS/400 behaves like an AIX box seen from Java code, and you must use jt400 (jtOpen) to communicate with the AS/400 specific features like data queues, files etc. This works pretty well, but the slowness of invoking the JVM pressures Java based solutions to be long running.

Note also that QTEMP is generally unavailable as a mechanism to keep state due to the nature of prestarted jobs.

Under V6R1 Java 6 is available and runs pretty well in the "new technology" edition. You can then run almost all Java based solutions, including web servers like Jetty in it. Note that Java defaults to code page 819 when accessing IFS files directly. Windows clients using AS/400 as a network drive uses a compatible code page.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文