Traduisez

Translate to EnglishÜbersetzen Sie zum Deutsch/GermanΜεταφράστε στα ελληνικά/GreekПереведите к русскому/RussianOversetter til Norsk/NorwegianÖversätta till Svensk/Swedishहिन्दी अनुवाद करने के लिए/Hindi
Tradueix al català/CatalanTulkot uz latviešu/LatvianPreložiť do slovenčiny/SlovakVertaal aan het Nederlands/Dutchترجمة الى العربية/ArabicTraduzca al Español/SpanishTraduisez au Français/French
Traduca ad Italiano/ItalianTraduza ao Português/Portuguese日本語に翻訳しなさい /Japanese한국어에게 번역하십시오/Korean中文翻译/Chinese Simplified中文翻译/Chinese TraditionalПереклад на українську/Ukrainian
L'image de RHCE Red Hat a certifié le guide d'étude de Linux d'ingénieur (examen RH302) (la presse de certification)
Image de XSLT 2.0 et de référence de programmeur de XPath 2.0 (programmeur au programmeur)
Image des concepts du système d'exploitation
Image des logiciels d'exploitation modernes (3ème édition)

RSS Ingester pour le VIM de référence de XAM

Récemment SNIA a libéré une nouvelle version du XAM SDK avec un bon nombre de nouveaux dispositifs. Été inclus dans ce SDK a un nouveau VIM de référence. Ce poteau te montre comment employer ce SDK pour écrire une petite application d'ingester de RSS dans Java ce qui emploie le nouveau VIM de référence comme système de stockage de XAM.

Cours d'instruction d'Amazone SimpleDB Typica

Ce poteau discute comment employer la bibliothèque de Java Typica pour accéder et manoeuvrer à des données stockées dans un service d'Amazone SimpleDB. Un certain nombre d'exemples complets, s'étendant très de simple à plus avancé, sont fournis.

Langage d'interrogation de XAM

Aussi bien que fournir des moyens fournisseur-indépendants de la création, recherchant, modifiant et supprimant XSets, les spécifications de SNIA XAM v1.0 définissent également un langage d'interrogation (XAM QL), basé sur un sous-ensemble de la langue de SQL, parce que de choisir et de rechercher le XUIDs de XSets basé sur des critères contenu-définis.

L'ensemble de mots réservés pour ce langage d'interrogation est tout à fait petit : choisissez, où, et, ou, pas, comme, existe, lier, inaltérable, typeof, longueur, date, VRAIS, FAUX, avant que, après, contienne, et en dedans. Par conception, les questions de XAM ressemblent à un rapport choisi de SQL. Le langage d'interrogation est ne distinguant pas majuscules et minuscules et emploie le jeu de caractères d'ASCII.

Voici un exemple d'une question simple de XAM : choisissez « .xset.xuid » où « com.example.name » = 'Tuckers Plantation

La version 1.0 des spécifications de XAM définit deux niveaux d'appui de langage d'interrogation, le niveau 1 c.-à-d. du niveau 1 et du niveau 2. définit des questions sur des propriétés et des attributs de champ dans XSets et est obligatoire. N'importe quelles valeurs d'une propriété de XSet qui sont accessibles à un programme d'application par l'intermédiaire de la bibliothèque de XAM peuvent être questionnées. Le niveau 2 prolonge le niveau 1 aux questions de soutien sur XStreams et est facultatif. Les deux niveaux de question sont accédés par un type simple et défini du travail que tous les fournisseurs de XAM doivent soutenir. Puisqu'aucun fournisseur que je me rends compte de n'a des questions du niveau réellement mis en application 2, le reste des foyers de ce poteau sur des questions du niveau 1.

Une instruction du langage de requêtes de XAM se compose d'une clause choisie obligatoire suivie d'un facultatif où clause. Pour XAM v1.0 la seule clause choisie valide est le `choisi .xset.xuid'. Ceci spécifie que l'application demande une liste de valeurs de XUID. Par exemple choisissez « .xset.xuid »

renverra une liste de chaque XSet qui est lisible à l'heure de la question.

Où la clause est employée pour spécifier un sous-ensemble de XSets à assortir. Pour des questions du niveau 1 elle est limitée aux comparaisons entre les propriétés de XSet et les valeurs et/ou les attributs de champ littéraux et les valeurs littérales. choisissez « .xset.xuid » où « .xam.time.xuid » > la date ('2009-02-01T00 : 00 : 00.0 ')

renverra la liste de tout le Xsets qui ont été créés dessus ou après le 1er février 2009.

Les expositions suivantes de table qui mettent en place et des types littéraux peuvent être bien comparés. xam_intxam_doublexam_stringxam_datetimexam_xuid international ** double ** datetime* XUID* de string* que la bibliothèque de XAM valide que les cordes et les libéraux de cordes sont les cordes UTF-8 de conformation. Les constantes de chaîne UTF-8 non conformes produisent d'une erreur de syntaxe non fatale de question de XAM. Les issues telles que simple contre les caractères multiples de glyph et les caractères non imprimables sont non spécifiées et

XAM a exigé des champs

Dans ce poteau je regarde quels champs sont exigés par les spécifications de SNIA XAM v1.0 et écris une petite application de Java pour rechercher leurs valeurs par défaut VIM utilisant de XAM de référence de VIM et d'EMC Centera XAM.

Qu'est signifié par un champ dans XAM ? Selon la section 3.1.5 des spécifications v1.0 de XAM, la partie, un champ est un morceau de données uniquement identifiables qui peuvent être attachées à un XSet, à un XSystem, ou à une bibliothèque de XAM.

Plus concrètement, un champ a un nom, un certain nombre d'attributs qui décrivent comment agir l'un sur l'autre avec l'objet, et une valeur. N'importe quel objet primaire de XAM, c.-à-d. un XSystem, un XSet, ou un objet de bibliothèque de XAM peut contenir un ou plusieurs champs.

Les noms de champ sont les cordes codées par UTF-8 sentitive de cas avec une longueur maximum de 512 bytes et d'aucuns caractères NULS inclus. Pour éviter des désaccords de namespace, le namespace de champ est assigné des fournisseurs de système entre de SNIA, de XAM stockage et des fournisseurs d'application de XAM. La table suivante montre le namespace actuellement réservé pour des noms de champ : NAMESPACEDESCRIPTION .xam.* Le XAM Bibliothèque-a possédé la partie du namespace. Des champs dans ce namespace seront définis dans ces spécifications et ses suites et pas prolongés par des fournisseurs de système de stockage de XAM. .xsystem.*The XSystem-a possédé la partie du namespace. Des champs dans ce namespace seront définis dans ces spécifications et ses suites et pas prolongés par des fournisseurs de système de stockage de XAM. .xset.* la partie XSet-possédée du namespace. Des champs dans ce namespace seront définis dans ces spécifications et ses suites et pas prolongés par des fournisseurs de système de stockage de XAM. le système de .vnd.<reverseDNS>.*The XAM fournisseur-a possédé le namespace dans le namespace de XSystem, où est le nom de DNS renversé de fournisseur de système de stockage de XAM org.snia.*Reserved pour SNIA org.snia.xam.* réservé pour SNIA FCWG pour éviter des désaccords de namespace de champ entre les fournisseurs de système de stockage de XAM dans le namespace franc restant et l'aleviate le besoin d'enregistrement central de nom de champ de XAM, la première partie d'un fournisseur que le nom de champ sera le Domain Name du fournisseur à l'envers l'ordre, suivi du nom de champ fournisseur-défini, par exemple com.emc.centera.xam.vim.version.

Comme mentionly précédemment un champ peut avoir des attributs. Les quatre attributs suivants sont exigés par les spécifications de XAM : ATTRIBUEZ le type de MIME de NAMEDESCRIPTION TypeThe de la valeur. Le type attribut sera US-ASCII codé avec une longueur maximum de 512 bytes. Valeur booléenne de BindingA indiquant si le champ est lié au XUID du XSet. Valeur booléenne de ReadonlyA

Format canonique de XAM

Une des conditions principales pour réaliser la persistance à long terme de données est la capacité de déplacer des données entre archiver des systèmes ou, dans la langue des spécifications de SNIA XAM (méthode d'accès extensible), déplaçant XSets entre XSystems.

Les spécifications de XAM v1.0 soutiennent cette condition en fournissant l'appui pour exporter et importer Xsets.  Elles spécifient les méthodes employées pour exporter un XSet d'un XSystem, du format d'échange de données canonique résultant de XSet (paquet) et des méthodes employées pour importer un Xset dans un Xsystem. 

Ce poteau suppose que vous êtes quelque peu familiarisé avec XAM et comment programmer selon ces spécifications utilisant Java.  Il se concentre sur le format et le contenu du paquet canonique de format de XSet qui se compose de deux parts principales : un document de XML qui décrit les politiques, les propriétés et les jets de l'un ou plusieurs XSets a suivi de la représentation binaire des jets.

Le format de paquet se conforme à la recommandation de empaquetage optimisée XML-binaire de 2005 W3C (XOP). Pour citer de la recommandation :

XOP définissent un mécanisme d'usage universel de fabrication en série pour le XML Infoset avec le contenu binaire qui s'applique non seulement au SAVON et au MIME empaquetant, mais à n'importe quel XML Infoset et n'importe quel mécanisme de empaquetage.

Si vous êtes peu familier avec XOP, et la plupart des personnes sont, un article par Andrey Butov dans l'édition du décembre 2005 de Journal de docteur Dobb's a contenu une bonne introduction.

Plus d'un XSet peut être contenu dans un paquet.  Cependant l'exécution courante de référence de XAM SDK soutient seulement un XSet.  Le document de XML (AKA le XSet manifeste) est un document valide et bien formé de XML dont l'élément de racine est des xsets.  Il peut être analysé et manoeuvré utilisant XSLT et d'autres outils de XML.  L'annexe B du document d'architecture de XAM contient une définition de schéma de XML (XSD) pour le XSet manifeste.

Afin d'étudier le format de paquet en plus détail, j'ai écrit une petite application de Java appelée StoreHelloWorld qui crée un nouveau XSet contenant deux XStreams.  Le premier Xstream contient le code source pour le programme omniprésent de HelloWorld.java.  Le deuxième XStream contient l'objet binaire HelloWorld.class codé à base64 et avec un type de MIME d'application/base64.  Normalement vous ne devriez pas coder un XStream mais le déploiement des dossiers binaires dans un blog est problématique et par conséquent le contournement.

Voici le code source pour StoreHelloWorld. fferedOutputStream de java.io.Bu d'importation ; fferedInputStream de java.io.Bu d'importation ; fferedReader de java.io.Bu d'importation ; importation java.io.Fi le ; leInputStream de java.io.Fi d'importation ; leOutputStream de java.io.Fi d'importation ; leNotFoundException de java.io.Fi d'importation ; leWriter de java.io.Fi d'importation ; exception de java.io.IO d'importation ; putStreamReader de java.io.In d'importation ; putStream de java.io.In d'importation ;