Alex maneu vict ria david mar larrosa pau roura brun
This presentation is the property of its rightful owner.
Sponsored Links
1 / 23

El Protocol -Server PowerPoint PPT Presentation


  • 87 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Alex maneu vict ria david mar larrosa pau roura brun

Alex Maneu Victòria

David Marí Larrosa

Pau Roura Brun

El Protocol -Server


Sessi

Sessió


Sistema window

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)


Protocol

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


Servidor

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).


Client

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


Gestor de window gestor de finestres

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


Funcionament gr fic

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


I la pila tcp ip

i la pila TCP/IP

  • Finestres remotes generalment sobre TCP/IP (AF_INET)

  • Finestres locals sobre sockets AF_UNIX


Caracter stiques del sistema window

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)


Caracter stiques del sistema window1

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


Displays

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


Exemple

Exemple

  • Cas pràctic en màquines separades

  • Redirecció de la sortida

    • [email protected]$ 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:

    • [email protected]$ 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)


El protocol server

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


Format dels missatges peticions

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.


Format dels missatges respostes i errors

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.


Format dels missatges events

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.


Toolkits

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)


Toolkits cont

Toolkits (cont.)

  • Es pot combinar l’ús de widgets i Xlib en una mateixa aplicació


Avantatges

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.


Inconvenients

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.


Links

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


Links cont

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


  • Login