ServerNEWS -181 (Febrero 2008)

44
181

description

Multiplique sus opciones para el desarrollo de aplicaciones con PHP y MySQL para System i - iSeries - AS/400

Transcript of ServerNEWS -181 (Febrero 2008)

Page 1: ServerNEWS -181 (Febrero 2008)

181

Page 3: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 3

editorial

Suscripción: Anual (10 númerosal año, no en Julio y Agosto).España: 96 euros (IVA incluido).Extranjero: 180 $ USA (incluido elenvío por Correo Aéreo). Sedistribuye a final de mes.

© Publicaciones HELP400, S.L.Se prohibe la reproducción total o parcialde los artículos aparecidos en estenúmero sin la autorización expresa porescrito de la empresa editora, titular delCopyright. Todos los derechos reservadosen cualquier idioma.ServerNEWS es una publicaciónindependiente de grupos de usuarios y/ode distribuidores de marcas. De las ideasexpuestas en los artículos firmados sonresponsables sus autores. Corresponde allector el asegurar que las noticias,técnicas y procedimientos descritos sonadecuados para su instalación.Publicaciones HELP400 S.L. noasume ninguna garantía ni implícita niexplicitamente.La empresa editora no se responsabiliza dela asiduidad en la distribución gratuita alas empresas españolas equipadas conS/3X o AS/400.

IBM y AS/400 son marcas registradaspor International Business Machines.

Antonio Montí[email protected]

Imagen de la portada: Mike Friehauf

Celebramosotro aniversario

ServerNEWS acaba de cumplir 18 años, y a partir de este número seremosmayores de edad! ¿Cambiará eso nuestra vida? ¿Seremos más creativos ydecididos desde ahora? En la vida real, al celebrar este cumpleaños uno deseaser 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 dedecidir, 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 adquirirtodas las posibilidades de ser autosuficientes en el dificil arte de vivir la vida.

En ServerNEWS, tras dieciocho años de circulación ininterrumpida como medionatural de información del entorno System i de habla hispana y de haber enviadomás de 55 millones de páginas a nuestros lectores para ayudarles en su quehacercotidiano, también sentimos esta inquietud interna, propia del adolescente, quepresiente que con su mayoría de edad ha llegado la hora de prescindir de muchosconvencionalismos para poder materializar todos sus sueños. En ello estamos; enun debate interno franco y abierto del que podría surgir una revista más propiadel 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 emisionesde Antena 3, la primera cadena de televisión privada a nivel estatal. Un año en elque a nivel profesional los PCs todavía utilizaban el DOS en modo texto cuandoMicrosoft presentó su Windows 3.0 y en el que Tim Berners-Lee definió las basesdel WWW en el CERN de Ginebra. Ni existía Linux, ni Java, ni PHP, por citar sólounas pocas referencias. Ni tan siquiera existía el formato PDF y la revista, enton-ces llamada HELP400, se editaba tras un largo proceso de fotocomposición de tex-tos desde el que se obtenían los fotolitos para insolar las planchas que permitíansu impresión.

Ese es el camino que a todos nos marca el progreso. A diferencia del especial delXV aniversario o de la llegada al número 100, este número festeja su mayoría deedad de una manera más sencilla y humilde, pero eso sí, con material fresco y decalidad, como lo ha venido haciendo desde siempre. Con él hemos querido resaltarel rejuvenecimiento del entorno centrándonos en el lenguaje PHP y a la base dedatos MySQL, ambos de código libre y líderes del sector, que puede aportar mu-chas aplicaciones adicionales y flexibilidad para el desarrollo de las empresa equi-padas con System i..

¡Muchas gracias amigos suscriptores y lectores en general por permitirnos lle-gar cada mes a sus escritorios y por apreciar este esfuerzo editorial durante estosaños!

¡

Page 4: ServerNEWS -181 (Febrero 2008)

4 ServerNEWS FEBRERO 2008 www.help400.es

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

equipo editorial

Director: Antonio MontíaRedacción: Carlos Bell, Alberto C. Blanch,Equipo internacional de iSeries NEWSColaboradores habituales: Jaime GustavoEstany, José Mª Martín, Lluís PeiretTraducciones: Pere J. Francisco Brumós

producción

Realización: Media Limits S.L.Maquetación: Ramiro Esteve CollImpresión: G2B gràfic S.L.Distribución: Unipost S.A.

administración

Suscripciones : Nuria NavarroPublicidad: Tel. 34- 932 310 049

Fax: 34-932 310 309Servicio HelpNet: www.help400.es

edita

PUBLICACIONES

Deposito legal: B-2757-90I.S.S.N. 1698-4501APTDO. DE CORREOS 8003 - 08080 BarcelonaGran Vía Corts Catalanes, 715, Entlo. 3ª08013 - BarcelonaTel.: 932 310 049E-mail: [email protected]

Director General: Alberto C. Blanch Llangostera

Publicado con la participación de

- iSeries NEWS www.pentontech.com

Group Publisher/Editor: Wayne MaddenGroup Editorial Director: Dale Agger

Penton Technology MediaDarrell C. Denny, President

Penton Media, Inc.David Nussbaum, Chief Executive Officer

LATINOAMERICA

distribuidores

Belice, El Salvador, Guatemala y HondurasVIACOMP6ª Avenida. "A" 2-83 Zona 10Ciudad de Guatemala, GUATEMALA 01010Telf. 502-360-0358 y 360-0350Fax 502-332-33694email: [email protected]

PerúCOMMON PERUBajada Balta 131, Of. 10, 2º PisoMiraflores Lima 18, PERUTelf. y Fax: 46 31 32

ParaguayANGEL LIERNUR E HIJOP.O. BOX 2448ASUNCION - [email protected]: [email protected]

en portada

10MySQL ofrece aplicaciones para i5/OSpor Craig Johnson y Erwin EarleyCuando todos los System i incluyen i5/OS y DB2 de serie,¿de qué sirve disponer de otra base de datos? La respues-ta es que MySQL, la base de datos de código libre líder delsector, puede aportar muchas aplicaciones adicionales yflexibilidad para el desarrollo de la empresa.

16Instalación y configuración de PHPpor Erwin EarleyEn este artículo se explica cómo instalar los productos deZend para empezar a programar con PHP en el System i.Concretamente, cómo podemos instalar Zend Core, el mo-tor de PHP, y Zend Studio, el entorno de desarrollo inte-grado de PHP.

20Diez productos PHP que puede ejecutaren System ipor Alan Seiden

El autor ha seleccionado diezcomponentes muy interesan-tes de código libre escritos enPHP que, como veremos, sonmuy fáciles de instalar enel System i, crean valor

para la empresa y, enmuchos casos, son muygráficos.

opinión

8¿Sin avances?por Dan DarnellDedicando el esfuerzo suficiente, con RPG puede hacerse prácticamentecualquier aplicación, pero profesionalmente no se avanza. Para avanzardebe aprender Java o incluso PHP, porque aumentar sus conocimientosde programación es la mejor póliza de seguros en un mundo tan inciertocomo el de la informática.

Page 5: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 5

www.help400.es

FEBRERO 2008 ServerNEWS 5

SECCIONESHABITUALES

33333 Editorial

66666 Novedades

4040404040 Guia

4242424242 Confidencial

forum.help400Forum.help400 es una lista de correospuesta a disposición de los lectores deServerNEWS en la que cada día, entre to-dos los participantes, se solucionan nume-rosos problemas. Hallará más informaciónen http://www.help400.es/forum.htm

HELP400 Suplemento Suplemento Técnico i

Nº 181 FEBRERO 2008

1Utilización de SAX y XML Toolkit para procesar XMLcon RPGPor Craig CaulfieldSAX analiza XML como si fuera una corriente de datos y necesitapocos recursos para procesar el fragmento que pasa en cada mo-mento. El modelo DOM trata todo el documento XML y necesitamuchos más recursos. Cada API tiene sus ventajas e inconvenien-tes y su elección depende de la aplicación a desarrollar.

programación y sistemas

36Amplíe el poder de SQL con sentencias de controlpor Jim FlanaganSQL es, ante todo, un lenguaje de recuperación y manipulación de datos,pero las sentencias de control otorgan a SQL algunas de las característi-cas propias de un lenguaje de programación.

management

32¿Qué ofrece laV5R4 a los usuarios del diario y el controlde compromiso?por Larry YoungrenLa V5R4 de i5/OS incluye una serie de mejoras en la protección por diario yel control de compromiso que pueden resultarles muy atractivas a los usua-rios. Además, las nuevas funciones aportan una mayor facilidad de uso.

en directo

28Una nueva ola de innovación para las empresaspor Alberto C. BlanchSegú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ónde Windows Server 2008 jugará el papel más importante.

presentación

30Una solución vanguardista en System ipor Lluís PeiretUna aplicación basada en ASNA Visual RPG .NET y Adobe LiveCicle hapermitido al Diario Oficial de la Generalitat de Catalunya publicar en laweb y en un tiempo record las más de 500.000 páginas de las normativasurbanísticas de todos los Ayuntamientos de Cataluña.

12Los 100 números del Suplemento HELP400Por Carlos BellSobre los orígenes de este suplemento técnico, exclusivo para lossuscriptores de la revista ServerNEWS.

Page 6: ServerNEWS -181 (Febrero 2008)

6 ServerNEWS FEBRERO 2008 www.help400.es

novedades

L as características más destacables de la nueva versión son lascapacidades de virtualización de almacenamiento, un mejor ren-

dimiento de Java, el cifrado de las copias de seguridad, mejoras en labase de datos y Systems Director. Además, se anunció un mejor so-porte para redes de almacenamiento, soporte para BladeCenter, elproducto High Availability Solutions Manager para clústeres de dis-cos y la reestructuración de algunas herramientas de desarrollo.

“Hay un montón de novedades en este release”, comenta CraigJohnson, jefe de producto de i5/OS de IBM. “Y si reunimos un grupode usuarios y clientes, habrá alguna cosa que les interesará a casi to-dos. Hay muchas cosas que satisfacen bastantes necesidades de losclientes”. Para poder saborearlas, los incondicionales del System itendrán que esperar hasta el 21 de marzo, que es cuando saldrá a laventa la nueva versión del sistema operativo.

Los servidores con las versiones V5R3 o V5R4 se pueden actuali-zar directamente a V6R1. El soporte para V5R3 finaliza en abril de2009. V6R1 puede ejecutarse en equipos System i 800, 810, 825, 870,890, 520, 550, 570, 595, 515, 525 basados en POWER5, en los 570basados en POWER6 y en el blade JS22. La próxima versión de i5/OS no será compatible con los servidores System i de la serie 800.

El release V6R1 cuesta lo mismo que el release V5R4, según IBM.Los precios del sistema operativo básico van desde los 1.795 dólarespor procesador para un i515 hasta los 53.000 dólares por procesadorpara los sistemas i570 o i595. Hallará más información sobre los pre-cios para Estados Unidos en el comunicado 208-014. A grandes ras-gos, lo que IBM anunció en enero es:

i5/OS en un blade. Los sistemas V6R1 pueden ejecutar i5/OS en unequipo blade de un Blade Center. i5/OS V6R1 es compatible con elblade JS22, un sistema blade POWER6 de 4 GHz de núcleo cuádru-ple. El JS22 puede ejecutarse en los chasis BladeCenter H, capacesde admitir hasta 14 blades x86 y POWER. Una partición que contie-ne VIOS e Integrated Virtualization Manager (encontrará más infor-mación en el apartado relativo a las mejoras en virtualización) ges-tiona los recursos y el almacenamiento del sistema blade (sobre unaSAN; es compatible con los servidores de almacenamiento DS4700,DS4800, DS8100 y DS8300 o la unidad de cinta SAS externa). i5/OSen BladeCenter también admitirá VMotion de VMware. En el futuroofrecerá compatibilidad con el chasis S, que admite hasta seis equi-pos blade x86 y POWER además de 12 discos.

Red de almacenamiento (SAN). Un nuevo adaptador FibreChannel (4 Gbit, sin IOP, con adaptadores de dos puertos) mejora detal forma el rendimiento de E/S que es comparable a usar almacena-miento interno. Su capacidad aumenta hasta 64 LUN por puerto,mejora la flexibilidad ya que se le pueden conectar discos y cintas, ypermite arrancar desde cinta. El adaptador necesita V6R1 y un sis-tema basado en el procesador POWER6. Es compatible con el DS8000.

Mejoras en virtualización. La virtualización basada en i5/OS per-mite que sus particiones utilicen recursos de disco y almacenamien-to de otra partición de i5/OS, eliminando la necesidad de adquiriradaptadores y unidades de disco para cada partición de i5/OS delsistema. Funciona igual que el proceso actual de virtualización de

i5/OS V6R1, una exquisitezpara 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 sistemaoperativo podrían asegurar al System i un lugar permanente en la infraestructura informática de cualquier empresa.

almacenamiento de particiones de i5/OS para particiones de AIX oLinux. Esta característica requiere sistemas basados en el procesadorPOWER6 y en las particiones debe instalarse el release V6R1.

Una solución alternativa al almacenamiento virtual es lavirtualización basada en VIOS, que se parece a la forma en que losSystem p gestionan la virtualización de almacenamiento. Una solapartición de dispositivo VIOS se encarga de repartir almacenamien-to a otras particiones que ejecutan i5/OS, AIX y Linux. Esta funciónrequiere sistemas POWER6 y V6R1 y es compatible con los servido-res de almacenamiento DS4700, DS4800, DS8100 y DS8300.Integrated Virtualization Manager permite crear y gestionar parti-ciones en la partición de VIOS.

Storage Space Snap Shots permite hacer copias de seguridad delos datos mientras una partición virtual o un servidor integrado es-tán activos. Esta mejora es compatible con los espacios de almacena-miento de i5/OS, Windows, Linux, AIX y VMware.

Una mejora de las particiones lógicas para las agrupaciones com-partidas de procesadores permite que los usuarios agrupen particio-nes en agrupaciones independientes y establezcan límites a la capa-cidad de procesador que puede consumir cada agrupación. Escompatible con las particiones de los releases V5R4 y V6R1 de i5/OS,AIX y Linux en sistemas basados en procesadores POWER6.

IBM Systems Director Navigator para i5/OS. Una nueva herra-mienta basada en web para gestionar i5/OS, Systems DirectorNavigator para i5/OS se suma a la familia de herramientas SystemsDirector de IBM. Es una solución comercial de gestión para i5/OSque puede ejecutarse en un navegador y una alternativa a iSeriesNavigator (que también está disponible en V6R1). En las versionesfuturas de IBM Systems Director, admitirá varios sistemas operativosdistintos en el mismo navegador.

Java y tecnología de servicios web. Una máquina virtual de Javade 64 bits facilita a los proveedores de software la portabilidad deaplicaciones y permite mejorar el rendimiento de la JVM clásica. Elservidor de aplicaciones web integrado (el mismo servidor de aplica-ciones web usado por DB2 Web Query) simplifica la instalación deaplicaciones escritas en Java, admite JSF, JSP y servlets y permiteacceder a DB2 para i5/OS. Un nuevo entorno de servicios web inte-grado facilita la utilización de programas escritos en RPG y COBOLcomo servicios web y la invocación de servicios web desde programasescritos en RPG, COBOL, C y C++.

En el release V6R1 también hay mejoras en el rendimiento de Javay WebSphere, principalmente en JDBC, DB2 para i5/OS y Java (in-cluidas páginas de 64K).

Mejoras en la seguridad. En el release V6R1 se presentan funcio-nes de cifrado por software que permiten que los clientes puedancumplir determinadas normativas. Las compañías pueden cifrar losdatos grabados en cintas de copias de seguridad así como los datosque residen en el disco de una agrupación de almacenamiento auxi-liar. En el release V6R1 también se mejoran las capacidades de de-tección de intrusiones gracias a la notificación en tiempo real de pro-blemas de seguridad mediante buscapersonas y mensajes de correo

Page 7: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 7

Si como proveedor posee alguna novedad relacionada con el entorno System i - iSeries- AS/400 de IBM, recuerde que en esta sección dispone de un espacio gratuito para darlaa conocer a todos nuestros lectores.Puede enviar sus notas de prensa a ServerNEWS mediante correo electrónico([email protected]), o bien a Gran Vía Corts Catalanes, 715, Entlo 3ª 08013 -Barcelona. Para la inclusión de fotografías o logos, agradeceríamos que las remitieran enformato electrónico.

electrónico, y se ofrecen medidas preventivas que pueden evitar quelos clientes inicien un ataque de denegación de servicio (DoS). IBMtambién ha reforzado la integridad de i5/OS mediante firmasdigitales para todos los ejecutables de i5/OS y la erradicación decualquier tipo de programa alterado (es decir, no aprobado por IBM)que se ejecute en un estado del sistema.

High Availability Solutions Manager. Una nueva solución declústeres de discos para alta disponibilidad y recuperación en casode siniestro que es capaz de prestar servicios de aplicación de formaprácticamente ininterrumpida. Permite copiar datos mediante i5/OS y la característica de duplicación de discos (DS8000). Los datosde las IASP se copian de forma síncrona. Ofrece la función de con-mutación por anomalía automática o manual y nuevas posibilida-des de administración.

Performance Data Investigator. En V6R1 se incluye sin costeadicional una nueva herramienta para investigar el rendimiento(Performance Data Investigator) que mejora la forma de consultar yanalizar los datos de los servicios de recogida de i5/OS. Permite lavisualización de los datos en gráficos y tablas. Los archivos de losservicios de recogida de versiones anteriores pueden convertirse alformato del release V6R1 para consultarlos con la herramienta.

Mejoras en DB2. Por lo que hace a DB2 para i5/OS, se mejora elrendimiento, se mejoran los informes personalizables de On-DemandPerformance Center, se añaden más funciones a la base de datos yse incluye la posibilidad de hacer búsquedas de texto completo endocumentos mediante DB2.

DB2 Web Query. El producto dispone de un nuevo componente dehabilitación de licencias de usuario que ofrece opciones de preciosmás flexibles. La licencia para un solo usuario puede definirse comode “autor” de informes, que crea y edita informes con herramientasbasadas en web, o bien como de “grupo de usuarios que sólo ejecutaninformes” cuya única finalidad es ejecutar informes, con lo que lasempresas que tienen un gran número de usuarios que sólo ejecutaninformes verán reducidos los precios de la licencia.

Reestructuración y mejora de herramientas de desarrollo.IBM ha hecho grandes cambios en la presentación y precios de lasherramientas de desarrollo del System i. En el momento de redac-tar esta nota no se conocían los detalles, pero las herramientas deRational para crear aplicaciones de i5/OS son: Host AccessTransformation Services (HATS) para aplicaciones 5250 v7.1 (com-bina HATS y WebFacing en un solo producto que simplifica las op-ciones de precios y licencias) para transformar pantallas 5250 eninterfaces de usuario modernas; WebSphere Development Studio(WDS) v7.1/Rational Developer para System i v7.1 (el paquete for-mado por el compilador y las herramientas de WDS reemplaza aWDSc con un modelo de precios según el número de usuarios) paraampliar las funciones principales de la empresa como servicios; yRational Developer en System i para SOA Construction v7.1/RationalBusiness Developer v7.1 para crear aplicaciones de última genera-ción para Internet, intranet e inalámbricas para el System i.

Conversión de programas de i5/OS. Para ejecutar V6R1 esnecesario un nuevo paso de conversión de programas. La conversiónnecesita datos de creación del programa (observabilidad) y se reali-za durante la instalación o restauración de aplicaciones la primeravez que se usan o programándola a una hora determinada. ■

Rita-Lyn Sanders es colaboradora habitual de la revista System iNEWS.

■ ■ ■ ■ ■ Bartech presentaRobot/SCHEDULE, elplanificador detrabajos multisistema

Bartech, distribuidor de la solu-ción de Automatización de Opera-ciones Robot, anuncia la disponi-bilidad de Robot/SCHEDULE10.0, el más completo y aclamadoPlanificador de Trabajos paraSystem i.

La nueva versión permite pla-nificar trabajos en múltiples ser-vidores, sean éstos todos Systemi o estén mezclados con sistemasWindows o Unix, y controlar suejecución desde una consola grá-fica.

Robot/SCHEDULE puede eje-cutar los trabajos según un calen-dario, en reacción a otros eventos,o luego de verificar la finalizacióno prerrequisitos de cualquier tra-bajo, aunque esté en un sistemadiferente. En servidores Windowsy Unix, puede controlar las apli-caciones críticas de negocio, veri-ficar el estado de los procesos yservicios, transferir ficheros entresistemas automáticamente, ini-ciar trabajos, etc. Y ante eventosque necesitan atención urgente,puede recibir un mensaje al ins-tante por SMS o email.

Robot/SCHEDULE está desa-rrollado por la empresa Help/Systems y actualmente cuentacon más de 15.000 usuarios entodo el mundo.

Para más información,Telf.: 933.063.523www.bartech.es

■ ■ ■ ■ ■ Symtrax anuncia laactualización deCompleo Suite 4.

Symtrax anuncia la actuali-zación 4.1 de su Output Manage-ment Suite que permite gestionarfácilmente los spools y los archi-vos de salida (OutQ) para:

Distribuir la información proce-dente de los archivos de spool deforma sencilla y económica.

Gestionar y mejorar los flujosde información y ganar tiempo derespuesta al eliminar la reinser-ción de los datos.

Reducir sus costes de impresióny de envío postal al reemplazar losprocedimientos en papel por lafacturación y el intercambio elec-trónico.

Nuevos módulos aportan sopor-te multiplataforma (ASCII, EBC-DIC, CSV, XML y PDF); posibili-dad de introducción de variablespara acceder a bases de datos; oconexión a SAP R/3.

Para más información,Telf.: 900.973.397www.symtrax.es

■ ■ ■ ■ ■ Sowre recibe elLotus DistiguishedAchievement Award2008

IBM, para premiar la labor en laimplantación de soluciones de co-laboración Lotus y portales em-presariales WebSphere, ha otorga-do a Sowre Consulting Españael Lotus Distiguished Achieve-ment Award 2008 como mejorpartner en la región SouthwestEurope (que incluye a Francia,Italia, Belgica, España, Portugal,Grecia, Holanda, Luxemburgo,Turquia, Israel y también el Nor-te de Africa).

El premio, que reconoce al me-jor Business Partner de cada re-gión, ha sido entregado en laceremonia de inauguración deLotusphere 2008 en Orlando, Es-tados Unidos

Con esta distinción IBM premialos resultados obtenidos por So-wre en los últimos años en la im-plantación de soluciones basadasen el software de IBM y reconocesu papel de liderazgo en la comu-nidad mundial de implantadoresde su tecnología de colaboraciónLotus.

Para más información,Telf.: 902.885.305www.sowre.es

Page 8: ServerNEWS -181 (Febrero 2008)

8 ServerNEWS FEBRERO 2008 www.help400.es

opinión por Dan Darnell

Epoco representan ningún avance. Una moda que va a más esintentar usar RPG para hacerlo todo. Con llamadas a las APIaquí, invocaciones a funciones escritas en C allí, con un pocode chicle y algo de alambre, ¡RPG puede hacer cualquier cosa!¡Qué desperdicio! Si ese tiempo, esfuerzo y creatividad se apli-caran a resolver problemas de la empresa en vez de escribir,vamos a suponer, programas de utilidad de sockets de TCP yun analizador para HTTP, piense en el valor que se habríacreado para la empresa.

Dedicando suficientes esfuerzos, RPG puede hacerlo prác-ticamente todo, pero utilizarlo de esa forma es como intentarmeter una pieza cuadrada en un agujero redondo. Con unmartillo podría llegar a meter la pieza, pero sería mucho másfácil usar la clavija redonda. En el mundo actual de las TI senecesita algo más que RPG para crear aplicaciones de pri-mer orden. La gente que tiene un actitud cerrada y cree queúnicamente existe “RPG y sólo RPG” tienen que entenderlo yampliar sus aptitudes.

Yo mismo, veterano programador de RPG, aprendí Java hacediez años. Programar en Java me permite trascender los lí-mites de las plataformas sin esfuerzo. Puedo concentrarmeen solucionar los problemas de la empresa y crear solucionesen el PC, dispositivos inalámbricos, en la web y en el Systemi. (A menudo, RPG también tiene un cometido, especialmen-te si hay código heredado de por medio). La libertad de poderofrecer soluciones para cualquier combinación de platafor-mas significa que puedo entregar aplicaciones que superanlas expectativas de mis clientes. Con soluciones diseñadascomo es debido consigo ser más eficaz con cada proyecto rea-lizado, de modo que aunque cada vez hago más cosas por laempresa, sigo cumpliendo los plazos de entrega previstos.

En los últimos 12 ó 18 meses, ¿ha desaparecido por comple-to el interés por Java en el System i? Creo que sí. ¿Es por quétodos los incondicionales del System i ya sabemos Java y, porlo tanto, es algo que damos por sentado? Me parece que no.Creo que el interés menguante lo explican las letras P, H y P.Los comentarios que oigo de muchos programadores de la co-munidad del System i son del estilo “¡Menos mal que tenemosPHP en el System i! ¡Ahora ya no tenemos que aprender Java!”

Mis amigos me cuentan historias de cómo han escrito apli-caciones web con PHP y de cómo todo encaja en su sitio alinstante, sin dificultad, y ahora tienen aplicaciones web ensus System i. Sin embargo, cuando indagué sobre estas expe-riencias tan positivas, oí cosas que me produjeron escalofríos.Pregunté por la seguridad y parece ser que generalmente noexiste. Hice preguntas sobre la arquitectura global, con laintención de saber cuáles son las posibilidades de alta dispo-

¿Sin avances?nibilidad mediante clústeres y cosas así. No hay. Pedí infor-mación sobre el diseño de elementos que contribuyan a laescalabilidad y a la reutilización de componentes. Estas cues-tiones no se contemplan en sus soluciones.

PHP ha reducido la dificultad de desarrollar aplicacionesweb para los desarrolladores que trabajan con System i, perotambién ha puesto en peligro la empresa para la que traba-jan. Es fácil crear una aplicación web que manipule los datosde la empresa pero, ¿satisfará esa aplicación las necesidades–necesidades importantes, como la escalabilidad– de la em-presa el mes que viene, el año próximo? Para diseñar unaaplicación en PHP robusta, escalable y segura, tendrá quesuperar los mismos obstáculos que se encontrará si crea esamisma aplicación en Java.

Yo utilizo PHP con un solo fin: portar o extender una solu-ción de código libre a mi System i para satisfacer una necesi-dad concreta de la empresa. Estoy convencido de que Java(concretamente Java EE en combinación con infraestructurasampliamente aceptadas) sigue siendo el camino que hay queseguir para desarrollar aplicaciones web cruciales de las queel System i forme parte de la solución. Las he visto funcio-nando a pequeña escala y en grandes empresas. Funcionanen sitios de comercio electrónico y en los dominios tradicio-nales de nuestro querido RPG, como la gestión interna. Ade-más, con este enfoque, encontramos todos los elementos ne-cesarios para desarrollar soluciones escalables de altadisponibilidad.

Cuando leo este tipo de opiniones de otros, suelo pensarque son partidistas: los de Java contra los de PHP. Puede quese me pueda acusar de ser partidista hasta cierto punto, perolos motivos para escribir este artículo son más profundos. Elaño pasado fui víctima de una consolidación corporativa. Elpez grande que se nos comió subcontrata muchas de sus ta-reas informáticas y es cada vez más común que contrate losservicios externalizados fuera del país. Mi postura de “aquínunca pasará eso” rápidamente cambió a “ha pasado y mevan a despedir”.

No me importa lo más mínimo que aprenda PHP. ¡Hágalo!Pero no se quede ahí. Para tener verdadero valor comercialno basta con saber RPG y PHP. Las arquitecturas seguras,fiables y escalables requieren tecnologías empresariales comoJava EE. Sólo tendrá realmente valor comercial cuando sucurrículo refleje que tiene conocimientos de éstas. Tambiénpuede verlo de esta forma: mejorar continuamente sus cono-cimientos de programación ayuda a su empresa actual y ade-más es su mejor póliza de seguros en un mundo tan inciertocomo el de la informática. ■

Dan Darnell es autor del libro “Java and the AS/400, 2nd Edition: PracticalExamples for the iSeries and the AS/400” (publicado por 29th Street Press) yconsultor independiente de Little Rock (Arkansas).

ntre los programadores deRPG aprecio tendencias que, sibien no son realmente pasosatrás, podría decirse que tam-

Page 9: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 9

Page 10: ServerNEWS -181 (Febrero 2008)

10 ServerNEWS FEBRERO 2008 www.help400.es

E

10 ServerNEWS FEBRERO 2008 www.help400.es

n julio del año pasado, MySQL AB anunció que subase de datos MySQL estaba disponible para i5/OS. Pero, ¿realmente necesitamos una segundabase 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 conmiles de aplicaciones. Cuando todos los servidores System iincluyen i5/OS y DB2 de serie, ¿de qué sirve disponer de otrabase de datos?

La respuesta, en pocas palabras, es que MySQL puede apor-tar aplicaciones adicionales y flexibilidad para el desarrollode 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 dedesarrolladores de MySQL está formada pormillones de programadores de todo el mundo.

Todo empezó con PHPEn abril del año 2006, IBM y Zend anunciaron que tra-

bajarían juntas para portar el popular lenguaje de scriptsPHP 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 usuariostuvieran más opciones a la hora de desplegar aplicacionesweb. PHP puede usarse como una alternativa a Java y .NETo junto con estos conocidos entornos de desarrollo. Una de lasventajas de PHP es que la comunidad que usa esta tecnolo-gía de desarrollo es muy grande y activa.

Para «ejecutar sin más» en elSystem i aplicaciones escritas en

PHP, también se necesita MySQL

por Craig Johnsony Erwin Earley

Page 11: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 11

<?php// Open the database connection$connection = mysql_connect(“localhost”, “user”, “password”);

// Select the test database

mysql_select_db(“test”, $connection);

// Run a query against the database connection

$result = mysql_query (“SELECT * FROM testtable”, $connection);

// While there are still rows in the result set, fetch the// current row into the array $row

while ($row = mysql_fetch_array($result, MYSQL_NUM)){

// Print out each element in $rowforeach ($row as $attribute)

print “($attribute) “;

// Print a carriage return to neaten the outputprint “\n”;

}?>

Para mejorar el valor de sus productos para i5/OS, Zendincluyó extensiones y un kit de herramientas en Zend Corepara i5/OS con el fin de ofrecer un acceso sencillo y rápidoa las aplicaciones y datos de i5/OS. Con estas característi-cas de integración, las aplicaciones escritas en PHP pue-den acceder a DB2 para i5/OS, llamar a aplicaciones es-critas en RPG, usar áreas de datos y colas de datos,etcétera.

La comunidad de i5/OS ha participado activamente enla comunidad de PHP. El foro de Zend para i5/OS(www.zend.com/forums) es varias veces más activo queforos semejantes de otros productos de Zend. Y los clientesdel System i están haciendo muchas cosas con PHP, inclu-yendo:

• Consolidación: pasar a ejecutar en i5/OS aplicaciones es-critas en PHP que actualmente se ejecutan en Windows oLinux que acceden a datos de DB2 con el fin de reducir eltiempo de ejecución o la complejidad de las aplicaciones(nota: puesto que PHP es un lenguaje que se utiliza en elservidor, el motor de PHP tiene acceso directo a los recur-sos del servidor, como por ejemplo los datos de DB2, sinnecesidad de utilizar controladores intermedios ni la pilade protocolos de la red).

• Modernización: utilizar PHP para poder utilizar aplicacio-nes 5250 con un navegador con el fin de proporcionar nue-vas soluciones a los socios, proveedores o clientes.

• Desarrollo de nuevas aplicaciones: crear aplicaciones nue-vas con PHP en i5/OS, incluyendo aplicaciones paraInternet, intranets y extranets que acceden a informaciónde DB2.

• Hacer uso de la cartera de productos escritos enPHP: ejecutar en i5/OS aplicaciones comerciales o decódigo libre escritas usando PHP y MySQL (nota: comotanto PHP como MySQL son compatibles con i5/OS,estas aplicaciones pueden ejecutarse en i5/OS sin ne-cesidad de modificar el código fuente).

Un reciente comunicado de prensa de Zend destacacinco clientes de System i que han instalado PHP eni5/OS. Parts Depot ha desarrollado una aplicación degestión de pedidos para sus operaciones de venta alpor menor. Cremer (un fabricante de material médi-co) ha creado aplicaciones nuevas para su centro deatención telefónica; FSIP (un fabricante de controlespara vehículos eléctricos) usó una aplicación de lec-tura inalámbrica de códigos de barras para reducirgastos; MedDirect (una compañía financiera especia-lizada en asistencia sanitaria) creó un portal webnuevo en cuatro semanas que permitió a los usuariosacceder y gestionar sus cuentas; e ICS (un proveedorde soluciones informáticas) utilizó las capacidades dePHP 5 como lenguaje orientado a objetos para crearun 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://

www.zend.com/en/company/news/press/ibm-system-i-community-galvanizes-around-php.

El camino a MySQLLas aplicaciones escritas en PHP nos llevan a MySQL. Unaencuesta realizada entre más de 6.800 desarrolladores quetrabajan con MySQL determinó que PHP es el lenguaje queusan el 60% del tiempo (dev.mysql.com/tech-resources/quickpolls/connectors-apis.html). Pueden encontrarse milesde aplicaciones y scripts escritos en PHP en sitios comosourceforge.net y hotscripts.com. Se trata de aplicaciones decomercio electrónico, de gestión de contenidos, portales, wikis,blogs y foros (por mencionar sólo unas cuantas). También seha desarrollado un número enorme de aplicaciones de usointerno. La mayoría de estas aplicaciones de PHP están es-critas usando MySQL como motor de la base de datos. PHP yMySQL son dos de los componentes principales de LAMP(Linux, Apache, MySQL, PHP/Perl/Python), una pila de soft-ware de código libre para la empresa que no deja de crecer.

El código de ejemplo de la Figura 1 muestra cómo se co-necta una aplicación escrita en PHP con la base de datosMySQL usando sentencias de SQL para leer y grabar datosen la base de datos (el código PHP se muestra sin el códigoHTML que lo rodea). Las aplicaciones existentes basadas enPHP y MySQL no se ejecutarán sin más en una base de datosdistinta. Aunque DB2 y MySQL son conformes con variosestándares de SQL, las diferencias entre ambos productoshacen que migrar una aplicación escrita en PHP de MySQLa DB2 sea un trabajo para programadores.

Para “ejecutar sin más” en i5/OS las numerosas aplicacio-nes escritas en PHP, también se necesita MySQL. Aunque

FIGURA 1Conexión de PHP con MySQL

Page 12: ServerNEWS -181 (Febrero 2008)

12 ServerNEWS FEBRERO 2008 www.help400.es

■ EN PORTADA

buena parte de los miembros de la comunidad de i5/OS hanconseguido ejecutar MySQL en el sistema operativo delSystem i, los clientes querían un producto oficial de MySQL,uno que se hubiera comprobado en i5/OS, como en las demásplataformas, y que tuviera el soporte de MySQL AB.

MySQL para i5/OSEn abril del año pasado, en el congreso anual de MySQL,MySQL AB (www.mysql.com/company) e IBM anunciaronun acuerdo de colaboración tecnológica de dos etapas paraque la comunidad de desarrolladores de la base de datosMySQL diera soporte a la plataforma System i. En julio, sehizo realidad la primera etapa del acuerdo: la base de datosMySQL ya está disponible en el release V5R4 de i5/OS. MySQLAB ofrece dos productos nuevos para i5/OS:

• MySQL Enterprise para i5/OS. La suscripción a MySQLEnterprise es la oferta más completa de software, serviciosy soporte de MySQL que garantiza que la empresa alcan-zará los niveles más altos de fiabilidad, seguridad y tiempode actividad. MySQL Enterprise incluye:

– El software MySQL Enterprise Server 5.0 es la versiónmás fiable, segura y actualizada de la base de datos decódigo libre para crear de forma económica aplicacionesde comercio electrónico, de proceso de transacciones en

línea (OLTP) y de data-warehouse multiterabyte. Igual-mente, recibirá actualizaciones mensuales y service packstrimestralmente con los arreglos más recientes de los erro-res encontrados en MySQL Enterprise Server.

– MySQL Network Monitoring and Advisory Service pro-porciona a los desarrolladores, administradores de basesde datos y administradores de sistemas un asistente vir-tual de la base de datos que permite hacer cumplir lasprácticas aconsejables recomendadas por MySQL. Losasistentes ofrecen recomendaciones personalizadas quele ayudarán a eliminar vulnerabilidades de seguridad,mejorar la duplicación, optimizar el rendimiento, etcéte-ra.

– MySQL Production Support permite obtener rápidamenterespuesta a las preguntas técnicas más difíciles. Además,con Consultative Support, que se incluye con MySQLEnterprise Platinum, el equipo de soporte de MySQL leasesorará sobre la mejor forma de diseñar y optimizarlos servidores, los esquemas, las consultas y la configu-ración de duplicación de MySQL para conseguir un ren-dimiento óptimo.

• MySQL Community Server para i5/OS. MySQL AB tie-ne como meta ofrecer MySQL Community Server a la co-munidad de desarrolladores de código libre. MySQLCommunity Server es gratuito y se distribuye bajo la licen-

P HP es un lenguaje de scripts de código libre fácil deusar para aplicaciones web. Se ejecuta en el servi-dor y tiene acceso a recursos de éste. PHP normal-

mente está incrustado en el código HTML y permiteobtener aplicaciones web muy funcionales. Es esencial quela lógica de la empresa se encargue de proporcionar datosy acceso de forma dinámica. Sitios de Internet tan conoci-dos como Yahoo! o Facebook incorporan PHP en sussitios. Informes como las estadísticas de uso de Netcraft(www.php.net/usage.php) muestran que más 20 millones dedominios de Internet utilizan PHP y que un númeroinmenso de aplicaciones en intranets incorporan PHP comoparte de su solución. Estas aplicaciones las han creado losmás de seis millones de profesionales que desarrollanaplicaciones en el lenguaje PHP.

Como se afirma en su logotipo, Zend (www.zend.com) es“The PHP Company”, es decir, “La empresa de PHP”. Ademásde ser la representante de la comunidad de PHP, la empresaofrece productos, soporte y servicios para PHP en distintasplataformas. En julio de 2006, Zend presentó Zend Core parai5/OS, el entorno de ejecución para aplicaciones escritas enPHP y Zend Studio para i5/OS, una robusta herramienta dedesarrollo para i5/OS. (Nota: Zend Studio para i5/OS es unIDE que se ejecuta en Windows, Linux o PowerMac y permite

PHP y el System i

desarrollar aplicaciones basadas en PHP pensadas parainstalarlas en i5/OS). Estos dos productos están disponiblesde forma totalmente gratuita para los clientes de System icon tres años de soporte estándar (basado en web). Estaoferta es exclusiva para la plataforma System i y puedeahorrar a una empresa miles de dólares si se compara con loque cuesta adquirir los productos de Zend para otrasplataformas.

Como se explica en el artículo “Instalación y configuración dePHP” (en la página 16), Zend Core y Studio para i5/OSpueden descargarse del sitio web de Zend tras un sencilloproceso de registro (www.zend.com/en/products/core/for-i5os).Hasta la fecha, más de 6.000 personas han descargado losproductos Zend Core y Studio.

Si le interesa disponer de soporte telefónico, Zend tambiéntiene ofertas de soporte avanzadas. Zend Platform para i5/OS(otro producto de Zend) mejora el rendimiento, la escala-bilidad y la facilidad de uso de las aplicaciones escritas en PHP.La versión más reciente de Zend Core incluye Zend Frame-work, que facilita todavía más el desarrollo de aplicaciones enPHP. Las líneas de productos de Zend son compatibles conlos releases V5R4 y V5R3 de i5/OS.

— C.J. y E.E.

Page 13: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 13

cia de código libre GPL e incluye contribuciones de la co-munidad y características experimentales en desarrollo porparte de MySQL. MySQL AB no ofrece soporte formal paraMySQL Community Server.

Con estas dos ofertas, enseguida se puede empezar a de-sarrollar un proyecto usando MySQL Community Servercon sólo descargar el producto de dev.mysql.com/downloads/mysql/5.0.html. Y cuando el proyecto esté lis-to para instalarlo en máquinas de producción y necesiteun soporte formal, MySQL Enterprise dispone de distin-tos niveles –Basic, Silver, Gold y Platinum– a partir de479 dólares por servidor y año (shop.mysql.com/enterprise).Puede solicitar MySQL Enterprise directamente a MySQLo a IBM. Puede probar MySQL Enterprise mediante elprograma de evaluación de MySQL (www.mysql.com/ent-trial-reg-2007). Hallará más información sobre cómo solici-tar a IBM el producto en el comunicado siguiente: www-306.ibm.com/common/ssi/rep_ca/2/897/ENUS207-172/ENUS207172.PDF.

Además de opciones de soporte, hay otras diferencias entrelas licencias de las versiones Community y Enterprise.MySQL Community Server se distribuye bajo la LicenciaPública General (GPL) de GNU. MySQL Enterprise se distri-buye bajo GPL o con una licencia comercial. Obtendrá más

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ónde MySQL en i5/OS sea un proceso sencillo.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ásUna de las principales ventajas de MySQL esque abre la puerta a muchas aplicaciones nue-vas. Tener soporte tanto para los entornosMySQL como PHP, facilita la instalación deeste tipo de aplicaciones en i5/OS. Una solu-ción es SugarCRM, el principal paquete comer-cial de gestión de relaciones con los clientes(CRM) de código libre. En julio, SugarCRManunció la disponibilidad para i5/OS de su so-lución Sugar Enterprise, para la que tambiénofrece soporte (www.sugarcrm.com/crm/about/press-releases/20070724-Sugar-En-terprise-IBM.html).

El equipo de i5/OS del Laboratorio deRochester ha probado las siguientes aplicacio-nes en i5/OS. En el proceso de instalar y eje-

cutar las aplicación, no cambiamos el código de PHP ni lassentencias de SQL de MySQL, de modo que no tuvimos quevolver a compilar nada. Simplemente descargamos el soft-ware y configuramos el entorno.

• MediaWiki (wiki de código libre)www.zend.com/forums/index.php?t=msg&th=3134

• Joomla! (sistema de gestión de contenido de código libre)www.zend.com/forums/index.php?t=msg&th=3068

• Zen Cart (tienda en línea de código libre)www.zend.com/forums/index.php?t=msg&th=3041

• PmWiki (wiki de código libre)www.zend.com/forums/index.php?t=msg&goto=8085

• phpBB (tablón de anuncios de código libre)www.zend.com/forums/index.php?t=msg&goto=8049

• PHP-Nuke-7.8 (sistema de gestión de contenido de códigolibre)www.zend.com/forums/index.php?t=msg&goto=3541

Aunque hemos estado hablando de PHP, es importantemencionar que MySQL se puede usar para algo más que apli-caciones de código libre escritas en PHP. MySQL también es

FIGURA 2Estructura de una pila «iAMP»

Aplicación

Servidor web IBM i5/OS

Page 14: ServerNEWS -181 (Febrero 2008)

14 ServerNEWS FEBRERO 2008 www.help400.es

■ EN PORTADA

compatible con Java. Y puesto que la mayoría de las aplica-ciones basadas en MySQL son de uso interno, nada le impidecrear la suya propia.

¿Por qué i5/OS?La pregunta con que dábamos comienzo a este artículo –¿real-mente necesitamos una segunda base de datos?– nos lleva auna segunda cuestión: ¿por qué hemos de ejecutar aplicacio-nes de PHP y MySQL en i5/OS? ¿La “L” de LAMP no significaLinux? Sí, se pueden instalar las aplicaciones basadas enApache, PHP y MySQL en Linux, Unix, Windows y otros ser-vidores. Pero instalando Apache, PHP y MySQL en i5/OSpodrá beneficiarse del entorno operativo integrado de i5/OS,con su arquitectura altamente escalable e inmune a los vi-

rus, así como una adaptabilidad excepcional so-bradamente demostrada.

Un informe reciente de IDC denominado

“The Business Valueof System i” (“El valor de

negocio del System i”), que puede descargarse en ftp://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 /ISL03007USEN/ISL03007USEN.PDF) destaca las ventajasde i5/OS en comparación con las implantaciones de x86: me-nos tiempo dedicado a tareas de gestión, un tiempo de funcio-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 cargasde trabajo en un solo servidor (el promedio es de más de cincocargas de trabajo por servidor para los clientes del estudio encomparación con el promedio de apenas una carga de trabajopor servidor en los sistemas x86). Así que, en vez de comprarotro servidor x86 para una aplicación LAMP, puede añadiruna aplicación “AMP” al entorno i5/OS existente junto conotras aplicaciones de producción. En la Figura 2 se muestrala estructura de una pila “iAMP”.

Para crear valor adicional para los clientes de i5/OS, IBM yMySQL AB proyectan ofrecer un motor de almacenamientode DB2 para MySQL en i5/OS (el segundo paso de su acuerdode colaboración tecnológica). Un motor de almacenamientoes el lugar en que se almacenan los datos de MySQL. MySQLAB y otros proveedores actualmente ofrecen más de una do-cena de motores de almacenamiento. Cada uno de ellos pro-

porciona distintas características: unos admiten transaccio-nes, otros proporcionan un rendimiento de sólo lectura eleva-dísimo y los demás ofrecen soluciones intermedias. El motorde almacenamiento concreto se selecciona durante la crea-ción de la tabla de la base de datos. Con un motor de almace-namiento DB2 para i5/OS, las aplicaciones escritas paraMySQL se ejecutarán en i5/OS y los datos se almacenaránen DB2. Esto permitirá implantar aplicaciones de MySQL enlínea y transaccionales capaces de almacenar todos los datosen una sola base de datos DB2, la base de datos que los clien-tes de i5/OS ya conocen y saben cómo gestionar y proteger.

Por dónde empezarPuede descargar Zend Core y Zend Studio para i5/OS de for-ma gratuita de zend.com. MySQL Community Server parai5/OS puede descargarse de mysql.com. Además, IBM ha in-cluido Zend Core para i5/OS con soporte Standard y MySQL

Enterprise para i5/OS con soporte Silveren las ediciones Enterprise de los servi-dores 550, 570 y 595. IBM también ofre-ce el servicio de implantación gratuito insitu “Getting Started with Zend andMySQL on i5/OS” para los clientes queadquieran una plataforma System i quereúna las condiciones del programa decupones canjeables por servicios técnicos(www-03.ibm.com/systems/i/editions/services.html). Asimismo, tendrá derechoa un curso gratuito de IBM sobre PHPen el System i haciendo uso del cupón

canjeable por formación (www-03.ibm.com/systems/i/editions/vouchers.html). Por último, desde estas páginas que-remos animarle a investigar las opciones y oportunidades queMySQL y PHP ofrecen a la comunidad de usuarios del Systemi. Puede empezar su exploración en www-03.ibm.com/systems/i/software/php y www-03.ibm.com/systems/i/soft-ware/mysql. ■

Craig Johnson es jefe de producto de IBM para Zend y MySQL en i5/OS. Fueel responsable de introducir estas tecnologías de código libre en la comunidadde desarrolladores del System i.

Erwin Earley trabaja como consultor de ingeniería del software en ellaboratorio de desarrollo de Rochester y lidera el Open Source TechnologiesCenter of Competency for System i, que forma parte del System i TechnologyCenter. Es formador y presta servicios de implantación de tecnologías de códigolibre en el System i, incluyendo Linux, MySQL y PHP de Zend.

Un motor de almacenamiento es ellugar en que se almacenan los datos

de MySQL. MySQL AB y otrosproveedores actualmente ofrecenmás de una docena de motores de

almacenamiento.

Page 15: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 15

Page 16: ServerNEWS -181 (Febrero 2008)

16 ServerNEWS FEBRERO 2008 www.help400.es

■ EN PORTADA

n este artículo se explica cómo instalar losproductos de Zend para poder trabajar conPHP en i5/OS. Concretamente, explicare-mos cómo instalar Zend Core, el motor de

PHP, y Zend Studio, el entorno de desarrollo inte-grado (IDE) de PHP.

Información general sobre Zend CoreZend Core es el motor que permite ejecutar PHP en i5/OS.Zend Core se ejecuta en el Entorno de soluciones de aplica-ciones portables (PASE). En la Figura 1 se ilustra la arqui-tectura de Zend Core en i5/OS. No obstante, antes de empe-zar a explicar la arquitectura representada por el diagrama,permítanme que les presente una página web de ejemplo concontenido PHP.

Como se muestra en la Figura 2, un navegador web envíauna petición a un servidor web (en este caso, el servidor HTTPde i5/OS basado en Apache). En la Figura 1, las peticionesweb hechas al servidor HTTP de i5/OS que especifican elpuerto 89 (por ejemplo, http://nombre_i5:89) sereenvían al servidor web Apache que se ejecutaen el entorno PASE (Apache se instala en PASEdurante la instalación de Zend Core). El servidorweb Apache de PASE analiza el código HTML has-ta que encuentra un identificador de PHP (<?phpen la Figura 2). Aquí, el código escrito en PHP seenvía al motor de PHP (en este caso, Zend Coreen el entorno PASE) que, a continuación, procesael código hasta que encuentra un identificador decierre de PHP (?>). La salida del proceso del códi-go PHP se devuelve al servidor web como salidaHTML, que a su vez se reenvía como respuesta alnavegador web para representarla. En la Figura3 se muestra el resultado de procesar el código deejemplo de la Figura 2 a través del motor de PHP.

En este caso, el proceso del código PHP simple-

mente genera una línea de salida que luego representa elnavegador web. Como se ve en la Figura 1, PHP es un len-guaje del servidor; en otras palabras, el motor de PHP delservidor interpreta el código escrito en PHP. Además, estecódigo tiene acceso a recursos del servidor (por ejemplo, re-cursos de la base de datos). En i5/OS, el acceso a los recursosdel servidor lo proporciona el trabajo I5_COMD instalado enel subsistema ZEND.

Antes de hablar de la instalación de Zend Core, estos sonlos componentes que se instalarán:

• Zend Core (en el entorno PASE)• Apache (en el entorno PASE)• I5_COMD (en i5/OS)• Programa ZCMENU escrito en CL (en la biblioteca

ZENDCORE)

El servidor HTTP en i5/OS se configurará para que reen-víe las peticiones al puerto 89 en el servidor web Apache delentorno PASE.

E

por Erwin Earley

FIGURA 1Arquitectura de Zend Core

Es fácil empezar a programaren PHP en el System i

Page 17: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 17

Llegados a este punto, varios archivos se graban en el IFS,tras lo cual se muestra la primera pantalla de la instalación.Ésta es simplemente una pantalla de bienvenida, así que sólotiene que pulsar Intro para que aparezca la pantalla del acuer-do de licencia. Vuelva a pulsar Intro para aceptar el acuerdoy aparecerá una pantalla solicitándole la contraseña de laConsola de administración web. La contraseña especificadaaquí la define el usuario y se usará para validar el acceso a laherramienta de administración basada en web de Zend Core

Obtener Zend CoreLa forma más fácil de obtener Zend Core (e igualmente ZendStudio) es registrarse en el sitio web de Zend (zend.com). Trasproporcionar información de contacto básica, se puede acce-der al canal de i5/OS, desde el que se puede descargar ZendCore para i5/OS (le recomiendo que descargue la versión 2del producto). El archivo zip descargado contiene varios ar-chivos. Hay que subir a i5/OS el archivo descargado. Estopuede hacerse de varias formas distintas, pero normalmenteyo uso FTP para subir el archivo directamente a QGPL. Enla Figura 4 aparece un ejemplo de una conexión FTP.

Una vez subido a i5/OS el archivo guardado, sólo hay queejecutar el mandato Restaurar programa bajo licencia(RSTLICPGM) y responder unas pocas preguntas. Este es elformato del mandato:

RSTLICPGM LICPGM(1ZCORE5) DEV(*SAVF)

SAVF(QGPL/ZCORE)

<html><head><title>Test Page></title></head><p><?php

echo “This is my PHP test page”;?></p></html>

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

ftp iseries.domain.com220-QTCP at iseries.domain.com.230 Connection will close if idle more than 5 minutes.User (iseries.domain.com:(none)): qsecofr331 Enter password.Password:ftp> bin200 Representation type is binary IMAGE.ftp> put zcoresavf.savf /qsys.lib/qgpl.lib/zcore.savf200 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.

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

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

FIGURA 4Ejemplo de conexión FTP

FIGURA 5Página System Overview de Zend Core

FIGURA 6Página de valores de Zend Studio Server

Page 18: ServerNEWS -181 (Febrero 2008)

18 ServerNEWS FEBRERO 2008 www.help400.es

■ EN PORTADA

(más adelante veremoscómo acceder a esta herra-mienta).

Zend Core permite obte-ner actualizaciones desdela Zend Network. Para ac-ceder a la Zend Networkhay que autenticarse me-diante un ID de usuario yuna contraseña (es el ID deusuario y la contraseñadefinidos al registrarsepara los productos Zend enel sitio web). Una vez es-pecificados el ID de usua-rio y la contraseña, elinstalador finaliza la con-figuración del entorno deZend Core.

Probablemente, la formamás sencilla de comprobarla validez de la instalaciónde Zend Core es intentar acceder a la página de pruebas deZend Core. Apunte el navegador web al puerto 89 de i5/OS(por ejemplo, http://systemi:89). Debería ver una página webde bienvenida. Pulse el enlace Zend Core administrative in-terface (Interfaz de administración de Zend Core) para acce-der a la interfaz de gestión basada en web.

Herramienta de configuración de Zend Core paraIBM i5/OSZend Core incluye un menú 5250 para trabajar con el estadode los servidores Zend Core y Apache, así como del trabajoI5_COMD, que se ejecuta en i5/OS para responder a las peti-ciones por parte de PHP de recursos del servidor. Se accede ala herramienta ejecutando el mandato siguiente en una se-sión 5250:

GO ZENDCORE/ZCMENU

Desde el menú siguiente, se puede restablecer la contrase-ña para acceder a la interfaz de administración basada enweb (describiré esta interfaz más adelante), obtener e insta-lar actualizaciones de Zend Core y recopilar información re-lativa a Zend Core para el soporte técnico de Zend. Tambiénse puede acceder al menú Service Management (Gestión deservicios), que permite trabajar con el estado de los servido-res Zend Core y Apache, así como del servicio I5_COMD.

Interfaz de administración de Zend CoreVamos a echar una ojeada rápida a la interfaz de administra-ción basada en web suministrada por Zend Core. Como decíaantes, se puede acceder a la interfaz pulsando el enlace ZendCore administrative interface de la página de pruebas de ZendCore. También se puede llegar a la interfaz apuntado elnavegador a http://systemi:89/ZendCore. De un modo u otro,

se le pedirá la contraseña definida durante la instalación.Escriba la contraseña para ir a la página System Overview(Visión general del sistema; Figura 5).

Esta página ofrece distintas informaciones, incluyendo losnúmeros de versión de los servidores Apache y Zend Core,además de datos sobre el número de procesos y hebras queestá ejecutando el servidor web. Una característica intere-sante de la interfaz de administración es la posibilidad deconfigurar clientes permitidos para depurar el código del ser-vidor. Para configurar Zend Core de manera que acepte ladepuración desde los clientes, seleccione Configuration y lue-go Zend Studio Server en la página Zend Studio ServerSettings (Valores de Zend Studio Server; Figura 6).

Use la entrada Allowed Hosts (Hosts permitidos) para de-finir la dirección de red o el conjunto de direcciones de red alas que se permite llevar a cabo operaciones remotas de de-puración del código PHP que se ejecuta en el servidor ZendCore. Cuando termine, seleccione Save Settings (Guardarvalores).

Instalación de Zend StudioZend Studio es el IDE que proporciona Zend para el desarro-llo de código PHP para i5/OS. Zend Studio está disponiblepara Windows x86, Linux x86 y Mac OS X Power.

El primer paso de la instalación es descargar el productodel 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-ceso de instalación. La instalación de Zend Studio es pareci-da a la de otras aplicaciones de Windows. A continuación, seresumen los pasos de instalación:

• Después de aceptar el acuerdo de licencia, aparece unalista de selección de opciones de instalación, incluyendo elentorno de desarrollo de Zend, un manual de PHP y la

FIGURA 7Entorno de desarrollo de Zend

Page 19: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 19

barra de herramientas de Internet Explorer de Zend (to-das las cuales se instalan de forma predeterminada).

• La ubicación por omisión de la instalación es C:\Archivosde programa\Zend\ZendStudio_for_i5_OS-5.5.0.

• Puede seleccionar distintas ubicaciones para los iconos delproducto, incluido un grupo de programas nuevo (el valorpredeterminado).

• Seleccione las extensiones de archivo asociadas con ZendStudio. Las predeterminadas son .php, .php3, .phps y.phtml.

La instalación suele tardar menos de un minuto.

Explorando Zend StudioVeamos algunas de las características de Zend Studio. Enprimer lugar, empecemos por el entorno de desarrollo de Zend(Figura 7). Se puede escribir o editar código PHP en el áreadel centro, enviar un mensaje de depuración al panel de laderecha y usar el de la izquierda para explorar el sistema dearchivos, trabajar con proyectos o ver recursos de SQL. Unade las características más interesantes del entorno de desa-rrollo es la posibilidad de conectarse con un recurso de SQLdirectamente desde el entorno de tal modo que puedan verselas estructuras de datos para las que se está escribiendo có-digo. Para trabajar en la vista de SQL, primero seleccione elicono de SQL en la pantalla de la vista de la izquierda. Cuan-do haya cambiado la vista, estará listo para definir un nuevorecurso de SQL pulsando el icono de añadir SQL (el disco con

el signo más) para ver el recuadro de diálogo Add SQL Server(Añadir servidor de SQL, Figura 8).

Debe llenar el formulario con la información necesaria parala conexión SQL (asegúrese de seleccionar DB2/400 en el re-cuadro desplegable del tipo de servidor). Cuando haya con-cluido la definición, pulse Aceptar para completar la conexióncon el recurso de SQL. Una vez realizada la conexión, puedeusar la vista de SQL de la izquierda del área de trabajo deZend Studio para visualizar distintas características del re-curso de la base de datos (Figura 9). ■

Erwin Earley trabaja como consultor de ingeniería del software en ellaboratorio de desarrollo de IBM en Rochester (Minnesota) y lidera el OpenSource Technologies Center of Competency for System i, que forma parte delSystem i Technology Center.

FIGURA 8Recuadro de diálogo Add SQL Server

FIGURA 9Vista de SQL

Page 20: ServerNEWS -181 (Febrero 2008)

20 ServerNEWS FEBRERO 2008 www.help400.es

HP es una de las herramientas de desarro-llo para aplicaciones web más conocidas.Gracias a Zend Core para i5/OS, la comu-nidad de desarrolladores del System i tie-

ne acceso a un enorme surtido de herramientas deprogramación, paquetes de código e incluso aplica-ciones completas.

En este artículo me centraré en diez componentes “muyinteresantes” de código libre escritos en PHP que son fácilesde instalar, crean valor para la empresa y, en muchos casos,son muy gráficos.

Un apunte sobre los formatos de archivo: las descargas sonarchivos comprimidos en formato zip o tar.gz. Para extraerarchivos tar.gz desde Windows, le recomiendo que useZipGenius (zipgenius.it), un programa de utilidad gratuitode manejo de archivos comprimidos.

1. PHP/SWF ChartsPHP/SWF Charts (maani.us/charts) crea gráficos y diagra-mas animados, atractivos y a todo color para la web. Losscripts proporcionan los datos, que pueden provenir de la basede datos DB2 o tener cualquier otro origen. Los gráficos se in-sertan en Flash, la popular tecnología multinavegador. (En losnavegadores de los visitantes debe estar instalado Flash Player

6 o posterior. Flash puede descargarse sin costealguno de macromedia.com/go/getflashplayer).

La versión básica de PHP/SWF Charts es gra-tuita. Para conseguir la versión registrada, queincluye soporte técnico y la posibilidad de vin-cular los gráficos con otro contenido web eincrustrarlos en otros documentos Flash, elautor solicita una cantidad modesta. Losusuarios registrados pueden pulsar en losgráficos para aumentar el nivel de detalle.

Para instalar el programa, descarguecharts.zip y extraiga su con-tenido. Copie el contenido(charts.swf, charts.php y

charts_library) en un direc-torio del servidor web como

<?php// 3dpie.phpinclude ‘charts.php’;

$chart[ ‘chart_data’ ] = array ( array ( “”, “Vinny”, “Jeff”,“Rose”, “Jim”), array ( “”, 15, 27,45,60 ) ); // specify data$chart[ ‘chart_grid_h’ ] = array ( ‘thickness’=>0 );$chart[ ‘chart_pref’ ] = array ( ‘rotation_x’=>60 );$chart[ ‘chart_rect’ ] = array ( ‘x’=>50, ‘y’=>50, ‘width’=>300,‘height’=>200, ‘positive_alpha’=>0 );$chart[ ‘chart_transition’ ] = array ( ‘type’=>”spin”,‘delay’=>.5, ‘duration’=>.75, ‘order’=>”category” );$chart[ ‘chart_type’ ] = “3d pie”;$chart[ ‘chart_value’ ] = array ( ‘color’=>”000000”, ‘alpha’=>65,‘font’=>”arial”, ‘bold’=>true, ‘size’=>10, ‘position’=>”inside”,‘prefix’=>””, ‘suffix’=>””, ‘decimals’=>0, ‘separator’=>””,‘as_percentage’=>true );

$chart[ ‘draw’ ] = array ( array ( ‘type’=>”text”,‘color’=>”CCC000”, ‘alpha’=>74, ‘size’=>25, ‘x’=>0, ‘y’=>0,‘width’=>500, ‘height’=>50, ‘text’=>”Pizza left uneaten”,‘h_align’=>”center”, ‘v_align’=>”middle” )) ;

$chart[ ‘legend_label’ ] = array ( ‘layout’=>”horizontal”,‘bullet’=>”circle”, ‘font’=>”arial”, ‘bold’=>true, ‘size’=>12,‘color’=>”ffffff”, ‘alpha’=>85 );$chart[ ‘legend_rect’ ] = array ( ‘x’=>0, ‘y’=>45, ‘width’=>50,‘height’=>210, ‘margin’=>10, ‘fill_color’=>”ffffff”,‘fill_alpha’=>10, ‘line_color’=>”000000”, ‘line_alpha’=>0,‘line_thickness’=>0 );$chart[ ‘legend_transition’ ] = array ( ‘type’=>”dissolve”,‘delay’=>0, ‘duration’=>1 );

$chart[ ‘series_color’ ] = array ( “00ff88”, “ffaa00”,”44aaff”,“aa00ff” );$chart[ ‘series_explode’ ] = array ( 25, 75, 0, 0 );

SendChartData ( $chart );?>

<HTML><!— showchart.php —><BODY bgcolor=”#FFFFFF”>

<?phpinclude “charts.php”;

//insert the charts.swf flash file into the web page//tell charts.swf to get the chart’s data from 3dpie.php createdin the first stepecho InsertChart ( “charts.swf”, “charts_library”, “3dpie.php” );

?>

</BODY></HTML>

FIGURA 1Código HTML para crear un gráfico circular usando PHP/SWF Charts

por Alan Seiden

P

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

Page 21: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 21

/www/zendcore/charts. Para ver ejemplos de los muchostipos 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áficode ejemplo (Figura 2). Aunque en la captura de pantalla nose 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 paragenerar el gráfico. En mi servidor, ejecuté el script con unURL del tipo http://ejemplo.com:89/charts/showchart.php.

2. PHP InteractivePensado para los desarrolladores, PHP Interactive(hping.org/phpinteractive) es un sencillo progra-ma escrito en PHP que ofrece una forma fácil ybasada en web de probar las ideas que se le ocu-rran en PHP. No es necesario crear archivos descripts autónomos escritos en PHP cada vez quedesee probar algo nuevo. Pegue el código en PHPInteractive 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 (estilonavegador). También es posible añadir variaspestañas (cada una conteniendo un script), cambiarel nombre de las pestañas o eliminarlas. PHPInteractive recuerda los scripts de una sesión a otra.

Como ayuda al desarrollo, el programa ofreceun recuadro de búsqueda para buscar definicio-nes de funciones de PHP que nos dirigirá a lapá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 unsubdirectorio denominado /scripts (la aplicación necesitaesta 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 unURL del estilo http://ejemplo.com:89/phpinteractive.

3. Dial GaugeDial 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úmeroque 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-litar la biblioteca de gráficos “gd”, un conocido kit de herra-mientas para la creación dinámica de imágenes. Puede

FIGURA 2Enigmático gráfico basado en el código de la Figura 1 (Pizzaque no se ha comido)

FIGURA 3PHP Interactive

FIGURA 4El indicador muestra en qué intervalo está el valor

Page 22: ServerNEWS -181 (Febrero 2008)

22 ServerNEWS FEBRERO 2008 www.help400.es

hacerlo mediante las páginas de administración de Zend Core(Configuration/Extensions) y, a continuación, reiniciando ZendCore. Puede ejecutar el script de ejemplo en un URL comohttp://ejemplo.com:89/dialgauge/example.php. La Figura 4muestra un indicador de ejemplo.

4. Clase TailFileCuando los profesionales que trabajan en Unix desean con-sultar las entradas más recientes de un archivo de registrode gran tamaño, usan el mandato “tail”. Con la clase TailFile(phpclasses.org/browse/package/499.html; hay que registrar-se, aunque la inscripción es gratuita), se puede controlar lafunción “tail” desde PHP. Les mostraré cómo usarla para de-tectar los errores nuevos que aparezcan en las anotacionesde errores de PHP.

Para instalar el programa, descargue y extraiga el conteni-do del archivo zip. Copie su contenido, tail-example.php ytailfile.phpc, en un directorio como /www/zendcore/tailfile. Hemodificado tail-example.php (Figura 5) para que funcionecon Zend Core para i5/OS. A mi versión, que comprueba sihay errores nuevos en las anotaciones de errores de PHP,algo que suelo hacer bastante a menudo, la he denominadocheck_php_log.php.

Mi script está pensado para ejecutarse en el entorno delterminal QShell en vez de en un navegador. ¿Por qué? Unnavegador no permitirá que una página web se ejecute per-manentemente. Caducará, a menos que JavaScript redirijala dirección periódicamente. QShell no tiene esas restriccio-nes. Permite que un script de PHP se ejecute en un bucleinfinito. Aquí se puede ver la potencia de PHP para scripts deintérpretes de mandatos genéricos.

Ejecuto QShell y mi script conla 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ásrecientes encontrados por el script.

5. Biblioteca de gráficossparkline escritos en PHPSegún Edward Tufte, experto endiseño analítico, las sparklines son “gráficos sencillos, del ta-maño de una palabra y que condensan una gran cantidad dedatos”. Gracias al paquete de sparkline.org, los desarrolladorespueden incrustar sparklines en informes o páginas web que,de lo contrario, serían muy aburridos.

Para instalar la biblioteca, descargue y descomprima elcontenido del archivo zip en una carpeta como /www/zendcore/htdocs/sparkline. En Zend Core, tendrá que habilitar la ex-tensión de la biblioteca de gráficos “gd”. Puede hacerlo acce-diendo a las páginas de administración de Zend Core(Configuration/Extensions) y reiniciando Zend Core. Se in-

cluyen varios scripts de ejemplo. Yo ejecuté uno que repre-senta la evolución de los valores bursátiles de IBM mediantedatos dinámicos proporcionados por Yahoo Finance. El URLcon parámetros sería algo así http://ejemplo.com:89/sparkline/samples/stock_chart2.php?s=ibm&y=5. En la Figura 7 semuestra la sparkline resultante.

6. Mantis/400Mantis (mantis400.com) es una conocida aplicación basadaen web que presta servicios de asistencia técnica y realiza elseguimiento de errores. Nunca más volverá a perder la pista

#!/usr/local/Zend/Core/bin/php -q<?// check_php_log.php// Display new errors that appear in Zend Core’s error log// Adapted from Matthew Frederico’s tail-example.php//// First line gives default location of PHP executable in Zend Core fori5/OS// $tailfile is set to default name of Zend Core’s error log

/****************************//* Configuration parameters *//****************************/# File Locations

$tailfile = “/usr/local/Zend/Core/logs/php_error_log”;

# How many seconds delay between checks

$check_delay = 5;

/**********************************************//* M A I N P R O G R A M *//**********************************************/include(“tailfile.phpc”); // PHP Tail class.

// This is where we watch our PHP error log for updates//——————————————————————$t = new TailFile($tailfile);print “Watching PHP log... \n”;

while ($t->isOpen()){ $t->checkUpdates(); $myres = $t->getResults();

if ($myres) print $myres;

$t->wait($check_delay);}//——————————————————————-

■ EN PORTADAFIGURA 5La clase TailFile comprueba si hay errores nuevos en lasanotaciones de errores de PHP

FIGURA 6Check_php_log.php se ejecuta en QShell y usa TailFile para mostrar los errores nuevos

Page 23: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 23

Page 24: ServerNEWS -181 (Febrero 2008)

24 ServerNEWS FEBRERO 2008 www.help400.es

de los problemas que está siguiendo el servicio técnico. Mejoraún, Mantis trabaja con DB2 desde 2007, cuando trabajé conconsultores de IBM, Zend, Curbstone Corporation y el jefe deproyecto de Mantis, Victor Boctor, para crear Mantis/400, unaversión compatible con DB2.

Cuando se ejecuta Mantis/400, sus datos se guardan enarchivos normales de DB2. Las herramientas tradicionalesde programación, como RPG, pueden acceder a estos archi-vos.

Mantis incluye las funciones siguientes:

• El personal técnico y los usuarios finales pueden informarsobre errores y problemas y hacer comentarios sobre ellos.(En la Figura 8 puede verse la lista de los problemas deMantis).

• Los usuarios pueden subir archivos complementarios (porejemplo, archivos de anotaciones) para informar sobre susproblemas.

• 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 procesosistemático de gestión de los cambios.

• El personal técnico puede publicar planes de actuación ynovedades 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 elproducto con el mandato LODRUN. El servidor proxy Apa-che de Zend (ZENDCORE, ejecutándose en QHTTPSVR) pre-cisa un cambio en la configuración para que Mantis reconoz-ca el nombre de dominio. Por omisión, el archivo que hay quecambiar es /www/zendcore/conf/httpd.conf. El valor que hayque modificar es ProxyPreserveHost On.

7. GriderGrider (phpclasses.org/browse/package/2538.html; hay queregistrarse, aunque la inscripción es gratuita) es un editorbasado 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 lascasillas. 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 etiquetasintegradas.

Para instalar el editor, descargue y extraiga el contenidodel 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 unURL del tipo http://ejemplo.com:89/grider/index.php.

En la Figura 9a se ilustra el diseño de una tabla y en laFigura 9b puede verse el código HTML resultante. Para cam-biar las columnas, filas y atributos colspan y rowspan, pulse

FIGURA 7Gráfico sparkline de la evolución de los valores bursátiles deIBM en 2005

■ EN PORTADA

FIGURA 8Lista de problemas de Mantis

FIGURA 9A

Tabla con atributos rowspan y colspan

Page 25: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 25

8. AntispamSi su buzón de correo electrónico rebosa de spam, ¿tal vezserá porque los sistemas de spam automatizados se han he-cho con su dirección en su sitio web? El paquete Antispam(phpclasses.org/browse/package/1088.html; hay que regis-trarse, aunque la inscripción es gratuita) tiene una solución.En vez de incluir un enlace a su dirección de correo electróni-co directamente en sus páginas, de dónde pueden capturarlarobots de spam, puede incrustar código escrito en JavaScriptque cree un enlace protegido (ofuscado) a una dirección decorreo electrónico. Los usuarios pueden ver la dirección ypueden pulsar sobre ella como siempre, pero la mayoría desistemas automáticos no. (Nota: los usuarios deben tener ac-tivado JavaScript en sus navegadores).

Este es un fragmento del ejemplo proporcionado por el au-tor de Antispam, Stanga Razvan:

$antispam = new AntiSpam;

echo $antispam->email ( “[email protected]“ );

Genera el siguiente script:

<SCRIPT LANGUAGE=“JavaScript“> document.

write(‘<a href=“’ + ‘mailto:’ +

‘cool’ + ‘@’ + ‘computergames.ro’

+ ‘“>’ + ‘cool’ + ‘@’

+ ‘computergames.ro’ + ‘</a>’); </script>

Si el enlace incluye el nombre además de la dirección decorreo electrónico, ambos se cifrarán en JavaScript, lo quedificultará aún más la tarea de los robots.

Para instalar Antispam, descargue el archivo zip y extrai-ga el contenido en una carpeta como /www/zendcore/antispamdel servidor web. Puede acceder a la aplicación mediante elnavegador con un URL parecido a http://ejemplo.com:89/antispam/anti-spam.php.

9. Phoogle MapsPhoogle Maps (systemsevendesigns.com/phoogle) permiteusar las API de Google Maps para incrustar mapas perso-nalizados en un sitio web. Los mapas son como los del sitio deGoogle (maps.google.com). Los usuarios pueden ampliar yreducir los mapas, y hacer todo lo que normalmente haríancon un mapa de Google. En la Figura 10 se muestra un ejem-plo sencillo en el que he establecido dos direcciones. En laFigura 11 puede verse el mapa resultante.

Para instalar los mapas, descargue el archivo zip y extrai-ga su contenido en una carpeta, como por ejemplo /www.zendcore/phoogle, del servidor web. Podrá acceder a laaplicación mediante el navegador con un URL como http://ejemplo.com:89/phoogle. El servicio de API de Google Mapsrequiere que obtenga de forma gratuita una clave de API deGoogle Maps en code.google.com/apis/maps.

10. WordPressWordPress (wordpress.org) es un completo paquete parabitácoras, gratuito y de código libre. Su activa comunidad

<table border=”0” cellpadding=”0” cellspacing=”0” width=””> <tbody> <tr> <td colspan=”5”></td> </tr> <tr> <td></td> <td colspan=”2”></td> <td rowspan=”2”></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </tbody></table>

<?php /*** Showing multiple points with Phoogle Maps* class developed by Justin Johnson<[email protected]>*/

require_once ‘phoogle.php’;

$map = new PhoogleMap();// get your own Google Maps key$map->setAPIKey(“ABQIAAAAHbYourOwnKeyQm53U97g_KENmAYvVHzRRmYuBxajz9hYZQ9czEzjm-fYaGahRsmqNC-biCgOyOP2XjlfOPg”);

?><!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”><html xmlns=”http://www.w3.org/1999/xhtml”> <head> <? $map->printGoogleJS(); ?> </head> <body> <?

$map->addAddress(‘17 Franklin Tpk, Ramsey, NJ 07423’); $map->addAddress(‘263 E. Main St, Ramsey, NJ 07446’); $map->showMap();

?> </body>

</html>

FIGURA 9B

Código HTML resultante de la tabla de la Figura 9a

FIGURA 10Mapas dinámicos de Google incrustados en una páginaweb con ejemplo.php

en la casilla correspondiente y luego pulse [+] o [-]. Cuandopulse “html”, Grider generará código HTML que luego puedecopiar en sus páginas web.

Page 26: ServerNEWS -181 (Febrero 2008)

26 ServerNEWS FEBRERO 2008 www.help400.es

trabaja constantemente para mejorar su calidad y sus fun-ciones. El proceso de instalación de WordPress apenas duraunos 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 hacedesde 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 unaherramienta 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 dedatos “wordpress”, “blog” o especificar un nombre que hagareferencia al propósito del blog.

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, poromisión, es /www/zendcore/conf/httpd.conf.

Para instalar WordPress, descargue el archivo zip dewordpress.org y extraiga su contenido en una carpeta como /www/zendcore/wordpress del servidor web. Para iniciar elproceso de instalación, vaya al URL correcto, que será pare-cido a ftp://ejemplo.com:89/wordpress/. Siga las instruccionesde instalación que aparecen en pantalla. Deje que el instaladorcree 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 (probablementelocalhost) y un prefijo para la tabla (wp_ debería servir).

Una vez finalizada la instalación, se le proporcionará unacontraseña aleatoria que podrá usar para conectarse comoadministrador. Podrá empezar a trabajar con la bitácora in-mediatamente pulsando Escribir entrada. En la Figura 12se 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 losvisitantes.

Las cosas interesantes abundanPHP abre las puertas a todo un mundo de aplicaciones queno sólo son interesantes sino que también crean valor parala organización. Ahora, con relativamente poco esfuerzo, esposible ejecutar fantásticas aplicaciones escritas en PHP ennuestro fiel System i. ■

Alan Seiden disfruta dirigiendo proyectos en colaboración, desarrollandosoftware y resolviendo problemas. Miembro del grupo de desarrolladores dePHP de Nueva York desde 2004 y uno de los primeros impulsores de PHP en elSystem i, Alan fue reseñado en el boletín de noticias de la New York SoftwareIndustry Association (nysia.org/special_features/article.cfm?pid=383). El blogsobre informática de Alan es alanseiden.com.

■ EN PORTADA

FIGURA 11Mapa resultante

FIGURA 12Escribiendo una entrada y añadiendo gráficos

FIGURA 13La página resultante de la bitácora

Page 27: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 27

Page 28: ServerNEWS -181 (Febrero 2008)

▲▲▲

En

dir

ect

o

28 ServerNEWS FEBRERO 2008 www.help400.es

Una nueva ola de innovación paralas empresas

por Alberto C. Blanch

os próximos días 26 y 27 de febrero en el PalacioMunicipal de Congresos de Madrid tendrá lugarun encuentro organizado por Microsoft en el que,bajo el lema “The Evolution Show”, presentará lanueva 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 yVisual 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 JuanTonda, Director de la Unidad de Negocio de Servidores y Pla-taformas de Microsoft Ibérica, quien bajo el título de “Unanueva ola de innovación para las empresas” nos comenta comola combinación de estos tres productos favorecerá el procesode innovación empresarial. También hemos aprovechado laocasión para mantener una breve entrevista con Emilio Paz,jefe de Producto de Windows Server 2008 sobre las capacida-des de virtualización del nuevo sistema operativo.

Una nueva ola de innovación para las empresasHoy en día nadie se atreve a dudar de la importancia deldesarrollo de la Sociedad de la Información como elementoclave en la dinamización y modernización de los países y desu actividad económica y social.

Desde Microsoft, nos comprometemos con la industria,muestra de ello es el lanzamiento mundial de Windows Server2008, Visual Studio 2008 y SQL Server 2008, que constitu-yen una plataforma de plena confianza para la creación yejecución de las aplicaciones más exigentes. La creación deestos productos innovadores responde a las necesidades dela nueva generación de aplicaciones, optimizando el uso de laweb, ampliando la difusión de tecnologías de virtualización ymejorando el acceso a la información relevante. WindowsServer 2008 incorpora tecnologías de Web y virtualizacióndentro del propio sistema operativo, permitiendo aumentarla fiabilidad y flexibilidad de la infraestructura de servidoresen las empresas. En la misma línea le sigue la plataformaMicrosoft SQL Server 2008, que se basa en tres pilares: laproductividad, la fiabilidad y la inteligencia de negocio ex-tendida a toda la organización con el fin de optimizar latoma de decisiones. La nueva plataforma Visual Studio2008 completa este lanzamiento, facilitando la rápida crea-ción de aplicaciones, enriqueciendo la experiencia del usua-rio y potenciando el avance y la innovación en el área deldesarrollo.

El lanzamiento mundial de esta combinación de platafor-mas supone un empuje definitivo a las tecnologías de

L

virtualización, extendiendo sus ventajas desde el PC hasta elCentro de Datos.

En el marco de una industria en constante innovación, pre-tendemos adelantarnos al futuro, beneficiando a las peque-ñas y medianas empresas con la adaptación a sus necesida-des pero también al usuario final a través de la virtualización.Desde Microsoft, apostamos por la virtualización de la infra-estructura tecnológica en múltiples niveles y creemos que lasempresas adoptarán estas tecnologías gracias a los impor-tantes beneficios que se pueden conseguir con ellas.

La virtualización en Windows Server 2008La virtualización es la tecnología que permite que distintasaplicaciones y sistemas operativos compartan un mismo ser-vidor. Como veremos, es una funcionalidad más del nuevosistema operativo de Microsoft.

ServerNEWS: ¿Cuáles son los motivos de la adopción de lastecnologías de virtualización en el área de servidores?– Emilio Paz: La Sociedad de la Información se caracterizapor su continuo y constante cambio. Esto requiere que lasdistintas soluciones y dispositivos se vayan adaptando a losnuevos tiempos. Es en este entorno dónde la virtualizaciónde sistemas se está convirtiendo en la protagonista.

La adopción de la virtualización está presente en el 15% delos servidores del mercado, es decir, que el 85% restante notienen un software de virtualización. La adopción de esta tec-nología no ha llegado a la mayoría de los servidores existen-tes pero se espera que, poco a poco, la vayan adoptando.

Juan Tonda, Director de la Unidad de Negocio de Servidores y Plataformas deMicrosoft Ibérica

Page 29: ServerNEWS -181 (Febrero 2008)

▲▲▲

En

dire

cto

www.help400.es FEBRERO 2008 ServerNEWS 29

Las ventajas más llamativas de la virtualización: el ahorrode costes, la optimización del uso del hardware, la reducciónde servidores, las mejoras en la gestionablidad, en el consu-mo energético, etc, van siendo cada vez más patentes y esosupone una adopción más rápida por parte de las empresas.

Desde su punto de vista ¿cuáles son los retos y/o factoresinhibidores entre las empresas españolas a la hora de im-plantar una tecnología de virtualización?– La virtualización implica una formación en recursos hu-manos, gente preparada, los canales de distribución prepara-dos y formados, etc. Respecto al factor inhibidor de lavirtualización, es un concepto relativamente nuevo y todavíahay mucho que demostrar por parte de los fabricantes, tene-mos que demostrar el valor añadido que supone esta nuevatecnología. “Exchange Server” de Microsoft por ejemplo, re-duce costes, el número de servidores, etc, dentro del mercadoempresarial.

El reto con el que nos encontrados es la divulgación de estanueva tecnología y la gestión de un entorno virtualizado den-tro de las compañías. Para facilitar su adopción, Microsoft laincluye en Windows Server 2008, por lo que el usuario notiene que realizar grandes inversiones económicas ya que setrata de una funcionalidad más del sistema operativo parafacilitar la entrada de los canales de ventas. Tratamos de quetanto las grandes como medianas y pequeñas empresas em-piecen a utilizar este tipo de tecnologías, ofreciéndoles solu-ciones de virtualización de manera muy proactiva y adapta-das a las necesidades de cada cliente.

¿Cuáles son las tendencias en virtualización en el mercadoespañol?– La virtualización, a día de hoy, está más implantada en lasgrandes empresas ya que son las primeras en reclamar estaadopción puesto que poseen muchos servidores. A pesar deello, la tecnología ha llegado ya al mercado de las pymes.Existe un crecimiento potencial en este mercado en la actua-lidad. También estamos asistiendo a los primeros proyectosde Virtualización de PCs en el propio servidor.

¿Qué crecimiento prevén para los próximos años en esta tec-nología, tanto a nivel mercado como dentro de Microsoft?– Sin duda es el cambio tecnológico más importante en laIndustria de TI en los próximos años. La virtualización se iráconsolidando en las grandes empresas y las Pymes empeza-rán a utilizar este tipo de tecnologías. En ambos mercadosnuestra compañía ofrecerá soluciones de virtualización demanera muy proactiva y adaptada a las necesidades de cadacliente. Esperamos un crecimiento sólido que irá en aumentoen la medida que las empresas comprueben los beneficios dela virtualización en su negocio diario.

¿Qué beneficios ofrece la virtualización a los sistemas y a laseguridad de los datos de una empresa?– Microsoft Windows Server 2008, con las nuevas tecnologíasde Web y Virtualización, conseguirá aumentar la fiabilidad y

flexibilidad de las infraestructuras de servidores. Las nue-vas tecnologías de virtualización, los mejores servicios web ylos grandes avances en seguridad ayudarán a ahorrar tiem-po, reducir costes y permitirán conseguir una plataforma idealpara un centro de datos dinámico y flexible. Nuevas herra-mientas potentes, como Internet Information Server (IIS) 7,Windows Server Manager y Windows Powershell, permiti-rán optimizar el control de los servidores. Las nuevas tecno-logías de Network Access Protection (NAP) y Read-OnlyDomain Controller (RODC) consiguen que Windows Server2008 sea un sistema operativo seguro, logrando ser una pla-taforma estable para las aplicaciones de negocio.

El mensaje que queremos transmitir es que se puedenvirtualizar múltiples sistemas operativos en un sólo servidorfísico. Con las nuevas tecnologías de virtualización embebi-das en el sistema operativo Windows Server 2008, conjunta-mente con la nueva política de licenciamiento de Microsoftpara entornos virtuales, conseguimos que sea mucho mássencillo obtener todas las ventajas de la virtualización, tantoen ahorro de costes como en la optimización de una infraes-tructura de servidores.

¿Por qué han esperado tanto para meterse de lleno en el cam-po de la virtualización?– En Microsoft creemos que la virtualización será la tecnolo-gía que tendrá mayor impacto en la empresa desde hoy hasta2012. El lanzamiento mundial de Windows Server 2008 seráel espaldarazo final a esta tecnología ya que se podrá com-probar las ventajas de la virtualización tanto en entornos PCcomo en entornos servidor. Microsoft incorpora estafuncionalidad dentro de Windows Server 2008 como una par-te del sistema operativo.

En Microsoft apostamos por la virtualización porque cree-mos que debe estar dentro del sistema operativo, tal y comoocurre en otros entornos Unix, PA-RISC, Mainframe, etc.…setrata de una parte más del sistema operativo, por lo que esnuestra gran apuesta con Windows Server 2008 y pedimos alos clientes que nos pregunten sobre los planes de Microsoften este mercado antes de tomar una decisión de inversión envirtualización.

¿Qué futuro le ven a esta tecnología?– Queremos que el 2008 sea el año de las infraestructuras yde la virtualización y creemos que habrá una mayor adop-ción de esta tecnología gracias a los importantes beneficiosque se pueden conseguir con ella. Existirá un gran avancetecnológico en todo lo referente a las infraestructuras, a laoptimización del uso del hardware y de los recursos existen-tes, más adaptabilidad e interoperabilidad entre fabricantesy sus soluciones. La virtualización implica formación y adap-tación progresiva, es decir, las compañías tendrán que estarpreparadas para soportar este nuevo entorno tecnológico. ■

Sabiendo que en estos casos el tiempo escasea, desde ServerNEWS queremosagradecer a Juan Tonda y Emilio Paz la gentileza de atender nuestra solicitud.

Page 30: ServerNEWS -181 (Febrero 2008)

▲▲▲

Pre

sen

taci

ón

30 ServerNEWS FEBRERO 2008 www.help400.es

Una solución vanguardistaen System i

a Entidad Autónoma del Diario Oficial y de Publi-caciones (EADOP) es la empresa que se dedica ahacer los proyectos editoriales de la Generalitatde 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 Generalitatde Catalunya” (DOGC), de las leyes de la Generalitat, lasdisposiciones generales dictadas por el Gobierno y la Admi-nistración de la Generalitat, y también los actos, anuncios ydemás documentos de la Generalitat y otras entidades o per-sonas, cuando corresponda de acuerdo con el ordenamientojurídico.

La Ley 2/2007 del Diario Oficial, de 5 de junio, configura alDOGC 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 plenaautenticidad y validez jurídica mediante firma electrónica,eliminando la necesidad de realizar una edición impresa.

El progreso y el ahorro que supone la supresión de 350 to-neladas anuales de papel, la eliminación de 8.000 CD y 500DVD, dejar de hacer los procesos de impresión, embolsado yenvío de ejemplares son actuaciones que repercuten positi-vamente en el servicio a la ciudadanía ya que el DOGC está asu disposición 24 horas los 365 días del año. La eliminaciónde la edición impresa del DOGC ha supuesto un gran paso enel aspecto ecológico.

El problemaLos Ayuntamientos de Catalunya anunciaban en el DOGCque se podían consultar las normas urbanísticas en el propioayuntamiento, normalmente en formato de papel. Pero unasentencia judicial del año 2000 establece que una norma ur-banística sólo es legal si se ha publicado íntegramente en elDOGC. Por consiguiente, todas las normas urbanísticas deCatalunya quedaban con una validez jurídica dudosa.

Para solucionar este problema jurídico, a principios de2007 el Departamento de Política Territorial y ObresPúbliques (PTOP) de la Generalitat de Catalunya comen-zó a escanear y pasar a formato PDF todas las normasurbanísticas para que fueran publicadas en el DOGC an-tes de finales de 2007.

EADOP, como entidad responsable de realizar la edicióndel DOGC, se enfrentó al reto de dar el formato correspon-diente a 10.000 normas urbanísticas de los Ayuntamientosde Catalunya, es decir, a más de 500.000 páginas en PDF; un

trabajo para el que aplicando el método habitual se necesita-rían aproximadamente unos quince años para hacerlo.EADOP necesitaba una solución tecnológica que les permi-tiera automatizar el tratamiento de tan gran cantidad de do-cumentos, los numerase correlativamente y asegurase su pu-blicación en el DOGC en los plazos establecidos, aprovechandoque la Ley 2/2007 confiere validez jurídica a su edición elec-trónica.

Por su parte el Departamento de Política Territorial y ObresPúbliques (PTOP) entregaría las normas urbanísticas en blo-ques de 500 a 1000 normas acompañadas de un edicto. Eledicto se publicaría en la edición digital del DOGC incluyen-do un enlace a un anexo con las normas en formato PDF.

El proyectoPara tal proyecto la arquitectura informática utilizada enEADOP consiste principalmente en un sistema iSeries coninfraestructuras de Cliente Servidor y Web.

Miquel Casals como Analista programador del DOGC y res-ponsable del proyecto, contactó con CaCovai 400 para llevara cabo entre ambas empresas una aplicación Windows queintegrara el control de todo el proceso informático para eltratamiento de las normas urbanísticas. CaCovai 400 es laempresa de consultoría y servicios, distribuidora exclusivadel software ASNA Visual RPG .NET, (AVR) que permite ha-cer desarrollos informáticos en entornos visuales (Windows,Web) bajo la plataforma .NET de Microsoft con una total in-tegración con el iSeries o con MS SQL Server.

De izquierda a derecha, los Sres. Lluís Peiret, Miquel Casals y Carlos Valero

L

por Lluís Peiret

El Diari Oficial de la Generalitat de Catalunya publica en la Web 10.000 normasurbanísticas de los Ayuntamientos de Cataluña utilizando ASNA Visual RPG .Net

Page 31: ServerNEWS -181 (Febrero 2008)

▲▲▲

Pre

sen

tació

n

www.help400.es FEBRERO 2008 ServerNEWS 31

Para el escaneado de los documentos se recurrió al produc-to Adobe LiveCycle Assembler, un producto de Adobe que cen-traliza y automatiza la conversión a formatos PDF persona-

lizados. Por su parte, el producto ASNA Visual RPG .NETpermite aprovechar los conocimientos previos del lenguajeRPG para el desarrollo de aplicaciones visuales y facilita laintegración de procesos entre el iSeries y las plataformasWindows y Web.

El procesoEl departamento de informática del DOGC estableció que losdías 10 y 25 de cada mes se publicaran las normas. Para ellouna semana antes el Departamento de Política Territorial yObres Públiques entrega a EADOP un DVD que contiene to-das las normas urbanísticas a publicar por cada edicto. Cadanorma está en un directorio del DVD y consta de uno o másPDFs. Los PDFs de los diferentes directorios acostumbran atener nombres repetidos, por lo que se deben renombrar asig-nándoles un nombre único. En el DVD va incluido un archivoExcel con los metadatos de cada norma: Población, Númerode 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 conASNA Visual RPG .NET para el tratamiento de los DVDsrecibidos. Esta aplicación valida el contenido del DVD segúnel 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 juntocon 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 unservidor específico para que éstos se formateen de acuerdocon el diseño y directrices del DOGC mediante la solución deADOBE (Figura 3). Posteriormente a la asignación del for-mato, la aplicación mueve los documentos a una carpeta deotro servidor para añadirles la firma electrónica que garan-tiza su validez e integridad. Por último, el conjunto de todoslos PDFs con el formato correcto, se dejan en una carpetapara 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 deforma manual, sólo hubiésemos sido capaces de convertir detres a cuatro normativas diarias. Aplicando esta solución in-formática obtuvimos una ágil solución”. El resultado fue queel día 1 de Julio se logró suprimir la edición impresa del DOGCy el 26 de Julio se consiguieron publicar las primeras normasurbanísticas en la Web.

Gracias al desarrollo de esta solución informática llevadaa cabo con Adobe y Visual RPG .NET, en seis meses, el DOGCha publicado las normas urbanísticas a ritmo de dos edictospor mes y, a fecha actual, los 500.000 documentos de las nor-mas urbanísticas están accesibles en la Web. ■

Lluís Peiret, con más de 20 años de experiencia en entornos medios de IBM,trabaja en el departamento técnico de CaCovai 400.

FIGURA 1Árbol de directorios del DVD que contienen las normas

FIGURA 2Diagrama de procesos de la solución adoptada

FIGURA 3PDFs formateados para su publicación en el DOGC

Page 32: ServerNEWS -181 (Febrero 2008)

Man

agem

en

t

▲▲▲

32 ServerNEWS FEBRERO 2008 www.help400.es

a versión V5R4 de i5/OS incluye varias mejorasde los diarios y el control de compromiso que pue-den resultarles muy atractivas a los usuarios. Eneste artículo encontrará una muestra de lo que elrelease V5R4 puede hacer por las tareas de diario

y compromiso.

Subir el techoPara aquellos que les gusta guardar todos los cambios delos archivos protegidos por diario en un solo diario, la V5R4les permite aumentar el tamaño máximo del diario hastacuarenta veces, o lo que es lo mismo, que hasta diez millo-nes de objetos compartan el mismo diario. Este mayor vo-lumen puede ser especialmente útil si se utiliza un paque-te de terceros que pone varias tablas de SQL en la mismacolección. Si tiene un diario para esta colección, la recupe-ración posterior será más sencilla. Antes del release V5R4,el límite superior impuesto por i5/OS era de 250.000 obje-tos por diario. Esto significaba que las empresas que so-lían tener un gran número de tablas pequeñas (una situa-ción típica de algunos programas de terceros) o muchosarchivos de corrientes de bytes registrados por diario te-nían que gestionar varios diarios. Aunque utilizar variosdiarios tiene muchas ventajas, la simplicidad no es una deellas.

Si desea poner todos los huevos en la misma cesta, a partirde V5R4 puede hacerlo, con tal de que indique al sistemaoperativo que quiere utilizar el nuevo techo. El mandato paraaumentar este límite es el siguiente:

CHGJRN . . . JRNOBJLMT(*MAX10M)

Ponga el diario a dietaHay varias opciones para tener un receptor de diario esbeltoy en forma. Una de las más eficaces –que frecuentemente sepasa por alto– es otorgar permiso al sistema operativo sub-yacente para que se abstenga de capturar imágenes de co-lumnas invariables que residen en una tabla de SQL o en unarchivo de base de datos nativo.

Por ejemplo, supongamos que trabaja en el sector del trans-porte de paquetería y tiene un archivo que controla de ubica-ción actual de cada paquete. Un transportista recoge el

paquete en la puerta del cliente y lo transporta hasta el cen-tro de clasificación más cercano. Allí, alguien lo pone en uncontenedor y lo carga en un avión, vuela hasta un centro dedistribución, se vuelve a clasificar, se pone en un nuevo con-tenedor, vuela hasta la ciudad del destinatario, se carga enuna camioneta y, por último, se entrega a su destinatario.Por el camino, cada vez que el paquete cambia de manos, seexamina su código de barras y se actualiza su correspondien-te registro maestro, revelando, por ende, su ubicación actual.La tabla de SQL que aloja el registro maestro de este paque-te puede constar de montones de columnas: el ID del fletador,el número del paquete, su peso, su precio, el destinatario, elcódigo de la cuenta, la descripción, el valor declarado, etcéte-ra. Sin embargo, lo único que hay que actualizar repetida-mente es la ubicación actual. El resto de las columnas se que-darán tal cual. Durante las siguiente 24 horas, conforme elpaquete se abra camino por el sistema de distribución, seactualizará el valor que reside en la columna de ubicacióndel paquete una docena de veces. Y ocurrirá lo mismo con losotros 400.000 paquetes que le habrán encomendado hoy... ¡esun montón de actualizaciones!

Si deja que el diario tome las medidas normales por omi-sión, cada actualización capturará una copia de la imagen detoda la fila de SQL de este paquete. Sin embargo, la mayoríade las columnas no varían de una actualización a otra. Cap-turar un imagen de toda la fila es mucho más costoso que darpermiso al sistema operativo para que grabe solamente lascolumnas modificadas. El release V5R4 le permite grabarúnicamente las columnas modificadas, minimizando el tama-ño de las entradas de diario y lo hace de tal forma que ade-más facilita a los auditores el reconocimiento y la interpreta-ción de las columnas resultantes. Para habilitar estecomportamiento en el diario, sólo hay que ejecutar este man-dato:

CHGJRN . . . MINENTDTA(*FLDBDY)

¿Cuánto espacio se puede ahorrar? Un cliente que usabaun conocido paquete de terceros observó que el tamaño pro-medio de las entradas de diario se redujo de 637 bytes a 411bytes, lo que significa un 35% de espacio de disco por cadaentrada.

¿Qué ofrece laV5R4 a los usuariosdel diario y el control de

compromiso?Las nuevas funciones suponen mayor facilidad de uso

por Larry Youngren

L

Page 33: ServerNEWS -181 (Febrero 2008)

Man

agem

en

t

▲▲▲

www.help400.es FEBRERO 2008 ServerNEWS 33

Un compromiso más amable y afectuosoMuchas aplicaciones modernas usan el control de compromi-so para garantizar la integridad de las transacciones. Mu-chos paquetes de terceros han integrado el control de com-promiso en sus productos pero, aunque es una buena función,hay que pagar un precio por usarla. ¿Qué le parecería si pudierarebajar algo ese precio? La V5R4 le permite hacerlo.

La mayor actividad general asociada al control de compro-miso se deriva de que, de forma predeterminada, cada tran-sacción que finaliza no sólo anuncia su nuevo estado al diariosubyacente, sino que también insiste en que la aplicaciónespere hasta que se graben en disco las filas asociadas y lainformación del diario. Si las transacciones suelen ser res-tringidas (es decir, que sólo se actualizan unas pocas filas porcada transacción) la cantidad total de operaciones de graba-ción en disco para procesar 400.000 paquetes es considera-ble. La cuestión es saber qué es lo que realmente estamoscomprando a cambio de esas costosas y frecuentes operacio-nes de grabación en disco que consumen tanto tiempo.

La respuesta es durabilidad inmediata. El control de com-promiso tiene muchas ventajas, entre las que destacan la in-tegridad transaccional, la atomicidad y la durabilidad. Aun-que las tres tienen cualidades interesantes, la cuestión de ladurabilidad inmediata suele ser la más costosa.

Supongamos que tiene una aplicación que requiere inte-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 mediorealizar), pero que necesita algo menos que la durabilidadinmediata. Hace años trabajé con un cliente que tenía unaaplicación así. Se trataba de una aplicación de facturación demóviles que actualizaba millones de filas cada noche apli-cando la información diaria de uso de los teléfonos al registromaestro de abonados. El cliente no quería tener que reiniciarel proceso nocturno desde cero si se encontraba un error, demodo que optó por grabar una entrada de diario con informa-ción del usuario al final de cada lote de registros de detallede móviles que había aplicado. Este singular valor que seña-laba “dónde estoy ahora” le ayudaba a detectar dónde reiniciarel proceso nocturno. Usaba el control de compromiso paraasegurarse de que todos los registros de detalle relacionadoscon un cliente concreto se aplicaban al unísono (es decir, quequería la integridad de las transacciones). Sin embargo, eraperfectamente feliz reiniciando el trabajo por lotes a partirde 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. Porello, el coste extra de asegurar la durabilidad inmediata (encuanto finaliza la transacción 333, ESPERAR a que las en-tradas de diario correspondientes se graben en disco antesde empezar la transacción 334) era excesivo. Cada noche sehacía un millón de pausas.

Estas pausas ya no son necesarias. En su lugar, si tieneuna aplicación que puede tolerar algo menos que la durabi-lidad inmediata, puede aumentar la velocidad de la aplica-ción utilizando el nuevo atributo “compromiso por software”del release V5R4 junto con el atributo de copiar en memoria

caché el diario. El resultado es que se reducen sustancialmentelas esperas para las operaciones de grabación en disco, asícomo el número total de operaciones previstas de grabaciónen disco.

Habilitar el compromiso por software en V5R4 es tan fácilcomo ejecutar el mandato siguiente:

ADDENVVAR ENVVAR(QIBM_TN_COMMIT_DURABLE)

VALUE(*NO)

La variable de entorno que estamos modificando esQIBM_TN_COMMIT_DURABLE, porque influye en el tipode durabilidad utilizado por las transacciones. Al especificar*NO, indicamos que queremos sacrificar la durabilidad in-mediata (el valor por omisión). Puede definir este tipo de va-riables de entorno para cada trabajo, de modo que solamenteel trabajo especificado (por ejemplo, sólo el trabajo por lotescuyo rendimiento es crucial) se comporte de esta forma, opuede definirlas para que afecten a todo el sistema.

Para obtener el mejor rendimiento con este método, tam-bién querrá asegurarse de que el diario subyacente copie losdiarios en caché. Esto puede conseguirse instalando la op-ción 42 de i5/OS y ejecutando:

CHGJRN . . .JRNCACHE(*YES)

Suscríbase a

y recibirágratuitamenteel suplementotécnico

Page 34: ServerNEWS -181 (Febrero 2008)

Man

agem

en

t

▲▲▲

34 ServerNEWS FEBRERO 2008 www.help400.es

El compromiso por software combinado con la copia del dia-rio en memoria caché le permite sacar el mejor partido posi-ble: la integridad de las transacciones, la atomicidad y unbuen rendimiento.

Mejor protección para las colas de datosPara disfrutar de todas las ventajas de la protección del re-gistro por diario que ofrece el release V5R4, puede que le inte-rese registrar por diario sus colas de datos. Las colas de datos–como las vías de acceso a la base de datos y los índices deSQL– son objetos inherentemente frágiles. Un cambio exter-no aparentemente simple (por ejemplo, agregar o eliminarun mensaje) puede desencadenar varias modificaciones inter-nas de la cola, abarcando múltiples páginas y múltiples sec-tores de disco. Por consiguiente, cada vez que la máquina fi-naliza de forma anómala sin poder guardar todo el contenidode la memoria principal, hay muchas probabilidades de quela cola de datos ya no sea estructuralmente correcto. Estadiscrepancia interna puede manifestarse como un error gra-ve. Por lo tanto, la cola de datos ya no será fiable ni utilizabletras un fallo así. Cuando los índices de la base de datos seenfrentan a un infortunio semejante, buscan la proteccióndel registro por diario. Las colas de datos ahora pueden ha-cer lo mismo.

Antes del release V5R4, el soporte dado por el registro pordiario a las colas de datos era algo limitado, en parte debidoa la naturaleza de la recuperación completa en un local derecuperación en caso de siniestro. Ésta a menudo consiste enun proceso de dos pasos: restaurar una copia salvada del ob-jeto y ejecutar la operación Aplicar cambios de diario(APYJRNCHG) en el objeto.

Aunque los archivos de la base de datos hace tiempo quecumplen los requisitos exigibles para ambos pasos, no ocurrelo mismo con las colas de datos. En cierto sentido, las colas dedatos han sido ciudadanas de segunda. En la V5R4, dejan deserlo, porque ahora hay un nuevo parámetro que puede apli-carse en el momento de salvar.

Antes de la V5R4, el acto de salvar una cola de datos pro-bablemente no hacía lo que realmente queríamos. Éste sola-mente salvaba la cáscara de la cola de datos; se salvaba lacola en sí y su definición, pero no su contenido. De este modo,cuando se llegaba al local de recuperación y se intentaba re-cuperar la cola, ésta no tenía entradas. Este no era un buenpunto de partida para el mandato APYJRNCHG. El releaseV5R4 resuelve este problema. La nueva palabra claveQDTA(*DTAQ) de los mandatos SAVOBJ y SAVLIB indicanal sistema operativo que salve no sólo la cáscara vacía de lacola de datos, sino también su contenido:

SAVOBJ . . . QDTA(*DTAQ)

Ahora, no sólo puede reducirse la probabilidad de que colasde datos vitales resulten afectadas por una avería de la má-quina, sino que también puede garantizar que podrá recupe-rar el contenido más reciente de la cola si tuviera que despla-zarse al local de recuperación en caso de siniestro.

Limitar la duración de una IPL anómalaDurante muchos años hemos podido reducir la duración deuna IPL anómala. Una de las técnicas más eficaces consisteen habilitar la protección por diario de las vías de acceso porclave más grandes de la base de datos y los índices de SQL.Seleccionando la protección por diario de esas vías de accesopuede reducir lo que de ordinario llevaría varias horas detiempo de recuperación para vías de acceso inmensas a unospocos segundos.

Sin embargo, esa protección por diario era limitada paralos departamentos que hubieran optado por acelerar la eje-cución de las consultas a la base de datos creando el tipo es-pecial de índice de SQL denominado Índice de vector codifi-cado (EVI) en vez de un índice de SQL más tradicional. Estoes así porque antes del release V5R4 los EVI no cumplían losrequisitos para esa protección. Esta limitación presentabaun dilema: ¿debía arriesgarse a aumentar la velocidad de eje-cución de las consultas creando un EVI nuevo o debía apa-ñárselas con un índice de SQL normal (o sea, un índice basede árbol binario)? En el pasado, si creaba un EVI nuevo, co-rría el riesgo de que la duración de la IPL anómala fueramayor si se producía un fallo.

La buena noticia es que en la V5R4 ya no tenemos que pa-sar apuros tomando esa elección: ahora es posible elegir losEVI para protegerlos por diario. Activar la protección de losíndices de vector codificado es tan fácil como especificar estemandato:

STRJRNAP . . . FILE(Biblioteca/EVI)

Darse un respiroA medida que el volumen del tráfico del registro por diariocrece, el ritmo de llegada de nuevas entradas de diario a ve-ces es tan rápido y tan frenético que el hardware y el soft-ware subyacentes apenas tienen tiempo de hacer otra cosa(especialmente, si hay montones de objetos activos haciendocontribuciones al mismo diario).

Todos los diarios periódicamente requieren algunas accio-nes de mantenimiento. A menudo, estas acciones son tan su-tiles y modestas que apenas se notan. No obstante, si el rit-mo de llegada de nuevas entradas de diario crece demasiadoy si la cantidad de objetos distintos que hacen depósitos dediario es importante, la tareas de mantenimiento pueden con-vertirse en abrumadoras. Aquí es cuando puede que tengaque intervenir y usar una nueva opción de ajuste del releaseV5R4 poco conocida: el total de recuperación de diario(JRNRCYCNT). Esta opción puede ajustarse con unparámetro nuevo del mandato Cambiar diario (CHGJRN),como se muestra en el ejemplo siguiente:

CHGJRN . . . JRNRCYCNT(250000)

JRNRCYCNT indica cuántas entradas de diario desea per-mitir que procese una IPL anómala. Por ejemplo, si seleccio-na el valor 50.000, estará indicando al sistema operativo queprefiere restringir la duración del tiempo de recuperación

■ ¿QUÉ OFRECE EL RELEASE V5R4 A LOS USUARIOS DE LOS DIARIOS?

Page 35: ServerNEWS -181 (Febrero 2008)

Man

agem

en

t

▲▲▲

www.help400.es FEBRERO 2008 ServerNEWS 35

dedicado al proceso de repetición del diario como mucho altiempo que tarde en procesar y repetir las 50.000 operacio-nes registradas por diario más recientes. Muchos modelos dehardware modernos pueden pueden efectuar 50.000 de esasoperaciones en un par de minutos si cada acción registradapor diario exige una falta de página adicional y cuatro minu-tos si cada operación repetida afecta a dos sectores distintosdel disco. Por lo tanto, un valor de 50.000 es tolerable para lamayoría de empresas. Puede que incluso sea factible especi-ficar un valor mayor.

Por otro lado, el valor total de recuperación de diario limitala frecuencia de algunas tareas de mantenimiento planifica-das para ejecutarse en segundo plano de forma regular. Elalgoritmo de mantenimiento consiste, grosso modo, en acti-var la tarea de mantenimiento cada vez que la llegada de unconjunto de nuevas entradas de diario iguale al valor resul-tante de dividir el total de recuperación entre el número deobjetos que cambian activamente.

Por ejemplo, si utiliza un total de recuperación de 50.000 ysólo tiene un archivo que experimenta cambios, las tareas demantenimiento en segundo plano se activarán una vez cada50.000 entradas de diario. Si utiliza el mismo total de recu-peración (50.000) pero el trabajo se reparte entre diez archi-vos distintos, cada uno de los cuales cambia activamente, lastareas de mantenimiento ejecutadas en segundo plano esta-rán inactivas durante menos tiempo y habrá que activarlascada 50.000/10 = 5.000 entradas de diario. Si el número deobjetos que cambian activamente es 100, las tareas de man-tenimiento estarán muy ocupadas y estarán inactivas aúnmenos 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, algunosdepartamentos de informática puede que tengan que reducirun poco la frecuencia de sus acciones de mantenimiento. Una

forma de lograr ese objetivo es especifi-car un total de recuperación de diariomás alto. Valores comprendidos entre200.000 y 250.000 parecen adecuadospara 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 losmomentos de mayor actividad del día-para ver cómo les va a las tareas demantenimiento que se ejecutan en se-gundo plano. Debería estar pendientede dos grupos de tareas: JOREC_U yJOREC_D.

Las tareas con una “U” detrás del sig-no de subrayado realizan tareas demantenimiento de parte de diarios de“usuario” (es decir, los diarios que nor-malmente crea el usuario). Las tareascon una “D” tras el signo de subrayado

gestionan el mantenimiento de los diarios “por omisión”(default). Estos son diarios ocultos que crea el propio siste-ma, como los usados para gestionar la protección de vías deacceso gestionada por el sistema (SMAPP).

Para echar una mirada a la actividad de estas tareas, con-sulte la pantalla de actividad del sistema con el mandatoWRKSYSACT (disponible con el paquete de herramientas derendimiento de i5/OS), use F16 para ordenar las actividadesresultantes, especifique la opción 2 (ordenar por E/S) paraque los trabajos que realizan más operaciones de lectura/gra-bación en el disco aparezcan en la parte superior y pulse F15,para que se vean únicamente las tareas del SLIC (Figura 1).

Observe cuánta CPU consumen y, lo que es más importan-te, cuántas operaciones de E/S de disco están generando.Cuanto mayor sea la frecuencia con que tengan que activar-se estas tareas y más ocupadas estén en ese momento, másurgente será proporcionarles algún alivio. Aumentar el totalde recuperación de diario es una forma práctica de hacerlo.

Todo incluidoTanto si tiene necesidad de subir el techo, darse un respiro,poner el diario a dieta, proteger las colas de datos, vigilar losEVI o adoptar un compromiso más amable y afectuoso, en elrelease V5R4 lo encontrará todo. ■

Larry Youngren trabaja en el laboratorio de Rochester de IBM comodiseñador de microcódigo para i5/OS y es jefe del equipo iSeries JournalDevelopment Team.

FIGURA 1Trabajos JOREC_U

Page 36: ServerNEWS -181 (Febrero 2008)

▲▲▲

Pro

gra

maci

ón

y s

iste

mas

36 ServerNEWS FEBRERO 2008 www.help400.es

SQL es ante todo un lenguaje de recuperación ymanipulación de datos, pero a menudo nos gusta-ría añadir cierta lógica de programación a lassentencias de SQL. En el entorno del System i,muchas de las sentencias de SQL especializadas

que manejan tareas de programación pueden describirsegenéricamente como sentencias de control, pero ese nom-bre es, en el mejor de los casos, confuso. A las sentenciasde control a veces se las denomina lenguaje de procedi-mientos almacenados o lenguaje de procedimientos de SQL(ambos abreviados como SPL). Para complicar aún más lascosas, las sentencias de SQL dentro de una sentencia decontrol se conocen oficialmente como sentencias de proce-dimientos de SQL.

Las sentencias de control son casi universalmente válidasdentro de las rutinas de SQL (desencadenantes, funcionesdefinidas por el usuario y procedimientos almacenados escri-tos en SQL). Asimismo, se pueden utilizar algunas senten-cias de control cuando se incorpora SQL en una aplicaciónmediante técnicas como SQL incrustado y JDBC. Por lo ge-neral, las sentencias de control no son válidas en entornos deSQL interactivos como iSQL o iSeries Navigator.

En la Figura 1 se enumeran las sentencias de control deDB2 UDB para System i de la V5R4. Empezaremos explo-rando la sentencia compuesta, una sentencia de control queda a las rutinas de SQL su estructura.

Soporte estructuralUna sentencia compuesta agrupa varias sentencias de SQLencerrándolas entre las cláusulas Begin y End, como puedeverse en la Figura 2. La única sentencia que conforma elcuerpo de una rutina de SQL puede ser una sentencia com-puesta que contenga múltiples sentencias compuestas, ha-ciendo que el límite de una sentencia por rutina sea muchomenos restrictivo de lo que parece.

A medida que el código escrito en SQL se vuelve más com-plejo, descubrirá que las sentencias compuestas facilitan elmantenimiento y la comprensión del código. Para hacer aúnmás fácil la observación de la estructura del código se puedeañadir una etiqueta a la sentencia compuesta (como se ve enel punto C de la Figura 2). La etiqueta de una sentencia com-puesta no afecta a su ejecución.

Por supuesto, ningún lenguaje de programación estaríacompleto sin la posibilidad de definir variables y modificar

sus valores. Así que vamos a ver cómo se puede usar SQLpara tratar estas tareas.

Información, por favorEn una sentencia compuesta pueden incluirse sentenciasDeclare (en el punto A de la Figura 2). Las sentencias Decla-re son vitales para programar con SQL porque permiten de-finir cursores (punteros con los que se pueden recorrer con-juntos de resultados) y variables. Las variables declaradasen una sentencia compuesta son válidas en cualquier puntode la sentencia compuesta en que se definan, así como dentrode cualquier sentencia compuesta anidada.

Además, las sentencias de control pueden utilizar colum-nas de tablas de la base de datos. Según sea el tipo de aplica-ción que se vaya a escribir, es posible tener acceso a más va-riables (por ejemplo, un procedimiento almacenado puederecuperar datos de sus parámetros de entrada y modificarsus parámetros de salida).

Una vez creadas las variables, tal vez tenga que modificarsus valores. Para ello, puede usar una sentencia de controlSet, como la que se puede ver en el punto B de la Figura 2. (Siconsulta la documentación de IBM, no encontrará la senten-cia de control Set; IBM se refiere a Set como “la sentencia deasignación”).

Además de definir variables y modificar sus valores, lamayoría de los programas hacen comparaciones lógicas y uti-lizan los resultados para dirigir el flujo de la aplicación. Mu-chas sentencias de control de la Figura 1 se ocupan de estosaspectos de la lógica de programación y, con frecuencia, lasentencia de control tiene el mismo nombre que su equiva-lente en RPG.

Trazar el rumboEmpecemos la exploración de las posibilidades de usar bu-cles y bifurcaciones en SQL con las sentencias If. Cada sen-tencia If debe incluir una cláusula Then y debe finalizar conEnd If, como se muestra en el punto C de la Figura 3.Opcionalmente, dentro de una sentencia If se puede escribiruna cláusula Else. Las sentencias If pueden anidarse aña-diendo directamente otra sentencia If dentro de la cláusulaThen (punto A de la Figura 3) o añadiendo una cláusula ElseIf (punto B).

La sentencia Case es parecida a If, pero Case especificavarias condiciones, cada una de las cuáles tienen su propia

Amplíe el poder de SQL consentencias de control

Las sentencias de control otorgan a SQL algunas de las característicasde un lenguaje de programación

por Sharon L. Hoffman

Page 37: ServerNEWS -181 (Febrero 2008)

▲▲▲

Pro

gra

mació

n y

sistem

as

www.help400.es FEBRERO 2008 ServerNEWS 37

cláusula When. Las cláusulas Then y Else asociadas definenel proceso que tendrá lugar si las condiciones declaradas enla cláusula When son ciertas (cláusula Then) o falsas (cláu-sula Else).

Si desea que un segmento de código se ejecute repetida-mente (o sea, definir un bucle), las sentencias de control ofre-cen cuatro opciones:

• For define un bucle especificando un cursor para una sen-tencia Select, como en el punto A de la Figura 4. El cuerpodel bucle For se ejecuta para todas las filas del conjunto deresultados y está delimitado por Do y End For (en el puntoB).

• Loop repite un grupo de instrucciones pero no incluye unmecanismo para determinar cuándo salir del bucle. Paraevitar un bucle infinito, debe incluirse una salida explícita.

• Repeat es una construcción de tipo Do Until. El bucle seejecutará al menos una vez. Una cláusula Until indica lacondición que controla el bucle y End Repeat marca el finaldel bucle.

• While es una construcción de tipo Do While. El bucle nun-ca se ejecutará si la condición especificada es falsa la pri-mera vez que se recorre el bucle. Do y End While señalanlos límites del bucle.

A veces, deseará salir de un bucle antes de que se hayacumplido la condición que define la finalización del bucle. Enestos casos, puede usar Iterate o Leave para finalizar el pro-ceso del bucle. La diferencia entre Leave e Iterate es que elprimero sale sin condiciones mientras que Iterate empiezaotro bucle mientra las condiciones que controlan la iteraciónsigan siendo verdaderas. En cualquier caso, se puede contro-lar de cuántos niveles de anidamiento han de salir Leave oIterate especificando el nombre de etiqueta asociado con lassentencias de control del bucle (es decir, For, Loop, Repeat oWhile). Si no especifica una de las etiquetas asociadas conlas sentencias de control, Iterate pasará el control al iniciodel bucle actual y Leave continuará el proceso con la senten-cia que sigue tras el final del bucle actual.

Sentencia de control○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

sentencia compuesta(Begin ... End)○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

sentencia de asignación(Set)○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Call○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Case

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

For

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Get Diagnostics

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Goto○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

If

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Iterate

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Leave○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Loop

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Repeat

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Resignal

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Return

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

Signal

○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ ○

While

FIGURA 1Sentencias de control del release V5R4

Finalidad

Definir un grupo de sentencias de SQLrelacionadas

Modificar el valor de una variable o parámetro

Llamar a un procedimiento almacenado

Definir varias condiciones y el código quehay que ejecutar cuando cada condición seaverdadera

Definir un cursor y un bucle a través de unconjunto de resultados

Recuperar información sobre la ejecución dela sentencia anterior

Saltar a una sentencia especificada

Especificar una comparación lógica, elcódigo que se ejecutará si la condición esverdadera y, opcionalmente, el código quese ejecutará si la condición es falsa

Saltar a la parte superior de la estructura debucle indicada y continuar el proceso

Salir de la estructura de bucle indicada

Definir un grupo de sentencias que seejecutará varias veces

Definir un grupo de sentencia que seejecutará hasta que se cumpla unacondición

Enviar códigos de error e informaciónrelacionada con el código de llamada; seutiliza dentro de un manejador de condicio-nes de excepción

Salir de la función definida por el usuario odel procedimiento almacenado actuales y,opcionalmente, enviar un valor de retorno alcomponente que ha hecho la llamada

Enviar códigos de error e informaciónrelacionada con el código de llamada; seutiliza fuera de un manejador de condicionesde excepción

Definir un grupo de sentencias que seguiráejecutándose hasta que la condiciónindicada ya no sea verdadera

Para encontrar los diagramas sintácticos de las sentencias de controlde SQL en el InfoCenter del release V5R4 del System i, seleccioneBase de datos|Referencia|Referencia de SQL|SQL control statements

FIGURA 2Variables y sentencias compuestas

AB

C

CREATE PROCEDURE SHOFFMAND.CTRLSTMTFIG02 (IN CUTOFFAMT NUMERIC(5,0)) LANGUAGE SQL SPECIFIC SHOFFMAND.CTRLSTMTFIG02

BEGIN

DECLARE NEWSTATUS CHAR ( 1 ); SET NEWSTATUS = ‘Z’;

INNERCOMPOUNDSTMT: BEGIN UPDATE SHOFFMAND.INVOICE SET INVSTAT = NEWSTATUS WHERE INVAMT < CUTOFFAMT; END INNERCOMPOUNDSTMT;

END

Page 38: ServerNEWS -181 (Febrero 2008)

▲▲▲

Pro

gra

maci

ón

y s

iste

mas

38 ServerNEWS FEBRERO 2008 www.help400.es

■ AMPLÍE EL PODER DE SQL CON SENTENCIAS DE CONTROL

La sentencia de control final para redirigir el flujode una aplicación es Goto, que permite saltar directa-mente a cualquier etiqueta especificada. Sin embargo,como en cualquier otro lenguaje de programación, eluso de Goto en SQL está mal visto.

Para completar nuestra explicación sobre las sen-tencias de control que influyen en el flujo de la aplica-ción, hay dos –Call y Return– que permiten enlazarlos componentes de código escritos en SQL. Call pue-de usarse para llamar a un procedimiento almacena-do de una rutina de SQL o desde aplicaciones escritasen otros lenguajes (por ejemplo, mediante SQL incrus-tado o JDBC), así como desde algunas interfaces deSQL interactivas (como iSeries Navigator).

La sentencia de control Return es la inversa de Call:las sentencias Return se incluyen dentro de procedi-mientos almacenados de SQL o funciones definidas porel usuario para salir de la rutina. Cuando se ejecutauna sentencia Return en una función definida por elusuario, opcionalmente puede incluir un resultado (esdecir, un valor de retorno) que se le pasará al códigoque la llama. Para una función escalar definida por elusuario, el valor de retorno es un único elemento deinformación; en una función de tabla definida por elusuario, la sentencia Return devuelve todo el conjun-to de resultados al que efectúa la llamada.

Los procedimientos almacenados usan parámetrosen vez de valores de retorno para devolver la información alque efectúa la llamada, pero se puede incluir una sentenciaReturn en un procedimiento almacenado para establecer unvalor entero que indique el estado (por ejemplo, 0 = finaliza-ción correcta). La sentencia de control Return no es válida enlos desencadenantes.

Las sentencias de control que hemos analizado hasta aho-ra dan a SQL muchas de las características de un lenguajede programación. No obstante, falta una cuestión crucial paracualquier aplicación: el manejo de errores. Para ofrecer unmanejo de errores robusto para las rutinas de SQL, se pue-den usar las sentencias de control Get Diagnostics, Resignaly Signal. Además, puede utilizarse una sentencia compuestapara definir uno o varios manejadores de condiciones de ex-cepción, que transfieran el control al segmento de código apro-piado cuando se produzca un error.

Proceda con cautelaSe puede usar SQL para cualquier cosa, desde hacer compa-raciones complejas hasta realizar cálculos aritméticos, peroeso no significa que sea la mejor herramienta para hacer esostrabajos. Por ejemplo, si desea recuperar todos los pedidos delos clientes de Andalucía que han comprado un chisme mora-do en los tres últimos años, SQL es elegante y eficaz. Sinembargo, si quiere calcular los precios de venta al público apartir de un complejo conjunto de criterios como el historialde pedidos del cliente, su nivel de solvencia y los otros artícu-los del pedido, normalmente lo mejor será utilizar un lengua-je de programación como RPG o Cobol.

A pesar de esta advertencia, añadir algunas posibilidadesde programación al código escrito en SQL permite sacar aúnmás partido a los puntos fuertes de SQL y facilita su integra-ción con el código escrito en otros lenguajes. Cuanto más useSQL, más importancia adquirirán las sentencias de controlen su caja de herramientas de programación de SQL. ■

Sharon L. Hoffman es una veterana redactora técnica de ServerNEWS.Empezó a trabajar con sistemas midrange de IBM en 1981 y de su currículocabe destacar su dilatada experiencia en el desarrollo de aplicaciones, así comosu dedicación a la formación técnica.

FIGURA 4Bucle FOR

A

B

CREATE PROCEDURE SHOFFMAND.CTRLSTMTFIG04 (IN SELSTATUS CHARACTER(1), IN SELSTATE CHARACTER(2)) LANGUAGE SQL SPECIFIC SHOFFMAND.CTRLSTMTFIG04

BEGIN

FOR RESULTROW AS CUSCURSOR CURSOR FOR SELECT * FROM SHOFFMAND.CUSTOMER WHERE CUSSTATE = SELSTATE

DO UPDATE SHOFFMAND.INVOICE SET INVSTAT = SELSTATUS WHERE INVCUST = CUSNUMB; END FOR;

END

FIGURA 3Sentencias IF

A

B

C

CREATE PROCEDURE SHOFFMAND.CTRLSTMTFIG03 (IN SELTYPE CHARACTER(1), IN SELSTAT CHARACTER(1)) LANGUAGE SQL SPECIFIC SHOFFMAND.CTRLSTMTFIG03

BEGIN IF SELTYPE = ‘C’ THEN

IF SELSTAT = ‘$’ THEN UPDATE SHOFFMAND.INVOICE SET INVAMT = 75.00; ELSE UPDATE SHOFFMAND.INVOICE SET INVSTAT = ‘C’ WHERE INVSTAT = SELSTAT; END IF;

ELSE IF SELTYPE = ‘H’ THEN UPDATE SHOFFMAND.INVHIST SET HSTISTAT = ‘H’ WHERE HSTISTAT = SELSTAT; ELSE UPDATE SHOFFMAND.INVOICE SET INVSTAT = ‘C’ WHERE INVSTAT = SELSTAT; UPDATE SHOFFMAND.INVHIST SET HSTISTAT = ‘H’ WHERE HSTISTAT = SELSTAT; END IF;

END IF;

END

Page 39: ServerNEWS -181 (Febrero 2008)

▲▲▲

Pro

gra

mació

n y

sistem

as

www.help400.es FEBRERO 2008 ServerNEWS 39

<Notas del traductor>

1. No sé si lo copiarás a tu web, perocreo que es la primera vez que se indica un

Page 40: ServerNEWS -181 (Febrero 2008)

40 ServerNEWS FEBRERO 2008 www.help400.es

GUIA

Page 41: ServerNEWS -181 (Febrero 2008)

www.help400.es FEBRERO 2008 ServerNEWS 41

GUIA

Pere IV 78-82, 7º 3ª08005 - Barcelona (Spain)

T. 34 934 854 427 Fax 34 934 850 168

Mantenimiento / Alquiler y

Brokerage / Venta / Redes

Backup Center

MANTENIMIENTO Y BROKERAGEINFORMÁTICO, S.L.

P.T.A. Edificio CENTRO EMPRESAS 29590 Málaga

Page 42: ServerNEWS -181 (Febrero 2008)

42 ServerNEWS FEBRERO 2008 www.help400.es

Como sabes, esta información es estrictamente confidencial. Aunque nosotrosneguemos haberlo dicho o escrito, te autorizo a que obres en consecuencia

confidencial por Carlos Bell

INDICE DE ANUNCIANTES FEBRERO 2008

Empresa Página

AMERICAN TOP TOOLS ..................... Interior portada

AMERICAN TOP TOOLS ....... Interior contraportada

CACOVAI ................................................................................ 23

GUÍA ................................................................................. 40, 41

IBM ..................................................................Contraportada

MICROSOFT ........................................................................... 27

SOFTWARE GREENHOUSE .............................................. 15

SUSCRIPCION ServerNEWS ............................................ 35

TANGO/04 ................................................................................ 9

VISION SOLUTIONS ............................................................ 15

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 delactual System i, quizás la que más destaque sea la interfase de máquina (MI, Machineinterface) 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 elOS 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 queincluso 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 afinales de los 70 del siglo pasado, IBM sólo ha cambiado la interfase de máquina endos ocasiones. La primera, cuando en junio de 1988 se pasó del S/38 con sistemaoperativo CPF al nuevo AS/400 con OS/400 V1R1 y, la segunda en 1995, durante elcambio de tecnología CISC a RISC cuando la V3R1 del OS/400 se actualizó a laV3R6 para pasar de un sistema de direccionamiento de 48 a 64 bits y para utilizarun nuevo conjunto de instrucciones de hardware. En ambos casos, la tecnología delprocesador cambió tan radicalmente que esta interfase de máquina –la máquinavirtual 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 quepuedan ejecutarse en el nuevo OS y el hardware asociado. La buena noticia es que IBM está preparando la transición aV6R1 mucho mejor de lo que fue cambiar de los AS400 basados en CISC a los AS400 basados en RISC PowerPC. En estaocasión IBM ha dedicado un gran esfuerzo para automatizar el proceso de conversión a V6R1. Y lo más importante, parafacilitar la transición, IBM ha publicado un informe técnico, titulado “Conversión de programas i5/OS: Prepárese para laV6R1” (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 unprogramador 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 queel programador cree que está haciendo. Lo que realmente sucede es que los programas se compilan en un estado intermedioa nivel de MI, creando una “plantilla” conocida también como observabilidad. Estas plantillas se crean para un procesadory un conjunto de instrucciones de hardware específicos. La primera vez que se ejecuta la aplicación es cuando a partir dedichas plantillas el MI genera el código máquina de los objetos compilados. Pero a principios de los 90, como los clientesdesconocían este proceso, se solía suprimir la observabilidad de los programas para ganar espacio en disco. En la transiciónde CISC a RISC el problema fue que para muchos clientes, las aplicaciones eran demasiado viejas y en algunos casos notenían su código fuente. Así que el MI no podía recompilar los objetos desde el nivel intermedio y, al no disponer de losfuentes, los compiladores tampoco podían regenerar las plantillas para el nuevo OS y el nuevo hardware.

Volviendo al presente, IBM está siendo realmente clara. Eincluso podríamos decir que lo está llevando con pinzas. Porejemplo, cualquier programa compilado de V5R1 en adelantepodrá 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-tes que tengan aplicaciones compiladas para la V4R5 oanteriores deberán comprobar que esas plantillas todavía es-tán en sus máquinas antes de cambiar a la V6R1.

IBM ha creado el mandato ANZOBJCVN (Analyze ObjectConversion), que estará disponible a través de PTF’s para laV5R3 y V5R4 de i5/OS, para ver qué programas y ficherosnecesitan ser convertidos como parte del cambio a la V6R1,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,pero no en modelos iSeries anteriores. ■

Page 43: ServerNEWS -181 (Febrero 2008)
Page 44: ServerNEWS -181 (Febrero 2008)