PrefacioRpgForWeb es un entorno para Facilitar las Aplicaciones Gráficas y Web dentro de la familia de Servidores IBM iSeries i5 (AS/400). Desde el punto de vista de
Desarrollo de Aplicaciones, RpgForWeb permite crear programas
separados en dos capas: la lógica principal en RPG y la presentación en
HTML. El deseo principal de la comunidad de Usuarios es "que se puedan usar los programas actuales". Esto indica claramente que se consideran muy valiosas las aplicaciones existentes y no se quiere reprogramar, que és básicamente lo que hay que hacer si se quieren modernizar las Aplicaciones llevándolas a otros lenguajes y entornos cómo Java o .Net. Desde luego puede usarse RpgForWeb para
cambiar los programas con cierta cantidad de trabajo no muy grande, pero
no pequeña, y el enfoque de persistencia (o de la falta de ella) en el
modo de trabajo Web acompleja la comprensión de la solución. qué estamos pensandoEstamos pensando, dentro de la tecnología RpgForWeb, simplificar, facilitar, los dos componentes que darían una mejora sustancial en la migración o conversión a modo Web de las Aplicaciones Tradicionales. Las dos maravillas resumidas serian:
El objetivo es, por tanto, permitir que los actuales programas 400, mediante una conversión automatizada (aunque seguramente no del todo automática), corran en un entorno Web con pantallas HTML y lógica en RPG. Objetivo de tanto párrafo: Veamos estas dos maravillas "explicadas". Separar la capa de presentaciónLos programas tienen ahora juntas, embebidas, las funciones de lógica y presentación: el mismo programa fuente contiene sentencias para todas las funciones, incluyendo el tratamiento de pantallas 5250. Pretendemos separar la capa de presentación del programa (pantallas), dejándolo como un programa Batch y cambiando las funciones de Entrada/Salida de pantallas por funciones de conversación con la capa de presentacion Gráfica Web. Para mayor facilidad, usaremos un convertidor mejorado de pantallas dds-dspf a html (Migration Wizard) para convertir la funcionalidad y apariencia, de forma que sólo requiera tiempo la mejora de la presentación o ciertas funciones complejas. Soportar Persistencia realPara que un programa tradicional tenga que sufrir menos cambios (en orden a
incorporar en él funciones Web), queremos permitir un nuevo método de comunicación
en RpgForWeb soportando persistencia real, de
forma que el programa funcione igual que si tuviera
pantallas, parándose en un EXFMT/READ y esperando que llege la
entrada, etc. Soportar la persistencia simplificaría enormemente la tarea de programar en Web, ya que ésta es la forma en la que trabajan ahora los programas tradicionales, y no se tienen que comprender los problemas (o forma de trabajar) derivados del método Web de trabajo sin persistencia. En RpgToWeb, el soporte de la persistencia no se hará "atosigando" o "dejando
parada" la instancia del servidor http, sino que la instancia http queda
liberada mientras el usuario final ve la pagina presentada y teclea en
ella. (si no lo entiendes vuelve a leerlo despacito)
RPG TO WebAsí que a toda ésta parafernalia vamos a llamarle RpgToWeb, contando con el dominio www.RpgToWeb.com en internet. Ya que RpgForWeb (abreviado R4W o R4) significa "RPG para la Web", RpgToWeb (abreviado R2W o R2) significará "RPG hacia la Web", dando la idea de "convertidor". El caso es identificar con un nombre éste nuevo enfoque. RpgToWeb sería, por tanto, un servicio añadido en RpgForWeb con el que se contaría en el caso de que nos enfrentemos a una migración de una aplicación existente. el programa funciona igual ?Qué queremos decir con "un programa convertido con RpgToWeb funcionaría igual"? ...pues eso... que la parte principal o total de cómo funciona el programa es RPG, compuesto por el tipo de instrucciones que ya conoces, y siendo capaz de crecer usando todo lo que te permita RPG IV. Y CL? ...DB? ...LDA? ...Call ...?Casi no hablamos de ésto, porque, en principio, lo soportaremos todo! Toda la Base de Datos existente es compatible, ya que el objetivo es mantener los mismos programas sólo que "quitándoles las pantallas". CL y por tanto DtaAra, Lda, etc no habrá que tocarlas a no ser que exista alguna cosa incompatible cómo presentación de mensajes, pantallas, cosas en general no compatibles con el entorno Web y que habría que retocar dependiendo del contexto. Call entre programas está soportado, aunque si estos programas hacen algo incompatble con Web tendrían que ser modificados adecuadamente. Si los programas llamados son de pantalla, "simplemente" se convierten como tales programas de pantalla. La riqueza de funciones de programación en AS/400 es tan grande, y permite tal cantidad de combinaciones, que nunca será esperable que cualquier función se podrá convertir automáticamente o con muy poco trabajo. Algunas funcionalidades deberán ser retocadas, aunque dentro del marco RPG, otras funciones será mejor trasladarlas al Browser, etc. Ejemplo de algunas funciones que tendrán que ser cambiadas (no están todas las que serán, es una lista ejemplo):
Subficheros?Será parte fundamental de toda migración. RpgToWeb convertirá y soportará el modo de uso de Subficheros con sus elementos característicos como separación en dos registros de pantalla (control y líneas) e incluso en tres (pie), úniendolos en una sóla página html con tabla embebida -tal como permite RpgForWeb- y soportando las actividades de limpieza o inicialización, carga de detalles, lectura de registros cambiados, etc . Sin embargo en subficheros y pantallas en general existen ciertas funciones o modos de uso, potenciados por la impresionante flexibilidad del 400, que no son habituales en los documentos con formularios en la Web. Desde luego, las funcionalidades "normales o básicas" de subfichero las vamos a soportar, y para nosotros esto significa soportar mucho, pero seguramente todos los subficheros necesiten algun retoque, siempre tocando algo de html y algo de RPG. Además creemos que los subficheros se podrán mejorar en ciertos aspectos, no sólo visiblemente, sino que podrá presentarse un mayor número de líneas, insertar líneas de totales, incluso añadir más campos a cada línea y alguna otra funcionalidad. en qué entorno funciona el programa convertido?En RpgForWeb. Por lo tanto:
Migramos automáticamente?
|
||||||||
|
Ejemplo de conversiones segun plantilla y colores personalizables |
||
![]() |
![]() |
![]() |
Un programa RPG al que se le haya quitado/separado la capa de
presentación... que es?
Pues eso es: un Programa RPG Batch.
Así que se mantiene como cualquier otro programa batch, se puede editar
con PDM/SEU o con CODE, se puede compilar, debugear, etc.
La parte de presentación es HTML con algunos añadidos de js y css, cosas que están a la orden del día y se pueden aprender en poco tiempo, además que són la substancia básica de la Web y es bueno conocerlos de cualquier forma.
Una vez que la Aplicación está "convertida" sería fácil o muy fácil implantarle cambios tal como:
Un programa RPG al que se le haya separado la capa de presentación y ésta se haga con RpgForWeb funciona en el entorno Batch del 400 en lugar del entorno Interactivo.
Esto significa que NO necesita la parte de Interactivo del iSeries 400, la cual cuesta dinero y a veces mucho dinero.
Debe tenerse en cuenta que si la misma máquina se usa para usos interactivos, cómo manejo de PDM y SEU por parte de los programadores, etc, será conveniente contar con un mínimo de interactivo o estudiar el uso de herramientas tipo Code400 que no hagan uso de la tarjeta interactiva.
Anda en cualquier IBM iSeries i5 o AS/400 a partir de la version v4r5. Quizá ande en alguna versión anterior como v4r4, pero mejor cuanto más cerca se esté de la ultima version IBM (ahora v5r3).
El modelo de máquina puede ser "solo batch" o normal, y se soportan incluso máquinas anteriores como 270, 820, incluso 170 dependiendo de la versión del OS/400 instalada, etc.
No.
Pero puede convivir con ellos si se desea.
No.
los PC se pueden usar como cliente, para acceder a la aplicación
usando un navegador.
También pueden usarse PC por parte de los programadores/diseñadores para
las tareas de diseño de páginas Web, etc, pero no por necesidades de
ejecución de Aplicaciones.
Ciertas tareas automatizadas, así como buena parte del "know-how" está basado en RPG.
Con trabajo y ayuda de expertos Coboleros podremos usar ciertas funciones para ayudar a convertir programas Cobol, pero nuestra intención primaria es RPG.
Esperemos que más adelante, o ante una propuesta más concreta, podamos abordar algo de Cobol.
Una pantalla tradicional cambiada un poco de aspecto es demasiado obvio para lo que se pretende obtener.
El convertidor de pantallas incluye diversas plantillas, que son además personalizables fácilmente, por lo que la apariencia dependerá de diversos factores.
Por una parte, conociendo el objetivo, estariamos encantados en recibir ideas, sugerencias, cuidados a tener con tal cosa, etc.
Y lo más importante puede ser enviarnos ejemplos de programas reales, mejor poco complejos, o varios indicando su nivel de complejidad aparente. sería ideal que los programas fueran pequeños en su extensión fuera de las funcionalidades de pantalla, nos va a dar igual si el programa tiene catorce rutinas para calcular no se que cosas sobre el ratio de probabilidad de concesión de creditos, ya suponemos que eso va a seguir andando.
Los ejemplos mejores serian con uno o pocos ficheros no muy grandes, y que todo (programas, fuentes, objetos, ficheros) estuviera en una sola biblioteca. Esa biblioteca salvada a un *SAVF y
bajada al pc con FTP-Binary. Si es posible salvados en la mas antigua posible version del operativo.
v4r5 estaría bien, aunque también tenemos máquinas con V5R3.
Fuentes pueden ser RPGIV o RPG. Si son RPG los convertiremos a RPG4 con el comando CvtRpgPgm de IBM.
Programas sencillos pero funcionales con solo pantallas, con uno o con varios subficheros y con la menor complejidad adicional posible serian los ideales, pero mas vale tener algunos complejos que no puedan desacomplejarse que no tener ninguna para probar.
Claro que nosotros tenemos programas para probar, pero todos estan hechos con ADP400 y queremos tambien probar programas que no se hayan hecho con un Generador sino "a mano".
Fin del Documento
RpgForWeb está orientado a CREAR programas en entorno gráfico y Web usando RPG en IBM iSeries 400. Se pueden reusar partes existentes.
RpgToWeb permitirá convertir más fácil, más rápido las Aplicaciones Tradicionales, separando la capa de presentación en los programas RPG y convirtiéndola en html.
RpgToWeb incluye algunas funciones automáticas, otras de ayuda al diseño y, en general, una metodología de migración de programas. Esto permitirá que las Aplicaciones Tradicionales sean llevadas al mundo Gráfico y Web por los mismos profesionales del 400.
Sólo con RpgToWeb se mantiene el know-how en RPG. No hay miedo a que los programas se reprogramen con errores de lógica.
Programar en varias capas es el futuro, y si además lo conseguimos en poco tiempo y con poco coste...
La migración la puede hacer la misma gente que conoce las Aplicaciones y el Servidor Empresarial. Damos valor a lo que sabemos que anda.
Toda la Base de Datos, los CL, LDA, dtaara, incluso la llamada con Call entre programas, todo compatible.
No gastes tiempo ni dinero con un simple GUI o pintador, a partir de la migración estás programando en "moderno", pero con lo que ya conoces!
Los programas convertidos funcionan en el entorno BATCH del 400, por lo que puede funcionar en máquinas más pequeñas o económicas, sin necesitar el entorno interactivo.
Y tus programas siguen siendo RPG, y los mantienes con SEU o Code400, etc.
Una vez migrado se pueden mejorar las pantallas, subficheros, etc con todas las funcionalidades que permite html, javascript, css, etc.
Como Servidor Web http se usa el estándar mundial APACHE, integrado sin cargo en el iSeries 400.
Las Aplicaciones migradas se pueden acceder desde dispositivos de todo tipo que soporten un navegador Web, incluyendo PC's pero también PDA o Móviles. Y sin instalar nada!
No estamos haciendo nada raro,
Usando Apache, HTML y CSS, el verdadero estándar de la Web,
y RPG IV para iSeries 400, el verdadero estándar de las Aplicaciones
Empresariales.

RPG no es lo que
alguna gente cree o intenta hacer creer.
RPG IV es un auténtico nuevo lenguaje con mejoras continuas desde hace años y con
cantidad de nuevas y poderosas funciones.
No te dejes engañar: no hay nada que no puedas hacer con tu
RPG.
Y ahora con RPG For Web: lo que faltaba!
RpgForWeb y RpgToWeb
vienen cargaditos de utilidades:
RPG Tools for The Web !
Web Tools for RPG !
Los Clientes pueden tener soporte y consultoría directa de CPI Software y de los Partners aprobados para asegurar la mejor calidad y eficiencia en la Migración y Desarrollo de Aplicaciones.
INFORMACION PRELIMINAR
(c) 2004 CPI Software
www.cpis.es
www.RpgToWeb.com
www.RpgForWeb.com