<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>2227-1899</journal-id>
<journal-title><![CDATA[Revista Cubana de Ciencias Informáticas]]></journal-title>
<abbrev-journal-title><![CDATA[Rev cuba cienc informat]]></abbrev-journal-title>
<issn>2227-1899</issn>
<publisher>
<publisher-name><![CDATA[Editorial Ediciones Futuro]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S2227-18992016000300013</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Proceso de réplica de datos con Microsoft SQL Server para el Replicador de Datos Reko]]></article-title>
<article-title xml:lang="en"><![CDATA[Data replication process with Microsoft SQL Server for Reko Data Replicator]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Martín Peña]]></surname>
<given-names><![CDATA[Nayibi]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Martín Mata]]></surname>
<given-names><![CDATA[Marcos Manuel]]></given-names>
</name>
<xref ref-type="aff" rid="A02"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Labrada Quiala]]></surname>
<given-names><![CDATA[Richel]]></given-names>
</name>
<xref ref-type="aff" rid="A03"/>
</contrib>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Leyva Jerez]]></surname>
<given-names><![CDATA[Gloria Raquel]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad de las Ciencias Informáticas Facultad 5 Centro de Consultoría y Desarrollo de Arquitecturas Empresariales]]></institution>
<addr-line><![CDATA[La Lisa La Habana]]></addr-line>
<country>Cuba</country>
</aff>
<aff id="A02">
<institution><![CDATA[,Facultad Universitaria Municipal Mayarí  ]]></institution>
<addr-line><![CDATA[ Holguín]]></addr-line>
<country>Cuba</country>
</aff>
<aff id="A03">
<institution><![CDATA[,Empresa de Tecnología de la Información para la Defensa  ]]></institution>
<addr-line><![CDATA[La Lisa La Habana]]></addr-line>
<country>Cuba</country>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>09</month>
<year>2016</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>09</month>
<year>2016</year>
</pub-date>
<volume>10</volume>
<numero>3</numero>
<fpage>171</fpage>
<lpage>185</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_arttext&amp;pid=S2227-18992016000300013&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_abstract&amp;pid=S2227-18992016000300013&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://scielo.sld.cu/scielo.php?script=sci_pdf&amp;pid=S2227-18992016000300013&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[RESUMEN El Replicador de Datos Reko pretende cubrir las principales necesidades relacionadas con la distribución de datos entre los gestores de bases de datos más populares como PostgreSQL, MySQL y Oracle, pero no contaba con un mecanismo que resolviera la replicación de datos con Microsoft SQL Server. Cuando se deseaba replicar datos con Microsoft SQL Server haciendo uso del Replicador de Datos Reko se hacía necesaria la utilización de métodos tradicionales de distribución de datos, lo que causaba una gestión de la información lenta y posibles errores en la consistencia de los datos. Con el objetivo de desarrollar un dialecto para el Replicador de Datos Reko que permitiese la replicación de datos con Microsoft SQL Server se utilizaron como métodos científicos de investigación los métodos teóricos: &#8220;Análisis Histórico-Lógico&#8221; y &#8220;Analítico-Sintético&#8221;. Además, se aplicó la metodología de desarrollo ágil Open Up que abarca todo el proceso de desarrollo del software con iteraciones pequeñas. El software ha sido diseñado e implementado en su totalidad usando herramientas Open Source y librerías de clases con licencias gratuitas, como: Visual Paradigm, Eclipse STS, Apache ActiveMQ, Apache Tomcat, entre otras. El dialecto de Microsoft SQL Server para Reko facilitará realizar configuraciones de réplica para este gestor, sincronizar, enviar y recibir datos con el gestor de base de datos Microsoft SQL Server y replicar datos desde Microsoft SQL Server hacia otros gestores, por lo que constituirá una solución madura y viable ante las necesidades de los sistemas que utilicen este replicador.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[ABSTRACT Reko Data Replicator intends to cover the principal needs related to data distribution between most popular databases managers as PostgreSQL, MySQL and Oracle, but did not have a mechanism to resolve data replication with Microsoft SQL Server. When you want to replicate data using the database manager Microsoft SQL Server required the use of traditional methods of data distribution, what caused a slow information management and possible errors in the data consistency. With the objective of developing a dialect for Reko Data Replicator that allow data replication with Microsoft SQL Server were used scientific methods of investigation, they were the theoretical methods: "Logical-Historical Analysis" and "Analytic-Synthetic". Also applied the agile development methodology Open Up spanning the entire software development process with small iterations. The software has been designed and implemented entirely using Open Source tools and class libraries with free licenses such as: Visual Paradigm, Eclipse STS, Apache ActiveMQ and Apache Tomcat. The Microsoft SQL Server dialect for Reko facilitate replication configurations for this manager, sync, send and receive data in Microsoft SQL Server manager and replicate data from Microsoft SQL Server to other managers, so it will be a mature and viable solution to the needs of systems using this replicator.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[replicación de datos]]></kwd>
<kwd lng="es"><![CDATA[dialecto]]></kwd>
<kwd lng="es"><![CDATA[Microsoft SQL Server]]></kwd>
<kwd lng="en"><![CDATA[data replication]]></kwd>
<kwd lng="en"><![CDATA[dialect]]></kwd>
<kwd lng="en"><![CDATA[Microsoft SQL Server]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="right"><font face="Verdana, Arial, Helvetica, sans-serif" size="2"><B>ART&Iacute;CULO  ORIGINAL</B></font></p>     <p>&nbsp;</p>     <p><font size="4"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Proceso  de r&eacute;plica de datos con Microsoft SQL Server para el Replicador de Datos Reko</font></strong></font></p>     <p>&nbsp;</p>     <p><font size="3"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Data  replication process with Microsoft SQL Server for Reko Data Replicator</font></strong></font></p>     <p>&nbsp;</p>     <p>&nbsp;</p>     <P><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Nayibi Mart&iacute;n Pe&ntilde;a<strong><sup>1*</sup></strong>,Marcos Manuel Mart&iacute;n Mata<strong><sup>2</sup></strong></font></strong></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>, Richel Labrada Quiala<sup>3</sup>, Gloria Raquel Leyva Jerez<sup>1</sup></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>1</sup>Centro  de Consultor&iacute;a y Desarrollo de Arquitecturas Empresariales - Facultad 5 -  Universidad de las Ciencias Inform&aacute;ticas, Cuba, Carretera San Antonio de los  Ba&ntilde;os Km 2&frac12;, La Lisa, La Habana, Cuba,{<a href="mailto:nmartin,%20grleyva%7d@uci.cu">nmartin,  grleyva}@uci.cu</a></font><font size="2"></font>    <br>   <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>2</sup>Facultad Universitaria Municipal Mayar&iacute;, Holgu&iacute;n, Cuba, <a href="mailto:marcos59@nauta.cu">marcos59@nauta.cu</a>    ]]></body>
<body><![CDATA[<br> </font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><sup>3</sup>Empresa de Tecnolog&iacute;a de la Informaci&oacute;n para la Defensa, Cuba, Carretera  San Antonio de los Ba&ntilde;os Km 2&frac12;, La Lisa, La Habana, Cuba, <a href="mailto:rquiala@xetid.cu">rquiala@xetid.cu</a></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">    <br> </font></p>     <P><font face="Verdana, Arial, Helvetica, sans-serif"><span class="class"><font size="2">*Autor para la correspondencia: </font></span><a href="mailto:nmartin@uci.cu"><font size="2">nmartin@uci.cu</font></a></font>     <p>&nbsp;</p>     <p>&nbsp;</p> <hr>     <P><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b>RESUMEN</b> </font>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El Replicador de Datos Reko  pretende cubrir las principales necesidades relacionadas con la distribuci&oacute;n de  datos entre los gestores de bases de datos m&aacute;s populares como PostgreSQL, MySQL  y Oracle, pero no contaba con un mecanismo que resolviera la replicaci&oacute;n de  datos con Microsoft SQL Server. Cuando se deseaba replicar datos con Microsoft  SQL Server haciendo uso del Replicador de Datos Reko se hac&iacute;a necesaria la  utilizaci&oacute;n de m&eacute;todos tradicionales de distribuci&oacute;n de datos, lo que causaba  una gesti&oacute;n de la informaci&oacute;n lenta y posibles errores en la consistencia de  los datos. Con el objetivo de desarrollar un dialecto para el Replicador de  Datos Reko que permitiese la replicaci&oacute;n de datos con Microsoft SQL Server se  utilizaron como m&eacute;todos cient&iacute;ficos de investigaci&oacute;n los m&eacute;todos te&oacute;ricos:  &ldquo;An&aacute;lisis Hist&oacute;rico-L&oacute;gico&rdquo; y &ldquo;Anal&iacute;tico-Sint&eacute;tico&rdquo;. Adem&aacute;s, se aplic&oacute; la  metodolog&iacute;a de desarrollo &aacute;gil Open Up que abarca todo el proceso de desarrollo  del software con iteraciones peque&ntilde;as. El software ha sido dise&ntilde;ado e  implementado en su totalidad usando herramientas Open Source y librer&iacute;as de  clases con licencias gratuitas, como: Visual Paradigm, Eclipse STS, Apache  ActiveMQ, Apache Tomcat, entre otras. El dialecto de Microsoft SQL Server para  Reko facilitar&aacute; realizar configuraciones de r&eacute;plica para este gestor,  sincronizar, enviar y recibir datos con el gestor de base de datos Microsoft  SQL Server y replicar datos desde Microsoft SQL Server hacia otros gestores,  por lo que constituir&aacute; una soluci&oacute;n madura y viable ante las necesidades de los  sistemas que utilicen este replicador.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Palabras clave: </span></b>replicaci&oacute;n de datos; dialecto; Microsoft SQL Server</font></p> <hr>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>ABSTRACT</span></b> </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Reko Data Replicator intends  to cover the principal needs related to data distribution between most popular  databases managers as PostgreSQL, MySQL and Oracle, but did not have a  mechanism to resolve data replication with Microsoft SQL Server. When you want  to replicate data using the database manager Microsoft SQL Server required the  use of traditional methods of data distribution, what caused a slow information  management and possible errors in the data consistency. With the objective of  developing a dialect for Reko Data Replicator that allow data replication with  Microsoft SQL Server were used scientific methods of investigation, they were  the theoretical methods: &quot;Logical-Historical Analysis&quot; and  &quot;Analytic-Synthetic&quot;. Also applied the agile development methodology  Open Up spanning the entire software development process with small iterations.  The software has been designed and implemented entirely using Open Source tools  and class libraries with free licenses such as: Visual Paradigm, Eclipse STS,  Apache ActiveMQ and Apache Tomcat. The Microsoft SQL Server dialect for Reko  facilitate replication configurations for this manager, sync, send and receive  data in Microsoft SQL Server manager and replicate data from Microsoft SQL  Server to other managers, so it will be a mature and viable solution to the  needs of systems using this replicator.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><b><span lang=EN-GB>Key words: </span></b>data replication; dialect; Microsoft SQL Server</font></p> <hr>     <p>&nbsp;</p>     <p>&nbsp;</p>     <p><font size="3" face="Verdana, Arial, Helvetica, sans-serif"><b>INTRODUCCI&Oacute;N</b></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El constante manejo de la informaci&oacute;n y el perfeccionamiento de las  comunicaciones a nivel mundial han conducido a establecer sistemas de  informaci&oacute;n que faciliten almacenar datos de forma masiva, dando lugar al  surgimiento de los sistemas de bases de datos. En sus inicios los datos se  almacenaban de forma centralizada, pero el incremento de la informaci&oacute;n y la  necesidad de que ordenadores ubicados geogr&aacute;ficamente distantes pudiesen  compartir datos impuls&oacute; vertiginosamente la utilizaci&oacute;n de sistemas  distribuidos. La tendencia al desarrollo de estos sistemas ha propiciado que  las bases de datos que se encuentran en ordenadores distantes, favorecidas por  la utilizaci&oacute;n de las redes de comunicaci&oacute;n, mantengan la actualizaci&oacute;n y  sincronizaci&oacute;n de los datos a trav&eacute;s de los sistemas de r&eacute;plica. El proceso de  replicaci&oacute;n permite el copiado y distribuci&oacute;n de objetos de una base de datos  hacia otra, lo que contribuye a la coherencia y consistencia de la informaci&oacute;n. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Precisamente en la Universidad de las Ciencias Inform&aacute;ticas (UCI), se  encuentra ubicado el Centro de Consultor&iacute;a y Desarrollo de Arquitecturas  Empresariales (CDAE), en el cual se desarrolla el Replicador de Datos Reko.  Este software surge a causa de la necesidad que se present&oacute; en la distribuci&oacute;n  de datos en el Sistema de Gesti&oacute;n Penitenciario Venezolano (SIGEP) en el a&ntilde;o  2007. Reko procura cubrir las principales necesidades relacionadas con la  distribuci&oacute;n de datos entre los gestores de bases de datos m&aacute;s populares como  PostgreSQL, MySQL y Oracle en la protecci&oacute;n, recuperaci&oacute;n, sincronizaci&oacute;n de  datos, transferencia de datos entre diversas localizaciones y la centralizaci&oacute;n  de la informaci&oacute;n en una &uacute;nica localizaci&oacute;n. Est&aacute; siendo utilizado por varios  sistemas tanto a nivel nacional como internacional entre los que se encuentran  el sistema DATAFAR de las Fuerzas Armadas Revolucionarias de la Rep&uacute;blica de  Cuba, el proyecto de Informatizaci&oacute;n de Tribunales, el sistema de Fiscal&iacute;a y actualmente  est&aacute; siendo desplegado en el Sistema de Gesti&oacute;n Hospitalaria de PDVSA.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Igualmente, el Sistema Nacional de Gesti&oacute;n de Ingreso a la Educaci&oacute;n  Superior ha hecho uso de la herramienta en una etapa inicial. La Universidad de  La Habana desea utilizar Reko para realizar la replicaci&oacute;n de datos en el  sistema antes mencionado; para ello necesita consultar varias bases de datos  construidas con el gestor de base de datos Microsoft SQL Server y que se  encuentran ubicadas en otros sistemas legados, para luego replicar los datos  hacia su base de datos en MySQL. Actualmente Reko no permite la replicaci&oacute;n de  datos utilizando el gestor de base de datos Microsoft SQL Server por lo cual se  reduce su utilizaci&oacute;n en los sistemas que requieren el empleo de este gestor  como es el caso del Sistema Nacional de Gesti&oacute;n de Ingreso a la Educaci&oacute;n  Superior. Para poder efectuar la r&eacute;plica con Microsoft SQL Server haciendo uso  del Replicador de Datos Reko se recurren a m&eacute;todos tradicionales, como la copia  de <em>backups</em> y <em>scripts</em> hacia las distintas bases de datos, lo que causa una  gesti&oacute;n de la informaci&oacute;n lenta y los datos corren el riesgo de poseer errores  de coherencia y consistencia.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El software Microsoft SQL Server cuenta con un mecanismo de replicaci&oacute;n que  pudiera ser utilizado para copiar y distribuir datos entre las bases de datos,  pero el mismo tiene como inconveniente que de los gestores de base de datos a  los cuales Reko brinda soporte de r&eacute;plica, s&oacute;lo es compatible con Oracle. Adem&aacute;s,  posee un alto costo tanto monetario como de recursos, lo que implicar&iacute;a un  mayor gasto econ&oacute;mico y no se resolver&iacute;a totalmente la replicaci&oacute;n de datos.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para dar soluci&oacute;n al problema planteado se define como objetivo de la  investigaci&oacute;n desarrollar un dialecto de Microsoft SQL Server para el Replicador  de Datos Reko que permita realizar configuraciones de r&eacute;plica para este gestor,  adem&aacute;s de sincronizar, enviar y recibir datos con el gestor de bases de datos  Microsoft SQL Server.</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una vez definida la  problem&aacute;tica se realiz&oacute; un estudio de los gestores de bases de datos a los  cuales Reko brinda opci&oacute;n de r&eacute;plica de datos: PostgreSQL, MySQL y Oracle,  adem&aacute;s de Microsoft SQL Server. Se realiz&oacute; una comparaci&oacute;n detallada y  valorativa entre las principales sintaxis, tipos de datos y consultas SQL de  estos gestores y que luego iban a ser utilizadas para el desarrollo del  dialecto de Microsoft SQL Server. Entre las sintaxis m&aacute;s importantes que fueron  estudiadas se encuentran: crear y eliminar disparadores (<em>triggers</em>), habilitar y deshabilitar disparadores, habilitar y  deshabilitar llaves for&aacute;neas, crear, actualizar y eliminar esquemas, tablas y  otras estructuras. </font></p>     <p>&nbsp;</p>     <p><strong><font size="3" face="Verdana, Arial, Helvetica, sans-serif">MATERIALES Y M&Eacute;TODOS </font></strong></p>     <p><font size="2"><a><strong><font face="Verdana, Arial, Helvetica, sans-serif">Proceso  de replicaci&oacute;n de datos en Microsoft SQL Server</font></strong></a> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">La replicaci&oacute;n en Microsoft SQL Server radica en el transporte de datos  entre dos o m&aacute;s instancias de servidores, y para ello brinda un conjunto de  soluciones que permite la copia, distribuci&oacute;n y modificaci&oacute;n de los datos,  adem&aacute;s incluye varios m&eacute;todos y opciones para el dise&ntilde;o como: implementaci&oacute;n,  supervisi&oacute;n y administraci&oacute;n de la replicaci&oacute;n, con el fin de mantener la  coherencia y seguridad de los datos (MICROSOFT DEVELOPER NETWORK, 2015a).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Microsoft SQL Server realiza la r&eacute;plica de los datos bas&aacute;ndose en una  met&aacute;fora de la industria de la publicaci&oacute;n, por lo que representa los  componentes y procesos mediante una topolog&iacute;a de replicaci&oacute;n, que se compone,  b&aacute;sicamente, del publicador, el distribuidor, los suscriptores, las  publicaciones, los art&iacute;culos y las suscripciones (MICROSOFT SQL SERVER, 2015a). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una topolog&iacute;a de replicaci&oacute;n  define la relaci&oacute;n entre los servidores y las copias de los datos, y determina  c&oacute;mo se desarrollar&aacute; el flujo de la informaci&oacute;n (APINA and ROBLES, 2011). En la <a href="#f01">Figura 1</a>, se  muestra informaci&oacute;n general acerca de los componentes y procesos que participan  en la replicaci&oacute;n.</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/f0113316.jpg" alt="f01" width="369" height="260"><a name="f01"></a></p> <ul type="disc">       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Publicador: es una instancia de base de datos que       permite que los datos est&eacute;n disponibles para otras ubicaciones a trav&eacute;s de       la replicaci&oacute;n. </font></p>   </li>       ]]></body>
<body><![CDATA[<li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Distribuidor: es una instancia de base de datos que       funciona como almac&eacute;n para datos espec&iacute;ficos de replicaci&oacute;n asociados con       uno o m&aacute;s publicadores. Cada publicador est&aacute; asociado con una sola base de       datos en el distribuidor. </font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Suscriptor: es una instancia de base de datos que       recibe datos replicados. El suscriptor tambi&eacute;n puede devolver los datos       modificados al publicador o volver a publicar los datos en otros       suscriptores. </font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Art&iacute;culo: identifica un objeto de base de datos       incluido en una publicaci&oacute;n, como, por ejemplo: tablas, vistas,       procedimientos almacenados y otros objetos. </font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Publicaci&oacute;n: es un conjunto de uno o m&aacute;s art&iacute;culos       de una base de datos. La publicaci&oacute;n permite especificar un conjunto de       objetos y datos de bases de datos que se replican como una unidad.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Suscripci&oacute;n: es una solicitud de una copia de una publicaci&oacute;n       que se entrega a un suscriptor. La suscripci&oacute;n define qu&eacute; publicaci&oacute;n se       recibir&aacute;, d&oacute;nde y cu&aacute;ndo (MICROSOFT DEVELOPER NETWORK, 2015b).</font></p>   </li>       ]]></body>
<body><![CDATA[<li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Agentes de Replicaci&oacute;n: son       programas independientes para realizar las tareas asociadas con el       seguimiento de los cambios y la distribuci&oacute;n de los datos. Existen varios       agentes de replicaci&oacute;n como: el agente SQL Server, el agente de       instant&aacute;neas, el agente de registro del LOG, el agente de distribuci&oacute;n, el       agente de mezcla, el agente de lectura de cola y los trabajos de mantenimiento       de la replicaci&oacute;n (MICROSOFT       SQL SERVER, 2015b).</font></p>   </li>     </ul>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Inconvenientes de Microsoft SQL  Server</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Como consecuencia de contar con una robusta tecnolog&iacute;a, Microsoft SQL  Server posee un alto precio econ&oacute;mico, en dependencia de las opciones que se requiera  del gestor de base de datos, llegando a costar hasta 25 000 d&oacute;lares. Se puede  agregar adem&aacute;s que la replicaci&oacute;n con Microsoft SQL Server est&aacute; definida s&oacute;lo  para sistemas operativos de Microsoft, e incluso en ocasiones es incompatible  con algunos entornos del mismo, por lo que es imposible trabajar en cualquier  tipo de ambiente de desarrollo. Otro de los inconvenientes de Microsoft SQL  Server es que requiere de una gran cantidad de memoria RAM para poder  instalarlo y utilizarlo, limitando su usabilidad.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Sistema Gestor de Base de Datos  Microsoft SQL Server</strong> </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para el desarrollo del dialecto de Microsoft SQL Server para el Replicador  de Datos Reko fue necesario realizar un estudio de las principales sintaxis de  este gestor de bases de datos. Microsoft SQL Server es un SGBD (Sistema Gestor  de Bases de Datos) basado en el lenguaje Transact-SQL, capaz de poner a  disposici&oacute;n de muchos usuarios grandes cantidades de datos de manera  simult&aacute;nea.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los tipos de datos de  Microsoft SQL Server son compatibles con la mayor&iacute;a de tipos de datos de  Oracle, DB2 y MySQL, es decir, que se pueden utilizar los mismos formatos para  crear y almacenar datos en las diferentes bases de datos existentes (ALOMALIZA, 2008). Los principales tipos de datos que soporta la  plataforma Microsoft SQL Server se muestran en la <a href="#t01">Tabla 1</a>: </font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/t0113316.jpg" alt="t01" width="331" height="277"><a name="t01"></a></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En Microsoft SQL Server los desencadenadores o disparadores (<em>triggers</em>) se ejecutan cuando un usuario  intenta modificar datos mediante un evento DML a trav&eacute;s de las instrucciones <em>INSERT</em>, <em>UPDATE</em> o <em>DELETE</em> de una  tabla o vista. Estos desencadenadores se activan cuando se desencadena  cualquier evento v&aacute;lido, con independencia de que las filas de la tabla se vean  o no afectadas. Para crear <em>triggers</em> se utiliza la siguiente sintaxis:</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">CREATE  TRIGGER [<em>schema.</em>]<em> trigger</em>    <br>   ON <em>table</em>    <br>   {FOR | AFTER | INSTEAD OF}    <br>   { [ INSERT ] [ , ] [ UPDATE ] [ , ] [  DELETE ] }    <br> AS <em>sql_sentence</em>(1)</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">donde:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>schema</em>: es el nombre del esquema al que  pertenece un desencadenador. Este campo es opcional. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>trigger</em>: es el nombre del disparador (<em>trigger</em>). </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>table</em>: es la tabla o vista en que se  ejecuta el desencadenador. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>sql_sentence</em>: son las condiciones y acciones  del desencadenador. (MICROSOFT  DEVELOPER NETWORK, 2015c)</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para  eliminar triggers que se encuentran en la base de datos se utiliza la siguiente  sintaxis:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">DROP TRIGGER [<em>schema.</em>]<em> trigger&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </em>(2)</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">donde:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>schema</em>: es el nombre del esquema al que  pertenece un desencadenador. Este campo es opcional. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>trigger</em>: es  el nombre del disparador (<em>trigger</em>). (MICROSOFT DEVELOPER NETWORK, 2015d)</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para habilitar y deshabilitar los disparadores o  desencadenadores se utilizan las siguientes sintaxis:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ENABLE TRIGGER [<em>schema.</em>]<em> trigger</em>    <br> ON <em>table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </em>(3)</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">DISABLE TRIGGER [<em>schema.</em>]<em> trigger</em>    <br> ON <em>table&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </em>(4)</font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">donde:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>schema</em>: es el nombre del esquema al que  pertenece un desencadenador. Este campo es opcional. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>trigger</em>: es  el nombre del disparador (<em>trigger</em>). MICROSOFT DEVELOPER NETWORK (2015e, 2015f)</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para habilitar y deshabilitar llaves for&aacute;neas en  Microsoft SQL Server se utilizan las siguientes sintaxis:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ALTER TABLE [<em>schema.</em>]<em>table </em>    <br>   CHECK CONSTRAINT <em>foreign_key&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </em>(5)    <br>   ALTER TABLE [<em>schema.</em>]<em>table </em>    <br> NOCHECK CONSTRAINT <em>foreign_key&nbsp;&nbsp;  &nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</em>(6) </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">donde:</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>schema</em>: es el nombre del esquema al que  pertenece la llave for&aacute;nea. Este campo es opcional. </font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>table</em>: es la tabla o vista a la que  pertenece la llave for&aacute;nea.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><em>foreign_key: </em>es el nombre de la llave  for&aacute;nea. (CHERRY,2011) </font></p>     <p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Caracter&iacute;sticas del Replicador de  Datos Reko </font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El Replicador de Datos Reko es un software de r&eacute;plica de  datos que ha sido implementado en la Universidad de las Ciencias Inform&aacute;ticas  como respuesta a la necesidad de mantener actualizadas un conjunto de bases de  datos y pretende cubrir las principales necesidades relacionadas con la distribuci&oacute;n  de datos entre los gestores m&aacute;s populares. Ha sido dise&ntilde;ado para permitir la  r&eacute;plica y sincronizaci&oacute;n de datos con conexi&oacute;n y sin conexi&oacute;n, la selecci&oacute;n de  los datos a replicar y la definici&oacute;n de filtros de replicaci&oacute;n, la r&eacute;plica de  datos entre bases de datos con estructuras heterog&eacute;neas, y entre gestores  heterog&eacute;neos. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Entre las principales funcionalidades que brinda el  Replicador de Datos Reko se encuentran:</font></p> <ul type="disc">       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Soporte para r&eacute;plica de datos en ambientes       con conexi&oacute;n y sin conexi&oacute;n</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Soporte para r&eacute;plica entre bases de datos con       diferentes estructuras</font></p>   </li>       <li>         ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Soporte para r&eacute;plica de ficheros externos a       la base de datos</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Soporte para la sincronizaci&oacute;n de datos en       ambientes con conexi&oacute;n y sin conexi&oacute;n</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Selecci&oacute;n de los datos de r&eacute;plica ajustada       por filtros</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Soporte para r&eacute;plica de datos entre gestores       diferentes (Postgres-Oracle-MySQL)</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Soporte para resoluci&oacute;n de conflictos       autom&aacute;tica y manualmente</font></p>   </li>       <li>         ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Monitoreo en tiempo real de los datos de       r&eacute;plica</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">R&eacute;plica de datos de gran tama&ntilde;o con capacidad       de resumir el env&iacute;o y el recibo de los mismos en caso de desconexi&oacute;n</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Soporte para la programaci&oacute;n       del momento de captura y env&iacute;o de los datos de r&eacute;plica </font></p>   </li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Reko proporciona caracter&iacute;sticas y beneficios que aportan  seguridad al cliente, destac&aacute;ndose que el software es independiente de la  plataforma, replica ficheros de gran tama&ntilde;o, replica datos en sistemas  heterog&eacute;neos donde prevalecen diferentes gestores de base de datos, detecta  errores de conexi&oacute;n, la administraci&oacute;n y configuraci&oacute;n de la r&eacute;plica se realiza  a trav&eacute;s de una interfaz web por lo que es administrable v&iacute;a remota usando un  navegador, entre otras caracter&iacute;sticas que hacen de Reko un software maduro y  una soluci&oacute;n robusta ante el alto conjunto de escenarios de replicaci&oacute;n que  soporta, contando adem&aacute;s con una comunidad de desarrollo que lo respalda (COMPANIONI, 2012).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Si bien el Replicador de Datos Reko cuenta con un  conjunto de funcionalidades que hacen de &eacute;l un software robusto y seguro ante  las necesidades de r&eacute;plica a nivel mundial, a&uacute;n no cuenta con un mecanismo que  resuelva la replicaci&oacute;n de datos con el gestor de bases de datos Microsoft SQL  Server, por lo que se reduce su utilizaci&oacute;n en sistemas que requieran la  utilizaci&oacute;n de este gestor para almacenar informaci&oacute;n. </font></p>     <p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif"><strong><font size="3">RESULTADOS</font></strong></font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">El Replicador de Datos Reko permit&iacute;a realizar configuraciones de r&eacute;plica,  capturar y enviar datos, y sincronizar los datos, en ambientes con conexi&oacute;n y  sin conexi&oacute;n utilizando los gestores de bases de datos Oracle, MySQL y  PostgreSQL. Una vez que se ejecuta el software, el mismo se conecta a la base  de datos a partir de las propiedades definidas en un fichero denominado <em>replication.properties</em>, luego al  realizar la configuraci&oacute;n de r&eacute;plica y la captura de los datos a replicar, se  obtiene un dialecto determinado en dependencia de las caracter&iacute;sticas de cada  gestor de base de datos. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cuando se deseaba efectuar la replicaci&oacute;n de datos en el gestor de bases de  datos Microsoft SQL Server, Reko no era capaz de reconocer los cambios  efectuados en la base de datos debido a que, aunque algunas de las sentencias  de Microsoft SQL Server son compatibles con otros gestores, no le era posible  utilizar los dialectos de estos para construir las consultas. Una vez  analizadas las limitantes antes expuestas se hizo necesario brindarle al  Replicador de Datos Reko un conjunto de funcionalidades a trav&eacute;s del dialecto  de Microsoft SQL Server, que permitan construir consultas para luego  ejecutarlas en la base de datos confeccionada en el gestor de base de datos  Microsoft SQL Server.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Descripci&oacute;n de la arquitectura del  Replicador de Datos Reko</strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Reko presenta una arquitectura  que puede definirse como basada en componentes, debido a que todas sus partes  encapsulan un conjunto de   comportamientos que pueden ser reemplazados por otros. Los principales  componentes presentes en el software son <a href="#f02">Figura 2</a>:</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/f0213316.jpg" alt="f02" width="257" height="305"><a name="f02"></a></p> <ul>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Capturador_Cambios: encargado de  capturar los cambios que se realizan en la base de datos y entregarlos al  distribuidor. </font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Distribuidor: determina el  destino de cada cambio realizado en la base de datos, los env&iacute;a y se  responsabiliza de su llegada.</font></p>   </li>       <li>         ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Aplicador: ejecuta en la base de  datos los cambios que son enviados hacia &eacute;l desde otro nodo de r&eacute;plica.</font></p>   </li>       <li>         <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Administraci&oacute;n: permite realizar las configuraciones       principales del software como el registro de nodos, configuraci&oacute;n de las       tablas a replicar y el monitoreo del funcionamiento.</font></p>   </li>     </ul>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Independientemente de lo antes expuesto, el componente Administraci&oacute;n  responde a un modelo multicapas, donde cada capa tiene funcionalidades y  objetivos precisos, as&iacute; su implementaci&oacute;n se encuentra desacoplada de la  programaci&oacute;n de cualquier otra y la comunicaci&oacute;n con una capa inferior ocurre a  trav&eacute;s de interfaces. Adem&aacute;s de estar separadas l&oacute;gica y estructuralmente, las  capas se encuentran separadas de manera f&iacute;sica. Para realizar la replicaci&oacute;n en  el software se efect&uacute;a la construcci&oacute;n de consultas SQL que posteriormente se  ejecutar&aacute;n en la base de datos. Para lograr replicar con el gestor de bases de  datos Microsoft SQL Server es necesario realizar modificaciones en el paquete <em>triggers</em>, correspondiente al componente  Capturador_Cambios, pues, hasta el momento, s&oacute;lo se ten&iacute;an definidos los  dialectos para PostgreSQL, MySQL y Oracle. En la <a href="#f02">Figura 2</a>, se muestran los  principales componentes del Replicador de Datos Reko.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Cambios realizados en el paquete <em>trigger</em></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para dar soluci&oacute;n a la problem&aacute;tica planteada y utilizando la metodolog&iacute;a  de desarrollo OpenUp se definieron requisitos funcionales con el fin de guiar  el proceso de desarrollo del software, entre los que se encuentran: configurar  los datos de la base de datos, configurar las estructuras de las tablas a  replicar y capturar los datos a replicar. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Inicialmente, cuando se ejecuta el Replicador de Datos Reko, la clase <em>CustomBasicDataSource</em> construye el URL a  partir de las propiedades de la base de datos definidas en el fichero <em>replication.properties</em> para que luego el  sistema pueda conectarse a la base de datos. Una vez ejecutado el replicador es  necesario crear una configuraci&oacute;n de r&eacute;plica que contendr&aacute; las tablas que van a  ser replicadas y el tipo de r&eacute;plica que desea el usuario, ya sea por inserci&oacute;n,  actualizaci&oacute;n o eliminaci&oacute;n. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Cuando se desea guardar esta configuraci&oacute;n de r&eacute;plica, se realiza una  petici&oacute;n a la clase <em>TriggerReplicationManager</em>,  perteneciente al paquete <em>triggers</em>, de  crear las estructuras auxiliares en la base de datos para poder almacenar los  datos que se van a replicar, la clase <em>TriggerReplicationManager</em> crea la estructura de las tablas replicables y el sistema, a partir del  dialecto de Microsoft SQL Server, crea las tablas para almacenar los nombres y  registros de las tablas con datos a replicar, crea en la base de datos las  funciones para habilitar y deshabilitar llaves for&aacute;neas, crea en la base de  datos una tabla espejo para cada una de las tablas con datos a replicar y crea  en la base de datos los disparadores de <em>Insert,  Update </em>y<em> Delete</em> para cada una de  las tablas con datos a replicar. Todas estas acciones que se ejecutan en la  base de datos son creadas a trav&eacute;s de consultas definidas en el dialecto de  Microsoft SQL Server (<em>SQLServerDialect</em>).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Luego de que la configuraci&oacute;n de r&eacute;plica es guardada, se puede dar inicio a  la captura de los cambios en los datos que se encuentran en la base de datos de  Microsoft SQL Server. Para ello se realiza una petici&oacute;n a la clase <em>TriggerReplicationManager</em> de iniciar la  captura de los datos que se van replicar y el sistema se encarga primeramente  de verificar si se puede comenzar a replicar, se obtiene la cantidad de datos a  replicar, se obtiene la acci&oacute;n replicable para cada grupo replicable, se  adiciona la acci&oacute;n replicable al grupo replicable y por &uacute;ltimo se adicionan los  grupos replicables a la lista de elementos a replicar. </font></p>     ]]></body>
<body><![CDATA[<p><font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Herramientas Utilizadas</font></strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Desde sus inicios Reko ha sido  dise&ntilde;ado e implementado en su totalidad usando herramientas <em>Open Source</em> y librer&iacute;as de clases con  licencias gratuitas, lo que permite que el software pueda ser desplegado en  cualquier sistema operativo. Estas herramientas fueron utilizadas tambi&eacute;n en el  desarrollo del dialecto de Microsoft SQL Server para lograr una total  compatibilidad con las dem&aacute;s funcionalidades existentes en el software. Con el  fin de guiar el proceso de desarrollo de software se utiliz&oacute; la metodolog&iacute;a  Open UP, como lenguaje de modelado UML 2.0 y la herramienta CASE Visual Paradigm 8.0, adem&aacute;s para llevar a cabo el desarrollo se utiliz&oacute;  como lenguaje de programaci&oacute;n Java, el entorno de desarrollo integrado Eclipse STS 2.3.2 y el framework</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Spring 2.5.0. Se hizo uso tambi&eacute;n de Apache Tomcat 7.0.23 como servidor  web, Apache ActiveMQ 5.4.3 como servidor de mensajer&iacute;a y el framework JMS para  la gesti&oacute;n de mensajes. Para el desarrollo de pruebas unitarias se utiliz&oacute; el  framework JUnit 4.0 y como gestor de base de datos Microsoft SQL Server 2008.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Evaluaci&oacute;n del dise&ntilde;o aplicando  m&eacute;tricas de software</strong></font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para evaluar la calidad del dise&ntilde;o del dialecto de Microsoft SQL Server para  el Replicador de Datos Reko fueron seleccionadas las m&eacute;tricas Tama&ntilde;o  Operacional de Clases (TOC) y Relaciones entre Clases (RC).</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Los resultados obtenidos al  aplicar las m&eacute;tricas de software, arrojaron que el dise&ntilde;o propuesto tiene una  calidad aceptable, teniendo en cuenta que el 66% de las clases poseen una  cantidad de procedimientos menor o igual al promedio general de 17,5, esto  conlleva a que las evaluaciones sean positivas en los atributos de calidad  involucrados. Adem&aacute;s, el 66% de las clases tienen una baja responsabilidad ya  que este atributo se distribuy&oacute; equitativamente entre todas las clases del  sistema. Esta caracter&iacute;stica permite que en caso de fallos como la  responsabilidad est&aacute; distribuida de forma equilibrada  ning&uacute;n componente sea demasiado cr&iacute;tico como para dejar fuera de servicio el  sistema. El 66% de las clases tienen una baja complejidad, este atributo est&aacute;  distribuido equitativamente. Esta caracter&iacute;stica permite mejorar el  mantenimiento y soporte de las clases. El dise&ntilde;o de la soluci&oacute;n es eficiente ya  que el 66 % de las clases tienen un alto grado de reutilizaci&oacute;n. En la <a href="/img/revistas/rcci/v10n3/f03413316.jpg" target="_blank">Figura 3</a>,  se muestran los resultados de la evaluaci&oacute;n de la m&eacute;trica TOC para el atributo  de calidad Complejidad de implementaci&oacute;n.    <br>   <br clear="ALL"> Los resultados obtenidos luego de aplicar las m&eacute;tricas RC  arrojan que el dise&ntilde;o propuesto tiene una calidad aceptable, teniendo en cuenta  que el 72% de las clases poseen una cantidad de relaciones de uso menor o igual  al promedio general de 2,8, esto conlleva a que las evaluaciones sean positivas  en los atributos de calidad involucrados. Adem&aacute;s, se evidencia un dise&ntilde;o  eficiente al quedar reflejado que un 60% de las clases cuentan con un bajo acoplamiento.  Se asegura la eficiencia de la arquitectura del sistema al evidenciarse que un  80% de las clases posee una baja complejidad de mantenimiento. El 80% de las  clases poseen una alta reutilizaci&oacute;n lo que es un factor fundamental que debe  ser tenido en cuenta en el desarrollo de software. Y por &uacute;ltimo un 80% de las  clases posee baja cantidad de pruebas, lo que representa valores favorables  para el dise&ntilde;o realizado. En la <a href="/img/revistas/rcci/v10n3/f03413316.jpg" target="_blank">Figura 4 </a>, se muestran los resultados de la  evaluaci&oacute;n de la m&eacute;trica RC para el atributo de calidad Acoplamiento.</font></p>     <p align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Una vez elaborada la matriz de  inferencia de indicadores de calidad, todos los resultados obtenidos fueron  positivos por lo que el promedio en todos los indicadores de calidad fue igual  a 1. La <a href="#f05">Figura 5</a>, muestra la gr&aacute;fica de los resultados obtenidos de los  atributos de calidad evaluados en las m&eacute;tricas aplicadas anteriormente, donde  todos los atributos de calidad mantienen un buen comportamiento.</font></p>     <p align="center"><img src="/img/revistas/rcci/v10n3/f0513316.jpg" alt="f05" width="422" height="201"><a name="f05"></a></p>     <p><br clear="ALL">   <font size="2"><strong><font face="Verdana, Arial, Helvetica, sans-serif">Pruebas  de Software</font></strong></font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para comprobar los m&eacute;todos de la clase <em>SqlServerDialect</em> se realizaron pruebas unitarias utilizando la t&eacute;cnica de caja blanca, las  cuales posibilitaron comprobar cada uno de los m&eacute;todos por separado y definir  si el software estaba listo y correctamente terminado. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Las pruebas unitarias permitieron verificar el comportamiento de la clase <em>SqlServerDialect</em> y sus m&eacute;todos. Mediante  estas pruebas fue posible comparar la respuesta que deber&iacute;a obtenerse de un  m&eacute;todo con lo que realmente se adquir&iacute;a de &eacute;l. Actualmente existen varias  herramientas que facilitan la elaboraci&oacute;n y desarrollo de casos de pruebas,  adem&aacute;s de darle seguimiento a los errores, un ejemplo de ello es JUnit  utilizada para realizar pruebas unitarias de aplicaciones Java. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Para la ejecuci&oacute;n de estas pruebas fue necesario dise&ntilde;ar una clase  denominada <em>SqlServerDialectTest</em> la  cual conten&iacute;a todos los casos de pruebas en correspondencia con los m&eacute;todos de  la clase <em>SqlServerDialect</em>.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En total  fueron elaborados 13 casos de pruebas que fueron ejecutados de forma autom&aacute;tica  cuando se realizaba la captura de los datos. En el caso de los m&eacute;todos  desarrollados para la configuraci&oacute;n de r&eacute;plica las pruebas se ejecutaban  correctamente si se creaba una nueva configuraci&oacute;n de r&eacute;plica o exist&iacute;a alguna  almacenada. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">En una primera etapa de pruebas unitarias se obtuvo que, de las 13 pruebas,  4 fueron fallidas debido a errores de bajo impacto en la construcci&oacute;n de las  consultas elaboradas en el dialecto. En una segunda etapa se pudieron resolver  estos problemas, por lo que el resultado de las pruebas fue satisfactorio. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Adem&aacute;s, fueron dise&ntilde;ados 7 casos de pruebas del sistema que fueron ejecutadas  en tres etapas. En una primera etapa se detectaron errores de impacto medio en  4 de los requisitos funcionales que se estaban validando. En una segunda etapa  se lograron corregir 2 de estos errores. Y finalmente en una tercera etapa se  logr&oacute; que las pruebas para validar los requisitos se ejecutaran correctamente,  emitiendo resultados satisfactorios.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Reko 3.1, con las nuevas funcionalidades de r&eacute;plica de datos utilizando  Microsoft SQL Server, fue liberada por CALISOFT (Centro de Calidad de Software)  este a&ntilde;o y actualmente se est&aacute; culminando el proceso de registro de software  por el mismo centro, donde se corrobor&oacute; la correcta implementaci&oacute;n de estas  nuevas funcionalidades.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">A partir de los resultados  obtenidos se puede proponer la utilizaci&oacute;n de Reko para garantizar la  replicaci&oacute;n de datos en entornos de sistemas con necesidad de r&eacute;plica en bases  de datos Microsoft SQL Server ya que es una herramienta poderosa,  multiplataforma y cubre las principales consultas SQL para lograr la r&eacute;plica en  gestores de bases de datos Microsoft SQL Server. </font></p>     <p>&nbsp;</p>     <p><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>CONCLUSIONES</B></font></p>     ]]></body>
<body><![CDATA[<p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Con el desarrollo del dialecto de Microsoft SQL Server para el Replicador  de Datos Reko se agregaron funcionalidades que dan la posibilidad a los  usuarios que utilizan este replicador realizar configuraciones de r&eacute;plica para  Microsoft SQL Server, sincronizar, enviar y recibir datos en ambientes con  conexi&oacute;n y sin conexi&oacute;n utilizando el gestor de bases de datos Microsoft SQL  Server. </font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Es una soluci&oacute;n de gran impacto en la sustituci&oacute;n de importaciones pues fue  desarrollada utilizando tecnolog&iacute;as modernas y libres. Adem&aacute;s, fue validada en  un ambiente de r&eacute;plica real, por lo que constituye una soluci&oacute;n robusta y de  alta calidad.</font></p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Se recomienda a&ntilde;adir al dialecto la posibilidad de construir consultas SQL  para la r&eacute;plica de estructuras.</font></p>     <p>&nbsp;</p>     <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><B>REFERENCIAS  BIBLIOGR&Aacute;FICAS</B></font>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">ALOMALIZA, W. C. Estudio comparativo de mecanismos de  migraci&oacute;n autom&aacute;tica de datos a plataformas heterog&eacute;neas aplicado al control  biom&eacute;trico de la ESPOCH. Tesis de Grado, Escuela Superior Polit&eacute;cnica de  Chimborazo, Riobamba, Ecuador, 2008.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">APINA, A. E.; ROBLES, R. F. Estudio de agentes en  servicios web para la replicaci&oacute;n de bases de datos heterog&eacute;neas caso pr&aacute;ctico:  Aplicaci&oacute;n Sat&eacute;lite Contilibro. Tesis de Grado, Escuela Superior Polit&eacute;cnica de  Chimborazo, Riobamba, Ecuador, 2011.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">CHERRY, D. Microsoft SQL Server: La soluci&oacute;n de  secuenciaci&oacute;n., [En l&iacute;nea].  Ingenier&iacute;a Inform&aacute;tica, 2011, [Consultado el: 16 de octubre de 2015].  Disponible en: [http://technet.microsoft.com/es-es/magazine/hh407114.aspx].    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">COMPANIONI, Y. Reko: Una soluci&oacute;n de r&eacute;plica para  sistemas de bases de datos relacionales distribuidos. En: IV Simposio  Inform&aacute;tica y Comunidad. La Habana: 2012, 10 p.    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MICROSOFT DEVELOPER NETWORK. Microsoft SQL Server. [En l&iacute;nea]. Replicaci&oacute;n de SQL Server,2015a. [Consultado el: 30 de septiembre de 2015].  Disponible en: [http://msdn.microsoft.com/es-es/library/ms151198.aspx].    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MICROSOFT DEVELOPER NETWORK.  Microsoft SQL Server. [En l&iacute;nea]. Informaci&oacute;n general del modelo de publicaci&oacute;n de replicaci&oacute;n<em>, </em>2015b. [Consultado el: 5 de octubre de 2015] Disponible  en: [http://msdn.microsoft.com/es-es/library/ms152567.aspx].    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MICROSOFT DEVELOPER NETWORK.  Microsoft SQL Server. [En l&iacute;nea]. Create trigger  (Transact-SQL), 2015c. [Consultado el: 12 de octubre de 2015].  Disponible en: [http://msdn.microsoft.com/es-es/library/ms189799.aspx].    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MICROSOFT DEVELOPER NETWORK.  Microsoft SQL Server. [En l&iacute;nea]. Drop trigger  (Transact-SQL),2015d. [Consultado el: 15 de octubre de 2015].  Disponible en: [http://msdn.microsoft.com/es-es/library/ms173497.aspx].    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MICROSOFT DEVELOPER NETWORK.  Microsoft SQL Server. [En l&iacute;nea]. Enable trigger  (Transact-SQL), 2015e. [Consultado el: 15 de octubre de 2015].  Disponible en: [http://msdn.microsoft.com/es-es/library/ms182706.aspx].    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MICROSOFT DEVELOPER NETWORK.  Microsoft SQL Server. [En l&iacute;nea]. Disable trigger  (Transact-SQL), 2015f. [Consultado el: 15 de octubre de 2015].  Disponible en: [http://msdn.microsoft.com/es-es/library/ms189748.aspx].    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MICROSOFT SQL SERVER. Microsoft SQL Server. [En l&iacute;nea]. Introducci&oacute;n (replicaci&oacute;n), 2015a.  [Consultado el: 2 de octubre de 2015] Disponible en: [http://technet.microsoft.com/es-es/library/bb500346%28v=sql.105%29.aspx].    </font></p>     <!-- ref --><p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">MICROSOFT SQL SERVER. Microsoft SQL  Server. [En l&iacute;nea]. Agentes de  replicaci&oacute;n<em>, </em>2015b. [Consultado el: 7 de octubre de 2015].  Disponible en: [http://technet.microsoft.com/es-es/library/bb522755.aspx].    </font></p>     <p>&nbsp;</p>     ]]></body>
<body><![CDATA[<p name="_ENREF_1">&nbsp;</p>     <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Recibido: 10/04/2016    <br> Aceptado: 15/05/2016</font></p>      ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[ALOMALIZA]]></surname>
<given-names><![CDATA[W. C]]></given-names>
</name>
</person-group>
<source><![CDATA[Estudio comparativo de mecanismos de migración automática de datos a plataformas heterogéneas aplicado al control biométrico de la ESPOCH.]]></source>
<year>2008</year>
<publisher-loc><![CDATA[^eRiobamba Riobamba]]></publisher-loc>
<publisher-name><![CDATA[Escuela Superior Politécnica de Chimborazo]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[APINA]]></surname>
<given-names><![CDATA[A. E]]></given-names>
</name>
<name>
<surname><![CDATA[ROBLES]]></surname>
<given-names><![CDATA[R. F]]></given-names>
</name>
</person-group>
<source><![CDATA[Estudio de agentes en servicios web para la replicación de bases de datos heterogéneas caso práctico: Aplicación Satélite Contilibro]]></source>
<year>2011</year>
<publisher-loc><![CDATA[^eRiobamba Riobamba]]></publisher-loc>
<publisher-name><![CDATA[Escuela Superior Politécnica de Chimborazo]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[CHERRY]]></surname>
<given-names><![CDATA[D]]></given-names>
</name>
</person-group>
<source><![CDATA[Microsoft SQL Server: La solución de secuenciación]]></source>
<year>2011</year>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[COMPANIONI]]></surname>
<given-names><![CDATA[Y]]></given-names>
</name>
</person-group>
<source><![CDATA[Reko: Una solución de réplica para sistemas de bases de datos relacionales distribuidos.]]></source>
<year>2012</year>
<page-range>10 p</page-range><publisher-loc><![CDATA[^eLa Habana La Habana]]></publisher-loc>
<publisher-name><![CDATA[IV Simposio Informática y Comunidad]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MICROSOFT DEVELOPER NETWORK]]></surname>
</name>
</person-group>
<source><![CDATA[Microsoft SQL Server]]></source>
<year>2015</year>
<month>a</month>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MICROSOFT DEVELOPER NETWORK]]></surname>
</name>
</person-group>
<source><![CDATA[Microsoft SQL Server]]></source>
<year>2015</year>
<month>b</month>
</nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MICROSOFT DEVELOPER NETWORK]]></surname>
</name>
</person-group>
<source><![CDATA[Microsoft SQL Server]]></source>
<year>2015</year>
<month>c</month>
</nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MICROSOFT DEVELOPER NETWORK]]></surname>
</name>
</person-group>
<source><![CDATA[Microsoft SQL Server]]></source>
<year>2015</year>
<month>d</month>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MICROSOFT DEVELOPER NETWORK]]></surname>
</name>
</person-group>
<source><![CDATA[Microsoft SQL Server]]></source>
<year>2015</year>
<month>e</month>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MICROSOFT DEVELOPER NETWORK]]></surname>
</name>
</person-group>
<source><![CDATA[Microsoft SQL Server]]></source>
<year>2015</year>
<month>f</month>
</nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MICROSOFT SQL SERVER]]></surname>
</name>
</person-group>
<source><![CDATA[Microsoft SQL Server]]></source>
<year>2015</year>
<month>a</month>
</nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[MICROSOFT SQL SERVER]]></surname>
</name>
</person-group>
<source><![CDATA[Microsoft SQL Server]]></source>
<year>2015</year>
<month>b</month>
</nlm-citation>
</ref>
</ref-list>
</back>
</article>
