Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Интеграция с базами данных




Внешние базы данных могут быть использованы для параметризации моде­лей, чтения больших объемов исходной информации для модели (например, таблиц маршрутизации), записи результатов моделирования и т. п. Техниче­ски есть два способа организации взаимодействия модели и базы данных. Можно использовать интерфейс JDBC, который основан на спецификациях SAG CLI (SQL Access Group Call Level Interface, интерфейс уровня вызова группы доступа SQL). Начиная с версии JDK 1.1, в поставке стандартных библиотек появился пакет классов java.sql, обеспечивающий набор функ­ций, необходимых при разработке ODBC-приложений. В этом пакете со­держится множество классов, позволяющих выполнять хранимые процеду­ры, возвращать результаты запросов и т. д. JDBC, в свою очередь, работает через ODBC или через прямые связи к базам данных.

Второй способ организации взаимодействия моделей и баз данных — использова­ние встроенного в AnyLogic Engine класса com.xj.anylogic.Datasource. Этот класс работает поверх JDBC и предоставляет методы, позволяющие сокра­тить объем необходимого для доступа к данным кода. Общая схема доступа к данным представлена на рис. 11.1.

Опишем последовательность действий, необходимых для чтения данных из книги Excel. Во-первых, необходимо создать собственно файл XLS с дан­ными и организовать доступ к этим данным с помощью SQL-запросов из


модели. Для возможности адресации части листа в пределах книги Excel используется понятие именованных диапазонов. Необходимо заполнить часть листа данными в формате таблицы. Затем, используя Insert | Name | Define, нужно задать имя этой области листа. После того, как XLS-файл с данными подготовлен, в модели необходимо создать новый источник дан­ных MyDataSource и связать этот источник данных с файлом XLS. Вся даль­нейшая работа с добавленным источником данных организуется через API класса DataSource. Например, представленный далее код выбирает значение параметра (столбец value) из именованного диапазона ParametersTabie, где имя параметра (Name) имеет значение Arrival Rate. String s = MyDataSource.getvalue(

"SELECT Value FROM ParametersTabie WHERE Name = 'Arrival Rate1;"); //преобразовываем строку в число arrivalRate = Double.valueOf(s).doubleValue();

Для записи результатов также используются SQL-запросы. Например, пред­ставленный далее код добавляет в лист с именем Results данные о клиенте и его времени пребывания в системе.

MyDataSource.modify("INSERT INTO [Results$] VALUES (" + id +"," + time + "); ");

Специфика работы с Excel заключается в том, что необходимо закрывать файл перед запуском модели. Использование MS Access как многопользова­тельской базы данных позволяет снять это ограничение.


11.4. Вызов внешних приложений
из AnyLogic

Вызов внешних приложений используется, когда из модели по некоторым событиям необходимо запустить внешнюю программу. Это может быть про­грамма обработки статистики, результатов моделирования или приложения для отображения результатов. Доступ к программному окружению в Java реализуется классом Runtime. В частности, этот класс и позволяет выпол­нять команды в отдельном процессе относительно процесса, в котором ра­ботает AnyLogic (фактически, в отдельном окне Windows). Пример, приве­денный далее, открывает папку C:\CVS Files в Windows Explorer.

try {

Runtime runtime = Runtime.getRuntime();

runtime.exec ("C: \\WINDOWSWexplorer.exe " + "C:\\CVS Files"); // символ"\" дублируется в строке

} catch (java.io.IOException ex) {

Engine.error("Exception in exec: " + ex); }

Вызов модели

Из внешних приложений

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

ТОГО Как JAR-фаЙЛ МОДеЛИ Построен, Скопируйте фаЙЛ xjanylogic5engine. jar

в директорию Lib основного каталога AnyLogic, в которой находится JAR-файл модели. Для запуска модели, построенной как Java приложение, мож­но использовать приведенную далее строку кода:

java -cp xjanylogic5engine.jar;mymodel.jar mymodel.Main$Simulation

В этой строке вызывается интерпретатор Java с параметрами, в которых ука­зываются используемые приложением библиотеки (параметр -cp) и главный класс, с которого начинается выполнение приложения (эксперимент

Simulation, запускающий Класс Main).






Поделиться с друзьями:


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 366 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Велико ли, мало ли дело, его надо делать. © Неизвестно
==> читать все изречения...

2522 - | 2177 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.