1 / 23

El Protocol -Server

Alex Maneu Victòria David Marí Larrosa Pau Roura Brun. El Protocol -Server. Sessió. Sistema -Window. Format per Protocol de comunicació (X Protocol) API (Xlib): Defineix una interfície aplicacions  dispositius Desenvolupat al MIT als ‘80 com a part del projecte Athena.

hong
Télécharger la présentation

El Protocol -Server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Alex Maneu Victòria David Marí Larrosa Pau Roura Brun El Protocol -Server

  2. Sessió

  3. Sistema -Window • Format per • Protocol de comunicació (X Protocol) • API (Xlib): Defineix una interfície aplicacions  dispositius • Desenvolupat al MIT als ‘80 com a part del projecte Athena. • Necessitat d’una GUI transparent en xarxa sobretot per entorns UNIX • Format de les versions inclou nº de versió i de revisió (p.e. X11R6) • Especifica un model client-servidor a nivell d’aplicació • Client (aplicació) separat del servidor (display)

  4. Protocol • Especifica una capa dependent i una independent dels dispositius • Amaga les característiques del SO i del hardware • Ajuda a la portabilitat i al desenvolupament d’aplicacions • S’executa sobre la connexió de xarxa (orientat a connexió, generalment TCP) • Permet sol·licituds i respostes clientservidor • Descriu el format dels missatges intercanviats entre client i servidor

  5. Servidor • Programa dedicat a subministrar els serveis de display en un terminal gràfic a petició del client X • Gestiona • La pantalla • Els dispositius d’entrada (teclat, mouse, ...) • La sortida al display • El mapatge de colors • La càrrega de fonts • El mapatge de teclat • S’executa habitualment en PCs, terminals gràfics i terminals X (dissenyats per a executar servidors X).

  6. Client • És l’aplicació pròpiament dita • Dissenyada per a emprar una interfície gràfica d’usuari per a mostrar les seves sortides • Molts clients X competeixen pels serveis d’un servidor X per cada usuari i display • El gestor de finestres resol aquests conflictes

  7. Gestor de -Window (gestor de finestres) • Cas particular de client X • Localitzat a la mateixa màquina que el servidor X • Permet fer operacions sobre finestres (moure, redimensionar, etc) • No és necessari per a la creació de finestres

  8. Funcionament gràfic • El client X • Manté les finestres que ha creat • No s’ha de preocupar de quina part de la finestra és visible • Canvis efectuats en el display per altres altres clients són notificats mitjançant events del servidor X • Servidor X • Gestiona finestres visibles/no visibles utilitzant piles • No conté funcions de gestió, només retalla finestres

  9. i la pila TCP/IP • Finestres remotes generalment sobre TCP/IP (AF_INET) • Finestres locals sobre sockets AF_UNIX

  10. Característiques del sistema -Window • Concepte de client i servidor “invertit”! • El servidor s’executa en la màquina “client” • L’aplicació s’executa al servidor d’aplicacions i es mostra a la màquina client • Permet execució remota en entorns heterogenis • Permet utilitzar els serveis de RPC o APPC (Advanced Program to Program Communication)

  11. Característiques del sistema -Window Servidor d’aplicacions – executa Clients X Client – Executa Servidor X Client – Executa Servidor X Client – Executa Servidor X Client – Executa Servidor X

  12. Displays • Format per un servidor, pantalles i dispositius d’entrada • Per iniciar sessió les aplicacions es connecten al display • Display *XOpenDisplay(char *display_name)) • L’struct Display conté la informació sobre l’estat d’un display particular • Identificació:host:[:]num_servidor.num_display • Es numeren a partir de 0 • TCP • Port 0x5800+N per a clients Little Endian • Port 0x5900+N per a clients Big Endian

  13. Exemple • Cas pràctic en màquines separades • Redirecció de la sortida • puki@pistacho$ export DISPLAY=neoma:0.0 (en màquines BSD) • > setenv DISPLAY neoma:0.0 (en màquines SysV) • A la màquina local (servidor X) caldrà afegir el servidor remot a la llista de control d'accés: • dix@neoma$ xhost +pistacho • “Automatitzable” amb ssh • Servidor d’aplicacions amb servidor ssh i l'opció X11Forwarding posada a yes a l'arxiu /($ETC)/ssh/sshd_config)

  14. lib • API del sistema X-Window • Funcions C encastades en els clients X • Accés de més baix nivell a l’X Protocol • Peticions clients  Sol·licituds X Protocol • Analitzen missatges dels servidors X (events, respostes, errors) • Subministren utilitats addicionals (Xpermalloc()) • Clients X envien peticions al servidor X • Servidor X respon amb missatges de resposta o error • Servidor X envia missatges d’event als clients X

  15. Format dels missatges: Peticions • Cada petició conté: • Header de 4 bytes que inclou: • Un opcode de 8 bits (major opcode) que correspon a una crida de la Xlib • Un camp de longitud de 16 bits que expressa la (longitud total incloent el header)/4 • Un byte de dades (minor opcode a les extensions) • 0 o més bytes de dades • Els opcodes de 128 a 255 estan reservats per a extensions. Les extensions poden contenir múltiples peticions, i utilitzen el minor opcode. • A cada petició se li assigna implícitament un número de seqüència, començant per 1, que s’utilitza a les respostes, errors i events. • Cada petició té un tamany mínim i màxim; si el camp de longitud està fora de rang, es produeix un error.

  16. Format dels missatges: Respostes i Errors • Cada resposta conté: • Un camp de 32 bits que expressa la longitud total/4 • 32 bytes seguits de 0 o més bytes addicionals de dades • Els 16 bits menys significatius del número de seqüència de la petició corresponent • Els paquets d’error són de 32 bytes. Cada error inclou: • Un codi d’error de 8 bits • Major opcode de la petició • Minor opcode de la petició • Els 16 bits menys significatius del número de seqüència de la petició • Informació necessària en determinats tipus d’errors • Els codis d’error del 128 a 255 estan reservats per a extensions.

  17. Format dels missatges: Events • Els paquets d’events són de 32 bytes. Cada event conté: • Un codi de tipus de 8 bits. Si aquest event l’ha generat una petició SendEvent, el bit més alt està a 1. • Els 16 bits menys significatius del número de seqüència de l’última petició feta pel client que el servidor està processant (o ja ha processat). • Els codis d’event del 64 al 127 estan reservats per a extensions.

  18. Toolkits • Problema: complexitat del codi que usa Xlib • Toolkits: Llibreries que afegeixen funcionalitats d’alt nivell • Implementen “widgets”: botons, menús, etc. • Alguns exemples: • QT • GTK+ • Xt (MIT) • Xaw [3D] (Athena)

  19. Toolkits (cont.) • Es pot combinar l’ús de widgets i Xlib en una mateixa aplicació

  20. Avantatges • Usuari i programador no noten la diferència entre el funcionament local i remot. • Servidor X portable i ofereix suport per diversos llenguatges i sistemes operatius. • Clients X són força portables. • Sistema X-Window suporta qualsevol protocol de xarxa orientat a connexió. • Rendiment de les aplicacions poc afectat. • Les aplicacions no han de conèixer les característiques hardware del terminal. • Les aplicacions no tenen perquè estar a la mateixa màquina que el terminal. • Es poden afegir terminals d’arquitectura diferent proporcionant un servidor X adequat. • El programador no s’ha de preocupar de les comunicacions, només ha d’escriure aplicacions gràfiques per a X, amb independència de si s’utilitzaran de forma local o remota.

  21. Inconvenients • El sistema X Window consumeix molts recursos • No hi ha una GUI unificada ni polítiques sobre el tema • La interfície de programació no és còmoda d’utilitzar (problema parcialment solucionat pels toolkits, però no n’hi ha cap que sigui dominant). • Les dades viatgen sense encriptar • Es complicat gestionar les autoritzacions i controls d’accés • El suport de fonts no ofereix serveis com “antialiasing”, i és complicat utilitzar charsets com UNICODE. • Una aplicació (client X) no pot indicar al servidor que només li envïi un tipus determinat d’events, per la qual cosa s’envien tots i es pot arribar a generar trànsit innecessari.

  22. Links • X Consortium:http://www.x.org • XFree86 Project:http://www.xfree86.org/ • Enllaços a informació sobre X:http://www.rahul.net/kenton/xsites.html • Principis de disseny de X: http://www.motifzone.com/tmd/articles/XDesign/xdesign.html • Funcionament de X: http://hissa.nist.gov/rbac/titlehce/node25.html • Informació TCP/IP: http://ditec.um.es/laso/docs/tut-tcpip/3376fm.html • Is X bloated?:http://www.cbbrowne.com/info/xbloat.html

  23. Links (cont.) • RFC 1013: http://www.faqs.org/rfcs/rfc1013.html • Xlib complete reference: http://www.msu.edu/~huntharo/xwin/docs/xwindows/XWINSYS.pdf • Documentació sobre X: http://www.x-docs.org

More Related