Table de hachage distribuéeUne table de hachage distribuée (ou DHT pour Distributed Hash Table), est une technique permettant la mise en place d’une table de hachage dans un système réparti. Une table de hachage est une structure de données de type clé → valeur. Chaque donnée est associée à une clé et est distribuée sur le réseau. Les tables de hachage permettent de répartir le stockage de données sur l’ensemble des nœuds du réseau, chaque nœud étant responsable d’une partie des données.
Calcul distribuéUn calcul distribué, ou réparti ou encore partagé, est un calcul ou un traitement réparti sur plusieurs microprocesseurs et plus généralement sur plusieurs unités centrales informatiques, et on parle alors d'architecture distribuée ou de système distribué. Le calcul distribué est souvent réalisé sur des clusters de calcul spécialisés, mais peut aussi être réalisé sur des stations informatiques individuelles à plusieurs cœurs. La distribution d'un calcul est un domaine de recherche des sciences mathématiques et informatiques.
ChordChord est un réseau de recouvrement de type table de hachage distribuée pour les réseaux pair à pair (P2P). Chord est une des premières tables de hachage distribuées, parmi CAN, Tapestry et Pastry. Chord a été présenté en 2001 par Ion Stoica, Robert Tappan Morris, David Karger, Frans Kaashoek, et Hari Balakrishnan, et a été développé au MIT. Il a pour particularité de disposer d'algorithmes d'une complexité d'au plus requêtes pour trouver une information dans un anneau de N éléments.
Pair-à-pairLe pair-à-pair ou système pair à pair (en anglais peer-to-peer, souvent abrégé « P2P ») est un modèle d'échange en réseau où chaque entité est à la fois client et serveur, contrairement au modèle client-serveur. Les termes « pair », « nœud » et « utilisateur » sont généralement utilisés pour désigner les entités composant un tel système. Un système pair à pair peut être partiellement centralisé (une partie de l'échange passe par un serveur central intermédiaire) ou totalement décentralisé (les connexions se font entre participants sans infrastructure particulière).
Hachage cohérentLe hachage cohérent est un type particulier de hachage. Lorsque la table de hachage change de taille et que le hachage cohérent est employé, seulement clés ont besoin d’être redistribuées en moyenne, où est le nombre de clés et est le nombre d'éléments dans la table de hachage. En comparaison, dans une table de hachage classique, un changement dans le nombre d'éléments de la table a pour conséquence la réorganisation de l'ensemble ou presque des clés. À l'origine conçue par Karger et coll.
Clustered file systemA clustered file system is a which is shared by being simultaneously mounted on multiple servers. There are several approaches to clustering, most of which do not employ a clustered file system (only direct attached storage for each node). Clustered file systems can provide features like location-independent addressing and redundancy which improve reliability or reduce the complexity of the other parts of the cluster. Parallel file systems are a type of clustered file system that spread data across multiple storage nodes, usually for redundancy or performance.
SystèmeUn système est un ensemble d' interagissant entre eux selon certains principes ou règles. Par exemple une molécule, le système solaire, une ruche, une société humaine, un parti, une armée etc. Un système est déterminé par : sa frontière, c'est-à-dire le critère d'appartenance au système (déterminant si une entité appartient au système ou fait au contraire partie de son environnement) ; ses interactions avec son environnement ; ses fonctions (qui définissent le comportement des entités faisant partie du système, leur organisation et leurs interactions) ; Certains systèmes peuvent également avoir une mission (ses objectifs et sa raison d'être) ou des ressources, qui peuvent être de natures différentes (humaine, naturelle, matérielle, immatérielle.
Cycle de développement (logiciel)Il existe différents types de cycles de développement entrant dans la réalisation d'un logiciel. Ces cycles prennent en compte toutes les étapes de la conception d'un logiciel. Ce cycle de développement est aussi utilisé dans l'industrie aéronautique et spatiale pour définir des systèmes, ou des sous systèmes embarqués ou au sol qu'ils incluent ou pas de l'informatique. vignette|Évolution des cycles basiques vignette|Modèle en cascade Modèle en cascade Le modèle en cascade est issu du développement de logiciels.
Algorithme de DijkstraEn théorie des graphes, l'algorithme de Dijkstra (prononcé ) sert à résoudre le problème du plus court chemin. Il permet, par exemple, de déterminer un plus court chemin pour se rendre d'une ville à une autre connaissant le réseau routier d'une région. Plus précisément, il calcule des plus courts chemins à partir d'une source vers tous les autres sommets dans un graphe orienté pondéré par des réels positifs. On peut aussi l'utiliser pour calculer un plus court chemin entre un sommet de départ et un sommet d'arrivée.
Systems scienceSystems science, also referred to as systems research, or, simply, systems, is a transdisciplinary field concerned with understanding systems—from simple to complex—in nature, society, cognition, engineering, technology and science itself. The field is diverse, spanning the formal, natural, social, and applied sciences. To systems scientists, the world can be understood as a system of systems.
Snapshot isolationIn databases, and transaction processing (transaction management), snapshot isolation is a guarantee that all reads made in a transaction will see a consistent snapshot of the database (in practice it reads the last committed values that existed at the time it started), and the transaction itself will successfully commit only if no updates it has made conflict with any concurrent updates made since that snapshot.
Ingénierie des systèmesL'ingénierie des systèmes ou ingénierie système est une approche scientifique interdisciplinaire, dont le but est de formaliser et d'appréhender la conception et la validation de systèmes complexes. L'ingénierie des systèmes a pour objectif de maîtriser et de contrôler la conception de systèmes dont la complexité ne permet pas le pilotage simple. Par système, on entend un ensemble d'éléments humains ou matériels en interdépendance les uns les autres et qui inter-opèrent à l'intérieur de frontières ouvertes ou non sur l'environnement.
Blockchainvignette|redresse|Représentation d’une chaîne de blocs. La chaîne principale (en noir) est composée de la plus longue suite de blocs après le bloc initial (vert). Les blocs orphelins sont représentés en violet. Une blockchain, ou chaîne de blocs, est une technologie de stockage et de transmission d'informations sans autorité centrale. Techniquement, il s'agit d'une base de données distribuée dont les informations envoyées par les utilisateurs et les liens internes à la base sont vérifiés et groupés à intervalles de temps réguliers en blocs, formant ainsi une chaîne.
Software development processIn software engineering, a software development process is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.
Système de systèmesUn système de systèmes est un système constitué de systèmes constituants hétérogènes. Un système de système a des capacités plus grandes que la somme des fonctions de ses systèmes constituants. Un système de système se caractérise par: Une indépendance opérationnelle de ses systèmes constituants Une indépendance managériale de ses systèmes Une distribution géographique marquée de ses systèmes constituants Un processus de développement incrémental La présence de comportements émergeant Un système de contrôle
Algorithmethumb|Algorithme de découpe d'un polygone quelconque en triangles (triangulation). Un algorithme est une suite finie et non ambiguë d'instructions et d’opérations permettant de résoudre une classe de problèmes. Le domaine qui étudie les algorithmes est appelé l'algorithmique. On retrouve aujourd'hui des algorithmes dans de nombreuses applications telles que le fonctionnement des ordinateurs, la cryptographie, le routage d'informations, la planification et l'utilisation optimale des ressources, le , le traitement de textes, la bio-informatique L' algorithme peut être mis en forme de façon graphique dans un algorigramme ou organigramme de programmation.
Droit des biensLe droit des biens ou droits réels est branche du droit qui étudie les relations juridiques dont l'origine ou l'objet se rapporte aux biens ou choses. Le droit des biens s'intéresse aux relations entre personnes et biens. Les biens sont un ensemble qui comporte tant des choses matérielles (voiture) que des choses immatérielles (droit d'auteur), tant des choses meubles (action de société) que des choses immeubles (appartement). Les droits réels comprennent un certain nombre de principes fondamentaux issus de leur nature particulière.
Algorithme mémétiqueLes algorithmes mémétiques appartiennent à la famille des algorithmes évolutionnistes. Leur but est d'obtenir une solution approchée à un problème d'optimisation, lorsqu'il n'existe pas de méthode de résolution pour résoudre le problème de manière exacte en un temps raisonnable. Les algorithmes mémétiques sont nés d'une hybridation entre les algorithmes génétiques et les algorithmes de recherche locale. Ils utilisent le même processus de résolution que les algorithmes génétiques mais utilisent un opérateur de recherche locale après celui de mutation.
Multiversion Concurrency ControlMultiversion concurrency control (abrégé en MCC ou MVCC) est une méthode informatique de contrôle des accès concurrents fréquemment utilisée dans les systèmes de gestion de base de données et les langages de programmation concernant la gestion des caches en mémoire. Le principe de MVCC repose sur un verrouillage dit optimiste contrairement au verrouillage pessimiste qui consiste à bloquer préalablement les objets à des garanties de bonne fin. L'inconvénient logique est qu'une mise à jour peut être annulée du fait d'un "blocage" en fin de traitement.