sistema analisis tiempos perforacion

38
1 INSTITUTO TECNOLÓGICO SUPERIOR DE POZA RICA Maestría en Sistemas Computacionales Empresa: Instituto Mexicano del Petróleo Sistema de Análisis de tiempos de Perforación (ATP-IMP) Autores: MCA Gustavo Alejandro Galindo Rosales LI Gerardo Aguilar Robledo POZA RICA DE HIDALGO, VERACRUZ SEPTIEMBRE DE 2014

Upload: gustavo-alejandro-galindo-rosales

Post on 11-Apr-2017

29 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Sistema analisis tiempos perforacion

1

INSTITUTO TECNOLÓGICO SUPERIOR DE POZA RICA

Maestría en Sistemas Computacionales

Empresa: Instituto Mexicano del Petróleo

Sistema de Análisis de tiempos de Perforación (ATP-IMP)

Autores: MCA Gustavo Alejandro Galindo Rosales

LI Gerardo Aguilar Robledo

POZA RICA DE HIDALGO, VERACRUZ SEPTIEMBRE DE 2014

Page 2: Sistema analisis tiempos perforacion

2

Tabla de contenido Introducción ............................................................................................................................................................................ 3

Capítulo I: “Planteamiento del Problema”.............................................................................................................................. 4

1.1 Antecedentes generales de la empresa ........................................................................................................................ 4

1.1.1 Misión ..................................................................................................................................................................... 6

1.1.2 Visión ...................................................................................................................................................................... 7

1.2 Organigrama del departamento ................................................................................................................................... 8

1.3 Planteamiento del problema ...................................................................................................................................... 10

1.4 Objetivos principales ................................................................................................................................................... 10

1.5 Beneficios del control de usuario................................................................................................................................ 10

1.6 Beneficios de la importación y exportación de información entre bases de datos .................................................... 11

1.7 Cronograma de Actividades ........................................................................................................................................ 11

Capítulo II: “Marco Teórico” ................................................................................................................................................. 12

2.1 Sistemas de Información ............................................................................................................................................. 12

2.2 Microsoft .NET Framework ......................................................................................................................................... 12

2.3 Visual Studio ................................................................................................................................................................ 13

2.4 Visual Basic .NET ......................................................................................................................................................... 14

2.5 Microsoft Access ......................................................................................................................................................... 14

2.6 SQL Server ................................................................................................................................................................... 15

2.7 Programación Orientada a Objetos ............................................................................................................................ 16

2.8 Objeto DataSet ............................................................................................................................................................ 17

Capitulo III “Aplicación y Resultados” ................................................................................................................................... 18

3.1 Solución del problema ................................................................................................................................................ 18

3.2 Resultados ................................................................................................................................................................... 34

3.3 Conclusiones ............................................................................................................................................................... 37

Bibliografía........................................................................................................................................................................... 38

Page 3: Sistema analisis tiempos perforacion

3

Introducción En la actualidad, los sistemas de información, ya sean Web o de Escritorio, fungen como una parte

esencial para el mejor manejo y uso de la información que las empresas generan o utilizan para

operar. A su vez, las aplicaciones tienen una constante evolución por lo que es necesario que tengan

una compatibilidad para que más de un usuario pueda hacer uso de ellas. Derivado de esta

característica, es necesario tener un control de las acciones que se realizan en la base de datos, así

entonces es necesario generar la programación necesaria para agregar el usuario y la fecha en que

se realiza algún movimiento en la base de datos.

Otro aspecto muy importante de las aplicaciones de escritorio es la magnitud del tamaño de esta, es

decir, conforme el paso del tiempo, las empresas continúan generando información y se llega al

momento en el que ya no es tan simple el almacenamiento, se requiere de un espacio dedicado

mucho mayor al de, por ejemplo, un solo archivo de Microsoft Access. Para lograr esto es que se

deben generar las rutinas que permitan realizar una sincronización de información con un equipo

servidor y que utilice un motor de base de datos de mayor soporte.

La organización del trabajo es la siguiente: en el capítulo 1 se mostraran los antecedentes de la

empresa, como su misión y visión así como un organigrama del área donde se realizó el proyecto. El

capítulo 2 se enlista todos los conceptos teóricos que están relacionados con el contenido de la

Aplicación y Resultados. Finalmente el capítulo 3 muestra los métodos y códigos empleados para el

desarrollo de los objetivos del proyecto.

Page 4: Sistema analisis tiempos perforacion

4

Capítulo I: “Planteamiento del Problema” 1.1 Antecedentes generales de la empresa

Como consecuencia de la transformación industrial del país y de la necesidad de incrementar la

tecnología relacionada con el desarrollo de la industria petrolera, petroquímica básica, petroquímica

derivada y química, el 23 de agosto de 1965 fue creado el Instituto Mexicano del Petróleo (IMP).

En el decreto que se publicó en el Diario Oficial el 26 de agosto de 1965, se establecen como

objetivos del IMP:

• la investigación científica básica y aplicada.

• el desarrollo de disciplinas de investigación básica y aplicada.

• la formación de investigadores.

• la difusión de los desarrollos científicos y aplicación en la técnica petrolera.

• la capacitación de personal obrero que pueda desempeñar labores en el nivel subprofesional,

dentro de las industrias petrolera, petroquímica básica, petroquímica derivada y química. A más de

cuatro décadas, el IMP sigue cumpliendo con los objetivos que le dieron vida.

El IMP nació por iniciativa del entonces director general de Pemex, Jesús Reyes Heroles, quien

reconoció que la planeación y el desarrollo de la industria petrolera deberían ser congruentes con

las necesidades de una economía mixta. Por esa razón, consideró necesario fomentar la

investigación petrolera y formar recursos humanos que impulsaran el desarrollo de tecnología propia.

En respuesta a esta exigencia, el gobierno federal decidió crear un “organismo descentralizado de

interés público y preponderante científico, técnico, educativo y cultural, con personalidad jurídica y

patrimonio propios, cuya función será buscar la independencia científica y tecnológica en el área

petrolera”. De esa forma, desde 1965, el Instituto Mexicano del Petróleo ha contribuido al desarrollo

del país, mediante la formación de recursos humanos y la creación de tecnología propia.

Page 5: Sistema analisis tiempos perforacion

5

Una vez que se definieron los programas y se avanzó en la construcción de las instalaciones, se

nombró como primer director general al ingeniero Javier Barros Sierra, quien tomo posesión el 31 de

enero de 1966, fecha en la que se instaló también el Consejo Directivo, presidido por el licenciado

Jesús Reyes Heroles. Mes y medio después, el 17 de marzo, se inauguraron las instalaciones del

IMP, que inició sus actividades con 300 empleados y cuatro edificios para labores de investigación y

administración.

Con el ingeniero Bruno Mascanzoni Fabri (director general de 1970 a 1978) se propició el desarrollo

científico y tecnológico en diversas áreas de la industria petrolera. El IMP comenzó el registro de sus

primeras patentes, alcanzó la comercialización de sus primeros resultados e inició proyectos

mancomunados con empresas extranjeras.

En 1977, se acordó que las entidades de la administración pública paraestatal se agruparan por

sectores, con el fin de que sus relaciones con el Ejecutivo Federal se realizaran mediante una

secretaria de Estado o departamento administrativo. El IMP quedó agrupado en el sector industrial

mediante la Secretaría de Patrimonio y Fomento Industrial.

Bajo la dirección del ingeniero José Luis García Luna (1982-1988), se inició la descentralización de

sus actividades hacia otros puntos del país y se construyó el Parque Industrial La Reforma, que

ahora alberga importantes laboratorios.

El 29 de abril de 1982 se creó la zona Noroeste, como imperativo para impulsar la promoción de los

servicios tecnológicos del instituto y ampliar su mercado, esencialmente en los estados de Nuevo

León y Coahuila.

Fue en el periodo del ingeniero Manzanilla Sevilla cuando se transformó la Ley Orgánica de Pemex y

se optó por separar las tareas industriales y comerciales de la paraestatal. Con ello surgieron Pemex

Exploración y Producción; Pemex Refinación; Pemex Gas y Petroquímica Básica; Pemex

Petroquímica, de carácter técnico, industrial y comercial, con personalidad jurídica y patrimonio

propios.

Page 6: Sistema analisis tiempos perforacion

6

Durante los años 1996 y 2005, bajo la gestión de Gustavo Chápela Castañares, la institución tenía

dos objetivos fundamentales; la construcción de una masa crítica de investigación y el desarrollo de

proyectos estratégicos en áreas como yacimientos naturalmente fracturados, transporte de

hidrocarburos, procesamiento de combustibles limpios, profundas, optimización, protección

ambiental y seguridad industrial.

Dirección Regional Norte (Poza Rica)

Dirige los proyectos de aplicación industrial con un enfoque de alineación a PEMEX basado en el

suministro de valor, vigilando la rentabilidad del negocio.

La Dirección Regional Norte con sede en Poza Rica, Veracruz, comprende a las entidades

federativas de: Aguascalientes, Baja California, Baja California Sur, Coahuila, Chihuahua, Durango,

Jalisco, Nayarit, Nuevo León, San Luis Potosí, Sinaloa, Sonora, Tamaulipas y Zacatecas. Queda

comprendido dentro de la esfera de competencia de esta Dirección Regional, la entidad federativa de

Veracruz, con excepción de los municipios que expresamente se consideran para la competencia de

la Dirección Regional Sur.

1.1.1 Misión Transformar el conocimiento en tecnología y servicios de valor para la industria petrolera.

Page 7: Sistema analisis tiempos perforacion

7

1.1.2 Visión Ser un centro público de investigación de clase mundial con personal reconocido, con tecnologías y

servicios que contribuyen al desarrollo de la industria petrolera.

Esta visión implica que:

• los resultados de la investigación de desarrollo tecnológico con orientación de negocios son

aplicados por la industria petrolera. Algunos incluso se utilizan en el ámbito internacional.

• el conjunto de productos y servicios que ofrece impacta directamente en la cadena de valor de

la industria petrolera.

• proporciona soluciones integrales por la sinergia lograda entre las diferentes especialidades

del IMP.

• cuentan con centros regionales con infraestructura de vanguardia, que facilita la interacción

con la industria petrolera.

• son una comunidad comprometida, capacitada y reconocida; suficiente para contribuir al

desarrollo tecnológico de la industria petrolera.

• son una organización sustentable técnica y financieramente.

Page 8: Sistema analisis tiempos perforacion

8

1.2 Organigrama del departamento El presente proyecto de estancia academica se desarrolló en el Instituto Mexicano del Petróleo, en la

Dirección Regional Norte en el área de Exploración y Producción, en el departamento de Modelos y

Sistemas de Información.

Instituto Mexicano del Petróleo

DIRECCIÓN REGIONAL NORTE

EXPLORACIÓN Y PRODUCCIÓN

DEPARTAMENTO: MODELOS Y SISTEMAS DE INFORMACION.

Fig.1 Organigrama del departamento Modelo y Sistemas de Información

Ing. David Silva Santiago

Jefe de proyecto

Ing. Enrique Barrón Cordero

Especialista 1

Ing. Javier Bravo Reyes

Especialista 2

Ing. Patricia Fernández Nicolás

Especialista 3

Page 9: Sistema analisis tiempos perforacion

9

Responsable Descripción

Jefe de

Proyecto

• Interviene en las negociaciones con el cliente, a fin de detectar sus

necesidades.

• Seguimiento de programas y avances de costos e ingresos del proyecto.

• Seguimiento de calidad del proyecto.

• Establece comunicación con el cliente

• Coordina el personal a su cargo.

• Validación técnica de resultados.

• Revisa y aprueba en forma periódica los entregables del proyecto.

• Entrega de resultados para revisión y aceptación del cliente.

• Gestión administrativa del proyecto.

Especialistas 1

y 2

(Levantamiento,

captura de

información e

integración de

paquetes de

tecnología del

Proceso)

• Levantamiento de información técnica en campo de instalaciones de manejo

superficial de producción.

• Llenado de formatos técnicos de LEINER.

• Recopilación, organización y captura de la información técnica levantada para

su inclusión en el sistema LEINER.

• Elaboración de diagramas en AutoCAD para integración al sistema LEINER.

• Apoyo en la integración de Paquetes de Tecnología del Proceso.

• Soporte técnico en actividades técnico/operativas en instalaciones de

producción.

Especialista 3

(Mantenimiento,

soporte técnico

al software e

Integración de

información)

• Mantenimiento y soporte técnico al sistema.

• Asistencia técnica y transferencia tecnológica del sistema, en aspectos tales

como operación, estructura de base de datos, espacios físicos, procesos,

instalación y código de aplicación.

• Integración de información al sistema.

• Realización de pruebas integrales que simulen la operación normal de la

aplicación.

• Validación de información técnica, diagramas y multimedia.

Page 10: Sistema analisis tiempos perforacion

10

Responsable Descripción

• Corrección de fallas detectadas en la operación.

1.3 Planteamiento del problema Se requiere tener un control de todas las operaciones realizadas en la base de datos, ya que el

sistema tendrá más de un usuario y es una necesidad tener una administración detallada de esta

para tener un control sobre la información.

La base de datos local con la que operan los usuarios, está hecha en Microsoft Access y a medida

de que captura más información se corre el riesgo de perderla, esto debido a las limitaciones y poca

seguridad que tiene. Es por esto que se empleara una réplica de la estructura de la base de datos en

Microsoft SQL Server 2012 y se realizara la programación para sincronizar los datos de la base de

datos de Access en este.

1.4 Objetivos principales • Realizar la programación adecuada para el control de cambios y de acciones ejecutadas a los

campos de las distintas tablas, estas acciones contemplan: inserciones, modificaciones y

eliminaciones.

• A su vez, se analizará y programará los elementos necesarios para poder sincronizar la base

de datos local de la aplicación con una base de datos centralizada en un servidor, esto cómo

uno de los alances primordiales del proyecto.

1.5 Beneficios del control de usuario El desarrollo de este módulo permitirá a los administradores del sistema conocer la fecha y el usuario

que realizo la última modificación a determinada tabla(s), esto con la finalidad de obtener un detalle

más específico de la razón de lo escrito en alguno de los campos de la tabla. Así como también

brindara información detallada sobre las modificaciones realizadas a la Base de Datos.

Page 11: Sistema analisis tiempos perforacion

11

1.6 Beneficios de la importación y exportación de información entre bases de datos Este sistema utiliza una Base de Datos Microsoft Access la cual tiene la desventaja de ser inestable

cuando se cuenta con grandes cantidades de datos en sus tablas, debido a la anterior, es necesario

tener un espacio de mucha mayor capacidad dedicado al almacenamiento de esta información por lo

cual es necesario hacer uso de un servidor que cuente con el motor de Base de Datos SQL Server.

A su vez, al contar con un servidor los usuarios tendrá la posibilidad de guardar su información en un

lugar aparte sin correr el riesgo de perder todo por algún problema con el archivo. También será

posible que los demás usuarios del sistema puedan descargar información de uno o más pozos,

actualizar lo necesario y volver a cargar los datos modificados con lo más reciente.

1.7 Cronograma de Actividades ACTIVIDADES MES 1 MES 2

Implementación de mecanismos para la gestión de usuarios en acciones de eliminación de registros.

P

R

Agregar datos de usuario que realice inserciones de información a cualquiera de las tablas que pueden ser inserciones y/o modificaciones.

P

R

Desarrollo de mecanismos para la sincronización de base de datos local (standalone) con base de datos en servidor

P

R

Pruebas de código P

R

Corrección de errores

P

R

Page 12: Sistema analisis tiempos perforacion

12

Capítulo II: “Marco Teórico” 2.1 Sistemas de Información Son aquellos sistemas que se encargan de manera específica de procesar tanto las transacciones

de información provocadas por las interacciones formales entre el entorno y la organización como las

transacciones generadas en el seno de la organización.

Así mismo el (SIT) procesa las transacciones propias de un proceso logístico: pedidos, facturas,

despachos, órdenes de compra, devoluciones, lista de empaque, pagos, entre otros. Además los

sistemas transaccionales gerencian modelos de reposición, de compra y de ruteos, todo esto

actividad rutinaria de la función logística.

De este modo acota entre sus principales características:

a) A través de éstos suelen lograrse ahorros significativos de mano de obra, debido a que

automatizan tareas operativas de la organización.

b) Con frecuencia son el primer tipo de Sistemas de Información que se implanta en las

organizaciones. Se empieza apoyando las tareas a nivel operativo de la organización.

c) Son intensivos en entrada y salid de información; sus cálculos y procesos suelen ser simples y

poco sofisticados. (Cedeño, 2010)

2.2 Microsoft .NET Framework Programa informático que permite a un usuario utilizar una computadora con un fin específico. Las

aplicaciones son parte del software de una computadora, y suelen ejecutarse sobre el sistema

operativo.

Page 13: Sistema analisis tiempos perforacion

13

Una aplicación de software suele tener un único objetivo: navegar en la web, revisar correo, explorar

el disco duro, editar textos, jugar (un juego es un tipo de aplicación), etc. Una aplicación que posee

múltiples programas se considera un paquete.

Son ejemplos de aplicaciones Internet Explorer, Outlook, Word, Excel, WinAmp, etc.

Características de las aplicaciones

• En general, una aplicación es un programa compilado (aunque a veces interpretado), escrito

en cualquier lenguaje de programación.

• Las aplicaciones pueden tener distintas licencias de distribución como ser freeware,

shareware, trialware, etc. Para más información ver: Licencias de software.

• Las aplicaciones tienen algún tipo de interfaz, que puede ser una interfaz de texto o una

interfaz gráfica (o ambas).

También hay que destacar que la distinción entre aplicaciones y sistemas operativos muchas veces

no es clara. De hecho, en algunos sistemas integrados no existe una clara distinción para el usuario

entre el sistema y sus aplicaciones. (Severino, 2012)

2.3 Visual Studio Visual Studio es un conjunto completo de herramientas de desarrollo para la generación de

aplicaciones web ASP.NET, Servicios Web XML, aplicaciones de escritorio y aplicaciones móviles.

Visual Basic, Visual C#y Visual C++ utilizan todos el mismo entorno de desarrollo integrado (IDE),

que habilita el uso compartido de herramientas y hace más sencilla la creación de soluciones en

varios lenguajes. Asimismo, dichos lenguajes utilizan las funciones de .NET Framework, las cuales

ofrecen acceso a tecnologías clave para simplificar el desarrollo de aplicaciones web ASP y

Servicios Web XML.

Visual Studio 2010 incorpora nuevas características mejoradas que hacen que todo el proceso de

desarrollo sea más sencillo, desde el diseño a la implementación. Personalice su área de trabajo

mediante la compatibilidad con varios monitores. Cree aplicaciones enriquecidas para SharePoint y

la Web. Tome como objetivo varias versiones de .NET Framework con la misma herramienta.

Page 14: Sistema analisis tiempos perforacion

14

Elimine el temido problema de no poder reproducir gracias a IntelliTrace y mucho más. (García,

2012)

2.4 Visual Basic .NET Microsoft ha renovado VB y añadido características completas para la programación orientada a

objetos. El nuevo lenguaje VB, Visual Basic NET (VB.NET o), le permite hacer todo lo que se puede

hacer con VB, aunque del mucho más fácilmente. Si usted es un programador de VB con

conocimiento de otros lenguajes orientados a objetos, como C ++ o Smalltalk, entonces te encantará

la nueva sintaxis que viene junto con VB.NET. Si usted es un programador de VB sin el conocimiento

de otros lenguajes orientados a objetos, usted se sorprenderá por la nueva sintaxis VB.NET al

principio, pero te darás cuenta de que la nueva sintaxis simplifica tu vida como programador.

Además del apoyo de estilo VB desarrollo rápido de aplicaciones (RAD), VB.NET es un lenguaje

modernizado que le da acceso total a la NET Framework. El compilador de VB.NET genera

metadatos y código IL, haciendo que la lengua un ciudadano igual a la de C # o C ++ administrada. A

diferencia de la versión VB antes de VB6, no habrá intérprete en VB.NET, así que no debe haber

argumentos violentos sobre problemas de rendimiento de VB frente a otro idioma.

Quizás la característica más potente es que ahora usted puede escribir interfaces y clases que son

muy similares a las escritas en otros idiomas NET. La nueva sintaxis permite heredar de clases base,

implementa las interfaces, anula las funciones virtuales, crear una clase base abstracta, y así

sucesivamente. Además, también soporta el manejo de excepciones exactamente como hace C # y

C Managed ++, haciendo mucho más fácil el manejo de errores. (Thai, 2003)

2.5 Microsoft Access Microsoft Access es sólo una parte de la estrategia de producto de gestión de datos global de

Microsoft. Como todas las buenas bases de datos relacionales, que le permite vincular información

relacionada easily-- por ejemplo, datos de clientes y para que entre. Pero Access 2010 también

complementa otros productos de base de datos, ya que tiene varias características de conectividad

de gran alcance. Como su nombre lo indica, Access puede trabajar directamente con datos de otras

fuentes, incluyendo muchos programas de bases de datos para PC más conocidos (como dBASE),

con muchas bases de datos en el escritorio de SQL (Structured Query Language), en los servidores,

Page 15: Sistema analisis tiempos perforacion

15

en los miniordenadores o en mainframes, y con los datos almacenados en los servidores web de

Internet o intranet. El acceso también es totalmente compatible con Microsoft ActiveX Tecnología,

por lo que una aplicación de Access puede ser un cliente o un servidor para el resto de 2010

aplicaciones del sistema Microsoft Office, como Word, Excel, PowerPoint, Outlook, Publisher y

OneNote.

Access proporciona un sistema de desarrollo de aplicaciones muy sofisticadas para el sistema

operativo Microsoft Windows. Esto ayuda a construir aplicaciones de forma rápida, cualquiera que

sea el origen de datos. De hecho, usted puede construir aplicaciones sencillas mediante la definición

de formularios e informes basados en los datos y la vinculación a continuación con algunas macros

de declaraciones de Microsoft Visual Basic; no hay necesidad de escribir código complejo en el

sentido clásico de la programación. Debido a que Access utiliza Visual Basic, puede utilizar el mismo

conjunto de competencias con otras aplicaciones en el sistema Microsoft Office o con Visual Basic.

(Conrad, 2010)

2.6 SQL Server Microsoft SQL Server. Es un sistema para la gestión de bases de datos creado por Microsoft, el

mismo se basa en el modelo relacional. SQL Server utiliza como lenguajes de consulta T-SQL y

ANSI SQL.

Microsoft SQL Server revoluciona el concepto de Base de datos para la Empresa. Reúne en un sólo

producto la potencia necesaria para cualquier aplicación empresarial crítica, junto con unas

herramientas de gestión que reducen al mínimo el coste de propiedad. Con Microsoft SQL Server, la

empresa tiene todo de serie.

Dentro de sus características fundamentales se encuentran:

• Soporte de transacciones.

• Escalabilidad, estabilidad y seguridad.

• Soporta procedimientos almacenados.

• Incluye también un potente entorno gráfico de administración, que permite el uso de

comandos DDL y DML gráficamente.

Page 16: Sistema analisis tiempos perforacion

16

• Permite trabajar en modo cliente-servidor, donde la información y datos se alojan en el

servidor y los terminales o clientes de la red sólo acceden a la información.

• Además permite administrar información de otros servidores de datos. (Nielsen, 2009)

2.7 Programación Orientada a Objetos Programación orientada a objetos (POO) es la práctica de crear una arquitectura de software que

permite la flexibilidad a través del diseño modular. Un programador que está orientado a objetos no

es necesariamente uno que es un codificador más avanzado, pero que quien elige ser codificador

más estratégico, y que se adhiere a los principios de la programación orientada a objetos. POO no

es un lenguaje; es la práctica de la arquitectura de y el proceso de pensamiento detrás de él que

conduce a aplicaciones y lenguajes están orientados a objetos, tales como ActionScript (AS) 3.0

AS 3.0 fue construido como un lenguaje orientado a objetos para reflejar el modelo mental de un

programador que conozca los beneficios de romper el código en una serie de objetos que se envían

mensajes entre ellos. Pero muchos de los que optar por desarrollar con AS 3.0 no utilicen POO. Esto

es debido a la naturaleza un tanto desalentadora de programación orientada a objetos, así como el

tiempo necesario para aprender. AS 3.0 está destinado a apoyar el desarrollo de la arquitectura

flexible y el uso de programación orientada a objetos puede ayudar a evitar que el código

inmanejable. Arquitectura flexible es más fácil modificar porque los objetos que componen la

aplicación tienen límites bien definidos, lo que simplifica la sustitución de uno de los objetos con los

que trabaja. Por lo tanto, es beneficioso para codificar con un proceso de pensamiento orientado a

objetos.

Programación de procedimiento, que es un método lineal de desarrollo, a menudo culmina en líneas

de código que no tienen separación de comportamientos de tren de pensamiento. El lenguaje se

convierte en nada más que una serie de rutinas y subrutinas. Programación de procedimiento puede

funcionar bien si usted es el único desarrollador de un proyecto, ya que usted está familiarizado con

su código. Sin embargo, cuando más programadores están involucrados, puede ser engorroso para

que se familiaricen con los otros de código y tamizar a través de las líneas en las que un cambio que

hay que realizar. (Smith, 2011)

Page 17: Sistema analisis tiempos perforacion

17

2.8 Objeto DataSet El DataSet puede ser visto como una vista en memoria de la base de datos. Puede contener varios

objetos DataTable y DataRelation. Con las versiones anteriores de ADO, lo más cerca que podía

llegar a esta funcionalidad tiene que intercambiar datos con una cadena de objetos Recordset.

Cuando la aplicación cliente recibe este conjunto de registros encadenados, que puede conseguir

cada uno de los conjuntos de registros a través NextRecordset (); Sin embargo, no hay manera de

describir la relación entre cada uno de los conjuntos de registros en la cadena. Con ADO.NET, los

desarrolladores pueden navegar y manipular la colección de tablas y sus relaciones.

Como se mencionó anteriormente, los conjuntos de datos ADO.NET implican desconectados porque

se orienta hacia una arquitectura distribuida. Dado que el DataSet está desconectado, se debe

proporcionar un modo de seguimiento de los cambios a sí mismo. El DataSet proporciona un número

de métodos para que todos manipulación de datos hecho al conjunto de datos Cabe fácilmente

reconciliarse con la base de datos real (o la fuente de datos) en un momento posterior. Ellos

incluyen: HasChanges(), HasErrors, GetChanges(), AcceptChanges() y RejectChanges(). Puede

utilizar estos métodos para comprobar los cambios que han sucedido al DataSet, inspeccionar los

cambios de los errores, y luego aceptar o rechazar los cambios. Si desea comunicar los cambios en

el almacén de datos back-end (que suele ser el caso), le debe hacer una solicitud al DataSet para

obtener una actualización.

El DataSet está diseñado para beneficiar a las aplicaciones web empresariales, que están

desconectados de la naturaleza. No sabe que los datos en el back-end han cambiado hasta que

haya actualizado los registros que estaba editando o realizado cualesquiera otras tareas que

requerían conciliación de datos. (Thai, 2003)

Page 18: Sistema analisis tiempos perforacion

18

Capitulo III “Aplicación y Resultados” 3.1 Solución del problema Después del análisis de todas las posibles opciones para lograr los objetivos planteados al principio

de este informe, los métodos implementados fueron los siguientes:

Control de Operaciones realizadas por el usuario:

El objetivo final es agregar en la base de datos, el nombre de usuario y la fecha en la que realizo

algún tipo de acción en la tabla afectada. Para lograr esto, se modificaron en primera la instancia

todas las tablas que requieren tener el control de usuarios, agregando los campos Usuario de tipo

Texto y Fecha de tipo Fecha. Posteriormente se modificó el objeto Dataset que es el encargado de

realizar todas las operaciones, agregando los campos de Usuario y Fecha que hacían falta como se

ilustra en la figura 2:

Fig. 2 Cambios realizados al objeto Dataset

Una vez realizada esta acción se localizaron todos los códigos en donde se actualizara la base de

datos mediante el DataSet y se agregaron los valores de los campos faltantes al objeto que

representa una nueva fila de la tabla en cuestión, como se muestra en la figura 3:

Page 19: Sistema analisis tiempos perforacion

19

Fig.3 Implementación de código de control de usuarios

Esta acción se repitió en todos los formularios que tienen interacción con la base de datos, el

resultado fue satisfactorio tras las pruebas realizadas los cuales son:

• Actividades Programadas

• Actividades Reales

• Geometría

• Datos generales del Pozo

• Catálogos

• Columna Geológica

Paralelamente a esta programación, también se realizó el control de eliminaciones que se almacena

en una tabla independiente, agregando un query de inserción al objeto Dataset, el cual se ejecuta

cada vez que el usuario elimina un dato. Este objeto requiere de un nombre de tabla, la fecha, el

usuario que ejecuto la eliminación y una breve descripción (Ver fig. 4).

Page 20: Sistema analisis tiempos perforacion

20

Fig. 4 Control de Eliminaciones

Sincronización con base de datos central

La siguiente de las acciones a ejecutarse es la sincronización de las bases de datos. Esto

comprende la importación de datos desde el servidor y el guardado de información en el servidor.

ANALISIS DE CASOS DE SINCRONIZACIÓN DE LA BASE DE DATOS LOCAL CON SERVIDOR

Carga = Copiar información al servidor

Descarga = Copiar información a la base de datos local

1.- Carga de información de pozo

Para usuario escritura:

• Actividades Reales y Programadas

• Información general del Pozo

• Geometría Real y Programada

• Columna Geológica

Para usuario administrador:

• Actividades Reales y Programadas

• Información general del Pozo

• Geometría Real y Programada

• Columna Geológica

Page 21: Sistema analisis tiempos perforacion

21

• Catálogos

2.- Descarga de información de pozo.

Usuario escritura y Administrador:

• Actividades Reales y Programadas

• Información general del Pozo

• Geometría Real y Programada

• Columna Geológica

• Catálogos

Para usuario de lectura, se podrá realizar la descarga pero a su vez, al cerrar la aplicación, esta se

eliminara de la base de datos local.

3.- Carga de información de Catálogos: Solo usuario Administrador.

4.- Concurrencia de 2 o más usuarios cargando/descargando información.

5.- Conexión repentinamente perdida

Acción: Haciendo uso de transacciones, realizar un rollback para no copiar información incompleta.

6.- Notificación de aproximación al límite de tamaño de la BD (definido previamente)

7.- Apagones, bloqueos de la aplicación.

8.- Usuarios puedan calificar el mismo pozo en registros diferentes e incluso los mismos registros.

9.- Considerar copiado de uno o más pozos.

Usuario con autenticación SQL

Para poder operar la base de datos del servidor fue necesario crear un usuario con autenticación,

esto con la finalidad de no utilizar el usuario “sa” debido a que es el administrador total del servidor.

Los datos son:

Page 22: Sistema analisis tiempos perforacion

22

Usuario (Login): Desarrollo_IMP

Contraseña: IMP2014

En caso de que se desee cambiar el nombre de usuario, se deberá crear un nuevo usuario; esta

operación se debe realizar con el usuario “sa” para poder otorgar los permisos correspondientes al

nuevo usuario para la base de datos ATP_IMP. Esto se puede realizar desde el SQL Server

Management Studio, los permisos otorgados al usuario se describen en las siguientes imágenes:

Propiedades del Login:

Estos permisos son los básicos para poder tener acceso a la BD más sin embargo aún sin permisos

para visualizar los objetos contenidos en ella. Se asignan haciendo clic con el botón derecho en el

login deseado en el sección Security>Logins del servidor (ver Fig. 5).

Fig. 5 Propiedades del Login

Page 23: Sistema analisis tiempos perforacion

23

Permisos sobre la BD:

Son todos los relacionados con la ejecución de sentencias SQL en los datos, se deben seleccionar

uno a uno (fig. 6):

Los permisos necesarios son los siguientes:

• Select

• Insert

• Update

• Delete

• Execute

• Connect

Fig. 6 Permisos sobre la base de datos

Page 24: Sistema analisis tiempos perforacion

24

Configuración de la conexión al servidor

Dada la posibilidad de que el servidor pueda cambiar de dirección IP, se generó un módulo de

configuración del servidor al que se puede accesar como se muestra en la figura 7

Fig.7 Acceso a la configuración de conexión al servidor

En este menú se debe escribir la dirección IP, usuario y contraseña de autenticación tipo SQL que

tenga los privilegios necesarios para operar la base de datos del servidor. Esta opción estará

disponible para todos los perfiles de usuario (fig. 8).

Page 25: Sistema analisis tiempos perforacion

25

Fig.8 Configuración de conexión al servidor

Una vez proporcionados los datos se realizara una prueba de conexión y la cadena de conexión

generada será almacenada en una variable global para su uso posterior en diferentes ocasiones.

Importación de datos.- El copiado de información del servidor a la base de datos local tendrá lugar en

el menú Archivo en la opción “Importar Información de Pozo desde el Servidor”. (fig. 9)

Fig. 9 Acceso al copiado de datos del servidor

Page 26: Sistema analisis tiempos perforacion

26

Si por algún motivo aún no se configura la conexión se mostrara una alerta informando que no fue

posible realizar la conexión y que se verifiquen los parámetros escritos para intentar nuevamente (fig.

10).

Fig. 10 Error al realizar la conexión al servidor.

Previo a la muestra de los pozos del servidor se verificará que la conexión a este tenga los

parámetros correctos, si es exitosa, se mostrara un formulario con el DataSet del Servidor, igual al

local, exceptuando las vistas, del cual se podrá seleccionar el pozo deseado (fig. 11).

Page 27: Sistema analisis tiempos perforacion

27

Fig. 11 Selección de pozo a importar del servidor

Tras seleccionar el pozo, se ejecuta UN MÉTODO para obtener la información de CADA TABLA de

información.

Cada método consiste en, utilizando una conexión, un comando y un adapter de la clase

System.Data.SqlClient, llenar un DataTable con TODAS las filas de datos de la tabla y pozo

especificados. Estos métodos abarcan la información de las tablas:

A) Pozo

B) Geometría

C) Actividades Programadas

D) Actividades Reales

E) Columna Geológica

Posterior a esto se declara una variable de tipo DataRow que será una nueva fila del DataSet y tabla

a la que se le importara información. Dicha variable almacenara en los campos del DataSet los

valores de cada columna del DataTable con la información del servidor. Por último se mostraran los

ProgressBar con el avance de la importación (fig.12).

Page 28: Sistema analisis tiempos perforacion

28

Fig.12 Progreso de importación de datos

Importación de información para perfil “Lectura”

La importación de información a la base de datos local será posible también para el perfil “Lectura”

sin embargo, esta no permanecerá guardada una vez que se cierre la aplicación.

Para lograr esto, se almacenaran en un arreglo de strings todos los pozos que hayan sido

importados, y antes de cerrar la aplicación se ejecutan los queries de eliminación de información

para todos los pozos contenidos en el arreglo.

Page 29: Sistema analisis tiempos perforacion

29

Fig.13 Opciones de exportación de da

Almacenar datos en el servidor (fig. 13)

Copiar todos los datos

Para comenzar el guardado de datos en el servidor, será posible hacerlo individualmente o varios

pozos a la vez que se podrán elegir del listbox. Una vez seleccionado el(los) pozo(s) deseado(s) la

ejecución de este método posiblemente se lograría mediante la clase SqlBulkCopy que pertenece a

la clase System.Data.SqlClient. Haciendo uso de una instancia de esta, es posible almacenar todos

los datos de un pozo determinada en un DataTable y pasarlos completamente a una tabla destino,

en este caso la del servidor. Esto siempre y cuando el pozo en cuestión no exista en el servido, de lo

contrario se ejecutaran las acciones que descritas en el Caso de Análisis de Sincronización.

Actualizar:

Para realizar esta acción será necesario comparar los valores de cada campo de cada tabla.

Posibles casos:

1.- En relación a fechas de inserción de una fila

1.1 Cuando las fechas de inserción a la base de datos local son posteriores a los que tiene

registrados en el servidor

1.2 Cuando las fechas de inserción de la BD local sea más antigua que las del servidor

Acción: advertir de copia de datos antiguos.

Page 30: Sistema analisis tiempos perforacion

30

1.3 Cuando las fechas de inserción de ambas bases sean iguales

2.- En relación a la cantidad de filas

2.1 Cuando las filas locales son mayores a las del servidor

Opciones: Sobrescribir, saltar registros y detener carga

Salta registros: Copiara solamente los registros que NO se encuentren en el servidor

Detener carga: Mandara un mensaje de advertencia de que todos los cambios en el servidor serán

descartados.

3.- Advertir a usuarios que está a punto de realizar modificaciones al servidor con información

antigua

4.- 2 usuarios modifiquen información de un mismo pozo el mismo día

Caso de Análisis de Sincronización

El usuario A carga 3 filas y guarda los datos en el servidor, posteriormente el usuario el B importa los

datos y BORRA una filas. Al guardar de nuevo, los datos que no se encuentren se deben borrar del

servidor.

Ejemplo gráfico y diagrama de flujo:

Paso 1: Usuario A carga información al servidor

Id_Pozo Cuenca …

Poza Rica 1 - …

Axochitl 2 - …

Soledad 110 - …

Id_Pozo Cuenca …

Page 31: Sistema analisis tiempos perforacion

31

Paso 2: Usuario B importa datos del servidor.

Id_Pozo Cuenca …

Paso 3: Usuario B elimina “X” cantidad de filas, agrega “Y” filas y guarda la información.

Id_Pozo Cuenca …

Poza Rica 1 - …

Axochitl 2 - …

Soledad 110 - …

Id_Pozo Cuenca …

Poza Rica 1 - …

Axochitl 2 - …

Soledad 110 - …

Humapa 1024 - …

Id_Pozo Cuenca …

Poza Rica 1 - …

Axochitl 2 - …

Soledad 110 - …

Page 32: Sistema analisis tiempos perforacion

32

Algoritmos de sincronización

Para efectuar la sincronización, se realizara la búsqueda de llaves primarias de la BD local en el

Servidor. Las que no se encuentren son las que se insertaran, de lo contrario, se actualizarán; al

terminar estas iteraciones, ahora se realizara la búsqueda de llaves primarias de la BD del Servidor

en la Local. Las que no se encuentran deberán ser

borradas (fig.14 y 15).

Fig. 14 Diagrama de flujo para importación de catálogos

Page 33: Sistema analisis tiempos perforacion

33

Fig. 15 Diagrama de flujo para sincronización de datos con el servidor

Page 34: Sistema analisis tiempos perforacion

34

3.2 Resultados Una vez realizadas las pruebas de código se observó como resultado que al agregar los datos de

usuario y fecha en cada fila nueva del objeto DataSet, estos se insertan satisfactoriamente en las

columnas de cada tabla. A continuación se muestran algunos ejemplos:

Actividades Programadas

Para cada fila que sea insertada en esta tabla se muestra el usuario que realizo la captura y la fecha en que se realizó. (Fig.16)

Fig.16 Control de usuarios en tabla Actividades Programadas

Columna Geológica

En cada registro de columna geológica tendrá el usuario y fecha que capturo sin importar sin son en fechas distintas. (fig. 17)

Fig.17 Control de usuarios en tabla Columna Geológica

Page 35: Sistema analisis tiempos perforacion

35

Almacenamiento de datos en masa:

El copiado de información se realiza tal cual este almacenado en la base de datos local al servidor teniendo seguridad en que se almacenan en una réplica de esta. (fig. 18)

Fig. 18 Copiado de información al servidor

Importación de datos:

Los datos almacenados en el servidor se pueden en masa de igual manera que se almacenan y a su vez se verifican que se cumplan todas las llaves primarias y foráneas. (fig. 19)

Fig. 19 Importación de datos generales de pozo

Los datos almacenados en el servidor se pueden en masa de igual manera que se almacenan y a su vez se verifican que se cumplan todas las llaves primarias y foráneas. (Fig. 20)

Page 36: Sistema analisis tiempos perforacion

36

Fig.20 Validación de datos importados

Page 37: Sistema analisis tiempos perforacion

37

3.3 Conclusiones El desarrollar aplicaciones de escritorio y/o web el objeto Dataset del Microsoft .NET Framework

provee múltiples opciones para realizar acciones en una base de datos, esto sin importar el motor

que se ocupe, ya sea SQL Server, Microsoft Access, MySQL u Oracle.

Uno de sus principales usos es la automatización de sentencias básicas como lo son INSERT,

SELECT, UPDATE y DELETE hacia las tablas, mismas que pueden ser modificadas por el usuario

para lograr las consultas más optimas de acuerdo a las necesidades del proyecto que se esté

desarrollando.

Es de suma importancia conocer el manejo de este objeto ya que permite tener una réplica de la

base de datos pero en memoria, permitiendo un mejor performance de la aplicación al momento de

ejecutar instrucciones SQL. A su vez, fomenta la práctica de la programación orientada a objetos ya

que cada tabla se vuelve un objeto y por ende cada una de sus columnas se vuelve objetos y su

programación es extensa pero muy funcional.

Desde el punto de objetivos del proyecto, fueron cumplidos satisfactoriamente ya que el sistema en

cuestión opera de manera correcta cumpliendo las expectativas del jefe del proyecto quedando como

punto para un trabajo futuro la programación de verificación de errores de inconsistencia de datos en

el servidor. Es de suma importancia en sistemas de información que serán utilizados por varios

usuarios se tenga un control de usuarios que ejecutan operaciones en la base de datos que permita

al(los) administrador(es) saber quién y cuándo fue la última vez que se afectó determinada tabla.

Finalmente, nos es satisfactorio profesionalmente haber podido participar en el desarrollo de esta

parte del proyecto al ing. David Silva Santiago, Jefe de Proyecto del área Modelos y Sistemas de

Información con quien esperamos en un futuro haya una nueva oportunidad de desarrollo

profesional.

Page 38: Sistema analisis tiempos perforacion

38

Bibliografía Cedeño, M. L. (2010). IMPLEMENTACIÓN DE UN SISTEMA AUTOMATIZADO QUE OPTIMICE LA

GESTIÓN DE LOS PROCESOS ADMINISTRATIVOS DEL ÁREA SERVICIOS MÉDICOS DE LA UNIVERSIDAD DE ORIENTE NÚCLEO MONAGAS. Maturin, Venezuela.

Conrad, J. (2010). Microsoft Access 2010 Inside Out. Custom Editorial, Inc.

García, J. C. (2012). Procedimiento para migrar aplicaciones web de ASP.NET Webforms a ASP.NET MVC. Antioquia.

Nielsen, P. (2009). Microsoft SQL Server 2008 Bible. Indianapolis, Indiana: Wiley Publishing Inc.

Severino, F. M. (2012). Desarrollo de una herramienta matemática como apoyo a la educación básica en el estado de Guerrero (México) utilizando Monodevelop con C#. Guerrero.

Smith, B. (2011). AdvancED ActionScript 3.0: Design Patterns. Apress.

Thai, T. (2003). .NET Framework Essentials. Sebastopol: O'Reilly & Associates, Inc.