184
editorial
Mayo del 2008 ue este mes celebremos en España el bicentenario del levantamiento del pueblo de Madrid contra las tropas napoleónicas o que coincida con cuadragésimo aniversario del mítico “mayo del 68” del que tanto se ha hablado, no hacen más que condicionar el título y el contenido de esta editorial en la que sólo pretendía comentar la esperanza que subyace en todo acto de rebeldía. En la rebelión hay ilusión, hay lucha, hay esperanza y hay pasión, aunque sea la realidad la que se acabe imponiendo. La Constitución de 1812 recogía muchos de los principios fundamentales que siguen vigentes en nuestros días. Algunos los tenemos tan asimilados que parece increíble que en otro tiempo las cosas no fueran así. Pero lo cierto es que, en el momento de su proclamación, significaron una auténtica ruptura con lo que existía. Principios tan habituales como la libertad individual, la libertad de prensa, o la inviolabilidad del propio domicilio son derechos que disfrutamos ahora, pero que entonces se plantearon como absolutamente innovadores. Sin embargo, la Constitución de 1812 fue derogada por Fernando VII en 1814. Tampoco en aquel mayo del 68 llegó la imaginación al poder, como pedía Sartre, ni las guerras dieron paso al amor, como se pedía en los eslóganes de los estudiantes. Todo quedó en una utopía que, no obstante, ha ido cambiando la forma de ser y de actuar de la sociedad actual. De aquel año también nos queda el estreno de la película “2001, una odisea del espacio”, una película de ciencia ficción que ya mencioné en la editorial del número 110 (de enero de 2001) cuando, a propósito del superordenador HAL9000 que controlaba la nave espacial, comentaba el posicionamiento de la marca “IBM” en el mundo empresarial. Cuando la cinta se estrenó hace 40 años, vivir y trabajar en el espacio a tiempo completo también parecía una utopía y actualmente hay tres ocupantes en la Estación Espacial Internacional (EEI) los 365 días al año y controlan uno de los proyectos de ingeniería más complejos de la historia. Hasta ahora, como profesionales del “entorno AS/400” nos habíamos identificado con una máquina y un sistema operativo de IBM, independientemente de cual fuera su nombre. En mayo del 2008, y pese a los últimos cambios, la situación sigue siendo la misma. Como veremos en este número, el ecosistema formado por los Power Systems y el IBM i como sistema operativo es tan importante que IBM sigue apostando por él y aportando nuevos recursos y novedades. De nosotros depende aprender a utilizar las nuevas herramientas en beneficio de las empresas en las que prestamos servicio. Finalmente, y sin que pueda considerarse un acto de rebeldía, el término o la marca “AS/400” seguirá utilizándose durante mucho tiempo, al menos para identificarnos como colectivo o para hallar información en Internet.
Q
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
Antonio Montía a.montia@help400.com MAYO 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
IBM revitaliza el desarrollo de aplicaciones para el System i en la V6R1 por George N. Farr
producción
El software Rational de IBM revitaliza las herramientas para el desarrollo de aplicaciones y los compiladores de i5/OS con el cambio de nombre y de presentación de algunos productos, la adición de nuevos productos cliente, las mejoras realizadas en la V6R1 de RPG IV y la introducción del nuevo lenguaje para aplicaciones empresariales de i5/OS, EGL.
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
16
edita
RDi y RDi SOA: la opinión de los expertos por Chris Maxcer Las formas en que se desarrollan las aplicaciones cambian y la estrategia anunciada este año por el grupo de software Rational de IBM ha sorprendido al mundo del System i. Sepa de primera mano que opinan los expertos del sector
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: help400@help400.com 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: viacomp@guate.net www.viacomp.net Perú COMMON PERU Bajada Balta 131, Of. 10, 2º Piso Miraflores Lima 18, PERU Telf. y Fax: 46 31 32 Paraguay ANGEL LIERNUR E HIJO P.O. BOX 2448 ASUNCION - PARAGUAY 427661@telesurf.com.py e-mail: aliernur@yahoo.com
4 ServerNEWS MAYO 2008
opinión
8
Siempre es posible mejorar por Jef Sutherland Aunque el autor no esté a favor de los cambios y se muestre reacio a sacrificar la velocidad de una aplicación interactiva basada en texto por el atractivo de una interface gráfica, admite que siempre es posible mejorar una aplicación, y más si ésto redunda en beneficio de la empresa. www.help400.es
Nº 184 MAYO 2008
www.help400.es
en directo
20
COMMON Europe, Barcelona ‘08 por Carlos Valero Este año el Congreso Internacional de Common Europe se ha celebrado en España. Aunque el resumen de estos tres días sea muy breve, nos dará una idea de lo que significa poder participar como profesionales del entorno en un encuentro como éste.
management
22
Herramientas portátiles para el System i por Tim Massaro Cada día es más habitual contar con una llave de memoria USB con una serie de aplicaciones que se pueden ejecutar directamente en el PC sin tener que instalarse previamente. En este articulo se presentan varias que nos permitirán interactuar con el System i.
programación y sistemas
24
Cómo escribir programas de servicio por Erwin Earley Los programas de servicio llegaron con el ILE pero su uso todavía no se ha generalizado. Para avanzar en el desarrollo de nuestras aplicaciones, es el momento de volver a los conceptos básicos y explicar qué es y cómo se diseña y escribe un programa de servicio.
34
estrictamente confidencial
forum.help400
¿Quo vadis, IBM I?
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
por Carlos Bell Tras años de considerar que la ventaja del AS/400 frente a otras arquitecturas se basaba en la integración del sistema operativo con un hardware muy específico, ahora nos damos cuenta de que en este hardware el “IBM i” a de competir con otros sistemas operativos mucho más extendidos.
HELP400 Suplemento Técnico i
1
Consejos para la gestión de redes y sistemas Por varios autores En este artículo encontrará una recopilación de útiles consejos proporcionados por los lectores y redactores técnicos de la revista System iNEWS sobre temas relacionados con Copias de seguridad y recuperación; iSeries Access; iSeries Navigator; Impresoras e impresión; y la gestión de sistemas
www.help400.es
SECCIONES HABITUALES 3 6
Editorial Novedades
40 42
Guia Confidencial MAYO 2008 ServerNEWS 5 MAYO 2008 ServerNEWS 5
novedades HP adquiere EDS El proceso de compra se formalizará el próximo semestre y convertirá a HP en la segunda compañía más grande del sector de servicios ewlett-Packard ha confirmado la compra de la compañía de servicios tecnológicos Electronic Data Systems Corp (EDS) por 13.900 millones de dólares (unos 8.990 millones de euros). La compra se hará efectiva a partir de mediados de año y ya ha sido aprobada por los consejos de administración de ambas empresas. Esta transacción va a suponer un gran impulso para el área de servicios de HP, que se convertirá en la segunda compañía del sector, después de IBM. Según informes de la empresa de consultoría Gartner –citados por la prensa económica internacional–, en la actualidad IBM acapara un 7,2% de la cuota de mercado, mientras que EDS y HP, los nuevos socios, ostentarían un 3% y un 2,3%, respectivamente. Con esta compra, Hewlett-Packard da un salto cuantitativo y cualitativo muy importante en su pugna por erosionar el liderazgo de IBM al mismo tiempo que refuerza su presencia en un segmento estratégico para el grupo, caracterizado por ofrecer interesantes márgenes e ingresos estables, aun en momentos económicos poco propicios como el actual. De hecho, no es la primera vez que HP acomete una operación de tal envergadura puesto que en 2002 se fusionó con Compaq, en una operación valorada en casi 19.000 millones de dólares. Según los analistas, esta adquisición, más allá de consolidar a HP como la segunda empresa mundial en servicios de tecnologías de la información y la comunicación (TIC), tiene otro trasfondo de gran relevancia. La operación refuerza el poder de EE.UU. en este negocio. Los datos son claros. Entre las cinco primeras compañías del mundo en este área hay cuatro estadounidenses: IBM, la nueva HP-EDS, Accenture y Computer Sciences Corp., que en su conjunto tienen una cuota de mercado del 24%, según datos de la consultora Gartner. Sólo la japonesa Fujitsu Services, con una cuota del 4%, tiene sitio en este privilegiado ranking. El anuncio de la compra de EDS ha convencido a los analistas de la necesidad de nuevas fusiones a corto plazo. Ahora, entre empresas de menor tamaño. Según comentaba en Cinco Días, Ivan González, director de Análisis de Penteo, ve movimientos en torno a grupos europeos como Capgemini, T-Systems –filial en este área de Deutsche Telekom–, Atos Origin o la española Indra, pero, sobre todo, alerta de que no hay que perder de vista a los gigantes indios como Infosys Technologies Ltd, Tata Consultancy Services Ltd y Cognizant Technology Solutions Corp.
H
El nuevo grupo en España Según el artículo de Cinco Días, en España la fusión de HP y EDS sitúa al fabricante informático como uno de los principales proveedores de servicios. El grupo contará con una plantilla de 5.000 empleados en este área de negocio, de los que 3.200 vienen de la firma adquirida. Y su facturación anual en este segmento superará los 600 millones de euros, la cifra resultante de los ingresos de ambas firmas por separado en 2007. En su conjunto, HP registró en su filial española unos ingresos de 2.215 millones de euros. Ahora, con EDS, la empresa informática se encuentra con un socio que cuenta con buenas capacidades en servicios de hosting y gestión de centros de procesos de datos y de comunicaciones en el mercado español. Por ejemplo, EDS posee un importante centro de outsourcing en Barcelona. Sin duda una posición fuerte para competir con otros gigantes de los servicios en España como IBM o Accenture. Esta última tiene actualmente 12.000 empleados en España (es el tercer país del mundo por plantilla por detrás de la India y EE UU) y durante su último ejercicio fiscal (terminado el 30 de septiembre) facturó 845 millones de euros. Aún así, la nueva HP-EDS se enfrenta a algunos retos locales. La firma adquirida, que cuenta con grandes clientes como Telefónica, Repsol, La Caixa y Bankinter, ha visto como en los últimos años perdía capacidad para crecer. “Dentro de la gran empresa ya tiene una gran cuota de mercado, que tiene difícil ampliar, y le cuesta encontrar clientes en la pequeña y mediana empresa porque EDS no es el proveedor que ofrece los precios más atractivos”, explican distintos analistas. Y es que la nueva HPEDS, además de rivalizar por los clientes con grupos internacionales como IBM, Accenture, T-Systems, Atos Origin, Fujitsu Services, Capgemini o Steria, debe hacer frente a la competencia local. Indra, Telvent, Tecnocom, Everis, Ibermática o IT Deusto que “hacen ofertas más ajustadas”, continúan. Al mismo tiempo, HP sigue manteniendo una posición muy fuerte en el segmento del hardware, con presencia en numerosos segmentos como los ordenadores personales, los servidores empresariales, las impresoras, las PDA y los teléfonos inteligentes. Para más información, www.hp.com/hpinfo/newsroom/
6 ServerNEWS MAYO 2008
■ Nortel lanza una solución de comunicaciones unificadas open source Nortel, actuando en consecuencia con su afirmación respecto del cambio de naturaleza de la telefonía, comercializará SCS500 a través de empresas especializadas en TI, en lugar de por medio de revendedores de sistemas telefónicos. Así, la suite estará disponible como una aplicación software, así como sobre appliances basadas en Dell y servidores IBM System i. SCS500 está basada en el proyecto de código abierto SIPfoundry sipXecs y funciona con Outlook y Exchange, de Microsoft, o con Lotus y Domino, de IBM. Con ella, Nortel pretende llevar las comunicaciones unificadas a empresas con entre 30 y 500 empleados, según informa Charlie Wade, responsable de marketing de producto empresarial de Nortel en Europa. Esta solución combina telefonía móvil y fija con capacidades de correo electrónico, fax, presencia y otras aplicaciones de mensajería. Puede proporcionar un único punto de contacto para cada usuario, con un buzón de entrada unificado y un único nombre de usuario y contraseña. Según Wade, hasta ahora, los grandes suministradores de comunicaciones unificadas han desatendido a las pymes. “Nuestras alianzas con IBM y Microsoft han estado en el pasado enfocadas a organizaciones con más de 500 empleados”, ha explicado Wade. “Incluso Microsoft considera que éste es el segmento para el que su servidor OCS (Office Communications Server) se hace interesante”. El nuevo software de Nortel, completamente basado en protocolo SIP, se insertará en sus ofertas BCM50, para empresas pequeñas, y CS1000, para entornos de mayor tamaño. Podrá funcionar con Websphere, así como con Lotus Domino. IBM comercializará SCS500 en su plataforma System i, sobre la que la aplicación de Nortel correrá sobre su propia partición Linux dedicada. Para más información, Telf.: 917.094.000 www.nortel.com www.help400.es
■ Assertio: Soluciones de Gestión Comercial para Empresas sobre iSeries
■ Caja de Burgos elige IBM Cognos 8 como plataforma de Business Intelligence
Assertio IT desarrolla e implanta soluciones informáticas avanzadas (ERP, CRM, B2B, B2C, BI) para PYMES dirigidas especialmente a los sectores de fabricación y distribución. Las soluciones personalizadas de Gestión Comercial para Empresas sobre la base de datos DB2 nativa del iSeries e interfaz Web de Assertio se han desarrollado a partir de la experiencia profesional en cuatro áreas: · Consultoría empresarial: Tenemos una perspectiva global de las necesidades y la manera de trabajar de las empresas: desde las oficinas de gerencia hasta los almacenes, pasando por fabricación, puntos de venta, reparaciones, o departamento de marketing. · IBM DB2 - Análisis, programación y administración de bases de datos: Los datos son el activo más importante para la gestión de una empresa, y la experiencia, además de una comunicación correcta con el cliente, son clave para crear un diseño versátil y ampliable de la base de datos. · LAMP - Interfaz Web: Las siglas LAMP vienen de Linux Apache, mySql y PHP/Perl/Python. Estos productos constituyen la plataforma de código abierto más versátil y extendida para la publicación de aplicaciones en Internet y con ellos se desarrolla la interfaz de usuario que permite trabajar desde un navegador Web (Internet Explorer v5.0 o superior o Mozilla Firefox). · Servidores IBM iSeries - Infraestructuras de TI: La implantación de una plataforma de hardware fiable y un sistema operativo estable son fundamentales para evitar interrupciones y costosos mantenimientos. Para más información, Telf.: 934.097.026 www.assertio.es
COGNOS, una compañía IBM, líder en soluciones de Business Intelligence y para la gestión del rendimiento corporativo, ha firmado un acuerdo con Caja de Burgos para la implantación de la plataforma IBM Cognos 8 como base corporativa de los proyectos de Business Intelligence de la entidad financiera. Tras una evaluación de varios meses sobre las principales herramientas del mercado en el área de Business Intelligence, Caja de Burgos optó por la plataforma Cognos 8 BI ya que era la que mejor se adaptaba a sus requerimientos de reducción de costes y facilidad y agilidad en el mantenimiento de las múltiples aplicaciones manejadas por sus usuarios de negocio. “Estandarizando en una plataforma, esperamos conseguir ahorros importantes al tiempo que damos mejor servicio a los usuarios”, explica Juan José Antolinez, director de desarrollo de Caja de Burgos. La plataforma IBM Cognos 8 atiende las necesidades de las grandes empresas y de las organizaciones de tamaño medio, capitalizando las inversiones en ERPs y transformando los datos en información sobre rendimiento útil y relevante para mejorar la toma de decisiones. La posibilidad de acceder a la información enfocada para cada usuario de negocio y las avanzadas capacidades de análisis dan lugar a un nuevo conocimiento para los empleados, desde los responsables de línea a los directivos, con el que reciben información empresarial estratégica donde, cuando y cómo la necesiten, facilitando el despliegue a los administradores de TI. Para más información, Telf.: 914.952.103 www.cognos.es
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 (help400@help400.com), 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
■ ING confía en Progress Software para diseñar su plataforma de operaciones en Bolsa ING Wholesale Banking, institución financiera de origen holandés que opera a escala mundial, ha anunciado la disponibilidad de una nueva plataforma que combina la posibilidad de realizar operaciones en Bolsa y acceder directamente a los mercados emergentes del continente europeo. Destinada a los clientes de ING, esta plataforma de servicios se basa en el uso de algoritmos propietarios construidos con la solución Apama de Progress Software. ING ya contaba con una amplia experiencia en el diseño y ejecución de algoritmos para efectuar operaciones de valores en la zona del Benelux. Ahora traslada esa experiencia al resto de mercados europeos, enfocándose en Hungría y Polonia e incorporando nuevas
capacidades relacionadas con la ejecución de estrategias. La plataforma de intercambio financiero Progress Apama basada en algoritmos comprende una suite de herramientas pensadas para el modelado y la ejecución de sofisticados algoritmos que facilitan la gestión de operaciones en los mercados de valores. Igualmente, Apama cuenta con un motor CEP (Complex Event Processing, Procesamiento de Eventos Complejos) que permite detectar, analizar y actuar sobre patrones de eventos que tengan lugar tanto en el propio mercado como en el flujo de datos correspondiente a las operaciones de compra, todo con un nivel de latencia tremendamente bajo. Con una plantilla que supera los 120.000 empleados, ING está formado por un amplio espectro de destacadas compañías que sirven a sus clientes bajo la marca ING. Para más información, Telf.: 933.689.990 www.progress.es
■ Activa, tu caja: el nuevo sistema de pago automático de SABECO SABECO, cuya infraestructura informática está basada en servidores iSeries de IBM, ha puesto en marcha el sistema “Activa, tu caja”, la nueva área de pago automático para los supermercados de las marcas SABECO y SIMPLY MARKET. El sistema, desarrollado e implantado por IBM, consta de cuatro cajas de pago automático para compras de cesta, que permite el cobro de forma sencilla y sin necesidad de esperar colas, admitiendo pago en metálico o con tarjetas. El sistema desarrollado para SABECO se compone de 4 cajas por tienda interconectadas entre sí. Las cajas de pago automático se integran perfectamente en el espacio de la tienda, debido a lo compacto y ergonómico de su diseño. El módulo multimedia de información y ayuda que guía a los clientes en varios idiomas, dota al sistema de una usabilidad y manejabilidad sin precedentes. Además, las cajas están adaptadas para cualquier tipo de colectivo con minusvalías y ofrece gran manejabilidad y funcionalidad para tareas de mantenimiento y manipulación del sistema. El sistema de IBM se desarrolla sobre estándares abiertos para permitir la integración con el aplicativo y la tecnología de tienda existente. Esto permite una mayor flexibilidad en el diseño del sistema y una reducción considerable de los plazos de implantación. Además, la pantalla táctil y el resto de elementos del sistema están dotados de la mayor robustez y seguridad para garantizar un servicio continuado y estable en la tienda. Para más información, www-03.ibm.com/press/es/es/index.wss MAYO 2008 ServerNEWS 7
opinión
por Jef Sutherland
Siempre es posible mejorar e encanta escribir en esta columna. No tengo que ser experto en nada. Ni siquiera he de tener razón. Sólo tengo que explicar lo que veo y lo que pienso. Para este artículo en concreto me he inspirado en otros dos. El autor del primero, publicado en eWeek, opina que los mainframes siguen ahí y están en auge. El segundo es el típico artículo de fin de año y afirma que todos deberíamos tener en cuenta el pasado cuando pensamos en el futuro. Muchos de los argumentos del artículo de eWeek sobre los mainframes pueden aplicarse al i5. El hecho es que el i5 sigue existiendo y avanzando en algunos campos... lo que no significa que piense que es perfecto. Y, sin duda, es IBM la que mantiene vivas estas plataformas que no son Wintel. Pese al maleficio que muchos han lanzado a nuestro estimado i5, tengo la esperanza de que, como los mainframes, prospere durante muchos años más. Obviamente, no va a tener éxito gracias a que una estupenda campaña de promoción haga que las empresas de pronto se den cuenta del error que han cometido todos estos años al adquirir otras plataformas y, figuradamente, las tiren por la ventana. ¡Aunque me encantaría verlo! Tendrá éxito porque muchos de nosotros nos negaremos a cambiar, seguiremos apoyando la plataforma y demostraremos a IBM nuestra eterna lealtad pagando religiosamente por el servidor y por su mantenimiento. Poderoso caballero es don dinero. Si un proveedor de plataformas Wintel realmente piensa que me interesa su tecnología “quad core”, “quad-quad core” o el último revés de Vista, está equivocado. ¿Me interesan los últimos comunicados sobre el hardware y el software del i5 y el rumbo que sigue? Sin duda, fervientemente. Y espero, simplemente espero, que IBM consiga que el i5 tenga éxito en todos los frentes. Y si IBM quiere saber lo que tiene que hacer con el equipo para que sea de mi entera satisfacción, estaré encantado de compartir mis ideas con ellos. Seguro que usted piensa lo mismo. Además de volver la mirada atrás, también es aconsejable hacer un ejercicio de introspección. ¿Estoy progresando? ¿Estoy ayudando a que la empresa que me paga la nómina vaya por el buen camino? En el pasado se han mofado de mí por defender las aplicaciones de pantalla verde y por dar la lata a IBM para que dejara de penalizar a las empresas que quieren seguir utilizando la emulación 5250. Pero tal vez este punto de vista esté desfasado y puede que algunas personas me vean como alguien reacio a los cambios, así que profundizaré en mi reflexión. Lo siento. No estoy a favor de los cambios. Desde el punto de vista de la empresa y del desarrollo, en este momento lo único que veo de la migración de las aplicaciones basadas en texto es su precio. Que conste que me gustaría que IBM nos ofreciera algunas herramientas de desarrollo baratas y fáci-
M
8 ServerNEWS MAYO 2008
les de usar para poder utilizar nuestras aplicaciones en un navegador. Pero que no se le ocurra mencionarme WebSphere a menos que tenga a mano una silla para sentarme. Venga, insúlteme... bueno, no, espere un momento. Antes déjeme decir que estoy de acuerdo en que cualquier departamento de informática que no haya investigado o adoptado algún tipo de desarrollo de aplicaciones web probablemente esté anticuado y sea reacio a los cambios. Durante varios años hemos usado la plataforma de IBM (AS/400, iSeries o i5) como servidor web. Desde las primeras aplicaciones Net.Data hasta las modernas aplicaciones CGI que intercambian datos en XML, hemos visto cuáles son los beneficios del desarrollo de aplicaciones web. Cuando tuvimos noticia de la conmoción causada por Ajax, experimentamos y comprendimos que Ajax era un objeto bastante sencillo que podía explotarse en una página de HTML y que la mayor parte del trabajo se hacía en JavaScript. También puedo afirmar que cualquier programador de RPG puede aprender JavaScript. Eso nos llevó a desarrollar aplicaciones basadas en web que utilizan el i5 como servidor y que con Ajax son muy funcionales y tienen una pinta fantástica. ¿Me gustaría convertir nuestra aplicación principal, escrita en RPG –un montón de líneas de código RPG de formato libre y SQL incrustado, y de procedimientos (¡gracias V5R4!)– en una aplicación basada en web a mano o utilizando herramientas existentes? En absoluto. Jamás recuperaríamos la inversión. ¿Tengo que explicar a los nuevos usuarios de la aplicación que no es DOS? Sí. Les diré que pueden optar por una aplicación bonita y lenta o por otra basada en texto y rápida. ¿Adivina que opción elegirán? Sí, sí, ya sé que si se aumenta lo suficiente la potencia del servidor (es decir, si se gasta la suficiente cantidad de dinero) se puede conseguir que la aplicación web se ejecute tan deprisa como la de pantalla verde. Pero, ¿qué valor aporta esto a la empresa? Y, sin embargo, nuestra aplicación, base de datos o trabajo de desarrollo no es perfecto. Este análisis introspectivo tan profundo admite que tenemos unas cuantas aplicaciones monolíticas que deberían dividirse en aplicaciones más pequeñas. La estructura de nuestra base de datos no se ha revisado en muchos años y puede necesitar cierta (observe que digo cierta) reestructuración. Aunque nuestro departamento de desarrollo es muy pequeño, nuestras técnicas de gestión del código fuente son, en el mejor de los casos, rudimentarias y algún día hemos de dar un paso decisivo hacia el software de SCM. ¿Todo esto le resulta familiar? Tras reflexionar sobre el asunto, en conjunto estoy contento con IBM y el servidor i5. Y, en general, estoy contento con nuestro desarrollo y lo que ofrecemos a nuestra empresa. ¿Pero ■ es posible mejorar en ambos campos? Sin duda. Jef Sutherland es redactor técnico de SystemiNEWS y vicepresidente de tecnologías de la información de Kampgrounds of America, Inc., Billings (Montana). www.help400.es
www.help400.es
MAYO 2008 ServerNEWS 9
IBM revitaliza el desarrollo de aplicaciones para el System i en la V6R1 El System i se anota muchos puntos con vistosos productos pensados para el desarrollo de aplicaciones y algunas mejoras por George N. Farr
E
l software Rational de IBM ha revitalizado las herramientas para el desarrollo de aplicaciones y los compiladores de i5/OS con el cambio de nombre y de presentación de algunos productos, la adición de nuevos productos cliente, las mejoras realizadas en la versión V6R1 de RPG IV y la introducción del nuevo lenguaje para aplicaciones empresariales de i5/OS EGL (Enterprise Generation Language). A la hora de redactar este artículo, estaba previsto que las nuevas herramientas, anunciadas por IBM a finales de enero, se presentaran el 21 de marzo de 2008. Aunque los cambios son considerables, no son complejos. El objetivo de este artículo es ofrecer un resumen de alto nivel del anuncio del release V6R1 de WebSphere Development Studio (WDS) y los productos cliente basados en Eclipse para la versión 7.1. En el futuro, esperamos publicar otros artículos sobre las mejoras incluidas en el release V6R1.
De un vistazo IBM ha introducido tres características nuevas en WDS –compiladores ILE, compiladores heredados y el Juego de herramientas para el desarrollo de aplicaciones (ADTS)– con precios y presentaciones flexibles que permiten que los departamentos de informática que trabajan con System i consuman solamente los componentes que 10 ServerNEWS ServerNEWS MAYO MAYO 2008 2008
www.help400.es
del S/38 y Cobol del OPM. Estos productos están estabilizados, lo que implica que IBM continuará ofreciendo soporte y servicio para ellos pero ya no los mejorará. • ADTS (SEU, PDM, SDA, RLU, DFU) continuará incluyéndose, pero también se estabilizará y no se harán mejoras futuras.
FIGURA 1 Cambios en la presentación de WDS necesiten. El anuncio también incluye importantes funciones nuevas en RPG IV/Cobol y herramientas para estaciones de trabajo. Asimismo, existen tres nuevos productos: Rational Developer para System i (RDi), Rational Developer para System i para la construcción de SOA (RDi SOA) y HATS para 5250. Además, el nuevo lenguaje de programación para aplicaciones empresariales de IBM, EGL, que forma parte de RDi SOA, ayudará a los departamentos que trabajan con System i a portar sus aplicaciones escritas en RPG y Cobol a la Web. El objetivo de todos estos cambios es ayudar a que los clientes protejan su inversión en aplicaciones que se ejecutan en i5/OS, permitiéndoles modernizarlas con interfaces de usuario y web actuales, y proporcionarles soporte continuado en el futuro inmediato.
Cambios de nombre y de presentación Durante años los clientes han denunciado que el modelo “de talla única” de WDS no funciona y que querían consumir únicamente los componentes del producto que necesitaban. La nueva presentación distingue claramente entre productos estratégicos y productos heredados para ayudar a los clientes a tomar su decisión. Una ventaja adicional es que la nueva presentación permite que IBM determine qué características se van a utilizar (información que incentivará la inversión en desarrollos futuros). El nuevo WDS (ID de producto 5761-WDS) ahora contiene tres componentes independientes: • Compiladores ILE incluye los de RPG, Cobol, C y C++. IBM ha hecho mejoras significativas en ellos y continuará haciéndolas. • Compiladores heredados incluye los de RPG II del S/36, RPG II del S/38, RPG/400 (RPG III), Cobol del S/36, Cobol www.help400.es
En la Figura 1 se ilustra la presentación actual de WDS en el release V5R4, que contiene todos los compiladores y herramientas, y la nueva presentación correspondiente al release V6R1, que divide WDS en tres presentaciones distintas. Aunque IBM ha fijado un precio diferente para cada presentación, la compañía también ha implantado un modelo de precios basado en el número de usuarios, con un número razonable de licencias de usuario para cada nivel de software de la máquina. El producto WDSc Standard Edition ya no se incluirá con el producto WDS. Tanto WebSphere Development Studio client como WebSphere Development Studio client Advanced Edition (WDSc AE) se han estabilizado; por lo tanto, IBM dedicará todas las inversiones futuras y mejoras para el desarrollo de aplicaciones del System i a sus productos nuevos. La campaña comercial finalizará durante este trimestre y el servicio técnico dejará de prestarse en abril de 2010. Una cuestión que hay que mencionar es que el diagrama de aplicación y el diseñador de pantallas, originalmente incluidos únicamente en WDSc AE, ahora forman parte del producto base RDi.
Derechos de titularidad Cada vez que IBM hace un comunicado importante, los clientes de los releases V5R3 o V5R4, por ejemplo, que desean actualizarse al la V6R1, acaban preguntándose cómo hacerlo y si tienen derecho a los productos nuevos. Si tiene un Acuerdo de mantenimiento de software (SWMA) con IBM, la respuesta es que sí, tiene derecho a un número concreto de licencias para compiladores ILE, compiladores heredados y ADTS en WDS. Por ejemplo, si actualmente tiene RPG o SEU, tendrá licencia para WDS. Además, si tiene un SWMA, tendrá derecho a “x” licencias de compiladores ILE, compiladores heredados y herramientas de ADTS. Como decía antes, IBM ha estabilizado WDSc 7.0. No obstante, los clientes que lo tengan y deseen seguir usándolo, pueden solicitarlo a IBM o a un business partner. Se incluye en WDS como característica suministrada. En el centro de despacho de IBM, una característica suministrada de un producto sirve para enviarle el producto (o suministrárselo). Si tiene WDSc AE, también tendrá derecho a RDi SOA y Rational Application Developer (RAD). Sin embargo, si no tiene WDSc AE, tenga en cuenta que RDi SOA y RDi son MAYO 2008 ServerNEWS 11
■ EN PORTADA productos nuevos que deberá comprar si quiere usarlos. También puede adquirir un acuerdo de mantenimiento para estos productos y así poder recibir versiones futuras.
Nuevo modelo de precios El modelo de precios de IBM anTerminal tonto tes de la V6R1 se basaba en los niveles, lo que implicaba que el JSF/WebFacing/HATS precio de WDS variaba en función del nivel en que estaba cada cliente. Un nivel es la máquina real IU enriquecida de EGL, Ajax, Web2.0, SOA que se está usando o el número de modelo, que puede ser P05, P10, P20... y así hasta P60. El precio de WDS iba desde unos cuantos miles de euros para el ni- FIGURA 2 vel inferior hasta más de 100.000 Desde la pantalla verde y las interfaces 5250 hasta la Web euros para los niveles mayores. Sea como fuere, determinar el precio de los compiladores era difícil en muchos casos porque También es posible escribir una nueva lógica empresarial el tamaño del equipo no está relacionado con el uso que se en EGL o seguir desarrollando aplicaciones en RPG o Cobol, haga de los compiladores o con el número de desarrolladores que pueden modernizarse para la web o SOA, como comentanecesarios. ba previamente. La ventaja de usar EGL es que puede El nuevo modelo basado en el número de usuarios está di- generarse código escrito en Java o Cobol a partir de él y ejeseñado para ofrecer un precio razonable en relación con el cutar aplicaciones en plataformas y middleware distintos (por valor que los clientes están recibiendo. Además, es parecido ejemplo, otros servidores de aplicaciones o bases de datos). al de los compiladores de otros productos de hardware de IBM. En otras palabras, con EGL es posible desarrollar aplicaciones empresariales independientes de la plataforma. Mejorar sus conocimientos de RPG o Cobol con Como se trata de un lenguaje de alto nivel (HLL), EGL EGL oculta la complejidad de escribir aplicaciones web usando IBM Rational Business Developer (RBD), versión 7, release J2EE, que puede ser difícil de dominar, y se ocupa de las com1, ofrece varias mejoras que permitirán que los desarro- plicaciones relacionadas con el despliegue del middleware (por lladores que trabajan con el System i saquen partido a las ejemplo, la configuración del servidor de aplicaciones o de los inversiones hechas en RPG para crear rápidamente aplica- orígenes de datos que hay que usar). Además, la sintaxis del ciones web o SOA modernas y profesionales usando la lógica lenguaje EGL se parece más a la de RPG y Cobol que a la de actual de la empresa y en un plazo de comercialización míni- Java, que está orientada a objetos y puede ser compleja. Si mo. usted es un desarrollador que trabaja con RPG o Cobol, pueRBD incluye EGL, un lenguaje para el desarrollo de apli- de aprender EGL mucho más deprisa que lenguajes como caciones empresariales de alto nivel y fácil de aprender que Java. EGL, como RPG y Cobol, es un lenguaje procedural y puede usar para modernizar sus aplicaciones rápidamente. usa E/S de nivel de registro. Lo mejor es que las herramienRBD ofrece un entorno de desarrollo (incluyendo capacida- tas de RBD permiten no sólo editar sino también depurar des de edición, compilación y depuración) y un editor para la directamente el código escrito en EGL, de modo que nunca creación de páginas web, asistentes y recuadros de diálogo tendrá que lidiar con los lenguajes generados. que facilitan la escritura de aplicaciones en EGL y el uso de Asimismo, IBM está trabajando en la interfaz de usuario la lógica de la empresa de RPG o Cobol, o datos de i5/OS para enriquecida de EGL (EGL Rich UI), una extensión de EGL escribir aplicaciones web o SOA. El lenguaje y las herramien- que se presentará primero como un Avance tecnológico y luetas son una potente combinación que permite modernizar las go como producto. Con la IU enriquecida de EGL, se podrán aplicaciones y mejorar la productividad de la organización combinar y crear aplicaciones web compuestas con interfaces por un precio asequible. de usuario enriquecidas usando las tecnologías web más rePueden usarse los asistentes y editores de EGL y RBD para cientes. La intención es aprovechar los valores existentes de desarrollar con facilidad aplicaciones web capaces de utilizar EGL de simplicidad, abstracciones y portabilidad para aula lógica de la empresa (escrita en RPG o Cobol) y los datos mentar la transferencia de conocimientos y la productividad, de i5/OS. Así se protegen las inversiones existentes. y reducir los plazos de comercialización. 12 ServerNEWS MAYO 2008
www.help400.es
Las herramientas de RBD le permitirán componer páginas web en editores utilizando bibliotecas de widgets de la interfaz de usuario enriquecida como por ejemplo DOJO, YUI o EXT, y depurar y rastrear aplicaciones mediante la propia herramienta. Podrá escribir rápidamente aplicaciones web completas que usan técnicas Ajax para crear interfaces de usuario web con mejor capacidad de respuesta. Las aplicaciones que cree pueden tener mashups (remezclas) y feeds, y aceptar entradas de tipo social y comunitario como por ejemplo tags (etiquetas) y recomendaciones. Es facilísimo integrar las interfaces de usuario enriquecidas con el procesamiento de una aplicación RPG o Cobol en el servidor.
Rational Developer para System i (RDi) Los clientes del System i hace mucho tiempo que piden herramientas más livianas centradas en el trabajo cotidiano. Las empresas han manifestado que WDSc y WDSc AE son demasiado grandes y contienen funciones que no se usan lo que hace que tarden mucho en arrancar. La nueva herramienta ligera RDi ofrece importantes avances para que los clientes del System i mejoren el desarrollo de aplicaciones. RDi es la respuesta basada en Eclipse de IBM a ADTS. (El ID de producto es 5733RDi para el configurador y 5724T82 para passport advantage). Como las demás herramientas estratégicas de IBM, RDi se basa en la plataforma Eclipse y es excepcionalmente ligera, necesitando una cantidad de recursos mínima. Está acreditado que puede ejecutarse en un ordenador de sobremesa con tan solo 512 MB de memoria. IBM se ha centrado en las necesidades de los desarrolladores que trabajan con RPG, Cobol y CL y RDi ofrece capacidades de edición, compilación y
depuración de gran productividad, así como acceso a recursos y servicios de i5/OS. El Explorador de sistemas remotos (RSE), que se presentó en WDSc, ahora forma parte de RDi y ofrece muchas funciones de gran potencia comparándolas con los productos CODE/ 400 y ADTS. Entre las nuevas características de RDi podemos destacar: • comprobación de la sintaxis de RPG y Cobol y verificación del programa de forma exhaustiva con el fin de compilar los miembros de forma local sin generar un objeto y notificación de los errores mediante la vista Lista de errores; los errores se pueden incluir en el miembro fuente, en la ubicación en que se producen para poder arreglarlos más fácilmente • asistente de contenido, que permite consultar la ayuda en cualquier punto del miembro fuente; por ejemplo, si estamos en una especificación D y queremos obtener una lista de las palabras clave permitidas, basta con pulsar Ctrl+espacio para ver la lista de palabras clave permitidas; en un lenguaje orientado a columnas como RPG, el asistente de contenido es muy conveniente • vista de esquema, que permite ver los elementos estructurales del miembro fuente abierto actualmente en el editor. Por ejemplo, para un miembro fuente de ILE RPG, el esquema contiene todas las estructuras, campos, subrutinas, indicadores de procedimientos, etcétera; esto ayuda a modernizar aplicaciones monolíticas grandes • la posibilidad de consultar miembros de copia con solo pasar el ratón sobre la sentencia /copy y ejecutar un mandato • la posibilidad de ir a cualquier especificación de archivos
FIGURA 3 Gráfico de llamadas de un diagrama de aplicación www.help400.es
MAYO 2008 ServerNEWS 13
■ EN PORTADA de un archivo descrito externamente, pulsar con el botón derecho del ratón y seleccionar ver los detalles del archivo; ahora, en una vista pueden verse todos los registros y campos definidos en el archivo RDi 7.1 también incluye muchas mejoras importantes. El diagrama de aplicación apareció por primera vez en la versión 7.0 y permitió a las empresas visualizar sus aplicaciones utilizando funciones como los gráficos de llamadas, que muestran llamadas a subrutinas, procedimientos y programas. Para ver una aplicación visualmente, se seleccionan recursos pulsando con el botón derecho del ratón y se elige Visualizar diagrama de aplicación. Verá un gráfico como el de la Figura 3. Se puede seleccionar cualquier miembro nativo, incluyendo programas (*PGM), programas de servicio (*SRVPGM), archivos del IFS, archivos locales de la máquina y recursos de proyectos de i5/OS. Si resulta que tiene abierto el miembro fuente en el editor LPEX, puede ejecutar ese mismo mandato pulsando con el botón derecho del ratón y seleccionando Visualizar diagrama de aplicación. El diagrama de aplicación ayuda a la modernización al agilizar la conversión de las aplicaciones existentes escritas en RPG en programas de servicio y permitiendo que los usuarios participen en SOA. El nuevo diagrama de aplicación de RDi tiene más capacidades: • ampliación funcional, que es la capacidad de empezar con recursos de primer nivel e ir incrementando el nivel de detalle tanto como se desee • soporte para las llamadas a programas, que se representa como una conexión desde la subrutina o nodo de procedimiento de llamada hasta el programa al que se llama • soporte de CL por medio del diagrama de aplicación Además, RDi incluye la segunda fase del diseñador de pantallas que permite diseñar pantallas 5250 directamente en RDi. Todas las funciones del diseñador de pantallas y del diagrama de aplicación originalmente disponibles en WDSc AE, ahora se encuentran en RDi. La versión RDi 7.1 también incluye soporte para los lenguajes RPG, Cobol y CL del release V6R1; el editor LPEX de sistemas remotos con analizadores sintácticos para el lenguaje, comprobadores de sintaxis, verificadores de programas, asistentes y asistentes de contenido de RPG; ayuda del lenguaje en línea; mejoras en la consulta de la lista de errores, 14 ServerNEWS MAYO 2008
mejoras en la vista de esquema; y una función nueva de búsqueda por fecha en el editor. RDi no contiene las herramientas para el desarrollo de aplicaciones web ni otras funciones que antes se incluían en WDSc. Esta herramienta está diseñada específicamente para desarrolladores que trabajan con RPG, Cobol y CL. Además, el precio de RDi se calcula en función del número de usuarios del producto, de modo que pueden comprarse tantas (o tan pocas) copias del producto como se necesiten. RDi se integra con otros productos Rational, lo que le proporciona funciones y características adicionales. La clave está en el hecho de que estas funciones pueden irse añadiendo conforme se necesitan. En próximos números de la revista informaremos con más detalle sobre estas mejoras concretas.
Rational Developer para System i para la construcción de SOA (RDi SOA) RDi SOA se ha diseñado pensando en el desarrollador que necesita crear aplicaciones web, servicios web o funciones que van más allá de las que proporcionan las herramientas de desarrollo básico en RPG, Cobol o CL. Tenga en cuenta que RDi SOA es un paquete de software que contiene dos conjuntos de capacidades interrelacionados. RDi SOA es una combinación de RDi, RBD con EGL y el juego de herramientas HATS para 5250. Está pensado para los desarrolladores que desean utilizar las aplicaciones existentes escritas en RPG o Cobol y portarlas a la Web o a un entorno basado en SOA. RDi SOA permite el desarrollo de aplicaciones web con las herramientas Diseño web y Java Server Faces (JSF) del producto. Incluye los asistentes de servicios web y las herramientas necesarias para habilitar programas escritos en ILE RPG o Cobol para implantar o consumir servicios web. (El ID del producto RDi SOA es 5733SOA para el configurador y 5724T83 para password advantage).
WDHT ahora es HATS para aplicaciones 5250 En los últimos años, IBM ha estado consolidando sus dos tecnologías de integración de presentación (restauración): WebFacing y HATS. Un entorno de ejecución común y una estructura de precios basada en los niveles denominada WDHT, presentada en el año 2006, permitieron que los clientes pudieran sacar todo el partido de ambas tecnologías. En 2007, se introdujo el concepto de “interoperatividad” de modo que las tecnologías pudieran trabajar conjuntamente. En este release, IBM cambia el nombre y la presentación del entorno de ejecución común por Rational Host Access Transformation www.help400.es
Services (HATS) para aplicaciones 5250. La herramienta WebFacing, que tradicionalmente se incluía con WDSc y WDSc AE, será un componente instalable de forma opcional en el Kit de herramientas HATS. Este Kit de herramientas podrá descargarse gratuitamente desde la web y también se incluirá con RDi SOA. Cuando los clientes estén listos para instalar sus aplicaciones HATS en los servidores de producción con el fin de restaurar o entregar un servicio web, bastará con que adquieran el número adecuado de licencias de HATS para aplicaciones 5250. IBM también ha presentado varias mejoras funcionales. Con la tecnología HATS se pueden crear aplicaciones web que permiten transformar las pantallas de las aplicaciones del sistema principal para poder acceder a ellas desde dispositivos móviles. Con HATS para aplicaciones 5250 es posible desarrollar portlets de HATS conformes con la API estándar Especificación de portlets de Java (JSR 168). Actualizar servicios web es aún más fácil. Además, hay una versión de demostración de Visual Macro Editor, una herramienta que permite que el desarrollador cree macros visualmente. Por último, la nueva función WebFacing Application Bridge permite que las aplicaciones creadas con el componente WebFacing transfieran el control y los datos hacia y desde otras aplicaciones web, como por ejemplo EGL, permitiendo combinar HATS, WebFacing y EGL en una sola aplicación.
¿Qué va a pasar con RPG IV y Cobol? La mejora más importante que ha incluido IBM en RPG IV en marzo de este año es la capacidad de ejecutar múltiples hebras reales de forma nativa en el lenguaje. La ejecución de múltiples hebras permite ejecutar las aplicaciones en varias hebras y asignar a cada una su propio almacenamiento estático. Basta indicar THREAD(*CONCURRENT) en la especificación de control de un módulo para habilitar esta función. En el módulo pueden ejecutarse múltiples hebras simultáneamente y, por omisión, las variables estáticas se definen de tal forma que cada hebra tenga su propia copia de cada variable. Esto las hace seguras en ejecución multihebra (thread-safe). Es posible definir variables individuales e indicar con STATIC(*ALLTHREAD) que las compartirán todas las hebras. Si está familiarizado con Java, se habrá dado cuenta de que esto es parecido a definir variables de clase. Por omisión, estas variables no son seguras en ejecución multihebra. Otra mejora importante es la posibilidad de definir archivos de forma local en procedimientos. A continuación de la especificación P, ahora se puede definir uno o varios archivos. Se pueden llevar a cabo las operaciones de entrada-salida de los archivos locales únicamente con estructuras de datos. Además, no hay especificaciones I ni O para los archivos locales. Tenga en cuenta también que, por omisión, el almacenamiento asociado con los archivos locales es automático; el archivo se cierra cuando el subprocedimiento devuelve el control de forma normal o anómala. Puede usarse la palabra clave STATIC para indicar que todas las invocaciones del procedimiento utilizarán el mismo archivo abierto. Si el www.help400.es
archivo está abierto cuando el procedimiento devuelve el control, seguirá estando abierto la próxima vez que se llame al procedimiento. IBM también ha introducido la palabra clave MAIN en la especificación de control. Indica que un subprocedimiento es el procedimiento principal que tendrá el control cuando se llame al programa. Aparte de ser el procedimiento de entrada al programa, el subprocedimiento principal es como cualquier otro subprocedimiento. No usa el ciclo de RPG. El prototipo del subprocedimiento principal debe tener la palabra clave EXTPGM; el subprocedimiento principal sólo puede llamarse mediante una llamada de programa. IBM ha hecho mejoras relacionadas con el uso de archivos en forma de palabras clave de la especificación F. Las nuevas mejoras tienen que ver con los formatos calificados, la palabra clave LIKEFILE, una nueva palabra clave de plantilla, el paso de archivos como parámetros, EXTDESC para especificar el archivo que se usará durante la compilación, y una estructura de datos en el campo de resultados de EXTFMT. Entre los nuevos retoques podemos destacar el considerable aumento del límite de tamaño de las variables (de 64 KB a 16 MB), un incremento en el número de elementos de una matriz (de 32 KB a 16 MB), una mayor longitud de los literales de tipo serie de caracteres (de 32 KB a 16 MB), la relajación de algunas reglas del UCS-2 (disponible desde el release V5R3 mediante la aplicación de algunos PTF), la reducción del tamaño de algunos módulos y la capacidad de almacenar en el programa información sobre parámetros.
Prepararse para el futuro Para prepararse para el futuro, debe seguir modernizando el código RPG IV para hacerlo más modular, use procedimientos, evite mezclar la lógica de la empresa con la interfaz de usuario y saque partido de EGL. IBM ha incluido mejoras en RDi y RDi SOA que los usuarios llevan tiempo solicitando. Es de esperar que en el futuro veamos grandes mejoras en el lenguaje RPG IV que permitan integrarlo con EGL para poder disfrutar de una experiencia web mejor. Con todos estos cambios en el desarrollo de aplicaciones para el System i es lógico que surjan preguntas. En un próximo artículo intentaré responder a algunas de las más importantes. ■
George Farr ha sido controlador de calidad, desarrollador, jefe de equipo, planificador técnico y jefe de desarrollo de los compiladores del System i desde los inicios de la plataforma. Actualmente es el jefe de producto para todo el mundo de todas las herramientas de desarrollo y compiladores del System i. MAYO 2008 ServerNEWS 15
RDi y RDi SOA: la opinión de los expertos Las nuevas posibilidades comentadas por varios desarrolladores para el System i por Chris Maxcer
L
as formas en que se desarrollan las aplicaciones cambian y la estrategia anunciada este año por el grupo de software Rational de IBM ha sacudido al mundo del System i y los expertos del sector aún están reaccionando al anuncio. El primer indicio de que estaba en marcha una gran revolución se produjo hace un año, cuando George Farr, el jefe de producto de herramientas de desarrollo y compiladores del System i sugirió que WDSc podría dividirse en componentes más aceptables... una jugada que potencialmente podría rebajar los costes de características de programación básicas, así como descargar y abaratar la edición Advanced. Por aquel entonces, lo que más llamó la atención de los clientes fueron el Diseñador de pantallas y el Visor de diagramas de aplicación, que se dijo que formarían parte de WDSc 7.0 Advanced Edition. Con la aparición de la V6R1 han cambiado muchas cosas. IBM ha presentado Rational Developer para System i (RDi), que es un producto nuevo pensado para que los desarrolladores del System i editen, compilen y depuren sus aplicaciones, y RDi SOA, que dispone de mayor número de funciones para programar para la web (incluyendo el lenguaje EGL, al que IBM parece querer insuflar nueva vida). HATS para 5250 ahora unifica HATS y WebFacing en un sólo producto. Puede obtener más detalles sobre estos nuevos paquetes y opciones para los desarrolladores de aplicaciones del System i en el artículo de Farr “IBM revitaliza el desarrollo de aplicaciones
para el System i en la V6R1”, publicado como tema de portada en este mismo número. Una idea particularmente interesante sobre estos cambios es que parecen diseñados, al menos en parte, para ayudar a entender a la división Rational de IBM qué productos usan y necesitan realmente los clientes de i5/OS. A su vez, esto ayudará a la unidad comercial de IBM a identificar mejor dónde debe dedicar recursos para desarrollar mejoras y soporte. Si los desarrolladores que trabajan con System i adquieren y usan RDi SOA, por ejemplo, Farr y su unidad probablemente conseguirán más apoyo en la organización Rational de IBM para incluir sus mejoras. La otra cara de la moneda es que, si nadie utiliza RDi SOA, Rational tendría una excusa para rediseñar el producto o eliminarlo. A principios de año, IBM invitó a destacados expertos en el campo del desarrollo para la plataforma System i a una presentación de las nuevas estrategias de la compañía sobre desarrollo para el System i. Yo, para este artículo, he hecho algo parecido. Hice unas cuantas preguntas a algunos de los mejores cerebros del sector sobre los cambios y esfuerzos realizados por IBM hasta ahora. Los insignes Aaron Bartell, Bob Cozzi, Susan Gantner, Jon Paris, Trevor Perry y Paul Tuohy me dieron su visión del asunto. A continuación les ofrezco un resumen de sus puntos de vista: ServerNEWS: IBM ha anunciado RDi, RDi SOA y HATS para 5250. En su opinión, ¿estas soluciones van a satisfacer necesidades importantes de los desarrolladores del System i o sólo beneficiarán a determinados colectivos de desarrolladores? Susan Gantner (ex técnica de IBM; actualmente consultora de Partner400): Creo que los productos RDi y RDi SOA en realidad son una especie de reorganización del juego de herramientas que ya existe en gran parte en WDSc en una versión básica y otra más avanzada y que probablemente eso sea positivo. Lo que más me preocupa es que los usuarios actuales de WDSc no tienen derechos de titularidad sobre RDi, lo cual va a tener un impacto negativo porque los derechos de titularidad que tienen [los clientes] son sobre la herramienta antigua. Lo que me preocupa no es tanto el rediseño, sino el precio del producto. Me temo que se pueda detener o ralentizar la tendencia que estábamos viendo claramente en la gente hacia herramientas de desarrollo más avanzadas en estaciones de trabajo. Tengo miedo de que
16 ServerNEWS ServerNEWS MAYO MAYO 2008 2008
www.help400.es
algunas personas paren en seco y sigan usando SEU porque no quieran justificar ante la dirección un gasto adicional. No es que el gasto no pueda justificarse –quiero decir que creo que realmente es un precio muy barato para las ventajas que pueden lograrse en productividad– pero representa un obstáculo más para la gente que desea dar el salto a herramientas de desarrollo más recientes. Creo que es una buena idea que hayan incluido las herramientas básicas (las que necesitará alguien que simplemente quiera sustituir PDM/SEU) en un producto independiente del resto de herramientas para el desarrollo de aplicaciones web (WebFacing en HATS, EGL y todo eso). Jon Paris (ex técnico de IBM; actualmente consultor de Partner400): Pienso que lo que es prometedor es que, con la excepción del minúsculo grupo de Toronto, es la primera vez en mucho tiempo que el grupo de software de IBM, concretamente la división Rational, ha mostrado un interés significativo en la plataforma. Esa es la buena noticia para mí, que se están tomando en serio la plataforma. EGL también promete, pero han tenido ciertos problemas con algunos de sus apóstoles, que afirmaban que hay que deshacerse de RPG y abrazar EGL en su lugar. Creo que ya han dejado de hacerlo, pero era un mensaje muy negativo. EGL parece un buen producto para ampliar los horizontes de las aplicaciones escritas en RPG, pero el único sustituto de RPG es RPG. Paul Tuohy (desarrollador de aplicaciones para sistemas midrange de IBM y formador): Los productos son una continuación “natural” de lo que había antes. La principal diferencia es la distinción clara entre RDi y RDi SOA. Obviamente, IBM/Rational está depositando su confianza en el potencial atractivo de EGL. Tiene sus partidarios, pero tendremos que esperar y ver si la base desea adoptarlo. Bob Cozzi (experto en RPG): No es que haya muchas novedades en este anuncio excepto algunas actualizaciones menores para HATS y WDSc (ahora denominado RDi). El gran acierto es que creo que George Farr ha logrado reestructurar con éxito WDSc en el producto base RDi, de forma que ahora prácticamente todos los departamentos de informática que trabajan con System i pueden pasar de SEU/PDM/SDA/depuración a RDi basado en GUI. Se instala más deprisa y consume muchos menos recursos que WDSc 7. La cuestión de los precios puede ser un problema o no... No estoy seguro de cuál será su efecto porque en todos los departamentos de informática parecen pensar sobre el software suministrado por IBM de forma distinta a como lo hacen sobre el software de otros proveedores. Los otros productos, RBD [Rational Business Developer] y RDi SOA, son algo excesivos para los departamentos normales que trabajan con System i, pero seguro que hay alguna empresa que necesitará estas versiones del producto, así que está bien que existan. Por lo que se refiere a HATS, ahora que WebFacing se incluye en HATS, es de esperar que habrá menos confusión sobre cuál de ellos usar. De todas formas, la mayoría de la gente debe estar valorando la posibilidad de utilizar interfaces de usuario basadas en navegadores. HATS www.help400.es
consigue que las aplicaciones 5250 se ejecuten más deprisa, pero las interfaces de navegador escritas a mano con RPG IV ejecutándose en el servidor son el futuro del System i... bueno, realmente, son el “ahora”, no el futuro. Aaron Bartell (desarrollador que trabaja con RPG y Java). Se mire como se mire, IBM está planeando retirar elegantemente RPG. Nunca lo admitirán, pero cuando les vea con un martillo y clavos en la mano y un ataúd en la parte trasera de la camioneta, bueno, sólo es cuestión de tiempo que alguien empiece a clavar esos clavos... Al final, EGL tendrá éxito porque simplifica el desarrollo en Java y facilita la vida a los programadores de aplicaciones comerciales a los que no les preocupa tanto la tecnología como satisfacer las necesidades de su empresa. EGL parece perseguir los éxitos como lenguaje para la empresa que ya alcanzó RPG... y por eso todavía estoy meneando la cabeza tras conocer la decisión de IBM. Hemos obtenido algunas herramientas excelentes con RDi SOA, pero son de segunda clase en comparación con las que podían habernos proporcionado si no estuvieran intentando lo imposible (por ejemplo, ofrecer una única infraestructura de aplicaciones para migrar todas sus iniciativas de negocio). Creo que esto personifica la desconexión entre el equipo de Rational y el de i5/OS. En mi opinión, podían haber intentado modificar la pila de programación de RPG para que tuviera GUI de forma nativa y capacidades de navegadores (poniéndolo a la vanguardia de las herramientas de desarrollo de aplicaciones). En cambio, les ha parecido más cómodo seguir el camino de otros líderes como Microsoft, Adobe o Sun. Es posible deshacerse de la competencia mediante la innovación y ofreciendo algo que ninguna otra empresa tecnológica puede ofrecer: una sencilla pila de programación de aplicaciones y una plataforma cuya productividad, seguridad y solidez no tiene rival. ServerNEWS: ¿Hay alguna cosa en la nueva dirección tomada por IBM en este campo que considere particularmente útil, interesante, problemática o prometedora? Bob Cozzi: La versión beta de Jazz, de IBM, es muy interesante y muy prometedora. Al principio pensé, “Me da tiempo de echarme una siesta mientras IBM habla sobre otro paquete inflado de gestión de cambios, control de versiones y gestión de proyectos para mainframes”. Pero resulta que presté atención y puedo decir que han hecho un gran trabajo. Tengo mucha curiosidad sobre el potencial de este producto para gestionar proyectos y desarrollar equipos de forma global. Lo mejor es que está centrado en el System i, es decir, que el System i es la plataforma a la que está dirigido; no es algo que se les ha ocurrido a posteriori, como en el pasado ha ocurrido con muchos otros productos de IBM. Paul Tuohy: EGL es prometedor (pero también lo era Java J). La pequeña cantidad de recursos que consume y la facilidad de instalación de RDi es interesante. Y me agrada que IBM continúe mejorando RPG [no olvidemos que IBM ha incluido mejoras en el release V6R1 de RPG, anunciado al mismo tiempo que RDi]. MAYO 2008 ServerNEWS 17
■ EN PORTADA ServerNEWS: ¿Qué me dicen sobre los desaciertos? ¿Hay algo que no le guste? Bob Cozzi: Hay dos cosas que no me acaban de convencer. Ya he mencionado la estructura de precios de la familia RDi. Me parece un precio inusitadamente alto una vez se supera el número total de usuarios con “derechos de titularidad” básicos. IBM ha de entender que la gente espera que las cosas sean “gratis” con el System i. IBM ha creado esa cultura y tiene que tratarla con algo más de tacto. Por ejemplo, los pequeños departamentos de informática van a poder usar RDi prácticamente sin costes adicionales una vez migren a la versión 6 de i5/OS, pero los departamentos más grandes puede que tengan que afrontar gastos enormes, de más de 20.000 euros, sólo para sustituir SEU. Seamos sinceros, ¿merece la pena? A la gente aparentemente eso le trae sin cuidado cuando se trata de software. Paul Tuohy: La confusión de los precios. Aún me he de sentar y seguir todos los pasos cada vez que alguien me pregunta un precio. La fórmula debería ser simple. Los compiladores ILE tendrían que ser gratis. El coste de las nuevas herramientas de desarrollo deberían ser mínimo. Los compiladores y las herramientas de desarrollo tradicionales (RPG III y PDM, por ejemplo) deberían costar mucho más. La excepción debería ser RPG II (a menos que la empresa desee invertir en una ruta de migración clara desde el S/36 hacia ILE) y tendrán que separar DFU de ADTS. Jon Paris: RDi SOA está suplicando otro cambio de nombre. SOA seguirá siendo sexy como mucho un par de años y, de hecho, ya están empezando a darle nombres distintos y ese es su mayor problema. IBM denominó a todos sus productos VisualAge, luego WebSphere y ahora todos se llamarán Rational, lo que es una buena idea, pero la coletilla de SOA no creo que dure. Yo le hubiera puesto un nombre realista, como Advanced o algo así. Trevor Perry: Me parece que el camino que está tomando actualmente Rational no coincide con la visión de futuro de i5/OS que propugna Rational. Por un lado, IBM quiere que usemos RDi [y los otros productos], pero están actualizando las licencias actuales de WDS como derechos de titularidad de ADTS y cobrando por RDi. Si quieren que los clientes utilicen RDi y abandonen ADTS, deberían cambiar eso. Me gusta lo que están añadiendo al IDE de i5/OS, pero están haciéndolo demasiado lentamente. Nos acaban de proporcionar un diseñador de pantallas verdes pero no un diseñador de informes. Parecen unos simples pasitos en un paquete muy bonito pero no una verdadera evolución. Lo que me gusta es que es más abierto con cada versión, pero nuevamente insisten en colarnos más herramientas de propiedad. Por ejemplo, Jazz elimina por completo la necesidad de usar herramientas de gestión de cambios de terceros. Hay toda una industria que Rational parece querer barrer. También parece haber un movimiento para usar EGL. Quieren que lo abracemos ahora pero no nos han ofrecido una forma sencilla de empezar a usarlo. Lo que me preocupa es 18 ServerNEWS MAYO 2008
que Rational quiera que reemplacemos RPG por EGL como consecuencia de la ausencia por su parte de un itinerario o de productos de transición. Si la única forma de lograr que RPG sirva para escribir aplicaciones para la Web es, o bien usar HATS, que básicamente es un “rascapantallas” desfasado con algunas funciones dinámicas, o bien usar EGL, que representa un salto inmenso hacia algo nuevo para la mayoría de los programadores que trabajan con RPG, entonces lo que me preocupa es que Rational no comprende a la comunidad de usuarios de i5/OS. Todo lo que veo de Rational es un enfoque muy anti-i5/OS. No creo que entiendan nuestra comunidad. Espero que cambien rápidamente. Por ejemplo, un paso en la dirección correcta sería que modificaran los precios para favorecer a RDi sobre ADTS. Estoy dispuesto a esperar, pero no durante mucho tiempo. Bob Cozzi: Una cosa que IBM suele hacer muy mal es, naturalmente, la promoción comercial de sus productos. Principalmente porque su equipo comercial no parece entender totalmente qué es el System i y a quién va dirigido. De modo que con RDi creo que IBM pondrá las cartas sobre la mesa y se largará, esperando que milagrosamente tenga éxito. Cuando otros proveedores crean un nuevo producto de software y en menor medida de hardware, participan en actos (congresos, ferias de muestras...) y promocionan en las ciudades más importantes ese producto nuevo o mejorado. IBM solía hacerlo en los tiempos de los S/36 y S/38. Ahora parece que no lo hacen en absoluto; de hecho, a menudo cuesta que enseñen sus productos a sus propios clientes. Son muy buenos en el campo de la investigación y el desarrollo. Pero poner sus productos en manos de los clientes y conseguir que realmente les interese (aunque sean gratuitos) parece una idea extraña para IBM. Hay que decir a su favor que han creado algo que denominan “equipo de ecosistema” encargado de garantizar que se hace todo lo necesario para vender, dar soporte y distribuir lo que haga falta para que sus productos tengan éxito. No obstante, por lo general, y voy a intentar no pasarme, eso significa que han descargado su responsabilidad en un tercero, que es el que se encargará de realizar actividades de soporte de mercado cruciales, y nadie asumirá su responsabilidad. Sinceramente espero que esto no ocurra con RDi y el resto de productos, pero ya veremos lo que pasa de aquí a un año. ■
Chris Maxcer es el redactor de System iNEWS. En la mayoría de los informes sobre el sector, Chris elimina las declaraciones repetidas, pero aquí ha preferido la transparencia. “Con temas tan importantes como los productos RDi de IBM, prefiero compartir las cosas que dicen estos profesionales para que el lector se haga una idea mejor de lo que realmente piensan”, dice. “Tengo que hacer una aclaración: estos comentarios son como una instantánea y aunque a veces parece como si IBM fuera un glaciar, en algún momento puede desprenderse un iceberg que permitirá ver las cosas desde una nueva perspectiva.” www.help400.es
www.help400.es
MAYO 2008 ServerNEWS 19
COMMON Europe, Barcelona ‘08 “The future i needs you!” por Carlos Valero
A
En directo
▲ ▲ ▲
20
nualmente la asociación Dinámica del Congreso Common Europe celebra Asistir a este tipo de Congresos siemun Congreso Internaciopre es positivo, tanto desde el punto nal en el que participan de vista formativo como desde un punmiembros de Common to de vista más lúdico, el que facilita de todos los países europeos asociados las relaciones y el intercambio de opi(de momento, 16). Esta reunión se ceniones y experiencias entre profesiolebra cada año en un país anfitrión disnales. Evidentemente, las conferencias tinto y en ella se pueden encontrar un de “alto nivel” tienen un papel esenbuen número de usuarios de IBM cial en Common y, como se realizan compartiendo sus inquietudes profevarias sesiones en paralelo, lo difícil sionales. Ya hacía muchos años que es decidir a cuál de ellas asistir y acerel Congreso de Common Europe no tar en la elección. También hay un sase celebraba en España; la última vez, lón dedicado a los stands o pequeños si no estoy equivocado, fue en el año emplazamientos para aquellas empre1994 en Granada. Este año, como ya sas que promocionan sus productos o había anunciado previamente esta soluciones durante el Congreso. En revista, también se ha realizado en Eseste salón se encontraban presentes paña, concretamente en Barcelona, en las empresas MKS, Lansa, Transoft, las magníficas instalaciones del hotel 3Com, NetManage, Arcad Software, AC Barcelona, ubicado en el recinto CCSS, iSencia y ASNA (grupo Bluedel Forum, la nueva área de expanPhoenix) donde precisamente estaba Hotel AC Barcelona, junto al recinto del Forum sión de la ciudad. yo, como anfitrión, ayudándoles. Al celebrarse en España, lo lógico El domingo 18 de mayo, después de era que los asistentes españoles fuéramos mayoría como así la presentación de apertura, fue utilizado por IBM no sólo ha sido, lo que permitió a la organización disponer de una de para exponer a los europeos su nueva estrategia Power sino las salas dedicadas al congreso para dar sesiones sólo en cas- también para hablarnos de la V6R1 y todo lo relacionado con tellano y que, por cierto, ha sido una de las que más asisten- ella, así como de la posibilidad de incorporar Linux en los cia ha tenido. Sistemas i para el desarrollo de aplicaciones gráficas. Aún así, el número total de participantes españoles no ha El aspecto que más destacó es que se trata de una máquina sido muy alto, por lo que creo que deberíamos empezar a re- que funciona con POWER6 y que por lo tanto cuando se pase flexionar y pensar en cómo podemos ayudar para que nues- de versiones anteriores a la nueva versión 6.1, se realizará tra comunidad de usuarios no se nos muera, como ya ha pa- una conversión de programas, como ya ocurrió cuando pasasado con otras asociaciones parecidas. Deberíamos animarnos mos de los sistemas CISC a los RISC, y que nos permitirá el a suscribirnos a todo aquello que pueda hacer que nuestra poder sacar el máximo provecho de las mejoras que incorpocomunidad siga viva, si no creciendo, al menos manteniéndo- rará la nueva versión, como integridad del sistema y la mejose y no decreciendo. ra del rendimiento. Claro que, como todo, tiene su punto déEn concreto, inscritos por España eran 47 personas a las bil puesto que para realizar esta conversión es necesario que se deberían sumar otras dos que, por error, fueron inscri- disponer de la observabilidad de los programas; si no dispotas bajo otros países (imagino que por problemas a la hora de nemos de ella, la conversión no será posible. formalizar la inscripción). Yo por ejemplo, al participar en el El lunes 19 hubo mucha más audiencia (muchos españostand de ASNA (del grupo BluePhoenix, originario de Israel) les se incorporaron este día) y, además de las sesiones de IBM, fui inscrito como israelita, cuando hasta lo que yo sé, nací en ya hubo muchas ponencias presentando soluciones o incluso Barcelona al igual que mis padres. de clientes compartiendo sus propias experiencias. A destaEl segundo grupo en número de inscritos era el del Reino car de este día el “keynote” que dio el Dr. Frank G. Soltis Unido con 31 asistentes; después y con un número similar de donde asistimos todos los que estábamos presentes en el participantes, Estados Unidos (donde la mayoría eran de Common y donde nos comentó un poco toda su carrera profeIBM); luego seguían Luxemburgo y Dinamarca, etc. sional, siempre vinculada al “entorno AS/400”, desde los
ServerNEWS MAYO 2008
www.help400.es
tiempos del S/38 hasta los de los actuales sistemas Power. Aunque todos nos quedamos algo melancólicos por los años ya vividos, fue la sesión más concurrida. Sin improvisar, y tal vez como contrapunto a la típica seriedad de un encuentro entre profesionales, ese mismo día hubo dos acontecimientos para que la gente disfrutara: El primero fue un “happy hour” patrocinado por ASNA, donde dos caricaturistas dibujaron una caricatura de todo aquel que quiso posar como modelo y donde se sorteó un iPod entre todos los asistentes. Mientras, el servicio de catering nos daba algunas bebidas y comida. El segundo ya fue por la noche y se trató de una cena en el hotel Hilton Diagonal Mar, donde al final de la velada un grupo de artistas vinieron y nos amenizaron con unas canciones a ritmo de música Gospel. La sorpresa llegó al final, cuando Olga Miralles, presidenta de Common Europe y de Common España, se puso a bailar un zapateado al ritmo del grupo que cantaba (Olga, ahora sí nos creemos que sabes bailar y, además, muy bien...). El martes día 20, fue algo más flojo en cuanto a asistencia y fue el día aprovechado por IBM para hablarnos de más temas relacionados con el Sistema i como son Rational Developer, Alta disponibilidad, Rendimiento, Herramientas de desarrollo, etc. Al mediodía la gente que quedaba y que no participaba en el workshop “RPG DB2 Summit” del día siguiente, tras el oportuno intercambio de e-mails, empezó a irse a sus lugares de origen, confiando en que el año 2009 el Common Europe que se realizará en Cracovia sea mejor y más productivo, no sólo que éste que acabamos de finalizar, sino que cualquiera de todos los anteriores.
Corresponsal improvisado
Carlos Valero, informático con más de 24 años de experiencia en los sistemas S/38, AS/400, iSeries, System i e IBM i, actualmente es director general de CaCovai 400, distribuidores en España de los productos de ASNA y miembros de Common España
▲ ▲ ▲
www.help400.es
En directo
Poco o casi nada podría trasmitiros de las ponencias y de sus ponentes, una información que está a vuestra disposición en la web de Common Europe (en www.comeur.org). Sólo, como “corresponsal improvisado” de ServerNEWS, añadir unos comentarios a las fotos que ilustran este resumen sobre lo que ha sido “COMMON Europe, Barcelona ‘08”: Siguiendo el orden vertical, en la primera Olga Miralles, presidenta de Common Europe, presenta a Mark Shearer, Vicepresidente de Marketing de IBM Business Systems. En la segunda, una instantánea que certifica que los profesionales del entorno también saben disfrutar de los momentos de asueto. En la tercera, y para quién no me conozca personalmente, aparezco luciendo el que podría ser el slogan de este certamen: “The future i needs you!”. La cuarta es bien elocuente y no creo que necesite más explicación. Para mí ha sido un verdadero placer aceptar el encargo de Help400 (ahora ServerNEWS, aunque yo la seguiré llamando Help400). Muchas gracias por estar ahí, foreros de Help400... a ver si nos podemos conocer en Cracovia el año que viene. ■
MAYO 2008 ServerNEWS
21
Herramientas portátiles para el System i En ocasiones, una simple llave de memoria USB puede ser muy útil por Tim Massaro as aplicaciones portátiles son perfectas para llevar con nosotros herramientas y aplicaciones de diagnósticos de Windows. Los usuarios sólo han de cargarlas en una unidad flash USB y ejecutarlas directamente desde la unidad portátil. En este pequeño artículo se describen algunas aplicaciones útiles para los usuarios del System i. Con estas herramientas y una llave USB barata, es facilísimo explorar y editar archivos del IFS y de PFM, ejecutar mandatos de PASE y obtener acceso 5250 al sistema... aunque esté visitando a su abuela y tenga que iniciar sesión desde su ordenador. Si no conoce las aplicaciones portátiles, puede que le interese visitar la web PortableApps.com (Figura 1). La mayoría de las aplicaciones que se enumeran aquí no están disponibles en ese sitio web, pero también pueden ejecutarse desde una unidad portátil. Las aplicaciones para la unidad flash que le recomendamos son:
L
Basadas en Telnet
Management
▲ ▲ ▲
22
Telnet (TELecommunication NETwork) es el nombre de un protocolo de red (y del programa informático que implementa el cliente), que sirve para acceder mediante una red a otra máquina, para manejarla como si estuviéramos sentados delante de ella. PuTTy portátil: PuTTY es una implementación libre de Telnet, SSH (Secure SHell) y sFTP con licencia de código libre. Disponible originariamente sólo para Windows, ahora también está disponible en varias plataformas Unix, y se está desorrollando la versión para Mac OS clásico y Mac OS X. Este cliente Telnet se instala como se describe en el sitio web PortableApps.com. Se conecta con el System i en una línea de mandatos o sesión 5250 telnet (Hallará más información en: portableapps.com/apps/internet/putty_portable). TN5250: los usuarios de TN5250 se conectan con sus sistemas System i con esta fantástica aplicación de emulación 5250. Descargue la versión para Windows de esta aplicación en sourceforge.net/projects/tn5250. Durante el proceso de instalación, especifique la unidad portátil como la ubicación de instalación y desmarque la opción de instalar un icono en el escritorio. Luego, simplemente ejecute TN5250 directamente desde la unidad flash. Hallará más información sobre esta aplicación en tn5250.sourceforge.net. Vaya nuestro agradecimiento al redactor de la revista System iNEWS, Scott Klement, que colabora en el desarrollo de TN5250.
ServerNEWS MAYO 2008
Basadas en Xming Xming, otro proyecto de código libere, es un servidor XWindows para Windows. Con Xming (necesario para las dos aplicaciones incluidas en este apartado), los usuarios pueden abrir programas gráficos de tipo Unix (que se ejecutan en particiones PASE, Linux o AIX del System i) directamente en un PC con Windows. Descargue Xming de SourceForge e instálelo en la unidad flash. Incluya el System i en el archivo X0.hhosts y, a continuación, inicie Xming con el mandato xming -auth X0.hhosts -multiwindow. Puede obtener más detalles en sourceforge.net/projects/xming. iXterm: abre una ventana de línea de mandatos de PASE directamente desde un PC con Windows. Para usar iXterm hay que ejecutar Xming en el PC y tener la PRPQ 5799PTL iSeries Tools for Developers instalada en el System i. El código fuente de iXterm se incluye en nuestra web, junto con el texto de este artículo. Copie el código fuente en la unidad flash y ejecútelo desde allí. Puede encontrar la PRPQ iSeries Tools for Developers en www-03.ibm.com/servers/enable/site/ porting/tools/install.html. En www-03.ibm.com/servers/ enable/site/porting/tools/faqs.html hallará respuesta a las preguntas más frecuentes. Sintaxis: iXterm.bat [/?] nombre_system_i /c (nombre_sistema) O dirección_ip:puerto_xming /u (nombre_de_usuario) O usuario_system_i
Ejemplo: iXterm.bat sistema01 mipc:0 usuariojoan
En este caso, iXterm inicia una sesión con sistema01 y muestra una ventana de línea de mandatos de PASE en el PC denominado mipc, donde el servidor X Xming se ejecuta en el puerto 0. iEditf: permite explorar y editar archivos del System i directamente desde un PC con Windows. Al igual que iXterm, iEditf también precisa que Xming se esté ejecutando en el PC y que la PRPQ 5799PTL iSeries Tools for Developers esté instalada en el System i. El código fuente de esta herramienta se puede encontrar en nuestra web. Copie el código fuente en la unidad flash y ejecute la aplicación desde allí. Sintaxis:
www.help400.es
La utilidad de este software depende de la situación de cada uno, pero si está visitando a su abuela, puede que necesite hacer uso del software VPN para conectarse con su intranet y acceder al System i directamente.
FileZilla, un cliente FTP portable
FIGURA 1 En PortableApps.com encontrará una suite de aplicaciones portables
Siempre he ido buscando el cliente FTP perfecto, que no de problemas de conexión, que permita conectar a todo tipo de servidores, etc. La verdad es que la gente no le da mucha importancia a esta herramienta, pero este programa merece ser destacado. Con FileZilla Portable, tenemos la posibilidad de disponer de un cliente FTP bueno y con muchas prestaciones. Pero, además, este cliente te permite disponer de estas configuraciones en cualquier lugar. Ya que el programa no requiere de DLLs ni archivos de sistema, se puede instalar en una llave USB cualquiera y llevártelo a todos lados con las configuraciones guardadas.
Utilización de mandatos de FTP remoto
Ejemplos: ieditf sistema01 mipc:0 /u /home/usr_joan
En este ejemplo, iEdit inicia una sesión con sistema01 con el mismo usuario que el del PC, abre el directorio /home/usr_joan y lo muestra en mipc, donde Xming se está ejecutando en el puerto 0. ieditf sistema01 10.10.10.1:2 USR_JOAN QGPL/QCLSRC MICLP
Software basado en VPN VPN (Virtual Private Network o Red Privada Virtual) es una tecnología que consigue realizar un uso privado de una red pública, por ejemplo, Internet. Esta tecnología permite conectarse a la red de la empresa desde equipos remotos, a través de Internet, de forma segura. Para ello, la información enviada se cifra en origen y se descifra en destino. Así se evita que caiga en manos ajenas.
www.help400.es
C:\> ftp> ftp> ftp> ftp> C:\>
ftp 192.168.0.1 username: nombre_usuario password: contraseña quote rcmd strsbs sbsd(qinter) quit exit
Management
En éste, iEditf inicia una sesión con sistema01 con el usuario USR_JOAN y abre el miembro MICLP del archivo QCLSRC, que se encuentra en la biblioteca QGPL. Luego, iEditf muestra el archivo del sistema cuya dirección IP es 10.10.10.1, donde Xming se está ejecutando en el puerto 2.
¿El sistema está funcionando pero nadie puede conectarse? ¿Ha fallado la copia de seguridad? ¿La IPL no se ha ejecutado correctamente? ¿Y no hay consola del sistema o está trabajando remotamente? Bueno, eso jamás me ha pasado, pero tengo unos cuantos amigos hipotéticos que han pasado por esta situación hipotética. En caso de que esto le pasara a usted... quiero decir, a alguien que conozca... y en caso de que el subsistema QINTER no se iniciara correctamente, su “amigo” podría utilizar la capacidad de FTP de enviar mandatos remotos al servidor para arrancar el sistema interactivo. La ventaja de usar FTP para enviar un mandato remoto para iniciar el subsistema QINTER es que esta técnica evita tener que ejecutar una IPL completa. La secuencia de mandatos FTP que se ejecuta desde la línea de mandatos de DOS ilustra la técnica para iniciar el subsistema. Con la sintaxis y la autorización de perfil de usuario correctas, el mandato se procesará con éxito. Esto será evidente ya que el servidor FTP devolverá al cliente la respuesta de si el mandato remoto se ha ejecutado de correctamente o no. A continuación, el cliente FTP muestra en pantalla el estado del mandato.
Tim Massaro es un programador asesor de IBM Rochester desde el S/38. Actualmente forma parte el equipo Application Development Solutions que trabaja con los productos Rational de IBM.
MAYO 2008 ServerNEWS
▲ ▲ ▲
ieditf.bat [/?] nombre_system_i /c (nombre_sistema) O dirección_ip:puerto_xming /u (nombre_de_usuario) O usuario_system_i archivo_o_directorio_del_IFS O miembro_archivo_físico (sólo archivos físicos)
23
Cómo escribir programas de servicio Utilice programas de servicio para avanzar hacia el diseño orientado a objetos por Julian Monypenny
I
BM incluyó los programas de servicio en el AS/400 como parte del Entorno de lenguajes integrados (ILE), aunque muchos departamentos que trabajan con System i los utilizan poco. Es el momento de volver a los conceptos básicos y explicar qué es y cómo se diseña y escribe un programa de servicio. Aunque en este artículo nos vamos a centrar en RPG, los principios son los mismos para todos los lenguajes ILE. Un programa de servicio es un objeto del System i de tipo *SRVPGM. En ciertos sentidos, un programa de servicio es parecido a un programa porque ambos contienen código ejecutable, pueden escribirse en cualquier lenguaje ILE y aceptan parámetros. En otros sentidos, un programa de servicio es esencialmente distinto de un programa. Un programa de servicio puede contener muchos procedimientos que pueden llamar otros programas ILE o programas de servicio, pero no desde la línea de mandatos. Mientras que los programas pueden compilarse en un paso, los programas de servicio han de compilarse en dos pasos. Las llamadas a los procedimientos de un programa de servicio se enlazan durante la compilación. Las llamadas a procedimientos enlazados son mucho más rápidas que las llamadas a un programa dinámico. Cada procedimiento puede devolver un único valor así como parámetros de actualización.
Qué incluir en un programa de servicio
Programación y sistemas
▲ ▲ ▲
24
Un programa de servicio normalmente contiene procedimientos relacionados. Los programas de servicio son un trampolín perfecto para el diseño orientado a objetos porque favorecen la agrupación de funciones relacionadas entre sí de forma coherente. Un programa de servicio puede contener todas las funciones que manipulan fechas, como por ejemplo la que convierte un campo de fecha de tipo carácter a otro de tipo entero y viceversa, la que comprueba la validez de la fecha de un campo, o la que sirve para averiguar el día de la semana. Otro programa de servicio puede llevar a cabo cálculos estándar de Análisis de ventas, como calcular el margen bruto o incorporar las reglas seleccionadas para el redondeo y el manejo de errores. Los programas de servicio simplifican la programación de funciones relacionadas porque todas esas funciones pueden escribirse en un solo miembro fuente. Esta capacidad facilita la aplicación de grandes cambios durante el ciclo de desarrollo y además los procedimientos pueden compartir datos, definiciones, archivos y variables globales comunes.
Estructura de los programas de servicio La estructura de un programa de servicio es parecida a la de un programa normal que contiene procedimientos, excepto que los programas de servicio no contienen cálculos
ServerNEWS MAYO 2008
en el programa principal. Un programa de servicio puede contener: • especificaciones de cabecera • especificaciones de archivo • especificaciones de datos globales • especificaciones de entrada • especificaciones de salida • procedimientos • datos de matriz de tiempo de compilación Cada procedimiento tiene un comienzo, una interfaz (si el procedimiento acepta parámetros o devuelve un valor), especificaciones de datos locales, cálculos y un final. La mayoría de estos componentes no hace falta explicarlos, pero vale la pena detenerse un momento en las definiciones de datos. Las definiciones de datos pueden ser globales o locales. Las definiciones globales se escriben antes que los procedimientos y las definiciones locales se escriben en el cuerpo de los procedimientos. Por regla general, las definiciones globales se usan para definir tipos de datos y variables comunes, estructuras de datos y matrices que deben compartirse entre procedimientos. Las definiciones locales se usan para los datos que únicamente necesita el procedimiento que las va a usar. Al igual que en los programas, los procedimientos pueden escribirse en cualquier orden, pero es preferible aplicar un orden jerárquico (o alfabético) coherente.
Especificar procedimientos Exactamente igual que un programa, un programa de servicio requiere un nombre de objeto de i5/OS estándar de hasta diez caracteres de longitud. El truco está en el diseño de los nombres de los procedimientos del programa de servicio. Esto parece sencillo, pero cada nombre de procedimiento debe reflejar su función. En general, los nombres deben formarse a partir de un verbo y un sustantivo (como crearEspacioUsr, listarMiembros, etcétera). Sea coherente con la terminología y oculte los detalles de la implementación. Por ejemplo, encadenarUsuario implica el uso de la operación CHAIN de RPG, mientras que obtenerDatosUsuario es más simple y oculta la forma de acceder a la base de datos. Intente que los verbos sean sencillos. Por ejemplo, en vez de usar validarFecha o comprobarFecha para validar una fecha, podría utilizarse esFecha o esFechaOk. Igualmente, para la conversión de datos, podría usar fechaEnEnt en lugar de convertirFechaEnEnt. La cuestión es trasmitir el propósito de un procedimiento al tiempo que se escribe código fácil de leer. Ahora viene la parte más difícil. El objetivo de los programas de servicio es estimular la escritura de código modular
www.help400.es
FIGURA 1 Lista de componentes para denominar procedimientos
○
○
○
○
○
○
○
Verbo
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
Actualizar Crear Eliminar Es Es...Ok Establecer Insertar Obtener ○
○
○
○
○
Sustantivo
○
Comentarios
Palabra ○
○
○
Abreviatura
○
○
○
○
○
Cantidad
Cant Datos Ent Fecha Matriz Ptr Serie ○
○
○
○
○
○
if esFechEnt( ver_fechaPedido ); pedido_fechaPedido = entEnFecha( ver_fechaPedido ); endif;
Entero
Puntero ○
AV GDP INV
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
○
Análisis de ventas Gestión de datos del producto Inventario
Paso de parámetros Como ocurre con los programas, los procedimientos pueden aceptar parámetros. A diferencia de los programas, los procedimientos también pueden devolver un valor, lo que permite escribir cosas como: resultado = hacerAlgo( parm1: parm2: parm3 );
www.help400.es
dow obtenerEntradaMiembro(listMiembros:entradaMiembro); procesar( entradaMiembro.nombre ); enddo;
Los procedimientos flexibles pueden incluir tanto parámetros de entrada obligatorios como opcionales, además de parámetros de actualización y salida. Primero, especifique los parámetros de entrada necesarios, luego los parámetros de actualización o salida y, finalmente, los parámetros de entrada opcionales. Esto significa que los parámetros opcionales pueden omitirse en una llamada si no hace falta ninguno. A ser posible, pase los parámetros de entrada por valor. Así, no sólo se impide que los modifiquen los procedimientos, sino que también se pueden utilizar expresiones y conversiones de tipos en las llamadas. Por ejemplo: x = minEnt(x + y: z); ponError( ‘No se ha encontrado el nombre de miembro ‘ + nombreMiembro );
La primera línea de código suma x e y y le pasa el resultado a minEnt. La segunda línea concatena nombreMiembro con el texto del error y le pasa el resultado a ponError. Si los parámetros son muy grandes (por ejemplo, una matriz o una estructura de datos grandes) puede que valga la pena pasar-
MAYO 2008 ServerNEWS
Programación y sistemas
que pueda reutilizarse, lo que significa que terminará con un montón de procedimientos reutilizables. Durante la compilación y el enlazado, cada procedimiento visible para el compilador debe tener un nombre exclusivo, lo que quiere decir que hay que calificar los nombres de procedimiento para garantizar su exclusividad al tiempo que se conserva la legibilidad. Si sigue el método de encapsular el tipo de datos en un programa de servicio, puede simplificar el proceso de calificación de los nombres de procedimiento con el tipo de datos (por ejemplo, crearEspacioUsr, eliminarEspacioUsr u obtenerDatosEspacioUsr). En el caso de las áreas funcionales de las aplicaciones, se puede incorporar una abreviatura de la aplicación en los nombres de los procedimientos. Por ejemplo, los procedimientos de Análisis de ventas pueden tener nombres parecidos a obtenerBeneficiosTotalesAV u obtenerPorcentajeBeneficiosAV. Suele ser útil crear una lista de los componentes utilizados para crear nombres de procedimiento (Figura 1). La lista de la Figura 1 está dividida en verbos, sustantivos y abreviaturas. Los verbos y los sustantivos suelen ser palabras completas a menos que comúnmente se admita una abreviatura (como Ent por Entero).
Si la fecha del pedido que se ha introducido en formato entero en un archivo de pantalla es correcta, se convierte en formato de fecha y la salida se envía al archivo de pedidos. Para lo que no sean tipos de datos básicos, devuelva un valor que indique si se ha ejecutado correctamente o ha ocurrido un error y especifique los otros valores de retorno como parámetros de salida. Si se necesitan varios valores de salida relacionados, inclúyalos en una estructura de datos. En el ejemplo siguiente se procesan todas las entradas de miembros de un espacio de usuario devuelto por la API Listar miembros:
▲ ▲ ▲
Tipo
Este fragmento suscita dos preguntas: ¿en qué orden deben escribirse los parámetros y qué valor debe devolver un procedimiento? Vamos a responder primero a la segunda pregunta. En el caso de funciones básicas, puede devolverse un resultado elemental; sin embargo, en el caso de funciones complejas, puede que tenga que devolver o bien un único valor o bien un conjunto de valores y posiblemente un indicador de error. Los programas de servicio se pueden dividir en dos tipos: los de tipos de datos básicos y los otros. Para los de tipos de datos básicos, incluya procedimientos para comprobar si los datos son correctos. Utilice el valor de retorno para devolver el resultado de los demás procedimientos. Por ejemplo:
25
■ CÓMO ESCRIBIR PROGRAMAS DE SERVICIO los por referencia para mejorar el rendimiento. Siempre que sea posible, pase como parámetros valores sencillos en lugar de compuestos. Por ejemplo, en vez de pasar un nombre de objeto calificado de 20 caracteres, pase los nombres de la biblioteca y el objeto como dos parámetros independientes de 10 caracteres.
Escribir un programa de servicio Vamos a ver un par de ejemplos de cómo escribir programas de servicio. STDPRC contiene procedimientos estándar básicos y RCDLCK contiene procedimientos para recuperar los bloqueos de registros de un miembro de archivo. Ambos ejemplos usan los miembros de copia de RPGLE. En este artículo se da por supuesto que los miembros de copia se almacenan en el archivo físico QRPGLESRC al inicio de la lista de bibliotecas. Para producción, es mejor tener un archivo físico especial para los miembros de copia. El miembro de copia STDTYPH (Figura 2) define los tipos de datos estándar que pueden usarse en cualquier programa o programa de servicio. El miembro de copia APIERRH (Figura 3) define la estructura de datos de errores devuelta por las API del System i. Fíjese que ambos miembros de copia empiezan con un bloque de directivas de compilación (en el punto A de la Figura 2) con el fin de asegurarnos de que el miembro se expande sólo una vez durante la compilación. El primer ejemplo, STDPRC, contienen los tres procedimientos siguientes: • maxInt: devuelve el máximo de dos enteros • minInt: devuelve el mínimo de dos enteros • qual: concatena dos o tres nombres sencillos en un nombre calificado, en formato biblioteca/objeto o biblioteca/archivo/miembro
Programación y sistemas
▲ ▲ ▲
26
El programa de servicio se escribe usando los miembros fuente STDPRCH y STDPRC. STDPRCH (Figura 4) es un miembro de copia que contiene interfaces con los procedimientos del programa de servicio. Los parámetros de entrada se identifican mediante la palabra clave VALUE. El tercer parámetro del procedimiento, qual, usa la opción *NOPASS para indicar que es opcional y que puede omitirse en la llamada. Cada procedimiento define el valor de retorno real de la función: o bien el valor entero máximo o mínimo, o bien el nombre calificado. El programa de servicio STDPRC de la Figura 5 contiene los procedimientos reales. Los procedimientos maxInt y minInt devuelven el entero correspondiente. El procedimiento qual utiliza la función integrada (BIF) %PARMS para comprobar si se ha pasado el tercer parámetro opcional. STDPRC ilustra varios principios básicos, como el de cómo construir nombres de procedimientos con sentido, cómo pasar los parámetros de entrada por valor, cómo devolver el valor de una función sencilla y cómo pasar parámetros opcionales. El segundo ejemplo, RCDLCK, contiene los procedimientos listRecordLocks (lista los bloqueos de registros de un
ServerNEWS MAYO 2008
FIGURA 2 Cabecera con tipos estándar STDTYPH A
/if not defined( stdTypH ) /define stdTypH /else /eof /endif //===================================================================== // Standard Data Types Header // // Copyright (C) Julian Monypenny 1997 // // Defines standard data types for use in any program. //===================================================================== d nullPtr s * d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d
apiFormatType s bigIntType s binType s boolType s bufferType s charType ds int commandType s dateType s decType s doubleType s floatType s intType s messageIdType s nameType s procPtrType s ptrType s qualFileType ds size name lib member qualNameType ds name lib qualObjectType ds name lib type smallBinType s smallIntType s stringType s textType s timestampType s timeType s tinyIntType s tokenType s unsignedIntType... s unsignedBigIntType... s unsignedSmallIntType... s unsignedTinyIntType... s varBufferType s varCharType s varCommandType s varNameType s varStringType s varTextType s varTokenType s
d maxDecType d maxNumType
s s
8 based( nullPtr ) 20i 0 based( nullPtr ) 9b 0 based( nullPtr ) 1n based( nullPtr ) 32767 based( nullPtr ) 1 based( nullPtr ) qualified like( unsignedTinyIntType ) 3000 based( nullPtr ) d based( nullPtr ) datfmt( *iso ) 15p 5 based( nullPtr ) 8f based( nullPtr ) 4f based( nullPtr ) 10i 0 based( nullPtr ) 7 based( nullPtr ) 10 based( nullPtr ) * based( nullPtr ) procptr * based( nullPtr ) based( nullPtr ) qualified like( smallIntType ) like( nameType ) like( nameType ) like( nameType ) based( nullPtr ) qualified like( nameType ) like( nameType ) based( nullPtr ) qualified like( nameType ) like( nameType ) like( nameType ) 4b 0 based( nullPtr ) 5i 0 based( nullPtr ) 256 based( nullPtr ) 50 based( nullPtr ) z based( nullPtr ) t based( nullPtr ) timfmt( *iso ) 3i 0 based( nullPtr ) 32 based( nullPtr ) 10u 0 based( nullPtr ) 20u 0 based( nullPtr ) 5u 0 based( nullPtr ) 3u 0 based( nullPtr ) 32767 based( nullPtr ) varying 1 based( nullPtr ) varying 3000 based( nullPtr ) varying 10 based( nullPtr ) varying 256 based( nullPtr ) varying 50 based( nullPtr ) varying 32 based( nullPtr ) varying 31p 0 based( nullPtr ) 31s 0 based( nullPtr )
FIGURA 3 Cabecera de errores de la API APIERRH /if not defined( apiErrH ) /define apiErrH /else /eof /endif //===================================================================== // API Error Header // // Copyright (C) Julian Monypenny 1997 // Sigue ...
www.help400.es
// Defines the error data structure returned by System i APIs. //===================================================================== /copy qrpglesrc,stdTypH d apiError d inLen d outLen d id d d text
ds
qualified like( intType ) inz( 264 ) like( intType ) like( messageIdType ) 1 256
FIGURA 4 Cabecera de procedimientos estándar STDPRCH /if not defined( stdPrcH ) /define stdPrcH /else /eof /endif //===================================================================== // Standard Procedures Header // // Copyright (C) Julian Monypenny 1997 // // Contains standard procedures for use in any program: // o return the maximum of two integers (maxInt) // o return the minimum of two integers (minInt) // o return a qualified name (qual) //===================================================================== /copy qrpglesrc,stdTypH d maxInt d int1 d int2
pr
like( intType ) like( intType ) value like( intType ) value
d minInt d int1 d int2
pr
like( intType ) like( intType ) value like( intType ) value
d qual d name1 d name2 d name3 d
pr
like( varTokenType ) like( nameType ) value like( nameType ) value like( nameType ) value options( *nopass )
FIGURA 5 Procedimientos estándar de STDPRC //===================================================================== // Standard Procedures // // Copyright (C) Julian Monypenny 1997 //===================================================================== h nomain //——————————————————————————————————// Global definitions //——————————————————————————————————/copy qrpglesrc,stdPrcH /copy qrpglesrc,stdTypH
Compilar un programa de servicio Como se decía antes, son necesarios dos pasos para crear un programa de servicio. El primero es crear un módulo desde un miembro fuente y el segundo consiste en crear el programa de servicio desde el módulo (o módulos). Use el mandato Crear módulo de RPG (CRTRPGMOD) para crear un módulo. Para crear un módulo STDPRC en BIBLIO desde el miembro fuente STDPRC de QRPGLESRC en BIBLIO, ejecute el mandato: CRTRPGMOD MODULE( BIBLIO/STDPRC ) SRCFILE( BIBLIO/QRPGLESRC )
/free if int1 > int2;
/end-free p
e
//————————————————————————————p minInt b //————————————————————————————d pi
www.help400.es
export like( intType )
Sigue ...
A continuación, utilice el mandato Crear programa de servicio (CRTSRVPGM) para crear el programa de servicio a partir del módulo. Los programas de servicio y los programas que los utilizan no pueden ejecutarse en el grupo de activación por omisión. La forma más sencilla de gestionar grupos de activación es controlarlos en el nivel de programa y compilar los programas de servicio para que usen el grupo de activación del comunicante. Para crear el programa de servi-
▲ ▲ ▲
return int1; else; return int2; endif;
Programación y sistemas
//——————————————————————————————————p maxInt b export //——————————————————————————————————d pi like( intType ) d int1 like( intType ) value d int2 like( intType ) value
miembro de archivo) y getRecordLock (obtiene los detalles de un bloqueo de la lista devuelta por listRecordLocks). De nuevo, el programa de servicio se escribe usando dos miembros fuente, RCDLCKH y RCDLCK. RCDLCKH (Figura 6) es un miembro de copia que contiene interfaces con los procedimientos y las estructuras de datos que generan éstos. El procedimiento listRecordLocks genera recordLocks y getRecordLock genera recordLock. Observe que ambas estructuras de datos usan la palabra clave QUALIFIED para garantizar que los nombres de subcampos son exclusivos y para facilitar la definición de una copia de la estructura de datos usando la palabra clave LIKEDS. En las interfaces, primero se enumeran los parámetros de entrada. Las estructuras de datos de salida figuran después. Ambos procedimientos devuelven un valor para indicar si se han ejecutado correctamente o no. RCDLCK (Figura 7) contiene los procedimientos reales; listRecordLocks usa la API QDBRRCDL para listar los bloqueos en el miembro fuente especificado. Si la API devuelve un error, se borra el contenido de la estructura de datos de salida y el procedimiento devuelve el valor *OFF para indicar que se ha producido un error. Si la API no devuelve un error, se devuelven los bloqueos con el valor de retorno *On para indicar que todo ha ido bien. El procedimiento getRecordLock comprueba si el bloqueo solicitado está en la lista. En caso afirmativo, se devuelve el bloqueo con el valor de retorno *ON. Si no lo está, se borra la estructura de datos de salida y se devuelve el valor *OFF. RCDLCK ilustra los principios de cómo escribir nombres de procedimientos que tengan sentido, cómo pasar parámetros de entrada por valor, cómo devolver valores complejos en una estructura de datos y cómo indicar si el procedimiento se ha ejecutado correctamente o se ha producido algún error.
MAYO 2008 ServerNEWS
27
■ CÓMO ESCRIBIR PROGRAMAS DE SERVICIO cio STDPRC en BIBLIO desde el módulo STDPRC, ejecute este mandato: CRTSRVPGM SRVPGM( MODULE( EXPORT( ACTGRP(
BIBLIO/STDPRC ) BIBLIO/STDPRC ) *ALL ) *CALLER )
Tenga en cuenta que la opción *ALL de la palabra clave EXPORT especifica que se van a usar todas las exportaciones del programa de servicio para crear la firma del programa de servicio. La firma garantiza que los programas se enlazan con la versión correcta del programa de servicio. Es posible usar el lenguaje enlazador ILE para admitir varias firmas, pero eso se sale del ámbito de interés de este artículo (puede hallar más información en el manual “ILE Concepts”, en el Information Center de IBM).
d d
if int1 < int2; return int1; else; return int2; endif; /end-free p
/copy qrpglesrc, rcdLckH
Para procesar los bloqueos de un miembro fuente, escriba: idx = 1; listRecordLocks( file: lib: member: recordLocks );
Programación y sistemas
▲ ▲ ▲
28
dow getRecordLock( idx: recordLocks: recordLock ); process(recordLock); idx += 1; enddo;
La forma más fácil de enlazar programas de servicio es usando un directorio de enlace, que lista los programas de servicio y módulos que pueden enlazarse durante la compilación. En primer lugar, use el mandato Crear directorio de enlace (CRTBNDDIR) para crear el directorio de enlace: CRTBNDDIR BIBLIO/DIRENLACE
A continuación, use el mandato Añadir entrada de directorio de enlace (ADDBNDDIRE) para añadir RCDLCK al directorio de enlace:
ServerNEWS MAYO 2008
e
//————————————————————————————p qual b //————————————————————————————d pi d name1 d name2 d name3 d d qualName
export like( varTokenType ) like( nameType ) value like( nameType ) value like( nameType ) value options( *nopass )
s
like( varTokenType )
/free if %parms = 3; qualName = %trim( name1 ) + ‘/’ + %trim( name2 ) + ‘/’ + %trim( name3 ); else; qualName = %trim( name1 ) + ‘/’ + %trim( name2 ); endif;
Los cuatro pasos siguientes afectan tanto al fuente como a la compilación y son necesarios para llamar a un procedimiento de un programa de servicio:
Para ilustrar estos pasos, veamos cómo se usan los procedimientos de RCDLCK. En primer lugar, para definir las interfaces del procedimiento, escriba una directiva de copia en las especificaciones D del programa:
like( intType ) value like( intType ) value
/free
Utilizar procedimientos en los programas
1. Definir la interfaz del procedimiento. 2. Escribir la llamada. 3. Especificar un grupo de activación. 4. Enlazar el programa de servicio.
int1 int2
dow %subst( qualName: 1: 1 ) = ‘/’; qualName = %subst( qualName: 2 ); enddo; return qualName; /end-free p
e
FIGURA 6 Cabecera de procedimientos de bloqueo de registros RCDLCKH /if not defined( rcdLckH ) /define rcdLckH /else /eof /endif //============================================================== // Record Locks Header // // Copyright (C) Julian Monypenny 2006 // // Contains procedures to list the record locks on a file member: // o list record locks (listRecordLocks) // o get a record lock (getRecordLock) //============================================================== /copy qrpglesrc,stdTypH d recordLocks d avail d size d offset d d
ds
len buffer
d recordLock d job d user d jobNbr d status d state d recordNbr d threadId d threadHandle
qualified like( intType ) like( intType ) like( intType )
-16 ds
d listRecordLocks... d pr d file
like( intType ) like( bufferType ) qualified like( nameType ) like( nameType )
6 like( charType ) like( charType ) like( unsignedIntType ) 8 like( unsignedIntType )
like( boolType ) like( nameType ) value
Sigue ...
www.help400.es
MAYO 2008 ServerNEWS
▲ ▲ ▲
www.help400.es
Programación y sistemas
te ista n e ev m a la r t i tu on a r c g á nto r i ib ju c e ico r y cn e s té a íb nto r c e s Su plem u S el
29
■ CÓMO ESCRIBIR PROGRAMAS DE SERVICIO ADDBNDDIRE BIBLIO/DIRENLACE BIBLIO/RCDLCK
Luego puede usar el mandato Crear programa RPG enlazado (CRTBNDRPG) para crear el programa, alterando temporalmente el grupo de activación y especificando el directorio de enlace: CRTBNDRPG PGM( BIBLIO/PROGRAMA ) SRCFILE (QRPGLESRC/PROGRAMA ) DFTACTGRP( *NO ) ACTGRP( GRUPOACTIV ) BNDDIR( BIBLIO/DIRENLACE )
Una opción que funciona bien es usar un grupo de activación y un directorio de enlace por cada sistema o aplicación. por ejemplo, se puede usar GRPACTJDA y DIRENLJDA para los complementos de software de JDA. Si quiere, puede usar las especificaciones H del programa para especificar las opciones de compilación de antes: h dftactgrp( *no ) actgrp( ‘GRUPOACTIV’ ) h bnddir( ‘BIBLIO/DIRENLACE’ )
La ventaja de está técnica es que no hay que alterar temporalmente los parámetros de CRTBNDRPG para compilar correctamente el programa. Como decía antes, cada programa de servicio tiene una firma. Si se cambian las exportaciones de un programa de servicio y se vuelve a crear, se cambia su firma. Esto significa que tendrá que volver a crear todos los programas que usen estos procedimientos. Si utiliza miembros de copia para definir interfaces con los procedimientos de un programa de servicio, podrá examinar los archivos fuente en busca de referencias a los miembros de copia y volver a compilar los miembros afectados. Este método normalmente funciona bien y no lleva mucho tiempo.
Ahora es su turno
Programación y sistemas
▲ ▲ ▲
Los programas de servicio son herramientas valiosas para el desarrollo modular. Si se usan correctamente agilizarán no sólo el desarrollo y el mantenimiento de las aplicaciones. También le permitirán empezar a pensar en cómo se escriben programas orientados a objetos, lo que es un gran paso hacia Java. Se tarda muy poco en hacer planes para usar programas de servicio eficazmente. Hay que formular los convenios de denominación que se usarán, aislar las interfaces de los miembros de copia para garantizar la coherencia y ayudar a la recompilación, y desarrollar un estándar para pasar parámetros y devolver valores. ■
like( nameType ) value
d getRecordLock d idx d locks d lock
like( boolType ) like( intType ) value likeds( recordLocks ) likeds( recordLock )
pr
like( nameType ) value likeds( recordLocks )
FIGURA 7 Procedimientos de bloqueo de registros RCDLCK //===================================================================== // Record Locks Procedures // // Copyright (C) Julian Monypenny 2006 //===================================================================== h nomain //——————————————————————————————————// Global definitions //——————————————————————————————————/copy qrpglesrc,apiErrH /copy qrpglesrc,rcdLckH /copy qrpglesrc,stdTypH //——————————————————————————————————p listRecordLocks... p b export //——————————————————————————————————d pi like( boolType ) d file like( nameType ) value d lib like( nameType ) value // name, *CURLIB, *LIBL d member like( nameType ) value // name, *FIRST d locks likeds( recordLocks ) d apiFormat d qualFile
c s
‘RRCD0100’ like( qualNameType )
d getLocks_ d locks_ d locksLen_ d apiFormat_ d qualFile_ d member_ d recordNbr_ d apiError_
pr
extpgm( ‘QDBRRCDL’ ) like( recordLocks ) like( intType ) const like( apiFormatType ) const like( qualFile ) const like( nameType ) const like( unsignedIntType ) const like( apiError )
/free qualFile = file + lib; getLocks_( locks: %size( locks ): apiFormat: qualFile: member: 0: apiError ); if apiError.outLen = 0; return *on; else; clear locks; return *off; endif; /end-free p
e
//——————————————————————————————————p getRecordLock b export //——————————————————————————————————d pi like( boolType ) d idx like( intType ) value d locks likeds( recordLocks ) d lock likeds( recordLock ) /free if idx >= 1 and idx <= locks.size; lock = %subst( locks: locks.offset + 1 + (idx - 1) * locks.len: locks.len ); return *on; else; return *off; endif;
Julian Monypenny es redactor técnico de System iNEWS.
30
d lib // name, *CURLIB, *LIBL d member // name, *FIRST d locks
ServerNEWS MAYO 2008
/end-free p
e
www.help400.es
Programación y sistemas
▲ ▲ ▲ www.help400.es
MAYO 2008 ServerNEWS
31
GUIA
32 ServerNEWS MAYO 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
MAYO 2008 ServerNEWS 33
confidencial
por Carlos Bell
¿QUO VADIS, IBM i? Por fin IBM ha logrado alcanzar uno de sus objetivos más ambiciosos: crear un servidor universal para el ámbito empresarial basado en la tecnología más avanzada, los Power Systems, capaces de enfrentarse a cualquier otra arquitectura con grandes posibilidades de éxito. Con este anuncio, es lógico que los profesionales del entorno midrange de IBM, acostumbrados como estábamos desde los tiempos del S/3 a considerar a la máquina y al sistema operativo como un todo, nos sintamos algo desconcertados al comprobar que sólo somos expertos en IBM i, un excepcional sistema operativo de IBM que integra mucho software del sistema pero que en el mercado empresarial, frente a otras opciones a tener muy en cuenta como AIX, Linux o Windows Server, es muy minoritario. Este... no seamos pesimistas: Más vale ver la botella medio llena que medio vacía. Con la escasez de expertos en IBM i (es decir, en AS/400) nuestro valor en el mercado laboral se multiplica; desde hace años sigue valorándose más un desarrollador en RPG que uno en VisualBasic .NET, por poner un ejemplo. Cierto, hay miles de programadores en “loquesea” .NET, Java o PHP, y la ley de la oferta y la demanda sigue estableciendo unos criterios de retribución que nos benefician frente a otros colectivos igual de preparados. ¿Entonces? Pues... me sabe mal pero se trata de una simple falacia, es eso del “pan para hoy y hambre para mañana” y si no, fijaros en la realidad. Cada día empresas como Adobe, Apple, Microsoft, Novell o Sun, por citar unas pocas, intentan atraer a nuevos desarrolladores para dinamizar sus entornos. En nuestro caso, si en mayo de 2002 la edad promedio del entorno AS/400 era de unos 37 años (del artículo “A veces me siento como un dinosaurio”, publicado en el número 125) ahora debe rondar los 44 años. ¿De veras creéis que este maravilloso sistema operativo al que los de IBM USA llaman “aibiemay” aportará nueva savia al entorno? ¿Si? ¿De dónde saldrá, de la Universidad, de las escuelas de FP, de las iniciativas de IBM? Y si el entorno no se “rejuvenece” ¿quién va a apostar por él? Encerrados en nuestra torre de marfil, hemos permanecido ajenos a lo que ocurría a nuestro alrededor porque estábamos convencidos de que la insuperable fiabilidad del System i y su sistema operativo, evitaría el avance de la plataforma “Wintel” entre las aplicaciones empresariales de misión crítica; considerábamos que los System p, con AIX, eran la mejor opción para los procesos industriales; y Linux estaba ahí para complementar a ambos sistemas. La nueva ecuación Power de IBM ha alterado este esquema: ahora, la integración del IBM i y su facilidad de uso ha de competir con otros en unas máquinas cuya indiscutible fiabilidad y tecnología hemos ayudado a financiar durante más de 20 años.
¿Windows Server para Power Systems? Mientras IBM intenta arrebatar clientes a HP y Sun con los nuevos Power Systems, es muy posible que en Microsoft estén considerando muy seriamente a estos sistemas como la
INDICE DE ANUNCIANTES MAYO 2008 Empresa
Página
AMERICAN TOP TOOLS ..................... Interior portada AMERICAN TOP TOOLS ....... Interior contraportada CACOVAI ................................................................................ 19 GUÍA ................................................................................. 32, 33 IBM .................................................................. Contraportada SOFTWARE GREENHOUSE ................................................ 9 SUSCRIPCION ServerNEWS ............................................ 31 VISION SOLUTIONS .............................................................. 9
mejor oportunidad para hincarle el diente al entorno midrange de IBM, algo en lo que vienen soñando desde que lanzaron WindowsNT 3.5 allá por el año 1995, fecha en la que los procesadores PowerPC de la alianza Apple, IBM y Motorola, parecía que acabarían con la supremacía de los procesadores Pentium de Intel. ¿Ya nadie recuerda que existió una versión de WindowsNT específica para la arquitectura PowerPC? Pues sí, así fue, pero quedó relegada al olvido por falta de aplicaciones comerciales y porque Apple acaparó ese mercado. Y puestos a recordar, recordemos que la arquitectura del juego de instrucciones (ISA - Instruction Set Architecture) de los POWER6, es, básicamente, la misma que la de los PowerPC, los procesadores que equipan a la Xbox 360 de Microsoft, videoconsola de la cual según cifras oficiales, hasta el pasado mes de abril se habían vendido 19 millones de unidades. Pues... supongamos que sí. Por fin Microsoft podría competir con garantías de éxito en el mundo de las aplicaciones empresariales de misión crítica con un SO multiplataforma. Y mientras, IBM a lo suyo, a vender más Power Systems. ■ Como sabes, esta información es estrictamente confidencial. Aunque nosotros neguemos haberlo dicho o escrito, te autorizo a que obres en consecuencia
34 ServerNEWS MAYO 2008
www.help400.es