miércoles, 2 de mayo de 2012

Modelo Vista Controlador (MVC) 


¿Que es?
Es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de negocio en tres componentes distintos. El patrón de llamada y retorno MVC (según CMU), se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página. El modelo es el Sistema de Gestión de Base de Datos y la Lógica de negocio, y el controlador es el responsable de recibir los eventos de entrada desde la vista.


Descripción del patrón


  • Modelo: Esta es la representación específica de la información con la cual el sistema opera. En resumen, el modelo se limita a lo relativo de la vista y su controlador facilitando las presentaciones visuales complejas. El sistema también puede operar con más datos no relativos a la presentación, haciendo uso integrado de otras lógicas de negocio y de datos afines con el sistema modelado.
  • Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.
  • Controlador: Este responde a eventos, usualmente acciones del usuario, e invoca peticiones al modelo y, probablemente, a la vista.
Muchos de los sistemas informáticos utilizan un Sistema de Gestión de Base de Datos para gestionar los datos: en líneas generales del MVC corresponde al modelo. La unión entre capa de presentación y capa de negocio conocido en el paradigma de la Programación por capas representaría la integración entre Vista y su correspondiente Controlador de eventos y acceso a datos, MVC no pretende discriminar entre capa de negocio y capa de presentación pero si pretende separar la capa visual gráfica de su correspondiente programación y acceso a datos, algo que mejora el desarrollo y mantenimiento de la Vista y el Controlador en paralelo, ya que ambos cumplen ciclos de vida muy distintos entre sí.
Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo que sigue el control generalmente es el siguiente:
  1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botón, enlace, etc.)
  2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de la acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a través de un gestor de eventos (handler) o callback.
  3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario (por ejemplo, el controlador actualiza el carro de la compra del usuario). Los controladores complejos están a menudo estructurados usando un patrón de comando que encapsula las acciones y simplifica su extensión.
  4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se reflejan los cambios en el modelo (por ejemplo, produce un listado del contenido del carro de la compra). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, se podría utilizar el patrón Observador para proveer cierta indirección entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio. Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun así el modelo en sí mismo sigue sin saber nada de la vista. Este uso del patrón Observador no es posible en las aplicaciones Web puesto que las clases de la vista están desconectadas del modelo y del controlador. En general el controlador no pasa objetos de dominio (el modelo) a la vista aunque puede dar la orden a la vista para que se actualice. 
  5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.



Servlets
¿Que son? 
Los servlets son objetos que corren dentro y fuera del contexto de un contenedor de servlets y extienden su funcionalidad.
La palabra servlet deriva de otra anterior, applet, que se refería a pequeños programas que se ejecutan en el contexto de un navegador web. Por contraposición, un servlet es un programa que se ejecuta en un servidor.
El uso más común de los servlets es generar todas páginas web de forma dinámica a partir de los parámetros de la petición que envíe el navegador web.


¿Como se usan?
  Los Servlets son módulos escritos en Java que se utilizan en un servidor, que puede ser o no ser servidor web, para extender sus capacidades de respuesta a los clientes al utilizar las potencialidades de Java. Los Servlets son para los servidores lo que los applets para los navegadores, aunque los servlets no tienen una interfaz gráfica.
Los servelts pueden ser incluidos en servidores que soporten la API de Servlet (ver servidores). La API no realiza suposiciones sobre el entorno que se utiliza, como tipo de servidor o plataforma, ni del protocolo a utilizar, aunque existe una API especial para HTTP.
 Los Servlets son un reemplazo efectivo para los CGI en los servidores que los soporten ya que proporcionan una forma de generar documentos dinámicos utilizando las ventajas de la programación en Java como conexión a alguna base de datos, manejo de peticiones concurrentes, programación distribuida, etc. Por ejemplo, un servlet podría ser responsable de procesar los datos desde un formulario en HTML como registrar la transacción, actualizar una base de datos, contactar algún sistema remoto y retornar un documento dinámico o redirigir a otro servlet u alguna otra cosa.

Ejemplo: 
Código HTML

<html>

<head>

<title>Ejemplo de un Servlet simple</title>

</head>

<body>

<form action=http://servidor:8080/servlet/ServletSimple method=POST>

<BR>
<BR>Introduzca un texto en el cuadro y oprima el botón "Aceptar"
<BR>
<input type=text name=TEXTO>
<p>
<input type=submit value=Aceptar><input type=reset value=Limpiar>
</form>
</body>
</html>
   
En el código HTML necesario para implementar el ejemplo destacan dos partes. En primer lugar la cabecera del form, que indica la acción a desencadenar en el servidor al pulsar el botón de Submit, y en segundo lugar la parte en que se define el form propiamente. El archivo que contiene la página HTML lo llamaremos ServletSmiple.html.






ç




jueves, 23 de febrero de 2012

AdSense y AdWords


¿Qué es AdSense?
AdSense es un servicio que ofrece Google para la publicidad online. Es el sistema de publicidad online más conocido en todo el mundo, por la popularidad de Google y también porque ,a diferencia de otros servicios de publicidad online, AdSense dispone de anuncios en más de 30 idiomas.
¿Cómo se creó AdSense?
Una empresa de Los Angeles llamada Oingo, Inc creó un algoritmo de busqueda llamado WordNet que se basaba en el significado de las palabras; en 2001 cambio su nombre por Applied Semantics y 2 años más tarde fué adquirido por Google en 102 millones de dolares.
AdSense fue lanzado por Google oficialmente el 18 de junio de 2003.
¿En qué consiste AdSense?
Consiste en que cuando te suscribes a AdSense, Google pone en tu página web publicidad relacionada con el contenido de tu pagina web y por cada click que un visitante haga en la publicidad que hay en tu página, Google te pagará un monto determinado.
Pero para evitar los fraudes Google impone una serie de términos y condiciones que prohiben que uno haga click en los anuncios de su propia página o incite a que otras personas para que hagan click en la publicidad.

¿Qué es AdWords?
AdWords es otro servicio que ofrece Google pero esta vez para las entidades que desean anunciar algo, es decir, publicidad patrocinada.
¿Cómo funciona AdWords?
Cuando alguien realiza una busqueda en Google, en la parte derecha del navegador aparecen en una columna una serie de anuncios relacionados, por ejemplo si alguien realiza una busquedad sobre casas, apareceran anuncios referentes a casas y condominios.
Google cobra a los propietarios del anuncio por cada click que se realiza sobre su publicidad, es por eso que cuando una persona abusa del servicio de AdSense, Google se ve obligado a deshabilitar su cuenta en AdSense por clicks indevidos.
Los anunciantes, en cierta forma, pueden elegir en que tipo de páginas quieren que sus anuncios aparezcan empleando palabras clave, pero deben pagar por estas palabras, y si hay otro anuncio con la misma palabra clave, deben pagar más para que su anuncio aparezca primero, como si fuese una especie de subasta de palabras.

miércoles, 22 de febrero de 2012

Servicios Web

-En general, el servicio web es software que esta destinado a realizar intercambio de datos entre maquinas conectadas en una red con diferentes plataformas y entre programas distintos, usando protocolos estándares.


Hay varios tipos de servicios web, entre ellos estan:



u-Remote Procedure Calls (RPC, Llamadas a Procedimientos Remotos)
Consiste en que una maquina puede ejecutar codigo en otra sin importar la comunicacion entre estas.

u
u-Arquitectura Orientada a Servicios (Service-oriented Architecture, SOA)

uEs donde la unidad básica de comunicación es el mensaje, más que la operación.
uEsto es típicamente referenciado como servicios orientados a mensajes. 

u
u-REST (REpresentation State Transfer).


Es una técnica de arquitectura software para sistemas hipermedia distribuidos como la World Wide Web. 

En la actualidad se usa en el sentido más amplio para describir cualquier interfaz web simple que utiliza XML y HTTP.


Aqui les dejamos una lista de los 10 mejores servicios web segun: http://sentidoweb.com/2007/05/02/las-10-mejores-aplicaciones-y-servicios-web-gratuitos.php.


Modelos de negocio.-

B2B.-

Business to Business es la transmision de informacion referente a transacciones comerciales electronicamente, presentada a finales de los años 1970 para enviar electronicamente documentos tales como pedidos de compra o facturas.
El uso de aplicaciones y comunicaciones para soportar el intercambio de valor entre organizaciones. Tipicamente intercambio de bienes o servicios por pago.
- Aplicaciones de suministro diseñadas para automatizar las compras corporativas y aplicaciones abasadas en catalogos, permitiendo a los clientes con altos volumenes configurar sus ordenes y definir el precio.
- Ejemplo: Chemdex


B2C.- 


B2C es la abreviatura de la expresion business-to-costumer. Se refiere a la estrategia que desarrollan las empresas comerciales para llegar directamente al cliente o usuario final.

- Comercializacion y venta, asi como la administracion de ordenes y pagos en linea.
- Modalidad mas comun de E-Commerce
- Tendencia de crecimiento
- Ejemplos de empresas lideres en el ramo:
  Amazon.com, Dell.com, CDNow.com


B2G.-

B2G es la abraviatura de Business to Goverment y consiste en optimizar los procesos de negociacion entre empresas y el govierno a traves del uso de Internet. Se aplica a sitios o portales especializados en la relacion con la administracion publica.

  E-Goverment contempla una nueva forma de relacionarse con los proveedores.
- Involucra procesos dentro de algunos entes publicos, impulsandolos a migrar a nuevas redes tecnologicas                 y a integrarse entre si o con los proveedores.

C2C.-

C2C (Costumer-to-costumer) es la abreviatura utilizada en comercio electronico para definir una estrategia de cliente a cliente. Se utiliza este termino para definir un modelo de negocio en la red que pretende relacionar comercialmente el usuario final con otro usuario final.

- Transformacion de las practicas tradicionales de anuncios clasificados, ferias, o intermediarios de subastas.
- Ejemplos: Mercado Libre, De Remate.com, E-Bay.

Internet, Extranet, Intranet
- Internet : En la actualidad es una enorme red que conecta redes y computadoras distribuidas por todo el mundo, permitiéndonos comunicarnos y buscar y transferir información sin grandes requerimientos tecnológicos ni económicos relativos para el individuo. hardware (ordenadores interconectados por vía telefónica o digital) y software (protocolos y lenguajes que hacen que todo funcione).
En esta red participan computadoras de todo tipo, desde grandes sistemas hasta modelos personales descontinuados hace años. En adición, se dan cita en ella instituciones gubernamentales, educativas, científicas, sin fines de lucro y, cada vez más, empresas privadas con intereses comerciales, haciendo su información disponible a un público de más de 30 millones de personas.
 Es una combinación de
- Extranet : Es un tipo mas pequeño de interconexion entre computadoras que el internet. Debe obtenerse acceso a la extranet en el grado en que ésta proporciona acceso al sistema de información para personas que están fuera de la empresa.
Esto podría hacerse a través de una autenticación simple (mediante nombre de usuario y contraseña) o autenticación sólida (mediante un certificado). En consecuencia, una extranet no es ni una intranet ni un sitio de Internet.
- Intranet :  La intranet es una red acotada al ambito de una organizacion, construida con la misma tecnologia que internet y puede estar formadas por varias redes fisicas, como por ejemplo el de una organizacion con sedes ubicada en distintos puntos estrategicos.
Las intranet permiten: A cada sector de la compañia publicar la informacion facilmente, reduciendo los costos, como por ejemple los de imprimir, distribuir y archivar documentos.
Uno de los aspectos mas importantes a tener en cuenta es la seguridad, ya que las intranet son redes expuestas a notables riesgos de seguridas. Debemos tener en cuenta que los miembros de la organizacion y solo ellos pueden acceder a la informacion, cualquier conexion que no tenga una autorizacion debe ser automaticamente bloqueada.

lunes, 13 de febrero de 2012

Firma Digital vs. desconfianza en las relaciones por Internet


Firma Digital vs. desconfianza en las relaciones por Internet

* Los comercios electrónicos es un modo muy practico de realizar transacciones a través de Internet en una          manera mas accesible, dinámica y así ahorrar mas tiempo y dinero.

* El problema de los procesos a través de Internet es que la gente tiene muy poca confianza en los procesos electrónicos debido a que no se sabe si la persona o empresa es de confianza o si existe o si su transacción puede ser alterada por un tercero. Incluso en nuestro país, no existe un regulador oficial que administre y controle estos procesos.

* Para que estos procesos de envío de documentos o transacciones electrónicos se emplean las firmas digitales que son alternativas para dar mayor confianza y seguridad a estos procesos.

* Firma digital básica.- Es una especie de código alfanumérico generado para ser utilizado en el documento como una firma. Se genera una clave publica la cual es enviada a todos y es la que verifica nuestra firma y crea mensajes encriptados y la clave privada, al cual no debe ser revelada a los demás y permite desencriptar los mensajes. Básicamente ambas claves son para encriptar y desencriptar mensajes y dar seguridad.

*Firma digital avanzada.-  Genera un valor hash, el cual pone en código el mensaje, como un código de barras, y este posteriormente es comparado con un código suyo. Si ambos son iguales, se confirma que es un mensaje original del emisor y no fue vulnerado en el proceso.