Você está na página 1de 36

182

editorial

El usuario tiene
derechos

C
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 este
sentido, todos hemos vivido situaciones tan anecdóticas o tan com-
prometidas que, con el tiempo, nos han hecho acreedores de una cierta
mala fama y de que, en general, se nos acuse de prestar poca aten-
ción a las necesidades reales del usuario. Es más, nosotros, también como usuarios
y en más de una ocasión, nos hemos acordado de aquel programador al que se le
ocurrió 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, propuso
en la revista Business Week (www.businessweek.com/1998/39/b3597037.htm) una
especie de decálogo o “Código de derechos de los usuarios de informática” del que
vale la pena destacar algunos principios:

• El usuario siempre tiene razón. Si hay un problema en el uso de un sistema no es


por su culpa. ¿Cuántas veces nos hemos encontrado en una situación en que nos
dicen 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,
Imagen de la portada: Mike Friehauf
• los productos (hardware y software) tienen que ser fáciles e intuitivos de usar.
Suscripción: Anual (10 números
al año, no en Julio y Agosto).
España: 96 euros (IVA incluido).
Lo que viene a decir, en resumen, es que los usuarios tenemos derecho a dispo-
Extranjero: 180 $ USA (incluido el ner de un servicio de calidad. Inmediatamente hubo una reacción de los lectores de
envío por Correo Aéreo). Se Business Week que pedían que se empezara a aplicar rápidamente el código. Tam-
distribuye a final de mes.
bién como consecuencia aparecieron las respuestas de los teóricos informáticos
© Publicaciones HELP400, S.L.
Se prohibe la reproducción total o parcial
dudando de la posibilidad de construir sistemas realmente “intuitivos”. En este
de los artículos aparecidos en este número, que temáticamente hemos centrado en la Gestión de Proyectos podemos
número sin la autorización expresa por
escrito de la empresa editora, titular del encontrar argumentos y metodologías que, como mínimo, nos ayudarán a mejorar
Copyright. Todos los derechos reservados
en cualquier idioma.
esta percepción negativa de los usuarios.
ServerNEWS es una publicación
independiente de grupos de usuarios y/o
de distribuidores de marcas. De las ideas Ante una nueva aplicación, el prepararla convenientemente no sólo nos permiti-
expuestas en los artículos firmados son
responsables sus autores. Corresponde al
rá atender mejor la “lista de deseos” del usuario sino que también nos permitirá
lector el asegurar que las noticias, ganar su aprecio y respeto.
técnicas y procedimientos descritos son
adecuados para su instalación.
Publicaciones HELP400 S.L. no
asume ninguna garantía ni implícita ni
explicitamente.
La empresa editora no se responsabiliza de
la asiduidad en la distribución gratuita a
las empresas españolas equipadas con
S/3X o AS/400.

IBM y AS/400 son marcas registradas


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

www.help400.es MARZO 2008 ServerNEWS 3


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

equipo editorial
Director: Antonio Montía
en portada
Redacción: Carlos Bell, Alberto C. Blanch,

10
Equipo internacional de iSeries NEWS
Colaboradores habituales: Jaime Gustavo
Recopilación y documentación de requisitos
Estany, José Mª Martín, Lluís Peiret por Russ Bartlett
Traducciones: Pere J. Francisco Brumós El usuario final de una aplicación es la persona a la que
producción va destinada una aplicación una vez que ésta ha supera-
Realización: Media Limits S.L. do las fases de desarrollo. Descubra cómo conseguir re-
Maquetación: Ramiro Esteve Coll quisitos de los usuarios claros, concisos, fáciles de cuanti-
Impresión: G2B gràfic S.L.
Distribución: Unipost S.A.
ficar y de probar.
administración

14 Cómo decidirse por una solución para


Suscripciones : Nuria Navarro
Publicidad: Tel. 34- 932 310 049
el desarrollo de aplicaciones
Fax: 34-932 310 309
Servicio HelpNet: www.help400.es por Chris Maxcer
edita Si se pregunta si, para equipos pequeños, no sería mejor
PUBLICACIONES adquirir una herramienta de desa-
rrollo de aplicaciones en vez de
Deposito legal: B-2757-90
intentar aprender nuevos len-
I.S.S.N. 1698-4501 guajes y técnicas, puede
APTDO. DE CORREOS 8003 - 08080 Barcelona que en este artículo ha-
Gran Vía Corts Catalanes, 715, Entlo. 3ª lle la respuesta.
08013 - Barcelona
Tel.: 932 310 049
E-mail: help400@help400.com

Director General: Alberto C. Blanch Llangostera

Publicado con la participación de

- iSeries NEWS
www.pentontech.com

Group Publisher/Editor: Wayne Madden


Group Editorial Director: Dale Agger
Penton Technology Media
Darrell C. Denny, President
Penton Media, Inc.
David Nussbaum, Chief Executive Officer

LATINOAMERICA

distribuidores
Belice, El Salvador, Guatemala y Honduras
VIACOMP
6ª Avenida. "A" 2-83 Zona 10
Ciudad de Guatemala, GUATEMALA 01010
Telf. 502-360-0358 y 360-0350
Fax 502-332-33694
email: viacomp@guate.net
www.viacomp.net opinión
Perú

8 La web convierte a las empresas en compañías de


COMMON PERU
Bajada Balta 131, Of. 10, 2º Piso
Miraflores Lima 18, PERU software
Telf. y Fax: 46 31 32
por John Ghrist
Paraguay
ANGEL LIERNUR E HIJO El fin de las aplicaciones web es servir a personas que no tienen la obli-
P.O. BOX 2448 gación de tolerar programas malos, por tanto han de hacer correctamen-
ASUNCION - PARAGUAY
427661@telesurf.com.py te todo lo que se supone que deben hacer. Y eso las sitúa al mismo nivel
e-mail: aliernur@yahoo.com de exigencia que en el desarrollo de software comercial.

4 ServerNEWS MARZO 2008 www.help400.es


Nº 182 MARZO 2008 www.help400.es
programación y sistemas

20 Configurar un entorno seguro para aplicaciones


escritas en PHP
por Alan Seiden
Dada la naturaleza abierta de Internet, los administradores de sistemas
que instalen aplicaciones web en el entorno PHP de Zend Core para i5
querrán tener garantizada la seguridad. En este artículo se explica cómo
aumentar la protección desde el propio entorno PHP.

management

24 Supervisar el rendimiento del entorno web


por Rachel Eagle y Tim Rowe
El Supervisor de rendimiento Web (WPM) forma parte del IBM HTTP Server
para i5/OS y nos permite, desde la interfaz Web Administration, recopilar
datos sobre el rendimiento de los trabajos que componen un entorno web y
las transacciones realizadas por éstos.

28 Añadir técnicas de SQL Server al repertorio de DB2


por Paul Conte
Más allá del lenguaje SQL en sí, hay varias funciones en el SQL Server de
Microsoft que todavía no están implementadas en DB2 y que puede que le
interese utilizar en sus desarrollos. En este artículo encontrará una rápida
introducción.

estrictamente confidencial

42 Algo se está cociendo en IBM


por Carlos Bell
En la próxima reunión anual de COMMON USA IBM anunciará una impor- forum.help400
tante iniciativa denominada “The New Power Equation”. F orum.help400 es una lista de correos
puesta a disposición de los lectores de
ServerNEWS en la que cada día, entre to-
HELP400 Suplemento Técnico i dos los participantes, se solucionan nume-
rosos problemas. Hallará más información

1 Parámetros y tipos de datos de las API


Por Bruce Vining
Iniciamos una nueva serie de artículos, genéricamente titulada como
en http://www.help400.es/forum.htm

“APIs estándar para los programadores en CL”, para explicar cómo


se pueden utilizar desde ILE CL muchas de las API estándar del
sector. Para familiarizarnos con sus parámetros y tipos de datos,
empezaremos explorando la API getenv.
SECCIONES

12 Como evitar el fracaso de un proyecto


Por Paul Conte
Formando parte de la temática de portada de este número, presen-
HABITUALES

3 Editorial
tamos diez técnicas garantizadas para conseguir que un proyecto
6 Novedades
de desarrollo fracase (y diez remedios infalibles para asegurarse de
todo lo contrario) 40 Guia
42 Confidencial
www.help400.es MARZO 2008 ServerNEWS 5
MARZO 2008 ServerNEWS 5
novedades
■ Econocom abre
Tango/04 consigue los mejores resultados nuevas oficinas en
Barcelona
de su historia en 2007 Econocom, empresa líder en
renting y gestión de activos infor-
ango/04 Computing Group, líder europeo en desarrollo de software para Gestión de Sistemas,
T 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 dado
máticos y de telecomunicaciones,
ha abierto nuevas oficinas en Bar-
celona “para hacer frente al creci-
beneficios por decimoquinto año consecutivo, con las ventas internacionales creciendo a más del 30% miento que hemos experimentado en
interanual. El crecimiento ha sido más notable en América Latina, alcanzando un crecimiento extraor- la región en los últimos meses”, co-
dinario que la consolida como líder en dicho mercado, con un aumento de ventas del 76,4%. mentó Ángel Benguigui, Director
“Estamos muy contentos con estos resultados”, dice Raúl Cristián Aguirre, Gerente y Fundador de General de Econocom España. La
Tango/04, “evidentemente estamos acertando con nuestro nuevo enfoque de monitorización 1 – 2 – 3, su nueva sede de Econocom en Bar-
facilidad de uso y sus cortos tiempos de implantación. Conseguimos éxitos continuamente justo donde celona está situada en Roger de
nuestros competidores están fallando.” Lluria, 50. Con este cambio,
Durante 2007 se añadieron más de 100 nuevos clientes, incluyendo a ING, Citigroup, Nike, FMO, Econocom continúa con su estra-
Boehringer Ingelheim, Helvetia Previsión, FiatC, Dolce & Gabbana, Louis Vuitton Malletier, Costco, tegia de aumentar el compromiso
Bayer CorpScience, Zurich Seguros, Mapfre, Pernod Ricard, Seur Geopost, Swiss Medical Group, Tele- con Catalunya a más largo plazo.
visa, EDS, BBVA Previsión, Industrial Bank, Center Parcs, Euronet, etc. Según Benguigui, el crecimien-
“Diez de las veinte entidades financieras más grandes del mundo son ya nuestros clientes. Tenemos to que está experimentando el
éxito tanto en proyectos de Seguridad como en los de Gestión de Servicios e Infraestructuras. Hemos renting tecnológico en todo el país
presentado productos innovadores y únicos para simplificar las tareas diarias de los profesionales de TI. está siendo más acusado en Bar-
Año tras año vamos superando hitos históricos en un mercado súper competitivo como es el de la celona, “donde la cultura del Ren-
monitorización multiplataforma. Estamos preparados para ser líderes”, añade Aguirre. ting está muy arraigada. Aunque
Para apoyar el crecimiento continuo, Tango/04 ha abierto durante 2007 nuevas oficinas en Estados nuestra sede central permanecerá
Unidos, Brasil y Colombia. También se han mejorado las operaciones a través del canal con nuevos o en Madrid, porque es un centro de
renovados acuerdos con partners como IBM, PricewaterhouseCoopers, Electronic Data Systems (EDS), negocios clave en España, Barcelo-
PST Business Solutions, Moores Rowland (India) (parte de BDO), Sanwa Contec (Japón), Concord na es un mercado que empieza a
(Taiwán) y muchos otros. ganar protagonismo en el creci-
“Tenemos plena confianza en que en 2008 volveremos a batir todos los récords. Tenemos numerosas miento de nuestra empresa. El mer-
oportunidades comerciales abiertas, vamos a lanzar nuevos productos y el mercado mundial está madu- cado español es, cada día, más re-
rando velozmente para soluciones como las nuestras: prácticas y que aporten un gran valor rápidamente. ceptivo al Renting IT. Cada día
Creo que vamos a hacer historia”, concluye Aguirre. más empresas apuestan por esta
1-2-3: Con Tango/04, llega la monitorización integral opción en lugar de la compra, debi-
Tango/04 es la única solución de monitorización en tiempo real que permite controlar y reaccionar de do a los beneficios inmediatos que
manera proactiva ante cualquier incidencia que afecte a la empresa, ya sea de seguridad, de infraes- experimentan en términos económi-
tructura, o de negocio: cos, financieros y de gestión”.
1) Infraestructura TI: Servidores multiplataforma, base de datos, dispositivos de red, etc. A través de las soluciones de
2) Seguridad: Auditoría y Cumplimiento de Leyes y Regulaciones (LOPD, SOX, HIPAA, etc.) Renting que ofrece Econocom, las
3) Servicios de Negocio: Aplicaciones, Niveles de Servicio (SLM) y gestión de los servicios del negocio empresas no tienen que adquirir y
vincular su capital a equipos infor-
Para más información, Telf.: 932.749.051 - www.tango04.es máticos sometidos a una rápida
depreciación. Además, para hacer
■ Según axesor, la Los subsectores analizados por so del 12,4% en la creación de frente a los continuos desafíos del
mercado y disfrutar de los benefi-
creación de empresas axesor en su informe son: Con- empresas informáticas, lo que
sulta de equipo informático; Con- supone 347 sociedades menos cios ofrecidos por las tecnologías
informáticas desciende
sulta y suministro de aplicaciones Por comunidades autónomas, más modernas e innovadoras, las
un 12,4% en 2007
informáticas; Actividades de pro- Madrid encabeza la lista de crea- empresas tendrían que adecuar
Un total de 2.453 nuevas socieda- ceso de datos; Actividades relacio- ción de empresas informáticas, continuamente sus activos TI, con
des mercantiles se han incorpora- nadas con bases de datos; Mante- con 688 nuevas sociedades, segui- el riesgo de incurrir en gastos
do al sector informático español en nimiento y reparación de equipo da por Cataluña con 583 y en el insostenibles. “El Renting permite
2007. Así lo refleja en su último informático, y Otras actividades tercer puesto Andalucía, con 280. mantener siempre actualizado el
“Estudio Radar sobre el sector relacionadas con la informática. Cierran la clasificación Ceuta y parque TI y poder optimizar su cos-
informático” axesor, empresa es- Comparando los datos con los Melilla (2 nuevas empresas infor- te total”.
pañola especializada en el sumi- registrados en los años 2005 y máticas) y La Rioja (3). El seg- Fundada en 1984, Econocom
nistro de información empresarial 2006, se observa tanto un descen- mento que mayor dinamismo pre- está presente en los ocho merca-
por Internet, que analiza la situa- so en el número de constituciones senta es el de consultoría y dos más importantes de Europa y
ción de altas y disoluciones de como un incremento en el núme- suministro de aplicaciones, con actualmente cuenta con más de
empresas del sector TIC a lo lar- ro de disoluciones. Respecto a 1.872 nuevas sociedades mercan- 2.200 empleados.
go del año pasado, tomando como 2006, año en el que se crearon un tiles. Para más información,
base la clasificación nacional de total de 2.800 empresas en este Para más información, Telf.: 914.119.120
actividades económicas CNAE. sector, se ha producido un descen- www.asexor.es www.econocom.es

6 ServerNEWS MARZO 2008 www.help400.es


■ ACOM Solutions ■ LISVA Soluciones
introduce el Integradas S.L. anuncia
EZContentManager el Programa 2010
para System i
“Para 2010, la mayoría de las
Esta firma estadounidense es co- multifuncionales e impresoras se
nocida en España por sus pro- venderán asociadas a Soluciones
ductos para la creación de for-
mularios electrónicos, envíos de
de Impresión y Gestión Documen-
tal.” LISVA, con más de 40 produc-
Una ocasión única
documentos por fax y email, así tos/soluciones no necesita esperar erverNEWS y System iNetwork le proponen participar en el
como el archivo de los mismos en
PDF. Esta familia de productos se
a 2010.
Ofrece a sus clientes la Solución
S 2008 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-
conoce como EZeDocs, siendo su que deseen totalmente GRATIS. laciones del Inverness Hotel and Conference Center.
punto de partida el conocido No hay truco. Únase a los líderes en un evento diferente a cualquier otro del
EZPrint400. El cliente, al comprar el hard- mercado, centrado en la estrategía, toma de decisiones y el valor
Ahora lanza el EZContentMa- ware (multifuncional y/o impreso- de las TI en su negocio. Esta conferencia ejecutiva incluye semina-
nager, cuyo objetivo es la captura ra), puede seleccionar cualquier rios en profundidad de Gatner, IBM, System iNEWS... ¡y mucho
y almacenamiento de los docu- producto entre una gran variedad: más!
mentos, creando un sistema de Gestión Documental, Control de Para más información, incluido agenda, precios y perfil de los
índices que nos permitirá la ges- Costes de Impresión, Formularios ponentes, acceda a www2.systeminetwork.com/itleadersforum/
tión y distribución de los mismos, Electrónicos, Conversión a PDF,
atendiendo a nuestros criterios de Impresión segura...y muchos más.
búsqueda y recuperación. Todo ¿Cómo funciona el Progra-
ello se realiza en un entorno Web ma 2010?
que facilita el acceso a cualquier · El cliente, al comprar las
usuario, que cuente con las auto- multifuncionales o impresoras,
rizaciones necesarias, y creando indica a su proveedor habitual que
flujos de información que alcan- se ponga en contacto con LISVA. Common Europe Annual Congress
zan necesariamente los objetivos El cliente ya ha hablado con
Barcelona, del 17 al 21 de Mayo de 2008
y destinos establecidos. LISVA y quiere un producto soft-
De esta forma se gestiona el ci- ware determinado. LISVA tiene
El evento de formación de Bajo Coste y Alto Valor del mundo “i”
clo de vida de los documentos, ori- más de 40 productos e incluso
ginados por las diferentes aplica- puede desarrollar uno nuevo, si un
ciones, y se hacen accesibles al
personal autorizado de forma se-
cliente lo solicita.
· El proveedor de equipos llega
E ste evento está organizado por usuarios para los usuarios, de
forma que se eliminan las opiniones influidas que pueden
aparecer en eventos de proveedores. También, el hecho de que sea
gura, intuitiva y familiar. a un acuerdo con LISVA.
organizado por usuarios significa que el precio de la inscripción
El EZContent Manager está · El cliente recibe por un lado
puede mantenerse muy bajo ya que se eliminan la mayoría de los
diseñado pensando en las nece- el hardware solicitado inicialmen-
sobrecostes generados por organizaciones comerciales.
sidades de la próxima genera- te al proveedor y de LISVA recibe
· Enfoque: El evento de Common Europe está dedicado al i5/OS
ción de software Enterprise el producto de software gratis.
principalmente en la plataforma System i. Habrá sesiones presen-
Content Manager (ECM) apo- Que algo sea GRATIS resulta
tadas tanto por especialistas de IBM como por desarrolladores in-
yándose en interfases de usua- normalmente bastante increíble y
dependientes y las habrá tanto técnicas como de gestión y direc-
rio basados en navegadores y suele producir desconfianza, pero
ción. También tendremos a usuarios compartiendo sus experiencias
adaptándose a arquitecturas una vez explicado el funciona-
en el mundo real. Todo ello asegura una oferta muy equilibrada en
informáticas flexibles. miento del Programa 2010, el
el congreso.
Al igual que ocurre con EzeDocs 100% de las empresas contactadas
y EZPrint, este producto se comer- se han inscrito. El Programa está • Exposición: El congreso de Common Europe ofrece una amplia
cializa en España por la empresa en proceso de implantación en exposición en la que los delegados podrán encontrar los produc-
American Top Tools, S.L. que des- Europa y Latinoamérica. tos más novedosos y sus implantaciones tecnológicas desarro-
de 1986 está al servicio de la co- Para más información, lladas por empresas del sector.
munidad AS/400 distribuyendo Telf.: 918.039.495 • Duración: El congreso de Common Europe Congress es un evento
aplicaciones y utilidades que com- email: Lisva@Lisva.es de 3 días, que empieza en domingo lo que significa que sólo ne-
plementan y mejoran los AS400, cesita ausentarse de su oficina durante 2 días.
iSeries y System i. • Coste: Como ya se ha dicho antes, Common Europe está en una
Para más información, posición privilegiada ya que, como organización sin ánimo de
Telf.: 933.191.612 lucro que es, puede ofrecer un coste de inscripción sin parangón.
email: att@att.es
Esperamos sinceramente que todos los clientes de IBM se da-
Si como proveedor posee alguna novedad relacionada con el entorno System i - iSeries rán cuenta de que la oferta de Common Eruope es única y decidi-
- AS/400 de IBM, recuerde que en esta sección dispone de un espacio gratuito para darla rán aprovechar esta oportunidad.
a conocer a todos nuestros lectores.
Recuerde, el Congreso de Common Europe (CEC) tendrá lugar
Puede enviar sus notas de prensa a Ser verNEWS mediante correo electrónico
(help400@help400.com), o bien a Gran Vía Corts Catalanes, 715, Entlo 3ª 08013 - del 17 al 21 de Mayo en el hotel AC Barcelona.
Barcelona. Para la inclusión de fotografías o logos, agradeceríamos que las remitieran en
formato electrónico. Para más información, www.comeur.org

www.help400.es MARZO 2008 ServerNEWS 7


opinión por John Ghrist

La web convierte a las empresas


en compañías de software
E
stoy convencido de que todos co- preocupación por ofrecer una GUI que sea intuitiva y atrac-
nocemos en alguna medida el tiva pero no demasiado recargada y por asegurarse de que no
proceso de producción del soft- hay errores importantes ni siquiera en funciones secunda-
ware. Aunque formemos parte rias, pensando siempre por adelantado en lo que incluirá la
de una de las escasas empresas que únicamente utilizan apli- próxima versión, ya no es discrecional.
caciones hechas a medida, al tener que mantener al día las Los ejecutivos de las empresas de software parecen haber
distintas versiones de i5/OS y Windows, la mayoría de noso- nacido pensando así... y esa es la razón de que sigan a flote.
tros nos hemos acabado adaptando a la naturaleza cíclica de Con las aplicaciones web, los demás hemos de empezar a pen-
las nuevas versiones de software y a la idea de que lo nuevo sar de la misma forma.
ha de ser mejor que lo que ya tenemos. Pero si se está Lo único positivo es que todo el mundo, y no sólo los ejecu-
adentrando en el mundo feliz de las aplicaciones basadas en tivos de las empresas de software, está pasando por los mis-
web diseñadas para los clientes de Internet, aunque se trate mos apuros. ¿Y cómo están afrontando este nuevo reto sus
de una simple aplicación para hacer los pedidos de sus pro- homólogos de otras empresas? No muy bien, por lo que pare-
ductos, ¿se ha dado cuenta de qué forma esa actividad está ce. O al menos, esa es la situación que revela un informe re-
convirtiendo a su empresa en una compañía de software de ciente presentado por Interwoven, un proveedor de solucio-
facto? nes de gestión de contenidos, que puede consultarse en
Hasta cierto punto, cualquier empresa que desarrolle pro- www.interwoven.com/capsurvey.
gramas a medida para sus procesos internos ya se enfrenta a Interwoven encuestó a 130 profesionales informáticos de
esta realidad. Cuestiones como seguir el progreso de las nue- todo el mundo. En resumen, los resultados demuestran que
vas versiones, garantizar dentro de lo posible que el software el 77% de los encuestados dicen que los esfuerzos de desarro-
no contiene errores antes de presentárselo a los usuarios in- llo se dedican a proyectos hechos a medida, más de la mitad
ternos, arreglar problemas imprevistos y gestionar distintas piensan que el número de proyectos realizados a medida re-
versiones de la misma aplicación no son nada nuevas en los lacionados con la web se doblarán el año que viene y el 71%
departamentos informáticos de las empresas. está distribuyendo actualizaciones mediante procesos manua-
Pero, naturalmente, lo que diferencia a las aplicaciones web les como FTP, scripts de generación, el envío por correo de
es el público al que van destinadas. En vez de ir dirigidas a discos compactos o la copia de archivos. El 73% cree que sólo
usuarios que trabajan para la misma compañía y que están pueden completar una o dos nuevas aplicaciones web cada
obligados por sus jefes a utilizar ese software, sea bueno o mes y el 60% se siente presionado para crear versiones con
malo, el fin de las aplicaciones web es servir a personas que más frecuencia. Asimismo, el 54% afirma que tienen que ha-
no tienen la obligación de tolerar programas malos. Esto tie- cer diez “correcciones urgentes” cada mes.
ne un gran riesgo y hace que se tenga que poner el acento en
la creación de aplicaciones que se entiendan sin necesidad de ¿Y en nuestro entorno?
recibir ninguna formación adicional y que realmente hagan El desarrollo de aplicaciones web en general todavía no avanza
todo lo que se supone que deben hacer, correctamente y des- a un ritmo tan frenético en la mayoría de empresas que tra-
de la primera versión. Y eso sitúa al desarrollo de aplicacio- bajan con System i, pero nuestra plataforma no se libra de
nes web en la misma liga que la producción de productos de esa necesidad. Cuando surge, la intensidad es incluso mayor
software comerciales. Una aplicación web tiene que funcio- que las presiones que ya acompañan al desarrollo interno de
nar bien porque ninguna circular del presidente de la empre- software a medida. Las cuestiones planteadas por este infor-
sa puede hacer que todos los usuarios tengan que aguantar me deberían hacer reflexionar a los directores de desarrollo
algo que no se aguanta. Además, las aplicaciones web forman de software que ven la necesidad de que su empresa tenga
parte de la imagen pública de la empresa, como si se estuvie- una presencia más dinámica en la Red. Lo que parece claro
ra vendiendo al público. es que en el año 2008 va a ser inevitable prestar más aten-
En cuanto se entra en la esfera de las aplicaciones web, no ción a los procedimientos para crear aplicaciones web. E in-
sólo se está compitiendo con la competencia de toda la vida. En tentar conseguir algo de inspiración en base a la experiencia
cierto modo se está compitiendo con todos los sitios web del mundo de los proveedores de productos genéricos de software no es
porque los clientes compararán, al menos de forma subconscien- una idea descabellada. ■
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 John Ghrist es redactor de la sección de productos de System iNEWS

8 ServerNEWS MARZO 2008 www.help400.es


www.help400.es MARZO 2008 ServerNEWS 9
Recopilación y documentación d
Descubra cómo conseguir requisitos de los usuarios claros, concisos, fáciles d
por Russ Bartlett

M
uchos de nosotros conocemos una viñeta en que es que el comprador no conseguirá la casa de sus sueños. La
se ve una habitación llena de programadores verdad es que nadie se construiría una casa de esta manera
trabajando en sus terminales. El encargado de- y, sin embargo, en el mundo de la informática he visto desa-
clara mientras sale de la habitación: “Voy a rrollar sistemas enteros de forma parecida. A menudo, espe-
averiguar cuáles son los requisitos de los usua- ramos que los usuarios tengan claros todos los requisitos antes
rios... vosotros empezad a programar”. En la década de 1960 de crear el sistema. Pero lo normal es que no los conozcan
y parte de la de 1970, este “método” solía ser el más habitual. todos al principio del ciclo vital del proyecto y, en ocasiones,
Pero afortunadamente hoy en día esta técnica sólo se usa en puede que esto sea así hasta que el sistema esté en funciona-
unos pocos departamentos de informática. miento. La complicación aumenta en un modelo de desarro-
Lo que sigue siendo habitual, es tratar la recopilación, do- llo por etapas o en cascada ya que en él la fase de obtención
cumentación y análisis de los requisitos de los usuarios de de requisitos aparece como lineal, aunque no es un proceso
manera informal. Teniendo en cuenta que los requisitos de estrictamente lineal. Variaciones posteriores de modelos de
los usuarios son el propósito de la iniciativa –el proyecto– proyectos, como los métodos ágiles, reconocen este hecho y
deberíamos prestar especial atención a la recopilación, docu- tratan los proyectos, en particular la recopilación de requisi-
mentación, análisis y gestión de aquéllos. La principal razón tos, como un proceso iterativo.
por la que fracasa un proyecto es la mala definición de los
requisitos de los usuarios. Para asegurarnos de que nuestros Obtención de requisitos de calidad
proyectos tienen éxito, en este artículo veremos cómo usar Ahora vamos a explorar algunas formas de obtener requisi-
algunos métodos existentes para obtener requisitos claros, tos de mayor calidad. Nos centraremos en el método tradicio-
concisos, fáciles de cuantificar y comprobar. 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ón
Salirse de la rutina de prototipos. Pero, antes que nada, ¿qué es exactamente un
En este negocio, nos cuesta salirnos de la rutina y, para la requisito de software?
mayoría de nosotros, ésta consiste probablemente en crear El estándar 612.12.1990 del IEEE describe un requisito de
diseños técnicos y escribir código. Al fin y al cabo, lo realmen- software como:
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- • una condición o función que necesita un usuario para resol-
mos algo menos cómodos, así que solemos prestar menos ver un problema o lograr un objetivo
atención y hacemos las tareas apresuradamente. Para ilus- • una condición o función que debe satisfacer o procesar un
trar esta idea, estableceré una analogía: la de encargar la sistema o el componente de un sistema para cumplir un
construcción de una casa nueva. contrato o ser conforme a un estándar, especificación u otro
En esta situación hipotética, tenemos por un lado al con- documento impuesto formalmente
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 le En otras palabras, un requisito debe definir lo que el siste-
plantee los requisitos para construir la casa. El contratista, ma ha de hacer sin explicar cómo se ha de hacer. Este es un
libreta en ristre, aguanta toda la sesión de recopilación de error habitual. Introducir el “cómo” en este momento limita
requisitos. El comprador piensa que está bien preparado y las opciones. Los requisitos no deben introducirse hasta la
ha hecho una lista de algunos de los criterios básicos que ha fase de especificación de los requisitos del sistema (más ade-
de satisfacer la casa pero no está tan seguro de otros. Mien- lante explicaré más detalles sobre el particular).
tras negocia con el comprador, el contratista usa términos Antes de ver cómo documentar los requisitos, permítame
técnicos confusos y pide al comprador que confirme todos los definir algunos términos con los que puede que no esté fami-
requisitos antes de continuar. El comprador siente que la toma liarizado. Estos términos constituyen las etapas principales
de decisiones es demasiado precipitada y no es capaz de del diseño de los requisitos de software.
proporcionar todos los detalles necesarios, pero da por su- Adquisición de los requisitos. Define el proceso gracias
puesto que el contratista ha hecho esto muchas veces antes y al cual las partes interesadas proporcionan la información
que todo saldrá bien. necesaria para desarrollar y documentar los requisitos. En
Si nos imaginamos cuál será el resultado de este caso hipo- pocas palabras, es el proceso por el que se averiguan y re-
tético, todos llegaremos a la conclusión de que lo más probable únen los requisitos. Esto requiere que el analista de sistemas

10 ServerNEWS MARZO 2008 www.help400.es


de requisitos
s de cuantificar y de probar

no simplemente anote pasivamente los requisitos, sino que puede hacerse de forma gradual ordenada-
debe profundizar para entender detalladamente los proble- mente y de forma interativa. Esto no sólo
mas y necesidades de los usuarios. Los requisitos se clasifi- se aplica a la “fase” de especificación de
can a grandes rasgos en dos tipos: funcionales y no funciona- requisitos de los sistemas del proyec-
les (se describen en el apartado siguiente). Además, como parte to, sino también a todo el proyecto en
de este proceso, también se define el alcance del sistema y los su conjunto.
objetivos del proyecto. Todo este proceso, así como las fa-
ses posteriores, puede ser iterativo a lo largo de todo el
ciclo 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 usando
varias técnicas de creación de modelos, como por ejem-
plo, casos de uso, lenguajes unificados de creación de
modelos (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 partes
interesadas y de hacer concesiones. Básicamente, ne-
cesitamos priorizar los requisitos y entender cuá-
les son obligatorios y cuáles no. En esta etapa
podemos eliminar algunos requisitos. La razón
es sencilla: puede que no tengamos tiempo, recur-
sos o presupuesto suficiente para satisfacer todos
los requisitos de los interesados. Los requisitos se
intercambian 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 la
prá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 que
se usarán para crear las especificaciones del sistema (ense-
guida veremos cómo hacerlo).
Validación de los requisitos. Aquí es donde verificamos y
validamos los requisitos llevando a cabo revisiones o definiendo
prototipos. El método que utilizamos se usará en la prueba de
aceptación del usuario. Nuestro objetivo es asegurarnos de la
exactitud con que se han llevado aplicado los requisitos de
los usuarios, uno por uno o en su conjunto.
Aunque he clasificado los pasos anteriores con
fines informativos, en realidad, la adquisición,
análisis, especificación y validación de los requisitos

www.help400.es MARZO
MARZO 2008 ServerNEWS 11
2008 ServerNEWS 11
■ EN PORTADA
FIGURA 1
Ejemplo de esbozo de documentación estándar del IEEE
Ahora vamos a ver con más detalle cómo se realiza la espe-
cificación de los requisitos. 1. Introducción
1.1. Finalidad: ofrece un resumen del objetivo del documen-
Requisitos funcionales y no funcionales to.
Por regla general, se considera que un requisito es o bien 1.2. Alcance: describe el producto que va a desarrollarse y lo
funcional o bien no funcional. Los requisitos funcionales de- que está dentro y fuera de su alcance. Aquí se puede
finen lo que el sistema debe hacer desde el punto de vista del usar un diagrama de contexto (diagrama de flujo de
usuario para cumplir los objetivos que se le exigen. Los re- datos de nivel superior para mostrar las relaciones con
quisitos no funcionales pueden subclasificarse en restriccio- otras entidades y los límites del sistema).
nes y cualidades. Las restricciones imponen límites al diseño 1.3. Definiciones, acrónimos y abreviaciones: describe todos
o a las funciones. Las cualidades son propiedades o caracte- los términos usados en el documento.
rísticas que interesan a los usuarios (como la facilidad de 1.4. Referencias: proporciona referencias a otros documen-
uso, la fiabilidad, la seguridad, la escalabilidad y la tos que usados para compilar este documento.
configurabilidad) y pueden contribuir a que el sistema resul- 1.5. Visiones generales: ofrece una visión general del domi-
te satisfactorio globalmente. nio del problema.
Un requisito debe ser: 2. Descripción general
2.1. Perspectiva del producto: describe de qué forma el
• Conciso: debe definirse en términos claros y concisos. producto que va a desarrollarse se relaciona con otros
• Correcto: debe describir con precisión cuáles son las cuali- productos existentes, si forma parte de un sistema
dades previstas del sistema. mayor o si será autónomo.
• Inequívoco: debe definirse en términos claros, comprensibles 2.2. Funciones del producto: describe en términos funciona-
(sólo debe haber una interpretación del propósito) les qué hará el producto que se va a desarrollar
• Verificable: debe ser verificable desde el punto de vista de 2.3. Características del usuario: describe las características
la comprobabilidad (por ejemplo, en vez de explicar que el especiales del sistema que pueden requerir formación o
sistema debe permitir recuperar rápidamente la informa- experiencia especiales por parte de los usuarios
ción del catálogo, un requisito mejor afirmaría que el siste- 2.4. Restricciones generales: enumera las restricciones que
ma debe permitir la recuperación de información del catálogo influirán en el diseño. Éstas pueden ser normativas
en dos segundos, lo que es comprobable desde el punto de vis- gubernamentales, obligaciones relativas a la seguridad, el
ta de la prueba del sistema y de la de aceptación del usuario). hardware, etcétera.
2.5. Suposiciones y dependencias: describe suposiciones,
Los requisitos también deben ser factibles desde un punto como por ejemplo el crecimiento previsto y las posibili-
de vista técnico y comercial. dades de que la solución satisfaga las necesidades de la
Una vez reunidos todos los requisitos, hemos de realizar empresa, o si la solución dependerá de que existan
más comprobaciones sobre el grupo de requisitos en su con- otros sistemas y que estén en marcha.
junto. Este grupo debe satisfacer “las tres Ces”: 3. Requisitos concretos: da detalles de todos los requisitos
y proporciona documentación de soporte, como casos
• Conciso. Los requisitos en su totalidad deben describir de de uso o diagramas de flujo de datos.
forma concisa el sistema que se va a construir. Si hay de-
masiados requisitos, se pueden introducir errores e in-
coherencias. obviamente dependerá de cosas como el hardware, el soft-
• Completo. En su conjunto, los requisitos deben describir de ware y el número de cuentas al que se acceda durante un
forma adecuada todo el sistema que se va a construir. periodo de tiempo dado. Además, el término “detalles de la
• Coherente. Los requisitos individuales deben ser compati- cuenta” debe entenderse perfectamente (por ejemplo, el nom-
bles con los requisitos en su conjunto. No debe haber in- bre del cliente, el saldo de la cuenta y la fecha de la última
coherencias entre requisitos. Si se diera el caso, revise y compra). Un análisis posterior puede desvelar requisitos adi-
resuelva las discrepancias con los usuarios. cionales, a los que se denomina “requisitos derivados” porque
dependen de un requisito principal.
Ahora vamos a ver cómo documentar los requisitos de los Asimismo, evite el uso de la conjunción “o” al definir un
usuarios para eliminar cualquier ambigüedad. requisito, ya que puede conducir a interpretaciones erróneas.
Por ejemplo, pensemos en esta frase: La consulta de la cuen-
Documentación de los requisitos ta del cliente debe mostrar detalles del saldo o el resumen de
En primer lugar, redáctelos en estilo afirmativo, usando la cuenta. Este tipo de frases dejan abierta su interpretación
términos como “debe” o “ha de”. Por ejemplo, el sistema debe y pueden acabar convertidas en funciones incorrectas del sis-
ser capaz de responder con detalles de la cuenta en dos se- tema. Un diseñador puede creer que esta frase significa que
gundos a todas las peticiones de los usuarios. Que el tiempo lo que hay que hacer es mostrar o bien lo uno o bien lo otro,
de respuesta de dos segundos sea factible es otra cuestión y pero si tenemos información tanto del saldo como del resumen

12 ServerNEWS MARZO 2008 www.help400.es


Requisitos

consejo: su proyecto seguirá necesitando pasar por una etapa


Comprobación Documentación de definición de requisitos. Debe contemplar la definición de
del prototipo de los requisitos prototipos como un medio de refinar los requisitos de los usua-
rios. En la Figura 2 se ilustra el modelo del ciclo vital cuan-
Diseño del do se utilizan prototipos.
prototipo
A menudo, la definición de prototipos se asocia al uso de
lenguajes 4GL. Estos lenguajes fueron bastante populares
Creación del en la década de 1980, aunque en la década siguiente dismi-
prototipo
nuyó el interés por ellos. Algunas organizaciones han tenido
mucho éxito usando lenguajes 4GL para desarrollar aplica-
ciones mientras que a otras no les ha sido tan útil. No obs-
FIGURA 2 tante, en la actualidad, la herramienta de definición de pro-
Utilización de prototipos para refinar los requisitos totipos elegida puede ser una herramienta de desarrollo
rápido de aplicaciones (RAD) o, en algunos casos, algo tan
simple como un paquete de Post-It o un rotafolio (considera-
de la cuenta del cliente, ¿debemos mostrar ambos datos o sólo das soluciones de “bajo presupuesto”).
el que escojamos? En mi caso he tenido mucho éxito usando prototipos; los
Otro problema habitual es que a veces el redactor de los usuarios pueden entender los prototipos e interactuar con
requisitos hace su propia interpretación de éstos e introduce ellos mejor que con otros métodos más convencionales, como
una restricción innecesaria. Supongamos, por ejemplo, el re- las especificaciones funcionales o las especificaciones de re-
quisito siguiente: El sistema debe almacenar detalles del quisitos del sistema. La definición de prototipos también fun-
maestro de artículos en un archivo de la base de datos DB2 ciona muy bien si se necesita poner a prueba un concepto o
UDB para poder recuperar rápidamente información del capacidad. Además, cuando los usuarios no tienen claros los
maestro de productos. Al introducir esta restricción innece- requisitos, utilizar un modelo del ciclo vital en forma de pro-
saria limitamos nuestras opciones de diseño posteriores. El totipo es una buena estrategia para ayudarles a aclarar sus
requisito real es la recuperación rápida de información del necesidades.
producto y, por si aún no lo ha notado, esto nos lleva al si- En algunos casos, he realizado proyectos en los que la he-
guiente problema: la verificabilidad. rramienta elegida para crear el prototipo era una herramienta
Evite los términos imprecisos que son difíciles de verificar. de PC. En un caso concreto, mi cliente no tenía herramientas
¿Qué se entiende por “recuperación rápida”? ¿Basta con dos de desarrollo rápido de aplicaciones para el System i pero
minutos o debe realizarse en una fracción de segundo? Otros tenía conocimientos de FoxPro. Usé el prototipo para probar
términos del mismo género son “robusto”, “ergonómico”, “fá- una función conceptual y, aunque la aplicación final iba a
cil de usar”, “intuitivo”, “alta capacidad”, “bajo mantenimien- estar basada en el System i, acordamos que conceptualmente
to” y “flexible”. Todos ellos pueden interpretarse libremente podíamos construir un modelo de trabajo. Tenga presente que
y deben cambiarse por requisitos cuantitativos. Por ejemplo, cuando se crea un modelo complejo debe determinarse si hay
si el requisito dice que el sistema debe proporcionar una fun- que adornar el prototipo y entregarlo como producto final o bien
ción de consulta flexible, será necesario un análisis posterior. si hay que considerarlo como algo desechable, como era el caso
El usuario puede querer decir que ha de poder ejecutar la del prototipo desarrollado en FoxPro. Tenga en cuenta que am-
función de consulta existente desde la función de manteni- bas estrategias tienen consecuencias. Muchas veces, cuando a
miento del maestro de artículos o algo mucho más complejo. los usuarios se les presenta un prototipo, presuponen que es el
Resista la tentación de escribir los requisitos de otra forma producto acabado, aunque se les haya dicho lo contrario.
que no sea con una o dos frases sencillas. Y para evitar confu-
siones, no use expresiones como “de lo contrario” o “si no”. Adaptación a los cambios
Después de haber reunido los requisitos de los usuarios, A lo largo de esta última década ha ido aumentando el inte-
tendremos que documentarlos. Mi recomendación es que adop- rés por huir del ubicuo modelo del proceso «en cascada». En
te el estándar 930-1998 del IEEE. El IEEE (ieee.org) es el la actualidad, los requisitos de las empresas y de los produc-
principal organismo del sector de la informática encargado tos cambian a un ritmo cada vez mayor y, por ende, también
de establecer y mantener estándares. En la Figura 1 se lo hacen los requisitos de los usuarios. Los informáticos he-
muestra un esbozo basado en un antiguo estándar del IEEE mos de reconocer este hecho y adaptarnos en consecuencia.
que al mismo tiempo es un ejemplo de contenido. El nivel y La informática sigue evolucionando por lo que nosotros tam-
profundidad de la documentación generada depende del sis- bién debemos hacerlo. ■
tema que se va a desarrollar.
Russ Bartlett trabaja desde hace 39 años en el mundo de la informática.
Definición de prototipos Posee un certificado CSDP del IEEE y tiene experiencia en todos los campos del
desarrollo de sistemas. Ha sido el responsable de implantar sistemas en
Ningún artículo que trate sobre los requisitos estaría com- muchas organizaciones, incluyendo soluciones ERP en empresas de la lista
pleto sin incluir los prototipos. Pero antes que nada, un Fortune 500.

www.help400.es MARZO 2008 ServerNEWS 13


Cómo decidirse por una solución
para el desarrollo de aplicaciones
por Chris Maxcer

E
l verano pasado asistí a una lluvia de ideas de aprendizaje y exigen invertir en una metodología para el
desarrollo de aplicaciones. En el mundo del System i estas
de un profesional del entorno sobre el de-
soluciones también suelen ser de distintos tipos. Por ejemplo,
sarrollo de aplicaciones en el mundo actual muchos proveedores de soluciones tienen más de un paquete
de los System i. No recuerdo muy bien cuál de desarrollo de aplicaciones dependiendo de las necesidades
concretas de cada empresa, de modo que las etiquetas pue-
era el contexto, pero me quedé con una de sus ideas:
den ser doblemente complicadas. A efectos prácticos las lla-
“Me pregunto si, para equipos de desarrollo peque- maré soluciones para el desarrollo de aplicaciones.
ños, no sería mejor adquirir una herramienta de
desarrollo de aplicaciones en vez de intentar apren- De vuelta al asunto que nos ocupa
Regresando a aquella conversación, mi contertulio compar-
der nuevos lenguajes y técnicas”. tía su experiencia sobre organizaciones que han podido asu-
Se refería a usar juegos de herramientas que generan códi- mir más trabajo de desarrollo al confiar en una herramienta
go en lugar de herramientas que básicamente mejoran la efi- que les ha servido de base para la modernización de sus apli-
cacia de la programación manual. El término de la vieja caciones, por así decirlo, con la importante ventaja adicional
escuela es CASE, siglas de Computer-Aided Software Engi- de mejorar la productividad.
neering o Ingeniería del software asistida por No obstante, la premisa original del comentario que recuer-
ordenador y aunque el nombre es lo bastante do del verano pasado, se basaba más en la idea de que algu-
genérico como para seguir teniendo impor- nas organizaciones que básicamente utilizan plataformas
tancia hoy en día, no lo había oído desde System 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-
Los programadores pueden invertir plemente se mantienen a flote pero
en formación para adquirir nuevos acabarán cansándose. Con suerte, en
ese momento pasará el barco de su ju-
conocimientos o bien adquirir una bilación; pero lo más probable es que
solución completa y robusta para el se vean nadando para huir de los tibu-
rones o en un bar de la playa tomando
desarrollo de aplicaciones. margaritas, situaciones que pueden
obligarles a actuar para usar lengua-
hacía mucho tiempo. Existen herra- jes y técnicas de programación más modernas o más conoci-
mientas parecidas en la categoría das con el fin de lograr su objetivo, bien sea disfrutar de las
RAD (Rapid Application Development). margaritas o escapar de los tiburones.
También se trata de un término global, pero De un modo u otro, esos programadores flotantes pueden
no tiene las connotaciones negativas asocia- invertir en formación para adquirir nuevos conocimientos o
das con las viejas herramientas CASE. No obs- bien adquirir una solución completa y robusta para el desa-
tante, RAD incluye una filosofía, dependiendo de lo rrollo de aplicaciones. Las dos opciones tienen ventajas e in-
riguroso que se quiera ser, del desarrollo iterativo basado en convenientes, al menos dos escuelas distintas de pensamien-
prototipos. Los actuales entornos de desarrollo integrado to y están asociadas a la desagradable idea de que si los
(IDE) conforman otro juego de herramientas, éste más próxi- programadores no hacen nada, con suerte acabarán perdién-
mo al espíritu de la programación manual y generalmente dose las margaritas y, en el peor de los casos, desmembrados
acompañado de un control más directo sobre la propia crea- por los tiburones.
ción del código.
No quiero empantanarme en una infructuosa exploración Los cimientos de la resistencia
de términos y etiquetas. Lo único que pretendo es hablar de Algunos desarrolladores del System i han empezado a poner
soluciones comerciales, que tienen una determinada curva los cimientos de la resistencia y profesionalmente suelen

14 ServerNEWS MARZO 2008 www.help400.es


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

proceder de dos campos: los que se han criado con RPG y su 5. Las aplicaciones basadas en Windows parecen bastante
integración con el AS/400, y los que conocen diversas técni- baratas y los partidarios de Windows del grupo están pre-
cas de programación, pueden utilizar varios lenguajes y cons- parados y deseando ampliar su nivel de responsabilidad...
tantemente están aprendiendo cosas nuevas. Todos ellos sue- o puede que la empresa subcontrate el trabajo que hay que
len creer que programarlo todo a mano es mejor porque se hacer en Windows.
crea un código optimizado que es más fácil de mantener. 6. En algún momento, la organización acaba escindida entre
Además, no quieren que una solución para el desarrollo de el grupo del System i y, por ejemplo, el grupo .NET.
aplicaciones ponga a su compañía entre la espada y la pared. 7. Los profesionales del System i se dedican a dar soporte y
También puede que les preocupe su currículo y que se pre- mantener el código heredado mientras que otros desarro-
gunten si el uso de una solución para el desarrollo de apli- lladores de aplicaciones se encargan de crear las nuevas
caciones limitará sus posibilidades de conseguir un puesto aplicaciones.
de trabajo.
En el mundo del System i, también hay una facción radical En este contexto, la inacción de los programadores y de los
partidaria de IBM: los programadores que sólo utilizan he- responsables del System i lleva a quedarse atrapado en el
rramientas y soluciones de IBM. Si no es de IBM, ni siquiera código existente, situación de la que es difícil salir. Esto es
cabe plantearse la posibilidad. En este mismo sentido, algu- malo para los amantes del System i y horrible para el
nos programadores y responsables se ven entorpecidos por ecosistema de la plataforma.
los 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 la Capacidad de comercialización
incluye de serie. Sí, el mundo que nos rodea es implacable. Dada la enorme
cantidad de código escrito en RPG que existe hoy en día, la
Tantas tecnologías división System i de IBM sin duda podría desaparecer de re-
El número de lenguajes y métodos posibles que pueden usar- pente y aún así muchos expertos en RPG todavía podría vivir
se para lograr el resultado buscado puede ser apabullante. bien de RPG hasta su jubilación, aunque tuvieran que hacerse
RPG IV, Java, JavaScript, .NET, PHP, XML, CGIDEV2, HTML, consultores y pasarse la vida viajando por todo el mundo.
CSS, Python, Ruby y Groovy son sólo unas cuantas posibili- Seguro que algunos se sentirían impelidos hacia soluciones
dades. ¿Qué sucede si una empresa invierte durante meses basadas en la conectividad y SOA. ¿Cuál es la respuesta?
en formación para acabar descubriendo que la solución que ¿Aprender a usar una solución centrada en una herramienta
se está estudiando no es adecuada para la organización? ¿En concreta limita a los programadores?
cuántos departamentos informáticos en los que se usa RPG No. Mientras los programadores conozcan sus puntos fuer-
se ha intentado dar el salto a Java? ¿En cuántos no lo han tes, las claves para tener un trabajo ahora y en el futuro,
conseguido? Y, puede que lo más importante, ¿En cuántos de- progresarán. “Su auténtica habilidad es que son capaces de
partamentos que trabajan con RPG han tenido noticias de equiparar la tecnología con las necesidades de la empresa”,
otros departamentos que hayan intentado migrar a Java, se señala Greg Best, vicepresidente de ventas de Lansa. “Los
han enterado de su fracaso y han acabado abandonando las más veteranos pueden resolver problemas de la empresa y
nuevas tácticas? tienen valor en el mercado, pero no porque conozcan Lansa o
una herramienta. Conocen el negocio y pueden aplicar la tec-
Los siete pasos hacia un futuro sin salida nología al problema”.
El mayor riesgo está en la posibilidad de volverse obsoleto De forma parecida, los proveedores conocen casos de pro-
debido a la inacción. Así es como el letargo se está instalando gramadores o responsables que utilizaban ciertas herra-
en algunas organizaciones: mientas en una empresa, cambiaron de trabajo, fueron a
una organización nueva equipada con System i y, con el
1. Las aplicaciones del negocio (ERP y las desarrolladas in- tiempo, impusieron las herramientas que habían utilizan-
ternamente) se ejecutan en el System i. do antes.
2. Los programadores y responsables del System i no ponen Imagine cómo es esta persona. En 1998 aprende HTML y
al día sus conocimientos y adquieren herramientas de ter- se convierte en un experto programándolo a mano. Usando
ceros para desarrollar componentes basados en GUI y apli- tablas y marcos, se convierte en una impresionante fábrica
caciones nuevas de apariencia moderna (portales, BI, B2B de crear páginas web en solitario capaz de utilizar un juego
o incluso aplicaciones concretas, clientes enriquecidos u limitado de herramientas para crear páginas extraordina-
otras) para satisfacer necesidades básicas de la empresa. rias en las que publicar un montón de información de la em-
3. Los directivos ven que el grupo de desarrolladores del presa. Entonces, otros desarrolladores web empiezan a usar
System i es el responsable de las aplicaciones de pantalla JavaScript, XML y bases de datos para crear páginas web
verdes y poco más. dinámicas. En lugar de aprender esas nuevas tecnologías –o
4. La dirección cree que ni el System i ni el equipo de desa- incluso las herramientas que permiten automatizar la mayo-
rrollo del “i” son capaces de desenvolverse bien con aplica- ría de las tareas de programación– se atrinchera diciendo
ciones GUI modernas. que “Soy un programador de HTML. Yo no utilizo JavaScript.”

16 ServerNEWS MARZO 2008 www.help400.es


¿Se imagina lo que esta persona está haciendo en el mundo ejemplo es mrc-Productivity Series, que crea aplicaciones web
Web 2.0? basadas en Java controladas por los datos sin necesidad de
escribir código. De cualquier modo, aparte de la decisión bá-
Curvas de aprendizaje sica sobre el código, mrc ofrece una mejora en la productivi-
La mayoría de programadores dan gran importancia a las dad de un orden de magnitud en comparación con la progra-
técnicas de programación manuales y a comprender realmen- mación manual.
te lo que hace el código y cómo se consigue un determinado Si los planes de desarrollo de una empresa van con retraso
resultado. El problema es que solamente unos pocos pueden y sus posibilidades de contratar a más programadores para
seguir el ritmo de la tecnología. Y no sólo se trata de los len- acabar antes el trabajo son escasas, adquirir una herramien-
guajes de programación; también están los servidores de apli- ta para aumentar la productividad permite cambiar las re-
caciones, las bases de datos y las estrategias arquitectónicas glas del juego. La empresa pasará de no tener aplicaciones a
en su conjunto. tener alguna aplicación.
“La gran ventaja [de las soluciones para el desarrollo de “Estamos hablando de un incremento de la productividad
aplicaciones] es que además de proporcionar la estrategia de de aproximadamente un orden de magnitud”, apunta Joe
programación, también ofrecen metodologías arquitectónicas”, Stangarone, presidente de mrc. “Cuando se reduce el coste de
observa Don Denoncourt, redactor técnico de System iNEWS desarrollar aplicaciones al reducir el tiempo necesario, la de-
y consultor de CAS Severn, Inc. “Sin esto, además de escoger manda de aplicaciones crece casi exponencialmente”.
RPG, Java, PHP, etcétera, tendría que seleccionar una arqui- ¿Más demanda? Eso es lo último que necesita su equipo de
tectura y un juego de herramientas de desarrollo, y en el de- desarrollo, ¿verdad? Pues no. Una mayor demanda combina-
partamento puede que no tengan ni tiempo ni conocimientos da con un buen control que garantice que las aplicaciones
para hacerlo”. aportan valor a la empresa, dará como resultado una organi-
En general, la curva de aprendizaje para ser eficaz con una zación de desarrolladores que beneficiará a la compañía. Na-
solución para el desarrollo de aplicaciones siempre será más turalmente, la gente que disfruta manteniendo aplicaciones
corta que averiguar cómo hacerlo a mano. durante todo el día, alucinará con las soluciones para el de-
Duncan Kenzie, director técnico de BCD, va al grano: “Puede sarrollo de aplicaciones.
esperarse que los desarrolladores, si tienen experiencia, se
pongan al día en dos semanas. Si no tienen tanta experien- Reductores de complejidad
cia, les llevará dos meses”. El promedio, según Kenzie –al “Muchos de los programadores que empezaron su oficio apren-
menos para las herramientas de BCD– es de un mes. diendo RPG en una plataforma que ya disponía de base de
Otros proveedores de soluciones para el desarrollo de apli- datos, lo que significa que aprendieron con una buena base
caciones señalan curvas de aprendizaje similares, aunque si- sobre la que crear sus aplicaciones, ahora se
guen variando mucho dependiendo de la herramienta, la ex- encuentran en este mundo web, en el que
periencia del programador y el interés que tenga en aprender, de repente los datos provienen de dis-
y la complejidad de las aplicaciones que se van a crear. tintas bases de datos y no tratan con
un ordenador sino con una red”,
Las ventajas comenta Stangarone.
Cada solución para el desarrollo de aplicaciones tiene distin- “Se trata de un mun-
tas ventajas y desventajas, en función de lo que quiera conse- do completamente
guir el grupo de desarrollo del System i. Algunas soluciones distinto, pero esas
crean código en Java y otras en RPG o PHP o una combina- personas saben cómo
ción de CSS, JavaScript, HTML y XML. Las opciones varían desarrollar aplicaciones
y las soluciones permiten que los desarrolladores trabajen y pueden elegir entre
íntimamente con el código u ocultarlo por completo. tomarse un par de
“Lo que todas estas herramientas han hecho es reunir un años para aprender
buen puñado de los problemas más habituales con que nos Java o PHP o hacer lo
encontramos a lo largo del proceso de desarrollo de una apli- que realmente se les da
cación y encapsularlos en un nivel más alto para evitarnos bien con algo como m-
hacer el trabajo pesado y repetitivo”, explica Kenzie. Power y desarrollar cosas
La ventaja tradicional de las soluciones para el desarrollo diez veces más deprisa de lo
de aplicaciones es la mejora de la productividad. Las empre- que tardaría alguien que lo
sas que inician grandes proyectos suelen valorar el uso de esté haciendo [a mano] con Java
herramientas para ayudarlas a terminar antes el trabajo que o PHP”, dice.
haciéndolo a mano, en cuyo caso, la recuperación de la inver- Best, de Lansa, señala que
sión puede calcularse en función del número de desarrolla- una de las principales ven-
dores y el tiempo previsto para finalizar el trabajo manual. tajas de una buena solu-
Éste sigue siendo un factor a tener en cuenta hoy en día. Un ción para el desarrollo

www.help400.es MARZO
MARZO 2008 ServerNEWS 17
2008 ServerNEWS 17
■ EN PORTADA

de aplicaciones es que protege a los desarrolladores no sólo código HTML, CSS y JavaScript específico de la web. Al mis-
del mundanal y repetitivo proceso de programación, sino tam- mo tiempo, Profound Logic tiene una solución para clientes
bién de las conexiones subyacentes y de las actualizaciones y interesados únicamente en desarrollar aplicaciones para la
estándares tecnológicos nuevos. web lo más rápidamente posible y que quieren tener el me-
“Intentamos simplificar las cosas de modo que nosotros nos nor contacto posible con cualquier cosa nueva... ni siquiera
encargamos de las cuestiones relativas a la tecnologíay el pro- HTML.
gramador se preocupa de los problemas relacionados con la
empresa”, afirma Best. Una buena solución para el desarrollo Los últimos temores
de aplicaciones, apostilla Best, puede convertirse en un “se- El último gran temor al que se enfrentan los departamentos
guro tecnológico” para la organización. informáticos ante una solución para el desarrollo de aplica-
ciones de un ISV es que la empresa con la que trabajan des-
¿Estándares mejores? aparezca del mercado o la vendan. La forma de sobrellevarlo
Resulta que no existe una buena correlación entre el número es asegurarse de que todas las licencias sobre el código y las
de desarrolladores de una organización y el número adecuado herramientas cubren el doble de todo lo que se imagine que
para la venta de una solución para el desarrollo de aplicacio- vaya a necesitar jamás. Los contratos de mantenimiento tam-
nes eficaz. Aunque el promedio de desarrolladores activos en bién deben incluir salidas claras en caso de que al proveedor
organizaciones basadas en System i parece ser de tres, cuatro lo absorba otra compañía y el resultado no sea de nuestro
o cinco, los proveedores de soluciones para desarrollar aplica- agrado. Recuerde que esto es sólo un negocio y todo se puede
ciones del mundo del System i fácilmente pueden tener clien- negociar. Si no le gustan los términos, déjelo correr. Hay mu-
tes que cuentan con un solo desarrollador o con varias doce- chas otras soluciones razonables.
nas. ¿Qué me dice de IBM? La solución EGL de la compañía
Si se dispone de un cierto número de desarrolladores, una lleva merodeando por la periferia del mundo del System i un
solución para el desarrollo de aplicaciones tiene ventajas adi- par de años. ¿Puede que una solución de IBM, respaldada
cionales. por una compañía tan grande que nadie puede comprarla y
“Una de las cosas que ofrecen las aplicaciones generadas es que es tan rica como para tener su propia isla en Second
la coherencia a la hora de implantar y reforzar estándares de Life, sea fundamentalmente mejor que la solución de un ISV?
programación en la organización”, menciona Stangarone de No tan rápido. IBM puede que no vaya a dejarle en la esta-
mrc. Programando a mano, con cinco programadores, se ten- cada, pero sus soluciones y soporte a veces sí. “En realidad,
drá cinco implantaciones ligeramente distintas del estándar, IBM cambia de dirección más a menudo que nosotros”, indi-
declara. “Con un generador de código, los estándares se im- ca Kenzie, de BCD.
plantarán exactamente de la misma forma cada vez y se aca-
bará teniendo un código más estándar”, explica. Así que...
¿Cuáles son los indicadores de que su organización necesita
Código ilegible una solución para el desarrollo de aplicaciones? ¿Le interesa
Entre quienes evitan las soluciones para el desarrollo de apli- desarrollar aplicaciones web y de cliente enriquecido? ¿El
caciones, están los que se preocupan por la legibilidad del có- desarrollo de sus aplicaciones va con retraso? ¿Le gustaría
digo. Sin duda, puede que funcione, pero ¿en el futuro será aumentar su capacidad de desarrollar aplicaciones cuanto
posible acceder a ese código para hacer cambios o arreglar antes? ¿Le gustaría que sus desarrolladores entraran en con-
problemas? Además, si sólo puede realizarse el mantenimien- tacto gradualmente con lenguajes y técnicas más conocidos?
to mediante la solución, ¿eso no quiere decir que el proveedor Aunque RPG no está acabado, ¿Le gustaría disponer de una
tiene la sartén por el mango? solución que le permita trabajar con expertos que no conoz-
Sí y no. El mantenimiento, sin duda, sería más fácil con las can RPG? ¿Le gustaría tener la posibilidad de migrar una
herramientas de cualquier proveedor que sin ellas. La mayo- aplicación –ay– a otra plataforma?
ría de los proveedores que existen desde al menos hace media Si ha respondido afirmativamente a alguna de estas pre-
docena de años son muy conscientes del rechazo que provoca guntas, puede que sea el momento de (re)considerar la posi-
este asunto en muchos compradores potenciales: los clientes bilidad de adquirir una solución para el desarrollo de aplica-
quiere estar seguros de que su código sobrevivirá, con o sin el ciones. ■
proveedor, 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 atrapados
y 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 asistentes Chris Maxcer es el redactor de noticias de System iNEWS y está especiali-
que utiliza código escrito en RPG básicamente para controlar zado en escribir sobre temas relacionados con la informática empresarial.

18 ServerNEWS MARZO 2008 www.help400.es


www.help400.es MARZO 2008 ServerNEWS 19
Configurar un entorno seguro para
aplicaciones escritas en PHP
Zend Core para i5/OS tiene opciones para proteger el sistema
por Alan Seiden

G
racias al soporte del popular lenguaje de pro- Mantenga actualizados PHP y las aplicaciones
gramación web PHP, el System i puede ejecutar En cada nueva versión de PHP se mejora la seguridad elimi-
una gran variedad de programas basados en nando vulnerabilidades notificadas por la comunidad de usua-
PHP para la web. Dada la naturaleza abierta de rios. Entre versiones, Zend publica “correcciones urgentes”
Internet, los administradores de sistemas pru- (parches que corrigen errores que pueden comprometer la
dentes que instalen aplicaciones web en el entorno Zend Core seguridad hasta que la versión siguiente esté disponible).
para i5/OS de IBM querrán tener garantizada la seguridad. Shlomo Vanunu, de Zend, recomienda que los administra-
¿Qué precauciones han de adoptar? dores se mantengan al día configurando actualizaciones au-
Aunque la arquitectura del System i automáticamente nos tomáticas desde la Zend Network, que aplicará parches y ac-
protege contra desbordamientos de buffers, virus y gusanos, tualizaciones según se necesite para mantener la seguridad.
y el PHP de Zend Core ofrece protecciones adicionales a las Vanunu, consultor del laboratorio de Zend en Ramat-Gan (Is-
del lenguaje PHP genérico, debería protegerse contra otros rael) y jefe de equipo del departamento de Servicios mundia-
peligros, como por ejemplo: les para i5 de Zend, señala que IBM ha dispuesto que todos
los clientes de System i puedan conseguir estas actualizacio-
• propagación de virus a los navegadores (aunque el sitio en
nes mediante la suscripción gratuita al soporte Zend Network
sí sea inmune)
Silver Support.
• “sniffing” (robo) de contraseñas
Estos son los pasos que hay que dar para configurar las
• ejecución no autorizada de aplicaciones
actuaciones automáticas:
• revelación o modificación de datos privados
1. Registrarse en la Zend Network (zend.com/network). Pue-
Algunas de estas medidas de protección requieren técnicas
de que ya lo haya hecho si ha descargado Zend Core de la
de programación específicas de PHP, que trataré en un próxi-
Red.
mo artículo. En éste explicaré cómo aumentar la protección
2. Desde una línea de mandatos del System i, escriba lo si-
desde el propio entorno PHP.
guiente: GO ZENDCORE/ZCMENU
Nota: la seguridad web es un campo que evoluciona muy
3. Seleccione la opción de menú 2: Update via Zend Network
deprisa. Todas las recomendaciones que expongo aquí se con-
(Actualizar mediante la Zend Network).
sideran fiables en Zend Core para i5/OS versión 2.0.1 (es de-
4. Desde el menú Update (Actualizar), elija actualizar inme-
cir, PHP 5.2.1.)
diatamente o de forma planificada.
La primera línea de defensa Además de las actualizaciones de PHP, las aplicaciones web
Independientemente de las aplicaciones que ejecute, un en- basadas en PHP más conocidas también publican sus pro-
torno de ejecución seguro reduce el riesgo de sufrir proble- pios parches y actualizaciones de forma regular. Según Chris
mas, tanto conocidos como desconocidos. El experto en segu- Snyder, incluso en los mejores proyectos acaban colándose
ridad de PHP Chris Snyder, coautor con Michael Southwell algún error que puede ser peligroso. De modo que todos debe-
▲ de “Pro PHP Security” (Apress, 2005), recomienda varios ni- mos mantenernos informados sobre vulnerabilidades y las
▲ veles de protección –denominados “defensa en profundidad”– correspondientes actualizaciones usando estos métodos:
▲ porque “no se sabe qué puede salir mal”. Snyder, desarrollador
• Resúmenes de SecurityFocus, coordinados por Daniel
de aplicaciones web de la fundación Fund for the City of New
Programación y sistemas

Convissor (phpsec.org/projects/vulnerabilities/security-
York, considera que una aplicación web es tan segura como el
focus.html)
entorno en que se ejecuta.
• boletines de noticias distribuidos por correo electrónico por
El entorno de ejecución de PHP es el perímetro externo de
los equipos de desarrollo
la seguridad de una aplicación; queremos detener los ata-
• foros web que son fuente de noticias y una buena forma de
ques aquí, si es posible. En este artículo nos ocuparemos de
conocer a los desarrolladores
ese anillo exterior de defensa, que incluye elementos como el
mantenimiento de PHP y los parches de aplicaciones, el ci- Asimismo, debo decir algunas palabras sobre el archivo de
frado de datos, las estructuras de directorios, los archivos de configuración de PHP, php.ini. Los valores de configuración
configuración y la actualización regular de PHP. globales de PHP –incluyendo los valores de seguridad que se

20 ServerNEWS MARZO 2008 www.help400.es


muestran en este artículo– se guardan en /usr/local/Zend/ La protección obvia contra este abuso es asegurarse de que
Core/etc/php.ini. Ni que decir tiene que debe controlarse el register_global sigue teniendo su valor por omisión, Off. En
acceso a este archivo para mantener un sistema seguro. Esto php.net/register_globals puede hallar más ejemplos de vul-
significa limitar los usuarios que tienen acceso al archivo y nerabilidades asociadas a register_globals.
garantizar que ninguna aplicación web puede modificarlo.
Este archivo puede editarse con el mandato WRKLNK y con Mensajes de error de programa
editores de texto de Windows. ¿Qué haríamos sin los mensajes de error de los programas?
El formato del archivo php.ini usa la conocida sintaxis No estoy hablando de los mensajes dirigidos a los usuarios
variable=valor. Por ejemplo: finales, como “es necesario introducir el código postal”, sino
de los errores que describen problemas de programación in-
error_log = /usr/local/Zend/Core/logs/php_error_log
ternos como “el índice de la matriz está fuera de los límites”.
Si el valor es booleano (valores On u Off), la línea sería como Necesitamos estos mensajes cuando desarrollamos nues-
esta: tras aplicaciones. No obstante, una vez entregado el sistema
al usuario final, mostrar este tipo de mensajes no sólo parece
valor = On o valor = Off
poco profesional, sino que puede revelar información confi-
Por ejemplo: dencial, como la ubicación de archivos o parámetros de API
internas. Más aún, si algún motor de búsqueda indexa los
log_errors = On
mensajes de error, los hackers podrán buscar sus vulnerabili-
Nota: se pueden usar indistintamente los números 1 y 0 o dades favoritas. Actualmente ésta es una técnica tan difun-
los valores On y Off. También es posible acceder a los valores dida que hasta tiene nombre: “Google hacking”.
de php.ini gráficamente desde el centro de control de Zend Puede garantizar que los mensajes de error se añaden a su
Core basado en web siguiendo estos pasos: archivo de anotaciones (donde poder inspeccionarlos) pero que
quedan fuera de la vista del público con el siguiente valor de
1. Vaya a http://nombrehost:8000/ZendCore.
configuración de php.ini:
2. Pulse el menú Configuration (Configuración).
3. Pulse la opción PHP Configuration (Configuración de PHP). display_errors = Off
log_errors = On
Independientemente de cómo edite php.ini, la actualiza-
error_log = /usr/local/Zend/
ción no surtirá efecto hasta que se reinicie el servidor web
Core/logs/php_error_log (
Apache de Zend. Para ello, efectúe estos pasos:
the default)
error_reporting =
1. Escriba GO ZENDCORE/ZCMENU.
E_ALL | E_STRICT
2. Elija la opción 5: menú Service Management (Gestión de
servicios) Si se especifica E_ALL | E_STRICT, PHP registrará todos
3. Elija la opción 6: Restart Apache server instances (Reiniciar los errores, no importa lo pequeños que sean, incluyendo las
instancias del servidor Apache) advertencias y los avisos (por ejemplo, de variables no
inicializadas). Hallará más información sobre la notificación
Cuidado con las variables no inicializadas segura de errores en php.net/error_reporting.
Por cuestiones de eficiencia, PHP no comprueba si las varia-
bles se han inicializado antes de usarlas. Cuando los progra- Ocultar phpinfo()
madores olvidan inicializarlas, puede haber “consecuencias La función phpinfo() (página del manual: php.net/phpinfo)
accidentales”. Normalmente, las variables no inicializadas no genera una lista de todos los valores de configuración de PHP,
representan un problema de seguridad, ni siquiera tienen por como por ejemplo los valores de php.ini, los nombres de los
qué provocar un error de la aplicación. Sin embargo, hay un módulos de extensión y los números de versión, así como las
caso en que las variables no inicializadas se convierten en un variables de Apache (Figura 1).
Programación y sistemas
arma cargada: la opción register_globals de PHP. El uso más habitual de esta función es un sencillo docu-
Este valor de configuración controla si pueden establecer- mento de HTML denominado phpinfo.php, que contiene el
se variables directamente desde los argumentos queryString breve fragmento de PHP siguiente:
incluidos en el URL. El valor por omisión de register_globals
<?php
es Off, lo que impide la asignación de variables desde el URL.
phpinfo();
No obstante, si se establece en On, cualquier usuario podría
?>
manipular variables de script directamente incluyendo asig-
naciones en el URL. Por ejemplo, si el script usa la variable Este minúsculo pedazo de código se ampliará hasta con-
autenticacionAprobada para indicar que el usuario se ha vertirse en un documento de HTML que incluye todos los

autenticado, un intruso podría simplemente añadir la serie valores de configuración de los archivos .ini de PHP, opciones ▲
de caracteres “autenticacionAprobada=1” en un URL, con lo de compilación, módulos de extensión incluidos y un montón ▲
que eludiría hábilmente el código de autenticación. de información más que prefería que los hackers no vieran.

www.help400.es MARZO 2008 ServerNEWS 21


■ CONFIGURAR UN ENTORNO SEGURO

Aunque phpinfo() es una herramienta de depuración de va-


lor incalculable, al recopilar información de fuentes dispares
en una sola página, los hackers pueden usarla para encontrar
debilidades. Sin duda querrá poder acceder fácilmente a la
salida 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 al
añadir palabras clave que indican a los motores de búsqueda
que no indicen las páginas de phpinfo, reduciendo la amenaza
del Google hacking. Aún así, un desconocido que consultara el
documento phpinfo() vería más cosas de las que desearíamos
revelar. Así que, de ninguna manera debería utilizar el conve-
nio phpinfo.php, que todo hacker busca cuando sondea el sitio
de una víctima potencial.

Cifrar los datos


El experto en seguridad Chris Snyder recomienda cifrar los da-
tos (un método de mantener los datos intactos y confidenciales
hasta que lleguen a su destinatario) siempre que sea posible.
¿Por qué cifrarlos? Si su servidor web envía datos sin cifrar, FIGURA 1
estos datos pueden espiarse o incluso alterarse antes de que Salida de Phpinfo() (fragmento)
lleguen a su destino. Este problema puede producirse en mu-
chos sitios: en la LAN corporativa (ya sea por parte de los Los archivos internos presentan un riesgo si los usuarios tie-
empleados o de spyware), en Internet o desde la señal nen acceso directo a ellos.
inalámbrica de un cibercafé. Ejemplos de archivos externos son index.php, las hojas de
El cifrado está especialmente justificado cuando se envía estilo y otros archivos (tanto si son de PHP como si no) que el
información confidencial como contraseñas, información so- navegador web solicitará. Estos archivos pueden ponerse con
bre tarjetas de crédito u otro tipo de datos personales o confi- total seguridad en el directorio raíz de los documentos, que
denciales. en Zend es por omisión /www/zendcore/htdocs.
El método de cifrado más habitual es SSL/TLS (Capa de Ejemplos de archivos internos son los archivos usados por
conexión segura/Seguridad de la capa de transporte) que ci- la aplicación, como el código “include” que se ejecuta en los
fra datos entre el servidor de aplicaciones y el navegador del archivos externos pero que se guarda por separado. Los ar-
usuario de modo que si alguien está interceptando el tráfico chivos de configuración que contienen contraseñas también
de paquetes de HTTP no podrá decodificarlos. suelen considerarse archivos internos. Estos deben guardar-
Sin embargo, tenga en cuenta que SSL/TLS no impide que se fuera del directorio raíz de los documentos (htdocs), donde
el usuario final vea los datos transmitidos por el servidor, in- no puedan ejecutarse o consultarse de forma accidental por
cluyendo los datos que se hayan codificado en campos de for- los usuarios. Este es un ejemplo de inclusión (ejecución) de
mulario HTML “ocultos”. Todos los usuarios pueden ver este un archivo desde una ubicación segura, como /www/zendcore:
contenido usando el mandato Ver código fuente del navegador.
<?php
Si desea proteger variables internas, use la gestión de sesio-
include (‘/www/zendcore/
nes del servidor en vez de campos de HTML ocultos.
includes /config.inc.php’);
System i es compatible con el cifrado SSL/TLS. Los usuarios
// más código
▲ verán el conocido prefijo “https://” en los URL. Hallará instruc-
?>
▲ ciones sobre cómo configurar SSL/TLS en el InfoCenter de i5/OS.
▲ Otra categoría peligrosa es la de los archivos subidos por
Archivos separados los usuarios. Estos archivos nunca deberían ponerse en el
Programación y sistemas

Sea cual sea la complejidad de un sitio web basado en PHP, directorio raíz de los documentos. Un usuario malintencio-
probablemente tendrá una combinación de archivos externos nado podría subir un script dañino y luego ejecutarlo desde
e internos. el servidor. Elija una carpeta que no pertenezca al directorio
Los navegadores acceden a los archivos externos mediante raíz, como /www/zendcore/subidas.
los URL que los usuarios teclean en sus navegadores o pulsan Como protección adicional, este directorio debe ser sólo de
como enlaces. Los navegadores no pueden acceder directamen- grabación para evitar que la aplicación lea o ejecute los ar-
te a los archivos internos, aunque los usan las aplicaciones (y chivos que se guarden allí. Use un script de ejecución por
puede que hasta se muestren a los usuarios), sino que sola- lotes que no esté escrito en PHP para recuperar los archivos
mente deben poder recuperarse por el código de la aplicación. subidos. Además, asegúrese de que la aplicación detiene

22 ServerNEWS MARZO 2008 www.help400.es


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 la
extensión cURL, que lee URL remotos de forma más segura
que 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án
acceder a archivos de las carpetas especificadas. En consecuen-
cia, los scripts no podrán leer datos confidenciales o modificar
archivos 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 a


los datos de las carpetas /tmp, /www/zendcore/htdocs e /in-
formes.

PHPSecInfo
La herramienta gratuita PHPSecInfo del PHP Security
Consortium analiza la configuración y comunica problemas
potenciales de seguridad (Figura 2). PHPSecInfo es una he-
FIGURA 2
rramienta experimental; sus sugerencias son genéricas y no
Salida de PHPSecInfo (fragmento)
deben seguirse ciegamente. Con todo, se trata de una herra-
mienta de gran valor educativo y vale la pena descargársela
cualquier intento de incluir en los archivos que se suban pe- de phpsec.org/projects/phpsecinfo.
ticiones de creación implícita de directorios. Por ejemplo, la
aplicación debe detectar y descartar un nombre de archivo El poder protector de la configuración
del tipo laguaridadeloshackers/chucherias/archivo1. Con algunos cambios sencillos, la configuración de PHP pue-
de evitar o limitar en gran medida el mal uso de las aplica-
No dé rienda suelta a los scripts ciones. Las directrices ofrecidas en este artículo son una red
Si se le permite, PHP puede leer el contenido tanto de las de seguridad para su creatividad e innovación en la Red.
carpetas locales como de Internet. Por ejemplo, las funciones Las aplicaciones hechas a medida están mejor diseñadas
include() y readfile() pueden leer cómodamente nombres de cuando se tiene presente la seguridad. Después de utilizar
archivos locales como /informes/trimestral.xls y URL remo- las técnicas descritas en este artículo para proteger el entor-
tos como http://www.ejemplo.com/archivoremoto.html. no, el paso siguiente será escribir código seguro. En mi próxi-
Con tanta potencia a nuestra disposición, lo más sensato mo artículo explicaré técnicas para filtrar la entrada e inter-
es pensar en qué se necesita realmente y restringir las capa- pretar la salida con el fin de malograr la inyección de código
cidades que no se necesitan. Este enfoque prudente ofrece SQL y la vulnerabilidad XSS (cross-site scripting).
Programación y sistemas
una protección extra contra algunas artimañas y scripts da-
ñinos imprevistos. Algunas de las opciones de php.ini que res- Quiero agradecer a Chris Snyder y Shlomo Vanunu su ayu-
tringen a qué recursos puede acceder un script son estas: da para escribir este artículo. ■
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, sino Alan Seiden disfruta dirigiendo proyectos en colaboración, desarrollando
también desde uno remoto a través de un URL. El peligro software y resolviendo problemas que desconciertan a sus clientes.
Miembro del grupo de desarrolladores PHP de Nueva York desde 2004 y ▲
con el valor On es que se puede acabar ejecutando un script uno de los primeros impulsores de PHP en el System i, Alan fue reseñado ▲
remoto del atacante. Allow_url_include se introdujo en PHP en el boletín de noticias de la New York Software Industry Association. El ▲
5.2 (Zend Core 2.0). blog sobre informática de Alan es alanseiden.com.

www.help400.es MARZO 2008 ServerNEWS 23


Supervisar el rendimiento
del entorno web
La nueva herramienta WPM permite controlar el rendimiento web

por Rachel Eagle y Tim Rowe

A
l gestionar un entorno web en el System i, como sariales como entidades manejables. El estándar ARM per-
la naturaleza distribuida extiende sus brazos mite que los usuarios amplíen las herramientas de gestión
por muchos trabajos, a veces puede que nos sin- de la empresa directamente a aplicaciones.
tamos como si estuviéramos bregando con un WPM aprovecha el estándar abierto ARM. ARM ayuda a
pulpo. Un entorno típico puede incluir un ser- los usuarios a integrar aplicaciones empresariales y facilita
vidor de aplicaciones (por ejemplo, WebSphere Application ampliar las herramientas de gestión de la empresa directa-
Server) en que se ejecutan las aplicaciones, un servidor HTTP mente a aplicaciones. El servidor de aplicaciones, el servidor
para recibir las peticiones y archivos estáticos del servidor, de la base de datos y el servidor HTTP están diseñados para
una base de datos como DB2 desde la que se acceden a datos sacar partido de ARM. Si crea sus propias aplicaciones, tam-
permanentes, un servidor WebFacing y otros trabajos de las bién podrá beneficiarse de este soporte. En el caso de las apli-
aplicaciones. Recopilar los datos necesarios para depurar los caciones y servidores desarrollados para aprovechar ARM,
problemas de rendimiento y descubrir cuellos de botella rá- cada vez que se solicita una unidad de trabajo y cada vez que
pidamente puede consumir todo nuestro tiempo. El Supervi- un trabajo del proceso hace su parte del trabajo, se anotan
sor de rendimiento Web (WPM), una herramienta nueva de entradas que registran el tiempo que tarda cada trabajo en
la interfaz Web Administration de i5/OS que forma parte de realizar su parte del trabajo.
IBM HTTP Server para i5/OS (DG1-5722), se creó para dar La herramienta WPM recopila todos los tiempos de las
respuesta a este problema concreto. WPM recopila datos so- transacciones y las entradas de todos los trabajos del
bre el rendimiento de los trabajos que componen un entor- System i que forman parte del entorno web. Los datos de
estos trabajos se presentan en una interfaz, me-
El Supervisor de rendimiento Web (WPM), diante la cual pueden verse fácilmente todos los
tiempos de las transacciones y de las respues-
una herramienta nueva de la interfaz Web tas de cada parte del entorno web. Estos datos
Administration forma parte del IBM HTTP pueden adaptarse para que muestren los tiem-
pos de las transacciones y de las respuestas de
Server para i5/OS un usuario o una dirección IP individuales, lo
que permite que el usuario o administrador sepa
no web y las transacciones realizadas por éstos. La herra- dónde se encuentran los problemas potenciales de la apli-
mienta, completamente automatizada, identifica cómo se cación. Los datos también pueden usarse para ayudar a
está utilizando el tiempo y los recursos del sistema, lo que un usuario que tenga dificultades.
permite encontrar los puntos conflictivos y posibles cue- WPM proporciona una interfaz para que los administrado-
llos de botella. res puedan consultar fácilmente los trabajos más importan-
De forma parecida a como el mandato WRKACTJOB (Tra- tes, de forma muy parecida a como lo hace la herramienta
▲ bajar con trabajos activos) muestra todos los trabajos del i5 WRKACTJOB para entornos que no están basados en web.
▲ que se están ejecutando actualmente en el sistema, junto con Si tiene que examinar la información específica del trabajo,
▲ alguna información sobre el rendimiento de cada trabajo, la WPM tiene un enlace directo con iSeries Navigator en la pá-
herramienta WPM muestra únicamente los trabajos del sis- gina del trabajo activo.
tema relacionados con el servidor web seleccionado. Esto per-
mite ver datos concretos de rendimiento de cada trabajo (por Instalación de WPM
Management

ejemplo, el número de transacciones que ha procesado cada Antes de iniciar el Supervisor de rendimiento Web, asegúre-
trabajo o el tiempo necesario para procesar estas peticiones). se de que tiene instalado el PTF de grupo SF99114 Nivel 6 o
Ahora es más fácil determinar qué trabajos están procesan- posterior para IBM HTTP Server para i5/OS en el System i
do las transacciones y qué trabajos tardan mucho tiempo en V5R4. Siga estos pasos para ejecutar WPM:
procesar peticiones.
El estándar Application Response Measurement (ARM) 1. En iSeries Navigator, despliegue su_sistema|Red|Ser-
describe un método habitual de integrar aplicaciones empre- vidores y seleccione TCP/IP.

24 ServerNEWS MARZO 2008 www.help400.es


Management



www.help400.es MARZO 2008 ServerNEWS 25


■ SUPERVISAR EL RENDIMIENTO DEL ENTORNO WEB
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 la
pá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 Administration
para i5/OS.
6. Desde la interfaz IBM Web Admi-
nistration para i5/OS, seleccione el
servidor que le gustaría supervisar. FIGURA 1
7. En el panel de navegación, desplie- Herramienta Supervisor de rendimiento Web
gue Rendimiento web y seleccione
Supervisor de rendimiento Web.

Una vez realizados los siete pasos,


aparece la página de introducción de
WPM, donde ya puede empezar a su-
pervisar el rendimiento del entorno
web.

Supervisión del entorno web


Como es necesario establecer muchos
atributos antes de poder supervisar el
rendimiento web, deberá parar y
reiniciar el entorno web para activar
la supervisión. Antes de poder utili-
zar esta herramienta deberá planear
con antelación una desconexión del
servidor. FIGURA 2
Mediante la interfaz Web Admi- Interfaz Supervisor de rendimiento Web
nistration para i5/OS, empiece por
seleccionar el entorno que desearía
supervisar (sólo puede supervisarse uno a la vez) y active web. Por ejemplo, si el servidor HTTP está en un sistema
la herramienta Supervisor de rendimiento Web (Figura remoto, no se mostrará ningún trabajo del servidor HTTP. La
1). Para activar la supervisión, la herramienta: interfaz incluye las fichas Transacciones y Trabajos.
En la ficha Transacciones (Figura 3) pueden verse esta-
• detiene las instancias del servidor HTTP y actualiza sus dísticas de las transacciones de cada trabajo que genera da-
configuraciones para activar la recopilación de datos de tos de ARM. Para cada transacción, esta pantalla muestra el
▲ ARM tiempo promedio de respuesta y el número de transacciones
▲ • detiene los servidores de aplicaciones y actualiza sus confi- completadas. La ficha Trabajos (Figura 4) muestra los ser-
▲ guraciones para activar la recopilación de datos de ARM vidores y trabajos activos del entorno. Para cada trabajo pue-
• inicia la recopilación de datos de ARM de verse el usuario actual, el porcentaje de utilización de la
• reinicia el servidor HTTP y las instancias del servidor HTTP CPU, la prioridad de ejecución, el número de hebras, el tiem-
po promedio de respuesta de cada transacción y el número de
Management

Una vez detenidos, actualizados y reiniciados los servido- transacciones completadas. Si los valores de los tiempos pro-
res, ya puede empezar a recopilar datos a los que puede medio de respuesta o de los porcentajes de uso de la CPU son
accederse mediante la interfaz Supervisor de rendimiento Web muy grandes, pueden que indiquen un cuello de botella. Este
(Figura 2). El contenido de la interfaz WPM puede ser dife- posible cuello de botella es un buen punto de partida para
rente para cada entorno web supervisado. WPM es específico investigar los problemas de rendimiento.
de cada entorno seleccionado y únicamente se muestran los Para identificar las transacciones de un usuario o grupo de
trabajos directamente implicados en servir a la aplicación usuarios, pulse el botón Preferencias de la ficha Transacciones.

26 ServerNEWS MARZO 2008 www.help400.es


Cuando esté satisfecho con los datos
recopilados, debería desactivar WPM
para liberar los recursos adicionales
del sistema que consume. Cuando se
desactiva la supervisión, la herramien-
ta:

• detiene las instancias del servidor


HTTP y actualiza sus configuracio-
nes para desactivar la recopilación
de datos de ARM
• detiene los servidores de aplicacio-
nes y actualiza sus configuraciones
para desactivar la recopilación de
datos de ARM
• detiene la recopilación de datos de
ARM
FIGURA 3
• reinicia el servidor HTTP y las ins-
Ficha Transacciones
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 con
cautela. Puede sentir la tentación de
dejar que la herramienta se ejecute
en el entorno web todo el tiempo, pero
hay dos problemas. El primero es que
la instrumentación de ARM genera
una 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 ligera
disminución del rendimiento cuando
está activada. El segundo es que es-
tamos limitados a supervisar sólo un
entorno web del sistema a la vez, por
FIGURA 4
lo que tendrá que elegir qué entorno
Ficha Trabajo
supervisar.
Con WPM recopilando datos sobre el
rendimiento y las transacciones y ocu-
En esta página, puede especificar un usuario o una lista de pando unos cuantos brazos del pulpo, tendrá las manos li-
usuarios y WPM mostrará solamente información sobre las bres para dedicarse a problemas más importantes o intere-
transacciones de los usuarios seleccionados. Esto es útil si un santes. ■
determinado usuario se queja de la lentitud de una aplica-
ción. Compare los tiempos que tarda en ejecutarse la tran-
Management

sacción para distintos usuarios con el fin de asegurarse de


que las quejas son justificadas. También puede optar por exa-
minar los tiempos que tarda en ejecutarse la transacción para
una sola dirección IP o nombre de host, lo que plantea formas Rachel Eagle lleva seis años trabajando para IBM. Actualmente es redactora y
creativas de averiguar qué está pasando con una aplicación. jefe de proyecto del departamento de Tecnologías del usuario. Está casada con
La información relativa a la transacción muestra qué traba- otro trabajador de IBM y tienen un hijo y dos perros. En su tiempo libre, trabaja
jos han procesado las peticiones de cada usuario o dirección como voluntaria y se dedica a hacer manualidades y a viajar.

IP. Esta información tan precisa sobre el usuario puede ayu-
Tim Rowe es jefe del equipo IBM Web Administration, en el que lleva ▲
darle a identificar qué trabajos están ralentizando el entor- trabajando los últimos seis años. Se casó hace diecisiete años y tiene cuatro ▲
no web. niños que no le dejan tiempo libre.

www.help400.es MARZO 2008 ServerNEWS 27


Añadir técnicas de SQL Server
al repertorio de DB2
Aproveche algunas de las posibilidades de SQL exclusivas de SQL Server
por Paul Conte

C
ada vez más empresas que confiaron Sql_Variant_Property(
RefCatalogo, ‘TipoBase’)
únicamente en el System i (o uno de
sus predecesores) y en la base de da- Si el valor actual de RefCatalogo es un tipo entero, esta lla-
tos integrada DB2 están asumiendo la mada a función devolverá int.
responsabilidad de gestionar un servidor Wintel Es posible convertir explícitamente un tipo de datos variant
que ejecuta SQL Server de Microsoft. Como SQL en otro de los tipos de datos internos:
tiene estándares formales que tanto IBM como
Cast( RefCatalogo As
Microsoft han implementado bastante bien, el co- VarChar(10) )
nocimiento que tenga de SQL en el System i será
un buen punto de partida para empezar a encar- En muchas circunstancias, sin embargo, SQL Server con-
vertirá implícitamente el valor variant de una columna en el
garse del desarrollo de SQL Server además del de momento oportuno, por lo que no es necesario escribir un
DB2. Más allá del lenguaje SQL en sí, hay varias operación Cast explícita.
funciones de SQL Server que todavía no están en
Las UDF en restricciones de comprobación
DB2 y que puede que le interese utilizar en sus de- Las restricciones de comprobación permiten definir reglas
sarrollos. En este artículo encontrará una rápida para determinar que los datos son válidos al crear una tabla
introducción. o modificar su definición. En SQL Server, se puede especifi-
car una función definida por el usuario (UDF) en la expre-
Tipo de datos Variant sión lógica que define la restricción. Las UDF aumentan las
SQL Server admite muchos tipos de datos internos, inclu- oportunidades de reutilizar el código y permiten definir com-
yendo los numéricos, de tipo carácter y las series binarias, probaciones de validez complejas.
los tipos de datos de fecha y hora, etcétera. En la mayoría de Una característica interesante es que se pueden usar con-
los casos, se definen columnas de tablas, variables de proce- sultas sobre los datos existente de la tabla como parte de
dimientos y parámetros y valores de retorno de funciones con la restricción. Por ejemplo, se puede crear la UDF Com-
tipos de datos concretos como Int o Character. En estos casos, probarIntervaloFecha que devuelve 1 si existe otra fila en
en la columna sólo pueden almacenarse valores del tipo es- la tabla Articulos con el mismo número de artículo y un
pecificado. intervalo de fecha que se solapa para el precio. Si no exis-
Pero SQL Server también permite definir una columna, te solapamiento de ninguna fila, ComprobarIntervaloFecha
▲ variable, parámetro o valor de retorno de funciones utilizan- devuelve 0. Cuando cree la tabla, se puede añadir una res-
▲ do la palabra clave sql_variant, con el fin de almacenar valo- tricción de comprobación que haga referencia a esta fun-
▲ ción:
res de distintos tipos de datos en la misma columna. Este
ejemplo permite guardar una referencia numérica o de tipo
carácter para los artículos de un catálogo: CREATE TABLE Articulos
( NumArt Int,
Management

CREATE TABLE Articulo Precio Decimal( 10, 2 ),


( NumArt Int, FechaIni Date,
RefCatalogo sql_variant, FechaFin Date,
... ) ...
Comprobacion ( ComprobarIntervaloFecha (
Se puede determinar el tipo de datos de una fila determi- NumArt,
nada usando una llamada a función, como esta: FechaIni, FechaFin ) = 0 )

28 ServerNEWS MARZO 2008 www.help400.es


Soporte integrado para el control concurrente SQL Server comprueba la indicación de la hora salvada o
optimista la suma de comprobación con el valor correspondiente de la
El control concurrente optimista es una técnica para evitar fila actual y no permite la actualización si los dos valores no
actualizaciones concurrentes conflictivas de la misma fila de coinciden.
una tabla. La técnica básica es extraer filas sin bloquearlas y
utilizar una copia salvada de la indicación de la hora de la Resúmenes Rollup y Cube en conjuntos de
fila extraída (o una suma de comprobación del contenido de resultados
toda la fila) para comprobar si otro proceso ha realizado cam- Es posible generar filas de totales y subtotales en el conjunto
bios antes de ejecutar otra operación de actualización de la de resultados de una sentencia Select usando las palabras
fila. clave Rollup o Cube en la cláusula Group By.
SQL Server se encargará de todas las tareas internas si se Rollup genera un conjunto jerárquico de filas de resumen.
declara un cursor con la palabra clave Optimistic: En el ejemplo de la Figura 1A se muestra una sentencia
Select que genera una fila por cada curso con la suma de los
Declare CursorTrab Optimistic alumnos matriculados en todas las sesiones que ofrece el cur-
For Select IdTrab, NomTrab so. En la Figura 1B se muestra una fila de subtotal para
From Trabajador cada departamento (en los puntos A y B) y una fila de suma
Order By IdTrab total (en el punto C).
For Update of NomTrab Se puede usar la función Grouping, como en este ejemplo,
para especificar un valor para las columnas Group By de las
Con la definición de este cursor, las filas no se bloquean al filas acumuladas. Esto facilita la determinación de los valo-
extraerlas. Cuando la aplicación intenta una actualización res de resumen que contiene una fila concreta.
con ubicación, como: La palabra clave Cube funciona de forma parecida; sin
embargo, el conjunto de resultados contiene filas de
Update Trabajador subtotal para todas las combinaciones de valores de la cláu-
Set NomTrab = :NombreNuevo sula Group By, no sólo los subtotales jerárquicos genera-
Where Current of CursorTrab dos por Rollup.

Suscríbase a

Management

y reciba
gratuitamente
el Suplemento ▲

técnico ▲

www.help400.es MARZO 2008 ServerNEWS 29


■ AÑADIR TÉCNICAS DE SQL SERVER AL REPERTORIO DE DB2
La función de búsqueda de texto Contains
La función Contains de SQL Server permite buscar en co- FIGURA 1A
lumnas de tipo carácter palabras, frases, prefijos de palabras, Utilización de la palabra clave Rollup
palabras derivadas, sinónimos y palabras semejantes a otras.
La forma de usar Contains en una condición de búsqueda es Select Case When ( Grouping( Dept ) = 1 ) Then ‘All’
similar a la forma de usar la palabra clave Like para especi- Else Dept
End As Dept,
ficar comparaciones sencillas. Case When ( Grouping( Course ) = 1 ) Then ‘All’
En el ejemplo siguiente se buscan filas en que la descrip- Else Course
End As Course,
ción del producto contenga palabras basadas en cortar: Sum( Enrollment ) As EnrollSum
From Classes
Group By Dept, Course With Rollup
Select IdProd, DescProd
From Productos
Where Contains( DescProd,
‘ FormsOf (Inflectional, FIGURA 1B
corta) ‘) Resultado del ejemplo de la palabra clave Rollup

Para buscar descripciones de productos en que aparezca la


Dept Course EnrollSum
palabra cepillo cerca de nailon, especificaríamos: —————————— —————————— —————
Math 217 108
Math 324 211
Contains( DescProd,
Math All 319
‘ cepillo NEAR nailon ‘) Physics 411 121
Physics 412 220
Physics All 341
Hasta pueden buscarse palabras con un significado pareci- All All 660
do. La búsqueda siguiente encontraría motor, propulsor, má-
quina y otras palabras semejantes:

Contains( DescProd, FIGURA 2


‘ FormsOf (Thesaurus, Utilización de la característica Try/Catch
motor) ‘)
Set @RtnErrNbr = 0;
Las condiciones especificadas pueden combinarse en expre- Begin Try
Select CustName Into @RtnName
siones lógicas con los operadores And, Or y Not, como en esta From Customer
expresión: Where CustId = RqsId;
End Try
Begin Catch
‘cable And ((cobre And Not Set @RtnName = ‘Error’;
Set @RtnErrNbr = Error_Number();
trenzado) Return;
Or (solido And verde))’ End Catch;

Manejo de excepciones Try/Catch en


procedimientos de SQL
El manejo de excepciones estándar de SQL para procedimien- funciones Error_Xxx que devuelven la gravedad del error, el
tos almacenados es difícil de usar. El lenguaje procedural de número de línea de la sentencia que ha provocado el error y
SQL Server (que forma parte de Transact-SQL) incluye un otra información relacionada con el error.
▲ mecanismo Try/Catch más simple, parecido al que se usa en Los conocimientos de SQL son perfectamente aplicables a
▲ Java y en otros lenguajes de programación contemporáneos. muchas bases de datos relacionales, pero no basta con cono-
▲ En el ejemplo de la Figura 2 se puede ver un fragmento de cer las características comunes multiplataforma. Si la
código que ejecuta una sentencia Select Into en el bloque Try. portabilidad del código no es importante, también vale la pena
Si esta sentencia no provoca una excepción, la ejecución pasa entender y usar con sensatez las características de cada pla-
a la sentencia que hay justo después del final del bloque Catch. taforma. Tras leer este artículo, ya puede empezar a sacar
Management

Si una sentencia del bloque Try (por ejemplo, la sentencia partido a algunas de las capacidades relacionadas con SQL
Select Into de la Figura 2) provoca una excepción, entonces exclusivas de SQL Server. ■
se ejecutarán las sentencias del bloque Catch.
La característica Try/Catch de Transact-SQL no permite
especificar qué excepciones capturar, algo que sí se puede
hacer en Java. Pero se puede usar la función integrada Paul Conte es redactor técnico de System iNEWS y presidente de PCES, una
Error_Number para determinar el error. También hay otras empresa de formación y consultoría de Eugene (Oregón).

30 ServerNEWS MARZO 2008 www.help400.es


Management



www.help400.es MARZO 2008 ServerNEWS 31


GUIA

32 ServerNEWS MARZO 2008 www.help400.es


GUIA

MANTENIMIENTO Y BROKERAGE
INFORMÁTICO, S.L.

Mantenimiento / Alquiler y
Brokerage / Venta / Redes
Backup Center

Pere IV 78-82, 7º 3ª
08005 - Barcelona (Spain)
T. 34 934 854 427 Fax 34 934 850 168
P.T.A. Edificio CENTRO EMPRESAS 29590 Málaga

www.help400.es MARZO 2008 ServerNEWS 33


confidencial por Carlos Bell

Algo se está cociendo en IBM


Según me indica el olfato, algo gordo se está cocinando en
las 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 IBM
para mejorar los resultados de la familia de productos
System i, la última, la de julio de 2007, se basa en la reorganización del esfuerzo comercial en dos divisiones o líneas de
negocio distintas, la Business Systems responsable de la comercialización de los modelos “pequeños” 515, 520, 525, y 550
para atender las necesidades de las Pymes, y la Power Systems que agrupa a los “grandes” System i 570 y 595 con el resto
de 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 hubiera
sido muy temerario valorar los posibles resultados, y más teniendo en cuenta el inminente anuncio de Systems i con
tecnologí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ón
al 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 mismos
ingresos, en la Business Systems es necesario realizar muchísimas más ventas que en la Power Systems. ¿Quienes son sus
responsables a nivel internacional? ¿También se ha reorganizado en España? ¿Quién dirige la división del System i en su
conjunto, 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 de
Sistemas y Tecnología de IBM. Según se desprende de la entrevista realizada a Mark Shearer por IT Jungle el pasado 3 de
marzo (http://www.itjungle.com/tfh/tfh030308-story01.html), esta reestructuración es más profunda de lo que puede
parecer a simple vista. Para empezar, después de la reorganización de julio de 2007, todo el desarrollo del hardware de
sistemas 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 las
Pymes, la Business Systems, dirigida por Marc Dupaquier, pasó a hacerse cargo de la comercialización de los System i
inferiores al modelo 570. Shearer dejó de ser responsable de la línea de productos System i y pasó a ser vicepresidente de
marketing 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 para
clientes 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” anual de COMMON USA y todos los expertos del sector an-
dan haciendo cábalas acerca de una presentación especial
¿Y, aparte de todo este lío de cargos y responsabilidades, qué
por parte de IBM, prevista para el día 2 de abril. De acuerdo
hay de nuevo? Pues que está a punto de celebrarse la reunión
con la página web del evento (http://www.common.org/
conferences/2008/annual/), los asistentes podrán escuchar
en persona a Mark Shearer, vicepresidente de marketing y
INDICE DE ANUNCIANTES MARZO 2008 ofertas, así como a Ross Mauri, General Manager de Power
Empresa Página Systems, cuando conjuntamente anuncien una importante
iniciativa de IBM denominada “The New Power Equation”.
¿...? Sobre este tema, en otro artículo de IT Jungle (http://
AMERICAN TOP TOOLS ..................... Interior portada www.itjungle.com/tfh/tfh030308-story06.htm) se especula no
AMERICAN TOP TOOLS ....... Interior contraportada sólo sobre el posible lanzamiento de dos nuevos servidores
CACOVAI ................................................................................ 19 basados en POWER6, los 520 y 550, sino también sobre una
nueva estrategia de ventas donde, de una parte se crearían
GUÍA ................................................................................. 40, 41
productos Power y de otra dos divisiones se encargarían de
IBM .................................................................. Contraportada su comercialización, bien fueran sistemas de gama alta
COMON ESPAÑA ................................................................. 25 (Enterprise Systems Division) o de gama baja y gama media
SOFTWARE GREENHOUSE .............................................. 15 (Business Systems Division). Habrá que esperar al 2 de abril
para saber qué es lo que se está cocinando en IBM. ■
SUSCRIPCION ServerNEWS ............................................ 35
TANGO/04 ................................................................................ 9
VISION SOLUTIONS ............................................................ 15 Como sabes, esta información es estrictamente confidencial. Aunque nosotros
neguemos haberlo dicho o escrito, te autorizo a que obres en consecuencia

34 ServerNEWS MARZO 2008 www.help400.es

Você também pode gostar