Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MEMORIA
DE
ESTADA
GENERACIN 2012-2014
MECATRONICA
UTD
MEMORIA ESTADIA
Dictamen de Estada
MECATRONICA
UTD
MEMORIA ESTADIA
Agradecimientos
Primordialmente
agradezco
la
institucin
puesto
que
nos
brind
este
proyecto.
MECATRONICA
UTD
MEMORIA ESTADIA
Dedicatoria
Principalmente deseo dedicar esta memoria de estada a mi pareja Adriana
Elizabeth ya que sin su amor y su apoyo brindado no me hubiese sido posible reunir
la fortaleza para el desarrollo de este proyecto. A lo largo de este proyecto ella se ha
encontrado a mi lado brindndome las fuerzas necesarias para llevar a cabo este
proyecto.
Tambin deseo incluir a Dios puesto que nos brinda sabidura, amor y
paciencia, nos ayuda en los momentos ms difciles brindndonos valores que nos
fortalezcan
no
solo
como
trabajo
de
grupo,
sino
como
personas.
MECATRONICA
UTD
MEMORIA ESTADIA
Resumen
Esta memoria se realiz con la finalidad de presentar la investigacin para el
proyecto de implementacin del servicio de control remoto mediante conexiones
TCP. El proceso del control remoto se encuentra basado en el desarrollo de
aplicaciones web mediante programacin orientada a objetos. Por lo tanto esta
memoria presenta la metodologa realizada para crear un servicio de recepcin de
comandos remotamente va red. De igual manera tambin se aborda la problemtica
encontrada
para
la
implementacin
de
ambos
protocolos
ensamblados
MECATRONICA
UTD
MEMORIA ESTADIA
Abstract
This document was made to present the investigation for the project remote
control protocol for a web browser based in QTwebkit over the network. The process
of the remote control is based in the development of web applications using objectoriented programming.
Therefore this report aims to present the methodology employed to create a
reception command remotely via the network. Similarly, the problems encountered in
the implementation of both protocols assembled together also addresses as was the
development in programming the browser. Finally presents the last analysis through
the study conclusions and projections for future improvement.
MECATRONICA
UTD
MEMORIA ESTADIA
Tabla de Abreviaturas
RAM
TCP
STI
Servicios de Tecnologas de la
informacin
WWW
XHTML
HTML
POP
IMAP
HTTP
RFID
SMTP
ACK
Acknowledgement
SSL
X Windows System
MECATRONICA
UTD
MEMORIA ESTADIA
Contenido
Agradecimientos ................................................................................................................................ 3
Dedicatoria ........................................................................................................................................... 4
Resumen ............................................................................................................................................... 5
Abstract ................................................................................................................................................ 6
Tabla de Abreviaturas .......................................................................................................................... 7
Contenido ............................................................................................................................................. 8
Introduccin ....................................................................................................................................... 11
ndice de Tablas .................................................................................................................................. 12
ndice de Figuras ................................................................................................................................ 13
Captulo 1. Generalidades de la Empresa .............................................................................................. 14
1.1 Descripcin General de la Empresa.............................................................................................. 14
Nombre de la empresa: .................................................................................................................. 14
Direccin de la empresa: ................................................................................................................ 14
Telfono: ........................................................................................................................................ 14
Correo electrnico y pgina web: .................................................................................................. 14
Sector econmico en el cual sus actividades: ................................................................................ 14
Servicios o productos que sirve: .................................................................................................... 14
rea de la empresa en que realiz la estada: ............................................................................... 15
Asesor empresarial ......................................................................................................................... 15
1.2 Antecedentes ............................................................................................................................... 15
1.3 Descripcin general del proceso .................................................................................................. 16
1.4 Descripcin del rea de trabajo ................................................................................................... 16
MECATRONICA
UTD
MEMORIA ESTADIA
MECATRONICA
UTD
MEMORIA ESTADIA
Captulo V ............................................................................................................................................... 37
5.1 Resultados .................................................................................................................................... 37
Conclusiones .......................................................................................................................................... 40
Conclusin 1 ................................................................................................................................... 40
Conclusin 2 ...................................................................................... Error! Marcador no definido.
Conclucion 3 ...................................................................................... Error! Marcador no definido.
Conclusiones sobre el proyecto ......................................................................................................... 40
Trabajo futuro ................................................................................................................................ 42
Referencias ............................................................................................................................................. 43
Anexos .................................................................................................................................................... 45
Anexo 1 Cdigo Fuente SIMPLE BROWSER .................................................................................... 45
Anexo 2 Cdigo Fuente Servidor TCP. ............................................................................................ 48
10
MECATRONICA
UTD
MEMORIA ESTADIA
Introduccin
Esta
memoria
presenta
la
metodologa
empleada
para
obtener
el
11
MECATRONICA
UTD
MEMORIA ESTADIA
ndice de Tablas
Tabla 1 Comparativa entre navegadores WEB ......................................................... 32
12
MECATRONICA
UTD
MEMORIA ESTADIA
ndice de Figuras
13
MECATRONICA
UTD
MEMORIA ESTADIA
Nombre de la empresa:
Servicios de Tecnologas de Informtica de Durango.
Direccin de la empresa:
Scrates no. 214, Fraccionamiento Ftima, CP. 34060
Telfono:
(618)-4-55-18-34
14
MECATRONICA
UTD
MEMORIA ESTADIA
Asesor empresarial
Jorge David de Hoz Diego
Desarrollo e innovacin de sistemas
1.2 Antecedentes
Servicios de TI de Durango nace como una filial de Ateire en Mxico, que
cuenta con ms de 4 aos de experiencia en el campo de la tecnologa audiovisual.
Ateire Tecnologa y Comunicacin es una empresa con aos de experiencia en el
campo de la comunicacin audiovisual mediante dispositivos Digital Signage que
est participando en proyectos de importantes empresas y entidades de Espaa,
Mxico y Per; proporcionando soluciones integrales que generan beneficios
tangibles. La plantilla de trabajo est compuesta por profesionales calificados con
experiencia en diversos sectores:
15
MECATRONICA
UTD
MEMORIA ESTADIA
16
MECATRONICA
UTD
MEMORIA ESTADIA
17
MECATRONICA
UTD
MEMORIA ESTADIA
2.3 Justificacin
Debido a la necesidad de brindar un servicio de cartelera digital de mayor
calidad para los clientes se plantea la realizacin e implementacin de un control
remoto de contenidos ms inteligente y que responda al instante brindando as un
mayor soporte al cliente que le permita una gestin oportuna para sus necesidades
de informacin. Facilitando el uso de las herramientas para el usuario final mejorando
su experiencia en el uso de dispositivos inteligentes, basado en la implementacin de
aplicaciones web.
2.4 Alcances
Este proyecto se enfoca a la generacin y modificacin de la plataforma digital
de control para su gestin remota desde cualquier punto de manera inalmbrica por
medio de la red, todo esto aunado a una implementacin basada en cdigo fuente
del sistema funcional. El presente proyecto tendr una duracin aproximada de 4
meses durante los cuales se realizara el desarrollo completo del proyecto. El proceso
del proyecto se llevara a cabo dentro de la empresa en la cual se tendr la
18
MECATRONICA
UTD
MEMORIA ESTADIA
2.4.1 Limites
Las limitaciones para este proyecto estn establecidas por las aplicaciones
multimedia para las que fueron destinados los ttems digitales, adems que el
navegador solo se puede utilizar por la plataforma Raspberry Pi. Se prev que lo
usos de este proyecto sean solo para la finalidad para la cual se construy.
19
MECATRONICA
UTD
MEMORIA ESTADIA
20
MECATRONICA
UTD
MEMORIA ESTADIA
21
MECATRONICA
UTD
MEMORIA ESTADIA
22
MECATRONICA
UTD
MEMORIA ESTADIA
23
MECATRONICA
UTD
MEMORIA ESTADIA
Figura 3 Comparativa entre los diversos tipos de cdigo libre (Diazepam, 2012)
desde
otras
mquinas,
proporcionando
as
el
concepto
de
transparencia de red.
24
MECATRONICA
UTD
MEMORIA ESTADIA
25
MECATRONICA
UTD
MEMORIA ESTADIA
26
MECATRONICA
UTD
MEMORIA ESTADIA
27
MECATRONICA
UTD
MEMORIA ESTADIA
est diseado para llevar a cabo una revisin final, que se encarga de determinar si
el proyecto est listo para avanzar a la siguiente fase. Este modelo fue el primero en
originarse y es la base de todos los dems modelos de ciclo de vida.
La versin original fue propuesta por Winston W. Royce en 1970 y
posteriormente revisada por Barry Boehm en 1980 e Ian Sommerville en 1985.
(Cataldi, 1999)
Un ejemplo de una metodologa de desarrollo en cascada es:
1. Anlisis de requisitos.
2. Diseo del sistema.
3. Diseo del programa.
4. Codificacin.
5. Pruebas.
6. Verificacin.
7. Mantenimiento.
De esta forma, cualquier error de diseo detectado en la etapa de prueba
conduce necesariamente al rediseo y nueva programacin del cdigo afectado,
aumentando los costos del desarrollo. La palabra cascada sugiere, mediante la
metfora de la fuerza de la gravedad, el esfuerzo necesario para introducir un cambio
en las fases ms avanzadas de un proyecto. En la Figura 6 se muestra un esquema
del desarrollo en cascada.
28
MECATRONICA
UTD
MEMORIA ESTADIA
3.10 QT Framework
El trmino Qt hace referencia a una biblioteca multiplataforma ampliamente
usada para desarrollar aplicaciones con interfaz grfica de usuario, (qt-project.org,
2014) as como tambin para el desarrollo de programas sin interfaz grfica, como
herramientas para la lnea de comandos y consolas para servidores.
La biblioteca Qt es desarrollada como un software libre y de cdigo abierto a
travs de Qt Project, donde participa tanto la comunidad, como desarrolladores de
Nokia, Digia y otras empresas. Anteriormente, era desarrollado por la divisin de
software de Qt de Nokia, que entr en vigor despus de la adquisicin por parte de
Nokia de la empresa noruega Trolltech, el productor original de Qt, el 17 de junio de
2008. Qt es distribuida bajo los trminos de GNU Lesser General Public License (y
otras). Por otro lado, Digia est a cargo de las licencias comerciales de Qt desde
marzo de 2011.
Vctor Casas Ibarra
29
MECATRONICA
UTD
MEMORIA ESTADIA
30
MECATRONICA
UTD
MEMORIA ESTADIA
31
MECATRONICA
UTD
MEMORIA ESTADIA
Simple Browser
Compatibilidad Raspberry
Compatible
Compatible
HTML
Compatible
Compatible
Aplicaciones WEB
Funcionales
Posibles
Servicio TCP
No
No
Men Contextual
No
Si
32
MECATRONICA
Poco Cdigo
UTD
Si
MEMORIA ESTADIA
Si
Es necesario reescribir
Compatible QT
Si
4.3 Codificacin
El cdigo fuente se trabaj en la plataforma Qt Framework, la cual una vez
instalada se procedi a crear la primera instancia del programa del servidor TCP el
cual es mostrado en la figura 9 con un diagrama del flujo con la funcin del
programa.
33
MECATRONICA
UTD
MEMORIA ESTADIA
4.4 Implementacin
La realizacin de la aplicacin final fue necesario crear instancias dentro del
cdigo que llamen a las clases creadas, las cuales interactan, para ello se cre los
SLOTS con sus respectivas SIGNALS en la parte inferior se muestra la (figura 10) la
cual es un diagrama de flujo con los aspectos fundamentales para la realizacin del
cdigo.
Al realizar la programacin del sistema, el inicia como lo haca anteriormente
esperando que sea introducida una cadena de caracteres de manera manual, pero
ya con las nuevas instancias creadas inicio paralelamente (figura 10) el sistema de
conexin TCP. el cual fue visible desde la consola del usuario, de esta manera no se
inici desde el mismo equipo de la aplicacin ya que fue activada remotamente
gracias a las conexiones SSH del sistema Raspberry y del servidor TCP.
34
MECATRONICA
UTD
MEMORIA ESTADIA
35
MECATRONICA
UTD
MEMORIA ESTADIA
4.5 Verificacin
La verificacin y el correcto funcionamiento del sistema se realiz mediante la
conexin y la puesta en marcha del sistema completo. Primero se elaboraron la
compilacin de ambos cdigos dentro de la plataforma de trabajo QT Framework y
posteriormente se transferido a la plataforma Raspberry. Para la inicializar del web
Browser para crear una conexin SSH la cual es provista por PUTTY para acceder a
la plataforma Raspberry. Para la realizacin de verificacin de funcionamiento se
necesit enviarle cadenas de caracteres al servidor TCP. En la (Figura 11) se
muestra como se realiza la conexin entre Servidor TCP. la red de trabajo est
representada por el GATEWAY y el cliente es la computadora del cual se hizo el
requerimiento todo esto desde la aplicacin PUTTY y NETCAT.
36
MECATRONICA
UTD
MEMORIA ESTADIA
Captulo V
5.1 Resultados
Al desensamblar el cdigo fuente s pudo determinar cules eran las
instancias que realizan funciones a la hora de ejecutar el programa, estas instancias
son reconocidas por el programa como CLASES las cuales van directamente ligadas
dentro de la estructura del cdigo por medio de SIGNALS y SLOTS. Los SIGNALS
son seales que son emitidas durante la ejecucin del cdigo y estas actan como
una alarma o una llamada la cual es recibida por el SLOT este a su vez se comporta
como un recipiente dentro del cdigo a la espera de una seal que lo active
nuevamente. Para que estas caractersticas puedan actuar en conjunto es necesario
ligarlas entre s por medio de programacin de esta manera ningn SIGNAL ira a
ningn SLOT que no le corresponda.
Para lograr el cometido de que el navegador web reciba comandos
provenientes de la red, fue necesario primero crear una instancia que actuara de
servidor TCP. Para lo cual fue necesario programar una pequea aplicacin en lnea
de comandos la cual dirija las instrucciones hacia el servidor TCP., Al crear esa
instancia fue necesario ensamblar ambos cdigo en una sola aplicacin. Para esto
fue necesario trasplantar el programa bsico del servidor TCP. y por medio de
programacin orientada a objetos fue necesario crear dos clases totalmente iguales
dentro del cdigo principal del navegador para que estuviesen enlazados desde el
principio de la creacin del cdigo. El resultado fue satisfactorio permitiendo un
control remoto desde cualquier dispositivo (Figura 12) que fuese compatible con
PUTTY o NETCAT enviando una cadena de caracteres la cual era interpretada como
una direccin web y desplegada el contenido multimedia, de esta manera pudo
confirmarse que las aplicaciones se haban logrado fusionar entre s.
37
MECATRONICA
UTD
MEMORIA ESTADIA
38
MECATRONICA
UTD
MEMORIA ESTADIA
39
MECATRONICA
UTD
MEMORIA ESTADIA
Conclusiones
Conclusin
Al desensamblar el cdigo del navegador se pudo conocer y entender la
manera en que el programa se comunica internamente permitiendo entender las
instancias y clases con las cuales se componen. Con esto facilitando bastante el
trabajo de codificacin de los nuevos servicios implementados.
Fue necesario crear una aplicacin pequea por lo cual fue necesario
programarla en la plataforma QT. Al realizar las modificaciones de los cdigos se
pudo ir verificando poco a poco como se entrelazan las clases dentro de una
aplicacin. Al entender las necesidades de recepcin de comandos fue preciso crear
las instancias que se encargaran de escuchar los comandos. Con esto fue
necesario escribir desde cero una aplicacin que hiciera de servidor TCP. La cual se
encargara de hacer echo recibiendo cadenas de caracteres e imprimindolas en
pantalla.
Durante las pruebas de conexin hubo ciertos obstculos que impedan las
conexiones dentro de la red las cuales se deban a configuraciones erronas en las
FIREWALL, una vez solucionado esto se realizaron satisfactoriamente el despliegue
de los contenidos digitales. Gracias a la velocidad de las conexiones fueron
satisfactorios los resultados de las pruebas, creando un sistema eficiente.
40
MECATRONICA
UTD
MEMORIA ESTADIA
41
MECATRONICA
UTD
MEMORIA ESTADIA
Trabajo futuro
En base a los resultados obtenidos del proyecto actual la empresa propone un
proyecto paralelo al uso de la aplicacin generada basado en el uso de PLUGINS
incorporados a la aplicacin final del Browser generado con lo cual sera posible
extraer la informacin multimedia remotamente esto sera de gran utilidad debido a
que se generara una interfaz multimedia mucho ms eficiente e inteligente al
desplegar los contenidos. Con esto se podra generar otra estada dentro de la
empresa cubriendo los intereses mutuos para el estudiante, la universidad y el
corporativo.
42
MECATRONICA
UTD
MEMORIA ESTADIA
Referencias
Alegsa media commons. (10 de agosto de 2010). http://www.alegsa.com.ar. Recuperado el
28 de Noviembre de 2014, de http://www.alegsa.com.ar/Dic/aplicacion%20web.php
Berners, L. T. (15 de julio de 2013). http://www.w3c.es/Consorcio/. Recuperado el 16 de
Noviembre de 2014, de http://www.w3c.es/
Cataldi, Z. L. (12 de julio de 1999). Ingenieria De Software Educativo. Recuperado el 18 de
Noviembre de 2014, de http://www.iidia.com.ar:
http://www.iidia.com.ar/rgm/comunicaciones/c-icie99ingenieriasoftwareeducativo.pdf
Cellan Jones, R. (5 de 12 de 2014). http://www.bbc.co.uk. Obtenido de
http://www.bbc.co.uk/blogs/legacy/thereporters/rorycellanjones/2011/05/a_15_co
mputer_to_inspire_young.html
Diazepam. (08 de diciembre de 2012). http://blog.desdelinux.net/sobre-las-licencias-y-losperjuicios-al-codigo-abierto/. Recuperado el 16 de noviembre de 2014, de
http://blog.desdelinux.net/sobre-las-licencias-y-los-perjuicios-al-codigo-abierto/
Kanh, R. (1974). A Protocol for Packet Network Intercommunication. En R. Kanh, IEEE
Transactions on Communications (pgs. pp. 637-648.).
Lane , J. (08 de Junio de 2008). http://mosaic.uoc.edu. Recuperado el 15 de noviembre de
2014, de http://mosaic.uoc.edu/ac/le/es/m1/ud2/index.html
Lawler , R. (5 de 12 de 2014). http://www.engadget.com. Obtenido de
http://www.engadget.com/2012/02/29/raspberry-pi-credit-card-sized-linux-pcs-areon-sale-now-25-mo/
Lujan Mora, S. (2002). Programacin de aplicaciones web: historia, principios bsicos y
clientes web. En S. Lujan Mora, Programacin de aplicaciones web.
43
MECATRONICA
UTD
MEMORIA ESTADIA
44
MECATRONICA
UTD
MEMORIA ESTADIA
Anexos
Anexo 1 Cdigo Fuente SIMPLE BROWSER
Broeser.CPP
1
#include "browser.h"
Browser::Browser(QWidget *parent) :
3
4
5
6
7
8
9
10
QWidget(parent)
{
this->setWindowTitle("Simple Browser");
QVBoxLayout *v_box = new QVBoxLayout();
QHBoxLayout *h_box = new QHBoxLayout();
QPushButton *previous = new QPushButton(this->style()>standardIcon(QStyle::SP_ArrowLeft), "");
QPushButton *next = new QPushButton(this->style()->standardIcon(QStyle::SP_ArrowRight),
"");
11
QPushButton *reload = new QPushButton(this->style()12 >standardIcon(QStyle::SP_BrowserReload), "");
13
14
15
okUrl->setFlat(true);
18
h_box->addWidget(previous);
19
h_box->addWidget(next);
20
h_box->addWidget(reload);
21
h_box->addWidget(stop);
22
h_box->addWidget(url);
45
MECATRONICA
UTD
23
h_box->addWidget(okUrl);
24
25
this->web->load(QUrl("http://google.com"));
26
MEMORIA ESTADIA
27
28
29
this->status->addWidget(lbl);
30
this->status->addWidget(this->progressBar);
31
v_box->addLayout(h_box);
32
v_box->addWidget(this->web);
33
v_box->addWidget(this->status);
34
this->setLayout(v_box);
35
QShortcut *shortcut = new QShortcut(QKeySequence(Qt::ALT + Qt::Key_D), this->url);
36
this->connect(previous, SIGNAL(clicked()), this->web, SLOT(back()));
37
38
39
40
41
42
43
44
45
46
47
48
}
void Browser::openUrl(QString text)
46
MECATRONICA
UTD
MEMORIA ESTADIA
49 {
50
this->web->setFocus();
51
this->web->load(QUrl(text));
52 }
53 void Browser::progress(int val)
54 {
55
this->progressBar->setValue(val);
56 }
57
58
void Browser::doSearch()
{
59
60
QRegExp reg("(.+)\\.(.+)");
61
QRegExp regHttp("^http://");
62
63
64
}else if(!reg.exactMatch(link)){
65
66
67
68
69
70
this->openUrl(link);
}
void Browser::loadComplete(bool val)
{
71
this->url->setText(this->web->url().toString());
72
73
this->status->hide();
}
47
MECATRONICA
UTD
MEMORIA ESTADIA
Browser.pro
1 QT += webkit network
2 SOURCES += main.cpp \
3 browser.cpp
4 HEADERS += browser.h
Main.cpp
1
2
#include <QtGui>
3
#include "browser.h"
4
5
6
7
8
9
10
11 }
12
48
MECATRONICA
UTD
MEMORIA ESTADIA
myserver::myserver(QObject *parent) :
QObject(parent)
{
server = new QTcpServer(this);
connect (server,SIGNAL(newConnection()),this,SLOT(newConnection()));
if (!server->listen(QHostAddress::Any,9999))
{
qDebug() << "El servidor no es capaz de iniciar";
}
else
{
qDebug() << "El servidor esta online";
}
}
void myserver::newConnection()
{
char buffer[500]="";
QTcpSocket *socket = server->nextPendingConnection();
socket->write("hola que pagina deseas ir\r\n");
socket->flush();
socket->waitForBytesWritten(3000);
socket->waitForReadyRead();
socket->read(buffer, 500);
qDebug() << buffer;
socket->flush();
//socket-> QString msg = tcpsocket->readAll();
socket->write("el sistema esta desplegando la pagina solicitada\r\n");
socket->flush();
socket->write("deseas ir a otra pagina??\r\n");
socket->waitForBytesWritten(3000);
}
Main.cpp
#include <QCoreApplication>
#include "myserver.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
myserver mServer;
return a.exec();
}
49
MECATRONICA
UTD
MEMORIA ESTADIA
Myserver.h
#ifndef MYSERVER_H
#define MYSERVER_H
#include <QDebug>
#include <QObject>
#include <QTcpServer>
#include <QTcpSocket>
class myserver : public QObject
{
Q_OBJECT
public:
explicit myserver(QObject *parent = 0);
signals:
public slots:
void newConnection();
private:
QTcpServer *server;
};
#endif // MYSERVER_H
50