3. Найти эффективную долю пропускной способности сетевого канала. Для 100 Мб/с Ethernet канала эффективная пропускная способность равна 60-80% от всей ширины канала.
4. Вычислить эффективную пропускную способность защищаемого канала:
Для 100 Мб/c сети Ethernet:
100
Мб
N
^ **тах
N
* • r^fiW
L
1500 65000 * 2
8 « 0300п
с:
1000 „„„„п
—-----= 400015,5 МС с ;
2. ^гг 1500
3. Коэффициент пропускной способности Кэф = 0,6;
Если для 100 Мб/с сети максимальное количество пакетов канального уровня равно 8300 в секунду, то полученная реализация позволяет отправлять 4800 пакетов/с. А так как эффективное использование сети из-за возникновения коллизий составляет 60-80% от пропускной способности канала, то данная реализация системы обеспечения безопасного канала передачи данных позволяет защищать 96% всего проходящего трафика, проходящего через узел.
Литература
1. OpenVPN - The Open Source VPN [Электронный ресурс]. - Режим доступа: https://openvpn.net/, свободный. - Загл. с экрана.
2. Liu, J. A real-time network simulation infrastructure based on OpenVPN / J. Liu, Y. Li, N. Van Vorst, S. Mann, K. Hellman // The Journal of Systems and Software. - 82, 2009 - P. 473-485.
3. Radhakrishnan, S. TCP fast open / S. Radhakrishnan, Y. Cheng, J. Chu, A. Jain, B. Raghavan // Proceedings of the Seventh Conference on emerging Networking Experiments and Technologies. - ACM, 2011. -21 P.
4. Vratonjic, N. The inconvenient truth about web certificates / N. Vratonjic, J. Freudiger, V. Bindschaedler, J. P. Hubaux // Economics of Information Security and Privacy III. -Springer New York, 2013. - P. 79-117.
5. Неклюдова, С. А. Парадигмы программирования как инструменты разработчика программных систем / С. А. Неклюдова, А. Р. Балса // Межвузовский сборник научных трудов: Информационные технологии и системы. - №. 1. - С. 12.
6. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами приложений на C++. - СПб : Невский диалект, 1998.
УДК 004.04
ФОРМАЛЬНОЕ ОПИСАНИЕ ПРИКЛАДНЫХ ПРЕДМЕТНЫХ ОБЛАСТЕЙ В ПОНЯТИЯХ УНИФИЦИРОВАННОЙ МЕТАМОДЕЛИ ОБЪЕКТНООРИЕНТИРОВАННЫХ ПРИЛОЖЕНИЙ БАЗ ДАННЫХ
Олейник Павел Петрович, к.т.н, системный архитектор программного обеспечения,
ОАО "Астон", доцент, Шахтинский институт (филиал) Южно-Российского государственного политехнического университета им. М.И. Платова, Россия, Ростов-на-Дону, [email protected]
Для описания математической модели, позволяющей представить объектную модель информационной системы любой прикладной предметной области, будем использовать формальный аппарат теории множеств. Дальнейшим развитием данного решения может быть модельно-ориентированный подход, при котором понятие типа основано на теоретико-
108
множественной модели, то есть с помощью описания х: Т, "х имеет тип Т", что эквивалентно описанию принадлежности (х £ Т,"х является членом множества Т").
При этом все операции программы можно моделировать как набор манипуляций с множествами. Базисом для разработанной формальной модели является унифицированная метамодель объектной системы, подробно представленная в работах [1-8].
При проектировании информационных системы необходимо построить модель предметной области, содержащую различные типы сущностей. Например, сущность Продукт, Приход и Расход являются сохраняемыми сущностями, а сущность Оборотносальдовая ведомость является вычисляемой, т.е. её экземпляры не сохраняются в БД непосредственно, а рассчитываются на основании других сохраняемых сущностей. С формальной точки зрения, формальная модель модели предметной области, построенной в понятиях унифицированная метамодели объектно-ориентированного приложения БД (ФММПОуммоопбд) представляет собой кортеж, состоящий из множеств и представляемый как (1):
DMFM = (DC, HC, QC, MPC, EC) (1)
где:
DC (DomainClass) - непустое множество классов предметной области, т.е. dmfm
£ DMFM, DC ^ 0;
HC (HelperClass) - множество вспомогательных классов;
QC (QueryClass) - множество классов-запросов;
MPC (MethodParameterClass) - множество классов-параметров методов;
EC (EnumClass) - множество классов-перечислений и классов-множеств элементов.
Рассмотрим описание каждого перечисленного множества. Классы предметной области (КПО, Domain Class, DC) - это ключевой элемент, используемый для моделирования сущностей предметной области, экземпляры которых сохраняются в БД. В общем случае для описания всех классов предметной области (DC) используется множество, элементами которых является кортеж, и описываемое как (2):
DC = {(ATT, BCdc, M, E, VLR, VSR, BHC, R)} (2)
где элементы кортежа каждого КПО заданы следующим образом:
ATT (Attribute) - множество атрибутов класса предметной области, ATT Ф 0 V ВС Ф 0;
BCdc (BaseClass)- множество базовых классов предметной области, от которого унаследован данный, DC ^ BCdc;
M (Method) - множество методов класса, позволяющих реализовать поведение экземпляров классов, т.е. динамическую составляющую;
E (Event) - множество обработчиков событий, возникающих в жизненном цикле объекта класса предметной области;
VLR (ValidationRule) - множество предикатов, представляющих валидационные правила, которым должен отвечать каждый объект;
VSR (VisualizationRule) - множество визуализационных правил, которые управляют видимостью, доступность, цветом отдельных атрибутов;
BHC (BehaviorController) - множество контроллеров поведения, позволяющих управлять как поведением объектов, так и пользовательским интерфейсом приложения;
R (Report) - множество отчетов системы, позволяющие выводить экземпляры класса (объекта) в удобном для пользователя виде с возможностью
распечатки данных.
При этом выполняется следующее ограничение:
dc € DC, V bcdc£i BCdc £ DC=> dc J? BCdc
Для описания свойств (характеристик) экземпляров классов (объектов) необходимо описать множество атрибутов ATT, формально описываемое как кортеж вида (3):
ATT = {(Name, AttributeKind, Multiplicity, dc, hc, ec)} (3)
109
где:
Name - уникальное название атрибута (правильный идентификатор); AttributeKind - вид атрибута;
Multiplicity - множественность атрибута (минимальное и максимальное количество связанных объектов);
dc - класс предметной области (dc DC) , указывается когда AttributeKind = DomainClassAttribute или AttributeKind = GeneratedAttribute;
he - вспомогательный класс (he £ НС) , указывается когда AttributeKind = HelperClassAttribute или AttributeKind = GeneratedAttribute;
ее - класс-перечисление / класс-множество (ее £ ЕС), указывается когда AttributeKind = EnumAttribute.
Система предоставляет разработчику множество различных видов атрибутов, которые можно представить как (4):
AttributeKind = {BuiltInClassAttribute, ColorAttribute, DateTimeAttribute, DecimalAttribute, DomainClassAttribute, EnumAttribute,
FileDataAttribute, GeographyAttribute, GeometryAttribute,
HelperClassAttribute, HyperLinkAttribute, ImageAttribute, IntAttribute, LogicalAttribute, MetaModelClassAttribute, MoneyAttribute,
ObjectAttribute, StringAttribute, SymbolAttribute, TextAttribute, TimeAttribute, TypeAttribute} (4)
где:
BuiltInClassAttribute - встроенно-классовый атрибут, используется для сохранения экземпляра метамодели;
ColorAttribute - цветовой атрибут, используется для представления целочисленной константы описывающей цвет;
DateTimeAttribute - дата-временной атрибут, используется для представления даты и времени;
DecimalAttribute - дробный атрибут, значением которого является дробное число;
DomainClassAttribute - предметно-классовый атрибут, значением которого является экземпляр (объект) класса предметной области. Часто используется для организации отношений ассоциаций;
EnumAttribute - перечисляемый/множественный атрибут, используется для хранения значения перечисления/множества;
FileDataAttribute - файловый атрибут, используется для сохранения содержимого файла;
GeneratedAttribute - сгенерированный атрибут, применяется для представления атрибутов, которые автоматически генерируются системой;
GeographyAttribute - географический атрибут, используется для представления географических координат;
GeometryAttribute - геометрический атрибут, используется для хранения геометрических объектов;
HelperClassAttribute - вспомогательно-классовый атрибут, используется для сохранения экземляров вспомогательных классов, для реализации вычислений;
HyperLinkAttribute - гиперссылочный атрибут, значением которого является гиперссылка;
ImageAttribute - графический атрибут, используется для сохранения изображений;
IntAttribute - целочисленный атрибут, применяется для хранения целочисленных значений;
LogicalAttribute - логический атрибут, используется для хранения булевого значения (0 или 1);
MetaModelClassAttribute - метамодельно-классовый атрибут, применяется для сохранения экземпляра описания класса;
MoneyAttribute - денежный атрибут, применяется для сохранения значений в валюте;
ObjectAttribute - объектный атрибут, используется для сохранения объекта любого типа;
110
StringAttribute - строковый атрибут, применяется для сохранения строки текста;
SymbolAttribute - символьный атрибут, используется для сохранения символа;
TextAttribute - текстовый атрибут, применяется для сохранения текста неограниченной длины с форматированием;
TimeAttribute - временной атрибут, используется для хранения времени;
TypeAttribute - типовый атрибут, применяется для сохранения названия типа данных.
Допустимыми значениями для множественности являются:
Multiplicity = {0..1, 1..1, 0..*, 1..*}
Так как предполагается организация двунаправленных ассоциации, реализуемых с помощью описания двух атрибутов на разных краях, то подобным способом можно описать и другие виды множественности, например, многие-ко-многим (*..*). Отметим, что обязательными элементами в выражении (4) являются лишь Name, AttributeKind, т.е. имя и вид атрибута. Остальные компоненты не обязательны и могут отсутствовать при описании атрибута.
Множество M, позволяет реализовать поведение экземпляров классов в виде методов, т.е. динамическую составляющую и представимо в виде (5):
M = {(Name, mpc, Body)} (5)
где:
Name - название метода (правильный идентификатор);
mpc - параметр метода, mpc € МРС;
Body - строки программного кода, реализующего метод.
Каждый метод представляет собой процедуру (функцию, не возвращающую результат). При этом функция может иметь параметр, представляемый элементом множества MPC. Т.е. реализуется шаблон (паттерн) проектирования объект-параметр (parameter object), когда в качестве параметра передается экземпляр класса.
Множество E представляет собой множество обработчиков событий, возникающих в жизненном цикле объекта (экземпляра) сущности, описываемой классом предметной области и представляемых в виде (6):
E = {(Name, EventKind, Body)} (6)
где:
Name - название обработчика события(правильный дентификатор);
EventKind - вид события для которого создается обработчик;
Body - строки программного кода, реализующего обработчик события.
Для описания видов событий используется перечисление вида (7):
EventKind = {AfterChangedAttributeValueEvent, AfterDeletedEvent, AfterLoadedEvent, AfterSavedEvent, BeforeDeletingEvent, BeforeSavingEvent,
InitializationEvent} (7)
где:
AfterChangedAttributeValueEvent - событие, вызываемое после изменения значения атрибута объекта;
AfterDeletedEvent - событие, вызываемое после удаления объекта;
AfterLoadedEvent - событие, вызываемое после загрузки объекта;
AfterSavedEvent - событие, вызываемое после сохранения объекта
BeforeDeletingEvent - событие, вызываемое перед удалением объекта;
BeforeSavingEvent - событие, вызываемое перед сохранением объекта;
InitializationEvent - событие инициализации объекта.
Множество предикатов, представляющих валидационные правила, которым должен отвечать каждый объект, представимо множеством VLR, которое описывается (7):
VLR = {(cr, ATTvlr)} (7)
111
где:
cr - предикат, имеющий параметры, которыми выступают атрибуты классов, которому должен соответствовать экземпляр сущности предметной области; ATTvlr - множество атрибутов, из которого построено валидационное правило.
Для улучшения анализа данных и упрощения представления используются множество визуализационных правил VSR, представляющих собой неупорядоченные тройки вида (8):
VSR = {(cr, vrk, ATTvsr)} (8)
где:
cr - предикат, определяющий применимость визуализационных правил; vrk - определяет вид визуализационного правила;
ATTvsr - множество атрибутов, на которое распространяется визуализационное правило,
при этом выполняется:
ATTvsr — ATT vrk G VRK где:
VRK = {HideProperty, DisableProperty, SetFontColor, SetBackgroundColor} где:
HideProperty - данный вид правила скрывает атрибуты;
DisableProperty - данный вид правила делает неактивными атрибуты; SetFontColor - данный вид правила устанавливает цвет шрифта в редакторах атрибутов;
SetBackgroundColor - данный вид правила устанавливает цвет фона в редакторах атрибутов.
Множество контроллеров поведений BHC состоит из элементов, каждый из которых представляет собой класс языка программирования, реализующий требуемый функционал.
Множество отчетов R представляет набор отчетов, каждый из которых описывается расширяемым языком разметки XML и содержит данные, интерпретируемые прикладной программой.
Перейдем к рассмотрению других видов классов, представляющих отдельные элементы метамодели.
В (9) представлено формальное описание множества вспомогательных классов (HC):
HC = {(ATT, bchc, PC, M, VSR, BHC, R)} (9)
где:
ATT (Attribute) - множество атрибутов класса предметной области; bcdc (BaseClass) - базовый вспомогательный класс, от которого унаследован данный;
PC (ProgramCode) - программный код реализации вспомогательного класса, представляемый в виде множества строк языка C#;
M (Method) - множество методов класса, позволяющих реализовать поведение экземпляров классов, т.е. динамическую составляющую;
VSR (VisualizationRule) - множество визуализационных правил, которые управляют видимостью, доступностью цветом отдельных атрибутов;
BHC (BehaviorController) - множество контроллеров поведения, позволяющих управлять как поведением объектов, так и пользовательским интерфейсом приложения;
R (Report) - множество отчетов системы, позволяющие выводить экземпляры класса (объекта) в удобном для пользователявиде с возможностью распечатки данных.
Пи этом выполняются следующие ограничения:
V umm Е UMM V he £ НС, ATT ф 0 V bcdc Ф 0 V PC Ф 0
V he Е НС, V bchc £ НС =) he ф behc
В (10) представлено формальное описание множества классов-запросов (QC):
QC = {(ATT, PC, VSR, BHC, R)} (10)
112
где:
ATT (Attribute) - множество атрибутов класса предметной области;
PC (ProgramCode) - программный код реализации вспомогательного класса, представляемый в виде множества строк языка C#;
VSR (VisualizationRule) - множество визуализационных правил, которые управляют видимостью, доступностью, цветом отдельных атрибутов;
BHC (BehaviorController) - множество контроллеров поведения, позволяющих управлять как поведением объектов, так и пользовательским интерфейсом приложения;
R (Report) - множество отчетов системы, позволяющие выводить экземпляры класса (объекта) в удобном для пользователя виде с возможностью распечатки данных.
при этом выполняются следующие ограничения:
V umm Е UMM V qc Е QC, ATT ф 0 V PC ф 0
В (11) представлено формальное описание множества классов-параметров методов (MPC):
MPC = {(ATT, bcmpc, UM, M, VLR, VSR, BHC, R)} (11)
где:
ATT (Attribute) - множество атрибутов класса предметной области;
bcmpc (BaseClass)- базовый класс-параметр методов, от которого унаследован данный;
UM (UsingMethod) - множество методов, которые используют данный класс в качестве параметра;
M (Method) - множество методов класса, позволяющих реализовать поведение экземпляров классов, т.е. динамическую составляющую;
VLR (ValidationRule) - множество предикатов, представляющих валидационные правила, которым должен отвечать каждый объект;
VSR (VisualizationRule) - множество визуализационных правил, которые управляют видимостью, доступностью, цветом отдельных атрибутов;
BHC (BehaviorController) - множество контроллеров поведения, позволяющих управлять как поведением объектов, так и пользовательским интерфейсом приложения;
R (Report) - множество отчетов системы, позволяющие выводить экземпляры класса (объекта) в удобном для пользователя виде с возможностью
распечатки данных.
При этом выполняются следующие ограничения:
V umm Е UMM V mpc Е MPC, ATT ф 0 V Ьстрс^ 0
V mpc Е MPC, V bcmpc Е МРС =) трс ф Ьстрс
В (12) представлено формальное описание множества классов-перечислений (EC), представляющее именованные констаны с присвоенными целыми значениями:
EC = {(Name,ek, {vali = 2X-1})} (12)
Где:
i Е 0..п;
ek Е EnumKind;
EnumKind = {Enum, Set} - тип класса перечисления, Enum - описывает перечисление, а Set - множество.
Из представленных формул видно, что выделены все ключевые моменты объектной унифицированной метамодели, в понятиях которой могут проектироваться любые прикладные области.
Дальнейшее развитие данной работы автор видит в применении описанного формального подхода для описания какой-либо объектной модели. Будущие статьи планируется посвятить описанию унифицированной модели тестирования инструментов разработки объектно-ориентированных приложений в понятиях представленного аппарата.
Литература
113
1. Олейник П.П., программа для ЭВМ "Унифицированная среда быстрой разработки корпоративных информационных систем SharpArchitect RAD Studio", свидетельство о государственной регистрации № 2013618212 от 04 сентября 2013 г.
2. Олейник П.П. Иерархия классов метамодели объектной системы // Объектные системы -2012: материалы VI Международной научно-практической конференции (Ростов-на-Дону, 1012 мая 2012 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону: ШИ ЮРГТУ (НПИ), 2012. -С. 37-40., http://obiectsvstems.ru/files/2012/Qbiect Systems 2012 Proceedings.pdf
3. Олейник П.П. Иерархия классов представления валидационных правил объектной системы //
Объектные системы - 2013: материалы VII Международной научно-практической
конференции (Ростов-на-Дону, 10-12 мая 2013 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону: ШИ (ф) ЮРГТУ (НПИ), 2013. - С. 14-17.,
http://obiectsvstems.ru/files/2013/Obiect Systems 2013 Proceedings.pdf
4. Oleynik P.P. Domain-driven design the database structure in terms of metamodel of object system // Proceedings of 11th IEEE East-West Design & Test Symposium (EWDTS'2013), Institute of Electrical and Electronics Engineers (IEEE), Rostov-on-Don, Russia, September 27 - 30, 2013, pp. 469-472.
5. Олейник П.П. Элементы среды разработки программных комплексов на основе организации метамодели объектной системы // Бизнес-информатика. 2013. №4(26). - С. 69-76., http://biioumal.hse.ru/data/2014/01/16/1326593606/1BI%204(26)%202013.pdf
6. Олейник П.П. Предметно-ориентированное проектирование структуры базы данных в понятиях метамодели объектной системы // Объектные системы - 2014: материалы VIII Международной научно-практической конференции (Ростов-на-Дону, 10-12 мая 2014 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону: ШИ (ф) ЮРГПУ (НПИ) им. М.И. Платова, 2014. - С. 41-46., http://obiectsystems.ru/files/2014/Qbiect Systems 2014 Proceedings.pdf
7. Oleynik P.P. Using metamodel of obiect system for domain-driven design the database structure // Proceedings of 12th IEEE East-West Design & Test Symposium (EWDTS’2014), Kiev, Ukraine, September 26 - 29, 2014, DOI: 10.1109/EWDTS.2014.7027052
8. Олейник П.П., Кураков Ю.И. Концепция создания обслуживающей корпоративной информационной системы экономического производственно-энергетического кластера // Прикладная информатика. 2014. №6. - С. 5-23.
9. Олейник П.П. Унифицированная модель тестирования инструментов разработки объектноориентированных приложений // Объектные системы - 2014 (Зимняя сессия): материалы IX Международной научно-практической конференции (Ростов-на-Дону, 10-12 декабря 2014 г.) / Под общ. ред. П.П. Олейника. - Ростов-на-Дону: ШИ (ф) ЮРГПУ (НПИ) им. М.И. Платова, 2014. С. 23-32.,
http://obiectsystems.ru/files/2014WS/Obiect Systems 2014 Winter session Proceedings.pdf
УДК 004.42
КОНЦЕПТУАЛЬНАЯ МОДЕЛЬ ПРОГРАММНОГО КОМПЛЕКСА МОНИТОРИНГА СРЕДСТВ МАССОВОЙ ИНФОРМАЦИИ В СЕТИ ИНТЕРНЕТ
Губарев Илья Дмитриевич, программист отдела разработки информационно-аналитических систем, Санкт-Петербургский Информационно-Аналитический Центр, Россия, Санкт-Петербург,
Курилкин Алексей Владимирович, начальник сектора отдела разработки информационноаналитических систем, Санкт-Петербургский Информационно-Аналитический Центр, Россия, Санкт-
Петербург, kurilkin@iac. spb. ru
Змиевский Александр Федорович, программист отдела разработки информационно-аналитических систем, Санкт-Петербургский Информационно-Аналитический Центр, Россия, Санкт-Петербург,
zmievskiy@iac. spb. ru
В последние несколько лет в России наблюдается все большее развитие СМИ в сфере Интернет, ввиду широкой доступности и динамичности обновления данных. На данный
114