Professional Documents
Culture Documents
Programación en CGI
Desarrollo con CGIDEV2
Consideraciones sobre Java
Interfaces de usuario
en el iSeries
Mejor portabilidad:
Enterprise
Generation Language
Suplemento HELP400
RPG e IFS:
Obtener información
sobre los archivos
156 ERS
15
NI V
ARI
O A
editorial
equipo editorial
Director: Antonio Montía
en portada
Redacción: Carlos Bell, Alberto C. Blanch,
Equipo internacional de iSeries NEWS RPG: un puente entre dos mundos
Colaboradores habituales: Jaime Gustavo
Estany, José Mª Martín, Lluís Peiret
Traducciones: Pere J. Francisco Brumós
10 por Carlos Bell
Al margen de que en su día IBM eligiera Java para el desarro-
producción llo web en el iSeries, en el mercado existen tantas soluciones
Realización: Media Limits S.L. que puede darnos la sensación de que para este tipo de aplica-
Maquetación: Ramiro Esteve Coll ciones es necesario “utilizar otra cosa” en lugar de profundizar
Impresión: G2B gràfic S.L. en lo que ya conocemos, el RPG, y aprovechar la experiencia
Distribución: Unipost S.A.
que con él hemos adquirido.
administración
Suscripciones : Nuria Navarro
Publicidad: Tel. 34- 932 310 049
Fax: 34-932 310 309
CGIDEV facilita la vida a los programadores
12
Servicio HelpNet: www.help400.es
edita de RPG
PUBLICACIONES por Jef Sutherland
CGIDEV2 es un kit de herramientas de desarrollo de páginas
Deposito legal: B-2757-90 web gratuito suministrado por IBM que enmascara la
I.S.S.N. 1698-4501 complegidad de la programación CGI. Como veremos, CGIDEV2
APTDO. DE CORREOS 8003 - 08080 Barcelona ofrece un medio de incluir páginas HTML en programas escri-
Gran Vía Corts Catalanes, 715, Entlo. 3ª
tos en RPG como si fueran plantillas, llevar a cabo sustitucio-
08013 - Barcelona
Tel.: 932 310 049 Fax: 932 310 309
nes de variables y devolver páginas HTML al navegador.
E-mail: help400@help400.com
LATINOAMERICA
distribuidores
Belice, El Salvador, Guatemala y Honduras
VIACOMP
6ª Avenida. "A" 2-83 Zona 10
Ciudad de Guatemala, GUATEMALA 01010
Telf. 502-360-0358 y 360-0350
Fax 502-332-33694
email: viacomp@guate.net
www.viacomp.net
Perú
COMMON PERU
Bajada Balta 131, Of. 10, 2º Piso
Miraflores Lima 18, PERU
Telf. y Fax: 46 31 32
Paraguay
ANGEL LIERNUR E HIJO
P.O. BOX 2448
ASUNCION - PARAGUAY
427661@telesurf.com.py
e-mail: aliernur@yahoo.com
management
A hora, las empresas que buscan optimizar la disponibilidad y el tiempo de respuesta de sus siste-
mas y aplicaciones de informática pueden consolidar la monitorización de los signos vitales de sus
tarán, entre otros, temas de Busi-
ness Inteligence y Soluciones de
servidores Windows y iSeries (CPU, disco, memoria, trabajos, etc.) en una consola única de Gestión de continuidad; y, en el apartado de
Niveles de Servicio. Experiencias de Usuario, se pre-
El nuevo VISUAL Control for Windows 9, lanzado por Tango/04 Computing Group, lo hace posible sentará la conexión de cajeros
capturando e integrando en su consola de gestión de rendimiento métricas procedentes de servidores autómaticos a un iSeries, en base
con Windows Management Instrumentation (WMI) y Simple Network Management Protocol (SNMP). a la experiencia real de la empre-
Desde hace diez años, cientos de compañías han utilizado VISUAL Control for Windows para asegu- sa EMASAGRA.
rar la disponibilidad de sus sistemas, gestionar sus Acuerdos de Nivel de Servicio (SLA) y potenciar sus Para más información,
procesos de negocio en infraestructuras basadas en servidores iSeries. Ahora, con la versión 9, los depar- Telf.: 912.116.114
tamentos de informática pueden controlar simultáneamente, desde una sola interfaz gráfica e intuitiva, www.common-es.org
cualquier cantidad y combinación de servidores iSeries y Windows, además de aquellos basados en
SNMP.
“VISUAL Control for Windows ha evolucionado hasta ser una solución de gestión de rendimiento muy flexi- ■ VII Reunión anual
ble,” dice Raúl Cristián Aguirre, Gerente de Tango/04 Computing Group. “Las poderosas herramientas de de usuarios de ASNA
programación de la versión 9 permiten alinear fácilmente la gestión de niveles de servicio con los objetivos de Visual RPG
negocio de cada empresa, lo cual se traduce en una mejora inmediata en la cuenta de resultados”.
Además de servidores iSeries y Windows, VISUAL Control for Windows 9 puede monitorizar sistemas CaCovai 400, anuncia la “VII re-
Linux, UNIX y AIX gracias a la tecnología ALEV de Tango/04, que permite aprovechar al máximo el unión anual de usuarios de AVR”,
protocolo SNMP. Los operadores pueden además desarrollar scripts, definir variables y especificar um- que se celebrará los días 6 y 7 de
brales propios y condiciones de alerta con el editor de expresiones lógicas ALEV. Octubre en el Hotel Bodega Real,
“A veces es necesario recibir una alarma de rendimiento cuando el umbral de utilización de memoria de en el Puerto de Santa María.
un trabajo ha sido sobrepasado, pero sólo si es procesado en un servidor específico durante un período de Como en anteriores ocasiones,
tiempo preciso y si lo ejecuta un determinado usuario. Este es un ejemplo del nivel de personalización que este año se presentarán las nue-
un director de informática puede necesitar en su trabajo diario, y que con Tango/04 puede conseguir muy vas versiones de AVR Clásico,
fácilmente,” agrega Raúl Cristián Aguirre. AVR. Net y Monarch. Y se mostra-
Más de dos mil parámetros de rendimiento pueden ser monitorizados y controlados para ejecutar rán potentes aplicaciones desarro-
ajustes en forma automática antes de que los procesos de negocio sean afectados. Los usuarios pueden lladas con AVR.
personalizar en cualquier vista qué parámetros mostrar, filtrando la información irrelevante. Para más información,
Los indicadores claves de actividad de sistema incluyen: utilización de CPU por tipo de trabajo, los 10 Telf.: 902.365.787
usuarios y trabajos más abusivos, utilización de disco, tiempos de respuesta, trabajos (por tipo de traba- www.cacovai.com
jo, usuario, subsistema, colas de trabajo y colas de salida), utilización de particiones lógicas (LPAR),
datos de pool de memoria, tráfico de red y muchos más. ■ Storage Forum
Cuando se sobrepasa un umbral de rendimiento importante en un sistema, VISUAL Control for Barcelona 2005
Windows puede ejecutar una alarma de acuerdo con reglas y variables especificados por el usuario. Los
administradores pueden programar acciones automáticas tales como modificar las prioridades de los Tras el éxito de las ediciones de
procesos, ejecutar comandos locales o remotos y alterar los atributos de trabajos para corregir un pro- Storage Forum en Madrid, este
blema. Si se requiere la intervención de un operador, la consola puede año Barcelona acoge el Storage
emitir una alerta por email o SMS y escalarla a diferentes personas Forum 2005, el salón profesional
hasta que el problema sea resuelto. por excelencia dedicado a las tec-
Para más información, Telf.: 932.740.051 - www.tango04.es nologías de almacenamiento de
datos que se presentará los días
25 y 26 de octubre, en el Barceló
■ Adélia: 4GL para Adélia Studio. La compañía ubi- desarrollo de las siguientes arqui- Hotel Sants.
desarrollos en cada en Figueres (Girona) acumu- tecturas: entornos gráficos C/S Se estructurará en dos ciclos de
plataformas iSeries, la una experiencia en el mercado multi-plataforma y multi-BDs – conferencias temáticas. El prime-
Gráficas C/S y Web informático de más de 14 años DB2/400, SQL, etc.- (Adélia Visual ro orientado a casos prácticos,
gestionando diversos sectores in- Studio) que genera Java y/o C; nuevas tendencias y estrategias
Innova Estudi Soft, especialis- dustriales y especialmente el sec- Web en entornos JAVA-J2EE del sector del Almacenamiento y
tas en programación a medida, en tor eléctrico. (Adélia Web Studio); y 5250 nati- Seguridad de datos. El segundo
Gestión Documental, en solucio- Adélia Studio consta de una vas sobre iSeries (Adélia iSeries dará la palabra a los actores del
nes Internet para empresas y Bu- gama de herramientas de desarro- Studio) que genera RPG. mercado para presentar sus nue-
siness Partner Advanced de IBM, llo articuladas alrededor de un Para más información, vos productos y tecnología.
es el nuevo distribuidor para Es- modelo conceptual y de un 4GL Telf.: 972.673.367 Para más información,
paña de la herramienta CASE que permiten la concepción y el www.innova-soft.com www.storage-it.com
Opciones disponibles mos que decidir entre tecnología Microsoft o tecnología abier-
Ante el desarrollo de un nuevo proyecto de comercio electró- ta; es decir, entre ASP.NET, ODBC y desarrollo de aplicacio-
nico o de una aplicación basada en Web para la intranet cor- nes en VisualBasic, o JSP, Java Beans, JDBC y desarrollo de
porativa o Internet, nos encontramos con varias premisas que aplicaciones en Java. Dentro de las tecnologías abiertas po-
debemos tener en cuenta si queremos alcanzar el éxito: mini- dríamos incluir otras que están basadas en lenguajes de
mizar el tiempo de desarrollo, ofrecer un entorno consistente scripts como PHP o Perl, junto con MySQL como base de da-
que no dé lugar a transacciones erróneas, poder comunicar- tos y la utilización del CGI (Common Gateway Interface) de
nos fácilmente con otras aplicaciones y con otras empresas, y los servidores de aplicaciones Web, como Apache.
ser capaces de mantener el contenido con el mínimo esfuerzo De hecho, y al margen de que en su día IBM eligiera Java
posible. Como es lógico, buena parte del éxito dependerá de para el desarrollo Web en el iSeries, en el mercado existen
la estrategia de desarrollo que adoptemos. tantas soluciones para una u otra tecnología que puede dar-
Aparentemente y simplificando, si el entorno del que estu- nos la sensación de que para este tipo de aplicaciones es ne-
viéramos hablando no fuera el del iSeries, a la hora de tomar cesario “utilizar otra cosa” en lugar de profundizar en lo que
una decisión sobre la arquitectura a implementar tendría- ya conocemos, el RPG, y aprovechar la experiencia que con él
GIDEV (en realidad, CGIDEV2, que es la versión no está totalmente seguro de saber qué es CGI, consulte el re-
más reciente) forma parte de Easy400 (www- cuadro “CGI: qué es y cómo funciona”, en la página 15.
922.ibm.com), un kit de herramientas de desarro-
llo de páginas web gratuito suministrado por IBM. Cómo desarrollamos en KOA nuestras
CGIDEV2 es un programa de servicios que pro- aplicaciones web
porciona un sencilla envoltura (wrapper) para las API de IBM, En KOA utilizamos dos herramientas para el desarrollo de
además de otros procedimientos que facilita el trabajo a los aplicaciones web. Empezamos con iSeries Net.Data de IBM y
desarrolladores de RPG. CGIDEV2 ofrece un medio de in- seguimos usándola. Para nosotros, Net.Data es el CL del
cluir páginas HTML en progra- desarrollo web en el iSeries.
mas escritos en RPG como si Net.Data es fácil de aprender y
fueran plantillas, llevar a cabo CGIDEV2 ofrece un medio de de utilizar, tiene acceso completo
sustituciones de variables y devol- a los archivos de DB/400 median-
ver páginas HTML. La inclusión incluir páginas HTML en te sentencias de SQL y ofrece una
de plantillas de HTML significa programas escritos en RPG forma de enviar y recibir datos
que no es necesario crear el códi- desde aplicaciones del iSeries.
go HTML escribiendo manual- como si fueran plantillas, Las macros de Net.Data (es de-
mente instrucciones en el progra- cir, los archivos de código fuente)
ma de RPG. Utilizar CGIDEV2 y llevar a cabo sustituciones de no se compilan. En vez de ello, el
HTML es tan sencillo como utili- variables y devolver páginas servidor HTTP interpreta el ar-
zar DDS para las aplicaciones de chivo de macro, lo que facilita
pantalla verde. HTML. cambiar su código fuente para
IBM diseñó específicamente el kit hace pruebas. Naturalmente, el
de herramientas para los programadores de RPG que deseen inconveniente de las aplicaciones que no se compilan es que
desarrollar aplicaciones web. CGIDEV2 es ILE, de manera que los problemas del código, como por ejemplo las sentencias que
también funciona con Cobol. La herramienta no sólo es fácil de no son válidas, no se descubren hasta que se ejecuta la apli-
utilizar, sino que en el kit también pueden encontrarse varios cación. Y el código interpretado generalmente no se ejecuta
ejemplos que le ayudarán a empezar a utilizarlo enseguida. Si tan deprisa como el código compilado.
Ejemplo de CGIDEV2
Veamos un ejemplo sencillo de cómo utilizar RPG, un poco de
HTML y CGIDEV2 para hacer una búsqueda de un artículo,
además de usar el navegador como Interface de Usuario (IU).
Generalmente, cuando me enfrento a un proyecto, empiezo
primero por la IU. Prefiero diseñar la forma en que el usuario
interactúa con la aplicación y luego llevar a cabo el desarro-
llo del programa. Durante el diseño la IU, todavía no se utili-
zan RPG, HTML ni CGIDEV2.
Para la aplicación de ejemplo necesito tres páginas de IU.
La primera muestra la solicitud para que el usuario escriba
el número de artículo (Figura 1). La segunda muestra el re-
sultado si se encuentra el artículo (Figura 2). La tercera
muestra la página de error que recibe el usuario si no se en-
cuentra el artículo (Figura 3).
En esta aplicación he utilizado la herramienta de diseño
de páginas web de WDSc, Page Designer, que me encanta
desde hace mucho tiempo, pero usted puede utilizar la herra-
mienta de diseño web que desee. En la Figura 4 puede verse
la solicitud de la búsqueda de artículos y las páginas de re-
sultados dentro de la herramienta de diseño WYSIWYG de
WDSc. El diseño del código HTML es sencillo. En una aplica-
ción real, probablemente utilizaría hojas de estilo en cascada
(CSS), más colores y otros elementos de diseño. Pero, como
puede verse en las Figuras 1, 2 y 3, para la interfaz de usua- FIGURA 2
rio utilizaré pocos colores e imágenes. Página de resultados de la búsqueda de artículos
En la Figura 5 se muestra el archivo itemlookup.html,
que contiene el código HTML de la solicitud de búsqueda
de artículos y de los formularios de resultados. En la Fi-
gura 6 se ve el archivo errorforms.html, que contiene el
código HTML del formulario de error. CGIDEV2 permite Fíjese en los marcadores /%nombre_variable%/, como /
poner cualquier número de páginas web en un solo archi- %price%/. CGIDEV2 utiliza espacios reservados, de modo que
vo fuente gracias a que utiliza el marcador /$ para sepa- en RPG puedo incluir valores para los nombres de variables.
rar cada formulario o página. Por ejemplo, como puede Los espacios reservados pueden considerarse como campos
verse en la Figura 5, he diseñado dos plantillas de formu- de un archivo de pantalla.
lario, initialform y resultform, en el archivo HTML. Más Después de diseñar la interfaz de usuario, ya puede desa-
adelante veremos cómo incluir los formularios en un pro- rrollarse el programa en RPG. La lógica del programa es sen-
grama escrito en RPG. cilla:
C
GI significa Interfaz común de pasarela y es un su vez, la aplicación CGI llamaría al programa MIAPLICWEB
medio estándar para un navegador de interactuar especificado en el URL y le pasaría dos variables, parm1 y
con un servidor web que se esté ejecutando en parm2.
cualquier plataforma, como Apache en el i5 o Microsoft IIS en La aplicación de la que estamos hablando puede estar
Windows. CGI permite ejecutar páginas web dinámicas en las escrita en cualquier lenguaje del i5 y, sin duda, RPG sería un
que el usuario hace una petición y se le devuelve un resulta- buen candidato. La aplicación se ejecutaría en el servidor i5 y
do. Las páginas dinámicas difieren de las páginas web estáticas tendría acceso a las variables parm1 y parm2. La variable
en que las páginas estáticas son iguales cada vez que se parm1 se enviaría con el valor “12345”, mientras que la
muestran. variable parm2 se enviaría con el valor “codigopostal”. En la
Así es como funciona CGI: en el servidor web, una o más aplicación, se utilizarían las API suministradas por IBM para
aplicaciones CGI (es decir, programas) permiten que se le acceder a las variables enviadas a la aplicación y luego se
hagan peticiones. Cuando las aplicaciones CGI del lado del prepararía una página de resultados que se devolvería al
servidor reciben la petición, la ejecutan y muestran una navegador web.
página de resultados. Normalmente, cuando un servidor La aplicación que acabo de describir requeriría varias API
utiliza una aplicación CGI, el URL contiene referencias a “cgi” relativamente complejas. Para que se haga una idea de esa
o “cgi-bin”, como en el ejemplo siguiente: complejidad, devolver la salida al navegador con esas API
sería parecido a preparar una salida de pantalla verde sin
http://www.miservidorweb.com/cgi- DDS y que esa salida estuviera formada por una serie de
bin/miaplicweb?parm1?12345&parm2=codigopostal. caracteres larguísima. Puede hacerse, pero sería una tarea
imponente. Esa es la causa de que la primera vez que oímos
Si el URL anterior se utilizara en un servidor web de un i5, hablar de CGIDEV en KOA, nos sintiéramos muy interesados
la parte “cgi-bin” dirigiría la solicitud a las aplicaciones cgi-bin por saber más cosas sobre este kit de herramientas.
de lado del servidor. En el servidor web, cgi-bin se correlacio-
naría con una biblioteca en que residen los programas CGI. A —J.S.
a programación de la Interfaz común de pasa- Tomemos por ejemplo la industria de los componentes de
rela (CGI) existe en el iSeries desde hace unos automoción. En el pasado, si necesitaba determinada pieza,
cuantos años. Desde por lo menos el release digamos, por ejemplo, un faro original de un Ford Focus de
V3R2, IBM ha proporcionado APIs que permi- 1998, visitaría un concesionario oficial de la marca y compra-
ten a los programadores crear páginas web to- ría allí la pieza.
talmente funcionales sin necesidad de utilizar Hoy en día hay literalmente cientos de empresas que ofrecen
soluciones caras y que consumen muchos recursos. piezas originales y de segunda mano para casi cualquier marca
Hoy, más que nunca, las empresas están interesadas en y modelo de vehículo. Algunas de esas empresas son concesio-
encontrar la mejor forma de ofre- narios locales que han ampliado su
cer aplicaciones web interactivas a La programación en CGI es lo negocio de venta de componentes a
sus clientes y usuarios. Con tantas Internet, aumentando su base de
opciones disponibles y algunas que permite a las empresas clientes exponencialmente.
mucho más comerciales que otras, Localizarlos utilizando un motor
solemos pasar por alto la mejor so- crear aplicaciones dinámicas, de búsqueda es fácil y el resultado
lución y la más sencilla. funcionales e interactivas para final es que recibiremos directa-
Utilizando las APIs disponibles mente la pieza en nuestro domici-
en el iSeries, directamente o me- ayudarlas a crecer o para lio. Además, nos ahorraremos un
diante un programa de utilidad de montón de dinero comparándolo
terceros, los programadores que facilitar el trabajo de sus con lo que nos habría costado si la
trabajan con iSeries descubrirán empleados. hubiéramos comprado en nuestro
que la tecnología que IBM parece concesionario local.
estar intentando eliminar es la úni- Gracias a Internet, ahora las
ca que realmente tiene sentido utilizar. empresas pueden llegar a clientes a los que normalmente nun-
ca hubieran podido acceder. Este es sólo un ejemplo entre mil
La importancia del contacto con la Web del papel crucial que tiene Internet en el juego empresarial
Si no está familiarizado con las aplicaciones web, es bastante de la “supervivencia de los más aptos”.
probable que acabe varado en una isla desierta. Las empre-
sas están utilizando con gran éxito la web en su propio bene- ¿Qué es la programación en CGI?
ficio para llegar a clientes a los que normalmente no ten- La programación en CGI es lo que permite a las empresas
drían acceso. crear aplicaciones dinámicas, funcionales e interactivas para
ayudarlas a crecer o para facilitar el trabajo de sus emplea- más funcionales o más “atractivas”. Lo que determina esos
dos. La programación en CGI permite a empresas como eBay atributos es la destreza de la persona que cree el código
tener entornos cambiantes sin necesidad de tener que crear HTML.
páginas web manualmente. En vez de ello, igual que hace- Estos lenguajes de programación en CGI también dispo-
mos con las pantallas verdes y los informes, escribimos pro- nen de herramientas que les permiten leer la información de
gramas en CGI que crean contenido web dinámicamente con- una página web. Si alguna vez ha estado en una página web
forme cambian los datos. donde se le solicitaba introducir determinada información,
Antes de tomar una decisión como la de qué juego de he- seleccionar artículos para añadirlos a un carrito de la com-
rramientas utilizar para crear aplicaciones web dinámicas, pra o hacer algo que sea “interactivo”, quiere decir que ha
deberá tener claro qué es exactamente lo que desea llevar a visto CGI en acción. Para que un programa pueda responder
cabo, cuáles son sus conocimientos actuales y, por último, a su interacción o leer la información de un formulario en
cuántas herramientas de aplicaciones web le ofrecen el mis- línea, ese programa debe ser capaz de leer los datos para po-
mo resultado. Esto significa com- der reaccionar en consecuencia.
prender qué es exactamente la pro- De modo que, en resumidas cuen-
gramación web o en CGI. tas, las aplicaciones web no hacen
En el nivel más bajo, casi todas Los programas en CGI más que lo que hemos hecho todos
las páginas web (por no decir todas) antes utilizando pantallas verdes o
se crean utilizando HTML. También pueden escribirse en muchos informes. La única cosa que ha
pueden utilizarse otras formas de lenguajes de programación cambiado es que ahora debemos
lenguajes de marcado (como XML o interactuar con un navegador web
los lenguajes de códigos de disposi- distintos, incluyendo RPG, en lugar de con una pantalla ver-
tivos inalámbricos), pero en general de. Seguimos leyendo información
utilizaremos páginas web, lo que Cobol, Java y C. de la interfaz y devolviendo infor-
significa que estaremos creando có- mación a esa interfaz.
digo HTML dinámico utilizando pro-
gramas escritos en CGI. Aplicaciones web y comunicación
HTML es lo que permite que un programador muestre de- La siguiente pieza del rompecabezas que hemos de tener en
terminado contenido en el navegador web de un usuario. Este cuenta es la interacción entre el navegador web del usuario y
contenido pueden ser imágenes, formularios de entrada e in- el iSeries.
formación detallada (como la lista de un inventario o toda Esta interacción se realiza utilizando un servidor web, tam-
una tienda) para vender prácticamente cualquier producto. bién conocido como servidor HTTP. Un servidor web no es
Casi todo lo que vemos en una página web se ha creado utili- nada más que un trabajo o un grupo de trabajos que se ejecu-
zando HTML. tan en segundo plano en el iSeries esperando peticiones y
En el nivel siguiente, los programadores pueden escribir luego respondiéndolas. Las peticiones hechas al servidor web
programas que creen código HTML dinámicamente para que se hacen cuando un usuario escribe (o pulsa en) un enlace
lo vea un usuario final en tiempo real. De la misma forma que contiene un URL que apunta al iSeries.
que utilizamos DDS para crear informes y subarchivos a par- Esta conexión se hace porque en todo URL hay un nombre
tir de los datos del iSeries, podemos crear una salida pareci- de dominio (o dirección IP). Por ejemplo, “miempresa.com” es
da utilizando HTML y páginas web. Lo importante es recor- un nombre de dominio. Este nombre de dominio apunta a
dar que gracias a ello podemos proporcionar a nuestros una dirección IP. La dirección IP se asigna al iSeries (o a un
usuarios finales información actualizada a través de la web. cortafuegos o a un router instalados antes que el iSeries). Así
La programación en CGI es lo que nos permite hacerlo. es como se hace la conexión entre el navegador y el iSeries.
Es importante entender que CGI no es un lenguaje de pro- Una vez que el servidor web recibe una petición, la inter-
gramación concreto. No hay ningún lenguaje de programa- preta y devuelve información al usuario. Esta información
ción llamado “CGI”. CGI es un método de programación. Los puede ser en forma de una página web estática o el resultado
programas en CGI pueden escribirse en muchos lenguajes de de ejecutar un programa CGI, que crea la información de la
programación distintos, incluyendo RPG, Cobol, Java y C. página web en tiempo real. En el iSeries tenemos dos opcio-
Cada uno de esos lenguajes dispone de herramientas que nes para un servidor web. La primera posibilidad, que ya no
les permiten enviar contenido creado dinámicamente a un es una opción viable en las máquinas con el release V5R3 o
navegador web. Así que, en cierto sentido, toda la progra- posterior instalado, es lo que se conoce como el servidor HTTP
mación en CGI consiste en crear series de datos (en este “clásico”. La segunda posibilidad y la más viable es el servi-
caso, código HTML) y luego en introducir esos datos en una dor HTTP Powered by Apache. Este servidor se basa en el
página web para que los vea el usuario que los ha solicita- famoso servidor web Apache que utilizan la mayoría de las
do. Eso es todo. Una vez entienda esto, debería quedar cla- máquinas en Internet en la actualidad.
ro porqué ningún lenguaje o juego de herramientas de pro- Con el servidor web se pueden establecer configuraciones
gramación en particular hará mejores sus aplicaciones web, para que el servidor web sepa qué hacer con determinadas
tendrá problemas con ellas. Si no lo está, piense en ellas (“e-RPG”). La documentación en línea de IBM también pue-
como si fueran programas suministrados por IBM a los de serle de ayuda para dar sus primeros pasos.
que basta con “llamar” desde el programa para que ejecu- Pero, antes de sumergirse profundamente en las API que
ten una función. son necesarias, deberá entender (sea cual sea la plataforma,
Estas API se incluyen en un programa de servicio llamado solución o kit de herramientas de aplicaciones web que elija)
QZHBCGI, que se encuentra en la biblioteca QHTTPSVR. Si los conceptos básicos de HTML, JavaScript, Hojas de estilo e
utiliza el mandato DSPSRVPGM (Visualizar programa de inclusiones del lado del servidor (SSI). La mayoría de progra-
servicio) en el programa de servicio QZHBCGI, verá la ex- madores pasan por alto estas cuestiones, pero yo no lo reco-
tensa lista de subprocedimientos de que se dispone. La docu- miendo. Casi todos nosotros ya sabemos cómo funciona RPG,
mentación en línea de IBM puede ayudarle a entender más pero no entendemos las herramientas que utilizaremos con
cosas acerca de las API, puesto que aquí sólo le daremos una RPG para crear aplicaciones web. Saltarnos estos temas es
breve explicación. como intentar conducir un coche sin saber cómo se utiliza el
La primera API (y la más utilizada) es QtmhWrStout (Gra- volante.
bar a salida estándar). Se llama a esta API cuando se desea Una vez conozca los conceptos básicos, tal vez desee echar-
grabar datos a una página web. Basta con crear una serie de le un vistazo al kit de herramientas CGIDEV2 de IBM (www-
caracteres HTML y pasársela a esta API y los datos se gra- 922.ibm.com) comentado en el artículo precedente, aunque
barán en la salida estándar y se mostrarán en un navegador existen otros en el mercado. Estos kits de herramientas per-
web. Esta API puede llamarse muchas veces sucesivamente, miten externalizar el código HTML y hacen que actualizar
por lo que no hay que preocuparse por tener que crear una las aplicaciones sea coser y cantar.
página web completa de una sola vez. Por el contrario, puede Espero que este artículo haya despertado su interés por
crearla por secciones, llamando a la API QtmhWrStout tan- una posible solución para que el equipo empiece a escribir
tas veces como sea necesario. aplicaciones web en el iSeries. Como hablo con cientos de
Otra API muy utilizada es QtmhGetEnv (Obtener variable personas cada semana sobre esta cuestión, sé que está empe-
de entorno). Esta API recupera el valor de una variable de zando a hacerse popular.
entorno. Esta API puede utilizarse para recuperar el valor La razón principal por la que sé que la programación web
de los campos de un formulario web enviado utilizando el en RPG se está haciendo popular es porque hay algunos que
método GET. Los datos estarán disponibles en la variable de se ponen en contacto conmigo y me dice que “nuestro socio
entorno QUERY_STRING, en pares campo/datos, donde cada nos ha dicho que las aplicaciones escritas en RPG se ejecuta-
par campo/datos está separado por el símbolo &. rán más lentamente y/o utilizarán más recursos que las apli-
Para leer datos de un formulario que utiliza el método POST caciones WebSphere”. Naturalmente, se trata de un mentira
debería utilizar la API QtmhRdStin (Leer entrada estándar). descarada (o de un malentendido, concedámosles el beneficio
De nuevo, los datos se devolverán utilizando los pares cam- de la duda). Cualquiera que tenga el mínimo conocimiento
po/datos con el delimitador & separando cada par. del uso de los recursos que hace RPG y de lo que se tarda
Después de leer datos de la página web, puede utilizarse la únicamente en ejecutar WebSphere (sin incluir las aplicacio-
API QtmhCvtDB (Convertir a base de datos) para convertir nes escritas en Java que también son necesarias) debería ser
los pares campo/datos leídos de una de las API descritas an- capaz de imaginarse que se trata de un simple sensacionalis-
tes en un formato que puedan utilizar las aplicaciones. Evi- mo comercial.
dentemente, puede analizar los datos usted mismo, pero uti- Como digo siempre, si una máquina ejecuta las aplicacio-
lizando la API QtmhCvtDB podrá convertir los datos en nes escritas en Java deprisa, imagínese lo deprisa que se eje-
estructuras de datos fáciles de usar que no sólo dan acceso cutaría la aplicación desarrollada en RPG. ■
directo a todos los campos y a su contenido, sino que también
llevan a cabo las conversiones de tipos de datos necesarias.
Estas conversiones de tipos de datos son necesarias porque
todos los datos leídos en una página web están en formato de
tipo carácter.
Otra API útil es QzhbCGIParse (Analizar datos de CGI).
Esta API permite leer los datos de un campo de un formula-
rio simplemente especificando el nombre del campo del que
se desean recibir los datos. Esta API hace que la programa-
ción en CGI en el iSeries sea mucho más sencilla.
Primeros pasos Bradley V. Stone es autor de varios manuales de formación sobre CGI y de la
La mejor forma de empezar a escribir aplicaciones web para exitosa serie de libros “e-RPG”, que puede verse en bvstools.com/erpg. También
es el creador del kit de desarrollo de software eRPG (eRPG SDK), que puede
RPG es haciéndose con uno de los muchos recursos dispo- obtenerse en erpgsdk.com. Bradley es propietario de BVSTools.com, donde
nibles. Personalmente, he escrito varios libros y manuales ofrece software alternativo de bajo coste así como cursos de formación y
sobre el tema, agrupándolos bajo una denominación genérica servicios de consultoría para el iSeries desde hace más de diez años.
¿ A cuántas interfaces de usuario (IU) se enfrenta cada basadas en texto o gráficas, si una presentación no es intuitiva,
día? Despertadores, relojes, cafeteras, hornos la aplicación será mala y los resultados también.
microondas, teléfonos, contestadores, teclados para in-
troducir códigos de seguridad, coches... son sólo unos La progresión de las IU
cuantos aparatos que presentan interfaces que utili- Para los desarrolladores que trabajan con el iSeries que tie-
zamos casi a diario. Y en la mayoría de los casos, antes si- nen más experiencia (yo no he dicho “viejos”), las decisiones
quiera de sentarnos en nuestra mesa, encender el ordenador de diseño sobre la interfaz de usuario solían ser más fáciles
y mirar a la pantalla. porque había un solo dispositivo con el que interactuar. El
La forma en que los aparatos eléctricos suelen presentar la método de la IU era una terminal, que tenía un número de-
información a los humanos a menudo decide el destino y la terminado de filas y columnas. Más aún, los amigos de IBM
utilidad del dispositivo. Por supesto, lo mismo ocurre con las les habían suministrado un maravilloso juego de estándares
aplicaciones. llamado SAA (Arquitectura para aplicaciones de sistemas)
Como desarrolladores, podemos que especificaba desde cuál debía
tener la mejor lógica y las mejo- ser la apariencia que debía tener
res rutinas de proceso bajo la Tanto si se trata de interfaces la IU basada en texto hasta el nú-
interfaz de usuario, pero si ésta mero de puntos iniciales que de-
no obtiene la información correc- de usuario basadas en texto o bía haber después de la descrip-
ta de los usuarios o no se la pre- ción pero antes de la entrada.
senta de forma inteligible, habre- gráficas, si una presentación no Cuando los PC hicieron su apa-
mos despilfarrado la inversión es intuitiva, la aplicación será rición, los desarrolladores del
realizada en la aplicación. La iSeries básicamente siguieron
interfaz de usuario es vital y no mala y los resultados también. trabajando con las mismas filas
debe tomarse a la ligera. y columnas, pero ahora maneja-
das mediante la emulación de
Las dos partes de una IU terminales. Apenas había que hacer cambios, aunque hubie-
Si descomponemos una IU, veremos que se compone de dos ra que subir o bajar información de esa nueva y extraña he-
partes. La primera es el dispositivo o aplicación utilizado para rramienta llamada Lotus 1-2-3.
presentar la información. Suelo pensar en ellos como los mé- A medida que el PC tomaba posesión de los escritorios con
todos. Tanto si se trata del teléfono móvil como de Netscape Microsoft Windows y se ponía a disposición de los
Navigator, la información se obtiene y se recopila a través de desarrolladores interesantes herramientas de desarrollo para
esos métodos. La segunda parte es la forma en que se le pre- PC (como Visual Basic de Microsoft), a éstos se les ofreció un
senta la información al usuario. Coja dos teléfonos móviles nuevo conjunto de herramientas gráficas para la interfaz de
▲ distintos y verá dos presentaciones diferentes de la informa- usuario, como ventanas múltiples, botones, recuadros de se-
▲ ción. Utilice Navigator para ir a Google y Yahoo! Y verá dos lección, menús desplegables, recuadros de listas, botones de
▲ presentaciones distintas de la información utilizando el mis- selección y hasta fotos. El método de la interfaz fue más allá
mo método. de la emulación de terminales; convirtió todo el escritorio del
Muchos desarrolladores del iSeries pueden sentir que es- PC en una opción. Se desarrollaron aplicaciones cliente-ser-
tán atrapados en una interfaz de usuario basada en texto. vidor que permitían una nueva forma de presentación para
Management
¡Pero no es cierto! Su experiencia con una de las plataformas la misma información que antes se había mostrado en una
más flexibles y fiables para almacenar y recuperar informa- IU basada en texto.
ción es una gran ventaja. El siguiente método de IU, y puede que el más reciente, es
En los artículos de este número descubrirá que como el navegador. Hoy en día, el navegador no es meramente el
desarrollador del iSeries tiene ventajas cuando hablamos de método para acceder a Internet... es el método de IU más
métodos de interfaces de usuario y opciones de presentación. utilizado. Los navegadores han proliferado y ahora se pue-
Pero recuerde que tanto si se trata de interfaces de usuario den encontrar fuera del escritorio del PC, en los teléfonos
Suscríbase a
Management
y recibirá
gratuitamente
el suplemento ▲
▲
técnico ▲
U
na vez más, bienvenidos a nuestra serie de ar- Después de crear un programa de EGL se genera el código
tículos sobre el trayecto que lleva de RPG a fuente en Java o en Cobol a partir de él. Como lenguaje, EGL
J2EE para desarrolladores de iSeries (véase es un cruce entre Cobol y Java. Aunque es procedural, tiene
ibm.com/iseries/roadmap). En el artículo an- elementos de constructores del lenguaje Java. Es un lengua-
terior (Mejor portabilidad: las herramientas de je sencillo pero potente que oculta muchos detalles de la
desarrollo de Java, de mayo de 2005) describimos el desarrollo implementación para permitir que el desarrollador se con-
de aplicaciones portables utilizando las herramientas de desa- centre en resolver el problema y que llegue rápidamente a
rrollo para Java proporcionadas por WebSphere Development una solución que funcione. También puede utilizarse para el
Studio Client (WDSc). En artículos anteriores nos hemos cen- desarrollo rápido de aplicaciones (por ejemplo, para crear un
trado en las herramientas de WDSc prototipo de una aplicación de gran ta-
para desarrollar aplicaciones de maño). El propio lenguaje no es nada
interfaz de usuario para la web. restrictivo y puede usarse para desa-
En este artículo seguiremos con
Desarrollo en J2EE rrollar aplicaciones completas.
nuestra explicación del cuarto paso de Mejor
este itinerario, el que trata sobre una escalabilidad ¿Cuán portable es EGL?
mejor portabilidad. Además de Java, EGL permite escribir aplicaciones
Mejor
otra tecnología llamada Enterprise portabilidad portables porque oculta los siguientes
Generation Language (EGL) puede detalles de la implementación:
Mejor
ayudarnos a desarrollar aplicaciones Plataforma. EGL es un lenguaje de
arquitectura
portables. Empezaremos viendo qué alto nivel y proporciona API indepen-
es EGL. Después, pensaremos cómo Mejor dientes de la plataforma de manera que
interfaz
permite que las aplicaciones sean el programador no tiene que preocupar-
portables y valoraremos cuáles son sus Mejores se de las dependencias específicas de
ventajas. También examinaremos algu- herramientas cada plataforma o de las diferencias
nas de las herramientas específicas entre ellas. El código en Java generado
para trabajar con EGL que existen en se puede ejecutar en una plataforma
WDSc y cómo pueden utilizarse para iSeries, Windows, Linux o Unix, y el
desarrollar aplicaciones en Java. código en Cobol únicamente en el
iSeries.
¿Qué es EGL? Nivel de especificación. Los desarrolladores no tienen que
EGL es una tecnología de desarrollo y un lenguaje de progra- preocuparse del nivel del código generado. Por ejemplo, si se
mación que permite escribir rápidamente aplicaciones em- está generando código de un EJB, se basará en el último ni-
presariales totalmente funcionales. Ha evolucionado a partir vel de EJB soportado, sea el que sea, de modo que no es nece-
de un lenguaje procedural que se utilizaba en VisualAge sario preocuparse por las especificaciones de EJB para los
▲ Generator, un antiguo producto de IBM. La versión actual de niveles 1.1, 2.0, etcétera, por ejemplo. Si desea utilizar otro
▲ EGL permite utilizar un sencillo lenguaje procedural para nivel de especificación, simplemente especifíquelo y vuelva a
▲ crear programas en Cobol no interactivos que pueden ejecu- generar el código.
tarse en el iSeries y programas en Java que pueden ejecutar- Almacenamientos de datos. Puede concentrarse en el pro-
se en cualquier plataforma, incluyendo el iSeries, Windows, blema de la empresa que está intentando resolver en vez de
Linux, Unix y z/OS (con los servicios del sistema Unix). Pue- hacerlo en las complejidades técnicas de los almacenamientos
Management
den instalarse aplicaciones escritas en Java fuera de J2EE o de datos como, por ejemplo, el acceso a la base de datos, SQL,
en el contexto de uno de los siguientes contenedores de J2EE: CICS o MQSeries. Se pueden utilizar instrucciones de E/S
parecidas para acceder a distintos tipos de almacenamientos
•cliente de aplicaciones de J2EE de datos externos, sean éstos archivos, bases de datos
•aplicación web de J2EE relacionales o colas de mensajes. Esto permite manejar los
•contenedores de EJB (en este caso, también se crea un bean futuros cambios en el almacenamiento de datos sin tener que
de sesión de EJB) remodelar apenas el código.
▲
▲
▲
puede utilizarse para desarrollar aplicaciones autónomas en Ventana (Window). En la Figura 1 pueden verse las prefe-
Java o aplicaciones web. rencias disponibles para EGL. Aquí, pueden establecerse op-
ciones relacionadas con las conexiones de la base de datos
Para empezar (por ejemplo, el controlador JDBC y el ID y la contraseña del
Como primer paso para empezar a desarrollar una aplica- usuario de la base de datos). También debería establecer las
ción en EGL, sería una buena idea establecer algunas prefe- clases necesarias para el depurador (por ejemplo, el controla-
rencias. Estas son opciones globales que se aplicarán a todos dor JDBC de la base de datos).
Si, por otra parte, crea un proyecto web de EGL, WDSc le • una parte pageHandler que controla la interacción del usua-
preguntará si desea cambiar a la perspectiva Web de EGL. rio con una página web. Un manejador de páginas propor-
Esta perspectiva es parecida a la perspectiva EGL pero tiene ciona datos y servicios a una JSP, que es la encargada de
unas cuantas vistas más pensadas para ayudar a desarrollar mostrar la página. El propio manejador de páginas incluye
un sitio web. Estas vistas adicionales son las siguientes: variables y manejadores de eventos, que se llaman en res-
Paleta contiene plantillas de páginas, códigos de JSP y com- puesta a una determinada acción del usuario (por ejemplo,
ponentes de JSF, así como los componentes de EGL que haya al pulsar un botón). La estructura básica de pageHandler
▲
desarrollado, que puede simplemente arrastrar y soltar para se genera automáticamente cuando se usan los asistentes ▲
crear un control JSF en una página JSP. de JSF y EGL, pero tendrá que añadir su propio código ▲
Datos de página lista todos los datos disponibles de una escrito en EGL para implementar la lógica.
▲
▲
▲
▲
▲
▲
A
ntes de que su empresa se embarque JavaScript se utiliza para realizar operaciones de edición en
el lado del cliente y para animar la IU del navegador (con
en el desarrollo de una aplicación es-
cosas como menús que se desplazan por la ventana y HTML
crita en Java basada en web, tendrá dinámico).
que considerar la posibilidad de uti- Hay que comprender que las ediciones del código escrito en
JavaScript –así como las más sofisticadas operaciones de va-
lizar varias tecnologías Java del
lidación y manejo de errores– también deben programarse
lado del servidor. Las tecnologías obvias son HTML, en Java en el lado del servidor de la aplicación. Esta indiscu-
JavaBeans, páginas JavaServer (JSP) y servlets. tible redundancia en el código aumenta la complejidad de la
aplicación, pero a veces es necesaria para reducir el tiempo
Probablemente habrá oído hablar de Struts y de la
de ida y vuelta hasta el servidor.
técnica de diseño Modelo/Vista/Controlador (MVC),
pero, ¿qué pasa con JavaScript, JSTL (JSP Stan- Páginas JavaServer
Una página JSP es HTML con código Java incrustado. Pue-
dard Tag Library) y la tecnología más reciente de
den escribirse aplicaciones web totalmente en JSP. He visto
Sun, JSF (JavaServer Faces)? En este artículo en- algunas. Lo que no he visto es aplicaciones escritas única-
contrará la información que necesita para seleccio- mente en JSP que puedan mantenerse. La experiencia nos
dice que debe haber tan poco código escrito en Java como sea
nar la combinación tecnológica más apropiada para
posible. Sirva de ejemplo el fragmento de código escrito en
sus aplicaciones. JSP de la Figura 1. El código escrito en Java que contiene es
moderadamente complejo; sirve para procesar una lista de
HTML y JavaScript objetos Customer (Cliente) y ni siquiera muestra el código
Independientemente de la fiabilidad demostrada a lo largo JSP verdaderamente complejo que crea la lista de clientes.
de tanto tiempo de la interfaz 5250 del iSeries, HTML es la Hay varios problemas con la estrategia de escribir progra-
nueva interfaz de usuario. Las aplicaciones basadas en HTML mas exclusivamente en JSP:
ofrecen funciones de tipo GUI (como botones de selección,
recuadros de selección, listas de selección desplegables y po- 1.Se necesita un desarrollador en Java para mantener la IU.
sibilidad de utilizar el ratón), pero no están controladas por 2.El código escrito en Java no se puede comprobar, depurar o
eventos como una GUI de Windows. Cuando un usuario pul- mejorar fácilmente.
sa el botón Enviar, todos los datos de entrada del panel se 3.Es un sistema de desarrollo monolítico que no aprovecha la
envían al servidor. mejor característica de Java: el desarrollo basado en com-
▲ Ahí es donde entra en escena JavaScript. JavaScript (que ponentes.
▲ no es Java) es un lenguaje de scripts basado en el navegador.
▲ Puede añadir funciones de JavaScript a casi cualquier ele- Biblioteca JSTL
mento HTML para responder a varios eventos (por ejemplo, Publicada en 1999, la especificación JSP incluía la posibili-
Programación y sistemas
onClick, onChange, onKeyPress, onLoad u onFocus). Ya sé dad de crear códigos HTML personalizados. Pero cuando los
que acabo de decir que HTML no está controlado por even- desarrolladores empezaron a utilizar esta característica, re-
tos, pero lo que le estoy diciendo ahora es que se puede utili- sultó que todos creaban bibliotecas de códigos HTML que en
zar JavaScript para manejar los eventos de la IU de HTML. el fondo eran muy parecidas. La respuesta de Sun vio la luz
La cuestión es que JavaScript está limitado en lo que puede en 2002: la biblioteca JSTL (JSP Standard Tag Library). Sin
hacer para responder a un evento. No puede acceder a una embargo, muchas empresas, incluyendo la mía, hicieron caso
base de datos. No puede grabar a disco. No puede ejecutar omiso a JSTL, ¿Por qué? En parte por la pereza de utilizar
programas escritos en RPG. Todo lo que puede hacer otra tecnología nueva. Pero, sobre todo, porque cuando se pre-
JavaScript es modificar la información mostrada con HTML. sentó JSTL, los servidores de aplicaciones que estábamos
go de componentes IU de JSF puede ampliarse fácilmente, piedades y mostrarse con códigos de JSP.
de modo que es posible personalizar el comportamiento de Un gran problema que se daba con el desarrollo con Struts
la IU. La arquitectura de componentes permite a los pro- era la programación del proceso de presentación, validación
veedores de IDE crear herramientas WYSIWYG de arras- y visualización de los resultados. De hecho, un conocido libro,
trar y soltar similares a las herramientas de desarrollo “Jakarta Pitfalls: Time-Saving Solutions for Struts, Ant,
rápido de aplicaciones (RAD) de VisualBasic, PowerBuilder JUnit, and Cactus” (John Wiley & Sons, 2003) dedica la
y Delphi. mayoría de sus capítulos a ofrecer soluciones a los problemas
Al igual que Struts, JSF tiene funciones de validación. Pero de desarrollo con Struts. De todas formas, JSF no tienen nin-
el código de validación de JSF está en el sitio al que pertene- guno de esos problemas. Los beans de datos se asocian con
▲
▲
▲
jsfcentral.com
Una lista de novedades sobre JSF, preguntas más frecuentes,
artículos, libros y otros recursos
Libros
“JavaServer Faces Programming”, Budi Kurniawan (McGraw-
Hill, 2003)
“JavaServer Faces”, Hans Bergsten (O’Reilly, 2004)
“JavaServer Faces in Action”, Kito Mann (Manning, 2004) Don Denoncourt es consultor en WebSphere de Computer Applications
Specialists, Inc.
▲
▲
▲
MANTENIMIENTO Y BROKERAGE
INFORMÁTICO, S.L.
Mantenimiento / Alquiler y
Brokerage / Venta / Redes
Backup Center
Pere IV 78-82, 7º 3ª
08005 - Barcelona (Spain)
T. 34 934 854 427 Fax 34 934 850 168
P.T.A. Edificio CENTRO EMPRESAS 29590 Málaga
■ System z9, larga vida al mainframe IBM Systems Agenda que pretende ser la respuesta a un nue-
vo escenario de trabajo, el colaborativo. La iniciativa se sus-
¿Quién dijo que el mainframe había muerto? IBM defiende
tenta en tres pilares: virtualización ("una buena manera de
su vigencia y apuesta por seguir renovando su gama de equi-
tener un entorno flexible, fácil de gestionar y con ahorro de
pos, pioneros a la hora de incorporar determinadas tecnolo-
costes"), el compromiso con los estándares abiertos ("para que
gías y avances que luego se van incorporando al resto de los
el cliente tenga la libertad de poder integrar todo aquello que
servidores de la compañía. Así, IBM ha lanzado la iniciativa
quiera o necesite") y la colaboración para innovar.
Los primeros anuncios que efectúa IBM bajo el paraguas
de su Systems Agenda son Virtualization Engine 2.0, la crea-
INDICE DE ANUNCIANTES SEPTIEMBRE 2005 ción de Blade.org (asociación promovida junto a Intel) y el
nuevo mainframe IBM System z9 que, según Álvaro Álvarez
Empresa Página Santullano, director de ventas de zSeries de IBM, es un pro-
ducto “para todo tipo de empresas, incluidas las medianas o
AMERICAN TOP TOOLS ............................................ 27, 40 pequeñas, y piedra angular de Systems Agenda”. De acuerdo
CACOVAI ................................................................................ 37 con IBM, el z9 es uno de los sistemas de cómputo más
CPI SOFTWARE ..................................................................... 19 confiables y seguros que jamás se hayan construido. Además,
GUÍA ................................................................................. 40, 41 duplica en potencia de procesamiento, capacidad y memoria
IBM .................................................................. Contraportada a su antecesor, el eServer z990, conocido familiarmente como
LAKEVIEW ............................................................................... 31 “T-Rex” (“Tiranosaurio Rex”).
MAIN MEMORY ....................................... Interior Portada Sigilosamente, IBM sigue avanzando en el proyecto ECLipz
MICROSOFT .............................. Interior Contraportada
(enmarcado en la iniciativa “Power Everywhere”) del que casi
OCÉ ........................................................................................... 13
nadie habla y cuyo acrónimo nos sugiere una convergencia
SOFTWARE GREENHOUSE............................................... 23
entre las series i, p, y z de la empresa, basada en la arquitec-
SUSCRIPCION NEWS/400 .......................................... 25, 39
TANGO/04 ................................................................................ 9 tura del chip Power6, previsto para finales de 2006. ■
TRANSTOOLS ........................................................................ 33 Como sabes, esta información es estrictamente confidencial. Aunque nosotros
neguemos haberlo dicho o escrito, te autorizo a que obres en consecuencia