183
editorial
El Proyecto ECLipz de IBM
S
egún indican sus siglas, el Proyecto ECLipz de IBM no es un proyecto tan secreto como parece: “Enhanced Core Logic for iSeries, pSeries and zSeries”. Es una iniciativa de IBM para lograr fusionar sus líneas de servidores iSeries, pSeries y zSeries en un único conjunto de sistemas con software y hardware común. Con la aparición de los POWER6 se ha vuelto a hablar mucho de este proyecto, pero es un proyecto que está en marcha desde finales de 1991, cuando IBM y Apple, junto con Motorola, se aliaron para crear un estándar de ordenadores basados en la arquitectura RISC, los PowerPC, cuyos primeros equipos aparecieron en 1994. Los resultados ya son visibles. Los servidores System p y System i, bajo la nueva marca de IBM, los servidores Power Systems, ya no sólo comparten el hardware sino también la denominación y los sistemas operativos. De hecho, Linux y AIX ya podían ejecutarse en las particiones lógicas de un i5 y también i5/OS podía ejecutarse en una partición lógica de un p5 con la misma facilidad que AIX y Linux. Sin embargo, no debemos pasar por alto que el particionado lógico y el Hypervisor que hacen que eso sea posible, desde hace décadas ha sido un componente clave de los mainframes de IBM, ahora llamados System z. Cuando se considera desde este punto de vista, ECLipz es más una estrategia que un proyecto.
Imagen de la portada: Mike Friehauf Suscripción: Anual (10 números al año, no en Julio y Agosto). España: 96 euros (IVA incluido). Extranjero: 180 $ USA (incluido el envío por Correo Aéreo). Se distribuye a final de mes. © Publicaciones HELP400, S.L. Se prohibe la reproducción total o parcial de los artículos aparecidos en este número sin la autorización expresa por escrito de la empresa editora, titular del Copyright. Todos los derechos reservados en cualquier idioma. ServerNEWS es una publicación independiente de grupos de usuarios y/o de distribuidores de marcas. De las ideas expuestas en los artículos firmados son responsables sus autores. Corresponde al lector el asegurar que las noticias, técnicas y procedimientos descritos son adecuados para su instalación. Publicaciones HELP400 S.L. no asume ninguna garantía ni implícita ni explicitamente. La empresa editora no se responsabiliza de la asiduidad en la distribución gratuita a las empresas españolas equipadas con S/3X o AS/400. IBM y AS/400 son marcas registradas por International Business Machines.
www.help400.es
Con la potencia y prestaciones de los POWER 6, IBM puede estar posicionándose para alcanzar un nuevo hito en esta estrategia. Según algunos comentaristas de la industria, IBM podría estar preparando algún tipo de emulación de zOS a través del microcódigo incluido en un chip que simularía las instrucciones CISC del mainframe utilizando como base las instrucciones RISC. Si fuera así, POWER 6 sería el primer procesador capaz de dar soporte a las tres líneas de servidores. Tal vez sólo sean especulaciones, pero la estrategia de IBM parece lógica. Como se desprende del artículo “Power Systems, la nueva fórmula de IBM” hay una serie de razones comerciales y empresariales que obligan a los distintos fabricantes a llevar a cabo esta convergencia de productos y marcas, les guste o no a sus clientes. En nuestro caso, afortunadamente, esos cambios no afectan a las inversiones realizadas en el desarrollo de aplicaciones, aunque algunas cuenten con más de veinte años de existencia. No todos los entornos gozan de esta ventaja, aunque ahora el nombre asignado al nuestro por IBM no nos guste. De hecho, ¿qué importa un nombre? Lo que realmente importa es lo que éste esconde. Y en el caso del AS/400, es mucho: una evolución tecnológica constante que siempre ha sabido respetar nuestro trabajo.
Antonio Montía
[email protected] ABRIL 2008 ServerNEWS 3
sumario ANTES HELP400, LA REVISTA PARA EL PROFESIONAL DE LOS S/3X Y AS/400
equipo editorial
en portada
Director: Antonio Montía Redacción: Carlos Bell, Alberto C. Blanch, Equipo internacional de iSeries NEWS Colaboradores habituales: Jaime Gustavo Estany, José Mª Martín, Lluís Peiret Traducciones: Pere J. Francisco Brumós
10
La JVM de 32 bits para el i por Dan Darnell Con la JVM de 32 bits de la V5R4, bautizada como IBM Technology for JVM, la mayoría de clientes ahora pueden ejecutar WAS (WebSphere Application Server) en el System i sin la enorme cantidad de memoria que necesita la máquina virtual de Java de 64 bits.
producción Realización: Media Limits S.L. Maquetación: Ramiro Esteve Coll Impresión: G2B gràfic S.L. Distribución: Unipost S.A.
administración Suscripciones : Nuria Navarro Publicidad: Tel. 34- 932 310 049 Fax: 34-932 310 309 Servicio HelpNet: www.help400.es
14
Power Systems, la nueva fórmula de IBM por Carlos Bell Dada la larga etapa de confluencia de las arquitecturas del AS/400 y RS/6000, el cambio de nombre de las recién fusionadas líneas de productos System i y System p por los de una única marca, Power Systems, tiene mucho sentido; sin embargo, el cambio de nombre de i5/OS por “i” parece, a simple vista, una decisión errónea.
edita PUBLICACIONES
Deposito legal: B-2757-90 I.S.S.N. 1698-4501 APTDO. DE CORREOS 8003 - 08080 Barcelona Gran Vía Corts Catalanes, 715, Entlo. 3ª 08013 - Barcelona Tel.: 932 310 049 E-mail:
[email protected] Director General: Alberto C. Blanch Llangostera Publicado con la participación de - iSeries NEWS www.pentontech.com Group Publisher/Editor: Wayne Madden Group Editorial Director: Dale Agger Penton Technology Media Darrell C. Denny, President Penton Media, Inc. David Nussbaum, Chief Executive Officer
LATINOAMERICA
distribuidores Belice, El Salvador, Guatemala y Honduras VIACOMP 6ª Avenida. "A" 2-83 Zona 10 Ciudad de Guatemala, GUATEMALA 01010 Telf. 502-360-0358 y 360-0350 Fax 502-332-33694 email:
[email protected] www.viacomp.net Perú COMMON PERU Bajada Balta 131, Of. 10, 2º Piso Miraflores Lima 18, PERU Telf. y Fax: 46 31 32 Paraguay ANGEL LIERNUR E HIJO P.O. BOX 2448 ASUNCION - PARAGUAY
[email protected] e-mail:
[email protected]
4 ServerNEWS ABRIL 2008
opinión
8
Reflexiones en torno al rendimiento por Rick Turner El sector informático tiene la sensación de que para mejorar el rendimiento del ordenador siempre se necesita “más potencia”. El autor, un experto consultor en mejorar el rendimiento desde los tiempos del S/38, nos aporta su visión profesional sobre el rendimiento, un concepto que varía según las percepciones de cada uno. www.help400.es
Nº 183 ABRIL 2008
www.help400.es
programación y sistemas
18
iAMP: desarrollo web de código libre en i5/OS por Erwin Earley Siguiendo los pasos descritos en el artículo, en muy poco tiempo podrá disponer en su sistema de un entorno de desarrollo libre como el denominado LAMP (Linux, servidor web Apache, base de datos MySQL y lenguaje PHP) pero con i5/OS como sistema operativo.
management
22
¿Necesita ayuda con los índices? Llame al “Asesor” por Jim Flanagan Si busca algo para ayudarle a afinar el rendimiento de las aplicaciones de la base de datos basadas en SQL sin tener que depender de grandes herramientas de supervisión, llame al Asesor de índices presentado en V5R4. Sus valoraciones le permitirán mejorar la estrategia de su definición.
28
El orgullo precede a la compilación por Roger Pence El código de muchos programas duele a la vista... ¿Qué podríamos hacer para que los programadores adquirieran mejores hábitos de programación? Puede que en este texto hallemos la respuesta.
trucos y técnicas
30
Facilidades para encontrar ayuda sobre System i por varios autores Además, cómo habilitar la cuenta de administrador en Vista; como calcular el nombre de un área de datos durante la ejecución; y como se pueden identificar archivos en spool con *SELECT.
HELP400 Suplemento Técnico i
forum.help400 F orum.help400 es una lista de correos puesta a disposición de los lectores de ServerNEWS en la que cada día, entre todos los participantes, se solucionan numerosos problemas. Hallará más información en http://www.help400.es/forum.htm
1
Estructuras, tipos de datos y notificación de errores
8
Prepárese para la V6R1
SECCIONES HABITUALES
Por Debbie Landon La V6R1 de i5/OS o “IBM i 6.1” si prefiere la nueva denominación del sistema operativo, está ahí y, más pronto o más tarde, deberemos afrontar el cambio. Siga estos siete pasos para convertir los programas y mejorar su rendimiento.
3 6
Editorial Novedades
40 42
Guia Confidencial
Por Bruce Vining Prosiguiendo con la serie sobre “Las API estándar del sector para el programador de CL”, en este segundo artículo aprenderemos a manejar estructuras, tipos de datos del usuario, notificaciones de errores y constantes.
www.help400.es
ABRIL 2008 ServerNEWS 5 ABRIL 2008 ServerNEWS 5
novedades ■ Casbega amplía su estrategia SOA con webMethods BPMS de Software AG
Los servidores Power Systems de IBM BM ha presentado Power Systems, una nueva plataforma fruto de la unión de las hasta ahora divisiones System i y System p, con un esquema de precios más simple, un mayor número de aplicaciones y menores costes de administración. La Compañía presenta además nuevos programas para que socios de negocio e ISVs puedan sacar el mejor partido a esta nueva plataforma. Los nuevos servidores Power Systems de IBM incorporan los procesadores POWER6 y permiten ejecutar UNIX, Linux y aplicaciones “i” (antes, i5/OS) de forma simultánea en un único sistema. Cuentan también con tecnología “POWER6 EnergyScale” que ofrece funciones avanzadas para el control del gasto energético, además de la tecnología de virtualización PowerVM, que permite crear hasta 80 particiones virtuales en un único sistema de gama baja, optimizando la utilización de los servidores. “La nueva plataforma IBM Power Systems es la mejor opción para que nuestros clientes obtengan valor y protejan su inversión. Esta nueva plataforma es fruto de la unión de las unidades de negocio System i y System p, que en los últimos años cada vez tenían más sinergias”, afirma Ross Mauri, director mundial de la división de Power Systems de IBM. “Esta nueva generación de sistemas Power, que da sus primeros frutos en los nuevos servidores que presentamos hoy, permitirá a nuestros clientes optimizar sus infraestructuras con la mejor tecnología del mercado”. Los primeros servidores Power Systems presentados por IBM y destinados a la pequeña y mediana empresa son los siguientes:
I
• i Edition Express para BladeCenter S es una alternativa a los servidores AS/400, iSeries y System i 515, 520 y 525, tanto por su precio como por la simplificación de la integración de las aplicaciones “i” con los servidores x86. Con precios a partir de la mitad de lo que cuestan configuraciones no blade con la misma capacidad de procesamiento, además de tres años de garantía, esta máquina resulta especialmente atractiva para clientes de “i”, socios de negocio y proveedores de soluciones independientes (ISV). • El IBM Power 520 Express es un servidor asequible para empresas que ejecutan aplicaciones y bases de datos distribuidas. • El IBM Power 550 Express demuestra un extraordinario rendimiento para un servidor de bases de datos de tamaño medio, ofreciendo una excelente capacidad y una disponibilidad continuada de las aplicaciones. Estos nuevos servidores están disponibles en versiones “i”, AIX o Linux y el paquete incluye el servidor, componentes y sistema operativo. También se puede elegir un combinado a la carta que incluya los diversos sistemas operativos en una sola plataforma, para mayor flexibilidad. Con la actualización de los servidores POWER5 y POWER5+, los clientes de System i podrán migrar fácilmente sus aplicaciones de misión crítica a los nuevos sistemas, con las mismas aplicaciones y el mismo sistema operativo que empleaban hasta ahora. El sistema operativo integrado i5/OS de IBM pasará a llamarse “i”. Junto a estos modelos, IBM ha anunciado la pronta disponibilidad de nuevos servidores para entornos críticos. Por un lado, el Power 595 es un servidor de 64 núcleos diseñado para solucionar las preocupaciones de energía, espacio físico y gestión de sistemas de las organizaciones, que integra un ancho de banda de 1,3 TB/s, hasta 254 particiones virtuales y 4TB de memoria. Por otro lado, IBM ha presentado el Power 575, un superordenador refrigerado por un revolucionario sistema de agua, que permite reducir el consumo energético de un centro de datos en un 40%, y cuenta con 448 núcleos de procesamiento, que lo hacen apto para tareas de gran rendimiento. Ambos sistemas están basados en el procesador POWER6 y está previsto que estén disponibles en mayo. Hallará más detalles sobre el anuncio en el artículo “Power Systems, la nueva fórmula de IBM” publicado en este mismo número. Para más información, www-03.ibm.com/systems/es/i/
6 ServerNEWS ABRIL 2008
Casbega (Castellana de Bebidas Gaseosas S.A.) empresa de capital español dedicada a la fabricación, comercialización y distribución de bebidas del grupo Coca Cola Company en España desde 1952, da un paso más en su estrategia basada en SOA iniciada hace casi dos años con la instalación de la herramienta de gestión de procesos de negocio webMethods BPMS Quick Start Edition 7.1 de Software AG. Casbega acometió un proyecto de optimización de su entorno basado en iSeries (AS/400) y pSeries en 2006 a través de la adquisición de webMethods Integration Platform que le permitió construir una arquitectura orientada a servicios (SOA), haciendo posible la interoperabilidad entre los diversos sistemas existentes en la compañía, SAP, Sistema de Gestión de Almacenes por radiofrecuencia, etc. Gracias a la flexibilidad y escalabilidad de webMethods Integration Platform, emprenderá su primera aproximación a la gestión de procesos de negocio mediante la herramienta BPM/BAM (Business Process Management/Business Activity Monitoring) de Software AG, webMethods BPMS Quick Start Edition 7.1, con una fase de implantación de unos tres meses. “Nuestro objetivo con la implantación de esta herramienta de BPM es saber realmente lo que está sucediendo en nuestra empresa, es decir, conocer bien los procesos que se llevan a cabo, en un primer momento, en el área financiera, para poder optimizarlos lo más rápidamente posible. Al basarse en SOA permitirá, además, introducir cambios e ir creciendo en un futuro de una forma más sencilla y a medida que lo requieran las necesidades del negocio. Asimismo, calculamos que en la gestión de una factura, por ejemplo, nos permitirá agilizar el proceso un 20% y reducir los costes un 10%”, señaló Javier Goyeneche, director de Sistemas de Casbega. Para más información, Telf.: 918.079.400 www.softwareag.es www.help400.es
■ Cognos y SPSS se alían para integrar las analíticas predictivas
■ EMC adquirirá próximamente IOMEGA
■ Sowre Consulting, ganador del IBM Beacon Award 2008
■ Galicia: Seminarios de Continuidad de Negocios
SPSS Inc., proveedor mundial líder de software de Analíticas Predictivas, y COGNOS, una compañía IBM, líder en soluciones de Business Intelligence y para la gestión del rendimiento corporativo, han anunciado una alianza de software complementario para ofrecer la integración de las tecnologías IBM Cognos 8 BI y SPSS Predictive Analytics. Los clientes de Cognos pueden extender fácilmente el valor de los resultados de las analíticas predictivas a los responsables de la toma de decisiones a lo largo de la empresa, para identificar, evaluar con rapidez y perseguir con fiabilidad las nuevas oportunidades que ofrece el mercado. Como parte del acuerdo, SPSS y Cognos emprenderán planes comerciales conjuntos con un énfasis especial en el suministro de las analíticas predictivas para áreas como la gestión de riesgos en los servicios financieros y seguros, la eficacia de las campañas y la colocación de productos en el retail y la fabricación, y la eficacia de las ventas para el sector de ciencias de la salud. La integración con la tecnología SPSS Predictive Analytics ampliará las potentes soluciones de rendimiento de Cognos y ayudará a las empresas a anticiparse y responder a los cambios en las condiciones del mercado, los riesgos y los comportamientos de los clientes. “Nuestros clientes operan en entornos reales en los que una profunda comprensión y actuación sobre la información procedente de sus datos acumulados puede suponer una ventaja competitiva. El éxito exige la combinación de tecnología líder y experiencia específica”, destaca Mel Zeledom, vicepresidente senior de alianzas globales en Cognos. Para más información, Telf.: 914.952.103
EMC Corporation, líder mundial en soluciones de infraestructuras de información, y la Corporación Iomega, líder global en almacenamiento y protección de datos para consumidores y pequeñas empresas, han anunciado un acuerdo definitivo para que EMC adquiera la empresa establecida en San Diego, Iomega, en una oferta de adquisición de aproximadamente 213 millones de dólares. La adición de los productos, la marca, el curso en el mercado y la experiencia en el sector de Iomega mejorará el alcance y el enfoque de EMC en los mercados del consumidor y de las pequeñas empresas, de gran crecimiento. El objetivo de EMC es iniciar la oferta pública de adquisición en las próximas dos semanas, esperando el cierre de la OPA en el segundo trimestre de 2008, según las condiciones habituales de cierre y aprobaciones normativas. No se espera que la adquisición tenga ningún efecto material en los resultados financieros de EMC del ejercicio fiscal 2008. Joe Tucci, presidente y director ejecutivo de EMC, dijo: “Iomega tendrá un papel clave en la estrategia de EMC para expandir nuestra capacidad de gestión y almacenamiento de la información, introduciéndonos más en los mercados en auge del consumidor y las pequeñas empresas. Iomega y EMC constituyen una poderosa combinación que a largo plazo beneficiará a sus consumidores mediante la protección, seguridad y gestión simplificada de su información, cada vez mayor”. “Iomega podrá aprovechar al máximo los valiosos activos de EMC para desarrollar nuestra empresa de forma global” comentó Jonathan Huberman, director ejecutivo de Iomega . Para más información, Telf.: 914.103.800
Sowre Consulting España ha sido seleccionado como ganador del Premio “Regional Consultant and Systems Integrator – Outstanding Integrated Solution – Europe, Middle East, and Africa” en la edición anual IBM Beacon Award 2008. IBM selecciona la solución iBPM de Sowre para honrar con este premio a unos de sus partners de negocio por su ingenio, innovación, satisfacción del cliente y los logros destacados al proporcionar soluciones de negocio. iBPM y su integración con arquitectura SOA ayuda a los clientes a definir los procesos a través de una herramienta visual fácil e intuitiva. “Sowre Consulting ha sido seleccionado como ganador del IBM Beacon Award gracias a su excelencia implementando una solución innovadora e integrada permitida por “IBM On demand Business Solutions”, según Ravi Marwaha, Director General, IBM Global Business Partners. “Ayudando a las compañías emergentes a convertirse en un on demand business, Sowre Consulting les está permitiendo responder mejor y adaptarse a las condiciones del mercado y mejorar su segmento de mercado” Para más información, www.sowre.es
En colaboración con sus partners SISA, DST y DESADI 10, Software Greenhouse presentará tres seminarios sobre la problemática de Continuidad de Negocios y las soluciones disponibles. Continuidad de Negocios, que abarca los Planes de Recuperación de Desastres y Alta Disponibilidad, tiene por objetivo reducir o eliminar todo tipo de interrupciones del funcionamiento normal de las aplicaciones informáticas de la empresa y proteger los datos contra eventuales pérdidas. Las reuniones tendrán lugar el día 26 de Mayo en Santiago de Compostela, 28 de Mayo en la Coruña y 29 de Mayo en Vigo. La reunión de Santiago de Compostela será patrocinada por la “Asociación de empresarios del polígono del Tambre” y será dirigida a ejecutivos no informáticos de las empresas, mientras que los seminarios de La Coruña y Vigo se orientarán principalmente a los Directores de TI y Técnicos de Sistemas. Las agendas definitivas de los seminarios serán publicadas por los distintos patrocinadores a partir del 5 de Mayo de 2008 y cada
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 darla a conocer a todos nuestros lectores. Puede enviar sus notas de prensa a Ser verNEWS 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 en formato electrónico. www.help400.es
uno de ellos tramitará las inscripciones de los participantes. Para más información, Telf.: 932.531.650 www.swgreenhouse.com
Una ocasión única erverNEWS y System iNetwork le proponen participar en el 2008 IT Leaders Forum que tendrá lugar en Denver, Colorado (EE.UU.) de los días 20 al 23 de julio, en las mágníficas instalaciones del Inverness Hotel and Conference Center. Únase a los líderes en un evento diferente a cualquier otro del mercado, centrado en la estrategía, toma de decisiones y el valor de las TI en su negocio. Esta conferencia ejecutiva incluye seminarios en profundidad de Gatner, IBM, System iNEWS... ¡y mucho más! Para más información, incluido agenda, precios y perfil de los ponentes, acceda a www2.systeminetwork.com/itleadersforum/
S
ABRIL 2008 ServerNEWS 7
opinión
por Rick Turner
Reflexiones en torno al rendimiento
E
n el sector informático se tiene la sensación de que siempre hay que disponer “de más rendimiento”, que “a menudo se adquiere en mayor cantidad... de la necesaria” y que “se pierde muchísimo tiempo... en obtener... y usar el rendimiento”. Para que el lector tenga otra perspectiva, me gustaría ofrecer mi humilde opinión sobre lo que he ido observando a lo largo de un cuarto de siglo como consultor y analista del rendimiento de las plataformas S/38, AS/400, iSeries y System i. Al aportar algo de luz sobre lo que significa el término “rendimiento de un ordenador” para distintas personas, pretendo dar a los proveedores de servicio y a los clientes una idea más precisa de lo que algunos bien podrían pasar por alto en una conversación sobre el rendimiento de los ordenadores: principalmente, definir qué es y cómo varía su definición dependiendo del punto de vista de cada uno.
¿Qué se entiende por rendimiento? Hay varias formas de considerar el rendimiento. Se puede definir a partir de las especificaciones del hardware, las expectativas del usuario y los requisitos de funcionamiento. Las especificaciones del hardware son “valores” inequívocos, como por ejemplo: • Para la CPU: la frecuencia del chip, el número de procesadores, tamaño de las cachés de la CPU, ancho de banda en operaciones Fetch/Store de y hacia la memoria principal, paralelismo de los procesadores y la tecnología usada • Para el almacenamiento principal: la cantidad, la velocidad, el ancho de banda de los buses de acceso a los datos y la arquitectura (por ejemplo, el tipo de comprobación de paridad o de protección de marco de página) • Para el disco: el número de brazos, la cantidad de almacenamiento, el tiempo de latencia de rotación, el esquema de grabación de datos y los esquemas de comprobación, grabación y recuperación de errores de disco • Para las comunicaciones: velocidad de la línea, tamaño de los paquetes y capacidad de recuperación ante errores Lo más probable es que los usuarios relacionen el rendimiento con sus objetivos y prioridades de funcionamiento individuales. Minimizar el tiempo de respuesta suele ser la cuestión a la que dan más importancia. Cada transacción que llega es la más importante y se ha de acabar cuanto antes. Puede que también les preocupe la capacidad de procesamiento. El sistema debe responder lo bastante rápido para que cada usuario pueda realizar una determinada cantidad de trabajo en un tiempo dado. También puede ser importante una capacidad de proceso por lotes rápida, especialmente si hay procesos 8 ServerNEWS ABRIL 2008
que dependen del tiempo al final de la jornada laboral. Puede que otro requisito sea minimizar el tiempo de ejecución de un trabajo individual. De forma parecida a la necesidad de que el tiempo de respuesta interactivo sea rápido, es un intento de asignar a cada trabajo todos los recursos que necesite y evitar que otros trabajos compitan por ellos. Los responsables de adquirir sistemas, de instalarlos y mantenerlos en funcionamiento puede que lo vean de una forma distinta. Seguramente estarán más preocupados por maximizar el uso de los recursos: hacer que la máquina trabaje al 100% durante todo el tiempo; de lo contrario, se están derrochando recursos y dinero (¿le suena?). Otra de sus preocupaciones es la de garantizar una capacidad de proceso sobrante. ¿Ocasionalmente se producen picos en la demanda de carga? ¿Necesita determinado nivel de capacidad de procesamiento y tiempo de respuesta? Si alguna vez ha llamado a la compañía eléctrica justo después de un largo apagón sabrá a qué tipo de problema de rendimiento me refiero: el personal de esas empresas no puede manejar la carga sin que varíe muchísimo el tiempo de respuesta. Recuerde que la capacidad de procesamiento y el tiempo de respuesta son características que variarán de forma no lineal y que dependen del uso de los recursos del sistema. Independientemente de cómo se defina el rendimiento, probablemente no siempre será tan bueno como desee. Otros requisitos que también pueden ser importantes tanto para los usuarios como para los responsables de su funcionamiento pueden compararse, por ejemplo, a los de la compra de un coche, donde conceptos como eficiencia (3 litros a los cien kilómetros), aceleración (de 0 a 100 en 3,5 segundos), capacidad (capaz de transportar cuatro pasajeros cómodamente), predecibilidad (cambio de aceite cada 80.000 km; duración de los neumáticos: 200.000 km) o adaptabilidad para transportar determinados objetos, son determinantes.
Rendimiento y sentido común El rendimiento debe ofrecer capacidad de procesamiento y tiempos de respuesta adecuados, previsibles y coherentes con distintas cargas de trabajo, aplicaciones y tipos de uso del sistema. Conforme aumentan las cargas de trabajo y los costes, su relación debería mantenerse constante y el rendimiento debería seguir cumpliendo los objetivos. Si usted es el responsable de comprar un ordenador, configurar o mantener el hardware, deberá asegurarse de que todos los que están implicados entienden claramente lo que quiere, cuáles son las necesidades de los usuarios y de la empresa y cuáles son las soluciones potenciales por lo que hace al rendimiento. ■ Rick Turner, antiguo empleado de IBM, es un consultor especializado en temas de rendimiento desde los tiempo del S/38. www.help400.es
www.help400.es
ABRIL 2008 ServerNEWS 9
La JVM de 32 bits para el i Las ventajas del nuevo producto de IBM sobre la JVM de 64 bits clásica son muchas por Dan Darnell
P
ermítame empezar por lo que considero que es el mayor triunfo asociado con la JVM de 32 bits de IBM del System i: la mayoría de clientes ahora pueden ejecutar WebSphere Application Server (WAS) sin la enorme cantidad de memoria que necesita la vieja máquina virtual de Java de 64 bits. Esto es muy, pero que muy importante. Por fin, IBM debería poder ofrecer el System i como caballo de tiro de WAS, en competición directa con otras plataformas de servidores de aplicaciones, sin el inconveniente del incremento del coste debido a la necesidad de una cantidad considerablemente mayor de memoria. La JVM de 32 bits, que IBM ha bautizado como IBM Technology for JVM, puede utilizarse a partir del release V5R4. Para usarla con WebSphere es necesario disponer de WAS 6.1 (o posterior).
La historia de Java en el System i (abreviada) Para los no iniciados, el cuento empieza así: en el release V4R2, el mejor Java del mundo era el del System i y no dejaba de mejorar en cada nuevo release del sistema operativo. La JVM era una implantación de 64 bits (después de todo, se trata de una plataforma de 64 bits) y era muy elegante. Se encontraba bajo la interfaz de máquina independiente de la tecnología (TIMI) para lograr un rendi10 ServerNEWS ABRIL 2008
miento cercano al del hardware. La recogida de basura de objetos se hacía de forma asíncrona, sacando partido de cuantos procesadores hubiera. Interpretaba el código intermedio (bytecode) de Java como otras JVM, pero también era capaz de ejecutar código compilado en objetos ejecutables directamente (DE). A la larga, las cosas que hacían que la implantación del System i fuera única se volvieron en su contra. Si la recogida de basura no es lo bastante parecida a la de las otras plataformas, quien venga de otras plataformas distintas al System i se encontrará con que no conoce las reglas de juego. El hecho de que la JVM esté bajo la TIMI hace que las nuevas www.help400.es
versiones de Java sean más difíciles de implementar y que a IBM le lleve más tiempo portar los avances realizados en otras JVM. Indudablemente, reinventar la rueda para el System i también conlleva un gasto considerable. En un principio, esos objetos de Java compilados en DE eran considerados lo mejor de lo mejor. Otras implantaciones de la JVM con intérpretes o compilación just-in-time (JIT) no podían ni acercarse al rendimiento optimizado de una clase de Java precompilada. Pero los tiempos han cambiado y en las implementaciones JIT actuales se conservan planes de optimización y se utilizan técnicas para optimizar los métodos más utilizados. Añádase a eso un promedio del 10% de mejora en el rendimiento asociado al uso de la JVM de 32 bits en el System i y la ventaja de rendimiento de los objetos DE se ha perdido para siempre. IBM ahora se refiere a la JVM original de 64 bits del System i como la JVM clásica. La nueva JVM de 32 bits, como decía, se llama IBM Technology for JVM y se ejecuta en el Entorno de soluciones para aplicaciones portables (PASE). El código base de la implementación es de AIX (hay una cuantas optimizaciones y personalizaciones para el System i). Un juego común de código base significa que la inversión que ha de hacer IBM para cada plataforma concreta es muy poca. La ventaja para los clientes es que las mejoras, los arreglos y las
IBM Technology for JVM, añada una variable de entorno para JAVA_HOME y especifique la vía de acceso a la JVM: ADDENVVAR ENVVAR(JAVA_HOME) VALUE(‘/QOpenSys/QIBM/ProdData/ JavaVM/jdk50/32bit’) LEVEL(*JOB)
El parámetro LEVEL indica que la variable de entorno se establece solamente para el trabajo actual (es decir, que solamente el trabajo actual utilizará IBM Technology for JVM). Para establecer la variable de entorno de forma permanente para todo el sistema -haciendo que IBM Technology for JVM sea el valor por omisión del sistema- use este mandato: ADDENVVAR ENVVAR(JAVA_HOME) VALUE(‘/QOpenSys/QIBM/ProdData/ JavaVM/jdk50/32bit’) LEVEL(*SYS)
En los entornos de terminal de intérprete de mandatos QSH o QP2TERM, establezca la variable de entorno para la sesión del terminal actual con un mandato export como este: export -s JAVA_HOME= /QOpenSys/QIBM/ProdData/JavaVM/jdk50/32bit
Con la JVM de 32 bits la mayoría de clientes ahora pueden ejecutar WAS en el System i sin la enorme cantidad de memoria que necesita la vieja máquina virtual de Java de 64 bits. nuevas versiones de Java deberían llegar al System i más deprisa y deberían ser más parecidas a las de otras plataformas. IBM ha prometido una versión de 64 bits de IBM Technology for JVM para el System i (cuya aparición está prevista para finales de año, ya con la V6R1) para complementar el producto de 32 bits. Cuando IBM presente esta versión, el soporte para Java en la plataforma se habrá alineado perfectamente con los productos de IBM para AIX y Linux. Cabe suponer que la esperanza de vida de la JVM clásica será corta, pero todavía no se conoce su fecha de jubilación.
Configuración IBM Technology for JVM está disponible en el release V5R4 como el programa producto bajo licencia (LPP) 5722-JV1, opción 8. También hace falta PASE, que se instala como el LPP 5722-SS1, opción 33. IBM Technology for JVM es una implantación de Java 2 Platform, Standard Edition 5.0 (J2SE 5.0). Instalar IBM Technology for JVM no impide tener instaladas otras versiones de la JVM clásica, incluyendo la versión de J2SE 5.0 (LPP 5722-JV1, opción 7) de la JVM clásica. La clave está en saber cómo indicarle al sistema qué JVM se quiere usar. Si no hace nada y hay instalada una versión de la JVM clásica, se usará ésta como la JVM por omisión. Para utilizar www.help400.es
En cualquier momento se puede determinar qué JVM se está utilizando con solo ejecutar en un terminal de intérprete de mandatos el mandato java con la opción version. Con IBM Technology for JVM, verá algo parecido a esto (busque “IBM J9 VM”):
java -versionjava version “1.5.0” Java(TM) 2 Runtime Environment, Standard . . . IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2 . . . J9VM - 20070420_12448_bHdSMR JIT - 20070419_1806_r8 GC - 200704_19) JCL - 20071511-SR5
La JVM clásica es mucho menos prolija (busque “Classic VM”): java -version java version “1.5.0” Java(TM) 2 Runtime Environment, Standard . . . Classic VM (build 1.5, build JDK-1.5, native . . .
Aunque IBM Technology for JVM se establezca como el valor por omisión del trabajo, de la sesión del terminal de intérprete de mandatos o del sistema, todavía puede usarse la JVM clásica con la adición de la propiedad java.version en el mandato java: java -Djava.version=1.4 MyClass
Consideraciones Una JVM de 32 bits implica que la cantidad de memoria necesaria es menor (se necesita la mitad de memoria para haABRIL 2008 ServerNEWS 11
■ EN PORTADA cer referencia a un objeto), pero también que la memoria disponible para una aplicación, o tamaño del almacenamiento dinámico (heap), está limitada a 4 GB. Como la JVM también usa almacenamiento dinámico, el límite práctico del tamaño del almacenamiento dinámico para una aplicación que se ejecute en una instancia de la JVM de 32 bits se dice que más bien es de 3 GB. Si sabe que la aplicación o la instancia del servidor WAS necesita más memoria, por ahora tendrá que continuar con la JVM clásica (el límite de tamaño del almacenamiento dinámico es de 240 GB). Si no sabe cuáles son las necesidades de tamaño del almacenamiento dinámico de la aplicación o instancia del servidor WAS, consulte el recuadro “Determinación de los requisitos de tamaño del almacena-
tario, Visualizar programa de Java (DSPJVAPGM), tampoco sirve de nada. En la JVM clásica, los programas escritos en Java compilados como objetos DE pueden adoptar autorizaciones. Como no hay nada parecido a un objeto DE en IBM Technology for JVM, no se admiten las autorizaciones adoptadas. En IBM Technology for JVM (y en la JVM clásica) se puede acceder a la base de datos mediante el controlador JDBC de IBM Toolbox para Java (JT400 o JTOpen) o el controlador JDBC nativo. No hay que hacer nada especial para llamar a programas escritos en RPG usando Toolbox, pero la invocación mediante el método nativo requiere compilar el código para el modelo de almacenamiento en teraespacio (puede obtener más información sobre este modelo de almacenamiento en Un juego común de código base significa que la publib.boulder.ibm.com/infocenter/ inversión que ha de hacer IBM para cada plataforma iadthelp/v6r0/index.jsp?topic=/ com.ibm.etools.iseries.debug.doc/ concreta es muy poca. La ventaja para los clientes es concepts/cbiterra.htm). En el caso de que las mejoras, los arreglos y las nuevas versiones de módulos escritos en C, compilar para este modelo de almacenamiento es Java deberían llegar al System i más deprisa y sencillo; especifique los parámetros sideberían ser más parecidas a las de otras plataformas. guientes en el mandato CRTCMOD: miento dinámico” en la página 13. Varios mandatos de i5/OS no son compatibles o no son válidos con IBM Technology for JVM. Los mandatos Analizar máquina virtual de Java (ANZJVM) y Volcar máquina virtual de Java (DMPJVM) no son compatibles. Esto es una lástima, porque estas herramientas permiten ver de forma rápida y sencilla “dentro” de una instancia de la JVM. El programa de utilidad Crear programa de Java (CRTJVAPGM) que permite crear un objeto DE no puede usarse con la tecnología de la nueva JVM. Por lo tanto, el programa complemen-
Información adicional En estos libros rojos encontrará excelente información sobre IBM Technology for JVM. IBM Technology for Java Virtual Machine in IBM i5/OS www.redbooks.ibm.com/abstracts/sg247353.html Este libro rojo es una maravillosa fuente de información sobre la nueva JVM de 32 bits. Examina a fondo el tema, desde las nociones básicas sobre la instalación hasta los pasos concretos que hay que dar para configurar WAS 6.1 con el fin de supervisar, describir y resolver problemas de la JVM. Porting UNIX Applications Using AS/400 PASE www.redbooks.ibm.com/abstracts/sg245970.html Ya hace unos años que se publicó este libro rojo, pero sigue siendo una buena introducción para quien no conozca PASE.
12 ServerNEWS ABRIL 2008
TERASPACE(YES) STGMDL(*TERASPACE) DTAMDL(*LLP64)
El compilador de RPG no permite especificar explícitamente el modelo de almacenamiento, pero desde el release V4R4, los programas escritos en RPG se compilan como compatibles con el modelo de almacenamiento en teraespacio. En las pruebas que hice, no fui capaz de hacer llamadas mediante el método nativo (tanto con bibliotecas de RPG como de C) en IBM Technology for JVM, aunque sí funcionaron bien con la JVM clásica. Los problemas no tenían que ver con el modelo de almacenamiento y supongo que los PTF que los arreglen estarán disponibles para cuando lea este artículo. El PTF de grupo Java (SF99291 en V5R4) ofrece actualizaciones y arreglos acumulados tanto para la JVM clásica como para IBM Technology for JVM.
Complicaciones Una de las maravillas de la JVM clásica es que la recogida de basura generalmente funciona bien sin tener que prestarle ninguna atención. Si en la JVM clásica no había tenido presente la recogida de basura, no le recomendamos que lo siga haciendo con IBM Technology for JVM. Ahora, las políticas de recogida de basura (hay cuatro entre las que escoger) controlan el funcionamiento de la recogida de basura. Ninguna actúa como la recogida de basura de la JVM clásica y no espere que el valor predeterminado satisfaga todas sus necesidades. En función del tipo de trabajo que haga cada aplicación escrita en Java tendrá que escoger una política de recogida de basura u otra y configurar la JVM en consecuencia. La política de recogida de basura predeterminada optimiza el rendimiento y usa una estrategia de parar, marcar, barrer y compactar (durante la recogida de basura se detiene la ejewww.help400.es
cución de las hebras de la aplicación). Otra opción minimiza el tiempo durante el que se detiene la ejecución de las hebras, lo que puede reducir el rendimiento globalmente pero puede aumentar la disponibilidad de una aplicación interactiva o basada en sockets y estabilizar su rendimiento. Hay otras opciones para las aplicaciones que crean un gran número de objetos temporales y para optimizar el rendimiento si se utiliza multiproceso simétrico (esta opción es recomendable únicamente en los sistemas que disponen de al menos 16 procesadores). La mayor complejidad de las políticas de recogida de basura tiene sus ventajas. Cuando entienda las políticas y aprenda a aplicarlas, habrá adquirido un conocimiento transferible y estará listo para ejecutar su aplicación en AIX, Linux o en cualquier otro sistema operativo.
cantidad de recursos necesarios y mejorar el rendimiento de las aplicaciones escritas en Java. Y lo que es más importante, la frustración de necesitar recursos adicionales para ejecutar WebSphere en nuestra plataforma por fin ha llegado a su fin. ■
Conclusión En el recuadro “Información adicional” en la página anterior recomiendo dos excelentes libros rojos de IBM que le ayudarán a entender todos los aspectos del producto IBM Technology for JVM. La incorporación de IBM Technology for JVM en el System i es un avance muy necesario. Puede reducir la
Dan Darnell es autor del libro «Java and the AS/400 Second Edition» (publicado por 29th Street Press) y consultor independiente de Little Rock (Arkansas).
Determinación de los requisitos de tamaño del almacenamiento dinámico Para determinar los requisitos de memoria de una aplicación escrita en Java o una instancia de WebSphere Application Server (WAS), es necesario describir su funcionamiento mientras se ejecuta en la JVM de 64 bits. Existen varias herramientas para hacerlo, pero el método más rápido es el que se explica a continuación que generalmente funciona tan bien como las técnicas más sofisticadas. El mandato Volcar máquina virtual de Java (DMPJVM) genera un informe del estado en un momento dado de la JVM. Con una aplicación de Java ejecutándose en la JVM clásica, proporcione al mandato DMPJVM el identificador del trabajo de la JVM, como en este ejemplo: DMPJVM JOB(090123/DAN/QJVACMDSRV)
El identificador del trabajo puede ser más difícil de identificar para una instancia del servidor WAS. Busque en una lista de trabajos activos el usuario QEJBSVR. El nombre dado a la instancia de servidor de aplicaciones debe aparecer como el nombre del trabajo. Por ejemplo, con una instancia de servidor de aplicaciones denominada DANSVR, el mandato DMPJVM sería parecido a este: DMPJVM JOB(090100/QEJBSVR/DANSVR)
En la información de volcado impresa generada por el mandato DMPJVM, busque la sección titulada “Recogida de basura” y examine la información acerca de los valores actuales: www.help400.es
Valores actuales Tamaño del almacenamiento dinámico: 7944 K Recogidas de basura: 10
El valor de “Tamaño del almacenamiento dinámico” indica la cantidad de memoria actualmente necesaria para la aplicación o la instancia del servidor WAS. Tome muestras de la aplicación periódicamente (por ejemplo, al arrancar la aplicación, después de un rato de estar en marcha, con el número máximo de usuarios conectados, etcétera) para hacerse una idea del uso que hace de la memoria. Si el tamaño del almacenamiento dinámico no sobrepasa nunca los 3 GB en la JVM de 64 bits, no debería tener problemas ejecutando la aplicación en la JVM de 32 bits. Si los requisitos de memoria son de más de 3 GB, piense que la aplicación probablemente usará menos memoria en la JVM de 32 bits que en la de 64 bits. Lamentablemente, no existen reglas absolutas. El diseño e implementación de una aplicación se relacionan directamente con los requisitos de memoria que tendrá y el grado con que las direcciones de 32 bits afectarán al tamaño del almacenamiento dinámico. Por término medio, he observado que la JVM de 32 bits requiere un 35% menos de almacenamiento dinámico. En última instancia, la única forma de estar seguro de que una aplicación se ejecutará en la JVM de 32 bits es probarla en ésta. — D.D. ABRIL 2008 ServerNEWS 13
Power Systems, la nueva fórmula de IBM por Carlos Bell hí está. La nueva ecuación Power es, según los folletos y sitios web de IBM, Power = i + p. Al verla, todos deberíamos recordar las clases de física del instituto y caeríamos en la cuenta de que como potencia = trabajo / tiempo (power significa potencia en inglés) con esta fórmula IBM ha realizado un magnífico juego de palabras y percepciones para presentar muy acertadamente una nueva familia de servidores empresariales, los Power Systems, equipados con la última tecnología POWER6 (denominación correspondiente a las siglas de “Performance Optimization With Enhanced RISC”) que unifican bajo la misma arquitectura a los hasta ahora llamados System i y System p (Figura 1). El cambio de nombre de las recién fusionadas líneas de productos System i y System p por los de una única marca, Power Systems, tiene mucho sentido. Y dado lo acostumbrados que estamos los fieles a los equipos midrange a utilizar y defender nombres tan familiares como AS/400, iSeries o incluso System i, ¿qué mejor sitio podía escoger IBM para anunciar un hecho tan significativo para el “entorno AS/400” que el de la Conferencia anual de COMMON USA, donde se reunen sus incondicionales más activos?
A
Razones históricas Siguiendo su estrategia camino hacia una plataforma única para sus servidores no-Intel, IBM ha creado la marca “Power Systems” que es una consecuencia directa de la fusión de tecnologías que lleva realizando desde 1994 (consulte el artículo “En camino hacia el futuro”, de Frank G. Soltis, publicado en el número 46). Recordemos que en 1994 IBM presentó el AS/400 Advanced 36, el primer ordenador con tecnología RISC de 64 bits, basado en un chip PowerPC modificado en los laboratorios de desarrollo del AS/400 de IBM en Rochester para adaptarlo al proceso de las típicas cargas de trabajo empresariales. “Nuestra primera estrategia es la de utilizar la tecnología para darles a ustedes ventajas competitivas. La tec14 ServerNEWS ABRIL 2008
nología es una gran fuerza, e IBM ha inventado muchas de las tecnologías claves de esta industria, y tenemos la intención de seguir siendo líderes con las tecnologías que he ido mencionando. Pero sólo importan si llegamos a ustedes rápidamente, y de una forma que satisfaga sus necesidades. Es por eso que Power es tan importante. La familia de microprocesadores PowerPC basada en tecnología RISC va a ser utilizada en toda nuestra gama de productos, desde dispositivos móviles a los AS/400, pasando por los superordenadores. El objetivo es que Power sea un estándar de la industria, y muchas compañías han comenzado a basar sus sistemas en él. Esto incluye a Apple, Hitachi, Bull, Canon o Toshiba, a fabricantes de juguetes y empresas de automóviles. Tenemos alianzas con 130 compañías. La ventaja para nosotros es la economía de escala, por lo que nuestros costes serán menores y también nuestros precios. Nos permitirá acercarnos a una arquitectura de proceso común, a un precio muy agresivo y con niveles de rendimiento muy superiores.” Esta frase, que bien podría considerarse de actualidad, fue pronunciada por Lloyd G. Waterhouse, Director de Estrategias de IBM Corporation, Armonk, (NY) el día 29 de Noviembre de 1994 en la conferencia de apertura del Encuentro “Opening IBM” celebrado en Madrid y en donde, por primera vez, se reunieron juntos los Business Partners de IBM tanto del entorno AS/400 como del RS/6000. 1995 fue el año en que se hizo patente que ni los laboratorios de desarrollo del RS/6000 de IBM en Austin (Texas) ni su socio en el desarrollo del chip PowerPC, Motorola, iban a sacar adelante sus procesadores PowerPC 620 y 630 e IBM depositó todas sus esperanzas en la familia “Star” de chips PowerPC AS de 64 bits diseñados en Rochester. Desde octubre de 1997, IBM ha lanzado al mercado servidores AS/400 y RS/6000 (y luego iSeries y pSeries, System i y System p) que eran básicamente los mismos equipos con algunas pequeñas diferencias de E/S, que han ido cambiando gradualmente con el paso del tiempo a medida que, a través de la virtualización de dispositivos, se ha ido eliminando la arquitectura IOP especial del AS/400 y se ha ido ajustando al estilo de periféricos del RS/6000 y otros tipos de servidores que no utilizan el proceso de E/S asimétrico.
Razones comerciales IBM no es el único fabricante de equipos que lleva a cabo un proceso de convergencia de productos y marcas, y tampoco es el único que ha irritado a sus clientes al hacerlo (según se desprende de los comentarios que se pueden leer en los foros y blogs del entorno, forum.help400 incluido). Unisys, el www.help400.es
www.help400.es
ABRIL 2008 ServerNEWS 15
■ EN PORTADA fabricante de mainframes y servidores Windows de gama alta, había tomado la senda de la convergencia en su línea de mainframes ClearPath (a su vez resultado de la fusión de los mainframes de Burroughs y Sperry en los albores de los tiempos) con sus servidores ES7000 de multiproceso simétrico. Hace dos años, Unisys evaluó el coste de esa convergencia y los costes de investigación y desarrollo para llevarla a cabo en todos sus productos; y de repente decidió que lo mejor sería crear una línea conjunta de servidores Itanium-Xeon con el fabricante japonés de servidores NEC. Dichos servidores estarán listos a finales de año, Unisys se ha comprometido a mantener su línea ClearPath durante 15 años más y no está nada claro cómo se fusionarán los futuros servidores de NEC y ClearPath y mucho menos qué marca les dará Unisys. Hewlett-Packard también se ha enfrentado a la convergencia de servidores y a problemas con las marcas, tras heredar las líneas de productos AlphaServer de DEC, ProLiant de Compaq y NonStop de Tandem al adquirir Compaq en 2001. El plan de HP era una continuación del que se estaba aplicando en Compaq, que consistía en hacer converger sus sistemas operativos (OpenVMS, NonStop y Tru64 Unix) en una única plataforma basada en Itanium. La propia HP estaba
La reorganización de IBM En enero de este año, IBM hizo aún más evidente la separación entre el departamento de marketing y ventas de sistemas y el de desarrollo y fabricación de sistemas, reajustando el STG (Systems & Technology Group) una vez más. A las divisiones Enterprise Systems y Business Systems se les exigió actuar como organizaciones que tenían que vender directamente a sus respectivas bases de clientes, las grandes empresas o las pymes, grandes ordenadores y equipos básicos o midrange, respectivamente. Desde el punto de vista del desarrollo, las divisiones Enterprise Systems (mainframes), Power Systems (servidores basados en Power) y Modular Systems (bastidores X64, torres y servidores blade) se crearon para llevar el peso del desarrollo y la fabricación de productos. Fue entonces cuando el desarrollo de productos para equipos System i básicos y midrange pasó de la división Business Systems a Power Systems, a la que pertenecía en primer lugar. Tras la reestructuración, el resultado final es que ya no hay un director general responsable de ninguna plataforma desde el desarrollo hasta la fabricación pasando por el marketing y la comercialización. Eso es así para todas las líneas de productos System i, System p, System x, System z, BladeCenter y TotalStorage. Por un lado tenemos expertos en ventas y marketing directo y por otro lado tenemos expertos en cada una de las tecnologías. Todos rinden cuentas ante Bill Zeitler, vicepresidente primero y responsable de todo el grupo STG. Fuente: www.itjungle.com
16 ServerNEWS ABRIL 2008
migrando su Unix, HP-UX, a Itanium en el momento de la fusión y después de absorber a Compaq empezó a racionalizar sus muchas líneas de productos. Hoy en día HP tiene una sola línea de servidores midrange de gama alta, Integrity Itanium, y es compatible con HP-UX, OpenVMS, NonStop, Windows y Linux... juntos o virtualizados. Como hemos visto, IBM ha tenido el mismo objetivo con sus máquinas basadas en Power desde hace más de una década. Pero al mantener diferenciadas las líneas de productos, podía ponerles precios distintos y, por lo tanto, cobrar más por procesador, memoria y capacidad de almacenamiento en una línea (la de los AS/400, iSeries y System i, por supuesto) que en la de los equipos RS/6000, pSeries y System p. IBM necesitaba una política de precios agresiva para la línea de productos AIX para arrebatarle cuota de mercado Unix a HP y Sun Microsystems, algo que ha hecho de forma brillante. La estrategia de cobrar mucho por la capacidad de proceso 5250 y llamarlo hardware (cuando realmente no lo es) u ofrecer en el lote el sistema operativo y llamarlo hardware (un sistema integrado o, más precisamente, no llamarlo software), permitió a esa línea de productos dar sabrosos beneficios incluso cuando las ventas de hardware estaban disminuyendo. Pero es de suponer que IBM optimizó su estrategia para lograr vender la mayor cantidad de sistemas Power (muchísimas más ventas de AIX para compensar las menores ventas de OS/400) y obtener el máximo beneficio de los productos Power (durante la última década, probablemente la mitad proceda de las plataformas AIX y la otra mitad de las plataformas OS/400). Lo cierto es que siempre hay otra forma de resolver un conjunto de ecuaciones como esta. Como bien debe saber Bill Gates, es mejor tener montones de clientes pagando una pequeña cantidad y siendo relativamente felices que tener pocos clientes pagando mucho y quejándose por ello. El nuevo cambio de nombre para la línea de servidores basados en Power es una oportunidad excelente para que esta vez IBM lo haga bien. IBM tiene que llamar hardware al “hardware” y software al “software” y esa diferenciación ha de hacerla en todos los productos, incluyendo las máquinas antes conocidas como System i. Todos y cada uno de los componentes de la línea combinada de Power Systems deben tener el mismo número de producto y de característica (sea cual sea el sistema operativo), los mismos precios (sea cual sea el sistema operativo) y los mismos canales de distribución directos e indirectos (sea cual sea el sistema operativo). Se acabó eso de utilizar la fidelidad de las empresas que trabajan con System i para lograr una mayor cuota de mercado para el System p. A propósito, a IBM no le gusta el término “convergencia” y ha optado por uno ligeramente distinto, “unificación”, para describir la simplificación de su catálogo de productos y el tercer cambio de nombres, presumiblemente el último. Como recordarán los más veteranos, la diferencia es que convergencia implica que a la larga una plataforma acaba desapareciendo (por ejemplo, el S/36), mientras que unificación implica que algunas cosas seguirán siendo distintas. Esta es obviamente una idea que IBM quiere disipar. www.help400.es
espacio que el Superdome 1 HP 9000 de 64 procesadores. Y desde luego, ejecutan todas las aplicaciones System i con alrededor de un 45% de mejora vs POWER5 en cuanto a consumo energético. El 2 de abril IBM también presentó un servidor blade Power6 de un solo socket, el JS12, mucho más adecuado para los clientes que actualmente utilizan i5/ OS que el servidor blade JS22 de cuatro procesadores anunciado el pasado año y en el que en marzo IBM añadió i5/OS V6R1. Con el anuncio, IBM facilita a sus Business Partners vender y administrar una combinación de soluciones de múltiples sistemas operativos basados en la plataforma de servidores Power. IBM reconoce y valora las inversiones realizadas por sus Socios de Negocio para certificar a su personal técnico y de ventas en System i y System p. Estas certificaciones permitirán a los canales especializados en ambas FIGURA 1 plataformas vender la nueva plataforma unifiLa nueva familia IBM Power Systems unifica a los System i y a los System p cada con los sistemas operativos para los que estén capacitados y autorizados. La nueva plataforma Power también proporcionará a los Aquí y ahora La nueva ecuación Power en realidad va a ahorrarle a IBM proveedores de software independientes (ISVs por sus siglas un montón de trabajo y dinero en la impresión de manuales y en inglés) una única plataforma para soluciones IBM i, AIX y la publicación en la web de materiales asociados, y tal vez Linux, con lo cual les será más fácil ayudar a los clientes a otro montón de dinero eliminando la confusión en el merca- elegir la solución correcta para su empresa. Esta nueva plado. Ahora IBM dispone de una única línea de servidores ba- taforma ofrece a los ISVs asociados a IBM nuevo potencial y sados en Power –los mismos códigos de características, la mis- nuevos productos para un público más amplio, especialmenma lista de precios, las mismas características opcionales, los te si tienen una cartera de soluciones que funciona sobre mismos gastos de mantenimiento, etcétera– que admite tres múltiples sistemas operativos. sistemas operativos distintos, IBM i, AIX y Linux, operando simultáneamente en la misma máquina con tecnología de Para finalizar, algo sobre el sistema operativo “i” virtualización PowerVM. Como ya es sabido, i5/OS, el sistema operativo integrado en El anuncio oficial proclama que los Power Systems son “una los hasta ahora denominados System i, en la nueva familia nueva e importante plataforma que supone una opción irre- de servidores pasará a llamarse "IBM i" y, junto con AIX y sistible para las empresas de todos los tamaños” y que, con Linux, será otro de los sistemas operativos de la plataforma más de 15.000 aplicaciones, unifica la plataforma integrada Power. De aquel CPF aparecido en 1978 como sistema operacon más éxito de IBM, la System i, con su plataforma de ma- tivo del S/38, IBM en 1988 pasó al OS/400 del AS/400 y de yor crecimiento, la System p con AIX y/o Linux. éste al i5/OS en mayo de 2005, junto con los iSeries con Repasando brevemente la nueva familia de servidores procesadores POWER5. Han sido necesarios 30 años para que Power Systems de la Figura 1, ahora disponemos de la si- la marca del sistema operativo integrado de IBM haya queguiente oferta: dado reducida a la más mínima expresión escrita: la letra i. BladeCenter JS12: con 2 procesadores Algo lamentable. Power Server 6.1 hubiera sido muchísiPower 520: desde 1 hasta 2 procesadores mo más acertado para un sistema operativo que supera, con BladeCenter JS22: con 4 procesadores mucho, las funciones de AIX o Linux. Sin embargo, si hubiera Power 550: desde 1 hasta 4 procesadores sido así, AIX y Linux podrían haber quedado en inferioridad Power 570: desde 2 hasta 16 procesadores de condiciones a nivel de percepción del mercado... De nuevo Power 595: desde 8 hasta 64 procesadores le ha correspondido al “AS/400” el sacrificio. Tal vez su única virtud sea que la mayoría de los que tengan que escribir soSon los primeros modelos de una nueva generación de ser- bre los sistemas operativos de Power Systems empezará a vidores que combinan la tecnología más actual con un mayor hacerlo por la “i” ya que si la escriben al final parecerá una rendimiento, eficiencia energética y ahorro de costes. Por ejem- errata... ■ plo, el Power 550 Express proporciona un 16% más de potencia y utiliza un 91% menos de energía y un 98% menos de Carlos Bell es colaborador habitual de ServerNews www.help400.es
ABRIL 2008 ServerNEWS 17
iAMP: desarrollo web de código libre en i5/OS Siga estos pasos para implantar iAMP por Erwin Earley a posibilidad de instalar aplicaciones basadas en web sigue siendo uno de los principales objetivos de muchas organizaciones. El conjunto de desarrollo basado en aplicaciones creadas por la comunidad de desarrolladores de código libre es la pila LAMP (LAMP significa Linux, servidor web Apache, servidor de base de datos MySQL y lenguaje de scripts PHP). La popularidad de LAMP, a la que a veces se denomina plataforma web de código libre, no ha hecho más que crecer entre los desarrolladores de aplicaciones web como una plataforma fiable y barata para aplicaciones basadas en web. Existe una gran cantidad de aplicaciones basadas en LAMP creadas por la comunidad de desarrolladores de código libre que nos permiten disponer de blogs, tablones de anuncios, portales y aplicaciones de comercio electrónico y gestión de las relaciones con los clientes. Hasta ahora, los clientes del System i que querían instalar soluciones basadas en LAMP debían utilizar una partición de Linux. La incorporación el año pasado de PHP en i5/OS y el anuncio de MySQL para i5/OS significa que ahora los clientes del System i pueden implantar una variante de la pila LAMP para i5/OS denominada iAMP (i5/OS, Apache, MySQL, PHP). Con iAMP, los clientes pueden hacer uso de la extensa cartera de aplicaciones de la comunidad de desarrolladores de código libre directamente en i5/OS. En este artículo describiremos los pasos que hay que dar para implantar una pila iAMP en i5/OS. Además de configurar la pila iAMP, veremos cómo instalar una aplicación de código libre.
L
Estructura y condiciones previas
Programación y sistemas
▲ ▲ ▲
18
Para que entienda qué hay que instalar, veamos cómo es la estructura de una pila iAMP (Figura 1). Como puede verse, Apache, MySQL y PHP tienen que configurarse en el Entorno de soluciones para aplicaciones portables (PASE). La pila iAMP puede implantarse únicamente a partir de la V5R4 y para ello hay que instalar varios Programas producto bajo licencia (LPP) en i5/OS, como se puede ver en la Figura 2. La exigencia de usar el release V5R4 es debido a que solamente V5R4 soporta MySQL. Si intenta utilizar sólo el soporte de PHP (normalmente para desarrollar sus propias aplicaciones utilizando recursos de i5/OS) también puede implantarse en el release V5R3: Zend Core es compatible con ambas versiones.
• instalar Apache en el entorno PASE • instalar Zend Core en el entorno PASE • configurar el puerto 89 para reenviarlo a Apache en el entorno PASE; puede pensar en el puerto 89 como en el puerto de PHP para i5/OS • instalar el proceso I5_COMD en i5/OS para satisfacer las peticiones de recursos del servidor desde las aplicaciones de PHP En el artículo “Instalación y configuración de PHP” (publicado en el número 181) se ofrecen detalles sobre Zend Core. De forma resumida, la instalación de Zend Core consiste en: 1. Obtener Zend Core del sitio web de Zend (zend.com). 2. Extraer el archivo de salvar de Zend Core del archivo zip descargado. 3. Subir el archivo de salvar a i5/OS. 4. Ejecutar el mandato RSTLICPGM con el archivo de salvar. 5. Responder a las peticiones de la instalación.
Implantar MySQL en i5/OS Instalar Zend Core en i5/OS sólo es una de las partes del conjunto iAMP (es decir, Apache y PHP). Ahora ya podemos desarrollar nuestras propias aplicaciones basadas en web utilizando los recursos de i5/OS. Sin embargo, si desea instalar aplicaciones de la comunidad de desarrolladores de código libre sin tener que modificarlas, tendrá que instalar MySQL, ya que la mayor parte de las aplicaciones escritas en PHP utilizan la base de datos MySQL como depósito de datos de la aplicación. Al igual que pasa con PHP, MySQL para i5/OS se ejecuta en el entorno PASE. En la Figura 3 se ofrece un esquema de esta arquitectura. Los pasos necesarios para instalar MySQL son parecidos en muchos sentidos a los que hay que dar para instalar Zend Core. Para empezar, hay que descargar MySQL para i5/OS. Hay dos versiones, Community Server y Enterprise. La diferencia entre ambas versiones es el modelo de soporte y la licencia del producto. En este artículo trataremos de la implantación de la edición Community Server, una versión gratuita del motor de esta popular base de datos de código libre. La página de descarga de MySQL Community Server es dev.mysql.com/downloads/mysql/5.0.html. Siga estos pasos para descargar el paquete MySQL:
Instalar Zend Core Zend Core es el motor que permite ejecutar en i5/OS aplicaciones escritas en PHP. Para instalar Zend Core hay que:
ServerNEWS ABRIL 2008
1. Pulse el botón Download (Descargar) en el apartado MySQL Community Server
www.help400.es
El archivo zip subido contiene una biblioteca de i5/OS que incluye un archivo tar con los archivos de MySQL junto con un programa de instalación. Use el mandato RSTLIB para restaurar la biblioteca. Por ejemplo: RSTLIB SAVLIB(MYSQLINST) DEV(*SAVF) SAVF(MYSQL) MBROPT(*ALL) ALLWOBJDIF(*ALL)
Tras restaurar la biblioteca, ya podrá realizar la instalación propiamente dicha de MySQL ejecutando el mandato siguiente: MYSQLINST/INSMYSQL
Pulse F4 para ver la siguiente pantalla de instalación de MySQL (Figura 4). Las respuestas que dé en la pantalla representan la información siguiente para el programa de instalación: • Directorio de instalación: directorio del IFS en que se grabarán los archivos de MySQL • Directorio de datos: directorio del IFS en que se grabarán los archivos de datos de MySQL (bases de datos y tablas) • Perfil de usuario propietario: perfil de usuario de i5/OS que se creará como parte de la instalación y que se establecerá como el perfil propietario de los archivos de instalación
FIGURA 1 Estructura de iAMP FIGURA 2 Programas producto bajo licencia para iAMP ○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
IBM Portable Utilities para i5/OS ○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
5733SC1 ○
○
○
○
○
○
○
○
○
34
○
○
○
○
5722AC3 ○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
5722SS1 ○
○
○
Recuerde que MySQL se ejecuta en el entorno PASE. Efectúe los pasos siguientes para arrancar el servidor MySQL:
5722SS1
2. Recorra la lista de plataformas hasta que vea “IBM i5/OS (SAVF packages)”. Pulse el enlace. 3. Pulse “Pick a mirror” (Escoja un sitio) para “i5/OS (POWER, 64-bit)”. 4. Elija uno de los sitios y descargue el paquete.
Una vez descargado el archivo zip en el PC, ya estará listo para llevar a cabo la instalación de MySQL. Ha de subir el archivo de salvar de MySQL a i5/OS, restaurar la biblioteca de instalación de MySQL y realizar la instalación en sí de MySQL. En primer lugar, suba el archivo de salvar a i5/OS: 1. Inicie una sesión FTP con i5/OS. 2. Active la modalidad binaria (bin). 3. Cambie el formato de nombre (quote site namefmt 1). 4. Suba el archivo (put mysql.savf /qsys.lib/qgpl.lib/ mysql.savf). 5. Salga de FTP (quit).
1. Entre en el entorno PASE (call QP2TERM) 2. Vaya al directorio en que se han grabado los archivos binarios del servidor MySQL (cd /usr/local/mysql/bin). 3. Arranque el servidor MySQL (./mysqld_safe -u root &)
Habilitar el soporte para extensiones de MySQL de PHP Para ejecutar programas de PHP que usan el motor de la base de datos MySQL hay que habilitar las extensiones de MySQL en Zend Core. Ésto se puede hacer de dos formas: o bien editando el archivo de configuración de Zend Core directamente o bien usando la interfaz de administración basada en web. Primero vamos a ver cómo hacerlo modificando directamente el archivo de configuración. Por omisión, el archivo de configuración de Zend Core, denominado php.ini, se encuentra en el directorio \usr\local\Zend\core\etc. Hay que editar el archivo y buscar las dos entradas siguientes:
Programación y sistemas
Instalar MySQL en i5/OS
www.help400.es
Una instalación típica de MySQL usa las respuestas predeterminadas de esta pantalla. En la mayoría de sistemas i5/OS, la instalación se ejecuta durante varios minutos sin mensajes ni ninguna interacción con el usuario. Una vez completada la instalación, se muestran varios mensajes de diagnósticos.
Arrancar el servidor MySQL
5722SS1
13
Gestor de certificados digitales
○
5733SC1
30
System Openness Includes ○
○
*base
Qshell ○
335722SS1
○
1
Crypto Access Provider de 128 bits ○
○
*base
OpenSSH, OpenSSH para i5/OS ○
○
▲ ▲ ▲
Entorno de soluciones para aplicaciones portables
;extension=mysql.so ;extension=mysqli.so
ABRIL 2008 ServerNEWS
19
■ DESARROLLO WEB DE CÓDIGO LIBRE EN I5/OS La primera extensión corresponde a MySQL y la segunda a MySQL Improved. Hay que habilitar ambas eliminando el punto y coma que hay al principio de cada línea. Tras habilitar las extensiones, reinicie Zend Core mediante el programa de utilidad de configuración de Zend Core (GO ZENDCORE/ ZCMENU). Otra forma de habilitar las extensiones es mediante la interfaz de administración de Zend Core basada en web. Esta interfaz puede arrancarse apuntando el navegador a http:// iseries:89/ZendCore. Una vez suministrada la contraseña a la interfaz de administración, seleccione Configuration|Extensions y recorra la lista hasta que vea las extensiones de MySQL (Figura 5). Para habilitar las extensiones utilizando esta interfaz de Zend Core, pulse el icono de la extensión (es el segundo de la derecha). El indicador de extensión ha de estar en la parte superior del indicador. Una vez habilitada la extensión, guarde la configuración pulsando Save Settings (Guardar configuración) y reinicie el servidor pulsando Restart Server (Reiniciar servidor).
Implantar aplicaciones de la comunidad de desarrolladores de código libre Ya hemos implantado nuestra variante de la pila LAMP para i5/OS. Los tres componentes –Apache, MySQL y PHP (Zend Core)– están instalados en el entorno PASE y listos para usarlos con el fin de instalar aplicaciones. Dedicaremos el resto del artículo a ver cómo usar la pila para instalar aplicaciones creadas por la comunidad de desarrolladores de código libre.
Hay un gran número de esta clase de aplicaciones esperando a que las instale en i5/OS. Puede encontrarlas en sitios como SourceForge (sourceforge.net), PHPFreeks (phpfreeks.com), HotScripts (hotscripts.com), PHPJunkyard (phpjunkyard.com) o PHPFreebies (php-freebies.com). Las aplicaciones de código libre se pueden clasificar en muchas categorías: blogs (en los que las entradas se introducen en orden cronológico y se muestran en orden cronológico inverso), portales (que ofrecen una extensa variedad de recursos y servicios), sitios de comercio electrónico (que facilitan la compra de productos por Internet) y wikis (que permiten a los usuarios crear y editar sin trabas el contenido de páginas web), por mencionar sólo unos pocos. El método para implantar aplicaciones de la comunidad de desarrolladores de código libre usando la pila iAMP generalmente puede descomponerse en los pasos siguientes: 1. Descargar la aplicación en el PC. 2. Usar un programa para descomprimir el archivo tar de la aplicación. 3. Copiar el archivo tar (resultado del paso anterior) en el IFS (generalmente en el directorio /www/zendcore/htdocs). 4. Entrar en el entorno PASE (call QP2TERM). 5. Desplazarse hasta el directorio en que reside el archivo subido. 6. Expandir el archivo archivador (tar -xvf aplicacion.tar). 7. Apuntar un navegador web al programa de configuración de la aplicación (http://systemi:89/aplicacion). Recuerde que muchos de los archivos descargados para las aplicaciones de código libre tendrán dos niveles de compre-
Programación y sistemas
▲ ▲ ▲
20
FIGURA 3 MySQL en PASE
ServerNEWS ABRIL 2008
www.help400.es
FIGURA 4 Pantalla de instalación de MySQL Install MySQL (INSMYSQL) Type choices, press Enter. INSTALLATION DIRECTORY . . . . . ‘/usr/local’
sión. Por lo general, tendrá que descomprimir el primer nivel antes de subirlo al IFS. Existen muchos programas para manejar archivos comprimidos; yo le recomiendo 7ZIP (7zip.org/download.html). Permítame acabar este artículo analizando la instalación de una aplicación real de la comunidad de desarrolladores de código libre, el programa phpMyAdmin (Figura 6), que puede utilizarse para gestionar el entorno de MySQL desde un navegador web. Estos son los pasos necesarios para implantar la aplicación:
DATA DIRECTORY . . . . . . . . . ‘/QOpenSys/mysql/data’
OWNING USER PROFILE . . . . . . MYSQL Character value
Bottom F3=Exit F4=Prompt F5=Refresh F12=Cancel F13=How to use this display F24=More keys
1. Primero descargue la aplicación phpMyAdmin en el PC (phpmyadmin.net/home_page/downloads.php). 2. Descomprima el archivo descargado. 3. Suba el archivo tar resultante al directorio raíz del servidor web Apache (/www/zendcore/htdocs), en el IFS. 4. Inicie una sesión 5250 y entre en el entorno PASE (call QP2TERM). 5. Descomprima el archivo tar (tar -xvf phpMyAdmin-2.11.5.2all-languages.tar). 6. Cree un enlace simbólico para darle a la aplicación un nombre más fácil de recordar (ln -s phpMyAdmin-2.11.5.2-alllanguages phpMyAdmin). 7. Cree un directorio para la información de configuración local: cd /www/zendcore/htdocs/phpMyAdmin mkdir config chmod o+rw config
FIGURA 5 Configuración de extensiones de Zend Core
8. Desde un navegador web, ejecute el script de configuración de phpMyAdmin: http://systemi:89/phpMyAdmin/scripts/ setup.php 9. Use el programa de utilidad de configuración para agregar una definición de servidor pulsando Add (Añadir) en Servers (Servidores). Ahora ya es posible acceder a la aplicación phpMyAdmin dirigiendo un navegador a http://systemi:89/phpMyAdmin.
iAMP en menos de una hora
www.help400.es
ABRIL 2008 ServerNEWS
▲ ▲ ▲
FIGURA 6 phpMyAdmin
Erwin Earley trabaja como consultor de ingeniería del software en el laboratorio de desarrollo de Rochester (Minnesota) y encabeza el Open Source Technologies Center of Competency for System i, que forma parte del System i Technology Center. En este centro presta servicios de formación y capacitación en tecnologías relacionadas con el código libre en el System i, incluyendo Linux, MySQL y el PHP de Zend.
Programación y sistemas
En este artículo hemos repasado los pasos que hay que dar para establecer su propio conjunto de desarrollo e instalación de aplicaciones web creadas por la comunidad de desarrolladores de código libre con Zend Core y MySQL. Además, hemos visto la instalación de una de esas aplicaciones para ver con qué facilidad se puede utilizar la enorme colección de aplicaciones de código libre que ahora pueden instalarse directamente en i5/OS. Si sigue estos pasos, es probable que pueda poner en marcha su propia pila iAMP en el sistema en menos de 60 minutos. ■
21
¿Necesita ayuda con los índices? Llame al “Asesor” Las valoraciones del optimizador permiten mejorar la estrategia de su definición
¿
por Jim Flanagan
Busca algo para ayudarle a afinar el rendimiento de las aplicaciones de la base de datos basadas en SQL sin tener que echar mano de grandes herramientas de supervisión? Una estrategia de definición de índices bien definida es uno de los aspectos más importantes a la hora de ajustar el entorno de la base de datos. En la versión V5R4 de DB2 para i5/OS se presentó el Asesor de índices con el fin de ayudar a mejorar la estrategia de definición de índices proporcionando al usuario información del optimizador sin necesidad de activar herramientas de supervisión.
un esquema determinado. He recopilado las columnas de claves necesarias para el índice, el número de veces que se ha recomendado y la última vez que se ha recomendado. Como también quiero que estos datos sean una herramienta educativa, ofrezco una razón por la que se ha recomendado el índice y le informo de qué columnas pueden trasladarse (“Claves iniciales independientes del orden” cuando se crea el índice). Administrador: Sí, ¿pero cómo sé que tu índice recomendado me está mostrando el problema de la aplicación Quémaravilla?
El problema al descubierto Para ilustrar las posibilidades y las ventajas del Asesor de índices, nos sumaremos a una reunión ficticia que se desarrolla en este preciso momento. Asesor de índices (AI): Administrador, tengo su informe diario aquí. Parece que tenemos un problema entre manos. La semana pasada presentamos el producto Quémaravilla y la parte encargada de la entrada de pedidos de la aplicación estaba manejando bastante bien el impresionante aumento de los pedidos... pero, de repente, ha empezado a funcionar mal. Administrador: ¿Qué? ¿Cómo ha podido suceder? Tenemos un sistema potente y siempre hemos sido capaces de añadir aplicaciones nuevas sin tener que prestar atención especial al rendimiento. Asesor, ¿has podido determinar dónde está el problema?
Management
▲ ▲ ▲
22
AI: Como sabe, llegué al mismo tiempo que el release V5R4 de i5/OS. Superviso automáticamente la actividad de las consultas de la base de datos y también anoto automáticamente información sobre el rendimiento de las mismas en una tabla de la base de datos denominada QSYS2.SYSIXADV. Para simplificar el análisis de la información, puede usar la interfaz iSeries Navigator V5R4 para consultar el contenido de esta tabla y trabajar con esta información. Parece ser que tiene un problema de rendimiento durante el acceso y el procesamiento de los datos de la aplicación Quémaravilla. Basta con que pulse con el botón derecho del ratón en el esquema QUEMARAVILLA y seleccione Asesor de índices (Figura 1) para ver de qué estoy hablando. También puedo mostrarle este informe de asesoramiento de índices para toda la base de datos si pulsa con el botón derecho del ratón en el nombre de la base de datos o para una tabla concreta del esquema si lo hace en el nombre de la tabla. Por ahora, me ceñiré al informe del asesor de índices para
ServerNEWS ABRIL 2008
AI: Pulsando con el botón derecho del ratón sobre una parte concreta del índice recomendado se puede seleccionar la opción de menú Mostrar sentencias. Al hacerlo aparece el Visor de la antememoria de planes de SQL (Figura 2), que también es una función nueva del release V5R4 de iSeries Navigator. El visor tiene una lista prefiltrada de las sentencias que hacen referencia a esta tabla y genera un índice recomendado. A la derecha se muestran varias sentencias de la aplicación, ordenadas por tiempo de ejecución en orden descendente. Esta vista muestra claramente algunas sentencias de la aplicación Quémaravilla cuyo rendimiento es muy lento. Al igual que con la información del Asesor de índices, he recopilado esta información sin tener que activar ningún tipo de supervisión. ¡Lo hago automáticamente! Lo que intento decirle es que la falta de índices adecuados en Quémaravilla es la causa directa de su problema. Básicamente, su estrategia de creación de índices es mala o inexistente. Administrador: De acuerdo, me parece que ahora ya lo he entendido. Es una información muy útil... y es increíble lo fácil que resulta obtenerla. Pero, ¿ahora podemos guardar este conjunto de sentencias concreto para que los desarrolladores de la aplicación puedan analizarlo más a fondo cuando no estemos metidos en una emergencia?
FIGURA 1 Índices recomendados
www.help400.es
Management
▲ ▲ ▲ www.help400.es
ABRIL 2008 ServerNEWS
23
■ ¿NECESITA AYUDA CON LOS ÍNDICES? LLAME AL “ASESOR” AI: Claro, puede hacerlo seleccionando una o varias sentencias y pulsando el botón Crear instantánea. Esto hace aparecer el recuadro de diálogo Guardar (Figura 3). Sólo tiene que pulsar el botón Aceptar y se creará una nueva Instantánea de antememoria de planes de SQL. Como la propia antememoria de planes de SQL se almacena en memoria, todas las sentencias de esta antememoria se borran durante la IPL. Por lo tanto, puede pensarse en tomar una Instantánea de antememoria de planes de SQL para obtener una copia permanente de estos datos. Para conseguir una visión más completa de las sentencias de las consultas de la aplicación, puede eliminar el filtro Índices recomendados, pulsar el botón Actualizar y obtener una lista de todas las sentencias que hacen referencia a la tabla ORDERS y sus características de rendimiento. Luego, podría seleccionar todas estas sentencias y crear otra instantáFIGURA 2 nea. Ésta le daría una visión más global de todas las Visor de la antememoria de planes de SQL consultas que pueden verse afectadas por índices no encontrados. (En el recuadro “Índices recomendados del CQE y del SQE”, en esta página, se describe una limitación del CQE). Administrador: Ah, acaba de llegar el Sr. Desarrollador. Desarrollador, tenemos un grave problema de rendimiento con la nueva aplicación Quémaravilla. El procesamiento de pedidos se está viendo gravemente afectado por el volumen de pedidos. El Asesor de índices ha acotado la causa y afirma que se debe a la falta de una estrategia de definición de índices. Necesito tu ayuda para arreglar esto inmediatamente. Para ayudarnos a crear índices, el Asesor ha recopilado la información automáticamente. Por favor, Asesor, continúa. AI: Pulsando con el botón derecho del ratón en el índice recomendado de la lista, se puede seleccionar la opción de menú Crear índice para ver el recuadro de diálogo Índice nuevo así como las columnas de claves y el tipo de índice que crear (Figura 4). Hay que pulsar el botón Mostrar SQL en el recuadro de diálogo Índice nuevo para obtener la sentencia Create Index en Ejecutar scripts de SQL que puede usarse para crear
Management
▲ ▲ ▲
24
FIGURA 3 Recuadro de diálogo Guardar de Crear instantánea
Índices recomendados del CQE y del SQE
T
anto el motor de consultas clásico (CQE) como el motor de consultas de SQL (SQE) capturan índices recomendados y los copian en una tabla de índices recomendados. Sin embargo, solamente las sentencias optimizadas para el SQE aparecen en el Visor de la antememoria de planes de SQL cuando el usuario selecciona la opción de menú Mostrar sentencias desde la lista del Asesor de índices. Las órdenes de la base de datos son ejecutar las sentencias que pasan a través del SQE y reducir el número de sentencias que pasan a través del CQE. — J. F.
ServerNEWS ABRIL 2008
FIGURA 4 Recuadro de diálogo Índice nuevo estos índices (Figura 5). También es posible que necesite otro informe que abrevie aún más este índice recomendado: con una adición que he hecho recientemente utilizando un PTF, puedo mostrarle no sólo una lista de índices recomendados, sino también una lista de índices recomendados condensados. A la lista se llega de la misma forma que hasta la lista original de índices recomendados: seleccionando el esquema QUEMARAVILLA de la lista y eligiendo la opción Condensar índices recomendados. En este nuevo informe, he eliminado
www.help400.es
do, selecciona la opción de menú Tabla y elige la opción de menú Mostrar índices (Figura 7). Desarrollador: Hum... Administrador, al examinar los índices existentes, veo el índice que creé en la columna ORDERKEY. Así es como suelo hacerlo, por lo que sólo comprobé la aplicación utilizando un índice de esa columna. No pensé en la posibilidad de que también necesitará esas otras columnas. Estos índices recomendados adicionales parecen lógicos, ahora que pienso en el diseño de la aplicación. Administrador: Ahora que tenemos toda esta información, te doy permiso para crear el índice recomendado, pero, por favor, guarda también la sentencia Create Index para incluirla en nuestro proceso de control de cambios.
La solución más acertada Con el índice recomendado creado, el equipo revisa los resultados.
FIGURA 6 Índices recomendados condensados
FIGURA 7 Mostrar índices existentes
www.help400.es
Administrador: Gracias por la ayuda, Asesor. Has sido de gran ayuda para volver a poner en marcha nuestra aplicación nueva. Me alegro de que vinieras con nuestra actualización al release V5R4. Sin duda eres un gran fichaje para nuestro equipo. AI: Desarrollador, le sugiero que su equipo revise la Instantánea de antememoria de planes de SQL que hemos capturado para determinar si puede mejorarse la estrategia de definición de índices. Administrador, también le recomiendo que capture una Instantánea de antememoria de planes de SQL de las sentencias que piensa que tienen un rendimiento óptimo para esta aplicación. De este modo, podrá comparar este entorno eficiente con las mismas sentencias si vuelve a sufrir problemas de rendimiento.
ABRIL 2008 ServerNEWS
25
Management
buena parte de las conjeturas que debía hacer para seleccionar los índices recomendados más útiles (Figura 6). Como puede ver, he combinado el índice recomendado en tres índices y he resumido la información del número de veces que se ha recomendado para el uso de la consulta. Como desde esta lista también puede usarse la opción de menú Crear índice, recomiendo que el Sr. Desarrollador empiece por esta lista para crear los índices. Verá los índices existentes en una tabla si regresa a la lista de índices recomendados condensados, pulsa con el botón derecho del ratón en el índice recomenda-
Desarrollador: Caramba, ¡mira eso! El tiempo de respuesta de esas consultas se ha reducido drásticamente. AI: Administrador, puedo demostrarle con pruebas cuantitativas que el índice que acabamos de crear es el responsable de esta mejora. Si volvemos al recuadro de diálogo Mostrar índices, podemos consultar las columnas Último uso de consulta y Cuenta de utilización de consulta para probar que este índice es el responsable de la mejora (Figura 9). Esta información nos muestra que al optimizador le gusta nuestra nueva estrategia de índices y que está usando los índices recomendados. También puede verse más información sobre este índice en concreto, como su tamaño y la cantidad de filas que tiene.
▲ ▲ ▲
FIGURA 5 Creación de un índice nuevo con Ejecutar scripts de SQL
Desarrollador: He creado el índice recomendado que había en la lista de índices recomendados condensados. ¿Cómo podemos determinar que funciona bien? ¿Cuál es la fiabilidad de esta información? AI: ¿Aparte del tiempo de respuesta de la aplicación? Es fácil. Actualice el Visor de la antememoria de planes de SQL para ver si el rendimiento de las sentencias de la aplicación Quemaravilla ha mejorado (Figura 8).
■ ¿NECESITA AYUDA CON LOS ÍNDICES? LLAME AL “ASESOR” Administrador: Desarrollador, ciertamente deberíamos usar las habilidades del Asesor para revisar nuestra estrategia de creación de índices en todas nuestras aplicaciones. Ahora, si me perdonáis, tengo que pasarle al director del departamento un informe completo de este asunto.
Tareas de mantenimiento Ahora que se ha evitado el desastre, el Asesor de índices puede realizar algunas operaciones de mantenimiento y volver a supervisar el sistema. AI: Desarrollador, debo indicarle que considero que la tabla SYSIXADV es una especie de tabla histórica, por lo que no eliminaré automáticamente su índice recomendado. Puede que algunas funciones de gestión le resulten útiles para gestionar esta lista. Para eliminar algunas de la lista, sólo tiene que seleccionar las que quiera, pulsar con el botón derecho del ratón sobre ellas y elegir Eliminar de lista. Esta opción puede serle útil si desea eliminar partes concretas de la recomendación que sabe que no van a usarse. Las demás funciones de gestión de la tabla, esquema o base de datos pueden utilizarse pulsando con el botón derecho del ratón en ellas (Figura 10). La opción de menú Borrar todos los índices recomendados suprime todos los índices recomendados de la tabla SYSIXADV para el objeto seleccionado. Esta capacidad es útil si se cree que se ha definido una buena estrategia de índices para la aplicación y se quiere volver a empezar. La opción de menú Eliminar índices recomendados suprime todos los índices recomendados de las tablas que ya no existen. Esta opción es una buena forma de eliminar índices recomendados viejos de tablas que se han usado solamente para pruebas o que ya no se necesitan. Un elemento adicional que no le he mostrado en el informe del asesor de índices son las columnas Índice temporal mantenido (MTI). Estas columnas MTI son importantes porque le permiten indicar en qué momento el índice recomendado le ha sido útil al optimizador que creó automáticamente los MTI. Siguen siendo índices temporales y no sobrevivirán a una IPL, pero cualquier sentencia de consulta del entorno puede usarlos... no sólo la sentencia que hizo que se creará el MTI. Básicamente, el optimizador le está diciendo que este es un buen candidato a índice permanente. Ahora me vuelvo a supervisar el sistema. Adiós.
Management
▲ ▲ ▲
26
FIGURA 8 Visor de la antememoria de planes de SQL con índices actualizados
FIGURA 9 Recuadro de diálogo Mostrar índices con índices nuevos
¿No puede esperar para probarlo? Como se ilustra en este ejemplo, la nueva función Asesor de índices que puede encontrarse en el release V5R4 de DB2 para i5/OS es una gran incorporación a nuestro juego de herramientas cuando se trata de analizar estrategias de creación de índices para las aplicaciones. Puede que algunas de estas mejoras potenciales estén esperando a que las descubra en su empresa. Con las herramientas y la estrategia de definición de índices adecuadas, puede mejorar los tiempos de respuesta de las aplicaciones de la empresa y, en última instancia, proporcionar a sus clientes una experiencia global mejor. ■
ServerNEWS ABRIL 2008
FIGURA 10 Más funciones de gestión
Jim Flanagan trabaja en IBM en el desarrollo de la base de datos para DB2 para i5/OS. Actualmente es el jefe del equipo de desarrollo de iSeries Navigator – Database. Vive en Rochester (Minnesota).
www.help400.es
Management
▲ ▲ ▲ www.help400.es
ABRIL 2008 ServerNEWS
27
El orgullo precede a la compilación por Roger Pence l otro día recibí un interesante y algo angustioso mensaje de correo electrónico de un viejo amigo mío. Lo llamaré Ben. Ben es el jefe de un equipo de programadores y me escribe para preguntarme: “¿Cómo puedo hacer para que mis programadores se enorgullezcan de su código? Les he prestado mi copia de “Code Complete” (un magnífico libro de Steve McConnell sobre técnicas de desarrollo de software), he predicado las virtudes de usar un estilo coherente para facilitar el mantenimiento y las actualizaciones, les he dado ejemplos infinitos. Todo en vano. Hay código escrito por mi equipo que duele a la vista. ¿Qué puedo hacer para que esos programadores me hagan caso?” He parafraseado ligeramente el texto, pero la pregunta final está formulada casi en los mismos términos que la original.
E
Reprogramando a los programadores Aunque cualquier programador puede escribir, y a menudo lo hace, el tipo de código que hace que le duela la vista a Ben, en especial los programadores de RPG veteranos corren mayor peligro de exhibir la clase de rasgos y costumbres que conducen a un mal estilo de programación. Muchos de estos comportamientos están en parte en la raíz del problema de Ben. Mi amigo necesita “reprogramar” estas características de sus programadores. En un esfuerzo por identificar el tipo de programador que queremos reprogramar, vamos a considerar unos cuantos de esos rasgos y costumbres. Los programadores de nuestra organización a quién gustosamente y con frecuencia hay que dar a beber de nuestro refresco de “código completo” son los que:
Management
▲ ▲ ▲
28
• son poco estrictos con la coherencia del código (por ejemplo, usan nombres de variables elegidos aparentemente al azar, no sangran el código o lo hacen de forma incorrecta o usan las mayúsculas y las minúsculas según les place) • no comentan bien el código • prestan poca atención o no tienen en cuenta los estándares, convenios y normas del departamento • escriben código denso y compacto, con muy pocos espacios en blanco • usan los plazos de entrega del proyecto como excusa para programar mal (indudablemente, aquí se puede aplicar el viejo axioma de “si no tienes tiempo de hacerlo bien, ¿cómo vas a encontrar tiempo para volver a hacerlo?”) • justifican la escritura de código infecto a las primeras de cambio diciendo que lo volverán a escribir mejor más tarde... eso no ocurre nunca
ServerNEWS ABRIL 2008
Para los programadores veteranos de RPG, el cuidado y la meticulosidad necesarios para escribir código realmente bueno jamás se les ha inculcado en la disciplina de programar. En los viejos tiempos, ¡todo se escribía en mayúsculas! ¿A quién le preocupa la distinción entre mayúsculas y minúsculas? ¿Escribir espacios? ¡Ja! La insistencia patológica de RPG en las columnas dictaminaba la mayoría de los espacios en blanco (nos los montábamos para poner el asterisco ocasional en la columna 7, pero normalmente era más para comentar la línea siguiente que como espacio en blanco). Incluso los plazos de entrega eran distintos antaño. Antes de la eras de los recortes despiadados de gastos, la subcontratación, las fusiones y las adquisiciones (factores que amenazan con diezmar nuestros programadores), los plazos de entrega eran más del estilo “acabaremos cuando hayamos acabado” que auténticas fechas de vencimiento. Es fácil ver por qué un programador de RPG con ese bagaje puede tender a esquivar las técnicas de desarrollo de software modernas, productivas y útiles, o al menos no ser totalmente consciente de su valor. El trabajo de Ben consiste no sólo en averiguar cómo hacer que esos programadores entiendan los convenios, técnicas y estándares que precisa, sino también en apreciarlos y creer en ellos. La aplicación de los estándares y convenios del departamento no es algo que un programador debería ver como una carga. Al contrario, los estándares deben aceptarse y aplicarse como algo tan fundamental para que un proyecto tenga éxito como que un programa se compile correctamente.
La receta para hacer un refresco de código completo ¿Qué debería hacer Ben para que sus programadores adquieran mejores hábitos de programación?: • Publique convenios y estándares. Los programadores se rigen solamente por lo que pueden ver y comprender. Tiene que publicar formalmente, en Internet o la intranet, donde todo el mundo pueda verlos, los convenios, estándares y normas de programación (y, por lo tanto, sus expectativas). Aunque este no es un proceso totalmente democrático, piense en la posibilidad de publicar los estándares al estilo de un blog con comentarios. Algunos de los renegados puede que tengan alguna buena idea para mejorar los estándares. • Transmita la importancia de crear valor para la empresa (es decir, transmita el “por qué” además del “qué” y el “cómo”). Conforme explique los convenios y los estándares, asegúrese de que los programadores contemplen estos principios en toda su perspectiva. Es importante que vean cómo sus
www.help400.es
¡Manténme informado, Ben!
■
Roger Pence es director de formación de ASNA, una empresa de herramientas para el desarrollo de aplicaciones. Su trabajo consiste en ayudar a los clientes a crear aplicaciones empresariales para el System i basadas en navegadores e Internet. Lleva muchos años escribiendo y dando conferencias sobre el System i.
Suscríbase a
y recibirá gratuitamente el suplemento técnico
▲ ▲ ▲
www.help400.es
ha de mantener informado a todo el mundo con la máxima frecuencia posible. Con un blog del equipo de desarrollo puede mantener informados a los programadores así como recoger información importante. Esta presencia en línea también es un buen lugar donde compartir artículos publicados en línea u otros URL relacionados. • Adopte una metodología y un proceso de gestión del desarrollo de aplicaciones formales. Su equipo será tan bueno como lo sea usted y sus procesos. Los buenos procesos mantienen al equipo concentrado y plenamente consciente de los plazos y las prioridades. Si usted no es la razón de que el equipo tenga éxito, entonces será la razón de su fracaso. (En el artículo “Apúntese un tanto con el desarrollo de software ágil” publicado en el número 177, de octubre de 2007, se describen metodologías y procesos más formales).
Management
proyectos encajan en el plan global. Necesitan saber que su código se encarga de tareas vitales y que mucha gente depende de que funcione. • Organice revisiones regulares del código por parte de los colegas. Reúna a todo el equipo una vez al mes para que los programadores compartan y analicen el código que han escrito recientemente. Esto no solo servirá para empezar a desarrollar un sutil sentido de camaradería, sino también para que los programadores tomen conciencia de su código. El hecho de saber que se tiene que explicar un “código spaghetti” (código mal estructurado) lo hace menos “pastoso”. Además, procure que se planteen pocos retos sobre el código en estas reuniones. Es sorprendente los debates que puede desencadenar un buen reto. (Puede encontrar un ejemplo buscando en Google “fizz buzz”). • Recompense el buen código. Reúna el código compartido en las reuniones de evaluación por parte de los colegas y recompense periódicamente a los mejores autores. Para el código realmente bueno, piense en conceder el premio “Los Spaghetti son para comer”, que podría consistir en un vale canjeable por una cena para dos en un bonito restaurante italiano (¡la pasta ha de estar en el plato, no en el código!) Haga que pertenecer al club de “Los Spaghetti son para comer” sea algo divertido y que despierte el interés de los programadores. • Escoja mentores. Cuando empiece a trabajar activamente con el equipo de programación para subir el listón de su código, observará que algunos programadores enseguida aceptan los convenios y los procesos. Empareje esos trabajadores destacados con los programadores del equipo que son más lentos a la hora de aceptar los principios. • Asegúrese de que los programadores tengan herramientas de las que puedan sentirse orgullosos. Si quiere que sus programadores se enorgullezcan de su trabajo, enorgullézcase de ellos. Asegúrese de que disponen de una biblioteca de libros de programación bien surtida. Si puede hacer que el departamento de Compras se estire, proporcione a cada programador dos monitores grandes. Tener dos monitores aumenta radicalmente la productividad de un programador. Aunque es probable que no pueda convencer a Compras de que cada miembro del equipo tenga una silla Aeron de Herman Miller, asegúrese de que el espacio de trabajo de los programadores sea tan bueno como sea posible. • Predique con el ejemplo. Como jefe del equipo, su código tiene que ser estelar. También tiene que compartirlo frecuentemente (sin actuar como si la Magdalena Kósmika le hubiera concedido el premio al Mejor Código Escrito Jamás). • Haga sus críticas con elegancia. Cuando un programador escriba código poco satisfactorio, hágaselo saber sin demora. Asegúrese por todos los medios de que la conversación se centra en el código del programador y no en el programador. Tras la conversación, lo que queremos es que el programador medite sobre el código, no sobre lo estúpido que es su jefe por exigirle dogmáticamente que “cumpla las reglas”. • Empiece a escribir un blog interno para compartir ideas y pensamientos. No es bueno tener demasiadas reuniones, pero
ABRIL 2008 ServerNEWS
29
FACILIDADES PARA ENCONTRAR AYUDA SOBRE EL SYSTEM I Cuando se quiere investigar sobre un tema relativo al System i, podemos ir al IBM Information Center o podemos usar la página de búsqueda del soporte técnico de IBM System i, en www-912.ibm.com/ImprovedSearch/searchoptions.jsp. Aquí, puede buscar la información relacionada que hay en los APAR, PSP, Cartas de presentación de PTF, Libros rojos, Bases de datos de referencia de software, Resúmenes de incidentes, Servicios de formación de IBM y el Information Center. Hice una búsqueda de “SSO” (inicio de sesión único) y quedé impresionado por el gran volumen de datos presentados en un formato lógico. ¡Pruébelo! Le gustará. — Dan Riehl
HABILITAR LA CUENTA DE ADMINISTRADOR EN VISTA Un cambio importante en Vista es que, por omisión, la cuenta de administrador está inhabilitada. Sin embargo, incluso en Vista, algunas aplicaciones simplemente no funcionarán a menos que se ejecuten con los permisos de seguridad de la cuenta de administrador. Para habilitar esta cuenta de Vista, abra el menú Inicio, pulse con el botón derecho del ratón en Equipo y seleccione Organizar. En el recuadro de diálogo que aparece, abra el nodo Usuarios y grupos locales y elija Usuarios. Seguidamente, pulse con el botón derecho del ratón en la cuenta de administrador y seleccione Propiedades. Allí, desactive la propiedad “Cuenta desactivada”. — Michael Otey
Trucos y técnicas
▲ ▲ ▲
30
CALCULAR EL NOMBRE DE UN ÁREA DE DATOS DURANTE LA EJECUCIÓN Pregunta: Me gustaría leer un área de datos en un programa escrito en RPG. Parte de los requisitos es que el nombre del área de datos puede cambiar. ¿Hay alguna forma de hacerlo en RPG? ¿O tengo que llamar a un programa escrito en CL? Respuesta: Sí, hay una forma de hacer esto en RPG. Puede especificar que se use una variable para el nombre del área de datos especificando el valor especial *VAR en la palabra clave DTAARA.
ServerNEWS ABRIL 2008
RPG permite leer un área de datos de dos formas distintas. Un área de datos se puede leer a la vieja usanza, utilizando una estructura de datos externa (UDS), o se pueden usar los códigos de operación IN y OUT. La razón de que quiera clarificar este punto es que frecuentemente hablo con gente que confunde ambos métodos. Piensan que hay que definir la estructura de datos con UDS y usar los códigos de operaciones. Aunque en RPG se pueden combinar ambas técnicas, en este caso no funcionaría porque el nombre del área de datos debe conocerse cuando UDS la lee al inicio del programa y eso significa que el nombre no puede calcularse en las especificaciones C. Cuando se define una estructura de datos con UDS, el área de datos debe ser de tipo carácter y el programa la lee automáticamente al iniciarse y se copia automáticamente al finalizar. Por ejemplo: D MiAreaD UDS D lastdate
10A
Cuando se inicia el programa que contiene este código, automáticamente lee un área de datos denominada MiAreaD. Tiene que ser un área de datos de tipo carácter de 10 caracteres de longitud. El campo lastdate puede cambiarse de modo que cuando finalice la ejecución del programa, este campo se actualice en el disco. Si quiere que la estructura de datos tenga un nombre distinto en el programa que el nombre que tiene el área de datos en el disco, puede usar la palabra clave DTAARA, como se puede ver en la Figura 1. Este método tiene algunos inconvenientes: • El área de datos se lee automáticamente cuando se inicia el programa, por lo que para entonces ya debe conocerse el nombre del área de datos. En consecuencia, no se puede calcular el nombre en las especificaciones C. • Las estructuras de datos son campos de tipo carácter, por lo que el área de datos siempre debe ser de tipo carácter. • Como RPG abre el área de datos para actualizarla, se pone un bloqueo en ésta al iniciarse el programa y este bloqueo impide que otros programas accedan al área de datos. Si otro programa ya ha bloqueado el área de datos, el programa se detendrá y esperará a que el bloqueo se libere antes de iniciarse. El soporte más nuevo (y, no obstante, ya tiene sus años) dado a las áreas de datos permite que el programa defina un campo o estructura de datos como un área de datos, la lea con el código de operación IN y la actualice con el código de operación OUT, como se muestra en la Figura 2. En este ejemplo, el área de datos OTHERNAME no se lee automáticamente durante el inicio porque no he escrito una U en la columna 23 de las especificaciones D. En cambio, se lee cuando se ejecuta el código de operación IN y se graba cuando se ejecuta el código de operación OUT. Si no se quiere bloquear el área de datos al leerla, se puede
www.help400.es
FIGURA 1 Especificar otro nombre para la estructura de datos D MyDtaAra D lastdate
UDS
DTAARA(OTHERNAME) 10A
FIGURA 2 Utilizar los códigos de operación IN y OUT para leer y actualizar el área de datos D MyDtaAra D lastdate
DS
— Scott Klement
DTAARA(OTHERNAME) 10A
/free
IDENTIFICAR ARCHIVOS EN SPOOL CON *SELECT
IN *LOCK MyDtaAra; lastdate = ’12/13/2014'; OUT MyDtaAra; /end-free
FIGURA 3 Especificar DTAARA en un campo decimal empaquetado D DailyTotal s 11P 2 DTAARA(‘RECVLIB/DAYTOTAL’) /free IN DailyTotal; msg = ‘Daily total = ‘ + %editc(DailyTotal:’L’); dsply msg; /end-free
FIGURA 4 Calcular el nombre del área de datos en función de la fecha actual D CoolName D DailyTotal
para el nombre del área de datos, como se puede ver en la Figura 4. En este ejemplo, el nombre del área de datos se calcula en función de la fecha actual. Si hoy fuera 12 de julio de 2008, leería un área de datos denominada TOT080712 en la biblioteca RECVLIB. Bloquea el área de datos cuando la lee. A continuación, cambia el valor del área de datos y usa el código de operación OUT para guardar esos cambios en disco.
s s
21A 11P 2 dtaara(*Var:CoolName)
/free CoolName = ‘RECVLIB/TOT’ + %char(%date(): *YMD0); IN *LOCK DailyTotal; DailyTotal = 123456789.87; OUT DailyTotal; /end-free
Algunos de los mandatos de gestión de archivos en spool de CL son compatibles con el valor especial *SELECT para el parámetro FILE (nombre del archivo en spool). Este valor especial indica a un mandato que consulte el parámetro SELECT para definir los archivos en spool que hay que procesar; de esta forma, puede hacerse que un bloque de archivos en spool resulte afectado por un mandato. Los criterios de selección que pueden especificarse en el parámetro SELECT son estos: • Usuario (nombre, *CURRENT, *ALL) • Dispositivo de impresión (nombre, *ALL, *OUTQ) • Tipo de formato (tipo de formato, *ALL, *STD) • Datos de usuario (datos de usuario, *ALL) Por ejemplo, para mover todos los archivos en spool con un tipo de formato FACTURA desde la cola de salida de impresión BCNPR01 a la cola de salida MADPR05, ejecutaría el mandato Cambiar atributos de archivo de spool (CHGSPLFA) siguiente: CHGSPLFA FILE(*SELECT) SELECT(*CURRENT BCNPR01 FACTURA) OUTQ(MADPR05)
+ +
Los siguientes mandatos de archivos en spool disponen de FILE(*SELECT) como opción: Cambiar atributos de archivo en spool (CHGSPLFA) Suprimir archivo en spool (DLTSPLF) Retener archivo en spool (HLDSPLF) Liberar archivo en spool (RLSSPLF) — Carsten Flensburg
Dan Riehl, Michael Otey, Scott Klement y Carsten Flensburg son redactores técnicos veteranos de System iNEWS
ABRIL 2008 ServerNEWS
▲ ▲ ▲
www.help400.es
• • • •
Trucos y técnicas
eliminar el valor especial *LOCK del código de operación IN y así no se solicitará el bloqueo. Este método también posibilita la lectura de áreas de datos decimales (las creadas con TYPE(*DEC) en el mandato CRTDTAARA). Esto se consigue especificando la palabra clave DTAARA en un campo decimal empaquetado del programa (Figura 3). En este fragmento de código también se muestra cómo se puede especificar el nombre de biblioteca en la palabra clave DTAARA. Ahora (¡por fin!) responderé a la pregunta. Desde el release V5R2, se puede especificar el valor especial *VAR en la palabra clave DTAARA. La opción *VAR permite usar una variable
31
GUIA
32 ServerNEWS ABRIL 2008
www.help400.es
GUIA
MANTENIMIENTO Y BROKERAGE INFORMÁTICO, S.L. Mantenimiento / Alquiler y Brokerage / Venta / Redes Backup Center Pere IV 78-82, 7º 3ª 08005 - Barcelona (Spain) T. 34 934 854 427 Fax 34 934 850 168
www.help400.es
P.T.A. Edificio CENTRO EMPRESAS 29590 Málaga
ABRIL 2008 ServerNEWS 33
confidencial
por Carlos Bell
El menú de IBM para los del AS/400 Cuando en el número anterior os decía que según mi olfato, algo gordo se estaba cocinando en las marmitas de IBM, era consciente de que cuando lo leyerais ya se habría desvelado eso de la “New Power Equation”. Permanecí pendiente de las noticias para ver cuál era el menú servido a los fieles del AS/400... De primer plato, ¡vaya guiso más suculento!: “Unificación de plataformas a la Power Systems”. Un sabor exquisito, algo muy difícil de igualar por buenos que puedan ser otros cocineros. Eso de la fórmula me recordó enseguida a Obelix y la marmita del druida. De segundo nos sirvieron una revolucionaria novedad culinaria: “Una reducción a sistema operativo con esferificación incluida”. ¿La verdad? Como no estoy acostumbrado a la nueva cocina, lo calificaría de un auténtico desaguisado, un bodrio, vamos. En las manos del tan afamado chef de IBM, aquella célebre plataforma integrada de hardware y software de junio de 1988 ha acabado reducida a una simple i esferificada. Aunque a mi su sabor no me guste en absoluto, tiene mucho mérito: nunca antes la integración había sido tan manifiesta como la que simboliza esa letra “i”. Nada voy a decir que no se haya dicho ya. O tal vez sí: En google.es, en lugar de buscar “i” (lo que no dejaría de ser una solemne tontería) buscad “comotellames” (eso, y sin etrecomillar ya vale). Ahí, y ocupando la primera posición, hallaréis el porqué lo considero un desaguisado (gracias foreros). Ahora sólo faltaría que de postre nos sirvieran un “i for Windows” para comprobar si un sistema tan bueno como el nuestro puede acabar igual que el OS/2. De hecho, nada nuevo en la cocina. Según os comenté en el número 119, en Julio de 2001 corrió el rumor de que IBM preparaba el cambio de nombre del OS/400 puesto que había registrado dos nuevas marcas relacionadas con él: la marca OS/4i y la i5/OS, registradas el 5 y el 15 de Junio, respectivamente. En aquel entonces me pregunté por qué, si IBM quería añadir la letra “i” de integración al nuevo nombre de su sistema operativo no registraba la marca iOS, mucho menos ligada a un hardware específico. Consultando en Internet hallé la respuesta: IOS son las siglas del “Internetwork Operating System” desarrollado por William Yeager en la Universidad de Stanford, cuyos derechos y marca adquirió Cisco Systems en 1987. Todo mi gozo en un pozo: en mayo de 2005 IBM cambió el nombre de OS/400 a i5/OS y ahora, en lugar de haber registrado la marca OS/Power por si acaso, el nombre del i5/OS se ha reducido a la simple letra “i”, o “i for Business”, o “IBM i 6.1” si no se puede digerir un nombre tan corto. Eso es todo amigos... ¡buen provecho! ■
+
Windows Vista: no todo lo que reluce es oro Según el Director financiero de Microsoft, Chris Liddell, las ventas de Microsoft fueron tan potentes el primer trimestre de 2007, que es lógico que la cifra se haya reducido un 24% en el primer trimestre de este año. Liddell manifestó que,
INDICE DE ANUNCIANTES ABRIL 2008 Empresa
Página
AMERICAN TOP TOOLS ..................... Interior portada AMERICAN TOP TOOLS ....... Interior contraportada CACOVAI ................................................................................ 23 GUÍA ................................................................................. 32, 33 IBM .................................................................. Contraportada SOFTWARE GREENHOUSE .............................................. 15 SUSCRIPCION ServerNEWS ............................................ 27 TANGO/04 ................................................................................ 9 VISION SOLUTIONS ............................................................ 15
34 ServerNEWS ABRIL 2008
“este descenso no está relacionado con Windows Vista en absoluto. Lo que si ha tenido gran influencia es el aumento de copias ilegales, particularmente en Asia”. Para Allan Krans, analista de Techology Business Research Inc., “ha pasado más de un año desde el lanzamiento de Vista, y este descenso en los beneficios en el inicio del ciclo de vida del producto no es un signo positivo”. Microsoft prefiere ver el lado positivo, y ha manifestado que llevan vendidas más de 140 millones de licencias de Windows Vista. Sin embargo, hay otras realidades que Microsoft no toma en cuenta, y que son un indicador del grado de descontento respecto a Windows Vista. Muchos clientes prefieren quedarse con Windows XP, lo que ha llevado a fabricantes como DELL a seguir ofreciéndolo en sus equipos. A esta iniciativa de defender el derecho a no usar Windows Vista, se han unido HP y Lenovo. Además, Mac OS y Linux están ganando terreno. Las ventas de Apple han registrado un crecimiento del 51% respecto al año anterior. El software libre, como Linux, se presenta como una alternativa cada vez más atractiva y funcional, por lo que muchos usuarios prefieren migrar a uno de estos dos sistemas en lugar de seguir con el sistema operativo de Microsoft. ■ Como sabes, esta información es estrictamente confidencial. Aunque nosotros neguemos haberlo dicho o escrito, te autorizo a que obres en consecuencia www.help400.es