miércoles, 7 de agosto de 2013

Cloud Computing Vs Grid Computing

  • Buenas noches, conversando con mis compañeros entro en conversación un tema interesante de investigar que es el siguiente 

Cloud Computing Vs Grid Computing


CLOUD COMPUTING


  • La computación en nube es el uso de un servicio (Servicios Web) para realizar las necesidades informáticas. Aquí Cloud representa Internet. Con el Cloud computing, las empresas pueden escalar hasta la capacidad masiva en un instante sin tener que invertir en nuevas infraestructuras.  Básicamente los consumidores usan lo que necesitan en Internet y pagar sólo por lo que utilizan.
  • La computación en nube incorpora la infraestructura como un servicio (IaaS), plataforma como servicio (PaaS) y el software como servicio (SaaS).
  • Cloud Computing elimina los costes y la complejidad de comprar, configurar y administrar el hardware y software que son necesarios para crear e implementar aplicaciones, estas aplicaciones se entregan como un servicio a través de Internet (la nube).






Ejemplo:


  • Amazon Web Services (AWS) - AWS ofrece un conjunto de servicios que forman juntos una y escalable plataforma confiable (en la nube). 
  • Google Apps – Software como un servicio para el correo electrónico de negocios, intercambio de información y la seguridad






Ventajas:


  • Mayor aprovechamiento de los recursos disponibles con menor consumo de energía eléctrica
  • Posibilidad de trabajar desde cualquier lugar
  • Ahorro importante de costos, ya que el pago realizado se realiza al recurso tecnológico usado. No es necesario invertir en infraestructura extra
  • Ahorro sustancial de espacio físico, ya que el entorno cloud se utiliza en entornos virtualizados como característica principal.
 
 Desventajas:


  • Privacidad (comparte datos, desconfianza a la confidencialidad de los datos)
  • Cambio de proveedor, genera diversos inconvenientes al querer hacerlo, ya que la gran mayoría plantea su propia solución.
  • Pérdida de control sobre los datos almacenados
  • Confidencialidad en la transmisión de los datos a través de conexiones de internet.
  • Depende de la conexión de internet.


GRID COMPUTING


  • La computación Grid es una forma de computación distribuida donde los recursos de muchos ordenadores en una red son utilizadas al mismo tiempo, para resolver un solo problema. Los sistemas de Grid están diseñados para el intercambio y colaboración de los recursos a nivel de procesamiento.
  • La computación Grid está haciendo grandes contribuciones a la investigación científica, ayudando a los científicos de todo el mundo para analizar y almacenar cantidades masivas de datos por parte de los recursos de computación compartidos. Ejemplo: SETI (Search for Extraterrestrial Intellingence) @Home Project
  



Ventajas

  • Proporciona un mecanismo de colaboracion transparente entre grupos dispersos
  • Posibilita el funcionamiento de aplicaciones a agran escala debido a su poder de procesamiento.
  • No tieen limite de espacio fisico
  • Barato en costos
  • Multiplataforma
  • No es necesario sustituir algun tipo de hardware o software para su financimiento.
  • Facilidad de acceso a los recursos.

 

Desventajas:

  • Los protocolos de seguridad, autentificacion y control no estan desarrollado para implementaciones abiertas.
  • No existen muchas aplicaciones que hagan uso de la potencia de un grid
  • Existe dificultad para sincronizar los procesos de todos los equipos.
  • La comunicacion es lenta y no uniforme.
  • El Mantenimiento es complicado de realizar.

Servicio SOAP – Hibernate – WCF



El presente post es sobre las actualizaciones a al Servicio de ClientesService. Se describe paso a paso la secuencia de como llegar a ejecutar un proyecto en SOAP con Hibernate y WCF.

Servicio SOAP – Hibernate – WCF

1Creamos un Proyecto WCF dándole un nombre de Proyecto en este caso SOAPVeterinaria-Ponemos la ruta donde se guardará nuestro proyecto y también damos un nombre a la Solución que puede contener este y otros proyectos.



Base de Datos BD_Veterinaria - Tabla Cliente

 


2.      Es recomendable cambiar el nombre a la clase que por defecto viene con el nombre de IService1, en este caso lo renombramos por “IClientesService”, de igual manera con el archivo *.svc que lo renombraremos por “ClientesService”. De esta manera podemos localizarlos más rápidamente. Un tip es localizarnos en el nombre del archivo para cambiarlo de nombre apretando las teclas Ctrl R + Ctrl R.




3.      Previamente a este paso agregamos 2 carpetas (Dominio y Persistencia)

La Capa de Dominio: Esta capa debe estar presente dentro del sistema que se desee desarrollar. En ella está contenido nuestro modelo conceptual, mejor conocido como modelo de dominio. Este modelo consiste en todas aquellas entidades (facturas, productos, órdenes de compra, etc.) y actores (clientes, bancos, empleados, etc.) que componen y/o interactúan en los procesos del negocio, y son creadas a raíz de la abstracción de sus atributos significativos para el sistema.  

  • En esta carpeta agregamos una clase Clientes con lo siguiente y un archivo XML Clientes.hbm.xml

La Capa de Persistencia: En esta capa se da el almacenamiento de información en un medio no volátil (bases de datos, archivos de texto plano, etc). Los elementos de esta capa típicamente funcionan como objetos de acceso a datos o DAOs (Data Access Objects), proveyendo métodos para leer y almacenar los datos de los objetos de negocio. Es por esto que la existencia de esta capa típicamente está condicionada a la existencia de la capa de dominio. Si no hay un modelo de dominio presente, no hay razón para hacerlo persistente.

  • En esta carpeta agregamos las clases ConexiónUtil, BaseDAO, ClienteDAO y NHibernateHelper.



  • Agregamos las Librerias Iesi.Collection.dll y NHibernate.dll a nuestro Solución y las agregamos en la carpeta References (Click Derecho/Agregar Referencia/Examinar y ubicamos los archivos) 





4. En el clase Cliente de la Capa Dominio codeamos lo siguiente:



 5. En el archivo XML Clientes.hbm.xml de la Capa Dominio codeamos lo siguiente: 



  •  Recordar este paso que es ir a la propiedad Acción de Compilacion del archivo xml, poner Recurso Incrustdo.




6. En el archivo IClientesService codeamos lo siguiente: 


 8. En la clase ConexionUtil de la capa de Persistencia codeamos lo siguiente:



9. En la clase HBibernateHelper(crea la SessionFactory y utiliza HttpContext para mantener una
session) de la capa Persistencia codeamos lo siguiente:




10. El la clase BaseDAO de la capa de Persistencia codeamos lo siguiente



 

  11.  El la clase ClienteDAO de la capa de Persistencia codeamos lo siguiente



12.  En el archivo Clientes.svc codificar lo siguiente.:



using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using SOAPServices.Persistencia;
using SOAPServices.Dominio;

namespace SOAPServices
{
    public class Clientes : IClientes
    {
        private ClienteDAO clienteDAO = null;
        private ClienteDAO ClienteDAO
        {
            get
            {
                if (clienteDAO == null)
                    clienteDAO = new ClienteDAO();
                return clienteDAO;
            }
        }

    public Cliente CrearCliente(string ClienteNombre, string ClienteApellidos, string NumDocumento)
    {
            Cliente v = new Cliente()
            {
                txtClienteNombre = ClienteNombre,
                txtClienteApellido = ClienteApellidos,
                NumDocumento  = NumDocumento
            };
            try
            {
                List<Cliente> a = ListarCliente();
                foreach (Cliente i in a)
                {
                    if (i.NumDocumento == NumDocumento)
                        throw new FaultException("Cliente Ya existe, por favor ingresar nuevamente.");
                }
            }

            catch (FaultException ex)
            {
                throw ex;
            }
            return ClienteDAO.Crear(v);

        }

   public Cliente ObtenerCliente(int codigo)
        {
            return ClienteDAO.Obtener(codigo);
        }

   public Cliente ModificarCliente(int Codigo, string ClienteNombre, string ClienteApellidos, string NumDocumento)
        {
            Cliente v = new Cliente()
            {
                idCliente = Codigo,
                txtClienteNombre = ClienteNombre,
                txtClienteApellido = ClienteApellidos,
                NumDocumento = NumDocumento
            };
            return ClienteDAO.Modificar(v);
        }

   public void EliminarCliente(int codigo)
        {
            Cliente v = ClienteDAO.Obtener(codigo);
            ClienteDAO.Eliminar(v);
        }

   public List<Cliente> ListarCliente()
        {
            return ClienteDAO.ListarTodos().ToList();
        }
    }
}
 
13. Hacer click derecho en el archivo Clientes.svc (Click derecho, ver en el explorador y copiar la dirección que muestre en pantalla.


14. Abrirmos el  El el archivo WcfTestClient para verificar nuestro código realizado. Este archivo se encuentra en la carpeta \Common7\IDE\ donde hayamos instalado Visual Studio. Agregamos un nuevo servicio que es el que copiamos anteriormente

Nota: WCF: es un marco de trabajo para la creación de aplicaciones orientadas a servicios. Con WCF, es posible enviar datos como mensajes asincrónicos de un extremo de servicio a otro.







15. En este paso podemos visualizar los métodos Crear, Obtener,Modificar, Eliminar y Listar. Solo escogemos cualquiera y damos click en el botón Invoke. En este ejemplo se muetra el método Listar, que es justamente esa labor la que realiza, el listar todos los clientes de nuestra base de datos de la tabla Cliente.