Основы проектирования корпоративных систем - Сергей Зыков
Шрифт:
Интервал:
Закладка:
• средства улучшенного взаимодействия с базами данных и хранилищами данных различного вида;
• организация курсоров, т. е. средств динамического обновления, динамического получения информации из баз данных и средств, которые повышают интерактивность взаимодействия с пользователем;
• организация серверов приложений и различных сетевых структур, в которых объединяются эти серверы;
• средства обновления данных;
• средства обновления кода;
• средства повышения производительности, в том числе достижение корпоративного уровня масштабируемости;
• применение портальных решений. Известно, что корпоративные решения на базе Microsoft Dynamics и те корпоративные решения, которые рассматривались раньше, на основе технологий Oracle, построены во многом на портальном подходе, который позволяет в единой архитектуре объединить гетерогенные информационные системы в общие программные комплексы. Здесь можно видеть, каким образом осуществляется интеграция с порталом Microsoft на основе технологии SharePoint и продукта Share-Point и каким образом унифицируется, с одной стороны, и персонализируется, с другой, пользовательский интерфейс так, чтобы пользователи получали возможность гибкого и надежного доступа к приложениям и данным с теми возможностями, которые для них определены;
• последовательность ключевых операций, которые предусмотрены в Microsoft Dynamics для тех или иных сценариев, и различные функциональные изменения и изменения в интерфейсе, которые, в частности, включают ленты (Ribbons), что напоминает нам интерфейс Windows Vista и поздние операционные системы, офисные решения Microsoft.
Как уже неоднократно отмечалось, корпоративные системы – это системы с большими, распределенными, гетерогенными базами данных, т. е. с базами данных, которые дают возможность получить достаточно хорошую картину бизнес-деятельности корпорации, эффективно проанализировать, построить прогноз развития корпорации и получить аналитические или оперативные срезы отчетов, консолидирующих эту корпоративную информацию на разных уровнях.
При взаимодействии с базой данных поддерживаются сложные структуры запросов, в частности вложенные запросы. Запрос может быть задан рекурсивно или как сложная функция, содержащая внутри себя другой запрос. Более того, в серьезных корпоративных системах, таких как Oracle Applications или Oracle Bussiness Suit, и в поддерживающих их СУБД, таких как Oracle Enterprise Server, реализованы расширения традиционного SQL до PL SQL, т. е. до языков, которые дают возможность разрабатывать процедуры. И здесь поддерживается целый ряд важных механизмов, кроме вложенных запросов, в частности режим курсоров, в том числе операция <fetch>, которая обеспечивает динамическую выборку и интерактивное взаимодействие с пользователем по результатам этой выборки. Поддерживаются расширенные операции объединения <union>, когда у нас объединяются результаты нескольких подзапросов с учетом различных условий. Поддерживаются при множественном обновлении записей соединения <join>, как внешние, так и внутренние. Кроме того, достаточно серьезный механизм реализован для обработки исключений, как это видно из примера.
В приведенном примере происходит дублирование ключа, т. е. того атрибута, который изначально должен быть уникальным для каждой таблицы. При этом видно, что используется язык, похожий на C#, с оператором <try> и альтернативами <catch>. Существует большое количество древовидных исключений, напоминающих пространство имен System Exception.NET, и в целом вся обработка похожа на то, что обсуждалось в связи с пространствами. NET и вообще идеологией. NET. Важно, что здесь эта идеология распространяется на случай не просто взаимодействия с базой данных, а некой надстройки над этими базами данных на уровне системы учета планирования и управления корпоративными ресурсами MS Dynamics.
Еще одно важное дополнение – это возможность поддержки большого количества часовых поясов. Это важно, потому что корпорация, будучи территориально распределенной структурой, функционирует в разных странах, на разных континентах. И по статистике «Итера», некоторые из топ-менеджеров проводят до трети своего рабочего времени в воздухе или командировках. Это достаточно много. Поэтому руководителю нужно иметь возможность получить срез оперативной информации по бизнес-деятельности корпорации, отдельных ее структур, компаний, регионов и т. д. применительно к различным часовым поясам и сделать это так, чтобы результирующие данные были актуальными.
В этой связи вводится новый тип данных – DateTime, который:
• имеет новый интерфейс;
• снабжен возможностью не ориентироваться на локальное время машины, на которой, собственно, работает база данных и Dynamics;
• использует UTC. Это французская аббревиатура, на английском она звучит как Coordinated Universal Time. При доступе к базе данных автоматически пересчитывать время на тот регион, из которого производится запрос.
Естественно, осуществляется преемственность с предыдущими версиями Dynamics, которые сохраняют местную семантику, если говорить о локальном времени, о предыдущих типах данных, которые учитывают единственный часовой пояс, то с ними обеспечивается преемственность. При миграции данных производится автоматическое обновление до UTC относительно текущего часового пояса. Что еще очень важно, в Dynamics существует встроенный язык, который называется X++. Это объектно-ориентированный язык. Можно сказать, что он больше похож на С++, чем на C#. Хотя определенное тяготение к. NET-идеологии также присутствует. Вот на этом языке можно осуществлять процедурные расширения и, в частности, использовать его для доступа к базам данных.
Еще одна важная особенность, которую нужно отметить в отношении корпоративных систем, это возможность учета для многих компаний. Надо понимать, что корпорация объединяет большое количество различных компаний, вообще говоря, с разными направлениями деятельности. И достаточно важна возможность консолидации данных компаний для того, чтобы получить эффективное средство подготовки отчетности как для внешнего и внутреннего аудита, так и для руководства корпорации. Последние версии Microsoft Dynamics обеспечивают унифицированный доступ к данным компании. То есть не важно, откуда производится доступ: это могут быть формы ввода, запросы или отчеты. Можно использовать код языка Х++, чтобы получить доступ к базам данных, как уже говорилось.
Что еще интересно, поддерживаются гетерогенные таблицы и таблицы, которые агрегируют информацию по различным компаниям. Для этого используется новое ключевое слово для работы с компаниями, которое называется <crosscompany>. Ниже представлен пример запроса, который как раз включает это слово.