Национальный стандарт республики казахстан



страница26/33
Дата20.11.2016
Размер4.62 Mb.
Просмотров6954
Скачиваний0
1   ...   22   23   24   25   26   27   28   29   ...   33

12.2.7 Статус Ответа
Коды статуса HTTP чтение домена объекта данных CDMI контента приведены в таблице 111.
Таблица 111 - Коды статуса HTTP – Чтение возможностей объекта, с помощью типа содержимого CDMI

Коды статуса HTTP

Описание

200 «OK»

Возврат домена по запросу.

400 «Неверный запрос»

Запрос содержит недопустимые параметры или имена полей.

401 «Не авторизован»

Полномочия аутентификации отсутствуют или недействительны.

403 «Запрещен»

Пользователю не хватает надлежащего разрешения на выполнение этого запроса.

404 «Не найден»

Ресурс не был найден в указанном URI.

406 «Не доступен»

Невозможность обеспечения объекта сервером


12.2.8 Примеры
ПРИМЕР 1 Размещение URI для чтения домена

GET /cdmi_capabilities/ HTTP/1.1

Host: cloud.example.com

Accept: application/cdmi-capability

X-CDMI-Specification-Version: 1.0.2

Ниже приведен ответ..

HTTP/1.1 200 OK

Content-Type: application/cdmi-capability

X-CDMI-Specification-Version: 1.0.2

{

"objectType" : "application/cdmi-capability",



"objectID" : "00007E7F00104BE66AB53A9572F9F51E",

"objectName" : "cdmi_capabilities/",

"parentURI" : "/",

"parentID" : "00007E7F0010128E42D87EE34F5A6560",

"capabilities" : {

"cdmi_domains" : "true",

"cdmi_export_nfs" : "true",

"cdmi_export_iscsi" : "true",

"cdmi_queues" : "true",

"cdmi_notification" : "true",

"cdmi_query" : "true",

"cdmi_metadata_maxsize" : "4096",

"cdmi_metadata_maxitems" : "1024"

},

"childrenrange" : "0-3",



"children" : [

"domain/",

"container/",

"dataobject/",

"queue/"

]

}



ПРИМЕР 2 Размещение URI для чтения всех исходных URI первоначального контейнера:

GET /cdmi_capabilities/?capabilities;children HTTP/1.1

Host: cloud.example.com

Accept: application/cdmi-capability

X-CDMI-Specification-Version: 1.0.2

Ниже приведен ответ..

HTTP/1.1 200 OK

Content-Type: application/cdmi-capability

X-CDMI-Specification-Version: 1.0.2

{

"capabilities" : {



"cdmi_domains" : "true",

"cdmi_export_nfs" : "true",

"cdmi_export_iscsi" : "true",

"cdmi_queues" : "true",

"cdmi_notification" : "true",

"cdmi_query" : "true",

"cdmi_metadata_maxsize" : "4096",

"cdmi_metadata_maxitems" : "1024"

},

"children" : [



"domain/",

"container/",

"dataobject/",

"queue/"


]

}

ПРИМЕР 3 GET унифицированных идентификаторах ресурса.(URI) возможностей контейнера, первоначальные два контейнера:



GET /cdmi_capabilities/?childrenrange;children:0-1 HTTP/1.1

Host: cloud.example.com

Accept: application/cdmi-capability

X-CDMI-Specification-Version: 1.0.2

Должно выполнить следующее:

HTTP/1.1 200 OK

Content-Type: application/cdmi-capability

X-CDMI-Specification-Version: 1.0.2

{

"childrenrange" : "0-1",



"children" : [

"domain/",

"container/"

]

}


13 Экспортированные протоколы
13.1 Краткий обзор
Возможность доступа контейнера УИДО через информационный канал CDMI и протоколы. Данный доступ используется как интерфейс хранения облачных вычислений. См. рисунок 8.

Рисунок 8 –CDMI и ОООИ в интегрированной окружающей среде вычислений в Облаке


Экспортируемые протоколы контейнеров CDMI используются виртуальными машинами облачных вычислений как виртуальные диски. Управление облачными вычислениями осуществляется посредством Open Cloud Computer Interface (OCCI) и интерфейса CDMI. Данная инфраструктура контейнеров CDMI соответствует экспортируемому протоколу.

Поддержка экспортируемых протоколов, совместиИСОть с CDMI обеспечивается информацией, через интерфейс OCCI (OCCI - OpenCloudComputingInterface - Открыть "Облако" (ОООИ).

OCCI (ОООИ)обеспечивает тип содержания, соответствующее CDMI и экспортируется с определенным типом протокола, поддерживаемый OCCI (ОООИ). Пользователь обоих интерфейсов выполняет операции, выравнивающие архитектуру, включая следующее:

Пользователь создает контейнер через интерфейс CDMI и экспортирует его как экспортированный протокол OCCI (ОООИ). Идентификатор объекта контейнера CDMI определяется как результат.

Пользователь создает виртуальную машину через интерфейс OCCI (ОООИ) и прилагает объем типа содержания CDMI использование тип протокола. ID виртуальной машины OCCI (ОООИ)является как результат.

Клиент обновляет экспортную структуру протокола контейнерного объекта CDMI с ID виртуальной машины OCCI (ОООИ), чтобы позволить доступ виртуальной машины к контейнеру.

Клиент начинает работать виртуальной машиной через интерфейс OCCI (ОООИ).
13.2 Структура экспортированного протокола
Экспорт контейнера, через протоколы информационного канала кроме CDMI, достигнут, создав или обновив контейнер и поставляя одну или более экспортных структур протокола. В этом международном стандарте все такие протоколы упоминаются как иностранные протоколы. Внедрение иностранных протоколов должно быть обозначено "истинными" ценностями для возможностей всей системы в 12.1.1, который должен всегда начинаться "cdmi_export _".

Элементы экспортной структуры протокола включают



  • используемый протокол;

  • идентичность контейнера, как стандартизировано протоколом;

  • интернет-область протокола называет сервер для клиентов;

  • список того, кто может установить, что контейнер через тот протокол, определенный, как стандартизировано тем протоколом или произвольно усиливая протокол отображения имени (см. 13.2.1), и определение CDMIuserorgroupnames;

  • необходимые экспортные параметры для протокола; дополнительные экспортные параметры для протокола; и параметры контроля над экспортом.

Этот международный стандарт определяет экспортные структуры JSON (JSON - JavaScriptObjectNotation - Объекта Нотации JavaScript (ОНJS ) для нескольких известных иностранных протоколов. Все зависят от читающего пользователя и groupname, наносящего на карту особенность в случае, что доступ мультипротокола к контейнеру желаем. Однако отображение имени не требуется, если CDMI привык только к контейнерам предоставления, которые будут использоваться исключительно иностранными протоколами.

Для внедрений, которые поддерживают заверенный и санкционированный доступ к объектам CDMI (CDMI - CloudDataManagementInterface - Интерфейс Управления Данными Облако (CDMI) и через CDMI и через иностранные протоколы, нужен способ поддержать урегулирование безопасности на основе за объект. Многочисленные методы выполнения этого включают:

Определение или принятие схемы безопасности и отображение всех запросов в ту схему. Внедрения CDMI, которые принимают эту схему, должны использовать метод отображения имени, чтобы достигнуть ее, поскольку (a) это отображение легче для администраторов справиться, чем прямое отображение от id к id и (b), желательно, чтобы совместимые внедрения CDMI вели себя так же в этом отношении. Это означает, что имя руководителя в поступающем запросе нанесено на карту к имени руководителя в домене безопасности, и что id руководителя приобретается и используется в процедуре разрешения.

Разрешение каждого протокола установить его собственную безопасность, которая подразумевает, что объект мог бы быть доступен для данного пользователя через один протокол, но не другого.

Используя схему безопасности последнего протокола, который использовался, чтобы установить разрешения на объекте. Этот метод также требует отображения руководителя в поступающем запросе руководителю в домене безопасности объекта. Как в первом случае, сервер должен использовать процедуру отображения имени, чтобы получить id, который используется, чтобы уполномочить пользователя против ACL (ACL - AccessControlList–Список Контроля Доступа (СКД) желаемого объекта.

CDMI (CDMI) не является мандатом, в любом использованном методе. Это действительно, однако, это определяет, как пользователи и группы должны быть нанесены на карту между протоколами.


13.2.1 Отображения имен от CDMI до другого протокола
Клиенты, желающие ограничить экспорт через иностранные протоколы к установке только определенными пользователями и группами, могут быть обязаны предоставлять пользователю и groupname отображение информации к серверу. Эта информация отображения также запрошена, если доступ к контейнеру являются многократными протоколами, например, и CDMI и NFS (NFS - NetworkFileSystem - Сетевая Файловая Система (СФС)

Отображение сделано следующим образом.

1, Когда сетевая акция на контейнере CDMI создана, сервер должен использовать соответствующий механизм, например, PowershellWmiClass. Создайте на платформе Windowsor/etc/exports на Unix, ограничить разрешенные акции от других серверов, как определено в линии "пользователей "экспортная" собственность. Синтаксис линии пользователей следует за синтаксисом/и т.д./экспорт в Linuxоперационная система, как закодировано в последовательности JSON. Если сервер CDMI неспособен ограничить как определенной линией пользователей, ошибка должна закончиться, но успех или провал операции зависитна внедрении.

2, Когда любой запрос, требующий использования основного имени CDMI, прибывает на пути иностранный протокол, иностранная область controllerto, который принадлежит иностранный сервер, должна быть подвергнута сомнению forthe основное имя соответствие идентификатору пользователя, данному в запросе. Отказ обеспечить основное имя должен вызвать оригинальная просьба потерпеть неудачу.

3 список usermap для протокола должен быть найден, в заказе, для входа, соответствующего имени пользователя полученный от иностранного диспетчера области (см. 13.2.3 для получения дополнительной информации о поиске). Если никакой результат не найден, запрос должен быть отрицательным. Результаты поиска могут быть сохранены в том же самом входе как информация от предыдущего шага

4 основное имя CDMI, полученное от первого соответствия usermap вход во время этого поиска, тогда используемый, чтобы разрешить пользовательский запрос через механизм безопасности протокола, чья безопасность управляет доступом к объекту


13.2.1.1 Возможности
Следующие возможности описывают поддержанные операции, которые могут быть выполнены на существующем контейнере:

Способность всей системы экспортировать через данный протокол обозначена cdmi _ <протокол> _export способность в метаданных системного уровня (например, "cdmi_nfs_export", когда установлено в "верно", указывает на способность системы экспортировать контейнеры через NFS). Если ложный или не набор, попытки экспортировать контейнеры через данный протокол должны потерпеть неудачу.

Поддержка способности экспортировать существующий контейнерный объект через данный иностранный протокол обозначена cdmi _ <протокол> _export способность в указанном контейнере. Неплатеж должен быть "верным", если эта способность будет сброшена.
13.2.1.2 Домены
Интернет-доменное имя, соответствующее каждому экспорту, должно быть дано как JSON-отформатированная последовательность в детском элементе "области" экспортной спецификации протокола. Если этот элемент не будет присутствовать, то нужно предположить, что область совпадает с областью сервера, принимающего внедрение CDMI.
13.2.1.3 Кэширование
Поиск иностранному диспетчеру области может быть довольно дорогим, специально для не имеющих протоколов, таких как NFS v3, в котором он может теоретически требоваться для почти каждой операции. Должны быть дополнительные результаты. Рекомендуемый вход именем пользователя составляет 30 минут. Внедрения должны использовать эту стоиИСОть, если это возможно. Серверы должны вносить изменение в экспортные метаданные протокола. Пользователь читая в usermap данных для одного или более протоколов и оставят ответы без изменения. Серверы должны под именем пользователя переписать операции, для любого протокола, для которого usermap информация была изменена или перезагружена.

Для разрешения группы работа через иностранный протокол, выполняется после осуществление отображения. Многократные поиски иностранному диспетчеру области могут потребоваться, чтобы получать все названия группы для данного пользователя (например, пользователю NFS свойственно быть членом полдюжины групп). Тайник названия группы может использоваться, чтобы смягчить затраты на эти поиски. Рекомендуемые внедрения должны использовать эту стоиИСОть или меньше, если это возможно. Пользователь читает данные, перезагружая информацию о карте группы. Серверы должны немедленно переписать операции, для любого протокола, для которого информация о карте группы была изменена или перезагружена.


13.2.1.4 Группы
Отображение названия группы для каждого иностранного протокола должно быть определено в области названия группы иностранной экспортной спецификации протокола. Его синтаксис идентичен синтаксису для области имени пользователя.

Примечание: информация отображения только запрошена на экспортируемом контейнере.



13.2.1.5 Краткийобзор
PUT /MyContainer HTTP/1.1

Host: cloud.example.com

Accept: application/cdmi-container

Content-Type: application/cdmi-container

X-CDMI-Specification-Version: 1.0

{


"exports" : {

"nfs" : { "hosts" : { "*.mycollege.edu", "derf.cs.myuni.edu" },

"domain" : "lab.mycollege.edu",

"usermap" : {

{ , , },

{ "jimsmith", "<-->", "jims" },

{ [ordered list of CDMIname/operator/NFSname triples] },

{ "*", "<-->", "*" }

}

"groupmap" : {



{ "admins", "<-", "wheel" },

{ "everyone", "<-", "*" }

}

}


"cifs" : {

"hosts" : "*",

"domain" : "lab.mycollege.edu",

"usermap" : {

{ "jimsmith", "<-->", "james.smith" }

{ [ordered list of CDMIname/operator/NFSname triples] },

{ "*", "<-->", "*" }

}


"groupmap" : {

{ "admins", "<-", "Administrators" },

{ "everyone", "<-", "*" }

}


}

}

}



Ниже приведен ответ:

HTTP/1.1 200 OK

Content-Type: application/cdmi-container

X-CDMI-Specification-Version: 1.0

{

"objectURI" : "/Containers/MyContainer/",



"objectID" : "00007E7F00100C435125A61B4C289455",

"objectName" : "MyContainer/",

"parentURI" : "/Containers/",

"parentID" : "00007E7F0010D538DEEE8E38399E2815",

"domainURI" : "/cdmi_domains/MyDomain/",

"capabilitiesURI" : "/cdmi_capabilities/container/",

"completionStatus" : "complete",

"metadata" : { ... },

"exports" : { }

}
13.2.2 Пользователи с правами Администратора


По умолчанию читающих пользователей нужно считать "корнем" или административными пользователями, и эквивалентные друг другу:

  • корень (Unix/NFS/LDAP),

  • администратор (Windows/AD/CIFS)

  • владелец области CDMI.

Серверы должны автоматически нанести на карту этих пользователей пользователю протокола, если не проинструктировано usermaps.

Поскольку автоматическое отображение не соответствует стандартам безопасности, серверы должны отвергнуть эти встроенные записи с любыми usermap записями, которые относятся к одному или более пользователям.

ПРИМЕР В следующем примере, все данные нанесены на карту пользователю того же самого имени в области NFS, как они имеют в области CDMI.

PUT /MyContainer HTTP/1.1

Host: cloud.example.com

Accept: application/vnd.org.snia.cdmi.container+json

Content-Type: application/vnd.org.snia.cdmi.container+json

X-CDMI-Specification-Version: 1.0

{

"exports" : {



"nfs" : { "usermap" : {

{ "nobody", "<-", "root" },

{ "*", "<-->", "*" }

}


}

}

}


Разрешения Отображений
Разрешения набора файловых протоколов обслуживающих, к сожалению, не карту на основе один-к-одному друг к другу. NFSv4 ACL, ACL в Windows, POSIX ACL,,, NFSv3 завивки и возможности объектно-основываются все способны представлять условия безопасности, которые другие не являются, за исключением NFSv3, который является наименее выразительны. Основной проблемой является представлени, возможно, богатый набор разрешений в CDMI ACL в более ограниченной, например, NFSv3, для отображения пользователям.

Как есть число возможных способов координации Разрешения / ACL, и списков управления доступом CDMI, это международный стандарт не устанавливает конкретный способ. Тем не менее, все отображения пользователю и группу между доменами должны использовать механизм отображения имя, указанное в 13.2.3


13.2.3 Пользователь и наименование групп, отображающие синтаксические и оценочные правила
Наборы разрешений файловых протоколов, к сожалению, на непосредственной основе не наносятся на карту. NFSv4 ACLs, Windows ACLs, POSIX ACLs, NFSv3 данные основанные на объекте возможности, все способны к представлению условий безопасности, наименее выразительны кроме NFSv. Основная проблемная область находится для показа пользователям в представлении набора разрешений в CDMIСКД в более ограниченной основанной системе, таких как NFSv3.

Есть много возможных способов скоординировать разрешения/СКД и CDMIСКД, этот международный стандарт не имеет особый метод. Однако все отображения пользователя и наименование группы между областями должны использовать механизм отображения имени, определенный в 13.2.3.


13.2.3 Потребитель и наименование группы, отображающие Синтаксические и Оценочные Правила
Грамматика BNF- стиля для отображения следующих имен:

name_mapping_list = protocol protocol mapping_list

protocol = "cdmi" | "nfs" | "cifs" | "ldap"

mapping_list = name mapping_operator name

name = pattern | utf8_name | quoted_utf8_name

quoted_utf8_name = " utf8_name "

utf8_name =

pattern = * | *

mapping_operator = "<--" | "<-->" | "-->"

Вход отображения на английском языке состоит из двух имен, отделенных направленным индикатором. Поскольку большая часть окружающей среды использует те же самые имена пользователя и названия группы через административные области, наиболее распространенное отображение "* <-> *", которое наносит на карту любое имя к тому же самому имени в иностранной области протокола, и наоборот. Это настоятельно рекомендовано и является картой по умолчанию и последним входом на более сложных картах.



CDMI определяет образец, совпадающий на именах по карте имени, но только "префиксе, соответствующем" требуется Символ" *" в конце строки символов должен соответствовать нулю или большему количеству случаев любого non-whitespace характера.

Оценка списка отображения имени должна продолжиться в заказе; как только заказ сделан, оценка должна прекратиться, и результат заказа должен быть возвращен.

Если оценка заказа низкая, системного результата не будет. Однако рекомендуется, чтобы серверы лишили доступа, в целом, должны нанести на карту рассматриваемого пользователя к эквиваленту "анонимных" на протоколе назначения. Также рекомендуется, чтобы вход был посвящен специальному пользователю "EVERYONE®".
13.3 Обнаружение и монтаж контейнеров через иностранные протоколы
Пользователям нужен способ обнаружить экспортируемые контейнеры, которые могут быть доступны для установки. Обнаружение контейнеров сделано через операцию экспорта" контейнера.

Краткий обзор:

Чтобы прочитать весь экспорт для существующего контейнерного объекта, следующий запрос должен быть выполнен:

GET ///?exports

Чтобы прочитать отобранный экспорт для существующего контейнерного объекта, следующий запрос должен быть выполнен:

GET ///

?exports:protocol=
,user=,verbose="false"

Где:


  • путь к облаку CDMI. <Контейнерное Имя> является нолем или большим количеством промежуточных контейнеров.

  • - название протокола, которым должны быть ограничены результаты вопроса. Этот параметр является дополнительным, ценность информаций всех протоколах должна быть возвращена согласно дополнительной фильтрации.



  • - имя пользователя пользователя CDMI, который устанавливает акцию. Этот параметр является дополнительным для контейнера.

  • Серверы должны отфильтровать экспортный список, чтобы включать данные ограничения экспорта, который может быть организован в экспортных структурах протокола.

  • ; дополнительный параметр, указывающий на максимальные информации об экспорте. Когда существующий, имеет ценности "верными" или "не верными". Когда верный, сервер должен возвратить дополнительную информацию о контейнере, как содержится в "экспорт". Сумма возвращенной информации является основной для внедрения, поскольку конструкторы сервера, должны быть в состоянии уравновесить потребности своих пользователей для различных безопасностей.


13.4 Экспортируемый протокол NFS (NFSNetworkFileSystem - Сетевая Файловая Система (СФС)
Экспортировать контейнер через NFS (CФС), чтобы экспортировать использует серверное внедрение. Обычно эта информация содержится в /etc/exports файле на сервере или эквиваленте. Администраторы должны знать, что информации могут быть автоматически добавлены к тому файлу для каждого контейнера CDMI, которые экспортируются.

Необходимые структуры протокола для NFS (СФС).

"protocol" Протокол запрашивается. Это должно быть "NFSv3", "NFS 4", "NFSv4.1", или любой более поздней версии NFS закреплены в основных IETF RFC. Версия 2 NFS не поддерживается CDMI.

"exportpath" Полное имя, к которому экспорт должны быть всплыли. Это должно быть UTF8 строка вида [<сервер>]: / <путь>, где <сервер> необязательный компонент (например, "eeserver: / извлеченные / номер1"). Элемент <сервер> компонент пути должны быть получены от администратора сервиса, на котором работает CDMI.

"exportdomain" Интернет домен имя протокола сервера для клиентов обслуживают. Обычно это имя домена LDAP для организации, например, "iti.edu". Значение "." должно толковаться быть DNS-имя домена, занятого сервера CDMI.

"mode" Это должно быть либо "ро", "РАО", "корень" или "rpc_gsssec". Этот режим становится режим экспорта по умолчанию. Хозяева, требующие различный доступ должен быть указан в дополнительном "rw_mode", "ro_mode" и "root_mode" членов структуры. Тем не менее, режим "rpc_gsssec" отменяет все другие режимы, и все другие члены режима и их содержание должны быть проигнорированы, если это указано.

"control" Экспортный контроль за контейнер. Это должно быть "немедленно", "от", "на", или (число). Серверы могут установить значение "на", но клиенты не должны. Числовое значение () указывает, что экспорт должны быть закрыты в секунд, возможно, после того, как сообщение было отправлено клиентам монтажных экспорт. Если клиент определяет значение для < N >, но сервер не поддерживает задержкой отключения экспорта, то может быть истолковано в виду "с".

Необязательные параметры экспорта для NFS являются

• "domain_servers". Список имен серверов или IP-адресов, которые функционируют как серверы имен для домена данного домена в "". Если дано, этот список должен переопределить имена, получаемые сервером CDMI через другие программные средства.

• "mount_name". Имя, под которым клиент должен поверхности экспорт. Это заменяет фамилию в строку пути (например, mounting "eeserver:/lessons/number1" with a mountname of "1" over the directory /somepath/lessons/num1 should result in a /somepath/lessons/1 directory on the client).

• «hosts». Список хостов, которые могут получить доступ к контейнеру в режиме заданного в "режиме". По умолчанию будет "*"; другие значения ограничивают возможности.

• "root_hosts". Список хостов, которые могут получить доступ к контейнеру в режиме суперпользователя. По умолчанию должен быть пустой список.

• "rw_hosts". Список хостов, которые могут получить доступ к контейнеру в ж / д режиме. По умолчанию должен быть пустой список.

• "ro_hosts". Список хостов, которые могут получить доступ к контейнеру в R / O только в режиме. По умолчанию должен быть пустой список.

• "mount_type". Один из двух строк "жестких" или "мягких". Клиенты повесить, когда сервер служит жесткий крепление перестает отвечать на запросы. Клиенты с мягкими креплениями генерировать сообщения об ошибках. По умолчанию зависит от реализации.

• "рекурсивно". Это должно быть "истинным" или "ложь". По умолчанию будет "справедливо". Когда правда, "рекурсивно" означает, что крепления в структуре каталогов CDMI (предположительно положить туда других операций NFS) должны соблюдаться и установлен каталог подвергается, как будто это было частью контейнера CDMI фактически экспорт. Этот параметр эквивалентен параметру "Linux" crossmnt.

Другие параметры экспорта для NFS не указаны в протоколе CDMI но могут быть включены в структуре экспорта. Они включают в себя Linuxisms, такие как "синхронизации", "no_wdelay", "insecure_locks" и "no_acl", а также любые другие параметры, используемые в данной операционной системе сервера. Во всех таких случаях, параметр должен быть указан в качестве JSON кортежа, в котором "истинный" и "ложный" явно крикнул для двоичных флагов и JSON-формате строка или список используется для других параметров.

EXAMPLE


Каталог: sites -> default -> files
files -> Методические рекомендации по проведению Дня Знаний, посвященного Году кино в РФ
files -> Блестящие будущие возможности в сфере икт для нового поколения женщин
files -> Ларцева А. 1 Перевод имен собственных на примере книги ховарда рейнголда
files -> Занятие №18 Здравствуйте, участники программ личностного развития для детей!
files -> Программа кружка «Юный журналист»
files -> Шелакина А. А. Студентка 2 курса атп 921 ппк сгту имени Гагарина Ю. А
files -> Культурного и природного наследия имени д. С. Лихачева
files -> Участники регионального отборочного Чемпионата профессионального мастерства по методике WorldSkills «WorldSkills Russia Иркутск 2016» по компетенции: 21 PlasteringandDrywallSystems – Сухое строительство и штукатурные работы 25 27
files -> Семинар «использование квест- технологии в обучении английскому языку»


Поделитесь с Вашими друзьями:
1   ...   22   23   24   25   26   27   28   29   ...   33


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал