CINXE.COM
Distributed Data Management Architecture - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Distributed Data Management Architecture - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"2763e21f-ad3c-41e7-b600-0ce2eadb6014","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Distributed_Data_Management_Architecture","wgTitle":"Distributed Data Management Architecture","wgCurRevisionId":1242296682,"wgRevisionId":1242296682,"wgArticleId":43127527,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["CS1 maint: multiple names: authors list","Articles with short description","Short description matches Wikidata","Distributed computing architecture","Distributed computing","Distributed file systems","File sharing software","Peer-to-peer computing","Application layer protocols","Systems Network Architecture"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName": "Distributed_Data_Management_Architecture","wgRelevantArticleId":43127527,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":50000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q18206604","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness", "fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","mediawiki.page.media","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar", "ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.quicksurveys.init","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/en/5/59/DDMMagazineCover.jpg"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="1600"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/en/5/59/DDMMagazineCover.jpg"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="1067"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="853"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Distributed Data Management Architecture - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Distributed_Data_Management_Architecture"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Distributed_Data_Management_Architecture"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Distributed_Data_Management_Architecture rootpage-Distributed_Data_Management_Architecture skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Distributed+Data+Management+Architecture" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Distributed+Data+Management+Architecture" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Distributed+Data+Management+Architecture" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Distributed+Data+Management+Architecture" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-Distributed_applications" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Distributed_applications"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Distributed applications</span> </div> </a> <ul id="toc-Distributed_applications-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Benefits_provided_by_DDM_architecture" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Benefits_provided_by_DDM_architecture"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Benefits provided by DDM architecture</span> </div> </a> <ul id="toc-Benefits_provided_by_DDM_architecture-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>History</span> </div> </a> <button aria-controls="toc-History-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle History subsection</span> </button> <ul id="toc-History-sublist" class="vector-toc-list"> <li id="toc-Initial_efforts" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Initial_efforts"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Initial efforts</span> </div> </a> <ul id="toc-Initial_efforts-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-DDM_level_1:_Record-oriented_files" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DDM_level_1:_Record-oriented_files"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>DDM level 1: Record-oriented files</span> </div> </a> <ul id="toc-DDM_level_1:_Record-oriented_files-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-DDM_level_2:_Hierarchical_directories_and_stream-oriented_files" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DDM_level_2:_Hierarchical_directories_and_stream-oriented_files"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span> <span>DDM level 2: Hierarchical directories and stream-oriented files</span> </div> </a> <ul id="toc-DDM_level_2:_Hierarchical_directories_and_stream-oriented_files-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-DDM_level_3:_Relational_database_services" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DDM_level_3:_Relational_database_services"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span> <span>DDM level 3: Relational database services</span> </div> </a> <ul id="toc-DDM_level_3:_Relational_database_services-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-DDM_level_4:_Additional_Services" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DDM_level_4:_Additional_Services"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.5</span> <span>DDM level 4: Additional Services</span> </div> </a> <ul id="toc-DDM_level_4:_Additional_Services-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-DDM_level_5:_Library_services" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DDM_level_5:_Library_services"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.6</span> <span>DDM level 5: Library services</span> </div> </a> <ul id="toc-DDM_level_5:_Library_services-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Inside_DDM" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Inside_DDM"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Inside DDM</span> </div> </a> <button aria-controls="toc-Inside_DDM-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Inside DDM subsection</span> </button> <ul id="toc-Inside_DDM-sublist" class="vector-toc-list"> <li id="toc-How_DDM_works" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#How_DDM_works"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>How DDM works</span> </div> </a> <ul id="toc-How_DDM_works-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Object-orientation" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Object-orientation"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Object-orientation</span> </div> </a> <ul id="toc-Object-orientation-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Subsets_and_extensions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Subsets_and_extensions"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>Subsets and extensions</span> </div> </a> <ul id="toc-Subsets_and_extensions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-DDM_messages" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DDM_messages"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.4</span> <span>DDM messages</span> </div> </a> <ul id="toc-DDM_messages-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Documentation" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Documentation"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.5</span> <span>Documentation</span> </div> </a> <ul id="toc-Documentation-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-DDM_file_models" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DDM_file_models"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.6</span> <span>DDM file models</span> </div> </a> <ul id="toc-DDM_file_models-sublist" class="vector-toc-list"> <li id="toc-Record-oriented_files" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Record-oriented_files"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.6.1</span> <span>Record-oriented files</span> </div> </a> <ul id="toc-Record-oriented_files-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Stream-oriented_files" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Stream-oriented_files"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.6.2</span> <span>Stream-oriented files</span> </div> </a> <ul id="toc-Stream-oriented_files-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Hierarchical_directories" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Hierarchical_directories"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.6.3</span> <span>Hierarchical directories</span> </div> </a> <ul id="toc-Hierarchical_directories-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-DDM_queues" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DDM_queues"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.7</span> <span>DDM queues</span> </div> </a> <ul id="toc-DDM_queues-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Relational_databases" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Relational_databases"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.8</span> <span>Relational databases</span> </div> </a> <ul id="toc-Relational_databases-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Data_description_and_conversion" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Data_description_and_conversion"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.9</span> <span>Data description and conversion</span> </div> </a> <ul id="toc-Data_description_and_conversion-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Implementing_products" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Implementing_products"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Implementing products</span> </div> </a> <button aria-controls="toc-Implementing_products-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Implementing products subsection</span> </button> <ul id="toc-Implementing_products-sublist" class="vector-toc-list"> <li id="toc-DDM_products_by_IBM" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DDM_products_by_IBM"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>DDM products by IBM</span> </div> </a> <ul id="toc-DDM_products_by_IBM-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-DDM_products_by_other_vendors" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#DDM_products_by_other_vendors"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>DDM products by other vendors</span> </div> </a> <ul id="toc-DDM_products_by_other_vendors-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-See_also" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#See_also"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>See also</span> </div> </a> <ul id="toc-See_also-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Distributed Data Management Architecture</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="This article exist only in this language. Add the article for other languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-0" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">Add languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> <div class="after-portlet after-portlet-lang"><span class="uls-after-portlet-link"></span><span class="wb-langlinks-add wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q18206604#sitelinks-wikipedia" title="Add interlanguage links" class="wbc-editpage">Add links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Distributed_Data_Management_Architecture" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Distributed_Data_Management_Architecture" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Distributed_Data_Management_Architecture"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Distributed_Data_Management_Architecture"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Distributed_Data_Management_Architecture" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Distributed_Data_Management_Architecture" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Distributed_Data_Management_Architecture&oldid=1242296682" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Distributed_Data_Management_Architecture&id=1242296682&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FDistributed_Data_Management_Architecture"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FDistributed_Data_Management_Architecture"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Distributed_Data_Management_Architecture&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Distributed_Data_Management_Architecture&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q18206604" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">Open, published architecture for creating, managing and accessing data on a remote computer</div> <p><b>Distributed Data Management Architecture</b> (<b>DDM</b>) is <a href="/wiki/IBM" title="IBM">IBM</a>'s open, published <a href="/wiki/Software_architecture" title="Software architecture">software architecture</a> for creating, managing and accessing data on a remote computer. DDM was initially designed to support <a href="#Record-oriented_files">record-oriented files</a>; it was extended to support <a href="#Hierarchical_directories">hierarchical directories</a>, <a href="#Stream-oriented_files">stream-oriented files</a>, <a href="/wiki/Message_queue" title="Message queue">queues</a>, and system command processing; it was further extended to be the base of IBM's <a href="/wiki/DRDA" title="DRDA">Distributed Relational Database Architecture</a> (DRDA); and finally, it was extended to support <a href="#Data_description_and_conversion">data description and conversion</a>. Defined in the period from 1980 to 1993, DDM specifies necessary components, messages, and protocols, all based on the principles of <a href="#Object-orientation">object-orientation</a>. DDM is not, in itself, a piece of software; the implementation of DDM takes the form of client and server products. As an <a href="/wiki/Open_architecture" title="Open architecture">open architecture</a>, products can implement subsets of DDM architecture and products can extend DDM to meet additional requirements. Taken together, DDM products implement a <a href="/wiki/Clustered_file_system" title="Clustered file system">distributed file system</a>. </p> <figure class="mw-default-size mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/File:DDMMagazineCover.jpg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/en/thumb/5/59/DDMMagazineCover.jpg/220px-DDMMagazineCover.jpg" decoding="async" width="220" height="293" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/5/59/DDMMagazineCover.jpg 1.5x" data-file-width="273" data-file-height="364" /></a><figcaption>DDM Architecture in the media.</figcaption></figure> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Distributed_applications">Distributed applications</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=1" title="Edit section: Distributed applications"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The designers of distributed applications must determine the best placement of the application's programs and data in terms of the quantity and frequency of data to be transmitted, along with data management, security, and timeliness considerations. There are three <a href="/wiki/Client%E2%80%93server_model" title="Client–server model">client–server models</a> for the design of distributed applications: </p> <ol><li><i><a href="/wiki/File_Transfer_Protocol" title="File Transfer Protocol">File Transfer Protocol</a></i> (FTP) copies or moves whole files or database tables to each client so they can be operated on locally. This model is appropriate for highly interactive applications, such as document and spreadsheet editors, where each client has a copy of the corresponding editor and the sharing of such documents is generally not a concern.</li> <li><i><a href="/wiki/Thin_client" title="Thin client">Thin client</a></i> applications present the interface of an application to users while the computational parts of the application are centralized with the affected files or databases. Communication then consists of <i><a href="/wiki/Remote_procedure_call" title="Remote procedure call">remote procedure calls</a></i> between the thin clients and a server in which uniquely designed messages specify a procedure to be called, its associated parameters, and any returned values.</li> <li><i><a href="/wiki/Fat_client" class="mw-redirect" title="Fat client">Fat client</a></i> applications perform all application processing tasks on client systems, but data is centralized in a server so that it can be managed, so that it can be accessed by any authorized client application, so that all client applications work with up-to-date data, and so that only the <a href="/wiki/Record-oriented_filesystem" title="Record-oriented filesystem">records</a>, stream sections, or database tables affected by an application are transmitted. Client application programs must be distributed to all clients that work with the centralized data.</li></ol> <p>The DDM architecture was initially designed to support the <i>fat client</i> model of distributed applications; it also supports whole-file transfers. </p> <div class="mw-heading mw-heading2"><h2 id="Benefits_provided_by_DDM_architecture">Benefits provided by DDM architecture</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=2" title="Edit section: Benefits provided by DDM architecture"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The DDM architecture provides distributed applications with the following benefits:<sup id="cite_ref-DDM-GI_1-0" class="reference"><a href="#cite_note-DDM-GI-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> </p> <ul><li>Local/remote transparency. Application programs can be easily redirected from local data to remote data. Specialized programs that access and manage data in remote systems are not needed.</li> <li>Reduced data redundancy. Data need be stored in only one location in a network.</li> <li>Better security. By eliminating redundant copies of data, access to the data in a network can be better limited to authorized users.</li> <li>Data integrity. Updates by concurrent local and remote users are not lost because of conflicts.</li> <li>More timely information. Users of multiple computers in a network always have access to the most recent data.</li> <li>Better resource management. The data storage and processing resources of a network of computers can be optimized.</li></ul> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=3" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>DDM architecture is a set of specifications for messages and protocols that enable data distributed throughout a network of computers to be managed and accessed. <sup id="cite_ref-InsideDDM_2-0" class="reference"><a href="#cite_note-InsideDDM-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="Initial_efforts">Initial efforts</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=4" title="Edit section: Initial efforts"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>IBM's <i><a href="/wiki/Systems_Network_Architecture" title="Systems Network Architecture">Systems Network Architecture</a></i> (SNA) was initially designed to enable the hierarchical connection of workstations to IBM mainframe computers. The communication networks available at the time were rigidly designed in terms of fixed connections between a mainframe and its suite of workstations, which were under the complete software control of the mainframe computer. Other communications between mainframes was also in terms of fixed connections used by software defined for specific purposes. As communication networks became more flexible and dynamic, generic <a href="/wiki/Peer-to-peer" title="Peer-to-peer">peer-to-peer</a> communications were desirable, in which a program on one computer could initiate and interact with a program on a different computer. </p><p>When IBM's SNA <i><a href="/wiki/IBM_Advanced_Program-to-Program_Communication" title="IBM Advanced Program-to-Program Communication">Advanced Program to Program Communications</a></i> (APPC) architecture was defined in the early 1980s, it was also apparent that APPC could be used to provide operating system services on remote computers. An SNA workgroup pursued this idea and outlined several possible distributed services, such as file services, printer services, and system console services, but was unable to initiate product development. APPC software was not yet available on mainframes and, more basically, mainframes were still viewed primarily as stand-alone systems. As a result, work on distributed services was suspended by the SNA work group. </p><p>Members of the SNA work group from IBM's Rochester, Minnesota development laboratory were convinced that a business case existed for distributed services among the mid-range computer systems produced in Rochester. A primitive form of distributed file services, called <i>Distributed Data File Facility</i> (DDFF) had been implemented to connect the <a href="/wiki/IBM_System/3" title="IBM System/3">IBM System/3</a>, <a href="/wiki/IBM_System/34" title="IBM System/34">IBM System/34</a>, and <a href="/wiki/IBM_System/36" title="IBM System/36">IBM System/36</a> minicomputers. Further, the <a href="/wiki/IBM_System/36" title="IBM System/36">IBM System/36</a> and the <a href="/wiki/IBM_System/38" title="IBM System/38">IBM System/38</a> computers were being sold to customers in multiples and there was a clear need to enable, for example, the headquarters computers of a company to interact with the computers in its various warehouses. APPC was implemented on these systems and used by various customer applications. The idea of distributed operating system services was then revived as the <i>Golden Gate</i> project and an attempt made to justify its development. This attempt also failed; the whole idea of distributed services was too new for IBM product planners to be able to quantify the value of software that interconnected heterogeneous computers. </p><p>However, one <i>Golden Gate</i> planner, John Bondy, remained convinced and persuaded management to create a department outside of the normal control of the Rochester laboratory so that there would be no immediate need for a predefined business case. Further, he narrowed its mission to include only support for <i>Distributed Data Management</i> (DDM), in particular, support for <a href="/wiki/Record-oriented_file" class="mw-redirect" title="Record-oriented file">record-oriented files</a>. He then convinced an experienced software architect, Richard A. Demers, to join him in the tasks of defining DDM architecture and selling the idea of DDM to the IBM system houses. </p><p>The first year of this effort was largely fruitless as the IBM system houses continued to demand up-front business cases and as they insisted on message formats isomorphic to the control block interfaces of their local file systems. Further, as <a href="/wiki/IBM_Personal_Computer" title="IBM Personal Computer">Personal Computers</a> began to be used as terminals attached to mainframe computers, it was argued that simply enhancing the <a href="/wiki/IBM_3270#Data_stream" title="IBM 3270">3270 data stream</a> would enable PCs to access mainframe data. </p><p>During this period, Demers designed an architectural model of DDM clients and servers, of their components, and of interactions between communicating computers. Further, he defined a generic format for DDM messages based on the principles of object-orientation as pioneered by the <a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a> programming language and by the IBM System/38. This model made it clear how DDM products could be implemented on various systems. See <a href="#How_DDM_works">How DDM works</a>. </p><p>In 1982, the System/36 planners became convinced there was a sufficient market for DDM record-oriented file services.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="DDM_level_1:_Record-oriented_files"><span class="anchor" id="DDM-L1"></span>DDM level 1: Record-oriented files</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=5" title="Edit section: DDM level 1: Record-oriented files"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The generic format of DDM messages had already been designed, but what specific messages should be defined? The System/36 file system had been defined to meet the record-oriented needs of third generation programming languages (3GLs), such as <a href="/wiki/Fortran" title="Fortran">Fortran</a>, <a href="/wiki/COBOL" title="COBOL">COBOL</a>, <a href="/wiki/PL/I" title="PL/I">PL/I</a>, and <a href="/wiki/IBM_RPG" title="IBM RPG">IBM RPG</a>, and so had the System/38 file system and the <a href="/wiki/Virtual_Storage_Access_Method" title="Virtual Storage Access Method">Virtual Storage Access Method</a> (VSAM) file system of the IBM mainframe computers. And yet, their actual facilities and interfaces varied considerably, so what facilities and interfaces should DDM architecture support? See <a href="#Record-oriented_files">record-oriented files</a>. </p><p>The initial work on DDM by the <i>Golden Gate</i> project had followed the lead of the <i>File Transfer Access and Management</i> (<a href="/wiki/FTAM" title="FTAM">FTAM</a>) international standard for distributed files, but it was very abstract and difficult to map to local file services. In fact, this had been one of the barriers to acceptance by the IBM system houses. Kenneth Lawrence, the system architect responsible for System/36 file services, argued that it would be better to define messages that at least one IBM system could easily implement and then let other systems request whatever changes they needed. Naturally, he argued for support of System/36 requirements. After a year of failure to sell the idea of DDM to other IBM system houses, Lawrence's arguments prevailed. </p><p>Richard Sanders joined the DDM architecture team and worked with Lawrence and Demers to define the specific messages needed for System/36 DDM. Progress in the definition of DDM encouraged System/38 to also participate. This broadened the scope of DDM record-file support to meet many of the requirements of the System/38's advanced file system. </p><p>Files exist in a context provided by an operating system that provides services for organizing files, for sharing them with concurrent users and for securing them from unwarranted access. In level 1 of DDM, access to remote file directories was not supported beyond the transmission of the fully qualified name of the file to be used. Security and sharing, however, were required. Sanders did the design work in these areas. Sanders also defined specific protocols regarding the use of communication facilities, which were incorporated in a component called the DDM Conversational Communications Manager. Initially implemented using APPC, it was later implemented using <a href="/wiki/Internet_protocol_suite" title="Internet protocol suite">TCP/IP</a>. </p><p>With the completion of the System/36 DDM product, Lawrence worked with programmers from the IBM Hursley Park, UK laboratory to adapt much of the System/36 DDM server programming for use in the IBM <a href="/wiki/CICS" title="CICS">Customer Information Control System</a> (CICS) transaction processing environment, thereby making CICS a DDM server for both the MVS and VSE mainframe operating systems.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Lawrence also worked with programmers from the IBM Cary, North Carolina laboratory to implement a DDM record-oriented client for <a href="/wiki/IBM_PC_DOS" title="IBM PC DOS">IBM PC DOS</a>. </p><p>Level 1 of DDM Architecture was formally published in 1986. At the time of this announcement, IBM presented an <i>Outstanding Technical Achievement Award</i> to Kenneth Lawrence, an <i>Outstanding Contribution Award</i> to Richard Sanders, and an <i>Outstanding Innovation Award</i> to Richard Demers. </p> <ul><li>In this article, <i>System/38</i> will be henceforth used to refer to the System/38 and its successors: the IBM AS/400 (which merged the functionality of the System/36 and the System/38), the IBM iSeries, and the IBM Power Series<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> (which merged the iSeries with the IBM RS/6000, IBM's RISC/UNIX-based server and workstation product line).</li></ul> <div class="mw-heading mw-heading3"><h3 id="DDM_level_2:_Hierarchical_directories_and_stream-oriented_files"><span class="anchor" id="DDM-L2"></span>DDM level 2: Hierarchical directories and stream-oriented files</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=6" title="Edit section: DDM level 2: Hierarchical directories and stream-oriented files"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>With the increasing importance of the IBM PC and the Unix operating system in network environments, DDM support was also needed for the hierarchical directories and stream-oriented files of the <a href="/wiki/IBM_Personal_Computer" title="IBM Personal Computer">IBM Personal Computer</a> running <a href="/wiki/IBM_PC_DOS" title="IBM PC DOS">IBM PC DOS</a> and the <a href="/wiki/IBM_RS/6000" title="IBM RS/6000">IBM RS/6000</a> running <a href="/wiki/IBM_AIX" title="IBM AIX">IBM AIX</a> (IBM's version of Unix). See <a href="#Stream-oriented_files">Stream-oriented files</a>. </p><p>DDM Architecture Level 2 was published in 1988. Jan Fisher and Sunil Gaitonde did most of the architecture work on DDM support for directories and stream files. </p> <div class="mw-heading mw-heading3"><h3 id="DDM_level_3:_Relational_database_services"><span class="anchor" id="DDM-L3"></span>DDM level 3: Relational database services</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=7" title="Edit section: DDM level 3: Relational database services"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In 1986, IBM marketed four different <a href="/wiki/Relational_database" title="Relational database">relational database</a> (RDB) products, each built for a specific IBM operating system. Scientists at IBM's Almaden Research Laboratory had developed System/R*, a prototype of a distributed RDB and they felt it was now time to turn it into marketable products. However, System/R* was based on System/R, a research prototype of a RDB, and could not be easily added to the IBM RDB products. See<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> for a discussion of RDBs in a distributed processing environment. </p><p>Roger Reinsch from the IBM Santa Theresa Programming Center lead a cross-product team to define a <a href="/wiki/DRDA" title="DRDA">Distributed Relational Database Architecture</a> (DRDA). He enlisted: </p> <ul><li>Representatives from each of the four IBM RDB products.</li> <li>Bruce Lindsay, a System/R* researcher,</li> <li>Paul Roever (from the IBM Sindelfingen, Germany laboratory), who had developed a specification for describing data called the Formatted Data: Object Content Architecture (FD:OCA).</li> <li>Richard Sanders and Richard Demers from the DDM architecture team to define appropriate models, messages and protocols.</li></ul> <p>In 1990, DDM Architecture Level 3 and DRDA<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> were published at the same time. Both DDM and DRDA were designated as strategic components of IBM's <a href="/wiki/IBM_Systems_Application_Architecture" title="IBM Systems Application Architecture">Systems Application Architecture</a> (SAA). DRDA was implemented by all four of the IBM RDB products and by other vendors. </p><p>Awards were given to key participants in the design of DRDA. Richard Sanders received an <i>Outstanding Contribution Award</i> and Roger Reinsch and Richard Demers received <i>Outstanding Innovation Awards</i>. </p> <div class="mw-heading mw-heading3"><h3 id="DDM_level_4:_Additional_Services"><span class="anchor" id="DDM-L4"></span>DDM level 4: Additional Services</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=8" title="Edit section: DDM level 4: Additional Services"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The <i>Distributed File Management</i> (DFM)<sup id="cite_ref-DFM_8-0" class="reference"><a href="#cite_note-DFM-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> project was initiated to add DDM services to IBM's MVS operating system to enable programs on remote computers to create, manage, and access <a href="/wiki/Virtual_Storage_Access_Method" title="Virtual Storage Access Method">VSAM</a> files. John Hufferd, the manager of the DFM project looked to the DDM Architecture team for a means of converting the data fields in records as they flowed between systems. Richard Demers took the lead on this issue, aided by Koichi Yamaguchi from the DFM project. See <a href="#Data_description_and_conversion">Data description and conversion</a>. </p><p>The following additional services were defined by Richard Sanders, Jan Fisher and Sunil Gaitonde in DDM architecture at Level 4: </p> <ul><li>For DFM, storage management and user-defined file attributes.</li> <li>For DRDA, two-phase commitment control protocols for application directed distributed units of work.</li> <li>Queues, which can be created, cleared or deleted in a remote server. Queue entries are application defined records that are added to or received from a queue. See <a href="#DDM_Queues">DDM Queues</a>.</li> <li>System Command Processor, a Manager to which commands defined by a server's host system, can be sent for execution.</li> <li>Multi-tasking Communications Manager, which enables multiple client agents to communicate with corresponding server agents using a single conversation between the client and server systems.</li> <li>Sync Point manager coordinates logical units of work in multiple DDM servers. Two-phase commitment protocols ensure coordinated resource recovery when any logical unit of work fails.</li></ul> <p>DDM architecture level 4 was published in 1992. </p> <div class="mw-heading mw-heading3"><h3 id="DDM_level_5:_Library_services"><span class="anchor" id="DDM-L5"></span>DDM level 5: Library services</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=9" title="Edit section: DDM level 5: Library services"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Architecture work on DDM level 5 consisted of support for </p> <ul><li>mainframe <a href="/wiki/Data_set_(IBM_mainframe)" title="Data set (IBM mainframe)">Partitioned Data Sets</a>, which are files consisting of an internal directory and multiple members; in effect, they are libraries of similar files.</li> <li>Personal Computer <a href="/wiki/Features_new_to_Windows_7#Libraries" title="Features new to Windows 7">Libraries</a>, which consolidate access to files in multiple folders in a single library.</li> <li>further enhancements to DRDA.</li></ul> <p>Jan Fisher was the architect responsible for DDM level 5, which was published by the <a rel="nofollow" class="external text" href="https://publications.opengroup.org/c114">Open Group</a>, rather than IBM. Shortly thereafter, the IBM DDM architecture group was disbanded. </p> <div class="mw-heading mw-heading2"><h2 id="Inside_DDM">Inside DDM</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=10" title="Edit section: Inside DDM"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>DDM architecture is a formally defined and highly structured set of specifications. This section introduces key technical concepts that underlie DDM.<sup id="cite_ref-InsideDDM_2-1" class="reference"><a href="#cite_note-InsideDDM-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> </p> <div class="mw-heading mw-heading3"><h3 id="How_DDM_works">How DDM works</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=11" title="Edit section: How DDM works"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><span class="mw-default-size" typeof="mw:File"><a href="/wiki/File:HowDDMWorks.jpg" class="mw-file-description" title="Overview of DDM Processing"><img alt="Overview of DDM Processing" src="//upload.wikimedia.org/wikipedia/commons/e/e6/HowDDMWorks.jpg" decoding="async" width="475" height="360" class="mw-file-element" data-file-width="475" data-file-height="360" /></a></span> </p><p>DDM architecture defines a client/server protocol; that is, a client requests services from a server which interacts with its local resources to perform the requested service, the results of which, data and status indicators, are returned to the client. The above diagram illustrates the roles of DDM clients and servers in relation to local resources. (The common terminology of <i>clients</i> and <i>servers</i> is used here, but in DDM architecture, a client is called a <i>Source Server</i> and a Server is called a <i>Target Server</i>.) </p> <ol><li>An application program interacts with a local resource, such as a file, by means of programming interfaces provided by a local resource manager (LRM). But if the desired resource is in a remote computer, DDM is used to mediate the interaction. The application program continues to use the interfaces provided by its LRM, but they are redirected to a DDM client. DDM architecture does not specify how this redirection is to occur as it does not support a directory of remote resources. One method of redirection used by several DDM file-oriented products is to have the application open a special local file, called a <i>DDM File</i> by the System/38, that provides location and access information about the remote file. Redirection to the DDM Client then occurs.</li> <li>DDM Architecture defines Manager level entities for files, relational databases, access methods, etc. A Client Resource Manager (CRM) polymorphically supports the functional interfaces defined by the client system's LRM. Its primary function is to generate appropriate linearized DDM command and data objects for each functional interface. (See <a href="#DDM_messages">DDM messages</a>.) These objects are sent to the server resource manager (SRM) of the remote DDM server. Actually, though, they are routed through DDM client and server Agents and Communications Managers.</li> <li>The DDM Client Agent puts a linearized command into an RQSDSS envelope and linearized objects into linked OBJDSS envelopes. (See <a href="#DDM_messages">DDM messages</a>.) The Client Agent interacts with the Server Agent to create a path for the messages it receives from the CRM to flow to the SRM. If the application program needs to interact with only a single remote resource, this is straightforward. However, it is possible for the application program to concurrently interact with multiple resources of varying kinds that reside on multiple remote systems. The Client Agent represents the application program in all cases and routes messages on separate virtual paths to each resource.</li> <li>The Client Communications Manager interacts with the ServerCommunications Manager to implement a conversational protocol of the form "I talk while you listen, and then you talk while I listen." Various telecommunication protocols can be used, including IBM's SNA APPC and the Internet's TCP/IP protocol.</li> <li>DDM messages transmitted to the Server Communications Manager are passed to the Server Agent on the path specified by the message, and it forwards the messages to the SRM on the same path. If the Server Agent is interacting with a single client on a single path, this is straightforward. However, the Server Agent can interact with multiple clients on multiple paths.</li> <li>The Server Resource Manager (SRM) parses DDM messages and determines what it must do to perform the request. It may use one or more of the functional interfaces of the server system's corresponding Local Resource Manager (LRM).</li> <li>The SRM accumulates the data and status indicators from the LRM and generates appropriate linearized objects and reply messages, which it passes to the Server Agent.</li> <li>The Server Agent packages the replies and objects into RPYDSS and OBJDSS envelopes and forwards them to the Server Communication Manager, which sends them to the Client Communication Manager and the Client Agent on the same path as the original command.</li> <li>The Client Agent removes the reply and objects from their respective RPYDSS and OBJDSS envelopes and passes them to the Client Resource Manager.</li> <li>The Client Resource Manager parses the returned object and reply messages and maps them as expected by the original LRM's functional interface for return to the application program.</li></ol> <div class="mw-heading mw-heading3"><h3 id="Object-orientation">Object-orientation</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=12" title="Edit section: Object-orientation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>DDM architecture is <a href="/wiki/Object-oriented_programming" title="Object-oriented programming">object-oriented</a>. All entities defined by DDM are objects defined by self-defining <i>Class</i> objects. The messages, replies and data that flow between systems are serialized objects. Each object specifies its length, identifies its class by means of a DDM codepoint, and contains data as defined by its class. Further, its class specifies the commands that can be sent to its instances when an object resides in a DDM client or server, thereby encapsulating the object by a limited set of operations. </p><p>Structurally, DDM architecture consists of hierarchical levels of objects, each level manifesting emergent properties at increasingly higher levels. </p> <ul><li>A field is a string of bits that encodes a number, character or other data entity. Instances of a Field subclass are encapsulated by the operations that can be performed by its class; for example, arithmetic operations on integer fields.</li> <li>An object is a self-identifying entity consisting of one or more fields encapsulated by a defined set of operations. Objects at this level were inspired by the kernel object classes of the <a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a> programming language<sup id="cite_ref-Smalltalk-LI_9-0" class="reference"><a href="#cite_note-Smalltalk-LI-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> <ul><li>A scalar object consists of a single field, as encoded and described by the object's class. Scalar objects are used as the parameter values of command and reply objects. They are also used as the values of object attributes, such as an object's length in DDM documentation. The encoding methods used for the values of these scalar objects are fully defined by DDM architecture.</li> <li>A mapped object consists of one or more fields, such as the fields of an application defined record. The encoding methods and the alignment of these fields is not defined by DDM architecture; instead, it is defined by application program declaration statements and the encoding and alignment methods of its programming language.</li> <li>A collection object is a container for objects, as defined by the collection's class. Examples of collection objects are DDM Commands and Replies.</li></ul></li> <li>A manager is a self-identifying entity that provides an environment for the storage and processing of objects. A manager is encapsulated by the operations defined by its class. Together, a set of managers implements the overall processing environment of a DDM client or server. Manager entities at this level were inspired by the System Objects of the System/38 operating system.<sup id="cite_ref-OS400-Objects_10-0" class="reference"><a href="#cite_note-OS400-Objects-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> The Managers defined by DDM include: Dictionary, Supervisor, Agent, Directory, File(s), Access Method(s), Relational Database, SQL Application Manager, Queue, Lock Manager, Security Manager, Recovery Manager, System Command Processor, Communication Manager(s).</li> <li>A server is a self-identifying entity that provides an environment for storage and processing of managers, as either a client or a server, in a distributed processing environment. Examples are clients and servers specialized for distributed file or distributed relational database management.</li></ul> <p>While DDM architecture is object-oriented, the DDM products were implemented using the languages and methods typical of their host systems. A Smalltalk version of DDM was developed for the IBM PC by <a href="/wiki/Object_Technology_International" title="Object Technology International">Object Technology International</a>, with appropriate Smalltalk classes automatically created from the DDM Reference Manual. </p> <div class="mw-heading mw-heading3"><h3 id="Subsets_and_extensions">Subsets and extensions</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=13" title="Edit section: Subsets and extensions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>DDM is an open architecture. DDM products can implement subsets of DDM architecture; they can also create their own extensions. <sup id="cite_ref-DDM-PG_11-0" class="reference"><a href="#cite_note-DDM-PG-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> </p><p>The DDM 'Exchange Server Attributes' command is the first command sent when a client is connected with a server. It identifies the client and specifies the managers the client requires and the level of DDM architecture at which support is required. The server responds by identifying itself and specifying at what level it supports the requested managers. A general rule is that a product that supports Level X of a DDM manager must also support Level X-1 so that new server products connect with older client products. </p><p>Subsets of DDM can be implemented to meet varying product requirements: </p> <ul><li>as a client, a server or both. For example, DDM/PC is only a client, CICS/DDM is only a server, and System/38 DDM is both a client and a server.</li> <li>to support specific managers, such as record-oriented files, stream-oriented files, relational databases (as part of DRDA), or any combination thereof. For example, MVS Database 2 provides client and server support for only the subset of DDM required by DRDA.</li> <li>to support only selected commands of a manager, such as the ability to load and unload records from a sequential file.</li> <li>to support selected parameters of a command, such as the 'Return Inactive Records' parameter of the 'Get Record' command.</li></ul> <p>When a DDM client is connected to a known DDM server, such as a System/38 client to a System/38 server, DDM architecture can also be extended by adding </p> <ul><li>new product-specific managers.</li> <li>new commands to an existing DDM manager.</li> <li>new parameters to a DDM command or reply message.</li></ul> <p>Such extensions can be defined within DDM's object-oriented framework so that existing DDM message handling facilities can be used. </p> <div class="mw-heading mw-heading3"><h3 id="DDM_messages">DDM messages</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=14" title="Edit section: DDM messages"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In a purely object-oriented implementation of DDM, clients and servers and all of their contained managers and objects exist in a memory heap, with pointers (memory addresses) used to interconnect them. For example, a command object points to each of its parameter objects. But a command cannot be transmitted from a client to a server in this way; an isomorphic copy of the command must be created as a single, contiguous string of bits. In the heap, a command consists of the size of the command in the heap, a pointer to the command's class, and pointers to each of the command's parameter objects. Linearized, the command consists of the total length of the linearized command, a code point identifying the command's class, and each of its linearized parameter objects. DDM architecture assigns unique code points to each class of object. This straightforward technique is used for all objects transmitted between client's and servers, including commands, records, and reply messages. </p><p>All of these linearized objects are put into envelopes that enable the client and server agents to coordinate their processing. In DDM architecture, these envelopes are called <i>Data Stream Structures</i> (DSS). Commands are put into a <i>Request DSS</i> (RQSDSS), replies are put into a <i>Reply DSS</i> (RPYDSS), and other objects are put into an <i>Object DSS</i> (OBJDSS). There can be only one command in a RQSDSS and only one reply in RPYDSS, but many objects, such as records, can be put into an OBJDSS. Further many OBJDSSes can be chained to a RQSDSS or a PRYDSS to accommodate as many objects as necessary. A DSS consists of the total length of the DSS, a flag byte identifying the type of DSS, a request identifier, and the linearized objects in the DSS. The request identifier ties an RQSDSS with subsequent OBJDSSes from the client, such as the records to be loaded into a file by the <i>Load File</i> command. The request identifier also ties the RQSDSS from the client with a RPYDSS or the OBJDSSes from the server to the client. </p> <div class="mw-heading mw-heading3"><h3 id="Documentation">Documentation</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=15" title="Edit section: Documentation"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The DDM Reference Manual<sup id="cite_ref-DDM-RM3_12-0" class="reference"><a href="#cite_note-DDM-RM3-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-DDM-RM4_13-0" class="reference"><a href="#cite_note-DDM-RM4-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> consists of named Menu, Help, and Class objects. The subclasses of DDM class <i>Class</i> are described by variables that specify </p> <ul><li>the superclass of the class. Classes are defined by an inheritance hierarchy; for example, Record File is a subclass of File which is a subclass of Manager and inherits their data and commands. Class <i>Çlass</i> and its subclasses are self-describing by <i>çlass commands</i> and <i>class variables</i>, including:</li> <li>a title that briefly describes the class.</li> <li>the status of the class relative to ongoing work on DDM architecture.</li> <li>descriptive text and graphics relating the class to its components and its environment.</li> <li>the data (Fields, Objects, Managers, etc.) encapsulated by instances of the class.</li> <li>the commands that can be sent to its instances.</li></ul> <p>These objects can contain references to other named objects in text and specifications, thereby creating <a href="/wiki/Hypertext" title="Hypertext">hypertext</a> linkages among the pages of the DDM Reference Manual. Menu and Help pages form an integrated tutorial about DDM. The paper version of the DDM Reference Manual Level 3 is bulky, at over 1400 pages, and somewhat awkward to use, but an interactive version was also built using internal IBM communication facilities. Given the relatively slow speed of those communication facilities, it was primarily of use within the IBM Rochester laboratory. </p><p>In addition to the DDM Reference Manual, a General Information<sup id="cite_ref-DDM-GI_1-1" class="reference"><a href="#cite_note-DDM-GI-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> document provide's executive level information about DDM, and a Programmer's Guide<sup id="cite_ref-DDM-PG_11-1" class="reference"><a href="#cite_note-DDM-PG-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> summarizes DDM concepts for programmers implementing clients and servers. </p> <div class="mw-heading mw-heading3"><h3 id="DDM_file_models">DDM file models</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=16" title="Edit section: DDM file models"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Three general file models are defined by DDM architecture: record-oriented files, stream-oriented files and hierarchical directories. </p><p>The following services are provided by DDM architecture for managing remote files: </p> <ul><li>creating, clearing, and deleting files,</li> <li>copying, loading, and unloading the data of a file,</li> <li>locking and unlocking files,</li> <li>obtaining and changing file attributes,</li></ul> <div class="mw-heading mw-heading4"><h4 id="Record-oriented_files">Record-oriented files</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=17" title="Edit section: Record-oriented files"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Record-oriented files were designed to meet the data input, output, and storage requirements of third generation (3GL) programming languages, such as Fortran, Cobol, PL/I, and RPG. Rather than have each language provide its own support for these capabilities, they were incorporated into services provided by operating systems. </p><p>A <a href="/wiki/Record_(computer_science)" title="Record (computer science)">record</a> is a series of related data fields, such as the name, address, identification number and salary of a single employee, in which each field is encoded and mapped to a contiguous string of bytes. Early computers had limited input and output capabilities, typically in the form of stacks of 80 column punched cards or in the form of paper or magnetic tapes. Application records, such as employee data records, were sequentially read or written a record at a time and processed in batches. When direct access storage devices became available, programming languages added ways for programs to randomly access records one at a time, such as access by the values of key fields or by the position of a record in a file. All of the records in a file can be of the same format (as in a payroll file) or of varying formats (as in an event log). Some files are read-only in that their records, once written to the file, can only be read, while other files allow their records to be updated. </p><p>The DDM record-oriented file models consist of file attributes, such as its creation date, the date of last update, the size of its records, and slots in which records can be stored. The records can be of either fixed or varying length, depending on the media used to store the file's records. DDM defines four kinds of record-oriented files: </p> <ul><li>Sequential files, in which records are stored in consecutive slots.</li> <li>Direct files, in which individual records are stored in a slot of the file determined by the value of a field of the records.</li> <li>Keyed files, in which records are stored in consecutive slots and for which a secondary order is maintained by means of an index of the values of key fields contained in the records.</li> <li>Alternate index files, in which a separate index of the values of key fields is based on an existing sequential, direct, or keyed file.</li></ul> <p>DDM architecture also defines a variety of <a href="/wiki/Access_method" title="Access method">access methods</a> for working with record-oriented files in various ways. An access method is an instance of the use of a file created by means of an OPEN command that connects itself to the file after determining if the client is authorized to use it. The access method is disconnected from a file by means of a CLOSE command. </p><p>An access method keeps track of the record being currently processed by means of a cursor. Using various SET commands, the cursor can be made to point to the beginning or end of the file, to the next or previous sequential record of the file, to the record with a specific key value, or to the next or previous record as ordered by their keys. </p><p>Multiple instances of access methods can be opened on a file at the same time, each serving a single client. If a file is opened for update access, conflicts can occur when the same record is being accessed by multiple clients. To prevent such conflicts, a lock can be obtained on an entire file. Also, if a file is opened for <i>update</i> a lock is obtained on a record by the first client to read it and released when that client updates it. All other clients must wait for the lock's release. </p> <div class="mw-heading mw-heading4"><h4 id="Stream-oriented_files">Stream-oriented files</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=18" title="Edit section: Stream-oriented files"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Stream-oriented files consist of a single sequence of bytes on which programs can map application data however they want. Stream files are the primary file model supported by <a href="/wiki/Unix" title="Unix">Unix</a> and <a href="/wiki/Unix-like" title="Unix-like">Unix-like</a> operating systems and by <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Windows</a>. DDM defines a single stream file model and a single stream access method. </p><p>The DDM stream file model consists of file attributes, such as its creation date and the size of the stream and a continuous stream of bytes. The stream can be accessed by means of the Stream Access Method. Application programs write data onto portions of the stream, even if that data consists of records. They keep track of the location of data items in the stream in any way they want. For example, the data stream of document files is defined by a text processing program such as <a href="/wiki/Microsoft_Word" title="Microsoft Word">Microsoft Word</a> and that of a spreadsheet file by a program such as <a href="/wiki/Microsoft_Excel" title="Microsoft Excel">Microsoft Excel</a>. </p><p>A Stream access method is an instance of use of a stream file by a single client. A cursor keeps track of the position of the current byte of the sub-stream in use by the client. Using various SET commands, the cursor can be made to point to the beginning or end of the file, to any specific position in the file, or to any positive or negative offset from the current position. </p><p>Multiple instances of the Stream access method can be opened on a file at the same time, each serving a single client. If a file is opened for "update" access, conflicts can occur when the same sub-stream is being accessed by multiple clients. To prevent such conflicts, a lock can be obtained on an entire file. Also, if a file is opened for <i>update</i> a lock is obtained on a sub-stream by the first client to "read" it and released when that client "updates" it. All other clients must wait for the lock's release. </p> <div class="mw-heading mw-heading4"><h4 id="Hierarchical_directories">Hierarchical directories</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=19" title="Edit section: Hierarchical directories"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Directory_(computing)" title="Directory (computing)">Hierarchical directories</a> are files whose records each associate a name with a location. A hierarchy occurs when a directory record identifies the name and location of another directory. Using DDM client and server products, a program can create, delete and rename directories in a remote computer. They can also list and change the file attributes of remote directories. The records in a directory can be sequentially read by using the DDM Directory Access Method. The files identified by directory records can be renamed, copied, and moved to a different directory. </p> <div class="mw-heading mw-heading3"><h3 id="DDM_queues">DDM queues</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=20" title="Edit section: DDM queues"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Queues are a communication mechanism that enables generally short term communication among programs by means of records. A DDM queue resides in a single system, but it can be accessed by programs on multiple systems. There are three subclasses of DDM queues that can be created on a target system by means of distinct creation commands: </p> <ul><li>First-in-first-out queues, an asynchronous pipe between enqueuing and dequeuing programs.</li> <li>Last-in-first-out queues, a pushdown stack.</li> <li>Keyed queues, a fan-out mechanism where selected entries can be dequeued by key value.</li></ul> <p>The DDM queue model consists of queue attributes, such as its creation date, the number of records the queue can contain, and the length of the records. The records in a queue can be either fixed or varying length. </p><p>Unlike the DDM file models, it is not necessary to open an access method on a queue. Programs can add records to a queue and receive records from a queue as determined by the class of the queue. Programs can also clear records from a queue, stop operations on a queue, list the attributes of a queue, and change the attributes of a queue. Programs can also lock a queue or individual records in a queue to inhibit contention from other programs. All other clients must wait for the lock's release. </p> <div class="mw-heading mw-heading3"><h3 id="Relational_databases">Relational databases</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=21" title="Edit section: Relational databases"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A <a href="/wiki/Relational_database" title="Relational database">relational database</a> (RDB) is an implementation of the <a href="/wiki/SQL" title="SQL">Structured Query Language</a> (SQL) that supports the creation, management, querying, updating, indexing and interrelationships of tables of data. An interactive user or program can issue SQL statements to a RDB and receive tables of data and status indicators in reply. However, SQL statements can also be compiled and stored in the RDB as packages and then invoked by package name. This is important for the efficient operation of application programs that issue complex, high-frequency queries. It is especially important when the tables to be accessed are located in remote systems. </p><p>The <a href="/wiki/DRDA" title="DRDA">Distributed Relational Database Architecture</a> (DRDA) fits nicely into the overall DDM framework, as discussed in <a href="#Object-Orientation">Object-Orientation</a>. (However, DDM can also be viewed as a component architecture of DRDA since other specifications are also required <sup id="cite_ref-InsideDDM_2-2" class="reference"><a href="#cite_note-InsideDDM-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>). The DDM manager-level objects supporting DRDA are named RDB (for relational database) and SQLAM (for SQL Application Manager). </p> <div class="mw-heading mw-heading3"><h3 id="Data_description_and_conversion">Data description and conversion</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=22" title="Edit section: Data description and conversion"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Transparency is a key objective of DDM architecture. Without recompilation, it should be possible to redirect existing application programs to the data management services of a remote computer. For files, this was largely accomplished by DDM clients at the interface/functional level, but what about the data fields in a record? Complete transparency requires that client application programs be able to write and read fields as encoded by their local data management system, regardless of how any remote server encodes them, and that implies automatic <a href="/wiki/Data_conversion" title="Data conversion">data conversions</a>. </p><p>For example, IBM mainframe computers encode floating point numbers in <a href="/wiki/IBM_hexadecimal_floating-point" title="IBM hexadecimal floating-point">hexadecimal</a> format and character data in <a href="/wiki/EBCDIC" title="EBCDIC">EBCDIC</a>, while IBM Personal computers encode them in <a href="/wiki/IEEE_floating_point" class="mw-redirect" title="IEEE floating point">IEEE</a> format and <a href="/wiki/ASCII" title="ASCII">ASCII</a>. Further complexity arose because of the ways in which various programming language compilers map record fields onto strings of bits, bytes, and words in memory. Transparent conversion of a record requires detailed descriptions of both the client view and the server view of a record. Given these descriptions, the fields of the client and server views can be matched, by field name, and appropriate conversions can be performed. </p><p>The key issue is obtaining sufficiently detailed record descriptions, but record descriptions are generally specified abstractly in application programs by declaration statements defined by the programming language, with the language compiler handling encoding and mapping details. In a distributed processing environment, what is needed is a single, standardized way of describing records that is independent of all programming languages, one that can describe the wide variety of fixed and varying length record formats found in existing files. </p><p>The result was the definition of a comprehensive <i>Data Description and Conversion</i> architecture (DD&C),<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> based on a new, specialized programming language, <i>A Data Language</i> (ADL),<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> for describing client and server views of data records and for specifying conversions. Compiled ADL programs can then be called by a server to perform necessary conversions as records flowed to or from the server. </p><p>DD&C architecture went further and defined a means by which programming language declaration statements can be automatically converted to and from ADL, and thus from one programming language to another. This capability was never implemented because of its complexity and cost. However, an ADL compiler was created and ADL programs are called, when available, to perform conversions by DFM and by the IBM 4680 Store System.<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> However, it is necessary for application programmers to manually write the ADL programs. </p> <div class="mw-heading mw-heading2"><h2 id="Implementing_products">Implementing products</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=23" title="Edit section: Implementing products"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="DDM_products_by_IBM">DDM products by IBM</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=24" title="Edit section: DDM products by IBM"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>The following IBM products implemented various subsets of DDM architecture: </p> <ul><li><a href="/wiki/IBM_System/370" title="IBM System/370">IBM System/370</a> <ul><li><a href="/wiki/MVS" title="MVS">MVS</a> (MVS/SP, MVS/ESA) <ul><li><a href="/wiki/IBM_DB2" class="mw-redirect" title="IBM DB2">Database 2</a> - DRDA client and server</li> <li><a href="/wiki/CICS" title="CICS">CICS</a> - record file server within the CICS transaction processing environment. Discontinued in CICS for z/OS V5.2 and later.<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup></li></ul></li> <li><a href="/wiki/VM_(operating_system)" title="VM (operating system)">VM (operating system)</a> (VM/SP, VM/ESA) <ul><li><a href="/wiki/IBM_SQL/DS" title="IBM SQL/DS">SQL/DS</a> - DRDA client and server</li></ul></li> <li><a href="/wiki/VSE_(operating_system)" title="VSE (operating system)">DOS/VSE</a> <ul><li><a href="/wiki/CICS" title="CICS">CICS</a> - Record file server within the CICS transaction processing environment. Discontinued in CICS for z/VSE V2.1 and later.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup></li></ul></li> <li><a href="/wiki/Z/OS" title="Z/OS">z/OS</a> <ul><li>Distributed File management - Record file server</li> <li><a href="/wiki/IBM_DB2" class="mw-redirect" title="IBM DB2">Database 2</a> - DRDA client and server</li></ul></li></ul></li> <li><a href="/wiki/System/36" class="mw-redirect" title="System/36">System/36</a> <ul><li><a href="/wiki/System_Support_Program" title="System Support Program">System Support Program</a> - Record file client and server</li></ul></li> <li><a href="/wiki/IBM_i" title="IBM i">System/38</a> and its successors: AS/400, iSeries, and Power Series <ul><li>Record file client and server</li> <li>Directory and stream file client and server</li> <li><a href="/wiki/DRDA" title="DRDA">DRDA</a> client and server</li></ul></li> <li><a href="/wiki/IBM_PC" class="mw-redirect" title="IBM PC">IBM Personal Computer</a> <ul><li><a href="/wiki/PC_DOS" class="mw-redirect" title="PC DOS">PC DOS</a> <ul><li>Netview/PC - Directory and stream file client and server</li> <li>DDM/PC - Directory and stream file client.</li> <li>PC Support/36 - Directory and stream file client.</li> <li>PC Support/400 - Directory and stream file client.</li></ul></li> <li><a href="/wiki/Personal_System/2" class="mw-redirect" title="Personal System/2">Personal System/2</a> - <a href="/wiki/OS/2" title="OS/2">OS/2</a> <ul><li>PC/Support/400 - Stream file and directory client and server</li> <li><a href="/wiki/DRDA" title="DRDA">DRDA</a> client and server</li></ul></li></ul></li> <li><a href="/wiki/IBM_4680_Store_System" class="mw-redirect" title="IBM 4680 Store System">IBM 4680</a> and <a href="/wiki/IBM_4690_Store_System" class="mw-redirect" title="IBM 4690 Store System">IBM 4690</a> Store Systems <ul><li>Record file client and server</li> <li>Directory and stream file client and server</li></ul></li> <li><a href="/wiki/RS/6000" class="mw-redirect" title="RS/6000">RS/6000</a> <a href="/wiki/IBM_AIX" title="IBM AIX">AIX</a> <ul><li><a href="/wiki/DRDA" title="DRDA">DRDA</a> client and server</li></ul></li></ul> <div class="mw-heading mw-heading3"><h3 id="DDM_products_by_other_vendors">DDM products by other vendors</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=25" title="Edit section: DDM products by other vendors"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>For a complete list of the products that have implemented DRDA, see the <a rel="nofollow" class="external text" href="http://collaboration.opengroup.org/dbiop/protected/sendfile.php?prot=Y&gpid=453&type=doc&id=9358&fn=drda-pid.htm&sophscript=N">Open Source DRDA Product Identifier Table</a>. </p> <div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=26" title="Edit section: See also"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Record-oriented_filesystem" title="Record-oriented filesystem">Record-oriented filesystem</a></li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Distributed_Data_Management_Architecture&action=edit&section=27" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-DDM-GI-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-DDM-GI_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-DDM-GI_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation book cs1"><i>Distributed Data Management Architecture Level 3: General Information</i>. IBM Corp. GC21-9527-02. July 1990.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Distributed+Data+Management+Architecture+Level+3%3A+General+Information&rft.pub=IBM+Corp.+GC21-9527-02&rft.date=1990-07&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-InsideDDM-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-InsideDDM_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-InsideDDM_2-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-InsideDDM_2-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDemers,_R._A.,_J._D._Fisher,_S._S._Gaitonde,_and_R._R._Sanders1992" class="citation journal cs1">Demers, R. A., J. D. Fisher, S. S. Gaitonde, and R. R. Sanders (1992). "Inside IBM's Distributed Data Management architecture". <i>IBM Systems Journal</i>. <b>31</b> (3): 459–487. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1147%2Fsj.313.0459">10.1147/sj.313.0459</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IBM+Systems+Journal&rft.atitle=Inside+IBM%27s+Distributed+Data+Management+architecture&rft.volume=31&rft.issue=3&rft.pages=459-487&rft.date=1992&rft_id=info%3Adoi%2F10.1147%2Fsj.313.0459&rft.au=Demers%2C+R.+A.%2C+J.+D.+Fisher%2C+S.+S.+Gaitonde%2C+and+R.+R.+Sanders&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span><span class="cs1-maint citation-comment"><code class="cs1-code">{{<a href="/wiki/Template:Cite_journal" title="Template:Cite journal">cite journal</a>}}</code>: CS1 maint: multiple names: authors list (<a href="/wiki/Category:CS1_maint:_multiple_names:_authors_list" title="Category:CS1 maint: multiple names: authors list">link</a>)</span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDemers,_R._A.1988" class="citation journal cs1">Demers, R. A. (1988). "Distributed files for SAA". <i>IBM Systems Journal</i>. <b>27</b> (3): 348–361. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1147%2Fsj.273.0348">10.1147/sj.273.0348</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IBM+Systems+Journal&rft.atitle=Distributed+files+for+SAA&rft.volume=27&rft.issue=3&rft.pages=348-361&rft.date=1988&rft_id=info%3Adoi%2F10.1147%2Fsj.273.0348&rft.au=Demers%2C+R.+A.&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDeinhart,_K.1992" class="citation journal cs1">Deinhart, K. (1992). "SAA distributed file access to the CICS environment". <i>IBM Systems Journal</i>. <b>31</b> (3): 516–534. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1147%2Fsj.313.0516">10.1147/sj.313.0516</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IBM+Systems+Journal&rft.atitle=SAA+distributed+file+access+to+the+CICS+environment&rft.volume=31&rft.issue=3&rft.pages=516-534&rft.date=1992&rft_id=info%3Adoi%2F10.1147%2Fsj.313.0516&rft.au=Deinhart%2C+K.&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation book cs1"><a rel="nofollow" class="external text" href="https://publib.boulder.ibm.com/iseries/v5r1/ic2924/info/ddm/rbae5mst.pdf"><i>iSeries Distributed Data Management</i></a> <span class="cs1-format">(PDF)</span>. IBM Corp. 2001.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=iSeries+Distributed+Data+Management&rft.pub=IBM+Corp.&rft.date=2001&rft_id=https%3A%2F%2Fpublib.boulder.ibm.com%2Fiseries%2Fv5r1%2Fic2924%2Finfo%2Fddm%2Frbae5mst.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFReinsch,_R.1988" class="citation journal cs1">Reinsch, R. (1988). "Distributed database for SAA". <i>IBM Systems Journal</i>. <b>27</b> (3): 362–389. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1147%2Fsj.273.0362">10.1147/sj.273.0362</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IBM+Systems+Journal&rft.atitle=Distributed+database+for+SAA&rft.volume=27&rft.issue=3&rft.pages=362-389&rft.date=1988&rft_id=info%3Adoi%2F10.1147%2Fsj.273.0362&rft.au=Reinsch%2C+R.&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation book cs1"><i>Distributed Relational Database Architecture Reference</i>. IBM Corp. SC26-4651-0. 1990.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Distributed+Relational+Database+Architecture+Reference&rft.pub=IBM+Corp.+SC26-4651-0&rft.date=1990&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-DFM-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-DFM_8-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20220121080653/http://publibz.boulder.ibm.com/epubs/pdf/dgt3m500.pdf">"z/OS DFSMS DFM Guide and Reference"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="http://publibz.boulder.ibm.com/epubs/pdf/dgt3m500.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2022-01-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2014-07-04</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=z%2FOS+DFSMS+DFM+Guide+and+Reference&rft_id=http%3A%2F%2Fpublibz.boulder.ibm.com%2Fepubs%2Fpdf%2Fdgt3m500.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-Smalltalk-LI-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-Smalltalk-LI_9-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFGoldberg,_A.Robson,_D1983" class="citation book cs1">Goldberg, A.; Robson, D (1983). <span class="id-lock-registration" title="Free registration required"><a rel="nofollow" class="external text" href="https://archive.org/details/smalltalk80langu00gold"><i>Smalltalk-80, The language and its implementation</i></a></span>. Addison-Wesley. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-201-11371-6" title="Special:BookSources/0-201-11371-6"><bdi>0-201-11371-6</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Smalltalk-80%2C+The+language+and+its+implementation&rft.pub=Addison-Wesley&rft.date=1983&rft.isbn=0-201-11371-6&rft.au=Goldberg%2C+A.&rft.au=Robson%2C+D&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fsmalltalk80langu00gold&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-OS400-Objects-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-OS400-Objects_10-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/rbam6/rbam6objects.htm">"OS/400 Objects"</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=OS%2F400+Objects&rft_id=https%3A%2F%2Fpublib.boulder.ibm.com%2Fiseries%2Fv5r2%2Fic2924%2Findex.htm%3Finfo%2Frbam6%2Frbam6objects.htm&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-DDM-PG-11"><span class="mw-cite-backlink">^ <a href="#cite_ref-DDM-PG_11-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-DDM-PG_11-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation book cs1"><i>Distributed Data Management Architecture Level 3: Programmer's Guide</i>. IBM Corp. SC21-9529. 1990.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Distributed+Data+Management+Architecture+Level+3%3A+Programmer%27s+Guide&rft.pub=IBM+Corp.+SC21-9529&rft.date=1990&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-DDM-RM3-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-DDM-RM3_12-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation book cs1"><i>Distributed Data Management Architecture Level 3: Reference</i>. IBM Corp. SC21-9526-03. 1990.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Distributed+Data+Management+Architecture+Level+3%3A+Reference&rft.pub=IBM+Corp.+SC21-9526-03&rft.date=1990&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-DDM-RM4-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-DDM-RM4_13-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation book cs1"><i>Distributed Data Management Architecture Level 4: Reference</i>. IBM Corp. SC21-9526-05. 1990.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Distributed+Data+Management+Architecture+Level+4%3A+Reference&rft.pub=IBM+Corp.+SC21-9526-05&rft.date=1990&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFDemers,_R._A.Yamaguchi,_K.1992" class="citation journal cs1">Demers, R. A.; Yamaguchi, K. (1992). "Data Description and Conversion Architecture". <i>IBM Systems Journal</i>. <b>31</b> (3): 488–515. <a href="/wiki/Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1147%2Fsj.313.0488">10.1147/sj.313.0488</a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.jtitle=IBM+Systems+Journal&rft.atitle=Data+Description+and+Conversion+Architecture&rft.volume=31&rft.issue=3&rft.pages=488-515&rft.date=1992&rft_id=info%3Adoi%2F10.1147%2Fsj.313.0488&rft.au=Demers%2C+R.+A.&rft.au=Yamaguchi%2C+K.&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation book cs1"><i>Distributed Data Management Architecture: Specifications for A Data Language</i>. IBM Corp. SC21-8286. 1992.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Distributed+Data+Management+Architecture%3A+Specifications+for+A+Data+Language&rft.pub=IBM+Corp.+SC21-8286&rft.date=1992&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://public.dhe.ibm.com/software/retail/pubs/sw/other/4680ddmug.pdf">"4680 DDM User's Guide"</a> <span class="cs1-format">(PDF)</span>. IBM Corp. 1991.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=4680+DDM+User%27s+Guide&rft.pub=IBM+Corp.&rft.date=1991&rft_id=https%3A%2F%2Fpublic.dhe.ibm.com%2Fsoftware%2Fretail%2Fpubs%2Fsw%2Fother%2F4680ddmug.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.ibm.com/common/ssi/cgi-bin/ssialias?infotype=an&subtype=ca&supplier=897&letternum=ENUS214-107">"IBM CICS Transaction Server for z/OS, V5.2 takes service agility, operational efficiency, and cloud enablement to a new level"</a>. <a href="/wiki/IBM" title="IBM">IBM</a>. 2014-04-07<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-04-14</span></span>. <q>CICS DDM is no longer available from IBM and support was discontinued, as of December 31, 2003. CICS DDM is no longer available in CICS TS from Version 5.2 onwards.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=IBM+CICS+Transaction+Server+for+z%2FOS%2C+V5.2+takes+service+agility%2C+operational+efficiency%2C+and+cloud+enablement+to+a+new+level&rft.pub=IBM&rft.date=2014-04-07&rft_id=http%3A%2F%2Fwww.ibm.com%2Fcommon%2Fssi%2Fcgi-bin%2Fssialias%3Finfotype%3Dan%26subtype%3Dca%26supplier%3D897%26letternum%3DENUS214-107&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?subtype=ca&infotype=an&appname=iSource&supplier=897&letternum=ENUS214-074">"IBM z/VSE Central Functions Version 9.2 - z/VSE Version 5.2"</a>. <a href="/wiki/IBM" title="IBM">IBM</a>. April 7, 2014<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-04-14</span></span>. <q>Support for CICS Distributed Data Management (DDM) is stabilized in CICS TS for VSE/ESA V1.1.1. In a future release of CICS TS for z/VSE, IBM intends to discontinue support for CICS DDM.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=IBM+z%2FVSE+Central+Functions+Version+9.2+-+z%2FVSE+Version+5.2&rft.pub=IBM&rft.date=2014-04-07&rft_id=http%3A%2F%2Fwww-01.ibm.com%2Fcommon%2Fssi%2Fcgi-bin%2Fssialias%3Fsubtype%3Dca%26infotype%3Dan%26appname%3DiSource%26supplier%3D897%26letternum%3DENUS214-074&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www-01.ibm.com/common/ssi/cgi-bin/ssialias?infotype=an&subtype=ca&supplier=897&letternum=ENUS215-362">"IBM CICS Transaction Server for z/VSE V2.1 delivers enhancements for future workloads"</a>. <a href="/wiki/IBM" title="IBM">IBM</a>. October 5, 2015<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-04-14</span></span>. <q>CICS Distributed Data Management (CICS/DDM) is not supported with CICS TS for z/VSE V2.1.</q></cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=IBM+CICS+Transaction+Server+for+z%2FVSE+V2.1+delivers+enhancements+for+future+workloads&rft.pub=IBM&rft.date=2015-10-05&rft_id=http%3A%2F%2Fwww-01.ibm.com%2Fcommon%2Fssi%2Fcgi-bin%2Fssialias%3Finfotype%3Dan%26subtype%3Dca%26supplier%3D897%26letternum%3DENUS215-362&rfr_id=info%3Asid%2Fen.wikipedia.org%3ADistributed+Data+Management+Architecture" class="Z3988"></span></span> </li> </ol></div></div> <!-- NewPP limit report Parsed by mw‐web.eqiad.main‐5dc468848‐kwxnb Cached time: 20241122205248 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.269 seconds Real time usage: 0.365 seconds Preprocessor visited node count: 1140/1000000 Post‐expand include size: 29378/2097152 bytes Template argument size: 994/2097152 bytes Highest expansion depth: 8/100 Expensive parser function count: 1/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 64655/5000000 bytes Lua time usage: 0.137/10.000 seconds Lua memory usage: 4905160/52428800 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 274.192 1 -total 60.86% 166.874 1 Template:Reflist 36.68% 100.572 8 Template:Cite_book 27.18% 74.517 1 Template:Short_description 15.32% 42.018 2 Template:Pagetype 8.14% 22.328 5 Template:Cite_journal 7.47% 20.481 3 Template:Main_other 7.37% 20.220 5 Template:Anchor 6.64% 18.209 1 Template:SDcat 6.39% 17.516 6 Template:Cite_web --> <!-- Saved in parser cache with key enwiki:pcache:idhash:43127527-0!canonical and timestamp 20241122205248 and revision id 1242296682. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Distributed_Data_Management_Architecture&oldid=1242296682">https://en.wikipedia.org/w/index.php?title=Distributed_Data_Management_Architecture&oldid=1242296682</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:Distributed_computing_architecture" title="Category:Distributed computing architecture">Distributed computing architecture</a></li><li><a href="/wiki/Category:Distributed_computing" title="Category:Distributed computing">Distributed computing</a></li><li><a href="/wiki/Category:Distributed_file_systems" title="Category:Distributed file systems">Distributed file systems</a></li><li><a href="/wiki/Category:File_sharing_software" title="Category:File sharing software">File sharing software</a></li><li><a href="/wiki/Category:Peer-to-peer_computing" title="Category:Peer-to-peer computing">Peer-to-peer computing</a></li><li><a href="/wiki/Category:Application_layer_protocols" title="Category:Application layer protocols">Application layer protocols</a></li><li><a href="/wiki/Category:Systems_Network_Architecture" title="Category:Systems Network Architecture">Systems Network Architecture</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:CS1_maint:_multiple_names:_authors_list" title="Category:CS1 maint: multiple names: authors list">CS1 maint: multiple names: authors list</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_matches_Wikidata" title="Category:Short description matches Wikidata">Short description matches Wikidata</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 26 August 2024, at 01:53<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Distributed_Data_Management_Architecture&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-5c9b544f44-wd5s9","wgBackendResponseTime":197,"wgPageParseReport":{"limitreport":{"cputime":"0.269","walltime":"0.365","ppvisitednodes":{"value":1140,"limit":1000000},"postexpandincludesize":{"value":29378,"limit":2097152},"templateargumentsize":{"value":994,"limit":2097152},"expansiondepth":{"value":8,"limit":100},"expensivefunctioncount":{"value":1,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":64655,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 274.192 1 -total"," 60.86% 166.874 1 Template:Reflist"," 36.68% 100.572 8 Template:Cite_book"," 27.18% 74.517 1 Template:Short_description"," 15.32% 42.018 2 Template:Pagetype"," 8.14% 22.328 5 Template:Cite_journal"," 7.47% 20.481 3 Template:Main_other"," 7.37% 20.220 5 Template:Anchor"," 6.64% 18.209 1 Template:SDcat"," 6.39% 17.516 6 Template:Cite_web"]},"scribunto":{"limitreport-timeusage":{"value":"0.137","limit":"10.000"},"limitreport-memusage":{"value":4905160,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-5dc468848-kwxnb","timestamp":"20241122205248","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Distributed Data Management Architecture","url":"https:\/\/en.wikipedia.org\/wiki\/Distributed_Data_Management_Architecture","sameAs":"http:\/\/www.wikidata.org\/entity\/Q18206604","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q18206604","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2014-06-23T21:02:29Z","dateModified":"2024-08-26T01:53:42Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/en\/5\/59\/DDMMagazineCover.jpg","headline":"open, published architecture for creating, managing and accessing data on a remote computer"}</script> </body> </html>