| 
 
            
            
            
            
              | УТВЕРЖДАЮ
 
 От Заказчика
 
 Заместитель директора
 
 Сводного департамента анализа и регулирования внешнеэкономической деятельности Минэкономразвития России
 
 Мартинкевич Г.Г.
 
 ________________________
 
 « » _____________ 2009 г.
 
 | 
 
 
 | УТВЕРЖДАЮ
 
 От Исполнителя
 
 Генеральный директор
 
 ООО «Интегрум Медиа»
 
 Кузнецов К.В.
 
 ________________________
 
 « » _____________ 2009 г.
 
 |  
 
 
 
            
            
              | Единый портал внешнеэкономической информации Минэкономразвития России
 
 Руководство программиста
 
 
 |  
              | Шифр темы: 1607-05-09
 
 
 |  
              | Листов
 
 |  
              | 
 Москва,
 
 |  СОДЕРЖАНИЕ
 
 
 
 
            1.1. Требования к техническим средствам 3
 
 1.2. Требования к общему программному обеспечению (ОПО) 3
 
 
 
            
              Условия применения программы  1.1.Требования к техническим средствамТребования к техническим средствам ИС «Единый портал внешнеэкономической информации Минэкономразвития России».
 
 Для работы Портала необходимы два высокопроизводительных сервера с конфигурацией не ниже:
 
 Proliant DL380 G5 5160 (Rack2U XeonDC 3.0Ghz(4Mb/) 2х1Gb/P400(256Mb/RAID5/1/0)/noHDD(8)SFF/noCD.noFDD/iLO2std/2xGigEth
 
 Proliant DL380 G5 X5160 (3.00GHz-1x4Mb) Processor Option Kit;
 
 Slimline CD-RW/DWD-ROM Combo Option Kit;
 
 HP 72 Gb SFF SAS 10k rpm Hot Plug Hard Drive (2,5”);
 
 Redundant Power Supply 350/370/380 G5 Worldwide Kit.
 
 
  1.2.Требования к общему программному обеспечению (ОПО)Требования к общему программному обеспечению (ОПО), необходимому для ИС «Единый портал внешнеэкономической информации Минэкономразвития России», представлены в таблице 2.
 
 Таблица 1.2. Требования к ОПО
 
 
            
            
            
              | Наименование
 
 | Кол-во
 
 |  
              | 1. ОС Debian Server
 
 | 1
 
 |  
              | 2. PostgreSQL 8.4
 
 | 1
 
 |  
              | 3. Программные зависимости
 
 | 1
 
 |  
 
 
            
              Характеристика программы 
 Система рассчитана на круглосуточный режим работы в течение 365 дней в году.
 
 Средствами контроля и мониторинга являются автоматизированные встроенные в платформу программные компоненты, которые самостоятельно выполняют следующие действия в случае ошибки
 
 
            Система автоматически перезапускает себя в случае некритической ошибки
 
Посылает администратору сообщение об ошибке в письме на электронную почту
 
Записывают ошибку в журнал, который находится в файловой системе в файле /var/log/messages
 
В случае невозможности совершить вышеуказанные действия, система выведет администратору ошибки прямо в браузер с конкретными данными о том, где, почему и что произошло.
 
 Для восстановления системы необходимо обратиться к документу «Руководство администратора», в котором находится раздел «Восстановление системы после сбоя»
 
 
 
            
              Обращение к программе Внешнее управление содержимым системы осуществляется через веб-интерфейс, описанный в документе «руководство пользователя». Для того чтобы передать полное управление всесторонними функциями портала, необходимо создать учетную запись с ролью «администратор» и по зашифрованному каналу сообщить логин и пароль нужному человеку.
 
 Внутреннее управление порталом происходит на сервере.
 Структура проекта находится в папке /var/www/projects/rus-export и является полноценным набором файлов и программных компонентов для управления логикой, функциональной частью системы и ее работой.
 
 Процесс запуска портала
 
 Чтобы запустить портал программисту необходимо выполнить ряд шагов:
 
 
            Авторизоваться в терминале сервера под ролью root
 
Перейти в папку проекта с помощью команды cd /var/www/projects/rus-export
 
Запустить сервер приложения: script/server
 
 Портал должен запуститься на 80ом порту, после вывода следующих строчек:
 
 bash-3.2# script/server
 
 => Booting Mongrel
 
 => Rails 2.3.4 application starting on http://0.0.0.0:80
 
 => Call with -d to detach
 
 => Ctrl-C to shutdown server
 
 Входящие запросы будут приниматься по любым интернет-адресам, которые адресуют пользователя на данный сервер.
 
 Проект состоит из следующих папок:
 
 app – исходные коды динамической составляющей сайта разбитой по паттерну MVC
 
 controllers – исходные коды контроллеров. Каждый контроллер управляет одной или несколькими сущностями, содержа в себе набор дейтвий. Каждое действие формирует один URL-адрес.
 
 Для генерации  нового контроллера можно использовать команду ~/script/generate controller 'имя контроллера'
 
 helpers – исходные коды динамичных помошников для представлений. В текущей версии сайта дополнительные помощники определены только в глобальном файле – application_helper.rb.
 
 models – исходные коды моделей сущностей. Каждая модель в указанной папке – отображений таблицы в базе данных с привязкой бизнес-логики.
 
 views – исходные коды представлений сайта.
 
 config – конфигурационные файлы проекта
 
 database.yml – описание конфигурации СУБД. Примеры конфигурации можно посмотреть в инструкции по установке.
 
 locales – содержит список локализационных настроек. Каждый язык, поддерживающийся сайтом должен быть определен как 'двухбуквенный код языка'.yml, например ru.yml или jp.yml.
 
 routes.rb – настройки маршрутизации. Файл содержит список соответствий запрашиваемых URL к действиям контроллеров (app/controllers).
 
 db – директория, содержащая файлы, необходимые для работы с СУБД. В случае использования SQLite, эта папка по-умолчанию будет содержать в себе файлы базы данных.
 
 migrate – директория, содержащая миграции, скрипты наката структуры базы данных. Каждый скрипт – отдельная часть структуры. Для доработки структуры на боевой базе, необходимо создать очередной скрипт по примеру существующих. Вызов команды rake db:migrate выполнит у конкретной инсталляции все свежие скрипты. Для генерации миграцией можно использовать команду ~/script/generate migration 'имя миграции'
 
 doc – директория, зарезервированная под хранение внутренней документации
 
 index – зарезервирована расширением ferret для хранения поисковых индексов
 
 lib – отдельные классы Ruby, не подходящие для определения в моделях.
 
 tasks – набор задач для исполнение с помощью команды rake.
 
 log – файлы с полным логом запросов. act_as_ferret.log содержит в себе лог работы Ferret.
 
 public – исходные коды статической части сайта
 
 images – картинки сайта и административной панели
 
 javascripts – JS-скрипты сайта и административной панели
 
 stylesheets – CSS-стили сайта и административной панели
 
 script – набор автоматизирующих скриптов, использующихся для генерации, тестирования, снятия бэкапов
 
 test – директория для хранения тестов, как Unit, так и приемочных.
 
 tmp – директория для хранения временных файлов
 
 vendor – внешние зависимости
 
 plugins – интегрированные в поставку расширения: ACL_System2, paperclip и другие
 
 
            
              Входные и выходные данные В данном разделе приводится описание организации используемой входной и выходной информации.
 
 
 Внесение  изменений в инсталляцию
 
 Внесение изменений  в работающую версию будет принято  после перезапуска сервера. Перезапуск сервера может быть осуществлен  как с остановкой HTTP-сервера и прерыванием соединений, так и без них.
 
 Полная перезагрузка HTTP-сервера nginx в среде Linux выполняется  с помощью команды /etc/init.d/nginx restart. Для мягкой перегрузки программной  среды, необходимо выполнить команду touch ~/tmp/restart.txt.
 
 Полная перезагрузка требуется в крайне редких случаях  и в условиях эксплуатации к использованию  рекомендована мягкая перегрузка.
 
 Процедура автоматизированного  внедрения изменений
 
 Для автоматизации  внесения изменений при активной разработки, в поставке сайта содержатся настройки утилиты Capistrano. Для автоматизации обновления при постоянных изменениях ее можно использовать без перенастройки со следующим окружением:
 
 • nginx
 
 • mod_passenger
 
 • ssh-ключ для выкладывающего пользователя
 
 • система контроля версий Git
 
 Для выкладывания необходимо использовать команду cap deploy. Основные настройки выкладывания расположены  в файле ~/config/deploy/staging.rb.
 
 Их описание:
 
 set :repository, "svn+ssh://"
 
 Расположение  репозитория Git.
 
 set :deploy_to, "/var/www/#{application}"
 
 Путь расположения на сервере.
 
 set :user, "deployer"
 
 Имя пользователя, от лица которого Capistrano будет действовать  на сервере. Этот пользователь должен иметь возможность получить исходные коды из системы контроля версий и быть доступным тому, кто запускает команду cap deploy.
 
 server "rus-export.dv-t.net", :app, :web
 
 server "rus-export.dv-t.net", :db, :primary => true
 
 Имена серверов для программного окружения и  СУБД.
 
 
 
            
              Сообщения В ходе выполнения программы, программисту выдаются сообщения. Здесь приводится описание их содержания и действий, которые необходимо предпринять по этим сообщениям.
 Возможные ошибки, которые могут появиться при заходе на веб-страницу единого портала:
 dispatch.fcgi
 505 Rails application failed to start
 Решение: мягкая перезагрузка http-сервера
 
 Возможные ошибки в журнале ошибок (файл /var/log/messages в файловой системе сервера):
 
 [warn] mod_fcgid: Read data error, fastcgi server has close connection
 
 [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: dispatch.fcgi
 Решение: мягкая перезагрузка http-сервера
 Возможные ошибки в любом из мест:
 
 PGSQL: Connection pool ended
 
 IO: Too much open files
 Решение: необходимо ввести в терминале сервера команду fs.filemax=16452
 
 
             ПЕРЕЧЕНЬ СОКРАЩЕНИЙ
 
 
 
            
            
            
              | ППО
 
 | Прикладное программное обеспечение
 
 |  
              | ИС
 
 | Информационная система «Единый портал внешнеэкономической информации Минэкономразвития России»
 
 |  
              | СУБД
 
 | Система Управления Базами Данных
 
 |  
 
 |