Réaliser de A à Z un webservice XML-RPC en Shell UNIX

Comprendre et mettre en place un webservice XML-RPC en Shell UNIX

Le XML-RPC est un truc simple : le client envoie une requête type web (comme celle du navigateur web) au format XML à un programme sur un serveur qui sert de webservice chargé de récupérer le XML. Dans ce XML, il y a une méthode appelée et ses paramètres à appliquer (les paramètres dépendent de la méthode). Après quelques vérifications protocolaires d'usage, le webservice analyse le XML pour extraire les informations donc il a besoin pour appeler la méthode avec ses paramètres puis il renvoie le résultat, au formt XML également.

Voyons concrètement avec un exemple.

Créer une copie ISO d'un disque amovible

Créer une copie ISO d'un CD ou DVD sous Windows ou UNIX avec dd

Sous Windows, pour créer la copie iso d'un CD-ROM ou DVD, il faudra :

  • Le CD ou DVD à copier

  • Le programme dd compilé pour Windows

Sous UNIX/LINUX, pour créer la copie iso d'un CD-ROM ou DVD, il faudra :

  • Le CD ou DVD à copier

Les interfaces réseaux sous FreeBSD

Configuration avancée des interfaces réseaux sous FreeBSD

Depuis aussi longtemps que Linux et FreeBSD existent, il y a des querelles afin de savoir lequel des deux systèmes est le meilleur. Et chacun a ses arguments pour démonter le système de son adversaire. Pour FreeBSD, par exemple, on entend souvent que ce n'est pas un système propre (comme Linux), car, par exemple, les cartes réseaux sont nommées de façon liée au matériel (plus exactement au pilote du matériel) et non pas, comme sous Linux, par un nom générique virtuel (eth0, eth1, ...).

Nous allons voir pourquoi la philosophie de nommage des périphériques sous FreeBSD est différente de Linux et surtout nous allons toucher du doigts les capacités et la versatilité de FreeBSD (sans chercher à remettre en question celles de Linux). A chacun ensuite de juger.

Transcoder avec VLC

Transcoder un fichier audio ou vidéo avec VLC

VLC est un logiciel qui permet non seulement de lire des vidéos ou de la musique, mais aussi d'effectuer un grand nombre d'opérations de transcodage afin d'adapter le mieux possible les formats aux technologies de l'utilisateur.

VLC

Diffuser en RTSP

Diffuser un flux (webcam) ou un fichier en RTSP avec VLC

Lorsqu'on veut diffuser un flux audio ou vidéo sur internet, le RTSP est un des protocoles les plus adaptés car il permet de diffuser à n'importe qui sans avoir besoin de définir l'adresse IP du client à l'avance. C'est ce qui en fait un protocole idéal pour la VOD (Vidéo à la demande).

Pour voir une application concrète, nous partirons sur le principe que nous voulons diffuser la vidéo d'une webcam pour, par exemple, réaliser une vidéosurveillance, sachant qu'à partir de cela, nous pouvons diffuser n'importe quel autre flux (fichier, DVB, etc.) ou retransmettre simplement un flux monodiffusion reçu par le serveur.

VLC

Lire deux fichiers avec VLC

Lire une vidéo et sa bande son dans deux fichiers séparés

Il arrive parfois que l'on possède ou enregistre pour des raisons diverses un fichier vidéo d'un côté, ne contenant que l'image et de l'autre, une ou plusieurs bandes son (une part doublage, par exemple). Le problème est d'arriver à lire la vidéo et la bande son choisie.

Avec VLC, c'est possible sous certaines conditions.

VLC

find

La commande find

Voici quelques options et exemples pour un usage quotidien de find.

bc

La calculatrice sous UNIX

bc est une calculatrice basique sous unix. Mais elle n'a de basique que le nom car elle permet d'avoir des possibilités et des fonctionnalités bien plus avancées que la plupart des calculatrices. bc est aux opérations mathématiques ce que awk est à la manipulation de texte.

Convertir un fichier plat en XML

Convertir un fichier plat en XML à l'aide d'une transformation XSL

Dans les transformation XSL nous voyons souvent des convertions d'un fichier XML en d'autres format (XHTML, HTML, XML, fichiers plats, etc.). Mais rarement l'inverse. Pourtant, avec une simple transformation XSL et quelques astuces, il est possible de convertir un fichier plat en un fichier xml qui pourra, par la suite, être travaillé et transformé plus aisément.

L'avantage de disposer du fichier plat au format XML permet de le manipuler plus aisément.

ls en couleurs

Utiliser le ls en couleurs sous UNIX

Par défaut, votre UNIX (dans cet exemple, FreeBSD) préféré vous propose des couleurs qui, à la longue peuvent lasser. Pour changer, un simple tour dans le man donne la solution à tous vos problèmes. ls est une commande qui possède de nombreuses fonctionnalités. Celles qui concernent la couleur indiquent ce qui suit.

Création automatisée de la navigation

Comment créer automatiquement la navigation dans les pages web

La cohérence d'un site web tient à l'enchaînement des pages qui le composent.

Cet enchaînement depend essentiellement de la façon dont les concepteurs (i.e administateurs, auteurs, designers, …) ont conçu l'information et la présentation. Parfois, il est délégué à un CMS. Mais plus le nombre de pages augmente, plus l'enchaînement est complexe à gérer, notamment si l'on souhaîte le modifier.

Voyons comment automatiser une partie de cette gestion et, en allant plus loin, comment la générer automatiquement.

RDFa ou Microdata ?

Quel format choisir ?

Le web sémantique est riche d'un certain nombre de vocabulaires, souvent sur despérimètres différents, parfois sur un même périmètre. Et il devient alors difficile de faire son choix.

Que vocabulaire utiliser, en effet ? Doit-on prendre le risque de soutenir un vocabulaire jeune mais efficace, ou bien un vocabulaire plus riche (trop) mais déjà bien installé.

SIOC: mise en œuvre

Décrire un forum avec SIOC

Les spécifications SIOC définissent la description RDF des communautés connectées (blogs, forums, wikis, etc.)

Elle permettent de décrire les interconnexions entre toutes les activités sociales publiques associées à des personnes.

Exemple d'activités sociales publiques
Exemple d'activités sociales publiques (source : W3C)

Voyons comment mettre en place concrètement ces spécifications.

at

Utilisations de la commande "at" sous UNIX

Sous UNIX, la commande at permet de différer des exécutions de commandes.

Les CGI

Créer et utiliser les CGI en shell UNIX

Les CGI permettent l'interfaçage entre le web et le serveur. Cela permet de tariter des formulaires, générer des pages dynamiquement, ajouter de l'intelligence. Les CGI peuvent être fait avec n'importe quel langage : PHP, perl... et le shell, bien entendu.

Mon choix personnel s'est porté sur le shell car je connais bien ce langage et je ne me voyais pas ajouter un langage supplémentaire sur mon serveur. Etant très mobile, cela me permet de créer mes CGI n'importe où, à partir du moment où je dispose d'un UNIX.

D'autre part, cela permet de transposer aisément des shells réalisés en local vers une utilisation délocalisée sans avoir à transcrire dans un autre langage.

xargs

Utilisation de xargs dans un shell UNIX

xarg est une commande UNIX puissante qui permet de récupérer les arguments passés par la commande précédente. Il permet d'éviter des structures lourdes comme :

[commande] | while read param
do
[traitement]
done

A la place, nous avons quelque chose de plus simple, de plus condensé :

[commande] | xargs [traitement]

date

Utilisations de la commande date sous UNIX

Dans un shell UNIX, la commande date permet de modifier, d'afficher la date ou encore d'effectuer quelques opérations.

NFS vs SAMBA

Choisir entre NFS ou SAMBA

Dans un environnement résau sous UNIX, le partage de ressources réseau est importante. Et comme le protocole Samba est maintenant implémenté par défaut sur la plupart des systèmes UNIX, la question du choix NFS ou SAMBA peut se poser.

xsl:attribute

Création d'un attribut à un élément

xsl:attribute permet de créer un attribut.

Exemple

<xsl:apply-templates select="TARGETFIELD">
<BALISE>
<xsl:attribute name="ATTRIBUT1">
<xsl:value-of select="./BALISE1"/>
</xsl:attribute>
<xsl:attribute name="ATTRIBUT2">
<xsl:value-of select="./BALISE2"/>
</xsl:attribute>
</BALISE>
</xsl:apply-templates>

donnera :

<BALISE ATTRIBUT1="valeur-balise1" ATTRIBUT2="valeur-balise2"/>

Conversion de l'encodage URL en UTF-8

Décodage de application/x-www-form-urlencoded en UTF-8 correspondant

Lors d'une communication entre un navigateur et un serveur Web, les données hors us-ascii sont converties dans un format spécial, x-www-form-urlencoded par défaut.

Par exemple la chaîne l'hiver est froid est convertie en l%E2%80%99hiver est froid.

la chaîne %E2%80%99 traduit l'entité &#x2019; mais nous voyons bien que les deux valeurs sont différentes. Pour traduire la valeur URl en valeur humainement exploitable, il faut faire un opération de conversion.