miércoles, 23 de mayo de 2012

INSTITUTO TECNOLÓGICO SUPERIOR DE SANTA MARÍA DE EL ORO DURANGO.

“TECNOLOGÍAS EMERGENTES DEL DESARROLLO WEB”


Alumna: Karina Rodríguez Sierra.

Profesor: ISC Emilio Carrete Mata.




Santa María del Oro, Durango,  a 23de mayo  del 2012.
5.1 conceptos y elementos.
TECNOLOGÍAS EMERGENTES:
Son innovaciones científicas que pueden crear una nueva industria o transformar una existente. Ofreciendo una amplia gama de oportunidades proporcionando motivaciones para hacer inversiones de riesgo.
FRAMEWORKS.
Un framework es un ambiente de trabajo  y ejecución.
Son soluciones completas que contemplan herramientas de  apoyo a la construcción y motores de ejecución, están basados en MVC(Movil View Controller), trabajan por capas:
o   VISTA.-diseño de formularios web.
o   CONTROLADOR.-código para manipular el formulario ya diseñado.


5.2 herramientas de desarrollo web.
5.2.1 FRAMEWORKS DE DESARROLLO.
En el desarrollo de software, un framework o infraestructura digital, es una estructura conceptual y tecnológica de soporte definido, normalmente con artefactos o módulos de software concretos, con base a la cual otro proyecto de software puede ser más fácilmente organizado y desarrollado. Típicamente, puede incluir soporte de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas, para así ayudar a desarrollar y unir los diferentes componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de las entidades del dominio, y provee una estructura y una especial metodología de trabajo, la cual extiende o utiliza las aplicaciones del dominio
Objetivos de los frameworks:
*      El desarrollo es rápido.
*      Desarrollo estructurado.
*      Reutilización de código.
*      Reutilización de código.
*      Aprovechar funcionalidades ya implementadas.
*      Son de código abierto.
Frameworks en distintos entornos:
Java: Spring framework, Studio.net, Struts en combinación con eclipse.
HTML: PhoneGap, Rhodes, Iwebkit.
ASP.NET: ajax, MVC, entity framework.

5.2.2 TECNOLOGÍA AJAX.
Ajax, acrónimo de Asynchronous JavaScript And XML es una técnica de desarrollo web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano. De esta forma es posible realizar cambios sobre las páginas sin necesidad de recargarlas, lo que significa aumentar la interactividad, velocidad y usabilidad en las aplicaciones.
Ajax es una tecnología asíncrona, en el sentido de que los datos adicionales se solicitan al servidor y se cargan en segundo plano sin interferir con la visualización ni el comportamiento de la página. JavaScript es el lenguaje interpretado en el que normalmente se efectúan las funciones de llamada de Ajax mientras que el acceso a los datos se realiza mediante XMLHttpRequest, objeto disponible en los navegadores actuales.
Ajax es una técnica válida para múltiples plataformas y utilizable en muchos sistemas operativos y navegadores,  dado que está basado en estándares abiertos como JavaScript y Document Object Model (DOM).

Tecnologías incluidas en Ajax

Ajax es una combinación de cuatro tecnologías ya existentes:
  • XHTML y hojas de estilos en cascada (CSS) para el diseño que acompaña a la información.
  • Document Object Model (DOM) accedido con un lenguaje de scripting por parte del usuario, para mostrar e interactuar dinámicamente con la información presentada.
  • El objeto XMLHttpRequest para intercambiar datos de forma asíncrona con el servidor web.
  • XML formato usado generalmente para la transferencia de datos solicitados al servidor, aunque cualquier formato puede funcionar.


5.2.3 UTILIZACIÓN DE LIBRERÍAS.
PROTOTYPE
Facilita el desarrollo de aplicaciones web con Java Script, su autor original es Sam Sthepson y las últimas versiones incorporan códigos e ideas de muchos programadores, es la base de muchos frameworks.
SCRIPTACULOUS
Es una de las muchas librerías que han surgido para facilitar el desarrollo de aplicaciones, su autor es Tomas Fushs, se encuentra dividida en varios módulos, que son:
o   EFECTOS: Permite añadir efectos a cada uno de los componentes de la pagina web.
o   CONTROLES: Los 3 controles que forman este módulo son: arrastrar y soltar, autocompletar y editor de contenidos.
o   UTILIDADES: L utilidad principal es builder que se utiliza para crear nodos y fragmentos de DOM.
JQUERY
Su autor original es John Resig, recibe contribuciones de decenas de programadores. Su diseño interno tiene diferencias drásticas respecto a Prototype.

5.3 CONCLUSIÓN
Las tecnologías emergentes bajo el entorno del desarrollo web, son importantes para la óptima y rápida evolución e innovación en la web, conocer acerca de las tecnologías emergentes que podemos implementar cuando desarrollemos algún sitio es fundamental ya que nos ahorraremos tiempo, trabajo, esfuerzo y dinero, las TIC´s por ejemplo nos dan apoyo en el manejo y manipulación de la información hacia la comunicación..



PROYECCIÓN DEL SW “DULCERÍA LA PENCA DE MIEL” A 5 AÑOS.
El crecimiento de un Sw depende en gran medida de los requerimientos que el cliente tenga después de un tiempo transcurrido desde la instalación del Sistema, esto se da en gran medida en empresas que ascienden dentro de su territorio.
El software de la dulcería en una proyección hacia 5 años cambiará en:

DISEÑO

a)    Para tener una mejor interfaz de usuario el menú principal tendrá un apartado en el que vinculará a altas, bajas, modificaciones, para de esta manera manejar de una manera más ordenada cada apartado o formulario, es decir el menú principal mandará llamar a el formulario que deseemos usar con solo dar clic en la palabra que reservemos para este proceso.
b)    Para salir del sistema se pondrá un botón que diga SALIR.
c)    Se agregarán submenús para la renta de trampolines y  mobiliario.
d)    Se agregara un apartado de inventario sobre todo lo relacionado sobre baby-shower, para que en el momento en que algún artículo este por terminarse me mande un mensaje de información que me diga la cantidad existente, esto para saber en que momento adquirir mas mercancía.
e)    Se diseñará un apartado donde el dueño pueda ver todos los movimientos que se han hecho en la empresa tanto de ventas, como de compras de productos.
f)     Al momento de ejecutar el proyecto, primero aparecerá un mensaje donde dirá: “Bienvenido a la Dulcería Penca de Miel”, ahí tendrás que introducir una contraseña que se pondrá para mayor seguridad y después aparecerá la pantalla principal donde ya podrás realizar las tareas necesarias.
g)    Al momento de dar de baja a un empleado ya no tendrás que llenar todos los campo, tan solo con escribir el id del mismo con eso se tendrá.
h)   Al momento de modificar a un cliente, tan solo con ingresar el id se te mostrara un mensaje que te dice: ¿Qué desea modificar del cliente? De esta manera se podrá realizar los cambios correspondientes.
i)     El fondo de las pantallas que aparece podría ser modificado, ya que el dueño tal vez requiera otro fondo .
j)     En cada uno de los formulario en donde se da de altas, bajas, modificaciones y consultas de empleados, clientes, productos, etc. se pondrán dos botones, uno donde diga SI y otro donde diga NO, en caso de que sea que Si, se mandara a otro formulario en donde se llenarán todos los datos que se necesitan y en caso de que sea que No, te llevara al menú principal.
k)    Se puede requerir cambios en el logo de la empresa.
l)     Se puede requerir cambios al agregar otro departamento de acuerdo a la necesidad del dueño.
m)  Si la empresa crece, es decir, si se abren nuevas sucursales, se implementara el mismo sistema pero cambiaría su estructura interna de acuerdo a los requerimientos del mismo.
n)   Pueden ocurrir cambios en la dirección del negocio, mismos que por consecuencia  se harán en el sistema.

Cabe mencionar que al cambiar el diseño de algún formulario, cajas de texto, botones, viene implícito el cambio en el código.





Mantenimiento del Software

El mantenimiento de software o manutención de software es una de las actividades más comunes en la ingeniería de software, es el proceso de mejora y optimización del software después de su entrega al usuario final (es decir; revisión del programa), así como también corrección y prevención de los defectos.
Existen diversas maneras de dar mantenimiento a un sw, dirigido hacia nuestro proyecto implementaremos:

Rebanamiento Estático: usado para identificar todo el código de programa que puede modificar alguna variable. Es generalmente útil en la refabricación del código del programa, por estas características, implementaremos el rebanamiento para si en algún momento queremos modificar alguna variable o parte de código en nuestro sistema sea de una manera muy fácil y óptima.


Reparaciones de Fallas: cualquier sistema esta propenso a fallar por lo que se hará una revisión para detectar fallas que vayan surgiendo a lo largo de los años y poder darles solución.
Pueden surgir varios tipos de fallas, como un ejemplo de esto es el ataque de virus al que están expuestos los sistemas, los cuales pueden provocar alguna alteración al software y provocar evitar que este funcione de manera incorrecta.
Adaptación Ambiental: el software estará disponible en plataformas como Windows 7 y Windows XP, en caso de que el cliente desee cambiar de Sistema Operativo, el Software será modificado para poder ser instalado en la nueva plataforma elegida por el cliente.
Adición de Funcionalidad: durante el paso del tiempo el Sw se ira  actualizando y modificando para que de esta manera el Sw sea amigable  y realce con su función lo mas mejor posible.

CONCLUSIÓN
La implementación de un sistema nos muestra en gran medida la factibilidad y usabilidad correcta del mismo, si el sistema resulta favorable y del gusto del cliente, nos permitirá generar expectativas favorables para que el cliente solicite nuestros servicios como desarrolladores del Sw en el caso de requerir una mejora, actualización o mantenimiento al Sistema.
Por este conjunto de  razones es que es importante la proyección del Sw y el mantenimiento.





viernes, 11 de mayo de 2012

Encriptación en la web


“Encriptación”

Criptografía: mediante el uso de la criptografía se intenta proteger la información a base de codificarla de una forma desconocida a los elementos que no forman parte de la comunicación.

Se distinguen, básicamente, dos tipos de encriptación:

Algoritmos de clave privada o simétricos (DES, TDES, IDEA, RC4 y Skipjack), dónde el emisor y el receptor utilizan la misma clave secreta para cifrar y descifrar respectivamente el mensaje (Emisor-Receptor).

Servicios:

Confidencialidad.

Autenticación.

Integridad.

Algoritmos de clave pública o asimétricos (RSA y Diffie- Hellman), en los que un proceso matemático genera dos claves (privada y pública asociadas) matemáticamente relacionadas para cada individuo, de forma que un mensaje que se cifre con una de las claves sólo puede ser desencriptado con la otra.  

Servicios:

cifrado con privada y descifrado con publica autenticación y no Repudio.

Cifrado con pública y descifrado con privada confidencialidad.



Las aplicaciones básicas de los algoritmos criptográficos son:

*                     El cifrado es la encriptación de un mensaje con una clave.

*                     La firma digital conjunto de datos que se añaden a una unidad de datos para protegerlos contra la falsificación, permitiendo al receptor probar la fuente y la integridad de los mismos.

*                      Una función hash segura es capaz de reducir una secuencia de caracteres de longitud arbitraria a un número tal que un cambio mínimo en la entrada produce una salida completamente distinta, no existe su función inversa y su rango es lo bastante extenso como para hacer inviable una búsqueda exhaustiva.





Autenticación.

Es un procedimiento para verificar la autenticidad de un mensaje:

que la fuente es la que dice ser.

que el contenido no ha sido modificado.

Valor utilizado para autenticar un mensaje: autenticador.

Existen mecanismos para generar el autenticador:

Cifrado del mensaje: el mensaje cifrado sirve como autenticador del mensaje.

Código de Autenticación de Mensaje (MAC): función publica del mensaje y una clave secreta valor de longitud fija.

Función Hash: función publica que genera un valor de longitud fija a partir de un mensaje de cualquier longitud.





Ejemplo de Algoritmos que utilizan para encriptar:

Cifrado simétrico: DES, Triple DES, IDEA, Skipjack, CAST-128, Blowfish, RC2, RC4, RC5

Cifrado asimétrico: RSA, DSA, El Gamal

Hash: MD2, MD3, MD5, RIPEMD-160, SHA

MAC: HMAC-MD5, HMAC-SHA, HMAC-RIPEMD-160.



System.Security.Cryptography (Sistema de seguridad criptografica)

– Sus componentes:

Clases abstractas de algoritmos de cifrado.

Definen las funciones que se han de implementar.

De ellas se derivan implementaciones de los algoritmos.

Clases “helper” de elementos de cifrado. Son clases de ayuda generales para realizar cifrados y descifrados.

Clases de implementaciones concretas de algoritmos de cifrado. Implementaciones que se extienden de las clases abstractas.

Ejemplos de Sw para encriptar:



      i.            Kenvast Sw Inc. Password Book es una herramienta inteligente y útil para administrar toda la información de contraseñas de su cuenta fácilmente de una forma segura y centralizada. Mantiene sus datos de contraseñas de cuentas - cuentas del banco, cuentas de tarjetas de crédito, tarjetas de identificación, cuentas de buzones de correo, y nombres de inicio de sesión de cuentas de sitios web - siempre con usted en cualquier lugar, en cualquier momento. Password Book utiliza algoritmos AES de 128 bits para encriptar su información de cuentas, nadie puede acceder a sus datos sin su PIN de aplicación.

  ii.            Certificados SSL. Potente cifrado SSL para proteger sus datos más importantes.

iii.            No Trax 1.5.0.75 . Nos permite navegar por el internet sin dejar ningún rastro de ello.

iv.            Web replay 1.7. Graba acciones realizadas en una web.



 CONCLUSIÓN: la encriptación es una buena medida de seguridad, que nos permite ocultar información, mostrandola en pantalla como si fuese otra secuencia de caracteres, existen básicamente 2 tipos de algoritmo que se manejan para encriptar, estos son los simétricos y los asimétricos, además existen Sw´s que nos permiten implementar la encriptación en las diferentes plataformas o aplicaciones que usemos en la vida diaria y sobretodo en la Web .