Кто такой Владимир даль

Содержание

Data Access Layer как инструмент управления хранением данных

При проектировании полного жизненного цикла Enterprise-приложений большое значение приобретает вопрос организации их доступа к данным. Тому есть ряд причин:

  • ценовые или иные политики поставщиков хранилищ данных регулярно меняются, но предприятия, использующие данные хранилища, не всегда согласны с этими изменениями;
  • с ростом самого предприятия и масштабов его ИТ-инфраструктуры существующие решения по хранению данных могут перестать удовлетворять его потребностям или финансовым возможностям;
  • технологии хранения данных развиваются, появляются новые средства, предназначенные для решения специализированных задач;
  • в рамках проектов Open Source вырастают дешевые или даже бесплатные альтернативы дорогим коммерческим решениям.

Все это может привести к тому, что в какой-то момент предприятие захочет (или будет вынуждено) сменить технологию хранения данных либо начать использовать новые технологии одновременно с текущими. Однако если при проектировании автоматизированных систем их бизнес-логика не была отделена от работы с хранилищами данных, то смена инструмента хранения может привести к дорогостоящей и плохо управляемой миграции.
Проблему разделения бизнес-логики и работы с данными на уровне отдельного приложения решает широко известный и не раз описанный на «Хабрахабре» архитектурный шаблон Data Access Layer (DAL). Для того, чтобы этот шаблон можно было масштабировать до уровня всего предприятия, необходимо дополнить его рядом архитектурных принципов, которые рассматриваются в данной статье. Следование этим принципам позволит предприятию осуществлять контролируемую (управляемую) замену или добавлять технологии хранения данных в свою архитектуру ИТ.

Проблематика

Данный раздел более подробно описывает исходную проблематику и предпосылки, которые привели к разработке концепции DAL.

Необходимость работы со специализированными БД

В настоящее время классические реляционные СУБД (РСУБД) перестали быть единственным средством для решения задачи по хранению данных при разработке приложений. От универсальных СУБД происходит переход к специализированным. При этом специализация средств хранения идет по разным направлениям: по объему (класс Big Data), нагрузке (класс HighLoad), производительности (классы High Performance, Fast Data) и т. д.
Для архитектуры конкретного приложения входит в норму подбор средства или класса средств хранения под конкретную решаемую задачу. Для масштабных ИТ-систем оптимальным нередко становится одновременное использование нескольких БД различного типа в рамках одного приложения (гетерогенное хранение, рис. 1) для разных групп данных.

Рис. 1. Универсальные и специализированные базы данных
Например, для отдельных задач, в которых не требуется представлять в реляционной модели данные простой структуры, но при этом необходимо обеспечить повышенные требования к производительности и масштабируемости, могут применяться специализированные хранилища «ключ-значение» (key-value). Для иных специальных видов данных (document, photo, video, excel, text) и различных нефункциональных требований существует и широко используется масса других средств хранения с различными интерфейсами доступа (NoSQL).

В то же время язык SQL остается наиболее подходящим интерфейсом для работы с реляционными данными, когда в приложении необходимы сложные структуры данных и аналитические запросы при умеренных нефункциональных требованиях (объемы хранимых данных, масштабирование, параллельная обработка, производительность).
Таким образом, современное предприятие с развитой ИТ-архитектурой все чаще сталкивается с необходимостью отхода от «единого золотого стандарта» применяемой СУБД (часто это БД компаний Oracle или Microsoft) и оказывается лицом к лицу с необходимостью обеспечивать инфраструктуру приложений в виде множества баз данных и хранилищ, в том числе класса NoSQL.
На уровне архитектуры приложений это ведет к появлению множества ранее недоступных возможностей по применению специализированных БД, что позволяет ускорять разработку, снижать стоимость сопровождения, обеспечивать принципиально новые возможности для бизнеса (если, конечно, новые возможности используются с умом). Например, использование кластерных БД с хранением в памяти (так называемых in-memory database, характерные представители — VoltDB или SAP HANA) может реализовать радикально отличающийся подход к решению задач бизнес-аналитики за счет ускорения вычислений на несколько порядков.
В свою очередь, на уровне технической архитектуры предприятия возникает необходимость работы с большим количеством разнородных БД, что значительно усложняет и удорожает все процессы ИТ-службы, требует переподготовки специалистов, приводит к усложнению задач управления, в том числе управления жизненным циклом используемых технологий.
Оптимальное решение перечисленных проблем должно сочетать, с одной стороны, возможность одновременного использования нескольких современных специализированных БД, а с другой — управляемость этой конструкции на уровне общей политики и технологической стратегии предприятия.

Воздействие внешних условий

Вторым существенным фактором, инициирующим процесс перемен в области технической инфраструктуры предприятия, является изменение коммерческих (или иных) условий поставщиков решений для предприятия. Особенно это касается РСУБД, с которыми прикладные бизнес-приложения зачастую оказываются связаны более тесно, чем с операционными системами, сетевым оборудованием или файловыми системами хранения.
При определенных условиях может возникнуть острая необходимость в замене РСУБД тех или иных поставщиков. В таком случае срочная замена БД во многих активно работающих бизнес-приложениях может оказаться чрезвычайно дорогим и сложным проектом, чреватым сбоями и простоями информационных систем, а как следствие — и бизнеса. Снять риск попадания в такую непростую для предприятия ситуацию могла бы постепенная и планомерная подготовка бизнес-приложений к смене СУБД в случае появления необходимости.

Потребность в модернизации и технологическом развитии

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

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

Концепция Data Access Layer

В данном разделе описывается общая концепция и принципы DAL, с помощью которых можно решить вышеупомянутые проблемы. Здесь концепция описана абстрактно и пока не связана с применением тех или иных технологий или программных продуктов.

Принцип управляемого специализированного хранения данных

Итак, разрабатываемая концепция должна отвечать поставленной проблематике:

  • обеспечивать возможность использования специализированных БД в ИТ-архитектуре предприятия одновременно с сохранением управляемости (например, за счет контроля их разнообразия и применения);
  • подготавливать бизнес-приложения к плавной и технологичной смене СУБД в случае обострения отношений с поставщиком СУБД или, возможно, из соображений технологической модернизации и технологического развития.

В основе концепции лежит принцип управляемого специализированного хранения данных, который вводит унифицированный и контролируемый способ доступа к различным данным для приложений (рис. 2).

Рис. 2. Принцип управляемого специализированного хранения данных
На уровне технологической политики предприятия определяется фиксированный набор классов данных, для которых в инфраструктуре предоставляются некоторые средства хранения. Каждый класс данных при этом предполагает специализированный интерфейс доступа (пока — на логическом уровне), оптимальный для данного класса. Например, для класса данных key-value интерфейс доступа должен предоставлять операции чтения и записи данных по ключу. А для класса данных «реляционная модель» интерфейс доступа представлен в виде некоторого фиксированного диалекта SQL.
Для каждого такого логического класса данных инфраструктура может предоставить средства хранения с разным уровнем обеспечения нефункциональных требований, который четко зафиксирован некоторым SLA (определяемым классом средств хранения).
Корпоративные приложения запрашивают и используют различные классы данных и соответствующие интерфейсы доступа, абстрагируясь от конкретных технологий, которые в данный момент реализуют тот или иной интерфейс. Управление доступом к различным БД предоставляется в контролируемом режиме, а приложение «не знает», с какой именно реализацией БД оно работает.
В результате, с одной стороны, приложение может использовать специализированные средства хранения, получая к ним доступ через четко определенный программный интерфейс. С другой стороны, если потребуется замена какой-то конкретной СУБД на аналогичную, не придется осуществлять серьезные переделки в приложении. В крайнем случае — относительно недорогая адаптация к мелким особенностям новой технологии без необходимости пересмотра архитектуры. Вся структура доступа к данным «приложения — различные СУБД» в масштабе предприятия становится наблюдаемой и контролируемой.

Ограничение способа доступа к данным на уровне программной архитектуры


Рис. 3. Ограничение способа доступа к данным на уровне программной архитектуры
Еще один важный принцип DAL связан с механизмом обеспечения выбранного способа доступа к данным для бизнес-приложений (рис. 3). Теоретически достаточно было бы зафиксировать ряд ограничений доступа к данным на уровне архитектурной политики предприятия и контролировать соблюдение этих ограничений при проектировании и разработке информационных систем.
Однако на практике такой контроль организовать достаточно сложно. Это требует от предприятия затрат времени дорогостоящих экспертов-архитекторов. При этом все равно не исключено, что производитель информационной системы по тем или иным причинам не выйдет за рамки оговоренного контрактом класса данных и SLA. Накопление таких прецедентов со временем приводит к тому, что приложение оказывается непереносимым на другую СУБД, несмотря на формально ограниченный интерфейс доступа к данным.
Решением этой проблемы может быть только жесткое отделение приложения от СУБД таким образом, чтобы приложение в принципе не получало прямого доступа к СУБД, а работало только через специализированный модуль доступа к данным — это и есть Data Access Layer. По сути, получается, что DAL фиксирует архитектурную политику предприятия в части доступа к данным на уровне программной архитектуры, что дает гораздо больше гарантий выполнения контракта класса данных по сравнению с фиксацией на уровне спецификаций и соглашений.
Для информационных систем, реализованных на разных базовых технологиях и требующих разных интерфейсов доступа к данным, реализации модулей DAL могут быть различными. Экземпляры этих модулей также могут быть различны для разных приложений, а могут быть общими — из соображений экономии ресурсов или, напротив, для обеспечения независимости функционирования систем. Но во всех случаях должен соблюдаться принцип непрямого доступа приложения к средствам хранения.

Вынос бизнес-логики из БД

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

Понятия

Этот раздел уточняет и детализирует модель объектов описания DAL, коротко введенную в предыдущем разделе.

Рис. 4. Понятийная модель концепции DAL
Концепция вводит несколько понятий (рис. 4):

  • класс данных;
  • средство хранения;
  • характеристика средства хранения;
  • класс средств хранения;
  • группа данных;
  • контейнер данных.

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

Класс данных

Определяет идеальную абстракцию данных, не зависящую ни от конкретных технологий, ни от ограничений реализуемости:

  • абстрактную («логико-математическую») модель самих данных (например, «набор реляционных отношений» или «набор пар ключ-значение»);
  • модель (или несколько моделей) доступа к данным и вычисления над данными (например, «реляционная алгебра» или MapReduce);
  • модель безопасности (например, «именованные контейнеры», «пользователи» и «права»);
  • модель структуры данных (например, «схема с описанием таблиц» или «перечень групп атрибутов»).

На уровне класса данных еще нет ни вопросов транзакционности, ни вопросов производительности, ни характеристик реализации типа in-memory. Бизнес-логика приложения реализована на основе определенного класса данных, и смена класса данных никак не может произойти без перепроектирования логики приложения.

Структура данных

Определяет структуру данных в некоторой модели (определяемой классом данных), специфичную для конкретного приложения: например, для реляционной модели — перечень таблиц, колонок, ключей.

Средства хранения

Конкретные имеющиеся на рынке или развернутые на предприятии средства хранения (различные виды БД) предоставляют возможности одного или нескольких классов средств хранения для нескольких классов данных.

Характеристика средства хранения

Представляет собой какую-либо значимую числовую, качественную характеристику или бинарный признак средства хранения:

  • производительность чтения/записи;
  • масштабируемость;
  • работа в памяти (in-memory);
  • ограничения;
  • специализация (например, Big Data или Fast Data);
  • поддержка ACID-транзакций и т. д.

Класс средств хранения (SLA)

В рамках одного класса данных группирует такой набор характеристик хранения, который, с одной стороны, часто востребован в приложениях, а с другой — обеспечивает альтернативную реализацию (средство хранения).
Для различных классов данных могут определяться разные SLA. Перевод данных приложения с одного класса хранения на другой может потребовать частичного перепроектирования, поскольку понадобится компенсация ослабевающих или пропадающих свойств SLA. Переделки также вероятны в случае необходимости выделения внутри приложения отдельной группы данных для размещения в другом классе данных или средстве хранения с последующей интеграцией этих данных с другими группами.

Группа данных

Данные в рамках конкретного приложения, по логике этого приложения принадлежащие к одному классу данных и требующие одного SLA; например, в приложении может быть выделена группа данных «справочники X», принадлежащая классу key-value и требующая быстрого чтения по ключу.

Контейнер данных

Идентифицируемый объем данных, хранимых с помощью некоторого средства хранения и соответствующих одной группе данных одного приложения. В ответ на запрос хранения данных для приложения выделяется один или несколько контейнеров данных.

Структура Data Access Layer

Данный раздел описывает принципиальное устройство программного обеспечения DAL, реализующего концепцию унифицированного доступа к данным. В описании структуры DAL рассматриваются в том числе и вопросы выбора и применения конкретных технологий и программных продуктов.

Функции и границы DAL в ИТ-ландшафте предприятия

Структура DAL — это набор программных средств, из которых может быть построен слой унифицированного доступа к данным в рамках ИТ-архитектуры предприятия, реализующий принцип «управляемого специализированного хранения данных» и фиксирующий его в жесткой форме программной архитектуры. DAL образует контролируемый «слой» между бизнес-приложениями и средствами хранения (базами данных) (рис. 5).

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

Принципы, применяющиеся при проектировании DAL

  1. Не ставится задача автоматического, безостановочного, не требующего затрат или мгновенного переключения работающей АС с одного средства хранения на другое. Проектировочные решения должны не полностью исключать (что долго и сложно), а существенно снижать зависимость логики приложения от средства хранения таким образом, чтобы значительно облегчить возможный переход. Нужно рассчитывать на разумный подход проектировщиков АС и понимание ими архитектурных принципов и целей, а потому не пытаться выстроить суперзащищенную техническую систему.
  2. При проектировании должны максимально использоваться готовые, уже существующие на рынке и стандартизованные средства и компоненты. Если предприятие хочет обеспечить максимальную независимость от вендоров, то предпочтительно использование Open Source продуктов и технологий, но только достаточно зрелых, с подобающим размером сообщества и примерами внедрений на ответственных предприятиях.
  3. Следует стремиться к простоте перевода существующих АС на DAL.
  4. Лучше наращивать возможности реализуемого DAL постепенно, итерационно. Первый шаг должен быть простым, дешевым и быстрым, направленным на решение наиболее актуальных задач (в частности, переносимость реляционных СУБД).
  5. Новый подход к управлению хранением может не ограничиваться техническими средствами, а включать, например, изменения в организационных механизмах предприятия в части управления инфраструктурой, а также в процессах проектирования и технического аудита АС.

Варианты размещения компонентов структуры DAL


Рис. 6. Варианты размещения компонентов структуры DAL
Структура DAL предполагает два варианта размещения модулей доступа к данным (рис. 6).

  1. В виде библиотеки, включаемой в состав приложения. В этом варианте необходима разработка разных видов модулей доступа для разных технологий разработки АС.
  2. В виде сетевого сервиса. Этот вариант предназначен для тех случаев, когда по каким-то причинам невозможна или нежелательна работа сервиса доступа к данным в виде библиотеки (например, ИС разработана на платформе, у которой нет библиотеки для работы с DAL). В таком варианте DAL доступен для любого приложения, способного работать с сетевыми сервисами по протоколу HTTP. Для этого способа размещения набор предоставляемых интерфейсов доступа к данным может быть ограничен.

Программные интерфейсы доступа к данным

Для реализации доступа бизнес-приложений к данным каждого класса следует отдавать предпочтение индустриальным стандартам и стандартам де-факто для программных интерфейсов доступа (API). Это позволит обеспечить не только максимально простую адаптацию существующих АС к работе с DAL, но и долгосрочную устойчивость слоя доступа к данным к последующим технологическим изменениям.
Программные интерфейсы доступа к данным (API), которые бизнес-приложения получают в пользование, могут различаться для разных базовых технологий приложений. Это оптимизирует разработку и соответствует стандартам де-факто для данной базовой технологии. Важно отметить, что такое разделение не нарушает общие принципы концепции унифицированного доступа к данным, поскольку — и это главное — сохраняется независимость приложения от конкретной используемой технологии БД. Например, для приложений, разработанных на Java, стандартным интерфейсом доступа к реляционным данным может быть принятый в Java-мире интерфейс JDBC, в то время как для приложений на C/C++ предоставляется интерфейс ODBC.

Ограничение диалекта SQL при работе через интерфейсы ODBC/JDBC


Рис. 7. Унификация и трансляция SQL
Для реляционных данных современные СУБД предоставляют большое количество специфических возможностей и диалектов языка SQL. Активное использование разнообразных инструментов в приложениях приводит к ухудшению их переносимости. Поэтому в рамках реализации DAL модуль доступа к реляционным данным на основе SQL должен специально ограничивать используемый диалект SQL таким образом, чтобы приложение в принципе не имело возможности завязаться на особенности конкретной СУБД (рис. 7).
Кроме задачи ограничения используемого диалекта возникает также задача трансляции отдельных синтаксических элементов SQL в диалект конкретной СУБД. Такая необходимость появляется из-за того, что некоторые общие и широко используемые в приложениях возможности РСУБД хотя и присутствуют в подавляющем их большинстве, но не входят при этом в стандарт SQL.

Модуль доступа к РСУБД для приложений Java

Исходя из изложенных выше принципов проектирования, первым и наиболее актуальным модулем для реализации DAL является модуль доступа к реляционным данным. Несмотря на то, что, как было описано в проблематике, все чаще корпоративные бизнес-приложения пользуются потенциальными преимуществами в использовании NoSQL-БД, реляционные БД остаются наиболее широко применяемыми и востребованными видами средств хранения (зачастую просто потому, что большое количество прикладного ПО уже разработано в расчете именно на РСУБД).
Напомним также, что для приложений, реализованных на разных базовых технологиях, с высокой вероятностью будет необходима разработка разных модулей доступа. В данном разделе описано устройство модуля DAL для приложений на Java. Эта технология широко распространена в крупных корпорациях и банках и отличается большим количеством устойчивых и поддерживаемых индустриальных стандартов, которые могут быть взяты за основу для разработки унифицированного интерфейса доступа к данным.

Интерфейсы доступа к реляционным данным

Для Java-приложений широко распространены два стандартных интерфейса доступа к РСУБД:

  • доступ напрямую к реляционным данным через интерфейс JDBC и язык SQL;
  • доступ посредством объектной модели через объектно-реляционный адаптер JPA (Java Persistence API).

На практике приложения используют комбинацию этих двух способов доступа. Для изменения данных и чтения одиночных объектов часто используется JPA, а для сложных отчетов и выборок — SQL-запросы, выполняемые напрямую через JDBC-соединение или посредством специальных входов в JPA (так называемые native queries).
Видится целесообразным в качестве унифицированного интерфейса доступа зафиксировать именно эти два способа в совокупности. При этом необходимо, как было указано выше, явно ограничить используемый в прямых запросах диалект SQL некоторым «унифицированным» вариантом, поскольку JDBC и JPA native queries позволяют выполнять произвольные запросы в синтаксисе произвольной СУБД.

Конструктивная реализация модуля DAL для Java

Итак, модуль DAL для доступа Java-приложений к РСУБД должен предоставлять интерфейсы JPA и JDBC, но при этом ограничивать использование SQL только его «унифицированным» вариантом, чтобы при необходимости обеспечить максимально оперативный перевод на другую РСУБД.
Разработку модуля с такими требованиями можно было бы произвести самостоятельно, но оптимальный вариант — использовать для этого готовые программные компоненты с близкой функциональностью. В нашей компании при реализации DAL в качестве такого компонента после анализа ряда имеющихся готовых продуктов был выбран продукт JBoss Teiid, изначально предназначенный для федерирования (виртуализации) доступа к данным в масштабах предприятия (рис. 8).

Рис. 8. Конструктивная реализация модуля DAL для Java
Описанным выше требованиям DAL соответствуют следующие функции и свойства JBoss Teiid:

  • предоставление интерфейса JPA для приложений Java;
  • предоставление интерфейса JDBC для приложений Java;
  • использование собственного унифицированного диалекта SQL (на основе стандарта SQL-99);
  • трансляция собственного диалекта SQL в специфические диалекты поддерживаемых БД;
  • наличие коннекторов к большинству используемых РСУБД и простая расширяемость;
  • возможность работы как в режиме встроенного модуля, так и в режиме сетевого сервиса;
  • открытые исходные коды (Open Source), возможность бесплатного использования в коммерческих целях, развитое сообщество и примеры внедрения в крупных предприятиях.

Кроме того, использование Teiid открывает следующие дополнительные возможности:

  • объединение баз данных путем создания так называемой «виртуальной БД» (virtual DB, VDB) в настройках с помощью визуального дизайнера. Подобная «виртуальная БД» ассоциируется с реальными средствами хранения (не только реляционными);
  • эффективное выполнение «кросс-запросов» — SQL-запросов к «виртуальной БД», которые автоматически транслируются в SQL-запросы к реальным БД;
  • кеширование результатов запросов к «виртуальной БД».

Примеры использования DAL

В рамках изучения возможностей миграции на PostgreSQL наша компания провела пилотный проект по переводу одной из ИТ-систем с Oracle на эту СУБД. Объектом стала расчетная бэк-офисная система, построенная по принципу трехзвенной архитектуры. Большая часть бизнес-логики (основные расчеты) ИТ-системы находилась на уровне сервера приложений, часть логики (бухгалтерский учет) — в хранимых процедурах Oracle. При проектировании данной ИТ-системы в архитектуру изначально был заложен принцип доступа к данным через Data Access Layer. Этот слой был построен на основе технологии JPA с реализацией Hibernate.
Поскольку миграцию нужно было провести в сжатые сроки и перенос логики компонента учета на PostgreSQL занял бы значительное время, решили сначала реализовать промежуточный вариант — гибридное хранение данных одновременно в Oracle и PostgreSQL. В Oracle осталась логика учета и необходимые для нее таблицы, а в PostgreSQL мигрировали остальные данные приложения. Перенос учетной части на PostgreSQL запланировали на второй этап миграции.
Для организации гибридного доступа было подготовлено решение на основе JBoss Teiid: создана «виртуальная БД», объединившая в себе доступ к таблицам PostgreSQL и хранимым процедурам и таблицам учетной части в Oracle. Это позволило системе обращаться к двум СУБД как к единой базе. Поскольку приложение работало через DAL, все эти тонкости для него были экранированы. Также на уровне DAL были выполнены доработки по преобразованию специфичных для Oracle SQL-конструкций в поддерживаемые Teiid выражения. Эти доработки касались только работы с данными и никак не затронули бизнес-функционал системы. После выполнения доработок система успешно прошла модульное и функциональное тестирование.
Техническим подробностям миграции баз данных с Oracle на PostgreSQL был посвящен недавний пост моего коллеги Максима Трегубова.
Также подход организации доступа к данным через DAL сыграл положительную роль при модернизации ряда приложений нашей компании. В ходе модернизации различные журналы работы приложений (журналы аудита, взаимодействия с внешними системами и др.) были перенесены в архивное хранилище на основе Hadoop. Остальные данные приложений остались в оперативной реляционной СУБД. Так как доступ к данным журналов осуществлялся через отдельный компонент со своим API, замена средства хранения не повлияла на остальную функциональность приложения и не потребовала существенных доработок.

Если предприятие хочет сохранить независимость от поставщиков конкретных решений для ИТ-инфраструктуры, то разработчикам ИТ-систем предприятия следует максимально абстрагироваться от специфики этих решений. Следование архитектурным принципам Data Access Layer позволит предприятию не быть заложниками проприетарных СУБД и выбирать наиболее подходящее по возможностям и стоимости решение для хранения данных. Помимо этого, у компании появится возможность использования новых технологий для работы с данными без значительных доработок АС.

ПРОИЗВЕДЕНИЯ В.И.ДАЛЯ

В марте 1819 года выпускник петербургского Морского кадетского корпуса восемнадцатилетний мичман Владимир Даль на пути из Петербурга в Москву записал в тетрадку первое слово для «Толкового словаря живого великорусского языка». С этого дня «Словарь» станет главным трудом его жизни, и за последующие полвека Даль объяснит и снабдит примерами около двухсот тысяч слов.
Происхождения Владимир Даль был нерусского: его отец — выходец из Дании, мать — из обрусевших немцев. Но, побывав в Дании во время учебного плавания на бриге «Феникс», гардемарин Даль окончательно убедился, что будет почитать своим отечеством только Россию.
Флотская служба мичмана Даля оказалась недолгой и не слишком удачливой. В начале 1826 года, решившись на перемену рода деятельности, он поступил на медицинский факультет Дерптского университета. Когда началась русско-турецкая война (в 1828 году), Даль досрочно защитил диссертацию на степень доктора медицины и отправился на юг в действующую армию. Был ординатором подвижного госпиталя, приобрёл славу искусного хирурга, а в польскую кампанию — неожиданную славу инженера. За наведение моста через Вислу император Николай Павлович наградил Даля Владимирским крестом с бантом. Однако и в военных походах записные книжки для «Толкового словаря» без дела не прозябали.
Между тем, в ноябре 1830 года в журнале «Московский телеграф» появилась повесть «Цыганка», подписанная — В.Даль, а в октябре 1832-го — книга «Русские сказки, из предания народного изустного на грамоту гражданскую переложенные, к быту житейскому приноровленные и поговорками ходячими разукрашенные казаком Владимиром Луганским. Пяток первый». За книгу, в которой директор канцелярии Третьего отделения усмотрел «насмешки над правительством», Казак Луганский, он же В.Даль, был арестован, но в тот же день, ввиду воинских заслуг, освобождён с извинениями.
Сделавшись известным литератором, доктор Даль не рискнул оставить службу и, произведённый в коллежские асессоры, 6 мая 1833 года был определён чиновником для особых поручений к оренбургскому военному губернатору.
18 сентября в Оренбург «прибыл нежданный и нечаянный» Пушкин, а на другой день Даль сопровождал его в поездке в Бердскую слободу, бывшую пугачёвскую ставку.
Даль не был Пушкину близким другом, но именно он, будучи в то время уже в Петербурге, неотлучно провёл около смертельно раненого Пушкина его последние часы 28 и 29 января 1837 года.
В 1841 году В.И.Даль — теперь статский советник — получил в столице новую должность. Управлял в министерстве внутренних дел Особенной канцелярией и прослыл «правой рукой» министра. Бывали дни, когда все писцы Особенной канцелярии занимались разборкой посылок с образчиками местных говоров и перепиской сказок, пословиц и поверий, во множестве доставляемых Далю отовсюду.
Бытописательные повести Казака Луганского шли нарасхват в столичных журналах — до тех пор, пока «Комитет для высшего надзора за духом и направлением печатаемых в России произведений» не заметил в одной из них (под названием «Ворожейка») некий зловредный намёк. Тогда министр предложил Далю на выбор: «Писать — так не служить, служить — так не писать». Даль выбрал службу, пояснив: «Времена шатки, береги шапки». Но из Петербурга вскоре перевёлся в Нижний Новгород — управляющим удельной конторы.
В Нижнем о нём много сплетничали, считали гордецом и чудодеем. Он собирал в своём доме местных врачей (между собой говорили будто бы по-латыни), записывал гимназические прибаутки, играл с гостями в шахматы, выточенные им собственноручно на токарном станке. Отправил в журнал «Русская беседа» письмо, в котором утверждал, что обучать крестьян грамоте преждевременно: ещё не заготовлены книги для народного чтения. Он сам такие книги и заготавливал: «Солдатские досуги», «Матросские досуги», «Два сорока бывальщинок для крестьян». Отслужив в Нижнем добрый десяток лет, Даль подал, наконец, в отставку.
В Москве в последнее десятилетие жизни В.И.Даль выпустил в свет сборник «Пословицы русского народа» и «Толковый словарь живого великорусского языка»; кроме того, составил и думал приложить к «Толковому словарю» словарики офеней (коробейников), костромских шерстобитов и петербургских мошенников. А.Н.Афанасьеву для знаменитого сборника «Народные русские сказки» Даль передал тысячу сказок, П.В.Киреевскому — записи песен, Публичной библиотеке — собрание лубочных картин.
Говорят, перед смертью он подозвал дочь и попросил: «Запиши словечко».

Светлана Малая

ПОЛНОЕ СОБРАНИЕ СОЧИНЕНИЙ: В 8 т. / В.Даль (Казак Луганский). — М.: Столица, 1995- .

ИЗБРАННЫЕ ПРОИЗВЕДЕНИЯ. — М.: Правда, 1983. — 448 с.: ил.
Книга знакомит читателей, знающих В.И.Даля как создателя «Толкового словаря живого великорусского языка», с В.И.Далем — автором бытописательных повестей, рассказов, очерков из народной жизни и переложений народных сказок.

БИКЕЙ И МАУЛЯНА: Повести, рассказы, очерк. — Челябинск: Юж.-Урал. кн. изд-во, 1985. — 384 с.: ил.
Восемь лет Даль прожил в Оренбурге, тысячи вёрст проехал по губернии, выучился башкирскому и казахскому языку, проведал обычаи, нравы и предания исконных народов и пришлых — уральских казаков. О том, что видел своими глазами, и о том, что слышал от бывалых людей, написал рассказы и повести.

ИЛЛЮСТРИРОВАННЫЙ СЛОВАРЬ ЖИВОГО РУССКОГО ЯЗЫКА: В 2 т. / . — СПб.: Нева; М.: ОЛМА-ПРЕСС, 2001.
Составители двухтомника Валентин Берестов и Наталия Александрова взяли из несметных сокровищ «Толкового словаря» одну сороковую часть. Если сравнить далев «Словарь» с чудесными хоромами, мастерски украшенными затейливой резьбой (князёк, причелины, серёжки, дымники…), то этот «Детский даль» — вход в хоромы через сени, выстроенные также с умением и любовью.

МАТРОССКИЕ ДОСУГИ: Рассказы / Сост., предисл., обраб. для детей и словарь Л.Асанова; Худож. Л.Фалин. — М.: Дет. лит., 1991. — 143 с.: ил.
Сборник «Матросские досуги» был издан в 1853 году и назначался для чтения матросам, набранным по рекрутскому набору со всех концов России. Неторопливо и занимательно ведёт В.И.Даль рассказ об устройстве Вселенной, движении Земли и Солнца, о разных случаях морских и более всего — о славной истории российского флота.

О ПОВЕРИЯХ, СУЕВЕРИЯХ И ПРЕДРАССУДКАХ РУССКОГО НАРОДА: Материалы по рус. демонологии. — СПб.: Литера, 1994. — 480 с.
ПОВЕРЬЯ, СУЕВЕРИЯ И ПРЕДРАССУДКИ РУССКОГО НАРОДА. — М.: Эксмо, 2003. — 732 с.: ил.
Собранные В.И.Далем поверья о домовых, водяных, кикиморах, оборотнях, русалках и привидениях, заговоры и приметы.

ПОВЕСТИ И РАССКАЗЫ. — М.: Сов. Россия, 1983. — 432 с.
А именно: трагикомическая «повесть в рисунках» «Похождения Христиана Христиановича Виольдамура и его Аршета», повесть «Цыганка», написанная по молдавским впечатлениям времён русско-турецкой войны 1828-1829 гг., и цикл рассказов «Картины русского быта».

ПОСЛОВИЦЫ РУССКОГО НАРОДА: Сб. В.Даля: В 3 т. — М.: Рус. книга, 1994. — (Живое рус. слово).
ПОСЛОВИЦЫ РУССКОГО НАРОДА. — М.: РИПОЛ КЛАССИК, 2001. — 445 с.: ил.
На титульном листе первого издания 1862 года было отпечатано: «Пословицы русского народа. Сборник пословиц, поговорок, речений, присловий, чистоговорок, прибауток, загадок, поверий и проч. В.Даля. Пословица несудима».

СТАРИК-ГОДОВИК: Сказки, загадки, пословицы, игры / Сост. И.Халтурин; Рис. В.Конашевича. — М.: Дет. лит., 1987. — 80 с.: ил.
СТАРИК-ГОДОВИК: Сказки, загадки, пословицы, игры / Сост. И.Халтурин; Рис. В.Конашевича. — М.: Дрофа, 2003. — 85 с.: ил. — (Сказка за сказкой).
Эта книга — для самых маленьких. Для тех, кому вслух читают сказки и побасенки и загадывают загадки, с кем разучивают игры, песенки и скороговорки. Например, такие:
«Бежит лиса по шесточку, лизни, лиса, песочку».
«Съел молодец тридцать три пирога с пирогом, да все с творогом».

ТОЛКОВЫЙ СЛОВАРЬ ЖИВОГО ВЕЛИКОРУССКОГО ЯЗЫКА: В 4 т. — Репринт. изд. — М.: Терра, 1995.
ТОЛКОВЫЙ СЛОВАРЬ ЖИВОГО ВЕЛИКОРУССКОГО ЯЗЫКА: В 4 т. — . — М.: Рус. язык: Медиа, 2006.
В «Напутном слове», прочитанном в Обществе Любителей Русской словесности в Москве 21 апреля 1862 года, Даль сказал о своём «Словаре»: «…Писал его не учитель, не наставник, не тот, кто знает дело лучше других, а кто более многих над ним трудился; ученик, собиравший весь век свой по крупице то, что слышал от учителя своего, живого русского языка».

ЛИТЕРАТУРА О ЖИЗНИ И ТВОРЧЕСТВЕ В.И.ДАЛЯ

Бессараб М.Я. Владимир Даль. — М.: Современник, 1968. — 288 с.: ил.
Матвиевская Г.П., Зубова И.К. Владимир Иванович Даль. — М.: Наука, 2002. — 530 с. — (Науч.-биогр. лит.).
Порудоминский В.И. Даль. — М.: Мол. гвардия, 1971. — 384 с.: ил. — (Жизнь замечат. людей).
Порудоминский В.И. Жизнь и слово. — М.: Мол. гвардия, 1985. — 222 с.: ил. — (Пионер — значит первый).
Порудоминский В.И. Повесть о «Толковом словаре». — М.: Книга, 1981. — 125 с.: ил. — (Судьбы книг).
Порудоминский В.И. Про Владимира Ивановича Даля и его словарь: Рассказы. — М.: Дет. лит., 1979. — 32 с.: ил.
Смирнов А.Е. Дар Владимира Даля: Кн. для внекл. чтения. — М.: Дрофа, 2005. — 175 с.: ил.

С.М.

>Владимир Даль

Биография

Владимир Иванович Даль появился на свет в Луганске 10 (22) ноября 1801 года. В те времена нынешний город Луганск носил название поселка Луганский завод. Будущий лексикограф, этнограф, писатель и военный врач родился в интеллигентной высокообразованной семье.

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

Владимир Даль в юности

Матерью Владимира Даля стала Мария Христофоровна Фрейтаг, на которой прославленный лингвист и врачеватель женился в Санкт-Петербурге. Мать Марии Даль много занималась русской литературой, переводила на русский язык труда Иффланда и Геснера и, кроме того, была одним из потомков французских гугенотов де Мальи. Отец Марии был коллежским асессором, и, по сути, именно он заставил будущего зятя получить качественное медицинское образование, поскольку филологию считал недостаточной для того, чтобы прокормить семью.

Владимир Даль в молодости

В семье Ивана и Марии Даль, помимо Владимира, родились также сыновья Павел, Карл и Лев, и дочери Александра и Паулина. Когда Владимиру было около четырех лет, вся семья отправилась в Николаев. Там Иван Матвеевич Даль, будучи старшим лекарем Черноморского флота, выслужил дворянство и получил возможность отправить своих детей на обучение в Петербургский морской кадетский корпус за счет государственной казны.

Образование

В ранние детские годы Владимир Даль получал домашнее обучение. Как и все дети именитой четы, он рано пристрастился к чтению и пронес любовь к печатному слову через всю свою жизнь. Когда мальчику было 13,5 лет, его отдали учиться в Петербургский морской кадетский корпус, из которого он вышел мичманом. В 1819-1825 годах Владимир Иванович служил на Черном и Балтийском морях.

Владимир Даль в молодости

Именно тогда он начал использовать свой литературный талант, причем весьма провокационным образом. Мичмана арестовали по подозрению в том, что он сочинял резкие изобличающие эпиграммы о связи главнокомандующего Черноморским флотом с еврейкой Лией Сталинской. По большей части именно из-за этого Владимира Даля из Николаева перевели в Кронштадт.

В 1826 году молодой писатель поступил на медицинский факультет Дерптского университета. При этом с финансами у новоявленного студента было весьма туго, и он начал подрабатывать, давая уроки русского языка. Во время учебы молодому человеку пришлось улучшить свои познания в латыни и даже овладеть философией. Впрочем, получать статус дипломированного врача ему пришлось уже в других условиях: из-за войны с турками, начавшейся в 1828 году, Даль сдал выпускные экзамены досрочно.

Военное время и госслужба

На протяжении всей войны 1828-1829 годов и последующей польской кампании, проходившей в 1831 году, Владимир Иванович Даль усиленно трудился на фронте как военный врач. Он спасал раненых, проводил блестящие операции в непростых условиях полевых госпиталей, а временами и сам участвовал в сражениях.

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

Владимир Даль на военной службе

В 1832 году было опубликовано произведение Владимира Даля «Русские сказки. Пяток первый». Сказки были написаны на простом, понятном каждому языке и представляли собой первую серьезную книгу Владимира Ивановича. Но, увы, из-за доноса на Даля произведение посчитали неблагонадежным, и весь нераспроданный тираж книги уничтожили. Самого автора арестовали и чуть не предали суду, но заступничество поэта Жуковского его спасло.

В 1833 году писатель получил пост чиновника особых поручений, работающего при военном губернаторе (Петровском В.А.) в Оренбурге. Далю удалось немало попутешествовать по Южному Уралу и собрать множество уникальных фольклорных материалов, которые он впоследствии положил в основу ряда своих произведений. В том числе, с использованием этих данных писатель впоследствии создал и издал «Естественную историю Оренбургского края».

Знакомство с Пушкиным

С Пушкиным Владимира Даля хотел познакомить все тот же Жуковский, однако писатель решил представиться поэту сам, преподнеся в качестве подарка один из немногих «выживших» экземпляров «Русских сказок». Подарок пришелся по вкусу прославленному поэту, и в качестве ответного презента Даль получил рукописную сказку «О попе и работнике его Балде», да еще и с дарственной подписью самого автора.

Памятник Владимиру Далю и Александру Пушкину в г. Оренбурге

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

Владимир Даль и Василий Жуковский

Впоследствии Даль присутствовал при смертельном ранении Пушкина Дантесом на дуэли и участвовал в попытках излечить поэта от полученной раны. В качестве последнего подарка умирающий друг подарил Владимиру Ивановичу свой талисман – золотой перстень с изумрудом.

Творчество

С 1841 по 1849 годы Даль проживал в Петербурге, работая секретарем Перовского Л. А., а затем и заведующим его особой канцелярией. В это время Владимир Иванович написал ряд «физиологических очерков», составил несколько интереснейших учебников по зоологии и ботанике, издал ряд статей и повестей.

Даля с давних пор интересовали пословицы, поговорки, фольклорные мотивы, предания. Когда писатель жил в Санкт-Петербурге, корреспонденты высылали ему подобные образцы народного творчества из разных уголков страны, но все же писатель чувствовал, что ему не хватает непосредственного контакта с народом.

Владимир Даль

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

Толковый словарь живого великорусского языка. Первое и последнее издание

В 1859 году вышедший в отставку Владимир Иванович Даль поселился в Москве и занялся публикацией своих долгоиграющих работ. В 1860-ых годах были изданы произведения «Пословицы русского народа» и «Толковый словарь живого великорусского языка». Последнее произведение широко используется и по сей день. Скончался писатель в 1872 году, в возрасте 70 лет. Он был предан земле на Ваганьковском кладбище.

Личная жизнь

В 1883 году Даль женился на своей первой супруге – Юлии Андре. В семействе родились дети: сын Лев и дочь Юлия. К сожалению, жена умерла раньше Владимира Ивановича, и в 1840 году он женился вновь: на Екатерине Соколовой. Она подарила супругу трех дочерей: Марию, Ольгу и Екатерину.

Владимир Даль с женой Юлией

Лев Даль впоследствии прославился как талантливый архитектор и исследователь отечественного деревянного зодчества. По его проектам в Нижнем Новгороде были возведены Церковь святых Космы и Дамиана и новый Ярморочный собор.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *