Как создать ИС, чтобы тебя не проклинал админ заказчика?

Save this PDF as:
 WORD  PNG  TXT  JPG

Размер: px
Начинать показ со страницы:

Download "Как создать ИС, чтобы тебя не проклинал админ заказчика?"

Транскрипт

1 Как создать ИС, чтобы тебя не проклинал админ заказчика? Программистам об ИТ, семинар 4/6 Санкт-Петербург Март, 2010 Сергей Кузнецов Руководитель Технологического отдела Рексофт 1

2 «Программистам об ИТ»: Цель Осознание Понимание 2

3 В предыдущих сериях 3

4 «Программистам об ИТ»: Семинары Архитектуры ИС Микроархитектура/макроархитектура ИС Как создать ИС, чтобы тебя не проклинал коллега? Как создать ИС, чтобы тебя не проклинал пользователь? Помни о security 4

5 Базовые функции ИС Приложение Пользовательский интерфейс Бизнес логика Управление данными Пользовательский интерфейс - все, что связано с взаимодействием с пользователем: нажатие кнопок, движение мыши, отрисовка изображение, вывод результатов поиска и т.д. Бизнес логика - правила, алгоритмы реакции приложения на действия пользователя или на внутренние события, правила обработки данных Управление данными - хранение, выборка, модификация и удаление данных, связанных с решаемой приложением прикладной задачей 5

6 Трехуровневый «клиент-сервер» Серверная часть Сервер приложений Сервер баз данных Клиент Пользовательский интерфейс Бизнес логика Управление данными 6

7 Сложность. А в чем собственно проблема? Мы можем одновременно удерживать в голове ограниченное количество сущностей. 7 ± 2 7

8 Сложность. Как бороться? Декомпозиция - разделять на компоненты Абстракция - вводим уровни реализации Инкапсуляция - скрываем реализацию и ненужные детали И т. д. 8

9 Интеграция ИС ИС 1 Пользовательский интерфейс Бизнес логика Управление данными ИС 2 Пользовательский интерфейс Бизнес логика Управление данными 9

10 Ключевые характеристики кода Learnability (Изучаемость) Насколько сложно понять, как это работает? Maintainability (Сопровождаемость) Насколько сложно внести изменения? Learnability необходимое, но недостаточное условие для Maintainability 10

11 Maintainability = хорошая декомпозиция Хорошая декомпозиция - это: Хорошо продуманные и стабилизированные внутренние и внешние API Эффективное выделение повторно используемых частей Low Coupling (Слабое связывание) + High Cohesion (Cильное зацепление) Разумный(!) эволюционный потенциал системы 11

12 Определения Coupling (Связанность) это мера, определяющая насколько жестко один элемент связан с другими элементами, либо каким количеством данных о других элементах он обладает. Cohesion (Зацепление) это мера связанности и сфокусированности функциональных обязанностей класса (элемента). Фундаментальное правило декомпозиции: Low Coupling (Слабая связанность) + High Cohesion (Сильное зацепление) 12

13 Low Coupling + High Cohesion 13

14 Чтобы не проклинал коллега, надо: Помнить про Learnabillty и Maintainability То есть стараться писать так, чтобы коллеге было просто понять, как это работает и просто внести изменения Что, в свою очередь, означает правильно писать комментарии, следовать Style Guidelines и постоянно совершенствовать свои навыки декомпозиции Стараться видеть всю «картинку» 14

15 «Программистам об ИТ»: Семинары Архитектуры ИС Микроархитектура/макроархитектура ИС Как создать ИС, чтобы тебя не проклинал коллега? Как создать ИС, чтобы тебя не проклинал пользователь? Помни о security 15

16 Содержание Быль N1 Быль N2 Аспекты администрирования 16

17 Содержание Быль N1 Быль N2 Аспекты администрирования 17

18 О системе Microsoft SharePoint (Form Based Authentication) 18

19 Проблема Некоторые пользователи не могут попасть на стартовую страницу Если набрать в адресной строке имя сервера, то выдается 403-я ошибка Страницы в «глубине» сайта показываются нормально В логах сервера пусто Ошибка возникает далеко не у всех пользователей 19

20 После 3 часового «гугления» Нашелся пост в блоге небольшой западной компании, занимающейся внедрением продуктов Microsoft. Оказалось, что такое происходит при стечении следующих обстоятельств: Form Based Authentication(FBA) на SharePoint У пользователя установлены Microsoft Office Live Update Office Live Components вставляют в строку User Agent конструкции типа «OfficeLiveConnector.1.3; OfficeLivePatch.0.0». SharePoint реагирует на подстроку «Office» и считает, что к нему идет не броузер, а офисное приложение. И только в режиме FBA и при запросе к каталогу это приводит к ошибке

21 Решение проблемы Еще немного гугления и удалось найти статью в Microsoft Knowledge Base: You cannot view a forms-based authentication Windows SharePoint Services 3.0 site if you have Office Live Update 1.2 for Microsoft Office Live Workspace installed. Решение проблемы - Windows SharePoint Services 3.0 Cumulative Update Server Hotfix (June 30, 2009) УРА! 21

22 Чуток морали Разработчик принял решение, но через какое-то время оно аукнулось при некотором стечении обстоятельств. Думай о последствиях своих решений Выбирай простые и надежные решения 22

23 Это еще не конец истории! 23

24 Ставим Cumulative Update Вечер пятницы Установка прошла успешно На эталонном компьютере ошибка исчезла Войти в систему стало невозможно «Неизвестная ошибка» В логах опять пусто! Гугление в течение 30 минут ничего не дает! 24

25 А домой-то хочется! 25

26 Включаем глубокую отладку С SharePoint знакомы уже давно, поэтому залазим в конфиг и Выключаем customerror Включаем callstack и В базе данных НЕ НАЙДЕНА хранимая процедура из числа тех, что необходимы для работы FBA 26

27 Небольшая тонкость Microsoft SharePoint (Form Based Authentication) WSS FBA 27

28 После обновления Microsoft SharePoint (Form Based Authentication) WSS 28

29 В резервной копии все на месте Microsoft SharePoint (Form Based Authentication) WSS FBA WSS 29

30 Копируем процедуры из резервной копии Microsoft SharePoint (Form Based Authentication) WSS FBA 30

31 Фу-у-у, все заработало! 31

32 Что позволило бы избежать проблем? 32

33 Что позволило бы избежать проблем? Аккуратность разработчиков SharePoint в принятии решении Более человечная обработка и регистрация ошибок в SharePoint Осторожность и опыт в администрировании: o FBA, хоть и штатная, но чуждая SharePoint конфигурация o Никаких других объектов в «чужой» базе создавать нельзя 33

34 Мораль для разработчика Думай о последствиях своих решений Выбирай простоту и надежность Думай о диагностике ошибок Думай о многообразии условий эксплуатации 34

35 Содержание Быль N1 Быль N2 Аспекты администрирования 35

36 О системе Сервер 3. Adobe ColdFusion Server APP1 APP2 ERP Сервер 1. SQL Server DB1 DB2 Oracle Database Сервер 2 36

37 Проблема Пользователи APP2 жалуются, что система не отвечает И утро пятницы! 37

38 Экстренные меры и первая диагностика Рестарт ColdFusion не помог Рестарт всего сервера c ColdFusion не помог И в том и в другом случае некоторое время система работает, а потом перестает отвечать на запросы В логах ColdFusion и Apache ничего подозрительного В логах ColdFusion есть(!) записи о «долгих» запросах, но не больше, чем обычно Мониторим потоки ColdFusion через некоторое время после старта пул потоков «забивается» и сервер перестает отвечать на запросы Определить какие скрипты «стопорят» дело возможности нет 38

39 Проблема 2. Спустя 1 час Пользователи ERP жалуются на системные ошибки И по-прежнему пятница! 39

40 Экстренная диагностика Включаем Trace запросов на SQL Server странно запросы выполняются очень долго и часто завершаются ошибкой По наитию смотрим на свободной пространство на дисках сервера 1 свободно лишь несколько мегабайт. КАРАУЛ!!! Судорожно удаляем лишнее, перепускаем сервер 40

41 Фу-у-у, ERP заработало! 41

42 Опаньки, и APP2 заработало! 42

43 С чего это вдруг? 43

44 Проблемные места Сервер 3. Adobe ColdFusion Server APP1 APP2 ERP Сервер 1. SQL Server DB1 DB2 Oracle Database Сервер 2 44

45 Реконструкция событий В стесненных по дисковому пространству условиях производительность SQL Server а резко деградировала Приложение APP1 начало «тормозить» на запросах к базе и забивать пул потоков сервера приложений ColdFusion Приложение APP2 тоже начало тормозить, но уже из-за забитого пула потоков Пользователи APP2 просто начали жаловаться раньше, поэтому мы не заметили тормозов на APP1 А пользователи ERP пожаловались ровно тогда, когда началась работа с системой Все встало на свои места, как только производительность SQL Server а нормализовалась 45

46 Что позволило бы избежать проблем? 46

47 Что позволило бы избежать проблем? Более профессиональное администрирование o Мониторинг производительности SQL Server а o Мониторинг дискового пространства Каждому приложению свой пул потоков в ColdFusion Более продвинутая диагностика происходящего в ColdFusion Внимание разработчиков APP1 к таймаутам запросов к базе 47

48 Мораль для разработчика Думай о неявных межсистемных зависимостях Думай о диагностике происходящего в системе Думай о межсистемных взаимодействиях с точки зрения возможных проблем на той стороне 48

49 Содержание Быль N1 Быль N2 Аспекты администрирования 49

50 Мудрые слова Maintainability сопровождаемость системы или как выполнять задачи по поддержке системы в рабочем состоянии (резервное копирование и восстановление, установка обновлений и т.д.) Reliability надежность системы или стабильность ее работы в широком диапазоне условий внешней среды Monitorability наблюдаемость системы или возможность понять, что с ней происходит в режиме близком к реальному времени Scalability масштабируемость системы или предсказуемая способность обрабатывать разную нагрузку И т. д. 50

51 Другие аспекты администрирования Уровень квалификации персонала, требуемый для администрирования системы Сложность системы или количество документации, которое надо изучить для правильного ее администрирования Гибкость конфигурирования или насколько система может быть адаптирована для конкретных условий развертывания (обычно несовместимо с простотой) И т. д. 51

52 Супермораль для разработчика Жизнь админа далеко не сахар! «Хорошая вещь не требует к себе внимания!» При разработке ИС крайне важно думать об аспектах ее администрирования 52

53 На следующем семинаре Как создать ИС, чтобы тебя не проклинал пользователь? О взаимодействии с пользователем или «Психбольница в руках пациентов» 53

54 Вопросы... 54

55 Спасибо за внимание! Сергей Кузнецов Руководитель Технологического отдела Рексофт job.reksoft.ru/training 55

Как создать ИС, чтобы тебя не проклинал коллега?

Как создать ИС, чтобы тебя не проклинал коллега? Как создать ИС, чтобы тебя не проклинал коллега? Программистам об ИТ, семинар 3/6 Санкт-Петербург Декабрь, 2009 Сергей Кузнецов Руководитель Технологического отдела Рексофт www.reksoft.ru 1 «Программистам

Подробнее

Архитектура и работа с данными «1C:Предприятия 8.2»

Архитектура и работа с данными «1C:Предприятия 8.2» М. Г. Радченко Е. Ю.Хрусталева Архитектура и работа с данными «1C:Предприятия 8.2» Москва 2011 УДК 658.012.011.56:004.42 ББК 65.29 Р15 Р15 Радченко М. Г. Архитектура и работа с данными «1С:Предприятия

Подробнее

Евгений Калинин RTFM Книга про ИТ аутсорсинг Как создать сервисную ИТ компанию

Евгений Калинин RTFM Книга про ИТ аутсорсинг Как создать сервисную ИТ компанию Евгений Калинин RTFM Книга про ИТ аутсорсинг Как создать сервисную ИТ компанию la26: Купил один местный журнал. На обложке крупными буквами: "Как открыть собственный бизнес без проблем". Открываю статью,

Подробнее

Как организовать небольшой Call-центр

Как организовать небольшой Call-центр Avaya Call centre 08.07 9/17/07 6:25 PM Page 1 Как организовать небольшой Call-центр IP Telephony Contact Centers Unified Communications Communications Enabled Business Processes Avaya Call centre 08.07

Подробнее

Информационная система как объект защиты

Информационная система как объект защиты Глава 2 Информационная система как объект защиты В этой главе: Что такое информационная система ИС всякие нужны, ИС всякие важны Разработка и производство информационных систем Структура ИС и принципы

Подробнее

Система контроля и управления доступом «Сфинкс».

Система контроля и управления доступом «Сфинкс». Система контроля и управления доступом «Сфинкс». Руководство администратора ООО «Промышленная автоматика контроль доступа», г. Н. Новгород, 2014 г. Оглавление 1. Введение.... 3 2. Используемые определения,

Подробнее

ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS 7

ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS 7 МИНИСТЕРСТВО ЗДРАВООХРАНЕНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ГБОУ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ АМУРСКАЯ ГОСУДАРСТВЕННАЯ МЕДИЦИНСКАЯ КАДЕМИЯ Е.В. ПЛАЩЕВАЯ ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS 7 МЕТОДИЧЕСКИЕ УКАЗАНИЯ

Подробнее

Кравченко Г.В., Волженина Н.В. РАБОТА В СИСТЕМЕ MOODLE: РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ Учебное пособие СОДЕРЖАНИЕ

Кравченко Г.В., Волженина Н.В. РАБОТА В СИСТЕМЕ MOODLE: РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ Учебное пособие СОДЕРЖАНИЕ Кравченко Г.В., Волженина Н.В. РАБОТА В СИСТЕМЕ MOODLE: РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ Учебное пособие СОДЕРЖАНИЕ ВВЕДЕНИЕ 3 1. ОСНОВЫ РАБОТЫ С СИСТЕМОЙ ДИСТАНЦИОННОГО ОБУЧЕНИЯ MOODLE 5 1.1. Предпосылки появления

Подробнее

Общий экономический эффект от внедрения решения для обеспечения безопасности ЦОД Cisco Secure Data Center

Общий экономический эффект от внедрения решения для обеспечения безопасности ЦОД Cisco Secure Data Center Исследование Forrester на основе методологии Total Economic Impact, подготовленное для корпорации Cisco Общий экономический эффект от внедрения решения для обеспечения безопасности ЦОД Cisco Secure Data

Подробнее

Рекомендации по обеспечению безопасности при разработке приложений Windows Azure

Рекомендации по обеспечению безопасности при разработке приложений Windows Azure Рекомендации по обеспечению безопасности при разработке приложений Windows Azure Авторы Эндрю Маршал (Andrew Marshall), старший менеджер программы безопасности, инженер по безопасности Майкл Говард (Michael

Подробнее

KMnet Viewer Руководство пользователя

KMnet Viewer Руководство пользователя KMnet Viewer Руководство пользователя Замечания об авторских правах Несанкционированное копирование всего или части этого руководства запрещена. Информация в этом руководстве может быть изменена с целью

Подробнее

Содержание Введение 4 1.Надежное программное средство как продукт технологии программирования. 5 1.1. Программа как формализованное описание процесса

Содержание Введение 4 1.Надежное программное средство как продукт технологии программирования. 5 1.1. Программа как формализованное описание процесса Содержание Введение 4 1.Надежное программное средство как продукт технологии программирования. 5 1.1. Программа как формализованное описание процесса обработки данных. 5 1.2. Понятие правильной программы.

Подробнее

Коллективная деятельность в масштабе группы

Коллективная деятельность в масштабе группы Коллективная деятельность в масштабе группы Продукт Rational Team Concert for Power существенно упрощает совместную деятельность, имеющую критически важное значение. Апрель 2010 г. Дон Яньцзи (Don Yantzi)

Подробнее

Drive Copy 11 Professional

Drive Copy 11 Professional PARAGON Paragon Software Group Heinrich von Stephan Str. 5c 79100 Freiburg, Germany Tel. +49 (0) 761 59018201 Fax +49 (0) 761 59018130 Internet www.paragon.ru Email sales@paragon.ru Drive Copy 11 Professional

Подробнее

Система дистанционного обучения Moodle

Система дистанционного обучения Moodle Санкт-Петербургский государственный университет информационных технологий, механики и оптики Кафедра компьютерных образовательных технологий А.В. Белозубов, Д.Г. Николаев Система дистанционного обучения

Подробнее

Организация дистанционного обучения в системе «MOODLE»

Организация дистанционного обучения в системе «MOODLE» МИНСКИЙ ГОРОДСКОЙ ИНСТИТУТ РАЗВИТИЯ ОБРАЗОВАНИЯ ЦЕНТР ИНФОРМАЦИОННЫХ РЕСУРСОВ СИСТЕМЫ ОБРАЗОВАНИЯ ОТДЕЛ ТЕХНИЧЕСКИХ СРЕДСТВ ОБУЧЕНИЯ И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ Организация дистанционного обучения в системе

Подробнее

Руководство для начинающего пользователя Joomla! 2.5

Руководство для начинающего пользователя Joomla! 2.5 Руководство для начинающего пользователя Joomla! 2.5 2 О книге... 5 Введение... 9 Примеры сайтов, построенных на Joomla... 18 Установка... 28 Основные понятия... 41 Что нового в Joomla! 2.5?... 52 Управление

Подробнее

Нам не страшен форс-мажор

Нам не страшен форс-мажор Нам не страшен форс-мажор Защита от сбоев и обеспечение катастрофоустойчивости АБС RS-Bank v. 5.5 В любом современном банке вне зависимости от объема его бизнеса и количества клиентов именно АБС является

Подробнее

Программирование для Windows 95

Программирование для Windows 95 Ч. Петзолд Программирование для Windows 95 в двух томах Том I «BHV Санкт-Петербург» Дюссельдорф Киев Москва Санкт-Петербург Содержание ЧАСТЬ I ВВЕДЕНИЕ... 9 ГЛАВА 1 README.TXT...11 Вызов, брошенный программистам...11

Подробнее

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

К сожалению, на благодарности нам выделили всего лишь страничку. Поэтому я постараюсь представить всех наших активистов в фактах. Yes, we did! Scrum и XP: заметки с передовой Чтобы прочитать эту книгу вам понадобится всего лишь два-три часа. Чтобы её перевести участникам сообщества Agile Ukraine потребовалось 4 месяца. Поверьте,

Подробнее

LDAP для учёных-ракетчиков

LDAP для учёных-ракетчиков LDAP для учёных-ракетчиков Данное открытое руководство о LDAP, OpenLDAP 2.x и ApacheDS на Linux и BSD (FreeBSD, OpenBSD и NetBSD). Оно предназначено для новичков, тех, кто собирается стать учёными-ракетчиками,

Подробнее

Проектирование классов и наследование

Проектирование классов и наследование Проектирование классов и наследование Наиболее важный аспект разработки программного обеспечения ясно понимать, что именно вы пытаетесь построить. Бьярн Страуструп (Bjarne Stroustrup) Какого вида классы

Подробнее

FossDoc: Построй свою систему сам 2012 г. 2012 г.

FossDoc: Построй свою систему сам 2012 г. 2012 г. FossDoc: Построй свою систему сам 2012 г. 2012 ООО "Предприятие ФОСС-Он-Лайн". Все права защищены. Без письменного разрешения ФОСС-Он-Лайн никакая часть данной документации не может быть воспроизведена

Подробнее

Как стать ИТ архитектором?

Как стать ИТ архитектором? Андрей Коротков Как стать ИТ архитектором? 9 чит кодов для ИТ профессионалов www.itarchitect.ru 2011 Введение «Плох тот солдат, который не мечтает стать генералом!» А.Ф. Погосский Если вас заинтересовала

Подробнее

ИНСТРУКЦИЯ ДЛЯ АВТОРОВ ПО РАБОТЕ В СИСТЕМЕ SCIENCE INDEX

ИНСТРУКЦИЯ ДЛЯ АВТОРОВ ПО РАБОТЕ В СИСТЕМЕ SCIENCE INDEX ИНСТРУКЦИЯ ДЛЯ АВТОРОВ ПО РАБОТЕ В СИСТЕМЕ SCIENCE INDEX Данная инструкция предназначена для авторов научных публикаций, входящих в базу данных Российского индекса научного цитирования (РИНЦ). В инструкции

Подробнее

Acronis Disk Director 11 Home. Руководство пользователя

Acronis Disk Director 11 Home. Руководство пользователя Acronis Disk Director 11 Home Руководство пользователя Acronis, 2000 2010. Все права защищены. Acronis, Acronis Compute with Confidence, Acronis Recovery Manager, Зона безопасности Acronis, Acronis True

Подробнее

Рабочий процесс. Текстовые редакторы

Рабочий процесс. Текстовые редакторы 1 Рабочий процесс Создание веб-приложений сложный процесс, включающий использование множества подвижных частей и интерактивных компонентов. Чтобы изучить, как это делается, мы должны разобрать эти части

Подробнее

Платформа для разработки мобильных приложений Ubiq Mobile

Платформа для разработки мобильных приложений Ubiq Mobile Платформа для разработки мобильных приложений Ubiq Mobile Введение А.Н.Терехов, д.ф.-м.н., зав.кафедрой системного программирования В.В.Оносовский, с.н.с. лаборатории информационных систем Санкт-Петербургский

Подробнее

Васильев А.Ю. Работа с Postgresql. настройка, масштабирование. справочное пособие. Creative Commons Attribution-Noncommercial 2.5

Васильев А.Ю. Работа с Postgresql. настройка, масштабирование. справочное пособие. Creative Commons Attribution-Noncommercial 2.5 Васильев А.Ю. Работа с Postgresql настройка, масштабирование справочное пособие 2011 Creative Commons Attribution-Noncommercial 2.5 При написании книги(мануала, или просто шпаргалки) использовались материалы:

Подробнее