youblisher.com 362150 solo programadores

58
Precio: 6 (España) (IVA incluido) AÑO XI. 2.ª ÉPOCA Nº 127 UNA PUBLICACIÓN DE: REVISTAS PROFESIONALES S.L. GRATIS CD INCLUIDO LA PRIMERA REVISTA DE PROGRAMACIÓN EN CASTELLANO Noticias, javaHispano y Opinión, Libros, Preguntas y Respuestas 8 4 1 3 0 4 2 3 0 3 2 9 9 0 0 1 2 7 ACTUALIDAD Presente y futuro de IPv6 Java Expo 2005 Inteligencia Ambiental: la presencia invisible MIDDLEWARE Tipos Generics en .NET 2.0 para C# y VB Struts, la referencia en desarrollos J2EE REDES Programación web ágil con ColdFusion MX 7 DISEÑO Generación de código a partir de modelos con EMF ALGORITMOS Programación Win32 avanzada CANAL PANDA La seguridad IT, también para los empleados

Upload: manuel-zamora

Post on 23-Nov-2015

155 views

Category:

Documents


18 download

TRANSCRIPT

  • Precio: 6 (Espaa) (IVA incluido) AO XI. 2. POCA N 127 UNA PUBLICACIN DE: REVISTAS PROFESIONALES S.L.

    GRAT

    IS

    CD IN

    CLUID

    O LA PRIMERA REVISTA DE PROGRAMACIN EN CASTELLANO

    Noticias, javaHispano y Opinin, Libros, Preguntas y Respuestas8 413042 303299

    00127

    ACTUALIDADPresente y futuro de IPv6Java Expo 2005Inteligencia Ambiental: la presencia invisible

    MIDDLEWARETipos Generics en .NET 2.0 para C# y VBStruts, la referencia en desarrollos J2EE

    REDESProgramacin web gil con ColdFusion MX 7

    DISEOGeneracin de cdigo a partir demodelos con EMF

    ALGORITMOSProgramacin Win32 avanzada

    CANAL PANDALa seguridad IT, tambin para losempleados

  • Nmero 127

    EEddiittaa:: RREEVVIISSTTAASS PPRROOFFEESSIIOONNAALLEESS SS..LL..

    [email protected]

    C/ Valentin Beato 42, 3. 28037 - Madrid.

    http://www.revistasprofesionales.com

    http://digital.revistasprofesionales.com

    EEddiittoorr

    Agustn Buelta

    CCoooorrddiinnaacciinn TTccnniiccaa--RReeddaacccciinn

    Carlos Laparra

    MMaaqquueettaacciinn

    Alfonso Sabn Mejas

    AAsseessoorraa ddee PPuubblliicciiddaadd

    Felipe Ribagorda

    Tel.: 91 304 87 64

    DDeelleeggaacciinn eenn BBaarrcceelloonnaa

    C/ Rocafort, 241/243, 5 1

    Mariano Snchez

    Tel.: 93 322 12 38

    SSuussccrriippcciioonneess

    Tel: 91 304 87 64

    Fax: 91 327 13 03

    IImmpprreessiinn

    Ideas de Impresin

    DDiissttrriibbuucciinn

    Motorpress Ibrica

    DDIISSTTRRIIBBUUCCIIOONN EENN MMEEXXIICCOODIMSA - C/ Mariano Escobedo, 218

    Col. Anhuac. 11320 Mxico, D.F.

    DDIISSTTRRIIBBUUCCIIOONN EENN AARRGGEENNTTIINNAACapital Federal: Distrimachisa

    Interior:York Agencysa - Tlf: (5411) 433 150 51

    RREEPPRREESSEENNTTAANNTTEE EENN MMEEXXIICCOOAngel Bosch - [email protected]

    Distribucin, nmeros atrasados y suscripcionesC/ Renacimiento, 180. Col. San Juan Tlihuaca.

    Azcapotzalco. 02400 Mxico D.F.

    La revista Slo Programadores no tiene por qu estar de acuerdo con las opiniones escritas por

    sus colaboradores en los artculos firmados.El editor prohibe expresamente la reproduccin

    total o parcial de los contenidos de la revistasin su autorizacin escrita.

    Depsito legal: M-26827-1994

    PPRRIINNTTEEDD IINN SSPPAAIINN

    COPYRIGHT 30-06-2005

    P.V.P. 6,00 Euros

    Precio en Canarias, Ceuta y Melilla:

    6,15 Euros

    P2P, UN ENFOQUE DIFERENTECuando se nos habla de las redes Peer to Peer (P2P) no podemos evitar pensaren la descarga de vdeo o msica. Hay quien dice que dicha descarga constituyeun delito, aunque por otro lado hay quien defiende el derecho a compartir. Almargen de esta discusin, lo que no genera ningn tipo de dudas es que latecnologa P2P alberga grandes posibilidades de comunicacin y por lo tanto denegocio.Microsoft, por ejemplo, ha apostado por esta tecnologa en el proyecto Farsite(http://research.microsoft.com/sn/Farsite/). Farsite es un sistema de ficherosdistribuido que permite a un grupo de estaciones de trabajo acceder a unsistema de ficheros nico y que reside en las propias estaciones de trabajo, demodo que cada estacin desempea las labores de cliente y servidor, tal comoestablece el concepto de P2P. Mediante un sofisticado sistema de replicacin,los archivos del sistema de ficheros se van almacenando y replicando por lasestaciones de trabajo que tienen acceso a dicha infraestructura. Para el casode plataformas GNU/Linux, la empresa Radiant Data ha desarrollado PeerFS(http://www.radiantdata.com), un sistema de ficheros igualmente distribuido yreplicado de forma transparente en los equipos conectados. Adems, PeerFStambin permite distribuir las bases de datos de MySQL, lo cual incorpora elconcepto P2P al mundo del almacenamiento masivo de datos.Esto son slo dos ejemplos que demuestran que la tecnologa P2P va a centrargran parte de la innovacin en los prximos aos, lo que conduce a pensar quela revolucin provocada por Napster en su momento, an no ha acabado

    ACTUALIDAD1122 IPv6: Oportunidad para la innovacin, oportunidad para nuevos

    negocios1144 Java Expo 20051166 Inteligencia Ambiental: la presencia invisible

    DISPOSITIVOS MVILES2200 Creacin de un sistema de distribucin de Midlets (I)

    MIDDLEWARE2266 Novedades en los lenguajes de .NET 2.0 (y III)3322 Struts prctico (II)

    REDES4422 Creacin de aplicaciones web con ColdFusion MX 7 (II)

    DISEO4488 Generacin de cdigo a partir de modelos con EMF

    ALGORITMOS5566 API Win32 y C: una programacin directa y eficaz (y III)

    Y ADEMS. . .0044 Noticias0088 javaHispano: Harmony, ejecutar .NET en J2EE, juegos con Java y ms1100 Canal Panda: La seguridad IT, tambin para los empleados6622 Preguntas y respuestas6644 Contenido del CD-ROM6666 Libros: Grficos y BBDD

    Asociacin Espaola de Editorialesde Publicaciones Peridicas

    EE DD II TT OO RR II AA LL

    SS UU MM AA RR II OO

  • NOTICIAS

    MICROSOFT

    La nueva versin de Microsoft Office, Office 12, incorporarXML como formato para sus archivos

    Microsoft ha anunciado recientemente que adop-tar la tecnologa estndar de la industriaeXtensible Markup Language (XML) como formatode archivo por defecto en la prxima versin de lasediciones de Microsoft Office, actualmente conoci-da con el nombre en clave de Office 12. Los nue-vos formatos de archivo, llamados Microsoft OfficeOpen XML Formats, se convertirn en los formatos

    por defecto para las versiones de Microsoft Word, Excel y PowerPoint deOffice 12, que espera ser lanzado al mercado en la segunda mitad de2006. Para que los desarrolladores, partners y profesionales de las nuevas tec-nologas dispongan de las herramientas e informacin que necesitanpara desarrollar soluciones basadas en Office utilizando los nuevos for-matos de archivo, Microsoft ir emitiendo la informacin necesaria, ascomo conferencias y eventos relacionados con este tema (como porejemplo TechEd 2005).Las ventajas que pueden derivarse de la incorporacin de la tecnologaXML a los formatos de los archivos de Office 12 son: Formatos de archivo compactos y robustos. Mejor interoperabilidad de datos. Formatos abiertos y sin royalties. Compatibilidad y soporte para clientes y partners.

    La gran aceptacin de XMLMicrosoft ha dado soporte a este estndar de la industria en su tecno-loga de productividad desde Office 2000, cuando la compaa introdu-

    jo XML dentro de los formatos dearchivo HTML soportados por Word,Excel y PowerPoint. Microsoft haampliado ese soporte en Office XP yOffice 2003, adems de en MicrosoftOffice InfoPath 2003.Tambin los clientes y la industria de latecnologa en general han adoptadorpidamente XML. Segn una investigacin de Microsoft, ms de unmilln de desarrolladores estn actualmente trabajando en solucionessobre Office 2003, y ms de un tercio de ellos estn utilizando XML enestas soluciones. En un estudio realizado por Gartner, se estima que la utilizacin de e-forms habilitadas por XML al menos se duplicar durante el prximoao y que en el ao 2007, un 40% de trabajadores cualificados usarnherramientas para la creacin de contenidos XML. Otro estudio des-arrollado por Forrester Research prev que en 2008 XML se convertiren uno de los formatos de documento dominantes para el archivo dedatos.Las personas interesadas en los nuevos formatos de archivo de la pr-xima versin de Office pueden obtener informacin adicional en la webhttp://www.microsoft.com/office/preview.

    BEA SYSTEMS

    Gartner sita a BEA como proveedor lder de software de infraestructura

    BEA Systems ha dado a conocer recientemen-te los resultados de un estudio de Gartner, delque se desprende que la propia compaa sesita como uno de los tres proveedores msimportantes en tres diferentes mercadosdurante 2004: servidores de aplicaciones, pro-

    ductos de portales y suites de aplicaciones, as como en AIM (Aplicacin,Integracin y Middleware) y en mercado de Portal. Para hacer tal afir-

    macin, el estudio se ha basado en la cuota de mercado de ingresos porlicencias.El informe de Gartner Market Share: AIM and Portal Software,Worldwide, 2004, Preliminary muestra que BEA consigui en 2004 el21,7% del mercado mundial de servidores de aplicaciones; el 11,6% delmercado de suites de aplicaciones; el 8,9% de productos de portal y el7,2% del mercado de integracin y middleware, mercado, ste ltimo,cuyo valor asciende a ms de 6.700 millones de dlares. Gartner evalaa los proveedores teniendo en cuenta su visin y capacidad de ejecu-cin. La firma de investigacin entiende por lderes aquellos fabrican-tes que presentan un buen funcionamiento, tienen una clara visin delas tendencias del mercado y son proactivos en la construccin de com-petencias para mantener sus posiciones de liderazgo en el mercado.

    http://digital.revistasprofesionales.comSOLO PROGRAMADORES n 127 4

    BUSINESS OBJECTS

    Crystal Reports XI y Crystal Reports Server XI, disponibles en castellanoBusiness Objects, proveedor de soluciones debusiness intelligence (BI), acaba de lanzar la nuevaversin en castellano de sus dos ltimos produc-tos, Crystal Reports XI y Crystal Reports Server XI. La experiencia adquirida y las impresiones favora-bles que le han llegado con respecto al productoen castellano de la anterior versin 10 han dadolugar a este nuevo paso por parte de la compaa.

    De hecho, la mayora de las ventas que lacompaa realiz de este producto eran deediciones en castellano, donde un 72% de lasunidades vendidas en 2004 eran referenciasen castellano, mientras que el 28% eran edi-ciones en ingls que se distribuan tanto aEspaa como para Portugal, no dejandoduda de que el mercado prefiere el productotraducido. Este ha sido el principal motivo que ha lleva-do a Business Objects a lanzar la nueva ver-sin de Crystal Reports XI y Crystal ReportsServer XI.

  • Slo Programadoresen FormatoDigitalPor menos dineroLlegar antes a su ordenador que a los quioscosEntra en http://digital.revistasprofesionales.comSuscripcin anual a Slo Programadores por slo 27 euros y a Slo Programadores y Mundo Linux por slo 40 euros

    Regalo de un CD-ROM con el archivo de los 12 ejemplaresde la temporada 2003-04

  • NOTICIAS

    http://digital.revistasprofesionales.comSOLO PROGRAMADORES n 127 6

    PANDA SOFTWARE

    La PYME espaola carece de proteccin frente a las nuevasamenazas

    Panda Software ha presentado recientemente su informe Niveles deProteccin en la PYME espaola 2005, en el marco de la Campaa deSeguridad para la PYME, que, promovida por la Asociacin deInternautas (AI) y con el apoyo de la Entidad Pblica Red.es, cuenta conla colaboracin de Panda Software.Dicho informe pone de manifiesto que si bien ha aumentado satisfac-toriamente el nivel de proteccin antivirus, las PYMES no estn adecua-damente protegidas contra las nuevas amenazas como el spyware y elspam, que son, despus de los virus, las que ms preocupan a los peque-os empresarios espaoles. Segn los datos que se desprenden de este estudio, el 94,5% de lasPYMES asegura contar con un sistema de seguridad, siendo un antivi-rus el 60,5% de los casos. Asimismo, de las empresas encuestadas quetienen implantado un software antivirus, el 96% asegura tenerlo actua-lizado. Estos datos suponen un gran avance en materia de seguridad encuanto a antivirus se refiere, pero hay ms.

    Desproteccin frente a las nuevas amenazasEl informe 2005 presenta sin embargo un panorama bien distinto encuanto a las nuevas amenazas se refiere y la conclusin que de l seextrae es que la PYME espaola cree que con disponer de un antiviruses suficiente, ya que slo un 10% de las empresas entrevistadas dispo-ne de un sistema de seguridad antispyware. Estos datos son preocu-pantes si se tiene en cuenta que a nivel mundialel 90% por ciento de las empresas tiene softwareespa instalado segn un informe elaborado porlas empresas Webroot y Earthlink. Adems, lamedia de spyware instalado en cada uno de losequipos analizados es de 25 ejemplares. Segn losdatos recogidos por la solucin antivirus online ygratuita de Panda Software, Panda ActiveScan

    (cuya nueva versin detectaspyware), el 84% del total de mal-ware instalado en los ordenadoreses software espa.El informe 2005 presentado porPanda revela que, en el caso delspam, la situacin de las PYMESes an, de mayor desproteccinque en el caso del spyware, ya quesolamente el 5,5% de las PYMES aseguran contar con un sistema deseguridad especfico para combatirlo. Segn datos hechos pblicosrecientemente por la empresa TB-Security se calcula que el spam causaprdidas de productividad que alcanzan el 3%. Lo cual puede dar unaidea del impacto que dicho tipo de malware puede producir en lasPYMES espaolas si se tienen en cuenta las estimaciones de la propiaTB-Security que pronostica un 30% en el crecimiento del spam para2005.

    Mayor nivel de informacin y concienciacinSin embargo, el informe de Panda Software tambin refleja algunosaspectos positivos. Por ejemplo, es destacable que las PYMES espaolasparecen ms y mejor informadas sobre las posibles amenazas y vulne-rabilidades existentes, puesto que ms de la mitad de los usuarios buscaasesoramiento en empresas especializadas y proveedores de seguridadinformtica en caso de tener un problema.

    Muestra del InformeEl informe ha sido realizado en el segundo trimestre de 2005 y se cen-

    tra en una muestra de 1.253 PYMES, clasifi-cada por tamao de la empresa (de 0 a 10empleados, de 11 a 25 empleados, de 26 a 50empleados, y ms de 50 empleados). Adems,se ha elaborado un estudio detallado deseguridad en las principales ComunidadesAutnomas (Andaluca, Catalua, ComunidadValenciana, Madrid y Pas Vasco).

    SUN MICROSYSTEMS

    Telefnica mviles despliega sus servicios con JavaEnterprise System

    Sun Microsystems ha anunciado que Telefnica Mviles Espaa (TME)ha seleccionado el software de infraestructura Java Enterprise System(JES) tanto para ofrecer servicios existentes como para desplegaraplicaciones y servicios de prxima generacin. La solucin JavaEnterprise System va a proporcionar a Telefnica un conjuntocompleto de componentes abiertos y basados en estndares quefacilitan la rpida creacin y despliegue de nuevos serviciosde comunicaciones.Los beneficios para TEM, segn fuentes de Sun, puedenresumirse en un ahorro de costes por el innovador mode-lo de licencia (precio fijo al ao por empleado), no penali-zar econmicamente los servicios cuando crece elnmero de clientes, derecho a un nmero ilimitado delicencias de los productos que forman parte de JES,etc.

    Java Enterprise SystemJava Enterprise System pretende ser una simplifica-cin del software de importancia crtica para las empresas,

    integrando los servicios corporativos de red ms habituales y que lasorganizaciones necesitan para crear y desplegar con xito sus aplica-ciones de negocio. Este completo sistema de software basado enestndares se entrega como una nica entidad sobre infraestructura

    preintegrada, con ciclos de actualizaciones predecibles yun coste muy asequible (140 euros por usuario al ao).Supuestamente, JES proporciona a los responsables desistemas la tranquilidad que necesitan para centrarsenicamente en lo que mejor saben hacer: utilizar las

    Tecnologas de la Informacin para lograr metas denegocio. Los servicios en red compartidos de JESproporcionan las siguientes funcionalidades ycapacidades: Servicios de aplicaciones y Web Servicios de identidad de red Servicios de portal Servicios de comunicacin y colaboracin Servicios de disponibilidad Servicios de seguridad de extremo a

    extremo

    El lector puede obtener ms informacin sobreJava Enterprise System en www.sun.com/

    software/javaenterprisesystem.

  • NOTICIAS

    RED.ES y ARSYS

    Disponible la gua sobre la nueva normativa para elregistro de dominios .es

    La entidad pblica empresarial Red.es, ads-crita al Ministerio de Industria, Turismo yComercio de Espaa, y arsys, empresa deregistro y alojamiento de dominios, haneditado conjuntamente la Gua de domi-nios .es, un manual que recoge los aspec-tos bsicos incluidos en el nuevo PlanNacional de Nombres de Dominio bajo elcdigo correspondiente a Espaa. El Boletn Oficial del Estado (BOE) del pasa-do 31 de mayo public la Orden de 19 demayo por la que se aprueba este Plan, cuyoobjetivo es flexibilizar las normas exigiblespara la asignacin de nombres de dominiobajo .es entre empresas, particulares e ins-tituciones, y fomentar el desarrollo de laSociedad de la Informacin en Espaa. La Gua de dominios .es explica las nuevascondiciones de contratacin de los regis-tros territoriales, as como toda la informa-cin relativa a los requisitos necesarios parael registro, los plazos de implantacin, el

    periodo de pre-registro, etc. La Gua puede descargarse en formato PDFdesde la pgina web de arsys (www.arsys.es). Asimismo, la web del Esnic

    (www.esnic.es), departamentode Red.es que gestiona la asig-nacin de nombres de dominiobajo .es, incluye tambin unapartado especfico sobre lanueva normativa.

    Crecimiento de la demandade dominios .es

  • SOLO PROGRAMADORES n 127 8 http://digital.revistasprofesionales.com

    JAVAHISPANO

    Actualidad Java de la mano de javaHispanoActualidad Java de la mano de javaHispano

    Apache Software Foundation est estudiando desarrollar una implementacin libre de J2SE,cuyo nombre sera Harmony. La iniciativa cuenta con el apoyo de numerosas figuras desta-cadas del Software Libre; entre ellas, miembros del equipo de desarrollo de IKVM, Kaffe, GCJ,Classpath y otros proyectos que implementan alguna parte de J2SE bajo una licencia libre.Varios representantes de Sun han manifestado su apoyo al proyecto, al cual es posible quecontribuyan de algn modo. No obstante, tambin han afirmado que no comprenden lanecesidad de esta implementacin, ya que para ellos las licencias bajo las que se distribuyeJ2SE son suficientemente libres.Hasta que Harmony o javal (http://www.javali.org.br), una iniciativa similar de origen brasi-leo, se completen, aquellos que deseen emplear una plataforma Java libre pueden optarpor SNAP (http://www.snapplatform.org/), una solucin que empaqueta en un mismo pro-ducto bien documentado y de fcil instalacin a Jikes como compilador, SableVM comomquina virtual, GNU Classpath como libreras, Eclipse como IDE y Tomcat como servidorweb.

    Apache podra desarrollar una implementacin libre de J2SE

    Sun ha empezado a licenciar el JDK 5.0 bajo una nueva licencia: JIUL (Java Internal Use License). Esta licencia permitir modificar el cdigo fuentedel JDK para corregir rpidamente bugs, sin la necesidad de esperar por los parches oficiales. Al cdigo modificado no se le requerir pasar los testsde compatibilidad de la plataforma.Estos JDKs modificados debern utilizarse nica y exclusivamente para uso interno, esto es, para cualquier uso operacional o comercial dentro deuna organizacin o negocio. El acceso de clientes a la tecnologa Java modificada a travs de un cliente remoto (como un navegador web) se con-sidera uso interno mientras el cdigo modificado se halle y se ejecute en un servidor situado en el interior de la empresa.Esta es la tercera modalidad de licenciamiento del JDK de Sun, junto con la Sun Community Source License, orientada al mundo comercial, y JavaResearch License, orientada a la investigacin y al mundo acadmico.

    El JDK 5.0 se distribuye bajo una nueva licencia

    Mainsoft ha lanzado un plugin para VisualStudio.NET, Grasshopper, que permite des-plegar aplicaciones de .NET en servidores deaplicaciones Java. Para ello transforma,mediante un compilador, el MSIL de .NET enbytecode y, para proporcionar libreras comoASP.NET y ADO.NET, incorpora las libreras delproyecto Mono compiladas a bytecode.Existe una versin gratuita de Grasshopperque slo permite desplegar las aplicacionesen Tomcat. Para emplear otros servidoresJ2EE y acceder a la funcionalidad de depura-cin del plugin es necesario ir a la versincomercial.

    Grasshopper: ejecutar aplicaciones .NET en servidores J2EE

  • SOLO PROGRAMADORES n 1279

    JAVAHISPANOjavaHispano

    http://digital.revistasprofesionales.com

    Struts, el primer framework web libre para Java, acaba de cumplir cincoaos. Este framework ha sido el estndar de facto para desarrollo de apli-caciones web con Java durante muchos aos y, en la actualidad, a pesar dela dura competencia de otros como Spring, sigue siendo lder indiscutibleen cuanto a su uso.Desde que Craig R. McClanahan construy la primera versin en su port-til mientras se encontraba de vacaciones, Struts ha experimentado muchasevoluciones. Pero la ms radical est por llegar con el nacimiento de Shale,donde se romper el monoltico controlador en tres partes y se contempla-r el uso de JSF como capa de presentacin.

    Struts cumple cinco aos

    Sobre el autorAbraham Otero ([email protected]) es responsable de calidad y miembro de la junta de javaHispano.

    La popularidad de las cmaras digitales ha creado la demanda de un soft-ware que permita la descarga, visualizacin, clasificacin y bsqueda delas fotos. Existen varias soluciones para desarrollar este tipo de programasdesde Java; las ms potentes son, probablemente, las desarrolladas porAprise (http://asprise.com). Para el mundo Windows ofrece JTwain, mien-tras que para otros sistemas operativos debemos emplear JSANE, consoporte para AIX, BSD, GNU/Linux, OS2, Solaris y otros sistemas Unix. Otra solucin es Morena (http://www.gnome.sk) que tambin permiteinteractuar con Twain y SANE desde Java. En el bando del Software Libre,podemos encontrar una solucin para Windows, todava en desarrollo,que comparte nombre con su homlogo de Aprise: JTwain (http://source-forge.net/projects/jtwain/).

    Soluciones para controlar cmaras digitales y escneres desde Java OPININ

    Java para desarrollar juegos

    Cuando omos Java y juegos en unamisma frase tendemos a llevarnos lasmanos a la cabeza: que si el tiempo deinicio de la mquina virtual, que si lalatencia del recolector de basura, quesi el uso excesivo de memoria, que sies lento... La lista es casi interminable.Pero Existen de verdad razones que excluyan aJava como un lenguaje de desarrollo de videojuegos? Enel equipo de Arianne (http://arianne.sourceforge.net/)pensamos que no.Cuando comenzamos el desarrollo de Stendhal, pensa-mos que Java sera la mejor opcin porque aporta unentorno completo donde ejecutar nuestro videojuegoindependientemente del sistema operativo. Hemos pro-bado el desarrollo multiplataforma en otros lenguajes ysin duda Java es el rey en este aspecto. El tiempo de ini-cio de la mquina virtual esta rondando entre los 1 o 2segundos lo cual si vas a hacer un juego que enganchedurante horas no es un problema. El consumo de memo-ria de nuestra aplicacin es moderado, rondando los30MB. Videojuegos similares a Stendhal desarrolladospor equipos similares rondan esta cantidad o incluso lasuperan. No hemos experimentado problemas con elrecolector de basura a pesar de no estar optimizadonuestro juego para evitar derrochar memoria, y aun asno afecta al tiempo de respuesta. Adems, evitamos lasfugas de memoria y por tanto reducimos la cantidad dememoria usada.Pero sobre todo, lo ms importante para considerar laexperiencia un xito es la velocidad: velocidad de ejecu-cin ya que sin ningn tipo de optimizacin hemos obte-nido 120 FPS para una pantalla de 640x480x32 bits.Inicialmente pensamos en un error en el clculo de losFPS, pero no, eran correctos: Java estaba creando la esce-na 120 veces por segundo.Por ltimo la velocidad de desarrollo, que muchos pare-cen olvidar, ha sido lo que ms nos ha sorprendido, escri-bir cdigo Java nos ha resultado entre 2 y 3 veces msrpido que escribir cdigo en C++ y casi a la par queescribir cdigo en Python, con lo cual hemos empleadoese tiempo extra en desarrollar nuevas ideas y corregirlos fallos existentes.Por tanto, a modo de conclusin, dira que la prxima vezque pensis en desarrollar un videojuego, dadle unaoportunidad a Java; no os defraudar.

    Miguel Angel Blanch (mblanch)Desarrollador de Arianne

  • SOLO PROGRAMADORES n 127 10

    CANAL PANDA

    http://digital.revistasprofesionales.com

    Las normativas sobre seguridad e higiene en eltrabajo tienen un fin muy claro: evitar acciden-tes y enfermedades en los trabajadores. Y ade-ms, cada normativa puede verse desde dospuntos de vista muy distintos, desde el lado deltrabajador y desde el del empresario. Si un obre-ro utiliza casco, est protegiendo su integridadfsica, lo que sin duda es muy conveniente. Perosi un empresario hace que el trabajador use elcasco, est protegiendo su fuerza de trabajo,haciendo que la empresa no vea reducida su pro-ductividad.Ms all de estos puntos de vista, hay un tras-fondo aadido a estas medidas de seguridad: enuna empresa segura, el ambiente de trabajo esmejor. El mero hecho de tener, por ejemplo, fil-tros anti-polen en el sistema de aire acondicio-nado, hace que el aire dentro de una oficina seams sano y se pueda trabajar mejor. O tener unvigilante en la puerta del edificio que evite laentrada a personas no deseadas tambin mejorasustancialmente el confort en el trabajo diario.Sin embargo, en muchas empresas todava no seha llegado a implementar un sistema de protec-cin contra intrusiones informticas adecuado.S es cierto que la proteccin contra cdigosmaliciosos es muy comn, ya que los empresa-rios y responsables de sistemas se han dadocuenta de que la probabilidad de perder infor-macin por culpa de un cdigo malicioso es muyalta si no de dispone de un sistema antivirus. Deesta manera, la base de datos de clientes, losproyectos, las propuestas, en definitiva la base defuncionamiento de la empresa, estar a salvo.

    Pero hay un nivel que todava debemos alcanzaren los sistemas de proteccin. Las amenazas nose ciernen exclusivamente sobre los datos, sinoque en los ltimos tiempos se han lanzado enpicado sobre el dinero. Cada vez ms los cdigosmaliciosos se crean con el objetivo de obtener unbeneficio econmico, llegando al caso de cifrarficheros, exigiendo una cantidad econmica acambio de la clave de descifrado.De todos es conocido tambin que el phishingsupone un claro peligro para los usuarios. Estetipo de estafa consiste en mandar un correoelectrnico a una coleccin de direcciones de e-mail (al ms puro estilo spam) en las que seinforma de un supuesto problema con los datosde la cuenta bancaria por Internet del usuario.Evidentemente, no existe ningn problema realcon la cuenta del usuario, pero aquel que piquepuede verse en un serio problema, al haber dadoel control de su cuenta bancaria a un estafador.En todos estos casos, una empresa podra desen-tenderse de estos problemas, ya que no son sinoerrores en los que cae el usuario, sin que tengamayor repercusin para la marcha de la empre-sa. Pero vendra a equivaler a la instalacin de unfiltro anti-polen como el que mencionbamosantes. Un problema alrgico en un empleado no es pro-blema que deba resolver la empresa, pero sinduda entra dentro de las obligaciones y respon-sabilidades de los empresarios mantener un airelo ms puro posible para sus empleados.Pues lo mismo ocurre en una instalacin infor-mtica corporativa. Los empleados deben teneruna proteccin que vaya ms all del simple fil-trado de cdigos maliciosos, ya que el malwareva mucho ms all de lo que son los clsicosvirus o troyanos.En el mejor de los casos, alguna empresa puedellegar a pensar que sus cuentas bancarias pue-den estar amenazadas, pero el control internoque siempre hay en los departamentos de admi-nistracin de las empresas convierten los ata-ques de phishing en prcticamente intiles anivel corporativo. No descartemos, sin embargo,

    La seguridad IT, tambin paralos empleadosLa seguridad IT, tambin para los empleadosFERNANDO DE LA CUADRA

    Un sistema de seguridad no serefectivo si no se tienen en cuentatodas las posibles amenazas.Analicemos dnde pueden estar lospuntos dbiles de los sistemas deseguridad actualmente implantados.

    Si no tenemos unaconcepcin global

    de la seguridadpodemos generar

    huecos muydifciles de taponar

  • SOLO PROGRAMADORES n 12711

    CANAL PANDALa seguridad IT, tambin para los empleados

    http://digital.revistasprofesionales.com

    que en el futuro puedan verse involucradastambin las cuentas bancarias corporativas.Hoy en da la definicin de malware nosolamente incluye cdigo ejecutable, comose podra suponer al derivarse su nombrede malicious software. Para que algocause dao en una instalacin informticano es necesario que sea software, puede serun simple mensaje de correo electrnico.Nadie tiene la ms mnima duda de que elspam es pernicioso, y sin embargo un e-mail, por mucha Viagra que anuncie, no essoftware: es un mensaje de correo electr-nico que se podr leer de una manera uotra, pero en principio, no va a llevar a cabouna tarea dentro del sistema ms all de lamolestia que supone su recepcin y elimi-nacin.Lo mismo ocurre con el phishing, no escdigo ejecutable, pero el peligro queentraa es elevadsimo y debe incluirsealgn tipo de filtro anti-phishing integradocon los sistemas de proteccin corporativa.El uso de herramientas distintas dentro delos sistemas de seguridad para problemasdistintos hace que se pierda la visin inte-grada de la proteccin, generando huecosmuy difciles de taponar.A todas estas amenazas hay que sumar unaa la que no se le da la importancia suficien-te en las empresas: el spyware. En muchsi-mas ocasiones se piensa que el spyware esun problema para los usuarios finales, paralos usuarios domsticos. Estos mismosusuarios son los que estn delante de losordenadores en las empresas, y aunque lainformacin que intentan robar estos cdi-gos espas suele ser referente a hbitos denavegacin, no debemos olvidar que elspyware suele incluir entre sus funciones lade grabacin de pulsaciones de teclas(keylogging). Un listado de las pulsacio-nes de teclas en el ordenador de un traba-jador quiz no consiga tarjetas de crdito,pero s una ingente cantidad de datos queharn las delicias de los competidores.A pesar de las medidas clsicas de seguri-dad contra espionaje industrial, las empre-sas deben tener en cuenta que una terica-mente inocua barra de navegacin instala-da por un empleado (y no detectada ade-cuadamente por el sistema antimalware)puede dar a traste con un proyecto millo-

    nario. O sin ser tan tremendistas, puedesimplemente servir de va de escape adirecciones de correo para engrosar las lis-tas de los spammers.Si las empresas de hoy en da quieren esta-blecer un sistema de seguridad efectivo,deben vigilar que todos los riesgos

    (ataquen directamente a la empresa o biena los empleados) estn vigilados y solucio-nados. La concepcin global de la seguridad infor-mtica de hoy en da ofrece, y exige,soluciones completas para la seguridadcompleta.

    Sobre el autorFernando de la Cuadra ([email protected]) es editor tcnico internacional de Panda Software (http://www.pandasoftware.com).

    Panda Software ha lanzado recientementeuna nueva versin de su solucin antimalwa-re con gestin remota va Internet, PandaWebAdmin. La nueva versin de WebAdminproporciona seguridad a las empresas nosolamente frente a virus, gusanos y troyanos,sino tambin frente a otras amenazas deInternet como spyware, adware, dialers o hac-king tools.Panda WebAdmin consta de un cliente antivi-rus instalado localmente en los equipos a pro-teger, as como de un innovador sistema degestin centralizada alojado en los servidoresde Panda Software (http://webadmin.panda-software.com), desde el cual el administradorpuede instalar, configurar y monitorizar laseguridad de toda la empresa de formaremota.En Panda WebAdmin, el criterio fundamentalpara poder gestionar la seguridad es que losequipos estn conectados a Internet y no queestn conectados a la red corporativa. Estopermite al administrador controlar la seguri-dad en equipos remotos que no formen partede la red corporativa, como son porttiles yordenadores de delegaciones remotas, ascomo reducir los costes asociados al manteni-miento de la seguridad informtica.

    Panda WebAdmin Antivirus est disponible enespaol, ingls y japons, e incluye los servi-cios de la gama corporativa de PandaSoftware: soporte telefnico o va e-mail parala resolucin rpida de cualquier incidenciaque pueda surgir, actualizaciones diarias con-tra nuevos virus, SOS Virus 24h/365d para elenvo de ficheros sospechosos e informacinproactiva (sobre los nuevos virus que apare-cen, del estado vrico mundial, etc.). Asimismo,Panda Software ofrece a sus clientes, gratui-tamente, todas las mejoras que vayaincorporando a esta solucin. El lector intere-sado puede ampliar esta informacin en:ht tp : / /empresas .pandasoftware .es /productos/webadmin/

    Panda Software lanza una nueva versin de Panda WebAdmin, la solucin antimalware para empresas que cuentan con mltiples porttiles y/o delegaciones

    El men de administracin deWebAdmin ofrece las funcionalidadesnecesarias para establecer las polticasde seguridad de la empresa.

    Los clientes de WebAdmin pueden administrarla seguridad de sus equipos remotamente desdehttp://webadmin.pandasoftware.com

    WebAdmin informa continuamente dela actividad vrica.

  • SOLO PROGRAMADORES n 127 12

    ACTUALIDAD

    IPv6: Oportunidad para la innovacin,oportunidad para nuevos negociosIPv6: Oportunidad para la innovacin,oportunidad para nuevos negocios

    http://digital.revistasprofesionales.com

    El Internet Global Congress(IGC) celebr en Barcelona susptima edicin del 6 al 10de junio de 2005 consolidn-dose como el evento de refe-rencia sobre tecnologa,innovacin y sociedad digitalen Espaa. Entre los temastratados, destac por encimade todos el presente y futurode IPv6. Por eso reproduci-mos aqu el anlisis de JordiPalet Martnez, donde elautor expone los problemasde la Internet actual, y quposibilidades puede abrirIPv6 en el futuro.

    El IGC2005 da la bienvenida a IPv6

    Por supuesto que han aparecido mltiplesaplicaciones y servicios, pero en realidad meatrevera a decir que no son tantos, si tene-mos en cuenta que la mayora de stos, deuna manera o de otra, se basan en los dosanteriores (o en los protocolos sobre los quese soportan). Por lo tanto, estamos legitima-dos para afirmar que la innovacin enInternet prcticamente se ha detenido. Debidoa que hoy dependemos en gran medida deInternet para cualquier tipo de aplicaciones yservicios, ya sea en el lugar de trabajo o en elhogar (servicios de ocio, informacin, etc.), ydado que existe una evidente ausencia deinnovacin en Internet, en cierto modo pode-mos afirmar que esto repercute negativamen-te en el desarrollo de la sociedad de la infor-macin y del conocimiento.Hay un motivo fundamental para que se pro-duzca esta falta de innovacin en Internet: ladificultad de desarrollar aplicaciones que fun-cionen extremo a extremo, en cualquier lugar

    de la red, y que adems puedan ser seguras ypuedan funcionar en movimiento (la cual cosatiende a ser cada vez ms habitual en entor-nos tanto de trabajo como de ocio).Esta dificultad se debe al uso casi universal deNAT. Hay centenares de aplicaciones y des-arrollos que residen en los laboratorios porfalta de recursos de sus creadores, porque alintentar ponerlos en el mercado, se encuen-tran que los escenarios de redes son tandiversos como las posibles combinaciones defabricantes y modelos de NAT.La forma en la que se construye NAT no estconcretada en ningn estndar, lo cual impi-de definir un mecanismo nico que permitaabrir un camino a travs de NAT cuando unaaplicacin as lo requiera. An definiendo

    En estos ltimos aos, hemos sidoespectadores de un crecimientoimportante y continuado de Internet.Sin embargo, este crecimiento hatenido nicamente dos golpes deefecto destacables desde el puntode vista del usuario final: el correoelectrnico y la web.

    JORDI PALET MARTNEZ (CEO/CTO, Consulintel. Presidente del Grupo de Trabajode Educacin, Promocin y Relaciones Pblicas de IPv6)

    Jordi Palet Martnez es CEO/CTO de Consulintely fue ponente en el IGC2005.

  • SOLO PROGRAMADORES n 12713

    ACTUALIDADIPv6: Oportunidad para la innovacin, oportunidad para nuevos negocios

    http://digital.revistasprofesionales.com

    ahora este estndar, Cunto tiempo tar-daramos en actualizar todos los NAT quehay en la red, teniendo en cuenta quehay millones de ellos? Qu coste ten-dra?Sin lugar a dudas, puedo asegurar quetanto el coste como el tiempo seran muysuperiores y mucho menos eficaces quela inversin requerida para hacer la tran-sicin a IPv6, que por otra parte aportamultitud de ventajas adicionales y, espe-cialmente, la posibilidad de extensin detodo aquello que pueda hacer falta en unfuturo, prcticamente sin lmites.En estos momentos, el mercado ya hareconocido las ventajas de IPv6,aunque para ser sinceros ha costado unpoco ms de lo que se esperaba en unprincipio.En los ltimos dos aos, aproximada-mente, el inters por IPv6 ha sido expo-nencialmente creciente, y su despliegueest avanzando a pasos agigantados, connoticias interesantes prcticamente cadada des de hace ms de seis meses acer-ca de nuevas implantaciones en redes,semiconductores, dispositivos y, engeneral, todo tipo de productos, aplica-ciones y servicios. Adems, este inters no ha sido exclusi-vo por parte de proveedores de serviciosde Internet, sino que tambin ha llegadoa la industria en general y, especialmen-te, a fabricantes de productos de consu-mo donde, sin duda, pronto descubrire-mos novedades impensables hasta ahora(domtica, audio/vdeo/multimedia, ofi-cina, televigilancia, etc.).Veamos un ejemplo. Una de las aplica-ciones que hoy en da est teniendo msxito es la voz sobre IP, y un caso concre-to es el xito de Skype, una creacinreciente de los diseadores de KaZaA.Esta aplicacin ha requerido y requiere el80% de la inversin de la compaa, desde que sta empez a desarrollarse, conel objetivo de asegurar que la aplicacinfuncionara en cualquier lugar de la red.Evidentemente, los propietarios de Skypese lo pueden permitir, ya que con laventa de su desarrollo anterior, KaZaA,consigui recursos financieros abundan-tes. An as, sera interesante ver cuntacreatividad adicional podran desarrollarsus ingenieros, ya sea en mejoras sobreel mismo Skype, ya sea en otras aplica-

    ciones, con este 80% de los recursos.Pero, sin duda, este no es el caso de lamayora de las pequeas y medianasempresas, ni de la comunidad dedesarrolladores de cdigo abierto, ni dedesarrolladores independientes. stos nosuelen disponer de este 80% de recursospara malgastar haciendo una herramien-ta que solucione un problema que debe-ra estar resuelto y garantizado por lared.Se puede afirmar categricamente quedesarrollar para redes IPv4 supone mscostos, ms complejidad tcnica, y plazos

    de desarrollo y mantenimiento muysuperiores, la cual cosa muchas vecesprovoca el abandono de las ideas, e impi-de la innovacin.Me atrevera a predecir un nuevo boomde Internet cuando haya una masa crti-ca de desarrolladores que exploten elpotencial que les ofrece IPv6.Dnde est el negocio, con IPv6, paralos ISPs? Por un lado, hay que tener encuenta que el servicio de acceso estdejando de ser un negocio; competencia,ms requisitos de ancho de banda y decalidad de servicio, conllevan reduccio-nes de mrgenes. Por otro lado, lademanda de ms ancho de banda no estcompensada con la prestacin de nuevosservicios, con el despliegue de nuevasaplicaciones, y es aqu donde se producela oportunidad de negocio.Los ISPs son el canal perfecto para llegara millones de clientes, con unos costosde despliegue mnimos, para que cual-quier emprendedor pequeo puedacomercializar sus aplicaciones. IPv6 es laoportunidad para que los ISPs se puedanconvertir en aglutinadores de serviciose incrementen sus volmenes de factu-racin, sus mrgenes y sus servicios a losclientes, con una amplia oferta de aplica-ciones.

    Es equiparable al caso de los servicios detelevisin por cable o satlite. El clientepaga una cuota bsica mensual para lasuscripcin al servicio (lo que equivaldraa la cuota de conexin a la red de bandaancha en nuestro caso). An as, el clien-te generalmente contrata paquetes decanales temticos adicionales como cine,infantiles, documentales, etc., o hasta devez en cuando, servicios puntuales (payper view).No es necesario que los ISPs desplieguensoporte nativo de IPv6, no inicialmente,sino que han de ser capaces de activar en

    sus redes mecanismos de transicin queaprovechen el potencial de transportarIPv6 a las redes IPv4 existentes. Con estopueden reducirse prcticamente a cerolas inversiones iniciales.De esta manera, el soporte nativo a IPv6,y tambin la desaparicin de IPv4 en lasredes troncales y de acceso, sern cam-bios progresivos, cuando se hayan conse-guido volmenes de negocio que justifi-quen este cambio.Por otro lado, en el momento en el queestn disponibles ms aplicaciones y ser-vicios, los usuarios tendirn a requerirms ancho de banda, ms calidad de ser-vicio, menos retrasos, etc. Serviciosque, lgicamente, generarn ingresosadicionales.Todo esto, sin tener en cuenta que noaprovechar esta oportunidad es dar piepara que la competencia se anticipe, conel riesgo consiguiente de perder clientes.El nuevo negocio de los ISPs es, por lotanto, sacar partido a las redes de bandaancha con IPv4 para desplegar aplicacio-nes y servicios que aprovechen las capaci-dades extremos a extremo de IPv6. Elnuevo negocio empieza por regalar lasdirecciones IPv6 a los clientes, y facilitaras que exploten el desarrollo de estasaplicaciones y servicios: la innovacin.

    http://www.consulintel.es

  • SOLO PROGRAMADORES n 127 14

    ACTUALIDAD

    http://digital.revistasprofesionales.com

    Un repaso a Java Expo

    A lo largo de ms de 80 ponencias, esta edicin deJava Expo ha servido para exponer puntos dedebate de mxima actualidad en mbitos como eldesarrollo de software en comunidad, los nuevosmodelos de servicios financieros, las ltimas pro-puestas en el entorno de los servicios online de laAdministracin Pblica espaola, la productividadde la distribucin y el impacto de la cadena devalor, los nuevos servicios asociados a la evolucinde las operadoras de telecomunicaciones o el futu-ro tecnolgico del transporte inteligente enEspaa. Java Expo 2005 ha cobrado este ao un carcterespecial al coincidir con el 10 aniversario del naci-miento de la tecnologa Java. Con este argumento,y tambin para dar prestigio al evento, JamesGosling, vicepresidente de Sun Microsystems yreconocido a nivel internacional como el padre deJava, fue quien hizo la intervencin inaugural delcongreso. Durante dicha intervencin, hizo unrepaso de la evolucin de Java. Gosling, quien lide-r el denominado Green Team, encargado de

    desarrollar el lenguaje de programacin que en1995 sera lanzado comercialmente con el nombrede Java, manifest que: Estoy realmente orgullosode la dimensin que ha alcanzado el fenmenoJava. En estos diez aos, esta tecnologa ha logradorevolucionar reas que afectan a partes muyimportantes de nuestra vida, como puede ser elcuidado de la salud. Y el futuro de Java estar encualquier lugar donde haya un dispositivo digitalconectado a la red al que se pueda aadir valor.

    Demostraciones prcticasJava Expo 2005 ha congregado a un amplioespectro de profesionales con capacidad de deci-sin de empresas de todos los tamaos, as comoa los profesionales tcnicos interesados en laaplicacin de soluciones basadas en Java. A partede las sesiones plenarias, conferencias paralelasy experiencias de xito basadas en Java, se habi-lit una zona de exposicin en la que los asisten-tes pudieron conocer, de primera mano, las solu-ciones propuestas por Sun y su comunidadiForce de partners tecnolgicos de valor aadido. Entre otras muchas demostraciones, se presen-ci una ilustracin prctica sobre Liberty, unaespecificacin abierta que garantiza la identidaden red y permite un inicio de sesin nico, segu-ro y ubicuo para mltiples sitios web y mltiplesdispositivos conectados a Internet.

    Conclusiones

    La VIII edicin de Java Expo ha dejado patenteque en esta ltima dcada, gracias a su versatili-dad, eficiencia, portabilidad y seguridad, Java seha convertido en una opcin muy importantepara el desarrollo y despliegue de aplicaciones yservicios para la red, y ha generado a su alrede-dor un ecosistema que crea cada vez mayoresoportunidades de negocio y valor aadido.

    El pasado 1 de Junio tuvo lugar, enMadrid, la VIII edicin de JavaExpo, un foro que cont con laparticipacin de ms de 40 empresasy con la asistencia de ms de 3000profesionales.

    CARLOS LAPARRA

    Java Expo 2005Java Expo 2005

    Ms de 3000 profesionales se dieron cita en la VIII edicin de Java Expo.

  • SOLO PROGRAMADORES n 127 16

    ACTUALIDAD

    Inteligencia Ambiental: la presencia invisibleInteligencia Ambiental: la presencia invisible

    http://digital.revistasprofesionales.com

    Introduccin

    La Inteligencia Ambiental (AmI AmbientIntelligence) es un modelo de interaccin en elque las personas estamos rodeadas de un entor-no digital consciente de nuestra presencia, sen-sible al contexto, que responde de manera adap-tativa a nuestras necesidades y hbitos, parafacilitarnos la vida diaria en el hogar, lugares deocio y trabajo.Existe inteligencia en el ambiente, y es invisible.Es una especie de ngel de la guarda, que nosacompaa y nos ayuda, nos abre las puertas,enciende las luces, nos indica que hay otro pro-grama ms interesante en el televisor y paganuestro autobs.Cunto tiempo invertimos al da en manipularlos elementos del entorno para configurarlos yadaptarlos a nuestras necesidades en cadamomento? Se podran crear ambientes en losque la interaccin activa del usuario sea mnima,entornos que perciban las situaciones y respon-dan de la manera adecuada? El concepto de Inteligencia Ambiental dispone elmundo al servicio de las personas. Como en un

    cuento de hadas los objetos dejan de estar inani-mados y reaccionan por iniciativa propia parafacilitarnos la vida: puertas de supermercadoque se abren a nuestro paso o grifos que propor-cionan agua automticamente cuando nosvamos a lavar las manos; estamos hablando deun futuro que en cierta medida vive con nos-otros desde hace algn tiempo y que cada vezest ms presente.Antes de seguir hay que sealar que en estemarco la palabra ambiente no debe interpretar-se como medioambiente, sino como entorno,y as, inteligencia ambiental se interpreta comointeligencia en el entorno.

    Componentes tecnolgicos

    Desde un plano ms cientfico, vamos a analizarlas bases tecnolgicas que subyacen tras el con-cepto de Inteligencia Ambiental. Los cuatro atri-butos fundamentales que caracterizan un siste-ma AmI son:

    CCoommppuuttaacciinn,, ccoommuunniiccaacciinn ee iinnffoorr--mmaacciinn uubbiiccuuaa: un usuario estar rodeadode pequeas computadoras en su entorno,que se comunican y gestionan la informacinnecesaria para adaptarse a las necesidades dela persona. El televisor, el control de luces y decalefaccin, el sistema de control de accesode la puerta o el salpicadero del vehculo sonalgunos de los ejemplos de estos objetosavanzados, representando una capacidad decomputacin y comunicacin por doquier,vigilante, para reaccionar a la conducta delusuario de manera inteligente.

    SSeennssiibbii ll iiddaadd aall ccoonntteexxttoo: el entorno essensible a su circunstancia y a los elementosque la determinan. Esta sensibilidad se imple-menta mediante sensores, que permiten per-cibir el entorno. No hay lmites para la natu-raleza de dichos sensores, desde los ms pri-mitivos como los sensores de temperatura, deluz o de presencia, hasta los ms sofisticadoscomo microcmaras, o elementos softwarereconocedores de patrones de conducta, quecorrelacionan las entradas de los dems para

    Cunto tiempo malgastamosdiariamente en hacer comprendernuestras intenciones a losdispositivos y servicios de alrededoruna y otra vez? Puede el sistema deiluminacin de mi vivienda percibirpor s mismo si necesito luz o nopara leer o cocinar, y activarla si esnecesario? Si mi vecino siempresabe a qu piso voy, por qu no losabe el ascensor que uso todos losdas? Existe un futuro donde todoesto s es posible, y llega de la manode la Inteligencia Ambiental.

    IAKI VZQUEZ y DIEGO LZ. DE IPIA GZ. DE ARTAZA(Facultad de Ingeniera (ESIDE) - Universidad de Deusto)

    La InteligenciaAmbiental no se

    siente, no se ve, nose toca, pero acta

    constantemente,como una

    presencia invisible

  • SOLO PROGRAMADORES n 12717

    ACTUALIDAD

    http://digital.revistasprofesionales.com

    identificar la situacin o tarea en la queest inmerso el usuario. Incluso las tec-nologas de comunicacin como Wi-Fi,Bluetooth o RFID se pueden utilizar parapercibir la presencia de otra entidad,como si de un sexto sentido se tratase.

    IInnttee ll ii ggeenncc ii aa: este entorno digitaldotado de capacidades de computaciny percepcin es capaz de razonar sobrelos estmulos que detecta y reaccionarde la manera que estima convenientepara adaptarse a las necesidades delusuario. El sistema de razonamientopuede estar localizado en uno de los dis-positivos, que coordina a los dems, oms bien, surgir de manera espontneapor la aportacin individual y la coope-racin entre stos. Por ejemplo, un pro-fesor llega a su despacho, el sistema decontrol de accesos de la puerta le iden-tifica a travs del PDA y notifica de elloal resto de dispositivos, provocando queel ordenador realice un login automti-co, y que la temperatura y luz se ajustenautomticamente a sus preferencias.

    IInntteerraacccciinn nnaattuurraall: el usuario notiene porqu ser un agente completa-mente pasivo en este entorno, sino quepuede interactuar explcitamente

    mediante mecanismos de comunicacinsimilares a los que desarrolla de maneranatural, como la voz o los gestos. Deeste modo, nuestro profesor podravariar la temperatura del despacho, blo-quear la puerta o apagar las luces solici-tndolo al entorno.

    En definitiva, estamos hablando deambientes con una cierta capacidad decomputacin y comunicacin, sensores,procesamiento inteligente para la toma dedecisiones, que pueden interactuar con elusuario de manera natural.Como ya hemos comentado, la idea que seesconde detrs de AmI es descargar a laspersonas de la tarea de reconfigurar conti-nuamente el entorno que nos rodea debidoal cambio de ciertas condiciones, la presen-cia de nuevas entidades, el desarrollo deotras actividades, etc. Es precisamente laInteligencia Ambiental presente en elmedio la que se encarga que ejecutar ycoordinar todas las acciones necesariaspara establecer el hbitat adecuado en elque pueda desenvolverse nuestra conducta.El paradigma de la Inteligencia Ambientalse puede analizar en dos ejes diferentes,propuestos por el ISTAG (Information

    Society Technology Advisory Group, Grupode Asesoramiento en IST de la ComisinEuropea), y del que la figura 1 es una adap-tacin.Por una parte tenemos el eje horizontal,que indica la proximidad de los conceptos ocomponentes de una visin centrada en latecnologa a una visin centrada en la per-sona. Por otra parte, el eje vertical seala lanaturaleza relacional del componente, suaislamiento o capacidad de convergencia eintegracin con otros.Los componentes tecnolgicos que puedenser aplicados en AmI se han dividido en tresgrandes bloques. El primero, Ambiente,contiene los elementos particulares decomponente fundamentalmente tecnolgi-ca que constituyen los bloques bsicossobre los que edificar un escenario deInteligencia Ambiental. El segundo bloque,Inteligente, contiene los elementos parti-culares ms prximos a prestar servicios ala persona, que le proporcionan un mayorvalor aadido o interactan directamentecon ella.El tercer bloque, en la parte superior delgrfico, es el verdadero desafo de AmI. Sumisin es aportar la integracin entre todosestos elementos individuales para coordi-

    Inteligencia Ambiental: la presencia invisible

    Figura 1. Ejes de desarrollo de la Inteligencia Ambiental.

  • SOLO PROGRAMADORES n 127

    nar su comportamiento, de tal manera queconstituye el sustrato del entorno inteli-gente. Es aqu donde se ubican las arquitec-turas tecnolgicas y los estndares quepermiten un entorno dinmico, de tipo Plugand Play, donde emerge una percepcinambiental constante. Los dispositivos sedescubren unos a otros, se informanmutuamente de las percepciones indivi-duales, se toman decisiones coordinadas yse ejecutan las adaptaciones individuales ocolectivas que sean necesarias.

    El centro es la persona

    Lo que diferencia el concepto europeo deAmI respecto a otros similares como per-vasive computing o sentient computing,es su manifiesta orientacin, casi violen-ta, a tomar a la persona como centro deluniverso: que todos los ingenios, sistemasy servicios giren alrededor de l paraextender y mejorar la propia experienciavital en cualquier mbito. Parafraseandoal ISTAG, la Inteligencia Ambiental debeestar conducida desde una perspectivahumanstica, no tecnolgica, y debe sercontrolable por gente corriente []. Debepromover y facilitar la participacindel individuo en la sociedad y en sus

    diferentes comunidades, en todos losaspectos de la vida, del entretenimiento algobierno.As, finalmente, la Inteligencia Ambiental,no slo consiste en un elevado desarrollotecnolgico en mltiples campos, que per-mita facilitar la relacin de las personas consu entorno de manera transparente, sinoque constituye una oportunidad paramejorar y modernizar diversos aspectos delmodelo social.El gap existente entre los desafos socialesy la tecnologa se cubre mediante el con-cepto de AmI Space: un escenario de apli-cacin para un determinado tipo de situa-ciones, donde la tecnologa est al serviciode la sociedad para modelar un entornointeligente en el que puedan desenvolverselas personas.Hay diferentes AmI Spaces definidos parambitos paradigmticos: el hogar, el lugarde trabajo, el vehculo, lugares de recreo,etc. En cada uno de estos entornos las per-sonas se comportan de modo diferente, lastecnologas y la inteligencia invisible quereside en el ambiente se enfocan de mane-ras distintas.Los desafos ms ambiciosos que proponeAmI no se espera que sean alcanzadoshasta el ao 2020, pero desde el da de hoy

    y progresivamente ya se estn introducien-do pequeas mejoras en nuestra vida dia-ria, casi imperceptibles, que implementan elverdadero concepto que subyace aqu. Yano nos sorprenden las puertas que se abrenante nuestro paso, las luces que se encien-den solas, o los sistemas de climatizacinque se autoregulan segn la presencia o node personas en la sala.Esta es la esencia de la InteligenciaAmbiental: no se siente, no se ve, no setoca, pero acta constantemente, comouna presencia invisible.

    Un escenario, a modo de ejemplo

    Para evaluar el impacto en nuestra vidadiaria derivado de la aplicacin de mecanis-mos de Inteligencia Ambiental, propone-mos un experimento. Vamos a narrar elcomportamiento y las acciones que lleva acabo una persona mientras se dirige decasa al trabajo, y cmo algunas de dichasacciones se podran automatizar con elempleo progresivo de mecanismos deInteligencia Ambiental (vase el cuadroadjunto).El resultado es claro: sin AmI el usuariodebe realizar 14 acciones activas de mani-pulacin del entorno, mientras que aplican-do mecanismos de Inteligencia Ambiental,se podran reducir a 5 acciones en las queslo se requiere su confirmacin por moti-vos de seguridad.

    18

    ACTUALIDAD

    http://digital.revistasprofesionales.com

    Figura 2. En AmI el concepto central es la persona, no la tecnologa que la sirve.

    Figura 3. Los AmI Spaces son la aplicacinde las tecnologas en mbitos concretos dela vida.

  • SOLO PROGRAMADORES n 127

    Conclusiones

    Pero lo ms difcil an est por hacer. Eldiseo de arquitecturas inteligentes quepermitan a los dispositivos encontrarse,conocerse y negociar entre s a nivelsemntico, sistemas que perciban con unmayor grado de certeza las intenciones deun usuario para adaptar el entorno a lastareas que desarrolla, interfaces naturales,gestuales o vocales, que permitan que laspersonas se comuniquen de manera noartificial con los servicios a su alrededor yque la interpretacin sea correcta, ... sonslo algunos ejemplos de las reas de tra-

    bajo en las que se hallan inmersos muchosequipos de investigacin internacionales.Cuidado con los entusiasmos. El trabajobien hecho es firme, pero se desarrolla len-tamente. Que la especulacin no nos con-duzca a decepciones fcilmente evitables,como ocurri con WAP o UMTS. Cada cosaa su tiempo. Mantengamos las expectativasde la Inteligencia Ambiental equilibradasdesde el principio, que avance firmemente,cada vez con ms implantacin en nuestrosmbitos de vida: trabajo, vehculo, hogar...,y as, sin que lo notemos, nuestro entornoser ms inteligente, ms receptivo, msreactivo y ms humano.

    19

    ACTUALIDADInteligencia Ambiental: la presencia invisible

    http://digital.revistasprofesionales.com

    Referencias IST Advisory Group. Ambient Intelligence: from

    vision to reality. EU Publication. 2003. IST Advisory Group. IST Research Content. EU

    Publication. 2003. IST Advisory Group. Scenarios for Ambient

    Intelligence in 2010. EU Publication. 2001. Lpez de Ipia, D. y Katsiri, E. An ECA Rule-

    Matching Service for Simpler Development ofReactive Applications. IEEE Distributed SystemsOnline, vol. 2, number 7. 2001.

    Vzquez Gmez, J.I. y Lpez de Ipia, D. AnInteraction Model for Passively Influencing theEnvironment. Adjunct Proceedings of the 2ndEuropean Symposium on Ambient Intelligence.Eindhoven, The Netherlands. November 2004.

    Accin sin AmI Accin con Aml Posible mecanismo Aml aplicado

    Al salir de casa, cierro la puerta con llave...

    Al salir de casa, la puerta se bloquea automticamente

    El sistema de control del hogar, al detectar que no queda nadie en casa, decide bloquear la puerta. Puede solicitar confirmacin al usuario

    ...y llamo al ascensor El ascensor acude a recogerme

    El sistema de presencia de la escalera, quiz consultando un registro histrico, determina que el 98% de las veces que un usuario se encuentra a esta hora en este piso, llama al ascensor

    Me dirijo al garaje, pulso el mando de apertura para elevar la puerta

    Me dirijo al garaje, cuya puerta se abre ante mi presencia

    Mi PDA se valida en la entrada cuando me aproximo, lo que me franquea el acceso. Puede solicitar confirmacin al usuario

    Abro el vehculo y entro El vehculo se abre de manera automtica

    Mi PDA sabe que hoy es da laboral (gestiona mi calendario) y por lo tanto determina que voy al garaje a por el coche, e indica al vehculo que se abra. Puede solicitar confirmacin al usuario

    Inserto la llave y... ... me identifica...El vehculo identifica al poseedor de la PDA (token de identificacin) o mendiante otros mecanismos pasivos(huella dactilar al tomar el volante, ...)

    ...lo pongo en marcha ...ponindose en marcha... El vehculo se pone en marcha o la PDA se lo indica

    Vuelvo a abrir la puerta del garaje para salir

    ... y abriendo la puerta del garaje a mi paso

    El vehculo o la PDA abren la puerta del garaje

    Sintonizo la emisorade noticias mientras conduzco al trabajo

    El sistema de radio sintoniza la emisora que suelo escuchar a esa hora

    El sistema de radio conoce mis preferencias y las activa, o bien mi PDA se lo indica

    Busco una plaza libre durante cinco minutos y aparco el vehculo

    El vehculo me indica la ruta ptima y cmo llegar a una plaza libre

    La PDA indica el destino al sistema de navegacin, que busca la rutaptima

    Entro en mi edificio y me valido con la tarjeta en la entrada

    El sistema de control de accesos de edificio me franquea la entrada

    Mi PDA, tarjeta o tag verifican mi identidad por m

    Indico mi piso en el ascensor

    El ascensor me recoge y melleva a mi planta

    Esta identidad sirve para determinar mi destino en el ascensor, aunque siempre puedo variarlo

    Uso la llave de la puertadel despacho para abrirlo

    La puerta del despacho me permite el paso

    El mismo mecanismo de identificacin me valida en la puerta del despacho. Puede solicitar confirmacin al usuario

    Enciendo la luz del deldespacho

    La luz se activa si es necesario

    El sistema de presencia del despacho determina que es necesario activar lailuminacin

    Enciendo mi ordenadory me valido

    El ordenador se inicia con mi sesin, quiz previa confirmacin

    El mismo mecanismo de identificacin me valida en la sesin del ordenador. Puede solicitar confirmacin al usuario

    : el usuario es el sujeto activo : el entorno es el sujeto activo : el entorno es el sujeto activo, solicitando confirmacin explcita del usuario

  • SOLO PROGRAMADORES n 127 20

    DISPOSITIVOS MVILES

    http://digital.revistasprofesionales.com

    Introduccin

    De todas las opciones para descargar aplicacionesen un mvil, es la distribucin de aplicaciones OverThe Air, comnmente conocida como OTA, la quenos abre mayores posibilidades. Con este artculo iniciamos una serie en la queveremos cmo implantar un sistema de distribu-cin de Midlets basado en el Internet InformationServer, de aqu en adelante IIS. El desarrollo de unsistema OTA nos va a permitir difundir nuestrasaplicaciones basadas en J2ME desde Internet. Aspues daremos las base tericas de la programacinde una extensin IIS y se explicarn los conceptosy elementos que estn detrs de OTA.En una primera parte se har un repaso a los con-ceptos de HTTP en los que se basa la distribucinOver The Air, necesarios para entender el funciona-miento de nuestro aplicativo. Se explicar cmocrear una extensin para IIS y la diferencia conotras tecnologas afines de Microsoft, as como lasAPIs implicadas. Aunque se poda haber optadopor una solucin basada en Servlets o en mdulosApache, se han descartado ambas en favor de unasolucin basada en IIS por varios motivos. En el caso de los Servlets se hubiera aportadoinformacin que no resultara novedosa, dado quela implementacin de un Servlet es realmente tri-vial. En el caso de escribir un mdulo Apache anno siendo obvia su creacin, se nos planteaba elproblema de decidir qu versin usar (1.x o 2.x) ascmo explicar toda la temtica de la gestin de losmdulos y filtros en Apache.En todos los casos (Servlet, mdulos, extensiones)nos basta con conocer poco ms de media docenade funciones para implementar las funcionalida-des bsicas necesarias.

    Se ha optado por una implementacin en IIS por-que an no teniendo una ventaja tcnica y de pro-ductividad sobre las otras opciones, nos servirpara tratar otros temas al margen de OTA.La aplicacin desarrollada podr ser ejecutada enuna variedad de sistemas operativos comoWindows 2000 Server, Windows 2003 Web Edition(IIS 6.0) e incluso Windows XP Profesional (IIS 5.1). Una cuestin a tener en cuenta es que la versinde IIS que se entrega con Windows XP Profesionalno est pensada para un uso intensivo en web, dehecho el nmero mximo de conexiones simult-neas que puede mantener nunca debe exceder ladecena. Dadas las caractersticas de la propia apli-cacin puede ser ms que suficiente en la mayorade los casos, pero se recuerda que si se quiereimplantar en un entorno de explotacin con requi-sitos que excedan lo personal se tendr que recu-rrir a las licencias ms caras de las versionesservidor.Una observacin ms a tener en cuenta, es quecuando desarrollemos extensiones deberemostener presentes las dependencias con otras DLL,dado que pueden llevarnos a errores de funciona-miento si stas no estn disponibles en el sistemaoperativo destino. Para verificar las dependencias podemos recurrir aherramientas como tdump de Borland (con laopcin em) o dumpbin de Microsoft (con laopcin /IMPORTS). Finalmente decir que la aplicacin se ha escrito enC++ usando Visual Studio .NET 2003, aunque esmuy fcil portar el proyecto a otros compiladoresexistentes.

    Conceptos bsicos de HTTP

    HTTP esta pensado para el tratamiento de infor-macin distribuida cuyo mximo exponente es elWorld Wide Web. Para localizar los recursos en laweb se usan las URL. A continuacin repasare-mos cules son y cmo designaremos a los ele-mentos que componen un Uniform ResourceLocator.Una URL tiene la siguiente estructura:[PROTOCOLO][HOST][PUERTO][VIA DE ACCESO][CONSULTA]

    Una vez se tiene desarrollada una suitede Midlets la primera cuestin que nospuede venir a la cabeza es Cmoconseguir distribuirla de forma quellegue al mximo nmero dedestinatarios?

    JOS ANTONIO PREZ

    Creacin de un sistema dedistribucin de Midlets (I)Creacin de un sistema dedistribucin de Midlets (I)

    En esta serie dedos entregas

    desarrollaremosun servicio de

    distribucin deaplicaciones paratelfonos mviles

    segn el modeloOTA y basado

    en IIS

  • SOLO PROGRAMADORES n 12721

    DISPOSITIVOS MVILES

    http://digital.revistasprofesionales.com

    En un recurso HTTP la URL tendra elsiguiente formato de forma ms especfica:

    http://host[:puerto][va_de_acceso[?consulta]]

    Slo los elementos protocolo y host sonobligatorios. La consulta o query nos per-mite aadir parmetros a la peticin paraayudar a producir contenidos de formadinmica.A diferencia de otros protocolos como elFTP en el que existe una sesin a nivel deconexin entre el cliente y el servidor, elHTTP es un protocolo sin estado (stateless).En HTTP el cliente establece conexionespuntuales con el servidor. Estas conexionesfinalizan con la respuesta del servidor, sinpasar por estados como login, queries ylogout. Las conexiones HTTP suele hacerse en elpuerto 80 (puerto por omisin). Otro puer-to usado por convenio es el 8080. Los datos que un cliente enva a un servidoren una conexin HTTP y los datos que seresponden desde un servidor a un cliente sedividen en dos partes: las cabeceras (HEA-DER) y el cuerpo (ENTITY). Las cabeceras estn formadas por unasucesin de lneas de texto separadas por elpar de caracteres \r\n.La primera lnea de las cabeceras que envaun cliente a un servidor se usa para indicarel mtodo de conexin y el recurso afecta-do. El formato de esta lnea es:

    El o verbo, es unapalabra reservada que indica el tipo deconexin deseada por el cliente (GET,POST...). El indica cmo identificarel recurso o fuente a solicitar o interpelaren el servidor. La indi-ca la versin soportada por el cliente y esnicamente el texto HTTP/ seguido delnmero de versin y subversin separadapor un punto. Dos ejemplos de esta sintaxispodran ser:POST /midlets/midsvr.dll HTTP/1.1

    GET /midlets/admin.htm HTTP/1.1

    A continuacin de esta lnea obligatoriapara todas las peticiones HTTP aparecenuna sucesin de cabeceras que designare-mos con el nombre de atributos, y sus valo-

    res correspondientes. Cada atributo/valorviene separado del siguiente por el par decaracteres \r\n. Los atributos pueden serespecificados en cualquier orden y no todoslos atributos son necesarios para una peti-cin. El formato de las lneas que contienenlos atributos es:

    En el cuadro Campos de las cabecerasHTTP ms usuales se describen los atribu-tos ms corrientes. La lista de atributosfinaliza con una lnea vaca (nicamentecontiene el par de caracteres \r\n) vinien-do a continuacin (s existe) el cuerpo demensaje o ENTITY. Las respuestas del servi-dor tienen la misma estructura que unapeticin HTTP de cliente aunque difieren enalgunas cuestiones. La primera lnea delrea de cabecera (lnea de estado) sirvepara retornar el cdigo de estado de la peti-cin y tiene la siguiente estructura:

    Donde es nicamenteel texto HTTP/ seguido del nmero de ver-sin y subversin separada por un punto. Loscdigos de estado reportados por un servidorHTTP estn categorizados en 5 grupos depen-diendo del mbito de los mismos: 11xxxx: Cdigos informativos. 22xxxx: Cdigos de operacin finalizada

    con xito. 33xxxx: Cdigos de redireccin. 44xxxx: Cdigos de error cuya causa est

    en la peticin cliente. 55xxxx: Cdigos de error generados por el

    servidor.

    Los mtodos de conexinEl protocolo HTTP define 8 mtodosde conexin. Veamos cada uno endetalle: OOPPTT IIOONNSS: representa una peticin

    sobre las opciones de comunicacin.

    Creacin de un sistema de distribucin de Midlets (I)

    Campos de las cabeceras HTTP ms usualesNombre del campo

    o atributo Descripcin del campo Cliente Servidor

    Accept Indica los mime types de los formatos de respuesta aceptados. X

    Accept-Encoding Tipo de codificacin aceptada (gzip, deflate, compress...). X

    Accpept-Language Lenguaje preferencia para la recepcin de la respuesta. X

    Cache-Control Define el uso que hace de la cache. X

    Connection Especifica el tipo de conexin. X X

    Content-Encoding Indica qu codificacin se aplica al ENTITY. X X

    Content-Length Longitud total del ENTITY. X X

    Content-Type El tipo de contenido del ENTITY (mime/type). X X

    Date Fecha y hora en la que segener el mensaje. X X

    HostHost y nmero de puerto delrecurso solicidado.

    X

    LocationUsado para redirigir el recipiente a otra direccin.

    X

    ServerContiene informacin acerca del software del servidor.

    X

    User-AgentContiene informacin acerca delagente que cre la peticin.

    X

  • SOLO PROGRAMADORES n 127

    GGEETT: Se pide unos datos que se recibencomo parte de la respuesta del servidor.Es el mtodo usado en las peticiones quese realizan cuando se introduce una URLen un navegador de Internet. La URIcontiene todos los parmetros que pue-den ser necesarios para la peticin.

    HHEEAADD: es idntico al mtodo GET peroel servidor no retorna el cuerpo de larespuesta. Slo se envan las cabeceras.

    PPOOSSTT: Se usa para pedir al servidor queacepte las entities adjuntadas comoelementos de la peticin a realizar. Es elmtodo usado tpicamente para enviarformularios cuyos datos aparecen en elcuerpo como parejas atributo-valoresseparados por caracteres &. Casoespecial lo constituye el envo de variasentidades en un mismo formulario paraenviar, por ejemplo, archivos al servidor,(FORMS en los que se define el atribu-to enctype=multipart/form-data). Eneste caso se define un boundary paraseparar los diferentes entities (vaseun ejemplo en la figura 1).

    PPUUTT: se pide que la entity adjunta seguarde como la URI indicada.

    DDEELLEETTEE: se pide al servidor que borreun recurso identificado por la URI de lapeticin.

    TTRRAACCEE: permite al cliente ver qu es lo quese est recibiendo al final de una peticin yusar estos datos para test o diagnstico.

    CCOONNNNEECCTT: se usa para realizar conexionesa un servidor a travs de un proxy.

    Los mtodos de conexin ms frecuentesusados por los navegadores son GET,POST y CONNECT.

    ASP, extensiones y filtros

    El IIS permite que el desarrollador pueda ges-tionar las peticiones web despreocupndosede lo relativo a la conexin y centrndose enla funcionalidad. Para ello proporciona tresmecanismos: pginas ASP (ASP.NET), filtros yextensiones. Las pginas ASP y ASP.NET com-parten gran similitud en cuanto a la funcio-nalidad y la finalidad de las pginas JSP, PHP,o ColdFusion. Todas ellas son tecnologas quepermiten crear pginas dinmicas en el ser-vidor. Las pginas ASP permiten usar objetosCOM de Windows para crear las pginasHTML que se envan al lado cliente. El cdigo de las pginas ASP puede incluirtags HTML y cdigo escrito en VBScript oJScript.ASP.NET es el resultado de la evolucin delas tecnologas de Microsoft orientado a lacreacin de contenidos dinmicos de laweb. ASP.NET hace posible que se use cual-quier lenguaje de programacin con sopor-te para .NET. Adems, al igual que ocurre enotras tecnologas como los JSP, el cdigo secompila la primera vez que se invoca unapgina mejorando el rendimiento del servi-dor. El interfaz de programacin de aplica-ciones para el servidor de aplicaciones deInternet (ISAPI) proporciona un conjuntode interfaces para crear tanto extensionescomo filtros para el Internet InformationServer. Un filtro ISAPI es bsicamente unaDLL cargada por el IIS que examina y modi-fica, si ello es necesario, los datos de entra-da y/o salida del IIS. Los mbitos de aplica-cin pueden afectar a seguridad-encripta-cin, compresin, logs, autenticacin, etc.Las extensiones amplan y mejoran las fun-cionalidades del servidor (IIS), proporcio-nando una funcionalidad semejante a la delos CGI, permitiendo as crear contenidosdinmicos. El servidor IIS delega en laextensin la creacin de los datos solicita-dos, pudiendo descargar la DLL transcurri-do un tiempo sin actividad. La ventaja deusar extensiones es que se puede trabajar anivel de cabeceras HTTP de forma fcil.

    La estructura y ciclo de ejecucin de una extensin IIS

    Una extensin de IIS incluye normalmentela definicin de tres funciones: GGeettEExxtteennssiioonnVVeerrssiioonn es el punto de

    entrada de una extensin ISAPI y se eje-cuta siempre que se recarga la exten-sin. Su signatura es:BOOL WINAPI GetExtensionVersion(HSE_VERSION_INFO *pVer);

    El parmetro pVer es un puntero a una estructura que podemos rellenar coninformacin acerca de la extensin(nmero de versin y texto descriptivo). Por ejemplo: BOOL WINAPI GetExtensionVersion(OUTHSE_VERSION_INFO *pVer){pVer->dwExtensionVersion = MAKELONG(HSE_VERSION_MINOR, HSE_VERSION_MAJOR);lstrcpyn(pVer->lpszExtensionDesc,MidletServer for IIS,HSE_MAX_EXT_DLL_NAME_LEN);return TRUE;

    }

    TTeerrmmiinnaatteeEExxtteennss iioonn es la funcinque se llama cuando la extensin es des-cargada por el servidor. Esta funcin,aunque opcional, es interesante porquenos permite finalizar y liberar recursosque son usados durante la vida de laextensin. Su signatura es:

    BOOL WINAPI TerminateExtension(DWORD dwFlags);

    El nico parmetro, nos indica cundo laextensin va a ser descargada. Si el valor esHSE_TERM_ADVISORY_UNLOAD, pode-

    22

    DISPOSITIVOS MVILES

    http://digital.revistasprofesionales.com

    Figura 1. Una peticin HTTP puede servirnospar enviar archivos binarios al servidor usandocomo encoding el tipo multipart/form-data.

    Figura 2. Para poder administrar laextensin deberemos identificarnos enprimer lugar.

    Figura 3. La aplicacin desarrolladausar el mtodo POST para enviar laspeticiones del administrador.

  • SOLO PROGRAMADORES n 127

    mos retornar FALSE para indicar al servidorque no descargue la extensin. Si el valor esHSE_TERM_MUST_UNLOAD, la descargade la extensin no se puede cancelar.

    HHttttppEExxtteennssiioonnPPrroocc es invocada porel servidor IIS cada vez que se recibe unapeticin. Su prototipo es:DWORD WINAPI HttpExtensionProc(EXTENSION_CONTROL_BLOCK *pEcb);

    En sta funcin es el lugar donde el pro-gramador debe incluir el tratamiento y res-puesta a la peticin realizada. Para ello nosproporciona un puntero a una estructura detipo EXTENSION_CONTROL_BLOCK quecomo veremos es el elemento sobre el quepivota todo el cdigo de una extensin IIS.

    EXTENSION_CONTROL_BLOCK: La estructura

    Si hay un elemento fundamental en la pro-gramacin de las extensiones IIS, ese es sinduda alguna la estructura EXTENSION_CONTROL_BLOCK. Todos los datos quepodemos obtener de una conexin y todaslas funciones que podemos ejecutar refe-rente a una peticin vienen a travs de unainstancia de esta estructura. Los camposque contienen son: DDWWOORRDD ccbbSSiizzee: Indica el tamao de la

    propia estructura. DDWWOORRDD ddwwVVeerrssiioonn: Nmero de ver-

    sin de la estructura. EL HIWORD con-tiene el nmero mayor de la versin y elLOWORD contiene el nmero deversin menor.

    HHCCOONNNN CCoonnnnIIDD: Es el handle asociadoa la conexin establecida entre el clientey el servidor. Nos permite poder leery escribir por los canales de lectura yescritura. No se debe modificar suvalor.

    DDWWOORRDD ddwwHHttttppSSttaattuussCCooddee: Es elcdigo de estado de la transaccinen curso cuando la peticin hayafinalizado.

    CCHHAARR llppsszzLLooggDDaattaa[[HHSSEE__LLOOGG__BBUUFF--FFEERR__LLEENN]]: Permite indicar una cadenade caracteres acabada con terminadornulo para que se escriba en el fichero delogs del servidor IIS y que puede serusado con propsitos de anlisis porparte del administrador.

    LLPPSSTTRR llppsszzMMeetthhoodd: Es un puntero auna cadena con el mtodo de conexin(GET, POST...)

    LLPPSSTTRR llppsszzQQuueerryySStt rr iinngg: Es unacadena de caracteres que contiene laconsulta o query de una peticin (recor-dar el formato de una URL). Es equiva-lente a usar la funcin GetServerVariable especificando comonombre de variable QUERY_STRING.

    LLPPSSTTRR llppsszzPPaatthhIInnffoo: Es una cadenade caracteres que contiene la va deacceso proporcionada por el cliente. Esequivalente a usar la funcin GetServerVariable especificando comonombre de variable PATH_INFO.

    LLPPSSTTRR llppsszzPPaatthhTTrraannssllaatteedd: Es equiva-lente a usar la funcin GetServerVariableespecificando como nombre de variablePATH_TRANSLATED.

    LLPPSSTTRR llppsszzCCoonntteennttTTyyppee: Contiene elvalor de la cabecera HTTP Content-Type.

    LLPPBBYYTTEE llppbbDDaattaa: Es un puntero albuffer que contiene los datos enviadospor el cliente. Aunque no tiene porquecontener todos los datos enviados.

    DDWWOORRDD ccbbTToottaallBByytteess: Es el nmerototal de bytes recibidos desde el clienteen el entity. Es el valor de la cabeceraHTTP Content-Length.

    DDWWOORRDD ccbbAAvvaa ii ll aabb llee: Nmero debytes disponibles en el buffer apuntadolpbData. Si coincide con el valor decbTotalBytes, todos los datos estn enel buffer. En caso contrario se debeleer el resto usando la funcinReadClient.

    Las APIs del IISTodas las APIs de IIS que se pueden ejecu-tar en una extensin con respecto a unaconexin, las proporciona la instancia de laestructura EXTENSION_CONTROL_BLOCK.Esta estructura define cuatro punteros afunciones:

    GGeettSSeerrvveerrVVaarr iiaabbllee permite obtener elvalor de todas las variables de servidorrelacionadas con la peticin. Ademsnos permite acceder a los headers HTTPde la peticin en curso. Su prototipo es:

    BOOL (WINAPI *GetServerVariable)(HCONN hConn,LPSTR lpszVariableName, LPVOIDlpvBuffer, LPDWORD lpdwSize);

    Donde hConn es el handle que indica elcanal de comunicacin en uso.lpszVariableName hace referencia a lavariable de la que se quiere obtener el valor.En el cuadro Variables del servidor pode-mos ver algunas de las variables que pode-mos consultar. Para acceder a las headersHTTP, se debe especificar el nombre de lacabecera en maysculas sustituyendo losguiones por lnea de subrayado y con elprefijo HTTP_. Por ejemplo, para conocerel valor de la cabecera Content-Type ten-dramos que especificar como nombre de lavariable HTTP_CONTENT_TYPE. En el cua-dro Campos de las cabeceras HTTP msusuales podemos ver algunas de las varia-bles. lpvBuffer es el buffer donde sedevuelve el valor de la funcin. lpdwSizees un puntero a una variable que indica eltamao mximo del buffer. Al finalizar lapeticin indica el nmero de bytes queocupa la respuesta:

    std::stringGetVariable(EXTENSION_CONTROL_BLOCK*pECB, const std::string & inName){char szValue[512];

    DWORD dwBuffSize = sizeof(szValue) - 1;

    /*HTTP_USER_AGENT ALL_HTTPALL_RAW... o cualquier otra*/if(pECB->GetServerVariable(pECB->ConnID, (LPSTR)inName.c_str(),szValue, &dwBuffSize))

    return std::string(szValue);

    return std::string();

    }

    WWrriitteeCCll iieenntt nos proporciona la formade escribir datos por el canal de respues-ta. Su prototipo es:BOOL (WINAPI * WriteClient)(HCONNConnID, LPVOID Buffer, LPDWORDlpdwBytes, DWORD dwReserved);

    23

    Creacin de un sistema de distribucin de Midlets (I)DISPOSITIVOS MVILES

    http://digital.revistasprofesionales.com

    Figura 4. La aplicacin desarrolladacuenta con un interfaz con todos loselementos necesarios para gestionar laadministracin de Midlets.

  • SOLO PROGRAMADORES n 127

    El parmetro Buffer apunta a los datosque se quieren enviar al cliente.lpdwBytes es un puntero a una variableque contiene el nmero de bytes a enviary que retorna el nmero de bytes envia-

    dos. dwReserved sirve para indicar si laescritura va a ser sncrona o asncrona. Losvalores que puede tomar son:HSE_IO_SYNC

    HSE_IO_ASYNC

    En nuestra aplicacin usaremos el envode datos sncronos, aunque en aplica-ciones de grandes requisitos pueda seraconsejable el uso de la escritura asn-crona.

    RReeaaddCCll ii eenntt es usado para leer losdatos del entity que no estn disponi-bles directamente en el buffer apuntadopor el campo lpbData de la estructuraEXTENSION_CONTROL_BLOCK. Su sig-natura es:BOOL (WINAPI *ReadClient)(HCONN ConnID, LPVOID lpvBuffer, LPDWORD lpdwSize);

    Donde lpvBuffer apunta al buffer quecontiene los datos a enviar al cliente.lpdwSize es un puntero a una variableque contiene el nmero de bytes aleer y que retorna el nmero de bytesledos. SSeerrvveerrSSuuppppoorrttFFuunncctt iioonn nos permite

    ejecutar ciertas funciones de propsitogeneral especficas a la versin en usode IIS. Su signatura es: BOOL (WINAPI *ServerSupportFunction)(HCONN hConn,DWORD dwHSERequest, LPVOID lpvBuffer,LPDWORD lpdwSize, LPDWORDlpdwDataType);

    El parmetro dwHSERequest indica lafuncionalidad a usar. Los valores quepuede tomar son:HSE_REQ_SEND_URL_REDIRECT_RESP

    HSE_REQ_SEND_URL

    HSE_REQ_SEND_RESPONSE_HEADER

    HSE_REQ_DONE_WITH_SESSION

    HSE_REQ_END_RESERVED

    HSE_REQ_MAP_URL_TO_PATH

    HSE_REQ_GET_SSPI_INFO

    HSE_REQ_TRANSMIT_FILE

    Nosotros, en nuestra aplicacin, usaremosla funcin ServerSupportFunction con elparmetro HSE_REQ_SEND_RESPON-SE_HEADER. En este caso el parmetrolpvBuffer se utiliza para indicar el cdigode estado a retornar. Si el puntero es nuloes equivalente a explicitar 200 OK.lpdwSize indica el tamao del bufferlpdwDataType que sirve para cabecerasopcionales.

    Conclusiones

    En esta entrega hemos visto loselementos bsicos para implementar unaextensin IIS. Si bien lo aprendido puedeser usado para la creacin de unaextensin con propsitos mltiples, en elprximo artculo nos centraremos en laaplicacin de los conceptos para crearnuestro sistema de distribucin OTA quees el objetivo final de la serie. El lector encontrar en el cdigo fuenteque complementa a este artculo unaminuciosa explicacin de cmo ejecutar eladministrador de Midlets.

    24

    DISPOSITIVOS MVILES

    http://digital.revistasprofesionales.com

    Variables del servidorVariable Descripcin

    ALL_HTTP Devuelve todas las cabeceras HTTP que se han recibidopero anteponiendo el prefijo HTTP_.

    ALL_RAW Devuelve todas las cabeceras HTTP que se han recibidosin procesar.

    APPL_PHYSICAL_PATH Path fsico donde est situada la extensin.

    CONTENT_LENGTH Nmero de bytes en el entity o cuerpo de la peticin en curso.

    CONTENT_TYPE El tipo de contenido del entity.

    PATH_INFO Es la porcin de la URL despus del nombre de la extensin (DLL) y antes de la query si se ha proporcionado.

    PATH_TRANSLATED Conversin del PATH_INFO a su directorio fsico real.

    REMOTE_ADDR Proporciona la IP del cliente o agente (en el caso de haber un cortafuegos, proxy o gateway) que ha enviado la peticin.

    REMOTE_HOST Proporciona el nombre del cliente o agente que ha enviado la peticin.

    REMOTE_USER El nombre del usuario que se ha conectado. Si el nombrede usuario no necesita autenticacin (es annimo) elvalor ser una cadena vaca.

    REQUEST_METHOD El mtodo de conexin (GET, POST...).

    SERVER_NAME Es el nombre de Host o IP de la mquina del servidor.

    SERVER_PORT Es el puerto por el que se ha recibido la peticin.

    SERVER_PROTOCOL Especifica el nombre y versin del protocolo asociadoa la peticin (HTTP/1.x).

    SERVER_SOFTWARE Nombre y versin del web server.

    Figura 5. Todas las peticiones y accionesimportantes de la aplicacin quedanregistradas en los ficheros diarios de log.

  • SOLO PROGRAMADORES n 127 26

    MIDDLEWARE

    Novedades en los lenguajesde .NET 2.0 (y III)Novedades en los lenguajesde .NET 2.0 (y III)

    http://digital.revistasprofesionales.com

    Generics

    Hemos dejado para esta tercera y ltima entregauna de las novedades ms importantes que la nuevaversin de .NET Framework 2.0 nos trae. Comocomentamos de forma introductoria en el primerartculo de esta serie (vase Slo Programadores125), con generics podemos crear o usar clasescon mayor rendimiento y control, con la ventajaaadida de que una misma clase o coleccin puedesernos igualmente til sin importarnos (o casi) eltipo de datos que finalmente contendr.Para no reinventar la rueda, vamos a utilizar unejemplo clsico que clarifica perfectamente la uti-lidad de utilizar colecciones generics frente a lascolecciones clsicas.Cuando creamos una coleccin en .NET 1.x, el tipode datos que internamente usa la coleccin esObject. Esto es as, ya que al ser el tipo bsico detodos los tipos de .NET nos permite almacenar cual-quier tipo de datos. El problema que tienen lascolecciones de tipo Object, es que si bien podemosaadir nuevos elementos sin mucha prdida de ren-

    dimiento (salvo en el caso de los tipos por valor), eserendimiento se ve penalizado cuando accedemos alcontenido de la coleccin, ya que debemos haceruna conversin (cast) para poder recuperar el valoren el tipo que originalmente usamos para almace-narlo. Aunque esta peculiaridad no es la nica desventa-ja, ya que al ser una coleccin de tipo Object, nopodremos controlar qu tipo de datos se aaden, yaque cualquier tipo que usemos ser vlido, por lasencilla razn de lo que hemos comentado antes:todos los tipos de .NET se derivan de Object. Parapoder restringir el tipo de datos, debemos hacernuestras propias comprobaciones en el cdigo, yaque, por ejemplo, aunque nuestra intencin seaalmacenar solamente datos de tipo Cliente, nadanos impide aadir una cadena o un valor entero. Lanica forma que tendramos de admitir slo obje-tos de tipo Cliente sera creando nuestra propiacoleccin personalizada.

    Generics en VB y en C#En este artculo veremos los tipos generic tanto desde elpunto de vista del desarrollador de Visual Basic como el deVisual C# e intentaremos mostrar las diferencias al usarlosdesde estos dos lenguajes.

    Pero si la coleccin es generic, podemos hacer res-tricciones y de esa forma ser el propio compiladorel que se encargue de hacer las comprobacionespertinentes, de forma que slo admita los tipos dedatos que hemos indicado al crear la coleccin.En los listados 1 y 2 (VB y C# respectivamente)podemos ver un ejemplo de estos dos casos, el pri-mero es usando una coleccin de tipo ArrayList ala que podemos aadir datos de distintos tipos, y enel segundo, usamos una coleccin genrica (List) ala que limitaremos el tipo de datos que podemosaadir para que slo admita cadenas.La primera coleccin del tipo ArrayList admitecualquier tipo de datos, si nuestra intencin esmantener slo elementos numricos, nada nosimpide agregar uno de cualquier otro tipo, sinembargo, en la segunda coleccin hemosusado una del espacio de nombresSystem.Collections.Generic a la que le indicamosque el tipo de datos que contendr ser de tipocadena (string). Esta coleccin no slo contendr

    Para finalizar esta serie de tresartculos sobre las novedades de.NET Framework 2.0 y los doslenguajes principales (VB y C#),vamos a ver una de las caractersticasque ms darn que hablar, y de la quetambin se escribir bastante: lostipos generic.

    GUILLERMO SOM EL GUILLE (MVP de Visual Basic desde 1997)

    Los tiposgeneric

    permiten la creacin de tipos

    de uso general sinprdida de

    rendimiento

    LISTADO 1 Ejemplos con colecciones normales y del tipo generic (VB)

    Sub Main()Dim lista1 As New System.Collections.ArrayListlista1.Add(Pepe)lista1.Add(12)

    Dim lista3 As New System.Collections.Generic.List(Of String)lista3.Add(Hola)lista3.Add(22)

    End Sub

  • SOLO PROGRAMADORES n 12727

    MIDDLEWARE

    http://digital.revistasprofesionales.com

    internamente objetos del tipo indicado sinoque en tiempo de compilacin se comprobarque el valor asignado sea del tipo correcto, encaso contrario se producir un error, que en elcaso de Visual Basic, ste se mostrar justocuando escribamos el cdigo, mientras que sielegimos C#, el error se producir al compilar.Adems, el IDE de Visual Basic nos ofreceayuda para corregir el error, tal como pode-mos ver en la figura 1.

    El IDE de Visual BasicRealmente esta ayuda que ofrece Visual Basic no estrelacionada con los generics, sino con el propio IDE.De esta y otras peculiaridades o novedades delentorno de desarrollo de Visual Studio nos ocupare-mos en prximos nmeros de la revista.

    Como podemos comprobar en el listado 1, paradeclarar una coleccin generic en VisualBasic debemos usar la instruccin Of seguidadel tipo de datos que queremos que contengadicha coleccin. Esta sintaxis es muy til paralos angloparlantes, ya que se leera como: listof string (lista de string). En C# la sintaxis esdiferente y se utiliza el tipo de datos a usar porla coleccin generic encerrado entre signosde mayor y menor. Aunque la recomendacinpara leer este tipo de declaraciones es de lamisma manera que en VB: lista de string.Esta peculiaridad (o forma de actuar) de losgenerics est implementada en el propio CLR(el runtime de .NET Framework), por tanto el

    cdigo de Visual Basic y C# es mutuamentecompatible, ya que el cdigo IL (IntermediateLanguage o lenguaje intermedio) generadopor los compiladores es el que finalmente seusar en tiempo de ejecucin. Esto significaque es el CLR el que realmente se encarga degestionar todo lo relacionado con las clases y