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:

viernes, 16 de diciembre de 2011

Practica 4

PRACTICA 4-SERGIO GUERRERO RODRÍGUEZ

DESARROLLO.

Deseamos instalar en la misma unidad física (disco duro) dos sistemas operativos: Windows7 y
Ubuntu 11.10. Además queremos crear particiones para albergar datos del usuario y para el
intercambio (swap)

Decisiones previas.
1.Requerimientos hardware. Comprobar si nuestro equipo cumple los requisitos necesarios para soportar la elección de los sistemas operativos elegidos. Justifícalo.
-Windows 7: necesita un minimo de un 1GB de memoria RAM,espacio en disco duro de 16GB o 20GB,según la version que usemos(32 bits o 64 bits).
-Ubuntu 11.10:necesita 1GB de RAM y un disco duro de 15 GB
-En el equipo tenemos 2 GB de memoria Ram y 76 GB de disco duro,ademas el tipo de sistema es de 32 bits,por lo que para el correcto funcionamiento necesitaremos instalar sistemas operativos de 32 bits.

2. Tamaño de las particiones. Cumpliendo los requerimientos mínimos indicados en el punto 1, ajustaremos el tamaño de cada partición según la capacidad de almacenamiento total de que
dispongamos en el disco duro.
Windows 7: le asignaremos 30GB de disco duro para tener mas o menos el doble.
Para Ubuntu 11.10,asignaremos 20GB de disco duro.
El resto de disco duro lo asignaremos a los demás archivos del usuario.

3.Sistemas de archivos. Decide el tipo de sistema de archivos con el que darás formato a cada partición.
Windows 7 usará NTFS y Ubuntu usara EXT4.

4. Decide si alguna de las particiones va a ser activa. Justifica la respuesta. ¿Qué sistemas
operativos requieren estar instalados en una partición activa para poder ser ejecutado?
¿Podrías instalar más de un SO en una misma partición?
-La partición de Windows si sera activa ya que no puede arrancar desde una partición lógica,pero la de Ubuntu no ya que Ubuntu si puede arrancar usando el gestor de arranque.
-Con Wubi Podemos instalar el sistema operativo Ubuntu en windows usando NTFS pero tendremos una notoria perdida de rendimiento.


Llegados a este punto haz una tabla-resumen como la que ves abajo con las decisiones tomadas y
muéstrala al profesor/a.Realización

Partición
Tipo(Primaria/lógica)
Activa(si/no)
Tamaño
Sistema Archivos
Windows 7
Primaria
Si
30GB
NTFS
Ubuntu 11.10
Lógica
No
8GB
EXT4
Swap
Lógica
No
2GB
Intercambio
Partición de datos 1
Lógica
No
26GB
FAT32




PARTE II:
7. Instalación de los sistemas operativos. Elige el orden de instalación. ¿Es importante el
orden de instalación de los sistemas operativos?¿En qué casos? Justifica tu respuesta.
Instalaremos primero Windows 7 para que no sobreescriba el Master Boot Record(MRB),y despues instalaremos Ubuntu.
Con esta configuracion Ubuntu instalará el gestor de arranque en el sector 0,y con esto podremos elegir que sistema operativo iniciaremos primero.

jueves, 1 de diciembre de 2011

Practica 5

Unidad didáctica: *5*. Ejercicios.


Preguntas previas:

1. ¿Qué es un gestor de arranque? ¿Cuando es necesario?
Es un programa sencillo diseñado exclusivamente para preparar todo lo que necesita el SO para funcionar. Es necesario cuando se tienen varios SO instalados en el mismo ordenador.

2. Recuerda qué gestor de arranque es utilizado en:
a) Un sistema Windows XP. NTLDR
b) Un sistema Windows 7. BOOTMGR
c) Un sistema Ubuntu. Grub /Grub2



3. Investiga sobre os gestores de arranque anteriores.
Explica en un documento (sin copiar y pegar) el funcionamiento de cada uno, sus archivos de configuración y sus opciones.


    • Grub- Gestor de arranque múltiple desarrollado por GNU.
      Funcionamiento: La bios busca un dispositivo de inicio y de ahí pasa al control de registro maestro (master boot record), Grub recibe el control, y presenta al usuario el menú inicio, carga el kernel seleccionado por el usuario en la memoria y le pasa el control.


    • NTLDR- Necesita que los archivos NTLDR y boot.ini se encuentren en la partición principal.
    • BOOTMGR- Se ejecuta desde bcdedit.exe la cual sirve para editar la lista de arranque de sistemas operativos Windows Vista y posteriores.










Configurar, según las indicaciones del profesor, el gestor de arranque Grub:

En la guía proporcionada por el profesor el archivo a editar era /boot/grub/menu.lst sin embargo este archivo no existe se sustituye por /boot/grub/grub.cfg


Vamos directamente al archivo .cgf en la dirección anteriormente citada y lo abrimos con gedit.

a) Cambiar el sistema operativo por defecto.

Buscamos la línea “default 0”

Cambiamos el 0 por el número que ocupe el sistema operativo en la lista que queremos que se inicie por de fecto
Guardamos


b) Hacer que el sistema operativo que se arranca por defecto sea el que se inició la última vez


c)Cambiar el tiempo de espera

Buscamos la línea timeout =10 y modificamos 10 por el número en se gundos que deseemos que espere Grub antes de iniciar un SO sin pul sar INTRO.



d) Cambia el fondo del grub: cambia color de fondo o añade una foto.
CAMBIAR IMAGEN
Añadimos al principio splashimage=(hd0,2)/rutaimagen.xpm.gz
dónde (hd0,2) sea la partición dónde se encuentra la imagen.

COLOR
Buscamos la línea color y modificamos los colores en inglés según nuestras preferencias.



  1. Recuperación del Grub.
    Necesitaremos un live CD, como el disco de instalación de Ubuntu. Una vez arrancada la distribución Live CD abriremos la consola (en Ubuntu, Aplicaciones -> Accesorios -> Terminal ó Ctrl+Alt+T) e introduciremos el siguiente comando para ver las particiones disponibles en el disco:
    sudo fdisk -l
Debemos buscar la partición en la que se encuentra instalada nuestra distro (/dev/sda3 en nuestro caso) y montarla
    sudo mount /dev/sda6 /mnt
    En el improbable caso de que crearas una partición independiente para /boot durante la instalación de la distro, también tendrás que montarla, en /mnt/boot.
    Una vez montada la partición, podremos instalar GRUB 2 usando la instalación anterior. Ejecuta el siguiente comando sustituyendo /dev/sda por el disco en el que quieres instalar el cargador.
    sudo grub-install --root-directory=/mnt/ /dev/sda

domingo, 2 de octubre de 2011

Ficheros


Los ficheros son unas unidades lógicas de almacenamiento, estos ficheros están constituidos a nivel interno por un conjunto de registros lógicos. Además se identifican por su nombre y su extensión.
En cuanto a los registros,están formados por unidades mas pequeñas denominadas campos,estos campos son la unidad mínima de información.
Existen registros físicos,o también conocidos como bloque,que son toda la información que el dispositivo transfiere en una sola operación. Los registros físicos tienen diferentes tamaños,dependiendo del ordenador. Un conjunto de registros lógicos es lo que forma un registro físico,siendo el total de los registros lógicos dentro de un registro físico el factor de bloqueo.
Hay ficheros de distintos tipos y de distinto uso como los siguiente:
  • Ficheros permanentes,son ficheros de larga vida que van a ser utilizados en más de un proceso porque contienen información que permanece con el paso del tiempo.
  • Ficheros de situación, contienen informaciones que están variando con frecuencia y es necesario mantener al día permanentemente.
  • Ficheros de movimientos, estos ficheros también se les llama ficheros de transacciones porque se utilizan para actualizar los ficheros permanentes, almacenando en cada registro una operación que supone el cambio de alguno de los datos que contiene el fichero permanente.
  • Ficheros de maniobra o temporales, se utilizan para almacenar provisionalmente resultados intermedios que serán utilizados posteriormente en el mismo proceso, o en un proceso diferente.
  • Ficheros de control, son ficheros que contienen información que va a controlar la ejecución de los programas.

Los ficheros necesitan una organización,y esa organización depende del dispositivo que se utilice,además según la forma de acceder al fichero,podemos clasificar los dispositivos de almacenamiento masivo en secuenciales y relativos.

  • Secuenciales

Estos ficheros se inscriben sobre dispositivos de almacenamiento de forma contigua siguiendo el orden en el que han sido introducidos y sin que exista ningún hueco.
Los registros normalmente estarán ordenados por el contenido de uno o más campos para hacer más fácil el trabajo de búsqueda, inserción y borrado de registros.
La organización secuencial es aconsejable para ficheros con un índice de utilización muy elevado y estables.
Estos ficheros tienen unas ventajas y unas desventajas,hay que destacar las siguientes:
  • VENTAJAS:
  • Aprovecha al máximo el soporte, al no dejar huecos entre los registros.
  • El acceso al siguiente archivo es muy rápido, esto es ideal en las actualizaciones y en operaciones en las que se van a usar la mayoría de datos.
  • DESVENTAJAS:
  • No se pueden insertar registros entre los que ya están grabados.
  • El único modo de acceso es el acceso secuencial, por lo que para leer el registro que ocupe la posición nº es necesario leer los n-1 registros anteriores.

Dentro de las organizaciones secuenciales nos podemos encontrar con 2 tipos distintos:

  • INDEXADA

Un método popular para superar las desventajas de los ficheros secuenciales es el del fichero secuencias indexado. El fichero secuencial indexado mantiene las caracteristicas básicas de los ficheros secuenciales: los registros están organizados en una secuencia basada en un campo. Dos características se añaden: un índice del fichero para soportar los accesos aleatorios y un archivo de desbordamiento ( overflow ). El indice provee una capacidad de búsqueda para llegar rapidamente a las proximidades de un registro deseado. El archivo de desbordamiento (overflow) es similar al archivo de registro usado en un fichero secuencial, pero esta intregrado de forma que los registros del archivo de desbordamiento se ubican en la dirección de un puntero desde si registro precedente.
  • ENCADENADA
En un fichero con esta organización, junto a cada registro se almacena un puntero con la dirección del registro siguiente en secuencia lógica. Los ficheros con esta organización solo pueden ser gestionados en soportes direccionables.
Los ficheros con organización encadenada son útiles en aquellos casos en que se deban realizar frecuentes inserciones de pocos registros, si cada vez que se accede al archivo se van a insertar muchos registros en comparación con el nº total, será preferible una organización secuencial. La principal ventaja de esta organización es su flexibilidad y la desventaja es su limitación en una consulta secuencial además del espacio adicional ocupado por el puntero en cada registro.


  • Organización Relativa

En este tipo de organización se emplean claves,la función de estas claves es indicar la posición del registro y la posición de memoria donde esta guardado.
Vamos a ver 2 tipos de organización relativa,la organización relativa directa e indirecta:
  • DIRECTA
La organización directa está basada en la independencia entre el orden en que se dan de alta los registros y la posición en la que se graban en el soporte. La posición en la que se graban los registros está en función de la información que tenga el campo clave del registro.
En esta organización no hace falta leer los registros anteriores,por lo que estamos hablando de un acceso directo y que tiene mucho menos tiempo de acceso que la organización secuencial.
  • INDIRECTA
Esta organización usa claves alfanuméricas,estas claves deben ser transformadas para obtener valores numéricos. Aquí las direcciones lógicas no coinciden con las direcciones físicas.
Las claves tienen que tener relación con la capacidad máxima del soporte.





Fuentes principales: