SistemaWebconAccesoaBasesdeDatos Multiplataforma a Través de Teléfonos Celulares

Tamaño: px
Comenzar la demostración a partir de la página:

Download "SistemaWebconAccesoaBasesdeDatos Multiplataforma a Través de Teléfonos Celulares"

Transcripción

1 Universidad Nacional del Nordeste Facultad de Ciencias Exactas, Naturales y Agrimensura Trabajo Final de Aplicación SistemaWebconAccesoaBasesdeDatos Multiplataforma a Través de Teléfonos Celulares Sofia J. Vallejos- L.U.: Prof. Coordinador: Agr. Castor Herrmann Prof. Orientador: Mgter. David Luis la Red Martínez. Licenciatura en Sistemas de Información Corrientes- Argentina 2010

2

3 EnmemoriademiabueloPedroR.Vallejos

4

5 Prefacio Enlos últimos años,la evolución de latecnologíaha dado un saltoinesperado. El boom tecnológico de la nueva generación se traduce en términos de telefonía celular e Internet, las cuales, más que ser realidades separadas se complementan. Sinembargo,eldesarrollodeestosdostiposdetecnologíallegaaunpunto en el cual convergen, y es cuando la red de comunicaciones a nivel mundial se abre y sobrepasa las expectativas de sus creadores; Internet deja de ser parausoexclusivo de lamilicia yelgobierno,ycombinada con losservicios de telefonía se transforma en un medio de interacción social que actualmente estápresenteentodoslosámbitosdelavidadiaria. En la actualidad, estas tecnologías se combinan en una sola; los celulares ya noselimitanalafuncióndecomunicaradospersonasentresí,sinoqueahora han evolucionado hasta incluir modalidades como el acceso a Internet en casi todos sus aspectos(transmisión de datos, mp3, tele conferencia, transmisión de archivos fotográficos y videos, etc.). Esto trae consigo inumerables ventajas; acelera el ritmo de obtención de información, facilita las comunicaciones, reduce los tiempos de emisión y respuesta; es decir, transforma la vida diaria en todo un acontecimiento tecnológico, todo esto anudado al crecimiento económico de las sociedades, y más allá, atodosloscambiosenelordennaturaldelascosasquelatecnologíagenera. Habiendo observado de manera amplia y constante los numerosos cambios que la telefonía móvil y la Internet han dictado sobre la comunidad global, surge en mi el interés por conocer más detalladamente los aspectos que delinean esta revolución en nuestro propio entorno. Para satisfacer lo anteriormente mencionado, en este trabajo se propuso el desarrollo de una aplicación con software de computación móvil multiplataforma, que permita el acceso a información situada en una base de datos multiplataforma en un servidor Web, a través de dispositivos móviles tales como teléfonos celulares. La aplicación contempla el registro y seguimiento de información propia de una entidad farmacéutica, es decir la información pertinente del cliente, la compra de productos y medicamentos de venta libre. Esto significa para los clientes la posibilidad de auto gestionar sus compras

6 en cualquier momento y en cualquier lugar sin tener que asistir físicamente a las sucursalesdelafarmaciayconsólolaayudadeunteléfonocelularmoderno. AsuvezsepropusoeldesarrollodeunaplataformaWebdelaaplicación que sea accesible desde la Intranet, que contemple funciones adicionales como ser: registro de usuarios, control de stock de los productos y medicamentos de venta libre. Se propuso también el desarrollo de un sitio Web accesible desde Internet, que simula ser el sitio de una farmacia, el cual contemple funciones de e-commerce como ser: registro de clientes, venta de los productos y/o medicamentos on-line, permitiendo a un cliente poder realizar su compra de manera virtual. Objetivos Logrados Se han alcanzado plenamente la totalidad de los objetivos planteados para el presente trabajo: Desarrollo de una aplicación utilitaria empleando un software de computación móvil multiplataforma para teléfonos celulares, que permita acceder a información remotasituada en unabase de datos que se encuentra en un servidor web. Desarrollodelaplataformawebdelaaplicaciónconaccesosabasede datos,quesirvadeapoyoalaaplicaciónmóvil. Clasificación del Trabajo El trabajose encuadra en lautilización de softwaredebasequepermite el desarrollo de aplicaciones que permitan el acceso a bases de datos multiplataformas desde dispositivos móviles tales como teléfonos celulares. Etapas de Desarrollo Se ha efectuado una amplia recopilación bibliográfica específica a los temas pertinentes a la tarea planificada y a los productos de software que se emplearon para la concreción del Trabajo Final. Gracias a las gestiones realizadas por el Profesor Orientador Mgter. David Luis la Red Martinez ante IBM Argentina se han recibido materiales tanto en CD s como en libros de dicha empresa, en el marco

7 de Scholars Program de la misma, destinado a Universidades de todo el mundo; se destacan por ser necesarios para la realización del presente Trabajo Final los referentes productos de software como los siguientes: Rational Application Developer for WebSphere Software versión 6.0. DB2 Express-C versión 9.7. Se ha efectuado un estudio acerca de las arquitecturas de aplicaciones móviles. Se ha realizado el análisis y diseño de la base de datos que utiliza la aplicación. SeharealizadoelestudiodelmanejadordebasesdedatosDB2Express- C para Windows. Se ha realizado un detallado estudio del J2ME (versión de Java para móviles), para la herramienta de desarrollo NetBeans IDE versión Se ha realizado un detallado estudio del software para el desarrollo de la plataforma web de la aplicación, Rational Application Developer for WebSphere Software versión 6.0. Se ha desarrollado el aplicativo móvil con la utilización del lenguaje Java, versión J2ME. En el marco de la herramienta Rational Application Developer for Web- Sphere Software se desarrolló el módulo web del aplicativo utilizando páginas XHTMLs y Servlets de Java. Una vez finalizada la etapa de desarrollo se realizaron las siguientes actividades: Instalación y configuración del Rational Application Developer for WebSphere Software, utilizando como servidor web al servidor Tomcat vesión 5.0, el cual se encuentra embebido en dicha herramienta. Empaquetado de la aplicación móvil para su distribución e instalación en los teléfonos celulares. Instalación de emuladores de teléfonos celulares que fueron descargados desde los sitios webs de los fabricantes de los mismos. Instalación y prueba de la aplicación tanto en los emuladores como así también en teléfonos celulares reales.

8 Testeo del sistema, simulando un escenario real realizando pruebas de conexión entre el sistema móvil y el servidor web a través de Internet. FinalizadalaaplicaciónserealizólagrabaciónenDVDdetodoelmaterial correspondiente al trabajo final: una versión de la aplicación, otra referenteallibroenformatolatexyelpdfgenerado.tambiénseincluyó los instaladores de los productos utilizados para el desarrollo, es decir DB2 Express-C, Rational Application Developer for WebSphere, NetBeans IDE y emuladores. Organización del Informe Final El Trabajo Final de Aplicación comprende un informe final impreso y un DVDademásdeunresúmenydeunresúmenextendido. El informe final está organizado en capítulos los que se indican a continuación: Introducción: Se presenta una visión global acerca de las nuevas tecnologías de información y comunicaciones, como así también las principales características de la tecnología móvil, computación ubicua y de la sociedad de la información y el conocimiento. Comercio Electrónico: Se indican definiciones y las principales características del Comercio Electrónico. El Mundo Móvil: Se indican las principales características de la evolución de los sistemas de telefonía móvil. Aplicaciones Móviles: Se explican los requerimientos necesarios para una aplicación móvil. Java: Se presentan los principales aspectos y destacadas características referidas al lenguaje. Java 2 Micro Edition: Se detallan conceptos y características del lenguaje Java para dispositivos electronicos con menos recursos. Introducción al DB2: Se detallan las más relevantes características de esta familia de productos de gestión de bases de datos.

9 Rational Application Developer for WebSphere Software: Presenta los principales aspectos de este entorno de aplicaciones complejas. NetBeans IDE: Presenta los principales aspectos de este entorno para el desarrolo de aplicaciones moviles. Tomcat: Presenta las principales características y aspectos de este servidorwebconsoportedeservletsyjsps. Descripción de la aplicación: Se describen todos los aspectos de la aplicación desarrollada utilizando las herramientas antes mencionadas. Conclusiones: Se presentan conclusiones a las que se ha llegado al finalizar el presente trabajo y posibles líneas futuras de acción. El DVD adjunto al informe final impreso, contiene lo siguiente: Instaladores del software utilizado. Resúmenes del trabajo realizado. Informe final en formato digital. Presentación para la defensa final. Aplicación desarrollada. Sofia J. Vallejos Licenciatura en Sistemas de Información Universidad Nacional del Nordeste L.U.: Corrientes; 10 de Diciembre de 2010

10

11 Índice general 1. Introducción VisiónGlobal ComputaciónUbicuaoPervasiva Principios HacialasCosasInteligenteseInterconectadas LaLeydeMooreylaVisióndeWeiser LaSociedaddelaInformaciónyelConocimiento DefinicióndeConocimiento ProcesodeFormacióndelConocimiento ClasesdeConocimiento CiclodelConocimiento CaracterísticasdelaSociedaddelConocimiento GestióndelConocimiento TecnologíasdelaGestióndelConocimiento Comercio Electrónico VisiónGlobal Definiciones OrigenyEvoluciónHistórica VentajasdelComercioElectrónico VentajasparalosClientes VentajasparalasEmpresas TiposdeComercioElectrónico B2B(Business-to-Business) B2E(BusinesstoEmploye) B2C(Business-to-Consumer) B2B2C M-Commerce ComercioElectrónicoenlaSociedaddelConocimiento

12 ÍNDICEGENERAL 2.8. Riesgos,UsosyTecnología Riegos Usos Teconolgíasqueemplea TiposdeRelaciones,CambiosyEfectos TiposdeRelacionesquePuedenPresentarse CambiosenlasEmpresas Efectos LosIntermediarios TiposdeIntermediarios El Mundo Móvil Evolución TeléfonosMóvilesdePrimeraGeneración SistemaAvanzadodeTelefoníaMóvil TeléfonosMóvilesdeSegundaGeneración D-AMPS- El Sistema Avanzado de Telefonía Móvil Digital GSM(Sistema Global Para Comunicaciones Móviles) CDMA(AccesoMúltipleporDivisióndeCódigo) TeléfonosMóvilesdeTerceraGeneración EDGE(Tasa de Datos Mejorada para la Evolución del GSM) GPRS(ServiciodeRadiodePaquetesGenerales) ServiciosAdicionalesdelasEmpresasTelefónicas ServiciosAnalógicos RecepciónyEnvíodeMensajesdeTexto ServiciosdeInformación MensajesMultimedia JuegosyAplicaciones InternetMóvil WAP IntroducciónaWAP Motivación ModelodeWAP Tecnología WAP Aplicaciones Móviles Introducción

13 ÍNDICEGENERAL 4.2. ArquitecturadeAplicacionesMóviles PortalParaAplicacionesMóviles ArquitecturadeBasesdeDatos AplicacionesMultiplataforma JavayMultiplataforma Java IntroducciónalLenguaje BibliotecasdeClasesEstándaresdeJava JavaesMultiplataforma CaracterísticasdelLenguaje EstructuradeunProgramaJava ConceptosBásicos Clases Herencia Interfaces Package VariablesdeJava DatosdeObjetosoInstancia DatosdeClase OperadoresdelLenguajeJava OperadoresAritméticos OperadoresdeAsignación OperadoresUnarios OperadorInstanceof OperadorCondicional OperadoresIncrementales OperadoresRelacionales OperadoresdeConcatenacióndeCaracteres EstructurasdeProgramación SentenciasoExpresiones Comentarios Bifurcaciones Bucles Servlets EstructuradeunServlet InstanciacióneInicialización ServiciodeDemanda Terminación JavaServerFaces

14 ÍNDICEGENERAL DesarrollandoAplicaciones Java 2 Micro Edition Introducción ComparacióndeVersiones AlgunasConsideracionesalDesarrollarenJ2ME ComponentesdeJ2ME MáquinasVirtualesJ2ME Configuraciones Perfiles Requerimientos Funcionales para Detectar una Aplicación J2ME LosMIDlets ElGestordeAplicaciones CiclodeVidadeunMIDlet EstadosdeunMIDlet ElPaquetejavax.microedition.midlet LaClaseMIDlet EstructuradelosMIDlets InterfacesGráficasdeUsuario LaClaseDisplay LaClaseDisplayable LasClasesCommandyCommandListener InterfazdeUsuariodeAltoNivel RMS(RecordManagementSystem) ModelodeDatos RecordStores CreacióndeunRecordStore ManipulacióndeRegistros OperacionesconRecordStores BúsquedadeRegistros ComunicacionesenJ2ME Clases y Conexiones del Generic Connection Framework ComunicacionesHTTP Introducción al DB BasesdeDatos ObjetivosdelasBasesdeDatos VentajasdelasBasesdeDatos SistemadeAdministracióndeBasesdeDatos

15 ÍNDICEGENERAL 7.3. OrganizacióndeBasesdeDatos BasesdeDatosJerárquicas BasesdeDatosenRed BasesdeDatosRelacional IntroducciónaDB2UDB CaracterísticasGeneralesdelDB2UDB DB2Express-C InformaciónTécnica DB2 para Linux, UNIX y Windows Características y Beneficios HerramientasdeDB Rational Application Developer QuéesRAD6.0? RationalSoftwareDevelopmentPlatform Rational Application Developer for WebSphere Software seextiendedeeclipse DesarrolloWeb DesarrollodeJava EditorVisualdeJava ServiciosdeDesarrolloWeb XMLparaelDesarrollo DesarrollodeBasededatos DesarrollodePortales DesarrolloJ2EE EquipodeDesarrollo EspecificacióndeArquitectura.UML PruebaseImplementación AsistenciaTécnicadeServidor WebSphereApplicationServer QuéesWebSphere? QueesWebSphereApplicationServer? Tomcat Descripción Entorno EstadodesuDesarrollo EstructuradeDirectorios CaracterísticasdelProducto Historia

16 ÍNDICEGENERAL 10.NetBeans Introducción Quéhaydenuevoen6.7.1? Tecnologíascompatibles: ServidoresdeAplicaciones: RequisitosdelSistema Configuracionesdehardwaremínimos SoftwareNecesario Compatibilidad NetBeansylasAplicacionesMoviles SDKdeNokiaS NuevoProyectoUtilizandoJ2ME Descripción de la Aplicación Introducción Estructuración Estructuración La Aplicación Móvil(Farmacia Corrientes Móvil) LaAplicaciónWeb EstructurasdeDatosUtilizadas Modelodedatos Conclusiones ConclusionesGenerales Conclusiones Acerca de las Tecnologías y Software Utilizados LíneasFuturasdeAcción Bibliografía 295 Índice alfabético 297

17 Índice de figuras 1.1. Mark Weiser( ), el Visionario de la Computación Ubicua LaCadenadelConocimiento LaEradelaInformación SistemaTelefónicoMóvil UncanalD-AMPScon3y6usuarios AlgunosJuegosConocidos ModeloWap ModelodelaRedWap PilasdeProtocolosTCP/IPyWAP ModelodeProgramaciónWap ModeloProxyparaWAP ArquitecturadeunPortalMóvil MecanismodeMensajes ProcesoCompilaciónyEjecución Jerarquía y Métodos de las Principales Clases para Crear Servlets CiclodeVidadeunServlet RequerimientodeunarchivoJSP RequerimientodeunServlet ArquitecturadelaPlataformaJava2deSun UbicacióndelasTecnologíasJava ProcesodeVerificación EntornodeEjecucióndeJ2ME CicloVidadeunMIDlet EstadosdeunMIDlet JerarquíadeClases UnMIDletyelRMS

18 ÍNDICEDEFIGURAS 6.9. AccesoaUnRMSaTravésdeUnMIDletSuite EstructuradeUnRecordStore EjemploenunemuladorNokia JerarquíadeInterfaces EstadosdeunaConexiónHTTP EstructuradeUnaBasedeDatos SistemadeAdministracióndeBasesdeDatos ModelodeBasesdeDatosJerárquica ModelodeBasesdeDatosenRed ModelodeBasesdeDatosRelacional AIVExtender XMLExtender CentrodeControl Lanzando Centro de Control de DB2 desde la bandeja de Windows ElEditordeComandosDB EliconoEditordeComandosenElCentrodeControl ElSQLAssist RAD.EntornodeTrabajo WebSphereparae-bussines AñadirPlatformaJava Ventana:NuevoProyecto Ventana:NombreyLocalización Ventana:SeleccióndelaPlataforma Ventana:ConfiguraciónAdicional CasodeUsodelSitema ArquitecturadelSistema PantallaPrincipalFarmaciaCorrientesMovil Inicio PantallasdeIngresoalSistema PantallaConectando PantallaError PantallaDatosdelCliente PantallaCatalogo(Rubros) Inicio Catalogo PantallaDescripcióndelaPresentación

19 ÍNDICEDEFIGURAS PantallaDescripcióndelaCompra PantallaCarrito PantallaFormadePago PantallaDatosRelevantesdelaFactura PantallaparaConfigurarlaURLdelServidor PantallaAyuda Inicio PestañaQuienesSomos Catálogo DescripcióndelProducto Cliente Registrarse Contacto Inicio(logueadoporelcliente) MiCarrito Pedido FacturaVirtual MensajeFindelaCompra FarmaciaMovil Inicio(Operador/Administrador) Inicio-Administrador NuevoProducto(pág1) NuevoProducto(pág2) NuevoProducto(pág.3) NuevoProducto(pág.4) NuevoProducto(pág.5) NuevoUsuario NuevaCuenta(pág.1) NuevaCuenta(pág.2) NuevaCuenta(pág.3) TablasqueIntegranlaBasedeDatosdelSistema ModeladodeDatos

20

21 Índice de cuadros 5.1. CategoríasdeVariables TiposPrimitivosdeDatos Operadoresdeasignación Operadoresrelacionales LibreríasdeconfiguraciónCDC LibreríasdeconfiguraciónCLDC LibreríasdelFondationProfile LibreríasdelPersonalProfile LibreríasdelMIDPProfile ClasesdelPaquetejavax.microedition.midlet MétodosdelaClaseDisplay MétodosdelaClaseDisplayable TiposdeCommands MétodosdelaClaseCommand TiposdeAlerta MétodosdelaClaseList MétodosdelaClaseForm MétodosdelaClaseStringItem MétodosdelaClaseImageItem MétodosdelaClaseTextField MétodosGeneralesdelaClaseRecordStore MétodosParaManejodeRegistros MétodosdelaClaseConnector TiposdePermisos MétodosenlaEtapadeEstablecimiento Tiposdepeticiones CamposdelaCabecera

22

23 Capítulo 1 Introducción 1.1. Visión Global La implantación en la sociedad de las denominadas Nuevas Tecnologías de la Comunicación e Información, está produciendo cambios insospechados respecto a los originados en su momento por otras tecnologías, como fueron la imprenta, y la electrónica. Sus efectos y alcance, no sólo se sitúan en el terreno de la información y comunicación, sino que lo sobrepasan para llegar a provocar y proponer cambios en la estructura social, económica, laboral, jurídicaypolítica.yelloesdebidoaquenosólosecentranenlacaptaciónde la información, sino también, a las posibilidades que tienen para manipularla, almacenarla y distribuirla. Las Nuevas Tecnologías de la Información y la Comunicación no son sólo invenciones geniales, tienen su justificación social ya que contribuyen a disminuir los costos de producción de bienes de la sociedad al incrementar la productividad e impulsar la investigación y el desarrollo. Ha surgido la llamada supercarretera de la información : Internet, la red de redes de computadoras, la gran autopista que conecta todas las redes de ordenadores del mundo; en ella la información fluye libremente y sin interrupciones, se comparte y se esparce, nadie aún ha sido capaz de calcular el volumen de información que almacena ni tampoco sus límites. Las Nuevas Tecnologías de la Información y la Comunicación rompen las barreras geográficas borrando las distancias físicas pero no rompen las barreras 1

24 2 CAPÍTULO 1. INTRODUCCIÓN sociales, mantienen e incluso incrementan las distancias sociales entre ricos y pobres. Una de sus ventajas es que en la actualidad el ritmo de producción de los conocimientos ha crecido vertiginosamente y se ha reducido el tiempo necesario para transformar el conocimiento básico en ciencia aplicada y ésta en tecnología la cual se difunde ampliamente a través de diferentes vías. Por tanto, las Nuevas Tecnologías de la Información y la Comunicación apesardesusventajas,nosonaccesiblesatodosporigual;esteaccesoestá mediado por factores económicos, se tiene información si se dispone de recursos necesarios para adquirirla. El efecto social de las redes y servicios telemáticos es difícil de predecir. El aumento del ancho de banda disponible será la base de las futuras innovaciones que pueden afectar profundamente a la sociedad humana. Las redes inalámbricas jugarán un papel muy importante, éstas hoy en día son una realidad, estamos acostumbrados a ver ordenadores portátiles conectados a Internet sin necesidad de cables, pequeños ordenadores de mano conectados con los ordenadores de la oficina, cada día aumenta más la creación de las redes inalámbricas ciudadanas, en la que voluntariamente y sin buscar beneficios más allá del uso de las tecnologías disponibles y el afán de aprender y practicar con ellas, hay ciudadanos que van poniendo a disposición de los demáspuntosdeaccesoaunaredquecadadíavacreciendomás,yquecada voluntario ayuda a que ésta crezca. Y todo este avance tecnológico no es más que el inicio de un mundo de posibilidades que se abren con este nuevo modelo de computación, denominado computación pervasiva o computación ubicua. Este modelo de computación ubicua significa básicamente la omnipresencia de computadores muy pequeños interconectados sin cables que se incorporan de forma casi invisible a cualquier objeto de uso cotidiano, y usando pequeños sensores unidos a estos computadores pueden detectar el entorno que les rodea y tienen capacidades tanto de procesar información como de comunicación. Una de las posibilidades es el comercio electrónico, el cual está cambiando la manera que los consumidores, comerciantes y empresas realizan sus transacciones. El comercio electrónico permite comprar, invertir, realizar operaciones bancarias, vender, distribuir en cualquier lugar en donde se pueda disponer de conexión a Internet y con la interconexión con las redes sin hilos con Internet desde cualquier lugar y cualquier momento que se desee.

25 1.2. COMPUTACIÓN UBICUA O PERVASIVA 3 El uso de teléfonos móviles para el acceso a Internet abre nuevas posibilidades en el comercio electrónico. el m-commerce, involucra tres aspectos básicos: oferta de los negocios y de servicios en un área circundante al usuario; información oportuna, georeferenciada mientras el usuario está en movimiento y posibilidad de completar la transacción en forma inmediata Computación Ubicua o Pervasiva MarkWeiser,enSeptiembrede1991,describiósuvisióndeloqueélllamaba computación ubicua, hoy llamada computación pervasiva. La esencia de su visión era la creación de entornos llenos de computación y de capacidad de comunicación, todo integrado de forma inapreciable junto a las personas. La visión de Weiser estaba bastante alejada de su época, entre otras razones porque no existía la tecnología necesaria para llevarla a cabo. Pero después demásdeunadécadadeprogresoenelcampodelosdispositivoshardware, las criticadas ideas de Weiser en 1991 ahora son productos comercialmente viables: Ordenadores de bolsillo. Redes inalámbricas. Sensores muy avanzados. Computación vestible Principios Uno de los principales objetivos de la computación ubicua es hacer desaparecer a los dispositivos computacionales haciéndolos situarse en un segundo plano. Este objetivo de crear dispositivos que se mezclen en la vida cotidiana hasta que lleguen a ser indistinguibles supone una potencial revolución que puede hacercambiarelmododevidadiario.laspersonassecentraránenlastareas que deben hacer, no en las herramientas que utilizan, porque se pretende que esas herramientas pasen desapercibidas.

26 4 CAPÍTULO 1. INTRODUCCIÓN El significado de enviar la computación a un segundo plano está referido a dos conceptos diferentes pero relacionados. El primero es el significado literal de que la tecnología de la computación se debe integrar en los objetos, cosas, tareas y entornos cotidianos. Y la segunda es que esta integración se debe realizar de forma que la introducción de la computación en estas cosas u objetos no interfieran con las actividades para las que son usadas, y que siempre proporcionen un uso más cómodo, sencillo y útil de esos objetos. Estos objetos cotidianos en los que se integra la tecnología de la computación pasan a tener una serie de propiedades que permiten la creación del entorno ubicuo buscado. Algunas de esas propiedades son: Comunicación entre dispositivos: Todos estos objetos dotados de capacidad de computación también tienen capacidad de comunicación, y no soloconelusuario,sinoconlosdemásobjetosintegradosquehayaasu alrededor. Poseen memoria: Además de poder comunicarse entre ellos e interactuar con los usuarios, estos dispositivos tienen capacidad de memoria y pueden utilizar esta memoria para una mejor interacción con el resto de dispositivos. Son sensibles al contexto: Estos objetos son sensibles al contexto, es decir, se adaptan a las posibles situaciones, como la situación geográfica, los dispositivos que hay a su alrededor, las preferencias de los usuarios, y actúan dependiendo de ese entorno que los rodea. Son reactivos: Estos objetos reaccionan al ocurrir determinados eventos, que pueden percibir en su entorno mediante sensores o a través de la interacción con otros dispositivos. El computador personal, Internet y la World-Wide Web han influido ya en muchosaspectosdelmundodelosnegociosyhayseñalesevidentesdeunaamplia convergencia de industrias enteras como la de los medios de comunicación, entretenimiento, electrónica de consumo, telecomunicaciones y tecnología de la información. La siguiente ola de la revolución tecnológica puede afectar directamente y en todos los aspectos de la vida cotidiana. Durantemásde30añoslaconocidaleydeMoore,segúnlacuallafuncionalidad de un procesador se duplica cada 18 meses, ha demostrado ser cierta.

27 1.2. COMPUTACIÓN UBICUA O PERVASIVA 5 Una mejora similar en prestaciones se aplica también a algunos otros parámetros importantes de la tecnología. Se afirma que la tendencia actual continuará duranteunoscuantosañosmás,loquehacequetodaestaáreadedesarrollo sea tan intrigante. Ahora parece que el futuro próximo estará caracterizado por pequeños computadores que se comunican de forma espontánea, que por supequeñotamañoyporsubajoprecio,seintegraránencasitodoslosobjetos cotidianos. La tecnología de la información por lo tanto se volverá ubicua e invadirá todos los aspectos de la vida de las personas. Los teléfonos móviles con acceso a Internet y los Asistentes Digitales Personales (Personal Digital Assistants, PDAs) que se comunican sin cables con otros dispositivos próximos a ellos son los primeros indicios de la era post-pc venidera. Al principio, el principal objetivo es permitir el acceso a la información de cualquier tipo desde cualquier lugar y en cualquier momento, lo que evidencia los esfuerzos actuales de la industria por integrar aparatos de información móviles y utilizables en procesos de negocios basados en la Web y escenarios de comercio electrónico. Sin embargo, a largo plazo, esta continua tendencia tecnológica puede dar lugar a la fusión del computador con los objetos cotidianos típicos para que se vuelva literalmente invisible Hacia las Cosas Inteligentes e Interconectadas Hoy, Internet conecta casi todos los computadores del mundo. Desde un punto de vista tecnológico, se podría describir a la computación ubicua como la posibilidad de conectar todo lo que hayen el mundo a Internet,para proporcionar información acerca de cualquier cosa, en cualquier momento, en cualquier sitio. Por decirlo de otra forma, el término computación ubicua significa la omnipresencia de computadores muy pequeños interconectados sin cables que se incrustan de forma casi invisible en cualquier tipo de objeto cotidiano. Usando pequeños sensores, estos procesadores incrustados pueden detectarelentornoquelesrodeayequiparasuobjetoconcapacidadestanto de procesar información como de comunicación.

28 6 CAPÍTULO 1. INTRODUCCIÓN LaLeydeMooreylaVisióndeWeiser LaleydeMoore,formuladaenlosañossesentaporGordonMoore,afirma que la capacidad de computación disponible en un microchip se multiplica pordosaproximadamentecada18mesesy,dehecho,estoharesultadoserun pronóstico extraordinariamente exacto del desarrollo del chip desde entonces. Yestaleysehavenidocumpliendohastaeldíadehoy,lacapacidaddecómputo de los procesadores avanza muy rápidamente. Pero no solo la capacidad de cómputo de los procesadores, sino también la capacidad de almacenamiento, el ancho de banda para las comunicaciones, en resumen, cada poco tiempo se tiene dispositivos más baratos, más pequeños y más potentes. Y no parece que se vaya a parar este crecimiento, sino todo lo contrario. Eltérminocomputación ubicua,fueacuñadohacemásdediezañospor MarkWeiser;verfig.1.1delapág.7,uninvestigadordelPaloAltoResearch Center de XEROX. Weiservelatecnologíasolamentecomounmedioparaunfinycomoalgo que debería quedar en segundo plano para permitir al usuario concentrarse completamente en la tarea que está realizando. En este sentido, considerar el computador personal como herramienta universal para la tecnología de la información sería un enfoque equivocado, ya que su complejidad absorbería demasiado la atención del usuario. Según Weiser, el computador como dispositivo dedicado debería desaparecer, mientras que al mismo tiempo debería poner a disposición sus capacidades de procesamiento de la información[20]. Weiser ve el término computación ubicua en un sentido más académico e idealista centrada en la persona, como una visión de tecnología discreta, mientras que la industria ha acuñado por eso el término computación pervasiva, o ampliamente difundida con un enfoque ligeramente diferente. Aunque su visión siga siendo todavía integrar el procesamiento de la información en objetos cotidianos de forma casi invisible, su objetivo principal es utilizar tales objetos en un futuro próximo en el ámbito del comercio electrónico y para técnicas de negocios basados en la Web[18]. Mark Weiser fue un principal científico de Xerox Parc y ampliamente considerado como el padre de la computación ubicua (conocida también como ubicomp). Weiser nació en Harver, un barrio exterior de Chicago, Illinois; estudió ciencias de la computación y comunicación en la Universidad de Michingan,

29 1.3. LASOCIEDADDELAINFORMACIÓNYELCONOCIMIENTO 7 Figura 1.1: Mark Weiser( ), el Visionario de la Computación Ubicua sededicóaladocenciaduranteochoañosencienciasdelacomputaciónenla Universidad de Maryland, Clollege Park. Mientras Weiser trabajaba para una variedad de compañías relacionadas a la computación, su trabajo fue en el campo de la computación ubicua mientras dirigíaellaboratorio de ciencias decomputaciónde Parc, al cualse unió en 1987, Se convirtió en la cabeza del laboratorio de ciencias de la computación en 1988 y el oficial primero de la tecnología en 1996, simultáneamente fue autor de más de 75 publicaciones La Sociedad de la Información y el Conocimiento Es un hecho de la realidad que los vertiginosos avances que presentan las TICs(Tecnologías de la Información y de las Comunicaciones) han convertido al planeta en lo que se ha de llamar la aldea global [1],permitiendo que la sociedad sea conocida como la Sociedad de la Información y el Conocimiento ocibersociedad,enlacuallaprofusiónderedesdedatoshapermitidointerconectar una diversidad de equipos informáticos de diferentes tecnologías de hardware y de software constituyendo una enorme red mundial multiplataforma,quehageneradounanuevaformadeinteraccióndelaspersonasydela empresas, impactando en la educación, las actividades sociales, el comercio, etc.

30 8 CAPÍTULO 1. INTRODUCCIÓN Definición de Conocimiento El conocimiento es materia de estudio de distintas disciplinas, tales como la filosofía, la gestión empresarial, y más recientemente la informática, por ello se encuentran distintas definiciones del término conocimiento según el punto de vista e interés de quienes se pronuncien. Antes de definir conocimiento algunos autores se apoyan a las definiciones de otros dos conceptos: dato e información. Dato: antecedente necesario para llegar al conocimiento exacto de una cosa o para deducir las consecuencias legítimas de un hecho. Información: acción y efecto de informar e informarse. Conocimiento: acción y efecto de conocer. Noción, ciencia, sabiduría. También se puede definir al conocimiento como: Es el conjunto de experiencias valores e informaciones dotadas de significado que facilitan el marco idóneo para evaluar nuevas informaciones e incorporar nuevas experiencias [11] Proceso de Formación del Conocimiento Comprende los siguientes pasos: Datos: Hechos y expresiones percibidos, por ejemplo una secuencia de números, letras. Información: Datos organizados bajo patrones explicativos; conjunto coherente de datos que transmite un mensaje. Conocimiento: Información elaborada de modo que comporta significado ypuedeserutilizadaenlatomadedecisiones. Sabiduría: Conocimiento reutilizado y proceso de retroalimentación de los conocimientos.

31 1.3. LASOCIEDADDELAINFORMACIÓNYELCONOCIMIENTO Clases de Conocimiento El conocimiento puede dividirse en: Conocimiento tácito Conocimiento explícito El conocimiento tácito es aquel que no está registrado por ningún medio y que solo se obtiene mediante la adquisición de conocimientos de manera práctica y solo es posible transmitir y recibir consultando directa y específicamente al poseedor de estos conocimientos. También el conocimiento tácito es aquel conocimiento que no está registrado(elquesetieneenlacabeza).eslaintuición,opinión,lascreencias,la experiencia. El conocimiento tácito como la percepción subjetiva o las emociones, no se puede instrumentalizar y se transmite en determinados contextos y acciones. Elconocimientotácitoeselconocimientoqueposeenlaspersonasyqueesinseparable de su experiencia y puede ser compartido o intercambiado, mediante contactos directos. El conocimiento explícito se trata del conocimiento basado en datos concretos, con lo que sería suficiente su conocimiento para el aprovechamiento de los mismos, sin necesidad de interpretación alguna, expresándolo de una manera simple, es la teoría. El conocimiento explícito es el conocimiento tácito codificado y vertido en algún soporte de almacenamiento y comunicación. Este conocimiento se puede expresar mediante palabras y números, y es fácil de transmitir. Es un conocimiento formal que puede plasmarse en documentos de una organización tales como informes, patentes, manuales, imágenes, esquema, software, productos, diagramas organizativos, etc Ciclo del Conocimiento Se fundamenta en dos pilares: La cadena del conocimiento.

32 10 CAPÍTULO 1. INTRODUCCIÓN La transformación del conocimiento tácito y explícito. El conocimiento tácito encauzado de forma correcta, genera conocimiento explícito(ejemplo almacenándolo en una base de datos). El ciclo de vida del conocimiento depende de la distinción entre conocimiento tácito y conocimiento explícito;(ver fig. 1.2 de la pág. 10). Ambos tipos de conocimientos son necesarios y se produce una realimentación continua entre ambos. Comprende la trasformación de: Datos en Información. Información en conocimiento. Conocimiento en acciones/decisiones. La experiencia del conocimiento en sabiduría. Figura 1.2: La Cadena del Conocimiento Características de la Sociedad del Conocimiento Esunarealidadquelanuevasociedadestábasadaenelconocimientomás que en la información. El conocimiento es información almacenada por las personas. La materia prima es la información, el producto es el conocimiento; ver fig. 1.3delapág.11.

33 1.3. LA SOCIEDAD DE LA INFORMACIÓN Y EL CONOCIMIENTO 11 Figura1.3:LaEradelaInformación Es dificil predecir cómo será la nueva sociedad y, por lo cual, difícil de definir con precisión sus características básicas. La nueva sociedad plantea nuevos requisitos para las personas, que deberán adquirir y mantener una cultura de la información. Se puede diferenciar entre una economía de la información y una sociedad del conocimiento. Un país puede entrar en una economía de la información mediante un esfuerzo de inversión de equipos y sistemas, o con políticas de fomento de las redes de comunicación, pero estas características no incluyen necesariamente el desarrollo de la nueva sociedad que dependerá más de la existencia de una cultura de la información suficientemente desarrollada. Es preciso fomentar la creación de redes, equipos y sistemas de información yfavorecerelingresodelapoblaciónenlaculturadelainformación,apartir de un pacto social. Este nuevo pacto debería ser plural, uniforme y no dirigido, diseñado desde la realidad más cercana de los ciudadanos. Los requisitos de la nueva sociedad plantean la necesidad de realizar un esfuerzo permanente de adaptación individual y colectiva. La persona instruída(persona con conocimiento) pasará a ser el nuevo protagonista de la sociedad del conocimiento, que aplica su saber a los problemas presentes y ayuda a asentar las bases del futuro.

34 12 CAPÍTULO 1. INTRODUCCIÓN Gestión del Conocimiento La Gestión del Conocimiento corresponde al conjunto de actividades desarrolladas para utilizar, compartir, desarrollar y administrar los conocimientos que posee una organización y los individuos que en esta trabajan, de manera de que estos sean encaminados hacia la mejor consecución de sus objetivos. Inicialmente la gestión del conocimiento se centró exclusivamente en el tratamiento del documento como unidad primaria, pero actualmente se han producido grandes avances. Hoy es necesario buscar, seleccionar, analizar y sintetizar críticamente o de manera inteligente y racional la gran cantidad de información disponible, con el fin de aprovecharla con el máximo rendimiento social o personal. Estadisciplinanoesnueva,sinoquesusraícesseremontanalainteligencia artificial, cuyo objetivo final ha sido la sintetización del comportamiento humano mediante ordenadores. Las Bases de Conocimiento son depósitos o almacenes de datos (repositorios) del conocimiento del negocio (funciones, reglas, cálculos, informes) totalmente independiente de la plataforma de ejecución, que mediante tecnologías de inteligencia artificial son capaces de deducir, generar y mantener automáticamente estructuras normalizadas de bases de datos y programas. La atención que se está prestando a la gestión del conocimiento está creciendo a una velocidad impresionante. Revistas, diarios de economía y libros publican innumerable teorías y casos sobre gestión del conocimiento y sus tópicos Tecnologías de la Gestión del Conocimiento Las tecnologías de GC deben permitir: Identificar conocimientos necesarios. Identificar dónde y quién tiene el conocimiento o si necesita ser creado. Reunir y capturar el conocimiento encontrado. Resumir y sintetizar la información.

35 1.3. LA SOCIEDAD DE LA INFORMACIÓN Y EL CONOCIMIENTO 13 Distribuir la información a distintos niveles. Actualizar, eliminar y modificar el conocimiento obsoleto. La Gestión del Conocimiento es la mezcla de los siguiente factores: Personas: Aquellas que producen y aquellas que utilizan conocimiento queserálabaseparalaacción. Contenido: El flujo de datos, información y conocimiento importantes eneléxitodelnegocio. Tecnología: Se refiere a la infraestructura técnica que se encarga de la captura, almacenamiento y distribución del contenido a aquellas personas que lo necesitan, en el lugar y momento oportuno.

36

37 Capítulo 2 Comercio Electrónico 2.1. Visión Global Las redes mundiales de información están transformando al mundo y acercando más a la gente a través de la innovación de las comunicaciones mundiales, lo cual posibilita cambios en todos los ámbitos de la actividad humana, por ejemplolacompetitividad,elempleoylacalidaddevidadelasnaciones.con las nuevas tecnologías, el tiempo y la distancia dejan de ser obstáculos, los contenidos pueden dirigirse a una audiencia masiva o a un pequeño grupo de expertos y buscar un alcance mundial o meramente local. Las redes mundiales de información, como Internet no conoce fronteras. Internet es un medio de comunicación global, que permite el intercambio deinformaciónentrelosusuariosconectadosalaredyqueconectaaunos8 millones de servidores encargados de servicios de información y de todas las operaciones de comunicación y de retransmisión; llega hasta unos 250 millones de usuarios en más de 100 países. Internet ofrece una oportunidad única, especial y decisiva a organizaciones de cualquier tamaño. Larápidadifusiónyelgraninterésenelmundodelainformática,hapermitido la creación de tecnología Internet/ Web, una herramienta fundamental para redes de computadoras y sus usuarios. Internet ofrece un nuevo mercado que define la economía digital. Los productores, proveedores de bienes/ servicios y usuarios logran tener acceso y transmisión mundial de la información y esparcimiento en forma sencilla y económica, sea con fines comerciales 15

38 16 CAPÍTULO 2. COMERCIO ELECTRÓNICO o sociales. La apertura de mercados es fundamental para el rápido crecimiento del uso de nuevos servicios y la asimilación de tecnologías nuevas. En la práctica, las empresas están comenzando a usar Internet como un nuevo canal de ventas, sustituyendo las visitas personales, correo y teléfono por pedidos electrónicos, ya que gestionar un pedido por Internet cuesta 5% menos que hacerlo por vías tradicionales. Nace entonces el comercio electrónico, como una alternativa de reducción de costos y una herramienta fundamental en el desempeño empresarial. Sin embargo, la aparición del comercio electrónico obliga claramente a replantearse muchas de las cuestiones del comercio tradicional, surgiendo nuevos problemas, e incluso agudizando algunos de los ya existentes. En ese catálogo de problemas, se plantean cuestiones que van, desde la validez legal de las transacciones y contratos sin papel, la necesidad de acuerdos internacionales que armonicen las legislaciones sobre comercio, el control de las transacciones internacionales, incluido el cobro de impuestos, la protección de los derechos de propiedad intelectual, la protección de los consumidores en cuanto a publicidad engañosa o no deseada, fraude, contenidos ilegales y uso abusivo de datos personales, hasta otros provocados por la dificultad de encontrar información en Internet, comparar ofertas y evaluar la fiabilidad del vendedor y del comprador en una relación electrónica, la falta de seguridad de las transacciones y medios de pago electrónicos, la falta de estándares consolidados, la proliferación de aplicaciones y protocolos de comercio electrónico incompatibles y la congestión de Internet[5] 2.2. Definiciones Es la aplicación de la avanzada tecnología de información para incrementar la eficacia de las relaciones empresariales entre socios comerciales. La disponibilidad de una visión empresarial apoyada por la avanzada tecnología de información para mejorar la eficiencia y la eficacia dentro del proceso comercial. Es el uso de las tecnologías computacional y de telecomunicaciones que se realiza entre empresas o bien entre vendedores y compradores, para apoyar el comercio de bienes y servicios. Conjugando estas definiciones se puede decir que el comercio electrónico es

39 2.3. ORIGEN Y EVOLUCIÓN HISTÓRICA 17 una metodología moderna para hacer negocios que detecta la necesidad de las empresas, comerciantes y consumidores de reducir costos, así como mejorar la calidaddelosbienesyservicios,ademásdemejorareltiempodeentregade los bienes o servicios. Por lo tanto no debe seguirse contemplando el comercioelectrónicocomounatecnología,sinoqueeselusode latecnologíapara mejorar la forma de llevar a cabo las actividades empresariales. Ahora bien, el comercio electrónico se puede entender como cualquier forma de transacción comercial en la cual las partes involucradas interactúan de manera electrónica en lugar de hacerlo de la manera tradicional con intercambios físicos o trato físico directo. Actualmente la manera de comerciar se caracteriza por el mejoramiento constante en los procesos de abastecimiento, y como respuesta a ello los negocios a nivel mundial están cambiando tanto su organización como sus operaciones. El comercio electrónico es el medio de llevar a cabo dichos cambios dentro de una escala global, permitiendo a las compañías ser más eficientes y flexibles en sus operaciones internas, para así trabajar de una manera más cercana con sus proveedores y estar más pendiente de las necesidades y expectativas de sus clientes. Además permiten seleccionar a los mejores proveedores sin importar su localización geográfica para que de esa forma se pueda vender aunmercadoglobal[3] Origen y Evolución Histórica El comercio, actividad ancestral del ser humano, ha evolucionado de muchas maneras.perosusignificadoysufinensiempreelmismo.segúneldiccionario consultor de economía, el comercio es el proceso y los mecanismos utilizados, necesarios para colocar las mercancías, que son elaboradas en las unidades de producción, en los centros de consumo en donde se aprovisionan los consumidores, último eslabón de la cadena de comercialización. Es comunicación y trato. En líneas generales, y con un sentido amplio, el comercio implica la investigación de mercado con el fin de interpretar los deseos del consumidor, la publicidad que anuncia la existencia del producto, la posibilidad de adquirirlo, yenquélugar,alavezqueseutilizanlosmétodosdepersuasión,laventaal por menor y finalmente, la adquisición por parte del público. Según lo expuesto, a través de los años han aparecido diferentes formas

40 18 CAPÍTULO 2. COMERCIO ELECTRÓNICO o tipos de comercio. A principio de los años 1920 en Los Estados Unidos apareció la venta por catálogo, impulsado por las grandes tiendas de mayoreo. Este sistema de venta, revolucionario para la época, consiste en un catálogo con fotos ilustrativas de los productos a vender. Este permite tener mejor llegada alaspersonas,yaquenohaynecesidaddetenerqueatraeralosclienteshasta loslocalesdeventa.estoposibilitóalastiendaspoderllegaratenerclientesen zonas rurales, que para la época que se desarrolló dicha modalidad existía una gran masa de personas afectadas al campo. Además, otro punto importante de esto es que los potenciales compradores pueden escoger los productos en la tranquilidad de sus hogares, sin la asistencia o presión, según sea el caso, de un vendedor. La venta por catálogo tomó mayor impulso con la aparición delastarjetasdecrédito;ademásdedeterminaruntipoderelacióndemayor anonimato entre el cliente y el vendedor. Amediadosde1980,conlaayudadelatelevisión,surgióunanuevaforma de venta por catálogo, también llamada venta directa. De esta manera, los productos son mostrados con mayor realismo, y con la dinámica de que pueden ser exhibidos resaltando sus características. La venta directa es concretada mediante un teléfono y usualmente con pagos de tarjetas de crédito. A principio de los años 1970, aparecieron las primeras relaciones comerciales que utilizaban una computadora para transmitir datos. Este tipo de intercambio de información, sin ningún tipo de estándar, trajo aparejado mejoras delosprocesosdefabricaciónenelámbitoprivado,entreempresasdeunmismo sector. Es por eso que se trataron de fijar estándares para realizar este intercambio, el cual era distinto con relación a cada industria. Un ejemplo conocido de esto es el caso del Supermercado mayorista Amigazo. A mediados de los años 1980 esta empresa desarrolló un sistema para procesar ordenes de pedido electrónicas, por el cual los clientes de esta empresa emitían ordenes de pedido desde sus empresas y ésta era enviada en forma electrónica. Esta implementación trajo importantes beneficios a Amigazo, ya que se eliminaron gran parte de errores de entregas y se redujeron los tiempos de procesamiento de dichas ordenes. El beneficio fue suficiente como para que la empresa Amigazo, instale un equipo a sus clientes habituales. Porotraparte,enelsectorpublicoelusodeestastecnologíasparaelintercambiodedatostuvosuorigenenlasactividadesmilitares.Afinesdelos años 1970 el Ministerio de Defensa de Estados Unidos inició un programa de investigación destinado a desarrollar técnicas y tecnologías que permitiesen intercambiar de manera transparente paquetes de información entre diferentes redes de computadoras; el proyecto encargado de diseñar esos protocolos

41 2.4. VENTAJAS DEL COMERCIO ELECTRÓNICO 19 de comunicación se llamo Internetting Project (de este proyecto de investigación proviene el nombre del popular sistema de redes), del que surgieron el TCP/IP(Transmission Control Protocol)/(Internet Protocol) que fueron desarrollados conjuntamente por Vinton Cerf y Robert Kahn y son los que actualmente se emplean en Internet. A través de este proyecto se logró estandarizar las comunicaciones entre computadoras y en 1989 aparece un nuevo servicio, la WWW (World Wide Web, Telaraña Global), cuando un grupo de investigadores en Ginebra, Suiza, ideó un método a través del cual empleando la tecnología de Internet enlazaban documentos científicos provenientes de diferentes computadoras, a los que podían integrarse recursos multimedia(texto, gráficos, música, entre otros). Lo másimportantedelawwwessualtoniveldeaccesibilidad,quesetraduce en los escasos conocimientos de informática que exige de sus usuarios. El desarrollo de estas tecnologías y de las telecomunicaciones ha hecho que los intercambios de datos crezcan a niveles extraordinarios, simplificándose cadavezmásycreandonuevasformasdecomercio,yenestemarcosedesarrolla el Comercio Electrónico[9] Ventajas del Comercio Electrónico Ventajas para los Clientes Permite el acceso a más información. La naturaleza interactiva del Web y su entorno hipertexto permiten búsquedas profundas no lineales que son iniciadas y controladas por los clientes, por lo tanto las actividades de mercadeo mediante el Web están más impulsadas por los clientes que aquellas proporcionadas por los medios tradicionales. Facilita la investigación y comparación de mercados. La capacidad del Web para acumular, analizar y controlar grandes cantidades de datos especializados permite la compra por comparación y acelera el proceso de encontrar los artículos. Abarata los costos y precios.

42 20 CAPÍTULO 2. COMERCIO ELECTRÓNICO Conforme aumenta la capacidad de los proveedores para competir en un mercado electrónico abierto se produce una baja en los costos y precios, de hecho tal incremento en la competencia mejora la calidad y variedad de los productos y servicios Ventajas para las Empresas Mejoras en la Distribución. El Web ofrece a ciertos tipos de proveedores(industria del libro, servicios de información, productos digitales) la posibilidad de participar en un mercado interactivo, en el que los costos de distribución o ventas tienden a cero. Por poner un ejemplo, los productos digitales (software) pueden entregarse de inmediato, dando fin de manera progresiva al intermediarismo. También compradores y vendedores se contactan entre sí de manera directa, eliminando así restricciones que se presentan en tales interacciones. De alguna forma esta situación puede llegar a reducir los canales de comercialización, permitiendo que la distribución sea eficiente al reducir sobrecosto derivado de la uniformidad, automatización e integración a gran escala de sus procesos de administración. De igual forma se puede disminuir el tiempo que se tardan en realizar las transacciones comerciales, incrementando la eficiencia de las empresas. Comunicaciones de Mercadeo. Actualmente, la mayoría de las empresas utiliza el Web para informar a los clientes sobre la compañía, a parte de sus productos o servicios, tanto mediante comunicaciones internas como con otras empresas y clientes. Sin embargo, la naturaleza interactiva del Web ofrece otro tipo de beneficios conducentes a desarrollar las relaciones con los clientes. Este potencial para la interacción facilita las relaciones de mercadeo así como el soporte al cliente, hasta un punto que nunca hubiera sido posible con los medios tradicionales. UnsitioWebseencuentradisponiblelas24horasdeldíabajodemandadelos clientes. Las personas que realizan el mercadeo pueden usar el Web para retener a los clientes mediante un diálogo asincrónico que sucede a la conveniencia de ambas partes. Esta capacidad ofrece oportunidades sin precedentes para ajustar con precisión las comunicaciones a los clientes individuales, facilitando que éstos soliciten tanta información como deseen. Además, esto permite que

43 2.4. VENTAJAS DEL COMERCIO ELECTRÓNICO 21 los responsables del área de mercadeo obtengan información relevante de los clientes con el propósito de servirles de manera eficaz en las futuras relaciones comerciales. Los sitios Web más sencillos involucran a los clientes mediante botones para enviar mensajes de correo electrónico a la empresa. En otros centros más sofisticados, los clientes rellenan formularios, con el objeto de que desarrollen una relación continua con la compañía, cuyo fin es informar tanto sobre los productos y servicios como obtener información sobre las necesidades que los clientes tienen sobre los mismos. De esta manera, se obtiene publicidad, promoción y servicio al cliente a la medida. El Web también ofrece la oportunidad de competir sobre la base de la especialidad, en lugar de hacerlo medianteelprecio,yaquedesdeelpuntodevistadelmercadeo,raravezes deseable competir tan sólo en función del precio. El mercadeo intenta satisfacerlasnecesidadesdelosclientesenbasealosbeneficiosquebuscan,loque quieredecirqueelpreciodependedelavalorizacióndelcliente,ynodeloscostos; tales oportunidades surgen cuando lo ofrecido se diferencia por elementos de mercadeo distintos al precio, lo cual produce beneficios cargados de valor, como por ejemplo, la comodidad producida por el reparto directo mediante la distribución electrónica de software. Beneficios Operacionales. El uso empresarial del Web reduce errores, tiempo y sobrecostos en el tratamiento de la información. Los proveedores disminuyen sus costos al acceder de manera interactiva a las bases de datos de oportunidades de ofertas, enviaréstasporelmismomedio,yporúltimo,revisardeigualformalasconcesiones; además, se facilita la creación de mercados y segmentos nuevos, el incremento en la generación de ventajas en las ventas, la mayor facilidad para entrar en mercados nuevos, especialmente en los geográficamente remotos, y alcanzarlos con mayor rapidez. Todo esto se debe a la capacidad de contactar de manera sencilla y a un costo menor a los clientes potenciales, eliminando demoras entre las diferentes etapas de los subprocesos empresariales.

44 22 CAPÍTULO 2. COMERCIO ELECTRÓNICO 2.5. Tipos de Comercio Electrónico B2B(Business-to-Business) Definición Es la transmisión de información referente a transacciones comerciales electrónicamente, normalmente utilizando tecnología como la Electronic Data Interchange(EDI), presentada a finales de los años 1970 para enviar electrónicamente documentos tales como pedidos de compra o facturas. Más tarde pasó a incluir actividades que serían más precisamente denominadas Comercio en la Red, como la compra de bienes y servicios a través de la World Wide Web vía servidores seguros(véase HTTPS, un protocolo de servidor especial que cifra la realización confidencial de pedidos para la protección de los consumidores y los datos de la organización) empleándose servicios de pago electrónico como autorizaciones para tarjeta de crédito o monederos electrónicos. El B2B ha venido impulsado también por la creación de portales para agrupar compradores. Así, encontramos, por ejemplo portales de empresas de automoción, alimentación, químicas u hostelería, entre otros. Las compañías se agrupan para crear dichas páginas aglutinando fuerzas lo que les permite negociar en mejores condiciones. El mantenimiento de las páginas se produce pidiendouncanonporcotizarocobrandoalossociosunacomisióndelnegocio realizado en el portal. En términos generales la expresión business to business no se encuentra limitada al entorno electrónico, sino que hace una referencia de exclusión para destacar el origen y destino de una actividad que, por antagonismo no se refiere ni al B2C, B2G, etc. Solo por establecer un ejemplo de referencia, el B2B aplica a la relación entre un fabricante y el distribuidor de un producto y también a la relación entre el distribuidor y el comercio minorista... pero NO, a la relación entre el comerciante y su cliente final(consumidor), relación esta última que quedaría ajustada entonces, al entorno del B2C (Business to Consumer).

45 2.5. TIPOS DE COMERCIO ELECTRÓNICO 23 Ventajas El comercio electrónico entre empresas es una utilidad más que aporta Internetyquehaexperimentadoungranaugeenlosúltimosaños. Algunas de las ventajas que aporta el B2B para las empresas implicadas son: Rapidez y seguridad de las comunicaciones. Integración directa de los datos de la transacción en los sistemas informáticos de la empresa. Posibilidad de recibir mayor número de ofertas o demandas, ampliando la competencia. Despersonalización de la compra con lo que se evitan posibles tratos de favor. Abaratamiento del proceso: menos visitas comerciales, proceso de negociación más rápido, etc. Por tanto, los compradores pueden pedir una reduccióndepreciosenvirtuddelmenorcostedegestión,olosvendedores incrementar su margen comercial B2E(Business to Employe) Definición Es la relación comercial que se establece entre una empresa y sus propios empleados. Por ejemplo, una empresa aérea puede ofrecer paquetes turísticos asusempleadosatravésdesupropiaintranety,ademásdesusofertaspuede incluir las de compañías aéreas asociadas. El B2E es una nueva demostración de las muchas aplicaciones que ofrece el comercio electrónico. Pero no sólo eso, además el concepto se amplía a la propia gestión remota por parte del empleado de parte de sus responsabilidades dentro de los procesos de negocio de la empresa. Esto podría incluir facturación de comisiones de ventas, introducción de gastos de desplazamiento, etc. Es en definitiva un pequeño portal para la utilización de algunos recursos de la empresa por parte de los empleados de la misma, tanto en su que hacer cotidiano, como en la vida privada.

46 24 CAPÍTULO 2. COMERCIO ELECTRÓNICO Además existen diferentes políticas que se pueden adecuar a este modelo de negocio. Ventajas Reducción de costes y tiempo en actividades burocráticas. Formación en línea. Mejora de la información interna. Equipos de colaboración en un entorno web. Agilización de la integración del nuevo profesional en la empresa. Servicios intuitivos de gestión de la información. Soporte para gestión del conocimiento. Comercio electrónico interno. Motivador, potenciador de la implicación del profesional. Fidelización del empleado B2C(Business-to-Consumer) Definición Se refiere a la estrategia que desarrollan las empresas comerciales para llegar directamente al cliente o usuario final. UnejemplodetransacciónB2Cpuedeserlacompradeunpardezapatos en una zapatería de barrio, por un individuo. Sin embargo, todas las transaccionesnecesariasparaqueesepardezapatosestédisponibleparalaventaen el establecimiento comercial, compra de la piel, suela, cordones, etc., así como la venta de zapatos del fabricante al comerciante forman parte de lo que se llama B2B. A pesar del sentido amplio de la expresión B2C, en la práctica, suele referirse a las plataformas virtuales utilizadas en el comercio electrónico para comunicar empresas(vendedoras) con particulares(compradores). Por eso, el uso más frecuente es comercio electrónico B2C.

47 2.5. TIPOS DE COMERCIO ELECTRÓNICO 25 Ventajas Lacomprasuelesermásrápidaymáscómoda. Las ofertas y los precios están siempre actualizados. Los centros de atención al cliente están integrados en la web. Las telecomunicaciones por banda ancha han mejorado la experiencia de compra. Tipos de Empresas en Comercio Electrónico B2C Intermediarios on-line. Los intermediarios on-line son compañías que facilitan las transacciones entre compradores y vendedores, como contraprestación económica reciben un porcentaje del valor de la transacción. La mayoría de las transacciones se realizan a través de estos intemediarios, que pueden ser brokers o informediarios, genéricos o especializados, respectivamente. Modelos basados en la publicidad. En una publicidad basada en el sistema, las empresas tienen sitios web de un inventario, que venden a las partes interesadas. Existen dos filosofías rectores para esta práctica: de alto tráfico o de nicho. Los anunciantes tienen un alto tráfico de enfoque al intentar llegar a un público más amplio. Estos anunciantes están dispuestos a pagar una prima por un sitio que puede ofrecer un número elevado, por ejemplo, anuncios en Yahoo! o Google. Cuando los anunciantes están tratando de llegar a un grupo más pequeño de compradores, se llevan a un nicho. Estos compradores están bien definidos, claramente identificados, y deseable. El nicho de enfoque se centra en la calidad, no cantidad. Por ejemplo, un anuncio de WSJ.com. Modelos basados en la comunidad. Enunacomunidadbasadaenelsistema,lasempresaspermitenalosusuarios en todo el mundo el acceso a interactuar unos con otros sobre la base de áreas similares de interés. Estas empresas ganan dinero por medio de la acumulación de leales usuarios y la orientación con la publicidad.

48 26 CAPÍTULO 2. COMERCIO ELECTRÓNICO Modelos basados en tarifas. Enunsistemadepagobasadoenelsistema,unaempresacobraunatarifa de suscripción para ver su contenido. Existen diversos grados de restricción decontenidosytiposdesuscripciónquevandesdelastasasatantoalzadoa pay-as-you-go B2B2C Designa una modalidad de comercio electrónico que agrupa el business to businessyelbusinesstoconsumer.setratadeunaversiónmássofisticadade loquepodría ser lasimplesuperposición de losdos negocios.conlamisma plataforma online y la misma plataforma de distribución se trata de crear la cadena de valor completa desde que un producto o servicio se fabrica hasta que llega al consumidor final. ElB2B2C,tambiénseempleaenalgunoscasosparadefiniralosmercados llamados mercados diagonales en Internet, plataformas en línea(online) que atienden tanto a transacciones comerciales entre negocios como entre negocios y consumidores finales. Por lo general estos mercados diagonales suelen ser proporcionados por fabricantes o mayoristas que proporcionan una diferenciación de precios y condiciones comerciales según se trate de una compra hacia un distribuidor o minorista(otra empresa) o un consumidor final o ciudadano M-Commerce (Comercio Electrónico a Través de Dispositivos Móviles) El comercio electrónico se está transformando lentamente en m-commerce, unnuevomodelodecomercioon-line enelcuallosteléfonosmóviles,uotros artefactos wireless (inalámbricos), jugarán un papel muy importante. Todos los carriers importantes del mundo están desarrollando planes sobre este paradigma. El fuerte desarrollo de la norma GSM en Europa, el sistema de SMS, y especialmente el WAP, facilitaron el acceso móvil e interactivo a datos, abriendo nuevas posibilidades para el comercio. Pero esas oportunidades tienen algunas dificultades como el ancho de banda limitado que aún complica las

49 2.6. M-COMMERCE 27 transmisiones, y la interfaz de usuario de los dispositivos móviles es limitada entamaño.además,loscostosdeaccesosonaltos,yelpoderdecómputode estosdispositivosesmuchomáspequeñoqueeldelaspcs. El m-commerce involucra tres aspectos básicos: Oferta de los negocios y servicios en un área circundante al usuario. Posibilidad de completar la transacción de forma inmediata. Por ello debe ofrecer al usuario las siguientes prestaciones: Negociación y entrega inmediata. Métodos de micro y macro pagos. Facilidades de uso en el contexto móvil. Comercio Electrónico en la Sociedad del Conocimiento A mediados de los noventa se inició la utilización de Internet con fines comerciales, en ese momento nadie pudo predecir su impacto en la economía. Información oportuna georeferenciada mientras el usuario está en movimiento. SepuedeafirmarqueInternetnoessolouncanaldetransmisiónocomunicación de información, sino que lleva implícito un cambio cultural importante. Por lo tanto la trascendencia de la economía digital permite hablar de un nuevo marco de actuación, de una génesis parametral que traslada el desarrollo organizativo a otro nivel. La economía digital es una economía de cambios importantes, tanto en la forma de entender la gestión dentro y fuera de las empresas como en la ampliación más allá de los límites nacionales para el desarrollo de su actividad. Efectivamente, la personalización de la relación con el cliente como la necesidad de ofrecer valor, interactividad y el trato directo e inmediato constituyen elementos diferenciados de primer nivel, siendo uno de los ejemplos más sólidos en la relación cliente-empresa, el B2C.

50 28 CAPÍTULO 2. COMERCIO ELECTRÓNICO A mediados de los noventa se inició la utilización de Internet con fines comerciales, en ese momento nadie pudo predecir su impacto en la economía Comercio Electrónico en la Sociedad del Conocimiento SepuedeafirmarqueInternetnoessolouncanaldetransmisiónocomunicación de información, sino que lleva implícito un cambio cultural importante. Por lo tanto la trascendencia de la economía digital permite hablar de un nuevo marco de actuación, de una génesis parametral que traslada el desarrollo organizativo a otro nivel. La economía digital es una economía de cambios importantes, tanto en la forma de entender la gestión dentro y fuera de las empresas como en la ampliación más allá de los límites nacionales para el desarrollo de su actividad. Efectivamente, la personalización de la relación con el cliente como la necesidad de ofrecer valor, interactividad y el trato directo e inmediato constituyen elementos diferenciados de primer nivel, siendo uno de los ejemplos más sólidos en la relación cliente-empresa, el B2C Riesgos, Usos y Tecnología Riegos Como medio comercial el Web presenta las siguientes deficiencias, derivadas tanto de su tecnología como de su naturaleza interactiva: Entorno empresarial y tecnológico cambiante Empresas y clientes desean tener flexibilidad para cambiar, según su voluntad, de socios comerciales, plataformas y redes. No es posible evaluar el costo de esto, pues depende del nivel tecnológico de cada empresa, así como del grado deseado de participación en el comercio electrónico. Como mínimo una empresa necesitará una computadora personal con sistema operativo Windows o Machintosh, un módem, una suscripción a un proveedor de servicios de Internet, una línea telefónica. Una compañía que desee involucrarse más,

51 2.8. RIESGOS, USOS Y TECNOLOGÍA 29 deberá prepararse para introducir el comercio electrónico en sus sistemas de compras, financieros y contables, lo cual implicará el uso de un sistema para el intercambio electrónico de datos con sus proveedores y/o una intranet con sus diversas sedes. Privacidad y seguridad La mayoría de los usuarios no confía en el Web como canal de pago. En la actualidad, las compras se realizan utilizando el número de la tarjeta de crédito, pero aún no es seguro introducirlo en Internet sin conocimiento alguno. Cualquiera que transfiera datos de una tarjeta de crédito mediante el Web, no puede estar seguro de la identidad del vendedor. Análogamente, éste no lo está sobre la del comprador. Quien paga no puede asegurarse de que su número de tarjeta de crédito no sea recogido y sea utilizado para algún propósito malicioso; por otra parte, el vendedor no puede asegurar que el dueño de la tarjeta de crédito rechace la adquisición. Resulta irónico que ya existan y funcionen correctamente los sistemas de pago electrónico para las grandes operaciones comerciales, mientras que los problemas se centren en las operaciones pequeñas, que son mucho más frecuentes. Cuestiones legales, políticas y sociales Existen algunos aspectos abiertos en torno al comercio electrónico: - Validez de la firma electrónica. No repudio. Legalidad de un contrato electrónico. Violaciones de marcas y derechos de autor. Pérdida de derechos sobre las marcas. Pérdida de derechos sobre secretos comerciales y responsabilidades. Por otra parte, deben considerarse las leyes, políticas económicas y censura gubernamentales.

52 30 CAPÍTULO 2. COMERCIO ELECTRÓNICO Usos El comercio electrónico puede utilizarse en cualquier entorno en el que se intercambien documentos entre empresas: compras o adquisiciones, finanzas, industria, transporte, salud, legislación y recolección de ingresos o impuestos. Ya existen compañías que utilizan el comercio electrónico para desarrollar los aspectos siguientes: Creación de canales nuevos de mercadeo y ventas. Acceso interactivo a catálogos de productos, listas de precios y folletos publicitarios. Venta directa e interactiva de productos a los clientes. Soporte técnico ininterrumpido, permitiendo que los clientes encuentren por sí mismos, y fácilmente, respuestas a sus problemas mediante la obtención de los archivos y programas necesarios para resolverlos. Mediante el comercio electrónico se intercambian los documentos de las actividades empresariales entre socios comerciales. Los beneficios que se obtienen en ello son: reducción del trabajo administrativo, transacciones comerciales más rápidas y precisas, acceso más fácil y rápido a la información, y reducción de la necesidad de reescribir la información en las computadoras. Los tipos de actividad empresarial que podrían beneficiarse mayormente de la incorporación del comercio electrónico, son: Sistemas de reservas. Centenares de agencias dispersas utilizan una base de datos compartida para acordar transacciones. Existencias comerciales. Aceleración a nivel mundial de los contactos entre mercados de existencias. Elaboración de pedidos. Posibilidad de referencia a distancia o verificación por parte de una entidad neutral. Seguros. Facilita la captura de datos. Empresas que suministran a fabricantes. Ahorro de grandes cantidades de tiempo al comunicar y presentar inmediatamente la información que intercambian.

53 2.9. TIPOS DE RELACIONES, CAMBIOS Y EFECTOS Teconolgías que emplea El comercio electrónico utiliza un amplio rango de tecnologías como son: Intercambio Electrónico de Datos(Electronic Data Interchange). Correo Electrónico( o Electronic Mail). Transferencia Electrónica de Fondos(EFT- Electronic Funds Transfer). Aplicaciones Internet: Web, News, Gopher, Archie. Aplicaciones de Voz: Buzones, Servidores. Transferencia de Archivos. Diseño y Fabricación por Computadora(CAD/CAM). Multimedia. Tableros Electrónicos de Publicidad. Videoconferencia Tipos de Relaciones, Cambios y Efectos Tipos de Relaciones que Pueden Presentarse El comercio electrónico es un método contemporáneo para la transacción empresarial que enfoca la necesidad percibida, tanto por las empresas como por sus clientes, de disminuir los costos de los bienes y servicios, manteniendo la cantidad e incrementando la velocidad de entrega. Las actividades de manejo de la información que se realizan en el comercio electrónico mediante transacciones empresariales pueden clasificarse en las siguientes categorías: Transacciones entre una empresa y sus clientes mediante una red pública de telecomunicaciones(teléfono + módem) con el propósito de realizar comprasdesdeelhogar( homeshopping ),oelbancoensucasa( home banking ) utilizando técnicas de cifrado para manejar los aspectos de seguridad y dinero electrónico.

54 32 CAPÍTULO 2. COMERCIO ELECTRÓNICO Transacciones con socios comerciales usando EDI. Transacciones para la obtención de información: investigación de mercados utilizando exploradores de códigos de barras, tratamiento de información para la toma de decisiones directivas o la solución de problemas organizativos, y la manipulación de información para la organización de operaciones, como la administración de la cadena de proveedores de una empresa. Transacciones para la distribución de información con clientes potenciales, tales como mercadeo, publicidad, y ventas interactivas. La conectividad entre los participantes es una cuestión esencial para la viabilidad del comercio electrónico, e Internet lo consigue a un costo bajo Cambios en las Empresas El continuo avance en el mejoramiento de la infraestructura de las telecomunicaciones ha proporcionado los medios para el intercambio casi instantáneo delosdatos.elcomercioelectrónicohaceusodeestosflujosdedatosdeuna forma eficaz. El intercambio eficiente de la información determina el éxito de una empresa; cuando se logra asegurar que el personal de una compañía consumemástiempoenlaproducciónoventadeproductosyservicios,enlugar de reprocesar innecesariamente los datos, se puede decir que ha iniciado la optimización de su potencial. Internet ha demostrado que se está viviendo en una comunidad global, esto quiere decir que no importa las diferencias de horario, ni la ubicación geográfica, lo que implica que la actividad empresarial puede realizarse con cualquier persona y en cualquier parte del mundo de manera instantánea. Esto significa que las empresas deben replantear sus estrategias empresariales, sean cuales fueran sus objetivos: ampliación del mercado, obtención de bienes por parte de proveedores nuevos, externalización de servicios( outsourcing ), o búsquedas de nuevas alianzas. El comercio electrónico se introduce en las empresas en tres fases: Sustitución de las operaciones manuales basadas en papel por alternativas electrónicas.

55 2.9. TIPOS DE RELACIONES, CAMBIOS Y EFECTOS 33 Replanteamiento y simplificación de los flujos de información. Uso novedoso y dinámico de los flujos de información. Lasustitucióndelossistemasbasadosenpapel,tantodentrodeunaempresa, como entre ellas, produce pocos beneficios reales. Es cierto que reduce los costos administrativos y mejora el nivel de precisión en el intercambio de datos, pero no aborda las cuestiones relacionadas con que las actividades comerciales se hagan eficientemente a la primera. Las aplicaciones del comercio electrónico ayudan a reformar las maneras de realizar las actividades comerciales, y con frecuencia, actúan como un catalizador para que las empresas utilicen la reingeniería de procesos empresariales Efectos A continuación se mencionan algunas consecuencias derivadas del desarrollo del comercio electrónico: Empresas virtuales. Es la oportunidad para utilizar socios comerciales externos sin una ubicación física, pues se establece una relación basada en transacciones electrónicas. Los vendedores pequeños acceden al mercado global. Tradicionalmente estos mercados que tan sólo han estado abiertos para las multinacionales, se vuelven accesibles a las compañías más pequeñas debido a la escasa cantidad de recursos necesarios para funcionar en el extranjero. Transformación de tiendas de venta al menudeo. Elcrecimientodelascomprasdesdeelhogarydelaventadirectaporparte de los fabricantes provocará una disminución en los precios, y en consecuencia, una reducción de las comisiones.

56 34 CAPÍTULO 2. COMERCIO ELECTRÓNICO Presión sobre el servicio al cliente, el ciclo de desarrollo y los costos. Aumentará la necesidad de la entrega rápida y directa. La cadena de valor será cada vez menos tolerante con la necesidad de inventarios y almacenamiento. Será inevitable el incremento de la competencia, así como de la necesidad de dinero electrónico Los Intermediarios El advenimiento de infraestructuras ubicuas de información ha provocado predicciones respecto a que uno de los efectos de los mercados será la eliminación de los intermediarios, basándose en la capacidad de las redes de telecomunicaciones. Sin embargo, la realidad puede ser bien distinta puesto que las tecnologías de la información no sólo reforzarán la posición de los intermediarios tradicionales, sino que además promoverán la aparición de nuevas generaciones de intermediarios. En un mercado tradicional puede considerarse que los intermediarios proporcionan un servicio de coordinación, sin embargo, es necesario definir con mayor precisión esta actividad para identificar cómo afectará Internet a esta tarea: Búsqueda y Evaluación. Un cliente que elige una tienda especializada sobre unos grandes almacenes escoge implícitamente entre dos alternativas de búsqueda y criterios de evaluación. En cualquier caso el cliente delega una parte del proceso de búsqueda del producto en el intermediario, quien también suministra un control de calidad y evaluación del producto. Valoración de Necesidades y Emparejamiento de Necesidades. En muchos casosnoes razonableasumirquelos clientesposeanelconocimiento individual necesario para evaluar fidedignamente sus necesidades e identificar los productos que las cumplirán eficazmente. Por lo tanto los intermediarios pueden suministrar un servicio valioso ayudando a sus clientes a determinar sus necesidades. Proporcionando información no sólo del producto, sino sobre su utilidad, e incluso proporcionando la asistencia explícita de

57 2.10. LOS INTERMEDIARIOS 35 un experto para identificar las necesidades de los clientes, los intermediarios proporcionan a los clientes servicios sobre la evaluación de los productos. Manejo de los Riesgos del Cliente. Los clientes no siempre tienen la información perfecta y por tanto pueden comprar productos que no satisfagan sus necesidades, en consecuencia en cualquier transacción al detalle el cliente se enfrenta con ciertos riesgos. Estos pueden ser el resultado de una incertidumbre en las necesidades del cliente, un fallo en la comunicación con respecto a las características, o un fallo intencionado o accidental del fabricante al proporcionar un producto adecuado. Otro servicio que proporcionan muchos intermediarios está relacionado con el manejo de este riesgo, suministrando a los clientes la opción de devolver los productos defectuosos o proporcionando garantías adicionales, los intermediarios reducen la exposición de los clientes a los riesgos asociados con los errores de los fabricantes. Si el cliente tiene la opción de devolver los productos por cualquier motivo, el intermediario reduce más la exposición del cliente a los riesgos asociados con los fallos de los clientes para valorar las necesidades con precisión y compararlas con las características del producto. Por lo tanto, eligiendo un intermediario que proporciona estos servicios, los clientes están comprando implícitamente al intermediario un seguro. Distribución de Productos. Muchos intermediarios juegan un papel importante en la producción, envasado y distribución de bienes. La distribución es un factor crítico en la determinación del valor de la mayoría de los bienes de consumo. Por ejemplo unlitrodegasolinaamilkmdelhogardeunclientefrentealqueestáaun Km es significativamente diferente, debido principalmente a los servicios de distribución proporcionados. Difusión de Información sobre Productos. Setratadequeelintermediarioinformealosclientessobrelaexistenciay las características de los productos. Los fabricantes confían en una variedad de intermediarios, incluyendo a las tiendas de venta al menudeo, casas de ventas por correo/ catálogo, agencias de publicidad y puntos de venta para informar a los clientes.

58 36 CAPÍTULO 2. COMERCIO ELECTRÓNICO Influencia sobre las Compras. A fin de cuentas, a los fabricantes no sólo les interesa proporcionar información a los clientes, sino vender productos. Además de los servicios de información, los fabricantes también valoran los servicios relacionados con la influencia en las elecciones de compra de los clientes: la colocación de los productos por parte de los intermediarios puede influir en la elección de los mismos, como poder asesorarse explícitamente mediante un vendedor. Esquemas para la compensación de comisiones, pagos por el espacio en estanterías y descuentos especiales son formas en las que los fabricantes ofrecen servicios de asesorías de compras a los intermediarios. Suministro de Información. Esta información que es recogida por intermediarios especializados como empresas de investigación de mercados, es utilizada por los fabricantes para evaluar nuevos productos y planificar la producción de los existentes. Manejo de los Riesgos del Fabricante. El fraude y robo realizado por los clientes es un problema que tradicionalmente ha sido tratado por los detallistas e intermediarios crediticios. En el pasado, estos intermediarios han proporcionado sistemas y políticas para limitar este riesgo. Cuando no podía eliminarse, eran los intermediarios quienes afrontaban la exposición a este riesgo. Integración de las Necesidades de los Clientes y de los Fabricantes. Los intermediarios deben ocuparse de problemas que surgen cuando las necesidades de los clientes chocan con las de los fabricantes. En un entorno competitivo, un intermediario satisfactoriamente integrado proporciona un haz de servicios que equilibra las necesidades de los clientes y de los fabricantes de una forma aceptable para ambos.

59 2.10. LOS INTERMEDIARIOS Tipos de Intermediarios A continuación se identifican diversos tipos de intermediarios basados en Internet: Directorios. Ayudan a los clientes a encontrar productos clasificando instalaciones Web y proporcionando menús estructurados para facilitar la navegación. En la actualidad son gratuitos, pero en el futuro podrían ser de pago. Existen tres tipos de directorios: - Generales: Como por ejemplo, Yahoo que proporciona un catálogo general de una gran variedad de diferentes sitios Web. Habitualmente existe un esquema para organizar y elegir los sitios que serán incluidos. Estas instalaciones suelen soportar browsing así como búsqueda del catálogo mediante palabras clave. Comerciales: Como El Indice que se centra en proporcionar catálogos de sitios comerciales. No proporcionan infraestructura o servicios de desarrollo para los fabricantes, sino que tan sólo actúan como un directorio de instalaciones existentes. También pueden suministrar información sobre una área comercial específica, con frecuencia a empresas que no tienen Web. Estos intermediarios son equivalentes a los editores de guías en papel. Especializados: Están orientados a temas, y son incluso tan sencillos como una página creada por una persona interesada en un tema. Estas páginas pueden suministrar al cliente información sobre un bien o fabricante en particular. Servicios de Búsqueda. Similares a AltaVista, proporcionan a los usuarios capacidades para realizar búsquedas basadas en palabras clave sobre grandes bases de datos de páginas o instalaciones Web.

60 38 CAPÍTULO 2. COMERCIO ELECTRÓNICO Centros comerciales. Son instalaciones que proporcionan una infraestructura al fabricante o al detallista a cambio de una cuota. Pueden estar compuestos de una gran variedad de tiendas que venden múltiples productos. Editoriales. Son generadores de tráfico que ofrecen contenidos de interés para los clientes, que parecen periódicos o revistas interactivas. Las editoriales se convierten en intermediarios cuando ofrecen vínculos con los fabricantes a través de publicidad o listas de productos relacionadas con sus contenidos. Revendedores Virtuales. Estos intermediarios existen para vender a los clientes centrándose en productos especializados que obtienen directamente de los fabricantes, quienes puedendudarendirigirsedirectamentealosclientesportemoraalejaralos detallistas de los que dependen. Evaluadores de los sitios Web. Los clientes pueden dirigirse a un fabricante a través de un sitio que ofrece alguna forma de evaluación, lo que puede ayudar a reducir su riesgo. Algunas veces las evaluaciones se basan en la frecuencia de acceso, mientras que en otros casos son una revisión explícita de las instalaciones. Auditores. Tienen funciones similares a las de los servicios de medición de audiencia en medios tradicionales. El comercio electrónico requiere de los mismos servicios adicionales que facilitan el comercio tradicional. Los anunciantes requieren informaciónsobrelastasasdeusoasociadasconlapublicidadenelweb,así como información fidedigna sobre las características de los clientes. Foros, Clubes de Aficionados y Grupos de Usuarios.

61 2.10. LOS INTERMEDIARIOS 39 Estos tipos de instalaciones no son necesariamente intermediarios directos, pero pueden jugar un gran papel al facilitar la retroalimentación entre clientes y fabricantes, así como soportar la investigación de mercados. Los mejores ejemplos de estos grupos son las listas relacionadas con productos que conectan al fabricante con los clientes. Intermediarios Financieros. Cualquier forma de comercio electrónico debe permitir alguna manera de realizar o autorizar pagos del comprador hacia el vendedor. Los sistemas de pago podrán ser desde autorización de crédito, cheques electrónicos, pago en efectivo y envío de correo electrónico seguro para autorizar un pago. Redes de Trueque. Es posible que las personas cambien un bien o un servicio por otro, en vez de pagarlo con dinero. Aparecerán intermediarios similares a las casas de subastas y bolsas de mercancías para capitalizar estas oportunidades. Agentes Inteligentes. Son programas que mediante un criterio preliminar de búsqueda proporcionado por el usuario, facilitan la localización de recursos a través de Internet, aprendiendo de los comportamientos pasados para optimizar las búsquedas. Esto puede convertirse en un nuevo servicio de intermediación que los clientes adquieren cuando necesitan cierto bien o servicio.

62

63 Capítulo 3 El Mundo Móvil 3.1. Evolución En 1983, aparecieron en el mercado los primeros teléfonos celulares que podían llevarse a todos lados. Desde esos comienzos, los teléfonos celulares o móviles han sido vistos como la comunicación del futuro. Se trataba de un equipo que permitía permanecer comunicado en todo momento y en todo lugar, con amigos, familiares y con la empresa. Además cambiaba radicalmente elmododecomunicarse:yalacomunicaciónnoserealizabaconunlugar,sino directamente con una persona. En seguida fue adoptado por empresarios, corredores de bolsa, transportistas, hasta llegar a la época actual donde prácticamente cada integrante de una familia puede llegar a tener su propio equipo celular. La primera generación de teléfonos celulares comenzó en 1979 y se trataba de conexiones estrictamente de voz y analógicas. Estas conexiones no tenían seguridad y generaban muchos conflictos en las comunicaciones. La tecnología que ha permitido esta comunicación se llamó AMPS (Advanced Mobile Phone System) y todavía sigue siendo utilizada en lugares rurales y ciudades alejadas de América. Hacia 1990 la tecnología evolucionó a lo que se denominó 2G (Segunda Generación) o PCS (Personal Communication Service). Esta etapa se caracterizó por ser digital y utilizar algoritmos de compresión y seguridad más sofisticados en las comunicaciones. Sigue siendo la tecnología más utilizada 41

64 42 CAPÍTULO 3. EL MUNDO MÓVIL actualmente en las comunicaciones móviles del mundo. En esta etapa, se encuentran predominantemente 3 tipos de tecnologías compitiendoenelmercado:cdma,tdmaygsm. GSM es la tecnología que más ha evolucionado en ésta generación ypor ello, actualmente, posee más del 70% del mercado mundial. Técnicamente es un derivado de la tecnología TDMA[7]. El sistema 2G trajo consigo nuevas aplicaciones de datos sobre la red celular: fax, módem, SMS; aunque rápidamente su capacidad de ancho de banda quedó limitada. Por esta limitación de la segunda generación(9,6 Kbps) y, al darse cuenta que la próxima generación (la 3G) tardaría unos cuantos años más en venir, los fabricantes crearon un intermedio llamado 2.5G que permitía conexiones de datos más veloces, como lo es el protocolo GPRS que permite velocidades de 64 Kbps o superiores. En pocos países del mundo ya está instalada la 3G(Tercera Generación) de telefonía celular. Esta tecnología tiene un mayor ancho de banda en las transmisiones de datos que permite, por ejemplo, video streaming, videoconferencias y otras aplicaciones de alta performance. Las velocidades son superiores a los 144 Kbps. Tres de las tecnologías más importantes en 3G al momento son: W-CDMA, TD-SCDMA y CDMA2000. Las velocidades de transmisión de estas tecnologías vande384kbpsa4mbps,yasuperanaconexionesdebandaanchahogareñas enadslqueestánentre1mbpy1gbps.sedeberecordarqueestasvelocidades se logran en forma inalámbrica y en constante movimiento del equipo (a mayor velocidad de movimiento, menor ancho de banda). También ya se habla de una 4G que comenzaría a implementarse hacia 2010 y que traería aparejado velocidades de 100 Mbps, equiparables con las velocidades actuales deunaredlocal Teléfonos Móviles de Primera Generación El sistema más antiguo fue el de los radioteléfonos móviles que se utilizaban de forma esporádica para comunicación marítima y militar durante las primeras décadas del siglo XX. En 1946 se construyó el primer sistema de teléfonos instalado en autos. Este sistema utilizaba un solo transmisor grande colocado en la parte superior de un edificio ytenía un sólo canalque servía

65 3.2. TELÉFONOS MÓVILES DE PRIMERA GENERACIÓN 43 paraenviaryrecibir.parahablar,elusuarioteníaqueoprimirunbotónque habilitaba el transmisor e inhabilitaba el receptor. Tales sistemas, conocidos como sistemas de oprimir para hablar, se instalaron en algunas ciudades desde finalesdeladécadade1950. En la década del 60 se instaló el IMTS (Sistema Mejorado de Telefonía Móvil), también utilizaba un trasmisor de alta potencia (200 watts), en la cimadeunacolina,peroteníadosfrecuencias,unaparaenviarylaotrapara recibir,porloqueelbotóndeoprimirparahablarnoeranecesario. IMTS manejaba 23 canales dispersos desde 150 hasta 450 Mhz. Debido al número tan pequeño de canales, los usuarios a veces tenían que esperar bastante tiempo antes de obtener el tono de marcar Sistema Avanzado de Telefonía Móvil La telefonía móvil terrestre utiliza estaciones terrestres. Éstas se encargan de monitorizar la posición de cada terminal encendida, pasar el control de una llamada en curso a otra estación, enviar una llamada a un terminal. Cada estación tiene un área de cobertura, zona dentro de la cuál la comunicación entre un terminal y ésta se puede hacer en buenas condiciones. Las zonas de cobertura teóricamente son hexágonos regulares o celdas. En la práctica, toman distintas formas, debido a la presencia de obstáculos y a laorografíacambiantedelaceldacomosepuedeapreciarenlafig.3.1dela pág.44.ademássesolapanunasconotras.esporesto,quecuandounmóvil estácercadellímiteentredosceldas,puedepasardeunaaotra,enfunción decuáldelasdosleofrezcamásniveldeseñal,yestopuedesucederincluso durante el transcurso de una llamada sin que se perciba nada. En todos los sistemas de telefonía móvil, una región geográfica se divide en celdas, razón por la cuál los dispositivos se conocen como teléfonos celulares. En AMPS (Sistema Avanzado de Telefonía Móvil, inventado por los laboratorios Bell e instalado por primera vez en los Estados Unidos) las celdas normalmentetienende10a20kmdediámetro;enlossistemasdigitales.cada celda utiliza un conjunto de frecuencias que no es utilizada por ninguna de sus vecinas. Laideaclavequeconfierealossistemascelularesconmáscapacidadque todos lo sistemas anteriores es el uso de celdas relativamente pequeñas y la

66 44 CAPÍTULO 3. EL MUNDO MÓVIL Figura 3.1: Sistema Telefónico Móvil reutilización de las frecuencias de transmisión en celdas cercanas (pero no adyacentes). UnsistemaIMTSde100kmdealcancepuedetenerunallamadaencada frecuencia,unsistemaampspodríatener100celdasde10kmenlamisma áreacon5a10llamadasencadafrecuenciaenceldasmuyseparadas.eldiseño celular incrementa la capacidad del sistema en un orden de magnitud conforme lasceldassehacenmáspequeñasensuáreadecobertura.además,alserlas celdas más pequeñas se necesita menor potencia, lo cual conduce a dispositivos más pequeños y económicos. Enelcentrodecadaceldaseencuentraunaestaciónbase alacuáltransmiten todos los teléfonos de lacelda. La estación base consiste en unacomputadora y un transmisor/ receptor conectado a una antena. En un sistema pequeño, todas las estaciones base se conectan a un mismo dispositivo llamado MTSO (Oficina de Telefonía Móvil) o MSC (Centro de Conmutación Móvil). En un sistema grande pueden ser necesarias varias MTSOs, las cuales se conectan a una MTSO de segundo nivel y así sucesivamente. En cualquier instante cada teléfono móvil está en una celda específica y bajoelcontroldelaestaciónbasedeesacelda.cuandounteléfonomóvilsale deunacelda,éstalecedeelcontrolaotraestacióncircundante. Cada estación trabaja con un rango de frecuencias, que delimita el número máximo de llamadas simultáneas que puede soportar, puesto que a cada lla-

67 3.3. TELÉFONOS MÓVILES DE SEGUNDA GENERACIÓN 45 madaseleasignaunpardefrecuenciasdiferentes:unaparacadasentidode la comunicación. Esto se denomina FDM, o multiplexación por división en la frecuencia. Las celdas colindantes no pueden utilizar las mismas frecuencias, para que no se produzcan interferencias. Cada teléfono móvil en AMPS tieneun númerode seriede 32 bits yun número telefónico de 10 dígitos en su PROM. Cuando un teléfono se enciende, examina una lista preprogramada de 21 canales de control para encontrar la señal más potente. Luego el teléfono difunde su número de serie de 32 bits y su número de teléfono de 34 bits[17] Teléfonos Móviles de Segunda Generación La primera generación de teléfonos móviles fue analógica; la segunda fue digital. De igual manera que en la primera generación no hubo una estandarización mundial de tecnologías, tampoco hubo en la segunda generación. Existen cuatrosistemasenuso:d-amps;gsm;cdmaypdc D-AMPS- El Sistema Avanzado de Telefonía Móvil Digital D-AMPS se describe en el estándar internacional IS-54 y su sucesor IS D-AMPS se diseñó con mucho cuidado para que pudiera coexistir con AMPS, afindequetantoteléfonos móviles de primerageneración como los de segunda pudieran funcionar de manera simultánea en la misma celda. D-AMPS utilizalosmismoscanalesde30khzqueamps yalasmismas frecuencias a fin de que un canal pueda ser analógico y los adyacentes digitales. Cuando D-AMPS se introdujo como un servicio, se puso disponible una nueva banda de frecuencia para manejar la carga esperada creciente. Los canales ascendentes estaban en el rango de MHz y los canales descendentes correspondientes estaban en el rango de MHz. En un teléfono móvil D-AMPS, la señal de voz capturada por el micrófono se digitaliza y se comprime. La compresión se crea mediante un circuito llamado vocoder yse realiza en elteléfonoen lugardeenlaestación baseo

68 46 CAPÍTULO 3. EL MUNDO MÓVIL la central, para reducir el número de bits que se envían a través del enlace deaire.conlatelefoníafija,nohaybeneficiodehacerquelacompresiónse realiceenelteléfono,debidoaquelareduccióndeltraficoenelcircuitolocal no incrementa la capacidad del sistema. Gracias a que la digitalización y compresión se realiza en el teléfono, tres usuarios pueden compartir un solo par de frecuencias que utilizan la multiplexión por división de tiempo.cadapardefrecuencias maneja25tramas/seg de40msegcadaunocomosepuedeverenlafig.3.2delapág.46.además cadatramasedivideenseisranurasdetiempode6.67msegcadauna[17]. Figura3.2:UncanalD-AMPScon3y6usuarios. La estructura de control de D-AMPS es bastante complicada. En resumen, se utilizan seis canales de control: configuración del sistema, control en tiempo real, y en tiempo no real, localización, respuesta de acceso y mensajes cortos. Cuando se enciende un teléfono móvil, hace contacto con la estación base para anunciarse y después escucha un canal de control para llamadas entrantes. La MTSO informa a la base doméstica delusuario dóndeestá, ylas llamadas se pueden enrutar en forma correcta GSM(Sistema Global Para Comunicaciones Móviles) GSM essimilarad-amps.losdossonsistemascelulares.enambosse utiliza la multiplexación por división de frecuencia, en el que cada dispositivo móvil transmite en una frecuencia y recibe en una frecuencia mayor(80 MHz másarribaparad-amps,55mhzmásarribaparagsm).

69 3.3. TELÉFONOS MÓVILES DE SEGUNDA GENERACIÓN 47 Ademá, en los dos sistemas, se utiliza multiplexión por división de tiempo para dividir un solo par de frecuencias en ranuras de tiempo compartidas por múltiples teléfonos móviles. Sin embargo los canales GSM son mucho más anchos que los AMPS (200 KHz en comparación de 30 KHz) y almacenan relativamentepocos usuarios (8 en comparación con3),lo que ledaagsm unatasadedatosmuchomásgrandeporusuarioqued-amps. Cadabandadefrecuenciatieneunalongitudde200KHz.UnsistemaGSM tiene 124 pares de canales simplex.cada uno de ellos tiene una longitud de 200 KHz y maneja ocho conexiones por separado, mediante la multiplexión por división de tiempo. En cada celda se pueden manejar hasta 992 canales, aunque muchos de ellos no están disponibles, para evitar conflictos de frecuencias con las celdas vecinas. La transmisión yla recepción no suceden en la misma ranura de tiempo porque los radios GSM no pueden transmitir y recibir al mismo tiempo. Algunas de estas ranuras se utilizan para almacenar algunos canales de control utilizados para manejar el sistema. El canal de control de difusión es flujo continuo de salida de la estación basequecontienelaidentidaddelaestaciónbase,asícomoelestadodelcanal. Todas las estaciones móviles supervisan su fuerza de señal para ver cuándo se hanmovidoaunanuevacelda. El canal dedicado de control se utiliza para actualización de localización, registro y establecimiento de llamada. En particular, cada estación base mantiene una base de datos de la estaciones móviles actualmente bajo su jurisdicción. Lainformaciónnecesariaparamantenerestabasededatosseenvíaenelcanal dedicado de control. Hay un canal de control común, que se divide en tres subcanales lógicos. El primero de estos subcanales es el canal de localización, que la estación base utiliza para anunciar llamadas entrantes. Cada estación móvil los supervisa continuamente en busca de llamadas. El segundo es el canal de acceso aleatorio, que permite que los usuarios soliciten una ranura del canal dedicado de control. Si dos peticiones chocan, se distorsionan y se tienen que volver a realizar más tarde. El tercer subcanal es el canal de otorgamiento de acceso [17].

70 48 CAPÍTULO 3. EL MUNDO MÓVIL CDMA(Acceso Múltiple por División de Código) Se ve como la mejor solución técnica existente y como la base para los sistemas móviles de la tercera generación. También se utiliza ampliamente en los Estados Unidos en los sistemas móviles de segunda generación y compite frente a D-AMPS. CDMA es completamente diferente de AMPS, D-AMPS y GSM. En lugar de dividir el rango de frecuencia permitida en algunos cientos de canales estrechos, CDMA permite que cada estación transmita todo el tiempo a través detodoelespectrodefrecuencia.cdmanosuponequelastramasquecolisionan son totalmente distorsionadas. Asume que se agregan múltiples señales en forma lineal. Se considera la siguiente analogía: Una sala de espera de un aeropuerto con muchas parejas de personas conversando. TDM (multiplexión por división de tiempo) se compara con todas las personas que están en medio de la sala pero que esperan su turno para hablar. FDM (multiplexión por división de frecuencias)secomparaconelhechodequetodaslaspersonasqueestánen grupos separados ampliamente y cada grupo tiene su propia conversación al mismo tiempo; aunque de manera independiente, que los otros. CDMAsecomparaconelhechodequetodaslaspersonasesténenmedio delasalahablandoalmismotiempo,perocadaparejahablandoenunlenguaje diferente, la persona que habla francés se concentra con el francés, rechazando todo lo que no se francés como si hubiera ruido. Por lo tanto la clave de CDMA es tener la capacidad de extraer la señal deseada y rechazar todo lo demás como ruido aleatorio. Acadaestaciónseleasignauncódigoúnicodem bitsllamadosecuencia de chip. Cada estación utiliza completamente el megahertzio, por lo que la tasa de chipsesde1megachipporsegundo. Cada estación tiene su propia y única secuencia de bits. Funcionaenuna bandade1.25 MHz,pero manejamuchos más usuarios en esa banda que cualquiera de los otros sistemas.

71 3.4. TELÉFONOS MÓVILES DE TERCERA GENERACIÓN Teléfonos Móviles de Tercera Generación Algunos factores que están impulsando a la industria: Eltráficodedatosyaexedeeltráficodevozenlaredfijayestácreciendo de manera exponencial. La industria telefónica de entretenimiento y de cómputo han adoptado formatos digitales y están convergiendo rápidamente. La telefonía móvil de tercera generación trata de encontrar un dispositivo que sea portable y ligero que actúe como teléfono, reproductor de CDs, reproductor de DVDs, terminal de correo electrónico, interfaz para Web, máquina de juegos, procesador de texto, etc. LaITUtratódeconcretarestoycreóundiseñoparaalcanzarlo,llamado IMT-2000(Telecomunicaciones Móviles Internacionales), pero no cumplió con nada de lo anterior. Luego, se realizaron varias propuestas, y después de varias selecciones, aparecieron las dos principales. La primera, W-CDMA(CDMA de Banda Ancha), fue propuesta por Ericsson. Este sistema utiliza espectro disperso de secuencia directa. Se ejecuta en unabandaanchade5mhzysehadiseñadoparainteractuarconredesgsm aunque no tiene compatibilidad hacia atrás con GSM. TienelapropiedaddequeelinvocadorpuedesalirdeunaceldaW-CDMA yentraraunaceldagsm sinperderlallamada. Este sistema se llamó UMTS (Sistema Universal de Telecomunicaciones Móviles). El CDMA 2000, propuesto por Qualcomm, es un diseño de espectro disperso de secuencia directa, básicamente una extensión de IS-95 y es compatible hacia atrás con él. Utilizaunanchodebandade5MHz,peronohasidodiseñadoparainteractuar con GSM y no puede entregar llamadas a una celda GSM (ni a una celda D-AMPS).

72 50 CAPÍTULO 3. EL MUNDO MÓVIL Algunas de la diferencias técnicas con respecto a W-CDMA son las siguientes: una tasa de chip diferente, un tiempo de trama diferente, se utiliza un espectro diferente y la sincronización de tiempo se realiza de una manera diferente EDGE (Tasa de Datos Mejorada para la Evolución del GSM) Mientras se espera la venida del 3G, algunos fabricantes dieron un paso intermedio que se llama 2.5G. Uno de los sistemas es EDGE. Es simplemente GSM con más bits por baudio. El problema es que más bits por baudio significan más errores por baudio, por lo que EDGE tiene nueve esquemas diferentes para modulación ycorreccióndeerrores,quedifierenenlacantidaddeanchodebandaquese dedica a arreglar los errores introducidos por la velocidad más alta[17] GPRS(Servicio de Radio de Paquetes Generales) Es una red de paquetes superpuestos encima de D-AMPS o GSM. Permite que las estaciones móviles envíen y reciban paquetes IP(protocolo de Internet) enunaceldaqueseejecutaenunsistemadevoz. Cuando GPRS está en operación, algunas ranuras de tiempo en algunas frecuencias se reservan para el tráfico de paquetes. Laestaciónbasepuedemanejardemaneradinámicaelnúmeroylaubicacióndelasranurasdetiempo,dependiendodelatasadevozsobreeltráfico dedatosdelacelda. Las ranuras de tiempo disponibles se dividen en varios canales lógicos utilizados para propósitos diferentes. La estación base determina qué canales lógicos se asignan en qué ranuras de tiempo. Uncanallógicoseutilizaparabajarpaquetesdelaestaciónbaseaalgunas estaciones móviles, y cada paquete indica a quién va destinado. ParaenviarunpaqueteIP,unaestaciónmóvilsolicitaunaomásranuras

73 3.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFÓNICAS 51 de tiempo enviando una petición a la estación base. Si la petición llega sin daño alguno, la estación base anuncia la frecuencia y las ranuras de tiempo asignadasalmóvilparaenviarelpaquete.unavezqueelpaquetellegaala estación base, se transfiere a Internet mediante una conexión de cable. Los equipos celulares fueron pensados para transmitir voz. Lo primero que se piensa cuando se habla de teléfonos móviles es en la comunicación vocal, encomunicaciónatravésdelavozdeunpuntoaotro.sinembargo,pocoa poco, se fue conociendo cómo las empresas que proveían el servicio de telefonía celular han ido incorporando servicios adicionales a lo largo del tiempo de vida deestatecnologíay,muchosdeesosservicios seescapandelestrictousodela voz para la comunicación. Desde mensajería de texto, melodías personalizadas, hasta conexión a Internet. En los siguientes apartados se verá con detalle los servicios que los teléfonos celulares actuales pueden ofrecer Servicios Analógicos En esta categoría ingresan todos los servicios adicionales que no requieren un equipo con capacidades digitales. Ni siquiera hace falta un teléfono con pantalla. Desde los viejos equipos Motorola, hasta los primeros modelos de teléfonos Motorota Startac (la línea 3000), las empresas de telefonía celular han provisto de servicios adicionales al uso básico de la línea Servicios Adicionales de las Empresas Telefónicas Estosserviciosfuncionabanatravésdelareddevoz,esdecirlaredanalógica que ya estaba instaurada. Entre ellos, se puede mencionar contestador automático, alarmas, llamadas en conferencia, y servicios de información que se proveían (y todavía se proveen) comunicándose a un número particular que nopertenecíaalaredfijadetelefonía Recepción y Envío de Mensajes de Texto Este servicio comenzó a funcionar en los años 90 y requería poseer equipos con la capacidad de recepción de mensajes de texto en la pantalla del telé-

74 52 CAPÍTULO 3. EL MUNDO MÓVIL fono. Por ello, requieren equipos con pantalla alfanumérica y señal digital. Las empresas permiten el envío de mensajes a un equipo celular a través de sus sitiosweb,atravésdeunacasillade odesdeotrosequiposcelulares.el mensajeviajaporlareddigitaldelaempresayllegaalequipocelulardonde podrá ser visualizado completamente en pantalla. Estos mensajes tienen generalmente una longitud de 150 caracteres y son conocidos también como SMS (Short Message System, Sistema de Mensajes Cortos). El mensaje es enviado al destinatario instantáneamente, salvo que el equiporeceptornoestéencendidooestéfueradeláreadecobertura.eneste caso, el mensaje queda latente, generalmente por unos días, para ser enviado enelmomentoderestauracióndelaseñal. Con la gran aceptación que tuvo el Sistema de Mensajes Cortos comenzaron a aparecer equipos con la posibilidad, no sólo de recibir mensajes, sino de emitirlos y así poder enviar mensajes a otros teléfonos, en un principio, entre dos teléfonos móviles que utilizaban una misma empresa proveedora. Losmensajes sontransferidosal nodo central delaempresaydeahídirigidos al equipo destino. Es decir, la comunicación no se realiza teléfono a teléfono directamente. Atravésdeunapasarela,escomúnlaposibilidaddeenviarmensajes,noa otro teléfono, sino a una dirección de . Estas pasarelas son simplemente números de destino donde el teléfono envía el mensaje y este equipo receptor (provisto por el proveedor del servicio) se encarga de redireccionar el mensaje vía Internet utilizando el protocolo SMTP. Coneltiempoesteservicioseamplióylasempresascomenzaronainterconectar sus redes de mensajería corta y ya prácticamente, es posible enviar y recibir mensajes cortos desde cualquier empresa proveedora a cualquier otra dentrodelmismopaísy,aveces,aotrospaíses Servicios de Información Basados en el Servicio de Mensajería, las empresas proveedoras de la telefonía celular comenzaron a ofrecer servicios adicionales de información por ese medio. Por ejemplo, es posible suscribirse a recibir información sobre: noticias, deportes, cotizaciones financieras, estados bancarios y otra información que será enviada a todos los equipos celulares suscriptos.

75 3.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFÓNICAS 53 Otra modalidad es el envío de información mediante SMS bajo demanda. Este servicio permite enviar cierto mensaje a un número predeterminado y recibir a cambio alguna información de interés o solicitada. Estos servicios son provistos por las mismas empresas o por terceros con convenios especiales. Tambiénhan surgidosalas de chat conlaposibilidad de enviaryrecibir mensajes a grupos de personas, comunicación con mensajeros instantáneos (como ser el Microsoft Messenger o el Yahoo! Messenger) y juegos interactivos a través del Servicio de Mensajería. Algunos de estos servicios se ofrecen en forma gratuita[7] Mensajes Multimedia Los equipos móviles evolucionan a grandes pasos y debido a esto se pueden ver equipos con capacidades multimedia. Por eso, se ha desarrollado una extensión al servicio SMS, llamado MMS(Multimedia Messaging System). Este sistema de intercambio de mensajes permite, además de texto(ampliado a 900 caracteres), adjuntar cualquier otro tipo de archivo digital, como ser fotos, imágenes animadas, sonidos o videos. El equipo receptor deberá soportar también esta tecnología y estar correctamente configurado en el equipo. Esta tecnología generalmente trabaja enviando un mensaje de texto al teléfono receptor indicando una URL (dirección de la red) donde el equipo podrá descargar el contenido completo del mensaje. Estos mensajes no son enviados en forma completa al equipo receptor. Es por eso por lo que, si el usuario no quiere recibir este tipo de mensajes puede configurar su equipo para no recoger automáticamente sus Mensajes Multimedia Juegos y Aplicaciones Es una característica adicional provista por el fabricante del equipo. Gracias también al gran uso del SMS, los teléfonos comenzaron a ampliar el tamaño visual de sus pantallas. De esta forma, algunos equipos comenzaron a incluir algunos pequeños juegos en sus modelos de celulares, como se puede apreciarenlafig.3.3delapág.54. Tampoco las aplicaciones se habían quedado atrás y ya comenzaban a aparecer en los equipos aplicaciones como calculadoras, agendas, calendarios,

76 54 CAPÍTULO 3. EL MUNDO MÓVIL Figura 3.3: Algunos Juegos Conocidos. conversores de medidas y monedas y otros aplicativos que se consideraban útiles para el usuario. Deestaformacomenzabaunanuevaeraenlosequiposcelulares.Yanose los veía como un mero aparato comunicacional, sino como una microcomputadora. Comenzaron a aprovecharse capacidades de procesamiento (mínimas, pero existentes) y, cuando esta capacidad de proceso se junta con la capacidad de conectividad de la red celular, se produce la revolución del software móvil[7] Internet Móvil Internet Móvil es la capacidad que tiene un equipo celular de navegar por la red Internet. Si bien, con ciertas limitaciones, es posible leer s, noticias y ciertos sitios de Internet. La tecnología que permite esta navegación por Internet es la llamada WAP (Wireless Application Protocol) que hace de interfaz o pasarela entre la red Internet yelprotocolohttpconelqueserecibenlaspáginaswebylared celular. Este protocolo tenía una limitación y es que no soportaban páginas HTML como sí lo soportan los navegadores para equipos estándar de computación, co-

77 3.5. SERVICIOS ADICIONALES DE LAS EMPRESAS TELEFÓNICAS 55 mo Internet Explorer, Netscape u Opera. Los navegadores WAP de los equipos celulares soportan solamente páginas en formato WML, que es una versión reducida de HTML y adaptada a las necesidades de contenido de un teléfono celular. El Fracaso ylavuelta de Internet Móvil El fracaso se debió a algunas razones, entre ellas: Los proveedores de contenido no supieron adaptarse a las necesidades de un navegante móvil. Sólo ofrecían una versión reducida de su mismo contenido web. Las empresas de telefonía móvil facturaron este servicio por tiempo de aire consumido, lo que claramente era una bomba de tiempo para el usuario que se encontraba navegando, o intentándolo. La experiencia de navegar por un celular ha sido muy frustrante para muchos usuarios. Una vez que se lograba configurar correctamente el equipo, la navegabilidad de los equipos que, originalmente no estaban preparados para tal fin(como ser ausencia de teclas, pantallas muy chicas), hicieron que los usuarios dejaran de lado esta tecnología. No existieron gran cantidad de equipos con la capacidad de navegador WAP. La vuelta de Internet Móvil se debió a la aparición de nuevas tecnologías queseofrecenactualmente(comosergsm,víagprs ocdma2000x),ahora es posible tarifar al usuario por información transferida y no por tiempo de aire, adicionando que los equipos tienen pantallas más grandes y con altas resoluciones de colores y sistemas de navegación e introducción de texto más cómodos[7]. Además de esta mejora tecnológica, el mercado ha ido evolucionando y ya prácticamente todo equipo nuevo tiene navegador WAP y poco a poco, comenzaron a surgir nuevos servicios WAP útiles para los usuarios, entre ellos: Clima, Información Geográfica, Guías Telefónicas para Turistas, Mapas de Callesyotrainformaciónquepuedeserdesumautilidadparaunusuarioque seencuentrafueradelalcancedeunapc conconexiónalaweb.

78 56 CAPÍTULO 3. EL MUNDO MÓVIL 3.6. WAP Introducción a WAP Wireless Application Protocol o WAP(protocolo de aplicaciones inalámbricas) es un estándar abierto internacional para aplicaciones que utilizan las comunicaciones inalámbricas, por ejemplo acceso a servicios de Internet desde un teléfono móvil. Setratadelaespecificacióndeunentornodeaplicaciónydeunconjuntode protocolos de comunicaciones para normalizar el modo en que los dispositivos inalámbricos, se pueden utilizar para acceder a correo electrónico, grupo de noticias y otro tipo de aplicaciones disponibles desde Internet. El organismo que se encarga de desarrollar el estándar WAP fue originalmente el WAP Forum, fundado por cuatro empresas del sector de las comunicaciones móviles, Sony-Ericsson, Nokia, Motorola y Openwave(originalmente UnwiredPlanet).Desde2002elWAPForum espartedelaopenmobilealliance (OMA), consorcio que se ocupa de la definición de diversas normas relacionadas con las comunicaciones móviles, entre ellas las normas WAP. La telefonía móvil e Internet se combinaron y ahora se puede tener Internet en un terminal móvil (teléfono celular) combinar la capacidad de Internet en unentornodondeelusuariopuedemoverseydisponerconexiónlas24horasdel día, en cualquier lugar. De esta idea surge WAP, la arquitectura de protocolos TCP/IP(protocolo de Internet) presenta una serie de dificultades al momento de trabajar en entornos inalámbricos móviles. Estos factores unidos al ancho de bandas limitados a la telefonía móvil condicionan a los fabricantes mundiales a constituir el consorcio WAP Forum para desarrollar una nueva pila de protocolos adecuada a los entornos inalámbricos con usuarios en movimientos[6]. Aunque WAP fue diseñado para utilizar cualquier tecnología móvil existente,lamásutilizadaporwapesgsm.gsm esunatecnologíadigitalde acceso aéreo que incluye mecanismos de cifrado de comunicación entre terminal móvil y la estación base.

79 3.6. WAP Motivación Los terminales móviles son más potentes y livianos cada vez, permitiendo quelacomunicaciónseacadavezmáseficaz.sugrannúmeroysuscapacidades hacen muy interesante para los proveedores de servicios y contenidos disponer de un entorno normalizado que permita ofrecer sus servicios a los usuarios de las redes móviles. WAP defineunentornodeaplicaciónyuna pila de protocolos paraaplicaciones y servicios accesibles a través de terminales móviles. Consiste en un conjunto de especificaciones, definidas por la Open Mobile Alliance / WAP Forum, que permiten que los desarrolladores diseñen aplicaciones de interconexión para terminales móviles, típicamente teléfonos. La tecnología WAP permite que los usuarios de estos dispositivos puedan acceder a servicios disponibles en Internet. Sin embargo, existen algunas consideraciones a tener en cuenta al diseñar estos servicios para usuarios móviles, fundamentalmente debidas a las características de los terminales: pantalla más pequeñaqueladeunordenadorpersonal,tecladosmáslimitadosquelosdeun ordenador, limitaciones en la memoria disponible, tanto memoria RAM como memoria para almacenamiento persistente, y limitaciones en la capacidad del procesador, en comparación con la memoria y procesador de un ordenador personal típico. Las redes de telefonía móvil ofrecen también unas prestaciones por lo generalmenoresquelosaccesosainternet,sibienconlasredesdetercerageneración como UMTS las prestaciones mejoran de manera importante Modelo de WAP ElmodelodeaplicaciónWAPcomosepuedeverenlafig.3.4delapág.58, esbastantesimilaralwww,yaquetodoelsistemawap estáenelanterior. Este parecido permite facilidades tales como un modelo de programación familiar, una arquitectura probada y la habilidad de utilizar herramientas existentes(servidores web, herramientas XML, estándares de Internet) también debe indicarse que se ha intentado optimizar el modelo para un entorno inalámbrico[6]. Comosepuededesprenderdelafig.3.5delapág.58,elmodelooperade

80 58 CAPÍTULO 3. EL MUNDO MÓVIL Figura 3.4: Modelo Wap. Figura3.5:ModelodelaRedWap.

81 3.6. WAP 59 la siguiente manera: ElusuarioteclealaURLensuteléfonomóvil. ElagenteusuarioenvíalapeticiónURLalapasarelaWAP medianteel protocolo WAP. La pasarela WAP genera una petición convencional HTTP para la URL pedidaylaenvíaalservidorweb. El servidor web procesa la petición. Si es un fichero estático, toma el ficheroyleañadeunacabecerahttp.siescgi(commongateway Interface) u otra aplicación SCRIPT, lanza la aplicación. ElservidorWebdevuelvelamarcaWMLconlacabeceraHTTP añadida,olasalidawmldelcgi oscript. La pasarela WAP verifica la cabecera HTTP y el contenido WML y la codifica a una forma binaria. Crea la respuesta WAP conteniendo el WMLyloenvíaalusuario. El usuario recibe la respuesta WAP y muestra por pantalla el contenido WML o SCRIPT. El contenido se transporta usando la pila de protocolos. Además se dispone de un Micro-navegador en el terminal móvil que hace de interfaz con el usuario. WAP define un conjunto de componentes estándares que permiten la comunicación entre el cliente móvil y los servidores que deben incluir: Modelo de nomenclatura: se utilizan los URLs estándar. Representación del contenido: contenido consistente con el WWW. Protocolo estándar: permiten la comunicación entre el navegador del dispositivo inalámbrico y el servidor. WAP utiliza la tecnología Proxy para conectar el dominio inalámbrico a la Internet tradicional. Entre el terminal móvil y el servidor web existe una pasarela. En este nodo se traducen los datagrama del protocolo WAP al protocolo HTTP- TCP/IP. Por tanto el cliente, desde su terminal con capacidad WAP veestapasarelacomoelextremodelacomunicación[6].

82 60 CAPÍTULO 3. EL MUNDO MÓVIL Entorno de Programación WAP ElclienteWAP secomunicacondosservidoresenlaredinalámbrica.la pasarela WAP traduce las peticiones WAP en peticiones WWW y también en dirección contraria(respuestas WWW en respuestas WAP). Si el servidor web proporciona directamente contenido WAP (WML), la pasarela WAP lo toma directamente del servidor. Sin embargo si el servidor sólo proporciona contenido WWW (HTML). Las marcas WML son codificadas WBXML antes de enviarlas al móvil WAP. El servidor de Aplicación de Telefonía Inalámbrica WTA (Wirelees Telephony Application) es un ejemplo de servidor que responde peticiones directamente del cliente WAP sin pasar por ningún tipo de intermediarios. Se utiliza fundamentalmente para aplicaciones propias del entorno inalámbrico. La Capa de Aplicación WAE La capa de aplicación (Wireless Application Enviroment) es la capa de propósito general basada en una combinación de Word Wide Web (WWW) y las tecnologías de telefonía móvil. Su principal objetivo es establecer un entorno de interoperabilidad que permitirá a los usuarios y los proveedores de contenido construir aplicaciones y servicios que puedan alcanzar una gran variedad de plataformas inalámbricas de manera eficiente y útil. WAE incluye un mini-navegador que tiene las siguientes funcionalidades: Wireless Mark-up Language(WML) un lenguaje liviano, similar a HTML pero optimizado para terminales móviles.,(wbml) es la versión codificada que se entrega a los dispositivos móviles para reducir el volumen del tráfico al teléfono móvil. WMLScript, un lenguaje de script de baja carga, similar a Javascript. Wireless Telephony Application (WTA-WTAI) servicios de telefonía e interfaces de programación. Formatos de contenidos, un conjunto de formatos de datos bien definidos.

83 3.6. WAP 61 Figura 3.6: Pilas de Protocolos TCP/IP y WAP Tecnología Enlaversión1deWAP,definidaen1999,ellenguajedepresentaciónde contenidos es el WML, o Wireless Markup Language. La pila de protocolos de WAP1 noescompatibledirectamenteconladeinternetcomosepuedever enlafig.3.6delapag.61:wsp (WirelessSessionProtocol),WTP (Wireless Transaction Protocol), WTLS (Wireless Transport Layer Security), y WDP (Wireless Datagram Protocol). WDP corresponde a la capa de transporte, con funcionalidad equivalente alprotocolo UDP deinternet,yse apoya en los servicios de la portadora WAP,quedependedelaredmóvilqueestéusandoelterminal.WAP1además define la interfaz de acceso de las aplicaciones a las funciones de telefonía del terminal con WTAI (Wireless Telephony Application Interface), y también un sencillo lenguaje de scripting, WMLScript, basado en JavaScript. LaincompatibilidadqueexisteenlapiladeprotocolosWAP 1conlade Internet exige la presencia de un nodo pasarela para hacer de intermediario enlacomunicaciónentreunterminalwap yunservidordecontenidoswap residente en Internet.

84 62 CAPÍTULO 3. EL MUNDO MÓVIL WAP ha sido sujeto a diversas críticas en su implementación, como ser el bajo soporte de gráficos en los terminales móviles, las diferencias de implantación en terminales móviles de distintos fabricantes y un problema muy grave en cuanto a seguridad debido a que la capa WTLS no es robusta y además por no ser compatibles con los mecanismos de seguridad que brinda Internet. LanuevaversióndeWAP,WAP2.0,estápresenteenlosteléfonosmóviles de nueva generación (a partir del 2004). Esta versión es una reingeniería de WAP que utiliza XHTML-MP(XHTML Mobile Profile), un subconjunto de XHTML que incluye el XHTML básico, y WCSS(WAP CSS), un subconjunto de CSS más ciertas extensiones específicas para móviles, como lenguajes para la presentación de contenidos mejorando, por ejemplo el soporte de los gráficos. DeestaformaseconsiguequeeldiseñodecontenidosconWAP2.0 seamuy similar al diseño de contenidos para la WWW para navegadores en dispositivos no móviles. Encuantoalosprotocolosusados,enlacapadetransporteseusaTCP y enladeaplicación,http.asípues,wap2.0 haadoptadolosprotocolosde Internet. WAP 2.0 además especifica opciones tanto en TCP como en HTTP para mejorar las prestaciones de dichos protocolos sobre redes de comunicaciones móviles. Los mecanismos de seguridad usados ya son compatibles con losdeinternetporloquelosproblemasdeseguridaddewap1 seresuelven. La pasarela WAP no es estrictamente necesaria en WAP 2.0, pero su presencia puedetenerfuncionesútiles,comocachewebyparadarsoportealasopciones de TCP y HTTP antes mencionadas WAP 2.0 WAP 2.0 es la próxima generación de un conjunto de especificaciones que a comparación de versiones previas, marca el actual esfuerzo de WAP Forum para adoptar los más recientes protocolos y estándares de Internet. WAP 2.0 optimiza el uso de grandes anchos de banda y conexiones basadas en paquetes en redes inalámbricas. Mientras utiliza y soporta el incremento en las capacidades de los últimos dispositivos inalámbricos, también provee compatibilidad hacia atrás a contenidos WAP existentes, aplicaciones y servicios que utilizan versiones previas de WAP. Algunas características de WAP 2.0:

85 3.6. WAP 63 Soporte de pila de protocolo: Además de la pila WAP introducida, WAP2.0 añadesoporteyserviciosbasadosenlapilacomúndeinternet incluyendo soporte para TCP, TLS y HTTP. En comparación con ambas pilas de protocolo, WAP 2.0 provee un modelo de conectividad en un amplio rango de redes y portadoras inalámbricas. Ambiente de aplicación WAP: Normalmente visto como Navegador WAP, el ambiente de aplicación de WAP 2.0 ha evolucionado para aceptar el lenguaje de marca del navegador de Internet como estándar de desarrollo. Esto ha llevado a la definición de un nuevo lenguaje llamado XHTML-MP. XHTML-MP está basado en la modularidad del marco de trabajo del extensible HyperText Markup (XHTML) lenguaje desarrollado por la W3C para reemplazar e incrementar el lenguaje HTML usado actualmente. Capacidades y servicios adicionales: Con WAP 2.0 existe un incremento en el número de características disponibles para desarrolladores, operadores y usuarios. Modelo de Programación WAP El modelo de programación WAP está estrechamente alineado con el modelo de programación Web; ver fig. 3.6 de la pág. 61, usa el modelo Pull (donde el cliente requiere contenido desde un servidor). De igual modo, WAP 2.0 extiende la arquitectura web añadiendo soporte a telefonía con WTA y habilitando un modelo Push, donde el servidor puede enviar con iniciativa contenido al cliente[?]. En versiones previas de WAP, WAP Proxy (referido como WAP gateway) fue requerido para manipular los protocolos entre el cliente y el servidor origen. WAP proxy comunicado con el cliente usando los protocolos WAP que están basados en gran parte en protocolos de comunicación de Internet, y este comunicado con el servidor origen usando los protocolos estándares de Internet. WAP2.0 norequierelautilizacióndelwapproxy puestoquelacomunicación entre el cliente y el servidor origen puede ser conducido usando HTTP. De igual manera, colocando un WAP proxy se pueden optimizar los procesos de comunicación y pueden ofrecer incrementos en los servicios móviles; ver fig. 3.8 de la pág. 64. Además, un servidor proxy es necesario para ofrecer

86 64 CAPÍTULO 3. EL MUNDO MÓVIL Figura 3.7: Modelo de Programación Wap. funcionalidad Push. Figura 3.8: Modelo Proxy para WAP 2.0. Nuevas Características Añadidas y Servicios Mejorados Además del ambiente de aplicación y el incremento de la capacidad del micro-browser, WAP 2.0 también soporta otras características para mejorar la experiencia del usuario. Estas características amplían las capacidades de los dispositivos inalámbricos y mejoran la habilidad para entregar servicios y aplicaciones útiles[?]. Algunas de las características adicionales de WAP 2.0 son las siguientes:

87 3.6. WAP 65 WAP push: Este servicio permite enviar contenido a dispositivos mediante aplicaciones basadas en servidor vía un push proxy. Esta funcionalidad ha sido mejorada por WAP 2.0. La funcionalidad de push es especialmente relevante en aplicaciones de tiempo real que envían información a sus usuarios, como ser mensajes, precio de stock, alertas actulizadas de tráfico. User Agent Profile (UAProf): Este servicio provee la descripción de las capacidades de los clientes y las preferencias de los usuarios a un servidor de aplicación. Mejorado por WAP 2.0, esto está basado en la combinación Capabilities/ Preference Profiles(CC/PP) trabajo de la W3C, UAProf soporta el modelo de transacción cliente-servidor enviando la información del usuario a servidores con la petición. Esta información permite a los servidores adaptar su contenido y en consecuencia realizar la preparación de la respuesta. Data Synchronization: En un enfoque que ayuda a asegurar una solucióncomúndemarcodetrabajo,elwapforumbuscóunasoluciónpara la sincronización de datos. Como resultado de ello, WAP 2.0 reconoce la labor de la SyncML mediante la adopción del lenguaje SyncML como su opción para la solución de sincronización de datos. Los mensajes SyncML se apoyan tanto con los protocolos WSP y HTTP/1.1 Multimedia Messaging Service(MMS): Este servicio prevee el marco de trabajo para implementar una solución de envio de mensajes ricas en características. MMS provee características y funcionalidades que permiten repartir tipos variados de contenido. Dependiendo del modelo de servicio, MMS permite un paradigma de entrega rápido(al igual que SMS) o un método de almacén y reenvío(parecido al correo electrónico) o debería permitir ambos modos para operar. Esta flexibilidad permite a operadores ajustar el resultado a la experiencia del usuario.

88 66 CAPÍTULO 3. EL MUNDO MÓVIL

89 Capítulo 4 Aplicaciones Móviles 4.1. Introducción Los dispositivos de computación inalámbrica han crecido rápidamente, requeriendo aplicaciones de software cada vez más potentes que puedan manejar esta nueva realidad. Los usuarios desean que las aplicaciones que corren en sus dispositivos móviles tengan la misma funcionalidad estando conectados o desconectados de la red. Esperan aplicaciones que puedan soportar conexiones intermitentes, anchos de banda cambiantes y que manejen eficientemente el problema del roaming. El rango de dispositivos móviles va desde dispositivos dedicados a tareas específicas, como los teléfonos celulares, hasta aquellos dispositivos de propósito general, como notebooks. Cada uno de ellos presenta diferentes conjuntos de desafíos para el diseño de aplicaciones móviles. Algunos de estos desafíos compartidos por la mayoría de los dispositivos móviles incluyen: La ubicación física del dispositivo y la configuración pueden cambiar en cualquier momento a medida que el dispositivo está conectado o desconectado de la red o se mueve entre dos puntos de conexión. La arquitectura de aplicación móvil debe soportar una operación consistente operando tanto online como offline y proveer una conectividad continua mientas el dispositivo se mueve entre puntos de conexión. 67

90 68 CAPÍTULO 4. APLICACIONES MÓVILES Los dispositivos que se alimentan mediante el uso de baterías pueden operar por un tiempo limitado sin recargar o reemplazar las mismas. La arquitectura de una aplicación móvil debe se diseñada para administrar esa energía limitada de las baterías, mediante el uso de estrategias que prologuen la vida útil al reducir el consumo sin sacrificar el rendimiento del sistema. Una arquitectura de aplicaciones móviles debe proveer soporte para un amplio rango de dispositivos. Debido a que los dispositivos pequeños de propósito específico, tales como teléfonos celulares, poseen limitaciones de recursos como el tamaño reducido de sus pantallas, limitado almacenamiento y poder de cómputo[21] Requerimientos Para Una Arquitectura de Aplicaciones Móviles Una aplicación diseñada para ser usada en un dispositivo móvil debe cumplir con ciertos requerimientos, algunos son propios del ambiente móvil y otros pueden ser requerimientos de cualquier tipo de aplicación. A continuación se presentan los más relevantes: Operación consistente tanto online como offline: En varias arquitecturas, los datos son almacenados en un sistema compartido accesible atravésdelared,enformadedocumentos,registrosdedatosoarchivos binarios, donde se tiene un acceso coordinado a una copia de la información. Una aplicación móvil debe ser diseñada de forma de que los usuarios puedan acceder a los datos sin importar si lo hacen en forma online o en forma offline. Cuando se trabaja offline, el usuario percibe que la información compartida está disponible para lectura y escritura. Cuando la conectividad regresa, los cambios en la información local son integradosalacopiaderedyviceversa. Conectividad continua: Una aplicación diseñada para movilidad debe trabajar con un agente o servicio Proxy para permitir un manejo transparente de los cambios en la conectividad. La conectividad no tiene que ser un requerimiento para la funcionalidad y cortes intermitentes e inesperados en la conexión con la red deben poder ser manejados satisfactoriamente. Así mismo este agente o servicio Proxy debe poder seleccionar

91 4.2. ARQUITECTURA DE APLICACIONES MÓVILES 69 la redóptima delas disponibles enesemomento, ymanejar las tareas propias de la comunicación como autentificación segura o autorización y direccionamiento lógico. Clientes que soporten multiplataformas: Una aplicación móvil debe al menos ajustar su interacción y comportamiento al dispositivo en el que corre, como por ejemplo tipo de entrada y salida, recursos disponibles y nivel de performance. Administración de recursos: Un recurso como la energía, el ancho de banda o el espacio de almacenamiento puede ser consumido y existe en una cantidad finita. La administración de recursos debe permitir el monitoreo de atributos como cantidad o tasa de uso, y soportar notificaciones basadas en disparadores predefinidos por el usuario. Administración del contexto: Contexto es cualquier información que puede se usada para caracterizar la situación de una entidad. Donde una entidad es una persona, lugar u objeto que es relevante para la interacción entre un usuario y una aplicación, incluyendo al usuario y la aplicación. La administración del contexto debe permitir el monitoreo de atributos como ubicación actual o tipo de dispositivo, y proveer notificación de cambios en el mismo. Codificación: La codificación involucra la modificación de los datos y protocolo en función de los requerimientos del contexto y recursos disponibles. Ejemplos de codificación son la encriptación, compresión y transcodificación. Una implementación de la capacidad de codificación permitirá la enumeración de los encoders y decoders disponibles. Luego con ésta información disponible junto con la capacidad de administración delcontexto,proveerlahabilidaddenegociarelusodeunouotrométodo de codificación. Almacenamiento duradero: La capacidad de manejar un almacenamiento duradero permite la persistencia de datos de configuración o información estática. Seguridad: Para evitar las consecuencias de ataques maliciosos, aplicaciones con diseños pobres, y errores inadvertidos de usuarios, se deben tomar ciertas medidas de seguridad como ser: Sistemas y usuarios deben ser autenticados, autentificación de sistemas, usuarios y acciones deben ser autorizados, y acciones e interacciones deben ser auditadas.

92 70 CAPÍTULO 4. APLICACIONES MÓVILES Se puede observar que los requerimientos planteados son en gran medida requerimientos no funcionales, esto se debe a la naturaleza sumamente restrictiva implicada en un escenario móvil, y relacionada especialmente con aspecto de hardware Arquitectura de Portal Para Aplicaciones Móviles La función primaria de un portal es la de agregar e integrar diversas y distribuidas fuentes de información, y presentar el resultado al usuario en una vistasimpleconcisaypertinenteatravésdeunnavegadorwebowebbrowser. Un portal es típicamente dirigido a un grupo específico o tipo de usuario. PorejemploenlaIntranetdeunacompañía,elsectordeatenciónalcliente puede acceder a información relacionada con clientes (promociones vigentes, descuentos, etc.), pero no puede acceder a información financiera, ésta estaría sólo autorizada para los integrantes del sector de finanzas[21]. Los contenidos que puede tener un portal son: Datos relativamente estáticos, como banners, gráficos y estructura general. Contenido dinámico, información que cambia con cierta frecuencia, el caso de las promociones vigentes para el sector de atención al cliente estaría dentro de este grupo. Información nueva o trascendente, como notificaciones o información incremental. Por ejemplo una notificación para el grupo de ventas de un determinado producto que indique que el stock se ha terminado. La arquitectura de un portal abarca tres tipos de funciones: Fuentes de Información: Las fuentes de información proveen de datos al portal. Las fuentes de información incluyen bases de datos, aplicaciones u otros portales externos al sistema. Funciones del Portal: Las funciones de un portal son básicamente las de agregar y componer la información para luego ser entrada al usuario.

93 4.3. PORTAL PARA APLICACIONES MÓVILES 71 Funciones Independientes: Son tecnologías persistentes o componentes, como el Web Browser. Los componentes incluidos en un portal son los siguientes: Webbrowser:Proveeunainterfasedelportalalusuario,siseaccedea través de Internet, un protocolo Proxy soporta la comunicación con el usuarioyconelportalhttpyhtmlcomúnmentemejoradodellado delclienteconelusodelenguajesdescriptingy/ocódigoubicadoenel browser como ActiveX o controles Java. Servidor de Presentación: Crea e integra vistas de contenido a través de la interacción con otros componentes. Servidor de Aplicación: Ejecuta cualquier código que sea requerido dinámicamente para extraer y reformatear información desde sistema no basadosenweb. Administración de Contenido, búsqueda e indexación, y colaboración. Servicios de Personalización: Disponible para que cada usuario pueda configurarlavistayelcontenidoquequieretenercadavezqueaccede al portal. Seguridad: Un requerimiento para toda arquitectura de aplicaciones móviles, es el de asegurar la integridad de información sensible en sitios remotos. Un portal Web es completamente dependiente de la conexión de red, ya queesunaarquitecturacentradaenelservidorylaconexiónderedsehace un recurso imprescindible. Una solución simple para aplicaciones móviles es la de permitir el acceso offline a sitios Web, bases de datos y archivos que han sido previamente descargadosenelmóvil.elusuariointeractúaconlosmismosyunavezquela conexión se reestablece, las copias locales y remotas se sincronican. Esta solución es válida para aquellos portales simples, pero cuando las fuentes de datos vienen asociadas con otros sistemas o directamente no caben en el dispositivo móvil, no podrá ser aplicada. Entonces, sin conexión de red, la creación de contenido dinámico desde un portal y sus sistemas back-end en tiempo de ejecución es esencialmente

94 72 CAPÍTULO 4. APLICACIONES MÓVILES imposible. Sin embargo existen algunas aproximaciones que pueden ser usadas para proveer una vista offline del contenido: Prealmacenado del contenido generado en el portal. Replicación en el sistema móvil de los datos y el código usado para generar el portal y su sistema back-end. La apropiada estrategia a utilizar dependerá de factores como cantidad de datos involucrados, la complejidad de la interacción del usuario con los datos, y la frecuencia necesaria de actualización de los mismos. A continuación se presentará de que forma una arquitectura de portal móvil puede cubrir los requerimientos planteados para caracterizar una aplicación móvil: Clientes que soporten multiplataformas: Los portales usualmente soportan el acceso desde diferentes plataformas, manejan diferentes caracterizaciones de dispositivos, y cualquier transcodificación de contenido requerido. Como el contenido comúnmente es dinámico y el tipo de dispositivo del cliente impredecible, estas actividades ocurren en tiempo de ejecución. Una aplicación cliente que soporte movilidad no necesita soportar transcodificación dinámica porque el tipo de dispositivo del cliente es estático. La aplicación no necesita manejar cambios dinámicosenlapersonalizacióndeldispositivooffline,yaquesesuponequeel mismo será usado por una única persona. Capacidad de trabajar offline: Prealmacenado de Contenido: involucra el prealmacenado del contenido provisto por un portal en respuesta a un requerimiento hecho porunclienteatravésdeunaurl,comounapáginaweb.elcódigo que genera el contenido no es prealmacenado. Por ejemplo un link(enlace)puedeserreferenciaaunscriptjspoasp,elserver de aplicación corre este script y devuelve al cliente streams HTML. Estos HTML son los que están prealmacenados, no los scripts. Navegar el portal, siguiendo cada link y almacenar la salida en el sistema local para luego disponer del mismo offline, es un mecanismo completamente ineficiente. Además todas la páginas pueden no ser

95 4.4. ARQUITECTURA DE BASES DE DATOS 73 requeridas, por lo tanto el prealmacenado de contenido debe realizarse bajo el control de la configuración local que especifique las páginas de interés o provea un criterio de selección. Replicación de Código: permite que el contenido del portal sea más dinámico. El portal puede ejecutar código, por ejemplo JAVA, en el proceso de servir el contenido al usuario o en la recolección y manejodedatosdeotrossistemas.elcódigoesreplicadodesdeel servidor al cliente. Alguna replicación involucra componentes de la interfase del usuario, la mayoría esta involucrado con la colección, manipulación y almacenamiento de datos. Replicación de Datos: los datos pueden ser replicados del portal al cliente, del cliente al portal o en ambas direcciones. Si los datos solopuedetenerpermisodeescrituraenelladodelcliente,laimplementación se vuelve más simple, sin embargo la implementación que permite esquemas de múltiples copias que pueden ser actualizadas independientemente, se vuelve más compleja. Conectividad Continua: Dos áreas están incluidas dentro de conectividad continua, estas son administración de conectividad de red ylaseguridaddesdeelpuntodevistadelusuario.porejemploel usuario no tendrá físicamente que re-autenticarse cada vez que el sistema se reconecta. La conectividad continua puede ser soportada poremulación,lacualproveelaaparienciadequeelrecursodered se encuentra disponible. Una posible arquitectura de portal para aplicaciones móviles es la mostrada enlafig. 4.1 de la pág. 74, la cual refleja varios tipos de modificaciones: agregado de nuevos componentes(a los habituales de un portal no móvil) Arquitectura de Bases de Datos Para Aplicaciones Móviles Los usuarios tradicionales de una base de datos acceden a los datos residentes en el servidor de bases de datos desde sus equipos clientes conectados físicamente alared.los datos se presentan en la máquina clientecomo

96 74 CAPÍTULO 4. APLICACIONES MÓVILES Figura 4.1: Arquitectura de un Portal Móvil. una simple vista de los datos residentes en el servidor. Esta particular arquitectura es segura pero al mismo tiempo limitada en el hecho de que los usuarionopuedenverotrabajarconlosdatossinunaconexiónalared.todo procesamiento tiene lugar en el servidor, construido específicamente para tal propósito. Se puede afirmar que una base de datos es un archivo que contiene varios registros de datos. En un ambiente cliente/ servidor tradicional, más de un usuario puede utilizar la misma base de datos simultáneamente. RDBMS (Sistemas Manegadores de Bases de Datos Relacionales) hace esto posible a travésdelusodemecanismointernodelockingqueprevienenquemásdeun usuario modifique un registro al mismo tiempo[21]. Una arquitectura de base de datos preparada para un ambiente móvil, permite a los usuarios acceder a la información en cualquier momento y desde cualquier lugar. En un ambiente móvil, copias de los datos pueden existir en distintos sistemas clientes. Dado que estos sistemas clientes no están continuamente conectados a la base de datos central, el RDBMS de dicha base no es capazdeprevenircambiossimultáneosalosdatospormásdeunusuario.por

97 4.4. ARQUITECTURA DE BASES DE DATOS 75 otra parte, los datos locales en cada sistema cliente deben ser periódicamente sincronizadosconlosdatosdelabasemaster queresideenelservidor. Algunos de los desafíos al diseñar una arquitectura de bases de datos son las siguientes: Los datos en los sistemas cliente se desactualizan durante los periodos en que el cliente no está conectado. Los mensajes referentes a actualizaciones pendientes no estarán disponibles mientras el sistema este desconectado, esto introducirá mas dudas sobre la valides de los datos. La resolución de conflictos se volverán más desafiantes y ya no estarán bajo el control del RDBMS. El poder de procesamiento local en los clientes puede ser limitado en comparación al poder de procesamiento disponible en el servidor. Los datos propietarios, deben mantenerse seguros en las ubicaciones remotas. Unusuariomóvildebesercapazdeseleccionarlosdatosareplicarenel sistemaclienteparasuusocuandoelsistemaestedesconectadodelared.la replicación de la base de datos completa no debe ser permitida, se debe limitar al usuario aun arbitrario conjunto de datos. Las desconexiones cliente / servidor deben ser transparentes al usuario. La aplicación cliente debe continuar teniendo un buen comportamiento y los datos continuar disponibles para el usuario. Un usuario necesita saber si los datos que va a utilizar en un ambiente offline son viejos, irrelevantes o transitorios. El usuario debe ser capaz de basar sus decisiones en estos datos, pero los mismos deben ser marcados de forma que la decisión resultante pueda ser actualizada cuando los datos vuelvan a estar disponibles online nuevamente. Una arquitectura de base de datos para aplicaciones móviles debe garantizar que las transacciones serán trasmitidas confiablemente. Durante una transacción normal, una conexión de red es establecida entre el cliente y el servidor y la transferencia de datos es iniciada. Cuando la transferencia de datos se completa, una notificación sobre si la transferenciafuerealizadaconéxitoonoesenviadaalquelainició.lafalla

98 76 CAPÍTULO 4. APLICACIONES MÓVILES o el éxito de la transacción, no debe limitar el trabajo que el usuario puede hacer. Por ejemplo, si el dispositivo está conectado a la red y actualiza un campo de datos, la transacción será trasmitida al servidor inmediatamente. Si la conexión se pierde durante la transmisión, la transacción será encolada para ser transmitida cuando la conexión sea reestablecida. Mientras tanto el usuario debe poder ser capaz de hacer referencia a la actualización aunque la transmisión no se haya completado Aplicaciones Multiplataforma Multiplataforma es un término usado para referirse a los programas, sistemas operativos, lenguajes de programación, u otra clase de software, que puedan funcionar en diversas plataformas. Por ejemplo, una aplicación multiplataforma podría ejecutarse en Windows en un procesador x86, en GNU/Linux enunprocesadorx86,yenmacosxenunx86,sinnungúntipodeproblemas. Una plataforma es una combinación de hardware y software usada para ejecutar aplicaciones, en su forma más simple consiste únicamente de un sistema operativo, una arquitectura, o una combinación de ambos. La plataforma más conocida es probablemente Microsoft Windows en una arquitectura x86, otrasplataformasconocidassongnu/linux ymacosx (queyadeporsí son multiplataforma). El software en general está escrito de modo que dependa de las características de una plataforma particular; bien sea el hardware, sistema operativo, o máquina virtual en que se ejecuta. La plataforma Java es una máquina virtual multiplataforma, tal vez la más conocida de este tipo, así como una plataforma popular para hacer software Java y Multiplataforma Uno de los principales objetivos de los desarrolladores de software en los últimos años ha sido conseguir programas portables, capaces de ser ejecutados en diversas plataformas (Macintosh,PC, Unix, Windows), logrando la compatibilidad total. La aparición del lenguaje Java da la primera solución satisfactoria al problema de la compatibilidad. La idea consiste en crear máquinas virtuales idénti-

99 4.5. APLICACIONES MULTIPLATAFORMA 77 cas en cada una de las diferentes plataformas y encargarles a ellas la ejecución de programas, obteniendo así la compatibilidad total. Con el desarrollo de estas máquinas virtuales anteriormente mencionadas sepuedelograrqueelmismocódigobinarioejecutablesepuedausarentodos los sistemas compatibles con el software Java. Además la penetración de Java en Internet, como lenguaje de acompañamiento al HTML, ha sido todo un éxito.

100

101 Capítulo 5 Java 5.1. Introducción al Lenguaje Java es un lenguaje orientado a objetos. Esto significa que posee ciertas características estándares en los lenguajes OO: Objetos. Clases. Métodos. Subclases. Herencia simple. Enlace dinámico. Encapsulamiento. Java se volvió un lenguaje muy popular. Antes de que Java apareciera, por ejemplo, C era un lenguaje extremadamente popular entre los programadores y parecía que era el lenguaje de programación perfecto, combinando losmejoreselementosdeloslenguajes debajo yaltonivel enunlenguaje de programación que se ajustaba a la arquitectura del ordenador y que gustaba a los programadores. 79

102 80 CAPÍTULO 5. JAVA Sin embargo, el lenguaje C tenía limitaciones, al igual que los lenguajes de programación anteriores. Cuando los programas crecían, los programas C se hacían inmanejables porque no había una forma fácil de acortarlo. Esto quiere decirqueelcódigodelaprimeralíneadeunprogramalargopodríainterferir conelcódigodelaúltimalíneayelprogramadortendríaquerecordartodoel código mientras programaba. La programación orientada a objetos se hizo popular por ser capaz de dividir programas largos en unidades semi-autónomas. El lema de la programación orientada a objetos es divide y vencerás. Dicho en otras palabras, un programa se puede dividir en partes fácilmente identificables. Por ejemplo,sesuponequeparamantenerfrescalacomidaseutilizaun sistema complejo. Debería comprobar la temperatura de la comida usando un termómetro y cuando la temperatura fuera lo suficientemente alta, se activaría un interruptor que arrancara el compresor e hiciera funcionar las válvulas para que el frío circulara; luego arrancaría un ventilador que moviera el aire. Esa es una forma de hacerlo. Sin embargo, otra consiste en coordinar todas esas operaciones de forma que sean automáticas, cubriendo todo con una unidad sencilla, un refrigerador.ahoralasinterioridadesnosevenyloúnicoquehayquehacer es introducir o sacar comida del frigorífico. De esta forma es como funcionan los objetos, ocultan los detalles de la programación al resto del programa, reduciendo todas las interdependencias que aparecen en un programa C e inicializando una interfaz bien definida y controlable que mantiene la conexión entre el objeto y el resto del código. Resumiendo se puede decir que la programación orientada a objetos consiste en la división de un problema en diferentes partes(objetos) donde: Cada objeto posee una funcionalidad específica. Los objetos interactúan entre sí enviando y recibiendo mensajes; ver figura5.1delapágina81. La tarea del programador es coordinar las acciones de los objetos y la comunicación entre los mismos.

103 5.1. INTRODUCCIÓN AL LENGUAJE 81 Figura 5.1: Mecanismo de Mensajes Para programar bajo el paradigma orientado a objetos es necesario primero diseñar un conjunto de clases. La claridad, eficiencia y mantenibilidad del programa resultante dependerá principalmente de la calidad del diseño de clases. Un buen diseño de clases significará una gran economía en tiempo de desarrollo y mantención. Lamentablemente se necesita mucha habilidad y experiencia para lograr diseñosdeclasesdecalidad.unmaldiseñodeclasespuedellevaraprogramas OOdepeorcalidadydemásaltocostoqueelprogramaequivalentenoOO [16]. UnagranventajadeunlenguajeOO,sonlasbibliotecasdeclases quese pueden construir para la aplicación [12]. Una biblioteca de clases cumple el mismo objetivo de una biblioteca de procedimientos en una lenguaje como C. Sin embargo: Unabibliotecadeclases esmuchomásfácildeusarqueunabibliotecade procedimientos, incluso para programadores sin experiencia en orientación a objetos. Esto se debe a que las clases ofrecen mecanismos de abstracción más eficaces que los procedimientos Bibliotecas de Clases Estándares de Java Toda implementación de Java debe tener las siguientes bibliotecas de clases: Manejo de archivos. Comunicación de datos.

104 82 CAPÍTULO 5. JAVA Acceso a la red Internet.. Accesoabasesdedatos. Interfaces gráficas. La interfaz de programación de estas clases es estándar, esto quiere decir queentodasellaslasoperacionesseinvocanconelmismonombreylosmismos argumentos Java es Multiplataforma Los programas en Java pueden ejecutarse en cualquiera de las siguientes plataformas, sin necesidad de hacer cambios: Windows/95 y/nt. Power/Mac. Unix(Solaris, Silicon Graphics,...). La compatibilidad es total: A nivel de fuentes: el lenguaje es exactamente el mismo en todas las plataformas. A nivel de bibliotecas: en todas las plataformas están presentes las mismas bibliotecas estándares. A nivel del código compilado: el código intermedio que genera el compilador es el mismo para todas las plataformas. Lo que cambia es el intérprete del código intermedio, la MVJ(Máquina Virtual Java). Máquina Virtual Java Es un programa(software) que maneja la interacción entre las aplicaciones Java y el Sistema operativo y hardware subyacentes. Este programa interpreta los bytecodes generados por el compilador de Java durante la ejecución de un programa Java.

105 5.1. INTRODUCCIÓN AL LENGUAJE 83 Figura 5.2: Proceso Compilación y Ejecución Elprocesodecompilaciónyejecuciónsepuedenobservarenlafigura5.2 delapágina Características del Lenguaje Robustez Los siguientes errores no se pueden cometer en Java: Java siemprechequealosíndicesalaccederaunarreglo. Java realiza chequeo de tipos durante la compilación(al igual que C). En una asignación entre punteros el compilador verifica que los tipos sean compatibles. Javarealizachequeodetiposdurantelaejecución(CyC++nolo hacen).cuandounprogramausauncastparaaccederaunobjeto como si fuese de un tipo específico, se verifica durante la ejecución queelobjetoencuestiónseacompatibleconelcastqueseleaplica.sielobjetonoescompatible,entoncesselanzaunaexcepción informando al programador la línea en donde está el error. Java posee un recolector de basuras que administra automáticamente la memoria. La MVJ lo ejecuta para limpiar o reasignar memoria, se lo denomina Garbage Collector.

106 84 CAPÍTULO 5. JAVA Flexibilidad Java combina flexibilidad, robustez y legibilidad gracias a una mezcla de chequeo de tipos durante la compilación y durante la ejecución. En Java se pueden tener punteros a objetos de un tipo específico y también se pueden tener punteros a objetos de cualquier tipo. Estos punteros se pueden convertir a punteros de un tipo específico aplicando un cast. El programador usa entonces punteros de tipo específico en la mayoría de loscasosconelfindeganarlegibilidadyenunospocoscasosusapunterosa tipos desconocidos cuando necesita tener flexibilidad. Administración Automática de la Memoria En Java los programadores no necesitan preocuparse de liberar un trozo dememoriacuandoyanolonecesitan.eselgarbagecollectorelquedetermina cuando se puede liberar la memoria ocupada por un objeto. Un recolector de basuras es un gran aporte a la productividad. Se ha estudiado en casos concretos que los programadores han dedicado un 40% del tiempo de desarrollo a determinar en qué momento se puede liberar un trozo de memoria. Además este porcentaje de tiempo aumenta a medida que aumenta la complejidad del software en desarrollo. Es relativamente sencillo liberar correctamente la memoria en un programa de 1000 líneas. Sin embargo, es difícil hacerloenunprogramade10000líneas.ysepuedepostularqueesimposible liberar correctamente la memoria en un programa de líneas Estructura de un Programa Java En el siguiente ejemplo se presenta la estructura general de un programa realizado en cualquier lenguaje orientado a objetos u OOP(Object Oriented Programming), y en particular en el lenguaje Java: import java.awt.*; import java.lang.string; import java.lang.integer;

107 5.3. CONCEPTOS BÁSICOS 85 import java.awt.event.windowevent; import java.util.*; import java.awt.textfield; public class Simu extends Frame implements ActionListener, ItemListener{ MenuBar barra; m1 =new Menu( Archivo ); barra.add(m1); m2=newmenu( Ver ); barra.add(m2);... public static void main(string args[]){ Simumenus=newSimu(); menus.settitle( Simulación de Redes ); menus.setvisible(true); } } Aparece una clase que contiene el programa principal Simu (aquel que contiene la función main()) y algunas clases de usuario(las específicas de la aplicación que se está desarrollando) que son utilizadas por el programa principal.laaplicaciónseejecutapormediodelnombredelaclasequecontiene lafunciónmain().lasclasesdejava seagrupanenpackages,quesonlibreríasdeclases.silasclasesnosedefinencomopertenecientesaunpackage,se utiliza un package por defecto(default) que es el directorio activo Conceptos Básicos Clases Unaclaseesunaplantilladesdelaquesepuedencrearobjetos.Ladefinición de una clase incluye especificaciones formales para la clase y cualquier dato y métodos incluidos en ella. La programación orientada a objetos se basa

108 86 CAPÍTULO 5. JAVA en la programación de clases [2]. Un programa se construye a partir de un conjunto de clases. Una vez definida e implementada una clase, es posible declarar elementos de esta clase. Los elementos declarados de una clase se denominan objetos de laclase.deunaúnicaclasesepuedendeclararocrearnumerososobjetos.la claseeslogenérico:eselpatrónomodeloparacrearobjetos. Cada objeto tiene sus propias copias de las variables miembro, con sus propios valores, en general distintos de los demás objetos de la clase. Ejemplo: public abstract class FuncionActivacion implements Cloneable, Serializable{ /*constructor sin argumentos que permite la herencia*/ public FuncionActivacion(){ } } Herencia La herencia es uno de los aspectos de la programación orientada a objetos que se ha definido formalmente. Utilizando la herencia, se puede crear una nuevaclaseapartirdeotra,ylanuevaheredarátodoslosmétodosymiembros dedatosdelaprimera. Laclasenuevasellamasubclaseylaclaseoriginal,clasebaseosuperclase. Laideaesañadirloquesequieraalanuevaclaseparadarlemásfuncionalidad quealaclasebase. LaherenciaesuntemaimportanteenJava,yaquesepuedeusarlagran librería de clases disponible, derivando de ellas nuestras clases propias. En Java, a diferencia de otros lenguajes orientados a objetos, una clase sólo puede derivar de una única clase, con lo cual no es posible realizar herencia múltiple en base a clases. Sin embargo es posible simular la herencia múltiple en base a las interfaces.

109 5.3. CONCEPTOS BÁSICOS Interfaces Una interfaz es una clase abstracta que define métodos abstractos y constantes, pero no implementa los métodos. La clase que implemeta una interfaz hereda los métodos y debe implementarlos, es decir se forma un contrato entre la Interfaz y la clase que implementa la Interfaz. Una clase puede implementar más de una interface y una interface puede ser implementada por clases que no se encuentran relacionadas Package Un package es una agrupación de clases. Existen una serie de packages incluidos en el lenguaje. Además el programador puede crear sus propios packages. Todas las clases queformenpartedeunpackagedebenestarenelmismodirectorio. Los packages se utilizan con las siguientes finalidades: 1. Para agrupar clases relacionadas. 2. Paraevitarconflictosdenombres.Encasodeconflictodenombresentre clases importadas, el compilador obliga a cualificar en el código los nombres de dichas clases con el nombre del package. 3. Paraayudarenelcontroldelaaccesibilidaddeclasesymiembros. Por las razones citadas, durante la etapa de Diseño del Software desarrollado, se ha decido crear dos paquetes, calculos e interface, utilizando la sentencia package. package myprojects.simu; import myprojects.calculos.*; import myprojects.interfase.*;

110 88 CAPÍTULO 5. JAVA 5.4. Variables de Java Una variable en Java es un identificador que representa una palabra de memoria que contiene información. El tipo de información almacenado en una variable sólo puede ser del tipo con que se declaró esa variable. Los diferentes tipostienenqueverconelformatodelosdatosquesealmacenanenella,así como con la memoria que es necesaria para gestionar ese dato. Hay dos tipos principales de variables: Variables de tipos primitivos: Están definidas mediante un valor único y almacenan directamente ese valor siempre que pertenezca al rango de esetipo.porejemplounavariableint almacenaunvalorenterocomo1, 2,0,-1,etc. Variables referencia: Las variables referencia son referencias o nombres de una información más compleja: arrays u objetos de una determinada clase.unareferenciaaunobjetoesladireccióndeunáreaenmemoria destinada a representar ese objeto. El área de memoria se solicita con el operador new. Una variable de referencia también puede ser descripta como una referencia a una clase. Porejemplosisedefine:Estudiante e1. e1esunareferenciaaunainstancia de Estudiante. Sepuededecirquedentrodeunprogramalasvariablespuedenser: Variablesmiembrodeunaclase: Sedefinenenunaclase,fueradecualquier método; pueden ser tipos primitivos o referencias. Son también llamadas atributos. Variableslocales:Sedefinendentrodeunmétodoomásengeneraldentro decualquierbloqueentrellaves{}.secreanenelinteriordelbloqueyse destruyen al finalizar dicho bloque. Pueden ser también tipos primitivos o referencias. EnlaTabla5.1delapágina89semuestranlasgrandescategoríasdetipos para las variables en Java: EnlaTabla5.2delapágina89seindicaparacadatipoprimitivoelnúmero debitsqueseempleaensurepresentaciónyelrangodevaloresquesepuede almacenar en las variables de estos tipos.

111 5.4. VARIABLES DE JAVA 89 Tipos Primitivos Referencias a Objetos int, short, byte, long Strings char, boolean Arreglos float, double otros objetos Cuadro 5.1: Categorías de Variables. Tipo Bits Rango Ejemplos int ,1,5,-120,... short , ,1,5,-120,... byte , ,1,5,-120,... long , ,1,5,-120,... boolean 1 n/a false, true char 16 n/a a, A, 0, *,... float 32 IEEE 1.2 double 64 IEEE 1.2 Cuadro 5.2: Tipos Primitivos de Datos

112 90 CAPÍTULO 5. JAVA Datos de Objetos o Instancia Son datos propios de cada instancia (objeto) de una clase determinada. Cada objeto tiene una copia de sus datos. Estos pueden ser variables, métodos. Seinicializanconelvalorpordefectodependiendodeltipodedatodela variable. Cada tipo de dato tiene asociado un valor por defecto de inicialización: Integrales(byte, short, int, long): Se inicializan en 0. Flotantes(float, double): Se inicializan en 0,0. Boolean: se inicializan en false. Char: se inicializan en/u0000 en formato UNICODE Datos de Clase Son datos generales o globales a la ejecución de un aplicación. Representan datos que son compartidos por todas las instancias de una clase y son cargados en memoria antes de que una instancia de la clase sea creada. Es decir antes de que se instancien nuevos objetos de la clase. Se declaran con la palabra reservada static. Por ejemplo una variable de clase sería: public static String mensaje. Yunejemplodeladeclaracióndeunmétododeclase: public static void leerurl().

113 5.5. OPERADORES DEL LENGUAJE JAVA Operadores del Lenguaje Java Operadores Aritméticos Son operadores binarios (requieren siempre dos operandos) que realizan las operaciones aritméticas habituales: suma(+), resta(-), multiplicación(*), división(/)yrestodeladivisión(%) Operadores de Asignación Los operadores de asignación permiten asignar un valor determinado a una variable. El operador de asignación por excelencia es el operador igual(=). La forma general de las sentencias de asignación con este operador es: variable = expresión; Java dispone de otros operadores de asignación. Se trata de versiones abreviadas del operador (=) que realizan operaciones acumulativas sobre una variable. LasiguienteTabla5.3delapág.91,muestraestosoperadoresysuequivalencia con el uso del operador igual(=). Operador Utilización ExpresiónEquivalente += op1+=op2 op1=op1+op2 -= op1-=op2 op1=op1-op2 =* op1*=op2 op1=op1*op2 =/ op1/=op2 op1=op1/op2 %= op1%=op2 op1=op1%op2 Cuadro 5.3: Operadores de asignación Operadores Unarios Los operadores unarios sirven para mantener o cambiar el signo de una variable,constanteoexpresiónnumérica.ellossonelmás(+)ymenos(-).su

114 92 CAPÍTULO 5. JAVA usoenjava eselestándardeestosoperadores Operador Instanceof EloperadorInstanceofpermitesabersiunobjetoesunainstanciaonode una clase determinada y se utiliza de la siguiente manera: objectname instanceof classname. Devuelvetrueofalsesegúnelobjetopertenezcaonoalaclase Operador Condicional Este operador permite realizar bifurcaciones sencillas, su forma general es la siguiente: boolean expresion? res1: res2 dondeseevalúalaexpresionbooleanaysiestruedevuelveres1,siesfalse devuelve res2. Es el único operador ternario de Java Operadores Incrementales Java dispone del operador incremento(++) y decremento( ). El operador (++) incrementa en una unidad la variable a la que se aplica,mientras que ( )lareduceenunaunidad.sepuedenutilizardedosformas: Precediendoalavariabledelaforma ++i.enestecasoprimeroseincrementa la variable y luego se utiliza(ya incrementada) en la expresión enlaqueaparece. Despuésdelavariabledelaforma i++.enestecasoprimeroseutiliza la variable en la expresión(con el valor anterior) y luego se incrementa. En muchos casos estos operadores se utilizan para incrementar una variable fuera de una expresión. En estos casos ambos operadores son equivalentes. Si

115 5.5. OPERADORES DEL LENGUAJE JAVA 93 se utilizan en una expresión más complicada, el resultado de utilizar estos operadoresenunauotradesusformasserádiferente Operadores Relacionales Los operadores relacionales sirven para realizar comparaciones de igualdad, desigualdad y relación de menor o mayor. El resultado de estos operadores es siempreunvalorboolean(true ofalse)segúnsecumplaonolarelaciónconsiderada. La siguiente Tabla 5.4 de la pág. 93 muestra los operadores relacionales de Java. Operador Utilización El resultado es true > op1>op2 siop1esmayorqueop2 >= op1>=op2 siop1esmayoroigualqueop2 < op1<op2 siop1esmenorqueop2 <= op1<=op2 siop1esmenoroigualqueop2 == op1==op2 siop1yop2soniguales!= op1!=op2 siop1yop2sondiferentes Cuadro 5.4: Operadores relacionales Operadores de Concatenación de Caracteres El operador más(+) también se utiliza para concatenar cadenas de caracteres. Por ejemplo, para concatenar cadenas puede utilizarse la sentencia: String msj = Datos ingresados correctamente ; System.out.println( Mensaje: + msj); endondelaleyendaqueapareceráenlaconsolasería: Mensaje: Datos ingresados correctamente.

116 94 CAPÍTULO 5. JAVA 5.6. Estructuras de Programación Las estructuras de programación o estructuras de control permiten tomar decisiones y realizar un proceso repetidas veces. Son las denominadas bifurcacionesybucles.enlamayoríadeloslenguajesdeprogramación,estetipode estructuras son comunes en cuanto a concepto, aunque su sintaxis varía de un lenguaje a otro. La sintaxis de Java coincide prácticamente con la utilizada en C/C++, lo que hace que para un programador de C/C++ no suponga ninguna dificultad adicional Sentencias o Expresiones Una expresión es un conjunto variables unidas por operadores. Son órdenes que se le dan al computador para que realice una tarea determinada. Una sentencia es una expresión que acaba en punto y coma (;). Se permite incluir varias sentencias en una línea, aunque lo habitual es utilizar una línea para cada sentencia. A continuación se muestra un ejemplo de una línea compuesta de tres sentencias: i=0;j=5;x=i+j; donde lo habitual sería: i=0; j=5; x=i+j; Comentarios Existen dos formas diferentes de introducir comentarios entre el código de Java(enrealidadsontres,comoprontoseverá).Sonsimilaresalaformaderealizar comentarios en el lenguaje C/C++. Los comentarios son tremendamente útiles para poder entender el código utilizado, facilitando de ese modo futuras revisiones y correcciones. Además permite que cualquier persona distinta al programador original pueda comprender el código escrito de una forma más

117 5.6. ESTRUCTURAS DE PROGRAMACIÓN 95 rápida. Se recomienda acostumbrarse a comentar el código desarrollado. De esta forma se simplifican también las tareas de estudio y revisión posteriores. Java interpreta que todo lo que aparece a la derecha de dos barras // enunalíneacualquieradelcódigoesuncomentariodelprogramadoryno lotieneencuenta.elcomentariopuedeempezaralcomienzodelalíneaoa continuación de una instrucción que debe ser ejecutada. La segunda forma de incluir comentarios consiste en escribir el texto entre los símbolos /* */. Estesegundométodoesválidoparacomentarmásdeunalíneadecódigo.Por ejemplo: //Estalíneaesuncomentariodeunasolalínea inta=1;//comentarioaladerechadeunasentencia /*Estetipodecomentariosesparacomentarmásdeunasólalínea, sólorequieremodificarelcomienzoyelfinal.*/ En Java existe además una forma especial de introducir los comentarios (utilizando/***/ más algunos caracteres especiales) que permite generar automáticamente la documentación sobre las clases y packages desarrollados por el programador. Una vez introducidos los comentarios, el programa javadoc.exe (incluido en el JDK) genera de forma automática la información de forma similaralapresentadaenlapropiadocumentacióndeljdk.lasintaxisdeestos comentarios y la forma de utilizar el programa javadoc.exe se puede encontrar enlainformaciónquevieneconeljdk Bifurcaciones Las bifurcaciones permiten ejecutar una de entre varias acciones en función del valor de una expresión lógica o relacional. Se tratan de estructuras muy importantesyaquesonlasencargadasdecontrolarelflujodeejecucióndeun programa. Se exponen dos variantes del de tipo if. Bifurcación if Esta estructura permite ejecutar un conjunto de sentencias en función del valor que tenga la expresión de comparación. Ejemplo: se ejecuta si la expresión de comparación(error < errorminimo) tiene valor true:

118 96 CAPÍTULO 5. JAVA numero=58; if(math.abs(numero) < 10){ System.out.println( Número de 1 solo dígito ); }/*findelif*/ Lasllaves{}sirvenparaagruparenunbloquelassentenciasquesehan deejecutar,ynosonnecesariassisólohayunasentenciadentrodelif. Bifurcación if else Análoga a la anterior, de la cual es una ampliación. Las sentencias incluidas enelelse seejecutanenelcasodenocumplirselaexpresióndecomparación (false), Ejemplo: numero=58; if(math.abs(numero) < 10){ System.out.println( Número de 1 solo dígito ); }else{ System.out.println( Número de 2 dígitos ); }//findelelse Bucles Un bucle se utiliza para realizar un proceso repetidas veces. Se denomina también lazo o loop. El código incluido entre las llaves {} (opcionales si el proceso repetitivo consta de una sola línea), se ejecutará mientras se cumplan unas determinadas condiciones. Hay que prestar especial atención a los bucles infinitos, hecho que ocurre cuando la condición de finalizar el bucle(booleanexpression)nosellegaacumplirnunca.setratadeunfallomuytípico,habitual sobre todo entre programadores poco experimentados.

119 5.6. ESTRUCTURAS DE PROGRAMACIÓN 97 Bucle while En el siguiente ejemplo se muestra que se ejecutará la sentencia fin++ mientras la expresión (capas.charat(fin)!=, && capas.charat(fin)!=-1) sea verdadera. for(intj=0;j<numerocapas;j++){ int fin = principio; try{ while(capas.charat(fin)!=, && capas.charat(fin)!=-1){ fin++; } } } Bucle for A continuación se podrá apreciar la utilización del bucle for: /*calcularelnuevovectordediseño*/ for(inti=0;i<vectordis.length;i++){ vectordis[i] = vectordis[i] + learningrate* S[i]; } La sentencia int i = 0 (inicialización) se ejecuta al comienzo del for, e i++(incremento) después de vectordis[i] = vectordis[i] + learningrate* S[i] (sentencia). La expresión booleana(vectordis.length) se evalúa al comienzo de cada iteración; el bucle termina cuando la expresión de comparación toma el valor false.

120 98 CAPÍTULO 5. JAVA Bucle do while Essimilaralbuclewhile peroconlaparticularidaddequeelcontrolestá al final del bucle (lo que hace que el bucle se ejecute al menos una vez, independientemente de que la condición se cumpla o no). Una vez ejecutadas las sentencias, se evalúa la condición: si resulta true se vuelven a ejecutar las sentencias incluidas en el bucle, mientras que si la condición se evalúa a false finaliza el bucle. do{ /*calcularelgradientedelvectorfijarelvectordediseño*/ problema.fijovector(vectordis); /* incrementar el contador de iteraciones*/ step++; }while(error > errordeseado&& step < iteracionesmaximas); /*...hastaqueelerrorseamenoroigualqueeldeseadoo*/ /* se alcance el número de iteraciones pasado como argumento*/ problema.fijovector(vectordis); Bloque try{...}catch{...}finally{...} Java incorpora en el propio lenguaje la gestión de errores. El mejor momento para detectar los errores es durante la compilación. Sin embargo prácticamente sólo los errores de sintaxis son detectados en esta operación. El resto de los problemas surgen durante la ejecución de los programas. EnellenguajeJava,unaException esunciertotipodeerrorounacondición anormal que se ha producido durante la ejecución de un programa. Algunas excepciones son fatales y provocan que se deba finalizar la ejecución del programa. En este caso conviene terminar ordenadamente y dar un mensaje explicando el tipo de error que se ha producido. Otras excepciones, como por ejemplonoencontrarunficheroenelquehayqueleeroescribiralgo,pueden

121 5.7. SERVLETS 99 ser recuperables. En este caso el programa debe dar al usuario la oportunidad de corregir el error(dandopor ejemploun nuevo path delfichero no encontrado). Los errores se representan mediante clases derivadas de la clase Throwable, pero los que tiene que chequear un programador derivan de Exception (java.lang.exception que a su vez deriva de Throwable). Existen algunos tipos de excepciones que Java obliga a tener en cuenta. Esto se hace mediante el usodebloquestry,catch yfinally. El código dentro del bloque try está vigilado : Si se produce una situación anormal y se lanza como consecuencia una excepción, el control pasa al bloque catchquesehacecargodelasituaciónydecideloquehayquehacer.sepueden incluirtantosbloquescatch comosedesee,cadaunodeloscualestrataráun tipo de excepción. Finalmente, si está presente, se ejecuta el bloque finally, queesopcional,peroqueencasodeexistirseejecutasiempre,seacualseael tipo de error. En el caso en que el código de un método pueda generar una Exception ynosedeseeincluirendichométodolagestióndelerror(esdecirlosbucles try/catch correspondientes), es necesario que el método pase la Exception al métododesdeelquehasidollamado.estoseconsiguemediantelaadiciónde la palabra throws seguida del nombre de la Exception concreta, después de la lista de argumentos del método. A su vez el método superior deberá incluir losbloquestry/catch ovolverapasarlaexception.deestaformasepuedeir pasandolaexception deunmétodoaotrohastallegaralúltimométododel programa, el método main() Servlets Los servlets son programas de Java que construyen respuestas dinámicas paraelcliente,talcomopáginasweb.losservlets recibenyrespondenalas demandas de los clientes Web, normalmente por HTTP. Además los servlets son escalables, dando soporte para una multi-aplicación de configuración del servidor.[10] Permiten utilizar datos caché, acceso a información de base de datos, y compartir datos con otros servlets, archivos JSP y(en algunos ambientes) con los bean empresariales.

122 100 CAPÍTULO 5. JAVA Poseen algunas ventajas respecto a los tradicionales programas CGI: Independencia de la plataforma. Esto proporciona un menor esfuerzo de codificación con respecto a soluciones dependientes del servidor web y de la plataforma. Ejecución en paralelo de múltiples peticiones por una sola instancia del servlet.tradicionalmente en los programas CGI se ejecuta un proceso distinto para cada petición, lo que conlleva una gradual degradación del rendimiento y una necesidad de recursos muy elevada. En un servlet todas las peticiones se atienden en el mismo proceso por distintos hilos yunavezquesehacargadoelservletestepermaneceenmemoriahasta que se reinicie el servidor Estructura de un Servlet El API Servlet consiste básicamente en dos paquetes: javax.servlet javax.servlet.http Todas las clases e interfaces que hay que utilizar en la programación de servlets están en estos dos paquetes. Vision General del API de Servlet La relación entre las clases e interfaces de Java, muy determinada por el conceptodeherencia,talcomopuedeverseenlafigura5.3delapágina101, se representan con letra normal las clases y las interfaces con cursiva. La clase GenericServlet es una clase abstracta puesto que su método service() es abstracto. Esta implementa dos interfaces, de las cuales la más importante es la interface Servlet. La interface Servlet declara métodos más importantes de cara a la vida de un servlet: init() que se ejecuta sólo al arrancar el servlet; destroy() que se

123 5.7. SERVLETS 101 Figura 5.3: Jerarquía y Métodos de las Principales Clases para Crear Servlets.

124 102 CAPÍTULO 5. JAVA ejecutacuandovaaserdestruidoyservice()queseejecutarácadavezqueel servlet debe atender una solicitud de servicio. Cualquier clase que derive de GenericServlet deberá definir el método service(). Este método tiene en su definición dos argumentos correspondientes a las interfaces ServletRequest y ServletResponse. La primera referencia a un objetoquedescribeporcompletolasolicituddeservicioqueseleenvíaalservlet. SilasolicituddeserviciovienedeunformulairoHTML,atravésdeeseobjeto sepuedeaccederalosnombresdeloscamposyalosvaloresintroducidospor elusuario.elsegundoargumentoesunobjetoconlareferenciaalainterface ServletResponse que constituye el camino mediante el cual el método service() seconectadenuevoconelclienteylecomunicaelresultadodesusolicitud. La clase HttpServlet ya no es abstracta y dispone de una implementación o definición del método service(). Dicha implementación detecta el tipo de servicio o método HTTP que le ha sido solicitado desde el browser y llama al método adecuado de esa misma clase (dopost(), doget(), etc.), también aparecen otras interfaces como ser: La interfaz ServletConfig define métodos que permiten pasar al servlet información sobre sus parametros de inicialización. La interface ServletContext permite a los servlets acceder a información sobre el entorno en que se estan ejecutando. Principios de Codificación de Servlet Para crear un servlet de HTTP, es necesario extender las clases: javax.servlet.httpservlet y sustituir cualquier método que se desee implementar en el servlet. Por ejemplo, un servlet reemplaza el método doget para manejar las demandas Get de los clientes. El HttpServletRequest representa los requerimientos de un cliente. Este objeto da acceso al servlet, a la información incluida como datos en formato HTML, encabezados HTTP, etc. El HttpServletResponse representa la respuesta del servlet. El servlet usa este objeto para devolverle datos al cliente como errores de HTTP(200, 404, y otros), encabezados de respuesta(content-type, Set-

125 5.7. SERVLETS 103 Cookie, y otros), y datos de salida para escribir cadenas de salida de respuesta o salida impresa. El principio de un servlet podría parecerse al siguiente ejemplo: import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class ServletPrueba extends HttpServlet{ public void doget(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException{ Ciclo de Vida del Servlet Un Servlet de Java tiene un ciclo devida quedetermina como el servlet escargadoeinicializado,comorecibeyrespondealaspeticionesycomosale fuera de servicio. Las clases javax.servlet.http.httpservlet definen métodos tales como: Iniciar un servlet. Solicitar servicios. Quitar un servlet del servidor. Éstossonconocidoscomométodosdelciclodevidaysonllamadosenla siguiente secuencia: Se construye el servlet. Se inicializa con el método init(). Se manejan llamadas de los clientes al método de servicio. Se saca el servlet de servicio. Se destruye con el método destruir.

126 104 CAPÍTULO 5. JAVA Se finaliza el servlet y la basura es recolectada. ElciclodevidadeunServletsepuedeapreciarenlafigura5.4delapágina 104. Figura5.4:CiclodeVidadeunServlet Instanciación e Inicialización El motor del servlet (la función del Servidor de Aplicaciones que procesa servlets, archivos JSP, y otros tipos de server-side incluyendo codificación) crea

127 5.7. SERVLETS 105 una instancia del servlet. El motor del servlet crea el objeto de configuración del servlet y lo usa para pasar los parámetros de inicialización del servlet al método init(). La inicialización de los parámetros persiste hasta que el servlet se destruye y es aplicada a todas las invocaciones de ese servlet hasta destruirse. Si la inicialización tiene éxito, el servlet está disponible para el servicio. Si la inicialización falla, el motor del servlet descarga el servlet. El administrador puede inhabilitar una aplicación y el servlet para el servicio. En tales casos, la aplicación y el servlet permanecen inhabilitados hasta que el administrador los habilite Servicio de Demanda Una demanda del cliente llega al servidor de aplicaciones. El motor del servlet crea un objeto demanda y un objeto respuesta. El motor del servlet invoca al método de servicio del servlet, procesa el requerimiento y usa métodos del objeto respuesta para crear la respuesta para el cliente. El método de servicio recibe información sobre el requerimiento del objeto demanda, procesa el requerimiento, y usa los métodos del objeto respuesta para crear la contestación para el cliente. El método de servicio puede invocar otros métodos para procesar el requerimiento, tales como doget(), dopost(), o métodos del usuario Terminación El motor del servlet invoca al método destroy() del servlet cuando apropia y descarga el servlet. La Máquina Virtual de Java realiza la recolección de basura después de la destrucción del servlet. CuandoelcontenedorWebyanonecesitaqueelservletounanuevainstancia del servlet se recarguen, invoca al método destroy() del servlet. El contenedor Web también puede llamar al método destroy() si el motor necesita conservar recursos o una llamada pendiente a un método service() del servlet excediendo el timeout. La Máquina Virtual de Java realiza recolección de basura después del destroy.

128 106 CAPÍTULO 5. JAVA Java Server Faces Java Server Pages (JSP) combinan HTML con fragmentos de Java para producir páginas web dinámicas. Cada página es automáticamente compilada a servlet por el motor de JSP,enprimerlugaresrecogidayacontinuaciónejecutada.JSP tienegranvariedad de formas para comunicarse con las clases de Java, servlets, applets y elservidorweb;porestosepuedeaplicarunafuncionalidadanuestraweba base de componentes. UnapáginaJSPesunarchivodetextosimplequeconsisteencontenido HTML o XML con elementos JSP. Cuando un cliente pide una página JSP delsitiowebynosehaejecutadoantes,lapáginaes inicialmentepasadaal motor de JSP, el cual compila la página convirtiéndola en Servlet, la ejecuta y devuelve el contenido de los resultados al cliente. El código fuente de una página JSP incluye: Directivas: Dan información global de la página, por ejemplo, importación de estamentos, página que majena los errores o cuando la página forma parte de una sesión. Declaraciones: Sirven para declarar métodos y variables. ScriptsdeJSP:EselcódigoJavaembebidoenlapágina. Expresiones de JSP: Formatea las expresiones como cadenas para incluirlas en la página de salida. Directivas Una directiva de JSP es un estamento que proporciona la información del motordejspparalapáginaquelapide.susintaxisgenerales<%@directiva {atributo = valor }%> dónde la directiva debe tener un número de atributos. Algunos ejemplos son: Page: Información para la página. Include: Incluye archivos completos palabra por palabra. Taglib:Ladireccióndelalibreríadetagsqueseusaráenlapágina.

129 5.7. SERVLETS 107 La directiva Page posee varios atributos: language= java : Comunica al servidor el lenguaje que va a ser utilizado en el archivo. Java es el único posible en esta especificación. extends= package.class : La variale extends, define la clase padre del servlet generado. Normalmente no es necesario utilizar otras quenoseanlasclasesbasedelproveedor. import= package.*, package.class : Sirve para especificar los paquetes y clases que se quieran utilizar. session= true false : Por defecto session vale true, manteniendo los datosdelassesiónparalapágina. isthreadsafe= true false : Por defecto vale true, le hace señales al motor de JSP para que múltiples pedidos del cliente puedan ser tomados como uno. info= text :Informaciónen lapágina alaquepuedeaccedersea través del método Servlet.getServletInfo(). errorpage= pagina_error : Página que manejará las excepciones de errores. Declaraciones Una declaración de JSP, puede definirse como una definición de variables ymétodosaniveldeclasequesonusadasenlapágina. Un bloque de declaraciones típico sería <%! declaración%> Un ejemplo de declaración de script sería el siguiente: <HTML> <HEAD> <TITLE>Página simple JSP</TITLE> </HEAD> <BODY> <%! String strcadena = x ;

130 108 CAPÍTULO 5. JAVA int intcontador = 0; %> </BODY> </HTML> Scripts de JSP LosScriptssonbloquesdecódigoJavaresidentesentrelostags<%y%>. Estos bloques de código estarán dentro del servlet generado incluídos en el método_jspservice(). Los Scripts pueden acceder a cualquier variable o Bean que haya sido declarado. También hay algunos objetos implícitos disponibles para los Scripts desde entorno del Servlet. Algunos de ellos pueden verse a continuación: request: Es la petición del cliente. Es normalmente una subclase de la clase HttpServletRequest. response:eslapáginajspderespuestayesunasubclasedehttpservletresponse. Los atributos de la página y los objetos implícitos necesitan seraccesiblesatravésdeapi,parapermitiralmotordejspcompilar la página. Pero cada servidor tiene implementaciones específicas de cada uno de esos atributos y objetos. pagecontext: Esta clase PageContext es inicializada con los objetos response y request y algunos atributos de la directiva de la página (erropage, session, buffer and autoflush) y facilita los otros objetos implícitos para la página de petición. session: El objeto de sesión HTTP asociado a la petición. application: Lo que devuelve el servlet cuando se llama a getservletconfig().getcontext(). page:eslaformaquetienelapáginaparareferirseasimisma.seusa como alternativa al objeto this. El siguiente fragmento de código muestra como obtener el valor de un parámetro mediante el objeto request, y como pasarlo a una cadena para mostrarlo en pantalla.

131 5.7. SERVLETS 109 <% String strnombre = request.getparameter( nombre ); out.println(strnombre); %> Expresiones JSP Las expresiones son una magnífica herramienta para insertar código embebido dentro de la página HTML. Cualquier cosa que esté entre los tags <%= y%> será evaluado, convertido a cadena y posteriormente mostrado en pantalla. La conversión desde el tipo inicial a String es manejada autómaticamente. Esimportanteremarcarquelaexpresiónnoterminaenpuntoycoma(;). Esto es así porque el motor de JSP, pondrá la expresión automáticamente entre out.println(). Las expresiones JSP permiten parametrizar las páginas HTML (es parecidoacuandoseparametrizaunaconsultasqlperodifierenlaformadelos valores). Unayotravez,enelcódigodelapáginaHTML,serveránbuclesocondiciones usando código Java, simplemente empezando y acabando las condiciones obuclesentrelostags<%y%>. Un ejemplo sería: <%for(inti=0;i<5;i++){%> <BR>Elvalordelcontadores<%=i%> <%}%> Modelos de Acceso JSP SepuedeaccederalosarchivosJSP dedosmaneras: El browser envía un requerimiento para los archivos JSP.

132 110 CAPÍTULO 5. JAVA Figura 5.5: Requerimiento de un archivo JSP. Figura 5.6: Requerimiento de un Servlet Los archivos JSP acceden a los beans u otros componentes que generan contenido dinámico para ser enviado al browser como se muestra en la figura 5.5delapágina110. Cuando el servidor Web recibe un requerimiento para un archivo JSP, el servidor envía ese requerimiento al servidor de aplicaciones. El servidor de aplicaciones analiza el archivo JSP y genera código fuente de Java que se compila y se ejecuta como un servlet. El requerimiento se envía a un servlet que genera contenido dinámico y llamaaunarchivojspparaenviarelcontenidoaunbrowser,comosemuestra enlafigura5.6delapágina110.

133 5.7. SERVLETS 111 Este modelo de acceso facilita la generación de contenido separado del despliegue de contenido. El servidor de aplicaciones proporciona un juego de métodos en el objeto HttpServiceRequest object y el objeto HttpServiceResponse. Estos métodos permiten una invocación de servlet para colocar un objeto(normalmente un bean) en un objeto demanda y pasa ese requerimiento a otra página (normalmente un archivo JSP) para el despliegue. La página invocada recupera el beansdelobjetodemandaygeneraelhtmlquerecibeelcliente Desarrollando Aplicaciones Para WebSphere Application Server, las aplicaciones son combinaciones de bloques que trabajan conjuntamente para el logro de una función de la lógica comercial. Las aplicaciones Web son grupos de uno o más servlets, más el contenido estático. Aplicaciones Web = servlets + archivos JSP + archivos XML + archivos HTML + gráficos. El modelo de programación de WebSphere Application Server está basado enlaplataformajavadesun(j2se).elambientej2sesoportalabasepara construir redes centrales de aplicaciones empresariales para correr sobre una variedad de sistemas. El software J2SE consiste en los Java SDK Standard Edition y el Java Runtime Environment (JRE) Standard Edition.

134

135 Capítulo 6 Java 2 Micro Edition 6.1. Introducción ParaempezarsepuededecirqueJava2MicroEditionoJ2MEeslaversión del lenguaje Java que está orientada al desarrollo de aplicaciones para dispositivos pequeños con capacidades restringidas tanto en pantalla gráfica, como de procesamiento y memoria (teléfonos móviles, PDA s, Handhelds, Pagers, etc.). EstaversióndeJavafuepresentadaen1999porSunMicrosystems conel propósito de habilitar aplicaciones Java para pequeños dispositivos. En esta presentación lo que realmente se mostró fue una nueva máquina virtual Java o JVM (Java Virtual Machine) que podía ejecutarse en dispositivos Palm. La tardía aparición de esta tecnología puede ser debido a que las necesidades de los usuarios de telefonía móvil han cambiado mucho en estos últimos añosycadavezdemandanmásserviciosyprestacionesporpartetantodelos terminales como de las compañías. Además el uso de esta tecnología depende del asentamiento en el mercado de otras, como GPRS, íntimamente asociada aj2me yquenohaestadoalalcancehastahacepoco.j2me eslatecnología del futuro para la industria de los dispositivos móviles. 113

136 114 CAPÍTULO 6. JAVA 2 MICRO EDITION Comparación de Versiones Sun Microsystems, con el objetivo de cubrir las necesidades de todos los usuarios creó distintas versiones de Java de acuerdo a las necesidades de cada uno,porlocualexisteelpaquetejava2 quesepuededividiren3ediciones distintas: J2SE (Java Standard Edition) orientada al desarrollo de aplicaciones independientes de la plataforma. J2EE(Java Enterprise Edition) orientada al entorno empresarial. J2ME(Java Micro Edition) orientada a dispositivos con capacidades restringidas. Algunas de las características de cada una de las versiones son: 1. Java 2 Platform, Standard Edition (J2SE): Estaedición dejava es la que en cierta forma recoge la iniciativa original del lenguaje Java. Tiene las siguientes Características: Inspirado inicialmente en el lenguaje C++, pero con componentes de alto nivel, como soporte nativo de strings y recolector de basura (garbage colector). Código independiente de la plataforma, precompilado a bytecodes intermedio y ejecutado en el cliente por una JVM (Java Virtual Machine). Modelo de seguridad tipo sandbox proporcionado por la JVM. Abstracción del sistema operativo subyacente mediante un juego completo de APIs de programación. Contiene el conjunto básico de herramientas usadas para desarrollar Java Applets, así cómo las APIs orientadas a la programación de aplicaciones de usuario final: Interfaz gráfica de usuario, multimedia, redes de comunicación. 2. Java 2 Platform, Enterprise Edition(J2EE): Esta versión está orientada al entorno empresarial. El software empresarial tiene unas características propias marcadas:

137 6.1. INTRODUCCIÓN 115 Estápensadonoparaserejecutadoenunequipo,sinoparaejecutarse sobre una red de ordenadores de manera distribuida y remota mediante EJBs (Enterprise Java Beans). Esta edición está orientada especialmente al desarrollo de servicios web, servicios de nombres, persistencia de objetos, XML, autenticación, APIs para la gestión de transacciones, etc. El cometido de esta especificación es ampliar la J2SE para dar soporte a los requisitos de las aplicaciones de empresa. 3. Java2Platform,MicroEdition(J2ME): EstaversióndeJava estáenfocada a la aplicación de la tecnología Java en dispositivos electrónicos con capacidades computacionales y gráficas muy reducidas, tales como teléfonos móviles, PDAs o electrodomésticos inteligentes: Esta edición tiene unos componentes básicos que la diferencian de las otras versiones, como el uso de una máquina virtual denominada KVM (Kilo Virtual Machine, debido a que requiere sólo unos pocos Kilobytes de memoria para funcionar) en vez del uso de la JVM clásica. Figura 6.1: Arquitectura de la Plataforma Java 2 de Sun Lafig.10.1delapág.234muestralaarquitecturadeJava2.

138 116 CAPÍTULO 6. JAVA 2 MICRO EDITION EnlaactualidadsepuededecirqueJava noessólounsimplelenguajede programación sino un conjunto de tecnologías que engloba a todos los aspectos de la computación con dos elementos en común: El código fuente en lenguaje Java es compilado a código intermedio interpretadoporunajavavirtualmachine(jvm),porloqueelcódigo ya compilado es independiente de la plataforma. Todas las tecnologías comparten un conjunto más o menos amplio de APIs básicas del lenguaje, agrupadas principalmente en los paquetes java.lang y java.io. DebidoaquelaediciónestándardeAPIs de Java ocupa20mbaproximadamente y los dispositivos pequeños disponen de una cantidad de memoria muchomásreducida,j2me contieneunamínimapartedelasapis dejava. Concretamente, J2ME usa 37 clases de la plataforma J2SE provenientes de los paquetes java.lang, java.io, java.util. Esta parte de la API que se mantiene fija forma parte de lo que se denomina configuración [14]. Otra diferencia con la plataforma J2SE viene dada por el uso de una máquina virtual distinta de la clásica JVM denominada KVM. Esta KVM tiene unas restricciones que hacen que no posea todas las capacidades incluidas enlajvm clásica. J2ME representa una versión simplificada de J2SE. Sun separó estas dos versiones ya que J2ME está pensada para dispositivos con limitaciones de proceso y capacidad gráfica. También separó J2SE de J2EE porque este último exigía unas características muy pesadas o especializadas de E/S, trabajo en red, etc. Por tanto, separó ambos productos por razones de eficiencia. Hoy, J2EE es un superconjunto de J2SE pues contiene toda la funcionalidaddeésteymáscaracterísticas,asícomoj2me esunsubconjuntodej2se (excepto por el paquete javax.microedition) ya que contiene varias limitaciones con respecto a J2SE. SólodemaneramuysimplistasepuedeconsideraraJ2ME yj2ee como versiones reducidas y ampliadas de J2SE respectivamente (ver fig. 6.2 de la pág. 117): en realidad cada una de las ediciones está enfocada a ámbitos de aplicación muy distintos[14].

139 6.1. INTRODUCCIÓN 117 Figura 6.2: Ubicación de las Tecnologías Java Algunas Consideraciones al Desarrollar en J2ME Algunas consideraciones son las siguientes: 1. Prácticamente los dispositivos móviles y más aún los nuevos teléfonos celulares ya poseen capacidad de ejecución de aplicaciones desarrolladas en J2ME. Existen algunas ventajas y restricciones o desventajas respecto a otras tecnologías. Algunas ventajas en comparación de J2ME con respecto al lenguajec son: Multiplataforma: Significa 1 programa- se puede ejecutar en n móviles. Seguridad: El usuario está protegido. DescargaOTA(OverTheAir). Desarrollo rápido. Inconveniente: Alejamiento del hardware. No puede accederse a ciertos recursos del teléfono si éste no incorpora el API correspondiente. 2. Las aplicaciones móviles que poseen conectividad a Internet pueden utilizar la tecnología GPRS, en la cual se tarifa al usuario por Kbytes recibidos y enviados, es por esto que es importante minimizar la cantidad de información intercambiada. Las relaciones que existen de acuerdo

140 118 CAPÍTULO 6. JAVA 2 MICRO EDITION altipodeinformaciónintercambiadayelvolumendelamismasonlas siguientes: Página html Kb. Página wml 1-10Kb. Información pura kb. 3. Cuándo interesa desarrollar en J2ME?: Cuando no hay tráfico de información, por ejemplo: juegos, conversores de unidades. Cuando el tráfico de información puede minimizarse con J2ME. Cuando pueden almacenarse datos localmente en el móvil y sólo transferir algunos otros como los resultados[8] Componentes de J2ME Los componentes que forman parte de la tecnología J2ME son: Máquina virtual: Existe una serie de máquinas virtuales java con diferentes requisitos, cada una para diferentes tipos de pequeños dispositivos. Configuraciones: Son un conjunto de clases básicas orientadas a conformar el corazón de las implementaciones para dispositivos de características específicas: Connected Limited Device Configuration (CLDC) enfocada a dispositivos con restricciones de procesamiento y memoria. Connected Device Configuration(CDC) enfocada a dispositivos con más recursos[8]. Perfiles: Son unas bibliotecas Java de clases específicas orientadas a implementar funcionalidades de más alto nivel para familias específicas de dispositivos.

141 6.2. COMPONENTES DE J2ME Máquinas Virtuales J2ME Unamáquinavirtual dejava (JVM)esunprogramaencargadodeinterpretar código intermedio (bytecode) de los programas Java precompilados a código máquina ejecutable por la plataforma, efectuar las llamadas pertinentes al sistema operativo subyacente y observar las reglas de seguridad y corrección de código definidas para el lenguaje Java. De esta forma, la JVM proporciona al programa Java independencia de la plataforma con respecto al hardware y al sistema operativo subyacente. Las implementaciones tradicionales de JVM son, en general, muy pesadas en cuanto a memoria ocupada y requerimientos computacionales. J2ME define varias JVMs de referencia adecuadas al ámbito de los dispositivos electrónicos que, en algunos casos, suprimen algunas características con el fin de obtener una implementación menos exigente. La tecnología J2ME ha definido dos configuraciones, CDC y CLDC, cada una de ellas con características propias, en consecuencia para cada tipo de configuración se definió una máquina virtual distinta. La VM (Virtual Machine) correspondienteacldc sedenominakvm yladelaconfiguracióncdc se denomina CVM. A continuación se detallan las principales características de cada una de ellas: KVM Se corresponde con la máquina virtual más pequeña. Su nombre KVM proviene de Kilobyte (que hace referencia a la baja ocupación de memoria). Se trata de una implementación de máquina virtual reducida y especialmente orientada a dispositivos con bajas capacidades computacionales y de memoria, como ser los teléfonos celulares. La KVM está escrita en el lenguaje deprogramación C yposee algunas características particulares como: Pequeña,conunacargadememoriaentrelos40Kbylos80Kb,dependiendo de la plataforma y las opciones de compilación. Alta portabilidad. Modulable.

142 120 CAPÍTULO 6. JAVA 2 MICRO EDITION Lo más completa y rápida posible y sin sacrificar características para las que fue diseñada. Sin embargo, existen algunas limitaciones debido a su bajo consumo de memoria respecto la maquina virtual clásica: No hay soporte para tipos en coma flotante. Esta limitación está presente porque los dispositivos carecen del hardware necesario para estas operaciones. No existe soporte para JNI (Java Native Interface) debido a los recursos limitados de memoria. No existen cargadores de clases(class loaders) definidos por el usuario. No se permiten los grupos de hilos o hilos daemon. Si se necesita la utilización de grupos de hilos se tendrán que utilizar los objetos colección para almacenar cada hilo. No existe la finalización de instancias de clases. No existe el método Object.finalize(). Limitada capacidad para el manejo de excepciones debido a que el manejodeéstasdependeengranpartedelasapis decadadispositivoporlo que son éstos los que controlan la mayoría de las excepciones. Otrotemaencuestiónquesepuedeencontrarenéstamaquinavirtual más pequeña es la verificación de clases. El verificador de clases estándar de Java es demasiadograndeparalakvm,dehechoesmásgrandequelapropiakvm y el consumo de memoria es excesivo, más de 100Kb para las aplicaciones típicas. Este verificador de clases es el encargado de rechazar las clases no válidas en tiempo de ejecución. Este mecanismo verifica los bytecodes de las clases Java realizando las siguientes comprobaciones: VerqueelcódigonosobrepaseloslímitesdelapiladelaVM. Comprobar que no se utilizan las variables locales antes de ser inicializadas.

143 6.2. COMPONENTES DE J2ME 121 Comprobar que se respetan los campos, métodos y los modificadores de control de acceso a clases. Por esta razón los dispositivos que usen la configuración CLDC y KVM introducen un algoritmo de verificación de clases en dos pasos. Este proceso puedeapreciarsegráficamenteenlafig.6.3delapág.121. CVM Figura 6.3: Proceso de Verificación La CVM (Compact Virtual Machine) ha sido tomada como máquina virtual Java de referencia para la configuración CDC y soporta las mismas características que la máquina virtual clásica. Está orientada a dispositivos electrónicosconprocesadoresde32bitsdegamaaltayentornoa2mbomásde memoria RAM. Las características que presenta ésta máquina virtual son: 1. Sistema de memoria avanzado.

144 122 CAPÍTULO 6. JAVA 2 MICRO EDITION 2. Tiempodeesperabajoparaelrecolectordebasura. 3. Separación completa de la VM del sistema de memoria. 4. Recolector de basura modularizado. 5. Portabilidad. 6. Rápida sincronización. 7. EjecucióndelasclasesJava fueradelamemoriadesólolectura(rom). 8. Soporte nativo de hilos. 9. Baja ocupación en memoria de las clases. 10. Proporciona soporte e interfaces para servicios en sistemas operativos de tiempo real. 11. Conversión de hilos Java a hilos nativos. 12. Soporte para todas las características de Java2 v1.3 y librerías de seguridad, referencias débiles, Interfaz Nativa de Java (JNI), invocación remota de métodos (RMI), Interfaz de depuración de la máquina virtual (JVMDI) Configuraciones Una configuración es el conjunto mínimo de APIs Java que permiten desarrollar aplicaciones para un grupo de dispositivos. Estas APIs describen las características básicas, comunes a todos los dispositivos: Características soportadas del lenguaje de programación Java. Características soportadas por la máquina virtual Java. Bibliotecas básicas de Java y APIs soportadas. Como se ha mencionado con anterioridad, existen dos configuraciones, la que está orientada a dispositivos con limitaciones computacionales y de memoria que se denomina CLDC y la configuración que se encuentra orientada

145 6.2. COMPONENTES DE J2ME 123 a dispositivos con menos restricciones en cuanto a capacidad de cómputo y memoria,lacualsedenominacdc. A continuación se presentan las características más relevantes de cada una: Configuración de dispositivos con conexión, CDC(Conected Device Configuration): La CDC está orientada a dispositivos con cierta capacidad computacional y de memoria. Por ejemplo, decodificadores de televisión digital, televisores con Internet, algunos electrodomésticos y sistemas de navegación en automóviles. CDC usa una máquina virtual Java similar en sus características a una de J2SE, pero con limitaciones en el apartado gráfico y de memoria del dispositivo. La CDC está enfocada a dispositivos con las siguientes capacidades: Procesadorde32bits. 2 Mb o más de memoria total, incluyendo memoria RAM y ROM. Conectividadaalgúntipodered. Poseer la funcionalidad completa de la Máquina Virtual Java 2. LaCDC estábasadaenj2sev1.3 eincluyevariospaquetesjavadela edición estándar. Las peculiaridades de la CDC están contenidas principalmente en el paquete javax.microedition.io, que incluye soporte para comunicaciones http y basadas en datagramas[14]. Latabla6.1delapág.124muestralaslibreríasincluidasenlaCDC. Configuracion de dispositivos limitados con conexión, CLDC (Conected Limited Device Configuration): LaCLDC estáorientadaadispositivosdotadosdeconexiónycon limitaciones en cuanto a capacidad gráfica, cómputo y memoria. Como por ejemplo teléfonos móviles, buscapersonas (Pagers), PDAs, organizadores personales, etc.

146 124 CAPÍTULO 6. JAVA 2 MICRO EDITION Nombre del paquete CDC Descripción java.io Clases y paquetes estándar de E/S java.lang Clases e interfaces de la máquina virtual java.lang.ref Clases de referencia java.lang.reflect Clases e interfaces de reflectión java.math Paquete de matemáticas java.net Clases e interfaces de red java.security Clases e interfaces de seguridad java.security.cert Clases de certificados de seguridad java.text Paquete de texto java.util Clases de utilidades estándar java.util.jar Clases y utilidades para archivos JAR java.util.zip Clases y utilidades para archivos ZIP y comprimidos javax.microedition.io Clases e interfaces para conexión genérica CDC Cuadro 6.1: Librerías de configuración CDC Las restricciones que contiene la configuración CLDC vienen dadas porlautilizacióndelamáquinavirtualokvm. Los dispositivos que usan CLDC deben cumplir los siguientes requisitos: Disponerentre160Kby512Kbdememoriatotaldisponible. Como mínimo se debe disponer de 128 Kb de memoria no volátil para la máquina virtual Java y las bibliotecas CLDC, y 32 Kb de memoria volátil para la máquina virtual en tiempo de ejecución. Procesadorde16o32bitsconalmenos25Mhzdevelocidad. Tenerconexiónaalgúntipodered,normalmentesincable,con conexión intermitente y ancho de banda limitado. Ofrecer bajo consumo, debido a que éstos dispositivos trabajan con suministro de energía limitado, normalmente baterías recargables. La CLDC aporta las siguientes funcionalidades a los dispositivos: Un subconjunto del lenguaje Java y todas las restricciones de su máquina virtual (KVM).

147 6.2. COMPONENTES DE J2ME 125 Un subconjunto de las bibliotecas del núcleo de Java. Soporteparaaccesoaredes. Soporte para E/S básica. Seguridad. Latabla6.2delapág.125muestralaslibreríasincluidasenlaCLDC. Nombre del paquete Descripción CLDC java.io Clases y paquetes estándar de E/S java.lang Clases e interfaces de la máquina virtual java.util Clases e interfaces, utilidades estándar javax.microedition.io Clases e interfaces de conexión genérica Cuadro 6.2: Librerías de configuración CLDC Perfiles Un perfil es el que define las APIs que controlan el ciclo de vida de la aplicación, interfaz de usuario, etc. Concretamente, un perfil es un conjunto de APIs orientado a un ámbito de aplicación determinado. Los perfiles identifican un grupo de dispositivos por la funcionalidad que proporcionan(ya sean electrodomésticos, teléfonos móviles, etc.) y el tipo de aplicaciones que se ejecutarán en ellos. Las librerías de la interfaz gráfica son un componente muy importante en la definición de un perfil. Se pueden encontrar grandes diferencias entre las interfaces, desde el menú textual de los teléfonos móviles hasta los táctiles de los PDAs. El perfil establece unas APIs que definen las características de un dispositivo, mientras que la configuración hace lo propio con una familia de ellos. Estohacequealahoradeconstruirunaaplicaciónsecuentetantoconlas APIs del perfil como de la configuración.

148 126 CAPÍTULO 6. JAVA 2 MICRO EDITION Anteriormente se mencionó que para una configuración determinada se usaba una Máquina Virtual Java específica. Teníamos que con la configuración CDC se utilizaba la CVM y que con la configuración CLDC se utilizaba la KVM. Con los perfiles ocurre lo mismo. Existen unos perfiles que se construirán sobre la configuración CDC y otros que se construirán sobre la CLDC. Figura 6.4: Entorno de Ejecución de J2ME Para la configuración CDC se encuentran los siguientes perfiles: Fundation Profile. Personal Profile. RMI Profile. Y para la configuración CLDC se encuentran los siguientes: PDA Profile. Mobile Information Device Profile(MIDP). En la fig. 6.4 de la pág. 126 se puede ver cómo quedaría el esquema del entorno de ejecución al completo.

149 6.2. COMPONENTES DE J2ME 127 A continuación se describirá con más detenimiento cada uno de estos perfiles: Foundation Profile:Esteperfil defineunaseriedeapis sobrelacdc orientadas a dispositivos que carecen de interfaz gráfica como, por ejemplo, decodificadores de televisión digital[14]. Este perfil incluye gran parte de los paquetes de la J2SE, pero excluye totalmente los paquetes que conforman la interfaz gráfica de usuario (GUI) de J2SE, concretamente los paquetes java.awt Abstract Windows Toolkit (AWT)y java.swing. Los paquetes que forman parte del Foundation Profile se muestran en la tabla6.3delapág.127. Paq. del Fundation Profile java.lang java.util java.net java.io java.text java.segurity Descripción Soporte del lenguaje Java Añade soporte completo para zip y otras funcionalidades Incluye sockets TCP/IP y conexiones HTTP Clases Reader y Writer de J2SE Incluye soporte para internacionalización Incluye códigos y certificados Cuadro 6.3: Librerías del Fondation Profile Personal Profile: Es un subconjunto de la plataforma J2SE versión 1.3, proporciona un completo soporte gráfico AWT. ElobjetivoeseldedotaralaconfiguraciónCDC deunainterfazgráfica completa, con capacidades web y soporte de applets Java. Este perfil requiere una implementación del perfil Foundation Profile. Latabla6.4delapág.128muestralospaquetequeconformanelperfil. RMI Profile: Este perfil requiere una implementación del Foundation Profile. El perfil RMI soporta un subconjunto de las APIs J2SE v1.3 RMI. Algunas características de estas APIs se han eliminado del perfil RMI debido a las limitaciones de cómputo y memoria de los dispositivos.

150 128 CAPÍTULO 6. JAVA 2 MICRO EDITION Paq. del Personal Profile java.applet java.awt java.awt.datatransfer java.awt.event java.awt.font java.awt.im java.awt.im.spi java.awt.image java.beans javax.microedition.xlet Descripción Clases necesarias para crear applets Clases para crear GUIs con AWT Clases e interfaces para transmitir datos entre aplicaciones Clases e interfaces para manejar eventos AWT Clases e interfaces para la manipulación de fuentes Clases e interfaces para definir métodos editores de entrada Interfaces que añ aden el desarrollo de métodos editores de entrada para cualquier entorno de ejecución Java Clases para crear y modificar imágenes Clases que soportan JavaBeans Interfaces que usa el Personal Profile para la comunicación Cuadro 6.4: Librerías del Personal Profile

151 6.2. COMPONENTES DE J2ME 129 Las siguientes propiedades se han eliminado del J2SE RMI v1.3: Java.rmi.server.disableHTTP. Java.rmi.activation.port. Java.rmi.loader.packagePrefix. Java.rmi.registry.packagePrefix. Java.rmi.server.packagePrefix PDA Profile: Está construido sobre CLDC. Pretende abarcar PDAs de gamabaja,tipopalm,conunapantallayalgúntipodepuntero(ratónolápiz) y una resolución de al menos pixeles. En este momento este perfil se encuentra en fase de definición. Mobile Information Device Profile(MIDP): Este perfil está construido sobre la configuración CLDC. MIDP fue el primer perfil definido para esta plataforma. Este perfil está orientado para dispositivos con las siguientes características: Reducida capacidad computacional y de memoria. Conectividad limitada(en torno a 9600 bps). Capacidad gráfica muy reducida(mínimo un display de 96x54 pixels). Entrada de datos alfanumérica reducida. 128 Kb de memoria no volátil para componentes MIDP. 8 Kb de memoria no volátil para datos persistentes de aplicaciones. 32KbdememoriavolátilentiempodeejecuciónparalapilaJava. Los tipos de dispositivos que se adaptan a estas características son: teléfonos móviles, buscapersonas(pagers) o PDAs de gama baja con conectividad. El perfil MIDP especifica las APIs relacionadas con:

152 130 CAPÍTULO 6. JAVA 2 MICRO EDITION La aplicación(semántica y control de la aplicación MIDP). Interfaz de usuario. Almacenamiento persistente. Trabajo en red. Temporizadores. Las aplicaciones realizadas utilizando MIDP reciben el nombre de MIDlets (por simpatía con APPlets). Se puede decir que un MIDlet es una aplicación Java realizada con el perfil MIDP sobre la configuración CLDC. Enlatabla6.5delapág.130sepuedenapreciarcuálessonlospaquetes que están incluidos en el perfil MIDP. Paq. del MIDP Descripción javax.microedition.lcdui Clases e interfaces para GUIs javax.microedition.rms Soporte para el almacenamiento persistente del dispositivo javax.microedition.midlet Clases de definición de la aplicación javax.microedition.io Clases e interfaces de conexión genérica java.io Clases e interfaces de E/S básica java.lang Clases e interfaces de la máquina virtual java.util Clases e interfaces de utilidades estándar Cuadro 6.5: Librerías del MIDP Profile 6.3. Requerimientos Funcionales para Detectar una Aplicación J2ME Los dispositivos deben proporcionar mecanismos mediante los cuales se puedan encontrar los MIDlets que se desean descargar. En algunos casos, se pueden encontrar los MIDlets a través de un navegador WAP o a través de una aplicación residente escrita específicamente para identificar MIDlets.

153 6.4. LOS MIDLETS 131 Otros mecanismos como Bluetooth, cable serie, etc, pueden ser soportados por el dispositivo y a partir de estas conexiones se pueden instalar aplicaciones (MIDlets). ElprogramaencargadodemanejarladescargayciclodevidadelosMI- Dlets en el dispositivo se llama Gestor de Aplicaciones o AMS (Application Management Software). Un dispositivo que posea la especificación MIDP debe ser capaz de: Localizar archivos JAD vinculados a un MIDlet en la red. Descargar el MIDlet y el archivo JAD al dispositivo desde un servidor usando el protocolo HTTP 1.1 u otro que posea su funcionalidad. Enviar el nombre de usuario y contraseña cuando se produzca una respuesta HTTP por parte del servidor 401 (Unauthorized) o 407 (Proxy Authentication Required). Instalar el MIDlet en el dispositivo. Ejecutar MIDlets. Permitir al usuario borrar MIDlets instalados Los MIDlets Los MIDlets son aplicaciones creadas usando la especificación MIDP. Están diseñados para ser ejecutados en dispositivos con poca capacidad gráfica, de cómputo y de memoria. Las clases de un MIDLet, son almacenadas en bytecodes Java, dentro de un fichero.class. Estas clases deben ser verificadas antes de su puesta en marcha, para garantizar que no realizan ninguna operación no permitida. Este preverificación, se debe hacer debido a las limitaciones de la máquina virtual usada en estos dispositivos. Paramanteneralamáquinavirtual lomássencillaypequeñaposible,se elimina esta verificación, y se realiza antes de la entrada en producción.

154 132 CAPÍTULO 6. JAVA 2 MICRO EDITION La preverificación se realiza después de la compilación, y el resultado es una nueva clase, lista para ser puesta en producción. Los MIDLets son empaquetados en ficheros.jar. Existen 2 ficheros que contienen información extra dentro del.jar para la puesta en marcha de la aplicación, el fichero manifiesto, con extensión.mf y un fichero descriptor, con extensión.jad. Unfichero.jar típico,portanto,secompondráde: Clases del MIDLet. Clases de soporte. Recursos(imágenes, sonidos, etc.). Manifiesto(fichero.mf ). Descriptor(fichero.jad ) El Gestor de Aplicaciones El gestor de aplicaciones o AMS (Application Management System) es el software encargado de gestionar los MIDlets. Este software reside en el dispositivo y es el que permite ejecutar, pausar o destruir aplicaciones J2ME. El AMS realiza dos grandes funciones: PorunladogestionaelciclodevidadelosMIDlets. Por otro, es el encargado de controlar los estados por los que pasa el MIDlet mientras está en ejecución CiclodeVidadeunMIDlet Como puede ilustrarse en la fig. 6.5 de la pág. 133 el ciclo de vida de un MIDlet pasa por cinco fases: Descubrimiento o localización; instalación; ejecución; actualización y borrado. ElAMSeselencargadodegestionarcadaunadeestasfasesdelasiguiente manera:

155 6.4. LOS MIDLETS 133 Figura6.5:CicloVidadeunMIDlet. 1. Localización: EstafaseeslaetapapreviaalainstalacióndelMIDlety es donde se selecciona a través del gestor de aplicaciones la aplicación a descargar. Por tanto, el gestor de aplicaciones tiene que proporcionar los mecanismos necesarios para realizar la elección del MIDlet a descargar. El AMS puede ser capaz de realizar la descarga de aplicaciones de diferentes maneras, dependiendo de las capacidades del dispositivo. Por ejemplo, esta descarga se debe poder realizar mediante un cable conectado a un ordenador o mediante una conexión inalámbrica. 1. Instalación: En esta fase el gestor de aplicaciones controla todo el proceso de instalación del MIDlet informando al usuario tanto de la evolucióndela

156 134 CAPÍTULO 6. JAVA 2 MICRO EDITION instalación como de si existiese algún problema durante ésta. 1. Ejecución: Mediante el gestor de aplicaciones se va a poder iniciar la ejecucióndelosmidlets.enestafase,elamstienelafuncióndegestionarlosestadosdelmidletenfuncióndeloseventosqueseproduzcan durante esta ejecución. 2. Actualización:ElAMStienequetenerlacapacidaddedetectarsielMI- Dlet a instalar es una actualización de alguno ya existente, en cuyo caso deberá informar de la situación y permitir la actualización del MIDlet. 3. Borrado: Una vez instalado el MIDlet en el dispositivo, este permanece almacenado en la memoria persistente todo el tiempo hasta que el usuario decida borrarlo. El AMS es el encargado de eliminar el MIDlet pidiendo una confirmación del proceso antes de continuar Estados de un MIDlet AdemásdegestionarelciclodevidadelosMIDlets,elAMS eselencargado de controlar los estados del MIDlet durante su ejecución. Durante ésta el MIDlet es cargado en la memoria del dispositivo y es aquí donde puede transitar entre 3 estados diferentes: activo, en pausa y destruido como puede apreciarseenlafig.6.6delapág.135. Como se puede ver en la fig. 6.6 de la pág. 6.6, un MIDlet puede cambiar de estado mediante una llamada a los métodos MIDlet.startApp(), MI- Dlet.pauseApp() o MIDlet.destroyApp(). El gestor de aplicaciones cambia el estado de los MIDlets haciendo una llamada a cualquiera de los métodos anteriores. Un MIDlet también puede cambiar de estado por sí mismo El Paquete javax.microedition.midlet El paquete javax.microedition.midlet define las aplicaciones MIDP y su comportamiento con respecto al entorno de ejecución.

157 6.4. LOS MIDLETS 135 Figura 6.6: Estados de un MIDlet. Enlatabla6.6delapág.135sepuedeapreciarcuálessonlasclasesque están incluidas en este paquete. Clases Descripción MIDlet Aplicación MIDP MIDletstateChangeException Indica que el cambio de estado ha fallado Cuadro 6.6: Clases del Paquete javax.microedition.midlet La Clase MIDlet Como se ha mencionado con anterioridad, un MIDlet es una aplicación realizada usando el perfil MIDP. La aplicación desarrollada debe extender o heredar de esta clase para que elgestordeaplicacionesoamspuedagestionarsusestadosyteneraccesoa sus propiedades. Los métodos de los que dispone esta clase son los siguientes: protected MIDlet() Constructor de clase sin argumentos. Si la llamada a este constructor falla,

158 136 CAPÍTULO 6. JAVA 2 MICRO EDITION se lanzaría la excepción SecurityException. public final int checkpermission(string permiso) Con este método se consigue un número que determina el permiso especificado. Este permiso está descrito en el atributo MIDlet-Permission del archivo JAD. Los valores que puede arrojar este método son: 0sielpermisoesdenegado. 1sielpermisoespermitido. -1sielestadoesdesconocido. protected abstract void destroyapp(boolean incondicional) throws MIDletstateChangeException IndicalaterminacióndelMIDletysupasoalestadode Destruido.En el estado de Destruido el MIDlet debe liberar todos los recursos y salvar cualquier dato en el almacenamiento persistente que deba ser guardado. Este método puede ser llamado desde los estados Pausa o Activo. public final String getappproperty(string key) Este método proporciona al MIDlet un mecanismo que le permite recuperar el valor de las propiedades desde el AMS. Las propiedades se consiguen por mediodelosarchivosmanifestyjad.elnombredelapropiedadarecuperar debe ir indicado en el parámetro key. public final void notifydestroyed() ConestemétodosenotificaalAMSqueelMIDletnoquiereestar Activo yquehaentradoenelestadode Pausa.Estemétodosólodebeserinvocado cuando el MIDlet esté en el estado Activo. Si la aplicación es pausada por sí misma, es necesario llamar al método MIDlet.resumeRequest() para volver al estado Activo.

159 6.4. LOS MIDLETS 137 protected abstract void pauseapp() IndicaalMIDletqueentreenelestadode Pausa.Estemétodosólodebe ser llamado cuándo el MIDlet esté en estado Activo. public final boolean platformrequest(string url) Establece una conexión entre el MIDlet y la dirección URL. Dependiendo del contenido de la URL, el dispositivo ejecutará una determinada aplicación queseacapazdeleerelcontenidoydejaralusuarioqueinteractúeconél. protected abstract void startapp() throws MIDletstateChangeException EstemétodoindicaalMIDletquehaentradoenelestado Activo.Este métodosólopuedeserinvocadocuándoelmidletestáenelestadode Pausa. En elcaso de que el MIDlet nopueda pasar alestado Activo en este momento pero sí pueda hacerlo en un momento posterior, se lanzaría la excepción MIDletstateChangeException. Los métodos anteriormente mencionados se utilizan para la comunicación entreelmidlet yel AMS.PorunladosetienequelosmétodosstartApp(), pauseapp() y destroyapp() los utiliza el AMS para comunicarse con el MIDlet, mientras que los métodos resumerequest(), notifypaused() y notifydestroyed() los utiliza el MIDlet para comunicarse con el AMS Estructura de los MIDlets Es posible decir que los MIDlets, al igual que los applets carecen de la funciónmain(). Aunque existiese dicha función, el gestor de aplicaciones la ignoraría por completo. Un MIDlet tampoco puede realizar una llamada a System.exit(). Una llamada a este método lanzaría la excepción SecurityException. Los MIDlets tienen la siguiente estructura: import javax.microedition.midlet.*; public class MiMidlet extends MIDlet{

160 138 CAPÍTULO 6. JAVA 2 MICRO EDITION public MiMidlet(){ /*Ésteeselconstructordeclase.Aquísedeben * inicializar las variables. */ } public startapp(){ /*Aquísepuedenincluirelcódigoqueel * MIDlet ejecute cuándo se active. */ } public pauseapp(){ /*Aquísepuedeincluirelcódigoqueel *MIDletejecutecuándoentreenelestadodepausa * es opcional */ } public destroyapp(){ /*Aquísepuedeincluirelcódigoqueel * MIDlet ejecute cuándo sea destruido. Normalmente *aquíseliberaranlosrecursosocupadosporel * MIDlet como memoria, etc. * es opcional */ } }//findelaclasemimidlet Un pequeño ejemplo de una aplicación simple se puede apreciar a continuación. import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HolaMundo extends MIDlet{

161 6.5. INTERFACES GRÁFICAS DE USUARIO 139 private Display pantalla; private Form formulario = null; public HolaMundo(){ pantalla = Display.getDisplay(this); formulario = new Form( Hola Mundo ); } public void startapp(){ pantalla.setcurrent(formulario); } public void pauseapp(){ } public void destroyapp(boolean unconditional){ pantalla = null; formulario = null; notifydestroyed(); } } Estos métodos son los que obligatoriamente tienen que poseer todos los MIDletsyaque,comosehavisto,laclasequesehacreadotienequeheredarde la clase MIDlet y ésta posee tres métodos abstractos: startapp(), pauseapp() y destroyapp() que han de ser implementados por cualquier MIDlet Interfaces Gráficas de Usuario Teniendo en cuenta la diversidad de aplicaciones que se pueden realizar para los dispositivos MID y los elementos que proporcionan tanto la configuracióncldc comoelperfilmidp sepuedenclasificaraloselementosendos grandes grupos: Por un lado existen los elementos que corresponden a la interfaz de usuario de alto nivel. Esta interfaz usa componentes tales como botones,

162 140 CAPÍTULO 6. JAVA 2 MICRO EDITION Figura 6.7: Jerarquía de Clases. cajasdetexto,formularios,etc.lafinalidaddeusarestasapis dealto nivel es su portabilidad. Al utilizar esta interfaz de usuario se pierde el control del aspecto de las aplicaciones desarrolladas, ya que la estética depende exclusivamente del dispositivo donde se ejecute. La ventaja de la utilización de esta interfaz de usuario de alto nivel es la gran portabilidad que se consigue. Generalmente esta interfaz es utilizada para la creación de aplicaciones de negocios. Por otro lado existen los elementos que forman parte de la interfaz de usuario debajonivel.alutilizarlasapis debajonivel sepuedetener un control total de todo lo que está dibujado en la pantalla, además se pueden manejar eventos de bajo nivel, tales como pulsaciones de las teclas. Esta interfaz es más adecuada para el desarrollo de juegos. El paquete javax.microedition.lcdui definido en el perfil MIDP incluye las clases necesarias para crear interfaces de usuario, tanto de alto nivel como de bajo nivel. En la fig. 6.7 de la pág. 140se puede apreciar la organización de estas clases.

163 6.5. INTERFACES GRÁFICAS DE USUARIO La Clase Display La clase Display representa el manejador de la pantalla y los dispositivos deentrada.todomidlet debeposeerporlomenosunobjetodisplay.eneste objeto Display se puede incluir tantos objetos Displayable como se desee. La clase Display puede obtener información sobre las características de la pantalla del dispositivo donde se ejecute el MIDlet. Enlatabla6.7delapág.142sepuedeverlosmétodosincluidosenesta clase La Clase Displayable La clase Displayable representa a las pantallas de la aplicación. Como se mencionó anteriormente, cada objeto Display puede contener tantos objetos displayables como se desee. Mediante los métodos getcurrent y setcurrent se controlan las pantallas para que sean visibles y accesibles en cada momento. La clase abstracta Displayable incluye los métodos encargados de manejar los eventos de pantalla y añadir o eliminar comandos. Estosmétodosaparecenenlatabla6.8delapág Las Clases Command y CommandListener Un objeto de la clase Command mantiene información sobre un evento. Por establecer una analogía se puede pensar a un objeto Command como un botón de Windows. Se implementan en los MIDlets para poder detectar y ejecutar una acción simple. Existen tres parámetros que hay que definir al constuir un Command: Etiqueta:Laetiquetaeslacadenadetextoqueapareceráenlapantalla del dispositivo que identificará a el Command.

164 142 CAPÍTULO 6. JAVA 2 MICRO EDITION Métodos Descripción void callserially Retrasa la ejecución del método run() (Runnable r) del objeto r boolean flashbacklight Provoca un efecto de flash (int duracion) en la pantalla int getbestimageheight Devuelve el mejor alto (int imagen) de imagen int getbestimagewidth Devuelve el mejor ancho (int imagen) de imagen int getborderstyle Devuelve el estilo de (bolean luminosidad) borde actual int getcolor Devuelve un color basado en el (int color) parámetro pasado Displayable getcurrent() Devuelve la pantalla actual static Display getdisplay Devuelve una referencia a la pantalla (MIDlet m) del MIDlet m boolean iscolor() Devuelve true o false si la pantalla esdecolorob/n int numalphalevels() Devuelve el número de niveles alpha soportados int numcolors() Devuelve el número de colores void setcurrent Establece la pantalla d (Alert a, Displayable d) despues de la alerta a void setcurrent Establece la pantalla actual (Displayable d) void setcurrent Establece en la pantalla (Item item) al item boolean vibrate Realiza la operación de (int duracion) vibración del dispositivo Cuadro 6.7: Métodos de la Clase Display

165 6.5. INTERFACES GRÁFICAS DE USUARIO 143 Métodos void addcommand (Command cmd) int getheight() Ticker getticker() String gettitle() int getwidth() bolean isshown() void removecommand (Command cmd) void setcommandlistener (CommandListener l) protected void sizechanged (int w, int h) void setticker(ticker ticker) void settitle(string title) Descripción añade el Command cmd Devuelve el alto de la pantalla Devuelve el Ticker asignado a la pantalla Devuelve el título de la pantalla Devuelve el ancho de la pantalla Devuelve true si la pantalla está activa Elimina el Commando cmd de la pantalla Establece un Listener para la captura de eventos El AMS llama a este método cuándo el área disponible para el objeto Displayable es modificada Establece un Ticker a la pantalla Establece un título a la pantalla Cuadro 6.8: Métodos de la Clase Displayable

166 144 CAPÍTULO 6. JAVA 2 MICRO EDITION Tipo: La declaración del tipo sirve para que el dispositivo identifique el Command y le dé una apariencia específica acorde con el resto de aplicaciones existentes en el dispositivo. Prioridades: Esto puede servirle al AMS para establecer un orden de aparición de los Command en pantalla. A mayor número, menor prioridad. Lostiposquesepuedenasignaraparecenenlatabla6.9delapág144. Tipo BACK CANCEL EXIT HELP ITEM OK SCREEN STOP Descripción Petición para volver a la pantalla anterior Petición para cancelar la acción en curso Petición para salir de la aplicación Petición para mostrar información de ayuda Petición para introducir el comando en unitemenlapantalla Aceptación de una acción por parte del usuario Para comandos de propósito más general Petición para parar una operación un Listener para la captura de eventos Cuadro 6.9: Tipos de Commands Ejemplo de un Command con la etiqueta Atras : new Command( Atras,Command.BACK,1) Latabla6.10delapág.144muestralosmétodosdelaclaseCommand. Método Devuelve el tipo del Command public int getcommandtype() Petición para volver a la pantalla anterior public String getlabel() Devuelva la etiqueta del Command public String getlonglabel() Devuelve la etiqueta larga del Command public int getpriority() Devuelve la prioridad del Command Cuadro 6.10: Métodos de la Clase Command

167 6.5. INTERFACES GRÁFICAS DE USUARIO 145 No solo basta con crear objetos Command, para poder controlar algún evento de la aplicación. Otra tarea pendiente es implementar la interfaz CommandListener, la cual define un método abstracto llamado CommandAction(Command d, Displayable d), donde debe ser implentado dicho método, ya que una interfaz sólo define métodos abstractos, es tarea de la clase que implementa dicha interfaz tener que implementar los métodos definidos. A través de la implementación del método CommandAction se podrán manejarloseventosquelanzaelcommand c queseencuentranenelobjeto Displayable d Interfaz de Usuario de Alto Nivel Para comenzar se verá la clase Screen que es la superclase de todas las clases que conforman la interfaz de usuario de alto nivel: public abstract class Screen extends Displayable En la especificación MIDP 1.0 esta clase contenía cuatro métodos que le permitían definir y obtener el título y el ticker: settitle(string s), gettitle(), setticker(ticket ticker) y getticker(). El ticker es una cadena de texto que se desplaza por la pantalla de derecha a izquierda. En la especificación MIDP 2.0,queeslamásreciente,estoscuatrométodoshansidoincluidosenlaclase Displayable. La Clase Alert El objeto Alert representa una pantalla de aviso. Normalmente se usa cuando se quiere avisar al usuario de una situación especial como, por ejemplo, un error. Para crear Alert se dispone de 2 constructores de acuerdo a su apariencia: Alert(String titulo). Alert(String titulo, String textoalerta, Image imagen, AlertType tipo). Existen dos tipos de alertas:

168 146 CAPÍTULO 6. JAVA 2 MICRO EDITION 1. Modal: Este tipo de alerta permanece un tiempo indeterminado en la pantalla hasta que el usuario la cancela. Se obtiene llamando al método Alert. settimeout(alert. FOREVER). 2. Nomodal:Estetipodealertapermaneceráporuntiempodefinidoporel usuarioyluegodesaparecerá.paraelloseindicaeltiempoenelmétodo settimeout(tiempo), el tiempo expresado en milisegundos. Tambiénsepuedeelegireltipodealertaquesevaamostrar.Cadatipo de alerta tiene asociado un sonido. Los tipos que se pueden definir aparecen enlatabla6.11delapág.146. Método ALARM CONFIRMATION ERROR INFO WARNING Devuelve el tipo del Command Aviso de una Petición previa Indica la aceptació de una acció Indica que ha ocurrido un error Indica algún tipo de información Indica que puede ocurrir algún problema Cuadro 6.11: Tipos de Alerta La Clase List La clase List hereda de la clase Screen, pero presenta una funcionalidad más amplia que la clase Alert. La clase List proporciona una pantalla que contiene una lista de elementos sobre los que el usuario puede seleccionar. Esta clase implementa la interfaz Choice, que define constantes que describen tres tipos básicos de listas de opciones: EXCLUSIVE: Una lista que permite seleccionar un solo elemento a la vez. IMPLICIT: Un listaen laquelaseleccióndeun elemento provocaun evento(se adapta para la creación de menús). MÚLTIPLE: Una lista que permite seleccionar uno o más elementos a la vez.

169 6.5. INTERFACES GRÁFICAS DE USUARIO 147 Existen dos constructores que permiten construir listas: el primero de ellos crea una lista vacía y el segundo proporciona una lista con un conjunto inicial de opciones y de imágenes asociadas: List(String titulo, int listtype). List(String titulo, int listtype, String[] elementos, Image[] imagenes). En la siguiente tabla 6.12 de la pág. 148 se puede observar los distintos métodos de la clase List. La Clase TextBox La clase TextBox implementa un componente de edición de texto, que ocupa toda la pantalla. Elconstructordelaclasees: TextBox(String title, String text, int maxsize, int constraints) El parámetro title es un texto que aparecerá en la parte superior de la pantalla, mientras que el parámetro text es usado para inicializar el texto que contendrá el TextBox. El parámetro maxsize especifica el número máximo de caracteres de texto que pueden ser introducidos en el TextBox. Por último el parámetro constraints describe las limitaciones a aplicar sobre el texto. Estas limitaciones son especificadas según las constantes definidas en la clase TextField: ANY: No hay limitaciones en el texto. ADDR: Sólo se puede introducir una dirección de correo electrónico. NUMERIC: Sólo se puede introducir un valor numérico. PASSWORD: El texto es protegido para que no sea visible.

170 148 CAPÍTULO 6. JAVA 2 MICRO EDITION Métodos Descripción int append(string texto, Añade un elemento al final de la lista Image imagen) void delete(int posición) Elimina el elemento de la posición especificada void deleteall() Elimina todas las entradas de la lista void insert(int pos, Inserta un elemento en la String texto, Image im) posición especificada int getfitpolicy() Devuelve el modo en el que se muestran las entradas de la lista por pantalla Font getfont(int pos) Devuelve la fuente del elemento pos Image getimage(int pos) Obtiene la imagen de una posición determinada int getselectedflags Almacena el estado de selección (bolean[] array) en un array int getselectedindex() Obtiene el ndice del elemento seleccionado String getstring(int pos) Obtiene el texto del elemento indicado por pos boolean isselected(int pos) Determina si est seleccionado el elemento void removecommand Elimina el comando cmd (Command cmd) void set(int pos, Reemplaza el elemento de la String texto, Image im) posición pos void setfitpolicy(int modo) Establece el modo de posicionar las entradas de la lista por pantalla void setfont(int pos, Establece la fuente de la entrada Font fuente) indicada en pos void setselectcommand Selecciona el Command a usar (Command cmd) int setselectedflags Reemplaza el estado de selección (bolean[] array) por el de array int setselectedindex(int pos, Reemplaza el estado de la selección boolean selec) int size() Obtiene el número de elementos Cuadro 6.12: Métodos de la Clase List

171 6.5. INTERFACES GRÁFICAS DE USUARIO 149 PHONENUMBER: Sólo se puede introducir un número de teléfono. URL: Sólo se puede introducir una URL. Unejemplodeusosería: TextBox box = new TextBox( NOTAS, Nota:, 256, TextField.ANY). La Clase Form Un formulario(clase Form) es un componente que actúa como contenedor de un número indeterminado de objetos. Todos los objetos que puede contener un formulario derivan de la clase Item. El número de objetos que se pueden insertar en un formulario es variable pero, teniendo en cuenta el tamaño de las pantallas de los dispositivos MID,serecomiendaqueelnúmeroseapequeñoparaevitarasíelscrollquese produciría si se insertan demasiados objetos en un formulario. UnmismoItem nopuedeestarenmásdeunformularioalavez.si,por ejemplo, se desea usar unamisma imagen en más de un formulario,se debe borraresaimagendeunformularioantesdeinsertarlaenelquesevaamostrar por pantalla. Si no se cumple esta regla, se lanzaría la excepción IllegalStateException. Latabla6.13delapág.150muestralosmétodosdelaclaseForm. Manejo de Eventos Elmanejodeeventosenunformularioesmuysimilaralmanejodeeventos de los Command vistos anteriormente. Nada más que para un formulario se tiene que implementar la interfaz ItemStateListener que contiene un método abstracto llamado itemstatechanged(item item). Cuandoserealizaalgúntipodeacciónenelalgúnítemdelformulariose ejecuta el código asociado del método itemstatechanged(item item). Un ejemplo de su utilización se puede observar a continuación: import javax.microedition.midlet.*;

172 150 CAPÍTULO 6. JAVA 2 MICRO EDITION Métodos Descripción int append(image imagen) Añade una imagen al formulario int append(item item) Añade un item al formulario int append(string texto) Añade un String al formulario void delete(int num) Elimina el Item que ocupa lo posición num void deleteall() Elimina todos los Items del formulario Item get(int num) Devuelve el Item que se encuentra en la posición num int getheight() Devuelve la altura del área disponible para los Items int getwidth() Devuelve la anchura del área disponible para los Items void insert(int num, Inserta un Item justo antes del que ocupa Item item) la posición num voidset(intnum,itemitem) ReemplazaelItemqueocupalaposicinnum boolean isselected(int pos) Determina si est seleccionado el elemento void setitemstatelistener Establece un listener p/ capturar eventos (ItemStateLis tener listener int size() Devuelve el número de Items del formulario Cuadro 6.13: Métodos de la Clase Form

173 6.5. INTERFACES GRÁFICAS DE USUARIO 151 import javax.microedition.lcdui.*; public class ManejoItems extends MIDlet implements ItemStateListener, CommandListener{ Display pantalla; Form formulario; TextField txt; Command salir; public ManejoItems(){ pantalla = Display.getDisplay(this); formulario=newform( ); txt = new TextField( Introduce datos,,70,textfield.any); salir = new Command( Salir,Command.EXIT,1); formulario.append(txt); formulario.addcommand(salir); formulario.setitemstatelistener(this); formulario.setcommandlistener(this); public void startapp(){ pantalla.setcurrent(formulario); } public void pauseapp(){ } public void destroyapp(boolean unconditional){ } public void commandaction(command c, Displayable d){ if(i==txt){ System.out.println( Evento detectado en el TextBox ); } } }

174 152 CAPÍTULO 6. JAVA 2 MICRO EDITION La Clase StringItem La clase StringItem es la clase más simple que deriva de Item. Es una cadena no modificable de texto, es decir, una cadena de texto con la que el usuario no puede interactuar de ninguna manera. Para construir un StringItem se hace uso de cualquiera de sus dos constructores: StringItem(String etiqueta, String texto). StringItem(String etiqueta, String texto, int apariencia). Los parámetros: etiqueta: Es la etiqueta del ítem. texto: Eseltextoquecontieneelítem. apariencia: Es la apariencia del texto: Item.PLAIN, Item.HYPERLINK, Item.BUTTON. LosmétodosqueposeelaclaseStringItem aparecenenlatabla6.14dela pág. 152 Métodos Descripción int getappearancemode() devuelve la apariencia del texto Font getfont() devuelve la Fuente del texto String gettext() devuelve el texto del StringItem void setfont(font fuente) Establece la Fuente del texto void settext(string texto) Establece el texto del StringItem Cuadro 6.14: Métodos de la Clase StringItem La Clase ImageItem La clase ImageItem brinda la posibilidad de incluir imágenes en un formulario.

175 6.5. INTERFACES GRÁFICAS DE USUARIO 153 Al igual que la clase StringItem, el usuario no podrá interactuar con la imagen. ParacrearunobjetoImageItem sepuedenusarunodesusdosconstructores: ImageItem(String etiqueta, Image imagen, int layout, String textoalt). ImageItem(String etiqueta, Image imagen, int layout, String textoalt, int apariencia). El parámetro textoalt especifica una cadena de texto alternativa a la imagenencasodequeéstaexcedalacapacidaddelapantalla.porsuparte,el parámetro layout indica la posición de la imagen en la pantalla. Los valores que puede tomar son: LAYOUT_LEFT: Imagen posicionada a la izquierda. LAYOUT_RIGHT: Imagen posicionada a la derecha. LAYOUT_CENTER: Imagen centrada. LAYOUT_DEFAULT: Posición por defecto. LAYOUT_NEWLINE_AFTER: Imagen posicionada tras un salto de línea. LAYOUT_NEWLINE_BEFORE: Imagen posicionada antes de un salto de línea. Los métodos de la clase ImageItem se pueden ver en la tabla 6.15 de la pág La Clase TextField Untexfield esuncampodetextoquepuedeserinsertadoenunformulario yenelcuálsepuedeeditartexto.tienesimilitudconlaclasetextbox.sus diferencias son:

176 154 CAPÍTULO 6. JAVA 2 MICRO EDITION Métodos String getalttext() Int getappearancemode() Image getimage() Int getlayout() void setalttext(string textoalt) void setimage(image imagen) void setlayout(int layout) Descripción devuelve la cadena de texto alternativa devuelve la apariencia devuelve la imagen devuelve el posicionado de la imagen Establece un texto alternativo Establece una nueva imagen Establece un nuevo posicionado en pantalla Cuadro 6.15: Métodos de la Clase ImageItem Untexfield tienequeserinsertadoenunformulario,adiferenciadeun textbox puede existir por sí mismo. TextField deriva de la clase Item, mientras que TextBox deriva directamentedescreen,ysuseventossecontrolanatravésdecommands.por esta razón, los eventos que produce un TextField se controlan a través del método itemstatechanged(item item), mientras que en un TextBox se controlan en el método commandaction(command c, Displayable d). Sin embargo ambas clases (TextBox y TextField) comparten las mismas restricciones de edición que se vieron anteriormente. Para crear un TextField sólo hay que invocar al constructor con los siguientes parámetros: TextField(String etiqueta, String texto, int capacidad, int restricciones). Otrosmétodosdeestaclasepuedenverseenlatabla6.16delapág RMS(Record Management System) El sistema de gestión de registros (Record Management System, RMS) se compone de una serie de clases e interfaces que proporcionan soporte a un sistema simple de base de datos que es usado para almacenar información. El objetivo del RMS es almacenar datos de tal forma que estén disponibles unavezqueelmidlet paresuejecución.

177 6.6. RMS(RECORD MANAGEMENT SYSTEM) 155 Métodos Descripción void delete(int desplazamiento, Borra caracteres del TextField int longitud) int getcaretposition() Devuelve la posici n del cursor en pantalla Image getimage() devuelve la imagen int getchars(char[] datos) Copia el contenido del TextField en datos int getconstraints() Devuelve las restricciones de entrada int getmaxsize() Devuelve el tamaño máximo del TextField. String getstring() Devuelve el contenido del TextField void insert(char[] datos, Inserta un subrango de caracteres intdes,intlong,intpos) dedatoseneltextfield void insert(char[] datos, Inserta la cadena de caracteres datos int pos) en una posición determinada void setchars(char[] datos, Reemplaza el contenido del TextField int des, int long) por un subconjunto de caracteres de datos void setconstraints Establece las restricciones (int restricciones) de entrada void setinitialinputmode Establece un tipo (String caracteres) de entrada inicial int setmaxsize Establece el tamaño máximo (int capacidad) del TextField void setstring(string texto) Establece el contenido del TextField void setstring(string texto) Establece el contenido del TextField int size() Devuelve el número de caracteres Cuadro 6.16: Métodos de la Clase TextField

178 156 CAPÍTULO 6. JAVA 2 MICRO EDITION La unidad básica de almacenamiento es el registro(record) que será almacenado en un base de datos especial, denominada almacén de registros(record store ). Cuando un MIDlet usa un almacén de registros, primero debe crearlo y luego añadir los registros. Cuando un registro es añadido a un almacén de registros, se le asigna un identificador único(id) Modelo de Datos Como ya se ha dicho, el RMS está implementado en una base de datos basadaenregistros;verfig.6.8delapág.156. Figura6.8:UnMIDletyelRMS LosMIDlets sonlosencargadosdecrearlosrecordstores parapodercomunicarse con ellos. Estos Record Stores quedan almacenados en el dispositivo y pueden ser accedidos por cualquier MIDlet que pertenezca a la misma suite, es decir pertenezcan al mismo grupo, como se puede ver en la fig. 6.9 de la pág 157.

179 6.6. RMS(RECORD MANAGEMENT SYSTEM) 157 Figura6.9:AccesoaUnRMSaTravésdeUnMIDletSuite Record Stores Las propiedades de estos almacenes de registros son: 1. Cada Record Store está compuesto por cero o más registros. 2. Elnombrepuedetenerunmáximode32caracteres. 3. Siunasuite esborrada,todoslosrecordstore tambiénseborran. 4. Un Midlet no perteneciente a la suite puede acceder al Record Store, siempre que éste lo permita. 5. NopuedencoexistirdosRecordStores conelmismonombredentrode una MIDlet suite. Entoncessepuededecirque unrecord Store esunalmacén de registros, donde éstos registros son la unidad básica de información. Cada uno de estos registros está formado por dos unidades:

180 158 CAPÍTULO 6. JAVA 2 MICRO EDITION Figura 6.10: Estructura de Un Record Store Un número identificador de registro(record ID) que es un valor entero querealizalafuncióndeclaveprimaria enlabasededatos. Un array de bytes destinados a almacenar la información deseada. Enlafig.6.10delapág.158seilustralaestructuradeunRecordStore Creación de un Record Store El API de MIDP incluye un paquete para el RMS, llamado javax.microedition.rms. Este paquete incluye clases e interfaces que proporcionan un marco de trabajo para los registros, los almacenes y otras características. Básicamente se dispone de: Capacidad para añadir y borrar registros de un almacén. Capacidad para compartir almacenes por parte de todos los MIDlets de una MIDlet suite. La clase RecordStore no dispone de ningún constructor, pero posee el método estático: static RecordStore openrecordstore(string name, Boolean createifneccesary). Este método permite la apertura de un Record Store existente o bien la creación de un almacén si el parámetro createifneccesary tiene el valor true. También existen otras dos alternativas de este método:

181 6.6. RMS(RECORD MANAGEMENT SYSTEM) 159 static RecordStore openrecordstore(string name, boolean createifneccesary, int autorización, boolean writable). static RecordStore openrecordstore(string name, String vendorname, String suitename). El primero de ello usa los siguientes parámetros: autorización: AUTHMODE_PRIVATE: Sólo permite el acceso al Record Store alamidlet suite quelocreó AUTHMODE_ANY: Permite el acceso a cualquier MIDlet del dispositivo. writable: Este modo especifica si el Record Store puede ser modificado por cualquier MIDlet que pueda acceder a el. ElsegundométodoseutilizaparaabrirunRecordStorequeestáasociadoa alguna MIDlet suite especificada por los parámetros vendorname y suitename. El acceso vendrá limitado por el tipo de autorización del Record Store cuando fue creado. Alfinalizarconelusodeundeterminado Record Store hayquecerrarla comunicación con él. Para ello se utiliza el siguiente método: public void closerecordstore() throws RecordStoreNotFoundException, Record- StoreException. En la tabla 6.17 de la pág. 160 se pueden apreciar los métodos que proporcionan operaciones con los Record Stores Manipulación de Registros Una vez creado o abierta la comunicación con el Record Store, se puede leer, escribir, modificar o borrar registros como se desee. Para ello, se usan los métodosdelaclaserecordstore quesevenenlatabla6.18delapág.161.

182 160 CAPÍTULO 6. JAVA 2 MICRO EDITION Métodos String getname() int getversion() long getlastmodified() int getnumrecords() int getsize() int getsizeavailable() String[] listrecordstores() void deleterecordstore(string name) RecordEnumeration enumeraterecords (RecordFilter filter, RecordComparator comparator, boolean actualizado) void addrecordlistener (RecordListener listener) void removerecordlistener (RecordListener listener) Descripción Devuelve el nombre del Record Store Devuelve la versi n del Record Store Devuelve la marca temporal Devuelve el número de registros Devuelve el número de bytes ocupado por el Record Store Devuelve el tama o disponible para añadir registros Devuelve una lista con los nombres de los Record Stores Elimina del dispositivo al Record Store especificado por el parámetro name devuelve un objeto RecordEnumeration Añade un listener para detectar cambios en el Record Store Elimina un listener Cuadro 6.17: Métodos Generales de la Clase RecordStore

183 6.6. RMS(RECORD MANAGEMENT SYSTEM) 161 Métodos Descripción int addrecord(byte[] datos, Añade un registro int offset, int numbytes) al Record Store void deleterecord(int id) Borra el registro id del Record Store Int getnextrecordid() Devuelve el siguiente id del registro quesevayaainsertar byte[] getrecord(int id) Devuelve el registro con identificador id int getrecord(int id, Devuelve el registro con identificador byte[] buffer,int offset) id en buffer a partir de offset int getrecordsize(int id) Devuelve el tama o del registro id void setrecord(int id,byte[] Sustituye el registro id datonuevo, int offset, con el valor de datonuevo int tamaño) Cuadro 6.18: Métodos Para Manejo de Registros A continuación se mostrará un ejemplo que utiliza un Record Store de jugadores, donde se pueden ingresar nuevos jugadores y su puntaje obtenido. import javax.microedition.midlet.midlet; import javax.microedition.midlet.midletstatechangeexception; import javax.microedition.lcdui.*; import javax.microedition.rms.*; import java.io.*; public class Rms extends MIDlet implements CommandListener{ protected Display d; protected Form form; protected TextField textfield; protected TextField textfield1; protected Command ingresar, volver; protected Alert alert; protected TextField textfield2;

184 162 CAPÍTULO 6. JAVA 2 MICRO EDITION private RecordStore rs; protected List list; protected Form form2; protected String[] respuesta; // metodo para iniciar la aplicacion, aqui se inicializa el objeto display y se } // muestra primeramente el menu como pantalla principal protected void startapp() throws MIDletStateChangeException{ d = Display.getDisplay(this); d.setcurrent(getlist()); protected void pauseapp(){ } protected void destroyapp(boolean flag) throws MIDletStateChangeException{ } // este método arma el formulario y retorna para poder ser mostrado protected Form getform(){ } if(form==null){ form = new Form( Nuevo Puntaje ); form.append(gettextfield()); form.append(gettextfield1()); form.append(gettextfield2()); form.addcommand(getcommand()); form.addcommand(getback()); form.setcommandlistener(this); } return form; public TextField gettextfield(){ if(textfield==null){ textfield = new TextField( Nombre jugador,, 255, TextField.ANY);

185 6.6. RMS(RECORD MANAGEMENT SYSTEM) 163 } return textfield; } public TextField gettextfield1(){ if(textfield1 == null){ textfield1 = new TextField( documento,, 255, TextField.ANY); } return textfield1; } public Command getcommand(){ if(ingresar == null){ ingresar = new Command( Cargar,Command.OK,1); } return ingresar; } public Command getback(){ if(volver == null){ volver = new Command( Volver,Command.BACK,1); } return volver; } public void commandaction(command c, Displayable dis){ if(c==list.select_command){ if(list.getselectedindex()==0){ d.setcurrent(getform()); }else{ //se llama al formulario de lectura.. form2 System.out.println( ok ); abrirrecordstore(); leerregistro(); cerrarrecordstore(); }

186 164 CAPÍTULO 6. JAVA 2 MICRO EDITION } if(c==ingresar){ cargardatos(); d.setcurrent(getalert()); textfield.setstring( ); textfield1.setstring( ); textfield2.setstring( ); } if(c==volver){ d.setcurrent(getlist()); } } public Alert getalert(){ if(alert==null){ alert = new Alert( informacion, Los datos se estan cargando espere..., null, AlertType.INFO); alert.settimeout(3000); } return alert; public TextField gettextfield2(){ if(textfield2 == null){ textfield2 = new TextField( Puntaje,, 2, TextField.NUMERIC); } return textfield2; } private void cargardatos(){ abrirrecordstore(); //luegosegrabanlosdatosydespuescierralaconexion

187 6.6. RMS(RECORD MANAGEMENT SYSTEM) 165 escribirregistro(textfield.getstring(), textfield1.getstring(),textfield2.getstring()); cerrarrecordstore(); } private void abrirrecordstore(){ try{ rs = RecordStore.openRecordStore( Clientes,true); }catch(recordstoreexception e){ System.out.println( Error al abrir el record store ); } } private void cerrarrecordstore(){ try{ rs.closerecordstore(); }catch(recordstoreexception e){ System.out.println( error al cerrar el recordstore ); } } private void escribirregistro(string cliente, String doc, String pun){ byte[] registro; ByteArrayOutputStream baos; DataOutputStream dos; try{ baos = new ByteArrayOutputStream(); dos = new DataOutputStream(baos); dos.writeutf(cliente); dos.writeutf(doc); dos.writeutf(pun);

188 166 CAPÍTULO 6. JAVA 2 MICRO EDITION dos.flush(); registro = baos.tobytearray(); rs.addrecord(registro,0,registro.length); baos.close(); dos.close(); }catch(exception e){ System.out.println( error al insertar el registro ); } } private void leerregistro(){ ByteArrayInputStream bais; DataInputStream dis; byte[] registro = new byte[200]; try{ bais = new ByteArrayInputStream(registro); dis = new DataInputStream(bais); respuesta = new String[rs.getNumRecords()+ 1]; for(int i=1;i<=rs.getnumrecords();i++) { rs.getrecord(i,registro,0); System.out.println( Registro: + i); respuesta[i]= Nombre: + dis.readutf() + documento: + dis.readutf()+ puntaje + dis.readutf(); bais.reset(); } bais.close(); dis.close(); }catch(exception e){ System.out.println( error al leer registros );

189 6.6. RMS(RECORD MANAGEMENT SYSTEM) 167 } registro = null; mostrardatos(); } public List getlist(){ if(list==null){ list = new List( Menu, Choice.IMPLICIT); list.append( Cargar Datos,null); list.append( Leer Datos,null); list.setcommandlistener(this); } return list; public Form getform2(){ if(form2==null){ form2 = new Form( Lectura de Datos ); for(int i=1;i<respuesta.length;i++) { form2.append(respuesta[i]); form2.addcommand(getback()); form2.setcommandlistener(this); } } return form2; } public void mostrardatos(){

190 168 CAPÍTULO 6. JAVA 2 MICRO EDITION } d.setcurrent(getform2()); } En lafig.6.11 delapág.168se puede apreciarlaspantallas delejemplo enunemuladordenokia. Figura 6.11: Ejemplo en un emulador Nokia Operaciones con Record Stores En el ejemplo anteriormente visto se ha usado un simple bucle para recorrer los distintos registros del Record Store. El bucle es el siguiente: for(int i=1;i<=rs.getnumrecords();i++){ longitud = rs.getrecordsize(i);

191 6.6. RMS(RECORD MANAGEMENT SYSTEM) 169 registro = rs.getrecord(i); System.out.println( Registro +i+ : + new String(registro,0,longitud)); } Sin embargo, la clase RecordStore proporciona la interfaz RecordEnumeration que facilita ésta tarea. Utilizando esta interfaz se puede sustituir el bucle anterior por el siguiente código: RecordEnumeration re = rs.enumeraterecords(null,null,false); while(re.hasnextelement()){ registro = re.nextrecord(); //se realizan las operaciones que se desean... } Como se puede ver, la navegación por los registros usando RecordEnumeration es mucho más intuitiva y permite realizar acciones como mover hacia delante o hacia atrás de una manera muy sencilla Búsqueda de Registros Para realizar una búsqueda eficiente de registros, se debe implementar la interfaz RecordFilter, esta interfaz se encarga de devolver sólo los registros que coincidan con el patrón de búsqueda especificado. Para usar esta interfaz se debe implementar necesariamente el método: public boolean matches(byte[] candidato), el cual se encarga de comparar el registro candidato pasado como parámetro con el valor que se quiere buscar y devolverá true en caso de que coincidan.

192 170 CAPÍTULO 6. JAVA 2 MICRO EDITION 6.7. Comunicaciones en J2ME A pesar de la cantidad de restricciones que soportan los dispositivos MID y también restricciones propias del lenguaje Java, la gran ventaja que posee este tipo de dispositivos es la posibilidad de estar siempre conectados. La posibilidad de llevar un dispositivo con poco tamaño y que permita comunicarse en cualquier momento y lugar abre un abanico de posibilidades en el desarrollo de aplicaciones. Las aplicaciones MIDP para trabajar en red utilizan las clases contenidas en los paquetes javax.microedition.io y java.io de la siguiente manera: El primer paquete contiene numerosas clases que permitirán crear y manejar diferentes conexiones de red. Estas conexiones podrán usar diferentes formas de comunicación: HTTP, datagramas, sockets, etc. El paquete java.io se encargará de proporcionar las clases necesarias para leer y escribir en estas conexiones. Enlafig.6.12delapág.171puedeverselajerarquíadeclasesquereciben el nombre de Generic Framework Conection (GFC). En la raíz del árbol se encuentra la interfaz Connection que representa la conexión más genérica y abstracta que se puede crear. El resto de interfaces que derivan de Connection representan los distintos tipos de conexiones que se pueden crear Clases y Conexiones del Generic Connection Framework Lo que proporciona el Generic Connection Framework es una sola clase Connector que esconde los detalles de la conexión. Esta clase puede por sí misma crear cualquier tipo de conexión: Archivos, Http, socket,etc. Clase Connector Como se he dicho anteriormente, el GCF proporciona la clase Connector que esconde los detalles de la conexión. De esta forma se pueden realizar

193 6.7. COMUNICACIONES EN J2ME 171 Figura 6.12: Jerarquía de Interfaces cualquier tipo de conexión usando sólo esta clase y sin preocuparnos de cómo se implementa el protocolo requerido. La conexión se realiza de la siguiente manera: Connector.open( protocolo:dirección;parámetros ); Algunos ejemplo de invocación son: Connector.open( ); Connector.open( file://autoexec.bat ); Connector.open( socket://direccion:0000 ); La clase Connector se encarga de buscar la clase específica que implemente el protocolo requerido. Si esta clase se encuentra, el método open() devuelve un objeto que implementa la interfaz Connection. Enlatabla6.19delapág.172sepuedeapreciarlosmétodosdelaclase Connector.

194 172 CAPÍTULO 6. JAVA 2 MICRO EDITION Métodos public static Connection open(string dir) public static Connection open(string dir,int modo) public static Connection open( String dir, int mode, boolean tespera) public static DataInputStream opendatainputstream(string dir) public static DataOutputStream opendataoutputstream(string dir) public static InputStream openinputstream(string dir) public static OutputStream openoutputstream(string dir) Descripción Crea y abre una conexión Crea y abre una conexión con permisos Crea y abre una conexión especificando el permiso y tiempo de espera Crea y abre una conexión de entrada devolviendo para ello un DataInputStream Crea y abre una conexión de salida a través de un DataOutputStream Crea y abre una conexión de entrada usando un InputStream Crea y abre una conexión de salida devolviendo para ello un OutputStream Cuadro 6.19: Métodos de la Clase Connector

195 6.7. COMUNICACIONES EN J2ME 173 Lostiposdepermisossepuedenverenlatabla6.20delapág173. Modo Descripción READ Permiso de solo lectura READ_WRITE Permiso de lectura y escritura WRITE Permiso de solo escritura Cuadro 6.20: Tipos de Permisos La Interfaz Connection LainterfazConnection seencuentraenlomásaltodelajerarquíadeinterfaces del Generic Connection Framework, por lo que cualquier otra interfaz deriva de ésta. UnaconexióndetipoConnection secreadespuésdequeunobjetoconnector invoque al método open(). Como se dijo anteriormente, esta interfaz representa la conexión más genérica posible por lo que define un sólo método: public void close(), que realiza el cierre de la conexión. Interfaz InputConnection La interfaz InputConnection representa una conexión basada en streams de entrada. Esta interfaz sólo posee dos métodos que devuelven objetos de tipo InputStreams (ver Tabla). En el siguiente ejemplo se ilustra cómo podría utilizarse este tipo de conexión: String url = ; InputConnection conexión =(InputConnection)Connector.open(url); DataInputStream dis = conexion.opendatainputstream();

196 174 CAPÍTULO 6. JAVA 2 MICRO EDITION Interfaz OutputConnection La interfaz OutputConnection representa una conexión basada en streams de salida. Esta interfaz sólo posee dos métodos que devuelven objetos de tipo OutputStreams (ver Tabla). La conexión a través de esta interfaz se realiza de la misma forma a la interfaz InputConnection. Interfaz StreamConnection Esta interfaz representa una conexión basada en streams tanto de entrada comodesalida.noañadeningúnmétodonuevo,sinoqueheredalosmétodos delosinterfacesqueestánporencimadeél.suúnicamisiónenlajerarquía del GCF es representar un tipo de conexión cuyos datos pueden ser tratados comostreamsdebytes yenlaqueesposibleleeryescribir. A continuación un ejemplo de cómo podría utilizarse esta conexión: StreamConnection sc =(StreamConnection)Connector.open(url); InputStream is = sc.openinputstream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); intc; while((c=is.read())!=-1){ baos.write(c); } Comunicaciones HTTP ElprotocoloHTTP esunprotocolodetipopetición / respuesta.elfuncionamiento de este protocolo es el siguiente: El cliente realiza una petición alservidoryesperaaqueésteleenvíeunarespuesta.normalmente,estacomunicación es la que suele realizarse entre un navegador web (cliente) y un

197 6.7. COMUNICACIONES EN J2ME 175 Establecimiento de conexión Conectado Sin Conexión Figura 6.13: Estados de una Conexión HTTP servidor web(servidor). En este caso la comunicación se realiza a través de un MIDlet(cliente) y un Servlet(servidor) que recibirá peticiones y devolverá los resultados. Una conexión HTTP pasa por tres estados que se pueden ver en la fig. 6.13delapág175. Establecimiento de la Conexón Enesteestadoesdondesevanaestablecerlosparámetrosdelacomunicación. El cliente prepara la petición que va a realizar al servidor, además de negociar con él una serie de parámetros como el formato, idioma, etc. Existendosmétodosquepuedenserinvocados.Enlatabla6.21delapág.

198 176 CAPÍTULO 6. JAVA 2 MICRO EDITION 176 se pueden apreciar estos métodos. Método Descripción public void setrequestmethod(string tipo) Establece el tipo de petición public void setrequestproperty(string clave Establece una propiedad de la String valor) petición Cuadro 6.21: Métodos en la Etapa de Establecimiento Elprimermétodo estableceeltipo de peticiónque se vaarealizar.esta peticiónpuedeserdelostiposindicadosenlatabla6.22delapág Tipo GET POST HEAD Descripción Petición de información en la que losdatosseenvíancomopartedelurl Petición de información en la que losdatosseenvíanaparteenunstream Petición de metainformación Cuadro 6.22: Tipos de peticiones El segundo método permite negociar entre el cliente y el servidor detalles de la petición como, por ejemplo, idioma, formato, etc. Estos campos forman partedelacabeceradelapetición.enlatabla6.23delapág.177sepueden ver algunos de los más importantes. Peticiones GET Acontinuaciónsemuestraunejemploenelquesepreparaunaconexión mediante la interfaz HttpConnection usando una petición de tipo GET. //se crea la conexión String url = HttpConnection hc =(HttpConnection)Connector.open(url); //se informa el tipo de conexión a realizar

199 6.7. COMUNICACIONES EN J2ME 177 Campo public void setrequestmethod (String tipo) User-Agent User-Agent Content-Language Content-Length) Accept Connection Cache-Control Expires If-Modified-Since Descripción Establece el tipo de petición Tipo de contenido que devuelve el servidor Pais e idioma que usa el cliente Longitud de la petici n Formatos que acepta el cliente Indica al servidor si se quiere cerrar la conexión después de la petición se quiere dejar abierta Sirve para controlar el almacenamiento de información Tiempo m ximo para respuesta del servidor Pregunta si el contenido solicitado se ha modificado desde una fecha dada Cuadro 6.23: Campos de la Cabecera

200 178 CAPÍTULO 6. JAVA 2 MICRO EDITION hc.setrequestmethod(httpconnection.get); // se establece algunos campos en la cabezera hc.setrequestproperty( User-Agent, Profile/MIDP-2.0 Configuration/CLDC-1.0 ); hc.setrequestproperty( Content-Language, es-es ); Como puede apreciarse, la información sobre la petición va incluida en la cabeceradeladirecciónurl.elcuerpodelapeticiónloformalacadena: opcion=1&us=usuario&pass=1234. Esta información va detrás del símbolo? situado al final de la dirección URL. Cada parámetro de la petición va separado del siguiente por el símbolo &. Peticiones POST En estetipode conexión, el cuerpodelapetición seenvía en un stream después de iniciar la conexión. El siguiente ejemplo muestra cómo se realiza el envío del cuerpo de la petición: //se crea la conexión String url = HttpConnection hc =(HttpConnection)Connector.open(url); //seinformaeltipodepeticiónarealizar hc.setrequestmethod(httpconnection.post); //se establece algunos campos de la cabezera hc.setrequestproperty( User-Agent, Profile/MIDP-2.0 Configuration/CLDC-1.0 ); hc.setrequestproperty( Content-Language, es-es ); //seenviaelcuerpodelapetición OutputStream os = hc.openoutputstream();

201 6.7. COMUNICACIONES EN J2ME 179 os.write(opcion=1.getbytes()); os.write(&us=usuario.getbytes()); os.write(&pass=1234.getbytes()); os.flush(); Estado de la Conexión Enesteestadoserealizaelintercambiodeinformaciónentreelclienteyel servidor. En los ejemplos anteriores se ha visto la manera de enviar la petición al servidor. Ahora se verá cómo se realiza la respuesta del servidor hacia el cliente. Respuesta del Servidor Al igual que la petición del cliente posee distintas partes, la respuesta del servidor se compone de: Línea de estado. Cabecera. Cuerpo de la respuesta. Para conocer la respuesta del servidor, la interfaz HttpConnection proporciona diversos métodos que permiten conocer las distintas partes de ésta. La interfaz HttpConnection dispone de treinta y cinco códigos de estado diferentes. Básicamente se pueden dividir en cinco clases de la siguiente manera: 1xx: Código de información. 2xx: Código de éxito. 3xx: Código de redirección. 4xx: Código de error del cliente.

202 180 CAPÍTULO 6. JAVA 2 MICRO EDITION 5xx: Código de error del servidor. Por ejemplo, el código 400 corresponde a la constante HTTP_BAD_REQUEST. En realidad la respuesta del servidor posee el siguiente formato: HTTP/ Bad Request. HTTP/ OK. En la respuesta se incluye el protocolo usado, seguido del código de estado ydeunmensajederespuesta.estemensajeesdevueltoalinvocarelmétodo getresponsemessage(). Estado de Cierre Laconexión entraenesteestadounavezqueseterminalacomunicación entre el cliente y el servidor invocando al método close(). A continuacion se verá un ejemplo donde se produce una petición mediante una petición POST, se describirán tanto el codigo del MIDlet como del Servlet que recibe la peticion y devuelve una respuesta. Codigo del MIDlet import java.io.ioexception; import java.io.inputstream; import java.io.outputstream; import javax.microedition.io.connector; import javax.microedition.io.httpconnection; import javx.microedition.lcdui.*; import javax.microedition.midlet.midlet; public class HiloConexionMidlet extends MIDlet implements CommandListener, Runnable{ private Display mdisplay; private Form mmainscreen;

203 6.7. COMUNICACIONES EN J2ME 181 public HiloConexionMidlet(){ mmainscreen = new Form( HTTPMIDlet ); mmainscreen.append( Press OK to create an HTTP connection. ); Command exitcommand = new Command( Exit, Command.EXIT, 0); Command okcommand = new Command( OK, Command.OK, 0); mmainscreen.addcommand(exitcommand); mmainscreen.addcommand(okcommand); mmainscreen.setcommandlistener(this); } public void startapp(){ if(mdisplay == null) mdisplay = Display.getDisplay(this); } mdisplay.setcurrent(mmainscreen); } public void pauseapp(){ } public void destroyapp(boolean unconditional){} public void commandaction(command c, Displayable s){ if(c.getcommandtype() == Command.EXIT) notifydestroyed(); else if(c.getcommandtype() == Command.BACK) mdisplay.setcurrent(mmainscreen); else if(c.getcommandtype() == Command.OK){ //Putupawaitscreen. FormwaitForm=newForm( Connecting... );

204 182 CAPÍTULO 6. JAVA 2 MICRO EDITION } } mdisplay.setcurrent(waitform); Thread t = new Thread(this); t.start(); // metodo Runnable public void run(){ String url = ; Form resultsform = new Form( Results ); Command backcommand = new Command( Back, Command.BACK, 0); resultsform.addcommand(backcommand); resultsform.setcommandlistener(this); HttpConnection hc = null; InputStream in = null; OutputStream os = null; try{ // aqui se realiza la conexión al servidor. hc =(HttpConnection)Connector.open(url); //seenviaelcuerpodelapeticion hc.setrequestmethod(httpconnection.post); hc.setrequestproperty( Content-Language, es-es ); hc.setrequestproperty( User-Agent, ProfileMIDP-2.0 Configuration/CLDC- 1.0 ); hc.setrequestproperty( Content-Type, application/octect-stream ); os = hc.openoutputstream(); os.write( usuario=qm.getbytes()); os.write( &clave=hi.getbytes()); os.flush(); //setomalarespuesta. in = hc.openinputstream();

205 6.7. COMUNICACIONES EN J2ME 183 intlength=256; byte[] raw = new byte[length]; int readlength = in.read(raw); String message = new String(raw, 0, readlength); resultsform.append(message); } catch(exception e){ resultsform.append( new StringItem( Exception:, e.tostring())); } finally{ if(in!=null){ try{in.close();} catch(ioexception ioe){} } if(hc!=null){ try{hc.close();} catch(ioexception ioe){} } } mdisplay.setcurrent(resultsform); } Codigo del Servlet import java.io.ioexception; import javax.servlet.servletexception; import javax.servlet.http.httpservlet; import javax.servlet.http.httpservletrequest; import javax.servlet.http.httpservletresponse; import java.io.*; public class ServerHilo extends HttpServlet{

206 184 CAPÍTULO 6. JAVA 2 MICRO EDITION public void doget(httpservletrequest req, HttpServletResponse resp) throws ServletException, IOException{ } public void dopost(httpservletrequest req, HttpServletResponse resp) throws ServletException, IOException{ InputStream in = req.getinputstream(); intlength=256; byte[] raw = new byte[length]; int readlength = in.read(raw); String query= new String(raw, 0, readlength); intindex=query.indexof( & ); String usuarioaux = query.substring(0,index); index = usuarioaux.indexof( = ); String userid = usuarioaux.substring(index+1,usuarioaux.length()); String claveaux = query.substring(index + 1, query.length()); index = claveaux.indexof( = ); String password = claveaux.substring(index+1,claveaux.length()); resp.setcontenttype( text/plain ); PrintWriter out = resp.getwriter(); if(userid.equals( qm )&& password.equals( hi )){ out.println( Login successful. ); }else{ out.println( Login failed. ); } } }

207 Capítulo 7 Introducción al DB Bases de Datos La necesidad de mejorar la manera de acceder y manejar los datos ha evolucionado con el transcurso del tiempo hasta llegar a la generación de los sistemas de administración de bases de datos relacionales(rdbms). Enlosúltimostiemposhasurgidounanuevabasededatosllamada Universal, la cuál es capaz de almacenar y hacer búsquedas no solamente de datos alfanuméricos sino también de imágenes, audio, video y otros objetos. Esta ventaja de las bases de datos universales abre un gran número de oportunidades que permiten mejorar tanto los servicios como las aplicaciones. SepuededefinirunaBasedeDatoscomounaseriededatosorganizadosy relacionados entre sí, y un conjunto de programas que permitan a los usuarios acceder y modificar esos datos [15]. Mientras que un archivo normalmente contiene datos acerca de un tipo de entidad (ej.: personal, órdenes, clientes, ventas), una base de datos contiene datos acerca de muchos tipos de entidades e información acerca de cómo las entidades están lógicamente relacionadas entre sí. Las bases son cualquier conjunto de datos organizados para su almacenamiento en la memoria de un ordenador, diseñado para facilitar su mantenimiento y acceso de una manera estándar. Los datos suelen aparecer en forma 185

208 186 CAPÍTULO 7. INTRODUCCIÓN AL DB2 de texto, números o gráficos. Otradefiniciónmáscompletadebasesdedatosafirmaqueesun conjunto exhaustivo, no redundante, de datos estructurados, organizados independientemente de su utilización y su implementación en máquina, accesibles en tiempo real y compatibles con usuarios concurrentes con necesidad de información diferente y no predecible en el tiempo, donde la información se encuentra almacenada en una memoria auxiliar que permite el acceso directo a un conjunto de programas que manipulan esos datos [19] Objetivos de las Bases de Datos Automatización de: El mantenimiento. Cualquier generación de información. Cualquier consulta sobre dicha información Ventajas de las Bases de Datos Algunas ventajas de las bases de datos se describen a continuación: Ahorro de Espacio: No hacen falta archivos de papeles que pudieran ocupar mucho espacio. Velocidad: Con la utilización de las bases de datos se pueden modificar, consultar datos con una velocidad mucho mayor que realizándolo manualmente. Ahorro de trabajo: ya que las máquinas son encargadas de manejar estas basesynosenecesitanmanejararchivosamano,existeunahorrodetrabajo humano. Actualización: Se dispone en cualquier momento de información precisa yaldía. Comodidad: Al tener la información en un mismo sitio, se ahorrará tiempo y trabajo.

209 7.2. SISTEMA DE ADMINISTRACIÓN DE BASES DE DATOS 187 Disminución de la Redundancia: La duplicación de los datos implica mayor trabajo en el mantenimiento. Gracias a que las bases de datos disminuyen la redundancia también se disminuye el trabajo. Compartición de Datos: Se trata de datos actuales, ya que al estar centralizados, se puede tener acceso a los datos actualizados en prácticamente tiempo real. Restricciones de Seguridad: Para mantener la seguridad acerca del mantenimiento de los datos, los administradores de la Base de Datos, crean unniveldeacceso,quepermitiráoprohibiráalosusuarioshacerunauotra acción sobre dicha base de datos. Posibilidad de Mantener la Integridad: En una base de datos se debe mantener una coherencia. Esto se controlará mediante: Máscaras. Reglas de validación Sistema de Administración de Bases de Datos Unabasededatosesunacoleccióndetablasyobjetosrelacionadosentresí yorganizadoscomoungrupo.laestructuradeunabasededatossemuestra enlafigura7.1delapágina188. Un DBMS es un conjunto de programas que maneja todos los accesos a lasbasesdedatos;verfigura7.2delapágina188. Funciones de un DBMS: Definición de datos. Manipulación de datos. Seguridad e integridad de los datos. Recuperación y concurrencia de los datos. Diccionario de datos. Desempeño.

210 188 CAPÍTULO 7. INTRODUCCIÓN AL DB2 Figura 7.1: Estructura de Una Base de Datos Figura 7.2: Sistema de Administración de Bases de Datos

211 7.3. ORGANIZACIÓN DE BASES DE DATOS Organización de Bases de Datos Los modelos más comunes de organización de Bases de Datos son: Jerárquico. En Red. Relacional. Orientado a Objetos Bases de Datos Jerárquicas Estructura los campos en nodos en una estructura jerárquica. Los nodos son puntos conectados entre sí formando una especie de árbol invertido. Cada entrada tiene un nodo padre, que puede tener varios nodos hijos; esto suele denominarse relación uno a muchos. Los nodos inferiores se subordinan a los que se hallan a su nivel inmediato superior. Un nodo que no tiene padre es llamado raíz, en tanto que los que no tienen hijos son conocidos como hojas. Cuando se desea hallar un campo en particular, se empieza por el tope, con un nodo padre, descendiendo por el árbolendirecciónaunnodohijo. Por Ejemplo: Un Sistema de Reservaciones de una Línea Aérea(ver figura 7.3delapágina190). ElNodoPadre eslaciudadde Salidaenestecasoes(Caracas),Nodos Hijos representando las Ciudades Destino que tiene a su vez Nodos Hijos, que son el Número de Vuelo. El Número de Vuelo tendrá también Nodos Hijos, que son los Pasajeros. Limitaciones de las Base de Datos Jerárquicas Al borrar un nodo padre, desaparecen también sus nodos subordinados. Sólopodráañadirseunnodohijo,siexisteelnodopadre. Perolomássignificativoeslarigidezdesuestructura:sólounpadrepor hijo y ausencia de relaciones entre los nodos hijos.

212 190 CAPÍTULO 7. INTRODUCCIÓN AL DB2 Figura 7.3: Modelo de Bases de Datos Jerárquica BasesdeDatosenRed Se trata también de una organización jerárquica de nodos, pero un nodo hijo puede tener más de un solo nodo padre (relación muchos a muchos). Existen los punteros, que son conexiones adicionales entre nodos padres y nodos hijos, que permiten acceder a un nodo por vías distintas accediendo al mismo en dirección descendente por las diversas ramas. Representa una mejora al modelo jerárquico. Por ejemplo:los vendedores destacados para distribuir determinados productos en algunas ciudades pueden ilustrar este modelo(ver figura 7.4 de la página 191). Cada Producto puede ser distribuido por más de un Vendedor, así mismo cada Vendedor puede encargarse de diferentes Ciudades Bases de Datos Relacional Esta organización ofrece la mayor flexibilidad ya que los datos se almacenan en Tablas diferentes, conformadas así mismo por Filas y Columnas. Una tabla se denomina relación. En una Tabla las Filas contienen los Registros. Las

213 7.3. ORGANIZACIÓN DE BASES DE DATOS 191 Figura7.4:ModelodeBasesdeDatosenRed. Columnas representan los Campos. Las Tablas relacionadas poseen un campo común, el Campo Clave, mediante el cual la información almacenada en una tabla puede enlazarse con la información almacenada en otra. El acceso a los datos se realiza mediante consultas escritas en SQL(Structured Query Language). La Organización de Bases de Datos Relacional es la más difundida en la actualidad debido a su sencillez para realizar operaciones de adición, eliminación y modificación en contraste con la mayor rigidez de las Organizaciones Jerárquicas y de Red. Por ejemplo:enunpequeñonegocio,sepuedecontarconunatablade Clientes ytabladepedidos (verfigura7.5delapágina192). Las órdenes que pertenecen a un determinado cliente son identificadas colocando el campo de identificación del cliente en la orden(campo clave de la tabla de clientes), lo cual permite enlazar las dos tablas. Limitaciones de las Bases de Datos Relacionales Estructuras muy simples. Poca riqueza semántica. No soporta tipos definidos por el ususarios(sólo Dominios).

214 192 CAPÍTULO 7. INTRODUCCIÓN AL DB2 Figura 7.5: Modelo de Bases de Datos Relacional. No soporta Recursividad. Falta de Procesamiento/Disparadores. No admite Herencia Introducción a DB2 UDB DB2 UDB Universal Database esunabase de Datos Universal. Escompletamente escalable, veloz y confiable. Corre en modo nativo en casi todas las plataformas como ser: Windows Vista, NT, Sun Solaris, HP-UX, AIX U, OS/2 entre otros. DB2 es un software de base de datos relacional. Es completamente multimedia, disponible para su uso en la Web, muy bueno para satisfacer las demandas de las grandes corporaciones y bastante flexible para servir a los medianos y pequeños negocios. DB2 UDB es un sistema manejador de base de datos relacional fuertemente

215 7.4. INTRODUCCIÓN A DB2 UDB 193 escalable. Es suficientemente flexible para atender estructuras e inestructuras manejadoras de datos necesarias para usuarios simples de grandes empresas. Es conveniente para una gama amplia de aplicaciones de los clientes, quienes pueden desplegar una variedad de plataformas de hardware y software desde dispositivos manuales a los sistemas multiprocesador paralelos masivos Características Generales del DB2 UDB DB2 UDB es el producto principal de la estrategia de Data Management de IBM. DB2 UDB es un sistema para administración de Bases de Datos Relacionales (RDBMS). Es multiplataforma, especialmente diseñada para ambientes distribuidos, permitiendo que los usuarios locales compartan información conlosrecursoscentrales.eselsistemadegestióndedatosqueentregauna plataforma de base de datos flexible y rentable para construir un sistema robusto para aplicaciones de gestión. DB2 UDB libera los recursos con amplio apoyo al open source (fuente abierta) y plataformas de desarrollo populares como J2EE y Microsoft.NET. Integridad El DB2 UDB incluye características de Integridad, asegurando la protección de los datos aún en caso de que los sistemas sufran un colapso, y de Seguridad permitiendo realizar respaldos en línea con distintos grados de granularidad, sin que esto afecte la disponibilidad de acceso a los datos por parte de los usuarios. Múltiples Usos Provee la capacidad de hacer frente a múltiples necesidades, desde Procesamiento Transaccional de Misión Crítica(OLTP), hasta análisis exhaustivo delosdatosparaelsoportealatomadedecisiones(olap).

216 194 CAPÍTULO 7. INTRODUCCIÓN AL DB2 Escalabilidad Sus características distintivas de Escalabilidad le permiten almacenar información en un amplio rango de equipos, desde un PC portátil hasta un complejo ambiente de mainframes procesando en paralelo. Web Enabled Para e-business Incluye tecnología basada en Web que permite generar aplicaciones en las Intranets y responder a las oportunidades de negocios disponibles en Internet. Facilidad de Instalación y Uso LaprimeraversióndeDB2 para NT fuereconocidaenelmercadocomo unabasededatosmuypoderosa,perodifícildeinstalaryusar. Universalidad DB2UDBes,además,laúnicabasededatosrealmenteuniversal;esmultiplataforma(16plataformas-delascuales10nosondeIBM),brindasoporte aunampliorangodeclientes,soportaelaccesodelosdatosdesdeinternety permite almacenar todo tipo de datos: Texto, Audio, Imágenes y Video (AIV Extender) (ver figura 7.6 de la página 195). DocumentosXML(XMLExtender)(verfigura7.7delapágina195). Funciones Complementarias del DB2 UDB Conectividad Las herramientas de conectividad permiten acceder a los datos más allá de donde ellos se encuentren. El slogan cualquier cliente, a cualquier servidor,

217 7.4. INTRODUCCIÓN A DB2 UDB 195 Figura 7.6: AIV Extender. Figura 7.7: XML Extender.

218 196 CAPÍTULO 7. INTRODUCCIÓN AL DB2 en cualquier red está completamente sustentado por la funcionalidad que sus herramientas ofrecen. DB2 permite acceder a los datos de DB2 en mainframe o AS/400, desdewindows Vista, NT,Windows 95/98,OS/2 ocualquieradelosunix soportados. Además, el producto Datajoiner posibilita acceder de forma única y transparente a los datos residentes en Oracle, Sybase, Informix, Microsoft SQLServer,IMS,VSAM yotros DB2 Express-C Es una edición de la comunidad sin costo del servidor de datos DB2.Es ideal para las pequeñas empresas y empresas con múltiples sucursales, así como los desarrolladores y socios de negocios que sirven a estos clientes. DB2 Express-C se puede configurar rápidamente, es fácil de usar, e incluye capacidades de auto-gestión. También incorpora la totalidad de las principales características de las ediciones de DB2 más escalable, incluyendo la revolucionaria tecnología purexml para la alimentación de una nueva generación delaweb2.0ylassolucionesbasadasensoa. DB2 Express-C está disponible para su descarga e instalación sin cargo. Está disponible para los usuarios que requieren apoyo técnico o funcionalidades adicionales, tales como clustering de alta disponibilidad y replicación de datos. La suscripción anual para DB2 Express(Licencia de Plazo Fijo) está disponible con un precio por servidor métricas.[13] Información Técnica Recursos: Se limite la utilización de recursos totales de la siguiente manera: Procesador: 2 núcleos. Memoria:2GB. Sistemas operativos: Linux(32bits,64bits,POWER).

219 7.5. DB2 EXPRESS-C 197 Windows(32bits,64bits). Solaris(Intelde64bits). MacOSX(de64bitsdeIntelbeta**) DB2 para Linux, UNIX y Windows Características y Beneficios Autónomas Elcosto de administración de base de datos puede ser de gran supere el costede labase de datos desoftwareyhardware por lo quees fundamental que el tiempo que el administrador de base de datos se utilizan con eficacia y eficiencia. DB2 incluye numerosas características autónomas, como el Administrador de memoria de ajuste automático, sin que los administradores de bases de datos de muchas tareas comunes de administración. Como resultado, los administradores de base de datos pueden dedicar menos tiempo a la gestión delsistemaymástiempoacentrarseenotrasactividadesquebeneficienala empresa. Compresión de Datos Las empresas con grandes volúmenes de datos sabe lo caro de almacenamiento puede ser. DB2 puede reducir ese costo con la industria líder en tecnologías de compresión de datos que comprimen filas, índices, tablas temporales, LDN, XML, y los datos de back-up con tasas de compresión que puedealcanzarmásdel80%.porotraparte,debidoalacompresiónpermite adb2paramantenermásydatosenlamemoria,evitandoasíelrendimiento robando / S de disco, el rendimiento de base de datos puede aumentar considerablemente. Rendimiento DB2 ha dominado los puntos de referencia clave de rendimiento en muchas ocasiones en los últimos años, tanto en línea de procesamiento de transacciones (OLTP) y On-Line Analytical Processing(OLAP) puntos de referencia. Lo que esto significa que el rendimiento de clase mundial para empresas con base de datos es que pueden hacer más trabajo con su hardware existente, a fin de evitar o retrasar las costosas actualizaciones del servidor.

220 198 CAPÍTULO 7. INTRODUCCIÓN AL DB2 Escalabilidad DB2 purescale utiliza un cluster basado en la arquitectura de disco compartido para ofrecer una fácil escalabilidad y alta disponibilidad. DB2 purescale evita muchos de los inconvenientes de las soluciones de disco compartido basado en clusters de otros proveedores. Otras soluciones de incurrir en una çabeza deracimo",quelimitasucapacidaddeescalarmásalládeunospocosnodos, mientras que DB2 purescale crece con una eficiencia casi lineal. Otras soluciones tardar minutos en reanudar el proceso después de un fallo del nodo, mientras que DB2 purescale sigue funcionando sin degradación del rendimiento. Adición de servidores a otras soluciones de sintonización complejo y requiere cambios a código de la aplicación, mientras que DB2 purescale permite ampliarlabasededatossinajustedelsistemayrequierecambiosmínimosen el código de aplicación. Seguridad Acceso no autorizado de datos es una amenaza siempre presente de que puede terminar costando sumas considerables de dinero de negocios, su reputación, o ambos. DB2 ofrece un conjunto completo de funciones de seguridad que con eficacia y decisión minimizar esta amenaza. DB2 proporciona mayor tranquilidad con el mecanismo ligero de auditoría de seguridad que se pueden utilizar para comprobar que no ha habido acceso a datos no autorizados. Fiabilidad Paramuchasempresas,eltiempodeinactividaddebasededatosesigual adineroylaoportunidadperdida.db2puedereduciralmínimoeltiempode inactividad asociado con muchas actividades previstas- como la modificación de una tabla - y muchos eventos no planificados - por ejemplo un corte de energía- ya sea eliminando el tiempo de inactividad total o reducir su duración a unos pocos segundos. XML Puro XML puede reducir significativamente el coste de desarrollo y mantenimiento de aplicaciones en continua evolución con las capacidades de entrada o

221 7.5. DB2 EXPRESS-C 199 de información- tales como formularios en línea impuesto sobre la renta. Con el avance de XML nativo único apoyo proporcionado por DB2, las ventajas dexmlseextiendealabasededatoseincluyenlacapacidaddeevolucionar fácilmente un esquema XML en cuestión de minutos para que coincida con la aplicación cambia sin actualizar el esquema de tabla existente o los datos XML existentes en esa tabla. VariosproveedoresdeSQLyelapoyodelaAPI Las empresas no pueden permitirse el lujo de tener sus equipos de desarrollo de aplicaciones luchando con desconocidos sintaxis SQL y las API de base de datos de extranjeros. Con DB2, desarrolladores de aplicaciones no DB2 puede realmente comenzar a ejecutar gracias al apoyo entre proveedores de muchas API como JDBC, ODBC ynet., Asícomo el apoyo ricos de SQL, lasfuncionesdeunproveedordebasededatos,ytiposdedatos Herramientas de DB2 Centro de Control(Control Center) La herramienta primaria para la administración de DB2 es el Centro de Control,ilustradoenlafigura7.8delapágina200. El Centro de Control es una herramienta de administración centralizada que te permite: Verelsistema,instancias,basesdedatosyobjetosdelabasededatos; Crear, modificar y manejar objetos de las bases de datos; Lanzar otras herramientas gráficas de DB2. HayvariasformasdelanzarelCentrodeControl: Navegando a través del menú de inicio de Windows. Ejecutando db2cc en la línea de comandos. DandocliceneliconodeelCentrodeControlenlabarradeherramientas de cualquier otra herramienta gráfica de DB2.

222 200 CAPÍTULO 7. INTRODUCCIÓN AL DB2 Figura 7.8: Centro de Control.

223 7.5. DB2 EXPRESS-C 201 Desde el icono DB2 en Windows como se muestra en la figura 7.9 de lapágina 201(Daclicsobre eliconoverdedb2yseleccionalaopción Central de Control de DB2). Figura 7.9: Lanzando Centro de Control de DB2 desde la bandeja de Windows. El Editor de Comandos DB2 Usando el Editor de Comandos DB2(editor de comandos), se pueden ejecutar comandos DB2, sentencias SQL y XQuery, analizar el plan de ejecución de una sentencia, y ver o actualizar resultados de consultas. Enlafigura7.10delapágina202semuestraeleditordecomandosDB2. En el área de entrada, puedes ingresar varias sentencias, tan largas hasta que se presente el caracter de finalización. Si se presiona el botón ejecutar, las sentencias serán ejecutadas una después de otra. Si tú seleccionas explícitamente una sentencia, sólo esa sentencia será ejecutada. Debe existir una conexión a la base de datos para devolver sentencias SQL, sin embargo, una de esas sentencias puede ser una sentencia de conexión. LanzandoelEditordeComandos SepodrálanzarelEditordeComandos de varias formas: DesdeelmenúdeiniciodeWindows:

224 202 CAPÍTULO 7. INTRODUCCIÓN AL DB2 Figura 7.10: El Editor de Comandos DB2.

225 7.5. DB2 EXPRESS-C 203 Start-> Programs-> IBM DB2-> DB2COPY1(Default)-> Command Line Tools-> Editor de Comandos. Desde la línea de comandos, escribe db2ce. Desde el menú herramientas en El Centro de Control. Dentro de el Centro de Control. Dar clic derecho en el icono de la base de datos SAMPLE en el árboldeobjetosdelpaneldeelcentrodecontrolyseleccionael elemento del menu Query. Siempre que un objeto consultable esté seleccionado(base de datos, tabla,etc.),sepuedelanzareleditordecomandosdandoclicen la liga de Query que está en el panel de detalle de objetos de el Centro de Control. DesdeelCentrodeControl,darcliceneliconodeEditordeComandos en la barra de herramientas como muestra la figura 7.11 de la página 203. Figura7.11:EliconoEditordeComandosenElCentrodeControl. SQLAssistWizard Lafigura7.12delqpágina204muestraelSQLAssist Wizard. Es bastante claro su uso. Primero indica el tipo de sentencia SQL para la cual necesitas asistencia (SELECT, INSERT, UPDATE, DELETE).

226 Dependiendo de que sentencia se haya elegido, diferentes opciones aparecerán. EnlapartebajadelaventanaveráscómolasentenciaSQLesconstruidaa partir de diferentes elecciones en el asistente. Figura 7.12: El SQL Assist.

227 Capítulo 8 RAD for WebSphere 8.1. QuéesRAD6.0? Rational Application Developer es el cambio de marca de WebSphere Studio Application Developer. IBM construyó WebSphere Studio Application Developer en la parte superior deeclipse - un proyecto decódigo abiertopara desarrollar un entorno abierto, extensible, de desarrollo integrado(ide) y personalizado que para el desarrollo J2EE específicamente para WebSphere. Con la adquisición de la familia de productos de Rational de IBM ha ampliado WebSphere Studio Application Developer y la cartera de Rational para incluir una familia totalmente integrada de productos. IBM Rational Software Development Platform, que permitirá a los desarrolladores y equipos de proyecto para colaborar en la proyecto completo ciclo de vida. AceleraeldesarrollodeJ2EEyPortalymejoralacalidaddelcódigo.IBM R Rational Application Developer Eclipse se extiende con un rápido desarrollo. Ayuda a los desarrolladores de Java a diseñar, desarrollar, ensamblar, probar y desplegar el perfil Java/J2EE de alta calidad, Portal Web, servicios Web y aplicaciones SOA. IBM Rational Application Developer es integrada y optimizada para IBM WebSphere Application Server e IBM WebSphere Portal Server. Además incluye entornos de prueba para estos productos. Utiliza sólidas capacidades para crear aplicaciones SOA, incluyendo la capacidad de crear automáticamente SOA, componentes necesarios tales como WSIL y archivos 205

228 206 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER WSDL. Rational Application Developer incluye herramientas para mejorar la calidad del código: Una herramienta de perfiles de Java ayuda a analizar el rendimiento de una aplicación, uso de memoria y problemas de los subprocesos. Una herramienta de análisis de software identifica patrones y antipatronesenelcódigodelaaplicación,ycomparaelcódigodenormasde codificación. Para administrar el código fuente, se configurar Rational Application Developer para trabajar con un sistema de repositorio. El producto se entrega con conectores para: IBM Rational ClearCase, para el control de código fuente. IBM Rational ClearQuest para la gestión de defectos. IBM Rational Team Concert cliente que puede ser utilizado para control decódigofuenteydegestióndedefectos. El banco de trabajo incluye herramientas para la implementación de una aplicación a un servidor local o remoto. Contiene los entornos de prueba para IBM WebSphere Application Server e IBM WebSphere Portal. También es compatible con Apache Tomcat. El uso de estas herramientas utilizando el entorno de desarrollador de software permite probar la aplicación a nivel local antes de publicarlo en un servidor de producción. Debido a que Rational Application Developer está basado en Eclipse, puede soportar los plug-ins para Eclipse, así como plug-ins específicamente para las herramientas de Rational Rational Software Development Platform IBM Rational Software Development Platform es un entorno común de desarrollo basado en Eclipse que es compartida por los siguientes productos:

229 8.1. QUÉESRAD6.0? 207 IBM R Rational R WebDeveloper IBM R Rational R ApplicationDeveloper IBM R Rational R SoftwareModeler IBM R Rational R SoftwareArchitect IBM R RationalTester R funcional IBM R Rational R PerformanceTester Con la instalación de Rational Software Architect, se tiene una versión completa de Rational Application Developer. Enlafigura8.1delapágina207sepuedeobrservarelentornodetrabajo del Rational Software Development Platform. Figura 8.1: RAD. Entorno de Trabajo.

230 208 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER Rational Application Developer for WebSphere Software se extiende de Eclipse Ayuda a los desarrolladores de Java a diseñar rápidamente, desarrollar, ensamblar, probar y desplegar el perfil Java/J2EE de alta calidad, Portal Web, servicios Web y aplicaciones SOA. Aumenta la productividad y reduce los ciclos de desarrollo y pruebas, ya que extiende el entorno Eclipse 3.2. Características de un proceso de instalación flexibles diseñados para proporcionar a los desarrolladores con sólo las funciones que necesitan. Está integrada y optimizada para IBM WebSphere Application Server e IBM WebSphere Portal Server y incluye productos para entornos de prueba. Acelera J2EE, portales, servicios web y desarrollo de aplicaciones SOA. Acorta la curva de aprendizaje de Java a través del diseño visual, con auto-sincronizado modelo de código. Utiliza las capacidades robustas para crear aplicaciones SOA, incluyendo la capacidad de crear automáticamente los componentes necesarios SOA, comolosarchivoswsdlywsil. Aplica técnicas visuales de desarrollo de portales para acelerar el desarrollo. Le permite colaborar y compartir recursos de todo el equipo utilizando una función de control de versiones de Rational ClearCase LT, la integración con otras facetas del ciclo de vida-incluidos los requisitos, gestión del cambio y la orientación del proceso. Simplifica el desarrollo de páginas Web y la gestión. Sistemas operativos soportados: Linux, Windows. Eclipse 3.2 Integración Eclipse 3.2 es un entorno abierto que trae la integración y extensibilidad para el entorno de desarrollo.

231 8.1. QUÉESRAD6.0? 209 Extiende Eclipse 3.2 con herramientas de desarrollo visual, JSF, y soporte de IBM WebSphere. Interfaz de usuario común. Gestión de proyectos. Vistas disponibles: lista de tareas, Navigator, Contorno, enlaces, etc. Perspectivas Personalizable. Ayuda de escritorio y los marcos. Código de Ayuda. Servicios de depuración. Productividad Instalación flexible: permite el acceso sólo a las características que usted necesita. Hojas de trucos para los patrones de desarrollo común. Las plantillas de aplicación y la biblioteca de plantillas. Procedimientos y tutoriales basados en escenarios. Introducción y guía de instalación Desarrollo Web Las herramientas RAD y asistentes llevan a todos los aspectos del desarrollo Web en una interfaz común y permiten a los desarrolladores con diversos antecedentes técnicos, e incluso aquellos no familiarizados con Java, para construir rápidamente las aplicaciones. JavaServer Faces support: aplicación JSF de referencia, componentes JSF y herramientas visuales. JSF informe basado en la visualización de componentes para incrustar informes en las aplicaciones Web.

232 210 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER Diseño Web del sitio para administrar y analizar visualmente los sitios Web. JSP y servlets asistentes Struts support. Plantillas y muestras. Soporte para HTML, DHTML, XHTML, CHTML, WML, Struts y etiquetas visuales personalizadas. Diseñador de páginas con round-trip para editar capacidad de diseño WYSIWYG de páginas JSP. ActivaladepuracióndescriptsdeJavaScriptyVisualBasic R Script. Crystal Report: para la elaboración de informes de datos visuales. Prueba y licencia de desarrollo de Crystal Enterprise Server para la presentación de informes en toda la empresa Desarrollo de Java Crear aplicaciones ricas utilizando una variedad de editores visuales, los asistentes y la generación de código, la fusión y herramientas de re-factoring. Entorno de desarrollo integrado. Java Runtime Environment configurable(jre). Java Development Kit(JDK), la versión 5 de apoyo. Bloc de notas para probar fragmentos de código. Re-factoring. Modelado visual de código con sincronización automática de código y modelos.

233 8.1. QUÉESRAD6.0? Editor Visual de Java EditorVisualparaJavaconmanejodeeventosdeJavaparacrearinterfaces gráficas de aplicaciones de usuarios con tecnolgía AWT, Swing, y los componentes SWT, incluye Javadoc Diseño de componentes JSF. Construcción de GUI Swing. SWT GUI construcción Servicios de Desarrollo Web Servicios integrales de Internet y herramientas de desarrollo SOA para simplificar y automatizar el proceso de construcción de WS-I, además servicios Web compatibles con las aplicaciones. Los servicios Web para acelerar el desarrollo de servicios. SoporteparaUDDI2.0yv3,SOAP1.1,WSDL1.1,WSIL,J2EE1.4,y AXIS. Crear, validar y detectar servicios web compatibles con WS-I. Servicios Web de localización basados en WSIL. Descubrir y publicar servicios para el Registro de empresas UDDI. Crear o transformar los servicios Web a los artefactos existentes, tales como Java beans, archivos DADX y componentes EJB. Construir artefactos envolviendo en SOAP ydescribe en WSDL. Editor de WSDL. Desarrollar aplicaciones web de servicios para clientes a partir de muestras. Implementación y prueba de servicios Web en WebSphere Application Server o entornos de prueba Tomcat.

234 212 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER Generar z-series nativos y los servicios Web COBOL. Web services Explorer. Proceso de orientación para el desarrollo de aplicaciones SOA XML para el Desarrollo Herramientas completa para crear, editar y transformar documentos XML y la integración de datos relacionales y XML. Esquemas y herramientas XML. XML herramientas de autor - editor de XML, DTD editor, editor de esquemas XML. Herramientas de transformación XML: editor de mapas XML a XML, generador XSLT. Base de datos de herramientas de mapeo XML: constructor visual de DADparalaasignacióndeRDBaXML,laescrituraDAD. XSL editor. Xpath asistente Desarrollo de Base de datos Vistas, asistentes y editores, que sea fácil de desarrollar y probar los elementos de las aplicaciones Base de datos Wizards para simplificar la creación de bases de datos. SoporteparaIBMDB2,Informix,NubesIBM,Microsoft R SQLServer Oracle 9i, y Sybase. DB Explorer para navegar o importar esquemas de bases de datos. Vistadedatosparacrearytrabajarconesquemasdebasededatos.

235 8.1. QUÉESRAD6.0? 213 Generador de consultas SQL y asistente para crear de forma visual y ejecutar sentencias SQL. Relational Schema Center: tablas de mapa para base de datos relacional axml. Mapeo de obletos a relacional(top-down, meet-in-the-middle and bottomup). Asignación de wizard. Generar y poner a prueba de Acceso a Documentos Definición(DAD). Generador de procedimiento almacenado. SQLJ support Desarrollo de Portales Herramientas viuales para el desarrollo de portales y WebSphere Portal que es el entorno de prueba para apoyar el desarrollo y testeo de portales individuales y aplicaciones completas. Visual desarrollo de portlets y WebSphere Portal ambiente de la unidad de prueba. Desarrollo visual de aplicaciones de portal y la edición de los temas y skins que controlan su apariencia. Soporte integrado para JSF y el framework Struts. Desarrollo de negocios portlet utilizando IBM WebSphere Portal Application Integration(SAP, Seibel). Plantillas de portlet. SoporteparaIBMPortletAPIyelJSR168PortletAPIestándar.

236 214 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER Desarrollo J2EE Soporte Integral para el modelo de programación J2EE acelerando el desarrollo de componentes EJB y pruebas. Concurrente para J2EE 1.2, 1.3, 1.4 especificaciones. ApoyoaServlet2.2,2.3,2.4yJSP1.1,1.2,2.0. SoporteparaEJB TM 1.1,2.0,2.1. Soporte para Java Message Service (JMS) y Lenguaje de consulta de EJB. ApoyoaJAR,EAR,WAR. Asistentesparalacreacióndebeansdesesiónybeansdeentidad. Apoyo a la persistencia administrada por beans(bmp) y la persistencia gestionada por contenedor(cmp). Soporte para el desarrollo de EJB utilizando anotaciones Java(etiquetas Xdoclet foro). O/RMapping(dearribahaciaabajoydeabajoarriba). Generated EJB Test Client EJB. Apoyo alacreación deaplicaciones J2EE con JDK 5,dirigido aweb- Sphere Application Server v5.1, v6.0, v6.1. EJB cliente JAR apoyo para automatizar la creación de clientes EJB. EJB fragmento para simplificar la generación de código EJB de acceso alcliente Equipo de Desarrollo Integración con IBM Rational ClearCase y Rational ClearQuest permite una amplia gama de operaciones de gestión de cambio que se realiza directamente desde el entorno de desarrollo, proporciona una visión integrada de los proyectos y aumenta tanto la productividad del equipo y la colaboración.

237 8.1. QUÉESRAD6.0? 215 Conectable repositorios de control de versiones. Adaptadores para el sistema de versiones concurrentes. Adaptadores para Rational ClearCase. Rational ClearCase LT Server incluido. Espacio de nombres de versiones de la integración con Rational ClearCase LT. RUP Developer Configuration Especificación de Arquitectura. UML UMLEditorVisualparaJavayEJBparavisualizaryeditarloscomponentesdeJavayJ2EE EditosdediagramasdeclasesparaclaseseinterfacesdeJavayEJBs. Vistadelastablasdedatosysoportedeldiagrama Diagramas de secuencia. La revisión de código(análisis estático): Proporciona sugerencias Quick Fix y permite la personalización de las normas, a través de reglas de plantillas Pruebas e Implementación EntornodepruebaparalosHTMLyJSP,Servlets. EJB universal test client. Ant secuencias de comandos y un marco de pruebas JUnit. TCP/ IP Monitor para supervisar las solicitudes y respuestas entre un navegador y un servidor de aplicaciones. Las herramientas automatizadas para administrar instancias del servidor y las configuraciones de servidor, incluyendo la creación automática y la presentación de secuencias de comandos wsadmin.

238 216 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER Prueba de diferentes entornos en tiempo de ejecución local o remota. TPTP perfiles de rendimiento y la explotación. Herramientas mejoradas de análisis de tiempo de ejecución: la detección de pérdida de memoria, detección de bloqueo de rosca, puntas de prueba definidos por el usuario, la cobertura de código Asistencia Técnica de Servidor Unidad Integrada entorno de prueba es compatible con las pruebas locales y remotas para agilizar las pruebas de aplicaciones y aumentar la calidad del código. WebSphere Application Server entornos de prueba de la unidad: v5, v5.1, v6.0, V.6.1(WebSphere Application Server v. 6.1 incluye para la prueba). WebSphere Application Server- Express entornos de prueba de la unidad: v5.0, v5.1, v6.0. Tomcat Jakarta Yakarta Tomcat. WebSphere Portal Server entornos unidad de prueba: v5.1, y v. 6.0(Web- Sphere Portal Server v. 6.0 para la prueba) WebSphere Application Server Qué es WebSphere? IBM WebSphere es una plataforma de IBM para desarrollo y gestión de sitios web y aplicaciones destinadas al comercio electrónico. WebSphere es una plataforma de Software para e-business. WebSphere posee una amplia gama de servidores y aplicaciones para brindar cualquier tipo de capacidades de negocio y ayuda al desarrollo de las aplicaciones. La Plataforma de Software WebSphere está compuesta por un conjunto de herramientas de e-business integradas y basadas en estándares abiertos de mercado.

239 8.2. WEBSPHERE APPLICATION SERVER 217 WebSphere es ideal para todas las fases de un e-business, comenzando desde pequeños sitios Web a mega sitios. La plataforma de software WebSphere proporciona una completa gama de habilidades que permiten a los clientes la entrega de altos niveles de servicio atodoslosvisitantesdelsitioenlaweb.administracargaspicoenlosservidores web, mantiene la disponibilidad del sitio en la web, y reconoce contenido de solicitudes de la web para calidad-de-servicio mejor. También permite la diferenciación de niveles de servicio con base en el tipo de cliente. La creciente complejidad de los aplicativos de e-business crea muchos desafíos. Los aplicativos deben ser escalables, fiables y se deben integrar completamente con los sistemas back-end para proteger las inversiones existentes. El equipo de desarrollo debe poseer las más actualizadas habilidades de programación para acompañar el ciclo de vida del e-business. Se necesita una plataforma completa, escalable y flexible que proporcione soporte a la construcción y diseminación de aplicativos de e-business. Las soluciones de software WebSphere ofrecen las herramientas necesarias para alcanzar los objetivos de e-business Que es WebSphere Application Server? El WebSphere Application Server representa una familia de software para servidores de aplicaciones. Permite a las empresas responder a los mercados cambiantes sin migrar a tecnologías diferentes preservando las inversiones hechas en tecnología previamente disponible en la organización, soporta normas abiertas vigentes en las organizaciones, proporciona soporte pleno a la plataformaabiertajava2yjava2enterpriseedition(j2ee)ytambiénproveesoporte para servicios bajo normas abiertas en la Web[4]. WebSphere Application Server, es una plataforma de alto desempeño y extrema escalabilidad para diseminar aplicativos dinámicos de e-business, proporciona las funciones esenciales de e-business de manipulación de transacciones y ampliación de datos back-end del negocio y aplicativos para la Web. La plataforma ayuda a construir aplicativos que ejecutan esas funciones con seguridad sólida, fiabilidad y escalabilidad.

240 218 CAPÍTULO 8. RATIONAL APPLICATION DEVELOPER Figura 8.2: WebSphere para e-bussines. WebSphere Application Server Como Plataforma Para el Comercio Electrónico Brinda un soporte amplio para aplicaciones de comercio electrónico. Se caracteriza por su flexibilidad para adaptarse a cambios en los mercados y en los objetivos comerciales. Construyendo aplicaciones en esta robusta plataforma, se pueden integrar diversos ambientes de las IT(Tecnología de Información), para aprovechar al máximo las inversiones existentes. Se pueden instalar aplicaciones comerciales existentes para su acceso desde la Web y escalar estas aplicaciones para adecuarlas a las necesidades de los cambiosydelademanda. Enlafig.8.2delapág.218sepuedeobservarlaplataformadelSoftware de WebSphere para e-bussines. Application Server - Advanced Edition La Edición Avanzada es la oferta del principal servidor de aplicativo dirigido a desarrolladores profesionales de tecnología Java que necesitan funcionalidad de servicios J2EE y Web para aplicativos dinámicos de e-business.

SistemaWebconAccesoaBasesdeDatos Multiplataforma a Través de Teléfonos Celulares

SistemaWebconAccesoaBasesdeDatos Multiplataforma a Través de Teléfonos Celulares Universidad Nacional del Nordeste Facultad de Ciencias Exactas, Naturales y Agrimensura Trabajo Final de Aplicación SistemaWebconAccesoaBasesdeDatos Multiplataforma a Través de Teléfonos Celulares Sergio

Más detalles

Lic. Sofia J. Vallejos

Lic. Sofia J. Vallejos Lic. Sofia J. Vallejos Marco Conceptual Comercio Electrónico y Comercio Electrónico Móvil. Qué es la Computación Ubicua o Pervasiva? Evolución de la Telefonía Móvil. Herramienta Utilizadas J2ME (Java para

Más detalles

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red. Comercio electrónico. (e-commerce) Las empresas que ya están utilizando la red para hacer comercio ven como están cambiando las relaciones de la empresa con sus clientes, sus empleados, sus colaboradores

Más detalles

CAPÍTULO 1 Instrumentación Virtual

CAPÍTULO 1 Instrumentación Virtual CAPÍTULO 1 Instrumentación Virtual 1.1 Qué es Instrumentación Virtual? En las últimas décadas se han incrementado de manera considerable las aplicaciones que corren a través de redes debido al surgimiento

Más detalles

e-commerce vs. e-business

e-commerce vs. e-business Formas de interactuar en los negocios e-commerce vs. e-business Día a día debemos sumar nuevas palabras a nuestro extenso vocabulario, y e-commerce y e-business no son la excepción. En esta nota explicamos

Más detalles

Sistema Web con Acceso a Bases de Datos Multiplataforma a Través de Teléfonos Celulares

Sistema Web con Acceso a Bases de Datos Multiplataforma a Través de Teléfonos Celulares TELEPROCESO Y SISTEMAS DISTRIBUIDOS Sistema Web con Acceso a Bases de Datos Multiplataforma a Través de Teléfonos Celulares L I C. S E R G I O A N D R É S S O T O Guía de la Presentación Marco Conceptual

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Las TIC: una apuesta para la mejora de la educación en la Comunidad de Madrid

Las TIC: una apuesta para la mejora de la educación en la Comunidad de Madrid Las TIC: una apuesta para la mejora de la educación en la Xavier Gisbert da Cruz Director General de Mejora de la Calidad de la Enseñanza Consejería de Educación 1 Las TIC: una apuesta para la mejora de

Más detalles

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas Capítulo I Definición del problema y objetivos de la tesis 1.1 Introducción En la actualidad Internet se ha convertido en una herramienta necesaria para todas las personas ya que nos permite realizar diferentes

Más detalles

LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS

LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS Los clientes compran un servicio basandose en el valor que reciben en comparacion con el coste en el que incurren. Por, lo tanto, el objetivo a largo plazo

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets 1 de 12 Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets 3 Bienvenida. 4 Objetivos. 5 Interacciones de Negocios

Más detalles

Sistemas de información

Sistemas de información Sistemas de información Es un conjunto integrado de componentes que almacenan, recolectan y procesan datos, para la entrega de la información, el conocimiento y los productos digitales. Las empresas comerciales

Más detalles

LA SOCIEDAD DE LA POSTINFORMACION

LA SOCIEDAD DE LA POSTINFORMACION LA SOCIEDAD DE LA POSTINFORMACION Rosmery Arroyave Gutiérrez 1 Desde hace algunas décadas el surgimiento de las tecnologías de información y de comunicación ha ocasionado cambios de paradigmas en todo

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

Introducción a las redes de computadores

Introducción a las redes de computadores Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes

Más detalles

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva

Resumen de la solución SAP SAP Technology SAP Afaria. Gestión de la movilidad empresarial para mayor ventaja competitiva de la solución SAP SAP Technology SAP Afaria Gestión de la movilidad empresarial para mayor ventaja competitiva Simplificar la gestión de dispositivos y aplicaciones Simplificar la gestión de dispositivos

Más detalles

Introducción En los años 60 s y 70 s cuando se comenzaron a utilizar recursos de tecnología de información, no existía la computación personal, sino que en grandes centros de cómputo se realizaban todas

Más detalles

CREACIÓN DE UN DEPARTAMENTO DE RELACIONES PÚBLICAS PARA LOS ALMACENES EL CHOCHO Y EL CAMPEÓN

CREACIÓN DE UN DEPARTAMENTO DE RELACIONES PÚBLICAS PARA LOS ALMACENES EL CHOCHO Y EL CAMPEÓN PROPUESTA: CREACIÓN DE UN DEPARTAMENTO DE RELACIONES PÚBLICAS PARA LOS ALMACENES EL CHOCHO Y EL CAMPEÓN Cómo sabemos cada día las empresas se enfrentan a un mundo globalizado, con retos empresariales,

Más detalles

ING. YURI RODRIGUEZ ALVA

ING. YURI RODRIGUEZ ALVA Historia y evolución de las Aplicaciones. Acerca de Cloud Computing o Computación para la Nube. Tipos de Aplicaciones para la Nube. Ventajas y desventajas de Cloud Computing Uso y Aplicaciones de Cloud

Más detalles

Plan de ahorro en costes mediante telefonía IP

Plan de ahorro en costes mediante telefonía IP Plan de ahorro en costes mediante telefonía IP Sección de Telefonía IP IngeniaTIC Desarrollo S.L. PLAN DE AHORRO EN COSTES MEDIANTE TELEFONÍA IP Sección de Telefonía IP Introducción El presente documento

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

SUPLEMENTO EUROPASS AL TÍTULO

SUPLEMENTO EUROPASS AL TÍTULO SUPLEMENTO EUROPASS AL TÍTULO DENOMINACIÓN DEL TÍTULO Técnico Superior en Desarrollo de Aplicaciones Multiplataforma --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Más detalles

IMPACTO DE LAS TICS EN LA SALUD

IMPACTO DE LAS TICS EN LA SALUD IMPACTO DE LAS TICS EN LA SALUD Luis Becerra Fernando González Joaquín Valenzuela Marcos Cedeño INTRODUCCIÓN Los Sistemas de Información enfocados al área de Salud han venido desarrollándose de forma autónoma,

Más detalles

2.1 Clasificación de los sistemas de Producción.

2.1 Clasificación de los sistemas de Producción. ADMINISTRACION DE OPERACIONES Sesión 2: La Administración de operaciones II Objetivo específico 1: El alumno conocerá la clasificación de los sistemas de producción, los sistemas avanzados de manufactura

Más detalles

ANEXO 26-A COMITÉ PERMANENTE DE INTERPRETACIÓN SIC N 32 ACTIVOS INTANGIBLES COSTOS DE SITIOS WEB. (Modificada en 2008) (IV Difusión)

ANEXO 26-A COMITÉ PERMANENTE DE INTERPRETACIÓN SIC N 32 ACTIVOS INTANGIBLES COSTOS DE SITIOS WEB. (Modificada en 2008) (IV Difusión) ANEXO 26-A COMITÉ PERMANENTE DE INTERPRETACIÓN SIC N 32 ACTIVOS INTANGIBLES COSTOS DE SITIOS WEB (Modificada en 2008) (IV Difusión) Interpretación SIC-32 Activos Intangibles - Costos de Sitios Web Referencias

Más detalles

Tema II Comercio Electrónico 2.1 Concepto de e-commercee

Tema II Comercio Electrónico 2.1 Concepto de e-commercee UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE CONTADURIA Y ADMINISTRACIÓN Construcción de sitios web comerciales Tema II Comercio Electrónico 2.1 Concepto de e-commercee Presenta: ING. y M.A.. RENÉ

Más detalles

El cambio en la adquisición de soluciones informáticas. El cambio en la adquisición de soluciones informáticas

El cambio en la adquisición de soluciones informáticas. El cambio en la adquisición de soluciones informáticas El cambio en la adquisición de soluciones informáticas El cambio en la adquisición de soluciones informáticas Mayo de 2014 El nuevo comprador de tecnología... y la nueva mentalidad de adquisiciones Hoy

Más detalles

Comunicación: Herramientas Informáticas de Apoyo a la Educación: Experiencias. Autor: Ing. Hernán Mariño hernanmarino@uca.edu.ar

Comunicación: Herramientas Informáticas de Apoyo a la Educación: Experiencias. Autor: Ing. Hernán Mariño hernanmarino@uca.edu.ar Comunicación: Herramientas Informáticas de Apoyo a la Educación: Experiencias. Autor: Ing. Hernán Mariño hernanmarino@uca.edu.ar Pontificia Universidad Católica Argentina Facultad de Ciencias Fisicomatemáticas

Más detalles

CRM Funciona en la práctica?

CRM Funciona en la práctica? e n t r e v i s t a CRM Funciona en la práctica? Sara Gallardo M. Quienes han iniciado el viaje con una estrategia enfocada en el cliente y no en sus servicios, han demostrado alcanzar una mejor rentabilidad,

Más detalles

PLAN DIRECTOR DE SERVICIOS MÓVILES DE VALOR AÑADIDO EN LA ADMINISTRACIÓN PÚBLICA

PLAN DIRECTOR DE SERVICIOS MÓVILES DE VALOR AÑADIDO EN LA ADMINISTRACIÓN PÚBLICA PLAN DIRECTOR DE SERVICIOS MÓVILES DE VALOR AÑADIDO EN LA ADMINISTRACIÓN PÚBLICA Manager LaneFour Strategy & Management Manager LaneFour Strategy & Management Palabras clave Plan Director, Mobile Government/Administración

Más detalles

Introducción. Metadatos

Introducción. Metadatos Introducción La red crece por momentos las necesidades que parecían cubiertas hace relativamente poco tiempo empiezan a quedarse obsoletas. Deben buscarse nuevas soluciones que dinamicen los sistemas de

Más detalles

Unidad III. Software para la administración de proyectos.

Unidad III. Software para la administración de proyectos. Unidad III Software para la administración de proyectos. 3.1 Herramientas de software para administrar proyectos. El software de administración de proyectos es un concepto que describe varios tipos de

Más detalles

Control del Stock, aprovisionamiento y distribución a tiendas.

Control del Stock, aprovisionamiento y distribución a tiendas. Control del Stock, aprovisionamiento y distribución a tiendas. Tan importante como el volumen de ventas y su rentabilidad, el control del stock supone uno de los pilares fundamentales en el éxito de una

Más detalles

Estrategia de Cómputo en la Nube. Servicios en la Nube

Estrategia de Cómputo en la Nube. Servicios en la Nube Estrategia de Cómputo en la Nube Servicios en la Nube Computación para la Nube? Tecnología informática por la que se proporcionan software y servicios a través de la Internet. El nombre Cloud Computing

Más detalles

PROCEDIMIENTO ESPECÍFICO. Código G083-01 Edición 0

PROCEDIMIENTO ESPECÍFICO. Código G083-01 Edición 0 Índice 1. TABLA RESUMEN... 2 2. OBJETO... 2 3. ALCANCE... 2 4. RESPONSABILIDADES... 3 5. ENTRADAS... 3 6. SALIDAS... 3 7. PROCESOS RELACIONADOS... 3 8. DIAGRAMA DE FLUJO... 4 9. DESARROLLO... 5 9.1. DEFINICIÓN...

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

La Virtualización de la Educación Superior

La Virtualización de la Educación Superior Docencia Universitaria, Vol III, Año 2002, Nº 1 SADPRO - UCV Universidad Central de Venezuela La Virtualización de la Educación Superior Autor: José Silvio Colección Respuestas Ediciones IESALC UNESCO,

Más detalles

Software de Simulación aplicado a entornos de e-learning

Software de Simulación aplicado a entornos de e-learning Software de Simulación aplicado a entornos de e-learning 2009 Laboratorio de Investigación de Software Universidad Tecnológica Nacional Facultad Regional Córdoba Titulo del Proyecto Software de Simulación

Más detalles

Marketing One to One e Internet

Marketing One to One e Internet Marketing One to One e Internet Paula Andrea Brienza Objetivos del Trabajo Analizar el desarrollo de una estrategia de Marketing One to One y las aplicaciones de Internet en el área de negocios, con el

Más detalles

Laboratorio III de Sistemas de Telecomunicaciones Departamento de Telemática

Laboratorio III de Sistemas de Telecomunicaciones Departamento de Telemática Proyecto: Interoperabilidad entre una Red de Telefonía IP y una red de Radio VHF Objetivos Lograr la interoperabilidad de clientes de VoIP con clientes de Radio VHF Implementar el servicio de Call Center

Más detalles

Tema: Gestión del Conocimiento y Comercio Electrónico. Profesor: Lic. Rosa Oralia Saenz Hernández.

Tema: Gestión del Conocimiento y Comercio Electrónico. Profesor: Lic. Rosa Oralia Saenz Hernández. Area Académica: Administración. Tema: Gestión del Conocimiento y Comercio Electrónico Profesor: Lic. Rosa Oralia Saenz Hernández. Periodo: Agosto Noviembre 2011. Tema: Knowledge Management and Electronic

Más detalles

INTERNET LA RED WAN MAS GRANDE

INTERNET LA RED WAN MAS GRANDE En sus principios, Internet era utilizada exclusivamente para investigaciones científicas, educativas y militares. En 1991, las reglamentaciones cambiaron para permitir que las empresas y los usuarios

Más detalles

Sistemas de Gestión de Calidad. Control documental

Sistemas de Gestión de Calidad. Control documental 4 Sistemas de Gestión de Calidad. Control documental ÍNDICE: 4.1 Requisitos Generales 4.2 Requisitos de la documentación 4.2.1 Generalidades 4.2.2 Manual de la Calidad 4.2.3 Control de los documentos 4.2.4

Más detalles

Código del programa: PEMDE. Programa Experto en MANEJO DE DATOS CON EXCEL. Modalidad: Virtual. Descripción del programa

Código del programa: PEMDE. Programa Experto en MANEJO DE DATOS CON EXCEL. Modalidad: Virtual. Descripción del programa Código del programa: PEMDE Programa Experto en MANEJO DE DATOS CON EXCEL Modalidad: Virtual Descripción del programa 1 Presentación del programa Justificación Microsoft Excel es la herramienta de manejo

Más detalles

Escuela Técnica Superior de Ingeniería Informática

Escuela Técnica Superior de Ingeniería Informática Escuela Técnica Superior de Ingeniería Informática Máster en Ingeniería Informática aplicada a la Industria, a la Ingeniería del Software y a los Sistemas y Tecnologías de la Información GUÍA DOCENTE DE

Más detalles

Tecnología IP para videovigilancia... Los últimos avances han hecho posible conectar cámaras directamente a una red de ordenadores basada en el

Tecnología IP para videovigilancia... Los últimos avances han hecho posible conectar cámaras directamente a una red de ordenadores basada en el para videovigilancia....... Los últimos avances han hecho posible conectar cámaras directamente a una red de ordenadores basada en el protocolo IP. La tecnología de las cámaras de red permite al usuario

Más detalles

INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas

INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas 1 INTRODUCCIÓN. Una visión global del proceso de creación de empresas Cuando se analiza desde una perspectiva integral el proceso de

Más detalles

Otra característica del e-learning es que el alumno no se encuentra atado a las habilidades y capacidades del instructor

Otra característica del e-learning es que el alumno no se encuentra atado a las habilidades y capacidades del instructor Ventajas del e-learning Autor: Lic. Juan Ignacio Accogli Director del Portal www.e-ntelequia.com E-mail: ignacio@e-ntelequia.com La educación moderna se ha visto favorecida en los últimos años con la aparición

Más detalles

En los últimos años, se ha presentado una enorme demanda por servicios portátiles,

En los últimos años, se ha presentado una enorme demanda por servicios portátiles, Capítulo 1 Introducción En los últimos años, se ha presentado una enorme demanda por servicios portátiles, a los que se les ha llamado tecnologías móviles, este repentino crecimiento de tecnologías ha

Más detalles

OLIMPO Servidor Universal

OLIMPO Servidor Universal OLIMPO Servidor Universal Documento 20050714/01 Fecha Creación Julio 2005 Fecha Última Revisión Agosto 2007 Versión de documento 2.0 1/7 Visión Global Desde el año 1984, en IGT Microelectronics hemos ofrecido

Más detalles

Unidad 2. Bases de la Auditoria Administrativa de la Empresa

Unidad 2. Bases de la Auditoria Administrativa de la Empresa Unidad 2 Bases de la Auditoria Administrativa de la Empresa Bases de la Auditoria Administrativa de la Empresa En este capítulo vamos a dejar sentado las bases fundamentales de!a Auditoría Administrativa,

Más detalles

ESPACIOS DE COMUNICACIÓN VIRTUAL

ESPACIOS DE COMUNICACIÓN VIRTUAL 1 ESPACIOS DE COMUNICACIÓN VIRTUAL La comunicación es la base de la formación en un entorno virtual que facilita las necesidades esenciales de un buen aprendizaje. El entorno virtual desarrolla la comunicación

Más detalles

Fundamentos de la Mercadotecnia

Fundamentos de la Mercadotecnia Fundamentos de la Mercadotecnia 1 Sesión No. 12 Nombre: La mercadotecnia virtual Objetivo de la sesión: Al concluir la sesión el alumno conocerá el uso y valor de la mercadotecnia virtual. Contextualización

Más detalles

Guía de los cursos. Equipo docente:

Guía de los cursos. Equipo docente: Guía de los cursos Equipo docente: Dra. Bertha Patricia Legorreta Cortés Dr. Eduardo Habacúc López Acevedo Introducción Las organizaciones internacionales, las administraciones públicas y privadas así

Más detalles

Artículos > Cuál es el Futuro de los Sistemas ERP. Artículo. Cuál es el futuro de los sistemas ERP?

Artículos > Cuál es el Futuro de los Sistemas ERP. Artículo. Cuál es el futuro de los sistemas ERP? Artículo Cuál es el futuro de los sistemas ERP? 1 Contenido Computación en la nube 3 Integración.. 4 Dispositivos móviles 4 2 Computación en la Nube, Integración, Dispositivos móviles A pesar que los sistemas

Más detalles

pymegnu v2.0 PRESENTACIÓN DE PRODUCTOS

pymegnu v2.0 PRESENTACIÓN DE PRODUCTOS PRESENTACIÓN DE PRODUCTOS pymegnu v2.0 1 INTRODUCCIÓN Nuestros sistemas 100% web le permitirán poder obtener todas las ventajas competitivas que ofrece Internet, como la disponibilidad de tener sus sistemas

Más detalles

Infraestructura Tecnológica. Sesión 1: Infraestructura de servidores

Infraestructura Tecnológica. Sesión 1: Infraestructura de servidores Infraestructura Tecnológica Sesión 1: Infraestructura de servidores Contextualización La infraestructura de cualquier servicio o mecanismo es importante, define el funcionamiento de los elementos en que

Más detalles

Informe de la ciudad de Seattle sobre el acceso y la adopción de la información de tecnología

Informe de la ciudad de Seattle sobre el acceso y la adopción de la información de tecnología Informe de la ciudad de Seattle sobre el acceso y la adopción de la información de tecnología Qué tan bien conectados están los residentes de Seattle al internet? Están usando formas de comunicación electrónicas

Más detalles

Webs de asignaturas y centros de recursos telemáticos on-line

Webs de asignaturas y centros de recursos telemáticos on-line Unidad III. Diseño de mi página web Personalizar mi página web Webs de asignaturas y centros de recursos telemáticos on-line Documento utilizado con fines exclusivamente educativos por la Universidad Autónoma

Más detalles

La convergencia, la e-administración y los medios de comunicación como elemento dinamizador

La convergencia, la e-administración y los medios de comunicación como elemento dinamizador La convergencia, la e-administración y los medios de comunicación como elemento dinamizador LA CONVERGENCIA Tecnología y contenidos Búsqueda de valor La experiencia de hoydigital Tecnología y contenidos

Más detalles

Diseño dinámico de arquitecturas de información

Diseño dinámico de arquitecturas de información Diseño dinámico de arquitecturas de información CARACTERISTICAS DEL SISTEMA Las organizaciones modernas basan su operación en la gestión del conocimiento, es decir, en el manejo de información que se presenta

Más detalles

WHITE PAPER. Encuesta: Los Periodistas de México y las Redes Sociales

WHITE PAPER. Encuesta: Los Periodistas de México y las Redes Sociales WHITE PAPER Encuesta: Los Periodistas de México y las Redes Sociales WHITE PAPER Encuesta: Los Periodistas de México y las Redes Sociales PR Newswire, líder mundial en soluciones innovadoras de comunicación

Más detalles

DE VIDA PARA EL DESARROLLO DE SISTEMAS

DE VIDA PARA EL DESARROLLO DE SISTEMAS MÉTODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS 1. METODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS. El desarrollo de Sistemas, un proceso

Más detalles

Administración del conocimiento y aprendizaje organizacional.

Administración del conocimiento y aprendizaje organizacional. Capítulo 2 Administración del conocimiento y aprendizaje organizacional. 2.1 La Importancia Del Aprendizaje En Las Organizaciones El aprendizaje ha sido una de las grandes necesidades básicas del ser humano,

Más detalles

CURSO COORDINADOR INNOVADOR

CURSO COORDINADOR INNOVADOR CURSO COORDINADOR INNOVADOR PRESENTACIÓN La tarea que el Ministerio de Educación se propone a través de Enlaces, en relación al aseguramiento del adecuado uso de los recursos, con el fin de lograr un impacto

Más detalles

Alquiler de Aulas Virtuales

Alquiler de Aulas Virtuales Alquiler de Aulas Virtuales AulaGlobal: Servicios Elearning www.aulaglobal.org Equipo AulaGlobal 2 Alquiler de Aulas Virtuales Alquiler de aulas virtuales Las Aulas Virtuales disponible en los campus de

Más detalles

PROGRAMA E-COMMERCE. Promoviendo el uso de Internet y el comercio electrónico en el sector exportador

PROGRAMA E-COMMERCE. Promoviendo el uso de Internet y el comercio electrónico en el sector exportador PROGRAMA E-COMMERCE Promoviendo el uso de Internet y el comercio electrónico en el sector exportador El Convenio Exportaciones de la Unión Europea (ALA/93/57) y Prompex ponen a disposición del sector exportador

Más detalles

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com

Introducción a los Servicios Web. Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com Introducción a los Servicios Web Ing. José Luis Bugarin ILUMINATIC SAC jbugarin@consultorjava.com Servicios Web y Soa En un contexto SOA y los servicios web son una oportunidad de negocios en la actualidad.

Más detalles

ERP y CRM. Abraham Sánchez L. FCC/BUAP Grupo MOVIS

ERP y CRM. Abraham Sánchez L. FCC/BUAP Grupo MOVIS Conceptos de los sistemas ERP y CRM Abraham Sánchez L. FCC/BUAP Grupo MOVIS Introducción Se trata de analizar la evolución de las definiciones que a lo largo de los últimos años han representado las distintas

Más detalles

MANUAL DE SEGUIMIENTO Y EVALUACIÓN

MANUAL DE SEGUIMIENTO Y EVALUACIÓN MANUAL DE SEGUIMIENTO Y EVALUACIÓN INDICE 1. INTRODUCCIÓN Pág. 3 2. QUÉ ES ACTIVE PROGRESS? Pág. 6 3. FASES DEL PROCESO DE EVALUACIÓN Pág. 9 4. SUBCOMITÉ DE SEGUIMIENTO Pág.12 5. CUESTIONARIOS DE SEGUIMIENTO

Más detalles

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades: Propósito del prototipo: Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades: 1º. Mostrar noticias y eventos propios del grupo de personas que administren la Web.

Más detalles

5 formas de mejorar su negocio con COMPUTACIÓN EN LA NUBE

5 formas de mejorar su negocio con COMPUTACIÓN EN LA NUBE 5 formas de mejorar su negocio con COMPUTACIÓN EN LA NUBE Julio 2012 Introducción. Cada empresa y cada empresario ha entendido que, si hay una constante, ésta es el cambio. Día a día, los negocios se ponen

Más detalles

CAPÍTULO 2 ANTECEDENTES

CAPÍTULO 2 ANTECEDENTES CAPÍTULO 2 ANTECEDENTES 2.1 Educación y las Nuevas Tecnologías. La introducción en la sociedad de las llamadas "Nuevas Tecnologías" (como las redes de computadoras, los sistemas de Chat, los sistemas de

Más detalles

Bechtle Solutions Servicios Profesionales

Bechtle Solutions Servicios Profesionales Soluciones Tecnología Bechtle Solutions Servicios Profesionales Fin del servicio de soporte técnico de Windows Server 2003 No hacer nada puede ser un riesgo BECHTLE Su especialista en informática Ahora

Más detalles

TABLA DE CONTENIDO. 1.1.1 SAP... 4 1.1.2 PeopleSoft... 4 1.1.3 Oracle... 5 1.1.4 Baan... 5 1.1.5 JDEdwards... 6

TABLA DE CONTENIDO. 1.1.1 SAP... 4 1.1.2 PeopleSoft... 4 1.1.3 Oracle... 5 1.1.4 Baan... 5 1.1.5 JDEdwards... 6 TABLA DE CONTENIDO Pág. 1 TRADUCIDO AL ESPAÑOL: PLANEACIÓN DE LOS RECURSOS DE LA EMPRESA... 4 1.1 EMPRESAS PROVEEDORAS DE SISTEMAS ERP A NIVEL MUNDIAL... 4 1.1.1 SAP... 4 1.1.2 PeopleSoft... 4 1.1.3 Oracle...

Más detalles

PROGRAMA INTERNACIONAL Experto en Desarrollo de Dispositivos Móviles. Más que un título

PROGRAMA INTERNACIONAL Experto en Desarrollo de Dispositivos Móviles. Más que un título PROGRAMA INTERNACIONAL Experto en Desarrollo de Dispositivos Móviles Más que un título EXPERTO EN DESARROLLO DE DISPOSITIVOS MÓVILES INFORMACIÓN ACADÉMICA JUSTIFICACIÓN DEL PROGRAMA El programa de desarrollo

Más detalles

CAPITULO I FORMULACION DEL PROBLEMA

CAPITULO I FORMULACION DEL PROBLEMA CAPITULO I FORMULACION DEL PROBLEMA TITULO DESCRIPTIVO DEL PROYECTO. Implementación de un servidor proxy para el control de tráfico de la red y gestión de los servicios de Internet en los centros de cómputo

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura

Más detalles

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos ANEXO VI. Mejores prácticas para el éxito de un sistema de información Uno de los problemas de información dentro de las empresas es contar con datos importantes del negocio y que éstos estén aislados

Más detalles

UF0035: Operaciones de caja en la venta

UF0035: Operaciones de caja en la venta UF0035: Operaciones de caja en la venta TEMA 1. Caja y Terminal Punto de Venta TEMA 2. Procedimientos de cobro y pago de las operaciones de venta OBJETIVOS - Aplicar los procedimientos de registro y cobro

Más detalles

SÍNTESIS Y PERSPECTIVAS

SÍNTESIS Y PERSPECTIVAS SÍNTESIS Y PERSPECTIVAS Los invitamos a observar, a identificar problemas, pero al mismo tiempo a buscar oportunidades de mejoras en sus empresas. REVISIÓN DE CONCEPTOS. Esta es la última clase del curso.

Más detalles

Windows Server 2012: Infraestructura de Escritorio Virtual

Windows Server 2012: Infraestructura de Escritorio Virtual Windows Server 2012: Infraestructura de Escritorio Virtual Módulo 1: Application Virtualization Módulo del Manual Autores: James Hamilton-Adams, Content Master Publicado: 5 de Octubre 2012 La información

Más detalles

1. A qué se parece Internet? 2. Cómo comenzó Internet? 3. De quién es ahora Internet?

1. A qué se parece Internet? 2. Cómo comenzó Internet? 3. De quién es ahora Internet? PREGUNTAS MÁS FRECUENTES SOBRE INTERNET I (Tutoriales) 1. A qué se parece Internet? Al principio, se comparaba Internet con una gran biblioteca universal, abierta las 24 horas del día. En las páginas de

Más detalles

SOLUCIONES E-BUSINESS

SOLUCIONES E-BUSINESS SOLUCIONES E-BUSINESS Soluciones e-business La realización de operaciones de negocio electrónico se sirve de numerosas herramientas, utilizadas para sustituir a las aplicadas tradicionalmente por las empresas

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

NBG Asesores Abogados

NBG Asesores Abogados Caso de Éxito www.sagedespachosprofesionales.com despachosprofesionales@sage.es 902 01 34 49 Caso de Éxito Las actualizaciones periódicas de Sage Profesional Class a nuevas normativas nos permiten atender

Más detalles

Presentación. 29/06/2005 Monografía de Adscripción 1

Presentación. 29/06/2005 Monografía de Adscripción 1 Presentación Alumno: Uribe, Valeria Emilce Profesor Director: Mgter. David Luis La Red Martínez. Asignatura: Diseño y Administración de Datos. Corrientes 2005. 29/06/2005 Monografía de Adscripción 1 MONOGRAFIA

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

BPM: Articulando Estrategia, Procesos y Tecnología

BPM: Articulando Estrategia, Procesos y Tecnología BPM: Articulando Estrategia, Procesos y Tecnología Resumen: La competitividad es el imaginario que dirige las acciones empresariales en la actualidad. Lograr condiciones que permitan competir con mayores

Más detalles

POLÍTICA DE PRIVACIDAD PARA APLICACIONES MÓVILES GRUPOCOPESA. 1. información que se obtiene la aplicación y su utilización

POLÍTICA DE PRIVACIDAD PARA APLICACIONES MÓVILES GRUPOCOPESA. 1. información que se obtiene la aplicación y su utilización POLÍTICA DE PRIVACIDAD PARA APLICACIONES MÓVILES GRUPOCOPESA Nuestra política de privacidad se aplica al uso de las aplicaciones informáticas de los siguientes medios de comunicación: LaTercera, LaCuarta,

Más detalles

COLEGIO COMPUESTUDIO

COLEGIO COMPUESTUDIO COLEGIO COMPUESTUDIO ÁREA: TECNOLOGIA E INFORMATICA DOCENTE: WILLY VIVAS LLOREDA ESTUDIANTE: CLEI: III GUIA N 5 N SESIONES: NUCLEO TEMÁTICO: UNIDAD: 2 Sistema operativo (Windows) OBJETIVO: Comprender el

Más detalles

Experiencia de Automóvil Personal

Experiencia de Automóvil Personal Experiencia de Automóvil Personal Cómo sería si su automóvil fuera lo suficientemente inteligente como para saber quién es usted y cuáles son las personas y los dispositivos que están dentro y alrededor

Más detalles

entrevistas es uno de los objetivos en las empresas Entrevistado: Susana Trabaldo, directora de Net Learning, Argentina. Por: Karla Ramírez

entrevistas es uno de los objetivos en las empresas Entrevistado: Susana Trabaldo, directora de Net Learning, Argentina. Por: Karla Ramírez recuperar el conocimiento es uno de los objetivos del e-learning en las empresas Entrevistado: Susana Trabaldo, directora de Net Learning, Argentina. Por: Karla Ramírez 23 En una organización que aprende

Más detalles

RESUMEN PRESENTACIÓN SEPA NOVIEMBRE 2015

RESUMEN PRESENTACIÓN SEPA NOVIEMBRE 2015 RESUMEN PRESENTACIÓN SEPA NOVIEMBRE 2015 Una propuesta global de marketing online para un cambio global en la cadena de valor de la industria editorial Luis Abril Mula El cambio que las nuevas tecnologías

Más detalles

BIBLIOTECA VIRTUAL DE CANARIAS. Gobierno de Canarias. Institución: Viceconsejería de Desarrollo Industrial e Innovación Tecnológica.

BIBLIOTECA VIRTUAL DE CANARIAS. Gobierno de Canarias. Institución: Viceconsejería de Desarrollo Industrial e Innovación Tecnológica. BIBLIOTECA VIRTUAL DE CANARIAS Gobierno de Canarias. Institución: Viceconsejería de Desarrollo Industrial e Innovación Tecnológica. Dirección: C/ Cebrián nº 3 35003 Las Palmas de Gran Canaria Islas Canarias

Más detalles

Sistemas de almacenamiento informático

Sistemas de almacenamiento informático 1 Sistemas de almacenamiento informático 1. INTRODUCCIÓN: En informática, uno de los elementos principales es el lugar de almacenamiento de datos informáticos. Estos datos, bien en forma de archivos o

Más detalles