CouchDB es una base de datos NoSQL orientada a documentos que ofrece alta disponibilidad y tolerancia a particiones. Almacena datos en formato JSON y proporciona replicación de datos, indexación con JavaScript, y una interfaz web llamada Futon. CouchDB es adecuada para aplicaciones que requieran disponibilidad aun cuando haya fallos de nodos o particiones de red.
Semana 4 control de versiones planificacion y gestionGiovani Ramirez
Es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo de tal manera que sea posible recuperar versiones especificas más adelante.
Esta presentación nos muestra los conceptos Fundamentales para el Diseño y Creación de Base de Datos Relacionales, se Centra en el Modelo de Datos Relacional, ya que es el mas usado a nivel mundial.
SOA es un concepto de diseño de arquitectura que describe un sistema o software en términos de servicios (considerados como componentes) y la relación entre éstos (denominada composición).
Con SOA, los sistemas son altamente escalables ya que reflejan el negocio de la organización y utilizan capacidades distribuidas bajo el control de diferentes propietarios y dominios. Lo que provee una forma bien definida de ofrecer, descubrir, interactuar y usar dichas capacidades para producir los efectos deseados de manera consistente y medible.
Esta es una presentacion de la arquitectura 3 capas realizada con informacion recopilada de varios sitios web y de un trabajo elaborado por nosotras en la Universidad
Estandares y etiquetado (cableado estructurado) by mochoMoshg
Estándares de cableado estructurado
Organismos de estandarización ANSI EIA TIA
Estándares
Rotulado e identificación
Reglas para el etiquetado
Nomenclatura del etiquetado
http://mocho-varios.blogspot.com/
Semana 4 control de versiones planificacion y gestionGiovani Ramirez
Es un sistema que registra los cambios realizados sobre un archivo o conjunto de archivos a lo largo del tiempo de tal manera que sea posible recuperar versiones especificas más adelante.
Esta presentación nos muestra los conceptos Fundamentales para el Diseño y Creación de Base de Datos Relacionales, se Centra en el Modelo de Datos Relacional, ya que es el mas usado a nivel mundial.
SOA es un concepto de diseño de arquitectura que describe un sistema o software en términos de servicios (considerados como componentes) y la relación entre éstos (denominada composición).
Con SOA, los sistemas son altamente escalables ya que reflejan el negocio de la organización y utilizan capacidades distribuidas bajo el control de diferentes propietarios y dominios. Lo que provee una forma bien definida de ofrecer, descubrir, interactuar y usar dichas capacidades para producir los efectos deseados de manera consistente y medible.
Esta es una presentacion de la arquitectura 3 capas realizada con informacion recopilada de varios sitios web y de un trabajo elaborado por nosotras en la Universidad
Estandares y etiquetado (cableado estructurado) by mochoMoshg
Estándares de cableado estructurado
Organismos de estandarización ANSI EIA TIA
Estándares
Rotulado e identificación
Reglas para el etiquetado
Nomenclatura del etiquetado
http://mocho-varios.blogspot.com/
Escaneo y eliminación de malware en el equiponicromante2000
El malware tiene muchas caras, y es que los programas maliciosos se reproducen en los ordenadores de diferentes formas. Ya se trate de virus, de programas espía o de troyanos, la presencia de software malicioso en los sistemas informáticos siempre debería evitarse. Aquí te muestro como trabaja un anti malware a la hora de analizar tu equipo
Si bien los hospitales conjuntan a profesionales de salud que atienden a la población, existe un equipo de organización, coordinación y administración que permite que los cuidados clínicos se otorguen de manera constante y sin obstáculos.
Mario García Baltazar, director del área de Tecnología (TI) del Hospital Victoria La Salle, relató la manera en la que el departamento que él lidera, apoyado en Cirrus y Estela, brinda servicio a los clientes internos de la institución e impulsa una experiencia positiva en el paciente.
Conoce el Hospital Victoria La Salle
Ubicado en Ciudad Victoria, Tamaulipas, México
Inició operaciones en el 2016
Forma parte del Consorcio Mexicanos de Hospitales
Hospital de segundo nivel
21 habitaciones para estancia
31 camas censables
13 camillas
2 quirófanos
+174 integrantes en su plantilla
+120 equipos médicos de alta tecnología
+900 pacientes atendidos
Servicios de +20 especialidades
Módulos utilizados de Cirrus
HIS
EHR
ERP
Estela - Business Intelligence
1. 1
INFORME 03: Apache CouchDB
UNIVERSIDAD NACIONAL DEL ALTIPLANO
Escuela Profesional de Ingeniería de Sistemas
Paye Zamata, Kevin Arnold
arnyeld@gmail.com
1. Resumen
En este informe se describe la capacidad de las bases de datos NoSQL y principalmente
de CouchDB una base de datos no relacional de tipo documental cuyo motor de
programación está basado en JavaScript y estructura establecida en JSON. Además se
da un estudio de las principales características de esta base de datos tales como
tolerancia a particiones, y disponibilidad.
Posteriormente se da uso al Teorema CAP para conocer en qué caso es conveniente el
uso de CouchDB y así hacer que la elección de CouchDB sea la más apropiada para algún
proyecto en particular.
Finalmente se muestra un ejemplo simple y practico utilizando el modelo de
programación MapReduce.
2. Introducción
La utilización de una base de datos no relacional ha captado la atención de muchas
empresas en los últimos años, pero esto no significa que sean mejores que las bases de
datos de tipo relacional, sino que son una alternativa para dar solución a determinados
problemas que estas presentan cuando se tratan grandes cantidades de datos.
CouchDB cuenta con características que se enfocan principalmente a la facilidad de uso,
utilizando su interfaz WEB llamada “Futon” para darle funcionalidad, esto la hace
sencilla y de rápido entendimiento intentando no interponerse entre el desarrollador y
la aplicación.
3. Las Bases de Datos NoSQL
Se puede decir el término NoSQL surge con la llegada de la web 2.0, con la aparición de
aplicaciones en donde cualquier usuario podía subir contenido, provocando así un
crecimiento exponencial de los datos. Es en ese momento cuando aparecen las
complicaciones en la gestión de toda esainformación en las bases de datos relacionales,
en un principio, para solucionar estos problemas de accesibilidad, las empresas optaron
por utilizar un mayor número de máquinas pero pronto se dieron cuenta de que esto no
solucionaba el problema, además de ser una solución muy cara. La otra solución era la
creación de sistemas pensados para un uso específico que con el paso del tiempo han
dado lugar a soluciones robustas, apareciendo así el movimiento NoSQL.
2. 2
Las Bases de Datos NoSQL son sistemas de almacenamiento de información que no
cumplen con el esquema entidad–relación. Tampoco utilizan una estructura de datos en
forma de tabla donde se van almacenando los datos sino que para el almacenamiento
hacen uso de otros formatos como clave–valor, mapeo de columnas, orientado a
documentos o grafos.
Figura 1. Clasificación de Bases de datos NoSQL
4. CouchDB
Apache CouchDb más conocido como CouchDB fue creado en abril de 2005 por Damien
Katz (ex desarrollador de Lotus Notes en IBM) y programado en Erlang.
“CouchDB es un gestor de base de datos orientado a documentos que se enfoca
principalmente a la facilidad de uso y que abarca completamente la web”.1
CouchDB Almacena los datos en JSON es capaz de acceder a documentos y consultar
índices con un navegador web a través de HTTP, también posee características tales
como la transformación de documentos y notificaciones en tiempo real. Indexa,
combina y transforma sus documentos con JavaScript o sus aplicaciones de manera
eficiente. Además CouchDB tiene lacaracterísticade detección automática de conflictos
cuando se presenta una falla, todo esto hace que el desarrollo de aplicaciones WEB sea
fácil de utilizar. CouchDB es altamente disponible, tolerante a la partición.
1
Apache CouchDB Release 2.0.0-git
https://media.readthedocs.org/pdf/couchdb/latest/couchdb.pdfpag.1
3. 3
4.1. Relax de CouchDB
“Si hay una palabra que describe a CouchDB, tiene que ser Relax… cuando
arrancamos CouchDB vemos: -Apache CouchDB has started. Time to relax-”.2
CouchDB intenta que su uso sea natural para cualquiera que ha trabajado en un
entorno Web, Relax está dividido en tres áreas de relajación que a continuación se
describen:
CouchDB procura no interponerse cuando algún desarrollador está intentando
construir una solución especializada.
Otro punto relajante para el usuario de CouchDB es el entorno de producción,
CouchDB se preocupa una vez más de no molestar al usuario gracias a que su
arquitectura interna tolera fallos, y los errores se dan en un entorno controlado
y se resuelven de manera apropiada, los problemas puntuales no afectan al
servidor entero sino que permanecen aislados en una única consulta.
El tercer punto de relajación se da a la hora de incrementar o reducir Software.
A primera vista CouchDB parece inflexible pero algunas cosas se han dejado
fuera intencionalmente simplemente porque si CouchDB las tuviera permitirían
al usuario crear aplicaciones que no escalan correctamente.
4.2. Replicación en CouchdB
La función fundamental de la Replicación es sincronizar dos o más bases de datos
de CouchDB. Esto puede sonar simple, pero la simplicidad es la pieza clave para
permitir que la replicación solvente varios problemas: sincronizar de manera fiable
bases de datos entre múltiples máquinas para tener almacenamiento redundante;
distribuir datos a un cluster de instancias de CouchDB que comparten un
subconjunto del total de consultas que llegan a ese cluster (balance de carga).
Figura 2. Replicación en CouchDB
2 http://guide.couchdb.org/editions/1/es/why.html
4. 4
La replicación en CouchDB usa la misma REST API que todos los demás clientes. El
protocolo HTTP es transparente y está estudiado en profundidad. La replicación
funciona de forma incremental; esto es, que si cualquier cosa sale mal durante la
replicación, como una desconexión de red, continuará donde secortó lapróxima vez
que se ejecute. Del mismo modo, solamente transfiere los datos necesarios para
sincronizar las bases de datos.
5. Consideraciones al usar CouchDB
5.1. Teorema CAP
El Teorema CAP, también conocido como Teorema Brewer, demuestra que “Es
imposible garantizar a la vez consistencia, disponibilidad y tolerancia a particiones”.
Este teorema establece las características de cada una de las bases de datos NoSQL
y ayuda a elegir, de entre las múltiples posibilidades, qué sistema de bases de datos
es el más adecuado para satisfacer nuestras necesidades de negocio.
El teorema CAP se describe de la siguiente forma:
La C se refiere a la consistencia, es decir, todos los clientes deben ver la
misma información al mismo tiempo. La consistencia se consigue
replicando la información.
La A se refiere a la disponibilidad (Availability) y esto se traduce en que cada
cliente puede siempre leer y/o escribir sobre la base. La disponibilidad se
consigue actualizando la información de todos los nodos.
La P se refiere a la tolerancia a la partición, que es lo mismo que decir si el
sistema va a funcionar de manera correcta a pesar que se generen
particiones de información entre sus nodos. La tolerancia a la partición se
consigue definiendo reglas que indiquen qué debe hacerse en caso de que
falle un nodo o no se tenga acceso a él.
5.2. Teorema CAP en CouchDB
Para CouchDB el Teorema CAP determina que esta base de datos garantiza la
disponibilidad y la tolerancia a particiones, pero no puede asegurar una total
consistencia. A veces se puede llegar a conseguir una consistencia parcial gracias a
la replicación y a la verificación. En este caso los clientes serán capaces de leer y
escribir siempre, aunque se haya caído un nodo y el sistema continuará funcionado
aunque existan caídas parciales o fallos que lo dividan.
5. 5
Figura 3 Teorema CAP en CouchDB
6. Organizaciones que usan CouchDB
Entre las empresas que han usado o actualmente usan CouchDB se pueden
mencionar:
Ubuntu para su servicio de sincronización "Ubuntu One" hasta
noviembre de 2011 pero fue descontinuado por problemas de
escalabilidad.13
La BBC, para sus plataformas de contenidos dinámicos14
Credit Suisse, para usos internos en el departamento de commodities
para su framework de mercados.11
Meebo, para su plataforma social (web y aplicaciones) - Meebo fue
adquirido por Google y cesó sus operaciones el 12 de julio de 2012.
imgb.in gratuito Servicio de carga de imágenes
Memorize.com Un sitio web para memorizar todo tipo de cosas.
TwiGroups es una herramienta de redes sociales para su uso en Twitter.
CouchDB como almacenamiento tweets.
Magnifeast sitio web Restaurante con pedidos en línea de cientos de
restaurantes. utiliza CouchDB como base de datos principal.
6. 6
7. Soporte de CouchDB
La Fundación Apache Software tiene una postura muy activa en la eliminación de los
problemas de seguridad y de denegación de ataques contra Apache CouchDB.
También posee una cuenta de correo de seguridad para animar a la gente a reportar
algún tipo de problemas. La dirección postal de la seguridad privada es:
security@couchdb.apache.org.
Si lo que se desea es informar de un fallo que no es una vulnerabilidad de seguridad
se debe utilizar la página de informe de errores.
Preguntas sobre:
• Cómo configurar CouchDB de segura
• Si se aplica una vulnerabilidad para su aplicación en particular
• La obtención de más información sobre una vulnerabilidad publicada
• La disponibilidad de parches y / o nuevos lanzamientos
Deben enviarse a la dirección de la página de distribución
8. Ejemplo Práctico
8.1. Instalación de CouchDB
Como ya se mencionó CouchDB está diseñada para que el usuario pueda Instalarla
de forma sencilla,evidentemente para ello senecesita ingresara su sitio Web Oficial
http://couchdb.apache.org/ y buscar el SO y la arquitectura correspondiente a
nuestra necesidad.
Figura 4. Página oficial de CoichDB
Una vez Instalado podemos ingresar a la API llamada “Futon” que es la interfaz de
administración build-in ingresando en un navegador la URL
http://localhost:5984/_utils/
7. 7
Figura 5. Interfaz CouchDB - Futon
8.2. CURL para CouchDB
Para interactuar con CouchDB directamente de forma ideal se procede a instalar
cURL. cURL es software interprete que Soporta los protocolos FTP, FTPS, HTTP,
HTTPS, TFTP, SCP, SFTP, Telnet, DICT, FILE y LDAP, entre otros.
Para comprobar la coneccion se utiliza el comando:
Shell > curl http://127.0.0.1:5984
Figura 6. Test CouchDB
8. 8
8.3. Ejemplo Simple
En un problema supuesto se tiene una base de datos “VentasDB” la cual contiene el
nombre de todos los clientes que compraron x producto, y lo que se desea saber es:
¿Qué clientes han recurrido con mayor frecuencia a comprar productos?
Evidentemente en la Figura 7 la cantidad de datos utilizada para este ejemplo es
poquísima ya que es solo para fines prácticos.
Figura 7. Base de Datos ventasdb - CouchDB
9. 9
En la figura 8 se realiza el mapeado de los clientes y las veces que realizaron una
compra
Figura 8. Función Map y Resultado
En la imagen de la Figura 9. Se aprecia el resultado reducido y la sumatoria de total
de la compra de cada uno de los clientes
10. 10
Figura 9. Función Reduce y resultado
9. Conclusiones
La facilidad de usar esta base de datos NoSQL hace que los procedimientos parezcan
simples y sencillos, hace que Relax esté presente en todo momento y esto le da una
ventaja sobre los demás gestores de bases de datos.
CouchDB se adapta perfectamente a laWeb con suinterfaz Futon y de manera amigable
se pueden realizar operaciones MapReduce, replicación entre otros.
CouchDb es un gestor de base de datos basado en Erlang lo que indica que es altamente
tolerante a fallos.
11. 11
10. Referencias
http://couchdb.apache.org/ Consultado el 25 de Julio del 2016
https://media.readthedocs.org/pdf/couchdb/latest/couchdb.pdf consultado el
24 de Julio del 2016
https://es.wikipedia.org/wiki/CouchDB/ Consultado el 25 de Julio del 2016
https://neighbourhood.ie/couchdb-support/ Consultado el 23 de Julio del 2016
https://medium.com/@veronicacomm/cu%C3%A1ndo-utilizar-mongodb-y-
cu%C3%A1ndo-utilizar-couchdb-d94cfcc78c21#.h19zpyxsq Consultado el 25 de
Julio del 2016
http://www.ciff.net/blog/el-teorema-de-cap-y-la-clasificacion-de-base-de-
datos.html Consultado el 25 de Julio del 2016