СИСТЕМА ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ ДИНАМИКИ ПРОЦЕССОВ В МЕЖКУЛЬТУРНОЙ КОММУНИКАЦИИ А.А. Шутов, старший преподаватель, Нижегородский филиал Государственного университета Высшей школы экономики А.А.
Долгов, ООО Теком, инженер исследователь О.Р. Козырев, к.ф м.н., профессор Государственного университета Высшей школы экономики Описаны архитектуры и методы реализации распределенной программной системы имитационного моделирования динамики процессов в межкультурной коммуникации.
В проекте разработаны теоретические основы математико информационного модели рования динамических процессов и описана реализация многоагентной распределенной имитационной модели.
Введение Для эффективного разрешения указанных выше проблем требуются информационно вычислитель сследователями в области социальной ди ные средства нового поколения на основе современ намики отмечается, что мировое сообще ных технологий компонентных и распределенных Иство переживает системный кризис, для вычислений. Они позволяют исследователям в обла которого характерны неравновесная динамика сти социально экономической теории и практики большинства систем и большое влияние бифурка проводить коллективную разработку и интеграцию ций. В таких условиях важнейшую роль при анали математических моделей вне зависимости от осо зе социально экономической ситуации, выборе бенностей программной реализации, с последую оптимальной стратегии развития играет всесто щей автоматизированной генерацией кода для про роннее математическое моделирование с учётом ведения численных экспериментов в различных влияющих факторов и активное использование системах имитационного моделирования.
вычислительных комплексов для проведения ими Нами в рамках различных проектов ведутся тационных экспериментов с альтернативными работы по созданию информационно вычисли сценариями. тельных систем имитационного моделирования.
Это приводит к необходимости организации Практическая реализация такой системы - резуль программной разработки систем имитационного тат общих исследований. Разработка единой си моделирования. Построенные математические мо стемной методологии необходима всем этапам дели должны обладать свойством переносимости математического моделирования, проектирования с одной системы моделирования на другую, уметь и реализации программного обеспечения.
объединяться с независимо созданными моделями из других предметных областей. Особые требова Описание проблемы ния предъявляются к моделям социальных и эконо Цель исследования проекта Система имита мических явлений. Они должны быстро интегриро ционного моделирования динамики процессов ваться с прикладными системами поддержки реше в межкультурной коммуникации - разработка ний, планирования и управления на уровне пред теоретических основ математико информацион приятия, региона или целой отрасли. ного моделирования динамических процессов 14 БИЗНЕС ИНФОРМАТИКА №1Ц2008 г.
в межкультурной коммуникации в форме многоа Разработка распределённой архитектуры взаимо гентной распределенной имитационной модели действия иммитационного сервера и клиентов и сопутствующего набора онтологий. Данная задача - продолжение исследований в области применения многоагентных методов мо Задачи: делирования на базе библиотеки SWARM. В преды построение функциональной, а затем и мате дущих работах проанализирован выбор програм матической модели;
мных продуктов для реализации клиентской и сер построение информационной (имитацион верной частей иммитационной системы.
ной) модели, связывающей разработанные Архитектура распределённой системы объеди математические модели с подтверждающими няет в себе: сервер, реализованный на Swarm, и фактическими данными. клиент, реализованный на Repast. Поэтому для на чала необходимо выбрать способ взаимодействия Оригинальной формой реализации информа этих составляющих в сети. В качестве такого спосо ционной модели является информационно логиче ба выбор остановился на архитектуре CORBA.
ская система, состоящая из: CORBA (Common Object Request Broker Archi подсистемы построения и хранения деклара tecture) - стандарт, применяющийся с 1991 г. Преи тивных описаний семантики математических мущество его в том, что он определяет, как прило моделей межкультурной коммуникации (банк жения будут взаимодействовать независимо от знаний по схемам);
того, где они запущены и на каком языке програм подсистемы генерации кода и сопровождения мирования они написаны. В действительности, жизненного цикла программного обеспече программист вообще не заботится о сетевом взаи ния для моделирования (автоматизированная модействии - необходимо лишь реализовать оди среда разработки);
наковые интерфейсы на взаимодействующих ма подсистемы настройки и управления проведе шинах - в нашем случае клиента и сервера (рис.1).
нием имитационных экспериментов (имита Object ционный сервер), объединяющей интерфей Impl сную и справочную подсистемы (Web портал).
Object Object Client Data Постановка задачи Interface Impl 1. Построить математическую модель и алго Object ритм семантического анализа онтологий.
Impl 2. Разработать распределённую архитектуру взаи модействия иммитационного сервера и клиентов.
3. Разработать средства для автоматического. 1. Общая программная архитектура распределенной системы создания иммитационных моделей.
Этот рисунок отображает стандартное трехуров Описание реализации невое устройство архитектуры клиент сервер. Дан Основное содержание проведённой работы: ная архитектура состоит из трёх типов объектов:
1. Разработаны проект серверной части CORBA клиент, объект и источник данных. Источник дан интерфейса к имитационному серверу на основе ных выступает в роли сервера, причём нам неваж системы SWARM, проектная документация и набор но, как устроен внутри этот объект.
прототипов клиентских приложений с CORBA Клиент и сервер в нашем случае написаны интерфейсом к имитационному серверу. на разных языках программирования. В случае 2. Построена математическая модель и алгоритм использования CORBA определение интерфейса семантического анализа онтологий;
выбраны про происходит независимо от его реализации. Поэто граммные технологии для практической реализа му один интерфейс может быть реализован на раз ции. Результаты исследований представлены на ных языках, и в каждой реализации объекты будут международной конференции Кограф 2006, (Ни обращаться не к объектам, а именно к базовому ин жний Новгород, ноябрь 2006 г.) и опубликованы терфейсу (см. рис.2) в трудах конференции. Для написания интерфейсов используется спе 3. Проведён сбор и предварительная подготовка циальный язык IDL (interface definition language), материалов для методического пособия по созда предоставляющий базовые средства для объектно нию имитационных моделей в системе SWARM. ориентированного дизайна интерфейса. В рамках БИЗНЕС ИНФОРМАТИКА №1Ц2008 г. В итоге наше клиент сервер приложение име Interface ет следующую архитектуру (рис. 3):
Object Object На этой схеме представлено, по какому принци A B Implementation пу могут взаимодействовать два приложения, напи санные на разных языках программирования, вне зависимости от архитектуры сети, от логики серве C + + Java Interface Interface ра или клиента.
Более подробная спецификация архитектуры. 2. Принципы абстракции на уровне интерфейса сервера и клиента разработана с применением язы ка UML (рис. 4). Описание классов представлено в модели для всех использующихся классов реализо табл. 1.
ваны интерфейсы на этом языке. Схематично взаимодействие клиента и сервера Однако написанные интерфейсы не имеют ко представлено на рис. 5.
нечного применения в сетевом приложении. На этой схеме представлено, по какому принци Необходимо выбрать так называемый ORB. (Object пу могут взаимодействовать два приложения, напи Request Broker) - вспомогательный объект, кото санные на разных языках программирования, вне рый берёт всю работу по общению с сервером на се зависимости от архитектуры сети, от логики серве бя. С одной стороны, ORB работает с нашим при ра или клиента. Схема взаимодействия описывает ложением, с другой, - с сервером, на котором хра ся следующими пунктами:
нятся разделяемые сервером и клиентом объекты.
В данной работе использовался JacORB - один из многочисленных свободно распространяемых Описание классов ORBов, который предоставляет средства для напи сания сетевых приложений на языке программиро Название класса Описание вания Java 2. В поставляемый архив с JacORB вхо дит средство для процедуры, называемой language Конечный объект, который принимается mapping - это генерация кода на основе написан клиентом в сетевом приложении. Наследу RemoteWholesaler ного IDL описания. После проведения данной про ет ряд интерфейсов, необходимых для цедуры у нас получился набор файлов, которые JacORB.
впоследствии могут использоваться сервером или клиентом. Нас интересуют файлы для клиента. По Данный интерфейс генерируется основы сле генерации и добавления нескольких классов, ваясь исключительно на IDL файле. Здесь RemoteWholesaler получилась следующая архитектура (см. рис. 3). описываются весь набор методов, которы Operations Данная архитектура позволяет адаптировать объек ми должен обладать объект, передающий ты, приходящие по сети от SWARM сервера к вну ся по сети.
тренним структурам нашего приложения, отвечаю щим интерфейсам Repast. Данные классы используются внутренне IDLEntiy, Object После написания интерфейсов на IDL необхо ORBом, их реализация нас не интересует.
димо спроецировать эти интерфейсы на конкрет ные языки программирования. Это необходимо, Адаптер сетевого объекта к внутренним ин чтобы ORBы могли взаимодействовать со вспомога терфейсам. Экземпляры этого класса ис WholesalerAdapter тельными объектами, реализованными на конкрет пользуются в Repast модели в клиентском ном языке программирования. Для этого использу приложении.
ется процедура, называемая language mapping.
. 3. Укрупнённая архитектура распределённой имитационной системы 16 БИЗНЕС ИНФОРМАТИКА №1Ц2008 г.
RemoteWholesalerOperations RemoteCustomerOperations RemoteProducerOperations +getWholesalerD() : long +getX() : long +getCurrentMoney() : long +getX() : long +getY() : long +getQuantity() : long +getY() : long +getCustomerID() : long +getCustomerID() : long +getPrise() : long +getAlive() : long +getTechLevel() : long +getQuantity() : long +getSatiety() : float +step() : void +getCurrentMony() : long getCurrentMoney() : float +getAverageSaleVolume() : long +getMaxSatiety() : float +buyHere() : float +getDaylylncome() : long +DrawSelfOn(in : RemoteRaster) : void +getTotalShare() : float WholesalerAdapter +isCellBusy(x : int, y : long) : long +step() : void RemoteWholesaler RemoteCustomer CustomerAdapter +step() : void RemoteProducer ProducerAdapter org.omg.CORBA.portable.IDLEntity org.omg.Corba.Object +step() : void. 4. Часть архитектуры клиентского приложения, отвечающая за сетевое взаимодействиe.5. Взаимодействие Repast клиента и Swarm сервера БИЗНЕС ИНФОРМАТИКА №1Ц2008 г. 1. Имеется модель, нагруженная логикой. Здесь Очевидное решение - создание системы моде реально происходит взаимодействие моделируемых лирования - позволило бы описывать модели в тер агентов по некоторым принципам. В нашем случае минах предметной области и берущей всю работу это модель, написанная на SWARM. по созданию работоспособного кода на себя.
2. Все объекты модели должны предоставлять Для описания модели должны быть разработаны интерфейсы для ORBа - для возможности обмена специальные инструменты визуального моделиро данными с сервером имён. Сервер имён - своего вания, предполагающие работу на уровне логики рода база данных, где реально хранятся моделируе модели. Примером подобного инструмента может мые агенты, и прочие объекты. служить редактор диаграмм с поддержкой объектов 3. Клиентское приложение обращается к серве мета мета модели, позволяющий получить на вы ру имён с целью получить доступ к данным удалён ходе полное и непротиворечивое описание модели.
ной модели. Они поступают в это приложение Более общая задача - создание подхода к модели в виде экземпляров классов, таких как вышеопи рованию, в который вписывается широкий класс санные RemoteWholesaler, RemoteCustomer и Re моделей.
moteProducer. Подобный подход - развитие модельно ориен 4. При помощи объектов адаптеров данные уда тированного метода разработки программного лённой модели поступают в локальную модель. обеспечения с применением специализированной Адаптированные объекты могут использоваться ло социально экономической мета мета модели, со кальной моделью точно так же, как если бы это бы держащей набор базовых концепций, в терминах ли не объекты, передаваемые по сети, а обычные которой можно определить мета модель - описа локальные объекты. ние конкретных видов объектов, возникающих 5. Локальная модель при помощи собственных в модели. Таким образом, уровень модели должен средств отображает на экране клиентского прило описывать лишь конкретные характеристики кон жения результаты выполнения удаленной модели. кретных экземпляров объектов.
Таким образом, разработаны IDL, и на их осно ве сгенерированы CORBA объекты, адаптирован Постановка задачи ные к новой модели для системы Repast. Новая мо В процессе этого этапа исследований необходимо:
дель Repast вместо того, чтобы брать вычислитель 1. Создать систему моделирования, которая по ную нагрузку на себя, обращается к ORB, который зволяла бы описывать широкий класс моделей берёт данные с другой машины сети, выполняющей в терминах, близких к предметной области.
все вычисления. 2. Разработать инструменты визуального моде лирования.
Сбор и предварительная подготовка материалов 3. Сделать возможной генерацию полнофунк для методического пособия по созданию имитацион ционального кода по описанию модели.
ных моделей в системе SWARM Сама постановка задачи предполагает разбиение Данная задача - продолжение исследований работы на три компонента - разработка подхода в области применения многоагентных методов (мета мета модели), разработка инструментов мо моделирования на базе библиотеки SWARM. делирования и разработка средств генерации кода.
В предыдущих работах создана тестовая модель со Наиболее существенным представляется первый циально экономической динамики и показана раздел. Именно здесь закладываются основопола применимость агентного подхода к экономическо гающие принципы, на которых базируется вся му моделированию. (Исследовательский проект дальнейшая работа.
06 05 0021).
В ходе проектирования и реализации прототи Описание подхода пов, выполнения имитационных экспериментов В рамках данной работы разработан подход, выявлено несколько недостатков обычного подхо способный описать широкий класс моделей со да, предусмотренного библиотекой SWARM. Это: циально экономической динамики. При создании необходимость разработки больших объёмов исследовательского прототипа решено ограничить однообразного кода;
ся базовым набором объектов.
описание модели в терминах, достаточно да лёких от предметной области;
Agents для неспециалиста процесс разработки моде Агенты (Agents) - базовый элемент модели.
ли весьма сложен. Агентом является любая сущность, обладающая 18 БИЗНЕС ИНФОРМАТИКА №1Ц2008 г.
некоторыми характеристиками, состояниями и по Важно то, что агент содержит в себе всю необходи ведением. Примерами агентов могут служить поку мую информацию о том, как он может перемещаться патели, продавцы, производители и т.п. в том или ином пространстве, однако непосредствен Характеристики агентов - описание данных, ным перемещением занимается глобальный объект, которыми оперирует агент, информация о том, контролирующий корректность перемещения (см.
в каких пространствах агент обитает, информация ниже - в описании алгоритма агентов).
о выполнении агентом тех или иных действий, опи сание алгоритма поведения агента и т.п. Resources Ресурс (Resource) - это то, что не может возни Contracts кнуть лиз ниоткуда и не может никуда исчезнуть.
Контракты (Contracts) - мощный механизм При взаимодействии агенты могут передавать взаимодействия агентов. Контракт - набор дей ресурсы друг другу. Все случаи изменения общего ствий, которые должны быть предприняты подпи количества некоторого ресурса (например, произ савшими его агентами при осуществлении некото водство или переработка) в модели должны быть рых условий. Рассмотрим простейший контракт чётко определены. Таким образом, необходимо, между продавцом и покупателем. Продавец предла чтобы управлением ресурсами занимался отдель гает контракт по приобретению некоторого товара ный глобальный объект, могущий контролировать по некоторой цене. Имеем следующие действия: корректность всех операций с ними.
Описанные объекты мета мета модели в сово 1. Покупатель должен передать продавцу опре купности дают мощный подход для создания моде делённое количество денег. лей. Очень широкий класс взаимодействий может быть описан в данных терминах.
2. Если покупатель передал нужное количество денег, продавец должен передать покупателю соот Программная реализация прототипа ветствующее количество товара. При разработке системы использованы следую щие программные средства:
3. Если продавец не может по тем или иным 1. Среда разработки Eclipse. Кроме непосред причинам передать нужное количество товара, он ственной разработки программного кода, которая обязан вернуть деньги. осуществлялась в этой среде, данная система ис пользуется как платформа для создания редактора Мы видим, что контракт состоит из набора дей моделей.
ствий, для каждого из которых можно сформулиро 2. Graphical Editing Framework (GEF) - plug in вать пред и постусловие. Алгоритм выполнения для Eclipse, позволяющий создавать редакторы дву каждого действия должен быть четко определён для мерных схем и диаграмм. Обобщенный подход, и соответствующего агента. большое количество реализованных стандартных Таким образом, наша мета мета модель должна функций позволяют без лишних затрат создавать содержать условие (Condition), действие (Action) полнофункциональные редакторы, являющиеся и контракт (Contract). Условие (Condition) - любой совместимыми (native) с Eclipse.
объект, который можно проверить, т.е. который 3. SWARM - набор библиотек для агентного имеет метод ответа на вопрос: да/нет. моделирования. SWARM является набором библиотек, написанных на языке Objective C, слу Areas жащих основой для разработки сложных мульти Необходимо также определить физические ас агентных систем. Этот пакет в свободном доступе пекты взаимодействия агентов. В рамках данного выложен в сети по адресу подхода агенты живут, двигаются и взаимодейству С использованием перечисленных средств реа ют в одном или нескольких пространствах (Areas). лизован программный прототип системы имита Пространство - это некоторая структура, в которой ционного моделирования, работающий в среде можно выделить набор позиций. На данный мо Cygwin под управлением ОС Windows XP.
мент поддерживается лишь двумерное целочислен ное пространство, однако существующий прототип Описание системы может быть достаточно легко расширен. Простран Разработанная система состоит из редактора мо ствами могут служить графы, различные многомер делей, генератора кода и набора шаблонных файлов.
ные структуры и т.п. Общий вид работы системы изображён на рис. 6.
БИЗНЕС ИНФОРМАТИКА №1Ц2008 г. Eclipse Model Model Swa Model rm. 6. Общий вид работы системы Как видно из схемы, первый этап работы над Редактор позволяет создавать следующие объекты:
моделью - создание описания модели в визуальном редакторе. Далее генерируется файл описания Agent. Объект Agent имеет следующие харак модели, который содержит исходные данные для теристики:
генератора кода. После создания кода модель ком Name - название объекта;
пилируется и запускается. Color - цвет, которым объект отобража Редактор моделей представляет собой plug in ется при визуализации;
для среды разработки Eclipse (см. рис.7) Number - число объектов данного типа;
Areas - информация о том, в каких про странствах данный агент обитает.
Атрибуты:
mobility - подвижность агента (какое максимальное расстояние он может пройти за один ход);
sight - поле зрения агента, т.е. на какое расстояние он видит.
Зависимость агента от пространства визуализи руется также соединяющей линией.
Fields - поля данных агента. Вводятся в фор мате.
Поле имеет тип и имя. Поля отображаются так же на схеме. Если имя поля начинается с подчёрки. 7. Редактор моделей вания, это сигнал генератору, что необходимо по строить аггрегированный график по всем агентам На рис. 7: данного типа. Кроме того, автоматически создают 1. Кнопки запуска модели/генерации описания. ся методы доступа к полям, например, для поля 2. Палитра объектов. Здесь представлены объек Money создадутся методы getMoney, setMoney, ты, которые можно создавать в редакторе. incMoney и decMoney.
3. Редактор свойств объектов. Здесь можно из менить свойства выделенного объекта. Algorithm - алгоритм поведения агента, кото 4. Окно редактирования, в котором отображается рый вызывается на каждый такт.
текущее состояние модели.
20 БИЗНЕС ИНФОРМАТИКА №1Ц2008 г.
Пример: После создания модели можно сгенерировать Money++;
файл описания модели.
Satiety ;
Запускается модель, генератор, создаётся про if (lastVisited == nil) граммный код. Он компилируется и запускается.
lastVisited = [@Area getAnyWholesalerNot: nil];
Если на каком то этапе происходит сбой, выводит if ([@Area near: self To: lastVisited]) ся сообщение об ошибке.
{ Выходные данные у редактора моделей - это if (Satiety < 0) файл описания. Далее начинает работу генератор ко { да. Эта система устроена следующим образом. Внача int amount = ( Satiety + 100);
ле считывается файл описания модели. Вся инфор int price = [lastVisited getPrice];
мация о модели сохраняется в специальных структу [lastVisited incVolume: amount];
рах (Data Storage). После этого шаблонные файлы Satiety = 100;
дополняются необходимым кодом. Шаблонные фай Money = price * amount;
лы - код на Objective C с пометками, указывающими } генератору, куда необходимо вставить недостающие lastVisited = [@Area getAnyWholesalerNot: nil];
куски кода. Это осуществляется объектом Incutter. Ге } нератор реализован на языке C. Общий вид работы генератора кода представлен на рис. 8.
[@Area go: self To: lastVisited];
Model В описании алгоритма могут использоваться Swarm глобальные объекты, а также поля объекта.
Model Sources Actions - информация о том, как данный Incutt агент выполняет действия (Actions). На дан ный момент не поддерживается.
Area. Объект Area имеет следующие характе ристики:
Data Templat Name - название объекта.
Dimensions - размерность пространства (на данный момент поддерживаются. 8. Работа генератора кода только двумерные пространства).
Display - включена или отключена визуа Дальнейшее развитие лизация пространства. Разработанный прототип не поддерживает ряд Tangibility - лосязаемость пространства. концепций, предполагаемых подходом. Однако он В частности, могут ли два объекта нахо достаточно легко расширяемый. Наиболее перс диться в одной точке. пективные пути усовершенствования системы:
Distance - способ расчёта расстояния. На 1. Расширение и усложнение методов, предоста данный момент поддерживается только вляемых глобальными объектами, чтобы они могли евклидова мера. взять на себя б ольшую часть рутинной работы, пре X Size, Y Size - размеры пространства доставляя возможность работать непосредственно над логикой модели.
Action. Объект Action имеет следующие харак 2. Внедрение новых глобальных объектов, помо теристики: гающих при моделировании.
Name - название объекта. 3. Разработка более гибкого подхода к взаимо Participants - информация об участниках. действию агентов, например, чтобы агенты могли запоминать информацию о конкретных экзем Condition плярах других объектов.
Name - название объекта. 4. Реализация всех остальных концепций, пред Participants - информация об участниках. полагаемых подходом - контракты, действия, ре Value - возвращаемое значение. сурсы.
БИЗНЕС ИНФОРМАТИКА №1Ц2008 г. Результаты удалённым пользователям удобный интерфейс для 1. Разработана распределённая архитектура си самостоятельного расширения возможностей взаи стемы иммитационного моделирования. Сервером модействия с системой, обладающая развитыми является система SWARM реализованная на языке средствами автоматизированной разработки и ана Objective C, а клиентское приложение реализовано лиза имитационных многоаспектных моделей.
в системе Repast на языке Java. Задача, решаемая в данном проекте, состоит 2. Реализованы алгоритмы интеграции и класте в построении методологии моделирования и про ризации знаний на основе онтологий. граммной архитектуры распределённой информа 3. Разработаны система моделирования, для ционно вычислительной системы для генератив описания моделей в терминах предметной области ного описания и изучения многофакторных моде и инструменты визуального моделирования. Реали лей социальной динамики. Эти функции эффек зована генерация полнофункционального кода по тивно реализованы на основе развития принципов описанию модели. Разработанная система суще многоагентного моделирования и средств распре ственно облегчает разработку моделей с использо делённого программирования в стандарте CORBA.
ванием SWARM. Код, сгенерированный данной си Критически проанализированы архитектура стемой, можно использовать в качестве основы для распределённых вычислений CORBA и технология дальнейшей модернизации и создания более слож мобильных программных агентов с их последую ных моделей. Несмотря на то, что реализованы не щей специализацией для решения задач имита все концепции, главная задача выполнена - реали ционного моделирования динамических процессов зованная система позволяет абстрагироваться от в сложных социально экономических системах.
низкоуровневых аспектов моделирования и скон Результатом является достижение следующих целей:
центрироваться на разработке логики модели. создание новой методологии построения распределённых систем имитационного моде Выводы лирования на основе совместного примене Разрабатывается одно из наиболее перспектив ния CORBA и многоагентных систем;
ных направлений в теоретических и прикладных разработка новых математических моделей исследованиях сложных социальных систем - и алгоритмов масштабируемых вычислитель многоаспектное математико информационное ных экспериментов на моделях социальной моделирование, воплощённое в форме распределён динамики в локальных сетях.
ных имитационных систем на основе парадигмы взаимодействия индивидуальных сущностей (indivi Работа выполнена при финансовой поддержке dual based systems). Построена единая информацион гранта РФФИ 07 07 00058.
но вычислительная система, предоставляющая Литература 1. А.А. Шутов, Г.А. Баутин, И.В. Куркина. Реализация экономической модели в распределенной системе моделирования. // Известия АИН им. А.М. Прохорова. Бизнес информатика. 2005. Т.12.
2. Object Management Group // www.omg.org 3. Common Object Request Broker Architecture // материалы с сайта www.omg.org 4. ORBit // материалы с сайта resource.sourceforge.net/ и 5. Recursive Porous Agent Simulation Toolkit // материалы с сайта 6. Swarm Development Group 7. R. Andrew McCallum The GNU Objective C Language Manual c_toc.html 8. 9. The Objective C Programming Language, 2002, 2004 Apple Computer, Inc. ObjectiveC/ObjC.pdf 10. Чепурин М.Н., Кисилева Е.А. Курс экономической теории ЦМ.: АСА, 2002.
11. Сидорович А.В. и др. Курс экономической теории. Общие основы экономической теории. Микроэкономика. Макроэкономика. - М.: ДИС, 2001.
22 БИЗНЕС ИНФОРМАТИКА №1Ц2008 г.