Использование модели скользящих слоев для обеспечения адаптивности корпоративной информационной системы
Автор: Зеленков Юрий Александрович
Статья в выпуске: 3 т.13, 2013 года.
Бесплатный доступ
Рассматривается вопрос обеспечения адаптивности корпоративной информационной системы (ИС), которая определяется как способность обнаруживать изменения в окружающей среде (например, изменения в функциональных требованиях) и эффективно реагировать на эти изменения. В качестве основного способа обеспечения адаптивности исследуется разделение системы на относительно слабо связанные модули, которые могут развиваться независимо. Корпоративная ИС рассматривается как комбинация нескольких слоев, которые существуют в различных масштабах времени, и связи между ними сведены к минимуму. Обсуждаются варианты разделения корпоративной ИС на такие слои, показано как этот подход дополняет более традиционные взгляды на ИС, базирующиеся на архитектуре предприятия, при проектировании адаптивных систем.
Корпоративная информационная система, разработка и эксплуатация информационных систем, модель скользящих слоев
Короткий адрес: https://sciup.org/147154902
IDR: 147154902
Текст научной статьи Использование модели скользящих слоев для обеспечения адаптивности корпоративной информационной системы
Современное предприятие ведет свою деятельность в условиях непрерывного возрастания неопределенности. Пять движущих сил, выделенных Майклом Портером (власть покупателя, власть поставщика, угроза появления на рынке новых игроков, угроза появления новых продуктов и сервисов, соперничество существующих конкурентов) [1], а также действия регуляторов, развитие технологий, изменение социальных приоритетов формируют условия для конкуренции, заставляют соперничающие фирмы постоянно искать новые модели. Существование компании в изменчивой внешней среде требует способности к адаптации и от самой фирмы. Наиболее часто адаптивность (в зарубежной литературе используется термин agility) компании определяется как способность организации обнаруживать изменения во внешней среде и эффективно реагировать на эти изменения [2].
Отметим, что устоявшегося русскоязычного термина, соответствующего английскому «agility», еще нет. Здесь и далее используется термин «адаптивность», предложенный в [3], хотя в отечественной литературе также встречается термин «гибкость», который скорее является переводом «flexibility». В зарубежной литературе между этими понятиями проводится четкая граница [4]: flexibility – это плановый ответ на изменившуюся ситуацию, agility – изменение фундаментальных принципов организации для обеспечения возможности изменяться в любом направлении.
Идея адаптивной организации вытекает из исследования роли случайности и непредвиденных обстоятельств в организационной теории. Результаты этих исследований [5] показали, что не существует единого универсального способа управления компанией, сам стиль этого управления зависит от ситуационных ограничений среды, в которой осуществляется деятельность. Таким образом, для поддержания эффективности организация должна все время адаптироваться к непредсказуемым изменениям.
Исходя из этих соображений, можно сделать вывод, что внедрение новых информационных систем (ИС), направленное на совершенствование операционных процессов, не должно препятствовать дальнейшему изменению этих процессов. Однако на практике с развитием системы повышается ее функциональность, сложность, ценность для бизнеса и снижается адаптивность (рис. 1). Поэтому очень важно иметь такие ИС, которые позволяют очень легко изменять процессы компании. В идеальном случае это должно происходить за счет переконфигурирования ИС, или, в крайнем случае, при помощи частичной замены некоторых старых модулей на новые. При этом необходимо избегать ситуации, когда потребуется полная замена ИС из-за ее несовместимости с новыми принципами работы, поскольку это ведет к значительным затратам.

Рис. 1. Изменение адаптивности и функциональности ИС в течение ее жизненного цикла
Так и м об ра зом, для э фф е к тивного использования ИС надо обеспечива ть у п ра в ляе му ю э в ол ю ц и ю с ис те мы [6] , кот ора я должна комбинировать непрерывное увеличе н и е е е ц е н н ос ти д ля би з н ес а с н е п рерыв н ым у в е ли чением адаптивности. Этому соответствует д в и же н и е на рис. 1 из точк и А в точк у B , в с е м од и фикации ИС при этом должны происходить в ра мк а х оп ред е л е н н ы х границ.
В раб оте [ 7] а в тором н ас тоящей статьи предложена модель адаптивн ой и н форм ац ион н о й си с те мы, в ы д е ле ны с п ос о б ы об ес п е че н и я а да п ти в н ос ти ( с реди к оторы х – распространение методов ги б к ой р а зра ботк и на к орпоративный уровень, использование технологи че с к их п ла т форм, сервис-о риенти ров а н н а я орга низация ИС), предложен метод измерения дос ти гну того у ров н я ад а п ти в н ос ти . Т е м н е мен е е , п робле ма с озд а н и я ад а п ти в н ых ИС требует дальнейших исследован и й . В час тн ос ти , н е об хо д и мо рассмотреть вопросы их проектирования, осо б е н н о в с лу ча е , к о гда корпоратив н а я ИС с трои т с я за с че т и н те г ра ц и и н е ск оль к и х п ре д м е тн о-ориентированных систем.
1. Модель скользящих слоев в строительстве
С а мы й про с той п уть к об еспечению адаптивности не только информа ц и о н н ой , н о и лю б ой другой системы – э то раз де ление ее на относительно слабо связанные мо д у ли , к оторые могу т р а з в и в а тьс я н ез ави с и мо. Поэ тому проблема проектирования и управления мод у льн ыми с и с темами с ад а п ти в н ым п ове д е ни е м я вляется центральной в исследованиях по тео ри и орг а н и за ц и и . Одн ак о, к а к отме че н о в р а боте [ 8], при этом собственно вопросу оптимального в ыд е л е н и я мод у лей у де ляе тс я ма ло в н и ма н и я . П ро ектировщики сложных систем имеют дело с че тырьмя видами решений:
1) разделение системы на «правильное» количество модулей;
2) «правильное» отображение параметров проектирования на модули;
3) «правильная» организация взаимодействия элементов внутри модуля;
4) «правильная» организация интерфейсов между модулями.
2. Модель скользящих слоев применительно к ИС
Общ е го ре ше н и я э той за да чи для систем любого вида, видимо, не сущес тв у е т. Те м н е м ене е , в н ек оторы х обла с тях челов е ческой деятельности достигнут определенны й у с п е х в форм а ли з ац и и раз де ле н и я с ис те мы н а модули. В частности, в строительстве и архитекту ре с уществует конц епц и я ск ол ьзя щи х с лое в ( sh e aring layers), выдвинутая британским архитектором Ф. Да ф фи , о сн ов н ое в н и ма н и е в с в оих ра б отах уделяющим гибкому использованию раб оче го п рос тр а н с тв а. Ши рок ую и звес тн ос ть э тот п одход получил после выхода книги С. Бренд а «Как обучается здан и е : что прои сходит п осл е того, к а к он о п ос тр ое н о » [ 9] .
Согласно этой концепции, здание рассматривается как комбинация нескольких слоев, которые существуют в различных масштабах времени, и обмен энергией, веществом и информацией между ними сведен к минимуму (табл. 1). Вследствие этого развитие таких слоев происходит автономно, без взаимодействия друг с другом. В быстрых слоях осуществляется поиск новых возможностей, медленные обеспечивают непрерывность, они служат инфраструктурой. Здание мо- жет адаптироваться к изменяющимся условиям, если обеспечено свободное «скольжение» слоев друг относительно друга, т. е. изменение быстрых слоев не затормаживается влиянием более медленных, и быстрые слои не деформируют медленные. Именно это обеспечивает максимальную адаптивность.
Таблица 1
Скользящие слои здания
Слой |
Описание |
Жизненный цикл |
Сайт (site) |
Географический пункт, местоположение в городе, юридически определенный объект, чьи границы и контекст превосходят время жизни сменяющих друг друга поколений зданий |
Вечно |
Структура (structure) |
Фундамент и несущие элементы, изменение которых либо невозможно, либо связано с очень большими затратами |
30–300 лет |
Наружная поверхность (skin) |
Внешние поверхности здания |
20 лет |
Сервисы (services) |
Рабочие «кишки» здания – кабельные коммуникации, электропроводка, системы пожаротушения, вентиляция, кондиционирование и отопление, движущиеся части, такие как лифты и эскалаторы |
7–15 лет |
Планировка (space plan) |
Элементы внутреннего интерьера – ненесущие стены, перегородки, полы, двери |
3–30 лет |
Оборудование (stuff) |
Стулья, столы, телефоны, кухонное оборудование, картины – все вещи, которые перемещаются ежедневно |
Изменяются постоянно |
Возможность применить аналогичную модель для описания адаптивных свойств информационной системы выглядит очень привлекательно, поскольку практика подсказывает, что элементы ИС также имеют различные жизненные циклы. Наиболее общий пример – различие между моделью данных и собственно данными. Данные изменяются постоянно, в то время как модель остается относительно стабильной долгое время. Ключевая проблема при создании аналогичной модели для ИС – выделение слоев, изменяющихся в разном масштабе времени, любой обмен между которыми минимален.
Авторы работы [10], рассматривая задачу управления требованиями при разработке программных систем, выделили четыре элемента, которые изменяются с разными скоростями. В порядке перечисления от наиболее стабильных элементов к более изменчивым это:
-
• Паттерны – элементы функциональности, которые остаются неизменными в течение значительного времени. Они инкапсулируют данные, базовые общие функции (такие, как add, find, get и т. д.) и основные функции, специфичные для конкретного домена данных, например, «зарезервировать» для паттерна «товар».
-
• Функциональные ограничения, которые связаны с поддержкой выполнения пользователями их задач, и остаются неизменными, пока не меняются бизнес-процессы.
-
• Нефункциональные ограничения, которые диктуются требованиями качества (например, время реакции, доступность и т. д.). Изменения этих ограничений не зависят от функциональности и возникают тогда, когда система перестает удовлетворять возрастающим требованиям по качеству, например, при увеличении числа пользователей.
-
• Бизнес-правила, которые меняются наиболее часто, т.к. именно они обеспечивают реакцию организации на изменения во внешней среде. Например, руководство компании может решить сократить нормативное время обработки заказа от покупателя с 1 дня до 4 часов.
Такая классификация слоев, безусловно, представляет практическую ценность, но она применима только к программным системам. Если мы обсуждаем корпоративную информационную систему как единое целое, необходимо расширить рамки рассмотрения.
Ко р по р ат ив ная ИС м о ж ет р ассматриваться как набор проблемно-ориентированных подсистем (E RP, PD M и др .), ко т о ры е р а ботают совместно и формируют единое целое. Каж дая по дсист ем а и ме ет с в я зи с рес у рс а ми и д р угими подсистемами, что приводит к сложному в з аи м оде й с тв и ю между ними. Можно вы д е ли ть три сети, обеспечивающие связь между си сте ма ми ( ри с . 2) [ 1 1]. Фи з и че ск ая с е ть с в языв а е т э лементы оборудования и обеспечивает передачу д а н н ых ме ж д у с истем н ы м и пл а тф орм ам и . П рограммная сеть предоставляет инструменты для тра н с форм а ц и и п е р едаваемых данн ы х в и н ф орма ц ию, которая совместно используется сотруд н и к а ми ор га н и за ц и и . С оц и а ль н а я се ть о б е с печи в а е т взаимодействие людей, которые также яв ляю тс я комп он е н том корпоратив н ой с и ст ем ы. Из ме нения в любой сети, вызванные внешними п ри чин ам и , дол жны сопровождаться с оотв е тств ую щими изменениями в других сетях. Поэтом у к ажд а я п о д с и с т е ма мож е т рас с ма т ри в а тьс я ка к с о с тоящ а я ми н и му м и з тре х час те й – техническое обеспечение, прог ра мм н ое о б ес пе че н и е и п ольз ователи. Отметим, что это близко к традицио н н ому п ре д с та в ле н и ю ар х итек т у ры п ре дп ри я тия [12] в ви де че ты ре х д ом е н ов ( б и зн ес -процессы, данные, приложения и техн ичес ка я а рхи те к ту ра [ 13] ), но в данном случае домен данных и приложе н и й объе д и не н в о д и н . К с о жале н ию , так о й та к сономии недостаточно, поскольку она не поз в оляе т в ыделить элементы с р а зли чн ыми ц иклам и и зме н е н и я.

Рис. 2. Подсистемы корпоративной ИС
Р аз в и ти е м э того п од хода в ИТ отрасли является широкое распростра не н и е в и рту а ли за ц и и . В осн овн ом, э то отде л е ни е с л оя программного обеспечения от техническо го. Э то позволяет неск оль к о у п рос ти ть п роц ес с ы развертывания и миграции приложений, но н а у п рощ е н и е и зме н ен и я с ам и х п ри ло же н и й ни к а к не в ли яе т.
Так ж е с л е д у е т за ме ти ть, что в большинстве организаций подсистемы проек ти ру ю тс я, ре а л изу ю тс я и опти ми зи ру ю тс я д ля реше н ия относительно локальных проблем, очень редко присутств у е т е ди н ый в з гл яд н а их с очетание как корпоративную систему. Это об ъяс н яе тс я те м, что не суще с тв у е т и н форма ц ионн ы х систем, способных обеспечить все потребно сти д ос та точн о к ру пной организации, приходитс я комбинировать продукты нескольких поставщ и к ов . В рез у ль та те п одс и с те м ы и с п ользу ю т ра зли чные форматы и семантику данных, созда ны с испол ьзов а н и е м р а з н ы х язык ов п рогра мм и рова ния, реализуют несогласованные модели биз н е с -процессов и требуют несовместимых про г ра м мных платформ. Все это приводит к пробле м е и н те гра ц и и . В [ 14 ] в ы д е ле н о п ять у ров ней ин те грац ии :
-
• н а уров н е орга н и за ц и и (согла сов а н и е ц е л е й );
-
• н а уров н е п роц е с сов (к оо рд и н а ц и я) ;
-
• н а уров н е п ри ложен ий ( ин те роп е рабе льн о с ть);
-
• на уровне данных (общее использование или data sharing);
-
• на сетевом уровне (физическая совместимость аппаратных платформ и операционных систем).
Каждая подсистема имеет собственное множество пользователей, которое может пересекаться с множествами пользователей других подсистем. Изменения требований пользователей являются одной из причин изменения подсистем, другая причина – это развитие технологий. Однако возможность изменений подсистемы ограничена необходимостью взаимодействовать с другими подсистемами. В результате изменение, возникшее в одной подсистеме, может повлиять и на другие и даже на всю корпоративную систему.
Поскольку каждая система развивается в контексте корпоративной среды, мы можем провести аналогию между информационной подсистемой в организации и отдельным зданием, контекст для которого определяет город. Для того чтобы определить скользящие слои информационной системы, рассмотрим функции компонент здания и выделим соответствующие компоненты в ИС.
Оборудование (stuff) используют работники организации («пользователи здания») для выполнения своих повседневных задач и достижения операционных целей. Проблемноориентированная подсистема корпоративной ИС предоставляет для этой цели такие инструменты, как формы, используемые для создания и манипулирования информационными объектами, и отчеты для консолидации и анализа данных. Этому слою принадлежат также бизнес-правила и нефункциональные ограничения, которые выделены в [10]. Интеграционный механизм на этом уровне – согласование операционных целей, которые в данном случае следует отличать от стратегических. Последние согласуются на уровне организации.
В слое планировки (space plan) создаются рабочие пространства, которые предназначены для совместного размещения организационных подразделений, рабочих групп, работников, выполняющих схожие операции, обеспечения им доступа к совместно используемой информации и изоляции их от других групп сотрудников и принадлежащих им информационных объектов. С одной стороны, рабочее пространство в корпоративной ИС создают персональные устройства (ПК, ноутбуки, планшеты и т. д.) с клиентским программным обеспечением, поддерживающим доступ к различным функциям при помощи меню, гиперссылок, панелей задач и т. п. С другой стороны, рабочее пространство связано с ролью пользователя, которая управляется системой контроля доступа. Функциональные ограничения, диктуемые необходимостью поддерживать выполнение пользователями их задач, должны рассматриваться на этом уровне. Интеграция здесь осуществляется на уровне координации процессов.
Слой сервисов (services) обеспечивает поддержку функционирования рабочих пространств (например, кондиционирование) и оборудования (например, телефонная сеть). Аналогиями в ИС являются элементы, формирующие ядро приложений: библиотеки, схемы данных, корневые объекты, паттерны в терминах статьи [10]. На данном уровне интеграционные возможности не выделяются, они полностью определены функциями следующего слоя.
Наружная поверхность (skin) определяет, как здание вписывается в общий архитектурный облик города, и как оно использует элементы городской инфраструктуры. В случае ИС можно сказать, что этот слой отвечает за репрезентацию подсистемы с точки зрения других подсистем, другими словами, за ее интеграцию в общее целое. Эти функции обеспечиваются интероперабельными свойствами системы, включая интерфейсы, протоколы, возможности интеграции с корпоративным ПО промежуточного уровня. Интеграционный уровень здесь либо интероперабельность приложений, обеспечиваемая использованием таких механизмов как промежуточное ПО, шины данных, либо простой экспорт–импорт данных.
Структура (structure) здания – это фундамент, несущие стены и другие силовые элементы, которые невозможно заменить за время существования здания. Они соответствуют технической инфраструктуре, которая формирует фундамент ИС. Это может быть: центр данных и его инфраструктура, основные серверы, системы хранения данных, ядро сети, СУБД, программные платформы (такие как Java и .Net). Интеграция соответствует сетевому уровню.
В случае ИС сайт (site) – это организация, которая формирует контекст для всех корпоративных систем, включая информационные, управленческие, систему распространения знаний и т. д. Все эти рассуждения обобщены в табл. 2.
Таблица 2
Скользящие слои информационной системы
Слой |
Компонент подсистемы ИС |
Компоненты программной архитектуры [10] |
Уровень интеграции [14] |
Сайт (site) |
Организация |
– |
Согласование стратегических целей |
Структура (structure) |
Аппаратные и программные платформы |
– |
Физическая гетерогенность |
Наружная поверхность (skin) |
Интеграционные возможности, включая ПО промежуточного слоя |
– |
Интеграция приложений, совместное использование данных |
Сервисы (services) |
Корневые объекты, фреймворки, схемы данных |
Паттерны |
– |
Планировка (space plan) |
Персональные устройства, рабочие пространства, меню, гиперссылки, списки задач |
Функциональные ограничения |
Координация процессов |
Оборудование (stuff) |
Формы для манипулирования объектами, отчеты для консолидации и анализ данных |
Нефункциональные ограничения, бизнес-правила |
Согласование операционных целей |
Предложенная модель скользящих слоев корпоративной ИС позволяет сделать несколько заключений о том, как ее подсистемы адаптируются к изменяющимся условиям. Изменения могут быть индуцированы бизнес-требованиями или новыми возможностями, которые предоставляет развитие технологий. Большинство новых идей появляется в наиболее изменчивых слоях – это «Оборудование» и «Планировка». Эти слои обеспечивают выполнение повседневных обязанностей, организуют размещение и предоставление доступа к соответствующим инструментам, формируют пространство для пользователей с одинаковыми функциями или в соответствии с бизнес-процессом. Именно за счет изменения этих слоев информационной системы осуществляется поиск и реализация новых возможностей. Однако надо заметить, что объекты слоя «Оборудование» (операционные цели, бизнес-правила, нефункциональные ограничения и, следовательно, формы и отчеты) меняются гораздо интенсивнее, чем объекты «Планировки» (процессы, функциональные ограничения, роли пользователей, рабочие пространства, персональные устройства). Это можно объяснить тем, что изменения первых вызываются, в основном, турбулентностью социальной составляющей организации. Эти изменения происходят ежедневно и непрерывно. Изменения вторых порождаются в большей степени появлением новых технологий. Основываясь на скорости появления новых персональных устройств, обновлении их операционных систем и соответствующих средств разработки, можно утверждать, что цикл изменений слоя «Планировка» составляет от 1 года до 3 лет.
Слои «Сервисы» и «Структура» значительно стабильнее, поскольку их изменения связаны с большими затратами, и технологии, которые являются основными драйверами изменений, также обновляются с меньшей интенсивностью. На основе истории развития инфраструктуры вычислений (мейнфрейм, миникомпьютер с терминалами, ПК в среде «клиент – сервер», персональное устройство в облаке) можно сделать заключение, что средний период значительных изменений в слое «Структура» – 15 лет. Минорные изменения «Структуры» (такие как появление новых версий серверных операционных систем или систем управления базами данных) могут происходить чаще, каждые 3–5 лет. «Сервисы» также зависят от технологий (COBOL, 4GL и реляционные базы данных, программные платформы) и достаточно стационарных бизнес-требований, реализованных как библиотеки и фреймворки. Скорость их изменения составляет примерно 5 лет.
Изменения «наружной поверхности» ИС определяются развитием таких технологий, как Message-Oriented Middleware (MOM), Enterprise Service Bus (ESB), Service-Oriented Architecture (SOA) и происходят каждые 5–7 лет.
«Сайт», который представляет организацию в целом, может существовать десятки или даже сотни лет. Ее цикл изменений гораздо больше, чем цикл информационных систем.
Заключение
Существует несколько традиционных способов рассмотрения сложных корпоративных ИС, которые строятся за счет интеграции предметно-ориентированных систем. Во-первых, согласно подходу, базирующемуся на архитектуре предприятия [12], выделяются домены (как правило, это бизнес-процессы, данные, приложения и технические компоненты [13]), которые могут рассматриваться относительно независимо. Во-вторых, каждая предметно-ориентированная подсистема (или приложение в терминах архитектуры предприятия), входящая в корпоративную ИС, может рассматриваться как набор функциональных компонент (СУБД, сервер приложений, подсистема безопасности и т. п.). В-третьих, очень часто выделяется специальная подсистема интеграции, основанная, например, на корпоративной шине данных, служащая для объединения предметно-ориентированных подсистем.
Здесь предложен дополнительный подход на основе выделения в корпоративной ИС слоев, изменяющихся с разной скоростью, причем эти слои могут объединять элементы, относящиеся к различным доменам архитектуры предприятия. Например, слой «Планировка» включает персональные устройства и средства навигации в приложениях, которые в архитектуре предприятия относятся к доменам «Техническая архитектура» и «Архитектура приложений» соответственно. Основная ценность предложенного подхода заключается в том, что он позволяет разделить требования, относящиеся к различным слоям подсистем. Соответственно, реализация этих требований также должна быть разделена, что в итоге обеспечит возможность независимого изменения слоев и, как результат, высокую степень адаптивности всей корпоративной ИС.
Список литературы Использование модели скользящих слоев для обеспечения адаптивности корпоративной информационной системы
- Porter, M. The Five Competitive Forces that Shape Strategy/M. Porter//Harvard Business Review. 2008. 1. P. 25-40.
- Newman, D. Achieving agility: how enterprise information management overcomes information silos/D. Newman, D. Logan. Gartner, Inc, 2006. ID Number: G00137817.
- Федюкин, В.К. Управление качеством процессов/В.К. Федюкин. СПб.: Питер, 2004. -208 с.
- Cunha, M.M. Agile virtual enterprises: implementation and management support/M.M. Cunha, G.D. Putnik. Hershey, PA: Idea Group Publishing, 2006. 381 p.
- Donaldson, L. The contingency theory of organization/L. Donaldson. London: Sage Publications, 2001. 326 p.
- Murer, S. Managed Evolution. A Strategy for Very Large Information Systems/S. Murer, B. Bo-nati, F.G. Furrer. Berlin: Springer, 2011. 264 p.
- Зеленков, Ю.А. Адаптивность корпоративных информационных систем/Ю.А. Зеленков//Вестник РГАТУ им. П.А. Соловьева. 2012. № 2 (23). С. 161-168.
- Ethiraj, S.K. Modularity and Innovation in Complex Systems/S.K. Ethiraj, D. Levinthal//Management Science. 2004. 50 (2). P. 159-173.
- Brand, S. How Buildings Learn: What Happens After They’re Built/S. Brand. New York: Viking, 1994. 243 p.
- Soo, L.L. Anticipating Change in Requirements Engineering/L.L. Soo, A. Finkelstein//Relating Software Requirements and Architecture/P. Avgeriou, J. Grundy, J.G. Hall, P. Lago, I. Mistrik (Eds.). Berlin: Springer, 2011. P. 17-34.
- Hevner, A. Design Research in Information Systems Theory and Practice/A. Hevner, S. Chatterjee. New York: Springer, 2010. 320 p.
- Zachman, J.A. A framework for information-systems architecture//IBM Systems Journal. -1987. 26 (3). P. 276-292.
- TOGAF Introduction. The Open Group Architecture Framework. http://www.opengroup.org/architecture/togaf8-doc/arch/
- Research Framework for Operationalizing Measures of Enterprise Integration/R.E. Giachetti, P. Hernandez, A. Nunez, D.P. Truex//Knowledge Sharing in the Integrated Enterprise: interoperability strategies for the enterprise architect/P. Bernus, M. Fox (Eds.). New York: Springer, 2005. -P. 237-247.