我们公司使用IBM iSeries进行大部分数据处理。我们所有的内部应用程序都是用RPG编写的。根据IBM的路线图,IBM正在推动公司转向Java / J2EE。我们希望将内部应用程序现代化为更多的GUI界面。我们使用Asp.Net网站提供外部网站,尽管绿地项目可能是Java。一种选择是在使用RPG时使用屏幕刮刀应用程序,但我认为慢慢采用IBM的路线图并转向Java可能会更好。我们的目标是迁移到GUI界面并与IBM的路线图一致。
您是否参与过RPG到Java迁移,即使只有绿地项目是Java而且棕地项目仍然是RPG?
我的管理层害怕:
1)更新工作站上的JRE,特别是瘦客户端,可能会导致管理噩梦(我们公司使用80%瘦客户机和20%PC)和
2)Java需要过多的工作站开销才能有效运行
3)我们更新时JRE客户端之间不兼容,可能会破坏需要JRE的其他应用程序。
你能否对此有所了解?有什么巨大的好处吗?任何巨大的陷阱?
澄清:我只对迁移到Java感兴趣。什么是难度级别,从RPG到Java时我会失去什么?在迁移到Java时,屏幕是否响应迅速?
答案 0 :(得分:14)
我的公司也在尝试从RPG迁移到Java。
其他一些说明:
substring()
)来完成的。这可能只是我们使用的API - 我想我已经听说过能够读取字段名称的解决方案。但是,它也依赖于RPG程序流程的逻辑,否则无法维护。 VALUE
集传递,OPTIONS(*nopass : *omit)
是不允许的,CONST
通常被推荐,大多数参数都是DS
类型(数据结构 - 这是RPG中的一种不同类型)并由指针传递。模块级参数是不受欢迎的,如果有利于将所有内容封装在传递的数据结构或服务程序过程本身中。 STATIC
在Java中有一些不同的用法,使变量成为全局变量,并且在过程中不可用。ENDxx
个运算符,所有都使用括号({}
)来指定块的开始/结束。=
符号在Java中与上下文无关,就像在RPG中一样,始终用于分配。使用双等号==
运算符来比较Java中的值。==
进行有意义的比较 - 您通常需要实现一个名为equals()
的方法。==
进行比较。/copy
预编译器指令没有内置的等价物。试图实现它们是错误地使用Java。因为这些通常用于处理“样板”。代码(变量定义或公共代码),在架构中处理这个问题会更好。变量(实际上是所有D-specs)定义将使用import
或import static
语句处理,而通用代码变体通常由框架处理或定义新类。我确定还有其他一些事情,如果您有任何其他问题,请与我们联系。
答案 1 :(得分:3)
分发和管理胖客户端绝对是一场噩梦。
理想的解决方案是在iSeries上托管的基于Java的Web应用程序。工作站通过Web浏览器访问您的应用程序,就像ASP.NET一样。
我一直在使用Grails框架来实现现代化和创建新的应用程序,并且它运行得非常好。
答案 2 :(得分:2)
当IBM说您应该迁移到Java / J2EE时,您应该将应用程序移动到像asp.net Web应用程序这样的Web应用程序。您应该使用功能丰富的接口,如JSF或GWT。
Web应用程序不必担心JRE问题,因为您只需要一个标准浏览器。
但是我不知道RPG,我不知道建议的迁移策略。
答案 3 :(得分:0)
我是参与as400现代化的开发人员。到目前为止,根据我的经验,我可以给你我的见解。
除了基于Java EE的网站,您可以选择基于jax-ws的Web服务,它为不同的平面和网格屏幕提供服务。
客户可以使用他们想要的任何技术消费它们。存在一些滞后现象,但整体可用性与普通的基于Web的应用程序一样好。