Ana Emília ([email protected]) Jairson Vitorino ([email protected]) Setembro, 2004
José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}
Transcript of José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}
![Page 1: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/1.jpg)
Google wave architectureJosé Dihego, Rafael Fonseca e Rafael
Bernardojdso, rjcf, rbdb{@cin.ufpe.br}
![Page 2: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/2.jpg)
Visão Geral
![Page 3: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/3.jpg)
Google Wave Architecture
![Page 4: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/4.jpg)
Component Diagramcomponent classes
![Page 5: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/5.jpg)
Data componets
WaveWavelet Document<<use>>
IWavelet
+create()
<<use>>
IDocument
+synchronize()
WaveProvider<<serves>>
IWave
+create()+applyTransformation()+sendTransformation()
<<manage>>
PlugProvider
IWaveExtensor
+createExtension()
IPlugProvider
+plugExtension()+createExtension()
WaveService
![Page 6: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/6.jpg)
A business-processing component
WaveServiceUserInterface AccessProvider
DownStreamProvider UpStreamProvider
RequestHandler
IRequestHandler
+request()+receive()
<<use>>
<<use>>
DataBaseManager
IDataBaseManager
+add()+remove()+update()+commit()
![Page 7: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/7.jpg)
Comunication Components
DownStreamProvider UpStreamProvider
MarshallerXMPPExt
<<reside>> <<reside>>
RequestHandler
IRequestHandler
+request()+receive()
<<use>>
<<use>>
HandlerProtocolConnection<<reside>>
IHandlerProtocolConnection
QueueManage
<<reside>><<reside>>
![Page 8: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/8.jpg)
Manage DB Components
WaveService DataBaseManager
IDataBaseManager
+add()+remove()+update()+commit()
![Page 9: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/9.jpg)
User Interface/server interface
WaveServiceUserInterface AccessProvider
![Page 10: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/10.jpg)
Extension Plugin Componets
PlugProvider
IWaveExtensor
+createExtension()
ExtensionManageFactory
<<reside>>
IPlugProvider
+plugExtension()+createExtension()
Wave
![Page 11: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/11.jpg)
Big Picture[1]
WaveWavelet
Document<<use>>
IWavelet
+create()
<<use>>
IDocument
+synchronize()
WaveProvider
SynchronizationLocalEngine
<<reside>>
Transformations
<<reside>>
<<reside>>
<<serves>>
WaveService
IWave
+create()+applyTransformation()+sendTransformation()
Synchronizer<<used>>
UserInterface AccessProvider
<<manage>>
ISynchronizationLocalEngine
DataBaseManager
IDataBaseManager
+add()+remove()+update()+commit()
PlugProvider
IWaveExtensor
+createExtension()
ExtensionManageFactory
<<reside>>
IPlugProvider
+plugExtension()+createExtension()
![Page 12: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/12.jpg)
Big Picture[2]WaveService
DownStreamProvider UpStreamProvider
MarshallerXMPPExt
<<reside>> <<reside>>
RequestHandler
IRequestHandler
+request()+receive()
<<use>>
<<use>>
HandlerProtocolConnection<<reside>>
IHandlerProtocolConnection
QueueManage
<<reside>><<reside>>
![Page 13: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/13.jpg)
Deploy Diagramnode classes and component classes
![Page 14: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/14.jpg)
High levelClient
<<device>>
ServerProvider<<device>>
WaveService<<device>>
ServerDispatcher<<device>>
UserInterface<<deploy>>
AccessProvider <<deploy>>
<<deploy>>
WaveProvider<<deploy>>
WaveService <<deploy>>
<<deploy>>
Wave
<<deploy>>
Wavelet
<<deploy>>
Document
<<deploy>>
HTTP
HTPP
HTTP
PlugProvider
<<deploy>>
PlugServer
HTTP
![Page 15: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/15.jpg)
Low level
DataBase<<device>>
DataBaseManager
<<deploy>>
DownStreamServer<<device>> UpStreamServer
<<device>>
DownStreamProvider UpStreamProvider
<<deploy>> <<deploy>>
Synchroniser<<device>>Synchronizer<<deploy>>
Local Area Connection Local Area Connection
HTTP/ Local Area Connection HTTP/ Local Area Connection
WatchDog<<device>>power connection
WaveService<<device>>
![Page 16: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/16.jpg)
Deploy Diagramnode instances and component instances
![Page 17: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/17.jpg)
jdso:Clientrjcf:Client
serverDispatcher:ServerDispatcher serverDispatcher2:ServerDispatcher
HTTPHTTP HTTP
HTTP
serverProvider:ServerProvider serverProviderBackup:ServerProvider
HTTP/Local Area Connection
XMPPextensionServer:PlugServer HTTP
radon: Client
HTTP
serverProvider:ServerProvider HTTP
XMPP
![Page 18: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/18.jpg)
waveService1:WaveService waveService2:WaveService
watchDog1:WatchDog
watchDog2:WatchDog
power connectionpower connection
synchronizer:Synchroniser
Local Area Connection
Local Area Connection
upStream:UpStreamServer
HTTPLocal Area Connection
Local Area Connection
Local Area Connection
+Local Area Connection
+HTTP
downStream1:DownStreamServer downStream2:DownStreamServer
serverProvider:ServerProvider
![Page 19: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/19.jpg)
waveService3:WaveService
watchDog3:WatchDog
power connection
Local Area Connection
downStream3:DownStreamServer
serverProvider2:ServerProvider
HTTP/Local Area Connection
synchronizer2:Synchronizer
Local Area Connection
![Page 20: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/20.jpg)
jdso:Clientrjcf:Client
serverDispatcher:ServerDispatcher serverDispatcher2:ServerDispatcher
HTTPHTTP HTTP
HTTP
serverProvider:ServerProvider serverProviderBackup:ServerProvider
HTTP/Local Area Connection
XMPP
waveService1:WaveService waveService2:WaveService waveService3:WaveService
BackUpWaveService:WaveService
watchDog1:WatchDog
watchDog2:WatchDog
watchDog3:WatchDog
power connection
power connection
power connection
watchDogOfBackUp:WatchDog
power connection
synchronizer:Synchroniser
synchronizer2:Synchronizer
Local Area Connection
Local Area Connection
Local Area Connection
downStream1:DownStreamServer downStream2:DownStreamServer
downStream3:DownStreamServer
upStream:UpStreamServer
HTTPLocal Area Connection
Local Area Connection
Local Area Connection
+Local Area Connection
+HTTPHTTP
Local Area Connection
extensionServer:PlugServer HTTP
radon: Client
HTTP
serverProvider2:ServerProvider HTTP
XMPP
serverProvider2:ServerProvider
HTTP/Local Area Connection
![Page 21: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/21.jpg)
Decisões ArquiteturaisLinguagem para o Backend- Java
Prós: Independente de plataforma, Grande aceitação na comunidade, Portabilidade.
Contra: Desempenho.Utilização de Java + Flex para
implementação do Frontend.Requisitos: Usabilidade/Extensibilidade
(Plugins)Pós: Interface rica e bem flexível.Alternativa: Ajax
![Page 22: José Dihego, Rafael Fonseca e Rafael Bernardo jdso, rjcf, rbdb{@cin.ufpe.br}](https://reader036.fdocuments.us/reader036/viewer/2022062512/552fc134497959413d8d822b/html5/thumbnails/22.jpg)
Decisões ArquiteturaisUtilização do protocolo XMPP
Requisito: Comunicação distribuída e Descentralizada, Segurança.
Pós: Comunicação descentralizada. Vários servidores são utilizados para a comunicação entre diversas entidades. Não ha um ponto central de falha.
...