Нысанның мүмкіндік моделі - Object-capability model

The объектінің мүмкіндігі моделі Бұл компьютердің қауіпсіздік моделі. A мүмкіндік берілген объектіге бір (немесе бірнеше) операцияларды орындауға берілетін құқықты сипаттайды. Оны келесі тіркесім арқылы алуға болады:

  • Хабарламада жіберуге болатын кешірілмейтін сілтеме (объектілік сілтемелер немесе қорғалған сілтемелер мағынасында).
  • Орындалатын әрекетті көрсететін хабарлама.

Қауіпсіздік моделі сілтемелерді жасай алмауға негізделген.

  • Объектілер тек сілтемелерге хабарламалар жіберу арқылы өзара әрекеттесе алады.
  • Анықтаманы мына жерден алуға болады:
  1. Бастапқы шарттар: сипатталатын есептеу әлемінің бастапқы күйінде А объектісінде В объектісіне сілтеме болуы мүмкін.
  2. Ата-ана: Егер А В-ны жасаса, сол сәтте А жаңадан жасалған В-ға ғана сілтеме алады.
  3. Эндаумент: Егер A B-ді жасаса, B A-ді таңдаған A сілтемелерінің сол жиынтығымен туады.
  4. Кіріспе: Егер А-да В мен С-ге сілтемелер болса, А В-ға С сілтемесі бар хабарлама жібере алады. В бұл сілтемені кейінгі пайдалану үшін сақтай алады.

Нысан мүмкіндігі моделінде барлық есептеу жоғарыда аталған ережелер бойынша орындалады.

Мотивация беретін артықшылықтар объектіге бағытталған бағдарламалау, мысалы, инкапсуляция немесе ақпаратты жасыру, модульдік, және алаңдаушылықты бөлу, сияқты қауіпсіздік мақсаттарына сәйкес келеді ең аз артықшылық және артықшылықты бөлу мүмкіндіктерге негізделген бағдарламалауда.[1][2]

Нысан-мүмкіндік моделін алғаш ұсынған Джек Деннис және Эрл С. Ван Хорн 1966 ж.[3]

Нысанға бағытталған бағдарламалау тілдеріндегі саңылаулар

Кейбір объектілік бағдарламалау тілдері (мысалы. JavaScript, Java, және C # ) жоғарыда көрсетілген ережелерге сәйкес емес басқа жолдармен ресурстарға қол жеткізу жолдарын ұсынады:

  • Тікелей тапсырма дейін даналық айнымалылар Java және C # нысандарының тізімі.
  • Тікелей рефлексивті Java және C # объектілерінің метамәліметтерін тексеру.
  • Қарапайым модульдерді импорттаудың кең таралған мүмкіндігі, мысалы. сыртқы әсерлерді қосуға болатын файл.

Мұндай пайдалану даусыз билік объект-қабілеттілік моделінің шарттарын бұзады. Каджа және Джо-Э сәйкесінше JavaScript және Java нұсқалары болып табылады, олар осы олқылықтарды жоюға шектеулер енгізеді.

Нысан мүмкіндіктерінің артықшылықтары

Нысан мүмкіндігі жүйелерінің құрылымдық қасиеттері кодты жобалаудағы модульділікті қолдайды және кодты іске асыруда сенімді инкапсуляцияны қамтамасыз етеді.

Бұл құрылымдық қасиеттер объектілік қабілеттілік бағдарламасының немесе операциялық жүйенің кейбір қауіпсіздік қасиеттерін талдауды жеңілдетеді. Олардың кейбіреулері - атап айтқанда, ақпараттық ағынның қасиеттері - кез-келген білімге немесе объектілердің әрекетін анықтайтын кодты талдауға тәуелсіз, объектілік сілтемелер мен байланыс деңгейінде талдануы мүмкін. Нәтижесінде бұл қауіпсіздік қасиеттері белгісіз және мүмкін зиянды кодтары бар жаңа объектілер болған кезде орнатылуы және сақталуы мүмкін.

Бұл құрылымдық қасиеттер қолданыстағы объектілерге қол жеткізуді реттейтін екі ережеден туындайды:

1) объект A хабарлама жібере алады B егер объект болса A сілтемесі бар B.
2) объект A сілтеме ала алады C егер объект болса A сілтемесі бар хабарлама алады C.

Осы екі ереженің нәтижесінде объект басқа объектіге сілтемелерді бұрыннан бар сілтемелер тізбегі арқылы ала алады. Қысқаша айтқанда, «Тек байланыс байланысқа ие болады».

Байланысты терминдердің түсіндірме сөздігі

объектілік мүмкіндік жүйесі
Осы мақалада сипатталған принциптерді жүзеге асыратын есептеу жүйесі.
объект
Нысанның жергілікті жағдайы мен мінез-құлқы бар. Бұл мағынадағы объект екеуі де а тақырып және ан объект қол жетімділікті басқару әдебиетінде қолданылатын мағынада.
анықтама
Бір объектіні анық белгілейтін және сол объектіге хабарлама жіберуге рұқсат беретін байланыс арнасы (қорғалған сілтеме, мөлдір емес мекен-жайы).
хабар
Анықтама бойынша не жіберіледі. Жүйеге байланысты хабарламалар өздері бірінші сынып объектілері бола алады немесе болмауы мүмкін.
сұрау
Хабарлама сілтеме бойынша жіберілетін операция. Хабарлама түскен кезде, қабылдағыш хабарламада қамтылған кез келген сілтемелерге қол жеткізе алады.
әлсіреу
Жалпы дизайн үлгісі объектілік мүмкіндік жүйелерінде: объектінің бір сілтемесі берілгенде, тек оқуға қол жеткізуге рұқсат беру немесе кері қайтарып алуға рұқсат беру сияқты, белгілі бір қауіпсіздік шектеулері бар прокси-объект үшін басқа сілтеме жасаңыз. Прокси объектісі алынған хабарламаларға қауіпсіздік тексерулерін жүргізеді және кез келген рұқсат етілгендерді жібереді. Терең әлсіреу бірдей әлсіреу бастапқы әлсіреген зат арқылы алынған кез-келген объектілерге, әдетте «мембрананы» қолдану арқылы өтпелі түрде қолданылатын жағдайды білдіреді.

Іске асыру

«Мүмкіндіктер жүйесі» деп сипатталған барлық дерлік жүйелерді дерлік объектілік жүйелер ретінде модельдеуге болады. (Алайда, «мүмкіндік» терминінің кейбір қолданыстары модельге сәйкес келмейтінін ескеріңіз, мысалы POSIX «мүмкіндіктері»).

KeyKOS, EROS, Тұтастық (операциялық жүйе)[күмәнді ], CapROS, Койотос, seL4, OKL4 және Fiasco.OC объектінің мүмкіндік моделін іске асыратын қауіпсіз операциялық жүйелер.

Нысан мүмкіндіктерін іске асыратын тілдер

  • 1 акт (1981) [4][5]
  • Эден (1985),
  • Вулкан (1986),
  • Изумруд (1987),
  • Сенімді схема (1992),
  • W7 (1995),
  • Джоуль (1996),
  • Түпнұсқа-E (1997),
  • E (1998),
  • Дж-ядро (1999),
  • Oz-E (2005),
  • Джо-Э (2005),
  • CaPerl (2006),
  • Эмили (2006)
  • Каджа (2007 ж. - қазіргі уақытқа дейін)
  • Монте (2008 ж. - қазіргі уақытқа дейін)
  • Пони (2014 ж. - қазіргі уақытқа дейін)
  • Wyvern (2012 ж. - қазіргі уақытқа дейін)
  • Газет (2007 ж. - қазіргі уақытқа дейін)

Сондай-ақ қараңыз

Пайдаланылған әдебиеттер

  1. ^ Миллер, Марк Сэмюэль (мамыр 2006). «Қатты құрам: қол жетімділікті бақылау және параллельдік бақылаудың бірыңғай тәсіліне қарай». erights.org. Балтимор, Мэриленд. Алынған 28 шілде 2013.
  2. ^ Марк С.Миллер; Ка-Пинг Ие; Джонатан С.Шапиро (2003). «Мүмкіндік туралы мифтер жойылды» (PDF). SRL2003-02 техникалық есебі. Джонс Хопкинс университетінің жүйелерін зерттеу зертханасы. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  3. ^ [1] сілтеме: Дж.Б.Деннис, Э.С.Ван Хорн. «Көп бағдарламаланған есептеу үшін бағдарламалау семантикасы». ACM байланыстары, 9 (3): 143–155, 1966 ж. Наурыз.
  4. ^ Генри Либерман (маусым 1981). «1-ші заңға шолу». 625. Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)
  5. ^ Генри Либерман (маусым 1981). «Көп нәрсені шатастырмай бірден ойлау: 1 актідегі параллелизм». 626. Сыртқы істер министрлігі Журналға сілтеме жасау қажет | журнал = (Көмектесіңдер)