Experiencias iniciales en el Control de dispositivos por Internet
Ing. Marco Trujillo Silva
Ingeniero Electrnico Docente de Teleinformtica marcotrujillo@otmail.com Candidato a Maestro en Ingenier!a de Sistemas Resumen Una de las ventajas de Internet actual es que posibilita la conexin con todo tipo de computadores, desde los personales, hasta los ms grandes que ocupan habitaciones enteras. Incluso podemos ver conectados a la Red cmaras de vdeo, robots, y una serie de dispositivos e instrumentos utiliados en el control de procesos industriales. !a pregunta inmediata es "#mo se hace el control de estos dispositivos a trav$s de Internet, y que nos permita desarrollar aplicaciones adaptables a nuestros requerimientos% !a respuesta es esta pregunta exige un estudio completo de las diversas alternativas existentes. &ntre las encontradas podemos mencionar' aplicaciones cliente servidor basadas en el protocolo tcp(ip, otras usando las librerias de soc)ets, otras ms basadas en el protocolo http y la *ltima encontrada que promete mucho es la basada en el servidor +eb implementado en un chip ,-icro servidor +eb.. &n este artculo se muestran trabajos iniciales explorados por los alumnos con orientacin del autor y las recientes aplicaciones propuestas para investigacin. 1 Introduccin "a #e$ a sido capa% de unificar todo tipo de medios& radio' televisin' texto' audio' imgenes' etc. Si $ien se estn aciendo progresos en las tecnolog!as $asadas en internet' ca$e resaltar la tendencia de los micro servidores (ue implementa la pila TC)*I)' (ue permitir!a introducirlo en las facilidades de la #e$. "os re(uerimientos en cuanto a coste + consumo son perfectamente asumi$les por cual(uier dispositivo de o+ en d!a. El dise,o de ard#are es mu+ simple' aparte del microcontrolador donde se encontrar toda la suite de protocolos' es necesario' + mu+ recomenda$le' o$tener t-cnicas de programacin desarrollar nuestras aplicaciones + adaptar a nuestras m.ltiples necesidades El poner a un microcontrolador a acer el tra$ajo de un servidor' re(uiere (ue -ste tenga implementado en su memoria de programa' todos los protocolos (ue se va a utili%ar + la configuracin del servidor principal presente en la red. En lo (ue respecta al microcontrolador' es necesario recalcar (ue el programa para la suite de protocolos TC)*I) +a se encuentra implementada por profesionales' en un arcivo ex. /o es necesario entender a la perfeccin el programa' ni muco menos modificarlo' dado (ue estos protocolos son estndares' + de reali%arse cual(uier modificacin' dejar!an de serlo. Existe la necesidad de comprender como se reali%an las aplicaciones $asadas en la plataforma TC)*I). 2 Caractersticas de TCP/IP Internet usa el protocolo TCP/IP (ue significa 0Transmission Control )rotocol * Internet )rotocol0' es el (ue se encarga de reci$ir pa(uetes de informacin + redirigirlos al usuario final (ue los solicit. TC)*I) es el nom$re de dos protocolos n.cleos (ue dan soporte a Internet. Sin em$argo frecuentemente es usado para referirse al conjunto de protocolos de conectividad estndar. 2.1 Protocolo IP: Tiene la funcin de direccionar + encaminar los pa(uetes al destino' sin garanti%ar su entrega 1servicio no confia$le2' sin conexin 1cada pa(uete es tratado de manera independiente2 + desarrollando el mejor esfuer%o o 3$est effort4 1todos los pa(uetes son igualmente tratados2. "as direcciones I) a+udan a identificar la ruta del pa(uete acia el destino. 2.1 Protocolo TCP: Es un protocolo de transporte orientado a conexin 1S5C' se esta$lece la sesin antes de intercam$iar datos2' proporcionando un servicio fia$le de flujo de datos de extremo a extremo. Estos mecanismos inclu+en la suma de compro$acin' n.meros de secuencia' sincroni%acin' acuses de reci$o' + procedimientos de retransmisin. Este protocolo $idireccional permite (ue el programador escri$a programas de aplicacin cliente*servidor utili%ando primitivas estndar (ue tra$ajan en una gran variedad de redes sin preocuparse del tipo de su$red + de transmisiones no confia$les. 2.3 Protocolo UDP: 6 diferencia de TC) es un protocolo de transporte no orientado a la conexin' no fia$le pero mu+ rpido' de$ido a su overead reducido. 2.4 Socets: TC) usan los puertos como enlace entre dos aplicaciones. El n.mero de puerto identifica la aplicacin de origen + la de destino' estos n.meros' en conjunto con las direcciones I) de origen + destino en el enca$e%ado del datagrama I)' identifican de forma un!voca la conexin entre las aplicaciones de origen + destino. "a com$inacin de un puerto + una direccin I) es llamada' a veces' de soc7et' el n.mero cudruplo 1puerto + direccin I) de cliente + puerto + direccin I) de destino2 identifica una conexin en internet + puede ser un n.mero entre 8 9 :;;<;. Existen tres tipos de soc7ets dise,ados para TC)*I)& Stream' Datagram + =a#. "os Soc7ets Stream utili%an como protocolo a TC)' mientras (ue los Soc7ets Datagram usan a >D). 3 !"licaciones #asadas en Socets >n ejemplo de aplicacin Cliente *Servidor simple se muestra en la figura ?. Donde& Socet: Crea la estructura de datos para comunicaciones' especifica el tipo de servicio + el protocolo. $ind: 6signa una direccin de red + nom$re al soc7et 1la estructura de datos2. %ist: Indica (ue el servidor est listo para reci$ir conexiones. 6signa espacio para filas de los clientes (ue se conectan al servidor 1no es $lo(ueante2. !ce"t& Espera a (ue lleguen conexiones del cliente. @lo(uea la espera' asta (ue un cliente reali%a una conexin. Connect& @lo(uea mientras se reali%a la conexin con el servidor. Send: Env!a datos a la conexin. Recei&e& =eci$e datos de la conexin. Close& Cierra un soc7et. "i$era la conexin. Aig. ? 4 'l (insoc Control de )isual $asic 6l igual (ue un usuario se comunica con el programa por medio del teclado' dos programas se pueden comunicar entre s! por medio de un control especial (ue se denomina (inSoc Control. Este control esta disponi$le en el lenguaje Bisual @asic' + su nom$re proviene de (indo*s Socets. El (insoc Control de Bisual @asic' no es visi$le en tiempo de ejecucin' lo (ue significa (ue solo sa$emos (ue el control se encuentra en nuestra aplicacin + cules son sus propiedades. Pro"iedades+ m,todos - e&entos de (inSoc >na ve% (ue tenemos el CinSoc7 control en nuestra $arra de controles en Bisual @asic +a podemos comen%ar a ver las propiedades' eventos + m-todos ms importantes del control. TCP .S/C0 #ind #ind listen listen )repara al servidor a reci$ir conexiones. soc7et soc7et connect connect send send close close Proceso del Cliente receive receive socet socet send send close close acce"t acce"t recei&e recei&e Proceso del Ser&idor En espera "isto %ista de "ro"iedades m1s im"ortantes %ocalIP: Devuelve la direccin I) de la m(uina local en el formato de cadena con puntos de direccin I) 1xxx.xxx.xxx.xxx2. %ocal2ost3ame: Devuelve el nom$re de la m(uina local. Remote2ost: Esta$lece el e(uipo remoto al (ue se (uiere solicitar la conexin. %ocalPort: Esta$lece el puerto (ue se (uiere dejar a la escuca. RemotePort: Esta$lece el n.mero del puerto remoto al (ue se (uiere conectar. State: Berifica si el Control CinSoc7 esta siendo utili%ado o no. "a sintaxis de cada propiedad es& /#4eto.Pro"iedad 5 )alor Donde 5$jeto va el nom$re del Control CinSoc7' el nom$re predeterminado es 0CinSoc7?0. Ejemplo de la propiedad "ocalI) )rivate Su$ AormD"oad12 "a$el?.caption E CinSoc7?."ocalI) End Su$ %ista de 6,todos m1s im"ortantes del control (inSoc !cce"t: Slo para las aplicaciones de servidor TC). Este m-todo se utili%a para aceptar una conexin entrante cuando se est tratando un evento Connection=e(uest. 7etData: =ecupera el $lo(ue actual de datos + lo almacena en una varia$le de tipo Bariant. %isten: Crea un soc7et + lo esta$lece a modo de escuca. SendData: Env!a datos a un e(uipo remoto. "ista de Eventos ms importantes ConnectionRe8uest: Se produce cuando el e(uipo remoto solicita una conexin. Sin este evento no se puede llevar a ca$o la conexin. Connect: Se produce cuando el e(uipo local se conecta al e(uipo remoto + se esta$lece una conexin. Close: Se produce cuando el e(uipo remoto cierra la conexin. "as aplicaciones de$en usar el m-todo Close para cerrar correctamente una conexin TC). Data!rri&al& Se produce cuando llegan nuevos datos' + con los (ue de$emos acer algo. 9 !"licaciones e4em"lo con (insoc )ara entender el correcto funcionamiento del protocolo TC)*I) vamos a empe%ar por programar la aplicacin Servidor a la cual luego se conectar el Cliente. Identi:icacin de controles de la a"licacin Ser&idor Control .nom#re "redeterminado0 Pro"iedad .nue&o &alor0 CinSoc7? "ocal)ort E FFF '&ento clic del Command1 )rivate Su$ Command?DClic712 Cinsoc7?."isten End Su$ Esto ace (ue el Control CinSoc7 empiece a funcionar' escucando el puerto (ue se indic en las propiedades de dico control. Este puerto es el FFF. 6ora si reali%amos todo a la perfeccin el puerto FFF esta siendo vigilado para aceptar conexiones remotas. '&ento Data!rri&al del (inSoc )rivate Su$ Cinsoc7?DData6rrival1@+Bal $+tesTotal 6s "ong2 Dim datos 6s String Cinsoc7?.GetData datos Text?.Text E Text?.Text H datos End Su$ Datos (ueda transformada en una varia$le de cadena' + CinSoc7 almacena los datos (ue reci$e del Cliente en el $uffer + luego ingresan a la varia$le datos' dica varia$le mostrar su contenido en el control Text@ox 1Text?2. '&ento ConnectionRe8uest del (insoc )rivate Su$ Cinsoc7?DConnection=e(uest1@+Bal re(uestID 6s "ong2 Cinsoc7?.Close Cinsoc7?.6ccept re(uestID End Su$ Este evento es mu+ importante' permite aceptar la peticin de conexin. Sin este evento el resto del programa no tendr!a efecto. '&ento Clic del command2 )rivate Su$ CommandIDClic712 Dim enviar 6s String enviar E TextI.Text Cinsoc7?.SendData enviar End Su$ Esto permite enviar el texto (ue se introdu%ca en el Text@ox n.mero I. Identi:icacin de controles de la a"licacin Cliente Control .nom#re "redeterminado0 Pro"iedad .nue&o &alor0 CinSoc7? "ocal)ort E FFF '&ento clic del Command1 )rivate Su$ Command?DClic712 Cinsoc7?.=emoteJost E Text<.Text Cinsoc7?.Connect End Su$ El evento connect permite conectar al programa servidor (ue esta esperando la solicitud' este evento re(uiere un parmetro fundamental' el I) o nom$re de ost el cual es introducido previamente a la conexin en el cuadro de texto n.mero < 1Text<2. '&ento Data!rri&al del (inSoc )rivate Su$ Cinsoc7?DData6rrival1@+Bal $+tesTotal 6s "ong2 Dim datos 6s String Cinsoc7?.GetData datos Text?.Text E Text?.Text H datos End Su$ Esto permite a la aplicacin 1a trav-s de CinSoc72 reci$ir informacin del servidor + mostrarla en pantalla. '&ento Clic del command2 )rivate Su$ CommandIDClic712 Dim enviar 6s String enviar E TextI.Text Cinsoc7?.SendData enviar End Su$ Estas instrucciones son necesarias para enviar informacin al servidor. !"licacin e4em"lo usando el "uerto "aralelo: )rivate Su$ cmdConnectDClic712 5n Error GoTo ErrJandler Cit Cinsoc7? .=emoteJost E Trim1txt=emoteI)2 .=emote)ort E Trim1txt=emote)ort2 If ."ocal)ort E Empt+ Ten ."ocal)ort E Trim1txt"ocal)ort2 ArameI.Caption E ."ocalI) .@ind ."ocal)ort End If End Cit txt"ocal)ort."oc7ed E True Status@ar?.)anels1?2.Text E 0 Connected to 0 K Cinsoc7?.=emoteJost K 0 0 Arame?.Ena$led E True ArameI.Ena$led E True "a$elL.Bisi$le E True TextI.SetAocus Exit Su$ ErrJandler& Msg@ox 0Cinsoc7 failed to esta$lis connection #it remote server0' v$Critical End Su$ )rivate Su$ AormDMe+Do#n1Me+Code 6s Integer' Sift 6s Integer2 If Me+Code E v$Me+A? Ten CDir 6pp.)at Sell 0notepad.exe readme.txt0' v$/ormalAocus End If End Su$ )rivate Su$ AormD"oad12 So# Msg@ox 0Cinsoc7 >DT Cat0 K v$Cr"f K 0$+ Teo Mandiliotis 1ioni7@ol.gr20 K v$Cr"f K v$Cr"f K 0A? for elp.0' v$Information txt=emoteI) E Cinsoc7?."ocalI) End Su$ )rivate Su$ Text?DCange12 Dim a' c 6s String Dim $' d' g 6s Integer $ E "en1Text?2 d E "en1Text?2 9 e g E $ 9 d H < If Mid1Text?' g2 E 0a0 Ten Call v$5ut1KJ<NF' <I2 Else If Mid1Text?' g2 E 0e0 Ten Call v$5ut1KJ<NF' NI2 End If End If e E "en1Text?2 End Su$ )rivate Su$ TextIDMe+)ress1Me+6scii 6s Integer2 Static "astD"ineDAeed 6s "ong Dim /e#D"ine 6s String If Trim1TextI2 E v$/ullString Ten "astD"ineDAeed E 8 If Me+6scii E ?< Ten /e#D"ine E Mid1TextI' "astD"ineDAeed H ?2 "astD"ineDAeed E TextI.SelStart Cinsoc7?.SendData /e#D"ine Status@ar?.)anels1I2.Text E 0 Sent 0 K 1"en@1/e#D"ine2 * I2 K 0 $+tes 0 End If End Su$ )rivate Su$ Cinsoc7?DData6rrival1@+Bal $+tesTotal 6s "ong2 Dim /e#DText 6s String Cinsoc7?.GetData /e#DText Text?.SelText E /e#DText Arame?.Caption E Cinsoc7?.=emoteJostI) Status@ar?.)anels1I2.Text E 0 =ecieved 0 K $+tesTotal K 0 $+tes 0 End Su$ ; 3ue&as tendencias: Ser&idores (e# en un c<i". "a capacidad de controlar su orno microondas' la refrigeradora' las alarmas' el despertador de la radio + dems dispositivos desde un navegador de #e$' se puso muco ms cre!$le' cuando en la >niversidad de Massacussets un graduado' constru+ el servidor del #e$ ms pe(ue,o del mundo. Es del tama,o de una ca$e%a del fsforo + cuesta menos de O?. 6icro ser&idores (e# "a miniaturi%acin tecnolgica a llegado al mundo de los servidores de pginas #e$ (ue se conectan a Internet. "a drstica reduccin del tama,o de los servidores #e$' actualmente de un tama,o compara$le al de una ca$e%a de cerilla' posi$ilita la conexin de casi cual(uier aparato el-ctrico a una red de ordenadores 1+ por lo tanto su control2.
Manifestndose una nueva era en el dise,o digital' algunas de las empresas fa$ricantes anunciaron sus prximos planes agresivos de implementar sistemas (ue esencialmente colocan un servidor dentro de un cip. "a idea fundamental es tratar de emular en un microcontrolador a un servidor #e$ convencional. >na sola computadora del circuito integrado ejecuta un #e$9servidor del i)ic + se exige ser la aplicacin ms diminuta de una pila de TC)*I) + un JTT) ?.8 #e$9 servidor. Partes del iPic *e#=ser&er Stepen @annasc a fotografiado este prototipo del servidor dise,ado por Sri7umar. En -l' los componentes estn suspendidos en el aire a trav-s de los ca$les amarillos + a%ules' pero una versin final de este prototipo podr!a incluir todos los componentes en una tarjeta con un circuito impreso' aciendo posi$le (ue el micro servidor ocupase el tama,o de una ca$e%a de cerilla.
El cip de la i%(uierda es un microcontrolador $asado en un )IC ?IC;8P6 de F patillas. El cip de la dereca es un IL"CI;: EE)=5M (ue contiene todos los ficeros (ue el i)IC sirve. Es' a groso modo' como el disco duro del servidor' $asado en una memoria EE)=5M 1Electricall+ Erasa$le )rograma$le =ead 5nl+ Memor+2. %a diminuta "ila TCP/IP El cdigo propiamente dico (ue implementa la pila TC)*I) ocupa .nicamente I;: $+tes 1?I9$it2' el resto' asta ;?I pala$ras de programa' es cdigo extra para aumentar las prestaciones + posi$ilidades del i)IC. 6s! pues' en un min.sculo cip disponemos de un servidor #e$ acorde a la norma JTT) ?.8' un servidor telnet simple para editar los ficeros en el cip' una memoria IL"CI;: iIc EE)=5M para alojar los ficeros (ue (ueramos servir. Esta implementacin de la pila TC)*I) est de acuerdo con todo lo especificado en el =AC9??II' Jost =e(uirements Document' (ue es actual estndar empleado en todas las implementaciones de TC)*I) en todos los osts de Internet. 6dems inclu+e un sistema de ficeros para manejar m.ltiples ficeros dentro de la memoria EE)=5M + alguna aplicacin de propsito general. Esto incrementa en I;: instrucciones el cdigo' (uedando todav!a la mitad de la capacidad del procesador para la (ue se desee' por ejemplo' cdigo de usuario. )enta4as "os procesadores dise,ados para el uso en los sistemas $asados en servidor proporcionarn ?; veces el desempe,o de los procesadores actuales' a muco ms $ajo costo + consumo de potencia. Des&enta4a: Poca Ca"acidad. Su capacidad de almacenamiento de las pginas #e$. Su poca versatilidad impide $rindar servicios extra como servidor' a menos (ue se modifi(ue el dise,o. Generalmente cuando se implementa un servidor convencional de pginas #e$' se instalan tam$i-n otros servicios' esto en el microcontrolador no se aplica directamente. > Conclusiones Son m.ltiples las aplicaciones (ue podr!a proporcionarnos las diversas implementaciones el stac7 TC)*I). 6dems de la inerente a su condicin (ue ser!a servir pginas #e$' indirectamente podr!a multiplicar la funcionalidad de los dispositivos a los (ue estuviese asociado. Beamos una serie de posi$les aplicaciones& 'n el <o?ar En la actualidad son numerosos los electrodom-sticos (ue utili%amos a diario en nuestro ogar. Jornos microondas' tostadoras' cafeteras' televisiones' videos' alarmas' despertadores' etc. Si cada uno de los dispositivos mencionados incorporara un servidor #e$ como el (ue emos detallado' podr!a ser controlado remotamente. Ms a.n' podr!an controlarse entre ellos + estar unos en funcin de otros. 'n la o:icina )odr!a servirnos para potenciar la comunicacin umano9m(uina& en la oficina es $astante a$itual encontrarnos con recursos electrnicos compartidos. )odr!amos o$tener las incidencias de manera remota sin necesidad de despla%arse. "os micro servidores #e$ podr!an' adems' a$aratar costes en instalaciones de ca$leado de e(uipamiento (ue necesite ser controlado remotamente' permitiendo tener un 0edificio inteligente0 reduciendo la complejidad de su programacin + manejo. Ser&icios a@adidos en Tele:ona Si $ien se estn aciendo progresos en la tecnolog!a C6) + el uso del CM"' un micro servidor en cada tel-fono mvil permitir!a una implementacin $arata de la pila TC)*I) (ue permitir!a introducirlo en las facilidades de la #e$. "os re(uerimientos en cuanto a coste + consumo son perfectamente asumi$les por cual(uier tel-fono de o+ en d!a. Se espera en un futuro cercano la aparicin de los micro servidores #e$ en cada dispositivo del ogar' de la oficina + dispositivo mvil celular. $i#lio?ra:a %i#ros: ,/. Mnuel "%aro' 6ntonio' 3!abvie+0i. 1rogramacin 2r3ica para el #ontrol de Instrumentacin4,?Q ed. )araninfo S.6' Espa,a' I88?' <;; pg. ,5. @entam Rerem+' 3TC)*I) "E6/' Ce$ Servers for Em$e$ed S+stems4' Ia ed. CM)@oo7s' >S6' I88<' ;;P pg. ,6. 6ndre# S. Tanen$aum' ?PPN, 7Redes de #omputadoras4, <Q Ed' )rentice Jall' M-xico' ?PPN' F?< pg. ,8. Cilliam Stallings' I888' 7#omunicaciones y Redes de #omputadores4' :a Ed' )rentice Jall' Espa,a' I888' NLN pg. UR%s: ttp&**pa$lin.com.ar*computer*cursos*v$.cs* ttp&**##.dontronisc.com ttp&**###.arra7is.es*Spatx+*ro.tmTslip ttp&**###.em$eddedeternet.com ttp&**###.projecs+stems.com*#e$server*main?.tml El 6utor& Marco Trujillo Silva. =eali% estudios en la >niversidad )rivada 6ntenor 5rrego' o$teniendo el T!tulo de Ingeniero Electrnico. Ja participado en diferentes ponencias nacionales. Es docente investigador en las reas de redes de computadoras. Esta certificado en D9"in7 con especiali%acin en Conectividad e Internet#or7ing. Ja participado en concursos o$teniendo premios como asesor en concursos locales + nacionales. 6ctualmente se encuentra desarrollando la Tesis para o$tener el grado de Maestr!a en Sistemas de Informacin en el convenio con el ITESM de M-xico.