Académique Documents
Professionnel Documents
Culture Documents
Ventajas REST
Los servicios Web RESTful son completamente sin estado, ello puede ser comprobado
mediante el reinicio el servidor y comprobando si las interacciones son capaces de
sobrevivir.
Rest es muy ligero, sus respuestas contienen exactamente la información que se necesita
Servicios RESTful proporcionan una buena infraestructura de almacenamiento en caché a
través de HTTP método GET (para la mayoría de los servidores), esto mejorará el
rendimiento, si los datos que devuelve el servicio Web no se altera con frecuencia y no son
de naturaleza dinámica.
Servicios REST son fáciles de integrar con los sitios web existentes y están expuestos a
XML para que las páginas HTML pueden consumir la misma con facilidad. Casi no hay
necesidad de refactorizar la arquitectura de sitio web existente. Esto hace que los
desarrolladores sean más productivos y cómodo, ya que no tendrán que volver a escribir
todo desde cero y sólo hay que añadir la funcionalidad existente.
Desventajas REST
A mi parecer la seguridad es una deficiencia y puede llegar a ser una tarea muy difícil de
implementarla correctamente.
No hay un estándar en sus respuestas por lo que no se definen tipos de datos.
Ventajas SOAP
El Web Services Description Language (WSDL) contiene y describe el conjunto de normas
comunes para definir los mensajes, los enlaces, las operaciones y la ubicación del servicio
Web. WSDL es un tipo de contrato formal para definir la interfaz que ofrece el servicio Web.
SOAP requiere menos código de plumbing code de servicios REST, (es decir, las
transacciones, la seguridad, la coordinación, direccionamiento, la confianza, etc.) La
mayoría de las aplicaciones en el mundo real no son simples y apoyar las operaciones
complejas, que requieren para mantener el estado de conversación y la información
contextual. Con el enfoque de SOAP , los desarrolladores no tienen que preocuparse
acerca de cómo escribir el código de plomería en la capa de aplicación a sí mismos.
Es más seguro debido a que su implementación siempre o la mayoría de las veces se hacen
del lado del servidor.
Soporta varios protocolos y tecnologías, incluyendo WSDL, XSD, SOAP y WS-Addressing.
Desventajas SOAP
Si se desea modificar algo en el servidor esto impacta de una forma negativa en los clientes
ya que ellos realizar varias modificaciones al código
Si no se cuenta con las herramientas correctas, la interpretación puede tornarse demasiado
compleja y difícil.
Base de datos En este post, vamos a tratar de explicar las características que hay a la hora
de trabajar con bases de datos entre los motores Myisam vs Innodb, qué ventajas tiene
Myisam frente a Innodb o desventajas, así como las diferencias existentes, muy enfocado
al desarrollo web.
A la hora de abarcar un proyecto web que sobre todo va a tener diversas ejecuciones o
comunicaciones con bases de datos, es muy importante conocer las capacidades del
servidor (alojamiento) que va a gestionar nuestro desarrollo, no solo en capacidad de
almacenamiento sino también en cuanto a versión de software y base de datos que van a
manejarlo.
Los motores más populares y usados en desarrollo web son MyISAM e InnoDB, su correcta
elección definirá como se gestionarán los recursos en cuanto a velocidad, consumo de esos
recursos y calidad de servicio.
Características de MyISAM:
Se establece por defecto cuando se crea una tabla, salvo que se indique lo contrario.
Soporta transacciones.
Realizar bloqueo de registros.
Soporta un gran número de consultas SQL, lo que se refleja en una velocidad de carga muy
rápida para nuestra web.
Como desventaja, señalamos que no realiza bloqueo de tablas, esto puede ser un problema
si como se ha mencionado anteriormente hay un acceso simultáneo al mantenimiento de
registros por parte de varios usuarios.
Características de InnoDB
Bloqueo de registros. Importante para accesos múltiples al mantenimiento de tablas, es
decir, ejecuciones de sentencias tipo INSERT o UPTATE, estas ejecuciones tienen una
velocidad optimizada.
Capacidad para soportar transacciones e integridad de datos, es decir previene el alta de
datos no adecuados.
Aplica las características propias de ACID (Atomicity, Consistency, Isolation and Durability),
consistentes en garantizar la integridad de las tablas.
Como desventaja, marcamos que al ser un tipo de motor que define un sistema más
complejo de diseño de tablas, reduce el rendimiento en velocidad para desarrollo que
requieren de un elevado número de consultas.
El problema aparecía cuando en vez de una sola palabra eran varias las que había que
buscar: Si "$palabra" equivalía, por ejemplo, a "dreamweaver ultradev", una frase dentro de
los textos almacenados que fuera "dreamweaver y ultradev" no devolvería resultados (por
culpa de la "y").
Para esto sirve Full-text: MySQL se encargará de comparar la cadena que le pasemos con
los contenidos de la BD y devolver resultados aproximados. Suena bonito, pero tiene
algunas limitaciones (justificadas):
id articulo
titulo
texto
Con la tabla preparada, llega la hora de aprender cómo se pasan las consultas, ya que no
basta con SELECT: deberemos utilizar además MATCH (campo) AGAINST (cadena). En
nuestro ejemplo:
SELECT titulo, texto FROM articulos WHERE MATCH (texto) AGAINST ('$palabras')
Traducido: seleccionar los campos "titulo" y "texto" de "artículos", filtrando donde haya
coincidencias en el campo "texto" para la variable "$palabras".
¿No parece difícil, no?, pues aún hay más: MySQL nos puede devolver un número que
indica el valor de coincidencia en cada registro (llamado habitualmente "SCORE" en
muchos sitios). No es un valor en porcentaje, y puede variar desde casi 0 (cero) hasta más
de 4 según los cálculos realizados por MySQL). Es útil para ordenar los resultados por
orden de coincidencia. Utilizarlo es un poco más complicado, pero no mucho: sólo
tendremos que utilizar 2 veces MATCH... AGAINST. La consulta sería:
SELECT titulo, texto, MATCH (texto) AGAINST ('$palabras') AS coincidencia
FROM articulos
WHERE MATCH (texto) AGAINST ('$palabras')
ORDER BY coincidencia DESC
Si tenemos una tabla con nuestras noticias donde hay un título y un cuerpo principal de la
nota, titulo y cuerpo, primero hay que asegurarse que sean Varchar o TEXT, no usar BLOB
para esto, no sirve.
Luego hay que crear el índice:
ALTER TABLE notas ADD FULLTEXT (titulo, cuerpo);
Ahí se crea el índice para la búsqueda, esto puede ocupar un poco más de espacio pero lo
importante se ve en el resultado de la búsqueda. Más rápida y eficiente que un Like,
simplemente funciona como un buscador y no como una comparación sencilla y costosa
como el like.
Buscamos así:
Donde 'Paleta' es nuestra palabra de búsqueda nos podrá traer inclusive frases o más de
una palabra (el like se muere si le hacen eso)
Score tiene un valor que no se bien como se calcula pero nos da un orden coherente de lo
que se encontró tal cual hacen algunos buscadores que imprimen un porcentaje o un valor
de "acierto"
Inconvenientes: