Кіріспе

Тюпль кеңістігі – параллель/үлестірілген есептеулер үшін ассоциативтік жад парадигмасының іске асырылуы. Ол бір мезгілде қолжетімді туплдердің репозиторийін ұсынады. Мысал ретінде, дерек бөліктерін өндіретін процессорлар тобы және осы деректерді пайдаланатын процессорлар тобы бар делік. Өндірушілер өз деректерін кеңістікке тупл түрінде жариялайды, ал тұтынушылар белгілі бір үлгіге сәйкес келетін деректерді кеңістіктен алады. Бұл сондай-ақ «тақта» метафорасы деп те аталады. Тюпль кеңістігін үлестірілген ортақ жадтың бір түрі деп қарастыруға болады. Тюпль кеңістіктері 1986 жылы Йель университетінде Дэвид Гелернтер және Николас Каррьеро жасаған Linda тілінің теориялық негізін құрады. Тюпль кеңістіктерінің Java (JavaSpaces), Lisp, Lua, Prolog, Python, Ruby, Smalltalk, Tcl және .NET Framework үшін де іске асырылған нұсқалары бар.

Нысан кеңістіктері

Объектік кеңістік – үлестірілген есептеу қолданбаларын дамыту парадигмасы. Ол объектік кеңістік деп аталатын логикалық бірліктердің болуымен сипатталады. Үлестірілген қолданбаның барлық қатысушылары бір объектік кеңістікті пайдаланады. Қызмет провайдері қызметті Объект ретінде қаптамалап, оны объектік кеңістікке орналастырады. Қызметтің клиенттері объектік кеңістікке кіріп, қажетті қызметті қамтамасыз ететін объектіні анықтап, сұранысты осы объект арқылы өңдейді. Объектік кеңістік, есептеу парадигмасы ретінде, 1980 жылдары Йель университетіндегі Дэвид Гелернтермен ұсынылған. Гелернтер жаһандық объектілерді үйлестіру тұжырымын қолдау үшін Линда деп аталатын тілді жасады. Объектік кеңістікті желілік қызметтерді ұсынатын және оларға қол жеткізетін тараптар арасындағы ортақ виртуалды репозиторий ретінде қарастыруға болады, ал олардың өзі объектілер ретінде абстракцияланады. Процестер осы ортақ объектілерді пайдалана отырып бір-бірімен байланысады – қажет болған кезде объектілердің күйін жаңарту арқылы. Объект кеңістікке орналастырылған кезде, ол объектік кеңістіктегі Объекттер каталогында тіркелуі керек. Кез келген процесс объектіні Объекттер каталогынан қасиеттерді іздеу арқылы анықтай алады, мұнда объектті іздеу критерийлерін анықтайтын қасиет – оның атауы немесе оны бірегей анықтайтын басқа да қасиет болып табылады. Процесс қажетті объекті қазірдің өзінде болмаса, объектінің объектік кеңістікке орналасуын күтуге таңдауы мүмкін. Объектілер объектік кеңістікке орналастырылғанда пассивті болады, яғни, объектік кеңістікте болғанда олардың әдістерін шақыруға болмайды. Оның орнына, кіру процесі оны объектік кеңістіктен жергілікті жадына алуы, объект ұсынатын қызметті пайдалануы, объектінің күйін жаңартуы және оны қайтадан объектік кеңістікке орналастыруы керек. Бұл парадигма өзара қол жеткізуді қамтамасыз етеді. Өйткені, бір рет объектіге қол жеткізілгеннен кейін, оны объектік кеңістіктен алып тастау қажет, және тек босатылғаннан кейін ғана қайта орналастырылады. Бұл басқа процесс объектіні пайдаланып жатқанда оған қол жеткізе алмайды дегенді білдіреді, осылайша өзара қол жеткізуді қамтамасыз етеді.

JavaSpaces (жазба орындары)

JavaSpaces – Java объектілері үшін таратылған объект алмасу және үйлестіру механизмін (бұл тұрақты болуы мүмкін немесе болмауы мүмкін) қамтамасыз ететін қызмет спецификациясы. Ол таратылған жүйе күйін сақтау және таратылған алгоритмдерді іске асыру үшін қолданылады. JavaSpace-те барлық байланыс серіктестері (төрелер) күйді бөлісу арқылы қарым-қатынас жасайды және үйлестіреді. JavaSpaces параллель өңдеу арқылы кеңейтімділікке қол жеткізуге мүмкіндік береді, сондай-ақ таратылған көшірмелер арқылы объектілерді сенімді сақтау үшін де қолданылады, бірақ бұл диск сияқты толық қуат жоғалуынан аман қалмайды; көптеген адамдар қуат сенімді болғанша сенімді деп санайды. Тарату алыс орналасқан жерлерге де болуы мүмкін; алайда, мұндай жағдай сирек кездеседі, себебі JavaSpaces көбінесе сенімді объект кэшін емес, төмен жауап уақыты және жоғары өнімділік қолданбалары үшін қолданылады. JavaSpaces-те ең көп қолданылатын бағдарламалық үлгі – Master Worker (Басшы-Орындаушы) үлгісі. Басшы жұмыс бірліктерін "кеңістікке" жібереді, ал оларды жұмысшылар оқып, өңдеп, кеңістікке қайта жазады. Типтік ортада бірнеше "кеңістік", бірнеше басшы және көптеген жұмысшылар болады; жұмысшылар әдетте универсалды болып жасалады, яғни олар кеңістіктен кез келген жұмыс бірлігін алып, тапсырманы орындай алады. JavaSpaces – Java Jini технологиясының бір бөлігі, ол өздігінен коммерциялық сәттілікке жете алмады. Алайда, технология жылдар бойы жаңа пайдаланушыларды тапты және сақтады, сондай-ақ кейбір сатушылар JavaSpaces негізіндегі өнімдерді ұсынады. JavaSpaces көбінесе қаржылық қызметтер және телекоммуникация салаларында қолданылатын, адал қолданушылар қатарын сақтап келе жатқан технология болып табылады. Jini/JavaSpaces туралы хабарлама үлкен қызығушылық тудырды, бірақ Sun негізін қалаушы және Jini бас архитекторы Билл Джой бұл таратылған жүйелер арманына жету үшін "ойлауда кванттық секіру" қажет екенін айтты.