Automatización de servicios en restaurant-bar mediante aplicaciones móviles
1. 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
2. Í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 27
2
3. 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
4. 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
5. 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
6. 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
7. 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
8. 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
9. 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
10. 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
11. 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
11
12. reconocidos por el analizador sintáctico, y es el que genera el producto final del proceso de
traducción: el programa objeto.
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
12
13. 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.
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
13
14. 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
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
14
15. 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
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)
15
16. 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.
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.
16
17. 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.
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.
17
18. Generalidades del Procesamiento en Servidores
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)
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 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
18
19. Procesamiento en el servidor
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).
19
20. 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 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
20
21. 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.
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.
21
22. 2.5.2 Aplicaciones estándar de Palm
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).
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.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
22
23. El componente fundamental de ASP.NET es el WebForm
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).
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
24. Segunda solicitud
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).
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.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:Inetpubwwwroot
VS.NET por default crea las aplicaciones web bajo el directorio raíz, ej.:
MiAplicacion
Virtual: http://localhost/MiAplicacion
Física: C:InetpubwwwrootMiAplicacion
Podemos usar IIS para definir un directorio virtual donde alojar nuestras aplicaciones Web,
diferente al predeterminado (Rodrigo Salinas)
24
25. 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 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 de
Compact 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.
25
26. Novedades en .NET Compact Framework 3.5
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
27. 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
28. 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
29. 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
30. 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
31. 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),
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ón
2do 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
32. 3.7 Costo de la Inversión
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
32
33. IV Resultados
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
34. 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 una
6
No, pero lo haremos en los próximos 6 meses
6
No, pero lo haremos en aproximadamente un año
10
No, y no lo estamos planeando
12
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
35. 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
36. 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
37. 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
Consultor.net@gmail.com
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
38. 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
39. 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