jueves, 30 de diciembre de 2010

Bases de Datos Distribuidas

Bases de Datos Distribuidas.
Las bases de datos distribuidas (BDD) son un conjunto de bases de datos distribuidas en nodos pero relacionadas de alguna manera generalmente por algún tipo de red comunicaciones. Las DBB tienen como principal propósito el de realizar un procesamiento autónomo de datos para poder darle al usuario una respuesta más rápida de sus peticiones.
Las principales características de un SDBB de un sistema centralizado son:
·         Hay múltiples computadores llamados sitios o nodos, estos nodos contienen un fragmento de la base de datos.
·         Estos sitios deben de estar comunicados por medio de algún tipo de red de comunicaciones para transmitir datos y órdenes entre los sitios.
¿Es conveniente utilizar una base de datos distribuida?
Como todo en la vida, todo depende de las circunstancias en las que se encuentra trabajando tu sistema y de las necesidades que tienen los usuarios. A menos que sea muy obvio el diseño de la arquitectura de Base de Datos o de la aplicación pues un siempre se comienza con una base de datos centralizada y cuando se ve la necesidad de hacer distribución de la base de datos se procede a realizar una modificación a la arquitectura.
Como ya se dijo las necesidades principalmente deben salir de los usuarios y de la arquitectura del sistema.
¿Es riesgoso cambiar de arquitectura de base de datos?
No tiene porque ser traumante cambiar de arquitectura de una base de datos si en la transición intervienen tanto el administrador de Sistemas, Administrador de Bases de Datos, Arquitecto de software y los desarrolladores. Pero ojo si se está haciendo una cambio de arquitectura de una base de datos en producción pues es resultado de un mal análisis inicial tanto en la arquitectura del sistema como en los requerimientos de los usuarios.
Si bien antes mencione que generalmente una base de datos nace como base de datos centralizada, la necesidad de ver si esta continuara de esta manera o sea distribuida se lo debe realizar en la etapa de implementación o pruebas. Si bien es muy difícil poder  generar un ambiente de pruebas similar al ambiente de producción, las personas encargadas de estar tareas deben tener la capacidad de anticiparse a futuros acontecimientos y advertir estos cambios cuando aun no generan mayores inconvenientes.
¿Cuál es el mejor ambiente para la aplicación de una base de datos distribuida?
Sin lugar a dudas el mejor ambiente para realizar una base de datos de este tipo es cuando la mayor parte de tiempo en la base de datos solo se hace lectura de datos, o se escribe datos.
¿Bases de datos distribuidas solo en bases de datos de lectura?
No necesariamente, pero si tenemos una base de datos donde solo se lee datos y es una base de datos de varios miles o millones de datos las consultas pueden ser muy pesadas, si se realizan muchas de estas consultas pesadas al mismo tiempo y cada una de ellas muestra diferentes tipo de datos pues, el motor de base de datos tardara mucho en responder todas las peticiones.
Pero un base de datos que tenga una tendencia de operaciones alta no significa que es optima para hacerla distribuida. En el caso de una base de datos altamente transaccional no sería muy conveniente hacerla distribuida debido a que generaría un alto índice de bloqueo.
Ventajas

 
Almacenar los datos donde son generados.
Los datos se comparten de manera simultánea entre todos los nodos.
Administración autónoma de cada uno de los nodos.
Mantener varios pequeños equipos cuesta menos que un gran servidor.
Mejora del rendimiento, BD más pequeñas, operaciones de menor volumen.
Crecimiento incremental, añadiendo poder de procesamiento y almacenamiento.

 Desventajas
Coste de desarrollo del software.
Dependencia de la red de comunicaciones, sobrecarga de procesamiento de mensajes.
Dificultad de diseño, fases adicionales.
Funciones de administración compleja, sincronización y coordinación.
Dificultad de cambio, inexistencia de metodologías.
Personal especializado.

sábado, 30 de octubre de 2010

Estrategias para crear un buena pagina Web

En las siguientes líneas vamos a hablar de los principios básicos que debe tener una buena página web.
Planeación
Antes de comenzar un proyecto por más pequeño que sea, debemos primero saber qué es lo q queremos mostrar, como lo vamos mostrar, hacia quienes estará enfocado, y cuales son los resultados a mediano y largo plazo.
Diseño
Una vez que tengamos las ideas bastante claras debemos hacer un boceto de cómo se vería nuestro proyecto, la estructura principal debe estar bastante clara, como se reflejaran las diferentes opciones de formato según el contenido que vayamos a mostrar.
Es muy importante que en el diseño se reflejen todas las características del cómo se verá nuestro proyecto, porque estos detalles son importantes a la hora de escoger la alternativa de implementación.
Implementación
A la hora de realizar la implementación se debe tomar una decisión muy importante. ¿Desarrollar pagina desde cero? o ¿Utilizar algún CSM?.
¿Cómo resolver esta incógnita?
Generalmente los proyectos mas completos tanto en funcionalidad, diseño y exigencias visuales (scripts especiales y/o manera de mostrar los contenidos) inclinan la balanza hacia un desarrollo puro desde cero, obviamente este desarrollo exige mayor conocimiento en cuanto a programación además del tiempo que toma implementarlo, pero bueno es el costo para tener un proyecto elegante echo a nuestros requerimientos.
Los proyectos más sencillos generalmente están destinados a ser desarrollados utilizando algún CMS (hay varios de pago y gratuitos disponibles), estos CMS, son de fácil implementación y no necesariamente necesitas de conocimientos de programación, el tiempo para ponerlos en marcha es relativamente corto.
Hay mucha gente y proyectos grandes que defienden la posición de que los CMS pueden ser utilizados en proyectos grandes y configurables, yo en lo personal si tengo proyectos grandes deseo tener el control total de todo y no tener que modificar módulos que no sé cómo me vayan a afectar en el futuro o condicionar el funcionamiento final del sistema. Pero eso ya es cuestión de gustos y afinidades.
De cualquier manera si los dos primeros puntos fueron elaborados de manera minuciosa, el tomar la decisión de cómo implementar no debería ser algo que nos quite el sueño.
 Publicación
¿Debemos finalizar el proyecto para publicarlo?
No, lo mejor es comprar el dominio y hosting cuando tienes un 50% aproximadamente de avance en el desarrollo de tu proyecto.
¿Por qué no comprar antes?
Puedes comprar antes los servicios, especialmente de dominio para así lograr que se propague e dominio, y si tienes recursos disponibles también puedes comprar el hosting y tratar de realizar algunas de tareas de posicionamiento y reconocimiento de tu sitios en los diferentes buscadores, mientras se termina de desarrollar el proyecto.
Pero debes tener en cuenta que este gasto anticipado, pues nadie te lo devolverá, a menos que sea un negocio muy rentable no es recomendable esta acción.
¿Por qué no comprar justo al finalizar?
Porque si estas pensando de esta manera es lo mas de seguro que vas a realizar un campaña de promoción para que todas las personas a las que invites a visitar tu proyecto lo hagan casi de manera simultánea y créeme casi siempre las cosas fallan, no quiero decir que esto te suceda a ti, pero pueden pasar mucha cosas, como incompatibilidad de servidor con el código, que el dominio no está propagado, si alguien desea entrar mediante algún buscador no podrá hacerlo, tantas eventualidades que no podemos tenerlas todas preparadas que nos pueden hacer pasar un mal rato.
Es por eso que en mi humilde opinión la mitad de desarrollo de un proyecto es el momento adecuando para hacer las compras, hacer puestas en producción beta, solo para nosotros y ver que todo esté bien, además que podemos hacer un trabajo de posicionamiento básico de manera más efectiva ya teniendo algo de información  por mas beta que sea.
Posicionamiento
El posicionamiento como ya vieron no necesariamente debe estar en la etapa final del proyecto, comprende desde el análisis hasta la etapa final donde se pone el 100% de nuestra atención a este punto.
¿Lo anteriormente mencionado es una regla general?
Para nada, es una receta de las miles que puedes encontrar en la Web, pero es la que yo utilizo y te aseguro que te otorgara grandes resultados si cada uno de los pasos se los realiza de manera consiente y minuciosa.

¿Por que pagar por un DBMS ?

En las siguientes líneas vamos a hablar del por qué las empresas utilizan bases de datos de pago habiendo muy buenas soluciones de manera gratuita.
Las grandes empresas o corporaciones utilizan bases de datos de pago como ser: ORACLE, DB2, SQLServer, Teradata y algunas otras mas no por el hecho de demostrar que tienen mucha plata para pagar tremendas licencias o que utilizan motores de bases de datos de empresas líderes en el mercado.
¿Qué buscan las grandes empresas en una base de datos?
Las empresas que manejan gran cantidad de información lo primero que buscan es fiabilidad en el manejo de su información, si una empresa que maneja muchos registros, mueve mucha información financiera y confidencial se da el lujo de no tener una garantía sobre la seguridad/ fiabilidad del almacenamiento de los datos, pues simple y llanamente es una empresa que no es seria.
¿Pero la fiabilidad de los datos no depende más de Hardware?
Si y No, el tema de Hardware es más que imprescindible en el tema de fiabilidad de datos no sola a nivel empresarial sino también a nivel del hogar o de medianas empresas, si no tienes una adecuada solución de hardware pues corres serios riesgos de perder tu información. Entonces porque decimos que la fiabilidad de la información de una empresa depende del motor de base de datos y por qué pagar tanto por una licencia.
Un sistema de gestión de base de datos (DBMS por sus siglas en ingles) dependiendo de su arquitectura y capacidad  de manejo de la información nos debe otorgar ventajas y facilidad para mantener la información con el mayor porcentaje de confiabilidad y seguridad, además un DBMS que vaya a ser usado a nivel empresarial nos debe dar la tranquilidad de poder contar con soporte técnico 24/7 (24 horas los 7 días de la semana).
Pero hay empresas grandes que manejan mucha información que utilizan bases de datos gratuitas y les va muy bien sin gastar mucha plata. Esto es muy cierto un de las empresas grandes que logran esto es facebook que utiliza MySQL como DBMS , pero hay que tener claros dos cosas muy importantes: uno es que facebook utiliza MySQL pero paga por el soporte técnico y otro es que facebook no le garantiza a nadie si pierde o no su información, obviamente la empresa perdería grandes cantidades de dinero por como maneja el ámbito de las redes sociales, pero estoy casi seguro que no podría emprender acciones legales contra esta empresa si es que llegara a perder información, porque nadie paga por el uso de la red social.
Pero puedo tener políticas de redundancia de información y de respaldos para salvar estas diferencias con las grandes empresas y así poder resolver este tema tan delicado y no pagar mucho dinero. Efectivamente esto es muy cierto, pero el costo operacional y de infraestructura pueden llevar generar gastos casi al mismo monto que lo que costaría tener DBMS de pago.
¿Por más que haya buenas soluciones gratuitas debo considerar comprar un motor de base de datos?
Debes analizar la mejor opción dependiendo de lo que quieres hacer como negocio, por que la mejor de las soluciones de pago inclusive puede no tener la mejor arquitectura para tus necesidades.


Analizar las necesidades inmediatas, y hacia dónde va el negocio del sistema, es la clave del éxito a la hora de escoger la mejor solución.

“Antes de ir a la cancha a jugarte la vida, debes ver tus opciones y cómo encarar el futuro”

Posicionamiento Web (II) Google

Hace unos días hablamos de lo que es posicionamiento Web, ahora nos enfocaremos en hablar acerca de que realizar para un adecuado posicionamiento para Google.
¿Es importante posicionarse en Google?
Más que el aire mismo, en el mundo actual y por mucho tiempo creo yo, Google será el navegador predilecto de la nube y no aparecer en los primeros lugares en este buscador es perder terreno.
¿Google nos ayuda a posicionarnos?
Google no nos ayuda a posicionarnos, pero nos dice que tenemos que hacer para que nos tome en cuenta. Pese a esto no nos garantizan que aparezcamos en los primeros lugares de las búsquedas.
¿Google tiene herramientas de posicionamiento?
Tanto herramientas de posicionamiento  yo personalmente no las tomo como tal, más bien son herramientas que te ayudan a ver qué cosas Google las toma en cuenta y que cosas no. Aquí aparece el tino del Profesional SEO que desea posicionar una marca en darse cuenta donde falla y donde tiene aciertos.
¿Alguien me puede asegurar aparecer en los primeros lugares de Google?
No, como ya lo había mencionado anteriormente ni Google utilizando sus herramientas te asegura que estarás completamente indexado o que aparecerás en los primeros lugares de búsqueda.
¿Cuánto tiempo debo esperar hasta aparecer en Google?
No es una ciencia exacta. Si tienes un dominio nuevo, lo más probable  es que Google tarde varios días y hasta semanas en tomarte en cuenta, y meses en poder aparecer en resultados de palabras clave.
¿Comprar propaganda en Google me ayuda a posicionarme?
No. Comprar publicidad en Google no te ayuda en el posicionamiento Web, ni mejora la velocidad con que Google te indexe, lo único que te asegura el comprar publicidad en Google es que aparezcas en búsquedas relacionadas con la temática de tu página web, mientras no lo puedas hacer por tus propios medios.
¿Google tiene reglas que debo cumplir para poder realizar un adecuando posicionamiento?
Google te dice que debes hacer y que debes evitar hacer para no ser penalizado. En el afán de posicionarnos bien y rápido podemos hacer cosas que no le gustan a Google y en vez de posicionarnos de manera optima Google nos penalizara y simplemente dejaremos de aparecer en el buscador.
Si aun no desarrollaste tu página Web te recomiendo leer esta entrada.
Si ya realizaste algunas tareas de posicionamiento y no apareces en Google te recomiendo lees esta entrada.
Si tienes todo como Google dice y no logras posicionarte en los primeros lugares, pues ten paciencia, las herramientas de Google te dirán como anda tu posicionamiento, si ves que los resultados de las herramientas no son positivos y ya llevas tiempo en este trabajo de posicionamiento, pues dale una mirada a este artículo .
¿Cuáles son las herramientas que me ofrece Google?
La herramienta que te puede ayudar a medir como están tus páginas, como se comporta el contenido de tus paginas con relación a las búsquedas, el rendimiento de tu sitio y algunas variables mas es Google Webmasters Tool.
La herramienta que de ayudara a ver las visitas, localización geográfica, tipo de usuarios, idioma, lugares de acceso, frecuencia de acceso, tiempo que visitan la pagina en fin un mundo de estadísticas que te ayudan a medir todo lo relacionado a tu pagina es Google Analytics.

Posicionamiento Web (III) Yahoo - Bing

¿Para posicionar en Yahoo y Bing , debo realizar las mismas tareas que en Google?
En teoría si, pero cada buscador tiene su manera de hacerlo, no todos los buscadores utilizan los mismo parámetro o la información de la misma manera, cada uno tiene lo suyo.
¿Posicionar en Yahoo y Bing es difícil?
No. En realidad si sigues las directrices de posicionamiento de cada uno de los buscadores, no debería ser una tarea demasiado complicada posicionar una página Web.
¿Qué debo hacer para posicionar en Bing?
Bing tiene varias herramientas similares a las de Google, para poder realizar tareas de indexamiento y de monitoreo de nuestra página, solo debemos utilizar estas herramientas para realizar un optimo indexamiento en Bing
Las herramientas para webmasters de Bing nos permiten enviar sitemaps de nuestros sitios, ver estadísticas de backlinks, enlaces salientes, determinar el peso que tienen las páginas de un sitio con respecto a una keyword.
Debemos sugerir a Bing nuestro sitio para que lo vaya tomando en cuenta lo antes posible. enviar nuestro sitio a Bing 
Tambien debemos leer su documentación oficial para no caer en penalizaciones, aunque bing no es tan estricto como Google.

¿Qué debo hacer para posicionar en Yahoo?
Lo primero es sugerirle a Yahoo que nos tome en cuenta.
Posteriormente debemos seguir las reglas en cuanto al manejo de contenidos y tags que le gustan a Yahoo.
Yahoo no tiene tanta complicación a la hora de realizar el posicionamiento, pero se toma su tiempo en mostrar resultados efectivos.

sábado, 18 de septiembre de 2010

Posicionamiento Web (I)

¿Qué es posicionamiento?
Cuando una persona quiere encontrar algún: producto, noticia, comentario, imagen u otro tipo de información, lo primero que hace es recurrir a un buscador Web y realizar una búsqueda de las páginas que puedan contener información relevante al lo que el usuario desea buscar.
Todas las empresas que ofrecen información en la nube, día a día luchan en una guerra sin cuartel por aparecer en los primeros lugares de los diferentes buscadores y poder ser una de las muchas páginas que lea el usuario antes de dejar de navegar y utilizar dicha información.
¿Es tan importante ser los primeros?
Mucho, si la empresa es una empresa de venta de productos, los compradores por lo general buscan un producto y solo revisan la información que ofrecen las empresas posicionadas en los primeros lugares de su buscador predilecto ni siquiera se dedican a ver todas las empresas vendedoras de la primera hoja sino se limitan a las primeras 5, es por eso que si una empresa no aparece antes de o junto con la competencia, pues es vano su intento de vender en la Web por que tendrá un número mínimo de visitas y estos en su mayoría por que visitan la pagina de manera directa y no por acceso de un buscador.
¿Es difícil posicionar una página Web?
Como todo en la vida, nada es fácil ni se logra de la noche a la mañana, obviamente posicionar una página Web tiene niveles de complejidad a medida del rubro al que está enfocado nuestra página web,  también incluye mucho el idioma, la localización geográfica, el tipo de competencia con el que nos vamos a encontrar, y por sobre todas las cosas el interés que vayamos a ponerle al posicionamiento.
¿Debo saber programar para posicionar una página Web?
No, posicionar una web no tiene nada que ver con la programación, es necesario tener conocimientos de la naturaleza de la web y como saber utilizar algunos recursos, que deben ser añadidos en el código, pero esto no implica desarrollar/implementar funcionalidad extra. Es por eso que muchas de las empresas ofrecen el servicio de posicionamiento Web como paquete extra al desarrollo de sistemas.
¿Cuándo debo realizar el posicionamiento Web?
La planeación del posicionamiento Web de preferencia tiene que comenzar cuando comienza a planificarse el desarrollo de una página Web.
Pero no pasa nada si esto no se lo realiza de esta manera, en realidad estoy casi convencido que el 90% de las páginas Web son posicionadas mucho después de terminado el desarrollo inclusive años después de estar en producción.
¿Para quién posicionar mi Web?
Para los buscadores mejor posicionados, ¿cómo es eso?, ¿los buscadores también se posicionan? , pues los buscadores libran feroces batallas para ser los más usados en el mundo o en diferentes regiones.
Aquí les presento una lista de los buscadores mejor posicionados a nivel general hasta el primer semestre del 2010
   1. Google: 85.78%
   2. Yahoo: 6.16%
   3. Bing: 3.17%
   4. Baidu 2.56%
   5. ASK: 0.62%
   6.
AOL: 0.47%