-
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