martes, 16 de octubre de 2012

El comienzo de los servicios web


1.- “Los servicios Web no hacen más que reinventar la
rueda, pero esta vez usando XML”


No se inventa nada nuevo, pero se vende con la novedad del lenguaje XML.

2.- “No aportan nada nuevo que no tuvieramos ya en CORBA”

Common Object request Broker Architecture (CORBA) es un estandar que permite diversos componentes de software escritos en multiples lenguajes de programacion y en multiples computadoras trabajando juntas.

CORBA introduce el código escrito en un paquete que contiene información adicional sobre las capacidades del código que contiene y sobre cómo llamar a sus métodos. Los objetos que resultan, pueden entonces ser invocados desde otro programa (u objeto CORBA) desde la red.

3.- "No tienen Estado”.

No mantiene ni depende de condición pre-existente alguna. En una SOA los servicios no son dependientes de la condición de ningún otro servicio. Reciben en la llamada toda la información que necesitan para dar una respuesta.

4.- “Los Servicios Web proporcionan las facilidades
del Nivel 4 por encima del Nivel 7, dando un paso atrás tanto en
eficiencia como en funcionalidad (seguridad, mensajería fiable,
etc.)”


Nivel 4: Capa de persistencia o de datos: es la capa donde residen los datos y la encargada de acceder a los mismos. Normalmente, está formada por uno o más gestores de bases de datos que realizan todo el proceso de administración de datos, reciben solicitudes de almacenamiento o recuperación de información desde la capa de negocio

Nivel 7: Reparto de funciones entre cliente y servidor: las diferentes tecnologías web existentes permiten gestionar y distribuir las responsabilidades de cada una de las prestaciones funcionales entre el cliente y el servidor. Lo más habitual es tener una configuración cliente/servidor de dos o tres capas, dependiendo de si las capas de negocio y datos se agrupan (modelo en dos capas) o si se separan (modelo en tres capas). La separación en dos o tres capas la podemos ver, además, tanto desde el punto de vista del software como del hardware.

-Seguridad: Se refiere a protocolo https

-Mensajería fiable: al envió de datos sin que sean interceptados

Se refiere que hay acceso a los datos (capa4) entre el cliente y el servidor (capa7)
entonces. No es tan eficiente porque si se interceptan los paquetes puede haber
vulnerabilidades. Y ya no es fiable

5.- “Los servicios Web no permiten resolver ninguno de los
problemas realmente difíciles de los sistemas distribuidos,
como la interoperabilidad semántica, los repartos de cargas, la
fiabilidad, o la escalabilidad”

Sistemas Distribuidos: Sistemas cuyos componentes hardware y software, que están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para el logro de un objetivo. Se establece la comunicación mediante un protocolo prefijado por un esquema Cliente-Servidor.

La interoperabilidad: se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para
definir de manera más exhaustiva estos estándares.

Escalabilidad: El sistema es escalable si conserva su efectividad al ocurrir un incremento considerable en el número de recursos y en el número de usuarios.


6.- Los servicios Web van a suponer un cambio radical en la forma
en la que construimos de aplicaciones distribuidas hoy en día.


Suponen un cambio en manejo de información, servicios, y aplicaciones etc. Ya que cualquiera puede ofrecer una serie de servicios desde su casa con un simple ordenador.

jueves, 27 de septiembre de 2012

Ruby on Rails



HISTORIA

Ruby on Rails fue creado por David Heinemeier Hansson a partir de una herramienta de gestión de proyectos realizado en Basecamp(Organizador y gestor de tareas).
Ruby on Rails se liberó al público en julio de 2004, teniendo su primera versión en diciembre de 2005 y su última versión en enero de 2012.


FILOSOFÍA

Los principios en los que se basa Ruby on Rails son DRY(don't repeat yourself o No te repitas) y Convención sobre configuración.
La filosofía DRY esta basada en que las definiciones solo deberían de hacerse una vez ya que Ruby on Rails trabaja con la metodología de pila completa y no hace falta establecer conexiones entre distintos componentes.
La filosofía de Convención sobre configuración esta basada en la definición de la configuración que vayamos a necesitar,por lo que la configuración que viene predefinida no será necesario editarla. Esto conlleva la ventaja de que al crear una aplicación desde cero y usando las convenciones de Rails, usaremos menos código.


RUBY

Ruby es un lenguaje de programación orientado a objetos, de licencia libre y creado por Yukihiro Matsumoto. La sintaxis de Ruby está  inspirada en Python y Perl y sus características de programación son parecidas a Smalltalk(entorno de objetos virtuales).
Ruby esta orientado a objetos, en esta ideología todos los datos son objetos, las funciones son métodos, las variables son referencias a objetos(no son objetos en si) y además soporta la herencia de datos.
Ruby fue creado para ser un lenguaje procedural(Se permiten definiciones de métodos y variables fuera de la clase) y funcional(todas las sentencias tienen valores y siempre se devuelve la última evaluación)



RUBY ON RAILS

Ruby on Rails es un entorno de desarrollo escrito en Ruby y que esta mejorado para aumentar la productividad de los programadores. Para escribir programas usa la metodología de MVC (Modelo Vista Controlador).



ARQUITECTURA

Como hemos visto antes, Ruby on Rails trabaja con la arquitectura MVC.
Esta arquitectura trata de 3 capas en las que cada una está definida para cumplir una función concreta.
Las capas son:

    • Modelo: esta capa trabaja con las bases de datos y es la que mantiene la integridad de la información.
    • Vista: será el interfaz usado para poder interactuar con el usuario y será la capa que nos muestre los datos. Esta capa no controla lo que muestra,simplemente se limita a mostrar lo que se le indique.
    • Controlador: es el encargado de manejar los eventos que ocurren entre las dos capas anteriores. Recibe instrucciones de la capa modelo y muestra información en la capa de vista.


GEMAS

Cuando hablamos de gemas en Ruby on Rails nos referimos a plugins o códigos añadidos y son los encargados de distribuir librerías, aplicaciones y nuevas herramientas.
Rails usa estas gemas para la instalación de su propio entorno de desarrollo.






SOPORTES

En este apartado hablaremos de dos tipos de soportes, servidores web y bases de datos:
  • Soporte a Servidores Web: si hablamos de desarrollo y pruebas en un servidor web utilizaremos Mongrel o WEBrick(incluido con Ruby) pero si hablamos de producción en un servidor web,tendremos una amplia variedad en la que cabe destacar a apache. Al trabajar con apache, tendremos un módulo específico que nos agiliza el trabajo (no es recomendable el uso de este módulo ya que no es seguro utilizar varias aplicaciones de Ruby on Rails sobre apache).

  • Soporte a Bases de Datos: se recomienda el uso de un sistema gestor de base de datos para el almacenamiento de los datos. El programador no entra en contacto directamente con la base de datos, es Rails quien gestiona los accesos, quien se encarga del funcionamiento en diferentes sistemas(no se garantiza la compatibilidad completa) y quien se encarga de la reutilización de bases de datos.
Entre las bases de datos que soporta destacamos MySQL, SQLite y Oracle.


ENTORNOS

Para trabajar en Ruby on Rails tendremos disponible varias alternativas:
  • Aptana: se trata de un entorno multiplataforma que nació como un plugin de Eclipse para desarrollar aplicaciones. Aptana 3 es la versión más estable.
  • Netbeans: entorno libre y gratuito que viene integrado con JRuby.Netbeans es uno de los entornos más utilizados actualmente.
  • TextMate: entorno de pago puesto que esta orientado a potenciar la producción y desarrollo de Ruby on Rails. Solo esta disponible para Mac y es el entorno más utilizado en Rails.
  • Gmate: entorno libre y gratuito. Se trata de una modificación de Gedit para lograr algo parecido a TextMate. Como se trata de un entorno gratuito y potente va aumentado sus seguidores dia tras dia.

Similitudes y diferencias entre Apache y ISS





1.-Similitudes:
-Una de las similitudes que comparten Apache e IIS, es que ambos pueden elegir mediante un filtro la información que desean mostrar.
-Otra de las similitudes que comparten Apache e IIS es el sistema de arquitectura en módulos, de esta forma pueden ejecutar distintos tipos de páginas.


2.-Diferencias:

-IIS viene incluido con Windows mientras que Apache viene incluido con linux. Apache en windows es solo utilizado para montar algunas aplicaciones.

-IIS te acepta de forma nativa ASP y Apache te acepta de forma nativa PHP.

-Para una red mixta que tiene distintas peticiones, la pareja Apache resulta la mejor opción. En un servidor con con varias tajetas de red y con altos rendimientos,IIS es la mejor opción.




3.-Cuál es más utilizado

-Actualmente hay menos de 50.000 que utilicen la nueva versión de apache. Sin embargo, más de 10 millones usan la versión 1.3.26.

-Apache es el mas utilizado debido a su bajo coste y su alto rendimiento.





Fuentes: