System i
2211010
31337908
2008-07-06T06:42:56Z
Fabrice joubaire
141704
Le serveur Application System/400 (plus connu sous le nom d'AS/400, puis de iSeries et enfin de System [[i5]]) est un mini-ordinateur de la gamme [[International Business Machines Corporation|IBM]].
Qu'il s'agisse d'AS/400, de iSeries ou de System i5, l'ensemble des serveurs de cette famille a été nommé '''System i'''. Mais en avril 2008, IBM a totalement fusionné les gammes [[System i]] et System p pour donner naissance aux [[IBM Power Systems]]. Le système d'exploitation de Rochester a également été renommé. Il faut désormais parler de : '''[[IBM i]] operating System'''
L'AS/400 a été commercialisé le {{date|21|juin|1988}}, il sera renommé eServer iSeries en [[2000]] puis System i5 en [[2004]] avec l'arrivée des modèles pourvus de processeurs [[IBM POWER|POWER]]5. Les serveurs System i sont utilisés par près de 240 000 entreprises à travers le monde<ref>Selon document IBM "System i architecture" [http://dit.unitn.it/ibm/download/system_i/17_04_2007/SYSTEM_I1.pdf]</ref>. Ils intéressent principalement les PME et les sites atomisés des grands groupes.
== Histoire ==
L'histoire de l'AS/400 et du System i remonte à la fin des [[années 1960]] avec Frank G. Soltis. Ce dernier travaille sur un système basé sur une technologie nouvelle. Il présente son projet à la direction d'[[International Business Machines Corporation|IBM]] le {{date|8|janvier|1970}}. Cette nouvelle architecture devra remplacer l'actuel System/3. En [[1972]], sous le nom de projet ''[[Projet FS|Future System]]'', la conception du System/38 (S/38) débute avec à sa tête Frank G. Soltis, Dick Bains et Roy L. Hoffman. Ces derniers définissent les cinq concepts fondamentaux du S/38, qui deviendront plus tard ceux du System i (ex AS/400). En [[1973]], la direction d'[[International Business Machines Corporation|IBM]] donne son accord pour la réalisation du System/38 avec l'annonce officielle le {{date|24|octobre|1978}}. Son système d'exploitation se nomme CPF (Control Program Facility). La première mouture du System/38, assez rudimentaire, sort en juillet [[1980]]. Il faut attendre [[1981]] pour voir la version finale. Malgré des débuts prometteurs, le System/38 rencontre quelques problèmes de mise au point.
Entre temps, le System/36 (S/36) est apparu ({{date||mai|1983}}). Il s’agit d’un autre mini de la gamme [[International Business Machines Corporation|IBM]] mais avec une architecture beaucoup plus conventionnelle. L’équipe chargée de la mise au point du System/38, basée à [[Rochester (Minnesota)|Rochester]] dans le [[Minnesota]], poursuit le développement de son système et décide d’y intégrer d'autres innovations. Avec l’accord de la direction, elle lance en {{date||novembre|1985}}, le projet Silverlake (du nom d’un lac de Rochester : Silver Lake). Il doit permettre à [[International Business Machines Corporation|IBM]] de mettre sur le marché un serveur encore plus novateur que le System/38 et qui devra également remplacer le System/36. Le projet Silverlake est le début officiel de l'AS/400. Il découle directement du System/38, mais il sera plus fiable et sensiblement amélioré. Lors de sa sortie le 21 juin 1988, son système d'exploitation, l'[[OS/400]] ou XPF (eXtended control Program Facility), sera une très forte évolution du CPF (système d'exploitation du System/38) auquel on aura agrégé l'équivalent de 3 versions.
Le nom du projet aurait dû être System/40 (S/40), mais la direction a préféré montrer qu'il s'agissait d'un serveur sensiblement plus évolué en le nommant Application Server (AS). De plus, la branche PC d'[[International Business Machines Corporation|IBM]] souhaitait réserver pour ses besoins, les chiffres inférieurs à 100. C'est pourquoi, il a été convenu d'ajouter un 0 au chiffre 40 et l'on a obtenu AS/400.
La naissance des '''AS/400 eServer''' puis '''iSeries''' verra apparaître la possibilité de « découper » plusieurs machines logiques (ou « [[Virtualisation (informatique)|machines virtuelles]] ») dans une machine physique. Puis, enchaînement logique, il est désormais possible de faire tourner d'autres systèmes que l'[[OS/400]] sur ces machines logiques appelées partitions logiques. Ainsi aujourd'hui un « System i5 » peut supporter des partitions [[i5/OS]], [[Linux]], [[AIX]] ou Virtual IO Server grâce à son [[hyperviseur]]. Le serveur i5 est également capable d'héberger des serveurs x86 sous [[Linux]], [[Microsoft Windows|Windows]] ou VMWare ESX via les technologies IxS, IxA ou iSCSI.
VMWare n'est supporté que sur iSCSI.
[[International Business Machines Corporation|IBM]] a renommé ses machines '''iSeries''' puis '''System i5''' mais la plupart des informaticiens, des utilisateurs et des SSII continuent, à tort, à parler d'AS/400...
Le langage de développement rapide, d'origine issu de l'[[International Business Machines Corporation|IBM]] 34, portait initialement le nom de GAP, pour [[Générateur automatique de programmes]] (RPG en anglais, pour [[Report Program Generator]]). Bien que concurrencé par la version iSeries du langage [[COBOL|Cobol]], le GAP était largement diffusé sur ce système [[OS/400]]. Considérablement amélioré sur AS/400, il y prit le nom de [[GAP/400]] ([[RPG/400]]). Pour de plus amples renseignements sur le langage RPG, se reporter à l'article [[Générateur automatique de programmes]]. Avec l'apparition de la version V3R1M0 (1995), une nouvelle version du RPG est venue s'ajouter au [[RPG/400]] (alias le RPG/III). Il s'agit du RPG/ILE (alias le RPG/IV) qui permet désormais la programmation orientée objet et la programmation visuelle.
== Les principes fondamentaux ==
Le System i est défini par des concepts originaux que l'on nomme principes fondamentaux, il en existe cinq :
* Technology Independence (Indépendance vis-à-vis de la technologie)
* Object-Based Design (Conception Basée Objet)
* Hardware Integration (Intégration Matérielle)
* Software Integration (Intégration Logicielle)
* Single-Level Store (Espace Adressable Unique)
=== Indépendance vis-à-vis de la technologie ===
Le premier principe et peut-être le plus important est l’indépendance technologique. Le System i, contrairement aux autres systèmes, n’est pas défini par le matériel. Un programme ne parle pas directement au matériel, il dialogue à une interface machine indépendante de la technologie (TIMI = Technology Independent Machine Interface ou plus simplement MI). Entre cette interface et le matériel proprement dit se trouvent plusieurs millions de lignes de code ou plus exactement le microcode : SLIC (System Licenced Internal Code) sur les AS/400 ou iSeries et LIC (Licensed Internal Code) sur les System i5.
Cette couche logicielle isole les applications des caractéristiques du matériel sous-jacent. Un programme ignore totalement ce dernier. Par conséquent, quand la technologie processeur change, il suffit de réécrire le SLIC en fonction des changements technologiques et on préserve ainsi l’intégrité de l’interface machine. L’autre avantage de l’indépendance réside dans le fait que les programmes utilisateurs ignorent également les changements technologiques, ainsi, ils peuvent bénéficier des avantages sans les inconvénients. Lors du passage du processeur CISC 48-bits à RISC 64-bits, la plupart des clients n’ont eu qu’à transférer leurs programmes sur les nouveaux AS/400 et de les exécuter en 64 bits. Aucun autre système ne peut faire cela, les architectures classiques réclament des recompilations et/ou des réécritures.
=== Conception basée objet ===
Le System i (AS/400-iSeries-i5) est entièrement basé objet. Tous les éléments du système (programmes, fichiers, files de messages…) sont des objets. Chaque objet comporte deux parties inséparables : la partie descriptive, qui définit les modalités d’utilisation de ces données et la partie données, constituant l’aspect fonctionnel de l’objet. Si un objet est défini comme un programme, sa partie descriptive énonce que la partie de données sera traitée comme du code compilé, exécutable, en lecture seule. Les seules opérations admises sur cet objet sont celles « sensées » pour un programme. Ainsi, on peut écrire au milieu d’un fichier de données, mais pas au milieu de code compilé : le système s’y opposera. La conception en deux parties des objets du System i assure donc l’intégrité des données pour tous les objets du système.
Contrairement aux autres systèmes d’exploitation, qui manipulent des pointeurs, l’OS/400-[[i5/OS]] et le TIMI ne connaissent que des objets. Les pointeurs utilisés uniquement par le microcode ont une taille de 16 octets (8 pour l’adresse MI et 8 pour des informations relatives à l’objet et de l’espace réservé). Au-dessus du MI, les pointeurs sont encapsulés. Il existe également un mécanisme de détection, au moyen d'une [[langage de balisage|balise]], des pointeurs invalides et d’utilisation « illégale ».
La conception basée objet a d’importantes implications en matière de sécurité. En effet, les virus pénètrent souvent dans les systèmes déguisés en données. Une fois à l’intérieur, le virus essaie de devenir du code exécutable pour causer des ravages. Un tel changement de caractéristique est impossible sur System i. Si un flux entre en tant que données, il gardera toujours ces caractéristiques. C’est une des nombreuses raisons qui font la réputation en matière de sécurité et d’intégrité du System i.
=== Intégration Matérielle ===
[[Image:Bus_RIO-PCI.gif|thumb|right|220px|System i - Architecture I /O]]
Alors que l’environnement informatique technique/scientifique privilégie le calcul (opérations complexes sur une quantité de données relativement petite), l’environnement informatique de gestion privilégie l’information (des opérations simples sur de gros volumes de données) ou plus exactement les entrées/sorties (I/O). Comme le System i est optimisé pour la gestion, il présente des caractéristiques matérielles lui permettant d’être très performant dans un environnement privilégiant l’information. Dans une transaction de gestion classique, un programme d’application est chargé en mémoire principale et le processeur commence à l’exécuter. Quand le processeur rencontre une demande de lecture de données sur disque, il délègue cette requête au processeur d’I/O (IOP) du disque. Après quoi, le processeur exécute un autre programme d’application et ne revient au programme original que lorsque les données demandées antérieurement sont disponibles en mémoire centrale.
Sur les plus gros System i, il est possible d'avoir des centaines de processeurs d'entrées/sorties (IOP) connectés aux bus haute vitesse, créant ainsi un débit de données extrêmement puissant.
La tendance actuelle est de faire disparaître l'intelligence de ces processeurs complémentaires en partie sur les cartes [[Peripheral Component Interconnect|PCI]] traditionnelles.
=== Intégration Logicielle ===
Aucun problème d’incompatibilité de version en raison de déphasage de programmes comme sur d’autres systèmes (avec les différentes versions de [[Bibliothèque logicielle#Windows|DLL]] par exemple). Tous les composants nécessaires sont entièrement intégrés dans le système d’exploitation standard. IBM teste tous ces composants mêlés aux autres, pour s’assurer que le système d’exploitation fonctionne comme une seule entité. De plus, quand IBM modifie l’OS/400-i5/OS, elle remet aux clients une nouvelle version de tout le système d’exploitation. Il n’y a donc jamais aucun conflit de version entre les divers composants de l’OS/400-i5/OS parce qu’IBM livre un système d’exploitation complet et entièrement testé à chaque nouvelle version. Les avantages de ce système d’exploitation hautement intégré sont évidents pour les clients : déploiement rapide des nouvelles solutions de gestion pour un coût remarquablement bas avec une sécurité maximum.
=== Espace Adressable Unique ===
Il s'agit de la notion de mémoire virtuelle adaptée au System i.
Chaque octet de mémoire (principale et secondaire) possède une adresse. Le système considère l’ensemble comme unique. Un System i ne dit jamais « mémoire pleine » (sauf quand il ne dispose plus de mémoire secondaire), la seule conséquence étant les temps de réponse qui peuvent se dégrader à cause de la pagination. L’énorme espace d’adressage 64 bits du System i peut adresser 18 trillions d’octets de données (18 x 10<sup>18</sup> soit 18 446 744 073 709 551 616 octets).
Pour comparaison, les environnements [[Compatible PC#Origines|Wintel]] à base de processeur [[Intel Corporation|Intel]] ou [[Advanced Micro Devices|AMD]], bien que disposant de processeurs 64 bits sont très loin d'atteindre un adressage mémoire à 64 bits.
* Intel [[Intel 64|EMT64T]] Nocona 64-bit : adressage mémoire à 36-bit (soit 64 Go maximum)
* Intel EMT64T Potomac 64-bit : adressage mémoire à 40-bit (soit 1 To maximum)
* Intel [[Intel Itanium|Itanium]] 64-bit : adressage mémoire à 44-bit (soit 18 To maximum)
* AMD [[Opteron]] 64-bit : adressage mémoire à 48-bit (soit 256 To maximum)
* Intel [[Intel Itanium 2|Itanium 2]] 64-bit : adressage mémoire à 50-bit (soit 1024 To maximum)
Ces derniers chiffres peuvent sembler importants, mais ils sont très loin des valeurs atteintes par l'OS/400-i5/OS. En effet, la différence entre 50 et 64-bit est énorme, et cet adressage gigantesque permet aux System i de répondre positivement à la définition de la mémoire virtuelle contrairement à [[Microsoft Windows|Windows]] ou [[UNIX|Unix]] par exemple qui en raison d'un plus faible adressage mémoire sont obligés de séparer la mémoire virtuelle de la mémoire centrale ([[Mémoire vive|RAM]]). Conséquences, les différents travaux du System i peuvent partager instantanément leurs informations car elles sont toutes dans un même espace de stockage. Windows et Unix doivent créer des espaces mémoire distincts pour chaque processus rendant le partage extrêmement difficile et très consommateur de ressources processeur.
Sur le plan architectural, le System i peut même aller jusqu’à un adressage sur 128 bits. À l’intérieur de cet espace 64 bits, se trouve le stockage « réel » : disque et mémoire centrale. Mais, comme le System i gère automatiquement tous les moyens de stockage comme un espace d’adressage unique, les utilisateurs n’ont pas à s’en préoccuper. Pour eux, tous les programmes et les données résident simplement dans ce vaste espace, et ils doivent seulement faire référence à un programme par son nom sans se préoccuper de l’endroit où il réside. De même, on ne se préoccupe pas des fichiers pleins.
Le System i s’en charge automatiquement. Et quand ils ajoutent des données de stockage, ils n’ont pas à répartir les données entre elles : le système reconnaît la nouvelle unité et l’utilise au mieux.
{{Référence nécessaire|La plupart des installations System i (AS/400-iSeries-i5) n’ont même pas un administrateur de base de données traditionnel parce qu’elles n’en ont pas besoin.}} Le traitement d’applications de gestion dans un environnement à applications et utilisateurs multiples, implique des navettes fréquentes entre les différentes tâches. Grâce à son niveau unique de stockage, le System i accomplit cette fonction beaucoup plus efficacement que les systèmes classiques. Pour passer à une nouvelle tâche, il suffit d’effectuer une instruction de branchement vers l’emplacement où réside la nouvelle tâche.
Nul besoin, comme Unix et Windows, de recréer un espace d’adressage distinct avant de commencer l’exécution d’une nouvelle tâche. Conçu pour les fréquents changements de tâches inhérents aux environnements de gestion, le stockage à un seul niveau du System i simplifie la gestion du stockage tout en offrant des performances exceptionnelles.
L’espace adressable unique n’est vu que par le microcode (SLIC), le MI et l’OS/400-i5/OS n’ont pas de notion de mémoire, ils adressent des objets et non pas une adresse mémoire.
Cette architecture de gestion de la mémoire est également employée sur les supercalculateurs les plus puissants du monde : [[International Business Machines Corporation|IBM]] Blue Gene (212 992 processeurs). En effet, ces supercomputers sont également développés à Rochester Minnesota dans l'antre du System i par de nombreux développeurs de l'OS/400-i5/OS.
== System i aujourd'hui ==
La base de données intégrée se nomme DB2/UDB for System i et possède toutes les fonctionnalités d'une base de données moderne. Elle est même la seule base de données au monde (en 2006 avec la version V5R4) à respecter l'intégralité des normes du Core SQL 2003.
Les fonctions habituellement livrées avec un serveur Unix sont aussi proposées :
* un serveur Web (reposant sur un moteur [[Apache HTTP Server|Apache]] modifié par IBM dans le cas d'AIX : IBM Http Server)
* serveurs DNS, DHCP, SMTP, Filtrage IP, etc.
* serveurs d'application ([[Apache Tomcat|TOMCAT]], [[Websphere]] Application serveur, propriétaire d'origine IBM)
* machine virtuelle [[java (langage)|Java]] 32-bit ou 64-bit
* [[PHP: Hypertext Preprocessor|PHP]] et le support des Web services depuis [[Générateur automatique de programmes|RPG]]
De nos jours les machines System i disposent de ressources systèmes importantes :
* Pour la série « System i5 » 5xx :
** un maximum de 64 processeurs de type [[POWER5]]/POWER5+/[[POWER6]] (64 bits)
** un maximum de 2 téraoctets de mémoire centrale
** Un maximun de 381 téraoctets d'espace de stockage
* Pour la série « 8xx »
** un maximum de 32 processeurs de type [[POWER4]]/StarSeries
** un maximum de 256 gigaoctets de mémoire centrale
** un maximum de 144 téraoctets d'espace de stockage
== Notes et références ==
<references />
== Voir aussi ==
* [[OS/400]]
* [[Générateur automatique de programmes]]
=== Références ===
* Frank G. Soltis, ''Voyage à l'intérieur de l'AS/400'' (titre original ''Inside the AS/400'')
* Frank G. Soltis ''Fortress Rochester — The inside story of the IBM iSeries''
* Gary Mullen-Schulz, ''Blue Gene/L - “World's Fastest Supercomputer”''
* ''Tuning IBM eServer xSeries Servers for Performances (SG24-5287)''
=== Liens externes ===
* {{en}} [http://www-03.ibm.com/systems/i/ La page d'accueil System i]
* {{en}} [http://www.redbooks.ibm.com/ Documentation technique]
* {{fr}} [http://www-1.ibm.com/servers/fr/eserver/iseries/ La gamme iSeries sur le site d'IBM]
* {{en}} [http://www.ibm.com/eserver/iseries/infocenter IBM eServer iSeries Information Center]
{{Portail informatique}}
[[Catégorie:Matériel informatique]]
[[Catégorie:Architecture Power]]
[[bg:IBM System i]]
[[de:System i]]
[[en:IBM System i]]
[[es:AS/400]]
[[hu:AS/400]]
[[it:IBM System i]]
[[ja:System i]]
[[nl:IBM System i]]
[[pl:ISeries]]
[[pt:AS/400]]
[[sv:IBM System i]]
[[vi:AS400]]