• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Automatización de servicios en un restaurant-bar por medio de aplicaciones para dispositivos móviles.
 

Automatización de servicios en un restaurant-bar por medio de aplicaciones para dispositivos móviles.

on

  • 992 views

 

Statistics

Views

Total Views
992
Views on SlideShare
918
Embed Views
74

Actions

Likes
3
Downloads
16
Comments
0

1 Embed 74

http://ficproyectos2.blogspot.mx 74

Accessibility

Categories

Upload Details

Uploaded via as Microsoft Word

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Automatización de servicios en un restaurant-bar por medio de aplicaciones para dispositivos móviles. Automatización de servicios en un restaurant-bar por medio de aplicaciones para dispositivos móviles. Document Transcript

    • UNIVERSIDAD AUTÓNOMA DE TAMAULIPAS Facultad de Ingeniería y Ciencias Ingeniero en Telemática Seminario de Investigación II Automatización de servicios en un restaurant-barpor medio de aplicaciones para dispositivos móviles. Alumno: Miguel Ángel Gutiérrez Orozco Dr. Joel Gutiérrez LozanoCd Victoria, Tamaulipas Noviembre 2012
    • ÍndiceSiglas Utilizadas ITerminología Utilizada III Introducción 6 Hipótesis, Objetivo General y Objetivos Particulares 7II Revisión de Literatura 2.1 Tecnología de Información en México 8 2.2 Concepto del software 9 2.3 Lenguajes de Programación 10 2.3.1 Que es un lenguaje de programación 2.3.2 Evolución de los lenguajes de programación 12 2.3.3 Clasificación de los lenguajes de programación 14 2.3.4 El proceso de la programación 15 2.4 Tipos de sistemas de computo 16 2.4.1 Aplicaciones monolíticas 2.4.2 Modelo cliente/servidor 2.4.3 Sistemas distribuidos 20 2.4.4 Computo móvil 2.5 Tipos de aplicaciones 21 2.5.1 Aplicaciones web reducidas 2.5.2 Aplicaciones estándar de Palm 22 2.6 Componentes de ASP.NET 2.7 Las aplicaciones Web en ASP.NET + IIS 24 2.8 Diferencias con .NET Framework 25 2.9 Software para Restaurantes libre 27 2
    • III Materiales y Métodos 3.1 Ubicación del estudio 28 3.2 Fecha de inicio y duración probable 3.3 Requisito de Hardware 3.4 Requisito de Software 29 3.5 Colección de datos 3.5.1 Como empezar 3.5.2 Operando la red 32 3.5.2.1 Access Point 30 3.5.3 Métodos de Autentificación 3.6 Plan de desarrollo del proyecto 31 3.7 Costo de la Inversión 32IV Resultados 33V Conclusiones 36IV Bibliografía 37V Anexos 39 3
    • Siglas UtilizadasERP (Enterprise Resource Planning) Planeación de Recursos EmpresarialesBI (Business Inteligence ) Inteligencia EmpresarialTIC´s (Tecnologías de la Información y la Comunicación).NET (Network, Internet)HTTP (Hypertext Transfer Protocol) Protocolo de Transferencia de HipertextoTCP (Transmission Control Protocol) Protocolo de Control de TransmisiónDNS (Domain Name System ) Sistema de Nombres de DominioIP (Internet Protocol) Protocolo de InternetASP (Active Server Pages) Servidor de Páginas ActivasDLL (Dynamic-Link Library) Biblioteca de Enlace DinamicoCLR (Common Language Runtime) Entorno Común de Ejecución para LenguajesMSIL (Microsoft Intermediate Languaje) Lenguaje Intermedio de MicrosoftIIS (Internet Information Services) Información de Servicios de InternetVS (Visual Studio)ADO (Access Data Objects) Acceso a DatosLINQ (Language Integrated Query) Lenguaje de Consultas IntegradasRAM (Random-Access Memory) Memoria de Acceso AleatorioCAB (Cabinet File) Gabinete de ArchivoROM (Read Only Memory) Memoria de Solo LecturaWCF (Windows Comunication Fundation) Fundacion de Comunicacion de WindowsSOA (Service Oriented Aplications) Aplicaciones Orientadas a ServiciosXML (eXtensible Markup Language) Lenguaje de Marcas ExtendibleGIF (Graphics Interchange Format ) Formato de Intercambio de GraficosBMP (BitMaP)WBMP (Wireless BitMaP) 4
    • Terminología Utilizada.NET.- Es un framework de Microsoft que hace un énfasis en la transparencia de redes, conindependencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones..NET Compact Framework.- Es un rico subconjunto de .NET Framework, proporcionandolas mismas ventajas que .NET Framework, pero diseñado específicamente para dispositivoscomo PocketPC, Smartphone. .NET Compact Framework simplifica el proceso de creacióny desplegado de aplicaciones en dispositivos móviles mientras permite al desarrolladoraprovecharse de todas las capacidades del dispositivo.Puertos lógicos.- Se denomina así a una zona, o localización, de la memoria de un ordenadorque se asocia con un puerto físico o con un canal de comunicación, y que proporciona unespacio para el almacenamiento temporal de la información que se va a transferir entre lalocalización de memoria y el canal de comunicación.Localhost.- Es un nombre reservado que tienen todas las computadoras, router o dispositivoindependientemente de que disponga o no de una tarjeta de red Ethernet. Elnombre localhost es traducido como la dirección IP de loopback 127.0.0.1 en IPv4PocketPC.- Es un ordenador de bolsillo, también llamado PDA (Personal Digital Assistant).Smarthphone.- Es un término comercial para denominar a un teléfono móvil que ofrece másfunciones que un teléfono celular común.Microsoft Exchange Server.- Es un software propietario de colaboración entre usuarios,desarrollado por Microsoft. Es parte de la familia Microsoft Server ya que es una delas aplicaciones destinadas para el uso de servidores.Microsoft Active Sync.- Es un móvil de sincronización de datos y tecnologíade protocolo desarrollado por Microsoft. 5
    • I IntroducciónEn la actualidad, las empresas se enfrentan a un mercado global el cual les obliga a elevar susestándares competitivos para convertirse en la mejor de su ramo. Y así como van creciendosus necesidades por superarse y ser las mejores, también crecen las necesidades tecnológicasdentro de la empresa, es por esto que surge la necesidad de implementar un sistema ERP, loscuales pueden adaptarse a las necesidades especificas de la empresa; siempre y cuando dichaempresa se encuentre preparada para un paquete de ese tipo, porque si no el gasto y todo elesfuerzo será nulo (Chacón Olvera).Algo que es importante tomar en cuenta es la inversión, porque esta inversión no se va a verrecuperada en unos días, se tiene que estar conscientes que el fruto de esta inversión va atardar y no hay que desesperarse puesto que en vez de llevar a la empresa al éxito lallevaremos a un fracaso mucho más rápido. Pero si se tiene paciencia y se trabajaadecuadamente con él, los resultados pueden llegar a ser magníficos (Chacón Olvera).Hay que tomar en cuenta que la implementación de sistemas de información en empresas esalgo común hablando de medianas empresas, ya que cuentan con algo de ingresos mayorespara sostener esta inversión, pero las pequeñas empresas no tienen alto soporte ya que lamano técnica y los equipos necesarios para implementar de manera efectiva son de gran costo.Otro punto importante es la falta de experiencia de los ingenieros para implementar las TIC’sy los directivos de las empresas no pueden encomendar un proyecto de este tipo con lo que seven en la necesidad de contratar a una persona con más experiencia y por ende aumentando elcosto de la enmienda. A esto se le adhiere el uso de dispositivos y más conocimiento técnicopara programar los mismos, hace que un restaurante común no pueda sostener un gasto deeste tipo, necesitaría ser uno de alta categoría y con demasiada clientela.Los teléfonos celulares (móviles) se han convertido en parte de nuestro estilo de vida.Hoy en día, los dispositivos móviles pueden conectarse a Internet y ejecutar aplicaciones web.Las aplicaciones móviles ahora pueden ser desarrolladas para ofrecer cualquier tipo de datos,a cualquier usuario, en cualquier lugar del mundo.Diferentes dispositivos móviles de apoyo diferentes lenguajes de programación. Algunossoporte WAP y WML, HTML algún apoyo o una versión limitada de HTML, y el apoyo tantode algunos o de un idioma diferente (W3schools).Para apoyar todo tipo de dispositivos móviles, los desarrolladores deben crear una aplicacióndiferente para cada idioma (W3schools).Con .NET Compact Framework, Microsoft ha introducido una nueva plataforma para eldesarrollo de aplicaciones móviles. 6
    • HipótesisAgilizar el proceso de ordenar el pedido y facturación dentro de un restaurant-bar por mediode un sistema de información.Objetivo GeneralEl presente trabajo tiene como objetivo documentar el desarrollo de software en dispositivoscon .NET Compact Framework, información en un sentido más técnico, previendo el usocomplejo tanto de servidores, los puertos lógicos, la sintaxis, librerías y herramientas deapoyo para proceder la codificación de software en dispositivos móviles.Objetivos Particulares 1. Implementar un sistema de información y así mismo ver los beneficios que trae consigo la automatización de los procesos. 2. Dar a conocer a los demás restaurant-bar la innovación en las herramientas para el desarrollo de software para que esto genere una competitividad en el mercado y ofrecerle un mejor servicio al cliente. 7
    • II Revisión de Literatura2.1 Tecnologías de Información en MéxicoLas pequeñas y medianas empresas necesitan incorporar tecnología a sus estrategias denegocio para poder lograr productividad y eficiencia. Todas estas empresas deben mantenersemodernizadas; porque manteniéndose así el país estará en la misma situación. Como en todosiempre existen obstáculos que impiden un desarrollo pleno de los proyectos tecnológicos enlas empresas, los principales son la resistencia que se tiene ante el cambio y el miedo queexiste entre los futuros usuarios, que no se tenga el resultado que se espera. Es por esto que laimplementación de ERP’s puede llegar a crear más problemas de los que ya había antes de suimplementación puesto que un ERP no va a llegar a solucionar todo por arte de magia,depende de los usuarios el uso adecuado de él (Chacón Olvera).Los obstáculos más comunes en la implementación de sistemas de información son: laresistencia al cambio, definición de requerimientos, hardware y software, dependencia de losproveedores de tecnología. Desde mi punto de vista la resistencia al cambio es la barrera másinfluyente y la causante de que muchas pequeñas y medianas empresas estén rezagadas enmateria tecnológica. Hablando de mala definición de requerimientos de aplicación que serequieren implementar. Por otro lado está el obstáculo del hardware y el software dondemuchas de las veces las empresas no cuentan con un soporte técnico eficiente, el equipocomputacional existente en las compañías es insuficiente para el desempeño de las actividadesbásicas (Chacón Olvera).Finalmente es necesario considerar que la implantación de un sistema no es nada sencillo yque requiere de un gran compromiso, por lo que si no nos sentimos capaces de hacerlo buscara alguien que pueda hacerlo o simplemente esperar antes de convertir lo que tenemos en unrotundo fracaso (Chacón Olvera).Las tecnologías de información dentro de las PYME’s juegan un papel muy importante,permiten desde la interacción más directa y eficiente con el proveedor, pasando por la mejorade los procesos internos de la empresa hasta poder conocer al cliente y sus preferencias. Peroesto muchas veces no lo ven o no lo saben los administradores de este tipo de empresas yoponen una gran resistencia al cambio. Las PYME’s que no incorporen el uso de lastecnologías de información como parte del negocio ponen en riesgo su permanencia en elmercado ya que siempre existirán otras PYME’s que sí lo hagan y obtengan una ventajacompetitiva (Chacón Olvera).Una empresa siempre tiene que utilizar herramientas estratégicas y con estas ir un paso másdelante de la competencia, algo novedoso resulta ser atractivo para los clientes y con el fin dever esa novedad van a comprar el producto (o recibir el servicio), con esto cabe mencionar eluso de dispositivos móviles en el uso de pedidos que sin duda esta novedad que no soloacelera los procesos si no también mantiene control mucho más estableLa tecnología móvil está llegando a todos los rincones de los procesos organizacionales anivel de empresa, desde la posibilidad de registrar y revisar las transacciones en el sistemaoperacional, hasta la habilidad de proveer a los ejecutivos con la información sobre el estadode la empresa en cualquier lugar físico. (Jorge García) 8
    • Los artefactos móviles han llegado a un punto tal que no se utilizan solamente para compartirinformación personal y establecer interacciones sociales. En la actualidad, muchosproveedores BI están ofreciendo opciones de entrega para servicios de análisis por medio deartefactos móviles. En otras palabras, las herramientas BI se están convirtiendo en virtuales ymóviles. (Jorge García)Los métodos computacionales móviles no son nuevos, pero la confluencia de la tecnologíamóvil y BI ha empezado a ganar interés solo en los últimos años. Hoy en día, la movilidad esla tendencia a nivel empresarial y los proveedores de BI están intentando enfrentar el reto deproveer a sus clientes con las herramientas de movilidad necesarias. (Jorge García)La creciente adopción de tecnologías móviles de BI, se explica parcialmente por la adopciónde tecnologías Web que permiten el encuentro de los proveedores de tecnologías móviles ylos proveedores de BI en un punto tal que, es posible ofrecer la visualización de los datos y lasherramientas de análisis para su uso en artefactos móviles. (Jorge García.Pero, ¿se trata solo de visualizar los resultados?Bien, la respuesta a dicha pregunta es si y no. El primer objetivo de la movilidad en BI fuepermitir que los usuarios visualizaran los resultados del análisis de datos. Ello en sí mismo fueun gran reto, si tenemos en cuenta el área de presentación, memoria y otros limitantesiniciales de la tecnología móvil, especialmente ya que los procesos BI requieren cantidades dememoria respetables, así como gran espacio para presentar los resultados, con ello tambiénrecae el uso del dispositivo móvil como punto de venta el cual da un uso más amplio de eldispositivo (que es en lo que aplicaría en el proyecto). (Jorge García)Pero con la aparición de nuevas tecnologías como el iPhone y iPad de Apple, y el propagadouso de los móviles Blackberry y Windows Mobile, cobra sentido el hecho de que lastecnologías móviles ya no están limitadas a los tableros visuales, y que ellas permitirán a losusuarios correr datos de análisis tanto en línea como fuera de línea, lo cual es unafuncionalidad que los proveedores de software deberán explotar y desarrollar en los próximosaños, para generar una fuente real de valor para los usuarios. (Jorge García)2.2 Conceptos del SoftwareA principios de los 80 no estaba claro cuán importante sería el desarrollo de software. Hoy endía, se ha convertido en el eje de evolución de la industria de la computación, y es el motorque conduce la toma de decisiones comerciales. Esto ha provocado que cambie la percepciónque el público tenia del software: de ser un aditamento adicional a la computadora, a ser unaplataforma de trabajo que corre sobre un hardware no específico.En nuestros días el software tiene un doble papel: es un producto que permite explotar toda lapotencia del hardware informático; ya sea almacenado dentro de un teléfono celular o dentrode una computadora bancaria, el software transforma información, produciendo, gestionando,modificando, mostrando o transmitiendo información, pero el software también sirve comovehículo para hacer entrega de un producto, ya que actúa como la base de control de lacomputadora, la comunicación de información, y la creación y control de otros programas. 9
    • Dentro del gran conjunto de programas representados por el término "software", se puedenhacer dos grandes divisiones, de acuerdo a la función que desempeñan. Una formadapor el llamado Software de Sistema, encargado de apoyar al usuario en la administración desu hardware, y la otra conformada por el Software de Aplicación, subconjunto que agrupa atodos los programas que resuelven necesidades y problemas específicos de los usuarios. Así,cuando un usuario desea capturar un texto y darle formato, utilizar distintos tipos y tamañosde letra y revisarlo ortográficamente, tiene que recurrir a un software de aplicación. Igualdebe hacerlo si desea capturar y manipular grandes volúmenes de datos, o hacer muchoscálculos o si lo que quiere es construir imágenes y darles animación. Mientras que sirespalda archivos o administra impresoras, estará usando software de sistema. Aunque eltérmino "Sistema" se usa también como sinónimo de software, y en especial en el presentedocumento, específicamente del software de aplicación.Pero, para que la computadora pueda ejecutar cualquier tarea, se le debe programar para quela haga, colocando en su memoria principal un algoritmo apropiado, expresado en algúnlenguaje de programación.2.3 Lenguajes de Programación2.3.1 Qué es un lenguaje de programaciónComo se menciona en el capítulo anterior, se presenta la necesidad de expresar los algoritmosen una sintaxis no ambigua y a un nivel de detalle bien establecido. Estos dos requisitos seresuelven mediante el uso de primitivas. [Brookshear,1995] explica que una primitivaconsiste en una estructura semántica bien definida junto con una sintaxis no ambigua pararepresentarla.Tenemos entonces, que para representar algoritmos se debe contar con una colecciónsuficientemente rica de primitivas que, junto con las reglas de combinación pararepresentar estructuras más complejas, constituyen un lenguaje de programación.La Enciclopedia de Términos de Micro-computación define Lenguaje de programación comolos conjuntos de símbolos y de reglas que se pueden combinar en forma sistemática paracomunicar pensamientos e ideas, y específicamente aquellos que sirven para escribirinstrucciones de computadora. El lenguaje Incluye vocabulario, y reglas o convenciones querigen la forma y secuencia en que se escriben las instrucciones para su ejecución en lacomputadora.También para [Joyanes, 1988] un lenguaje de programación es un conjunto de reglas,símbolos y palabras que permiten construir un programa. Al igual que los lenguajes humanostales como el inglés o el español, los lenguajes de programación poseen una estructura(gramática o sintaxis) y un significado (semántica).La sintaxis es el conjunto de reglas que gobiernan la construcción o formación de sentencias(instrucciones) válidas en el lenguaje. La semántica es el conjunto de reglas que proporcionanel significado de una sentencia o instrucción del lenguaje. 10
    • El vocabulario de un lenguaje es un conjunto de símbolos. Los símbolos usuales son: letras,dígitos, símbolos especiales (,;:/&+-*, etc.) y palabras reservadas o claves, y las reglassintácticas son los métodos de producción de sentencias o instrucciones válidas quepermitirán formar un programa.Según menciona [Brookshear, op. cit.], la implantación de los lenguajes de programación dealto nivel se basa en el proceso de convertir programas escritos en esos lenguajes enprogramas escritos en lenguaje de máquina.La traducción de un programa consiste en tres actividades: análisis léxico, análisis sintáctico ygeneración de código Figura 2.1 Construcción de un ejecutableEl análisis léxico es el proceso de reconocer qué cadenas de símbolos del programa que seha de traducir (llamado programa fuente) representan en realidad un solo objetoelemental. Por ejemplo, la cadena de símbolos 153 no debe representarse como un 1 seguidode un 5 seguido de un 3, sino que debe reconocerse como la representación de un solovalor numérico. De manera similar, aunque los identificadores que aparecen en un programaestán formados por varios caracteres, se deben interpretar colectivamente como un nombre,no como caracteres individuales.La segunda actividad del proceso de traducción, el análisis sintáctico, es el proceso deanalizar la estructura gramatical de un enunciado y reconocer el papel de sus componentes.A fin de simplificar la tarea del análisis sintáctico, la colección de estructuras de enunciadosque tiene un lenguaje de programación es menos variada que la de un lenguaje natural, yestá limitada a unas cuantas formas cuidadosamente escogidas.La actividad final en la traducción de un programa es la generación de código, es el procesode construir secuencias de instrucciones en lenguaje de máquina que simulen a los enunciados 11
    • reconocidos por el analizador sintáctico, y es el que genera el producto final del proceso detraducción: el programa objeto.2.3.2 Evolución de los Lenguajes de ProgramaciónAl igual que el software, hay varias formas desde las que pueden verse o clasificarse loslenguajes de programación: por su nivel, por sus principales aplicaciones, etc. Además, estasvisiones están condicionadas por la evolución histórica por la que ha transcurrido el lenguaje.Los primeros lenguajes de programación -lenguajes de máquina y ensamblador- reciben elnombre de lenguajes de bajo nivel, debido a que los programadores que codifican en estoslenguajes deben escribir instrucciones con el nivel más fino de detalle. Cada línea de códigocorresponde a una sola acción del sistema computacional. El lenguaje de máquina, el cualconsta de cadenas de bits 0 y 1 es la "lengua parlante" de la computadora.El mecanismo de escoger nombres descriptivos para las celdas de memoria y usar nombresmnemónicos para representar códigos de operación, aumentó considerablemente lacomprensibilidad de las secuencias de instrucciones de máquina.Cuando se introdujeron estas técnicas, los programadores usaban esta notación al diseñar losprogramas en papel, y luego la traducían a una forma que pudiera entender la máquina. Esteproceso de traducción es suficientemente sencillo como para que la propia computadora lopueda llevar a cabo, lo que dio lugar a que el uso de nombres mnemónicos se formalizara paradar origen a un lenguaje de programación denominado "lenguaje ensamblador", y a unprograma, también llamado "ensamblador" que traducía otros programas escritos en lenguajeensamblador a lenguaje de máquina. Figura 2.2 Ensamblador, Compilador e Intérprete 12
    • Los lenguajes ensambladores representaron un gran avance en la búsqueda de mejoresambientes de programación. Por ello, se les denominó lenguajes de segunda generación,siendo la primera generación la de los propios lenguajes de máquina.Aunque los lenguajes de segunda generación tenían muchas ventajas respecto a sucontrapartida de lenguajes de máquina, todavía dejaban mucho que desear en cuanto a ofrecerel entorno de programación definitivo. Después de todo, las primitivas empleadas en loslenguajes ensambladores eran esencialmente las mismas que las del lenguaje de máquinacorrespondiente; la única diferencia era la sintaxis de su representación.Una consecuencia importante de esta íntima asociación entre los lenguajes ensamblador y demáquina es que cualquier programa escrito en lenguaje ensamblador depende inherentementede la máquina; esto es, las instrucciones del programa se expresan en términos de los atributosde una máquina específica. Por tanto, un programa escrito en lenguaje ensamblador no sepuede transportar fácilmente a otra máquina porque se tiene que reescribir de modo que seajuste a la configuración de registros y al conjunto de instrucciones de la nueva máquina, yaque cada tipo de microprocesador tiene su propio lenguaje ensamblador asociado(entendiendo que el lenguaje Ensamblador es simplemente una representación simbólica dellenguaje máquina). Por tanto, es necesario un profundo conocimiento de la arquitectura de lacomputadora para poder realizar una programación efectiva.Otra desventaja de los lenguajes ensambladores es que el programador, aunque no tiene quecodificar las instrucciones en forma de patrones de bits, sí está obligado a pensar en términosde los pequeños pasos incrementales del lenguaje de la máquina, y no puede concentrarse enla solución global de la tarea por realizar.Las primitivas elementales en que se debe expresar finalmente un producto no sonnecesariamente las primitivas que deben usarse al diseñarlo. El proceso de diseño se prestamejor al empleo de primitivas de alto nivel, cada una de las cuales representa un conceptoasociado a una característica importante del producto. Una vez terminado el diseño, se podrántraducir esas primitivas a conceptos de más bajo nivel relacionados con los detalles de laimplantación.De acuerdo con esta filosofía se empezaron a crear lenguajes de programación que fueran máspropicios para la elaboración de software que los lenguajes ensambladores de bajo nivel. Elresultado fue la aparición de una tercera generación de lenguajes de programación quedifería de las anteriores en que sus primitivas eran de alto nivel y además independientesde las máquinas.En general, la estrategia para crear lenguajes de programación de tercera generación fueidentificar una colección de primitivas de alto nivel con las que se podía crear software.Todas estas primitivas se diseñaron de modo que se pudieran implantar como unasecuencia de las primitivas de bajo nivel disponibles en los lenguajes de máquina.Una vez identificado este conjunto de primitivas de alto nivel, se escribió un programallamado traductor, que traducía a lenguaje de máquina los programas expresados en dichas 13
    • primitivas de alto nivel. Todo lo que tenía que hacer el traductor era reconocer lasprimitivas y convertirlas en sus equivalentes en lenguaje de máquina.2.3.3 Clasificación de los Lenguajes de ProgramaciónSurgen así, los "lenguajes declarativos" que son más parecidos al inglés en la forma en que seexpresan y en su funcionalidad, y están al nivel más alto respecto a los otros. Sonfundamentalmente lenguajes de órdenes, dominados por sentencias que expresan "lo que hayque hacer" en vez de "cómo hacerlo". Un ejemplo de estos lenguajes es el lenguaje estadísticoSPSS, y el lenguaje de consulta estructurada en bases de datos (SQL). Estos lenguajes sedesarrollaron con la idea de que los profesionistas pudieran asimilar más rápidamenteel lenguaje y usarlo en su trabajo, sin necesidad de conocimientos prácticos de programación.Los lenguajes de "alto nivel" son los más utilizados como lenguajes de programación. Aunqueno son fundamentalmente declarativos, estos lenguajes permiten que los algoritmos seexpresen en un nivel y estilo de escritura fácilmente legible y comprensible por otrosprogramadores. Además, los lenguajes de alto nivel tienen normalmente la característica de"transportabilidad". Es decir, están implementados sobre varias máquinas, de forma que unprograma puede ser fácilmente "transportado" o transferido de una maquina a otra sin ningunarevisión sustancial. Es este sentido, se les denomina "independientes de la máquina".Ejemplos de estos lenguajes de alto nivel son Pascal, APL, FORTRAN, (para aplicacionescientíficas), COBOL (usado en aplicaciones de procesamiento de datos), LISP y PROLOG(para aplicaciones de inteligencia artificial) C y Ada (para aplicaciones de programación desistemas). Aunque existen actualmente en uso mas de 100 lenguajes de este tipo y muchos deellos se encuentran en varias versiones. Figura 2.3 Niveles de los lenguajes de programaciónLos lenguajes de muy alto nivel, que aparecieron por primera vez en la década de 1960, secrearon para cubrir necesidades especializadas del usuario. Con ellos, solo se necesita 14
    • prescribir lo que la computadora hará en vez de como hacerlo. Este tipo de recurso facilitamucho la programación. De este modo, los lenguajes de alto y bajo nivel a veces se conocencomo lenguajes procedurales, debido a que requieren que las personas escribanprocedimientos detallados que indiquen a la computadora como realizar tareas individuales.Los lenguajes de muy alto nivel, en contraste reciben el nombre de lenguajes no procedurales.Los lenguajes de muy alto nivel presentan algunas desventajas graves: carecen de flexibilidad;generalmente, cada uno está diseñado para un tipo específico de tarea. No se puede, porejemplo, procesar una nómina con un lenguaje de procesamiento de palabras. Debido aque se enfocan a aplicaciones específicas, los lenguajes de muy alto nivel a veces se conocencomo lenguajes dependientes del problema. Una segunda desventaja principal es que haymuchas aplicaciones importantes que no son cubiertas por estos lenguajes. No obstante, en lasáreas para las cuales se encuentran disponibles, ofrecen obvias ventajas, tanto a losprogramadores como a los usuarios.2.3.4 El proceso de la programaciónOriginalmente, el proceso de programación se realizaba por el laborioso método de expresartodos los algoritmos en el lenguaje de máquina. El primer paso dado para eliminar estascomplejidades fue acabar con el empleo de dígitos numéricos para representar códigos deoperación y operandos del lenguaje de máquina. Así se extendió la costumbre de asignarnombres mnemónicos a los diversos códigos de operación y usarlos en vez de larepresentación hexadecimal durante el proceso de diseño. Por ejemplo, en vez del código deoperación para cargar un registro, el programador usaría el nombre LDA (Cargar valor en elregistro acumulador). En el caso de los operandos, se diseñaron reglas para que elprogramador pudiera asignar nombres (llamados identificadores) a posiciones de memoria yusar tales nombres en una instrucción en vez de las direcciones de memoria.Se podría considerar la programación como el conjunto de actividades y operacionestendientes a indicar a la computadora como debe realizar las funciones previstas en elalgoritmo.El proceso completo se enlista a continuación. 1. Detectar o definir un problema 2. Diseñar un Algoritmo de Solución 3. Escribir un programa 4. Ejecutar el programa 5. Validar resultados 6. Depurar el programa Volver a (4) 15
    • Este proceso no ha cambiado a lo largo del tiempo ni con la evolución de los lenguajes deprogramación. En todo caso, cada nueva generación (lenguaje) ha ido haciendo más fácil y /o eficiente, una o más etapas de este proceso.2.4 Tipos de Sistemas de CómputoUn sistema es una colección de elementos y procedimientos que interactúan para cumplir unameta. Un partido de fútbol, por ejemplo, se juega conforme a un sistema. Consta de unacolección de elementos -dos equipos, un campo de juego, árbitros- y procedimientos -lasreglas del juego- que interactúan para determinar qué equipo es el ganador. Un sistema detránsito es una colección de personas, máquinas, reglas de trabajo, tarifas y programas quellevan a las personas de un lugar a otro. Y un sistema computacional es una colección depersonas, hardware, software, datos y procedimientos que interactúan con el objeto derealizar tareas de procesamiento de datos.La función de un sistema, ya sea manual o computarizado, es mantener a la organización bienadministrada y funcionando sin altibajos. Los sistemas se crean y modifican en respuesta a lasnecesidades cambiantes de una organización y a las condiciones en transformación del medioque la rodea. Cuando surgen conflictos en un sistema existente o se necesita un nuevosistema, el desarrollo de sistemas entra en acción. El desarrollo de sistemas es un proceso queen forma muy general consta del análisis de un sistema, el diseño de uno nuevo o lasmodificaciones a uno ya existente, la adquisición del hardware y software necesarios y hacerque un sistema nuevo o modificado trabaje.2.4.1 Aplicaciones MonolíticasLos procesos contables sirvieron de punto de entrada a los primeros proyectos informáticos.Paulatinamente los sistemas asimilaron una mayor cantidad de responsabilidadesconvirtiéndose así en grandes aplicaciones monolíticas, bloques de software cimentadossobre otros bloques. En esta arquitectura, toda la "inteligencia" del sistema está concentradaen una computadora central (host) y los usuarios interactúan con ella a través de terminalesque reciben las instrucciones por medio de un teclado y las envían al host. Esta interacción noestá limitada a cierto hardware, ya que los usuarios pueden conectarse usando PCs oterminales de trabajo de Unix, etc.Una limitación de esta arquitectura es que rara vez soporta interfaces gráficas, o puedeacceder a múltiples bases de datos.2.4.2 Modelo Cliente / ServidorDebido a la complejidad que pueden alcanzar las redes de computadoras, estas se organizanen una serie de capas o niveles, cada una construida sobre la inferior [Tanembaum, 1997]. LaArquitectura de la red indica el número de capas, su nombre, contenido y función, sinembargo, en todas las arquitecturas el propósito de cada capa es ofrecer servicios a las capassuperiores, estableciendo una conversación con las capas similares de otros equipos. 16
    • Las reglas y convenciones que se siguen en estas conversaciones se conocen como protocolosde comunicación entre capas. Y el conjunto de capas y protocolos se conoce comoarquitectura de red.La arquitectura "peer to peer" se refiere a un tipo de red en la que cada estación de trabajotiene capacidades y responsabilidades equivalentes, por lo que es económica y fácil deimplementar, aunque cuando está sometida a grandes cargas de trabajo no ofrece eldesempeño de otras arquitecturas.El termino cliente / servidor fue usado por vez primera en la década de los 80 para referirse alas computadoras personales (PC) conectadas a una red. El modelo Cliente / Servidorcomo se concibe actualmente empezó a ganar aceptación a finales de esa misma década.En este modelo, un cliente es un ente que solicita servicios o recursos, mientras que elservidor es el ente que los ofrece. Estos entes pueden ser computadoras o procesos en una red.Los servicios ofrecidos pueden ser archivos, dispositivos e incluso procesamiento deinstrucciones.El rol del proceso servidor puede ser asumido por el mismo sistema operativo, por un equipodespachando archivos en una red e incluso por otra computadora de las mismas característicasfísicas que el cliente pero con la habilidad de ofrecer un servicio del que aquel carece.[Sadoski, 1997]Desde el punto de vista de la programación, se considera a la arquitectura cliente / servidorcomo la extensión lógica de la programación modular.La programación modular se basa en el hecho de que al separar una pieza de software grandeen partes más simples, crea la posibilidad de que se faciliten el desarrollo y mantenimiento deltodo. La arquitectura cliente / servidor va más adelante reconociendo que estos módulos norequieren ejecutarse dentro del mismo espacio de memoria. La continuación de esteconcepto es que los clientes y servidores se ejecuten en las plataformas de hardware ysoftware que resulten más apropiadas para el desempeño de sus funciones. Los programasservidores normalmente reciben las solicitudes de los programas clientes, ejecutan algún tipode manipulación con los datos (recuperar datos de una Base de Datos, efectuar algún cálculo,implementar alguna regla de negocio, etc.), y envían la respuesta apropiada al cliente.En el modelo cliente / servidor, el procesamiento de la computadora se divide entre los"clientes" de una red y los "servidores", con cada función asignada a la máquina con máscapacidad para llevarla a cabo (la parte del cliente en una aplicación corre en el sistema delos clientes, y la parte de la aplicación correspondiente al servidor, en la o las computadorasservidores). El usuario generalmente interactúa solo con la porción del cliente de laaplicación, que en general consiste en la interfaz de usuario, el proceso de captura de datos, laconsulta a la base de datos y la obtención de informes. El servidor realiza las funciones defondo, no visibles por los usuarios, como la administración de los dispositivos periféricos o elcontrol del acceso a las bases de datos compartidas. 17
    • Generalidades del Procesamiento en ServidoresEl sistema es basado en Web por ende entendemos que el protocolo más importante es elHTTP. Este protocolo define como los navegadores y los servidores Web se comunican unocon otro. Está basado en texto y es transmitido sobre conexiones TCP.Cómo Funciona el protocolo HTTP: En primer instancia el usuario teclea la dirección deinternet la cual esta es traducida por un servidor DNS a una IP publica y al llegar la petición alservidor, este la regresa al usuario el código y el Dispositivo codifica (Figura 2.4) Como funciona HTTP Cliente http://www.cursoaspnet.c om/inicio.html Servidor Internet DNS IP=66.45.26.25 Puerto: 80 HTTP Request www.cursoaspnet.com IP = 66.45.26.25 inicio.html <html> HTTP Response <body> Bienvenidos al Curso ASP.NET </body> </html> Figura 2.4. Describiendo el procedimiento que un cliente ve una página web.En el corazón de toda aplicación Web genuina están los HTML FormsUn HTML Form es la porción de un documento HTML que aparece entre las etiquetas<form></form> (figura 2.5) Figura 2.5. Visualización a partir de código a el explorador 18
    • Procesamiento en el servidorConstruir la parte del cliente es “fácil”, sólo es HTMLLa parte difícil es la construcción de la lógica del lado del servidor. “Algo en el servidor”,tiene que interpretar las entradas del usuario enviadas junto con el form y generar lacorrespondiente salida. (Figura 2.6)Antes y después del procesamiento:Figura 2.6. Procesamiento por parte del servidor, y como lo convierte para que el clientepueda visualizarla.La división exacta de las tareas depende de los requerimientos de las aplicaciones,requerimientos de procesamiento, número de usuarios y recursos disponibles. Entre las tareasdel cliente pueden incluirse la obtención de las entradas del usuario, hacer solicitudes de datosa los servidores, realizar cálculos en datos locales y desplegar resultados. La parte delservidor capturará o procesará los datos.En resumen, las características básicas de la arquitectura son: La combinación de un cliente o front-end que interactúa con el usuario, y un servidor o back-end que interactúa con un recurso compartido. El proceso cliente contiene la lógica específica de la solución y ofrece una interfaz entre el usuario y el resto del sistema, mientras que el proceso servidor actúa como el motor de software que administra los recursos compartidos (bases de datos, impresoras, módems, etc.). Los procesos front-end y back-end ocupan recursos fundamentalmente diferentes (espacio en disco, velocidad del procesador, dispositivos de entrada / salida, etc.). El sistema operativo también puede ser diferente. Típicamente se trata de ambientes heterogéneos, conformados por computadoras de diferentes marcas. El cliente y el servidor se comunican a través de una conjunto bien definido de interfaces de programas - aplicación (APIs, por sus siglas en ingles) o de llamadas a Procedimientos Remotos (RPCs). 19
    • Una característica muy importante de estos sistemas es su escalabilidad. Ya que pueden ser escalados tanto horizontalmente (añadiendo o quitando clientes), como verticalmente (migrando los servicios a equipos más potentes) con un impacto mínimo en su desempeño general. El modelo cliente / servidor requiere que los programas de aplicaciones sean escritos como dos componentes separados de software que corren en distintas máquinas pero que operan como una sola aplicación.2.4.3 Sistemas DistribuidosLos sistemas distribuidos surgen en 1993, y se basan en el uso de modelos de negociocompartidos y reusables. El negocio se define entonces como un sistema compuesto a su vezde otros subsistemas de negocio. Una vez más, se trata de una extensión del modelo cliente /servidor en donde los equipos que ofrecen servicios se pueden encontrar separados unos deotros.El funcionamiento de Internet está basado en este concepto, ya que básicamente, se puedeconsiderar al Web como un sistema distribuido de hipermedia [Wilde,1999] en el que lainformación se encuentra almacenada en forma de páginas Web, que se encuentranentrelazadas unas con otras mediante ligas URL.Existen programas cliente, llamados navegadores, y programas servidores localizados endiferentes lugares geográficos. El programa servidor se ejecuta en un host de Internet, yresponde a las solicitudes de información que le hacen los clientes. Cuando recibe unasolicitud, el servidor debe responderla en forma simple, dejando al cliente o navegador, laresponsabilidad de determinar la forma apropiada en que esta información debe ser mostradaal usuario. Este mecanismo de trabajo facilita que en los servidores se pueda manteneralmacenada información en formatos muy diferentes.El navegador es entonces un programa que se usa para tener acceso a los servidores de Weby que despliega los documentos recuperados de esos servidores. Desde el punto de vista de latecnología cliente-servidor, un navegador es el cliente del servidor de Web.2.4.4 Cómputo MóvilActualmente, la comunicación de datos, esto es, el intercambio de información (archivos,faxes, correo electrónico, acceso a Internet) se realiza usando redes de telecomunicación yaexistentes. Los sistemas de comunicación móvil con voz (teléfonos celulares, radios deonda corta, etc.) están ampliamente establecidos en todo el mundo y en los últimos años hahabido un rápido crecimiento en el número de suscriptores de las diferentes redes de telefoníacelular. Una extensión de esta tecnología es la habilidad de enviar y recibir datos a través deestas redes celulares, siendo este el principio básico del Cómputo Móvil.La tecnología de intercambio de datos a través de comunicación móvil se a convertidoen una rama importante de la industria, evolucionando rápidamente y permitiendo hoy en día 20
    • que sus usuarios puedan transmitir y recibir datos desde lugares remotos, a través dedispositivos como teléfonos celulares y módems conectados a laptops y agendas electrónicas.El cómputo móvil permite sincronizar y controlar procesos y eventos donde el acceso a datose información es prácticamente imposible por otros medios. Algunos ejemplos deaplicación del cómputo móvil son:El cómputo móvil facilita los servicios de venta, facturación, cobranza y calidad en el servicioobteniendo y proporcionando datos e información en el lugar y en el momento donde serealiza la operación. Por ejemplo, proporcionando información sobre productos almacenadoso en producción, informando sobre el status o localización de un pedido ya realizado oinformando sobre el estado crediticio de un cliente, confirmando cantidades y materialesrecibidos por el cliente y optimizando transacciones de venta y producción, capturando losdatos del cliente y llevándolos directamente a los almacenes de envío o áreas de producción.En otros países, el cómputo móvil ha resultado de mucha utilidad en eventos especiales deconteo o levantamiento de encuestas: Aplicando encuestas sobre preferencias o evaluandoalgún producto o servicio, contando periódicamente artículos de venta en estantesespecializados y enviando esta información a centros de logística (periódicos, revistas).A través del uso de circuitos integrados (microlocalizadores) y ayuda satelital es posiblerastrear productos, unidades móviles o bien personas, permitiendo replantear rutas de servicioo transporte en casos de emergencia (accidentes, robos), proponer mejores rutas de acceso,localizar unidades para el control de paradas y consumo de combustible, dar seguimiento aunidades de transporte bancario.2.5 Tipos de aplicacionesEl PalmOS almacena tanto datos como programas en forma de bases de datos.En general, se pueden desarrollar tres tipos de aplicaciones para la plataforma Palm.2.5.1 Aplicaciones Web reducidasUna aplicación Web en un Palm es un conjunto de paginas HTML comprimidas en unformato especial (PQA). El funcionamiento de una aplicación de Web reducida es elsiguiente: las páginas Web comprimidas residen el Palm y los usuarios rellenan losformularios HTML suministrados por estas paginas. Cuando el usuario pulsa el botón enviar,la aplicación Web envía la petición a un servidor proxy. Este servidor la traduce en unapetición HTTP, y la reenvía al servidor Web adecuado. Por norma general este servidor Webejecuta un script CGI que genera la pagina de respuesta. Esta pagina es reenviada de nuevo alproxy que la comprime y la descarga al dispositivo para que pueda presentarse.Estas páginas HTML comprimidas deben ser compactas y pequeñas, considerandoque se van a mostrar en la pequeña pantalla de la Palm. La ejecución de estas páginas web serealiza mediante el visor de aplicaciones web. Cuando el usuario pulsa el icono de unaaplicación web, se lanzará primero el visor y este mostrará el contenido de la pagina web. 21
    • 2.5.2 Aplicaciones estándar de PalmSe definen como aplicaciones con un sólo hilo de control, dirigidas a eventos y mono-tarea.Esto implica que sólo habrá una aplicación en ejecución en un instante de tiempo dado.En general, los usuarios "navegan" entre las diferentes aplicaciones, en lugar de salir oterminar aplicaciones como en una PC.Por otro lado, aunque las aplicaciones Palm están dirigidas a eventos, también pueden realizarfunciones fuera del ciclo de eventos, como respuesta a otras peticiones del sistema operativo.Por ejemplo, si se realiza la búsqueda de una palabra, se intentará encontrar en todos losregistros de todas las aplicaciones esa palabra. Esto implica que se lanzará cada una de lasaplicaciones y se le pedirá que verifique sus registros para ver si contiene esa palabra.Las aplicaciones Palm OS se compilan en archivos PRC (Palm Resource File). Un mismofichero PRC correrá en todos los dispositivos Palm OS.2.6 Los componentes de ASP.NETPrimeramente esta el cliente quien va a recibir el servicio una conexión a Internet y ServiciosWeb con los cuales se le va atender las peticiones al cliente del lado del servidor nosencontramos con las bases de datos y la aplicación en ASP.NET, esta contiene la pagina quese visualiza y su respectivo código el cual contiene la programación necesaria (llamado code-behind) para las funciones del software, algo importante es el web.config que es el archivoprincipal de configuración que contiene parámetros globales tanto para conexión yespecificaciones referentes al sistema (figura 2.7). Componentes de una aplicación ASP.NET Cliente ASP.NET Web Server WebForm1.aspx Global.asax Output Cache WebForm1.aspx.vb Web.config Internet WebForm2.aspx BIN WebForm2.aspx.vb Comp. Comp. Servicios Web Database Figura 2.7. Componente de aplicación ASP.NETASP.NET es el framework de programación web dentro de .NETPermite desarrollar aplicaciones Web con un modelo “similar” al utilizado para aplicacionesWindows y dispositivos móviles 22
    • El componente fundamental de ASP.NET es el WebFormIndependencia del cliente (navegador, S.O., dispositivo físico, etc.)Permite utilizar cualquier lenguaje .NETPermite desarrollar Servicios Web XMLPrimera solicitudCuando el cliente solicita una página Web por primera vez, se genera elSiguiente conjunto de eventos:1. El navegador cliente envía una solicitud GET HTTP al servidor.2. El parseador ASP.NET interpreta el código fuente.3. Si el código no se ha compilado todavía en una biblioteca de enlace dinámico (DLL),ASP.NET invoca el compilador.4. El CLR carga y ejecuta el código Microsoft intermediate language (MSIL) (Unai Zorrilla)(figura 2.8). Modelo de ejecución de ASP.NET Primera Solicitud Parser Compilador <% ... %> <% ... %> Inicio.aspx http://localhost/inicio. aspx Assembly Memoria Cache Assembly en Assembly en MSIL MSIL Cliente HTTP Runtime Servidor Figura 2.8 Modelo de cómo opera ASP.NET como primera solicitud 23
    • Segunda solicitudCuando el usuario invoca la misma página Web por segunda vez, se genera el siguienteconjunto de eventos:1. El navegador cliente envía una solicitud GET HTTP al servidor.2. El CLR carga y ejecuta inmediatamente el código MSIL que ya se ha compilado durante elprimer intento de acceso del usuario (Unai Zorrilla) (figura 2.9). Modelo de ejecución de ASP.NET (Cont.) Siguientes Parser Solicitudes Compilador <% ... %> <% ... %> Inicio.aspx http://localhost/inicio. aspx Assembly Memoria Cache Assembly en Assembly en MSIL MSIL Cliente HTTP Runtime Servidor Figura 2.9 Siguiente solicitud en ASP.NET2.7 Las aplicaciones web en ASP.NET + el IISIIS es el servidor Web de la plataforma WindowsLas aplicaciones Web solo pueden existir en una ubicación que es publicada por IIS como unDirectorio VirtualDirectorio Virtual: es un recurso compartido identificado por un alias y que representa unaubicación física en el servidorEl famoso //localhost hace referencia al directorio raíz del servidor webPor default, //localhost “apunta” a C:InetpubwwwrootVS.NET por default crea las aplicaciones web bajo el directorio raíz, ej.:MiAplicacionVirtual: http://localhost/MiAplicacionFísica: C:InetpubwwwrootMiAplicacionPodemos usar IIS para definir un directorio virtual donde alojar nuestras aplicaciones Web,diferente al predeterminado (Rodrigo Salinas) 24
    • En esta segunda parte se planteara información acerca de los dispositivos móviles:.NET Compact Framework.NET Compact Framework es un rico subconjunto de .NET Framework, proporcionando lasmismas ventajas que que .NET Framework, pero diseñado especificamente para dispositivoscomo PocketPC, Smartphone. .NET Compact Framework simplifica el proceso de creación ydesplegado de aplicaciones en dispositivos móviles mientras permite al desarrolladoraprovecharse de todas las capacidades del dispositivo (Unai Zorrilla).Arquitectura de .NET Compact FrameworkLa siguiente imagen ilustra (figura 2.10) la arquitectura de .NET Compact Framework: Figura 2.10. Arquitectura de Compact Framework2.8 Diferencias con .NET FrameworkEs esta sección trataremos de desglosar las diferencias más significantes entre .Net CompactFramework y .Net Framework.Clases y TiposCompact Framework soporta un subconjunto de la librería de clases base de .NETFramework, este subconjunto es semánticamente compatible con las clases de .NetFramework (Unai Zorrilla).ControlesCompact Framework soporta muchos de los controles Windows Forms de .Net Framework yademás añade una serie de nuevos controles específicos para la plataforma (Unai Zorrilla).DatosCompact Framework soporta un subconjunto de la implementación de ADO.NET e incluyeSql Server Mobile. OleDb no está soportado en Compact Framework. 25
    • Novedades en .NET Compact Framework 3.5Microsoft .NET Compact Framework 3.5 extiende las características de versiones anterioresde .NET Compact Framework aún más.Microsoft .NET Compact Framework 3.5, puede ser instalada en la memoria RAM utilizandoun fichero de extensión CAB.Si lo que queremos es instalar Microsoft .NET Compact Framework 3.5 en la memoria ROMde nuestro dispositivo, entonces tendremos que obtener la descarga optimizada y adecuadapara el tipo de dispositivo en la que lo queremos instalar (Unai Zorrilla).Lista de dispositivos y plataformas soportadas en .NET Compact Framework 3.5. (AnexoTabla 2.1)Hablando de novedades en Microsoft .NET Compact Framework 3.5, debemos detenernos enWCF, que representa las siglas de Windows Communication Foundation.Microsoft .NET Compact Framework 3.5 soporta WCF, que consiste en un modelo que nospermitirá desarrollar aplicaciones de tipo SOA (Service Oriented Applications).De esta forma, un cliente podrá conectarse con su dispositivo a un servicio Web de WCFejecutándose en un sistema no portátil para llevar a cabo sus tareas.Adicionalmente, en Microsoft .NET Compact Framework 3.5, tenemos la posibilidad detrabajar con un nuevo transporte de datos de WCF, hablamos del transporte de correo deMicrosoft Exchange Server, que puede ser utilizado dentro de .NET Framework tanto endispositivos no portátiles como en dispositivos con Compact Framework (Unai Zorrilla).La otra novedad destacable ya ha sido enunciada, hablamos de LINQ.LINQ o Language INtegratedf Query, nos permite generar sentencias o instrucciones deconsulta sobre datos y objetos que están en memoria, accediendo a ellos de una forma máságil, rápida y directa.LINQ nos proporciona la posibilidad de trabajar con datos relacionales, documentos XML,objetos en memoria, etc. (Unai Zorrilla).Por otro lado, hay muchos controles y componentes de Microsoft .NET Compact Framework3.5 que han sido agregados y mejorados para dar más cobertura a los desarrolladores a la horade abordar sus aplicaciones Software.Ahora podremos agregar gráficos a los controles TabPage, Panel, Splitter y PictureBox.Las fuentes ClearType están ahora soportadas pudiéndose modificar la propiedad BackColorde todos los controles.Para el control ComboBox se han agregado las propiedades SelectionStart y SelectionLength.Se ha agregado soporte para SoundPlayer, permitiéndonos ahora, hacer sonar múltiplessonidos en nuestros dispositivos, siempre y cuando el hardware del dispositivo soportecaracterísticas de combinación de sonidos.También se ha agregado soporte para el nombre de espacio System.IO.Compression. Enconcreto, se han agregado las clases CompressionMode, DeflateStream y GZipStream.También está soportada la propiedad AutomaticDescompression.Respecto a los delegados, Microsoft .NET Framework 3.5 soporta el método CreateDelegate(Unai Zorrilla). 26
    • Microsoft .NET Compact Framework 3.5, soporta también ahora el CLR Profiler, que antessolo estaba disponible en Microsoft .NET Framework, y el cual nos permitirá ver nuestrasaplicaciones en memoria y en la pila de ejecución, investigando el comportamiento delrecolector de basura en .NET.Para obtener el CLR Profiler, deberemos instalarnos los Power Toys para Microsoft .NETCompact FrameworkMostraré cómo desarrollar aplicaciones con una extensión de. NET Framework, llamadoMicrosoft Mobile Internet Toolkit (MMIT) o simplemente .NET Compact Framework(W3schools).. NET Mobile. NET Mobile es una extensión para Microsoft ASP.NET y. La de Microsoft NETFramework..NET Compact Framework es un conjunto de server-side Forms para crear aplicaciones paradispositivos móviles inalámbricos (W3schools).Estos controles producir resultados distintos para los diferentes dispositivos mediante lageneración de WML, HTML o HTML compacto.2.9 Software para Restaurantes libreQuickOrder es un software para restaurantes libre, pizzerias y cervecerias.Puede coger los pedidos a la mesa con el asistente digital personal (PDA); los datos seenviarán a la computadora en caja, dotada de pantalla táctil. Automáticamente, el programaenvía los pedidos a la impresora de la cocina y a la impresora del bar.Para imprimir el documento fiscal haga clic en la pantalla táctil de la mesa que aparece en laventanaAdemás, es multiplataforma ya que está disponible para linux (ubuntu), mac, windows xp ywindows mobile.Otras características del programa son: El programa no sólo es muy fácil de usar, sino también posee una gráfica muy intuitiva La ventana muestra la situación de las mesas. El verde indica las mesas libres, el amarillo indica las mesas ocupadas. El rojo indica las mesas ocupadas desde hace más de una hora El azul indica las mesas que están a punto de liberarse. 27
    • III Materiales y Métodos3.1 Ubicación del estudioEl lugar elegido para realizar la implementación del proyecto radica en la Cd. XicotencatlTamaulipas, la dirección es Calle Hidalgo #211, Zona Centro, y el nombre del negocio esRestaurant-Bar “Iguanas”En primera instancia se dio lugar ya que el negocio tenía la necesidad de un sistemamanejable y acorde a las necesidades del negocio y me contacte con el dueño para proponer laadministración vía Software y con ello inicio el proyecto.3.2 Fecha de Inicio del trabajo y duración probableTentativa de inicio es en Febrero del 2013 y tendrá una duración de un mes y medio.3.3 Requisitos de Hardware Para el desarrollo de la aplicación utilizo lo siguiente: 1. Laptop con procesador Intel Pentium Dual-Core a 2.00 Ghz con S.O. Windows 7 de 64 bits con memoria RAM de 3 GB 2. Servidor con 2 GB de RAM, Procesador Intel I3 disco duro de 500 GB 28
    • 3.4 Requisitos de software.Para el desarrollo de aplicaciones móviles con NET Mobile, uso los siguientes componentes: 1. Windows 7 Professional 2. Visual Studio .NET en mi caso el 2005 (hay soporte en VS 2003, 2008 y 2010) 3. Internet Explorer 8 4. Un simulador Windows Phone 5. Sql server 2005 6. Instalar MMIT (. NET Mobile). Quickorder3.5 Colección de datosUn cliente solicita una página web:-La petición viaja por el Internet-La solicitud se recibe por IIS-La petición es manejada por el .NET Framework-La página solicitada es compilada por ASP.NET-. NET Mobile maneja los requisitos de dispositivos móviles-La página se devuelve al cliente (W3schools).3.5.1 Cómo empezarDesarrollo de una aplicación web para móviles con ASP.NET es muy fácil: 1. Crear una página ASP.NET 2. Incluya System.Mobile.UI 3. Agregar controles móviles a la páginaLas aplicaciones móviles se pueden probar y ver con emuladores diferentes.Usando su navegadorDesde las páginas web para móviles detectar el navegador, puede probar las aplicacionesmóviles con un navegador estándar.Cuando una página web móvil detecta un navegador web, se producirá la salida HTML. 29
    • Simuladores-Openwave Simuladores.- El navegador móvil de Openwave es el navegador más utilizado enInternet, teléfonos móviles habilitados.-El kit de herramientas de Internet móvil de Nokia.- Este conjunto de herramientas contienelos emuladores para la mayoría de los diferentes dispositivos de Nokia.-Windows Plataforma de desarrollo para móviles (W3schools).3.5.2 Operando en la red3.5.3.1 Access Point (con funciones adicionales)Se utiliza un Access Point que además tiene funciones de Routing y Switching de marcaLinksys, de igual manera se puede utilizar un Access Point de marca Cisco que losproporciona Telmex al contratar su servicio infinitum.Es necesario de acuerdo a la finalidad del proyecto, también permita la encriptación de la redasí no haya fuga de información y mucho menos problemas que reduzcan credibilidad a lainformación a almacenar.Para que la interacción entre el dispositivo móvil y el servidor no se vea afectado por el costodel proceso de encriptación se opto por utilizar encriptación WEP la cual es perfectamentesoportada por el dispositivo móvil, aun así se agrega subnetting usando vlan’s para que esteseparada de la red en caso de que esta pueda ser utilizada para proporcionar servicio deinternet a los clientes.3.5.4 Métodos de autenticaciónPara tener acceso al sistema se contara con una autenticación basada en formularios esta traeconsigo ya que en aplicaciones basadas en web ya configurado el servidor permitirá si elequipo móvil mantendrá una sesión de conexión y con ello efectuar la interacción deinformación. 30
    • 3.6 Plan de desarrollo del proyectoEl siguiente conjunto de operaciones muestra las actividades a realizar en cuanto el sistema deinformación (con días hábiles),1er Mes DIA OBSERVACIONES 1 2 Obtención de los requerimientos del sistema 3 4 Realizar el diagrama entidad-relación 7 8 9 Modelando el Diagrama de actividades 10 11 Visualización de los procesos mediante casos de uso. 14 15 Identificación de los procesos principales que se emplean en el sistema 16 17 Realización de diagrama de procesos para aclarar los primeros puntos que se 18 realizaran. 22 23 Verificación de las herramientas con otro software realizado con el fin de ver 24 que las herramientas funcionan correctamente 25 Creación de diagrama de base de datos y agregar varias tablas. 29 30 Verificación de buen funcionamiento del IIS. 31 Codificación de módulos del sistema de información2do Mes DIA OBSERVACIONES 1 2 Pruebas en el equipo de cómputo donde se desarrolla el software. 3 4 Instalación las herramientas que se utilizaran en la elaboración de la codificación de las pantallas del proyecto así como también el manejador de 7 la base de datos en el servidor. 8 Configuración de la red para la prueba 9 Pre visualización de cómo funciona el sistema. 10 11 14 Elaboración del manual de usuario. 15 16 31
    • 3.7 Costo de la InversiónMaterial, software (licencias) CostoServidor $5,000 M.N.Terminal Tonta $1,500 M.N.Dispositivo móvil $3,000 M.N.Windows 7 * $800 M.N.Windows server 2008 * $2,400 M.N.Access Point $ 500 M.N.Aplicación desarrollada $9,500 M.N.TOTAL $22,700 con Windows 7 en el server*El cliente recuperará la inversión en un tiempo estimado de 13 meses 32
    • IV ResultadosDe acuerdo a encuestas hacia pequeñas y medianas empresas el uso de ordenadores para el71% de de las encuestadas no pasa de 5 ordenadores en el negocio, se puede deducir que lasPYME’s tienen noción y cierto control de los procesos administrativos apoyados con lastecnologías de información, podría ser el caso de que no pueden costear una infraestructura dered más sofisticada ya que también se asume que existe una contraparte de aplicar un ERP,pero ellos tienen en cuenta que el uso de las TIC’s son esenciales para fortalecer la empresa;esto no quiere decir que al tener esto equipos tengan aplicado un sistema ERP quizá si en lomínimo pero no en todas las fases administrativas y mucho menos que usen businessintelligence. 33
    • De acuerdo al sector en el cual trabajan, nos damos cuenta que las empresas de serviciostanto de turismo (que es donde aplicaría en la implementación del proyecto) hay ciertaaceptación por el uso de equipos de computo, tal que; este sector regularmente es de tipopunto de venta y por lo tanto no requiere de muchos equipos, pero lo que si requiere es deestrategias para que los clientes sientan comodidad de forma sofisticada y novedosa; por lotanto, es eficaz dar presentación de modernidad al negocio (por ejemplo, la toma de pedidos apartir del dispositivo móvil) la cual marcará la diferencia ante la competencia.Nótese desde este grafico que el 98% las PYME’s tienen apoyo por parte de las TIC’s en almenos una actividad, lo cual da hincapié al ingreso de sistemas ERP’s, quizá siendo másrealistas para las medianas empresas que verían más necesario el Business intelligence.¿Tiene su organización una solución BI móvil en funcionamiento? Si, hemos implementado una6 No, pero lo haremos en los próximos 6 meses6 No, pero lo haremos en aproximadamente un año10 No, y no lo estamos planeando12Total Votes: 34 (Jorge García)De acuerdo a una encuesta en plataforma web los administrativos están consientes de laimportancia de implementar una solución BI móvil y de las ventajas que ello significa para suorganización no lo ven como un lujo. 34
    • Se deduce de esta grafica que las empresas que utilizan herramientas de Business Intelligencegestionan mejor las relaciones externas (clientes) e internas (entre diferentes departamentos ypara con los empleados). El BI es crucial en departamentos de marketing y comerciales, ya nosólo para prever tendencias y ajustar las estrategias de la compañía, sino para dar respuestarápidas y en pocos clicks a multitud de preguntas que se hacen los directores comerciales,como por ejemplo:- Realizar un control del desempeño comercial, evaluando que líneas de acción estánfuncionando mejor dando un soporte a la toma de decisiones basadas en información real a lahora de decidir dónde invertir en marketing y ventas.- Realizar análisis sobre la rentabilidad de los diferentes perfiles de clientes, productos olíneas de negocio. Permitiendo tomar decisión que afecten directamente a la cuenta deresultados. - Realizar un análisis detallado de clientes. El BI permite la segmentación de clientes yel estudio de su comportamiento. Puede informar sobre el impacto de los precios y las ofertaso campañas en cada segmento. 35
    • V ConclusionesLa eficiencia dispone y aprovecha adecuadamente los recursos y reduce el coste necesariopara conseguir el objetivo deseado. Un Business Intelligence en el departamento comercial,sería una herramienta al servicio de su eficiencia en conjunto con un sistema ERP.Asumiendo que ofrecer una solución que en muchos casos utilizarán de 5 a 15 usuarios y queseguro requerirá la adquisición de nuevo hardware para que los tiempos de respuesta seanaceptables, no es una propuesta que puedan asumir la gran mayoría de empresas del sector deservicios o de turismo.Además no todos los procesos son susceptibles de volverse móviles. Si bien los nuevosesquemas de entrega IT, como el cómputo en la nube, han dado nuevos bríos a lasaplicaciones móviles. Insertándolas en áreas como business intelligence, seguimiento ainventarios, aprobaciones ejecutivas, alertas y demás, las empresas deben incluir la movilidadde forma concienzuda y por pasos.Las aplicaciones móviles pueden dar a la organización mucho más que una reducción decostos y generando verdadero valor al negocio. Este seminario provee un ejemplo de unaaplicación móvil el cual lleva a cabo eficiencia de procesos administrativos y ayuda a laoptimización de recursos, obteniendo como resultado una perfecta comodidad al usuario(dueño del restaurante) por otorgar un mejor control de su empresa. Coadyuva no solo a labuena presentación del negocio sino también proporciona que baje el índice de robos y olvidode pedidos ya que todo se registra en la fuente de datos. 36
    • VI BibliografíaUnai ZorrillaCurso online compact framework 3.5 (Curso descargado)Ana Luisa Chacón OlveraDisponible en World Wide Web:http://www.gestiopolis.com/canales2/gerencia/1/tecinfoana.htmRodrigo SalinasConsultor Independiente .NET, J2EE y Business IntelligenceRelator de MicrosoftConsultor.net@gmail.comNorberto Rojas ReyesDisponible en World Wide Web:http://north18rojas.spaces.live.com/Blog/cns!4C4C81F348B07461!259.entryMicrosoft CorporationDisponible en World Wide Web: http://msdn.microsoft.com/en-us/library/ms172550(printer).aspxLa biblia del C#Jeff Ferguson, Brian Patterson, Jason Beres, Pierre Boutquin y Meeta Gupta, EdiciónEspañola, Editorial ANAYA, 2003, 836 p.Del Dago, Gustavo. Programación sobre dispositivos móviles, Revista Solo Programadores.Madrid, España. 8 (109):16-20 Febrero 2004W3schoolsDisponible en World Wide Web:http://www.w3schools.com/dotnetmobile/default.asp 37
    • Jorge GarcíaDisponible en World Wide Webhttp://blog.technologyevaluation.com/foro-empresarial/2010/12/02/bi-se-moviliza/Observatorio AragonDisponible en World Wide Web:http://www.observatorioaragones.com/tic/empresas2008/indicador.php?tipo=numpc&categoria=tamanoAníbal GoicocheaDisponible en World Wide Webhttp://anibalgoicochea.com/2010/02/25/sap-businessobjects-para-la-pyme-otra-propuesta/ 38
    • VII Anexos.NET Compact Framework version Device Platform Pocket PC 2000 Pocket PC 2002 1.0 Pocket PC Windows Mobile 2003 for Pocket PC Windows Mobile 2003 for Pocket PC SE Windows Mobile 5.0 for Pocket PC Windows Mobile 2003 for Smartphone 1.0 Smartphone Windows Mobile 5.0 for Smartphone Windows CE 4.1 1.0 Other Windows Embedded CE devices Windows CE 4.2 Windows CE 5.0 Windows Mobile 2003 for Pocket PC Windows Mobile 2003 for Pocket PC SE 2.0 Pocket PC Windows Mobile 5.0 for Pocket PC Windows Mobile 6 Professional Windows Mobile 5.0 software for Smartphone 2.0 Smartphone Windows Mobile 6 Standard Windows CE 4.2 2.0 Other Windows Embedded CE devices Windows CE 5.0 Windows Embedded CE 6.0 Windows Mobile 2003 for Pocket PC Windows Mobile 2003 for Pocket PC SE 3.5 Pocket PC Windows Mobile 5.0 software for Pocket PC Windows Mobile 6 Professional Windows Mobile 5.0 software for Smartphone 3.5 Smartphone Windows Mobile 6 Standard 3.5 Other Windows Embedded CE devices Windows Embedded CE 6.0 Tabla 2.1 (Microsoft Corporation) 39