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 .






miércoles, 18 de abril de 2012

CONEXIÓN DE BASE DE DATOS CON DISTINTOS GBD:

“PROGRAMACIÓN WEB Y ACCESO A DATOS”

CONEXIÓN DE BD
ISC “8vo semestre”





CONEXIÓN DE BASE DE DATOS CON DISTINTOS GBD:
JDBC es la interfaz que proporciona Java para la conexión a bases de datos. Son un conjunto de clases e interfaces que permiten a Java ejecutar consultas y ordenes en una base de datos.

Para usar un controlador de JDBC, antes deberemos registrarlo en el DriverManager de JDBC. Esto se realiza habitualmente cargando la clase del controlador mediante el método forName de la clase Class. La construcción habitual es:


try
{
Class.forName(“org.postgresql.Driver”);
}
catch(ClassNotFoundException e)
{
....
}
Los controladores JDBC para identificar una conexión concreta a una base de datos utilizan un formato de dirección de tipo URL (Universal Resource Locator). Esta dirección suele ser de la forma: jdbc:controlador:basededatos.


Algunos de los formatos más usados son:


Podemos observar que PostgreSQL especifica la dirección IP del servidor, así como el puerto (5432) y el nombre de la BD.
Oracle, por otro lado, especifica un sub-controlador (oci8) y un nombre de BD que sigue los definidos por Oracle TNS. Podemos ver en los ejemplos de direcciones de conexión que, a pesar de ser diferentes, todas siguen un patrón muy similar (especialmente PostgreSQL, MySQL y SAP DB).
CONEXIÓN DE JAVA CON ORACLE
Para poder conectar a Java con ORACLE lo primero que necesitamos es la implementación de JDBC para ORACLE. Esta implementación se encuentra en el archivo Classes12.jar que podemos encontrar en el siguiente directorio del servidor de Oracle.
%ORACLE_HOME%\jdbc\lib
ORACLE_HOME es una variable de entorno que se crea durante la instalación del servidor ORACLE, y que indica donde está instalado físicamente ORACLE dentro del sistema de archivos, normalmente C:\oracle\ora92 para servidores Windows y ORACLE 9i. Esta misma nomenclatura se aplica al hablar de la instalación cliente.
    Debemos configurar correctamente nuestra variable CLASSPATH para incluir en ella el archivo Classes12.jar.
Oracle proporciona los siguientes drivers en su implementación JDBC:
JDBC Thin Driver: No requiere de la instalación cliente de ORACLE. Ideal para Applets. 
JDBC OCI: API nativa de ORACLE, para aplicaciones J2EE.
JDBC KPRB driver: (default connection) para Java Stored Procedures y Database JSP's.
Todos los drivers soportan la misma sintaxis y funcionalidad, por lo que nuestro código variará únicamente en la forma de crear la conexión.
Conectar a ORACLE con JDBC Thin Driver
    El driver JDBC Thin se conecta y comunica con ORACLE a nivel de sockets. Proporciona su propia versión del protocolo Net8 (SQL*Net) sobre TCP/IP, por lo que no es necesario que exista una instalación de la parte cliente de ORACLE. Dado que este driver es código 100% Java es completamente independiente de la plataforma de ejecución, y como implementa su propia versión del protocolo es ideal para aplicaciones que se ejecutan sobre un navegador Web (applets)    
CONEXIÓN A BD CON MySQL
Codificar el programa que consulte dichos datos

import java.sql.*;
public class Programa {
public static void main(String args[]){
try {
// Para cargar la clase de controlador de base de datos se hace lo siguiente:
Class.forName("com.mysql.jdbc.Driver");
//Para crear el objeto de conexión a la BD:
Connection conexion = DriverManager.getConnection("jdbc:mysql://localhost/ejemplo?user=root&password=");
//Crear objeto Statement para realizar consultas a la BD
Statement instruccion = conexion.createStatement();
//Un objeto ResultSet, almacena los datos de resultados de una consulta
ResultSet tabla = instruccion.executeQuery("SELECT cod , nombre FROM datos");
System.out.println("Codigo\tNombre");
while(tabla.next())
System.out.println(tabla.getInt(1)+"\t"+tabla.getString(2));
}
catch(ClassNotFoundException e){ System.out.println(e); }
catch(SQLException e){ System.out.println(e); }
catch(Exception e){ System.out.println(e); }
}
}


Para el programa anterior es necesario conocer las siguientes funciones:
  • Class.forName(“com.mysql.jdbc.Driver”); Con esta instrucción cargamos el driver de conexión a la BD en MySQL.
  • DriverManager.getConnection Luego de cargar el Driver, es necesario crear la conexión a la base de datos. Para ello usamos el método getConnection de la clase DriverManager (que implementa la clase Driver). A dicho método le pasamos como parámetro una URL de conexión a la base de datos, que se compone, por lo general, de tres partes separados por “:”, jdbc:nombre_dbms:datos_de_conexion. Aunque esto depende del tipo de DMBS y conector que usemos.
  • conexion.createStatement(); este método crea/devuelve un objeto Statement, con el cual podremos ejecutar sentencias en la BD.
  • instruccion.executeQuery(); este método sirve para ejecutar consultas sobre la BD. Recibe como parámetro una sentencia SQL, y devuelve un objeto ResultSet que contendrá los datos de la consulta.
  • while(tabla.next()) esto nos permitirá iterar indefinidamente, mientras en el objeto ResultSet hayan más registros.
    • Posteriormente, dentro del while, podemos obtener los datos de la fila actual con los métodos getInt(int) y getString(int) de ResultSet.
  • Las excepciones que manejamos son básicamente: ClassNotFoundException, que se lanzará por lo general cuando el programa no encuentre el Driver. SQLException, que se lanzará cuando hayan errores a nivel de SQL (errores al insertar datos, errores de sintaxis en las consultas, etc.).
CONEXIÓN DE BD CON  POSTGRESQL DESDE PHP

El sistema de acceso a bases de datos PostgreSQL desde PHP es similar al usado para el acceso a bases de datos MySQL. Solo cambian los nombres de las funciones utilizadas, pero siguen la misma estructura. En los siguientes apartados vemos con más detalle las sentencias a utilizar.
Conexión con bases de datos PostgreSQL
Para establecer la conexión con una base de datos PostgreSQL desde PHP, se utiliza la función:
pg_connect("host=NombreHost dbname=BaseDatos user=Usuario
password=Contraseña")
cuyos parámetros, pasados como una cadena única, indican el nombre del servidor -o IP del mismo- ‘NombreHost’ donde se encuentra la BD, el nombre de la BD ‘BaseDatos’, el ‘Usuario’ de acceso a la base de datos, y la ‘Contraseña’ de acceso. En caso de éxito la función devuelve un identificador del enlace con el sistema de BD.
A diferencia de MySQL, no es preciso indicar con otra función la base de datos a la que se desea acceder, ya que se ha facilitado como parámetro a la función de conexión.
Finalmente, para cerrar la conexión utilizamos:
pg_close($conexion)
donde debemos pasarle como parámetro el enlace con la conexión inicialmente establecida.

CONEXIÓN A BD CON  FIREBIRD:
Conectar a la base de datos de ejemplo :
Nombre del servidor y ruta de acceso
Hay dos elementos en una cadena de conexión: el nombre del servidor y la ruta de acceso al archivo. El formato es como sigue:
servidor: letra_de_disco:\ruta\archivo_de_base_de_datos
Ejemplo en Windows:
serverxyz:C:\Archivos de programa\Firebird\examples\employee.fdb
La sentencia CONNECT
Conectar a una base de datos Firebird siempre requiere que el usuario “se identifique” usando un nombre de usuario y clave válidos (LOGIN). Cualquier usuario aparte de SYSDBA, necesita también tener permisos a los objetos dentro de una base de datos.
Usando isql
Hay varias formas diferentes para conectar con una BD usando isql. Una forma es ejecutar isql en su terminal interactiva. Diríjase al subdirectorio bin de su instalación y en el prompt tipee el comando isql (nota: significa “presione Enter ”):
C:\Archivos de programa\Firebird\Firebird_1_5\bin>isql
Use CONNECT or CREATE DATABASE to specify a database
SQL>CONNECT "C:\Program Files\Firebird\Firebird_1_5\examples\employee.fdb"
CON>user 'SYSDBA' password 'masterkey';
En este punto, isql le informará que Ud se ha conectado:
DATABASE "C:\Archivos de programa\Firebird\Firebird_1_5\examples\employee.fdb",
User: sysdba
SQL>
Ahora puede seguir jugando con la base de datos employee.fdb. Los caracteres isql significan interactive SQL [utility]. Puede usarlo para consultar datos, obtener información acerca de los metadatos, crear objetos de base de datos, ejecutar scripts de definición de datos y mucho más.
Para volver a la línea de comandos escriba
SQL>QUIT;



 REFERENCIAS BIBLIOGRAFICAS:
Desarrollo de Aplicaciones Web , Sw libre.
Ejemplo básico de programación con JDBC y MySQL « Linux, Java y programación.mht
JDBC.html
CONEXIÓN DE BASE DE DATOS CON JAVA - Aleksandro Quito Perez.htm

CONCLUSIÓN:
Es imortante conocer sobre los distinto manejadores de base de datos que existen, lo es aún más saber la sintaxis que deben llevar para poder realizar la correcta conexión con la base de datos, esto permite que podamos trabajar en un ambiente distribuido y con el manejo de toda la información.