SharePoint 2010: Упаковка решения

OSzone.net » Microsoft » Sharepoint » SharePoint 2010: Упаковка решения
Автор: Стив Райт и Кори Эркес
Иcточник: TechNetMagazine
Опубликована: 04.03.2013

При разработке решений, которые предполагается использовать в SharePoint, у вас оказывается несколько возможностей упаковки и развертывания этих решений. Для установки пользовательских дополнений в среде SharePoint используется каркас решений.

Этот каркас позволяет управляемым способом развертывать, активировать и обновлять пользовательские компоненты. Эта структура призвана обеспечить стабильность фермы серверов SharePoint. Пакет решения может содержать файлы ресурсов для обеспечения единообразности при локализации пользовательских компонентов. Каркас решений заменяет собой другие технологии установки, используемые в среде Windows, такие как файлы установщика Microsoft (MSI) и ClickOnce.

Пакеты решений также позволяют объединить все компоненты, относящиеся к пользовательскому компоненту, в файл с расширением WSP. Эти файлы можно разворачивать в ферме, при этому все компоненты устанавливаются одновременно на всех серверах фермы. Это избавляет от необходимости поддерживать файлы веб-страниц, шаблонов и исполняемых файлов отдельно на каждом сервере.

Каркас решений SharePoint 2010 также включает новые возможности, которые позволяют обновлять пакеты решений «на месте», без нарушения работы фермы. Это можно делать путем создания версий каждой разворачиваемой функции и предоставления пользовательских действий по обновлению с одной версии функции на другую.

Пакеты решений

Файл пакета решения представляет собой один файл с расширением WSP. Однако файл может представлять собой архив с несколькими файлами. В действительности формат файла WSP это стандартный CAB-файл Windows. Чтобы убедиться в этом, смените расширение файла любого решения с WSP на CAB. Открыв этот файл вы увидите структуру файлов.

В корневой папке находится файл манифеста пакета и одна или несколько подпапок с другими компонентами. Многие из этих компонентов представляют собой XML-файлы с конфигурационной информацией списков, сайтов, типов контента и т. п.

Наиболее часто в пакете решения встречаются такие файлы:

Есть много других типов файлов, которые могут встречаться в пакетах решений, но они не так важны. Они определяют конфигурацию функций и компонентов. Но прежде чем использовать их, нужно немного знать о среде, в которой они будут разворачиваться.

Учимся понимать среду развертывания

При развертывании пакета решения на ферме серверов SharePoint он размещается на одной из двух сред выполнения. Первая среда — сама ферма серверов. Это позволяет компонентам получать доступ к ресурсам через ферму и другие элементы инфраструктуры, но строго в рамках разрешений на доступ к тем или иным элементам.

Вторая среда — «песочница» — намного более ограничена. При работе пакета решения в песочнице ее возможности влияния на ферму в целом ограничены. Понимание разницы между решениями ферм и песочниц исключительно важно для планирования развертывания пользовательских усовершенствований.

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

Самое важное различие между решениями для ферм и песочниц — безопасность. Решения для ферм обычно пользуются большим доверием. С применением CAS (.NET Code Access Security) можно создавать компоненты решений для ферм с пониженным уровнем доверия. Это хороший подход с точки зрения безопасности, потому что позволяет выполнять код с минимально необходимым уровнем привилегий. В ферме нужно развертывать только хорошо протестированный и очень доверенный код.

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

Управление решениями для ферм

Развертывание пакета решения на ферме серверов SharePoint состоит из двух основных операций: добавления и развертывания. При добавлении файл решения загружается в конфигурационную базу данных SharePoint, где он становится доступным всем серверам фермы. При развертывании файлы устанавливаются в разные системные файловые каталоги на каждом сервере фермы.

Правом добавлять решения в хранилище решений фермы обладают только администраторы фермы. На сайте Central Administration нет страницы для загрузки пакета — это делается с помощью средства командной строки. Решения можно также добавлять посредством API-интерфейса SharePoint.

Чтобы загрузить пакет с помощью средства STSADM, выполните такую команду:

stsadm -o addsolution -filename MySolution.wsp

А вот команда для выполнения этой же операции средствами Windows PowerShell:

Add-SPSolution -LiteralPath MySolution.wsp

По завершении операции добавления пакет появится на странице Solution Management сайта Central Administration. Файл пакета загружен, но его функции пока не готовы к использованию. На этом этапе файлы решения пока не установлены на всех серверах SharePoint.

Теперь, после добавления пакета в хранилище решений фермы, можно приступать к развертыванию. Существует два варианта развертывания пакета из хранилища фермы: локальное развертывание или развертывание по заданию таймера.

При локальном развертывании файлы решения устанавливаются на одном сервере фермы. Этот тип развертывания можно выполнять только из командной строки. При этом решение доступно только на сервере, на котором установлено. Использовать решение можно будет только после развертывания на всех серверах фермы. Поэтому вам придется повторить процесс развертывания на каждом сервере.

Более популярным является развертывание с использованием службы SharePoint Timer. При этом можно использовать командную строку или сайт Central Administration. При запуске развертывания SharePoint создает задание таймера, которое выполнится на каждом сервере фермы. Результат получается такой же, как при локальном развертывании на каждом сервере.

Помимо возможности развертывания в одну операцию, развертывание с применением задания таймера также позволяет автоматизировать перезапуск рабочих процессов IIS. Это нужно для того, чтобы SharePoint корректно распознал файлы нового решения. При перезапуске рабочих процессов IIS может наблюдаться небольшой простой, но в большинстве случаев длится он не более нескольких секунд.

Для развертывания в ферме из командной строки, можно использовать параметр -deploysolution в средстве STSADM или командлет Install-SPSolution в Windows PowerShell. (Заметьте, что командлет Windows PowerShell называется Install-SPSolution, а не Deploy-SPSolution.)

У обоих команд есть флаг -local, который позволяет выполнить локальное развертывание. Для запуска задания таймера в определенное время используйте параметр -time, который доступен в обоих командах. Чтобы запустить задание таймера немедленно, задействуйте параметр -immediate в STSADM или просто не используйте параметры -local и -time в команде Windows PowerShell.

При развертывании решения для фермы можно задать ряд других параметров. Вот перечень самых важных из них:

Решение можно также развернуть из сайта Central Administration. В левом меню выберите System Settings. Затем выберите Manage Farm Solutions. Недавно добавленные пакеты имеют статус Not Deployed (то есть не развернуты).

Щелкните имя пакета и вы увидите окно с информацией о пакете, в том числе содержит ли он элементы, которые требуют особой обработки в процессе развертывания, например полностью доверенные сборки или политики CAS. Щелкните ссылку Deploy Solution, чтобы открыть форму, в которой можно запустить задание таймера развертывания. Веб-интерфейс не поддерживает локальное развертывание.

Развертывание в SharePoint решения для песочницы сильно отличается от развертывания решения для фермы. Вместо добавления и развертывания процесс состоит из этапов развертывания и активации. Однако развертывание в песочнице отличный способ протестировать решение перед развертыванием его в ферме.


Ссылка: http://www.oszone.net/20064/SharePoint-2010