Interface de contrôle et de commande MSG

Preview:

Citation preview

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Interface de contrôle et de commande MSG

Benoît Larroque1

1Pôle ATISÉcole Supérieure d’Electronique d’Informatique et d’Automatique

Projet XL

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Sommaire

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

En image

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Plus précisément

On souhaite une interface avec les capacités :

• Accéder aux images à distance• Faire des requêtes (temporelles, géographiques)• Surveiller les machines

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Plus précisément

On souhaite une interface avec les capacités :

• Accéder aux images à distance• Faire des requêtes (temporelles, géographiques)• Surveiller les machines

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Plus précisément

On souhaite une interface avec les capacités :

• Accéder aux images à distance• Faire des requêtes (temporelles, géographiques)• Surveiller les machines

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Station

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Ruby on Rails

• Open source• Framework MVC• Fournit une abstraction de la base de données

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Ruby on Rails

• Open source• Framework MVC• Fournit une abstraction de la base de données

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Ruby on Rails

• Open source• Framework MVC• Fournit une abstraction de la base de données

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

PostgreSQL et PostGIS

• Open source• Robuste et performant (+ de 377760images en bases)

• Extensible, ajout des primitivesgéographiques

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

PostgreSQL et PostGIS

• Open source• Robuste et performant (+ de 377760images en bases)

• Extensible, ajout des primitivesgéographiques

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

PostgreSQL et PostGIS

• Open source• Robuste et performant (+ de 377760images en bases)

• Extensible, ajout des primitivesgéographiques

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Schéma

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

SchémaDeux types d’utilisateurs→utilisateurs et possesseurs de jetons

• ont tous des droits (admin, lecteur, analyste. . . )• un possesseur de jetons ne peut pas être admin

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Design

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

• xHTML léger pour un téléchargement plus rapide• Facilement modifiable par conception• Multi-résolution (conçu pour 1024×768)

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

• xHTML léger pour un téléchargement plus rapide• Facilement modifiable par conception• Multi-résolution (conçu pour 1024×768)

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

• xHTML léger pour un téléchargement plus rapide• Facilement modifiable par conception• Multi-résolution (conçu pour 1024×768)

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Recherche

• Formulaire permettant de chercher par :• Date (début et fin)• Canal (ex : VIS008, VIS006, IR_039. . . )• Coordonnées Géographiques (latitude, longitude)

• Les résultats sont affichés dans un tableau réordonnable

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Recherche

• Formulaire permettant de chercher par :• Date (début et fin)• Canal (ex : VIS008, VIS006, IR_039. . . )• Coordonnées Géographiques (latitude, longitude)

• Les résultats sont affichés dans un tableau réordonnable

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Monitoring

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Généralités

• Certaines informations sont disponibles pour lesprogrammeurs :

• Accès REST (Support code d’erreurs HTTP etauthentification, stateless)

• Réponses en xHTML, XML, JSON, YAML et bien sûr PNG,JPEG, PGM.BZ2

FactBibliothèque d’accès Ruby déjà disponible

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Généralités

• Certaines informations sont disponibles pour lesprogrammeurs :

• Accès REST (Support code d’erreurs HTTP etauthentification, stateless)

• Réponses en xHTML, XML, JSON, YAML et bien sûr PNG,JPEG, PGM.BZ2

FactBibliothèque d’accès Ruby déjà disponible

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Endpoints• Images :

• /images/index. :format → liste d’image (params. : pagination,ordre)

• /images/search. :format→recherche d’image (params. :précédent et recherche )

• /image/ :id. :format→Infos sur une image ou binaire de l’image• images/coverage. :format→Couverture géographique et

spatiale• Composition : composite/compose. :format (params. : canaux)• Monitoring : monitor/inst_info/ :machine. :format• Analyses

• analysis/images_to_process/ :id. :format (params :pagination)

• analysis/set_result/ :id. :format (params. analyse, image,résultat)

• analysis/results/ :id. :format

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Endpoints• Images :

• /images/index. :format → liste d’image (params. : pagination,ordre)

• /images/search. :format→recherche d’image (params. :précédent et recherche )

• /image/ :id. :format→Infos sur une image ou binaire de l’image• images/coverage. :format→Couverture géographique et

spatiale• Composition : composite/compose. :format (params. : canaux)• Monitoring : monitor/inst_info/ :machine. :format• Analyses

• analysis/images_to_process/ :id. :format (params :pagination)

• analysis/set_result/ :id. :format (params. analyse, image,résultat)

• analysis/results/ :id. :format

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Endpoints• Images :

• /images/index. :format → liste d’image (params. : pagination,ordre)

• /images/search. :format→recherche d’image (params. :précédent et recherche )

• /image/ :id. :format→Infos sur une image ou binaire de l’image• images/coverage. :format→Couverture géographique et

spatiale• Composition : composite/compose. :format (params. : canaux)• Monitoring : monitor/inst_info/ :machine. :format• Analyses

• analysis/images_to_process/ :id. :format (params :pagination)

• analysis/set_result/ :id. :format (params. analyse, image,résultat)

• analysis/results/ :id. :format

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Endpoints• Images :

• /images/index. :format → liste d’image (params. : pagination,ordre)

• /images/search. :format→recherche d’image (params. :précédent et recherche )

• /image/ :id. :format→Infos sur une image ou binaire de l’image• images/coverage. :format→Couverture géographique et

spatiale• Composition : composite/compose. :format (params. : canaux)• Monitoring : monitor/inst_info/ :machine. :format• Analyses

• analysis/images_to_process/ :id. :format (params :pagination)

• analysis/set_result/ :id. :format (params. analyse, image,résultat)

• analysis/results/ :id. :format

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Fait

FactL’interface est conçue pour nécessiter peu de maintenance

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Opérations de maintenance

• Surveiller la tailles des logs• tail log/production.log > log/production.log

• Surveiller la bonne marche de PostgreSQL• VACCUM FULL ANALYZE

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Opérations de maintenance

• Surveiller la tailles des logs• tail log/production.log > log/production.log

• Surveiller la bonne marche de PostgreSQL• VACCUM FULL ANALYZE

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

En cas de problème

• Regarder les logs du serveur• redémarrer lighttpd

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Lignes directrices

MotivationPourquoi une nouvelle interface ?

Interface MSGStationTechnologies utiliséesModélisationInterface utilisateurUtilisation

API, Maintenance, PerspectivesAPIMaintenancePerspectives d’avenir

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Idées de projet

Nombreuses !

• Analyses déportées• Client lourd, interfaçage Google Earth• Aide à la destruction des images inintéressantes

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Idées de projet

Nombreuses !

• Analyses déportées• Client lourd, interfaçage Google Earth• Aide à la destruction des images inintéressantes

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Idées de projet

Nombreuses !

• Analyses déportées• Client lourd, interfaçage Google Earth• Aide à la destruction des images inintéressantes

Motivation Interface MSG API, Maintenance, Perspectives Conclusion

Conclusion

• Enfin une interface simple et accessible à tous.• Facile à maintenir.• Un projet intéressant.

Appendices

One more thing...

Film

Appendices

Coder e q u i r e ’ a t i s ’r e q u i r e ’ RMagick ’i n c l u d e MagickTOKEN=’ 1∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗TOKEN∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗e ’de f compos i t e ( tab )

tab .map{ | f | f . s ave ( ’ / v e r s a t i l e / ’+f . f i l e n ame ) }t=tab . c o l l e c t { | f | pu t s f . f i l e n ame ; ( Image . r ead ( ’ / v e r s a t i l e / ’+f .

f i l e n ame ) ) [ 0 ] ; }Image . combine ( t [ 0 ] , t [ 1 ] , t [ 2 ] ) . thumbna i l (1080 ,1080) . w r i t e ( " . / out /

compos i te−#{tab . f i r s t . date . s t r f t i m e ( ’%Y%m%d%H%M’) } . png" )put s " compos i te−#{tab . f i r s t . date . s t r f t i m e ( ’%Y%m%d%H%M’) } . png"tab .map{ | f | F i l e . u n l i n k ( ’ / v e r s a t i l e / ’+f . f i l e n ame ) }

endput s "START␣SCRIPT"con=At i sConne c t i on . new ( : token => TOKEN)s=At i s S e a r c h . new conr e t={}cache=Di r . new ( ’ . / out / ’ ) . r e j e c t { | t | t [0]== ’ . ’ [ 0 ] } . c o l l e c t { | t | Time . r ead (

F i l e . basename ( t , ’ . png ’ ) . s p l i t ( ’− ’ ) . l a s t ) }s . s e a r c h ( : channe l => [ ’ VIS006 ’ , ’ VIS008 ’ , ’ IR_016 ’ ] , : end =>Time . read ( "

200901111200" ) , : beg i n => Time . utc (2009) ) do | im |r e t [ im . date ]=Hash . new i f r e t [ im . date ] . n i l ?r e t [ im . date ] [ im . channe l ]=im u n l e s s cache . i n c l u d e ? im . datei f r e t [ im . date ] . s i z e > 2

put s "compose␣#{im . date }"compos i t e ( [ r e t [ im . date ] [ ’ IR_016 ’ ] , r e t [ im . date ] [ ’ VIS008

’ ] , r e t [ im . date ] [ ’ VIS006 ’ ] ] )end: more

end

Appendices

One other thing

Deuxième film

Appendices

Coder e q u i r e ’ a t i s ’r e q u i r e ’ RMagick ’i n c l u d e MagickTOKEN=’ 1∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗TOKEN∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗∗e ’put s "START␣SCRIPT"con=At i sConne c t i on . new ( : token => TOKEN) ; s=At i s S e a r c h . new con ; r e t={}cache=Di r . new ( ’ . / out / ’ ) . r e j e c t { | t | t [0]== ’ . ’ [ 0 ] } . c o l l e c t { | t | Time . r ead (

F i l e . basename ( t , ’ . png ’ ) . s p l i t ( ’− ’ ) . l a s t ) }cache2=Di r . new ( ’ . / out2 / ’ ) . r e j e c t { | t | t [0]== ’ . ’ [ 0 ] } . c o l l e c t { | t | Time . r ead

( F i l e . basename ( t , ’ . png ’ ) . s p l i t ( ’− ’ ) . l a s t ) }b l a c k = Magick : : Image . new (1080 ,1080) { s e l f . background_co lo r = ’ b l a c k ’ }s . s e a r c h ( : channe l => [ ’ IR_039 ’ ] , : end =>Time . read ( "200901111200" ) , :

beg i n => Time . utc (2009) ) do | im |i f ( cache . i n c l u d e ?( im . date ) && ! cache2 . i n c l u d e ?( im . date ) )

put s "compose␣#{im . date }"i=Image . r ead ( " . / out / compos i te−#{im . date . s t r f t i m e ( ’%Y%m%d

%H%M’) } . png" ) [ 0 ]i . f u z z="5.1%" ; t r a n s=i . t r a n s p a r e n t ( ’ b l a c k ’ )im . save ( ’ / v e r s a t i l e / ’+im . f i l e n ame )n_ight=(Image . r ead ( ’ / v e r s a t i l e / ’+im . f i l e n ame ) [ 0 ] ) .

thumbna i l (1080 ,1080)n i g h t=Magick : : Image . combine ( b l a c k . copy , n_ight , b l a c k . copy

)p=n i g h t . compos i t e ( t r an s , 0 , 0 , Magick : : OverCompositeOp )p . w r i t e ( " . / out2 / compos i te2−#{im . date . s t r f t i m e ( ’%Y%m%d%H%

M’) } . png" ) { s e l f . depth=8}F i l e . u n l i n k ( ’ / v e r s a t i l e / ’+im . f i l e n ame )

end: more

end

Recommended