Вы находитесь на странице: 1из 44

181

editorial

Celebramos
otro aniversario
¡ ServerNEWS acaba de cumplir 18 años, y a partir de este número seremos
mayores de edad! ¿Cambiará eso nuestra vida? ¿Seremos más creativos y
decididos desde ahora? En la vida real, al celebrar este cumpleaños uno desea
ser más proactivo buscando materializar sus propias ideas, ser original y di-
ferente a los demás, esforzándose en la creatividad y sobreponiéndose a todas
los condiciones internas y externas que se presentan, vivenciando la capacidad de
decidir, de lograr que los propios sueños se hagan realidad. Con la necesidad bási-
ca de sentirse reconocido, deseamos alcanzar la mayoría de edad para adquirir
todas las posibilidades de ser autosuficientes en el dificil arte de vivir la vida.
En ServerNEWS, tras dieciocho años de circulación ininterrumpida como medio
natural de información del entorno System i de habla hispana y de haber enviado
más de 55 millones de páginas a nuestros lectores para ayudarles en su quehacer
cotidiano, también sentimos esta inquietud interna, propia del adolescente, que
presiente que con su mayoría de edad ha llegado la hora de prescindir de muchos
convencionalismos para poder materializar todos sus sueños. En ello estamos; en
un debate interno franco y abierto del que podría surgir una revista más propia
del siglo XXI que del siglo XX.
Los años transcurridos nos obligan a recordar sus orígenes en febrero de 1990,
año en el que, para situarnos en un contexto cotidiano, comenzaron las emisiones
de Antena 3, la primera cadena de televisión privada a nivel estatal. Un año en el
que a nivel profesional los PCs todavía utilizaban el DOS en modo texto cuando
Microsoft presentó su Windows 3.0 y en el que Tim Berners-Lee definió las bases
del WWW en el CERN de Ginebra. Ni existía Linux, ni Java, ni PHP, por citar sólo
unas pocas referencias. Ni tan siquiera existía el formato PDF y la revista, enton-
Imagen de la portada: Mike Friehauf
ces llamada HELP400, se editaba tras un largo proceso de fotocomposición de tex-
Suscripción: Anual (10 números tos desde el que se obtenían los fotolitos para insolar las planchas que permitían
al año, no en Julio y Agosto).
España: 96 euros (IVA incluido). su impresión.
Extranjero: 180 $ USA (incluido el
envío por Correo Aéreo). Se Ese es el camino que a todos nos marca el progreso. A diferencia del especial del
distribuye a final de mes. XV aniversario o de la llegada al número 100, este número festeja su mayoría de
© Publicaciones HELP400, S.L. edad de una manera más sencilla y humilde, pero eso sí, con material fresco y de
Se prohibe la reproducción total o parcial calidad, como lo ha venido haciendo desde siempre. Con él hemos querido resaltar
de los artículos aparecidos en este
número sin la autorización expresa por el rejuvenecimiento del entorno centrándonos en el lenguaje PHP y a la base de
escrito de la empresa editora, titular del
Copyright. Todos los derechos reservados datos MySQL, ambos de código libre y líderes del sector, que puede aportar mu-
en cualquier idioma. chas aplicaciones adicionales y flexibilidad para el desarrollo de las empresa equi-
ServerNEWS es una publicación
independiente de grupos de usuarios y/o padas con System i..
de distribuidores de marcas. De las ideas
expuestas en los artículos firmados son
responsables sus autores. Corresponde al
¡Muchas gracias amigos suscriptores y lectores en general por permitirnos lle-
lector el asegurar que las noticias, gar cada mes a sus escritorios y por apreciar este esfuerzo editorial durante estos
técnicas y procedimientos descritos son
adecuados para su instalación. años!
Publicaciones HELP400 S.L. no
asume ninguna garantía ni implícita ni
explicitamente.
La empresa editora no se responsabiliza de
la asiduidad en la distribución gratuita a
las empresas españolas equipadas con
S/3X o AS/400.

IBM y AS/400 son marcas registradas


Antonio Montía
por International Business Machines. a.montia@help400.com

www.help400.es FEBRERO 2008 ServerNEWS 3


sumario
ANTES HELP400, LA REVISTA PARA EL PROFESIONAL DE LOS S/3X Y AS/400

equipo editorial
Director: Antonio Montía
en portada
Redacción: Carlos Bell, Alberto C. Blanch,
Equipo internacional de iSeries NEWS
Colaboradores habituales: Jaime Gustavo
Estany, José Mª Martín, Lluís Peiret
Traducciones: Pere J. Francisco Brumós
10 MySQL ofrece aplicaciones para i5/OS
por Craig Johnson y Erwin Earley
Cuando todos los System i incluyen i5/OS y DB2 de serie,
producción
¿de qué sirve disponer de otra base de datos? La respues-
Realización: Media Limits S.L.
ta es que MySQL, la base de datos de código libre líder del
Maquetación: Ramiro Esteve Coll
Impresión: G2B gràfic S.L.
sector, puede aportar muchas aplicaciones adicionales y
Distribución: Unipost S.A. flexibilidad para el desarrollo de la empresa.
administración

16
Suscripciones : Nuria Navarro
Instalación y configuración de PHP
Publicidad: Tel. 34- 932 310 049
Fax: 34-932 310 309 por Erwin Earley
Servicio HelpNet: www.help400.es En este artículo se explica cómo instalar los productos de
edita Zend para empezar a programar con PHP en el System i.
PUBLICACIONES Concretamente, cómo podemos instalar Zend Core, el mo-
tor de PHP, y Zend Studio, el entorno de desarrollo inte-
Deposito legal: B-2757-90 grado de PHP.
I.S.S.N. 1698-4501
APTDO. DE CORREOS 8003 - 08080 Barcelona
Gran Vía Corts Catalanes, 715, Entlo. 3ª
08013 - Barcelona
Tel.: 932 310 049
20 Diez productos PHP que puede ejecutar
en System i
por Alan Seiden
E-mail: help400@help400.com
El autor ha seleccionado diez
Director General: Alberto C. Blanch Llangostera
componentes muy interesan-
Publicado con la participación de tes de código libre escritos en
PHP que, como veremos, son
- iSeries NEWS muy fáciles de instalar en
www.pentontech.com el System i, crean valor
Group Publisher/Editor: Wayne Madden para la empresa y, en
Group Editorial Director: Dale Agger muchos casos, son muy
Penton Technology Media gráficos.
Darrell C. Denny, President
Penton Media, Inc.
David Nussbaum, Chief Executive Officer

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 opinión
Perú

8 ¿Sin avances?
COMMON PERU
Bajada Balta 131, Of. 10, 2º Piso
Miraflores Lima 18, PERU por Dan Darnell
Telf. y Fax: 46 31 32
Dedicando el esfuerzo suficiente, con RPG puede hacerse prácticamente
Paraguay
ANGEL LIERNUR E HIJO cualquier aplicación, pero profesionalmente no se avanza. Para avanzar
P.O. BOX 2448 debe aprender Java o incluso PHP, porque aumentar sus conocimientos
ASUNCION - PARAGUAY
427661@telesurf.com.py de programación es la mejor póliza de seguros en un mundo tan incierto
e-mail: aliernur@yahoo.com como el de la informática.

4 ServerNEWS FEBRERO 2008 www.help400.es


Nº 181 FEBRERO 2008 www.help400.es
en directo

28 Una nueva ola de innovación para las empresas


por Alberto C. Blanch
Según Juan Tonda, Director de la Unidad de Negocio de Servidores y Plata-
formas de Microsoft, la nueva generación de productos Microsoft favorecerá
el proceso de innovación empresarial, donde la tecnología de virtualización
de Windows Server 2008 jugará el papel más importante.

presentación

30 Una solución vanguardista en System i


por Lluís Peiret
Una aplicación basada en ASNA Visual RPG .NET y Adobe LiveCicle ha
permitido al Diario Oficial de la Generalitat de Catalunya publicar en la
web y en un tiempo record las más de 500.000 páginas de las normativas
urbanísticas de todos los Ayuntamientos de Cataluña.

management

32 ¿Qué ofrece laV5R4 a los usuarios del diario y el control


de compromiso?
por Larry Youngren
La V5R4 de i5/OS incluye una serie de mejoras en la protección por diario y
el control de compromiso que pueden resultarles muy atractivas a los usua-
rios. Además, las nuevas funciones aportan una mayor facilidad de uso.

programación y sistemas

36 Amplíe el poder de SQL con sentencias de control


por Jim Flanagan
SQL es, ante todo, un lenguaje de recuperación y manipulación de datos,
forum.help400
F orum.help400 es una lista de correos
pero las sentencias de control otorgan a SQL algunas de las característi- puesta a disposición de los lectores de
cas propias de un lenguaje de programación. ServerNEWS en la que cada día, entre to-
dos los participantes, se solucionan nume-
HELP400 Suplemento Técnico i rosos problemas. Hallará más información
en http://www.help400.es/forum.htm

1 Utilización de SAX y XML Toolkit para procesar XML


con RPG
Por Craig Caulfield
SAX analiza XML como si fuera una corriente de datos y necesita
pocos recursos para procesar el fragmento que pasa en cada mo-
mento. El modelo DOM trata todo el documento XML y necesita
muchos más recursos. Cada API tiene sus ventajas e inconvenien-
SECCIONES
tes y su elección depende de la aplicación a desarrollar.
HABITUALES

12 Los 100 números del Suplemento HELP400


Por Carlos Bell
Sobre los orígenes de este suplemento técnico, exclusivo para los
3
6
Editorial
Novedades
suscriptores de la revista ServerNEWS. 40 Guia
42 Confidencial
www.help400.es FEBRERO 2008 ServerNEWS 5
FEBRERO 2008 ServerNEWS 5
novedades
i5/OS V6R1, una exquisitez
para los usuarios del System i
El pasado 31 de enero IBM presentó oficialmente la V6R1 de i5/OS, la V6R1. Las funciones que ofrece esta nueva versión del sistema
operativo podrían asegurar al System i un lugar permanente en la infraestructura informática de cualquier empresa.

as características más destacables de la nueva versión son las


L capacidades de virtualización de almacenamiento, un mejor ren-
dimiento de Java, el cifrado de las copias de seguridad, mejoras en la
almacenamiento de particiones de i5/OS para particiones de AIX o
Linux. Esta característica requiere sistemas basados en el procesador
POWER6 y en las particiones debe instalarse el release V6R1.
base de datos y Systems Director. Además, se anunció un mejor so- Una solución alternativa al almacenamiento virtual es la
porte para redes de almacenamiento, soporte para BladeCenter, el virtualización basada en VIOS, que se parece a la forma en que los
producto High Availability Solutions Manager para clústeres de dis- System p gestionan la virtualización de almacenamiento. Una sola
cos y la reestructuración de algunas herramientas de desarrollo. partición de dispositivo VIOS se encarga de repartir almacenamien-
“Hay un montón de novedades en este release”, comenta Craig to a otras particiones que ejecutan i5/OS, AIX y Linux. Esta función
Johnson, jefe de producto de i5/OS de IBM. “Y si reunimos un grupo requiere sistemas POWER6 y V6R1 y es compatible con los servido-
de usuarios y clientes, habrá alguna cosa que les interesará a casi to- res de almacenamiento DS4700, DS4800, DS8100 y DS8300.
dos. Hay muchas cosas que satisfacen bastantes necesidades de los Integrated Virtualization Manager permite crear y gestionar parti-
clientes”. Para poder saborearlas, los incondicionales del System i ciones en la partición de VIOS.
tendrán que esperar hasta el 21 de marzo, que es cuando saldrá a la Storage Space Snap Shots permite hacer copias de seguridad de
venta la nueva versión del sistema operativo. los datos mientras una partición virtual o un servidor integrado es-
Los servidores con las versiones V5R3 o V5R4 se pueden actuali- tán activos. Esta mejora es compatible con los espacios de almacena-
zar directamente a V6R1. El soporte para V5R3 finaliza en abril de miento de i5/OS, Windows, Linux, AIX y VMware.
2009. V6R1 puede ejecutarse en equipos System i 800, 810, 825, 870, Una mejora de las particiones lógicas para las agrupaciones com-
890, 520, 550, 570, 595, 515, 525 basados en POWER5, en los 570 partidas de procesadores permite que los usuarios agrupen particio-
basados en POWER6 y en el blade JS22. La próxima versión de i5/ nes en agrupaciones independientes y establezcan límites a la capa-
OS no será compatible con los servidores System i de la serie 800. cidad de procesador que puede consumir cada agrupación. Es
El release V6R1 cuesta lo mismo que el release V5R4, según IBM. compatible con las particiones de los releases V5R4 y V6R1 de i5/OS,
Los precios del sistema operativo básico van desde los 1.795 dólares AIX y Linux en sistemas basados en procesadores POWER6.
por procesador para un i515 hasta los 53.000 dólares por procesador
para los sistemas i570 o i595. Hallará más información sobre los pre- IBM Systems Director Navigator para i5/OS. Una nueva herra-
cios para Estados Unidos en el comunicado 208-014. A grandes ras- mienta basada en web para gestionar i5/OS, Systems Director
gos, lo que IBM anunció en enero es: Navigator para i5/OS se suma a la familia de herramientas Systems
Director de IBM. Es una solución comercial de gestión para i5/OS
i5/OS en un blade. Los sistemas V6R1 pueden ejecutar i5/OS en un que puede ejecutarse en un navegador y una alternativa a iSeries
equipo blade de un Blade Center. i5/OS V6R1 es compatible con el Navigator (que también está disponible en V6R1). En las versiones
blade JS22, un sistema blade POWER6 de 4 GHz de núcleo cuádru- futuras de IBM Systems Director, admitirá varios sistemas operativos
ple. El JS22 puede ejecutarse en los chasis BladeCenter H, capaces distintos en el mismo navegador.
de admitir hasta 14 blades x86 y POWER. Una partición que contie-
ne VIOS e Integrated Virtualization Manager (encontrará más infor- Java y tecnología de servicios web. Una máquina virtual de Java
mación en el apartado relativo a las mejoras en virtualización) ges- de 64 bits facilita a los proveedores de software la portabilidad de
tiona los recursos y el almacenamiento del sistema blade (sobre una aplicaciones y permite mejorar el rendimiento de la JVM clásica. El
SAN; es compatible con los servidores de almacenamiento DS4700, servidor de aplicaciones web integrado (el mismo servidor de aplica-
DS4800, DS8100 y DS8300 o la unidad de cinta SAS externa). i5/OS ciones web usado por DB2 Web Query) simplifica la instalación de
en BladeCenter también admitirá VMotion de VMware. En el futuro aplicaciones escritas en Java, admite JSF, JSP y servlets y permite
ofrecerá compatibilidad con el chasis S, que admite hasta seis equi- acceder a DB2 para i5/OS. Un nuevo entorno de servicios web inte-
pos blade x86 y POWER además de 12 discos. grado facilita la utilización de programas escritos en RPG y COBOL
como servicios web y la invocación de servicios web desde programas
Red de almacenamiento (SAN). Un nuevo adaptador Fibre escritos en RPG, COBOL, C y C++.
Channel (4 Gbit, sin IOP, con adaptadores de dos puertos) mejora de En el release V6R1 también hay mejoras en el rendimiento de Java
tal forma el rendimiento de E/S que es comparable a usar almacena- y WebSphere, principalmente en JDBC, DB2 para i5/OS y Java (in-
miento interno. Su capacidad aumenta hasta 64 LUN por puerto, cluidas páginas de 64K).
mejora la flexibilidad ya que se le pueden conectar discos y cintas, y
permite arrancar desde cinta. El adaptador necesita V6R1 y un sis- Mejoras en la seguridad. En el release V6R1 se presentan funcio-
tema basado en el procesador POWER6. Es compatible con el DS8000. nes de cifrado por software que permiten que los clientes puedan
cumplir determinadas normativas. Las compañías pueden cifrar los
Mejoras en virtualización. La virtualización basada en i5/OS per- datos grabados en cintas de copias de seguridad así como los datos
mite que sus particiones utilicen recursos de disco y almacenamien- que residen en el disco de una agrupación de almacenamiento auxi-
to de otra partición de i5/OS, eliminando la necesidad de adquirir liar. En el release V6R1 también se mejoran las capacidades de de-
adaptadores y unidades de disco para cada partición de i5/OS del tección de intrusiones gracias a la notificación en tiempo real de pro-
sistema. Funciona igual que el proceso actual de virtualización de blemas de seguridad mediante buscapersonas y mensajes de correo

6 ServerNEWS FEBRERO 2008 www.help400.es


electrónico, y se ofrecen medidas preventivas que pueden evitar que ■ Bartech presenta Gestionar y mejorar los flujos
los clientes inicien un ataque de denegación de servicio (DoS). IBM Robot/SCHEDULE, el de información y ganar tiempo de
también ha reforzado la integridad de i5/OS mediante firmas planificador de respuesta al eliminar la reinser-
digitales para todos los ejecutables de i5/OS y la erradicación de trabajos multisistema ción de los datos.
cualquier tipo de programa alterado (es decir, no aprobado por IBM) Reducir sus costes de impresión
que se ejecute en un estado del sistema. Bartech, distribuidor de la solu- y de envío postal al reemplazar los
ción de Automatización de Opera- procedimientos en papel por la
High Availability Solutions Manager. Una nueva solución de ciones Robot, anuncia la disponi- facturación y el intercambio elec-
clústeres de discos para alta disponibilidad y recuperación en caso bilidad de Robot/SCHEDULE trónico.
de siniestro que es capaz de prestar servicios de aplicación de forma 10.0, el más completo y aclamado Nuevos módulos aportan sopor-
prácticamente ininterrumpida. Permite copiar datos mediante i5/ Planificador de Trabajos para te multiplataforma (ASCII, EBC-
OS y la característica de duplicación de discos (DS8000). Los datos System i. DIC, CSV, XML y PDF); posibili-
de las IASP se copian de forma síncrona. Ofrece la función de con- La nueva versión permite pla- dad de introducción de variables
mutación por anomalía automática o manual y nuevas posibilida- nificar trabajos en múltiples ser- para acceder a bases de datos; o
des de administración. vidores, sean éstos todos System conexión a SAP R/3.
i o estén mezclados con sistemas Para más información,
Performance Data Investigator. En V6R1 se incluye sin coste Windows o Unix, y controlar su Telf.: 900.973.397
adicional una nueva herramienta para investigar el rendimiento ejecución desde una consola grá- www.symtrax.es
(Performance Data Investigator) que mejora la forma de consultar y fica.
analizar los datos de los servicios de recogida de i5/OS. Permite la Robot/SCHEDULE puede eje-
visualización de los datos en gráficos y tablas. Los archivos de los
servicios de recogida de versiones anteriores pueden convertirse al
cutar los trabajos según un calen- ■ Sowre recibe el
dario, en reacción a otros eventos, Lotus Distiguished
formato del release V6R1 para consultarlos con la herramienta. o luego de verificar la finalización Achievement Award
o prerrequisitos de cualquier tra- 2008
Mejoras en DB2. Por lo que hace a DB2 para i5/OS, se mejora el bajo, aunque esté en un sistema
rendimiento, se mejoran los informes personalizables de On-Demand diferente. En servidores Windows IBM, para premiar la labor en la
Performance Center, se añaden más funciones a la base de datos y y Unix, puede controlar las apli- implantación de soluciones de co-
se incluye la posibilidad de hacer búsquedas de texto completo en caciones críticas de negocio, veri- laboración Lotus y portales em-
documentos mediante DB2. ficar el estado de los procesos y presariales WebSphere, ha otorga-
servicios, transferir ficheros entre do a Sowre Consulting España
DB2 Web Query. El producto dispone de un nuevo componente de sistemas automáticamente, ini- el Lotus Distiguished Achieve-
habilitación de licencias de usuario que ofrece opciones de precios ciar trabajos, etc. Y ante eventos ment Award 2008 como mejor
más flexibles. La licencia para un solo usuario puede definirse como que necesitan atención urgente, partner en la región Southwest
de “autor” de informes, que crea y edita informes con herramientas puede recibir un mensaje al ins- Europe (que incluye a Francia,
basadas en web, o bien como de “grupo de usuarios que sólo ejecutan tante por SMS o email. Italia, Belgica, España, Portugal,
informes” cuya única finalidad es ejecutar informes, con lo que las Robot/SCHEDULE está desa- Grecia, Holanda, Luxemburgo,
empresas que tienen un gran número de usuarios que sólo ejecutan rrollado por la empresa Help/ Turquia, Israel y también el Nor-
informes verán reducidos los precios de la licencia. Systems y actualmente cuenta te de Africa).
con más de 15.000 usuarios en El premio, que reconoce al me-
Reestructuración y mejora de herramientas de desarrollo.
todo el mundo. jor Business Partner de cada re-
IBM ha hecho grandes cambios en la presentación y precios de las
Para más información, gión, ha sido entregado en la
herramientas de desarrollo del System i. En el momento de redac-
Telf.: 933.063.523 ceremonia de inauguración de
tar esta nota no se conocían los detalles, pero las herramientas de
www.bartech.es Lotusphere 2008 en Orlando, Es-
Rational para crear aplicaciones de i5/OS son: Host Access
tados Unidos
Transformation Services (HATS) para aplicaciones 5250 v7.1 (com-
bina HATS y WebFacing en un solo producto que simplifica las op- ■ Symtrax anuncia la Con esta distinción IBM premia
los resultados obtenidos por So-
ciones de precios y licencias) para transformar pantallas 5250 en actualización de
wre en los últimos años en la im-
interfaces de usuario modernas; WebSphere Development Studio Compleo Suite 4.
plantación de soluciones basadas
(WDS) v7.1/Rational Developer para System i v7.1 (el paquete for-
Symtrax anuncia la actuali- en el software de IBM y reconoce
mado por el compilador y las herramientas de WDS reemplaza a
zación 4.1 de su Output Manage- su papel de liderazgo en la comu-
WDSc con un modelo de precios según el número de usuarios) para
ment Suite que permite gestionar nidad mundial de implantadores
ampliar las funciones principales de la empresa como servicios; y
fácilmente los spools y los archi- de su tecnología de colaboración
Rational Developer en System i para SOA Construction v7.1/Rational
vos de salida (OutQ) para: Lotus.
Business Developer v7.1 para crear aplicaciones de última genera-
Distribuir la información proce- Para más información,
ción para Internet, intranet e inalámbricas para el System i.
dente de los archivos de spool de Telf.: 902.885.305
Conversión de programas de i5/OS. Para ejecutar V6R1 es forma sencilla y económica. www.sowre.es
necesario un nuevo paso de conversión de programas. La conversión
necesita datos de creación del programa (observabilidad) y se reali- Si como proveedor posee alguna novedad relacionada con el entorno System i - iSeries
za durante la instalación o restauración de aplicaciones la primera - AS/400 de IBM, recuerde que en esta sección dispone de un espacio gratuito para darla
vez que se usan o programándola a una hora determinada. ■ a conocer a todos nuestros lectores.
Puede enviar sus notas de prensa a Ser verNEWS mediante correo electrónico
(help400@help400.com), o bien a Gran Vía Corts Catalanes, 715, Entlo 3ª 08013 -
Rita-Lyn Sanders es colaboradora habitual de la revista System iNEWS. Barcelona. Para la inclusión de fotografías o logos, agradeceríamos que las remitieran en
formato electrónico.

www.help400.es FEBRERO 2008 ServerNEWS 7


opinión por Dan Darnell

¿Sin avances?
E
ntre los programadores de nibilidad mediante clústeres y cosas así. No hay. Pedí infor-
RPG aprecio tendencias que, si mación sobre el diseño de elementos que contribuyan a la
bien no son realmente pasos escalabilidad y a la reutilización de componentes. Estas cues-
atrás, podría decirse que tam- tiones no se contemplan en sus soluciones.
poco representan ningún avance. Una moda que va a más es PHP ha reducido la dificultad de desarrollar aplicaciones
intentar usar RPG para hacerlo todo. Con llamadas a las API web para los desarrolladores que trabajan con System i, pero
aquí, invocaciones a funciones escritas en C allí, con un poco también ha puesto en peligro la empresa para la que traba-
de chicle y algo de alambre, ¡RPG puede hacer cualquier cosa! jan. Es fácil crear una aplicación web que manipule los datos
¡Qué desperdicio! Si ese tiempo, esfuerzo y creatividad se apli- de la empresa pero, ¿satisfará esa aplicación las necesidades
caran a resolver problemas de la empresa en vez de escribir, –necesidades importantes, como la escalabilidad– de la em-
vamos a suponer, programas de utilidad de sockets de TCP y presa el mes que viene, el año próximo? Para diseñar una
un analizador para HTTP, piense en el valor que se habría aplicación en PHP robusta, escalable y segura, tendrá que
creado para la empresa. superar los mismos obstáculos que se encontrará si crea esa
Dedicando suficientes esfuerzos, RPG puede hacerlo prác- misma aplicación en Java.
ticamente todo, pero utilizarlo de esa forma es como intentar Yo utilizo PHP con un solo fin: portar o extender una solu-
meter una pieza cuadrada en un agujero redondo. Con un ción de código libre a mi System i para satisfacer una necesi-
martillo podría llegar a meter la pieza, pero sería mucho más dad concreta de la empresa. Estoy convencido de que Java
fácil usar la clavija redonda. En el mundo actual de las TI se (concretamente Java EE en combinación con infraestructuras
necesita algo más que RPG para crear aplicaciones de pri- ampliamente aceptadas) sigue siendo el camino que hay que
mer orden. La gente que tiene un actitud cerrada y cree que seguir para desarrollar aplicaciones web cruciales de las que
únicamente existe “RPG y sólo RPG” tienen que entenderlo y el System i forme parte de la solución. Las he visto funcio-
ampliar sus aptitudes. nando a pequeña escala y en grandes empresas. Funcionan
Yo mismo, veterano programador de RPG, aprendí Java hace en sitios de comercio electrónico y en los dominios tradicio-
diez años. Programar en Java me permite trascender los lí- nales de nuestro querido RPG, como la gestión interna. Ade-
mites de las plataformas sin esfuerzo. Puedo concentrarme más, con este enfoque, encontramos todos los elementos ne-
en solucionar los problemas de la empresa y crear soluciones cesarios para desarrollar soluciones escalables de alta
en el PC, dispositivos inalámbricos, en la web y en el System disponibilidad.
i. (A menudo, RPG también tiene un cometido, especialmen- Cuando leo este tipo de opiniones de otros, suelo pensar
te si hay código heredado de por medio). La libertad de poder que son partidistas: los de Java contra los de PHP. Puede que
ofrecer soluciones para cualquier combinación de platafor- se me pueda acusar de ser partidista hasta cierto punto, pero
mas significa que puedo entregar aplicaciones que superan los motivos para escribir este artículo son más profundos. El
las expectativas de mis clientes. Con soluciones diseñadas año pasado fui víctima de una consolidación corporativa. El
como es debido consigo ser más eficaz con cada proyecto rea- pez grande que se nos comió subcontrata muchas de sus ta-
lizado, de modo que aunque cada vez hago más cosas por la reas informáticas y es cada vez más común que contrate los
empresa, sigo cumpliendo los plazos de entrega previstos. servicios externalizados fuera del país. Mi postura de “aquí
En los últimos 12 ó 18 meses, ¿ha desaparecido por comple- nunca pasará eso” rápidamente cambió a “ha pasado y me
to el interés por Java en el System i? Creo que sí. ¿Es por qué van a despedir”.
todos los incondicionales del System i ya sabemos Java y, por No me importa lo más mínimo que aprenda PHP. ¡Hágalo!
lo tanto, es algo que damos por sentado? Me parece que no. Pero no se quede ahí. Para tener verdadero valor comercial
Creo que el interés menguante lo explican las letras P, H y P. no basta con saber RPG y PHP. Las arquitecturas seguras,
Los comentarios que oigo de muchos programadores de la co- fiables y escalables requieren tecnologías empresariales como
munidad del System i son del estilo “¡Menos mal que tenemos Java EE. Sólo tendrá realmente valor comercial cuando su
PHP en el System i! ¡Ahora ya no tenemos que aprender Java!” currículo refleje que tiene conocimientos de éstas. También
Mis amigos me cuentan historias de cómo han escrito apli- puede verlo de esta forma: mejorar continuamente sus cono-
caciones web con PHP y de cómo todo encaja en su sitio al cimientos de programación ayuda a su empresa actual y ade-
instante, sin dificultad, y ahora tienen aplicaciones web en más es su mejor póliza de seguros en un mundo tan incierto
sus System i. Sin embargo, cuando indagué sobre estas expe- como el de la informática. ■
riencias tan positivas, oí cosas que me produjeron escalofríos.
Pregunté por la seguridad y parece ser que generalmente no Dan Darnell es autor del libro “Java and the AS/400, 2nd Edition: Practical
existe. Hice preguntas sobre la arquitectura global, con la Examples for the iSeries and the AS/400” (publicado por 29th Street Press) y
intención de saber cuáles son las posibilidades de alta dispo- consultor independiente de Little Rock (Arkansas).

8 ServerNEWS FEBRERO 2008 www.help400.es


www.help400.es FEBRERO 2008 ServerNEWS 9
Para «ejecutar sin más» en el
System i aplicaciones escritas en
PHP, también se necesita MySQL

por Craig Johnson


y Erwin Earley

n julio del año pasado, MySQL AB anunció que su

E base de datos MySQL estaba disponible para i5/


OS. Pero, ¿realmente necesitamos una segunda
base de datos? Ya ejecutamos nuestras aplicacio-
nes de negocio en DB2 para i5/OS. Está integrada
en el sistema, es robusta, fácil de usar, tiene todas las funcio-
nes imaginables, es altamente escalable y es compatible con
miles de aplicaciones. Cuando todos los servidores System i
incluyen i5/OS y DB2 de serie, ¿de qué sirve disponer de otra
base de datos?
La respuesta, en pocas palabras, es que MySQL puede apor-
tar aplicaciones adicionales y flexibilidad para el desarrollo
de la empresa. Es la base de datos de código libre líder del
sector con más de once millones de instalaciones. Mi-
les de aplicaciones y scripts están escritos para la
base de datos MySQL y la comunidad de
desarrolladores de MySQL está formada por
millones de programadores de todo el mundo.

Todo empezó con PHP


En abril del año 2006, IBM y Zend anunciaron que tra-
bajarían juntas para portar el popular lenguaje de scripts
PHP a i5/OS (consulte el recuadro “PHP y el System i”, en la
página 12). El equipo del System i quería que los usuarios
tuvieran más opciones a la hora de desplegar aplicaciones
web. PHP puede usarse como una alternativa a Java y .NET
o junto con estos conocidos entornos de desarrollo. Una de las
ventajas de PHP es que la comunidad que usa esta tecnolo-
gía de desarrollo es muy grande y activa.

10
10 ServerNEWS
ServerNEWS FEBRERO
FEBRERO2008
2008 www.help400.es
www.help400.es
• Hacer uso de la cartera de productos escritos en
FIGURA 1 PHP: ejecutar en i5/OS aplicaciones comerciales o de
Conexión de PHP con MySQL código libre escritas usando PHP y MySQL (nota: como
tanto PHP como MySQL son compatibles con i5/OS,
<?php
estas aplicaciones pueden ejecutarse en i5/OS sin ne-
// Open the database connection cesidad de modificar el código fuente).
$connection = mysql_connect(“localhost”, “user”, “password”);

// Select the test database Un reciente comunicado de prensa de Zend destaca


mysql_select_db(“test”, $connection);
cinco clientes de System i que han instalado PHP en
i5/OS. Parts Depot ha desarrollado una aplicación de
// Run a query against the database connection
gestión de pedidos para sus operaciones de venta al
$result = mysql_query (“SELECT * FROM testtable”, $connection); por menor. Cremer (un fabricante de material médi-
// While there are still rows in the result set, fetch the
co) ha creado aplicaciones nuevas para su centro de
// current row into the array $row atención telefónica; FSIP (un fabricante de controles
while ($row = mysql_fetch_array($result, MYSQL_NUM))
para vehículos eléctricos) usó una aplicación de lec-
{ tura inalámbrica de códigos de barras para reducir
// Print out each element in $row
foreach ($row as $attribute)
gastos; MedDirect (una compañía financiera especia-
print “($attribute) “; lizada en asistencia sanitaria) creó un portal web
// Print a carriage return to neaten the output
nuevo en cuatro semanas que permitió a los usuarios
print “\n”; acceder y gestionar sus cuentas; e ICS (un proveedor
}
?>
de soluciones informáticas) utilizó las capacidades de
PHP 5 como lenguaje orientado a objetos para crear
un sistema de distribución del trabajo de los contra-
tos de mantenimiento. Hallará más información so-
bre esas implantaciones en PHP en http://
Para mejorar el valor de sus productos para i5/OS, Zend www.zend.com/en/company/news/press/ibm-system-i-
incluyó extensiones y un kit de herramientas en Zend Core community-galvanizes-around-php.
para i5/OS con el fin de ofrecer un acceso sencillo y rápido
a las aplicaciones y datos de i5/OS. Con estas característi- El camino a MySQL
cas de integración, las aplicaciones escritas en PHP pue- Las aplicaciones escritas en PHP nos llevan a MySQL. Una
den acceder a DB2 para i5/OS, llamar a aplicaciones es- encuesta realizada entre más de 6.800 desarrolladores que
critas en RPG, usar áreas de datos y colas de datos, trabajan con MySQL determinó que PHP es el lenguaje que
etcétera. usan el 60% del tiempo (dev.mysql.com/tech-resources/
La comunidad de i5/OS ha participado activamente en quickpolls/connectors-apis.html). Pueden encontrarse miles
la comunidad de PHP. El foro de Zend para i5/OS de aplicaciones y scripts escritos en PHP en sitios como
(www.zend.com/forums) es varias veces más activo que sourceforge.net y hotscripts.com. Se trata de aplicaciones de
foros semejantes de otros productos de Zend. Y los clientes comercio electrónico, de gestión de contenidos, portales, wikis,
del System i están haciendo muchas cosas con PHP, inclu- blogs y foros (por mencionar sólo unas cuantas). También se
yendo: ha desarrollado un número enorme de aplicaciones de uso
interno. La mayoría de estas aplicaciones de PHP están es-
• Consolidación: pasar a ejecutar en i5/OS aplicaciones es- critas usando MySQL como motor de la base de datos. PHP y
critas en PHP que actualmente se ejecutan en Windows o MySQL son dos de los componentes principales de LAMP
Linux que acceden a datos de DB2 con el fin de reducir el (Linux, Apache, MySQL, PHP/Perl/Python), una pila de soft-
tiempo de ejecución o la complejidad de las aplicaciones ware de código libre para la empresa que no deja de crecer.
(nota: puesto que PHP es un lenguaje que se utiliza en el El código de ejemplo de la Figura 1 muestra cómo se co-
servidor, el motor de PHP tiene acceso directo a los recur- necta una aplicación escrita en PHP con la base de datos
sos del servidor, como por ejemplo los datos de DB2, sin MySQL usando sentencias de SQL para leer y grabar datos
necesidad de utilizar controladores intermedios ni la pila en la base de datos (el código PHP se muestra sin el código
de protocolos de la red). HTML que lo rodea). Las aplicaciones existentes basadas en
• Modernización: utilizar PHP para poder utilizar aplicacio- PHP y MySQL no se ejecutarán sin más en una base de datos
nes 5250 con un navegador con el fin de proporcionar nue- distinta. Aunque DB2 y MySQL son conformes con varios
vas soluciones a los socios, proveedores o clientes. estándares de SQL, las diferencias entre ambos productos
• Desarrollo de nuevas aplicaciones: crear aplicaciones nue- hacen que migrar una aplicación escrita en PHP de MySQL
vas con PHP en i5/OS, incluyendo aplicaciones para a DB2 sea un trabajo para programadores.
Internet, intranets y extranets que acceden a información Para “ejecutar sin más” en i5/OS las numerosas aplicacio-
de DB2. nes escritas en PHP, también se necesita MySQL. Aunque

www.help400.es FEBRERO 2008 ServerNEWS 11


■ EN PORTADA

buena parte de los miembros de la comunidad de i5/OS han línea (OLTP) y de data-warehouse multiterabyte. Igual-
conseguido ejecutar MySQL en el sistema operativo del mente, recibirá actualizaciones mensuales y service packs
System i, los clientes querían un producto oficial de MySQL, trimestralmente con los arreglos más recientes de los erro-
uno que se hubiera comprobado en i5/OS, como en las demás res encontrados en MySQL Enterprise Server.
plataformas, y que tuviera el soporte de MySQL AB. – MySQL Network Monitoring and Advisory Service pro-
porciona a los desarrolladores, administradores de bases
MySQL para i5/OS de datos y administradores de sistemas un asistente vir-
En abril del año pasado, en el congreso anual de MySQL, tual de la base de datos que permite hacer cumplir las
MySQL AB (www.mysql.com/company) e IBM anunciaron prácticas aconsejables recomendadas por MySQL. Los
un acuerdo de colaboración tecnológica de dos etapas para asistentes ofrecen recomendaciones personalizadas que
que la comunidad de desarrolladores de la base de datos le ayudarán a eliminar vulnerabilidades de seguridad,
MySQL diera soporte a la plataforma System i. En julio, se mejorar la duplicación, optimizar el rendimiento, etcéte-
hizo realidad la primera etapa del acuerdo: la base de datos ra.
MySQL ya está disponible en el release V5R4 de i5/OS. MySQL – MySQL Production Support permite obtener rápidamente
AB ofrece dos productos nuevos para i5/OS: respuesta a las preguntas técnicas más difíciles. Además,
con Consultative Support, que se incluye con MySQL
• MySQL Enterprise para i5/OS. La suscripción a MySQL Enterprise Platinum, el equipo de soporte de MySQL le
Enterprise es la oferta más completa de software, servicios asesorará sobre la mejor forma de diseñar y optimizar
y soporte de MySQL que garantiza que la empresa alcan- los servidores, los esquemas, las consultas y la configu-
zará los niveles más altos de fiabilidad, seguridad y tiempo ración de duplicación de MySQL para conseguir un ren-
de actividad. MySQL Enterprise incluye: dimiento óptimo.

– El software MySQL Enterprise Server 5.0 es la versión • MySQL Community Server para i5/OS. MySQL AB tie-
más fiable, segura y actualizada de la base de datos de ne como meta ofrecer MySQL Community Server a la co-
código libre para crear de forma económica aplicaciones munidad de desarrolladores de código libre. MySQL
de comercio electrónico, de proceso de transacciones en Community Server es gratuito y se distribuye bajo la licen-

PHP y el System i

P
HP es un lenguaje de scripts de código libre fácil de desarrollar aplicaciones basadas en PHP pensadas para
usar para aplicaciones web. Se ejecuta en el servi- instalarlas en i5/OS). Estos dos productos están disponibles
dor y tiene acceso a recursos de éste. PHP normal- de forma totalmente gratuita para los clientes de System i
mente está incrustado en el código HTML y permite con tres años de soporte estándar (basado en web). Esta
obtener aplicaciones web muy funcionales. Es esencial que oferta es exclusiva para la plataforma System i y puede
la lógica de la empresa se encargue de proporcionar datos ahorrar a una empresa miles de dólares si se compara con lo
y acceso de forma dinámica. Sitios de Internet tan conoci- que cuesta adquirir los productos de Zend para otras
dos como Yahoo! o Facebook incorporan PHP en sus plataformas.
sitios. Informes como las estadísticas de uso de Netcraft Como se explica en el artículo “Instalación y configuración de
(www.php.net/usage.php) muestran que más 20 millones de PHP” (en la página 16), Zend Core y Studio para i5/OS
dominios de Internet utilizan PHP y que un número pueden descargarse del sitio web de Zend tras un sencillo
inmenso de aplicaciones en intranets incorporan PHP como proceso de registro (www.zend.com/en/products/core/for-i5os).
parte de su solución. Estas aplicaciones las han creado los Hasta la fecha, más de 6.000 personas han descargado los
más de seis millones de profesionales que desarrollan productos Zend Core y Studio.
aplicaciones en el lenguaje PHP. Si le interesa disponer de soporte telefónico, Zend también
Como se afirma en su logotipo, Zend (www.zend.com) es tiene ofertas de soporte avanzadas. Zend Platform para i5/OS
“The PHP Company”, es decir, “La empresa de PHP”. Además (otro producto de Zend) mejora el rendimiento, la escala-
de ser la representante de la comunidad de PHP, la empresa bilidad y la facilidad de uso de las aplicaciones escritas en PHP.
ofrece productos, soporte y servicios para PHP en distintas La versión más reciente de Zend Core incluye Zend Frame-
plataformas. En julio de 2006, Zend presentó Zend Core para work, que facilita todavía más el desarrollo de aplicaciones en
i5/OS, el entorno de ejecución para aplicaciones escritas en PHP. Las líneas de productos de Zend son compatibles con
PHP y Zend Studio para i5/OS, una robusta herramienta de los releases V5R4 y V5R3 de i5/OS.
desarrollo para i5/OS. (Nota: Zend Studio para i5/OS es un
IDE que se ejecuta en Windows, Linux o PowerMac y permite — C.J. y E.E.

12 ServerNEWS FEBRERO 2008 www.help400.es


información sobre estas licencias en www.my-
sql.com/company/legal/licensing.
El equipo de desarrollo de i5/OS ha traba-
jado con MySQL AB para que la instalación
de MySQL en i5/OS sea un proceso sencillo.
Aplicación En dev.mysql.com/doc/refman/5.0/en/
installation-i5os.html encontrará documen-
tación sobre cómo instalar MySQL en i5/OS.
Asimismo, a finales del año pasado, se pu-
blicó un libro rojo sobre MySQL en i5/OS,
“Discovering MySQL on IBM i5/OS” (http:/
/www.redbooks.ibm.com/redpieces/abs-
tracts/sg247398.html?Open).

SugarCRM y mucho más


Una de las principales ventajas de MySQL es
que abre la puerta a muchas aplicaciones nue-
vas. Tener soporte tanto para los entornos
MySQL como PHP, facilita la instalación de
este tipo de aplicaciones en i5/OS. Una solu-
Servidor web IBM i5/OS ción es SugarCRM, el principal paquete comer-
cial de gestión de relaciones con los clientes
(CRM) de código libre. En julio, SugarCRM
anunció la disponibilidad para i5/OS de su so-
lución Sugar Enterprise, para la que también
ofrece soporte (www.sugarcrm.com/crm/
about/press-releases/20070724-Sugar-En-
FIGURA 2 terprise-IBM.html).
Estructura de una pila «iAMP» El equipo de i5/OS del Laboratorio de
Rochester ha probado las siguientes aplicacio-
nes en i5/OS. En el proceso de instalar y eje-
cia de código libre GPL e incluye contribuciones de la co- cutar las aplicación, no cambiamos el código de PHP ni las
munidad y características experimentales en desarrollo por sentencias de SQL de MySQL, de modo que no tuvimos que
parte de MySQL. MySQL AB no ofrece soporte formal para volver a compilar nada. Simplemente descargamos el soft-
MySQL Community Server. ware y configuramos el entorno.

Con estas dos ofertas, enseguida se puede empezar a de- • MediaWiki (wiki de código libre)
sarrollar un proyecto usando MySQL Community Server www.zend.com/forums/index.php?t=msg&th=3134
con sólo descargar el producto de dev.mysql.com/
• Joomla! (sistema de gestión de contenido de código libre)
downloads/mysql/5.0.html. Y cuando el proyecto esté lis-
www.zend.com/forums/index.php?t=msg&th=3068
to para instalarlo en máquinas de producción y necesite
un soporte formal, MySQL Enterprise dispone de distin- • Zen Cart (tienda en línea de código libre)
tos niveles –Basic, Silver, Gold y Platinum– a partir de www.zend.com/forums/index.php?t=msg&th=3041
479 dólares por servidor y año (shop.mysql.com/enterprise).
• PmWiki (wiki de código libre)
Puede solicitar MySQL Enterprise directamente a MySQL
www.zend.com/forums/index.php?t=msg&goto=8085
o a IBM. Puede probar MySQL Enterprise mediante el
programa de evaluación de MySQL (www.mysql.com/ent- • phpBB (tablón de anuncios de código libre)
trial-reg-2007). Hallará más información sobre cómo solici- www.zend.com/forums/index.php?t=msg&goto=8049
tar a IBM el producto en el comunicado siguiente: www-
• PHP-Nuke-7.8 (sistema de gestión de contenido de código
306.ibm.com/common/ssi/rep_ca/2/897/ENUS207-172/
libre)
ENUS207172.PDF.
www.zend.com/forums/index.php?t=msg&goto=3541
Además de opciones de soporte, hay otras diferencias entre
las licencias de las versiones Community y Enterprise.
MySQL Community Server se distribuye bajo la Licencia Aunque hemos estado hablando de PHP, es importante
Pública General (GPL) de GNU. MySQL Enterprise se distri- mencionar que MySQL se puede usar para algo más que apli-
buye bajo GPL o con una licencia comercial. Obtendrá más caciones de código libre escritas en PHP. MySQL también es

www.help400.es FEBRERO 2008 ServerNEWS 13


■ EN PORTADA

compatible con Java. Y puesto que la mayoría de las aplica- porciona distintas características: unos admiten transaccio-
ciones basadas en MySQL son de uso interno, nada le impide nes, otros proporcionan un rendimiento de sólo lectura eleva-
crear la suya propia. dísimo y los demás ofrecen soluciones intermedias. El motor
de almacenamiento concreto se selecciona durante la crea-
¿Por qué i5/OS? ción de la tabla de la base de datos. Con un motor de almace-
La pregunta con que dábamos comienzo a este artículo –¿real- namiento DB2 para i5/OS, las aplicaciones escritas para
mente necesitamos una segunda base de datos?– nos lleva a MySQL se ejecutarán en i5/OS y los datos se almacenarán
una segunda cuestión: ¿por qué hemos de ejecutar aplicacio- en DB2. Esto permitirá implantar aplicaciones de MySQL en
nes de PHP y MySQL en i5/OS? ¿La “L” de LAMP no significa línea y transaccionales capaces de almacenar todos los datos
Linux? Sí, se pueden instalar las aplicaciones basadas en en una sola base de datos DB2, la base de datos que los clien-
Apache, PHP y MySQL en Linux, Unix, Windows y otros ser- tes de i5/OS ya conocen y saben cómo gestionar y proteger.
vidores. Pero instalando Apache, PHP y MySQL en i5/OS
podrá beneficiarse del entorno operativo integrado de i5/OS, Por dónde empezar
con su arquitectura altamente escalable e inmune a los vi- Puede descargar Zend Core y Zend Studio para i5/OS de for-
rus, así como una adaptabilidad excepcional so- ma gratuita de zend.com. MySQL Community Server para
bradamente demostrada. i5/OS puede descargarse de mysql.com. Además, IBM ha in-
Un informe reciente de IDC denominado cluido Zend Core para i5/OS con soporte Standard y MySQL
Enterprise para i5/OS con soporte Silver
en las ediciones Enterprise de los servi-
Un motor de almacenamiento es el dores 550, 570 y 595. IBM también ofre-
ce el servicio de implantación gratuito in
lugar en que se almacenan los datos situ “Getting Started with Zend and
de MySQL. MySQL AB y otros MySQL on i5/OS” para los clientes que
adquieran una plataforma System i que
proveedores actualmente ofrecen reúna las condiciones del programa de
más de una docena de motores de cupones canjeables por servicios técnicos
(www-03.ibm.com/systems/i/editions/
almacenamiento. services.html). Asimismo, tendrá derecho
a un curso gratuito de IBM sobre PHP
en el System i haciendo uso del cupón
“The Business Value canjeable por formación (www-03.ibm.com/systems/i/
of System i” (“El valor de editions/vouchers.html). Por último, desde estas páginas que-
negocio del System i”), que puede descargarse en ftp:// remos animarle a investigar las opciones y oportunidades que
f t p. s o f t w a r e . i b m . c o m / c o m m o n / s s i / r e p _ w h / n / MySQL y PHP ofrecen a la comunidad de usuarios del System
ISL03007USEN/ISL03007USEN.PDF) destaca las ventajas i. Puede empezar su exploración en www-03.ibm.com/
de i5/OS en comparación con las implantaciones de x86: me- systems/i/software/php y www-03.ibm.com/systems/i/soft-
nos tiempo dedicado a tareas de gestión, un tiempo de funcio- ware/mysql. ■
namiento ininterrumpido significativamente mejor, más car-
gas de trabajo soportadas y más usuarios finales soportados.
Como indica el informe, es una práctica común en los depar-
tamentos que trabajan con System i ejecutar varias cargas
de trabajo en un solo servidor (el promedio es de más de cinco
cargas de trabajo por servidor para los clientes del estudio en
comparación con el promedio de apenas una carga de trabajo
por servidor en los sistemas x86). Así que, en vez de comprar
otro servidor x86 para una aplicación LAMP, puede añadir
una aplicación “AMP” al entorno i5/OS existente junto con
otras aplicaciones de producción. En la Figura 2 se muestra
la estructura de una pila “iAMP”. Craig Johnson es jefe de producto de IBM para Zend y MySQL en i5/OS. Fue
Para crear valor adicional para los clientes de i5/OS, IBM y el responsable de introducir estas tecnologías de código libre en la comunidad
MySQL AB proyectan ofrecer un motor de almacenamiento de desarrolladores del System i.
de DB2 para MySQL en i5/OS (el segundo paso de su acuerdo
de colaboración tecnológica). Un motor de almacenamiento Erwin Earley trabaja como consultor de ingeniería del software en el
laboratorio de desarrollo de Rochester y lidera el Open Source Technologies
es el lugar en que se almacenan los datos de MySQL. MySQL Center of Competency for System i, que forma parte del System i Technology
AB y otros proveedores actualmente ofrecen más de una do- Center. Es formador y presta servicios de implantación de tecnologías de código
cena de motores de almacenamiento. Cada uno de ellos pro- libre en el System i, incluyendo Linux, MySQL y PHP de Zend.

14 ServerNEWS FEBRERO 2008 www.help400.es


www.help400.es FEBRERO 2008 ServerNEWS 15
■ EN PORTADA

Es fácil empezar a programar


en PHP en el System i
por Erwin Earley

E
n este artículo se explica cómo instalar los mente genera una línea de salida que luego representa el
navegador web. Como se ve en la Figura 1, PHP es un len-
productos de Zend para poder trabajar con guaje del servidor; en otras palabras, el motor de PHP del
PHP en i5/OS. Concretamente, explicare- servidor interpreta el código escrito en PHP. Además, este
mos cómo instalar Zend Core, el motor de código tiene acceso a recursos del servidor (por ejemplo, re-
cursos de la base de datos). En i5/OS, el acceso a los recursos
PHP, y Zend Studio, el entorno de desarrollo inte- del servidor lo proporciona el trabajo I5_COMD instalado en
grado (IDE) de PHP. el subsistema ZEND.
Antes de hablar de la instalación de Zend Core, estos son
Información general sobre Zend Core los componentes que se instalarán:
Zend Core es el motor que permite ejecutar PHP en i5/OS.
Zend Core se ejecuta en el Entorno de soluciones de aplica- • Zend Core (en el entorno PASE)
ciones portables (PASE). En la Figura 1 se ilustra la arqui- • Apache (en el entorno PASE)
tectura de Zend Core en i5/OS. No obstante, antes de empe- • I5_COMD (en i5/OS)
zar a explicar la arquitectura representada por el diagrama, • Programa ZCMENU escrito en CL (en la biblioteca
permítanme que les presente una página web de ejemplo con ZENDCORE)
contenido PHP.
Como se muestra en la Figura 2, un navegador web envía El servidor HTTP en i5/OS se configurará para que reen-
una petición a un servidor web (en este caso, el servidor HTTP víe las peticiones al puerto 89 en el servidor web Apache del
de i5/OS basado en Apache). En la Figura 1, las peticiones entorno PASE.
web hechas al servidor HTTP de i5/OS que especifican el
puerto 89 (por ejemplo, http://nombre_i5:89) se
reenvían al servidor web Apache que se ejecuta
en el entorno PASE (Apache se instala en PASE
durante la instalación de Zend Core). El servidor
web Apache de PASE analiza el código HTML has-
ta que encuentra un identificador de PHP (<?php
en la Figura 2). Aquí, el código escrito en PHP se
envía al motor de PHP (en este caso, Zend Core
en el entorno PASE) que, a continuación, procesa
el código hasta que encuentra un identificador de
cierre de PHP (?>). La salida del proceso del códi-
go PHP se devuelve al servidor web como salida
HTML, que a su vez se reenvía como respuesta al
navegador web para representarla. En la Figura
3 se muestra el resultado de procesar el código de
ejemplo de la Figura 2 a través del motor de PHP. FIGURA 1
En este caso, el proceso del código PHP simple- Arquitectura de Zend Core

16 ServerNEWS FEBRERO 2008 www.help400.es


FIGURA 2
Código de una página de pruebas con PHP

<html>
<head><title>Test Page></title></head>
<p>
<?php
echo “This is my PHP test page”;
?>
</p>
</html>

FIGURA 3
Resultado del código de la página de pruebas

<html>
<head><title>Test Page></title><head>
<p>
This is my test page
</p>
</html>

FIGURA 5
FIGURA 4
Página System Overview de Zend Core
Ejemplo de conexión FTP

ftp iseries.domain.com
220-QTCP at iseries.domain.com.
230 Connection will close if idle more than 5 minutes.
User (iseries.domain.com:(none)): qsecofr
331 Enter password.
Password:
ftp> bin
200 Representation type is binary IMAGE.
ftp> put zcoresavf.savf /qsys.lib/qgpl.lib/zcore.savf
200 PORT subcommand request successful.
150-NAMEFMT set to 1.
150 Sending file to member ZCORE in file ZCORE in library QGPL.
226 File transfer completed successfully.
ftp: 315853824 bytes sent in 3732.48Seconds 84.62Kbytes/sec.

Obtener Zend Core


La forma más fácil de obtener Zend Core (e igualmente Zend
Studio) es registrarse en el sitio web de Zend (zend.com). Tras
proporcionar información de contacto básica, se puede acce-
der al canal de i5/OS, desde el que se puede descargar Zend FIGURA 6
Core para i5/OS (le recomiendo que descargue la versión 2 Página de valores de Zend Studio Server
del producto). El archivo zip descargado contiene varios ar-
chivos. Hay que subir a i5/OS el archivo descargado. Esto
puede hacerse de varias formas distintas, pero normalmente
yo uso FTP para subir el archivo directamente a QGPL. En Llegados a este punto, varios archivos se graban en el IFS,
la Figura 4 aparece un ejemplo de una conexión FTP. tras lo cual se muestra la primera pantalla de la instalación.
Una vez subido a i5/OS el archivo guardado, sólo hay que Ésta es simplemente una pantalla de bienvenida, así que sólo
ejecutar el mandato Restaurar programa bajo licencia tiene que pulsar Intro para que aparezca la pantalla del acuer-
(RSTLICPGM) y responder unas pocas preguntas. Este es el do de licencia. Vuelva a pulsar Intro para aceptar el acuerdo
formato del mandato: y aparecerá una pantalla solicitándole la contraseña de la
Consola de administración web. La contraseña especificada
RSTLICPGM LICPGM(1ZCORE5) DEV(*SAVF) aquí la define el usuario y se usará para validar el acceso a la
SAVF(QGPL/ZCORE) herramienta de administración basada en web de Zend Core

www.help400.es FEBRERO 2008 ServerNEWS 17


■ EN PORTADA

(más adelante veremos


cómo acceder a esta herra-
mienta).
Zend Core permite obte-
ner actualizaciones desde
la Zend Network. Para ac-
ceder a la Zend Network
hay que autenticarse me-
diante un ID de usuario y
una contraseña (es el ID de
usuario y la contraseña
definidos al registrarse
para los productos Zend en
el sitio web). Una vez es-
pecificados el ID de usua-
rio y la contraseña, el
instalador finaliza la con-
figuración del entorno de
Zend Core. FIGURA 7
Probablemente, la forma Entorno de desarrollo de Zend
más sencilla de comprobar
la validez de la instalación
de Zend Core es intentar acceder a la página de pruebas de se le pedirá la contraseña definida durante la instalación.
Zend Core. Apunte el navegador web al puerto 89 de i5/OS Escriba la contraseña para ir a la página System Overview
(por ejemplo, http://systemi:89). Debería ver una página web (Visión general del sistema; Figura 5).
de bienvenida. Pulse el enlace Zend Core administrative in- Esta página ofrece distintas informaciones, incluyendo los
terface (Interfaz de administración de Zend Core) para acce- números de versión de los servidores Apache y Zend Core,
der a la interfaz de gestión basada en web. además de datos sobre el número de procesos y hebras que
está ejecutando el servidor web. Una característica intere-
Herramienta de configuración de Zend Core para sante de la interfaz de administración es la posibilidad de
IBM i5/OS configurar clientes permitidos para depurar el código del ser-
Zend Core incluye un menú 5250 para trabajar con el estado vidor. Para configurar Zend Core de manera que acepte la
de los servidores Zend Core y Apache, así como del trabajo depuración desde los clientes, seleccione Configuration y lue-
I5_COMD, que se ejecuta en i5/OS para responder a las peti- go Zend Studio Server en la página Zend Studio Server
ciones por parte de PHP de recursos del servidor. Se accede a Settings (Valores de Zend Studio Server; Figura 6).
la herramienta ejecutando el mandato siguiente en una se- Use la entrada Allowed Hosts (Hosts permitidos) para de-
sión 5250: finir la dirección de red o el conjunto de direcciones de red a
las que se permite llevar a cabo operaciones remotas de de-
GO ZENDCORE/ZCMENU puración del código PHP que se ejecuta en el servidor Zend
Core. Cuando termine, seleccione Save Settings (Guardar
Desde el menú siguiente, se puede restablecer la contrase- valores).
ña para acceder a la interfaz de administración basada en
web (describiré esta interfaz más adelante), obtener e insta- Instalación de Zend Studio
lar actualizaciones de Zend Core y recopilar información re- Zend Studio es el IDE que proporciona Zend para el desarro-
lativa a Zend Core para el soporte técnico de Zend. También llo de código PHP para i5/OS. Zend Studio está disponible
se puede acceder al menú Service Management (Gestión de para Windows x86, Linux x86 y Mac OS X Power.
servicios), que permite trabajar con el estado de los servido- El primer paso de la instalación es descargar el producto
res Zend Core y Apache, así como del servicio I5_COMD. del canal i5/OS, en el sitio web de Zend. Una vez descargado,
pulse dos veces con el ratón en el archivo para iniciar el pro-
Interfaz de administración de Zend Core ceso de instalación. La instalación de Zend Studio es pareci-
Vamos a echar una ojeada rápida a la interfaz de administra- da a la de otras aplicaciones de Windows. A continuación, se
ción basada en web suministrada por Zend Core. Como decía resumen los pasos de instalación:
antes, se puede acceder a la interfaz pulsando el enlace Zend
Core administrative interface de la página de pruebas de Zend • Después de aceptar el acuerdo de licencia, aparece una
Core. También se puede llegar a la interfaz apuntado el lista de selección de opciones de instalación, incluyendo el
navegador a http://systemi:89/ZendCore. De un modo u otro, entorno de desarrollo de Zend, un manual de PHP y la

18 ServerNEWS FEBRERO 2008 www.help400.es


FIGURA 8
Recuadro de diálogo Add SQL Server

barra de herramientas de Internet Explorer de Zend (to- FIGURA 9


das las cuales se instalan de forma predeterminada). Vista de SQL
• La ubicación por omisión de la instalación es C:\Archivos
de programa\Zend\ZendStudio_for_i5_OS-5.5.0.
• Puede seleccionar distintas ubicaciones para los iconos del el signo más) para ver el recuadro de diálogo Add SQL Server
producto, incluido un grupo de programas nuevo (el valor (Añadir servidor de SQL, Figura 8).
predeterminado). Debe llenar el formulario con la información necesaria para
• Seleccione las extensiones de archivo asociadas con Zend la conexión SQL (asegúrese de seleccionar DB2/400 en el re-
Studio. Las predeterminadas son .php, .php3, .phps y cuadro desplegable del tipo de servidor). Cuando haya con-
.phtml. cluido la definición, pulse Aceptar para completar la conexión
con el recurso de SQL. Una vez realizada la conexión, puede
La instalación suele tardar menos de un minuto. usar la vista de SQL de la izquierda del área de trabajo de
Zend Studio para visualizar distintas características del re-
Explorando Zend Studio curso de la base de datos (Figura 9). ■
Veamos algunas de las características de Zend Studio. En
primer lugar, empecemos por el entorno de desarrollo de Zend
(Figura 7). Se puede escribir o editar código PHP en el área
del centro, enviar un mensaje de depuración al panel de la
derecha y usar el de la izquierda para explorar el sistema de
archivos, trabajar con proyectos o ver recursos de SQL. Una
de las características más interesantes del entorno de desa-
rrollo es la posibilidad de conectarse con un recurso de SQL
directamente desde el entorno de tal modo que puedan verse
las estructuras de datos para las que se está escribiendo có-
digo. Para trabajar en la vista de SQL, primero seleccione el
icono de SQL en la pantalla de la vista de la izquierda. Cuan- Erwin Earley trabaja como consultor de ingeniería del software en el
laboratorio de desarrollo de IBM en Rochester (Minnesota) y lidera el Open
do haya cambiado la vista, estará listo para definir un nuevo Source Technologies Center of Competency for System i, que forma parte del
recurso de SQL pulsando el icono de añadir SQL (el disco con System i Technology Center.

www.help400.es FEBRERO 2008 ServerNEWS 19


Son fáciles de instalar y crean valor para la empresa
por Alan Seiden

P
HP es una de las herramientas de desarro- FIGURA 1
llo para aplicaciones web más conocidas. Código HTML para crear un gráfico circular usando PHP/
SWF Charts
Gracias a Zend Core para i5/OS, la comu-
nidad de desarrolladores del System i tie- <?php
// 3dpie.php
ne acceso a un enorme surtido de herramientas de include ‘charts.php’;

programación, paquetes de código e incluso aplica- $chart[ ‘chart_data’ ] = array ( array ( “”, “Vinny”, “Jeff”,
“Rose”, “Jim”), array ( “”, 15, 27,45,60 ) ); // specify data
ciones completas. $chart[ ‘chart_grid_h’ ] = array ( ‘thickness’=>0 );
$chart[ ‘chart_pref’ ] = array ( ‘rotation_x’=>60 );
$chart[ ‘chart_rect’ ] = array ( ‘x’=>50, ‘y’=>50, ‘width’=>300,
En este artículo me centraré en diez componentes “muy ‘height’=>200, ‘positive_alpha’=>0 );
interesantes” de código libre escritos en PHP que son fáciles $chart[ ‘chart_transition’ ] = array ( ‘type’=>”spin”,
‘delay’=>.5, ‘duration’=>.75, ‘order’=>”category” );
de instalar, crean valor para la empresa y, en muchos casos, $chart[ ‘chart_type’ ] = “3d pie”;
son muy gráficos. $chart[ ‘chart_value’ ] = array ( ‘color’=>”000000”, ‘alpha’=>65,
‘font’=>”arial”, ‘bold’=>true, ‘size’=>10, ‘position’=>”inside”,
Un apunte sobre los formatos de archivo: las descargas son ‘prefix’=>””, ‘suffix’=>””, ‘decimals’=>0, ‘separator’=>””,
archivos comprimidos en formato zip o tar.gz. Para extraer ‘as_percentage’=>true );
archivos tar.gz desde Windows, le recomiendo que use $chart[ ‘draw’ ] = array ( array ( ‘type’=>”text”,
ZipGenius (zipgenius.it), un programa de utilidad gratuito ‘color’=>”CCC000”, ‘alpha’=>74, ‘size’=>25, ‘x’=>0, ‘y’=>0,
‘width’=>500, ‘height’=>50, ‘text’=>”Pizza left uneaten”,
de manejo de archivos comprimidos. ‘h_align’=>”center”, ‘v_align’=>”middle” )) ;

$chart[ ‘legend_label’ ] = array ( ‘layout’=>”horizontal”,


1. PHP/SWF Charts ‘bullet’=>”circle”, ‘font’=>”arial”, ‘bold’=>true, ‘size’=>12,
PHP/SWF Charts (maani.us/charts) crea gráficos y diagra- ‘color’=>”ffffff”, ‘alpha’=>85 );
$chart[ ‘legend_rect’ ] = array ( ‘x’=>0, ‘y’=>45, ‘width’=>50,
mas animados, atractivos y a todo color para la web. Los ‘height’=>210, ‘margin’=>10, ‘fill_color’=>”ffffff”,
scripts proporcionan los datos, que pueden provenir de la base ‘fill_alpha’=>10, ‘line_color’=>”000000”, ‘line_alpha’=>0,
‘line_thickness’=>0 );
de datos DB2 o tener cualquier otro origen. Los gráficos se in- $chart[ ‘legend_transition’ ] = array ( ‘type’=>”dissolve”,
sertan en Flash, la popular tecnología multinavegador. (En los ‘delay’=>0, ‘duration’=>1 );
navegadores de los visitantes debe estar instalado Flash Player $chart[ ‘series_color’ ] = array ( “00ff88”, “ffaa00”,”44aaff”,
6 o posterior. Flash puede descargarse sin coste “aa00ff” );
$chart[ ‘series_explode’ ] = array ( 25, 75, 0, 0 );
alguno de macromedia.com/go/getflashplayer).
La versión básica de PHP/SWF Charts es gra- SendChartData ( $chart );
?>
tuita. Para conseguir la versión registrada, que
incluye soporte técnico y la posibilidad de vin- <HTML>
<!— showchart.php —>
cular los gráficos con otro contenido web e <BODY bgcolor=”#FFFFFF”>
incrustrarlos en otros documentos Flash, el
<?php
autor solicita una cantidad modesta. Los include “charts.php”;
usuarios registrados pueden pulsar en los
//insert the charts.swf flash file into the web page
gráficos para aumentar el nivel de detalle. //tell charts.swf to get the chart’s data from 3dpie.php created
Para instalar el programa, descargue in the first step
echo InsertChart ( “charts.swf”, “charts_library”, “3dpie.php” );
charts.zip y extraiga su con-
tenido. Copie el contenido ?>
(charts.swf, charts.php y </BODY>
charts_library) en un direc- </HTML>
torio del servidor web como

20 ServerNEWS FEBRERO 2008 www.help400.es


/www/zendcore/charts. Para ver ejemplos de los muchos
tipos de gráficos disponibles –de líneas, circulares, de ba-
rras, combinados, etcétera– vaya al apartado “Gallery”
del sitio web de PHP/SWF Charts (maani.us/charts/
index.php?menu=Gallery). En el apartado “Reference”
pueden encontrarse ejemplos de código.
Utilizando el código de la Figura 1, he creado un gráfico
de ejemplo (Figura 2). Aunque en la captura de pantalla no
se aprecia, el script 3dpie.php genera un gráfico tridi-
mensional animado en rotación, a partir de los datos sumi-
nistrados. Showchart.php usa la función InsertChart para
FIGURA 2
generar el gráfico. En mi servidor, ejecuté el script con un
Enigmático gráfico basado en el código de la Figura 1 (Pizza
URL del tipo http://ejemplo.com:89/charts/showchart.php.
que no se ha comido)
2. PHP Interactive
Pensado para los desarrolladores, PHP Interactive
(hping.org/phpinteractive) es un sencillo progra-
ma escrito en PHP que ofrece una forma fácil y
basada en web de probar las ideas que se le ocu-
rran en PHP. No es necesario crear archivos de
scripts autónomos escritos en PHP cada vez que
desee probar algo nuevo. Pegue el código en PHP
Interactive y pruébelo allí.
Al pulsar el botón “update”, el resultado de eje-
cutar el script aparece debajo (Figura 3). Se pue-
de elegir entre vistas sin formato o HTML (estilo
navegador). También es posible añadir varias
pestañas (cada una conteniendo un script), cambiar
el nombre de las pestañas o eliminarlas. PHP
Interactive recuerda los scripts de una sesión a otra.
Como ayuda al desarrollo, el programa ofrece
FIGURA 3 un recuadro de búsqueda para buscar definicio-
PHP Interactive nes de funciones de PHP que nos dirigirá a la
página oportuna del manual. Para instalar el
programa, descargue y extraiga el contenido de phpin-
teractive-0.2.tar.gz. En la carpeta phpinteractive, cree un
subdirectorio denominado /scripts (la aplicación necesita
esta carpeta de scripts para almacenar los scripts que cree).
Ahora, copie la carpeta phpinteractive en /www/zendcore,
es decir, que debe obtenerse esto: /www/zendcore/phpinter-
active/. Ejecute phpinteractive en el System i mediante un
URL del estilo http://ejemplo.com:89/phpinteractive.

3. Dial Gauge
Dial Gauge (phpclasses.org/browse/package/4080.html;
hay que registrarse, aunque la inscripción es gratuita) pro-
porciona un indicador visual de progreso parecido al velocí-
metro de un coche. El desarrollador solamente ha de sumi-
nistrar los valores mínimo y máximo de la escala y el número
que ha de mostrarse. Esta pantalla puede ser útil en siste-
mas de paneles de instrumentos ejecutivos.
Para instalar el paquete, descargue el archivo zip y ex-
traiga su contenido. Copie los archivos en una carpeta como
/www/zendcore/dialgauge. En Zend Core, tendrá que habi-
FIGURA 4 litar la biblioteca de gráficos “gd”, un conocido kit de herra-
El indicador muestra en qué intervalo está el valor mientas para la creación dinámica de imágenes. Puede

www.help400.es FEBRERO 2008 ServerNEWS 21


■ EN PORTADA
FIGURA 5
La clase TailFile comprueba si hay errores nuevos en las
hacerlo mediante las páginas de administración de Zend Core anotaciones de errores de PHP
(Configuration/Extensions) y, a continuación, reiniciando Zend
Core. Puede ejecutar el script de ejemplo en un URL como #!/usr/local/Zend/Core/bin/php -q
<?
http://ejemplo.com:89/dialgauge/example.php. La Figura 4 // check_php_log.php
muestra un indicador de ejemplo. // Display new errors that appear in Zend Core’s error log
// Adapted from Matthew Frederico’s tail-example.php
//
4. Clase TailFile // First line gives default location of PHP executable in Zend Core for
i5/OS
Cuando los profesionales que trabajan en Unix desean con- // $tailfile is set to default name of Zend Core’s error log
sultar las entradas más recientes de un archivo de registro
/****************************/
de gran tamaño, usan el mandato “tail”. Con la clase TailFile /* Configuration parameters */
(phpclasses.org/browse/package/499.html; hay que registrar- /****************************/
# File Locations
se, aunque la inscripción es gratuita), se puede controlar la
función “tail” desde PHP. Les mostraré cómo usarla para de- $tailfile = “/usr/local/Zend/Core/logs/php_error_log”;

tectar los errores nuevos que aparezcan en las anotaciones # How many seconds delay between checks
de errores de PHP.
$check_delay = 5;
Para instalar el programa, descargue y extraiga el conteni-
do del archivo zip. Copie su contenido, tail-example.php y /**********************************************/
/* M A I N P R O G R A M */
tailfile.phpc, en un directorio como /www/zendcore/tailfile. He /**********************************************/
modificado tail-example.php (Figura 5) para que funcione include(“tailfile.phpc”); // PHP Tail class.

con Zend Core para i5/OS. A mi versión, que comprueba si // This is where we watch our PHP error log for updates
hay errores nuevos en las anotaciones de errores de PHP, //——————————————————————
$t = new TailFile($tailfile);
algo que suelo hacer bastante a menudo, la he denominado print “Watching PHP log... \n”;
check_php_log.php.
while ($t->isOpen())
Mi script está pensado para ejecutarse en el entorno del {
terminal QShell en vez de en un navegador. ¿Por qué? Un $t->checkUpdates();
$myres = $t->getResults();
navegador no permitirá que una página web se ejecute per-
manentemente. Caducará, a menos que JavaScript redirija if ($myres)
print $myres;
la dirección periódicamente. QShell no tiene esas restriccio-
nes. Permite que un script de PHP se ejecute en un bucle $t->wait($check_delay);
}
infinito. Aquí se puede ver la potencia de PHP para scripts de //——————————————————————-
intérpretes de mandatos genéricos.
Ejecuto QShell y mi script con
la sentencia siguiente:

qsh
/www/zendcore/htdocs/tailfile/
check_php_log.php

Pulse F3 para salir. En la Figu-


ra 6 se muestran los mensajes más
recientes encontrados por el script.

5. Biblioteca de gráficos FIGURA 6


sparkline escritos en PHP Check_php_log.php se ejecuta en QShell y usa TailFile para mostrar los errores nuevos
Según Edward Tufte, experto en
diseño analítico, las sparklines son “gráficos sencillos, del ta- cluyen varios scripts de ejemplo. Yo ejecuté uno que repre-
maño de una palabra y que condensan una gran cantidad de senta la evolución de los valores bursátiles de IBM mediante
datos”. Gracias al paquete de sparkline.org, los desarrolladores datos dinámicos proporcionados por Yahoo Finance. El URL
pueden incrustar sparklines en informes o páginas web que, con parámetros sería algo así http://ejemplo.com:89/sparkline/
de lo contrario, serían muy aburridos. samples/stock_chart2.php?s=ibm&y=5. En la Figura 7 se
Para instalar la biblioteca, descargue y descomprima el muestra la sparkline resultante.
contenido del archivo zip en una carpeta como /www/zendcore/
htdocs/sparkline. En Zend Core, tendrá que habilitar la ex- 6. Mantis/400
tensión de la biblioteca de gráficos “gd”. Puede hacerlo acce- Mantis (mantis400.com) es una conocida aplicación basada
diendo a las páginas de administración de Zend Core en web que presta servicios de asistencia técnica y realiza el
(Configuration/Extensions) y reiniciando Zend Core. Se in- seguimiento de errores. Nunca más volverá a perder la pista

22 ServerNEWS FEBRERO 2008 www.help400.es


www.help400.es FEBRERO 2008 ServerNEWS 23
■ EN PORTADA

de los problemas que está siguiendo el servicio técnico. Mejor


aún, Mantis trabaja con DB2 desde 2007, cuando trabajé con
consultores de IBM, Zend, Curbstone Corporation y el jefe de
proyecto de Mantis, Victor Boctor, para crear Mantis/400, una
versión compatible con DB2. FIGURA 7
Cuando se ejecuta Mantis/400, sus datos se guardan en Gráfico sparkline de la evolución de los valores bursátiles de
archivos normales de DB2. Las herramientas tradicionales IBM en 2005
de programación, como RPG, pueden acceder a estos archi-
vos.
Mantis incluye las funciones siguientes:

• El personal técnico y los usuarios finales pueden informar


sobre errores y problemas y hacer comentarios sobre ellos.
(En la Figura 8 puede verse la lista de los problemas de
Mantis).
• Los usuarios pueden subir archivos complementarios (por
ejemplo, archivos de anotaciones) para informar sobre sus
problemas.
• El sistema puede enviar automáticamente mensajes de co-
rreo electrónico a los usuarios adecuados cuando se actua-
licen los informes.
• Las categorías permiten simplificar la búsqueda de proble-
mas.
• Los registros de modificaciones permiten crear un proceso
sistemático de gestión de los cambios.
• El personal técnico puede publicar planes de actuación y
novedades acerca de sus productos.

Para instalar la aplicación, vaya a mantis400.com y solici-


te un CD o descargue Mantis allí mismo. Puede instalar el
producto con el mandato LODRUN. El servidor proxy Apa- FIGURA 8
che de Zend (ZENDCORE, ejecutándose en QHTTPSVR) pre- Lista de problemas de Mantis
cisa un cambio en la configuración para que Mantis reconoz-
ca el nombre de dominio. Por omisión, el archivo que hay que
cambiar es /www/zendcore/conf/httpd.conf. El valor que hay
que modificar es ProxyPreserveHost On.

7. Grider
Grider (phpclasses.org/browse/package/2538.html; hay que
registrarse, aunque la inscripción es gratuita) es un editor
basado en web que permite crear y editar tablas de HTML.
Con Grider, se pueden agregar y eliminar casillas de una ta-
bla, así como ajustar los atributos colspan y rowspan de las
casillas. Esta característica facilita el diseño de tablas aun-
que tengan combinaciones complejas de atributos rowspan/
colspan, como cuando una lista tiene cabeceras y etiquetas
integradas.
Para instalar el editor, descargue y extraiga el contenido
del archivo zip. Copie el contenido en una carpeta del servi-
dor web denominada /www/zendcore/grider, por ejemplo. Po-
drá acceder a la aplicación mediante el navegador con un
URL del tipo http://ejemplo.com:89/grider/index.php.

En la Figura 9a se ilustra el diseño de una tabla y en la


Figura 9b puede verse el código HTML resultante. Para cam- FIGURA 9A
biar las columnas, filas y atributos colspan y rowspan, pulse Tabla con atributos rowspan y colspan

24 ServerNEWS FEBRERO 2008 www.help400.es


FIGURA 9B
Código HTML resultante de la tabla de la Figura 9a
8. Antispam
<table border=”0” cellpadding=”0” cellspacing=”0” width=””> Si su buzón de correo electrónico rebosa de spam, ¿tal vez
<tbody>
<tr> será porque los sistemas de spam automatizados se han he-
<td colspan=”5”></td> cho con su dirección en su sitio web? El paquete Antispam
</tr>
<tr> (phpclasses.org/browse/package/1088.html; hay que regis-
<td></td> trarse, aunque la inscripción es gratuita) tiene una solución.
<td colspan=”2”></td>
<td rowspan=”2”></td> En vez de incluir un enlace a su dirección de correo electróni-
<td></td> co directamente en sus páginas, de dónde pueden capturarla
</tr>
<tr> robots de spam, puede incrustar código escrito en JavaScript
<td></td> que cree un enlace protegido (ofuscado) a una dirección de
<td></td>
<td></td> correo electrónico. Los usuarios pueden ver la dirección y
<td></td> pueden pulsar sobre ella como siempre, pero la mayoría de
</tr>
<tr> sistemas automáticos no. (Nota: los usuarios deben tener ac-
<td></td> tivado JavaScript en sus navegadores).
<td></td>
<td></td> Este es un fragmento del ejemplo proporcionado por el au-
<td></td> tor de Antispam, Stanga Razvan:
<td></td>
</tr>
<tr> $antispam = new AntiSpam;
<td></td> echo $antispam->email ( “cool@computergames.ro“ );
<td></td>
<td></td>
<td></td> Genera el siguiente script:
<td></td>
</tr> <SCRIPT LANGUAGE=“JavaScript“> document.
</tbody>
</table> write(‘<a href=“’ + ‘mailto:’ +
‘cool’ + ‘@’ + ‘computergames.ro’
+ ‘“>’ + ‘cool’ + ‘@’
FIGURA 10
+ ‘computergames.ro’ + ‘</a>’); </script>
Mapas dinámicos de Google incrustados en una página
web con ejemplo.php
Si el enlace incluye el nombre además de la dirección de
<?php /**
correo electrónico, ambos se cifrarán en JavaScript, lo que
* Showing multiple points with Phoogle Maps dificultará aún más la tarea de los robots.
* class developed by Justin Johnson
<justinjohnson@system7designs.com>
Para instalar Antispam, descargue el archivo zip y extrai-
*/ ga el contenido en una carpeta como /www/zendcore/antispam
require_once ‘phoogle.php’;
del servidor web. Puede acceder a la aplicación mediante el
navegador con un URL parecido a http://ejemplo.com:89/
$map = new PhoogleMap();
// get your own Google Maps key
antispam/anti-spam.php.
$map-
>setAPIKey(“ABQIAAAAHbYourOwnKeyQm53U97g_KENmAYvVHzRRmYuBxajz9hYZQ9czEzjm-
fYaGahRsmqNC-biCgOyOP2XjlfOPg”);
9. Phoogle Maps
Phoogle Maps (systemsevendesigns.com/phoogle) permite
?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
usar las API de Google Maps para incrustar mapas perso-
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”> nalizados en un sitio web. Los mapas son como los del sitio de
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
Google (maps.google.com). Los usuarios pueden ampliar y
<? $map->printGoogleJS(); ?> reducir los mapas, y hacer todo lo que normalmente harían
</head>
<body>
con un mapa de Google. En la Figura 10 se muestra un ejem-
<? plo sencillo en el que he establecido dos direcciones. En la
$map->addAddress(‘17 Franklin Tpk, Ramsey, NJ 07423’);
Figura 11 puede verse el mapa resultante.
$map->addAddress(‘263 E. Main St, Ramsey, NJ 07446’); Para instalar los mapas, descargue el archivo zip y extrai-
$map->showMap();
ga su contenido en una carpeta, como por ejemplo /
?> www.zendcore/phoogle, del servidor web. Podrá acceder a la
</body>
aplicación mediante el navegador con un URL como http://
</html> ejemplo.com:89/phoogle. El servicio de API de Google Maps
requiere que obtenga de forma gratuita una clave de API de
Google Maps en code.google.com/apis/maps.

en la casilla correspondiente y luego pulse [+] o [-]. Cuando 10. WordPress


pulse “html”, Grider generará código HTML que luego puede WordPress (wordpress.org) es un completo paquete para
copiar en sus páginas web. bitácoras, gratuito y de código libre. Su activa comunidad

www.help400.es FEBRERO 2008 ServerNEWS 25


■ EN PORTADA

trabaja constantemente para mejorar su calidad y sus fun-


ciones. El proceso de instalación de WordPress apenas dura
unos minutos si antes se llevan a cabo ciertos trabajos preli-
minares:

1. Asegúrese de que MySql está instalado y funciona. Se in-


cluye con las versiones más recientes de Zend Core.
2. Habilite la extensión MySql en Zend Core. Esto se hace
desde las páginas de administración de Zend Core
(Configuration/Extensions) y reiniciando Zend Core.
3. Cree una base de datos de WordPress en MySql con una
herramienta como phpMyAdmin (phpmyadmin.net) o des-
de la línea de mandatos (dev.mysql.com/doc/refman/5.0/
en/creating-database.html). Puede denominar la base de
datos “wordpress”, “blog” o especificar un nombre que haga FIGURA 11
referencia al propósito del blog. Mapa resultante
4. Compruebe que el servidor proxy Apache de Zend
(ZENDCORE, ejecutándose en QHTTPSVR) contiene el va-
lor de configuración ProxyPreserveHost On. Este valor per-
mite que WordPress reciba el nombre de dominio del servi-
dor proxy. El archivo de configuración de Apache, por
omisión, es /www/zendcore/conf/httpd.conf.

Para instalar WordPress, descargue el archivo zip de


wordpress.org y extraiga su contenido en una carpeta como /
www/zendcore/wordpress del servidor web. Para iniciar el
proceso de instalación, vaya al URL correcto, que será pare-
cido a ftp://ejemplo.com:89/wordpress/. Siga las instrucciones
de instalación que aparecen en pantalla. Deje que el instalador
cree el archivo de configuración (wp-config.php). Se le pedirá
el nombre de la base de datos de MySql, su usuario y contra-
seña, el nombre de host de la base de datos (probablemente
localhost) y un prefijo para la tabla (wp_ debería servir). FIGURA 12
Una vez finalizada la instalación, se le proporcionará una Escribiendo una entrada y añadiendo gráficos
contraseña aleatoria que podrá usar para conectarse como
administrador. Podrá empezar a trabajar con la bitácora in-
mediatamente pulsando Escribir entrada. En la Figura 12
se puede ver la página de una bitácora de WordPress corres-
pondiente a la primera entrada que escribí en este sistema.
En la Figura 13 se muestra la página tal como la verán los
visitantes.

Las cosas interesantes abundan


PHP abre las puertas a todo un mundo de aplicaciones que
no sólo son interesantes sino que también crean valor para
la organización. Ahora, con relativamente poco esfuerzo, es
posible ejecutar fantásticas aplicaciones escritas en PHP en
nuestro fiel System i. ■

Alan Seiden disfruta dirigiendo proyectos en colaboración, desarrollando


software y resolviendo problemas. Miembro del grupo de desarrolladores de
PHP de Nueva York desde 2004 y uno de los primeros impulsores de PHP en el
System i, Alan fue reseñado en el boletín de noticias de la New York Software FIGURA 13
Industry Association (nysia.org/special_features/article.cfm?pid=383). El blog
sobre informática de Alan es alanseiden.com.
La página resultante de la bitácora

26 ServerNEWS FEBRERO 2008 www.help400.es


www.help400.es FEBRERO 2008 ServerNEWS 27
Una nueva ola de innovación para
las empresas
por Alberto C. Blanch

L
os próximos días 26 y 27 de febrero en el Palacio
Municipal de Congresos de Madrid tendrá lugar
un encuentro organizado por Microsoft en el que,
bajo el lema “The Evolution Show”, presentará la
nueva generación tecnológica de sus soluciones de
servidor y desarrollo, coincidiendo a nivel mundial con el lan-
zamiento oficial de Windows Server 2008, SQL Server 2008 y
Visual Studio 2008, completamente actualizadas y que in-
corporan la última tecnología del mercado.
Con motivo de ese evento mundial que promete ser el acon-
tecimiento tecnológico del año, hemos contacado con Juan
Tonda, Director de la Unidad de Negocio de Servidores y Pla-
taformas de Microsoft Ibérica, quien bajo el título de “Una
nueva ola de innovación para las empresas” nos comenta como
la combinación de estos tres productos favorecerá el proceso
de innovación empresarial. También hemos aprovechado la
ocasión para mantener una breve entrevista con Emilio Paz, Juan Tonda, Director de la Unidad de Negocio de Servidores y Plataformas de
Microsoft Ibérica
jefe de Producto de Windows Server 2008 sobre las capacida-
des de virtualización del nuevo sistema operativo.
virtualización, extendiendo sus ventajas desde el PC hasta el
Una nueva ola de innovación para las empresas Centro de Datos.
Hoy en día nadie se atreve a dudar de la importancia del En el marco de una industria en constante innovación, pre-
desarrollo de la Sociedad de la Información como elemento tendemos adelantarnos al futuro, beneficiando a las peque-
clave en la dinamización y modernización de los países y de ñas y medianas empresas con la adaptación a sus necesida-
su actividad económica y social. des pero también al usuario final a través de la virtualización.
Desde Microsoft, nos comprometemos con la industria, Desde Microsoft, apostamos por la virtualización de la infra-
muestra de ello es el lanzamiento mundial de Windows Server estructura tecnológica en múltiples niveles y creemos que las
2008, Visual Studio 2008 y SQL Server 2008, que constitu- empresas adoptarán estas tecnologías gracias a los impor-
yen una plataforma de plena confianza para la creación y tantes beneficios que se pueden conseguir con ellas.
ejecución de las aplicaciones más exigentes. La creación de
estos productos innovadores responde a las necesidades de La virtualización en Windows Server 2008
la nueva generación de aplicaciones, optimizando el uso de la La virtualización es la tecnología que permite que distintas
web, ampliando la difusión de tecnologías de virtualización y aplicaciones y sistemas operativos compartan un mismo ser-
mejorando el acceso a la información relevante. Windows vidor. Como veremos, es una funcionalidad más del nuevo
Server 2008 incorpora tecnologías de Web y virtualización sistema operativo de Microsoft.
▲ dentro del propio sistema operativo, permitiendo aumentar
▲ la fiabilidad y flexibilidad de la infraestructura de servidores ServerNEWS: ¿Cuáles son los motivos de la adopción de las
▲ en las empresas. En la misma línea le sigue la plataforma tecnologías de virtualización en el área de servidores?
Microsoft SQL Server 2008, que se basa en tres pilares: la – Emilio Paz: La Sociedad de la Información se caracteriza
productividad, la fiabilidad y la inteligencia de negocio ex- por su continuo y constante cambio. Esto requiere que las
tendida a toda la organización con el fin de optimizar la distintas soluciones y dispositivos se vayan adaptando a los
En directo

toma de decisiones. La nueva plataforma Visual Studio nuevos tiempos. Es en este entorno dónde la virtualización
2008 completa este lanzamiento, facilitando la rápida crea- de sistemas se está convirtiendo en la protagonista.
ción de aplicaciones, enriqueciendo la experiencia del usua- La adopción de la virtualización está presente en el 15% de
rio y potenciando el avance y la innovación en el área del los servidores del mercado, es decir, que el 85% restante no
desarrollo. tienen un software de virtualización. La adopción de esta tec-
El lanzamiento mundial de esta combinación de platafor- nología no ha llegado a la mayoría de los servidores existen-
mas supone un empuje definitivo a las tecnologías de tes pero se espera que, poco a poco, la vayan adoptando.

28 ServerNEWS FEBRERO 2008 www.help400.es


Las ventajas más llamativas de la virtualización: el ahorro flexibilidad de las infraestructuras de servidores. Las nue-
de costes, la optimización del uso del hardware, la reducción vas tecnologías de virtualización, los mejores servicios web y
de servidores, las mejoras en la gestionablidad, en el consu- los grandes avances en seguridad ayudarán a ahorrar tiem-
mo energético, etc, van siendo cada vez más patentes y eso po, reducir costes y permitirán conseguir una plataforma ideal
supone una adopción más rápida por parte de las empresas. para un centro de datos dinámico y flexible. Nuevas herra-
mientas potentes, como Internet Information Server (IIS) 7,
Desde su punto de vista ¿cuáles son los retos y/o factores Windows Server Manager y Windows Powershell, permiti-
inhibidores entre las empresas españolas a la hora de im- rán optimizar el control de los servidores. Las nuevas tecno-
plantar una tecnología de virtualización? logías de Network Access Protection (NAP) y Read-Only
– La virtualización implica una formación en recursos hu- Domain Controller (RODC) consiguen que Windows Server
manos, gente preparada, los canales de distribución prepara- 2008 sea un sistema operativo seguro, logrando ser una pla-
dos y formados, etc. Respecto al factor inhibidor de la taforma estable para las aplicaciones de negocio.
virtualización, es un concepto relativamente nuevo y todavía El mensaje que queremos transmitir es que se pueden
hay mucho que demostrar por parte de los fabricantes, tene- virtualizar múltiples sistemas operativos en un sólo servidor
mos que demostrar el valor añadido que supone esta nueva físico. Con las nuevas tecnologías de virtualización embebi-
tecnología. “Exchange Server” de Microsoft por ejemplo, re- das en el sistema operativo Windows Server 2008, conjunta-
duce costes, el número de servidores, etc, dentro del mercado mente con la nueva política de licenciamiento de Microsoft
empresarial. para entornos virtuales, conseguimos que sea mucho más
El reto con el que nos encontrados es la divulgación de esta sencillo obtener todas las ventajas de la virtualización, tanto
nueva tecnología y la gestión de un entorno virtualizado den- en ahorro de costes como en la optimización de una infraes-
tro de las compañías. Para facilitar su adopción, Microsoft la tructura de servidores.
incluye en Windows Server 2008, por lo que el usuario no
tiene que realizar grandes inversiones económicas ya que se ¿Por qué han esperado tanto para meterse de lleno en el cam-
trata de una funcionalidad más del sistema operativo para po de la virtualización?
facilitar la entrada de los canales de ventas. Tratamos de que – En Microsoft creemos que la virtualización será la tecnolo-
tanto las grandes como medianas y pequeñas empresas em- gía que tendrá mayor impacto en la empresa desde hoy hasta
piecen a utilizar este tipo de tecnologías, ofreciéndoles solu- 2012. El lanzamiento mundial de Windows Server 2008 será
ciones de virtualización de manera muy proactiva y adapta- el espaldarazo final a esta tecnología ya que se podrá com-
das a las necesidades de cada cliente. probar las ventajas de la virtualización tanto en entornos PC
como en entornos servidor. Microsoft incorpora esta
¿Cuáles son las tendencias en virtualización en el mercado funcionalidad dentro de Windows Server 2008 como una par-
español? te del sistema operativo.
– La virtualización, a día de hoy, está más implantada en las En Microsoft apostamos por la virtualización porque cree-
grandes empresas ya que son las primeras en reclamar esta mos que debe estar dentro del sistema operativo, tal y como
adopción puesto que poseen muchos servidores. A pesar de ocurre en otros entornos Unix, PA-RISC, Mainframe, etc.…se
ello, la tecnología ha llegado ya al mercado de las pymes. trata de una parte más del sistema operativo, por lo que es
Existe un crecimiento potencial en este mercado en la actua- nuestra gran apuesta con Windows Server 2008 y pedimos a
lidad. También estamos asistiendo a los primeros proyectos los clientes que nos pregunten sobre los planes de Microsoft
de Virtualización de PCs en el propio servidor. en este mercado antes de tomar una decisión de inversión en
virtualización.
¿Qué crecimiento prevén para los próximos años en esta tec-
nología, tanto a nivel mercado como dentro de Microsoft? ¿Qué futuro le ven a esta tecnología?
– Sin duda es el cambio tecnológico más importante en la – Queremos que el 2008 sea el año de las infraestructuras y
Industria de TI en los próximos años. La virtualización se irá de la virtualización y creemos que habrá una mayor adop-
consolidando en las grandes empresas y las Pymes empeza- ción de esta tecnología gracias a los importantes beneficios
rán a utilizar este tipo de tecnologías. En ambos mercados que se pueden conseguir con ella. Existirá un gran avance
En directo

nuestra compañía ofrecerá soluciones de virtualización de tecnológico en todo lo referente a las infraestructuras, a la
manera muy proactiva y adaptada a las necesidades de cada optimización del uso del hardware y de los recursos existen-
cliente. Esperamos un crecimiento sólido que irá en aumento tes, más adaptabilidad e interoperabilidad entre fabricantes
en la medida que las empresas comprueben los beneficios de y sus soluciones. La virtualización implica formación y adap-
la virtualización en su negocio diario. tación progresiva, es decir, las compañías tendrán que estar
preparadas para soportar este nuevo entorno tecnológico. ■
¿Qué beneficios ofrece la virtualización a los sistemas y a la ▲
seguridad de los datos de una empresa? ▲
– Microsoft Windows Server 2008, con las nuevas tecnologías Sabiendo que en estos casos el tiempo escasea, desde ServerNEWS queremos ▲
de Web y Virtualización, conseguirá aumentar la fiabilidad y agradecer a Juan Tonda y Emilio Paz la gentileza de atender nuestra solicitud.

www.help400.es FEBRERO 2008 ServerNEWS 29


Una solución vanguardista
en System i
El Diari Oficial de la Generalitat de Catalunya publica en la Web 10.000 normas
urbanísticas de los Ayuntamientos de Cataluña utilizando ASNA Visual RPG .Net
por Lluís Peiret

L
a Entidad Autónoma del Diario Oficial y de Publi-
caciones (EADOP) es la empresa que se dedica a
hacer los proyectos editoriales de la Generalitat
de Catalunya y a su difusión y comercialización.
En el ámbito jurídico, EADOP tiene por misión la
publicación oficial, mediante el “Diari Oficial de la Generalitat
de Catalunya” (DOGC), de las leyes de la Generalitat, las
disposiciones generales dictadas por el Gobierno y la Admi-
nistración de la Generalitat, y también los actos, anuncios y
demás documentos de la Generalitat y otras entidades o per-
sonas, cuando corresponda de acuerdo con el ordenamiento
jurídico.
La Ley 2/2007 del Diario Oficial, de 5 de junio, configura al
DOGC como un servicio público, universal y gratuito, libre-
mente accesible por Internet a todos los ciudadanos median-
te una edición digital, edición a la que esta Ley otorga plena De izquierda a derecha, los Sres. Lluís Peiret, Miquel Casals y Carlos Valero
autenticidad y validez jurídica mediante firma electrónica,
eliminando la necesidad de realizar una edición impresa. trabajo para el que aplicando el método habitual se necesita-
El progreso y el ahorro que supone la supresión de 350 to- rían aproximadamente unos quince años para hacerlo.
neladas anuales de papel, la eliminación de 8.000 CD y 500 EADOP necesitaba una solución tecnológica que les permi-
DVD, dejar de hacer los procesos de impresión, embolsado y tiera automatizar el tratamiento de tan gran cantidad de do-
envío de ejemplares son actuaciones que repercuten positi- cumentos, los numerase correlativamente y asegurase su pu-
vamente en el servicio a la ciudadanía ya que el DOGC está a blicación en el DOGC en los plazos establecidos, aprovechando
su disposición 24 horas los 365 días del año. La eliminación que la Ley 2/2007 confiere validez jurídica a su edición elec-
de la edición impresa del DOGC ha supuesto un gran paso en trónica.
el aspecto ecológico. Por su parte el Departamento de Política Territorial y Obres
Públiques (PTOP) entregaría las normas urbanísticas en blo-
El problema ques de 500 a 1000 normas acompañadas de un edicto. El
Los Ayuntamientos de Catalunya anunciaban en el DOGC edicto se publicaría en la edición digital del DOGC incluyen-
que se podían consultar las normas urbanísticas en el propio do un enlace a un anexo con las normas en formato PDF.
ayuntamiento, normalmente en formato de papel. Pero una
sentencia judicial del año 2000 establece que una norma ur- El proyecto
▲ banística sólo es legal si se ha publicado íntegramente en el Para tal proyecto la arquitectura informática utilizada en
▲ DOGC. Por consiguiente, todas las normas urbanísticas de EADOP consiste principalmente en un sistema iSeries con
▲ Catalunya quedaban con una validez jurídica dudosa. infraestructuras de Cliente Servidor y Web.
Para solucionar este problema jurídico, a principios de Miquel Casals como Analista programador del DOGC y res-
2007 el Departamento de Política Territorial y Obres ponsable del proyecto, contactó con CaCovai 400 para llevar
Públiques (PTOP) de la Generalitat de Catalunya comen- a cabo entre ambas empresas una aplicación Windows que
Presentación

zó a escanear y pasar a formato PDF todas las normas integrara el control de todo el proceso informático para el
urbanísticas para que fueran publicadas en el DOGC an- tratamiento de las normas urbanísticas. CaCovai 400 es la
tes de finales de 2007. empresa de consultoría y servicios, distribuidora exclusiva
EADOP, como entidad responsable de realizar la edición del software ASNA Visual RPG .NET, (AVR) que permite ha-
del DOGC, se enfrentó al reto de dar el formato correspon- cer desarrollos informáticos en entornos visuales (Windows,
diente a 10.000 normas urbanísticas de los Ayuntamientos Web) bajo la plataforma .NET de Microsoft con una total in-
de Catalunya, es decir, a más de 500.000 páginas en PDF; un tegración con el iSeries o con MS SQL Server.

30 ServerNEWS FEBRERO 2008 www.help400.es


lizados. Por su parte, el producto ASNA Visual RPG .NET
permite aprovechar los conocimientos previos del lenguaje
RPG para el desarrollo de aplicaciones visuales y facilita la
integración de procesos entre el iSeries y las plataformas
Windows y Web.

El proceso
El departamento de informática del DOGC estableció que los
días 10 y 25 de cada mes se publicaran las normas. Para ello
una semana antes el Departamento de Política Territorial y
Obres Públiques entrega a EADOP un DVD que contiene to-
das las normas urbanísticas a publicar por cada edicto. Cada
norma está en un directorio del DVD y consta de uno o más
FIGURA 1 PDFs. Los PDFs de los diferentes directorios acostumbran a
Árbol de directorios del DVD que contienen las normas tener nombres repetidos, por lo que se deben renombrar asig-
nándoles un nombre único. En el DVD va incluido un archivo
Excel con los metadatos de cada norma: Población, Número
de expediente, titulo y directorio donde están los correspon-
dientes PDFs (Figura 1).
Como muestra el esquema de la Figura 2, la solución in-
formática consiste en una aplicación Windows realizada con
ASNA Visual RPG .NET para el tratamiento de los DVDs
recibidos. Esta aplicación valida el contenido del DVD según
el archivo Excel y localiza los PDFs contenidos en las dife-
rentes carpetas del propio DVD; posteriormente asigna nom-
bres únicos a los PDFs y sube estos documentos a las carpe-
tas del IFS; finalmente, los metadatos del archivo Excel junto
con los nuevos nombres de los PDFs que el programa ha ge-
nerado, se añaden a un archivo de base de datos del iSeries.
La misma aplicación procede a mover los PDFs del IFS a un
servidor específico para que éstos se formateen de acuerdo
FIGURA 2 con el diseño y directrices del DOGC mediante la solución de
Diagrama de procesos de la solución adoptada ADOBE (Figura 3). Posteriormente a la asignación del for-
mato, la aplicación mueve los documentos a una carpeta de
otro servidor para añadirles la firma electrónica que garan-
tiza su validez e integridad. Por último, el conjunto de todos
los PDFs con el formato correcto, se dejan en una carpeta
para la posterior publicación en Web por los servicios centra-
les de la Generalitat de Catalunya.
Como comenta Miquel Casals “Cada archivo consta de dis-
tintas páginas en varios formatos. Haciendo este proceso de
forma manual, sólo hubiésemos sido capaces de convertir de
tres a cuatro normativas diarias. Aplicando esta solución in-
formática obtuvimos una ágil solución”. El resultado fue que
el día 1 de Julio se logró suprimir la edición impresa del DOGC
y el 26 de Julio se consiguieron publicar las primeras normas
Presentación

urbanísticas en la Web.
Gracias al desarrollo de esta solución informática llevada
a cabo con Adobe y Visual RPG .NET, en seis meses, el DOGC
ha publicado las normas urbanísticas a ritmo de dos edictos
FIGURA 3 por mes y, a fecha actual, los 500.000 documentos de las nor-
PDFs formateados para su publicación en el DOGC mas urbanísticas están accesibles en la Web. ■

Para el escaneado de los documentos se recurrió al produc- ▲
to Adobe LiveCycle Assembler, un producto de Adobe que cen- Lluís Peiret, con más de 20 años de experiencia en entornos medios de IBM, ▲
traliza y automatiza la conversión a formatos PDF persona- trabaja en el departamento técnico de CaCovai 400.

www.help400.es FEBRERO 2008 ServerNEWS 31


¿Qué ofrece laV5R4 a los usuarios
del diario y el control de
compromiso?
Las nuevas funciones suponen mayor facilidad de uso
por Larry Youngren

L
a versión V5R4 de i5/OS incluye varias mejoras paquete en la puerta del cliente y lo transporta hasta el cen-
de los diarios y el control de compromiso que pue- tro de clasificación más cercano. Allí, alguien lo pone en un
den resultarles muy atractivas a los usuarios. En contenedor y lo carga en un avión, vuela hasta un centro de
este artículo encontrará una muestra de lo que el distribución, se vuelve a clasificar, se pone en un nuevo con-
release V5R4 puede hacer por las tareas de diario tenedor, vuela hasta la ciudad del destinatario, se carga en
y compromiso. una camioneta y, por último, se entrega a su destinatario.
Por el camino, cada vez que el paquete cambia de manos, se
Subir el techo examina su código de barras y se actualiza su correspondien-
Para aquellos que les gusta guardar todos los cambios de te registro maestro, revelando, por ende, su ubicación actual.
los archivos protegidos por diario en un solo diario, la V5R4 La tabla de SQL que aloja el registro maestro de este paque-
les permite aumentar el tamaño máximo del diario hasta te puede constar de montones de columnas: el ID del fletador,
cuarenta veces, o lo que es lo mismo, que hasta diez millo- el número del paquete, su peso, su precio, el destinatario, el
nes de objetos compartan el mismo diario. Este mayor vo- código de la cuenta, la descripción, el valor declarado, etcéte-
lumen puede ser especialmente útil si se utiliza un paque- ra. Sin embargo, lo único que hay que actualizar repetida-
te de terceros que pone varias tablas de SQL en la misma mente es la ubicación actual. El resto de las columnas se que-
colección. Si tiene un diario para esta colección, la recupe- darán tal cual. Durante las siguiente 24 horas, conforme el
ración posterior será más sencilla. Antes del release V5R4, paquete se abra camino por el sistema de distribución, se
el límite superior impuesto por i5/OS era de 250.000 obje- actualizará el valor que reside en la columna de ubicación
tos por diario. Esto significaba que las empresas que so- del paquete una docena de veces. Y ocurrirá lo mismo con los
lían tener un gran número de tablas pequeñas (una situa- otros 400.000 paquetes que le habrán encomendado hoy... ¡es
ción típica de algunos programas de terceros) o muchos un montón de actualizaciones!
archivos de corrientes de bytes registrados por diario te- Si deja que el diario tome las medidas normales por omi-
nían que gestionar varios diarios. Aunque utilizar varios sión, cada actualización capturará una copia de la imagen de
diarios tiene muchas ventajas, la simplicidad no es una de toda la fila de SQL de este paquete. Sin embargo, la mayoría
ellas. de las columnas no varían de una actualización a otra. Cap-
Si desea poner todos los huevos en la misma cesta, a partir turar un imagen de toda la fila es mucho más costoso que dar
de V5R4 puede hacerlo, con tal de que indique al sistema permiso al sistema operativo para que grabe solamente las
operativo que quiere utilizar el nuevo techo. El mandato para columnas modificadas. El release V5R4 le permite grabar
aumentar este límite es el siguiente: únicamente las columnas modificadas, minimizando el tama-
▲ ño de las entradas de diario y lo hace de tal forma que ade-
▲ CHGJRN . . . JRNOBJLMT(*MAX10M) más facilita a los auditores el reconocimiento y la interpreta-
▲ ción de las columnas resultantes. Para habilitar este
Ponga el diario a dieta comportamiento en el diario, sólo hay que ejecutar este man-
Hay varias opciones para tener un receptor de diario esbelto dato:
y en forma. Una de las más eficaces –que frecuentemente se
Management

pasa por alto– es otorgar permiso al sistema operativo sub- CHGJRN . . . MINENTDTA(*FLDBDY)
yacente para que se abstenga de capturar imágenes de co-
lumnas invariables que residen en una tabla de SQL o en un ¿Cuánto espacio se puede ahorrar? Un cliente que usaba
archivo de base de datos nativo. un conocido paquete de terceros observó que el tamaño pro-
Por ejemplo, supongamos que trabaja en el sector del trans- medio de las entradas de diario se redujo de 637 bytes a 411
porte de paquetería y tiene un archivo que controla de ubica- bytes, lo que significa un 35% de espacio de disco por cada
ción actual de cada paquete. Un transportista recoge el entrada.

32 ServerNEWS FEBRERO 2008 www.help400.es


Un compromiso más amable y afectuoso caché el diario. El resultado es que se reducen sustancialmente
Muchas aplicaciones modernas usan el control de compromi- las esperas para las operaciones de grabación en disco, así
so para garantizar la integridad de las transacciones. Mu- como el número total de operaciones previstas de grabación
chos paquetes de terceros han integrado el control de com- en disco.
promiso en sus productos pero, aunque es una buena función, Habilitar el compromiso por software en V5R4 es tan fácil
hay que pagar un precio por usarla. ¿Qué le parecería si pudiera como ejecutar el mandato siguiente:
rebajar algo ese precio? La V5R4 le permite hacerlo.
La mayor actividad general asociada al control de compro- ADDENVVAR ENVVAR(QIBM_TN_COMMIT_DURABLE)
miso se deriva de que, de forma predeterminada, cada tran- VALUE(*NO)
sacción que finaliza no sólo anuncia su nuevo estado al diario
subyacente, sino que también insiste en que la aplicación La variable de entorno que estamos modificando es
espere hasta que se graben en disco las filas asociadas y la QIBM_TN_COMMIT_DURABLE, porque influye en el tipo
información del diario. Si las transacciones suelen ser res- de durabilidad utilizado por las transacciones. Al especificar
tringidas (es decir, que sólo se actualizan unas pocas filas por *NO, indicamos que queremos sacrificar la durabilidad in-
cada transacción) la cantidad total de operaciones de graba- mediata (el valor por omisión). Puede definir este tipo de va-
ción en disco para procesar 400.000 paquetes es considera- riables de entorno para cada trabajo, de modo que solamente
ble. La cuestión es saber qué es lo que realmente estamos el trabajo especificado (por ejemplo, sólo el trabajo por lotes
comprando a cambio de esas costosas y frecuentes operacio- cuyo rendimiento es crucial) se comporte de esta forma, o
nes de grabación en disco que consumen tanto tiempo. puede definirlas para que afecten a todo el sistema.
La respuesta es durabilidad inmediata. El control de com- Para obtener el mejor rendimiento con este método, tam-
promiso tiene muchas ventajas, entre las que destacan la in- bién querrá asegurarse de que el diario subyacente copie los
tegridad transaccional, la atomicidad y la durabilidad. Aun- diarios en caché. Esto puede conseguirse instalando la op-
que las tres tienen cualidades interesantes, la cuestión de la ción 42 de i5/OS y ejecutando:
durabilidad inmediata suele ser la más costosa.
Supongamos que tiene una aplicación que requiere inte- CHGJRN . . .JRNCACHE(*YES)
gridad de las transacciones (es decir, que el debe ha de coinci-
dir con el haber) y atomicidad (es decir, que no se debe permi-
tir que nadie más vea el estado de una transacción a medio
realizar), pero que necesita algo menos que la durabilidad
inmediata. Hace años trabajé con un cliente que tenía una
aplicación así. Se trataba de una aplicación de facturación de
Suscríbase a
móviles que actualizaba millones de filas cada noche apli-
cando la información diaria de uso de los teléfonos al registro
maestro de abonados. El cliente no quería tener que reiniciar
el proceso nocturno desde cero si se encontraba un error, de
modo que optó por grabar una entrada de diario con informa-
ción del usuario al final de cada lote de registros de detalle
de móviles que había aplicado. Este singular valor que seña-
laba “dónde estoy ahora” le ayudaba a detectar dónde reiniciar
el proceso nocturno. Usaba el control de compromiso para
asegurarse de que todos los registros de detalle relacionados
con un cliente concreto se aplicaban al unísono (es decir, que
quería la integridad de las transacciones). Sin embargo, era
perfectamente feliz reiniciando el trabajo por lotes a partir
de un límite nuevo de la transacción. Realmente no importa-
ba si se trataba de la transacción número 333 o de la 334. Por
Management

ello, el coste extra de asegurar la durabilidad inmediata (en


cuanto finaliza la transacción 333, ESPERAR a que las en-
tradas de diario correspondientes se graben en disco antes
de empezar la transacción 334) era excesivo. Cada noche se y recibirá
hacía un millón de pausas.
Estas pausas ya no son necesarias. En su lugar, si tiene gratuitamente
una aplicación que puede tolerar algo menos que la durabi-
lidad inmediata, puede aumentar la velocidad de la aplica- el suplemento ▲

ción utilizando el nuevo atributo “compromiso por software” ▲
del release V5R4 junto con el atributo de copiar en memoria técnico
www.help400.es FEBRERO 2008 ServerNEWS 33
■ ¿QUÉ OFRECE EL RELEASE V5R4 A LOS USUARIOS DE LOS DIARIOS?
El compromiso por software combinado con la copia del dia- Limitar la duración de una IPL anómala
rio en memoria caché le permite sacar el mejor partido posi- Durante muchos años hemos podido reducir la duración de
ble: la integridad de las transacciones, la atomicidad y un una IPL anómala. Una de las técnicas más eficaces consiste
buen rendimiento. en habilitar la protección por diario de las vías de acceso por
clave más grandes de la base de datos y los índices de SQL.
Mejor protección para las colas de datos Seleccionando la protección por diario de esas vías de acceso
Para disfrutar de todas las ventajas de la protección del re- puede reducir lo que de ordinario llevaría varias horas de
gistro por diario que ofrece el release V5R4, puede que le inte- tiempo de recuperación para vías de acceso inmensas a unos
rese registrar por diario sus colas de datos. Las colas de datos pocos segundos.
–como las vías de acceso a la base de datos y los índices de Sin embargo, esa protección por diario era limitada para
SQL– son objetos inherentemente frágiles. Un cambio exter- los departamentos que hubieran optado por acelerar la eje-
no aparentemente simple (por ejemplo, agregar o eliminar cución de las consultas a la base de datos creando el tipo es-
un mensaje) puede desencadenar varias modificaciones inter- pecial de índice de SQL denominado Índice de vector codifi-
nas de la cola, abarcando múltiples páginas y múltiples sec- cado (EVI) en vez de un índice de SQL más tradicional. Esto
tores de disco. Por consiguiente, cada vez que la máquina fi- es así porque antes del release V5R4 los EVI no cumplían los
naliza de forma anómala sin poder guardar todo el contenido requisitos para esa protección. Esta limitación presentaba
de la memoria principal, hay muchas probabilidades de que un dilema: ¿debía arriesgarse a aumentar la velocidad de eje-
la cola de datos ya no sea estructuralmente correcto. Esta cución de las consultas creando un EVI nuevo o debía apa-
discrepancia interna puede manifestarse como un error gra- ñárselas con un índice de SQL normal (o sea, un índice base
ve. Por lo tanto, la cola de datos ya no será fiable ni utilizable de árbol binario)? En el pasado, si creaba un EVI nuevo, co-
tras un fallo así. Cuando los índices de la base de datos se rría el riesgo de que la duración de la IPL anómala fuera
enfrentan a un infortunio semejante, buscan la protección mayor si se producía un fallo.
del registro por diario. Las colas de datos ahora pueden ha- La buena noticia es que en la V5R4 ya no tenemos que pa-
cer lo mismo. sar apuros tomando esa elección: ahora es posible elegir los
Antes del release V5R4, el soporte dado por el registro por EVI para protegerlos por diario. Activar la protección de los
diario a las colas de datos era algo limitado, en parte debido índices de vector codificado es tan fácil como especificar este
a la naturaleza de la recuperación completa en un local de mandato:
recuperación en caso de siniestro. Ésta a menudo consiste en
un proceso de dos pasos: restaurar una copia salvada del ob- STRJRNAP . . . FILE(Biblioteca/EVI)
jeto y ejecutar la operación Aplicar cambios de diario
(APYJRNCHG) en el objeto. Darse un respiro
Aunque los archivos de la base de datos hace tiempo que A medida que el volumen del tráfico del registro por diario
cumplen los requisitos exigibles para ambos pasos, no ocurre crece, el ritmo de llegada de nuevas entradas de diario a ve-
lo mismo con las colas de datos. En cierto sentido, las colas de ces es tan rápido y tan frenético que el hardware y el soft-
datos han sido ciudadanas de segunda. En la V5R4, dejan de ware subyacentes apenas tienen tiempo de hacer otra cosa
serlo, porque ahora hay un nuevo parámetro que puede apli- (especialmente, si hay montones de objetos activos haciendo
carse en el momento de salvar. contribuciones al mismo diario).
Antes de la V5R4, el acto de salvar una cola de datos pro- Todos los diarios periódicamente requieren algunas accio-
bablemente no hacía lo que realmente queríamos. Éste sola- nes de mantenimiento. A menudo, estas acciones son tan su-
mente salvaba la cáscara de la cola de datos; se salvaba la tiles y modestas que apenas se notan. No obstante, si el rit-
cola en sí y su definición, pero no su contenido. De este modo, mo de llegada de nuevas entradas de diario crece demasiado
cuando se llegaba al local de recuperación y se intentaba re- y si la cantidad de objetos distintos que hacen depósitos de
cuperar la cola, ésta no tenía entradas. Este no era un buen diario es importante, la tareas de mantenimiento pueden con-
▲ punto de partida para el mandato APYJRNCHG. El release vertirse en abrumadoras. Aquí es cuando puede que tenga
▲ V5R4 resuelve este problema. La nueva palabra clave que intervenir y usar una nueva opción de ajuste del release
▲ QDTA(*DTAQ) de los mandatos SAVOBJ y SAVLIB indican V5R4 poco conocida: el total de recuperación de diario
al sistema operativo que salve no sólo la cáscara vacía de la (JRNRCYCNT). Esta opción puede ajustarse con un
cola de datos, sino también su contenido: parámetro nuevo del mandato Cambiar diario (CHGJRN),
como se muestra en el ejemplo siguiente:
Management

SAVOBJ . . . QDTA(*DTAQ)
CHGJRN . . . JRNRCYCNT(250000)
Ahora, no sólo puede reducirse la probabilidad de que colas
de datos vitales resulten afectadas por una avería de la má- JRNRCYCNT indica cuántas entradas de diario desea per-
quina, sino que también puede garantizar que podrá recupe- mitir que procese una IPL anómala. Por ejemplo, si seleccio-
rar el contenido más reciente de la cola si tuviera que despla- na el valor 50.000, estará indicando al sistema operativo que
zarse al local de recuperación en caso de siniestro. prefiere restringir la duración del tiempo de recuperación

34 ServerNEWS FEBRERO 2008 www.help400.es


forma de lograr ese objetivo es especifi-
car un total de recuperación de diario
más alto. Valores comprendidos entre
200.000 y 250.000 parecen adecuados
para la mayoría de departamentos.
¿Cómo saber si las tareas de mante-
nimiento trabajan demasiado? La me-
jor forma es echar un vistazo periódi-
camente –en especial durante los
momentos de mayor actividad del día-
para ver cómo les va a las tareas de
mantenimiento que se ejecutan en se-
gundo plano. Debería estar pendiente
de dos grupos de tareas: JOREC_U y
JOREC_D.
Las tareas con una “U” detrás del sig-
no de subrayado realizan tareas de
FIGURA 1 mantenimiento de parte de diarios de
Trabajos JOREC_U “usuario” (es decir, los diarios que nor-
malmente crea el usuario). Las tareas
con una “D” tras el signo de subrayado
dedicado al proceso de repetición del diario como mucho al gestionan el mantenimiento de los diarios “por omisión”
tiempo que tarde en procesar y repetir las 50.000 operacio- (default). Estos son diarios ocultos que crea el propio siste-
nes registradas por diario más recientes. Muchos modelos de ma, como los usados para gestionar la protección de vías de
hardware modernos pueden pueden efectuar 50.000 de esas acceso gestionada por el sistema (SMAPP).
operaciones en un par de minutos si cada acción registrada Para echar una mirada a la actividad de estas tareas, con-
por diario exige una falta de página adicional y cuatro minu- sulte la pantalla de actividad del sistema con el mandato
tos si cada operación repetida afecta a dos sectores distintos WRKSYSACT (disponible con el paquete de herramientas de
del disco. Por lo tanto, un valor de 50.000 es tolerable para la rendimiento de i5/OS), use F16 para ordenar las actividades
mayoría de empresas. Puede que incluso sea factible especi- resultantes, especifique la opción 2 (ordenar por E/S) para
ficar un valor mayor. que los trabajos que realizan más operaciones de lectura/gra-
Por otro lado, el valor total de recuperación de diario limita bación en el disco aparezcan en la parte superior y pulse F15,
la frecuencia de algunas tareas de mantenimiento planifica- para que se vean únicamente las tareas del SLIC (Figura 1).
das para ejecutarse en segundo plano de forma regular. El Observe cuánta CPU consumen y, lo que es más importan-
algoritmo de mantenimiento consiste, grosso modo, en acti- te, cuántas operaciones de E/S de disco están generando.
var la tarea de mantenimiento cada vez que la llegada de un Cuanto mayor sea la frecuencia con que tengan que activar-
conjunto de nuevas entradas de diario iguale al valor resul- se estas tareas y más ocupadas estén en ese momento, más
tante de dividir el total de recuperación entre el número de urgente será proporcionarles algún alivio. Aumentar el total
objetos que cambian activamente. de recuperación de diario es una forma práctica de hacerlo.
Por ejemplo, si utiliza un total de recuperación de 50.000 y
sólo tiene un archivo que experimenta cambios, las tareas de Todo incluido
mantenimiento en segundo plano se activarán una vez cada Tanto si tiene necesidad de subir el techo, darse un respiro,
50.000 entradas de diario. Si utiliza el mismo total de recu- poner el diario a dieta, proteger las colas de datos, vigilar los
peración (50.000) pero el trabajo se reparte entre diez archi- EVI o adoptar un compromiso más amable y afectuoso, en el
vos distintos, cada uno de los cuales cambia activamente, las release V5R4 lo encontrará todo. ■
tareas de mantenimiento ejecutadas en segundo plano esta-
Management

rán inactivas durante menos tiempo y habrá que activarlas


cada 50.000/10 = 5.000 entradas de diario. Si el número de
objetos que cambian activamente es 100, las tareas de man-
tenimiento estarán muy ocupadas y estarán inactivas aún
menos tiempo. Si tiene 1.000 objetos que cambian activamen-
te... bueno, creo que ya ha captado la idea. Un poco de mante-
nimiento está bien. Ejecutar tareas de mantenimiento ince-

santemente puede ser agobiante. Por esta razón, algunos Larry Youngren trabaja en el laboratorio de Rochester de IBM como ▲
departamentos de informática puede que tengan que reducir diseñador de microcódigo para i5/OS y es jefe del equipo iSeries Journal ▲
un poco la frecuencia de sus acciones de mantenimiento. Una Development Team.

www.help400.es FEBRERO 2008 ServerNEWS 35


Amplíe el poder de SQL con
sentencias de control
Las sentencias de control otorgan a SQL algunas de las características
de un lenguaje de programación
por Sharon L. Hoffman

S
QL es ante todo un lenguaje de recuperación y sus valores. Así que vamos a ver cómo se puede usar SQL
manipulación de datos, pero a menudo nos gusta- para tratar estas tareas.
ría añadir cierta lógica de programación a las
sentencias de SQL. En el entorno del System i, Información, por favor
muchas de las sentencias de SQL especializadas En una sentencia compuesta pueden incluirse sentencias
que manejan tareas de programación pueden describirse Declare (en el punto A de la Figura 2). Las sentencias Decla-
genéricamente como sentencias de control, pero ese nom- re son vitales para programar con SQL porque permiten de-
bre es, en el mejor de los casos, confuso. A las sentencias finir cursores (punteros con los que se pueden recorrer con-
de control a veces se las denomina lenguaje de procedi- juntos de resultados) y variables. Las variables declaradas
mientos almacenados o lenguaje de procedimientos de SQL en una sentencia compuesta son válidas en cualquier punto
(ambos abreviados como SPL). Para complicar aún más las de la sentencia compuesta en que se definan, así como dentro
cosas, las sentencias de SQL dentro de una sentencia de de cualquier sentencia compuesta anidada.
control se conocen oficialmente como sentencias de proce- Además, las sentencias de control pueden utilizar colum-
dimientos de SQL. nas de tablas de la base de datos. Según sea el tipo de aplica-
Las sentencias de control son casi universalmente válidas ción que se vaya a escribir, es posible tener acceso a más va-
dentro de las rutinas de SQL (desencadenantes, funciones riables (por ejemplo, un procedimiento almacenado puede
definidas por el usuario y procedimientos almacenados escri- recuperar datos de sus parámetros de entrada y modificar
tos en SQL). Asimismo, se pueden utilizar algunas senten- sus parámetros de salida).
cias de control cuando se incorpora SQL en una aplicación Una vez creadas las variables, tal vez tenga que modificar
mediante técnicas como SQL incrustado y JDBC. Por lo ge- sus valores. Para ello, puede usar una sentencia de control
neral, las sentencias de control no son válidas en entornos de Set, como la que se puede ver en el punto B de la Figura 2. (Si
SQL interactivos como iSQL o iSeries Navigator. consulta la documentación de IBM, no encontrará la senten-
En la Figura 1 se enumeran las sentencias de control de cia de control Set; IBM se refiere a Set como “la sentencia de
DB2 UDB para System i de la V5R4. Empezaremos explo- asignación”).
rando la sentencia compuesta, una sentencia de control que Además de definir variables y modificar sus valores, la
da a las rutinas de SQL su estructura. mayoría de los programas hacen comparaciones lógicas y uti-
lizan los resultados para dirigir el flujo de la aplicación. Mu-
Soporte estructural chas sentencias de control de la Figura 1 se ocupan de estos
Una sentencia compuesta agrupa varias sentencias de SQL aspectos de la lógica de programación y, con frecuencia, la
encerrándolas entre las cláusulas Begin y End, como puede sentencia de control tiene el mismo nombre que su equiva-
verse en la Figura 2. La única sentencia que conforma el lente en RPG.
▲ cuerpo de una rutina de SQL puede ser una sentencia com-
▲ puesta que contenga múltiples sentencias compuestas, ha- Trazar el rumbo
▲ ciendo que el límite de una sentencia por rutina sea mucho Empecemos la exploración de las posibilidades de usar bu-
menos restrictivo de lo que parece. cles y bifurcaciones en SQL con las sentencias If. Cada sen-
Programación y sistemas

A medida que el código escrito en SQL se vuelve más com- tencia If debe incluir una cláusula Then y debe finalizar con
plejo, descubrirá que las sentencias compuestas facilitan el End If, como se muestra en el punto C de la Figura 3.
mantenimiento y la comprensión del código. Para hacer aún Opcionalmente, dentro de una sentencia If se puede escribir
más fácil la observación de la estructura del código se puede una cláusula Else. Las sentencias If pueden anidarse aña-
añadir una etiqueta a la sentencia compuesta (como se ve en diendo directamente otra sentencia If dentro de la cláusula
el punto C de la Figura 2). La etiqueta de una sentencia com- Then (punto A de la Figura 3) o añadiendo una cláusula Else
puesta no afecta a su ejecución. If (punto B).
Por supuesto, ningún lenguaje de programación estaría La sentencia Case es parecida a If, pero Case especifica
completo sin la posibilidad de definir variables y modificar varias condiciones, cada una de las cuáles tienen su propia

36 ServerNEWS FEBRERO 2008 www.help400.es


FIGURA 1 FIGURA 2
Sentencias de control del release V5R4 Variables y sentencias compuestas

Finalidad CREATE PROCEDURE SHOFFMAND.CTRLSTMTFIG02


Sentencia de control (IN CUTOFFAMT NUMERIC(5,0))
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
LANGUAGE SQL
sentencia compuesta Definir un grupo de sentencias de SQL SPECIFIC SHOFFMAND.CTRLSTMTFIG02
(Begin ... End) relacionadas
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
BEGIN
sentencia de asignación Modificar el valor de una variable o parámetro A DECLARE NEWSTATUS CHAR ( 1 );
B SET NEWSTATUS = ‘Z’;
(Set)
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ C INNERCOMPOUNDSTMT: BEGIN
Call Llamar a un procedimiento almacenado UPDATE SHOFFMAND.INVOICE
SET INVSTAT = NEWSTATUS
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
WHERE INVAMT < CUTOFFAMT;
Case Definir varias condiciones y el código que END INNERCOMPOUNDSTMT;

hay que ejecutar cuando cada condición sea END


verdadera
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

For Definir un cursor y un bucle a través de un


conjunto de resultados
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
cláusula When. Las cláusulas Then y Else asociadas definen
Get Diagnostics Recuperar información sobre la ejecución de
el proceso que tendrá lugar si las condiciones declaradas en
la sentencia anterior
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
la cláusula When son ciertas (cláusula Then) o falsas (cláu-
Goto Saltar a una sentencia especificada sula Else).
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
Si desea que un segmento de código se ejecute repetida-
If Especificar una comparación lógica, el
mente (o sea, definir un bucle), las sentencias de control ofre-
código que se ejecutará si la condición es
cen cuatro opciones:
verdadera y, opcionalmente, el código que
se ejecutará si la condición es falsa
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
• For define un bucle especificando un cursor para una sen-
Iterate Saltar a la parte superior de la estructura de tencia Select, como en el punto A de la Figura 4. El cuerpo
bucle indicada y continuar el proceso del bucle For se ejecuta para todas las filas del conjunto de
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
resultados y está delimitado por Do y End For (en el punto
Leave Salir de la estructura de bucle indicada
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
B).
Loop Definir un grupo de sentencias que se • Loop repite un grupo de instrucciones pero no incluye un
ejecutará varias veces mecanismo para determinar cuándo salir del bucle. Para
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
evitar un bucle infinito, debe incluirse una salida explícita.
Repeat Definir un grupo de sentencia que se • Repeat es una construcción de tipo Do Until. El bucle se
ejecutará hasta que se cumpla una ejecutará al menos una vez. Una cláusula Until indica la
condición condición que controla el bucle y End Repeat marca el final
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Resignal Enviar códigos de error e información del bucle.


relacionada con el código de llamada; se • While es una construcción de tipo Do While. El bucle nun-
utiliza dentro de un manejador de condicio- ca se ejecutará si la condición especificada es falsa la pri-
nes de excepción mera vez que se recorre el bucle. Do y End While señalan
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○
los límites del bucle.
Return Salir de la función definida por el usuario o
del procedimiento almacenado actuales y,
A veces, deseará salir de un bucle antes de que se haya
opcionalmente, enviar un valor de retorno al
cumplido la condición que define la finalización del bucle. En
Programación y sistemas
componente que ha hecho la llamada
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ estos casos, puede usar Iterate o Leave para finalizar el pro-
Signal Enviar códigos de error e información ceso del bucle. La diferencia entre Leave e Iterate es que el
relacionada con el código de llamada; se primero sale sin condiciones mientras que Iterate empieza
utiliza fuera de un manejador de condiciones otro bucle mientra las condiciones que controlan la iteración
de excepción sigan siendo verdaderas. En cualquier caso, se puede contro-
○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

lar de cuántos niveles de anidamiento han de salir Leave o


While Definir un grupo de sentencias que seguirá
Iterate especificando el nombre de etiqueta asociado con las
ejecutándose hasta que la condición
sentencias de control del bucle (es decir, For, Loop, Repeat o
indicada ya no sea verdadera
While). Si no especifica una de las etiquetas asociadas con
Para encontrar los diagramas sintácticos de las sentencias de control

las sentencias de control, Iterate pasará el control al inicio ▲
de SQL en el InfoCenter del release V5R4 del System i, seleccione del bucle actual y Leave continuará el proceso con la senten- ▲
Base de datos|Referencia|Referencia de SQL|SQL control statements cia que sigue tras el final del bucle actual.

www.help400.es FEBRERO 2008 ServerNEWS 37


■ AMPLÍE EL PODER DE SQL CON SENTENCIAS DE CONTROL
La sentencia de control final para redirigir el flujo
de una aplicación es Goto, que permite saltar directa- FIGURA 3
mente a cualquier etiqueta especificada. Sin embargo, Sentencias IF
como en cualquier otro lenguaje de programación, el
CREATE PROCEDURE SHOFFMAND.CTRLSTMTFIG03
uso de Goto en SQL está mal visto. (IN SELTYPE CHARACTER(1), IN SELSTAT CHARACTER(1))
Para completar nuestra explicación sobre las sen- LANGUAGE SQL
SPECIFIC SHOFFMAND.CTRLSTMTFIG03
tencias de control que influyen en el flujo de la aplica-
ción, hay dos –Call y Return– que permiten enlazar BEGIN
IF SELTYPE = ‘C’
los componentes de código escritos en SQL. Call pue- THEN
de usarse para llamar a un procedimiento almacena-
A IF SELSTAT = ‘$’
do de una rutina de SQL o desde aplicaciones escritas THEN
en otros lenguajes (por ejemplo, mediante SQL incrus- UPDATE SHOFFMAND.INVOICE
SET INVAMT = 75.00;
tado o JDBC), así como desde algunas interfaces de ELSE
SQL interactivas (como iSeries Navigator). UPDATE SHOFFMAND.INVOICE
SET INVSTAT = ‘C’ WHERE INVSTAT = SELSTAT;
La sentencia de control Return es la inversa de Call: END IF;
las sentencias Return se incluyen dentro de procedi- B
ELSE IF SELTYPE = ‘H’
mientos almacenados de SQL o funciones definidas por THEN
el usuario para salir de la rutina. Cuando se ejecuta UPDATE SHOFFMAND.INVHIST
SET HSTISTAT = ‘H’ WHERE HSTISTAT = SELSTAT;
una sentencia Return en una función definida por el ELSE
usuario, opcionalmente puede incluir un resultado (es UPDATE SHOFFMAND.INVOICE
SET INVSTAT = ‘C’ WHERE INVSTAT = SELSTAT;
decir, un valor de retorno) que se le pasará al código UPDATE SHOFFMAND.INVHIST
que la llama. Para una función escalar definida por el SET HSTISTAT = ‘H’ WHERE HSTISTAT = SELSTAT;
C END IF;
usuario, el valor de retorno es un único elemento de
información; en una función de tabla definida por el END IF;

usuario, la sentencia Return devuelve todo el conjun- END


to de resultados al que efectúa la llamada.
Los procedimientos almacenados usan parámetros
en vez de valores de retorno para devolver la información al FIGURA 4
que efectúa la llamada, pero se puede incluir una sentencia Bucle FOR
Return en un procedimiento almacenado para establecer un
CREATE PROCEDURE SHOFFMAND.CTRLSTMTFIG04
valor entero que indique el estado (por ejemplo, 0 = finaliza- (IN SELSTATUS CHARACTER(1), IN SELSTATE CHARACTER(2))
ción correcta). La sentencia de control Return no es válida en LANGUAGE SQL
SPECIFIC SHOFFMAND.CTRLSTMTFIG04
los desencadenantes.
Las sentencias de control que hemos analizado hasta aho- BEGIN
ra dan a SQL muchas de las características de un lenguaje
A FOR RESULTROW AS
de programación. No obstante, falta una cuestión crucial para CUSCURSOR CURSOR FOR
SELECT * FROM SHOFFMAND.CUSTOMER
cualquier aplicación: el manejo de errores. Para ofrecer un WHERE CUSSTATE = SELSTATE
manejo de errores robusto para las rutinas de SQL, se pue-
DO
den usar las sentencias de control Get Diagnostics, Resignal B UPDATE SHOFFMAND.INVOICE
y Signal. Además, puede utilizarse una sentencia compuesta SET INVSTAT = SELSTATUS
WHERE INVCUST = CUSNUMB;
para definir uno o varios manejadores de condiciones de ex- END FOR;
cepción, que transfieran el control al segmento de código apro-
END
piado cuando se produzca un error.

▲ Proceda con cautela A pesar de esta advertencia, añadir algunas posibilidades
▲ Se puede usar SQL para cualquier cosa, desde hacer compa- de programación al código escrito en SQL permite sacar aún
raciones complejas hasta realizar cálculos aritméticos, pero
Programación y sistemas

más partido a los puntos fuertes de SQL y facilita su integra-


eso no significa que sea la mejor herramienta para hacer esos ción con el código escrito en otros lenguajes. Cuanto más use
trabajos. Por ejemplo, si desea recuperar todos los pedidos de SQL, más importancia adquirirán las sentencias de control
los clientes de Andalucía que han comprado un chisme mora- en su caja de herramientas de programación de SQL. ■
do en los tres últimos años, SQL es elegante y eficaz. Sin
embargo, si quiere calcular los precios de venta al público a
partir de un complejo conjunto de criterios como el historial
Sharon L. Hoffman es una veterana redactora técnica de ServerNEWS.
de pedidos del cliente, su nivel de solvencia y los otros artícu- Empezó a trabajar con sistemas midrange de IBM en 1981 y de su currículo
los del pedido, normalmente lo mejor será utilizar un lengua- cabe destacar su dilatada experiencia en el desarrollo de aplicaciones, así como
je de programación como RPG o Cobol. su dedicación a la formación técnica.

38 ServerNEWS FEBRERO 2008 www.help400.es


Programación y sistemas



<Notas del traductor>


www.help400.es FEBRERO 2008 ServerNEWS 39
1. No sé si lo copiarás a tu web, pero
creo que es la primera vez que se indica un
GUIA

40 ServerNEWS FEBRERO 2008 www.help400.es


GUIA

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

www.help400.es FEBRERO 2008 ServerNEWS 41


confidencial por Carlos Bell

i5/OS V6R1: Llegan los cambios a nivel de MI


Entre las brillantes aportaciones en el diseño del S/38 y AS/400, precursores del
actual System i, quizás la que más destaque sea la interfase de máquina (MI, Machine
interface) que IBM creó entre el sistema operativo y el hardware en que se ejecuta,
independizándolo de la tecnología. Esta aportación es la que permite que cambiar el
OS o el hardware en el System i sea mucho más fácil que en cualquier otra platafor-
ma. Pero en ocasiones, aunque no sean frecuentes, el hardware cambia tanto que
incluso es necesario cambiar el MI. Tal es el caso con la nueva V6R1 del i5/OS.
En la larga historia de la saga S/38 - AS/400 - iSeries - System i que se remonta a
finales de los 70 del siglo pasado, IBM sólo ha cambiado la interfase de máquina en
dos ocasiones. La primera, cuando en junio de 1988 se pasó del S/38 con sistema
operativo CPF al nuevo AS/400 con OS/400 V1R1 y, la segunda en 1995, durante el
cambio de tecnología CISC a RISC cuando la V3R1 del OS/400 se actualizó a la
V3R6 para pasar de un sistema de direccionamiento de 48 a 64 bits y para utilizar
un nuevo conjunto de instrucciones de hardware. En ambos casos, la tecnología del
procesador cambió tan radicalmente que esta interfase de máquina –la máquina
virtual en la que se ejecuta el OS/400– tuvo que modificarse para que pudiera apro-
vechar las nuevas características del hardware.
Y cuando el MI debe cambiar, significa que las aplicaciones en RPG, COBOL Java y C tienen que convertirse para que
puedan ejecutarse en el nuevo OS y el hardware asociado. La buena noticia es que IBM está preparando la transición a
V6R1 mucho mejor de lo que fue cambiar de los AS400 basados en CISC a los AS400 basados en RISC PowerPC. En esta
ocasión IBM ha dedicado un gran esfuerzo para automatizar el proceso de conversión a V6R1. Y lo más importante, para
facilitar la transición, IBM ha publicado un informe técnico, titulado “Conversión de programas i5/OS: Prepárese para la
V6R1” (i5/OS Program Conversion: Getting Ready for V6R1 que puede descargarse desde www.redbooks.ibm.com/redpieces/
abstracts/redp4293.html) cuya lectura debería ser obligatoria.
Sin entrar en muchos detalles técnicos veamos que es lo que pasa cuando se crean las aplicaciones. Supongamos que un
programador escribe una aplicación en RPG y, ya sea usando el compilador OPM (Original Program Model) o el de ILE
(Integrated Language Environment), compila los códigos fuente para generar los objetos de los programas. O eso es lo que
el programador cree que está haciendo. Lo que realmente sucede es que los programas se compilan en un estado intermedio
a nivel de MI, creando una “plantilla” conocida también como observabilidad. Estas plantillas se crean para un procesador
y un conjunto de instrucciones de hardware específicos. La primera vez que se ejecuta la aplicación es cuando a partir de
dichas plantillas el MI genera el código máquina de los objetos compilados. Pero a principios de los 90, como los clientes
desconocían este proceso, se solía suprimir la observabilidad de los programas para ganar espacio en disco. En la transición
de CISC a RISC el problema fue que para muchos clientes, las aplicaciones eran demasiado viejas y en algunos casos no
tenían su código fuente. Así que el MI no podía recompilar los objetos desde el nivel intermedio y, al no disponer de los
fuentes, los compiladores tampoco podían regenerar las plantillas para el nuevo OS y el nuevo hardware.
Volviendo al presente, IBM está siendo realmente clara. E
incluso podríamos decir que lo está llevando con pinzas. Por
INDICE DE ANUNCIANTES FEBRERO 2008 ejemplo, cualquier programa compilado de V5R1 en adelante
Empresa Página podrá automáticamente salvar en el sistema los datos de crea-
ción (el nuevo nombre con que se conoce la plantilla del pro-
grama o la observabilidad). Según el informe citado, los clien-
AMERICAN TOP TOOLS ..................... Interior portada tes que tengan aplicaciones compiladas para la V4R5 o
AMERICAN TOP TOOLS ....... Interior contraportada anteriores deberán comprobar que esas plantillas todavía es-
CACOVAI ................................................................................ 23 tán en sus máquinas antes de cambiar a la V6R1.
IBM ha creado el mandato ANZOBJCVN (Analyze Object
GUÍA ................................................................................. 40, 41
Conversion), que estará disponible a través de PTF’s para la
IBM .................................................................. Contraportada V5R3 y V5R4 de i5/OS, para ver qué programas y ficheros
MICROSOFT ........................................................................... 27 necesitan ser convertidos como parte del cambio a la V6R1,
SOFTWARE GREENHOUSE .............................................. 15 una versión que funcionará en los System i 515, 520, 525,
550, 570, 595 así como en los iSeries 800, 810, 825, 870 y 890,
SUSCRIPCION ServerNEWS ............................................ 35
pero no en modelos iSeries anteriores. ■
TANGO/04 ................................................................................ 9
VISION SOLUTIONS ............................................................ 15 Como sabes, esta información es estrictamente confidencial. Aunque nosotros
neguemos haberlo dicho o escrito, te autorizo a que obres en consecuencia

42 ServerNEWS FEBRERO 2008 www.help400.es

Вам также может понравиться