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

55
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-bar por medio de aplicaciones para dispositivos móviles. Alumno: Miguel Ángel Gutiérrez Orozco Dr. Joel Gutiérrez Lozano

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

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

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-bar por medio de aplicaciones para dispositivos móviles.

Alumno: Miguel Ángel Gutiérrez Orozco

Dr. Joel Gutiérrez Lozano

Cd Victoria, Tamaulipas Noviembre 2012

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

Índice

Siglas Utilizadas I

Terminología Utilizada II

I Introducción 6

Hipótesis, Objetivo General y Objetivos Particulares 7

II 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 272

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

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 32

IV Resultados 33

V Conclusiones 36

IV Bibliografía 37

V Anexos 39

3

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

Siglas Utilizadas

ERP (Enterprise Resource Planning) Planeación de Recursos Empresariales

BI (Business Inteligence ) Inteligencia Empresarial

TIC´s (Tecnologías de la Información y la Comunicación)

.NET (Network, Internet)

HTTP (Hypertext Transfer Protocol) Protocolo de Transferencia de Hipertexto

TCP (Transmission Control Protocol) Protocolo de Control de Transmisión

DNS (Domain Name System ) Sistema de Nombres de Dominio

IP (Internet Protocol) Protocolo de Internet

ASP (Active Server Pages) Servidor de Páginas Activas

DLL (Dynamic-Link Library) Biblioteca de Enlace Dinamico

CLR (Common Language Runtime) Entorno Común de Ejecución para Lenguajes

MSIL (Microsoft Intermediate Languaje) Lenguaje Intermedio de Microsoft

IIS (Internet Information Services) Información de Servicios de Internet

VS (Visual Studio)

ADO (Access Data Objects) Acceso a Datos

LINQ (Language Integrated Query) Lenguaje de Consultas Integradas

RAM (Random-Access Memory) Memoria de Acceso Aleatorio

CAB (Cabinet File) Gabinete de Archivo

ROM (Read Only Memory) Memoria de Solo Lectura

WCF (Windows Comunication Fundation) Fundacion de Comunicacion de Windows

SOA (Service Oriented Aplications) Aplicaciones Orientadas a Servicios

XML (eXtensible Markup Language) Lenguaje de Marcas Extendible

GIF (Graphics Interchange Format ) Formato de Intercambio de Graficos

BMP (BitMaP)

WBMP (Wireless BitMaP)

4

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

Terminología Utilizada

.NET.-  Es un framework de Microsoft que hace un énfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones.

.NET Compact Framework.- Es un rico subconjunto de .NET Framework, proporcionando las mismas ventajas que  .NET Framework, pero diseñado específicamente para dispositivos como PocketPC, Smartphone. .NET Compact Framework simplifica el proceso de creación y desplegado de aplicaciones en dispositivos móviles mientras permite al desarrollador aprovecharse de todas las capacidades del dispositivo.

Puertos lógicos.- Se denomina así a una zona, o localización, de la memoria de un ordenador que se asocia con un puerto físico o con un canal de comunicación, y que proporciona un espacio para el almacenamiento temporal de la información que se va a transferir entre la localización de memoria y el canal de comunicación.

Localhost.- Es un nombre reservado que tienen todas las computadoras, router o dispositivo independientemente de que disponga o no de una tarjeta de red Ethernet. El nombre localhost es traducido como la dirección IP de loopback 127.0.0.1 en IPv4

PocketPC.- 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ás funciones 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 de las aplicaciones destinadas para el uso de servidores.

Microsoft Active Sync.- Es un móvil de sincronización de datos y tecnología de protocolo desarrollado por Microsoft.

5

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

I Introducción

En la actualidad, las empresas se enfrentan a un mercado global el cual les obliga a elevar sus estándares competitivos para convertirse en la mejor de su ramo. Y así como van creciendo sus necesidades por superarse y ser las mejores, también crecen las necesidades tecnológicas dentro de la empresa, es por esto que surge la necesidad de implementar un sistema ERP, los cuales pueden adaptarse a las necesidades especificas de la empresa; siempre y cuando dicha empresa se encuentre preparada para un paquete de ese tipo, porque si no el gasto y todo el esfuerzo será nulo (Chacón Olvera).

Algo que es importante tomar en cuenta es la inversión, porque esta inversión no se va a ver recuperada en unos días, se tiene que estar conscientes que el fruto de esta inversión va a tardar y no hay que desesperarse puesto que en vez de llevar a la empresa al éxito la llevaremos a un fracaso mucho más rápido. Pero si se tiene paciencia y se trabaja adecuadamente 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 es algo común hablando de medianas empresas, ya que cuentan con algo de ingresos mayores para sostener esta inversión, pero las pequeñas empresas no tienen alto soporte ya que la mano 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’s y los directivos de las empresas no pueden encomendar un proyecto de este tipo con lo que se ven en la necesidad de contratar a una persona con más experiencia y por ende aumentando el costo de la enmienda. A esto se le adhiere el uso de dispositivos y más conocimiento técnico para programar los mismos, hace que un restaurante común no pueda sostener un gasto de este 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. Algunos soporte WAP y WML, HTML algún apoyo o una versión limitada de HTML, y el apoyo tanto de algunos o de un idioma diferente (W3schools).

Para apoyar todo tipo de dispositivos móviles, los desarrolladores deben crear una aplicación diferente para cada idioma (W3schools).

Con .NET Compact Framework, Microsoft ha introducido una nueva plataforma para el desarrollo de aplicaciones móviles.

6

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

Hipótesis

Agilizar el proceso de ordenar el pedido y facturación dentro de un restaurant-bar por medio de un sistema de información.

Objetivo General

El presente trabajo tiene como objetivo documentar el desarrollo de software en dispositivos con .NET Compact Framework, información en un sentido más técnico, previendo el uso complejo tanto de servidores, los puertos lógicos, la sintaxis, librerías y herramientas de apoyo 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

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

II Revisión de Literatura

2.1 Tecnologías de Información en México

Las pequeñas y medianas empresas necesitan incorporar tecnología a sus estrategias de negocio para poder lograr productividad y eficiencia. Todas estas empresas deben mantenerse modernizadas; porque manteniéndose así el país estará en la misma situación. Como en todo siempre existen obstáculos que impiden un desarrollo pleno de los proyectos tecnológicos en las empresas, los principales son la resistencia que se tiene ante el cambio y el miedo que existe entre los futuros usuarios, que no se tenga el resultado que se espera. Es por esto que la implementación de ERP’s puede llegar a crear más problemas de los que ya había antes de su implementació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: la resistencia al cambio, definición de requerimientos, hardware y software, dependencia de los proveedores de tecnología. Desde mi punto de vista la resistencia al cambio es la barrera más influyente y la causante de que muchas pequeñas y medianas empresas estén rezagadas en materia tecnológica. Hablando de mala definición de requerimientos de aplicación que se requieren implementar. Por otro lado está el obstáculo del hardware y el software donde muchas de las veces las empresas no cuentan con un soporte técnico eficiente, el equipo computacional existente en las compañías es insuficiente para el desempeño de las actividades básicas (Chacón Olvera).

Finalmente es necesario considerar que la implantación de un sistema no es nada sencillo y que requiere de un gran compromiso, por lo que si no nos sentimos capaces de hacerlo buscar a alguien que pueda hacerlo o simplemente esperar antes de convertir lo que tenemos en un rotundo 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 mejora de los procesos internos de la empresa hasta poder conocer al cliente y sus preferencias. Pero esto muchas veces no lo ven o no lo saben los administradores de este tipo de empresas y oponen una gran resistencia al cambio. Las PYME’s que no incorporen el uso de las tecnologías de información como parte del negocio ponen en riesgo su permanencia en el mercado ya que siempre existirán otras PYME’s que sí lo hagan y obtengan una ventaja competitiva (Chacón Olvera).

Una empresa siempre tiene que utilizar herramientas estratégicas y con estas ir un paso más delante de la competencia, algo novedoso resulta ser atractivo para los clientes y con el fin de ver esa novedad van a comprar el producto (o recibir el servicio), con esto cabe mencionar el uso de dispositivos móviles en el uso de pedidos que sin duda esta novedad que no solo acelera los procesos si no también mantiene control mucho más estable

La tecnología móvil está llegando a todos los rincones de los procesos organizacionales a nivel de empresa, desde la posibilidad de registrar y revisar las transacciones en el sistema operacional, hasta la habilidad de proveer a los ejecutivos con la información sobre el estado de la empresa en cualquier lugar físico. (Jorge García)

8

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

Los artefactos móviles han llegado a un punto tal que no se utilizan solamente para compartir información personal y establecer interacciones sociales. En la actualidad, muchos proveedores BI están ofreciendo opciones de entrega para servicios de análisis por medio de artefactos móviles. En otras palabras, las herramientas BI se están convirtiendo en virtuales y móviles. (Jorge García)

Los métodos computacionales móviles no son nuevos, pero la confluencia de la tecnología móvil y BI ha empezado a ganar interés solo en los últimos años. Hoy en día, la movilidad es la tendencia a nivel empresarial y los proveedores de BI están intentando enfrentar el reto de proveer 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ón de tecnologías Web que permiten el encuentro de los proveedores de tecnologías móviles y los proveedores de BI en un punto tal que, es posible ofrecer la visualización de los datos y las herramientas 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 fue permitir que los usuarios visualizaran los resultados del análisis de datos. Ello en sí mismo fue un gran reto, si tenemos en cuenta el área de presentación, memoria y otros limitantes iniciales de la tecnología móvil, especialmente ya que los procesos BI requieren cantidades de memoria respetables, así como gran espacio para presentar los resultados, con ello también recae el uso del dispositivo móvil como punto de venta el cual da un uso más amplio de el dispositivo (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 propagado uso de los móviles Blackberry y Windows Mobile, cobra sentido el hecho de que las tecnologías móviles ya no están limitadas a los tableros visuales, y que ellas permitirán a los usuarios correr datos de análisis tanto en línea como fuera de línea, lo cual es una funcionalidad que los proveedores de software deberán explotar y desarrollar en los próximos años, para generar una fuente real de valor para los usuarios. (Jorge García)

2.2 Conceptos del Software

A principios de los 80 no estaba claro cuán importante sería el desarrollo de software. Hoy en día, se ha convertido en el eje de evolución de la industria de la computación, y es el motor que conduce la toma de decisiones comerciales. Esto ha provocado que cambie la percepción que el público tenia del software: de ser un aditamento adicional a la computadora, a ser una plataforma 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 la potencia del hardware informático; ya sea almacenado dentro de un teléfono celular o dentro de una computadora bancaria, el software transforma información, produciendo, gestionando, modificando, mostrando o transmitiendo información, pero el software también sirve como vehículo para hacer entrega de un producto, ya que actúa como la base de control de la computadora, la comunicación de información, y la creación y control de otros programas.

9

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

Dentro del gran conjunto de programas representados por el término "software", se pueden hacer dos grandes divisiones, de acuerdo a la función que desempeñan. Una formada por el llamado Software de Sistema, encargado de apoyar al usuario en la administración de su hardware, y la otra conformada por el Software de Aplicación, subconjunto que agrupa a todos 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ños de letra y revisarlo ortográficamente, tiene que recurrir a un software de aplicación. Igual debe hacerlo si desea capturar y manipular grandes volúmenes de datos, o hacer muchos cálculos o si lo que quiere es construir imágenes y darles animación. Mientras que si respalda archivos o administra impresoras, estará usando software de sistema. Aunque el término "Sistema" se usa también como sinónimo de software, y en especial en el presente documento, específicamente del software de aplicación.

Pero, para que la computadora pueda ejecutar cualquier tarea, se le debe programar para que la haga, colocando en su memoria principal un algoritmo apropiado, expresado en algún lenguaje de programación.

2.3 Lenguajes de Programación

2.3.1 Qué es un lenguaje de programación

Como se menciona en el capítulo anterior, se presenta la necesidad de expresar los algoritmos en una sintaxis no ambigua y a un nivel de detalle bien establecido. Estos dos requisitos se resuelven mediante el uso de primitivas. [Brookshear,1995] explica que una primitiva consiste en una estructura semántica bien definida junto con una sintaxis no ambigua para representarla.

Tenemos entonces, que para representar algoritmos se debe contar con una colección suficientemente rica de primitivas que, junto con las reglas de combinación para representar estructuras más complejas, constituyen un lenguaje de programación.

La Enciclopedia de Términos de Micro-computación define Lenguaje de programación como los conjuntos de símbolos y de reglas que se pueden combinar en forma sistemática para comunicar pensamientos e ideas, y específicamente aquellos que sirven para escribir instrucciones de computadora. El lenguaje Incluye vocabulario, y reglas o convenciones que rigen la forma y secuencia en que se escriben las instrucciones para su ejecución en la computadora.

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 humanos tales 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 proporcionan el significado de una sentencia o instrucción del lenguaje.

10

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

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 reglas sintácticas son los métodos de producción de sentencias o instrucciones válidas que permitirán formar un programa.

Según menciona [Brookshear, op. cit.], la implantación de los lenguajes de programación de alto nivel se basa en el proceso de convertir programas escritos en esos lenguajes en programas escritos en lenguaje de máquina.

La traducción de un programa consiste en tres actividades: análisis léxico, análisis sintáctico y generación de código

Figura 2.1 Construcción de un ejecutable

El análisis léxico es el proceso de reconocer qué cadenas de símbolos del programa que se ha de traducir (llamado programa fuente) representan en realidad un solo objeto elemental. Por ejemplo, la cadena de símbolos 153 no debe representarse como un 1 seguido de un 5 seguido de un 3, sino que debe reconocerse como la representación de un solo valor numérico. De manera similar, aunque los identificadores que aparecen en un programa está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 de analizar 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 enunciados que tiene un lenguaje de programación es menos variada que la de un lenguaje natural, y está 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 proceso de construir secuencias de instrucciones en lenguaje de máquina que simulen a los enunciados reconocidos por el analizador sintáctico, y es el que genera el producto final del proceso de traducción: el programa objeto.

11

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

2.3.2 Evolución de los Lenguajes de Programación

Al igual que el software, hay varias formas desde las que pueden verse o clasificarse los lenguajes de programación: por su nivel, por sus principales aplicaciones, etc. Además, estas visiones 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 el nombre de lenguajes de bajo nivel, debido a que los programadores que codifican en estos lenguajes deben escribir instrucciones con el nivel más fino de detalle. Cada línea de código corresponde a una sola acción del sistema computacional. El lenguaje de máquina, el cual consta 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 nombres mnemónicos para representar códigos de operación, aumentó considerablemente la comprensibilidad de las secuencias de instrucciones de máquina.

Cuando se introdujeron estas técnicas, los programadores usaban esta notación al diseñar los programas en papel, y luego la traducían a una forma que pudiera entender la máquina. Este proceso de traducción es suficientemente sencillo como para que la propia computadora lo pueda llevar a cabo, lo que dio lugar a que el uso de nombres mnemónicos se formalizara para dar origen a un lenguaje de programación denominado "lenguaje ensamblador", y a un programa, también llamado "ensamblador" que traducía otros programas escritos en lenguaje ensamblador a lenguaje de máquina.

Figura 2.2 Ensamblador, Compilador e Intérprete

Los lenguajes ensambladores representaron un gran avance en la búsqueda de mejores ambientes 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.

12

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

Aunque los lenguajes de segunda generación tenían muchas ventajas respecto a su contrapartida de lenguajes de máquina, todavía dejaban mucho que desear en cuanto a ofrecer el entorno de programación definitivo. Después de todo, las primitivas empleadas en los lenguajes ensambladores eran esencialmente las mismas que las del lenguaje de máquina correspondiente; la única diferencia era la sintaxis de su representación.

Una consecuencia importante de esta íntima asociación entre los lenguajes ensamblador y de máquina es que cualquier programa escrito en lenguaje ensamblador depende inherentemente de la máquina; esto es, las instrucciones del programa se expresan en términos de los atributos de una máquina específica. Por tanto, un programa escrito en lenguaje ensamblador no se puede transportar fácilmente a otra máquina porque se tiene que reescribir de modo que se ajuste a la configuración de registros y al conjunto de instrucciones de la nueva máquina, ya que cada tipo de microprocesador tiene su propio lenguaje ensamblador asociado (entendiendo que el lenguaje Ensamblador es simplemente una representación simbólica del lenguaje máquina). Por tanto, es necesario un profundo conocimiento de la arquitectura de la computadora para poder realizar una programación efectiva.

Otra desventaja de los lenguajes ensambladores es que el programador, aunque no tiene que codificar las instrucciones en forma de patrones de bits, sí está obligado a pensar en términos de los pequeños pasos incrementales del lenguaje de la máquina, y no puede concentrarse en la solución global de la tarea por realizar.

Las primitivas elementales en que se debe expresar finalmente un producto no son necesariamente las primitivas que deben usarse al diseñarlo. El proceso de diseño se presta mejor al empleo de primitivas de alto nivel, cada una de las cuales representa un concepto asociado a una característica importante del producto. Una vez terminado el diseño, se podrán traducir esas primitivas a conceptos de más bajo nivel relacionados con los detalles de la implantación.

De acuerdo con esta filosofía se empezaron a crear lenguajes de programación que fueran más propicios para la elaboración de software que los lenguajes ensambladores de bajo nivel. El resultado fue la aparición de una tercera generación de lenguajes de programación que difería de las anteriores en que sus primitivas eran de alto nivel y además independientes de las máquinas.

En general, la estrategia para crear lenguajes de programación de tercera generación fue identificar 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 una secuencia 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 programa llamado traductor, que traducía a lenguaje de máquina los programas expresados en dichas primitivas de alto nivel. Todo lo que tenía que hacer el traductor era reconocer las primitivas y convertirlas en sus equivalentes en lenguaje de máquina.

2.3.3 Clasificación de los Lenguajes de Programación

13

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

Surgen así, los "lenguajes declarativos" que son más parecidos al inglés en la forma en que se expresan y en su funcionalidad, y están al nivel más alto respecto a los otros. Son fundamentalmente lenguajes de órdenes, dominados por sentencias que expresan "lo que hay que hacer" en vez de "cómo hacerlo". Un ejemplo de estos lenguajes es el lenguaje estadístico SPSS, y el lenguaje de consulta estructurada en bases de datos (SQL). Estos lenguajes se desarrollaron con la idea de que los profesionistas pudieran asimilar más rápidamente el 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. Aunque no son fundamentalmente declarativos, estos lenguajes permiten que los algoritmos se expresen en un nivel y estilo de escritura fácilmente legible y comprensible por otros programadores. 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 un programa puede ser fácilmente "transportado" o transferido de una maquina a otra sin ninguna revisió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 aplicaciones cientí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 de sistemas). Aunque existen actualmente en uso mas de 100 lenguajes de este tipo y muchos de ellos se encuentran en varias versiones.

Figura 2.3 Niveles de los lenguajes de programación

Los lenguajes de muy alto nivel, que aparecieron por primera vez en la década de 1960, se crearon para cubrir necesidades especializadas del usuario. Con ellos, solo se necesita prescribir lo que la computadora hará en vez de como hacerlo. Este tipo de recurso facilita mucho la programación. De este modo, los lenguajes de alto y bajo nivel a veces se conocen como lenguajes procedurales, debido a que requieren que las personas escriban

14

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

procedimientos 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, por ejemplo, procesar una nómina con un lenguaje de procesamiento de palabras. Debido a que se enfocan a aplicaciones específicas, los lenguajes de muy alto nivel a veces se conocen como lenguajes dependientes del problema. Una segunda desventaja principal es que hay muchas 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 los programadores como a los usuarios.

2.3.4 El proceso de la programación

Originalmente, el proceso de programación se realizaba por el laborioso método de expresar todos los algoritmos en el lenguaje de máquina. El primer paso dado para eliminar estas complejidades fue acabar con el empleo de dígitos numéricos para representar códigos de operación y operandos del lenguaje de máquina. Así se extendió la costumbre de asignar nombres mnemónicos a los diversos códigos de operación y usarlos en vez de la representación hexadecimal durante el proceso de diseño. Por ejemplo, en vez del código de operación para cargar un registro, el programador usaría el nombre LDA (Cargar valor en el registro acumulador). En el caso de los operandos, se diseñaron reglas para que el programador pudiera asignar nombres (llamados identificadores) a posiciones de memoria y usar 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 operaciones tendientes a indicar a la computadora como debe realizar las funciones previstas en el algoritmo.

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)

Este proceso no ha cambiado a lo largo del tiempo ni con la evolución de los lenguajes de programació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.

15

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

2.4 Tipos de Sistemas de Cómputo

Un sistema es una colección de elementos y procedimientos que interactúan para cumplir una meta. Un partido de fútbol, por ejemplo, se juega conforme a un sistema. Consta de una colección de elementos -dos equipos, un campo de juego, árbitros- y procedimientos -las reglas del juego- que interactúan para determinar qué equipo es el ganador. Un sistema de tránsito es una colección de personas, máquinas, reglas de trabajo, tarifas y programas que llevan a las personas de un lugar a otro. Y un sistema computacional es una colección de personas, hardware, software, datos y procedimientos que interactúan con el objeto de realizar tareas de procesamiento de datos.

La función de un sistema, ya sea manual o computarizado, es mantener a la organización bien administrada y funcionando sin altibajos. Los sistemas se crean y modifican en respuesta a las necesidades cambiantes de una organización y a las condiciones en transformación del medio que la rodea. Cuando surgen conflictos en un sistema existente o se necesita un nuevo sistema, el desarrollo de sistemas entra en acción. El desarrollo de sistemas es un proceso que en forma muy general consta del análisis de un sistema, el diseño de uno nuevo o las modificaciones a uno ya existente, la adquisición del hardware y software necesarios y hacer que un sistema nuevo o modificado trabaje.

2.4.1 Aplicaciones Monolíticas

Los procesos contables sirvieron de punto de entrada a los primeros proyectos informáticos. Paulatinamente los sistemas asimilaron una mayor cantidad de responsabilidades convirtiéndose así en grandes aplicaciones monolíticas, bloques de software cimentados sobre otros bloques. En esta arquitectura, toda la "inteligencia" del sistema está concentrada en una computadora central (host) y los usuarios interactúan con ella a través de terminales que reciben las instrucciones por medio de un teclado y las envían al host. Esta interacción no está limitada a cierto hardware, ya que los usuarios pueden conectarse usando PCs o terminales de trabajo de Unix, etc.

Una limitación de esta arquitectura es que rara vez soporta interfaces gráficas, o puede acceder a múltiples bases de datos.

2.4.2 Modelo Cliente / Servidor

Debido a la complejidad que pueden alcanzar las redes de computadoras, estas se organizan en una serie de capas o niveles, cada una construida sobre la inferior [Tanembaum, 1997]. La Arquitectura de la red indica el número de capas, su nombre, contenido y función, sin embargo, en todas las arquitecturas el propósito de cada capa es ofrecer servicios a las capas superiores, estableciendo una conversación con las capas similares de otros equipos.

Las reglas y convenciones que se siguen en estas conversaciones se conocen como protocolos de comunicación entre capas. Y el conjunto de capas y protocolos se conoce como arquitectura de red.

16

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

La arquitectura "peer to peer" se refiere a un tipo de red en la que cada estación de trabajo tiene capacidades y responsabilidades equivalentes, por lo que es económica y fácil de implementar, aunque cuando está sometida a grandes cargas de trabajo no ofrece el desempeño de otras arquitecturas.

El termino cliente / servidor fue usado por vez primera en la década de los 80 para referirse a las computadoras personales (PC) conectadas a una red. El modelo Cliente / Servidor como 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 el servidor 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 de instrucciones.

El rol del proceso servidor puede ser asumido por el mismo sistema operativo, por un equipo despachando archivos en una red e incluso por otra computadora de las mismas características fí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 / servidor como 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 grande en partes más simples, crea la posibilidad de que se faciliten el desarrollo y mantenimiento del todo. La arquitectura cliente / servidor va más adelante reconociendo que estos módulos no requieren ejecutarse dentro del mismo espacio de memoria. La continuación de este concepto es que los clientes y servidores se ejecuten en las plataformas de hardware y software que resulten más apropiadas para el desempeño de sus funciones. Los programas servidores normalmente reciben las solicitudes de los programas clientes, ejecutan algún tipo de 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ás capacidad para llevarla a cabo (la parte del cliente en una aplicación corre en el sistema de los clientes, y la parte de la aplicación correspondiente al servidor, en la o las computadoras servidores). El usuario generalmente interactúa solo con la porción del cliente de la aplicación, que en general consiste en la interfaz de usuario, el proceso de captura de datos, la consulta a la base de datos y la obtención de informes. El servidor realiza las funciones de fondo, no visibles por los usuarios, como la administración de los dispositivos periféricos o el control del acceso a las bases de datos compartidas.

Generalidades del Procesamiento en Servidores

17

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

El sistema es basado en Web por ende entendemos que el protocolo más importante es el HTTP. Este protocolo define como los navegadores y los servidores Web se comunican uno con 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 de internet la cual esta es traducida por un servidor DNS a una IP publica y al llegar la petición al servidor, este la regresa al usuario el código y el Dispositivo codifica (Figura 2.4)

Figura 2.4. Describiendo el procedimiento que uncliente ve una página web.

En el corazón de toda aplicación Web genuina están los HTML Forms

Un 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

Procesamiento en el servidor

18

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

Construir la parte del cliente es “fácil”, sólo es HTML

La 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 la correspondiente 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 cliente pueda 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 tareas del cliente pueden incluirse la obtención de las entradas del usuario, hacer solicitudes de datos a los servidores, realizar cálculos en datos locales y desplegar resultados. La parte del servidor 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).

Una característica muy importante de estos sistemas es su escalabilidad. Ya que pueden ser escalados tanto horizontalmente (añadiendo o quitando clientes), como

19

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

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 Distribuidos

Los sistemas distribuidos surgen en 1993, y se basan en el uso de modelos de negocio compartidos y reusables. El negocio se define entonces como un sistema compuesto a su vez de 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 de otros.

El funcionamiento de Internet está basado en este concepto, ya que básicamente, se puede considerar al Web como un sistema distribuido de hipermedia [Wilde,1999] en el que la información se encuentra almacenada en forma de páginas Web, que se encuentran entrelazadas unas con otras mediante ligas URL.

Existen programas cliente, llamados navegadores, y programas servidores localizados en diferentes lugares geográficos. El programa servidor se ejecuta en un host de Internet, y responde a las solicitudes de información que le hacen los clientes. Cuando recibe una solicitud, el servidor debe responderla en forma simple, dejando al cliente o navegador, la responsabilidad de determinar la forma apropiada en que esta información debe ser mostrada al usuario. Este mecanismo de trabajo facilita que en los servidores se pueda mantener almacenada información en formatos muy diferentes.

El navegador es entonces un programa que se usa para tener acceso a los servidores de Web y que despliega los documentos recuperados de esos servidores. Desde el punto de vista de la tecnología cliente-servidor, un navegador es el cliente del servidor de Web.

2.4.4 Cómputo Móvil

Actualmente, 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 ya existentes. Los sistemas de comunicación móvil con voz (teléfonos celulares, radios de onda corta, etc.) están ampliamente establecidos en todo el mundo y en los últimos años ha habido un rápido crecimiento en el número de suscriptores de las diferentes redes de telefonía celular. Una extensión de esta tecnología es la habilidad de enviar y recibir datos a través de estas 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 convertido en una rama importante de la industria, evolucionando rápidamente y permitiendo hoy en día que sus usuarios puedan transmitir y recibir datos desde lugares remotos, a través de dispositivos como teléfonos celulares y módems conectados a laptops y agendas electrónicas.

20

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

El cómputo móvil permite sincronizar y controlar procesos y eventos donde el acceso a datos e información es prácticamente imposible por otros medios. Algunos ejemplos de aplicación del cómputo móvil son:

El cómputo móvil facilita los servicios de venta, facturación, cobranza y calidad en el servicio obteniendo y proporcionando datos e información en el lugar y en el momento donde se realiza la operación. Por ejemplo, proporcionando información sobre productos almacenados o en producción, informando sobre el status o localización de un pedido ya realizado o informando sobre el estado crediticio de un cliente, confirmando cantidades y materiales recibidos por el cliente y optimizando transacciones de venta y producción, capturando los datos 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 de conteo o levantamiento de encuestas: Aplicando encuestas sobre preferencias o evaluando algún producto o servicio, contando periódicamente artículos de venta en estantes especializados 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 posible rastrear productos, unidades móviles o bien personas, permitiendo replantear rutas de servicio o 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 a unidades de transporte bancario.

2.5 Tipos de aplicaciones

El 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 reducidas

Una aplicación Web en un Palm es un conjunto de paginas HTML comprimidas en un formato especial (PQA). El funcionamiento de una aplicación de Web reducida es el siguiente: las páginas Web comprimidas residen el Palm y los usuarios rellenan los formularios 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 una petición HTTP, y la reenvía al servidor Web adecuado. Por norma general este servidor Web ejecuta un script CGI que genera la pagina de respuesta. Esta pagina es reenviada de nuevo al proxy que la comprime y la descarga al dispositivo para que pueda presentarse.

Estas páginas HTML comprimidas deben ser compactas y pequeñas, considerando que se van a mostrar en la pequeña pantalla de la Palm. La ejecución de estas páginas web se realiza mediante el visor de aplicaciones web. Cuando el usuario pulsa el icono de una aplicación web, se lanzará primero el visor y este mostrará el contenido de la pagina web.

2.5.2 Aplicaciones estándar de Palm

21

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

Se 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 o terminar aplicaciones como en una PC.

Por otro lado, aunque las aplicaciones Palm están dirigidas a eventos, también pueden realizar funciones 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 los registros de todas las aplicaciones esa palabra. Esto implica que se lanzará cada una de las aplicaciones 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 mismo fichero PRC correrá en todos los dispositivos Palm OS.

2.6 Los componentes de ASP.NET

Primeramente esta el cliente quien va a recibir el servicio una conexión a Internet y Servicios Web con los cuales se le va atender las peticiones al cliente del lado del servidor nos encontramos con las bases de datos y la aplicación en ASP.NET, esta contiene la pagina que se 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 archivo principal de configuración que contiene parámetros globales tanto para conexión y especificaciones referentes al sistema (figura 2.7).

Figura 2.7. Componente de aplicación ASP.NET

ASP.NET es el framework de programación web dentro de .NET

Permite desarrollar aplicaciones Web con un modelo “similar” al utilizado para aplicaciones Windows y dispositivos móviles

El componente fundamental de ASP.NET es el WebForm

22

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

Independencia del cliente (navegador, S.O., dispositivo físico, etc.)

Permite utilizar cualquier lenguaje .NET

Permite desarrollar Servicios Web XML

Primera solicitud

Cuando el cliente solicita una página Web por primera vez, se genera el

Siguiente 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). 

 

Figura 2.8 Modelo de cómo opera ASP.NETcomo primera solicitud

Segunda solicitud

23

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

Cuando el usuario invoca la misma página Web por segunda vez, se genera el siguiente conjunto 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 el primer intento de acceso del usuario (Unai Zorrilla) (figura 2.9).

Figura 2.9 Siguiente solicitud en ASP.NET

2.7 Las aplicaciones web en ASP.NET + el IIS

IIS es el servidor Web de la plataforma Windows

Las aplicaciones Web solo pueden existir en una ubicación que es publicada por IIS como un Directorio Virtual

Directorio Virtual: es un recurso compartido identificado por un alias y que representa una ubicación física en el servidor

El famoso //localhost hace referencia al directorio raíz del servidor web

Por default, //localhost “apunta” a C:\Inetpub\wwwroot

VS.NET por default crea las aplicaciones web bajo el directorio raíz, ej.:

MiAplicacion

Virtual: http://localhost/MiAplicacion

Física: C:\Inetpub\wwwroot\MiAplicacion

Podemos usar IIS para definir un directorio virtual donde alojar nuestras aplicaciones Web, diferente al predeterminado (Rodrigo Salinas)

En esta segunda parte se planteara información acerca de los dispositivos móviles:24

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

.NET Compact Framework

.NET Compact Framework es un rico subconjunto de .NET Framework, proporcionando las mismas ventajas que  que .NET Framework, pero diseñado especificamente para dispositivos como PocketPC, Smartphone. .NET Compact Framework simplifica el proceso de creación y desplegado de aplicaciones en dispositivos móviles mientras permite al desarrollador aprovecharse de todas las capacidades del dispositivo (Unai Zorrilla).

Arquitectura de .NET Compact Framework

La siguiente imagen ilustra (figura 2.10) la arquitectura de .NET Compact Framework:

Figura 2.10. Arquitectura deCompact Framework

2.8 Diferencias con .NET Framework

Es esta sección trataremos de desglosar las diferencias más significantes entre .Net Compact Framework y .Net Framework.

Clases y Tipos

Compact Framework soporta un subconjunto de la librería de clases base de .NET Framework, este subconjunto es semánticamente compatible con las clases de .Net Framework (Unai Zorrilla).

Controles

Compact Framework soporta muchos de los controles Windows Forms de .Net Framework y además añade una serie de nuevos controles específicos para la plataforma (Unai Zorrilla).

Datos

Compact Framework soporta un subconjunto de la implementación de ADO.NET e incluye Sql Server Mobile. OleDb no está soportado en Compact Framework.

Novedades en .NET Compact Framework 3.525

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

Microsoft .NET Compact Framework 3.5 extiende las características de versiones anteriores de .NET Compact Framework aún más.

Microsoft .NET Compact Framework 3.5, puede ser instalada en la memoria RAM utilizando un fichero de extensión CAB.

Si lo que queremos es instalar Microsoft .NET Compact Framework 3.5 en la memoria ROM de nuestro dispositivo, entonces tendremos que obtener la descarga optimizada y adecuada para el tipo de dispositivo en la que lo queremos instalar (Unai Zorrilla).

 Lista de dispositivos y plataformas soportadas en .NET Compact Framework 3.5. (Anexo Tabla 2.1)

Hablando de novedades en Microsoft .NET Compact Framework 3.5, debemos detenernos en WCF, que representa las siglas de Windows Communication Foundation.

Microsoft .NET Compact Framework 3.5 soporta WCF, que consiste en un modelo que nos permitirá desarrollar aplicaciones de tipo SOA (Service Oriented Applications).

De esta forma, un cliente podrá conectarse con su dispositivo a un servicio Web de WCF ejecutándose en un sistema no portátil para llevar a cabo sus tareas.Adicionalmente, en Microsoft .NET Compact Framework 3.5, tenemos la posibilidad de trabajar con un nuevo transporte de datos de WCF, hablamos del transporte de correo de Microsoft Exchange Server, que puede ser utilizado dentro de .NET Framework tanto en dispositivos 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 de consulta 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 Framework 3.5 que han sido agregados y mejorados para dar más cobertura a los desarrolladores a la hora de 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 BackColor de 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últiples sonidos en nuestros dispositivos, siempre y cuando el hardware del dispositivo soporte características de combinación de sonidos.

También se ha agregado soporte para el nombre de espacio System.IO.Compression. En concreto, 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

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

Microsoft .NET Compact Framework 3.5, soporta también ahora el CLR Profiler, que antes solo estaba disponible en Microsoft .NET Framework, y el cual nos permitirá ver nuestras aplicaciones en memoria y en la pila de ejecución, investigando el comportamiento del recolector de basura en .NET.

Para obtener el CLR Profiler, deberemos instalarnos los Power Toys para Microsoft .NET Compact Framework

Mostraré cómo desarrollar aplicaciones con una extensión de. NET Framework, llamado Microsoft 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 NET Framework.

.NET Compact Framework es un conjunto de server-side Forms para crear aplicaciones para dispositivos móviles inalámbricos (W3schools).

Estos controles producir resultados distintos para los diferentes dispositivos mediante la generación de WML, HTML o HTML compacto.

2.9 Software para Restaurantes libre

QuickOrder es un software para restaurantes libre, pizzerias y cervecerias.

Puede coger los pedidos a la mesa con el asistente digital personal (PDA);  los datos se

enviarán a la computadora en caja, dotada de pantalla táctil. Automáticamente, el programa

enví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 la

ventana

Además, es multiplataforma ya que está disponible para linux (ubuntu), mac, windows xp y windows 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

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

III Materiales y Métodos

3.1 Ubicación del estudio

El lugar elegido para realizar la implementación del proyecto radica en la Cd. Xicotencatl Tamaulipas, la dirección es Calle Hidalgo #211, Zona Centro, y el nombre del negocio es Restaurant-Bar “Iguanas”

En primera instancia se dio lugar ya que el negocio tenía la necesidad de un sistema manejable y acorde a las necesidades del negocio y me contacte con el dueño para proponer la administración vía Software y con ello inicio el proyecto.

3.2 Fecha de Inicio del trabajo y duración probable

Tentativa 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

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

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).

Quickorder

3.5 Colección de datos

Un 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 empezar

Desarrollo 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ágina

Las aplicaciones móviles se pueden probar y ver con emuladores diferentes.

Usando su navegador

Desde las páginas web para móviles detectar el navegador, puede probar las aplicaciones móviles con un navegador estándar.

Cuando una página web móvil detecta un navegador web, se producirá la salida HTML.

29

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

Simuladores

-Openwave Simuladores.- El navegador móvil de Openwave es el navegador más utilizado en Internet, teléfonos móviles habilitados.

-El kit de herramientas de Internet móvil de Nokia.- Este conjunto de herramientas contiene los 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 red

3.5.3.1 Access Point (con funciones adicionales)

Se utiliza un Access Point que además tiene funciones de Routing y Switching de marca Linksys, de igual manera se puede utilizar un Access Point de marca Cisco que los proporciona Telmex al contratar su servicio infinitum.

Es necesario de acuerdo a la finalidad del proyecto, también permita la encriptación de la red así no haya fuga de información y mucho menos problemas que reduzcan credibilidad a la información a almacenar.

Para que la interacción entre el dispositivo móvil y el servidor no se vea afectado por el costo del proceso de encriptación se opto por utilizar encriptación WEP la cual es perfectamente soportada por el dispositivo móvil, aun así se agrega subnetting usando vlan’s para que este separada de la red en caso de que esta pueda ser utilizada para proporcionar servicio de internet a los clientes.

3.5.4 Métodos de autenticación

Para tener acceso al sistema se contara con una autenticación basada en formularios esta trae consigo ya que en aplicaciones basadas en web ya configurado el servidor permitirá si el equipo móvil mantendrá una sesión de conexión y con ello efectuar la interacción de información.

30

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

3.6 Plan de desarrollo del proyecto

El  siguiente  conjunto de operaciones  muestra   las  actividades  a  realizar  en  cuanto  el   sistema de información (con días hábiles), 

DIA OBSERVACIONES1

Obtención de los requerimientos del sistema 234

Realizar el diagrama entidad-relación78

Modelando el Diagrama de actividades91011

Visualización de los procesos mediante casos de uso.1415

Identificación de los procesos principales que se emplean en el sistema1617 Realización de diagrama de procesos para aclarar los primeros puntos que se

realizaran.18

22

23 Verificación de las herramientas con otro software realizado con el fin de ver que las herramientas funcionan correctamente24

25Creación de diagrama de base de datos y agregar varias tablas.

2930 Verificación de buen funcionamiento del IIS.31 Codificación de módulos del sistema de información

1er Mes

2do Mes

DIA OBSERVACIONES1

Pruebas en el equipo de cómputo donde se desarrolla el software.234 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 la base de datos en el servidor.

7

8 Configuración de la red para la prueba 9

Pre visualización de cómo funciona el sistema.1011

Elaboración del manual de usuario.141516

3.7 Costo de la Inversión

31

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

Material, software (licencias) Costo

Servidor $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

IV Resultados

32

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

De acuerdo a encuestas hacia pequeñas y medianas empresas el uso de ordenadores para el 71% de de las encuestadas no pasa de 5 ordenadores en el negocio, se puede deducir que las PYME’s tienen noción y cierto control de los procesos administrativos apoyados con las tecnologías de información, podría ser el caso de que no pueden costear una infraestructura de red 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 lo mínimo pero no en todas las fases administrativas y mucho menos que usen business intelligence.

33

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

De acuerdo al sector en el cual trabajan, nos damos cuenta que las empresas de servicios tanto de turismo (que es donde aplicaría en la implementación del proyecto) hay cierta aceptación por el uso de equipos de computo, tal que; este sector regularmente es de tipo punto de venta y por lo tanto no requiere de muchos equipos, pero lo que si requiere es de estrategias para que los clientes sientan comodidad de forma sofisticada y novedosa; por lo tanto, es eficaz dar presentación de modernidad al negocio (por ejemplo, la toma de pedidos a partir 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 al menos una actividad, lo cual da hincapié al ingreso de sistemas ERP’s, quizá siendo más realistas 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 planeando12

Total Votes: 34 (Jorge García)

De acuerdo a una encuesta en plataforma web los administrativos están consientes de la importancia de implementar una solución BI móvil y de las ventajas que ello significa para su organización no lo ven como un lujo.

34

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

Se deduce de esta grafica que las empresas que utilizan herramientas de Business Intelligence gestionan mejor las relaciones externas (clientes) e internas (entre diferentes departamentos y para con los empleados). El BI es crucial en departamentos de marketing y comerciales, ya no sólo para prever tendencias y ajustar las estrategias de la compañía, sino para dar respuesta rá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án funcionando mejor dando un soporte a la toma de decisiones basadas en información real a la hora de decidir dónde invertir en marketing y ventas.

- Realizar análisis sobre la rentabilidad de los diferentes perfiles de clientes, productos o líneas de negocio. Permitiendo tomar decisión que afecten directamente a la cuenta de resultados.  

-  Realizar un análisis detallado de clientes. El BI permite la segmentación de clientes y el estudio de su comportamiento. Puede informar sobre el impacto de los precios y las ofertas o campañas en cada segmento.

35

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

V Conclusiones

La eficiencia dispone y aprovecha adecuadamente los recursos y reduce el coste necesario para 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 que seguro requerirá la adquisición de nuevo hardware para que los tiempos de respuesta sean aceptables, no es una propuesta que puedan asumir la gran mayoría de empresas del sector de servicios o de turismo.

Además no todos los procesos son susceptibles de volverse móviles. Si bien los nuevos esquemas de entrega IT, como el cómputo en la nube, han dado nuevos bríos a las aplicaciones móviles. Insertándolas en áreas como business intelligence, seguimiento a inventarios, aprobaciones ejecutivas, alertas y demás, las empresas deben incluir la movilidad de forma concienzuda y por pasos.

Las aplicaciones móviles pueden dar a la organización mucho más que una reducción de costos y generando verdadero valor al negocio. Este seminario provee un ejemplo de una aplicación móvil el cual lleva a cabo eficiencia de procesos administrativos y ayuda a la optimizació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 la buena presentación del negocio sino también proporciona que baje el índice de robos y olvido de pedidos ya que todo se registra en la fuente de datos.

36

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

VI Bibliografía

Unai Zorrilla

Curso online compact framework 3.5 (Curso descargado)

Ana Luisa Chacón Olvera

Disponible en World Wide Web: http://www.gestiopolis.com/canales2/gerencia/1/tecinfoana.htm

Rodrigo Salinas

Consultor Independiente .NET, J2EE y Business Intelligence

Relator de Microsoft

[email protected]

Norberto Rojas Reyes

Disponible en World Wide Web:

http://north18rojas.spaces.live.com/Blog/cns!4C4C81F348B07461!259.entry

Microsoft Corporation

Disponible en World Wide Web: http://msdn.microsoft.com/en-us/library/ms172550(printer).aspx

La biblia del C#

Jeff Ferguson, Brian Patterson, Jason Beres, Pierre Boutquin y Meeta Gupta, Edición Españ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 2004

W3schools

Disponible en World Wide Web:

http://www.w3schools.com/dotnetmobile/default.asp

37

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

Jorge García

Disponible en World Wide Web

http://blog.technologyevaluation.com/foro-empresarial/2010/12/02/bi-se-moviliza/

Observatorio Aragon

Disponible en World Wide Web:

http://www.observatorioaragones.com/tic/empresas2008/indicador.php?tipo=numpc&categoria=tamano

Aníbal Goicochea

Disponible en World Wide Web

http://anibalgoicochea.com/2010/02/25/sap-businessobjects-para-la-pyme-otra-propuesta/

38

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

VII Anexos

.NET Compact Framework version Device Platform

1.0 Pocket PC

Pocket PC 2000

Pocket PC 2002

Windows Mobile 2003 for Pocket PC

Windows Mobile 2003 for Pocket PC SE

Windows Mobile 5.0 for Pocket PC

1.0 SmartphoneWindows Mobile 2003 for Smartphone

Windows Mobile 5.0 for Smartphone

1.0 Other Windows Embedded CE devices

Windows CE 4.1

Windows CE 4.2

Windows CE 5.0

2.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 6 Professional

2.0 SmartphoneWindows Mobile 5.0 software for Smartphone

Windows Mobile 6 Standard

2.0 Other Windows Embedded CE devices

Windows CE 4.2

Windows CE 5.0

Windows Embedded CE 6.0

3.5 Pocket PC

Windows Mobile 2003 for Pocket PC

Windows Mobile 2003 for Pocket PC SE

Windows Mobile 5.0 software for Pocket PC

Windows Mobile 6 Professional

3.5 SmartphoneWindows Mobile 5.0 software for Smartphone

Windows Mobile 6 Standard

3.5 Other Windows Embedded CE devices Windows Embedded CE 6.0

Tabla 2.1 (Microsoft Corporation)

39