SlideShare una empresa de Scribd logo
1 de 39
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
Í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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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

Más contenido relacionado

La actualidad más candente

Protocolo de comunicacion
Protocolo de comunicacionProtocolo de comunicacion
Protocolo de comunicacionuvitamaz
 
Archivos.ceneval.edu.mx archivos portal_17353_guiadel_egel-info
Archivos.ceneval.edu.mx archivos portal_17353_guiadel_egel-infoArchivos.ceneval.edu.mx archivos portal_17353_guiadel_egel-info
Archivos.ceneval.edu.mx archivos portal_17353_guiadel_egel-infoMario Chávez Morales
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionIrving Che
 
Ejercicios - Diagramas de Estados y Clases
Ejercicios - Diagramas de Estados y ClasesEjercicios - Diagramas de Estados y Clases
Ejercicios - Diagramas de Estados y ClasesHector Farias
 
Validación de Requerimientos
Validación de RequerimientosValidación de Requerimientos
Validación de RequerimientosUTPL UTPL
 
Algoritmo ricart y Agrawala
Algoritmo ricart y AgrawalaAlgoritmo ricart y Agrawala
Algoritmo ricart y AgrawalaJackBryan3
 
Telemática y TIC
Telemática y TICTelemática y TIC
Telemática y TICTm-CS
 
Estructura y funcionamiento del procesador
Estructura y funcionamiento del procesadorEstructura y funcionamiento del procesador
Estructura y funcionamiento del procesadorJose Diaz Silva
 
Metodologia de iconix jhon poo
Metodologia de iconix jhon pooMetodologia de iconix jhon poo
Metodologia de iconix jhon pooJhon Yuqui
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turingAnel Sosa
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de controlJuan Pablo Bustos Thames
 
Analisis De Software
Analisis De SoftwareAnalisis De Software
Analisis De SoftwareWily Sánchez
 
Diseño Orientado al Flujo de Datos
Diseño Orientado al Flujo de Datos Diseño Orientado al Flujo de Datos
Diseño Orientado al Flujo de Datos Miriam Martinez
 

La actualidad más candente (20)

02 captura de requisitos
02 captura de requisitos02 captura de requisitos
02 captura de requisitos
 
Curso basico de plc
Curso basico de plcCurso basico de plc
Curso basico de plc
 
Formato ieee830(srs lleno)
Formato ieee830(srs lleno)Formato ieee830(srs lleno)
Formato ieee830(srs lleno)
 
Protocolo de comunicacion
Protocolo de comunicacionProtocolo de comunicacion
Protocolo de comunicacion
 
Archivos.ceneval.edu.mx archivos portal_17353_guiadel_egel-info
Archivos.ceneval.edu.mx archivos portal_17353_guiadel_egel-infoArchivos.ceneval.edu.mx archivos portal_17353_guiadel_egel-info
Archivos.ceneval.edu.mx archivos portal_17353_guiadel_egel-info
 
Unidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacionUnidad 3 topicos avanzados de programacion
Unidad 3 topicos avanzados de programacion
 
Ejercicios - Diagramas de Estados y Clases
Ejercicios - Diagramas de Estados y ClasesEjercicios - Diagramas de Estados y Clases
Ejercicios - Diagramas de Estados y Clases
 
LabVIEW - Estructuras
LabVIEW - EstructurasLabVIEW - Estructuras
LabVIEW - Estructuras
 
Validación de Requerimientos
Validación de RequerimientosValidación de Requerimientos
Validación de Requerimientos
 
Algoritmo ricart y Agrawala
Algoritmo ricart y AgrawalaAlgoritmo ricart y Agrawala
Algoritmo ricart y Agrawala
 
Casos uso uml
Casos uso umlCasos uso uml
Casos uso uml
 
Algoritmo de dekker
Algoritmo de dekker Algoritmo de dekker
Algoritmo de dekker
 
Telemática y TIC
Telemática y TICTelemática y TIC
Telemática y TIC
 
Estructura y funcionamiento del procesador
Estructura y funcionamiento del procesadorEstructura y funcionamiento del procesador
Estructura y funcionamiento del procesador
 
Estimación de Proyectos de Software
Estimación de Proyectos de SoftwareEstimación de Proyectos de Software
Estimación de Proyectos de Software
 
Metodologia de iconix jhon poo
Metodologia de iconix jhon pooMetodologia de iconix jhon poo
Metodologia de iconix jhon poo
 
maquinas de turing
maquinas de turingmaquinas de turing
maquinas de turing
 
Descomposición modular y estilos de control
Descomposición modular y estilos de controlDescomposición modular y estilos de control
Descomposición modular y estilos de control
 
Analisis De Software
Analisis De SoftwareAnalisis De Software
Analisis De Software
 
Diseño Orientado al Flujo de Datos
Diseño Orientado al Flujo de Datos Diseño Orientado al Flujo de Datos
Diseño Orientado al Flujo de Datos
 

Similar a Automatización de servicios en restaurant-bar mediante aplicaciones móviles

Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Ianpierr Miranda
 
Aplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipAplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipJose B Flores P
 
5 aissexposicion1grupo4
5 aissexposicion1grupo45 aissexposicion1grupo4
5 aissexposicion1grupo4Any Álvarez
 
TEMAS RELACIONADOS WEB2
TEMAS RELACIONADOS WEB2TEMAS RELACIONADOS WEB2
TEMAS RELACIONADOS WEB2guest33bc33
 
LI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidasLI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidasEduardo S de Loera
 
Proyecto parcial
Proyecto parcialProyecto parcial
Proyecto parcialdanielpac
 
Lenguajes de Programación
 Lenguajes de Programación Lenguajes de Programación
Lenguajes de ProgramaciónJuanRengel2
 
ing. de software
ing. de softwareing. de software
ing. de softwareellizabp_22
 
Cursos aplicacionesweb
Cursos aplicacioneswebCursos aplicacionesweb
Cursos aplicacioneswebrrc_2011
 
Proyecto de Creacion de Una Aplicacion Web
Proyecto de Creacion de Una Aplicacion WebProyecto de Creacion de Una Aplicacion Web
Proyecto de Creacion de Una Aplicacion WebDJasc Lives
 
101848717 proyecto-ferreteria2
101848717 proyecto-ferreteria2101848717 proyecto-ferreteria2
101848717 proyecto-ferreteria2Alejandro Mireles
 

Similar a Automatización de servicios en restaurant-bar mediante aplicaciones móviles (20)

Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
Proyecto de Aplicación-Implementación de una INTRANET = Colegio Sagrado Coraz...
 
Temas Relacionados Web 2
Temas Relacionados Web 2Temas Relacionados Web 2
Temas Relacionados Web 2
 
Aplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membershipAplicacion mvc entity_framework_login_membership
Aplicacion mvc entity_framework_login_membership
 
5 aissexposicion1grupo4
5 aissexposicion1grupo45 aissexposicion1grupo4
5 aissexposicion1grupo4
 
TEMAS RELACIONADOS WEB2
TEMAS RELACIONADOS WEB2TEMAS RELACIONADOS WEB2
TEMAS RELACIONADOS WEB2
 
Calidad del desarrollo de software
Calidad del desarrollo de softwareCalidad del desarrollo de software
Calidad del desarrollo de software
 
Aplicacion mvc entity_framework_factura
Aplicacion mvc entity_framework_facturaAplicacion mvc entity_framework_factura
Aplicacion mvc entity_framework_factura
 
LI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidasLI Desarrollo de aplicaciones distribuidas
LI Desarrollo de aplicaciones distribuidas
 
Olivares
OlivaresOlivares
Olivares
 
Curso Superior de Desarrollo BackEnd II - CódigoK
Curso Superior de Desarrollo BackEnd II - CódigoK Curso Superior de Desarrollo BackEnd II - CódigoK
Curso Superior de Desarrollo BackEnd II - CódigoK
 
Proyecto parcial
Proyecto parcialProyecto parcial
Proyecto parcial
 
Lenguajes de Programación
 Lenguajes de Programación Lenguajes de Programación
Lenguajes de Programación
 
Diapo 2
Diapo 2Diapo 2
Diapo 2
 
ing. de software
ing. de softwareing. de software
ing. de software
 
Cursos aplicacionesweb
Cursos aplicacioneswebCursos aplicacionesweb
Cursos aplicacionesweb
 
Ingenieria de sotware
Ingenieria de sotwareIngenieria de sotware
Ingenieria de sotware
 
Proyecto de Creacion de Una Aplicacion Web
Proyecto de Creacion de Una Aplicacion WebProyecto de Creacion de Una Aplicacion Web
Proyecto de Creacion de Una Aplicacion Web
 
101848717 proyecto-ferreteria2
101848717 proyecto-ferreteria2101848717 proyecto-ferreteria2
101848717 proyecto-ferreteria2
 
Dpss u3 a2_nigm
Dpss u3 a2_nigmDpss u3 a2_nigm
Dpss u3 a2_nigm
 
Casos exito santiago toribio almatech
Casos exito santiago toribio almatechCasos exito santiago toribio almatech
Casos exito santiago toribio almatech
 

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