ServerNEWS -182 (Marzo 2008)

36
182

description

Gestión de Proyectos: descubra cómo conseguir requisitos de los usuarios claros, concisos, fáciles de cuantificar y de probar.

Transcript of ServerNEWS -182 (Marzo 2008)

Page 3: ServerNEWS -182 (Marzo 2008)

www.help400.es MARZO 2008 ServerNEWS 3

editorial

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

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

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

Antonio Montí[email protected]

Imagen de la portada: Mike Friehauf

El usuario tienederechos

on los años, y como profesional informático, uno va adquiriendo ex-periencia no sólo en el campo del desarrollo de aplicaciones sino tam-bién en el trato y relación con los usuarios de las mismas. En estesentido, todos hemos vivido situaciones tan anecdóticas o tan com-prometidas que, con el tiempo, nos han hecho acreedores de una ciertamala fama y de que, en general, se nos acuse de prestar poca aten-

Cción a las necesidades reales del usuario. Es más, nosotros, también como usuariosy en más de una ocasión, nos hemos acordado de aquel programador al que se leocurrió la brillante idea de combinar las teclas “Control-Alt-Del” del PC para fina-lizar, sin ningún tipo de control, alguna que otra sesión de Windows.

Profundizando un poco en el tema, en Internet encontré que en 1998, Claire-Marie Karat, especialista en el análisis de interfaces de usuario en IBM, propusoen la revista Business Week (www.businessweek.com/1998/39/b3597037.htm) unaespecie de decálogo o “Código de derechos de los usuarios de informática” del quevale la pena destacar algunos principios:

• El usuario siempre tiene razón. Si hay un problema en el uso de un sistema no espor su culpa. ¿Cuántas veces nos hemos encontrado en una situación en que nosdicen que no sabemos usar algo que debería ser muy sencillo de manejar?,

• el usuario tiene derecho a poder instalar fácilmente software y hardware,• tiene derecho a pedirle al sistema lo que le han prometido que hará,• tiene derecho a disponer de instrucciones fáciles de comprender,• tiene derecho a comunicarse con el proveedor de la tecnología para obtener res-

puestas adecuadas,• los productos (hardware y software) tienen que ser fáciles e intuitivos de usar.

Lo que viene a decir, en resumen, es que los usuarios tenemos derecho a dispo-ner de un servicio de calidad. Inmediatamente hubo una reacción de los lectores deBusiness Week que pedían que se empezara a aplicar rápidamente el código. Tam-bién como consecuencia aparecieron las respuestas de los teóricos informáticosdudando de la posibilidad de construir sistemas realmente “intuitivos”. En estenúmero, que temáticamente hemos centrado en la Gestión de Proyectos podemosencontrar argumentos y metodologías que, como mínimo, nos ayudarán a mejoraresta percepción negativa de los usuarios.

Ante una nueva aplicación, el prepararla convenientemente no sólo nos permiti-rá atender mejor la “lista de deseos” del usuario sino que también nos permitiráganar su aprecio y respeto.

Page 4: ServerNEWS -182 (Marzo 2008)

4 ServerNEWS MARZO 2008 www.help400.es

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

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

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

administraciónSuscripciones : Nuria NavarroPublicidad: Tel. 34- 932 310 049

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

editaPUBLICACIONES

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

Director General: Alberto C. Blanch Llangostera

Publicado con la participación de

- iSeries NEWS www.pentontech.com

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

Penton Technology MediaDarrell C. Denny, President

Penton Media, Inc.David Nussbaum, Chief Executive Officer

LATINOAMERICA

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

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

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

en portadaen portadaen portadaen portadaen portada

1010101010 Recopilación y documentación de requisitospor Russ BartlettEl usuario final de una aplicación es la persona a la queva destinada una aplicación una vez que ésta ha supera-do las fases de desarrollo. Descubra cómo conseguir re-quisitos de los usuarios claros, concisos, fáciles de cuanti-ficar y de probar.

1414141414 Cómo decidirse por una solución parael desarrollo de aplicacionespor Chris MaxcerSi se pregunta si, para equipos pequeños, no sería mejoradquirir una herramienta de desa-rrollo de aplicaciones en vez deintentar aprender nuevos len-guajes y técnicas, puedeque en este artículo ha-lle la respuesta.

opinión

8 La web convierte a las empresas en compañías desoftwarepor John GhristEl fin de las aplicaciones web es servir a personas que no tienen la obli-gación de tolerar programas malos, por tanto han de hacer correctamen-te todo lo que se supone que deben hacer. Y eso las sitúa al mismo nivelde exigencia que en el desarrollo de software comercial.

Page 5: ServerNEWS -182 (Marzo 2008)

www.help400.es MARZO 2008 ServerNEWS 5

www.help400.es

MARZO 2008 ServerNEWS 5

SECCIONESHABITUALES

33333 Editorial

66666 Novedades

4040404040 Guia

4242424242 Confidencial

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

HELP400 Suplemento Suplemento Técnico i

Nº 182 MARZO 2008

1 Parámetros y tipos de datos de las APIPor Bruce ViningIniciamos una nueva serie de artículos, genéricamente titulada como“APIs estándar para los programadores en CL”, para explicar cómose pueden utilizar desde ILE CL muchas de las API estándar delsector. Para familiarizarnos con sus parámetros y tipos de datos,empezaremos explorando la API getenv.

programación y sistemas

20 Configurar un entorno seguro para aplicacionesescritas en PHPpor Alan SeidenDada la naturaleza abierta de Internet, los administradores de sistemasque instalen aplicaciones web en el entorno PHP de Zend Core para i5querrán tener garantizada la seguridad. En este artículo se explica cómoaumentar la protección desde el propio entorno PHP.

management

24 Supervisar el rendimiento del entorno webpor Rachel Eagle y Tim RoweEl Supervisor de rendimiento Web (WPM) forma parte del IBM HTTP Serverpara i5/OS y nos permite, desde la interfaz Web Administration, recopilardatos sobre el rendimiento de los trabajos que componen un entorno web ylas transacciones realizadas por éstos.

28 Añadir técnicas de SQL Server al repertorio de DB2por Paul ConteMás allá del lenguaje SQL en sí, hay varias funciones en el SQL Server deMicrosoft que todavía no están implementadas en DB2 y que puede que leinterese utilizar en sus desarrollos. En este artículo encontrará una rápidaintroducción.

12 Como evitar el fracaso de un proyectoPor Paul ConteFormando parte de la temática de portada de este número, presen-tamos diez técnicas garantizadas para conseguir que un proyectode desarrollo fracase (y diez remedios infalibles para asegurarse detodo lo contrario)

estrictamente confidencial

42 Algo se está cociendo en IBMpor Carlos BellEn la próxima reunión anual de COMMON USA IBM anunciará una impor-tante iniciativa denominada “The New Power Equation”.

Page 6: ServerNEWS -182 (Marzo 2008)

6 ServerNEWS MARZO 2008 www.help400.es

novedades

T

■ ■ ■ ■ ■ Econocom abrenuevas oficinas enBarcelona

Econocom, empresa líder enrenting y gestión de activos infor-máticos y de telecomunicaciones,ha abierto nuevas oficinas en Bar-celona “para hacer frente al creci-miento que hemos experimentado enla región en los últimos meses”, co-mentó Ángel Benguigui, DirectorGeneral de Econocom España. Lanueva sede de Econocom en Bar-celona está situada en Roger deLluria, 50. Con este cambio,Econocom continúa con su estra-tegia de aumentar el compromisocon Catalunya a más largo plazo.

Según Benguigui, el crecimien-to que está experimentando elrenting tecnológico en todo el paísestá siendo más acusado en Bar-celona, “donde la cultura del Ren-ting está muy arraigada. Aunquenuestra sede central permaneceráen Madrid, porque es un centro denegocios clave en España, Barcelo-na es un mercado que empieza aganar protagonismo en el creci-miento de nuestra empresa. El mer-cado español es, cada día, más re-ceptivo al Renting IT. Cada díamás empresas apuestan por estaopción en lugar de la compra, debi-do a los beneficios inmediatos queexperimentan en términos económi-cos, financieros y de gestión”.

A través de las soluciones deRenting que ofrece Econocom, lasempresas no tienen que adquirir yvincular su capital a equipos infor-máticos sometidos a una rápidadepreciación. Además, para hacerfrente a los continuos desafíos delmercado y disfrutar de los benefi-cios ofrecidos por las tecnologíasmás modernas e innovadoras, lasempresas tendrían que adecuarcontinuamente sus activos TI, conel riesgo de incurrir en gastosinsostenibles. “El Renting permitemantener siempre actualizado elparque TI y poder optimizar su cos-te total”.

Fundada en 1984, Econocomestá presente en los ocho merca-dos más importantes de Europa yactualmente cuenta con más de2.200 empleados.

Para más información,Telf.: 914.119.120www.econocom.es

Tango/04 consigue los mejores resultadosde su historia en 2007

ango/04 Computing Group, líder europeo en desarrollo de software para Gestión de Sistemas,Auditoría de Seguridad y Gestión de Servicios de Negocio (BSM) ha conseguido resultados finan-

cieros extraordinarios en el ejercicio 2007, finalizado el pasado 31 de diciembre. La empresa ha dadobeneficios por decimoquinto año consecutivo, con las ventas internacionales creciendo a más del 30%interanual. El crecimiento ha sido más notable en América Latina, alcanzando un crecimiento extraor-dinario que la consolida como líder en dicho mercado, con un aumento de ventas del 76,4%.

“Estamos muy contentos con estos resultados”, dice Raúl Cristián Aguirre, Gerente y Fundador deTango/04, “evidentemente estamos acertando con nuestro nuevo enfoque de monitorización 1 – 2 – 3, sufacilidad de uso y sus cortos tiempos de implantación. Conseguimos éxitos continuamente justo dondenuestros competidores están fallando.”

Durante 2007 se añadieron más de 100 nuevos clientes, incluyendo a ING, Citigroup, Nike, FMO,Boehringer Ingelheim, Helvetia Previsión, FiatC, Dolce & Gabbana, Louis Vuitton Malletier, Costco,Bayer CorpScience, Zurich Seguros, Mapfre, Pernod Ricard, Seur Geopost, Swiss Medical Group, Tele-visa, EDS, BBVA Previsión, Industrial Bank, Center Parcs, Euronet, etc.

“Diez de las veinte entidades financieras más grandes del mundo son ya nuestros clientes. Tenemoséxito tanto en proyectos de Seguridad como en los de Gestión de Servicios e Infraestructuras. Hemospresentado productos innovadores y únicos para simplificar las tareas diarias de los profesionales de TI.Año tras año vamos superando hitos históricos en un mercado súper competitivo como es el de lamonitorización multiplataforma. Estamos preparados para ser líderes”, añade Aguirre.

Para apoyar el crecimiento continuo, Tango/04 ha abierto durante 2007 nuevas oficinas en EstadosUnidos, Brasil y Colombia. También se han mejorado las operaciones a través del canal con nuevos orenovados acuerdos con partners como IBM, PricewaterhouseCoopers, Electronic Data Systems (EDS),PST Business Solutions, Moores Rowland (India) (parte de BDO), Sanwa Contec (Japón), Concord(Taiwán) y muchos otros.

“Tenemos plena confianza en que en 2008 volveremos a batir todos los récords. Tenemos numerosasoportunidades comerciales abiertas, vamos a lanzar nuevos productos y el mercado mundial está madu-rando velozmente para soluciones como las nuestras: prácticas y que aporten un gran valor rápidamente.Creo que vamos a hacer historia”, concluye Aguirre.

1-2-3: Con Tango/04, llega la monitorización integralTango/04 es la única solución de monitorización en tiempo real que permite controlar y reaccionar de

manera proactiva ante cualquier incidencia que afecte a la empresa, ya sea de seguridad, de infraes-tructura, o de negocio:

1) Infraestructura TI: Servidores multiplataforma, base de datos, dispositivos de red, etc.2) Seguridad: Auditoría y Cumplimiento de Leyes y Regulaciones (LOPD, SOX, HIPAA, etc.)3) Servicios de Negocio: Aplicaciones, Niveles de Servicio (SLM) y gestión de los servicios del negocio

Para más información, Telf.: 932.749.051 - www.tango04.es

■ ■ ■ ■ ■ Según axesor, lacreación de empresasinformáticas desciendeun 12,4% en 2007

Un total de 2.453 nuevas socieda-des mercantiles se han incorpora-do al sector informático español en2007. Así lo refleja en su último“Estudio Radar sobre el sectorinformático” axesor, empresa es-pañola especializada en el sumi-nistro de información empresarialpor Internet, que analiza la situa-ción de altas y disoluciones deempresas del sector TIC a lo lar-go del año pasado, tomando comobase la clasificación nacional deactividades económicas CNAE.

Los subsectores analizados poraxesor en su informe son: Con-sulta de equipo informático; Con-sulta y suministro de aplicacionesinformáticas; Actividades de pro-ceso de datos; Actividades relacio-nadas con bases de datos; Mante-nimiento y reparación de equipoinformático, y Otras actividadesrelacionadas con la informática.

Comparando los datos con losregistrados en los años 2005 y2006, se observa tanto un descen-so en el número de constitucionescomo un incremento en el núme-ro de disoluciones. Respecto a2006, año en el que se crearon untotal de 2.800 empresas en estesector, se ha producido un descen-

so del 12,4% en la creación deempresas informáticas, lo quesupone 347 sociedades menos

Por comunidades autónomas,Madrid encabeza la lista de crea-ción de empresas informáticas,con 688 nuevas sociedades, segui-da por Cataluña con 583 y en eltercer puesto Andalucía, con 280.Cierran la clasificación Ceuta yMelilla (2 nuevas empresas infor-máticas) y La Rioja (3). El seg-mento que mayor dinamismo pre-senta es el de consultoría ysuministro de aplicaciones, con1.872 nuevas sociedades mercan-tiles.

Para más información,www.asexor.es

Page 7: ServerNEWS -182 (Marzo 2008)

www.help400.es MARZO 2008 ServerNEWS 7

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

■ ■ ■ ■ ■ ACOM Solutionsintroduce elEZContentManagerpara System i

Esta firma estadounidense es co-nocida en España por sus pro-ductos para la creación de for-mularios electrónicos, envíos dedocumentos por fax y email, asícomo el archivo de los mismos enPDF. Esta familia de productos seconoce como EZeDocs, siendo supunto de partida el conocidoEZPrint400.

Ahora lanza el EZContentMa-nager, cuyo objetivo es la capturay almacenamiento de los docu-mentos, creando un sistema deíndices que nos permitirá la ges-tión y distribución de los mismos,atendiendo a nuestros criterios debúsqueda y recuperación. Todoello se realiza en un entorno Webque facilita el acceso a cualquierusuario, que cuente con las auto-rizaciones necesarias, y creandoflujos de información que alcan-zan necesariamente los objetivosy destinos establecidos.

De esta forma se gestiona el ci-clo de vida de los documentos, ori-ginados por las diferentes aplica-ciones, y se hacen accesibles alpersonal autorizado de forma se-gura, intuitiva y familiar.

El EZContent Manager estádiseñado pensando en las nece-sidades de la próxima genera-ción de software EnterpriseContent Manager (ECM) apo-yándose en interfases de usua-rio basados en navegadores yadaptándose a arquitecturasinformáticas flexibles.

Al igual que ocurre con EzeDocsy EZPrint, este producto se comer-cializa en España por la empresaAmerican Top Tools, S.L. que des-de 1986 está al servicio de la co-munidad AS/400 distribuyendoaplicaciones y utilidades que com-plementan y mejoran los AS400,iSeries y System i.

Para más información,Telf.: 933.191.612email: [email protected]

■ ■ ■ ■ ■ LISVA SolucionesIntegradas S.L. anunciael Programa 2010

“Para 2010, la mayoría de lasmultifuncionales e impresoras sevenderán asociadas a Solucionesde Impresión y Gestión Documen-tal.” LISVA, con más de 40 produc-tos/soluciones no necesita esperara 2010.

Ofrece a sus clientes la Soluciónque deseen totalmente GRATIS.No hay truco.

El cliente, al comprar el hard-ware (multifuncional y/o impreso-ra), puede seleccionar cualquierproducto entre una gran variedad:Gestión Documental, Control deCostes de Impresión, FormulariosElectrónicos, Conversión a PDF,Impresión segura...y muchos más.

¿Cómo funciona el Progra-ma 2010?

· El cliente, al comprar lasmultifuncionales o impresoras,indica a su proveedor habitual quese ponga en contacto con LISVA.El cliente ya ha hablado conLISVA y quiere un producto soft-ware determinado. LISVA tienemás de 40 productos e inclusopuede desarrollar uno nuevo, si uncliente lo solicita.

· El proveedor de equipos llegaa un acuerdo con LISVA.

· El cliente recibe por un ladoel hardware solicitado inicialmen-te al proveedor y de LISVA recibeel producto de software gratis.

Que algo sea GRATIS resultanormalmente bastante increíble ysuele producir desconfianza, perouna vez explicado el funciona-miento del Programa 2010, el100% de las empresas contactadasse han inscrito. El Programa estáen proceso de implantación enEuropa y Latinoamérica.

Para más información,Telf.: 918.039.495email: [email protected]

Una ocasión únicaerverNEWS y System iNetwork le proponen participar en el2008 IT Leaders Forum que tendrá lugar en Denver, Colo-

rado (EE.UU.) de los días 20 al 23 de julio, en las mágníficas insta-laciones del Inverness Hotel and Conference Center.

Únase a los líderes en un evento diferente a cualquier otro delmercado, centrado en la estrategía, toma de decisiones y el valorde las TI en su negocio. Esta conferencia ejecutiva incluye semina-rios en profundidad de Gatner, IBM, System iNEWS... ¡y muchomás!

Para más información, incluido agenda, precios y perfil de losponentes, acceda a www2.systeminetwork.com/itleadersforum/

E

S

Common Europe Annual CongressBarcelona, del 17 al 21 de Mayo de 2008

El evento de formación de Bajo Coste y Alto Valor del mundo “i”

ste evento está organizado por usuarios para los usuarios, deforma que se eliminan las opiniones influidas que pueden

aparecer en eventos de proveedores. También, el hecho de que seaorganizado por usuarios significa que el precio de la inscripciónpuede mantenerse muy bajo ya que se eliminan la mayoría de lossobrecostes generados por organizaciones comerciales.

· Enfoque: El evento de Common Europe está dedicado al i5/OSprincipalmente en la plataforma System i. Habrá sesiones presen-tadas tanto por especialistas de IBM como por desarrolladores in-dependientes y las habrá tanto técnicas como de gestión y direc-ción. También tendremos a usuarios compartiendo sus experienciasen el mundo real. Todo ello asegura una oferta muy equilibrada enel congreso.

• Exposición: El congreso de Common Europe ofrece una ampliaexposición en la que los delegados podrán encontrar los produc-tos más novedosos y sus implantaciones tecnológicas desarro-lladas por empresas del sector.

• Duración: El congreso de Common Europe Congress es un eventode 3 días, que empieza en domingo lo que significa que sólo ne-cesita ausentarse de su oficina durante 2 días.

• Coste: Como ya se ha dicho antes, Common Europe está en unaposición privilegiada ya que, como organización sin ánimo delucro que es, puede ofrecer un coste de inscripción sin parangón.

Esperamos sinceramente que todos los clientes de IBM se da-rán cuenta de que la oferta de Common Eruope es única y decidi-rán aprovechar esta oportunidad.

Recuerde, el Congreso de Common Europe (CEC) tendrá lugardel 17 al 21 de Mayo en el hotel AC Barcelona.

Para más información, www.comeur.org

Page 8: ServerNEWS -182 (Marzo 2008)

8 ServerNEWS MARZO 2008 www.help400.es

opinión por John Ghrist

Ede una de las escasas empresas que únicamente utilizan apli-caciones hechas a medida, al tener que mantener al día lasdistintas versiones de i5/OS y Windows, la mayoría de noso-tros nos hemos acabado adaptando a la naturaleza cíclica delas nuevas versiones de software y a la idea de que lo nuevoha de ser mejor que lo que ya tenemos. Pero si se estáadentrando en el mundo feliz de las aplicaciones basadas enweb diseñadas para los clientes de Internet, aunque se tratede una simple aplicación para hacer los pedidos de sus pro-ductos, ¿se ha dado cuenta de qué forma esa actividad estáconvirtiendo a su empresa en una compañía de software defacto?

Hasta cierto punto, cualquier empresa que desarrolle pro-gramas a medida para sus procesos internos ya se enfrenta aesta realidad. Cuestiones como seguir el progreso de las nue-vas versiones, garantizar dentro de lo posible que el softwareno contiene errores antes de presentárselo a los usuarios in-ternos, arreglar problemas imprevistos y gestionar distintasversiones de la misma aplicación no son nada nuevas en losdepartamentos informáticos de las empresas.

Pero, naturalmente, lo que diferencia a las aplicaciones webes el público al que van destinadas. En vez de ir dirigidas ausuarios que trabajan para la misma compañía y que estánobligados por sus jefes a utilizar ese software, sea bueno omalo, el fin de las aplicaciones web es servir a personas queno tienen la obligación de tolerar programas malos. Esto tie-ne un gran riesgo y hace que se tenga que poner el acento enla creación de aplicaciones que se entiendan sin necesidad derecibir ninguna formación adicional y que realmente hagantodo lo que se supone que deben hacer, correctamente y des-de la primera versión. Y eso sitúa al desarrollo de aplicacio-nes web en la misma liga que la producción de productos desoftware comerciales. Una aplicación web tiene que funcio-nar bien porque ninguna circular del presidente de la empre-sa puede hacer que todos los usuarios tengan que aguantaralgo que no se aguanta. Además, las aplicaciones web formanparte de la imagen pública de la empresa, como si se estuvie-ra vendiendo al público.

En cuanto se entra en la esfera de las aplicaciones web, nosólo se está compitiendo con la competencia de toda la vida. Encierto modo se está compitiendo con todos los sitios web del mundoporque los clientes compararán, al menos de forma subconscien-te, el suyo con los demás sitios web que hayan visto.

Enfrentarse a esta situación puede obligar a pensar siguien-do una lógica distinta a la que estamos acostumbrados. La

preocupación por ofrecer una GUI que sea intuitiva y atrac-tiva pero no demasiado recargada y por asegurarse de que nohay errores importantes ni siquiera en funciones secunda-rias, pensando siempre por adelantado en lo que incluirá lapróxima versión, ya no es discrecional.

Los ejecutivos de las empresas de software parecen habernacido pensando así... y esa es la razón de que sigan a flote.Con las aplicaciones web, los demás hemos de empezar a pen-sar de la misma forma.

Lo único positivo es que todo el mundo, y no sólo los ejecu-tivos de las empresas de software, está pasando por los mis-mos apuros. ¿Y cómo están afrontando este nuevo reto sushomólogos de otras empresas? No muy bien, por lo que pare-ce. O al menos, esa es la situación que revela un informe re-ciente presentado por Interwoven, un proveedor de solucio-nes de gestión de contenidos, que puede consultarse enwww.interwoven.com/capsurvey.

Interwoven encuestó a 130 profesionales informáticos detodo el mundo. En resumen, los resultados demuestran queel 77% de los encuestados dicen que los esfuerzos de desarro-llo se dedican a proyectos hechos a medida, más de la mitadpiensan que el número de proyectos realizados a medida re-lacionados con la web se doblarán el año que viene y el 71%está distribuyendo actualizaciones mediante procesos manua-les como FTP, scripts de generación, el envío por correo dediscos compactos o la copia de archivos. El 73% cree que sólopueden completar una o dos nuevas aplicaciones web cadames y el 60% se siente presionado para crear versiones conmás frecuencia. Asimismo, el 54% afirma que tienen que ha-cer diez “correcciones urgentes” cada mes.

¿Y en nuestro entorno?El desarrollo de aplicaciones web en general todavía no avanzaa un ritmo tan frenético en la mayoría de empresas que tra-bajan con System i, pero nuestra plataforma no se libra deesa necesidad. Cuando surge, la intensidad es incluso mayorque las presiones que ya acompañan al desarrollo interno desoftware a medida. Las cuestiones planteadas por este infor-me deberían hacer reflexionar a los directores de desarrollode software que ven la necesidad de que su empresa tengauna presencia más dinámica en la Red. Lo que parece claroes que en el año 2008 va a ser inevitable prestar más aten-ción a los procedimientos para crear aplicaciones web. E in-tentar conseguir algo de inspiración en base a la experienciade los proveedores de productos genéricos de software no esuna idea descabellada. ■

John Ghrist es redactor de la sección de productos de System iNEWS

La web convierte a las empresasen compañías de software

stoy convencido de que todos co-nocemos en alguna medida elproceso de producción del soft-ware. Aunque formemos parte

Page 9: ServerNEWS -182 (Marzo 2008)

www.help400.es MARZO 2008 ServerNEWS 9

Page 10: ServerNEWS -182 (Marzo 2008)

10 ServerNEWS MARZO 2008 www.help400.es

Muchos de nosotros conocemos una viñeta en quese ve una habitación llena de programadorestrabajando en sus terminales. El encargado de-clara mientras sale de la habitación: “Voy aaveriguar cuáles son los requisitos de los usua-

rios... vosotros empezad a programar”. En la década de 1960y parte de la de 1970, este “método” solía ser el más habitual.Pero afortunadamente hoy en día esta técnica sólo se usa enunos pocos departamentos de informática.

Lo que sigue siendo habitual, es tratar la recopilación, do-cumentación y análisis de los requisitos de los usuarios demanera informal. Teniendo en cuenta que los requisitos delos usuarios son el propósito de la iniciativa –el proyecto–deberíamos prestar especial atención a la recopilación, docu-mentación, análisis y gestión de aquéllos. La principal razónpor la que fracasa un proyecto es la mala definición de losrequisitos de los usuarios. Para asegurarnos de que nuestrosproyectos tienen éxito, en este artículo veremos cómo usaralgunos métodos existentes para obtener requisitos claros,concisos, fáciles de cuantificar y comprobar.

Salirse de la rutinaEn este negocio, nos cuesta salirnos de la rutina y, para lamayoría de nosotros, ésta consiste probablemente en creardiseños técnicos y escribir código. Al fin y al cabo, lo realmen-te interesante es el diseño y programación de la base de da-tos... es lo que mola, ¿no? Fuera de este ámbito, nos encontra-mos algo menos cómodos, así que solemos prestar menosatención y hacemos las tareas apresuradamente. Para ilus-trar esta idea, estableceré una analogía: la de encargar laconstrucción de una casa nueva.

En esta situación hipotética, tenemos por un lado al con-tratista y por el otro al futuro dueño de la casa. El contratis-ta programa una reunión con el comprador para que éste leplantee los requisitos para construir la casa. El contratista,libreta en ristre, aguanta toda la sesión de recopilación derequisitos. El comprador piensa que está bien preparado yha hecho una lista de algunos de los criterios básicos que hade satisfacer la casa pero no está tan seguro de otros. Mien-tras negocia con el comprador, el contratista usa términostécnicos confusos y pide al comprador que confirme todos losrequisitos antes de continuar. El comprador siente que la tomade decisiones es demasiado precipitada y no es capaz deproporcionar todos los detalles necesarios, pero da por su-puesto que el contratista ha hecho esto muchas veces antes yque todo saldrá bien.

Si nos imaginamos cuál será el resultado de este caso hipo-tético, todos llegaremos a la conclusión de que lo más probable

es que el comprador no conseguirá la casa de sus sueños. Laverdad es que nadie se construiría una casa de esta maneray, sin embargo, en el mundo de la informática he visto desa-rrollar sistemas enteros de forma parecida. A menudo, espe-ramos que los usuarios tengan claros todos los requisitos antesde crear el sistema. Pero lo normal es que no los conozcantodos al principio del ciclo vital del proyecto y, en ocasiones,puede que esto sea así hasta que el sistema esté en funciona-miento. La complicación aumenta en un modelo de desarro-llo por etapas o en cascada ya que en él la fase de obtenciónde requisitos aparece como lineal, aunque no es un procesoestrictamente lineal. Variaciones posteriores de modelos deproyectos, como los métodos ágiles, reconocen este hecho ytratan los proyectos, en particular la recopilación de requisi-tos, como un proceso iterativo.

Obtención de requisitos de calidadAhora vamos a explorar algunas formas de obtener requisi-tos de mayor calidad. Nos centraremos en el método tradicio-nal usado para la fase de obtención de requisitos y luego ve-remos cómo se puede mejorar el proceso gracias a la definiciónde prototipos. Pero, antes que nada, ¿qué es exactamente unrequisito de software?

El estándar 612.12.1990 del IEEE describe un requisito desoftware como:

• una condición o función que necesita un usuario para resol-ver un problema o lograr un objetivo

• una condición o función que debe satisfacer o procesar unsistema o el componente de un sistema para cumplir uncontrato o ser conforme a un estándar, especificación u otrodocumento impuesto formalmente

En otras palabras, un requisito debe definir lo que el siste-ma ha de hacer sin explicar cómo se ha de hacer. Este es unerror habitual. Introducir el “cómo” en este momento limitalas opciones. Los requisitos no deben introducirse hasta lafase de especificación de los requisitos del sistema (más ade-lante explicaré más detalles sobre el particular).

Antes de ver cómo documentar los requisitos, permítamedefinir algunos términos con los que puede que no esté fami-liarizado. Estos términos constituyen las etapas principalesdel diseño de los requisitos de software.

Adquisición de los requisitos. Define el proceso graciasal cual las partes interesadas proporcionan la informaciónnecesaria para desarrollar y documentar los requisitos. Enpocas palabras, es el proceso por el que se averiguan y re-únen los requisitos. Esto requiere que el analista de sistemas

Recopilación y documentación dDescubra cómo conseguir requisitos de los usuarios claros, concisos, fáciles d

por Russ Bartlett

Page 11: ServerNEWS -182 (Marzo 2008)

www.help400.es MARZO 2008 ServerNEWS 11

no simplemente anote pasivamente los requisitos, sino quedebe profundizar para entender detalladamente los proble-mas y necesidades de los usuarios. Los requisitos se clasifi-can a grandes rasgos en dos tipos: funcionales y no funciona-les (se describen en el apartado siguiente). Además, como partede este proceso, también se define el alcance del sistema y losobjetivos del proyecto. Todo este proceso, así como las fa-ses posteriores, puede ser iterativo a lo largo de todo elciclo vital del proyecto. Durante esta fase, nuestro ob-jetivo es capturar y anotar con precisión los requisi-tos principales.

Análisis de los requisitos. Aquí es donde clasifi-camos y creamos modelos de los requisitos usandovarias técnicas de creación de modelos, como por ejem-plo, casos de uso, lenguajes unificados de creación demodelos (UML) o diagramas de flujo de datos. Además,los modelos son la base de nuestro diseño arquitectónico.También es la hora de las negociaciones entre las partesinteresadas y de hacer concesiones. Básicamente, ne-cesitamos priorizar los requisitos y entender cuá-les son obligatorios y cuáles no. En esta etapapodemos eliminar algunos requisitos. La razónes sencilla: puede que no tengamos tiempo, recur-sos o presupuesto suficiente para satisfacer todoslos requisitos de los interesados. Los requisitos seintercambian y canjean en función de las restriccio-nes del proyecto. De hecho, los usuarios con más expe-riencia suelen pedir más cosas de las que realmente ne-cesitan anticipándose a este proceso de negociación. En lapráctica, el análisis de los requisitos suele conducir a la ad-quisición de más requisitos conforme se conocen más deta-lles. Si comparamos este método con otros en los que se redu-ce la planificación del proyecto, comprenderemos porqué enéste se acaba sacrificando la calidad para ajustarse a la fe-cha de entrega.

Especificación de los requisitos. Aquí es donde genera-mos las especificaciones del software creando documentos quese usarán para crear las especificaciones del sistema (ense-guida veremos cómo hacerlo).

Validación de los requisitos. Aquí es donde verificamos yvalidamos los requisitos llevando a cabo revisiones o definiendoprototipos. El método que utilizamos se usará en la prueba deaceptación del usuario. Nuestro objetivo es asegurarnos de laexactitud con que se han llevado aplicado los requisitos delos usuarios, uno por uno o en su conjunto.

Aunque he clasificado los pasos anteriores confines informativos, en realidad, la adquisición,análisis, especificación y validación de los requisitos

de requisitoss de cuantificar y de probar

puede hacerse de forma gradual ordenada-mente y de forma interativa. Esto no sólose aplica a la “fase” de especificación derequisitos de los sistemas del proyec-to, sino también a todo el proyecto ensu conjunto.

MARZO 2008 ServerNEWS 11

Page 12: ServerNEWS -182 (Marzo 2008)

12 ServerNEWS MARZO 2008 www.help400.es

■ EN PORTADA

Ahora vamos a ver con más detalle cómo se realiza la espe-cificación de los requisitos.

Requisitos funcionales y no funcionalesPor regla general, se considera que un requisito es o bienfuncional o bien no funcional. Los requisitos funcionales de-finen lo que el sistema debe hacer desde el punto de vista delusuario para cumplir los objetivos que se le exigen. Los re-quisitos no funcionales pueden subclasificarse en restriccio-nes y cualidades. Las restricciones imponen límites al diseñoo a las funciones. Las cualidades son propiedades o caracte-rísticas que interesan a los usuarios (como la facilidad deuso, la fiabilidad, la seguridad, la escalabilidad y laconfigurabilidad) y pueden contribuir a que el sistema resul-te satisfactorio globalmente.

Un requisito debe ser:

• Conciso: debe definirse en términos claros y concisos.• Correcto: debe describir con precisión cuáles son las cuali-

dades previstas del sistema.• Inequívoco: debe definirse en términos claros, comprensibles

(sólo debe haber una interpretación del propósito)• Verificable: debe ser verificable desde el punto de vista de

la comprobabilidad (por ejemplo, en vez de explicar que elsistema debe permitir recuperar rápidamente la informa-ción del catálogo, un requisito mejor afirmaría que el siste-ma debe permitir la recuperación de información del catálogoen dos segundos, lo que es comprobable desde el punto de vis-ta de la prueba del sistema y de la de aceptación del usuario).

Los requisitos también deben ser factibles desde un puntode vista técnico y comercial.

Una vez reunidos todos los requisitos, hemos de realizarmás comprobaciones sobre el grupo de requisitos en su con-junto. Este grupo debe satisfacer “las tres Ces”:

• Conciso. Los requisitos en su totalidad deben describir deforma concisa el sistema que se va a construir. Si hay de-masiados requisitos, se pueden introducir errores e in-coherencias.

• Completo. En su conjunto, los requisitos deben describir deforma adecuada todo el sistema que se va a construir.

• Coherente. Los requisitos individuales deben ser compati-bles con los requisitos en su conjunto. No debe haber in-coherencias entre requisitos. Si se diera el caso, revise yresuelva las discrepancias con los usuarios.

Ahora vamos a ver cómo documentar los requisitos de losusuarios para eliminar cualquier ambigüedad.

Documentación de los requisitosEn primer lugar, redáctelos en estilo afirmativo, usandotérminos como “debe” o “ha de”. Por ejemplo, el sistema debeser capaz de responder con detalles de la cuenta en dos se-gundos a todas las peticiones de los usuarios. Que el tiempode respuesta de dos segundos sea factible es otra cuestión y

obviamente dependerá de cosas como el hardware, el soft-ware y el número de cuentas al que se acceda durante unperiodo de tiempo dado. Además, el término “detalles de lacuenta” debe entenderse perfectamente (por ejemplo, el nom-bre del cliente, el saldo de la cuenta y la fecha de la últimacompra). Un análisis posterior puede desvelar requisitos adi-cionales, a los que se denomina “requisitos derivados” porquedependen de un requisito principal.

Asimismo, evite el uso de la conjunción “o” al definir unrequisito, ya que puede conducir a interpretaciones erróneas.Por ejemplo, pensemos en esta frase: La consulta de la cuen-ta del cliente debe mostrar detalles del saldo o el resumen dela cuenta. Este tipo de frases dejan abierta su interpretacióny pueden acabar convertidas en funciones incorrectas del sis-tema. Un diseñador puede creer que esta frase significa quelo que hay que hacer es mostrar o bien lo uno o bien lo otro,pero si tenemos información tanto del saldo como del resumen

FIGURA 1Ejemplo de esbozo de documentación estándar del IEEE

1. Introducción1.1. Finalidad: ofrece un resumen del objetivo del documen-

to.1.2. Alcance: describe el producto que va a desarrollarse y lo

que está dentro y fuera de su alcance. Aquí se puedeusar un diagrama de contexto (diagrama de flujo dedatos de nivel superior para mostrar las relaciones conotras entidades y los límites del sistema).

1.3. Definiciones, acrónimos y abreviaciones: describe todoslos términos usados en el documento.

1.4. Referencias: proporciona referencias a otros documen-tos que usados para compilar este documento.

1.5. Visiones generales: ofrece una visión general del domi-nio del problema.

2. Descripción general2.1. Perspectiva del producto: describe de qué forma el

producto que va a desarrollarse se relaciona con otrosproductos existentes, si forma parte de un sistemamayor o si será autónomo.

2.2. Funciones del producto: describe en términos funciona-les qué hará el producto que se va a desarrollar

2.3. Características del usuario: describe las característicasespeciales del sistema que pueden requerir formación oexperiencia especiales por parte de los usuarios

2.4. Restricciones generales: enumera las restricciones queinfluirán en el diseño. Éstas pueden ser normativasgubernamentales, obligaciones relativas a la seguridad, elhardware, etcétera.

2.5. Suposiciones y dependencias: describe suposiciones,como por ejemplo el crecimiento previsto y las posibili-dades de que la solución satisfaga las necesidades de laempresa, o si la solución dependerá de que existanotros sistemas y que estén en marcha.

3. Requisitos concretos: da detalles de todos los requisitosy proporciona documentación de soporte, como casosde uso o diagramas de flujo de datos.

Page 13: ServerNEWS -182 (Marzo 2008)

www.help400.es MARZO 2008 ServerNEWS 13

de la cuenta del cliente, ¿debemos mostrar ambos datos o sóloel que escojamos?

Otro problema habitual es que a veces el redactor de losrequisitos hace su propia interpretación de éstos e introduceuna restricción innecesaria. Supongamos, por ejemplo, el re-quisito siguiente: El sistema debe almacenar detalles delmaestro de artículos en un archivo de la base de datos DB2UDB para poder recuperar rápidamente información delmaestro de productos. Al introducir esta restricción innece-saria limitamos nuestras opciones de diseño posteriores. Elrequisito real es la recuperación rápida de información delproducto y, por si aún no lo ha notado, esto nos lleva al si-guiente problema: la verificabilidad.

Evite los términos imprecisos que son difíciles de verificar.¿Qué se entiende por “recuperación rápida”? ¿Basta con dosminutos o debe realizarse en una fracción de segundo? Otrostérminos del mismo género son “robusto”, “ergonómico”, “fá-cil de usar”, “intuitivo”, “alta capacidad”, “bajo mantenimien-to” y “flexible”. Todos ellos pueden interpretarse librementey deben cambiarse por requisitos cuantitativos. Por ejemplo,si el requisito dice que el sistema debe proporcionar una fun-ción de consulta flexible, será necesario un análisis posterior.El usuario puede querer decir que ha de poder ejecutar lafunción de consulta existente desde la función de manteni-miento del maestro de artículos o algo mucho más complejo.

Resista la tentación de escribir los requisitos de otra formaque no sea con una o dos frases sencillas. Y para evitar confu-siones, no use expresiones como “de lo contrario” o “si no”.

Después de haber reunido los requisitos de los usuarios,tendremos que documentarlos. Mi recomendación es que adop-te el estándar 930-1998 del IEEE. El IEEE (ieee.org) es elprincipal organismo del sector de la informática encargadode establecer y mantener estándares. En la Figura 1 semuestra un esbozo basado en un antiguo estándar del IEEEque al mismo tiempo es un ejemplo de contenido. El nivel yprofundidad de la documentación generada depende del sis-tema que se va a desarrollar.

Definición de prototiposNingún artículo que trate sobre los requisitos estaría com-pleto sin incluir los prototipos. Pero antes que nada, un

consejo: su proyecto seguirá necesitando pasar por una etapade definición de requisitos. Debe contemplar la definición deprototipos como un medio de refinar los requisitos de los usua-rios. En la Figura 2 se ilustra el modelo del ciclo vital cuan-do se utilizan prototipos.

A menudo, la definición de prototipos se asocia al uso delenguajes 4GL. Estos lenguajes fueron bastante popularesen la década de 1980, aunque en la década siguiente dismi-nuyó el interés por ellos. Algunas organizaciones han tenidomucho éxito usando lenguajes 4GL para desarrollar aplica-ciones mientras que a otras no les ha sido tan útil. No obs-tante, en la actualidad, la herramienta de definición de pro-totipos elegida puede ser una herramienta de desarrollorápido de aplicaciones (RAD) o, en algunos casos, algo tansimple como un paquete de Post-It o un rotafolio (considera-das soluciones de “bajo presupuesto”).

En mi caso he tenido mucho éxito usando prototipos; losusuarios pueden entender los prototipos e interactuar conellos mejor que con otros métodos más convencionales, comolas especificaciones funcionales o las especificaciones de re-quisitos del sistema. La definición de prototipos también fun-ciona muy bien si se necesita poner a prueba un concepto ocapacidad. Además, cuando los usuarios no tienen claros losrequisitos, utilizar un modelo del ciclo vital en forma de pro-totipo es una buena estrategia para ayudarles a aclarar susnecesidades.

En algunos casos, he realizado proyectos en los que la he-rramienta elegida para crear el prototipo era una herramientade PC. En un caso concreto, mi cliente no tenía herramientasde desarrollo rápido de aplicaciones para el System i perotenía conocimientos de FoxPro. Usé el prototipo para probaruna función conceptual y, aunque la aplicación final iba aestar basada en el System i, acordamos que conceptualmentepodíamos construir un modelo de trabajo. Tenga presente quecuando se crea un modelo complejo debe determinarse si hayque adornar el prototipo y entregarlo como producto final o biensi hay que considerarlo como algo desechable, como era el casodel prototipo desarrollado en FoxPro. Tenga en cuenta que am-bas estrategias tienen consecuencias. Muchas veces, cuando alos usuarios se les presenta un prototipo, presuponen que es elproducto acabado, aunque se les haya dicho lo contrario.

Adaptación a los cambiosA lo largo de esta última década ha ido aumentando el inte-rés por huir del ubicuo modelo del proceso «en cascada». Enla actualidad, los requisitos de las empresas y de los produc-tos cambian a un ritmo cada vez mayor y, por ende, tambiénlo hacen los requisitos de los usuarios. Los informáticos he-mos de reconocer este hecho y adaptarnos en consecuencia.La informática sigue evolucionando por lo que nosotros tam-bién debemos hacerlo. ■

Russ Bartlett trabaja desde hace 39 años en el mundo de la informática.Posee un certificado CSDP del IEEE y tiene experiencia en todos los campos deldesarrollo de sistemas. Ha sido el responsable de implantar sistemas enmuchas organizaciones, incluyendo soluciones ERP en empresas de la listaFortune 500.

FIGURA 2Utilización de prototipos para refinar los requisitos

Requisitos

Diseño delprototipo

Comprobacióndel prototipo

Creación delprototipo

Documentaciónde los requisitos

Page 14: ServerNEWS -182 (Marzo 2008)

14 ServerNEWS MARZO 2008 www.help400.es

E

Cómo decidirse por una soluciónpara el desarrollo de aplicaciones

por Chris Maxcer

l verano pasado asistí a una lluvia de ideasde un profesional del entorno sobre el de-sarrollo de aplicaciones en el mundo actualde los System i. No recuerdo muy bien cuál

era el contexto, pero me quedé con una de sus ideas:“Me pregunto si, para equipos de desarrollo peque-ños, no sería mejor adquirir una herramienta dedesarrollo de aplicaciones en vez de intentar apren-der nuevos lenguajes y técnicas”.

Se refería a usar juegos de herramientas que generan códi-go en lugar de herramientas que básicamente mejoran la efi-cacia de la programación manual. El término de la viejaescuela es CASE, siglas de Computer-Aided Software Engi-

neering o Ingeniería del software asistida porordenador y aunque el nombre es lo bastantegenérico como para seguir teniendo impor-tancia hoy en día, no lo había oído desde

hacía mucho tiempo. Existen herra-mientas parecidas en la categoría

RAD (Rapid Application Development).También se trata de un término global, pero

no tiene las connotaciones negativas asocia-das con las viejas herramientas CASE. No obs-

tante, RAD incluye una filosofía, dependiendo de loriguroso que se quiera ser, del desarrollo iterativo basado enprototipos. Los actuales entornos de desarrollo integrado(IDE) conforman otro juego de herramientas, éste más próxi-mo al espíritu de la programación manual y generalmenteacompañado de un control más directo sobre la propia crea-ción del código.

No quiero empantanarme en una infructuosa exploraciónde términos y etiquetas. Lo único que pretendo es hablar desoluciones comerciales, que tienen una determinada curva

de aprendizaje y exigen invertir en una metodología para eldesarrollo de aplicaciones. En el mundo del System i estassoluciones también suelen ser de distintos tipos. Por ejemplo,muchos proveedores de soluciones tienen más de un paquetede desarrollo de aplicaciones dependiendo de las necesidadesconcretas de cada empresa, de modo que las etiquetas pue-den ser doblemente complicadas. A efectos prácticos las lla-maré soluciones para el desarrollo de aplicaciones.

De vuelta al asunto que nos ocupaRegresando a aquella conversación, mi contertulio compar-tía su experiencia sobre organizaciones que han podido asu-mir más trabajo de desarrollo al confiar en una herramientaque les ha servido de base para la modernización de sus apli-caciones, por así decirlo, con la importante ventaja adicionalde mejorar la productividad.

No obstante, la premisa original del comentario que recuer-do del verano pasado, se basaba más en la idea de que algu-nas organizaciones que básicamente utilizan plataformasSystem i, emplean a programadores de RPG que es poco pro-

bable que progresen en sus conocimien-tos. En un océano de cambios, ellos sim-plemente se mantienen a flote peroacabarán cansándose. Con suerte, enese momento pasará el barco de su ju-bilación; pero lo más probable es quese vean nadando para huir de los tibu-rones o en un bar de la playa tomandomargaritas, situaciones que puedenobligarles a actuar para usar lengua-

jes y técnicas de programación más modernas o más conoci-das con el fin de lograr su objetivo, bien sea disfrutar de lasmargaritas o escapar de los tiburones.

De un modo u otro, esos programadores flotantes puedeninvertir en formación para adquirir nuevos conocimientos obien adquirir una solución completa y robusta para el desa-rrollo de aplicaciones. Las dos opciones tienen ventajas e in-convenientes, al menos dos escuelas distintas de pensamien-to y están asociadas a la desagradable idea de que si losprogramadores no hacen nada, con suerte acabarán perdién-dose las margaritas y, en el peor de los casos, desmembradospor los tiburones.

Los cimientos de la resistenciaAlgunos desarrolladores del System i han empezado a ponerlos cimientos de la resistencia y profesionalmente suelen

Los programadores pueden invertiren formación para adquirir nuevosconocimientos o bien adquirir unasolución completa y robusta para eldesarrollo de aplicaciones.

Page 15: ServerNEWS -182 (Marzo 2008)

www.help400.es MARZO 2008 ServerNEWS 15

Page 16: ServerNEWS -182 (Marzo 2008)

16 ServerNEWS MARZO 2008 www.help400.es

proceder de dos campos: los que se han criado con RPG y suintegración con el AS/400, y los que conocen diversas técni-cas de programación, pueden utilizar varios lenguajes y cons-tantemente están aprendiendo cosas nuevas. Todos ellos sue-len creer que programarlo todo a mano es mejor porque secrea un código optimizado que es más fácil de mantener.Además, no quieren que una solución para el desarrollo deaplicaciones ponga a su compañía entre la espada y la pared.También puede que les preocupe su currículo y que se pre-gunten si el uso de una solución para el desarrollo de apli-caciones limitará sus posibilidades de conseguir un puestode trabajo.

En el mundo del System i, también hay una facción radicalpartidaria de IBM: los programadores que sólo utilizan he-rramientas y soluciones de IBM. Si no es de IBM, ni siquieracabe plantearse la posibilidad. En este mismo sentido, algu-nos programadores y responsables se ven entorpecidos porlos presupuestos y, a veces, por las actitudes: jamás compra-rán una herramienta o solución si no es gratis o si IBM no laincluye de serie.

Tantas tecnologíasEl número de lenguajes y métodos posibles que pueden usar-se para lograr el resultado buscado puede ser apabullante.RPG IV, Java, JavaScript, .NET, PHP, XML, CGIDEV2, HTML,CSS, Python, Ruby y Groovy son sólo unas cuantas posibili-dades. ¿Qué sucede si una empresa invierte durante mesesen formación para acabar descubriendo que la solución quese está estudiando no es adecuada para la organización? ¿Encuántos departamentos informáticos en los que se usa RPGse ha intentado dar el salto a Java? ¿En cuántos no lo hanconseguido? Y, puede que lo más importante, ¿En cuántos de-partamentos que trabajan con RPG han tenido noticias deotros departamentos que hayan intentado migrar a Java, sehan enterado de su fracaso y han acabado abandonando lasnuevas tácticas?

Los siete pasos hacia un futuro sin salidaEl mayor riesgo está en la posibilidad de volverse obsoletodebido a la inacción. Así es como el letargo se está instalandoen algunas organizaciones:

1. Las aplicaciones del negocio (ERP y las desarrolladas in-ternamente) se ejecutan en el System i.

2. Los programadores y responsables del System i no ponenal día sus conocimientos y adquieren herramientas de ter-ceros para desarrollar componentes basados en GUI y apli-caciones nuevas de apariencia moderna (portales, BI, B2Bo incluso aplicaciones concretas, clientes enriquecidos uotras) para satisfacer necesidades básicas de la empresa.

3. Los directivos ven que el grupo de desarrolladores delSystem i es el responsable de las aplicaciones de pantallaverdes y poco más.

4. La dirección cree que ni el System i ni el equipo de desa-rrollo del “i” son capaces de desenvolverse bien con aplica-ciones GUI modernas.

5. Las aplicaciones basadas en Windows parecen bastantebaratas y los partidarios de Windows del grupo están pre-parados y deseando ampliar su nivel de responsabilidad...o puede que la empresa subcontrate el trabajo que hay quehacer en Windows.

6. En algún momento, la organización acaba escindida entreel grupo del System i y, por ejemplo, el grupo .NET.

7. Los profesionales del System i se dedican a dar soporte ymantener el código heredado mientras que otros desarro-lladores de aplicaciones se encargan de crear las nuevasaplicaciones.

En este contexto, la inacción de los programadores y de losresponsables del System i lleva a quedarse atrapado en elcódigo existente, situación de la que es difícil salir. Esto esmalo para los amantes del System i y horrible para elecosistema de la plataforma.

Capacidad de comercializaciónSí, el mundo que nos rodea es implacable. Dada la enormecantidad de código escrito en RPG que existe hoy en día, ladivisión System i de IBM sin duda podría desaparecer de re-pente y aún así muchos expertos en RPG todavía podría vivirbien de RPG hasta su jubilación, aunque tuvieran que hacerseconsultores y pasarse la vida viajando por todo el mundo.Seguro que algunos se sentirían impelidos hacia solucionesbasadas en la conectividad y SOA. ¿Cuál es la respuesta?¿Aprender a usar una solución centrada en una herramientaconcreta limita a los programadores?

No. Mientras los programadores conozcan sus puntos fuer-tes, las claves para tener un trabajo ahora y en el futuro,progresarán. “Su auténtica habilidad es que son capaces deequiparar la tecnología con las necesidades de la empresa”,señala Greg Best, vicepresidente de ventas de Lansa. “Losmás veteranos pueden resolver problemas de la empresa ytienen valor en el mercado, pero no porque conozcan Lansa ouna herramienta. Conocen el negocio y pueden aplicar la tec-nología al problema”.

De forma parecida, los proveedores conocen casos de pro-gramadores o responsables que utilizaban ciertas herra-mientas en una empresa, cambiaron de trabajo, fueron auna organización nueva equipada con System i y, con eltiempo, impusieron las herramientas que habían utilizan-do antes.

Imagine cómo es esta persona. En 1998 aprende HTML yse convierte en un experto programándolo a mano. Usandotablas y marcos, se convierte en una impresionante fábricade crear páginas web en solitario capaz de utilizar un juegolimitado de herramientas para crear páginas extraordina-rias en las que publicar un montón de información de la em-presa. Entonces, otros desarrolladores web empiezan a usarJavaScript, XML y bases de datos para crear páginas webdinámicas. En lugar de aprender esas nuevas tecnologías –oincluso las herramientas que permiten automatizar la mayo-ría de las tareas de programación– se atrinchera diciendoque “Soy un programador de HTML. Yo no utilizo JavaScript.”

■ EN PORTADA

Page 17: ServerNEWS -182 (Marzo 2008)

www.help400.es MARZO 2008 ServerNEWS 17

¿Se imagina lo que esta persona está haciendo en el mundoWeb 2.0?

Curvas de aprendizajeLa mayoría de programadores dan gran importancia a lastécnicas de programación manuales y a comprender realmen-te lo que hace el código y cómo se consigue un determinadoresultado. El problema es que solamente unos pocos puedenseguir el ritmo de la tecnología. Y no sólo se trata de los len-guajes de programación; también están los servidores de apli-caciones, las bases de datos y las estrategias arquitectónicasen su conjunto.

“La gran ventaja [de las soluciones para el desarrollo deaplicaciones] es que además de proporcionar la estrategia deprogramación, también ofrecen metodologías arquitectónicas”,observa Don Denoncourt, redactor técnico de System iNEWSy consultor de CAS Severn, Inc. “Sin esto, además de escogerRPG, Java, PHP, etcétera, tendría que seleccionar una arqui-tectura y un juego de herramientas de desarrollo, y en el de-partamento puede que no tengan ni tiempo ni conocimientospara hacerlo”.

En general, la curva de aprendizaje para ser eficaz con unasolución para el desarrollo de aplicaciones siempre será máscorta que averiguar cómo hacerlo a mano.

Duncan Kenzie, director técnico de BCD, va al grano: “Puedeesperarse que los desarrolladores, si tienen experiencia, sepongan al día en dos semanas. Si no tienen tanta experien-cia, les llevará dos meses”. El promedio, según Kenzie –almenos para las herramientas de BCD– es de un mes.

Otros proveedores de soluciones para el desarrollo de apli-caciones señalan curvas de aprendizaje similares, aunque si-guen variando mucho dependiendo de la herramienta, la ex-periencia del programador y el interés que tenga en aprender,y la complejidad de las aplicaciones que se van a crear.

Las ventajasCada solución para el desarrollo de aplicaciones tiene distin-tas ventajas y desventajas, en función de lo que quiera conse-guir el grupo de desarrollo del System i. Algunas solucionescrean código en Java y otras en RPG o PHP o una combina-ción de CSS, JavaScript, HTML y XML. Las opciones varíany las soluciones permiten que los desarrolladores trabajeníntimamente con el código u ocultarlo por completo.

“Lo que todas estas herramientas han hecho es reunir unbuen puñado de los problemas más habituales con que nosencontramos a lo largo del proceso de desarrollo de una apli-cación y encapsularlos en un nivel más alto para evitarnoshacer el trabajo pesado y repetitivo”, explica Kenzie.

La ventaja tradicional de las soluciones para el desarrollode aplicaciones es la mejora de la productividad. Las empre-sas que inician grandes proyectos suelen valorar el uso deherramientas para ayudarlas a terminar antes el trabajo quehaciéndolo a mano, en cuyo caso, la recuperación de la inver-sión puede calcularse en función del número de desarrolla-dores y el tiempo previsto para finalizar el trabajo manual.Éste sigue siendo un factor a tener en cuenta hoy en día. Un

ejemplo es mrc-Productivity Series, que crea aplicaciones webbasadas en Java controladas por los datos sin necesidad deescribir código. De cualquier modo, aparte de la decisión bá-sica sobre el código, mrc ofrece una mejora en la productivi-dad de un orden de magnitud en comparación con la progra-mación manual.

Si los planes de desarrollo de una empresa van con retrasoy sus posibilidades de contratar a más programadores paraacabar antes el trabajo son escasas, adquirir una herramien-ta para aumentar la productividad permite cambiar las re-glas del juego. La empresa pasará de no tener aplicaciones atener alguna aplicación.

“Estamos hablando de un incremento de la productividadde aproximadamente un orden de magnitud”, apunta JoeStangarone, presidente de mrc. “Cuando se reduce el coste dedesarrollar aplicaciones al reducir el tiempo necesario, la de-manda de aplicaciones crece casi exponencialmente”.

¿Más demanda? Eso es lo último que necesita su equipo dedesarrollo, ¿verdad? Pues no. Una mayor demanda combina-da con un buen control que garantice que las aplicacionesaportan valor a la empresa, dará como resultado una organi-zación de desarrolladores que beneficiará a la compañía. Na-turalmente, la gente que disfruta manteniendo aplicacionesdurante todo el día, alucinará con las soluciones para el de-sarrollo de aplicaciones.

Reductores de complejidad“Muchos de los programadores que empezaron su oficio apren-diendo RPG en una plataforma que ya disponía de base dedatos, lo que significa que aprendieron con una buena basesobre la que crear sus aplicaciones, ahora seencuentran en este mundo web, en el quede repente los datos provienen de dis-tintas bases de datos y no tratan conun ordenador sino con una red”,comenta Stangarone.

“Se trata de un mun-do completamentedistinto, pero esaspersonas saben cómodesarrollar aplicacionesy pueden elegir entretomarse un par deaños para aprenderJava o PHP o hacer loque realmente se les dabien con algo como m-Power y desarrollar cosasdiez veces más deprisa de loque tardaría alguien que loesté haciendo [a mano] con Javao PHP”, dice.

Best, de Lansa, señala queuna de las principales ven-tajas de una buena solu-ción para el desarrollo

MARZO 2008 ServerNEWS 17

Page 18: ServerNEWS -182 (Marzo 2008)

18 ServerNEWS MARZO 2008 www.help400.es

■ EN PORTADA

de aplicaciones es que protege a los desarrolladores no sólodel mundanal y repetitivo proceso de programación, sino tam-bién de las conexiones subyacentes y de las actualizaciones yestándares tecnológicos nuevos.

“Intentamos simplificar las cosas de modo que nosotros nosencargamos de las cuestiones relativas a la tecnologíay el pro-gramador se preocupa de los problemas relacionados con laempresa”, afirma Best. Una buena solución para el desarrollode aplicaciones, apostilla Best, puede convertirse en un “se-guro tecnológico” para la organización.

¿Estándares mejores?Resulta que no existe una buena correlación entre el númerode desarrolladores de una organización y el número adecuadopara la venta de una solución para el desarrollo de aplicacio-nes eficaz. Aunque el promedio de desarrolladores activos enorganizaciones basadas en System i parece ser de tres, cuatroo cinco, los proveedores de soluciones para desarrollar aplica-ciones del mundo del System i fácilmente pueden tener clien-tes que cuentan con un solo desarrollador o con varias doce-nas.

Si se dispone de un cierto número de desarrolladores, unasolución para el desarrollo de aplicaciones tiene ventajas adi-cionales.

“Una de las cosas que ofrecen las aplicaciones generadas esla coherencia a la hora de implantar y reforzar estándares deprogramación en la organización”, menciona Stangarone demrc. Programando a mano, con cinco programadores, se ten-drá cinco implantaciones ligeramente distintas del estándar,declara. “Con un generador de código, los estándares se im-plantarán exactamente de la misma forma cada vez y se aca-bará teniendo un código más estándar”, explica.

Código ilegibleEntre quienes evitan las soluciones para el desarrollo de apli-caciones, están los que se preocupan por la legibilidad del có-digo. Sin duda, puede que funcione, pero ¿en el futuro seráposible acceder a ese código para hacer cambios o arreglarproblemas? Además, si sólo puede realizarse el mantenimien-to mediante la solución, ¿eso no quiere decir que el proveedortiene la sartén por el mango?

Sí y no. El mantenimiento, sin duda, sería más fácil con lasherramientas de cualquier proveedor que sin ellas. La mayo-ría de los proveedores que existen desde al menos hace mediadocena de años son muy conscientes del rechazo que provocaeste asunto en muchos compradores potenciales: los clientesquiere estar seguros de que su código sobrevivirá, con o sin elproveedor, durante muchos años.

“Lo que hacemos nosotros es utilizar código RPG estándar–tan abierto como nos es posible– y enseñar a nuestros clien-tes cómo se genera el código para que no se sientan atrapadosy conserven el control absoluto”, explica Alex Roytman, direc-tor técnico de Profound Logic Software. La solución de la com-pañía usa un entorno de desarrollo controlado por asistentesque utiliza código escrito en RPG básicamente para controlar

código HTML, CSS y JavaScript específico de la web. Al mis-mo tiempo, Profound Logic tiene una solución para clientesinteresados únicamente en desarrollar aplicaciones para laweb lo más rápidamente posible y que quieren tener el me-nor contacto posible con cualquier cosa nueva... ni siquieraHTML.

Los últimos temoresEl último gran temor al que se enfrentan los departamentosinformáticos ante una solución para el desarrollo de aplica-ciones de un ISV es que la empresa con la que trabajan des-aparezca del mercado o la vendan. La forma de sobrellevarloes asegurarse de que todas las licencias sobre el código y lasherramientas cubren el doble de todo lo que se imagine quevaya a necesitar jamás. Los contratos de mantenimiento tam-bién deben incluir salidas claras en caso de que al proveedorlo absorba otra compañía y el resultado no sea de nuestroagrado. Recuerde que esto es sólo un negocio y todo se puedenegociar. Si no le gustan los términos, déjelo correr. Hay mu-chas otras soluciones razonables.

¿Qué me dice de IBM? La solución EGL de la compañíalleva merodeando por la periferia del mundo del System i unpar de años. ¿Puede que una solución de IBM, respaldadapor una compañía tan grande que nadie puede comprarla yque es tan rica como para tener su propia isla en SecondLife, sea fundamentalmente mejor que la solución de un ISV?

No tan rápido. IBM puede que no vaya a dejarle en la esta-cada, pero sus soluciones y soporte a veces sí. “En realidad,IBM cambia de dirección más a menudo que nosotros”, indi-ca Kenzie, de BCD.

Así que...¿Cuáles son los indicadores de que su organización necesitauna solución para el desarrollo de aplicaciones? ¿Le interesadesarrollar aplicaciones web y de cliente enriquecido? ¿Eldesarrollo de sus aplicaciones va con retraso? ¿Le gustaríaaumentar su capacidad de desarrollar aplicaciones cuantoantes? ¿Le gustaría que sus desarrolladores entraran en con-tacto gradualmente con lenguajes y técnicas más conocidos?Aunque RPG no está acabado, ¿Le gustaría disponer de unasolución que le permita trabajar con expertos que no conoz-can RPG? ¿Le gustaría tener la posibilidad de migrar unaaplicación –ay– a otra plataforma?

Si ha respondido afirmativamente a alguna de estas pre-guntas, puede que sea el momento de (re)considerar la posi-bilidad de adquirir una solución para el desarrollo de aplica-ciones. ■

Chris Maxcer es el redactor de noticias de System iNEWS y está especiali-zado en escribir sobre temas relacionados con la informática empresarial.

Page 19: ServerNEWS -182 (Marzo 2008)

www.help400.es MARZO 2008 ServerNEWS 19

Page 20: ServerNEWS -182 (Marzo 2008)

▲▲▲

Pro

gram

ació

n y

sist

emas

20 ServerNEWS MARZO 2008 www.help400.es

racias al soporte del popular lenguaje de pro-gramación web PHP, el System i puede ejecutaruna gran variedad de programas basados enPHP para la web. Dada la naturaleza abierta deInternet, los administradores de sistemas pru-

dentes que instalen aplicaciones web en el entorno Zend Corepara i5/OS de IBM querrán tener garantizada la seguridad.¿Qué precauciones han de adoptar?

Aunque la arquitectura del System i automáticamente nosprotege contra desbordamientos de buffers, virus y gusanos,y el PHP de Zend Core ofrece protecciones adicionales a lasdel lenguaje PHP genérico, debería protegerse contra otrospeligros, como por ejemplo:

• propagación de virus a los navegadores (aunque el sitio ensí sea inmune)

• “sniffing” (robo) de contraseñas• ejecución no autorizada de aplicaciones• revelación o modificación de datos privados

Algunas de estas medidas de protección requieren técnicasde programación específicas de PHP, que trataré en un próxi-mo artículo. En éste explicaré cómo aumentar la proteccióndesde el propio entorno PHP.

Nota: la seguridad web es un campo que evoluciona muydeprisa. Todas las recomendaciones que expongo aquí se con-sideran fiables en Zend Core para i5/OS versión 2.0.1 (es de-cir, PHP 5.2.1.)

La primera línea de defensaIndependientemente de las aplicaciones que ejecute, un en-torno de ejecución seguro reduce el riesgo de sufrir proble-mas, tanto conocidos como desconocidos. El experto en segu-ridad de PHP Chris Snyder, coautor con Michael Southwellde “Pro PHP Security” (Apress, 2005), recomienda varios ni-veles de protección –denominados “defensa en profundidad”–porque “no se sabe qué puede salir mal”. Snyder, desarrolladorde aplicaciones web de la fundación Fund for the City of NewYork, considera que una aplicación web es tan segura como elentorno en que se ejecuta.

El entorno de ejecución de PHP es el perímetro externo dela seguridad de una aplicación; queremos detener los ata-ques aquí, si es posible. En este artículo nos ocuparemos deese anillo exterior de defensa, que incluye elementos como elmantenimiento de PHP y los parches de aplicaciones, el ci-frado de datos, las estructuras de directorios, los archivos deconfiguración y la actualización regular de PHP.

Configurar un entorno seguro paraaplicaciones escritas en PHP

Zend Core para i5/OS tiene opciones para proteger el sistema

por Alan Seiden

Mantenga actualizados PHP y las aplicacionesEn cada nueva versión de PHP se mejora la seguridad elimi-nando vulnerabilidades notificadas por la comunidad de usua-rios. Entre versiones, Zend publica “correcciones urgentes”(parches que corrigen errores que pueden comprometer laseguridad hasta que la versión siguiente esté disponible).

Shlomo Vanunu, de Zend, recomienda que los administra-dores se mantengan al día configurando actualizaciones au-tomáticas desde la Zend Network, que aplicará parches y ac-tualizaciones según se necesite para mantener la seguridad.Vanunu, consultor del laboratorio de Zend en Ramat-Gan (Is-rael) y jefe de equipo del departamento de Servicios mundia-les para i5 de Zend, señala que IBM ha dispuesto que todoslos clientes de System i puedan conseguir estas actualizacio-nes mediante la suscripción gratuita al soporte Zend NetworkSilver Support.

Estos son los pasos que hay que dar para configurar lasactuaciones automáticas:

1. Registrarse en la Zend Network (zend.com/network). Pue-de que ya lo haya hecho si ha descargado Zend Core de laRed.

2. Desde una línea de mandatos del System i, escriba lo si-guiente: GO ZENDCORE/ZCMENU

3. Seleccione la opción de menú 2: Update via Zend Network(Actualizar mediante la Zend Network).

4. Desde el menú Update (Actualizar), elija actualizar inme-diatamente o de forma planificada.

Además de las actualizaciones de PHP, las aplicaciones webbasadas en PHP más conocidas también publican sus pro-pios parches y actualizaciones de forma regular. Según ChrisSnyder, incluso en los mejores proyectos acaban colándosealgún error que puede ser peligroso. De modo que todos debe-mos mantenernos informados sobre vulnerabilidades y lascorrespondientes actualizaciones usando estos métodos:

• Resúmenes de SecurityFocus, coordinados por DanielConvissor (phpsec.org/projects/vulnerabilities/security-focus.html)

• boletines de noticias distribuidos por correo electrónico porlos equipos de desarrollo

• foros web que son fuente de noticias y una buena forma deconocer a los desarrolladores

Asimismo, debo decir algunas palabras sobre el archivo deconfiguración de PHP, php.ini. Los valores de configuraciónglobales de PHP –incluyendo los valores de seguridad que se

G

Page 21: ServerNEWS -182 (Marzo 2008)

▲▲▲

Program

ación y sistemas

www.help400.es MARZO 2008 ServerNEWS 21

muestran en este artículo– se guardan en /usr/local/Zend/Core/etc/php.ini. Ni que decir tiene que debe controlarse elacceso a este archivo para mantener un sistema seguro. Estosignifica limitar los usuarios que tienen acceso al archivo ygarantizar que ninguna aplicación web puede modificarlo.Este archivo puede editarse con el mandato WRKLNK y coneditores de texto de Windows.

El formato del archivo php.ini usa la conocida sintaxisvariable=valor. Por ejemplo:

error_log = /usr/local/Zend/Core/logs/php_error_log

Si el valor es booleano (valores On u Off), la línea sería comoesta:

valor = On o valor = Off

Por ejemplo:

log_errors = On

Nota: se pueden usar indistintamente los números 1 y 0 olos valores On y Off. También es posible acceder a los valoresde php.ini gráficamente desde el centro de control de ZendCore basado en web siguiendo estos pasos:

1. Vaya a http://nombrehost:8000/ZendCore.2. Pulse el menú Configuration (Configuración).3. Pulse la opción PHP Configuration (Configuración de PHP).

Independientemente de cómo edite php.ini, la actualiza-ción no surtirá efecto hasta que se reinicie el servidor webApache de Zend. Para ello, efectúe estos pasos:

1. Escriba GO ZENDCORE/ZCMENU.2. Elija la opción 5: menú Service Management (Gestión de

servicios)3. Elija la opción 6: Restart Apache server instances (Reiniciar

instancias del servidor Apache)

Cuidado con las variables no inicializadasPor cuestiones de eficiencia, PHP no comprueba si las varia-bles se han inicializado antes de usarlas. Cuando los progra-madores olvidan inicializarlas, puede haber “consecuenciasaccidentales”. Normalmente, las variables no inicializadas norepresentan un problema de seguridad, ni siquiera tienen porqué provocar un error de la aplicación. Sin embargo, hay uncaso en que las variables no inicializadas se convierten en unarma cargada: la opción register_globals de PHP.

Este valor de configuración controla si pueden establecer-se variables directamente desde los argumentos queryStringincluidos en el URL. El valor por omisión de register_globalses Off, lo que impide la asignación de variables desde el URL.No obstante, si se establece en On, cualquier usuario podríamanipular variables de script directamente incluyendo asig-naciones en el URL. Por ejemplo, si el script usa la variableautenticacionAprobada para indicar que el usuario se haautenticado, un intruso podría simplemente añadir la seriede caracteres “autenticacionAprobada=1” en un URL, con loque eludiría hábilmente el código de autenticación.

La protección obvia contra este abuso es asegurarse de queregister_global sigue teniendo su valor por omisión, Off. Enphp.net/register_globals puede hallar más ejemplos de vul-nerabilidades asociadas a register_globals.

Mensajes de error de programa¿Qué haríamos sin los mensajes de error de los programas?No estoy hablando de los mensajes dirigidos a los usuariosfinales, como “es necesario introducir el código postal”, sinode los errores que describen problemas de programación in-ternos como “el índice de la matriz está fuera de los límites”.

Necesitamos estos mensajes cuando desarrollamos nues-tras aplicaciones. No obstante, una vez entregado el sistemaal usuario final, mostrar este tipo de mensajes no sólo parecepoco profesional, sino que puede revelar información confi-dencial, como la ubicación de archivos o parámetros de APIinternas. Más aún, si algún motor de búsqueda indexa losmensajes de error, los hackers podrán buscar sus vulnerabili-dades favoritas. Actualmente ésta es una técnica tan difun-dida que hasta tiene nombre: “Google hacking”.

Puede garantizar que los mensajes de error se añaden a suarchivo de anotaciones (donde poder inspeccionarlos) pero quequedan fuera de la vista del público con el siguiente valor deconfiguración de php.ini:

display_errors = Offlog_errors = Onerror_log = /usr/local/Zend/ Core/logs/php_error_log ( the default)error_reporting = E_ALL | E_STRICT

Si se especifica E_ALL | E_STRICT, PHP registrará todoslos errores, no importa lo pequeños que sean, incluyendo lasadvertencias y los avisos (por ejemplo, de variables noinicializadas). Hallará más información sobre la notificaciónsegura de errores en php.net/error_reporting.

Ocultar phpinfo()La función phpinfo() (página del manual: php.net/phpinfo)genera una lista de todos los valores de configuración de PHP,como por ejemplo los valores de php.ini, los nombres de losmódulos de extensión y los números de versión, así como lasvariables de Apache (Figura 1).

El uso más habitual de esta función es un sencillo docu-mento de HTML denominado phpinfo.php, que contiene elbreve fragmento de PHP siguiente:

<?phpphpinfo();?>

Este minúsculo pedazo de código se ampliará hasta con-vertirse en un documento de HTML que incluye todos losvalores de configuración de los archivos .ini de PHP, opcionesde compilación, módulos de extensión incluidos y un montónde información más que prefería que los hackers no vieran.

Page 22: ServerNEWS -182 (Marzo 2008)

▲▲▲

Pro

gram

ació

n y

sist

emas

22 ServerNEWS MARZO 2008 www.help400.es

Aunque phpinfo() es una herramienta de depuración de va-lor incalculable, al recopilar información de fuentes disparesen una sola página, los hackers pueden usarla para encontrardebilidades. Sin duda querrá poder acceder fácilmente a lasalida de phpinfo() para resolver los problemas de la aplica-ción, pero deberá tener cuidado de ocultar este acceso, posi-blemente protegiéndolo mediante una contraseña.

En la versión 5.2.1 de PHP se ha mejorado esta situación alañadir palabras clave que indican a los motores de búsquedaque no indicen las páginas de phpinfo, reduciendo la amenazadel Google hacking. Aún así, un desconocido que consultara eldocumento phpinfo() vería más cosas de las que desearíamosrevelar. Así que, de ninguna manera debería utilizar el conve-nio phpinfo.php, que todo hacker busca cuando sondea el sitiode una víctima potencial.

Cifrar los datosEl experto en seguridad Chris Snyder recomienda cifrar los da-tos (un método de mantener los datos intactos y confidencialeshasta que lleguen a su destinatario) siempre que sea posible.

¿Por qué cifrarlos? Si su servidor web envía datos sin cifrar,estos datos pueden espiarse o incluso alterarse antes de quelleguen a su destino. Este problema puede producirse en mu-chos sitios: en la LAN corporativa (ya sea por parte de losempleados o de spyware), en Internet o desde la señalinalámbrica de un cibercafé.

El cifrado está especialmente justificado cuando se envíainformación confidencial como contraseñas, información so-bre tarjetas de crédito u otro tipo de datos personales o confi-denciales.

El método de cifrado más habitual es SSL/TLS (Capa deconexión segura/Seguridad de la capa de transporte) que ci-fra datos entre el servidor de aplicaciones y el navegador delusuario de modo que si alguien está interceptando el tráficode paquetes de HTTP no podrá decodificarlos.

Sin embargo, tenga en cuenta que SSL/TLS no impide queel usuario final vea los datos transmitidos por el servidor, in-cluyendo los datos que se hayan codificado en campos de for-mulario HTML “ocultos”. Todos los usuarios pueden ver estecontenido usando el mandato Ver código fuente del navegador.Si desea proteger variables internas, use la gestión de sesio-nes del servidor en vez de campos de HTML ocultos.

System i es compatible con el cifrado SSL/TLS. Los usuariosverán el conocido prefijo “https://” en los URL. Hallará instruc-ciones sobre cómo configurar SSL/TLS en el InfoCenter de i5/OS.

Archivos separadosSea cual sea la complejidad de un sitio web basado en PHP,probablemente tendrá una combinación de archivos externose internos.

Los navegadores acceden a los archivos externos mediantelos URL que los usuarios teclean en sus navegadores o pulsancomo enlaces. Los navegadores no pueden acceder directamen-te a los archivos internos, aunque los usan las aplicaciones (ypuede que hasta se muestren a los usuarios), sino que sola-mente deben poder recuperarse por el código de la aplicación.

Los archivos internos presentan un riesgo si los usuarios tie-nen acceso directo a ellos.

Ejemplos de archivos externos son index.php, las hojas deestilo y otros archivos (tanto si son de PHP como si no) que elnavegador web solicitará. Estos archivos pueden ponerse contotal seguridad en el directorio raíz de los documentos, queen Zend es por omisión /www/zendcore/htdocs.

Ejemplos de archivos internos son los archivos usados porla aplicación, como el código “include” que se ejecuta en losarchivos externos pero que se guarda por separado. Los ar-chivos de configuración que contienen contraseñas tambiénsuelen considerarse archivos internos. Estos deben guardar-se fuera del directorio raíz de los documentos (htdocs), dondeno puedan ejecutarse o consultarse de forma accidental porlos usuarios. Este es un ejemplo de inclusión (ejecución) deun archivo desde una ubicación segura, como /www/zendcore:

<?phpinclude (‘/www/zendcore/ includes /config.inc.php’);// más código?>

Otra categoría peligrosa es la de los archivos subidos porlos usuarios. Estos archivos nunca deberían ponerse en eldirectorio raíz de los documentos. Un usuario malintencio-nado podría subir un script dañino y luego ejecutarlo desdeel servidor. Elija una carpeta que no pertenezca al directorioraíz, como /www/zendcore/subidas.

Como protección adicional, este directorio debe ser sólo degrabación para evitar que la aplicación lea o ejecute los ar-chivos que se guarden allí. Use un script de ejecución porlotes que no esté escrito en PHP para recuperar los archivossubidos. Además, asegúrese de que la aplicación detiene

FIGURA 1Salida de Phpinfo() (fragmento)

■ CONFIGURAR UN ENTORNO SEGURO

Page 23: ServerNEWS -182 (Marzo 2008)

▲▲▲

Program

ación y sistemas

www.help400.es MARZO 2008 ServerNEWS 23

cualquier intento de incluir en los archivos que se suban pe-ticiones de creación implícita de directorios. Por ejemplo, laaplicación debe detectar y descartar un nombre de archivodel tipo laguaridadeloshackers/chucherias/archivo1.

No dé rienda suelta a los scriptsSi se le permite, PHP puede leer el contenido tanto de lascarpetas locales como de Internet. Por ejemplo, las funcionesinclude() y readfile() pueden leer cómodamente nombres dearchivos locales como /informes/trimestral.xls y URL remo-tos como http://www.ejemplo.com/archivoremoto.html.

Con tanta potencia a nuestra disposición, lo más sensatoes pensar en qué se necesita realmente y restringir las capa-cidades que no se necesitan. Este enfoque prudente ofreceuna protección extra contra algunas artimañas y scripts da-ñinos imprevistos. Algunas de las opciones de php.ini que res-tringen a qué recursos puede acceder un script son estas:

allow_url_include (valor por omisión: Off; valor recomen-dado: Off). El valor Off evita que las aplicaciones ejecuten(“incluyan”) el código que se encuentra en servidores remo-tos. Normalmente, mandatos como include() o require() pue-den incluir código no solamente desde el servidor local, sinotambién desde uno remoto a través de un URL. El peligrocon el valor On es que se puede acabar ejecutando un scriptremoto del atacante. Allow_url_include se introdujo en PHP5.2 (Zend Core 2.0).

allow_url_fopen (valor por omisión: On; valor recomen-dado: Off, si es posible). Cuando se establece en Off,allow_url_fopen es más restrictivo que allow_url_include,evitando que las aplicaciones ni siquiera puedan leer archi-vos remotos mediante URL. Desactive la opción si la aplica-ción no necesita abrir otros URL o si se puede sustituir laextensión cURL, que lee URL remotos de forma más seguraque los mandatos nativos.

open_basedir (valor por omisión: permitir abrir todos los ar-chivos; valor recomendado: las carpetas necesarias para la apli-cación). Cuando se especifica open_basedir con una lista de car-petas, mandatos como readfile() y fopen() solamente podránacceder a archivos de las carpetas especificadas. En consecuen-cia, los scripts no podrán leer datos confidenciales o modificararchivos que estén en otros sitios. Si se especifican varias carpe-tas, debe separarse mediante dos puntos (:), aunque los siste-mas Windows usan un punto y coma (;). Por ejemplo:

open_basedir = /tmp/:/www/zendcore/htdocs/:/informes/

limitará las aplicaciones para que sólo puedan acceder alos datos de las carpetas /tmp, /www/zendcore/htdocs e /in-formes.

PHPSecInfoLa herramienta gratuita PHPSecInfo del PHP SecurityConsortium analiza la configuración y comunica problemaspotenciales de seguridad (Figura 2). PHPSecInfo es una he-rramienta experimental; sus sugerencias son genéricas y nodeben seguirse ciegamente. Con todo, se trata de una herra-mienta de gran valor educativo y vale la pena descargárselade phpsec.org/projects/phpsecinfo.

El poder protector de la configuraciónCon algunos cambios sencillos, la configuración de PHP pue-de evitar o limitar en gran medida el mal uso de las aplica-ciones. Las directrices ofrecidas en este artículo son una redde seguridad para su creatividad e innovación en la Red.

Las aplicaciones hechas a medida están mejor diseñadascuando se tiene presente la seguridad. Después de utilizarlas técnicas descritas en este artículo para proteger el entor-no, el paso siguiente será escribir código seguro. En mi próxi-mo artículo explicaré técnicas para filtrar la entrada e inter-pretar la salida con el fin de malograr la inyección de códigoSQL y la vulnerabilidad XSS (cross-site scripting).

Quiero agradecer a Chris Snyder y Shlomo Vanunu su ayu-da para escribir este artículo. ■

Alan Seiden disfruta dirigiendo proyectos en colaboración, desarrollandosoftware y resolviendo problemas que desconciertan a sus clientes.Miembro del grupo de desarrolladores PHP de Nueva York desde 2004 yuno de los primeros impulsores de PHP en el System i, Alan fue reseñadoen el boletín de noticias de la New York Software Industry Association. Elblog sobre informática de Alan es alanseiden.com.

FIGURA 2Salida de PHPSecInfo (fragmento)

Page 24: ServerNEWS -182 (Marzo 2008)

Man

agem

ent

▲▲▲

24 ServerNEWS MARZO 2008 www.help400.es

Supervisar el rendimientodel entorno web

La nueva herramienta WPM permite controlar el rendimiento web

por Rachel Eagle y Tim Rowe

l gestionar un entorno web en el System i, comola naturaleza distribuida extiende sus brazospor muchos trabajos, a veces puede que nos sin-tamos como si estuviéramos bregando con unpulpo. Un entorno típico puede incluir un ser-

vidor de aplicaciones (por ejemplo, WebSphere ApplicationServer) en que se ejecutan las aplicaciones, un servidor HTTPpara recibir las peticiones y archivos estáticos del servidor,una base de datos como DB2 desde la que se acceden a datospermanentes, un servidor WebFacing y otros trabajos de lasaplicaciones. Recopilar los datos necesarios para depurar losproblemas de rendimiento y descubrir cuellos de botella rá-pidamente puede consumir todo nuestro tiempo. El Supervi-sor de rendimiento Web (WPM), una herramienta nueva dela interfaz Web Administration de i5/OS que forma parte deIBM HTTP Server para i5/OS (DG1-5722), se creó para darrespuesta a este problema concreto. WPM recopila datos so-bre el rendimiento de los trabajos que componen un entor-

no web y las transacciones realizadas por éstos. La herra-mienta, completamente automatizada, identifica cómo seestá utilizando el tiempo y los recursos del sistema, lo quepermite encontrar los puntos conflictivos y posibles cue-llos de botella.

De forma parecida a como el mandato WRKACTJOB (Tra-bajar con trabajos activos) muestra todos los trabajos del i5que se están ejecutando actualmente en el sistema, junto conalguna información sobre el rendimiento de cada trabajo, laherramienta WPM muestra únicamente los trabajos del sis-tema relacionados con el servidor web seleccionado. Esto per-mite ver datos concretos de rendimiento de cada trabajo (porejemplo, el número de transacciones que ha procesado cadatrabajo o el tiempo necesario para procesar estas peticiones).Ahora es más fácil determinar qué trabajos están procesan-do las transacciones y qué trabajos tardan mucho tiempo enprocesar peticiones.

El estándar Application Response Measurement (ARM)describe un método habitual de integrar aplicaciones empre-

sariales como entidades manejables. El estándar ARM per-mite que los usuarios amplíen las herramientas de gestiónde la empresa directamente a aplicaciones.

WPM aprovecha el estándar abierto ARM. ARM ayuda alos usuarios a integrar aplicaciones empresariales y facilitaampliar las herramientas de gestión de la empresa directa-mente a aplicaciones. El servidor de aplicaciones, el servidorde la base de datos y el servidor HTTP están diseñados parasacar partido de ARM. Si crea sus propias aplicaciones, tam-bién podrá beneficiarse de este soporte. En el caso de las apli-caciones y servidores desarrollados para aprovechar ARM,cada vez que se solicita una unidad de trabajo y cada vez queun trabajo del proceso hace su parte del trabajo, se anotanentradas que registran el tiempo que tarda cada trabajo enrealizar su parte del trabajo.

La herramienta WPM recopila todos los tiempos de lastransacciones y las entradas de todos los trabajos delSystem i que forman parte del entorno web. Los datos de

estos trabajos se presentan en una interfaz, me-diante la cual pueden verse fácilmente todos lostiempos de las transacciones y de las respues-tas de cada parte del entorno web. Estos datospueden adaptarse para que muestren los tiem-pos de las transacciones y de las respuestas deun usuario o una dirección IP individuales, loque permite que el usuario o administrador sepa

dónde se encuentran los problemas potenciales de la apli-cación. Los datos también pueden usarse para ayudar aun usuario que tenga dificultades.

WPM proporciona una interfaz para que los administrado-res puedan consultar fácilmente los trabajos más importan-tes, de forma muy parecida a como lo hace la herramientaWRKACTJOB para entornos que no están basados en web.Si tiene que examinar la información específica del trabajo,WPM tiene un enlace directo con iSeries Navigator en la pá-gina del trabajo activo.

Instalación de WPMAntes de iniciar el Supervisor de rendimiento Web, asegúre-se de que tiene instalado el PTF de grupo SF99114 Nivel 6 oposterior para IBM HTTP Server para i5/OS en el System iV5R4. Siga estos pasos para ejecutar WPM:

1. En iSeries Navigator, despliegue su_sistema|Red|Ser-vidores y seleccione TCP/IP.

A

El Supervisor de rendimiento Web (WPM),una herramienta nueva de la interfaz WebAdministration forma parte del IBM HTTPServer para i5/OS

Page 25: ServerNEWS -182 (Marzo 2008)

Managem

ent

▲▲▲

www.help400.es MARZO 2008 ServerNEWS 25

Page 26: ServerNEWS -182 (Marzo 2008)

Man

agem

ent

▲▲▲

26 ServerNEWS MARZO 2008 www.help400.es

2. Pulse con el botón derecho del ra-tón en Administración HTTP y se-leccione Inicio.

3. Arranque un navegador web.4. Escriba http://[su_system_i]:2001 en

el campo del URL para iniciar lapágina web Tareas de i5/OS, donde[su_system_i] es el nombre de su sis-tema IBM System i (por ejemplo,http://systemi.acme.com:2001).

5. Pulse IBM Web Administrationpara i5/OS.

6. Desde la interfaz IBM Web Admi-nistration para i5/OS, seleccione elservidor que le gustaría supervisar.

7. En el panel de navegación, desplie-gue Rendimiento web y seleccioneSupervisor de rendimiento Web.

Una vez realizados los siete pasos,aparece la página de introducción deWPM, donde ya puede empezar a su-pervisar el rendimiento del entornoweb.

Supervisión del entorno webComo es necesario establecer muchosatributos antes de poder supervisar elrendimiento web, deberá parar yreiniciar el entorno web para activarla supervisión. Antes de poder utili-zar esta herramienta deberá planearcon antelación una desconexión delservidor.

Mediante la interfaz Web Admi-nistration para i5/OS, empiece porseleccionar el entorno que desearía

web. Por ejemplo, si el servidor HTTP está en un sistemaremoto, no se mostrará ningún trabajo del servidor HTTP. Lainterfaz incluye las fichas Transacciones y Trabajos.

En la ficha Transacciones (Figura 3) pueden verse esta-dísticas de las transacciones de cada trabajo que genera da-tos de ARM. Para cada transacción, esta pantalla muestra eltiempo promedio de respuesta y el número de transaccionescompletadas. La ficha Trabajos (Figura 4) muestra los ser-vidores y trabajos activos del entorno. Para cada trabajo pue-de verse el usuario actual, el porcentaje de utilización de laCPU, la prioridad de ejecución, el número de hebras, el tiem-po promedio de respuesta de cada transacción y el número detransacciones completadas. Si los valores de los tiempos pro-medio de respuesta o de los porcentajes de uso de la CPU sonmuy grandes, pueden que indiquen un cuello de botella. Esteposible cuello de botella es un buen punto de partida parainvestigar los problemas de rendimiento.

Para identificar las transacciones de un usuario o grupo deusuarios, pulse el botón Preferencias de la ficha Transacciones.

FIGURA 1Herramienta Supervisor de rendimiento Web

■ SUPERVISAR EL RENDIMIENTO DEL ENTORNO WEB

supervisar (sólo puede supervisarse uno a la vez) y activela herramienta Supervisor de rendimiento Web (Figura1). Para activar la supervisión, la herramienta:

• detiene las instancias del servidor HTTP y actualiza susconfiguraciones para activar la recopilación de datos deARM

• detiene los servidores de aplicaciones y actualiza sus confi-guraciones para activar la recopilación de datos de ARM

• inicia la recopilación de datos de ARM• reinicia el servidor HTTP y las instancias del servidor HTTP

Una vez detenidos, actualizados y reiniciados los servido-res, ya puede empezar a recopilar datos a los que puedeaccederse mediante la interfaz Supervisor de rendimiento Web(Figura 2). El contenido de la interfaz WPM puede ser dife-rente para cada entorno web supervisado. WPM es específicode cada entorno seleccionado y únicamente se muestran lostrabajos directamente implicados en servir a la aplicación

FIGURA 2Interfaz Supervisor de rendimiento Web

Page 27: ServerNEWS -182 (Marzo 2008)

Managem

ent

▲▲▲

www.help400.es MARZO 2008 ServerNEWS 27

FIGURA 3Ficha Transacciones

FIGURA 4Ficha Trabajo

Cuando esté satisfecho con los datosrecopilados, debería desactivar WPMpara liberar los recursos adicionalesdel sistema que consume. Cuando sedesactiva la supervisión, la herramien-ta:

• detiene las instancias del servidorHTTP y actualiza sus configuracio-nes para desactivar la recopilaciónde datos de ARM

• detiene los servidores de aplicacio-nes y actualiza sus configuracionespara desactivar la recopilación dedatos de ARM

• detiene la recopilación de datos deARM

• reinicia el servidor HTTP y las ins-tancias del servidor de aplicaciones,devolviéndolas a su estado anterior

Aunque hay muchas formas posi-bles de usar la información que pro-porciona la herramienta, hágalo concautela. Puede sentir la tentación dedejar que la herramienta se ejecuteen el entorno web todo el tiempo, perohay dos problemas. El primero es quela instrumentación de ARM generauna actividad general adicional. Aun-que esta instrumentación se ha dise-ñado para que sea lo más discreta po-sible, se puede producir una ligeradisminución del rendimiento cuandoestá activada. El segundo es que es-tamos limitados a supervisar sólo unentorno web del sistema a la vez, porlo que tendrá que elegir qué entornosupervisar.

Con WPM recopilando datos sobre elrendimiento y las transacciones y ocu-

En esta página, puede especificar un usuario o una lista deusuarios y WPM mostrará solamente información sobre lastransacciones de los usuarios seleccionados. Esto es útil si undeterminado usuario se queja de la lentitud de una aplica-ción. Compare los tiempos que tarda en ejecutarse la tran-sacción para distintos usuarios con el fin de asegurarse deque las quejas son justificadas. También puede optar por exa-minar los tiempos que tarda en ejecutarse la transacción parauna sola dirección IP o nombre de host, lo que plantea formascreativas de averiguar qué está pasando con una aplicación.La información relativa a la transacción muestra qué traba-jos han procesado las peticiones de cada usuario o direcciónIP. Esta información tan precisa sobre el usuario puede ayu-darle a identificar qué trabajos están ralentizando el entor-no web.

pando unos cuantos brazos del pulpo, tendrá las manos li-bres para dedicarse a problemas más importantes o intere-santes. ■

Rachel Eagle lleva seis años trabajando para IBM. Actualmente es redactora yjefe de proyecto del departamento de Tecnologías del usuario. Está casada conotro trabajador de IBM y tienen un hijo y dos perros. En su tiempo libre, trabajacomo voluntaria y se dedica a hacer manualidades y a viajar.

Tim Rowe es jefe del equipo IBM Web Administration, en el que llevatrabajando los últimos seis años. Se casó hace diecisiete años y tiene cuatroniños que no le dejan tiempo libre.

Page 28: ServerNEWS -182 (Marzo 2008)

Man

agem

ent

▲▲▲

28 ServerNEWS MARZO 2008 www.help400.es

ada vez más empresas que confiaronúnicamente en el System i (o uno desus predecesores) y en la base de da-tos integrada DB2 están asumiendo la

responsabilidad de gestionar un servidor Wintelque ejecuta SQL Server de Microsoft. Como SQLtiene estándares formales que tanto IBM comoMicrosoft han implementado bastante bien, el co-nocimiento que tenga de SQL en el System i seráun buen punto de partida para empezar a encar-garse del desarrollo de SQL Server además del deDB2. Más allá del lenguaje SQL en sí, hay variasfunciones de SQL Server que todavía no están enDB2 y que puede que le interese utilizar en sus de-sarrollos. En este artículo encontrará una rápidaintroducción.

Tipo de datos VariantSQL Server admite muchos tipos de datos internos, inclu-yendo los numéricos, de tipo carácter y las series binarias,los tipos de datos de fecha y hora, etcétera. En la mayoría delos casos, se definen columnas de tablas, variables de proce-dimientos y parámetros y valores de retorno de funciones contipos de datos concretos como Int o Character. En estos casos,en la columna sólo pueden almacenarse valores del tipo es-pecificado.

Pero SQL Server también permite definir una columna,variable, parámetro o valor de retorno de funciones utilizan-do la palabra clave sql_variant, con el fin de almacenar valo-res de distintos tipos de datos en la misma columna. Esteejemplo permite guardar una referencia numérica o de tipocarácter para los artículos de un catálogo:

CREATE TABLE Articulo ( NumArt Int, RefCatalogo sql_variant, ... )

Se puede determinar el tipo de datos de una fila determi-nada usando una llamada a función, como esta:

C

Añadir técnicas de SQL Serveral repertorio de DB2

Aproveche algunas de las posibilidades de SQL exclusivas de SQL Server

por Paul Conte

Sql_Variant_Property( RefCatalogo, ‘TipoBase’)

Si el valor actual de RefCatalogo es un tipo entero, esta lla-mada a función devolverá int.

Es posible convertir explícitamente un tipo de datos varianten otro de los tipos de datos internos:

Cast( RefCatalogo As VarChar(10) )

En muchas circunstancias, sin embargo, SQL Server con-vertirá implícitamente el valor variant de una columna en elmomento oportuno, por lo que no es necesario escribir unoperación Cast explícita.

Las UDF en restricciones de comprobaciónLas restricciones de comprobación permiten definir reglaspara determinar que los datos son válidos al crear una tablao modificar su definición. En SQL Server, se puede especifi-car una función definida por el usuario (UDF) en la expre-sión lógica que define la restricción. Las UDF aumentan lasoportunidades de reutilizar el código y permiten definir com-probaciones de validez complejas.

Una característica interesante es que se pueden usar con-sultas sobre los datos existente de la tabla como parte dela restricción. Por ejemplo, se puede crear la UDF Com-probarIntervaloFecha que devuelve 1 si existe otra fila enla tabla Articulos con el mismo número de artículo y unintervalo de fecha que se solapa para el precio. Si no exis-te solapamiento de ninguna fila, ComprobarIntervaloFechadevuelve 0. Cuando cree la tabla, se puede añadir una res-tricción de comprobación que haga referencia a esta fun-ción:

CREATE TABLE Articulos ( NumArt Int, Precio Decimal( 10, 2 ), FechaIni Date, FechaFin Date, ... Comprobacion ( ComprobarIntervaloFecha ( NumArt, FechaIni, FechaFin ) = 0 )

Page 29: ServerNEWS -182 (Marzo 2008)

Managem

ent

▲▲▲

www.help400.es MARZO 2008 ServerNEWS 29

Suscríbase a

y recibagratuitamenteel Suplementotécnico

Soporte integrado para el control concurrenteoptimistaEl control concurrente optimista es una técnica para evitaractualizaciones concurrentes conflictivas de la misma fila deuna tabla. La técnica básica es extraer filas sin bloquearlas yutilizar una copia salvada de la indicación de la hora de lafila extraída (o una suma de comprobación del contenido detoda la fila) para comprobar si otro proceso ha realizado cam-bios antes de ejecutar otra operación de actualización de lafila.

SQL Server se encargará de todas las tareas internas si sedeclara un cursor con la palabra clave Optimistic:

Declare CursorTrab Optimistic For Select IdTrab, NomTrab From Trabajador Order By IdTrab For Update of NomTrab

Con la definición de este cursor, las filas no se bloquean alextraerlas. Cuando la aplicación intenta una actualizacióncon ubicación, como:

Update Trabajador Set NomTrab = :NombreNuevo Where Current of CursorTrab

SQL Server comprueba la indicación de la hora salvada ola suma de comprobación con el valor correspondiente de lafila actual y no permite la actualización si los dos valores nocoinciden.

Resúmenes Rollup y Cube en conjuntos deresultadosEs posible generar filas de totales y subtotales en el conjuntode resultados de una sentencia Select usando las palabrasclave Rollup o Cube en la cláusula Group By.

Rollup genera un conjunto jerárquico de filas de resumen.En el ejemplo de la Figura 1A se muestra una sentenciaSelect que genera una fila por cada curso con la suma de losalumnos matriculados en todas las sesiones que ofrece el cur-so. En la Figura 1B se muestra una fila de subtotal paracada departamento (en los puntos A y B) y una fila de sumatotal (en el punto C).

Se puede usar la función Grouping, como en este ejemplo,para especificar un valor para las columnas Group By de lasfilas acumuladas. Esto facilita la determinación de los valo-res de resumen que contiene una fila concreta.

La palabra clave Cube funciona de forma parecida; sinembargo, el conjunto de resultados contiene filas desubtotal para todas las combinaciones de valores de la cláu-sula Group By, no sólo los subtotales jerárquicos genera-dos por Rollup.

Page 30: ServerNEWS -182 (Marzo 2008)

Man

agem

ent

▲▲▲

30 ServerNEWS MARZO 2008 www.help400.es

La función de búsqueda de texto ContainsLa función Contains de SQL Server permite buscar en co-lumnas de tipo carácter palabras, frases, prefijos de palabras,palabras derivadas, sinónimos y palabras semejantes a otras.La forma de usar Contains en una condición de búsqueda essimilar a la forma de usar la palabra clave Like para especi-ficar comparaciones sencillas.

En el ejemplo siguiente se buscan filas en que la descrip-ción del producto contenga palabras basadas en cortar:

Select IdProd, DescProd From Productos Where Contains( DescProd, ‘ FormsOf (Inflectional, corta) ‘)

Para buscar descripciones de productos en que aparezca lapalabra cepillo cerca de nailon, especificaríamos:

Contains( DescProd, ‘ cepillo NEAR nailon ‘)

Hasta pueden buscarse palabras con un significado pareci-do. La búsqueda siguiente encontraría motor, propulsor, má-quina y otras palabras semejantes:

Contains( DescProd, ‘ FormsOf (Thesaurus, motor) ‘)

Las condiciones especificadas pueden combinarse en expre-siones lógicas con los operadores And, Or y Not, como en estaexpresión:

‘cable And ((cobre And Not trenzado) Or (solido And verde))’

Manejo de excepciones Try/Catch enprocedimientos de SQLEl manejo de excepciones estándar de SQL para procedimien-tos almacenados es difícil de usar. El lenguaje procedural deSQL Server (que forma parte de Transact-SQL) incluye unmecanismo Try/Catch más simple, parecido al que se usa enJava y en otros lenguajes de programación contemporáneos.

En el ejemplo de la Figura 2 se puede ver un fragmento decódigo que ejecuta una sentencia Select Into en el bloque Try.Si esta sentencia no provoca una excepción, la ejecución pasaa la sentencia que hay justo después del final del bloque Catch.

Si una sentencia del bloque Try (por ejemplo, la sentenciaSelect Into de la Figura 2) provoca una excepción, entoncesse ejecutarán las sentencias del bloque Catch.

La característica Try/Catch de Transact-SQL no permiteespecificar qué excepciones capturar, algo que sí se puedehacer en Java. Pero se puede usar la función integradaError_Number para determinar el error. También hay otras

funciones Error_Xxx que devuelven la gravedad del error, elnúmero de línea de la sentencia que ha provocado el error yotra información relacionada con el error.

Los conocimientos de SQL son perfectamente aplicables amuchas bases de datos relacionales, pero no basta con cono-cer las características comunes multiplataforma. Si laportabilidad del código no es importante, también vale la penaentender y usar con sensatez las características de cada pla-taforma. Tras leer este artículo, ya puede empezar a sacarpartido a algunas de las capacidades relacionadas con SQLexclusivas de SQL Server. ■

Paul Conte es redactor técnico de System iNEWS y presidente de PCES, unaempresa de formación y consultoría de Eugene (Oregón).

Select Case When ( Grouping( Dept ) = 1 ) Then ‘All’ Else Dept End As Dept, Case When ( Grouping( Course ) = 1 ) Then ‘All’ Else Course End As Course, Sum( Enrollment ) As EnrollSumFrom ClassesGroup By Dept, Course With Rollup

Dept Course EnrollSum—————————— —————————— —————Math 217 108Math 324 211Math All 319Physics 411 121Physics 412 220Physics All 341All All 660

Set @RtnErrNbr = 0;Begin Try Select CustName Into @RtnName From Customer Where CustId = RqsId;End TryBegin Catch Set @RtnName = ‘Error’; Set @RtnErrNbr = Error_Number(); Return;End Catch;

FIGURA 1AUtilización de la palabra clave Rollup

FIGURA 1BResultado del ejemplo de la palabra clave Rollup

FIGURA 2Utilización de la característica Try/Catch

■ AÑADIR TÉCNICAS DE SQL SERVER AL REPERTORIO DE DB2

Page 31: ServerNEWS -182 (Marzo 2008)

Managem

ent

▲▲▲

www.help400.es MARZO 2008 ServerNEWS 31

Page 32: ServerNEWS -182 (Marzo 2008)

32 ServerNEWS MARZO 2008 www.help400.es

GUIA

Page 33: ServerNEWS -182 (Marzo 2008)

www.help400.es MARZO 2008 ServerNEWS 33

GUIA

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

T. 34 934 854 427 Fax 34 934 850 168

Mantenimiento / Alquiler yBrokerage / Venta / Redes

Backup Center

MANTENIMIENTO Y BROKERAGEINFORMÁTICO, S.L.

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

Page 34: ServerNEWS -182 (Marzo 2008)

34 ServerNEWS MARZO 2008 www.help400.es

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

confidencial por Carlos Bell

INDICE DE ANUNCIANTES MARZO 2008

Empresa Página

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

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

CACOVAI ................................................................................ 19

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

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

COMON ESPAÑA................................................................. 25

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

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

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

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

Algo se está cociendo en IBM

Según me indica el olfato, algo gordo se está cocinando enlas marmitas de IBM. No se si recordaréis que en esta mis-ma columna, en octubre de 2007 (número 177) os comenta-ba que entre las muchas iniciativas emprendidas por IBMpara mejorar los resultados de la familia de productosSystem i, la última, la de julio de 2007, se basa en la reorganización del esfuerzo comercial en dos divisiones o líneas denegocio distintas, la Business Systems responsable de la comercialización de los modelos “pequeños” 515, 520, 525, y 550para atender las necesidades de las Pymes, y la Power Systems que agrupa a los “grandes” System i 570 y 595 con el restode modelos de la plataforma System p –los sucesores de aquel RS/6000 presentado en febrero de 1990 y que ahora compar-ten arquitectura con los System i– para satisfacer las necesidades de las grandes corporaciones. En aquel momento hubierasido muy temerario valorar los posibles resultados, y más teniendo en cuenta el inminente anuncio de Systems i contecnología POWER6. En enero de 2008 (número 180) pude hacerlo con satisfacción: por primera vez en los dos últimos años,los resultados del System i habían sido positivos en el cuarto trimestre de 2007, con un 2% de crecimiento en comparaciónal mismo periodo del año anterior...

Pero ¿en cuál de esas dos líneas de negocio se han producido? Evidentemente, no es lo mismo: para conseguir los mismosingresos, en la Business Systems es necesario realizar muchísimas más ventas que en la Power Systems. ¿Quienes son susresponsables a nivel internacional? ¿También se ha reorganizado en España? ¿Quién dirige la división del System i en suconjunto, si es que todavía existe como tal? En enero de 2005, el cargo de director general de la división iSeries lo asumióMark Shearer, vicepresidente de estrategia de marketing para sistemas y mano derecha de Bill Zeitler en el Grupo deSistemas y Tecnología de IBM. Según se desprende de la entrevista realizada a Mark Shearer por IT Jungle el pasado 3 demarzo (http://www.itjungle.com/tfh/tfh030308-story01.html), esta reestructuración es más profunda de lo que puedeparecer a simple vista. Para empezar, después de la reorganización de julio de 2007, todo el desarrollo del hardware desistemas basados en tecnología POWER pasó a depender de la división Power Systems, bajo la dirección de Ross Mauri;además, una pequeña división creada sigilosamente por IBM en enero de 2007 para incrementar sus ventas entre lasPymes, la Business Systems, dirigida por Marc Dupaquier, pasó a hacerse cargo de la comercialización de los System iinferiores al modelo 570. Shearer dejó de ser responsable de la línea de productos System i y pasó a ser vicepresidente demarketing y ejecutivo de líneas de negocio en la división Power Systems. Finalmente, y como último paso de esta reorgani-zación, en enero de 2008 la Business Systems se ha convertido en una mera organización de ventas y marketing paraclientes y, dentro del Grupo de Sistemas y Tecnología al frente del cual sigue Bill Zeitler, un veterano ex director del AS/400,aparece una nueva división, la Modular Systems que ha absorbido la línea de productos System x.

IBM: “The new Power Equation”

¿Y, aparte de todo este lío de cargos y responsabilidades, quéhay de nuevo? Pues que está a punto de celebrarse la reunión

anual de COMMON USA y todos los expertos del sector an-dan haciendo cábalas acerca de una presentación especialpor parte de IBM, prevista para el día 2 de abril. De acuerdocon la página web del evento (http://www.common.org/conferences/2008/annual/), los asistentes podrán escucharen persona a Mark Shearer, vicepresidente de marketing yofertas, así como a Ross Mauri, General Manager de PowerSystems, cuando conjuntamente anuncien una importanteiniciativa de IBM denominada “The New Power Equation”.

¿...? Sobre este tema, en otro artículo de IT Jungle (http://www.itjungle.com/tfh/tfh030308-story06.htm) se especula nosólo sobre el posible lanzamiento de dos nuevos servidoresbasados en POWER6, los 520 y 550, sino también sobre unanueva estrategia de ventas donde, de una parte se crearíanproductos Power y de otra dos divisiones se encargarían desu comercialización, bien fueran sistemas de gama alta(Enterprise Systems Division) o de gama baja y gama media(Business Systems Division). Habrá que esperar al 2 de abrilpara saber qué es lo que se está cocinando en IBM. ■