
- •Глава 1. Введение в автоматизированное проектирование
- •1.1. Понятие проектирования
- •1.2. Принципы системного подхода
- •1.3. Уровни проектирования
- •1.4. Стадии проектирования
- •1.5. Модели и их параметры в сапр
- •1.6. Проектные процедуры
- •1.7. Жизненный цикл изделий
- •1.8. Структура сапр
- •1.9. Введение в cals-технологии
- •1.10. Этапы проектирования автоматизированных систем
- •Лекция 2. Техническое обеспечение сапр
- •2.1. Требования к техническому обеспечению сапр
- •2.2. Вычислительные системы для сапр
- •2.2.1. Процессоры эвм
- •2.2.2. Память эвм
- •2.2.3. Мониторы
- •2.2.4. Периферийные устройства
- •2.2.5. Шины компьютера
- •2.3. Типы вычислительных машин и систем
- •2.4. Персональный компьютер
- •2.5. Рабочие станции
- •2.6. Архитектуры серверов и суперкомпьютеров
- •2. В.Н. Дацюк, а.А. Букатов, а.И. Жегуло/ методическое пособие по курсу "Многопроцессорные системы и параллельное программирование". -http://rsusu1.Rnd.Runnet.Ru/tutor/method/m1/content.Html
- •2.7. Примеры серверов
- •2.8. Суперкомпьютеры XXI века
- •Лекция 3. Математическое обеспечение анализа проектных решений
- •3.1. Требования к математическим моделям и методам в сапр
- •3.2. Фазовые переменные, компонентные и топологические уравнения
- •3.3. Основные понятия теории графов
- •3.4. Представление топологических уравнений
- •3.5. Особенности эквивалентных схем механических объектов
- •3.6. Методы формирования математических моделей на макроуровне
- •3.7. Выбор методов анализа во временной области
- •3.8. Алгоритм численного интегрирования систем дифференциальных уравнений
- •3.9. Методы решения систем нелинейных алгебраических уравнений
- •3.10. Методы решения систем линейных алгебраических уравнений
- •1. Alglib User Guide. - http://alglib.Sources.Ru/linequations/general/lu.Php. - Проверено 15.12.2009. Лекция 4. Математическое обеспечение анализа проектных решений
- •4.1. Математические модели для анализа на микроуровне
- •4.2. Методы анализа на микроуровне
- •4.3. Метод конечных элементов для анализа механической прочности
- •4.4. Моделирование аналоговых устройств на функциональном уровне
- •4.5. Математические модели дискретных устройств
- •4.6. Методы логического моделирования
- •4.7. Системы массового обслуживания
- •4.8. Аналитические модели смо
- •4.9. Уравнения Колмогорова
- •4.10. Пример аналитической модели
- •4.11. Модель многоканальной смо с отказами
- •4.12. Принципы имитационного моделирования
- •4.13. Событийный метод моделирования
- •4.14. Краткое описание языка gpss
- •1. Томашевский в., Жданова е. Имитационное моделирование в среде gpss. — м.: Бестселлер, 2003.
- •4.15. Сети Петри
- •1. В.Э.Малышкин. Основы параллельных вычислений. -2003 цит сгга, http://www.Ssga.Ru/metodich/paral1/contents.Html
- •4.16. Анализ сетей Петри
- •1. В.Э.Малышкин. Основы параллельных вычислений. -2003 цит сгга, http://www.Ssga.Ru/metodich/paral1/contents.Html Лекция 5. Геометрическое моделирование и машинная графика
- •5.1. Типы геометрических моделей
- •5.2. Методы и алгоритмы компьютерной графики
- •5.3. Программы компьютерной графики
- •5.4. Построение геометрических моделей
- •5.5. Поверхностные модели
- •1. Семенов а.Б. Программирование графических процессоров с использованием Direct3d и hlsl. -http://www.Intuit.Ru/department/graphics/direct3dhlsl/6/1.Html
- •5.7. Графический процессор
- •1. Пахомов с. Революция в мире графических процессоров // КомпьютерПресс, № 12, 2006.
- •5.8. Шейдеры
- •5.9. Геометрические шейдеры
- •5.10. Унифицированный графический процессор
- •1. Пахомов с. Революция в мире графических процессоров // КомпьютерПресс, № 12, 2006.
- •5.11. Примеры графических процессоров
- •Лекция 6. Математическое обеспечение синтеза проектных решений
- •6.1. Критерии оптимальности
- •6.2. Задачи оптимизации с учетом допусков
- •6.3. Классификация методов математического программирования
- •6.4. Методы одномерной оптимизации
- •6.5. Методы безусловной оптимизации
- •6.6. Подходы к решению задач структурного синтеза
- •6.7. Морфологические таблицы
- •6.8. Альтернативные графы
- •Лекция 7.
- •7.1. Интеллектуальные системы
- •7.2. Планирование процессов и распределение ресурсов
- •7.3. Методы локальной оптимизации и поиска с запретами
- •7.4. Методы распространения ограничений
- •7.5. Эволюционные методы
- •7.6. Простой генетический алгоритм
- •7.7. Кроссовер
- •7.8. Метод комбинирования эвристик
- •1. Норенков и.П. Эвристики и их комбинации в генетических методах дискретной оптимизации// Информационные технологии, 1999, № 1.
- •7.9. Примеры применения генетических методов
- •Лекция 8. Автоматизированные системы в промышленности
- •8.1. Системы erp
- •8.2. Стандарт mrp II
- •8.3. Логистические системы
- •8.4. Системы scm
- •8.6. Производственная исполнительная система mes
- •8.7. Автоматизированное управление технологическими процессами
- •8.8. Программирование для станков с чпу
- •8.9. Системы scada
- •8.10. Типовой маршрут проектирования в mcad
- •8.11. Типы сапр в области машиностроения
- •8.12. Основные функции cad-систем
- •8.13. Основные функции cae-систем
- •8.14. Основные функции cam-систем
- •8.15. Графическое ядро
- •Лекция 9.
- •9.1. Структура cad/cam систем
- •9.2. Машиностроительные сапр верхнего уровня
- •9.3. Маршруты проектирования сбис
- •9.4. Схемотехническое проектирование
- •9.5. Модели логических схем цифровой рэа.
- •9.6. Конструкторское проектирование сбис
- •9.7. Проектирование печатных плат
- •9.8. Назначение языка vhdl
- •Лекция10. Методическое и программное обеспечение автоматизированных систем
- •10.1. Типы case-систем
- •10.2. Спецификации проектов программных систем
- •10.3. Методика idef0
- •10.4. Методика idef3
- •10.5. Методика idef1x
- •10.7. Методика проектирования информационных систем на основе uml
- •10.8. Программное обеспечение case-систем
- •10.9. Интегрированные среды разработки приложений
- •Лекция 11. Технологии информационной поддержки этапов жизненного цикла изделий
- •11.1. Обзор cals-стандартов
- •11.2. Структура стандартов step
- •11.4. Интегрированная логистическая поддержка
- •11.5. Интерактивные электронные технические руководства
- •11.6. Стандарт aecma s1000d
- •11.7. Электронная цифровая подпись
- •11.8. Стандарты управления качеством промышленной продукции
- •Лекция 12. Технологии информационной поддержки этапов жизненного цикла изделий
- •12.1. Программное обеспечение cals-технологий
- •12.2. Язык html
- •12.3. Язык xml
- •12.5. Форматирование Web-страниц
- •12.6. Доступ к xml-документам
- •12.7. Мультиагентные системы
- •12.8. Технология soap
- •12.9. Компонентно-ориентированные технологии
12.3. Язык xml
Язык разметки XML (eXtensible Markup Language) разработан в 1996 г. Он, как и HTML, считается подмножеством языка SGML.
В настоящее время язык XML претендует на роль основного языка представления документов в информационных технологиях, его можно рассматривать как метаязык, служащий основой для создания частных языков разметки в различных приложениях. При этом XML более удобен, чем SGML, что обеспечивается устранением в XML некоторых второстепенных особенностей SGML. Описания на XML легче воспринимаются, приспособлены для использования в современных WWW-браузерах при сохранении основных возможностей SGML.
Для конкретных приложений создаются свои варианты XML, называемые XML-словарями или XML-приложениями. Известны словари для химии (CML — Chemical Markup Language), географии GML (Geography Markup Language), математичеких текстов MathML (Mathematical Markup Language), синтаксиса и семантики естественных языков LGML (Linguistics Markup Language), обмена данными по аутентификации и авторизации между системами безопасности SAML (Security Assertion Markup Language), описания голосоввых диалогов между человеком и компьютером VoiceXML и др. Для CALS интерес представляют варианты Product Definition eXchange (PDX) и 3D XML, посвященные обмену данными в CAE/CAD/CAM системах.
XML-документ состоит из пролога, корневого элемента "Документ", собственно и являющегося размеченным документом, таблицы определения типов (декларации DTD) и сведений по форматированию. Документ, сформированный в соответствии с синтаксическими правилами языка XML, при отсутствии DTD называют корректным, а при наличии DTD — валидным. Процессор отказывается от обработки некорректных документов. Отсутствие DTD в корректном документе считается ошибкой, но не препятствует обработке документа.
Пролог начинается со строки:
<?xml version="1.0" дополнения ?>
Эта строка указывает используемую версию языка XML (в данном случае версия 1.0). В эту строку можно в качестве дополнения включить также объявление автономности документа, если не предполагается связывать с документом какие-либо внешние файлы:
<?xml version="1.0" standalone='yes'?>
В дополнениях (или в отдельной команде) может быть указана используемая кодировка, например, encoding='ISO 8859-1'. В пролог могут входить также одна или несколько пустых строк, строки комментария и командные строки. Форма комментария:
<!--текст комментария-->
Текст комментария может включать любые символы, кроме двух дефисов.
Командные строки являются указанием XML-процессору на обработку документа. Они имеют вид:
<?команда?>
Элемент "Документ" представляет собой иерархически организованное множество элементов, являющихся размеченными фрагментами исходного документа. Фрагменты документа помещаются в контейнеры XML, обрамленные каждый открывающим <тип> и закрывающим </тип> тегами, где вместо слова "тип" записывается конкретный тип элемента. Типы элементов задаются в декларации DTD. Фрагменты могут иметь те или иные атрибуты (параметры), значения которых записываются внутри открывающего тега, т.е. тег имеет вид <тип атрибуты>.
Декларация DTD выполняет ту же роль, что и в языке SGML. В ней указываются средства разметки, с помощью которых структурируют исходный документ. Декларация может быть помещена в отдельный файл и тогда в прологе нужно указать XML-процессору имя этого файла с помощью строки
<!DOCTYPE имя_документа SYSTEM "имя_файла_DTD">
Но можно декларацию DTD записать непосредственно в эту строку вместо служебного слова SYSTEM и имени файла DTD, заключив ее в квадратные скобки. Возможно также разделение DTD на внешнюю и внутреннюю части, когда адрес первой из них записывается в поле имя файла DTD, а вторая часть помещается после этого в квадратных скобках.
Инструкции по форматированию документа, необходимые для его визуализации с помощью браузера, могут быть заданы несколькими способами. Один из них — использование каскадных таблиц стилей CSS, таких же, какие используют для HTML-документов. В этих таблицах для каждого типа элемента указаны способы визуализации — тип, размер, цвет шрифта, расположение на экране дисплея при просмотре. Таблица CSS помещается в отдельный файл. Ссылка на этот файл в XML-документе размещается в прологе и имеет вид:
<?xml-stylesheet type="text/css" href="имя_файла"?>
Здесь имя_файла — имя файла с таблицей CSS, это имя должно иметь расширение .css.
Пример пролога XML-документа:
<?xml version="1.0" ?>
<!-- Это заголовок документа dictionary -->
<?xml-stylesheet type="text/css" href="dict.css"?>
<!DOCTYPE dictionary SYSTEM "dict.dtd">
В заголовке записаны номер используемой версии языка XML (version="1.0"), имя документа (в нашем примере dictionary), ссылки на файлы, в которых размещены таблицы CSS (файл dict.css) и DTD (файл dict.dtd):
Основные рассмотренные свойства XML-документов поясним следующим примером. Пусть исходный неразмеченный документ представляет собой фрагмент словаря, состоящий из трех пунктов (в нашем примере названия пунктов CALS, Ethernet, PDM). Каждый пункт относится к одному из понятий определенной предметной области и включает название понятия, его краткое определение и возможно некоторые поясняющие примеры.
Целесообразно использовать иерархическую структуру документа: верхний уровень относится к пунктам словаря, нижний уровень относится к элементам пункта. Принятая структура отражается в DTD.
После разметки исходного текста получаем XML-документ следующего вида:
<?xml version="1.0" ?>
<?xml-stylesheet type="text/css" href="dict.css"?>
<!DOCTYPE dictionary [
<!ELEMENT dictionary (item)>
<!ELEMENT item (termin,description,examples?)>
<!ELEMENT termin (#PCDATA)>
<!ATTLIST termin number ID #REQUIRED>
<!ATTLIST termin group (technology|networks|software|other) #REQUIRED>
<!ELEMENT description (#PCDATA)>
<!ELEMENT examples (#PCDATA)>
<!ENTITY ЛВС "локальная вычислительная сеть">
]>
<dictionary>
<item>
<termin number ='_14' group='technology'> CALS </termin>
<description> - Continuous Acquisition and Lifecycle Support,
информационное сопровождение и поддержка этапов жизненного цикла
промышленных изделий. Технология взаимодействия различных
автоматизированных систем в промышленности.
</description>
</item>
<item>
<termin number ='_24' group='networks'> Ethernet </termin>
<description> - &ЛВС с методом доступа МДКН/ОК.
</description>
<examples> Варианты реализации 10Base-5, 10 Base-T, 100Base-X. Gigabit Ethernet.
</examples>
</item>
<item>
<termin number ='_52' group='technology'> PDM </termin>
<description> - Product Data Management, управление проектными данными.
Системы PDM, называемые также системными средами, входят в состав
программного обеспечения CALS-технологий.
</description>
<examples> Windchill eSeries,iMAN, SmartTeam, Optegra.
</examples>
</item>
</dictionary>
В приведенном примере XML-документа атрибут number относится к маркерному типу. Его идентификатор ID означает, что этот атрибут должен иметь уникальные значения для каждого элемента termin, т.е. number является ключевым атрибутом (значения типа ID не должны начинаться с цифры, поэтому в примере используется знак подчеркивания).
В нашем примере XML-документа dictionary используются каскадные таблицы стилей. Пусть мы хотим элементы типа termin выделить полужирным шрифтом (bold) 12-го размера с отступом первой строки на 5 мм, а элементы типа examples — курсивом (italic) 10-го размера с отступом на 10 мм. Тогда таблица CSS, помещаемая в файл dict.css, должна быть задана в виде:
item
{display:block;}
termin
{font-weight:bold; font-size:12pt; text-indent:5mm; font-style:normal;}
description
{font-size:12pt;}
examples
{display:block; font-style:italic; font-size:10pt; text-indent:10mm;}
Обращение к браузеру для просмотра нашего документа позволит увидеть текст, представленный на рис. 1.
Рис. 1. Пример XML-документа
Часто возникает необходимость включения в XML-документ символов, отсутствующих на клавиатуре компьютера (например, буквы греческого алфавита) или на символы, относящиеся к служебным символам языка. На них следует ссылаться с помощью записи &#код_символа_по_ISO/IEC10646;.
Кроме того, для символов &, <, >, ', " можно использовать ссылки &, <, >, ', " соответственно.
В языке XML расширены возможности гиперсвязей. Механизм связей в XML изложен в спецификациях XLink и XPointer.
Программная поддержка языка XML обеспечивается XML-процессорами. В состав XML-процессора входит синтаксический анализатор, который проверяет правильность соблюдения правил языка, но не производит форматирования. Для форматирования документа используется другая компонента XML-процессора, поддерживающая каскадные таблицы стилей или язык форматирования XSL.
К функциям программного обеспечения, поддерживающего XML, кроме синтаксического анализа и визуализации, относятся поиск заданных фрагментов, создание, удаление, модификация элементов в XML-документе. Для поддержки этих функций в рабочей группе W3C, занимающейся вопросами Web-технологий, разрабатывается объектная модель HTML и XML-документов DOM (Document Object Model), предназначенная для создания прикладного интерфейса API (Application Program Interface) к XML-документам, и соответствующие языки запросов XPath (XML Path Language), XQuery, XSLT, позволяющие ссылаться на части XML-документов..
12.4. Web-сценарии и создание интерактивных Web-страниц
Доступ к гипертекстовым документам, расположенным на сервере, осуществляет программное средство, называемое WWW-сервером (Web-сервером). С его помощью осуществляются также обращения к программам, таким как СУБД, электронная таблица, программы моделирования и т.п., организуется интерактивная работа пользователей. Для использования в WWW-серверах предлагается несколько технологий.
Интерактивная работа пользователей сопровождается визуализацией меняющихся изображений, реакцией системы на определенные действия пользователя или иными операциями по обработке информации при просмотре документов. Эти операции выполняются по сценариям, задаваемым на языке программирования. Применяемые при этом технологии различаются как по типу используемого языка, так и по месту исполнения программ, реализующих сценарии, а также по затратам вычислительных ресурсов. К используемым средствам относятся языки HTML, XML, JavaScript, PHP (Personal Home Pages), VBScript, Perl, Java, технологии CGI, ISAPI (Internet Services Application Program Interface), ASP (Active Server Pages) и др.
Сравнительно простые сценарии обычно представляют на языках типа JavaScript, PHP, VBScript или их разновидностях. Язык PHP близок по своему назначению и сложности освоения к языку JavaScript, но мощнее последнего по функциональности (разнообразие типов данных, поддержка ODBC). Очевидно, что браузер должен поддерживать используемый язык сценариев.
Обычно команды сценария непосредственно включаются в HTML-документ, например, c помощью следующего фрагмента
<SCRIPT LANGUAGE = "javascript">
<!-- сценарий //-->
</SCRIPT>
<!-- сценарий //--> — собственно текст сценария, представленный в виде комментария. Браузеры, не имеющие JavaScript-обработчиков, просто игнорируют комментарий, а современные браузеры исполняют записанные в сценарии команды. Характерной особенностью такого сценария является интерпретация и исполнение команд на клиентском узле.
Технология ASP появилась в связи с стремлением сделать интерактивность страниц платформно независимой, поскольку в браузерах может не быть поддержки того языка сценариев, который применен в Web-странице. Для этого нужно перенести обработку сценария с клиента на сервер, что и выполнено в ASP. Обычно в ASP обмен данными между браузером и сервером включает запрос из браузера, передачу формы (таблицы) из сервера для ее заполнения пользователем, пересылку заполненной таблицы на сервер, обработку по сценарию в сервере и возвращение в браузер результата в виде HTML-текста без вставок команд сценария. Следует отметить, что ASP — технология компании Microsoft и связана с использованием компонентов AcniveX, что часто неудобно. В Web-порталах преимущественно используется Java и потому чаще используется аналогичная ASP технология JSP (Java Server pages).
Обращение к мультимедийным объектам возможно способом связывания, т.е. использованием обычной ссылки на мультимедийный файл, при этом выбор данной ссылки пользователем означает переход к демонстрации визуальной или воспроизведению звуковой мультимедийной информации. Чаще требуется визуальную мультимедийную информацию внедрять в Web-страницу, отводя для показа данных видео или мультипликации часть изображения (экрана). Для внедрения используют компоненты ActiveX — программы управления некоторыми операциями, например, визуализацией документа, доступом к базе данных и т.п.
Компонент ActiveX добавляется в Web-страницу с помощью элемента <OBJECT>. В элементе указывают код, по которому будет найден нужный компонент ActiveX, и параметры, такие как адрес мультимедийного файла и расположение поля вывода мультимедийной информации на экране дисплея. Средства обработки мультимедийной информации, представленной в файлах большинства известных форматов таких, как AVI, MOV, MPG, МР3, WAV, MID, обычно встроены в браузеры.
Более сложные сценарии требуют использования прикладных программ, написанных на языках программирования Java, C, C++ и т.п. Если прикладная программа специально создается для использования в Web-среде, целесообразно использовать язык Java.
В ряде случаев используемые прикладные программы не являются платформно независимыми и по этой или иным причинам должны исполняться на сервере. В этих случаях используется технология CGI (Common Gateway Interface — простой шлюзовой интерфейс) или ISAPI (Internet Server Application Program Interface).
В CGI и ISAPI прикладная программа исполняется на сервере. Допустимо использовать программы на различных языках программирования (C/C++, Fortran, Perl, Java, Visual Basic, Apple Script и др.). Но для обеспечения интерфейса Web-сервера с прикладной программой необходимо иметь программу-шлюз (посредник), обрабатывающую запросы, которые поступают от браузера, и передающую обработанные запросы браузеру в нужной для него форме. После исполнения прикладной программы (ПП) шлюз преобразует результаты в приемлемую для визуализации форму (в HTML-документ) и передает результаты обратно браузеру, т.е. для каждой ПП нужно иметь соответствующий обработчик.
Если сервер создан на базе Microsoft Internet Information Server, то вместо CGI лучше использовать технологию ISAPI, как более быстродействующую.
Дальнейшее развитие Web-технологий связано с появлением объектно-ориентированного языка программирования Java. Язык Java позволяет создавать аппаратно независимые приложения, ориентированные на применение в системах распределенных вычислений. Программы на языке Java обладают достаточно высокой вычислительной эффективностью. Эти свойства достигнуты за счет двухэтапной обработки исходных модулей. На первом этапе на сервере производится преобразование исходных модулей в платформно независимый промежуточный байт-код методом компиляции. Благодаря использованию компиляции потеря эффективности, присущая интерпретации, оказывается незначительной. На втором этапе программа, представленная в виде байт-кода и называемая аплетом (applet), передается на компьютер клиента вместе с Web-страницей. Браузер клиента начинает выполнение аплета при его обнаружении в полученном HTML-файле.
Обращение к Java-аплетам из браузера возможно с помощью специального элемента <APPLET> или заменяющего его элемента <OBJECT>, например:
<APPLET CODE="имя_файла_аплета">
элементы <PARAM>
</APPLET>
Элементы <PARAM>, задают параметры, передаваемые в аплет. В одном HTML-файле можно предусмотреть обращения к нескольким аплетам, находящимся в разных узлах сети. Следует однако отметить, что обычно в целях повышения информационной безопасности загружаемому аплету запрещается обновлять и читать файлы, кроме тех, которые находятся на хосте самого аплета.
Чтобы выполнить Java-программу, необязательно передавать ее браузеру. Как и в технологии CGI, она может исполняться на сервере, в этом случае она называется сервлетом. Поскольку использование технологии CGI имеет много ограничений, связанных с проблемами производительности и безопасности, технологии сервлетов и JSP получили более широкое распространение.
Сервлет можно определить как серверную версию аплета, используемую для обработки клиентских запросов на Web-сервере. С точки зрения языка, сервлет можно считать классом Java, не имеющим привязки к конкретным платформе или Web-серверу и взаимодействующим с клиентом по стандартной схеме запрос-ответ. Отличиями технологии сервлетов от технологии CGI являются, во-первых, большая простота реализации сервлетов, благодаря присущей языку Java платформенной независимости. Во-вторых, большая эффективность, связанная с тем, что сервлет в процессе транзакции загружается один раз, в то время как в CGI каждое обращение к прикладной программе из обработчика генерирует новый процесс, на что тратится значительное время работы серверного узла.
Для реализации технологии сервлетов на Web-сервере необходимо иметь виртуальную Java-машину и программу связи Web-сервера с сервлетом (аналогично шлюзам в CGI), называемую Web-контейнером (servlet engine). Функциями Web-контейнера являются управление циклом жизни сервлетов — их создание, установка, активизация/деактивизация, сохранение состояния, уничтожение. Web-контейнер обеспечивает интерфейсы "запрос" и "ответ" с сервлетом. Он заносит данные запроса в некоторый объект req и передает этот объект сервлету вместе с пустым объектом resp. Сервлет обрабатывает информацию, заключенную в req, и оформляет ответ, заполняя объект resp. Контейнер отправляет ответ клиенту через Web-сервер.
Примерами Web-контейнеров могут служить программы Resin, Tomcat, JRun, JServ. Для создания самих сервлетов используется набор инструментальных средств, например JSDK 1.4 (Java Software Development Kit) фирмы Sun Microsystems.