Você está na página 1de 10

InterfaceHomemMquinaparaDomtica

baseadoemtecnologiasWeb


JooAlexandreOliveiraFerreira



Dissertaorealizadasobaorientaodo
ProfessorDoutorMriodeSousa
doDepartamentodeEngenhariaElectrotcnicaedeComputadores
daFaculdadedeEngenhariadaUniversidadedoPorto

Porto,Maro2008
______________________________________________________________________
FEUP,25032008 Pgina1de9

1.Objectivosdoprojecto

Oobjectivoprincipaldescritonestadissertaooestudo,projecto,implementao
e validao de um sistema de domtica com interface homemmquina baseado em
tecnologiaWeb.
Aaceitaoeutilidadedeumsistemadedomticaresidemaisnainterfaceatravs
da qual controlada, do que na prpria instalao e tecnologia utilizada. Assim,
desejase que seja desenvolvida uma interface Web configurvel atravs da qual os
utilizadores podero controlar o sistema de domtica. Esta interface Web dever
comandar o sistema de domtica atravs de comandos KNX/EIB (protocolo
normalizadoparadomtica)sobreTCP/IP.
A interface Web dever ser acessvel atravs de um computador pessoal ou
qualqueroutrodispositivomvel,comoPDAs,Smartphonesetelemveis,comacesso
Internet.
De modo a optimizar o consumo energtico, todo o sistema a implementar neste
projectodeverserbaseadonomnimodehardwarepossvel,semnuncarestringir,no
entanto,asuaexpansibilidadefutura.

2.ArquitecturaFuncional

Paraaelaboraodesteprojecto,numaprimeirafase,foifeitaumaanliseprviado
tipodetecnologiadisponvelquepermitiriasuportarosobjectivospretendidos.
Com o resultado deste processo de anlise, foram seleccionadas um conjunto de
tecnologiasdisponveis,quepermitiramobterabordagensdiferentesparaaconcepo
de uma arquitectura funcional que permitir cumprir os requisitos inicialmente
propostos. Dentro de cada abordagem ser apresentada uma breve explicao sobre
astecnologiasenvolvidasemcadaumadestas.

2.1.Primeiraabordagem

Nesta primeiraabordagem, aimplementaodo sistema seriaefectuada com base


num conjunto de APIs JAVA, denominado de Calimero. Estas APIs, desenvolvidas na
Vienna University of Technology, permitem a comunicao com uma instalao de
domticaKNX/EIBcriandoumtneldecomunicaosobreumaredeIP, denominado
de EIBnet/IP tunnelling. Assim sendo, no necessrio um conhecimento detalhado
sobre o protocolo KNX, permitindo uma abstraco para as camadas de aplicao
superioresaestaAPI.
ComoestaAPIjseencontradesenvolvidaemJAVA,aaplicaodacamadasuperior
queavaiutilizarterdesertambmdesenvolvidanestalinguagemdeprogramao.

______________________________________________________________________
FEUP,25032008 Pgina2de9

2.1.1.JAVA

JAVAumalinguagemdeprogramaoorientadaaobjectosdesenvolvidapelaSun
Microsystems meio da dcada de 90. Esta linguagem difere das linguagens mais
tradicionais, como o C ou C++ em que o cdigo fonte compilado para cdigo
mquina. Em JAVA a filosofia diferente, nesta, o cdigo fonte compilado para um
bytecodequeexecutadoporumamquinavirtual.
Essamquinavirtual(JAVAVirtualMachineouJVM)oncleoondeseencontrao
motorresponsvelporexecutarumprogramaJAVA,atravsdobytecodegeradopelo
compilador.
DestamaneiraeapenastrocandoaJVMparaosistemaoperativoearquitecturade
hardware em causa, ser possvel correr a mesma aplicao sem necessidade de a
recompilarnumagrandevariedadedeplataformas,writeonce,runanywhere.



Figura1EsquemadecamadasdeumambienteJAVA

2.1.1.1.AppletJAVA

UmappletumprogramaJAVAcompiladoqueseintegranumapginaWeb.Aoser
realizadooacessocomumbrowserquelapgina,obytecodecarregadoatravsda
Web,sendodeseguidaexecutadonamquinalocalonderesideobrowsercliente.
OsappletssousadosnormalmenteparafornecerinteractividadeaaplicaesWeb
onde o simples HTML no capaz de o fazer por si s. Como j foi referido
anteriormente, quem vai interpretar e executar a aplicao a JVM presente na
mquina cliente que carregou a aplicao, logo a independncia da plataforma est
garantida,podendofuncionaremambientesWindows,Linux,MacOSentreoutros.

______________________________________________________________________
FEUP,25032008 Pgina3de9
2.1.1.2.ServletJAVA

Um servlet JAVA pode ser encarado como um applet mas a correr do lado do
servidorWeb.semelhanadeoutrastecnologiasqueexecutamdoladodoservidor,
como o CGI ou o PHP, este programa JAVA manuseia dinamicamente pedidos e
respostas tipicamente em HTML com um cliente, permitindo assim adicionar
contedosdinmicosaumaaplicaoWeb.
Um servlet JAVA requer um servidor de aplicao especial que proporciona o
ambienteparaesteexecutaremcooperaocomoservidorWeb.Umexemplodeste
servidor de aplicao e que implementa as especificaes definidas pela Sun
MicrosystemsoApacheTomcatdesenvolvidopelaApacheSoftwareFoundation.

2.1.2.PrimeiraAlternativa

Nesta primeira alternativa dispomos de um servidor Apache Tomcat que executa


duasfunes.
AprimeirafunoexecutadaadeservidorWeb,responsvelporcarregarparaos
clientes a pgina HTML com o applet JAVA com todas as informaes e controlos
necessriosparafazerainterfacecomaredededomtica.
AsegundafunodoservidorcorrerumservletJAVAqueutilizaaAPICalimero,j
atrs mencionada. Esta API estabelece uma ligao, sobre IP, a um dispositivo
EIBnet/IP.EssedispositivoumrouterquevaifazerainterfaceentrearedeIPeasub
rede EIB/KNX. O servlet JAVA vai ser o responsvel por toda a gesto da rede de
domticaedacomunicaocomoappletnocliente.
DoladodoclienteoappletJAVArecebidoexecutado.Esteinteragecomoservlet
que est a correr no servidor via pedidos e respostas HTTP, enviandolhe as aces
feitaspeloutilizadordocliente.

CLIENTE SERVIDOR
HTML
J avascript
AJ AX
Applet
J AVA
Browser
Apache Tomcat
Servlet J AVA
API Calimero
WWW
IP / EIB
Router
KNX / EIB
Device
KNX / EIB
Device
KNX / EIB
Device
EIB/KNX
IP
Figura2Arquitecturapropostana1alternativaparaa1abordagem

______________________________________________________________________
FEUP,25032008 Pgina4de9

2.1.3.SegundaAlternativa

Asegundaalternativaumapequenavariaodareferidaanteriormente.
NestaalternativacarregadoparaobrowserdoclienteumappletJAVAquecontm
aAPIresponsvelpelacomunicaocomainstalaodedomticaKNX/EIBatravsde
umtneldecomunicaosobrearedeIP,oCalimero.
AgoraemvezdeserumservletJAVAaexecutardoladodoservidorparacontrolare
gerir a instalao de domtica, ser o applet JAVA a comunicar directamente com
routerIP/EIBdainstalao.
Nesta alternativa tero de ser analisadas as limitaes impostas por detrs do
conceitodeappletjava,eseesto,ouno,emcondiesdeimpossibilitarasatisfao
dosrequisitosimpostos.

CLIENTE
SERVIDOR
IP / EIB
Router
KNX / EIB
Device
KNX / EIB
Device
KNX / EIB
Device
EIB/KNX
IP
HTML
J avascript
AJ AX
Browser
A
P
I

C
a
l
i
m
e
r
o
Applet
J AVA
WWW
APACHE
Web server
Figura3Arquitecturapropostana2alternativaparaa1abordagem

______________________________________________________________________
FEUP,25032008 Pgina5de9

2.1.4.TerceiraAlternativa

Aterceiraalternativasegueummtodoligeiramentediferente.
Nesta opo continuamos a ter um servlet JAVA a correr no servidor tal como na
primeira alternativa. A diferena que agora existe uma base de dados que serve de
camada intermdia entre cliente e servidor. nesta base de dados relacional que o
cliente vai registar a ordens a passar para o servidor executar, permitindo tambm
ficarcomumhistricosobreasacestomadas.Nestehistrico,porumaquestode
segurana, ficariam registadas a data, a hora, o elemento actuado, o valor actuado, o
utilizador que efectuou a aco e o ip de origem do qual o cliente interagiu sobre o
servidor. No servidor, o servlet JAVA ir consultar a base de dados, atravs da API
JDBC, sempre que h uma iterao com o cliente ou uma mudana de estado de um
elementodainstalaodedomtica.Nessaconsultabasededadososervletverifica
se h novas ordens do cliente para executar e actualiza o estado dos elementos da
redeEIB/KNX.
O servidor PHP instalado no servidor o responsvel por fornecer os mtodos de
acesso base de dados por parte dos clientes remotos e pela gesto das sesses dos
utilizadoresdaaplicaoWeb.

CLIENTE
Apache Tomcat +PHP
Servlet J AVA
API Calimero
J DBC
SQL
Aces a
executar
+
Histrico das
aces
Dispositivos
+
Info instalao
Utlizadores
SERVIDOR
IP / EIB
Router
KNX / EIB
Device
KNX / EIB
Device
KNX / EIB
Device
EIB/KNX
IP
WWW
HTML
J avascript
AJ AX
Browser
Figura4Arquitecturapropostana3alternativaparaa1abordagem

______________________________________________________________________
FEUP,25032008 Pgina6de9

2.2.Segundaabordagem

Asegundaabordagemparaaconcepodaarquitecturafuncionalrecaiusobreum
tipodetecnologiadiferente,oCGIouCommonGatewayInterface.
Nestaarquitectura,oclienteinteragecomumprogramaCGIqueresidenoservidor
Web.EsteprogramaCGIporsuavezcomunicacomumGateway(quejseencontra
desenvolvidonombitodeumoutroprojecto)queserresponsvelporestabelecer
umtneldecomunicao,sobreIP,aumdispositivoEIBnet/IP.Essedispositivoum
routerquevaifazerainterfaceentrearedeIPeasubredeEIB/KNX.
AGatewaytambmpoderfazerointerfacecomoutrosprotocolosutilizadosem
instalaesdedomtica.

2.2.1CGI

Common Gateway Interface ou CGI um standard ou um conjunto de regras que


descrevecomoumservidorWebcomunicacomoutrasaplicaesnamesmamquina,
ecomoessasaplicaescomunicamcomoservidorWeb.Umaaplicaopode,ento,
serconsideradaumprogramaCGIselidarcomasentradaseasadasdeacordocomo
standardCGI.NormalmenteumprogramaCGIumpequenoprogramaquepeganos
dados de um servidor Web e faz algo com eles, como por exemplo usar esses dados
para consultar uma base de dados ou colocar o contedo de um formulrio numa
mensagemdeemaileenvila.

______________________________________________________________________
FEUP,25032008 Pgina7de9

2.3.Terceiraabordagem

A terceira abordagem sobre o problema da concepo da arquitectura funcional


recaiunumalinhadepensamentobastantediferentedaprimeiraedasegunda.
Estaabordagemvisautilizarumaplataformajdesenvolvidanombitodeumatese
de Stephan Wuchterl na University of Applied Sciences Deggendorf, Center for
InnovativeCommunicationSystemsorientadopeloProfessorDrIng.AndreasGrzemba.
Estaplataforma,oKNX@HOMEcontaactualmentecomcercadesetecolaboradores
quecontinuaramadesenvolverotrabalhoiniciadoporStephanWuchterl.

2.3.1.OKNX@HOME

OKNX@HOMEumprojectodesenvolvidocomointuitodecontrolarinstalaesde
domticaKNX/EIBviaHTTP.
EsteprojectobaseadoemJAVA,JSP,StrutsefuturamenteemAJAX.
OKNX@HOMEconstitudoportrsprogramasseparados:oKNXService,KNXWebeo
KNXAdmin.
HTML
J avascript
AJ AX
Browser WWW
Gateway
Interface
EIB / KNX
CGI
WEB SERVER
IP / EIB
Router
KNX / EIB
Device
KNX / EIB
Device
KNX / EIB
Device
EIB/KNX
IP
SERVIDOR
CLIENTE
Figura 5 Arquitecturaproposta na 2abordagem

______________________________________________________________________
FEUP,25032008 Pgina8de9

2.3.1.1.KNXService

O KNXService o ncleo desta aplicao, ele o responsvel por toda a gesto da


redeEIB/KNX,dagestodabasededadosHSQLedoestabelecimentodeumtnelde
comunicao sobre a rede IP com o router IP / EIB. Como o autor desenvolveu esta
aplicao em JAVA, utilizou a API Calimero, j mencionada atrs, com algumas
modificaesnamesmademodoacumprirosseusobjectivos.

2.3.1.2.KNXWeb

Este componente a aplicao Web na qual os utilizadores do KNX@Home


interagemcomosistema.OKNXWebpermiteadiferenciaodeumutilizadornormal
e de um utilizador com privilgios de administrador, que o responsvel por criar e
configurar a informao que ser disponibilizada via Web bem como gerir as contas
dos diversos utilizadores e respectivos privilgios sobre a actuao na instalao de
domtica. As aces decontrolo neste interface com o utilizador so enviadas para o
KNXService que as vai interpretar enviar os comandos respectivos para a rede de
domtica.

Figura 6 PginaprincipaldoKNXWeb

______________________________________________________________________
FEUP,25032008 Pgina9de9
2.3.1.3.KNXAdmin

Este terceiro componente do KNX@Home permite gerir tudo o que se passa no


barramentoEIB/KNX.
Esta ferramenta permitenos monitorizar todas as mensagens / eventos trocados
entreoKNXServiceearedeEIB/KNX,podendoficarassimcomlogssobreoestadodo
sistemaporrazesdesegurana.

Figura 7 KNXAdmin