MediaWiki es un software para wikis libre programado en el lenguaje PHP. Es el software usado por Wikipedia y otros proyectos de la Fundación Wikimedia (Wikcionario, Wikilibros, etc). Ha tenido una gran expansión desde 2005 y existe un gran número de wikis basados en este software que no mantienen relación con dicha fundación, aunque sí comparten la idea de la generación de contenidos de manera colaborativa. Se encuentra bajo la licencia de software GNU General Public License.
MediaWiki puede ser instalado en los servidores web Apache, Internet Information Services, Cherokee (servidor web), Hiawatha, LiteSpeed Standard (necesita la extensión Math), nginx, y lighttpd y puede usar como motor de base de datos MySQL/MariaDB, PostgreSQL y SQLite.
También se llama MediaWiki al espacio de nombres (ver más abajo) donde se hallan entre otras cosas los mensajes de su interfaz listos para su traducción a la lengua local de cada wiki, en caso de no estar todavía traducidos.
MediaWiki fue desarrollado originalmente para Wikipedia por Magnus Manske, con el fin de sustituir a UseModWiki como motor del wiki (al que los colaboradores de Wikipedia llamaron "Fase I"). A la primera versión se la llamaba, simplemente "software de Wikipedia fase II."
A mediados de 2002 el programa fue reescrito y mejorado, dando lugar a la llamada "fase III", y ha seguido desarrollándose desde entonces a partir de ese código. El 29 de agosto de 2003 se bautizó al programa, hasta ese momento sin un nombre oficial, como "MediaWiki", un juego de palabras con el nombre de la Fundación Wikimedia, que patrocina su desarrollo. La primera versión con este nombre se llamó, entonces, "MediaWiki-stable 20030829". Se empezó entonces a pensar las nuevas versiones pensando en posibles usuarios ajenos a Wikipedia, mejorando especialmente en aspectos como la instalación del software.
El nombre "MediaWiki" es criticado en ocasiones por ser fácil de confundir con el de la fundación por parte de gente ajena a Wikipedia.
MediaWiki posee un servicio de alta disponibilidad que permite la edición de artículos de distintos usuarios vía HTTP siguiendo unas guías de estilo específicas. Es común que un usuario empiece a editar un registro y lo cancele o cierre la sesión sin haberlo guardado, por lo que no son factibles los bloqueos, y que no acceda ningún usuario mientras, por esta razón, no se bloquea en servicios HTTP, ya que se prima que todos los usuarios puedan acceder, aunque un usuario esté editando.
Esto lleva al punto de que dos usuarios puedan editar el mismo texto a la vez, lo que supondría un problema en caso de que ocurra, aunque no suele ser muy frecuente.
Por ello, la solución que ha implementado MediaWiki es el control de concurrencia optimista (OCC), definiéndose como un método de control de concurrencia que se aplica a sistemas transaccionales, es decir, se permite que un grupo de instrucciones de carga y almacenamiento se ejecuten en un camino atómico, proporcionando un alto nivel de abstracción que permita la coordinación de lecturas y escrituras simultáneas de datos compartidos en sistemas paralelos.
El funcionamiento de la OCC por definición asume que múltiples transacciones se pueden completar frecuentemente sin interferir entre sí, mientras se ejecutan, las transacciones se van ejecutando con normalidad y antes de hacer commit, cada transacción validará que ninguna otra ha modificado los datos que ha leído o escrito y en caso de entrar en conflicto, la transacción que iba a hacer commit hará un rollback.
Por lo tanto, si suponemos que dos usuarios van a editar la misma página, en cada uno de ellos se grabará un timestamp que marcará el inicio de la transacción, a continuación, cada uno modificará los valores correspondientes y escribirá nuevos datos, comprobará si hay otras transacciones que han modificado datos que se ha utilizado en dicha transacción y finalmente, a la hora de hacer commit, se comparará con la base de datos observará que hay un conflicto y normalmente anulará la transacción, aunque puede seguir otros esquemas de resolución como que se invoque a un algoritmo de resolución de conflicto, que en este caso va a ser que el último usuario concilie las diferencias entre el usuario anterior y el mismo.
Dada esta situación vamos a suponer que tenemos dos usuarios llamados Natalia y Paco
, van a editar una misma página de MediaWiki, lo que puede ocurrir es:Por cada usuario que esté modificando, aparecerá un cuadro de edición que contiene el texto que va a enviar/subir cada uno de los usuarios, por lo que se cree en la buena fe de los usuarios y que Natalia no pondrá su texto en la parte superior perteneciente a Paco.
Normalmente, los problemas conflicto de edición, se resuelven fusionando las contribuciones de los editores
Escribe un comentario o lo que quieras sobre MediaWiki (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)