ICL VME - ICL VME
| Vývojář | International Computers Limited , Fujitsu |
|---|---|
| Napsáno | S3 , C. |
| Pracovní stav | Proud |
| První vydání | polovina 70. let minulého století |
| Platformy | Sálové počítače řady ICL 2900 , ICL řady 39 |
| Ovlivněn | Multics , George 3 |
| Licence | Proprietární komerční software |
| Oficiální webové stránky | Web VME |
VME ( Virtual Machine Environment ) je sálový operační systém vyvinutý britskou společností International Computers Limited (ICL, nyní součást skupiny Fujitsu ). Operační systém byl původně vyvinut v 70. letech minulého století (jako VME/B , později VME 2900 ) k pohonu tehdy nových mainframů řady 2900 řady ICL , nyní je známý jako OpenVME s unixovým subsystémem a běží na sálových počítačích ICL Series 39 a Trimetra jako průmyslové x64 servery.
Původy
Program vývoje systému New Range byl zahájen sloučením společností International Computers and Tabulators (ICT) a English Electric Computers v roce 1968. Jedním ze zásadních rozhodnutí bylo, že bude představovat nový operační systém. V rámci ICL byla provedena řada různých studií proveditelnosti a designu, z nichž tři nejvýznamnější jsou:
- VME/B (původně System B), zaměřený na velké procesory, jako je 2970/2980, vyvinutý v Kidsgrove , Staffordshire a West Gorton , Manchester
- VME/K (původně System T), zaměřený na systémy střední třídy, jako je 2960, byl vyvinut v Bracknellu poté, co byl upuštěn původní design pro tyto malé procesory, systém D. VME/K byl vyvinut a uveden na trh, ale nakonec byl nahrazen VME/B
- VME/T, který nebyl ve skutečnosti nikdy spuštěn, ale zaslouží si zmínku, protože byl navržen tak, aby podporoval „odolnost proti chybám“, a předcházel úsilí úspěšné americké startupové společnosti Tandem Computers v této oblasti.
Hlavním architektem VME/B byl Brian Warboys , který se následně stal profesorem softwarového inženýrství na univerzitě v Manchesteru . V jeho designu je vidět řada vlivů, například Multics a dřívější operační systém George 3 ICL ; nicméně to bylo v podstatě navrženo od nuly.
Srovnání
Společnost VME byla považována za primárně konkurující sálovému počítači System/370 IBM jako komerčnímu operačnímu systému a přijala kódování znaků EBCDIC .
Nomenklatura
Když byl New Range v říjnu 1974 poprvé uveden na trh, jeho operační systém byl označován jako „systém B“. V době, kdy byl poprvé dodán, se stal „VME/B“.
VME/K byl vyvinut nezávisle (podle Campbella-Kellyho, „z rozmaru Eda Macka“) a později byl dodán s menšími mainframy, jako je 2960.
Po finanční krizi v roce 1980 bylo do ICL přivedeno nové vedení (Christopher Laidlaw jako předseda a Robb Wilmot jako generální ředitel). Prvním rozhodnutím nového vedení bylo upustit od VME/K. V červenci 1981 byl tedy uveden na trh „VME2900“: přestože byl představen zákaznické základně jako fúze VME/B a VME/K, ve skutečnosti to byla základna VME/B s několika vybranými funkcemi od VME/K, které byly naroubovány. To poskytlo možnost upustit od některých zastaralých funkcí, které zůstaly dostupné zákazníkům, kteří je potřebovali, v podobě možnosti „BONVME“.
Přípona „2900“ byla upuštěna u verze systému 213 (SV213), když ICL zahájila v roce 1985 řadu 39 jako nástupce původní řady 2900; a po SV294 byla přidána předpona „Otevřít“. VME se stal schopen hostovat aplikace napsané původně pro Unix prostřednictvím subsystému UNIX System V Release 3 , nazývaného VME/X, přizpůsobeného pro běh pod VME a pomocí kódování znaků ASCII .
V roce 2007 společnost Fujitsu oznámila verzi VME spuštěnou jako hostovaný subsystém s názvem superNova v systému Microsoft Windows nebo SUSE nebo Red Hat Enterprise Linux na hardwaru x86-64 .
V roce 2012 skupina uživatelů VME, AXiS, oznámila, že po téměř 40 letech bude z důvodu omezené uživatelské základny rozpuštěna.
Architektura
VME je strukturován jako sada vrstev, přičemž každá vrstva má přístup ke zdrojům na různých úrovních abstrakce. Virtuální prostředky poskytované jednou vrstvou jsou konstruovány z virtuálních zdrojů nabízených níže uvedenou vrstvou. Přístup ke zdrojům každé vrstvy je řízen pomocí sady úrovní přístupu: aby proces mohl využívat zdroj na konkrétní úrovni přístupu, musí mít přístupový klíč nabízející přístup na tuto úroveň. Koncept je podobný „prstenům ochrany“ v Multics . Architektura umožňuje 16 úrovní přístupu, z nichž vnější 6 je vyhrazeno pro kód na úrovni uživatele.
Ortogonálně k úrovním přístupu operační systém zpřístupňuje prostředky aplikacím ve formě virtuálního počítače. Na virtuálním počítači může běžet více procesů. V praxi je virtuální počítač VME blíže konceptu procesu v jiných operačních systémech, zatímco proces VME je spíše jako vlákno. Přidělení prostředků virtuálnímu počítači používá model zásobníku: když je zásobník vyskočen, uvolní se všechny prostředky přidělené na dané úrovni zásobníku. Hovory z aplikace do operačního systému jsou proto uskutečňovány voláním, které zachovává stejný zásobník procesů, ale se změnou úrovně ochrany; výsledná efektivita systémových volání je jednou z funkcí, díky nimž je architektura konkurenceschopná.
Komunikace mezi virtuálními počítači je zajištěna pomocí Událostí (pojmenovaných komunikačních kanálů) a oblastí sdílené paměti. Hardwarová architektura také poskytuje instrukce semaforu INCT (inkrement-and-test) a TDEC (test-and-decrement).
Soubory a další trvalé objekty jsou zaznamenány v úložišti nazývaném Katalog. Na rozdíl od jiných operačních systémů je hierarchie pojmenování souborů nezávislá na umístění souboru na konkrétní páskové nebo diskové jednotce. Ve dnech, kdy byla větší potřeba offline úložiště, to usnadnilo sledování souborů bez ohledu na jejich umístění a přesouvání souborů mezi umístěními bez jejich přejmenování. Katalog stejně jako soubory sleduje uživatele a skupiny uživatelů, svazky, zařízení, síťová připojení a mnoho dalších zdrojů. Metadata pro soubory mohou být uložena v objektu nazývaném Popis souboru. Katalog byl pravděpodobně prvním příkladem toho, čemu se později bude říkat databáze vztahů mezi entitami.
Přerušení se řeší vytvořením nového rámečku zásobníku v zásobníku pro příslušný proces, zpracováním přerušení pomocí tohoto nového prostředí a následným vysunutím zásobníku pro návrat do přerušeného procesu.
Výjimky za běhu, označované jako nahodilé události , jsou zachyceny obslužným programem chyby programu OPEH (Object Program Error Handler), který může vytvářet sestavu (ekvivalentní trasování zásobníku ), a to buď interaktivně, nebo zapsanou do deníku.
OMF
Zkompilovaný kód objektu je udržován ve formátu nazývaném OMF (Object Module Format). Na rozdíl od mnoha jiných operačních systémů je toto také formát používaný zavaděčem. K dispozici jsou různé kompilátory a také nástroje, zejména Collector, který propojuje kód v několika modulech OMF do jednoho modulu, pro efektivnější načítání za běhu, a Module Amender, který umožňuje záplatování instrukcí v OMF modul k opravě chyb pomocí syntaxe jazyka sestavení.
SCL
Příkazový jazyk pro VME je známý jako SCL (System Control Language).
Jedná se o mnohem rozpoznatelnější typovaný programovací jazyk na vysoké úrovni, než je ovládání úloh nebo jazyky prostředí, které se nacházejí ve většině ostatních operačních systémů: lze jej přirovnat ke skriptovacím jazykům, jako je JavaScript , ačkoli jeho povrchová syntaxe je odvozena od Algolu 68 .
SCL je navržen tak, aby umožňoval jak interaktivní použití po řádku na konzole nebo z příkazového souboru , tak vytváření spustitelných skriptů nebo programů (když je jazyk kompilován do formátu objektového modulu stejným způsobem jako jakékoli jiné programování VME Jazyk). Deklarace procedury v rámci SCL funguje také jako definice jednoduchého formuláře nebo šablony, která umožňuje vyvolání procedury z interaktivního terminálu, přičemž pole jsou validována podle datových typů podkladových parametrů procedury nebo pomocí výchozích hodnot parametrů procedury.
Vestavěný slovník příkazů používá konzistentní konvenci pojmenování s imperativním slovesem následovaným podstatným jménem: například DELETE_FILE nebo DISPLAY_LIBRARY_DETAILS. Příkaz lze napsat celý nebo ve zkrácené podobě, která kombinuje standardní zkratky pro sloveso a podstatné jméno: například XF (X pro DELETE, F pro FILE) nebo DLBD (D pro DISPLAY, LB pro LIBRARY, D pro DETAILS) .
SCL má strukturu bloku, přičemž bloky začátku/konce slouží dvojím a doplňkovým rolím definování lexikálního rozsahu deklarací proměnných a definování bodů, ve kterých by měly být uvolněny prostředky získané z operačního systému. Proměnné v jazyce (které jsou přístupné z aplikací ve formě proměnných prostředí ) mohou mít řadu jednoduchých typů, jako jsou řetězce, superstruny (sekvence řetězců), logické hodnoty a celá čísla, a také se používají k tomu, aby obsahovaly odkazy na systémové prostředky jako jsou soubory a síťová připojení.
Program SCL z OMF je možné „rozebrat“ zpět do zdrojového kódu SCL pomocí příkazu READ_SCL (nebo RSCL). Výstup však není vždy dokonalý a často bude obsahovat chyby, které by znemožnily rekompilaci bez zásahu uživatele.
Jednoduchý příklad kódu je možné vidět na webových stránkách 99 lahví piva .
Realističtější příklad, kde se SCL používá ke kompilaci programu napsaného v S3 , je uveden níže. Tento příklad je převzat z archivu implementace Kermitu na Columbia University Archive .
BEGIN
WHENEVER
RESULT GT 0 +_
THEN +_
SEND_RESULT_MESSAGE (RES = RESULT,
ACT = "QUIT()")
FI
INT KMT_SRC, KMT_OMF, KMT_REL
ASSIGN_LIBRARY (NAM = KERMIT.SOURCE,
LNA = KMT_SRC)
ASSIGN_LIBRARY (NAM = KERMIT.OMF,
LNA = KMT_OMF)
ASSIGN_LIBRARY (NAM = KERMIT.REL,
LNA = KMT_REL)
BEGIN
DELETE_FILE (NAM = *KMT_OMF.KMT_DATA_MODULE(101))
DELETE_FILE (NAM = *KMT_OMF.KMT_DH_MODULE(101))
DELETE_FILE (NAM = *KMT_OMF.KMT_EH_MODULE(101))
DELETE_FILE (NAM = *KMT_OMF.KMT_FH_MODULE(101))
DELETE_FILE (NAM = *KMT_OMF.KMT_HELP_MTM(101))
DELETE_FILE (NAM = *KMT_OMF.KMT_MAIN_MODULE(101))
DELETE_FILE (NAM = *KMT_OMF.KMT_PH_MODULE(101))
DELETE_FILE (NAM = *KMT_OMF.KMT_PP_MODULE(101))
DELETE_FILE (NAM = *KMT_OMF.KMT_SP_MODULE(101))
DELETE_FILE (NAM = *KMT_OMF.KMT_SP_MTM(101))
DELETE_FILE (NAM = *KMT_OMF.KMT_UI_MODULE(101))
DELETE_FILE (NAM = *KMT_REL.KERMIT(101))
DELETE_FILE (NAM = *KMT_REL.KERMIT_MODULE(101))
END
S3_COMPILE_DEFAULTS (LIS = OBJECT & XREF,
DIS = ERRORLINES)
S3_COMPILE (INP = *KMT_SRC.KMT_DATA_MODULE(101),
OMF = *KMT_OMF.KMT_DATA_MODULE(101))
S3_COMPILE (INP = *KMT_SRC.KMT_DH_MODULE(101),
OMF = *KMT_OMF.KMT_DH_MODULE(101))
S3_COMPILE (INP = *KMT_SRC.KMT_EH_MODULE(101),
OMF = *KMT_OMF.KMT_EH_MODULE(101))
S3_COMPILE (INP = *KMT_SRC.KMT_FH_MODULE(101),
OMF = *KMT_OMF.KMT_FH_MODULE(101))
NEW_MESSAGE_TEXT_MODULE (CON = *KMT_SRC.KMT_HELP_MTM(101),
OMF = *KMT_OMF.KMT_HELP_MTM(101))
S3_COMPILE (INP = *KMT_SRC.KMT_MAIN_MODULE(101),
OMF = *KMT_OMF.KMT_MAIN_MODULE(101))
S3_COMPILE (INP = *KMT_SRC.KMT_PH_MODULE(101),
OMF = *KMT_OMF.KMT_PH_MODULE(101))
S3_COMPILE (INP = *KMT_SRC.KMT_PP_MODULE(101),
OMF = *KMT_OMF.KMT_PP_MODULE(101))
S3_COMPILE (INP = *KMT_SRC.KMT_SP_MODULE(101),
OMF = *KMT_OMF.KMT_SP_MODULE(101))
NEW_MESSAGE_TEXT_MODULE (CON = *KMT_SRC.KMT_SP_MTM(101),
OMF = *KMT_OMF.KMT_SP_MTM(101))
S3_COMPILE (INP = *KMT_SRC.KMT_UI_MODULE(101),
OMF = *KMT_OMF.KMT_UI_MODULE(101))
COLLECT ()
----
INPUT(*KMT_OMF.KMT_DATA_MODULE(101) &
*KMT_OMF.KMT_DH_MODULE(101) &
*KMT_OMF.KMT_EH_MODULE(101) &
*KMT_OMF.KMT_FH_MODULE(101) &
*KMT_OMF.KMT_HELP_MTM(101) &
*KMT_OMF.KMT_MAIN_MODULE(101) &
*KMT_OMF.KMT_PH_MODULE(101) &
*KMT_OMF.KMT_PP_MODULE(101) &
*KMT_OMF.KMT_SP_MODULE(101) &
*KMT_OMF.KMT_SP_MTM(101) &
*KMT_OMF.KMT_UI_MODULE(101))
NEWMODULE(*KMT_REL.KERMIT_MODULE(101))
SUPPRESS
RETAIN(KERMIT_THE_FROG)
LISTMODULE
PERFORM
++++
COMPILE_SCL (INP = *KMT_SRC.KERMIT(101),
OUT = *KMT_REL.KERMIT(101),
COD = NOTIFWARNINGS,
OPT = FIL)
END
Mezi příkazy znázorněné v tomto fragmentu patří WHENEVER (deklaruje zásady zpracování chyb), ASSIGN_LIBRARY (váže místní název pro adresář souborů), DELETE_FILE (vytvoří dočasný trvalý soubor a poté se odstraní na konci bloku), S3_COMPILE (kompilace program napsaný v S3: tento příkaz porušuje obvyklou konvenci sloveso-podstatné jméno), NEW_MESSAGE_TEXT_MODULE (vytváří modul obsahující parametrizované chybové zprávy vhodné pro lokalizaci) a COMPILE_SCL, který kompiluje program SCL do objektového kódu.
Příkaz COLLECT kombinuje různé moduly objektového kódu do jednoho modulu a je řízen vlastním souborem místních příkazů, který je začleněn vložený do SCL mezi oddělovače "----" a "++++". Dílčí příkazy INPUT a NEWMODULE identifikují názvy vstupních a výstupních modulů; SUPPRESS a RETAIN určují vnější viditelnost pojmenovaných procedur v rámci shromážděného modulu; a LISTMODULE požaduje zprávu popisující výstupní modul.
Všimněte si, že "." se používá k oddělení částí hierarchického názvu souboru. Úvodní hvězdička označuje místní název knihovny, vázaný pomocí příkazu ASSIGN_LIBRARY. Číslo v závorkách za názvem souboru je číslo generace. Operační systém přiřadí ke každému souboru číslo generace a požadavky na soubor získají nejnovější generaci, pokud není uvedeno jinak. Vytvořením nového souboru se ve výchozím nastavení vytvoří další generace a předchozí generace zůstane nedotčena; tento program se však záměrně rozhodl vytvořit generaci 101, aby identifikoval veřejné vydání.
Vylepšené varianty zabezpečení
V důsledku intenzivního zapojení ICL do poskytování počítačových služeb britskému veřejnému sektoru, zejména těm, které mají speciální požadavky na zabezpečení, jako je OPCON CCIS , to byl první účastník trhu se zabezpečenými systémy .
VME tvořilo jádro aktivit ICL v aréně Secure Systems. Měl tu výhodu, že jako poslední rozsáhlý operační systém, který byl kdy navržen, a jeden byl postaven od nuly, jeho základní architektura zahrnovala mnoho primitivů potřebných k vývoji zabezpečeného systému, zejména hardwarem podporované registry řízení přístupu (ACR) omezující na oprávnění, která by mohla být přijata jakýmkoli procesem (včetně uživatelů).
To vedlo v polovině 80. let k financování projektu Spaceman britské vládní ústřední počítačové a telekomunikační agentury ( CCTA ) pro ICL Defence Technology Center (DTC) s cílem vyvinout vylepšenou bezpečnostní variantu VME. Společnost ICL to uvedla na trh jako dvojici doplňkových produktů, přičemž komerční verze se nazývá High Security Option (HSO) a verze pro veřejný sektor, včetně technologií Government Furnished Encryption (GFE), se nazývá Government Security Option (GSO).
HSO a GSO byly formálně testovány podle CESG UK (Security) Evaluation Scheme, jednoho z předchůdců ITSEC a společných kritérií , a tím se staly prvním hlavním operačním systémem, který byl formálně certifikován.
Řada 39
Řada Series 39 představila Nodal Architecture, novou implementaci distribuované sdílené paměti, kterou lze považovat za hybrid víceprocesorového systému a clusterového designu. Každý počítač se skládá z několika uzlů a každý uzel obsahuje vlastní procesor s procesorem objednávkového kódu (CPU) a hlavní paměť. Virtuální počítače jsou obvykle umístěny (kdykoli) na jednom uzlu, ale mají schopnost běžet na libovolném uzlu a přemístit se z jednoho uzlu do druhého. Disky a další periferie jsou sdíleny mezi uzly. Uzly jsou propojeny pomocí vysokorychlostní optické sběrnice, která slouží k poskytování aplikací virtuální sdílenou pamětí. Segmenty paměti, které jsou označeny jako sdílené (veřejné nebo globální segmenty), jsou replikovány do každého uzlu, přičemž aktualizace jsou vysílány přes síť mezi uzly. Procesy, které používají nesdílené segmenty paměti (uzlové nebo místní), běží zcela izolovaně od ostatních uzlů a procesů.
Vývojový proces
VME byl původně napsán téměř výhradně v S3 , speciálně navrženém systémovém programovacím jazyce založeném na Algol 68R (VME/K byl však napsán především v jazyce sestavení SFL). Přestože se používá jazyk na vysoké úrovni , operační systém není navržen tak, aby byl nezávislý na základní hardwarové architektuře: naopak softwarová a hardwarová architektura jsou úzce integrovány.
Od počátku roku 1990, některé zcela nové VME subsystémy byly psány zčásti nebo zcela v C programovací jazyk .
VME byl od svých počátků vyvíjen pomocí systému úložiště softwarového inženýrství známého jako CADES , původně navrženého a spravovaného Davidem Pearsonem (počítačový vědec) a postaveného za tímto účelem pomocí podkladové databáze IDMS . CADES není pouze systém pro správu verzí kódových modulů: spravuje všechny aspekty životního cyklu softwaru od zachycení požadavků, metodiky návrhu a specifikace až po údržbu v terénu. CADES byl použit při vývoji modulu VME k uchovávání oddělených definic datových struktur (režimy), konstant (literály), procedurálních rozhraní a základních algoritmů. Mohlo by existovat více verzí („životů“) každé z těchto součástí. Algoritmy byly napsány v jazyce System Development Language (SDL), který byl potom předprocesorem převeden na zdroj S3 . Bylo možné generovat více verzí stejných modulů.
Nástroje pro vývoj aplikací
Nástroje pro vývoj aplikací nabízené s VME spadají do dvou kategorií:
- programovací jazyky třetí generace
- sada nástrojů QuickBuild čtvrté generace .
Sada nástrojů na VME je neobvykle homogenní, většina zákazníků používá stejnou základní sadu jazyků a nástrojů. Díky tomu jsou nástroje také velmi dobře integrovány. Nástroje třetích stran udělaly relativně malý dojem.
Po mnoho let velká většina uživatelů VME psala aplikace v COBOL , obvykle s využitím databáze IDMS a monitoru zpracování transakcí TPMS . Mezi další programovací jazyky patřily Fortran , Pascal , ALGOL 68RS , Coral 66 a RPG2 , ale tyto sloužily menšinovým zájmům. Později, v polovině osmdesátých let, byly k dispozici kompilátory pro C, a to jak v rámci unixového subsystému, tak mimo něj, a to do značné míry umožňující přenos softwaru, jako jsou relační databázové systémy. Je zajímavé, že kompilátor podmnožiny PL/I byl napsán EHS, aby pomohl při přenosu programů z hardwaru IBM na ICL.
Kompilátory vyvinuté v rámci ICL sdílejí společnou architekturu a v některých případech sdílejí komponenty, jako jsou generátory kódu. Mnoho kompilátorů používalo modul s názvem ALICE [Assembly Language Internal Common Environment] a vytvořilo ranou formu předkompilovaného kódu (P-Code) nazvanou ROSE, díky čemuž se kompilované knihovny formátu OMF (Object Module Format) dají načítat na jakémkoli počítači v daném rozsahu. .
Systémové programovací jazyky: S3 a SFL
Primárním jazykem používaným pro vývoj samotného operačního systému VME a dalšího systémového softwaru, jako jsou kompilátory a monitory zpracování transakcí, je S3 . Jedná se o jazyk na vysoké úrovni, který je v mnoha ohledech založen na Algolu 68 , ale s datovými typy a nízkoúrovňovými funkcemi a operátory v těsném souladu s architekturou řady 2900.
Assembleru SFL ( S YSTÉM F unction L anguage) je také k dispozici. To bylo použito pro vývoj VME/K, jehož návrháři si nebyli jisti, že by jazyk na vysoké úrovni mohl poskytnout adekvátní výkon, a také pro databázový systém IDMS kvůli jeho původu jako produktu třetí strany. SFL byl původně nazvaný M acro ssembler P rogramming L anguag E (javor), ale jak 2900 architektura byl umístěn jako skládající se z jazykových strojů na vysoké úrovni byl název změněn na žádost ICL marketingu. Byl vyvinut jako součást sady nástrojů pro systém D, která byla následně zrušena. Související rodiny assemblerů pro jiné architektury (CALM-xx běžící pod VME, PALM-xx vyvinuté v Pascalu a běžící na různých hostitelích) byly vyvinuty pro interní použití.
Ani S3, ani SFL nebyly nikdy propagovány jako nástroj komerčního vývoje pro aplikace koncových uživatelů, protože ani nebyly běžně dodávány jako standardní součást operačního systému, ani nebyly výslovně uváděny na trh jako produkty samy o sobě. SFL i S3 však byly k dispozici jako možnosti pro uživatelské organizace a třetí strany, které pro ně měly konkrétní potřebu.
QuickBuild
Prostředí pro vývoj aplikací QuickBuild na VME bylo velmi úspěšné navzdory skutečnosti, že aplikace jsou z velké části uzamčeny do prostředí VME. Toto prostředí je zaměřeno na Data Dictionary System (DDS, také nazývaný OpenDDS), raný a velmi úspěšný pokus vybudovat komplexní úložiště podporující všechny ostatní nástroje s plnou podporou životního cyklu vývoje. Slovník kromě databázových schémat a popisů souborů a záznamů sleduje objekty, jako jsou zprávy a dotazy, návrhy obrazovek a kód 4GL; podporuje také řadu modelů na úrovni zachycení požadavků, jako jsou modely vztahů mezi entitami a modely procesů.
QuickBuild 4GL je zabalen ve dvou formách:
- ApplicationMaster pro vytváření online aplikací TP
- ReportMaster pro dávkové hlášení.
Oba jsou deklarativní jazyky na vysoké úrovni a jako své paradigma designu používají Jackson Structured Programming . ApplicationMaster je neobvyklý ve svém přístupu k návrhu aplikace v tom, že se zaměřuje na relaci uživatele, jako kdyby probíhala v jediném konverzačním procesu, což zcela skrývá složitost udržování stavu napříč interakcemi uživatelů. Protože 4GL a další nástroje, jako například návrhář obrazovky, pracují pouze se slovníkem DDS, který také obsahuje schémata databází, dochází ke značnému opětovnému použití metadat, kterého je u jiných 4GL dosaženo jen zřídka.
Reference
Prameny
- Architektura OpenVME . Nic Holt. Publikace ICL 55480001. Nedatováno (pravděpodobně kolem roku 1995)
externí odkazy
- VME - Into the Future , Fujitsu UK.