4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

24
Instituto Politécnico Nacional Unidad Profesional Interdisciplinaria de Ingeniería y Ciencias Sociales y Administrativas Unidad de aprendizaje: Seguridad En Ambientes Obicuos Profesora: Ortega Avalos Julia Alicia Alumnos: Hernández Peña Alexia Montserrat Luisa Mendoza Chávez Jorge Saavedra Martínez Francisco Terán Fonseca Felipe de Jesús Villagómez Borunda Eliot

Transcript of 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Page 1: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Instituto Politécnico Nacional

Unidad Profesional Interdisciplinaria de Ingeniería y Ciencias Sociales y Administrativas

Unidad de aprendizaje:

Seguridad En Ambientes Obicuos

Profesora:

Ortega Avalos Julia Alicia

Alumnos:

Hernández Peña Alexia Montserrat Luisa

Mendoza Chávez Jorge

Saavedra Martínez Francisco

Terán Fonseca Felipe de Jesús

Villagómez Borunda Eliot

Secuencia:

4CM62

Page 2: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Modelos de bases de datos

Un modelo de datos es básicamente una "descripción" de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos.

Bases de datos jerárquicas

En este modelo los datos se organizan en una forma similar a un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres es llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas. Las bases de datos jerárquicas son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento

En este modelo solo se pueden representar relaciones 1: M, por lo que presenta varios inconvenientes:

No se admiten relaciones N:M Un segmento hijo no puede tener más de un padre. No se permiten más de una relación entre dos segmentos. Para acceder a cualquier segmento es necesario comenzar por el

segmento raíz El árbol se debe de recorrer en el orden designado.

Base de datos de red

En este modelo las entidades se representan como nodos y sus relaciones son las líneas que los unen. En esta estructura cualquier componente puede relacionarse con cualquier otro. A diferencia del modelo jerárquico, en este modelo, un hijo puede tener varios padres.

Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero, aun así, la dificultad que significa administrar la información en una base de datos de red ha significado que sea un modelo utilizado en su mayoría por programadores más que por usuarios finales.

Bases de datos transaccionales

Son bases de datos cuyo único fin es el envío y recepción de datos a grandes velocidades, estas bases son muy poco comunes y están dirigidas por lo general al entorno de análisis de calidad, datos de producción e industrial, es importante entender que su fin único es recolectar y recuperar los datos a la mayor velocidad

Page 3: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

posible, por lo tanto la redundancia y duplicación de información no es un problema como con las demás bases de datos, por lo general para poderlas aprovechar al máximo permiten algún tipo de conectividad a bases de datos relacionales.

Un ejemplo habitual de transacción es el traspaso de una cantidad de dinero entre cuentas bancarias. Normalmente se realiza mediante dos operaciones distintas, una en la que se decrementa el saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta destino. Las dos operaciones deben ser atómicas, es decir, el sistema debe garantizar que, bajo cualquier circunstancia (incluso una caída del sistema), el resultado final es que, o bien se han realizado las dos operaciones, o bien no se ha realizado ninguna.

Base de datos relacionales.

Éste es el modelo utilizado en la actualidad para modelar problemas reales y administrar datos dinámicamente.

En este modelo, el lugar y la forma en que se almacenen los datos no tienen relevancia (a diferencia de otros modelos como el jerárquico y el de red). Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser recuperada o almacenada mediante "consultas" que ofrecen una amplia flexibilidad y poder para administrar la información.

El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query Language o Lenguaje Estructurado de Consultas, un estándar implementado por los principales motores o sistemas de gestión de bases de datos relacionales

Bases de datos distribuidas

Son la que almacenan datos que pertenecen lógicamente a un sólo sistema, pero se encuentra físicamente esparcido en varios “sitios” de la red. Un sistema de base de datos distribuidos se compone de un conjunto de sitios, conectados entre sí mediante algún tipo de red de comunicaciones, en el cual:

Cada sitio es un sistema de base de datos en sí mismo. Los sitios trabajan en conjunto si es necesario con el fin de que un usuario

de cualquier sitio pueda obtener acceso a los datos de cualquier punto de la red tal como si todos los datos estuvieran almacenados en el sitio propio del usuario.

Bases de datos multidimensionales

Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP. Básicamente no se diferencian demasiado de las bases de datos relacionales (una tabla en una base de datos relacional podría serlo

Page 4: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

también en una base de datos multidimensional), la diferencia está más bien a nivel conceptual; en las bases de datos multidimensionales los campos o atributos de una tabla pueden ser de dos tipos, o bien representan dimensiones de la tabla, o bien representan métricas que se desean estudiar.

Base de datos orientada a objetos

Este modelo, bastante reciente, y propio de los modelos informáticos orientados a objetos, trata de almacenar en la base de datos los objetos completos (estado y comportamiento). Una base de datos orientada a objetos es una base de datos que incorpora todos los conceptos importantes del paradigma de objetos:

Encapsulación - Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos.

Herencia - Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases.

Polimorfismo - Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos.

En bases de datos orientadas a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos. Una operación (llamada función) se especifica en dos partes. La interfaz (o signatura) de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos (o parámetros). La implementación (o método) de la operación se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos invocando a dichas operaciones a través de sus nombres y argumentos, sea cual sea la forma en la que se han implementado. Esto podría denominarse independencia entre programas y operaciones.

Lenguajes de programación web

Lenguaje Javascript

Este es un lenguaje interpretado, no requiere compilación. Fue creado por Brendan Eich en la empresa Netscape Communications. Utilizado principalmente en páginas web. Es similar a Java, aunque no es un lenguaje orientado a objetos, el mismo no dispone de herencias. La mayoría de los navegadores en sus últimas versiones interpretan código Javascript.

El código Javascript puede ser integrado dentro de nuestras páginas web. Para evitar incompatibilidades el World Wide Web Consortium (W3C) diseño un estándar denominado DOM (en inglés Document Object Model, en su traducción al español Modelo de Objetos del Documento).

Page 5: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Ventajas:

Lenguaje de scripting seguro y fiable.

Los script tienen capacidades limitadas, por razones de seguridad.

El código Javascript se ejecuta en el cliente.

Desventajas:

Código visible por cualquier usuario.

El código debe descargarse completamente.

Puede poner en riesgo la seguridad del sitio, con el actual problema llamado XSS (significa en inglés Cross Site Scripting renombrado a XSS por su similitud con las hojas de estilo CSS).

Lenguaje PHP

Es un lenguaje de programación utilizado para la creación de sitio web. PHP es un acrónimo recursivo que significa “PHP Hypertext Pre-processor”, (inicialmente se llamó Personal Home Page). Surgió en 1995, desarrollado por PHP Group.

PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generación de páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor. PHP no necesita ser compilado para ejecutarse. Para su funcionamiento necesita tener instalado Apache o IIS con las librerías de PHP. La mayor parte de su sintaxis ha sido tomada de C, Java y Perl con algunas características específicas. Los archivos cuentan con la extensión (php).

Ventajas:

Muy fácil de aprender.

Se caracteriza por ser un lenguaje muy rápido.

Soporta en cierta medida la orientación a objeto. Clases y herencia.

Es un lenguaje multiplataforma: Linux, Windows, entre otros.

Capacidad de conexión con la mayoría de los manejadores de base de datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras.

Capacidad de expandir su potencial utilizando módulos.

Posee documentación en su página oficial la cual incluye descripción y ejemplos de cada una de sus funciones.

Page 6: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.

Incluye gran cantidad de funciones.

No requiere definición de tipos de variables ni manejo detallado del bajo nivel.

Desventajas:

Se necesita instalar un servidor web.

Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser más ineficiente a medida que las solicitudes aumenten de número.

La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP.

La programación orientada a objetos es aún muy deficiente para aplicaciones grandes.

Dificulta la modularización.

Dificulta la organización por capas de la aplicación.

Lenguaje ASP

Es una tecnología del lado de servidor desarrollada por Microsoft para el desarrollo de sitio web dinámicos. ASP significa en inglés (Active Server Pages), fue liberado por Microsoft en 1996. Las páginas web desarrolladas bajo este lenguaje es necesario tener instalado Internet Information Server (IIS).

ASP no necesita ser compilado para ejecutarse. Existen varios lenguajes que se pueden utilizar para crear páginas ASP. El más utilizado es VBScript, nativo de Microsoft. ASP se puede hacer también en Perl and Jscript (no JavaScript). El código ASP puede ser insertado junto con el código HTML. Los archivos cuentan con la extensión (asp).

Ventajas:

Usa Visual Basic Script, siendo fácil para los usuarios.

Comunicación óptima con SQL Server.

Soporta el lenguaje JScript (Javascript de Microsoft).

Page 7: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Desventajas:

Código desorganizado.

Se necesita escribir mucho código para realizar funciones sencillas.

Tecnología propietaria.

Hospedaje de sitios web costosos.

Lenguaje ASP.NET

Este es un lenguaje comercializado por Microsoft, y usado por programadores para desarrollar entre otras funciones, sitios web. ASP.NET es el sucesor de la tecnología ASP, fue lanzada al mercado mediante una estrategia de mercado denominada .NET.

El ASP.NET fue desarrollado para resolver las limitantes que brindaba tu antecesor ASP. Creado para desarrollar web sencillas o grandes aplicaciones. Para el desarrollo de ASP.NET se puede utilizar C#, VB.NET o J#. Los archivos cuentan con la extensión (aspx). Para su funcionamiento de las páginas se necesita tener instalado IIS con el Framework .Net. Microsft Windows 2003 incluye este framework, solo se necesitará instalarlo en versiones anteriores.

Ventajas:

Completamente orientado a objetos.

Controles de usuario y personalizados.

División entre la capa de aplicación o diseño y el código.

Facilita el mantenimiento de grandes aplicaciones.

Incremento de velocidad de respuesta del servidor.

Mayor velocidad.

Mayor seguridad.

Desventajas:

Mayor consumo de recursos.

Page 8: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Lenguaje JSP

Es un lenguaje para la creación de sitios web dinámicos, acrónimo de Java Server Pages. Está orientado a desarrollar páginas web en Java. JSP es un lenguaje multiplataforma. Creado para ejecutarse del lado del servidor.

JSP fue desarrollado por Sun Microsystems. Comparte ventajas similares a las de ASP.NET, desarrollado para la creación de aplicaciones web potentes. Posee un motor de páginas basado en los servlets de Java. Para su funcionamiento se necesita tener instalado un servidor Tomcat.

Ventajas:

Ejecución rápida del servlets.

Crear páginas del lado del servidor.

Multiplataforma.

Código bien estructurado.

Integridad con los módulos de Java.

La parte dinámica está escrita en Java.

Permite la utilización se servlets.

Desventajas:

Complejidad de aprendizaje.

Lenguaje Python

Es un lenguaje de programación creado en el año 1990 por Guido van Rossum, es el sucesor del lenguaje de programación ABC. Python es comparado habitualmente con Perl. Los usuarios lo consideran como un lenguaje más limpio para programar. Permite la creación de todo tipo de programas incluyendo los sitios web.

Su código no necesita ser compilado, por lo que se llama que el código es interpretado. Es un lenguaje de programación multiparadigma, lo cual fuerza a que los programadores adopten por un estilo de programación particular:

Programación orientada a objetos.

Programación estructurada.

Page 9: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Programación funcional.

Programación orientada a aspectos.

Ventajas:

Libre y fuente abierta.

Lenguaje de propósito general.

Gran cantidad de funciones y librerías.

Sencillo y rápido de programar.

Multiplataforma.

Licencia de código abierto (Opensource).

Orientado a Objetos.

Desventajas:

Lentitud por ser un lenguaje interpretado.

Lenguaje Ruby

Es un lenguaje interpretado de muy alto nivel y orientado a objetos. Desarrollado en el 1993 por el programador japonés Yukihiro “Matz” Matsumoto. Su sintaxis está inspirada en Phyton, Perl. Es distribuido bajo licencia de software libre (Opensource).

Ruby es un lenguaje dinámico para una programación orientada a objetos rápida y sencilla. Para los que deseen iniciarse en este lenguaje pueden encontrar un tutorial interactivo de ruby. Se encuentra también a disposición de estos usuarios un sitio con informaciones y cursos en español.

Ventajas:

Permite desarrollar soluciones a bajo Costo.

Software libre.

Multiplataforma.

Page 10: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Lenguajes de programación orientada a objetos

Programación Orientada a Objetos

La programación orientada a objetos es una “filosofía”, un modelo de programación, con su teoría y su metodología. Un lenguaje orientado a objetos es un lenguaje de programación que permite el diseño de aplicaciones orientadas a objetos. Lo normal es que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la “filosofía” (o adquiera la forma de pensar) y después el lenguaje, porque “filosofía” sólo hay una y lenguajes muchos.

La programación orientada a objetos es otra forma de descomponer problemas. Este nuevo método de descomposición es la descomposición en objetos; vamos a fijarnos no en lo que hay que hacer en el problema, sino en cuál es el escenario real del mismo, y vamos a intentar simular ese escenario en nuestro programa.

En el caso de los lenguajes orientados a objetos, como es el caso de C++ y Java, el elemento básico no es la función, sino un ente denominado precisamente objeto.

Un objeto es la representación en un programa de un concepto, y contiene toda la información necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos.

¿Qué es un objeto?

Un objeto no es más que un conjunto de variables (o datos) y métodos (o funciones) relacionados entre sí. Los objetos en programación se usan para modelar objetos o entidades del mundo real (el objeto hijo, madre, o farmacéutica, por ejemplo). Un objeto es, por tanto, la representación en un programa de un concepto, y contiene toda la información necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos

¿Qué es un mensaje?

Normalmente un único objeto por sí solo no es muy útil. En general, un objeto aparece como un componente más de un programa o una aplicación que contiene otros muchos objetos. Es precisamente haciendo uso de esta inter acción como los programadores consiguen una funcionalidad de mayor orden y modelar comportamientos mucho más complejos.

Page 11: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Los objetos de un programa interactúan y se comunican entre ellos por medio de mensajes. Cuando un objeto A quiere que otro objeto B ejecute una de sus funciones miembro (métodos de B), el objeto A manda un mensaje al objeto B.

¿Qué es una clase?

Normalmente en el mundo real existen varios objetos de un mismo tipo, o como diremos enseguida, de una misma clase. Por ejemplo, mi bicicleta es una de las muchas bicicletas que existen en el mundo. Usando la terminología de la programación orientada a objetos, diremos que mi bicicleta es una instancia de la clase de objetos conocida como bicicletas

. Todas las bicicletas tienen algunos estados o atributos (color, marcha actual, cadencia actual, dos ruedas) y algunos métodos (cambiar de marcha, frenar) en común. Sin embargo, el estado particular de cada bicicleta es independiente del estado de las demás bicicletas. La particularización de estos atributos puede ser diferente. Es decir, una bicicleta podrá ser azul, y otra roja, pero ambas tienen en común el hecho de tener una variable “color”. De este modo podemos definir una plantilla de variables y métodos para todas las bicicletas. Las plantillas para crear objetos son denominadas clases.

Herencia

Una vez que hemos visto el concepto de clase y el de objeto, estamos en condiciones de introducir otra de las características básicas de la programación orientada a objetos: el uso de la herencia. El mecanismo de herencia permite definir nuevas clases partiendo de otras ya existentes. Las clases que derivan de otras heredan automáticamente todo su comportamiento, pero además pueden introducir características particulares propias que las diferencian.

Lenguajes de Programación Orientados a Objetos

Se le llama así a cualquier lenguaje de programación que implemente los conceptos definidos por la programación orientada a objetos.

Cabe notar que los conceptos definidos en la programación orientada a objetos no son una condición sino que son para definir que un lenguaje es orientado a objetos. Existen conceptos que pueden estar ausentes en un lenguaje dado y sin embargo, no invalidar su definición como lenguaje orientado a objetos.

Características

Page 12: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Estas son algunas de las características generales que tienen la gran mayoría de lenguajes orientados a objetos, así mismo no suelen contener todas:

Tipificación estricta (fuerte). Tipificación es el proceso de declarar el tipo de información que puede contener una variable. Los errores de programación relacionados con el número de parámetros, tipos de parámetros e interfaces de módulos, se detectan durante las fases de diseño e implementación, en lugar de en tiempos de ejecución.

�Encapsulamiento. Es deseable que el lenguaje soporte ocultamiento de la información, mediante partes independientes, para la especificación y la implementación. Esta característica proporciona un diseño débilmente acoplado que cumple con rigor el principio básico de la inferencia de software: acoplamiento débil y fuerte cohesión entre los módulos de un programa.

�Compilación incremental. Característica en el desarrollo de sistemas grandes, en los que las porciones del sistema se crean e implementan de un modo sistemático (poco a poco, etapa a etapa). Esta característica complementa la característica de tipificación estricta, que soporta partes independientes de implementación y específica.

�Generalidad. Las clases parametrizadas (mediante plantillas -templates- o unidades genéricas) sirven para soportar un alto grado de reusabilidad (reutilización). Estos elementos genéricos se diseñan con parámetros formales, que se instanciarán con parámetros reales, para crear instancias de módulos que se compilan y enlazan, y ejecutan posteriormente.

�Paso de mensajes. El lenguaje es conveniente que soporte paso bidimensional de mensajes entre módulos, lo que implicará módulos débilmente acoplados y diseños flexibles. Esto significa que se deben poder pasar señales entre módulos, sin necesidad de tener que pasar realmente ningún dato.

�Polimorfismo. Los lenguajes deben permitir que existan operaciones con igual nombre, que se utilicen para manejar objetos de tipos diferentes en tiempo de ejecución. El polimorfismo se implementa, normalmente, en unión con la herencia.

Page 13: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Excepciones. Se deben poder detectar, informar y manejar condiciones excepcionales utilizando construcciones del lenguaje. Esta propiedad añadida al soporte de tolerancia a fallos del software permitirá una estrategia de diseño eficiente.

�Concurrencia. Es conveniente que el lenguaje soporte la creación de procesos paralelos independientes del sistema operativo. Esta propiedad simplificará la transportabilidad de un sistema de tiempo real de una plataforma a otra.

�Persistencia. Los objetos deben poder ser persistentes; es decir, los objetos han de poder permanecer después de la ejecución del programa.

�Datos compartidos. Los módulos se deben poder comunicar mediante memoria compartida, además del paso de mensajes

Distintos Lenguajes de POO

Simula (1967) es aceptado como el primer lenguaje que posee las características principales de un lenguaje orientado a objetos. Fue creado para hacer programas de simulación, en donde los "objetos" son la representación de la información más importante. Smalltalk (1972 a 1980) es posiblemente el ejemplo canónico, y con el que gran parte de la teoría de la programación orientada a objetos se ha desarrollado.

Entre los lenguajes orientados a objetos se destacan los siguientes:

ABAP

ABL Lenguaje de programación de OpenEdge de Progress Software

ActionScript

ActionScript 3

Ada

C++

C#

Page 14: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Clarion

Clipper (lenguaje de programación) (Versión 5.x con librería de objetos Class(y))

D

Object Pascal (Delphi)

Gambas

Harbour

Eiffel

Java

JavaScript (la herencia se realiza por medio de la programación basada en prototipos)

Lexico (en castellano)

Objective-C

Ocaml

Oz

R

Perl (soporta herencia múltiple. La resolución se realiza en preorden, pero puede modificarse al algoritmo linearization C3 por medio del módulo Class::C3 en CPAN)

PHP (a partir de su versión 5)

PowerBuilder

Python

Ruby

Smalltalk (Proyecto investigativo. Influenció a Java.)

Magik (SmallWorld)

Vala

VB.NET

Visual FoxPro (en su versión 6)

Visual Basic 6.0

Visual Objects

Page 15: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

XBase++

Lenguaje DRP

Lenguaje de programación Scala (lenguaje usado por Twitter)

Muchos de estos lenguajes de programación no son puramente orientados a objetos, sino que son híbridos que combinan la POO con otros paradigmas.

Al igual que C++ otros lenguajes, como OOCOBOL, OOLISP, OOPROLOG y Object REXX, han sido creados añadiendo extensiones orientadas a objetos a un lenguaje de programación clásico.

Page 16: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Lenguajes de programación estructurada

Programación estructurada

Se basa en una metodología de desarrollo de programas llamada refinamiento sucesivo.

Se plantea una operación como un todo y se divide en segmentos más sencillos o de menor complejidad.

Una vez terminado todos los segmentos del programa, se procede a unificar las aplicaciones realizadas por el equipo de programadores. Si se ha utilizado adecuadamente la programación estructurada, esta integración debe ser sencilla y no presentar problemas al integrar la misma, y de presentar algún problema, será rápidamente detectable para su corrección.

Ventajas

• Los programas son más fáciles de entender, pueden ser leídos de forma secuencial.

• La estructura de los programas es clara, puesto que las instrucciones están más ligadas o relacionadas entre sí.

• Reducción del esfuerzo en las pruebas y depuración. El seguimiento de los fallos o errores del programa ("debugging") se facilita debido a su estructura más sencilla y comprensible, por lo que los errores se pueden detectar y corregir más fácilmente.

• Reducción de los costos de mantenimiento (Análogamente a la depuración, durante la fase de mantenimiento, modificar o extender los programas resulta más fácil.)

• Es posible hacer la programación estructurada en cualquier lenguaje de programación

Page 17: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Programación estructurada de bajo nivel

En un bajo nivel, los programas estructurados con frecuencia están compuestos de simples estructuras de flujo de programa jerárquicas. Estas son secuencia, selección y repetición.

Lenguajes de programación Móvil

Programación para dispositivos móviles:

Visual Basic

Lenguaje que está orientado a aquellas personas que empezamos en el mundo de la programación de una manera más gráfica y no tan abstracta. No es el mismo lenguaje  de Microsoft, pero su sintaxis es la misma, lo cual tiene sus mismas ventajas como algunos de sus inconvenientes.

Se pueden crear:

-Aplicaciones web que se ejecutan en un servidor web y se representan en diferentes formatos en varios tipos de dispositivos móviles equipados con explorador.

-Aplicaciones de cliente enriquecidas basadas en Windows CE que se ejecutan en el propio dispositivo. Esto último es lo que solemos entender por “aplicación para dispositivos inteligentes”.Al programar para dispositivos inteligentes, se usa el mismo entorno de Visual Studio que al programar para aplicaciones de escritorio pero, al dirigirnos a dispositivos, se manifiestan algunas diferencias. Por ejemplo: -Se necesitan herramientas adicionales para establecer conexión con un dispositivo remoto y realizar depuraciones en el mismo.

Ventajas:Se necesitan herramientas adicionales para establecer conexión con un dispositivo remoto y realizar depuraciones en el mismo.

Desventajas:

La capacidad gráfica y la falta de alternativas al Visual Studio y el consiguiente desembolso económico necesario para adquirir una licencia.

Page 18: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

C# y .NET

Es un lenguaje de programación orientado a objetos desarrollado y estandarizado

po Microsoft como parte de su plataforma .NET, que después fue aprobado como

un estándar por la ECMA (ECMA-334) e ISO(ISO/IEC 23270). C# es uno de los

lenguajes de programación diseñados para la infraestructura de lenguaje común.

Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la

plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros

lenguajes.

Aunque C# forma parte de la plataforma .NET, ésta es una API, mientras que C#

es un lenguaje de programación independiente diseñado para generar programas

sobre dicha plataforma.

Ventaja:

Les aporta a los desarrolladores de .NET sobre otras plataformas, es la poder

utilizar esta tecnología sin  necesidad de aprender a utilizar un nuevo IDE  ya que

ésta se integra con Microsoft Visual Studio 2010 pudiendo utilizar éste como

marco de trabajo.

Desventaja:

Apk (Android application package) resultante tener tamaño excesivo si tenemos

pensado publicar la aplicación en el Android Market y ésta ha de ser descargada

mediante redes móviles.

JAVA

Java es una tecnología que se usa para el desarrollo de aplicaciones que

convierten a la Web en un elemento más interesante y útil. Java no es lo mismo

que javascript, que se trata de una tecnología sencilla que se usa para crear

páginas web y solamente se ejecuta en el explorador.

Java le permite jugar, cargar fotografías, chatear en línea, realizar visitas virtuales

y utilizar servicios como, por ejemplo, cursos en línea, servicios bancarios en línea

y mapas interactivos. Si no dispone de Java, muchas aplicaciones y sitios web no

funcionarán.

Page 19: 4CM62 SEGURIDAD EN AMBIENTES OBICUOS TAREA 1.docx

Ventajas:

* Es muy flexible: Java es un lenguaje especialmente preparado para la

reutilización del código; permite a sus usuarios tomar un programa que

hayan desarrollado tiempo atrás y actualizarlo con mucha facilidad, sea que

necesiten agregar funciones o adaptarlo a un nuevo entorno.

* Funciona en cualquier plataforma: a diferencia de los programas que requieren

de versiones específicas para cada sistema operativo (tales como Windows o

Mac), las aplicaciones desarrolladas en Java funcionan en cualquier entorno, dado

que no es el sistema quien las ejecuta, sino la máquina virtual (conocida

como Java Virtual Machine o JVM).

* Su uso no acarrea inversiones económicas: programar en Java es

absolutamente gratis; no es necesario adquirir ninguna licencia, sino simplemente

descargar el kit de desarrollo (Java Development Kit o JDK) y dar riendas sueltas

a la imaginación.

OBJEVTIVE C

Es un lenguaje de programación orientado a objetos creado como un

superconjunto de C para que implementase un modelo de objetos parecido al

de Smalltalk

Desventajas: Se necesita el uso de licencia para poder desarrollar en esta

plataforma.