Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
______________________________________________________________________
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
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
______________________________________________________________________
FEUP,25032008 Pgina7de9
2.3.Terceiraabordagem
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
2.3.1.2.KNXWeb
Figura 6 PginaprincipaldoKNXWeb
______________________________________________________________________
FEUP,25032008 Pgina9de9
2.3.1.3.KNXAdmin
Figura 7 KNXAdmin