15.12.2012 Views

Telecommunications & Computer Engineering - Технически ...

Telecommunications & Computer Engineering - Технически ...

Telecommunications & Computer Engineering - Технически ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

JOURNAL<br />

OF THE TECHNICAL UNIVERSITY<br />

AT<br />

PLOVDIV, BULGARIA<br />

�FUNDAMENTAL SCIENCES AND<br />

APPLICATIONS�<br />

VOL. 13 (1) 2006<br />

ANNIVERSARY SCIENTIFIC<br />

CONFERENCE 2006<br />

THE SCIENTIFIC REPORTS<br />

<strong>Telecommunications</strong><br />

<strong>Computer</strong> <strong>Engineering</strong>


ORGANIZING COMMITTEE<br />

Conference Co-chairs:<br />

Prof. Kamen Veselinov, PhD Rector of TU - Sofia<br />

Prof. Dimitar Katsov, PhD Director of the Plovdiv<br />

Branch of TU - Sofia<br />

Members:<br />

Prof. DSc Vassili Loumos Greece<br />

Prof. DSc Mark Himbert France<br />

Prof. DSc Panayiotis Frangos Greece<br />

Prof. DSc Reinhart Verschoore Belgium<br />

Prof. DSc Yasser Alayly France<br />

Prof. Dr. Dr.h.c.mult. Uwe Heisel Germany<br />

Acad. Prof. DSc Yuri Kuznetsov Ukraine<br />

Prof. DSc Alexander Tsiganenko Russia<br />

Prof. DSc Victor Baranov Russia<br />

Prof. DSc Edward Evreinov Russia<br />

Prof. DSc Okyay Kaynak Turkey<br />

Acad. Prof. DSc Kiril Boianov Bulgaria<br />

Corr. Memb. Prof. DSc Mincho Hadjiski Bulgaria<br />

Corr. Memb. Prof. DSc Petko Petkov Bulgaria<br />

Prof. DSc George Popov Bulgaria<br />

Prof. DSc Marin Nenchev Bulgaria<br />

Prof. DSc Mincho Minchev Bulgaria<br />

Prof. Angel Vachev, PhD Bulgaria<br />

Prof. George Stoianov, PhD Bulgaria<br />

Prof. Drumi Bainov, PhD Bulgaria<br />

Assoc. Prof. Pepo Yordanov, PhD Bulgaria<br />

Assoc. Prof. Valentin Kirchev, PhD Bulgaria<br />

Assoc. Prof. Kostadin Iliev, PhD Bulgaria<br />

Assoc. Prof. Valyo Nikolov, PhD Bulgaria<br />

Assoc. Prof. Peyo Stoilov, PhD Bulgaria


- 3 -<br />

CONTENTS Page<br />

BOIAN MURATEV, JULIANA GROZDANOVA, BOYKO PETROV<br />

STAND-ALONE MODULE FOR USB DATA STREAM TO DMX512 AND ART-NET<br />

COMPATABLE PACKETS CONVERTION USING ARM STR711…………………………………… 11<br />

HRISTO HRISTEV, STOYAN MISHINEV<br />

NETWORK TRAFFIC GUARANTEE FOR DISTRIBUTED DESKTOP PLATFORMS…………..… 17<br />

IVANKA VALOVA, PETAR POPOV<br />

ENHANCEMENT OF STANDARD DATA ANALYSIS METHODS…………………………………… 27<br />

KRASSIMIR KOLEV<br />

APPLES GRADING USING INDEPENDENT COMPONENT ANALYSIS…………………………… 37<br />

NIKOLAY KAKANAKOV, NIKOLAY RAITCHEV, GRISHA SPASOV<br />

VIRTUAL LABORATORY FOR DISTRIBUTED SYSTEM ……………………………………...…… 43<br />

NIKOLAY KAKANAKOV, BORIS RIBOV<br />

DISTRIBUTED SYSTEM FOR MONITORING AND CONTROL IN INTERNET<br />

ENVIRONMENT ……………………………………...…………………………………………………. 49<br />

MITKO SHOPOV, HRISTO MATEV, GRISHA SPASOV<br />

ON THE USE OF WEB SERVICES FOR BUILDING DISTRIBUTED AUTOMATION SYSTEMS 55<br />

ATANASKA BOSAKOVA-ARDENSKA, NAJDEN VASILEV, ANELIA PAGUROVA ( MATAKOVA )<br />

PARALLEL IMAGE PROCESSING OF 24-BIT BITMAP FILE WITH FILTER ‘MEAN’…………. 61<br />

ATANAS DESEV<br />

8 - BIT IP CORES USING LIKE BASIS FOR SYSTEM-ON-CHIP PLATFORM FOR REALTIME<br />

EFFICIENCY…………...…………………………………………………………………………………. 71<br />

ATANAS DESEV<br />

METHODS AND RESOUSCES FOR HARDWARE RTOS ACCELERATION...…………………… 81<br />

VLADIMIR VALOV, IVANKA VALOVA<br />

IMPORTANT MILESTONES IN DEVELOPMENT OF ANALYTICAL DATA PROCESSING<br />

THEORY………………………………………...………………………………………………………….. 89<br />

SVETLANA VASILEVA<br />

ALGORITHMS OF WORK OF NODES ON THE PROTOCOL FOR 2PL WITH PRIMARY<br />

COPIES IN DISTRIBUTED DATABASE MANAGEMENT SYSTEMS…………………...…………. 99<br />

VASIL STOYANOV<br />

WIRELESS SENSOR NETWORKS WITH DYNAMIC NETWORK TOPOLOGY………………… 107<br />

VELIN KRALEV, NINA SINYAGINA<br />

WEB SERVICE BASED SYSTEM FOR CUSTOMER RELATIONSHIP MANAGEMENT……...… 113<br />

RADOSLAVA KRALEVA, VELIN KRALEV<br />

ON MODIFICATION OF THE ITERATIVE SELF-ORGANIZING DATA ANALISYS<br />

TEACHINIQUE ALGORITHM…………………………………………...………………………………. 121<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 4 -<br />

VELIN KRALEV<br />

THE WEB SERVICES LIKE AN INSTRUMENT OF BUILDING THE DISTRIBUTED<br />

SOFTWARE SYSTEMS .................………………………………………………………………………... 129<br />

VELKO ILTCHEV<br />

ALGORITHM FOR PROPAGATION TO BASE CONJUNCTIONS FOR THE 2P-METHOD FOR<br />

QUERY PROCESSING IN DEDUCTIVE DATABASE SYSTEMS.....………………………………… 137<br />

VELKO ILTCHEV<br />

STORAGE, MANIPULATION AND RETRIEVAL OF ORDERED XML INTO/FROM<br />

RELATIONAL DATABASE……………………………………………………………………………… 147<br />

SIMEON MOEV, PETKO BAKALOV<br />

VALUATION OF AV-PROGRAMS EFFECTIVENESS ……………..................................................… 157<br />

CH. G. MOSCHOVITIS, E. G. PAPKELIS, H. T. ANASTASSIU, K. T. KARAKATSELOS, I. CH.<br />

OURANOS , P. V. FRANGOS<br />

AN ENHANCED STATIONARY PHASE METHOD (SPM) APPROXIMATION FOR THE<br />

ASYMPTOTIC CALCULATION OF THE SCATTERED ELECTRIC FIELD FROM A FINITE<br />

RECTANGULAR PLATE………............................................................................................ 163<br />

MARIA MARINOVA, ELENA DUNCHEVA<br />

SIMPLESCALAR SIMULATION TOOL ………………………………………………………………... 173<br />

YURI HOPTERIEV<br />

A MODULE FOR A DYNAMIC PRESENTATION OF EXAMPLES IN ELECTRONIC<br />

TEXTBOOKS ON WEB PROGRAMMING – A METHOD FOR ITS REALIZATION ………….. 185<br />

IVANKA VALOVA, BOZHAN ZHECHEV<br />

STUDY OF TECHNICAL POSSIBILITIES OF NEW VERSION OF MS COM+…………….…….. 191<br />

DILYANA BUDAKOVA, LUYDMIL DAKOVSKI<br />

INTELLIGENT VIRTUAL AGENTS-A NEW COMPUTER’S INTERFACE ....................... 201<br />

MALINKA IVANOVA<br />

WEB 2.0 TECHNOLOGIES IMPACT ON ACTIVE LEARNING IN ENGINEERING<br />

EDUCATION ……............................................................................................ 207<br />

SPIRIDON ARNAUDOV<br />

СПЕЦИАЛНО ДООПРЕДЕЛЯНЕ НА ЛОГИЧЕСКИ ФУНКЦИИ: ОПТИМИЗАЦИОННА<br />

ПРОЦЕДУРА "БАЛАР" В ПОСЛЕДОВАТЕЛНОСТНИЯ СИНТЕЗ ................................................ 213<br />

DOBRINKA PETKOVA, PETAR NENCHEV, KRASIMIR KRASTEV, VESELINA VASILEVA*,<br />

PENKA NEDELCHEVA<br />

STUDYING THE APPLICATION OF CAD SYSTEMS…………………………………………………. 219<br />

ATANAS KOSTADINOV<br />

VHDL MODELS OF SENSORS WITH ANALOG INPUT AND DIGITAL OUTPUT………………… 225


©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

11<br />

STAND-ALONE MODULE FOR USB DATA STREAM TO<br />

DMX512 AND ART-NET COMPATABLE PACKETS<br />

CONVERTION USING ARM STR711<br />

BOIAN MURATEV, JULIANA GROZDANOVA, BOYKO PETROV<br />

Abstract. This paper describes an ARM application for converting of USB data stream to<br />

two different standards – DMX512 and Art-Net. The module realizes bidirectional<br />

connection between personal computer and light objects network by Art-Net and<br />

unidirectional connection by DMX512. The personal computer connection is realizes by<br />

using USB 2.0 full speed interface.<br />

Key words: USB, DMX512, Ethernet, Art-Net, light object.<br />

УСТРОЙСТВО ЗА ПРЕОБРАЗУВАНЕ НА ВХОДЯЩ ПОТОК<br />

ДАННИ ПО USB ИНТЕРФЕЙС В DMX512 И ART-NET<br />

СЪВМЕСТИМИ ПАКЕТИ, ЧРЕЗ ARM МИКРОКОНТРОЛЕР STR711<br />

1. Въведение<br />

Разглежданото устройство позволява посредством персонален компютър да<br />

бъдат управлявани различни видове светлинни обекти, използвайки един от двата<br />

основни стандарта – DMX512 и Art-Net. Като светлиннен обект може да се разглежда<br />

всеки управляем източник на светлина, поддържащ някакъв стандарт за управление.<br />

DMX512 представлява стандартен протокол за връзка между управляващо<br />

устройство (предавател) и управляван светлинен обект (приемник). Той е създаден през<br />

1986 година от U.S.Institute of Theatre Technology (познат като USITT) [1].<br />

Един DMX512 порт (изход) може да управлява максимум 512 канала. Този порт<br />

е известен като DMX512 universe (или само universe). Когато е необходимо управление<br />

на повече от 512 канала, се използват втори DMX512 universe [1]. Връзката между<br />

използваните universes и броя на каналите, които могат да управляват те, е дадена в<br />

Таблица 1.<br />

Няма ограничение в броя на universes. Единствено скоростта на протичащите<br />

процеси може да бъде ограничаващ фактор за използването на повече universes. Важно<br />

е да се отбележи, че приемникът (управлявания светлинне обект) може да разпознае<br />

само канали от 1 до 512 [1]. Това означава, че в система, притежаваща повече от една<br />

universe, ще има физически идентични комбинации universe/канал. Като пример може<br />

да се разгледа управляващо устройство (DMX512 предавател), състоящ се от 5<br />

universes. Ако устройството приемник (светлинният обект) се свърже към канал 2331 на<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


12<br />

предавателя, то ще бъде свързано към universe №5 и ще има адрес 283. Това е така,<br />

защото изходният канал 2331 на предавателя се явява канал 283 от universe №5<br />

(Таблица 1).<br />

Таблица 1. Връзка между universe и брой канали<br />

UNIVERSES Управлявани канали<br />

1<br />

2<br />

3<br />

4<br />

5<br />

.<br />

.<br />

1 ÷ 512<br />

513 ÷ 1024<br />

1025 ÷ 1536<br />

1537 ÷ 2048<br />

2049 ÷ 2560<br />

.<br />

.<br />

DMX512 сигналът се предава посредством индустриален стандартен интерфейс<br />

наречен EIA485 (познат като RS-485) [1].<br />

Потокът от информация, който се изпраща от предавателя, е под формата на<br />

пакет (DMX пакет). Началото на пакета започва със стартов бит, информиращ всички<br />

приемници, свързани към предавателя, че започва изпращането на нов пакет. След<br />

стартовия бит се изпращат последователно данни към всеки един от каналите, като се<br />

започне от канал 1 до канал 512 (или канал с по-нисък номер, което зависи от дизайна и<br />

размера на управляващото устройство - конзола). Информацията за даден канал е<br />

разделена от тази за останалите посредством специален старт и стоп бит [1].<br />

Структурата на DMX512 потока от информация е представен графично на Фиг. 1.<br />

Оригиналният стандарт DMX512 непозволява обратно предаване на<br />

информация, т.е. светлинния обект неможе да изпраща данни за своето състояние към<br />

управляващото устройство. За отстраняване на този недостатък е необходимо<br />

използването на допълнителен хардуер.<br />

MTBP<br />

IDLE<br />

BREAK<br />

MAB START<br />

BIT<br />

DATA=0<br />

STOP<br />

BITS<br />

MTBF<br />

START<br />

BIT<br />

8 DATA BITS<br />

STOP<br />

BITS<br />

START CODE CHANNEL 1 NEXT CHANNELS<br />

Фиг. 1. DMX512 протокол<br />

Art-Net е Ethernet протокол, базиран на комплекта протоколи TCP/IP. Неговата<br />

цел е да позволи пренасянето на големи по размер DMX512 пакети върху широко<br />

използваните стандартни мрежови технологии. Първоначално е проектиран да работи<br />

над 10BaseT (мрежа със скорост до 10Mbit/s). Art-Net е създаден от Artistic License и за<br />

момента е свободно достъпен [4].<br />

Използването на Ethernet (10BaseT) позволява да бъде предавана до 40 пъти<br />

повече информация спрямо един DMX512 кабел и съответно да бъдът управлявани до<br />

40 пъти повече устройства. Също така, съсгласно Art-Net стандарта, светлинния обект


13<br />

може да връща обратно информация за своето състояние (ако това е заложено при<br />

неговото поректиране) към управляващото устройство [3].<br />

При Art-Net протокола по подразбиране се използват IP адреси Клас А. По този<br />

начин Art-Net устройствата могат да комуникират директно без да се налага<br />

свързването на DHCP сървър към мрежата. Използването на адреси от Клас А е<br />

допустимо в затворени мрежи. Това е важно тъй като трябва да е сигурно, че Art-Net<br />

информацията не се изпраща към Интернет или друг вид мрежа [4,2].<br />

Всички комуникации се осъществяват по UDP стандарт. Всеки Art-Net пакет<br />

формира полето за данни на UDP пакета (Фиг. 2) [4].<br />

IP ниво<br />

MAC ниво<br />

Физическо ниво<br />

Art-Net<br />

TCP UDP<br />

Фиг. 2. Място на Art-Net в мрежовия модел<br />

Микроконтролер<br />

Етернет контролер<br />

2. Описание на блоковата схема на устройството<br />

Разглежданото устройство е изградено от четири основни блока – управляващ<br />

микроконтролер, програмируема логика (CPLD), Ethernet контролер и RS-485 приемопредавател<br />

(Фиг. 3).<br />

USB<br />

connector<br />

uC CPLD<br />

POWER<br />

+<br />

LED<br />

CLK<br />

RESET<br />

OSC<br />

Ethernet<br />

controller<br />

Isolation Transformer<br />

RJ45 connector<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271<br />

CLK<br />

LAN LED<br />

2<br />

DMX512<br />

connector<br />

RS-485<br />

transceiver<br />

2<br />

2


14<br />

Фиг. 3. Блокова схема на устройството<br />

Микроконтролерът е основния управляващ елемент в схемата. Той<br />

инициализира периферията, LAN контролера, приема, обработва и изпраща данни.<br />

Използван е микроконтролер STR711FR1 на фирмата STMicroelectronics. Това е 32битов<br />

ARM микроконтролер, базиран на ядро ARM7DTMI. Характеризира се с: 128KB<br />

FLASH програмна памет; 16KB FLAH памет за данни; 64KB RAM памет; периферия,<br />

включваща USB интерфейс и два порта с общо 30 входно/изходни пина,<br />

мултиплексирани с UART интерфейс, SPI интерфейс, таймери, АЦП и др.<br />

Най-важното качество на използвания микроконтролер е вграденият USB v2.0<br />

интерфейс, работещ на пълна скорост (Full Speed – 12Mbit/s). По този начин се<br />

редуцира използвания хардуер, тъй като не се налага добавянето на външна интегрална<br />

схема за поддръжка на USB.<br />

Връзката между микроконтролера и Етернет мрежата се осъществява от<br />

интегрална схема CS8900A-CQ3 на фирмата Cirrus Logic. Това е Етернет решение,<br />

поддържащо пълен дуплекс (full-duplex) и обединява всички аналогови и цифрови<br />

части, необходими за изграждането на завършена Етернет схема. CS8900A<br />

позволяваща обмен със скорост до 10Mbits/s.<br />

Използването на праграмируема логика (CPLD) улеснява проектирането на<br />

печатната платка на устройството. Също така, по този начин се позволява да бъде<br />

използван само един тактов генратор с подхощята честота, а всички необходими<br />

тактови импулси се формират от CPLD. Използван е програмируем логически елемент<br />

на фирмата Xilinx.<br />

За предаване на данни към светлинни обекти поддържащи DMX512 се използва<br />

интегралната схема DS75176 от National Semiconductor. Тя представлява RS-485/RS-422<br />

приемо-предавател. Посоката на обмен на данните се определя посредством два пина.<br />

Въпреки, че в тази версия на устройството се реализира само изпращане на DMX512<br />

пакети, изплозването на приемо-предавател позволява при бъдещо усъвършенстване на<br />

устройството лесно да се реализира двупосочна връзка.<br />

3. Принцип на дейстиве на устройството<br />

Принципът на действие на устройството (програмното осигуряване) е<br />

илюстриран графично на Фиг. 4. При първоначално подване на захранване се<br />

преминава през няколко етапа на инициализация, включващи инициализиране на<br />

управляващия микроконтролер, инициализиране на USB периферията, инициализиране<br />

на Ethernet контролера.<br />

След приключване на процеса по инициализация, микроконтролера започва<br />

изпълнение на основния цикъл на програмата. Тук периодично се следи дали има<br />

приети данни от персонални компютър посредством USB интерфейса или от<br />

светлинните обекти поддържащи Art-Net по Ethernet мрежата.<br />

При получаване на данни от персоналния компютър, управляващия софтуер<br />

определя в кой от двата стандарта да бъдат пакетирани те преди да се изпратя към<br />

сватлинните обекти. Информацията за стандарта който ще се използва се добавя към<br />

данните при тяхното формиране от програмното осигуряване на пресоналния<br />

компютър.<br />

DMX512 данните се пакетира в DMX512 пакети и се изпращат към светлинните<br />

обекти поддържащи този стандарт през RS-485 предавателя DS75176.<br />

Данните за Art-Net мрежата се пакетират в Art-Net съвместими пакети (UDP<br />

пакети) и се предават от микроконтролера към Ethernet контролера, който от своя<br />

страна предава пакетите към Art-Net мрежата от светлинни обекти.


15<br />

В съответствие с Art-Net стандарта, устройството поддържа възможнжст за<br />

приемане на обратна информация от светлинните обекти, които позволяват това. За<br />

тази цел, в основния цикъл на програмата се следи дали Ethernet контролера е приел<br />

пакет с данни от Art-Net мрежата. Ако има приет UDP пакет, приложния софтуер го<br />

депакетира, извлича данните, които в последствие се пакетират в USB пакет и<br />

посредством USB интерфейса се изпращат към персаналният компютър.<br />

Подаване на<br />

захранване<br />

Инициализация<br />

Имали приети данни по<br />

USB?<br />

НЕ<br />

Имали приети данни по<br />

Етернет?<br />

НЕ<br />

ДА<br />

ДА<br />

Депакетиране на<br />

UDP пакета –<br />

извличане на<br />

данните<br />

Пакетиране на<br />

данните в USB<br />

пакет<br />

Изпращане на<br />

USB пакета към<br />

персонален<br />

компютър<br />

Пакетиране на<br />

данните в UDP<br />

пакет<br />

Изпращане на<br />

UDP пакета към<br />

Art-Net мрежата<br />

Фиг. 4. Принцип на действие на устройството<br />

Депакетиране на<br />

USB пакета –<br />

извличане на<br />

данните<br />

Пакетиране на<br />

данните в<br />

DMX512 пакет<br />

Изпращане към<br />

RS-485<br />

предавателя<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271<br />

DMX512<br />

Избор на стандарт за<br />

предаване на данните<br />

4. Заключение и постигнати резултати<br />

Едно от качествата на реализираното устройство е, че дава възможност<br />

персонален компютър да обменя данни с Етернет мрежа, без необходимостта от<br />

мрежов хардуер и софтуер. От друга страна, ако компютърът вече е свързан към друг<br />

вид мрежа, например Интернет, то използването на това устройство ще доведе до<br />

работа на тази мрежа и мрежата от светлинните обекти, без те взаимно да си влияят.<br />

Съгласно Art-Net стандарта, не се допуска изпращане на Art-Net информация към друг<br />

тип мрежа. Предотвратяването на взаимното влияние е ключов момент. Ако<br />

компютърът трябваше да е свързан едновременно директно към Art-Net мрежата на<br />

светлинните обекти и към друг вид мрежа, то щеше да се наложи да бъдат взети<br />

софтуерни мерки, за да се гарантира, че двете мрежи са независими една от друга и<br />

няма взаимно влияние.<br />

Art-Net


16<br />

Разгледаното устройство е реализирано практически. Наситената печатна платка<br />

може да се види на Фиг. 4.<br />

Фиг. 5. Практическа реализация на устройството<br />

ЛИТЕРАТУРА<br />

1. http://www.dmx512-online.com/<br />

2. Ст. Джиев. Индустриални мрежи за комуникация и упраление, Техника, София,<br />

2001.<br />

3. W. Howell, A. Artistic Licence Application Note 13: What is Art-Net?, Artistic Licence,<br />

2002.<br />

4. Specification for the Art-Net mx Ethernet Communication Standard, Artistic Licence,<br />

2002.<br />

5. J. Hyde, USB Design by Example, Intel University Press, 1999.<br />

Department of Electrical <strong>Engineering</strong><br />

Technical University–Sofia, Plovdiv Branch<br />

63, Saint Petersburg Str.<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: abpetrov@persecteam.com


©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

17<br />

NETWORK TRAFFIC GUARANTEE FOR DISTRIBUTED<br />

DESKTOP PLATFORMS<br />

HRISTO HRISTEV 1 , STOYAN MISHINEV 2<br />

Abstract: This paper describes the thin-client architecture and distributed desktop platforms<br />

over shared network topology. In this model only the input from keyboard or mouse activities and<br />

display output information is exchanged between thin-client server and terminal. These results in<br />

network traffic with characteristics substantially different from well-know conventional network<br />

traffic. For this study, we would like to analyze network performance and network possibility of the<br />

university network to support distributed desktop platform. We examine different policy based<br />

queuing for thin-client traffic management.<br />

Key words: thin clients, QoS, network performance, distributed desktop platforms<br />

ГАРАНТИРАНЕ НА МРЕЖОВИЯ ТРАФИК ЗА РАЗПРЕДЕЛЕНИ<br />

ДЕСКТОП ПЛАТФОРМИ<br />

1. Въведение<br />

Разпределените десктоп платформи, използвани към настоящият момент могат<br />

да бъдат катекоризирани според това как се разпределя изчислителният ресурс между<br />

клиента и сървъра. Едни от най-популярните и разпространени разпределени десктоп<br />

среди днес са X Windows [4,5,6], Citrix's MetaFrame продуктите [14], Microsoft RDP –<br />

базиран отдалечен десктоп, Virtual Network <strong>Computer</strong> (VNC) [17], изследователският<br />

прототип THINC, както и Sun Ray продукт линията [15]. Голяма част от тези<br />

платформи са проектирани като потребителски устройства с минимални функции.<br />

Целта е да се редуцира цената за брой десктоп система. Те обаче предоставят<br />

достатъчна гъвкавост и мобилност, както и пълната функционалност сравнима с тази на<br />

работните станции. Класифицират се като тънки клиенти (thin-client computing) но са<br />

известни и с други имена, като сървър-базирани изчислителни системи (server-based<br />

computing), терминални устройства (dumb terminals) и др.<br />

Съществуват два базови функционални модела за тънки клиенти. При единият,<br />

устройството на тънкият клиент е просто и се използва само като входно/изходно от<br />

потребителя. Сървъра приема команди генерирани от калвиатура и мишка, предоставя<br />

опресняване на дисплея, изпълнява приложения, комуникационни функции и съхранява<br />

данни.<br />

При вторият модел, сървъра изпраща части от данни и приложения към клиента.<br />

Клиента оперира с тези данни независимо и при необходимост изисква още данни за<br />

своята функционалност.<br />

Архитектурата на повечето тънки клиенти е централизирана и в голяма степен<br />

улеснява контрола върху софтуера, неговото конфигуриране и обслужване.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


18<br />

Централизацията обаче налага завишени изисквания към ресурси като сървър, система<br />

за съхраняване на данни и мрежова среда от , които зависи пълната функционалност на<br />

тънките клиенти. За разпределените десктоп платформи мрежовата цялост и<br />

пропусквателната и способност са от съществено значение. При пропадане на мрежата<br />

потребителите губят възможността да работят с файлове, приложения или каквото и<br />

да е до момента когато тънкият клиент отново се синхронизира със сървъра. Ето защо<br />

ресурсите на системата, както и комуникационната среда са подложени на завишени<br />

изисквания, като например способността на мрежата да се възтановява автоматично<br />

при пропадане на сегмент. Друго много важно условие за работоспособност на система<br />

от разпределени десктоп платформи е поддържане в номинални граници на<br />

предварително наложени изисквания относно закъснения и загуба на пакети.<br />

Наличието на чат от тези условия в реално работещи и вече съществуващи<br />

информационни инфраструктури не винаги съществува. При практическото<br />

реализиране на архитектура с тънки клиенти базиранa върху Sun Ray сървър софтуер, в<br />

локална компютърна мрежа с поделени ресурси и достатъчно голяма производителност<br />

се установиха моменти на кратковременни прекъсвания в работата на системата.<br />

Ефекта е подчертано изразен при наличие на трафик от типа на FTP, HTTP и предаване<br />

на големи последователности от данни по общата среда за пренос. Това е основната<br />

причина, която провокира проучване на проблема и намиране на решение,<br />

осигуряващо стабилна работа на разпределените десктоп платформи.<br />

Целта на тази статия е да представи изследване върху поведението на опашките и<br />

мрежовите характеристики във възли от граф, обслужващ архитектура на тънки<br />

клиенти заедно с други информационни ресурси.<br />

2. Модел на система с тънък клиент<br />

Представеният модел на среда за обслужване на тънък клиент е съобразен с<br />

параметри и звена, които имат основно влияние върху производителността на една<br />

разпределена десктоп система. В случая това са пропусквателна способност на<br />

комуникационният канал, производителност на сървъра и производителност на<br />

клиента. Можем да представим тези звена използвайки опростен модел от три<br />

последователни M/M/1 опашки показани на Фиг. 1. С цел минимизиране на задачата<br />

приемаме, че сървърът и процесите обслужващи тънкият клиент работещи върху него<br />

изцяло гарантират работоспособността на системата. Производителността във възела<br />

на тънъкият клиент основно зависи от компресията на получените данни и<br />

способността му да ги декодира. Приемаме, че тези характеристики са задоволителни.<br />

За целите на настоящото изследване изключваме влиянието на сървъра и тънкият<br />

клиент в модела.<br />

Фиг. 1. Модел на система за обслужване на тънък-клиент<br />

Възелът на комуникационният канал също може да бъде представен като<br />

каскада от последователни М/М/1 схеми - Фиг. 2. Приемаме, че честотата на<br />

постъпващите заявки от входният поток е с поасоново разпределение. Допускаме за<br />

всеки един от възлите, независимо обслужване на заявките с експоненциално<br />

разпределение на времето за обслужване. Постъпването на заявките в следващият възел


19<br />

или изходът им от системата да става в порядък на някяква фиксирана вероятност.<br />

Опашките да са с неограничена дължина. При тези условия можем да разгледаме всяка<br />

една M/M/1 схема като независима и да я анализираме самостоятелно.<br />

В модела средната сумарна латентност за системата от каскадни опашки ще е<br />

равна на сумата от средните латентности за всяка една опашка.<br />

Tr = Tri<br />

+ Tr j + Trk<br />

(1)<br />

За един възел средният брой на очакващи заявки за обслужване ще бъде<br />

ri = λiTri<br />

където:<br />

Tr - средно време за пребиваване на заявката в системата<br />

λ i - средното количество на постъпващи заявки за секунда в опашка ( n i )<br />

Tri - средно време за пребиваване на заявката в M/M/1 опашка ( n i )<br />

Фиг. 2. Модел на комуникационнен канал за пренос на данни<br />

За всяка опашка като независима M/M/1 схема можем да определим средното<br />

закъснение на заявките по формулата:<br />

Tsi<br />

Tsi<br />

Tri<br />

= =<br />

(2)<br />

1−<br />

ρ 1−<br />

λiTsi<br />

където<br />

ρ = λTs<br />

Tsi - средно време за ослужване във възела<br />

Времето за обслужване на заявките Ts във възела представлява и е в пряка<br />

зависимост от отношението на дължината на пакетите в битове ( L ) и скоростта за<br />

предаване на данни в битове за секунда ( R ).<br />

L<br />

Ts =<br />

R<br />

От тук<br />

L<br />

Tri<br />

= (3)<br />

R − Lλ<br />

i<br />

i<br />

От формулa (3) се вижда, че средното закъснение на заявките в комуникационният<br />

канал е в пряка зависимост от големината на обслужваните заявки, както и от скоростта<br />

за предаване на данни по линията.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


20<br />

За да изпълним условието и осигурим допустимата латентност в<br />

комуникационният канал, който обслужва разпределените десктоп платформи можем<br />

да приемем някои от следните решения.<br />

• да се задели самостоятелен канал за обслужване на системата от тънки<br />

клиенти<br />

• да се увеличи скоростта за предаване на данни в поделената преносна<br />

среда<br />

• приоритезиране на трафика в опашките на активните възли<br />

За случая с приоритезиране на трафика в опашките приемаме заявките с<br />

назначен приоритет единица (1) да се обслужват преди заявки с назначен приоритет две<br />

(2). Заявки с еднакъв приоритет да се обслужват от дисциплина за диспечеризация<br />

FIFO. Да не се отхвърлят заявки, които очакат обслужване от опашката. За целта са<br />

валидни формулите:<br />

λ = λ + λ<br />

i<br />

i1<br />

i2<br />

ρ i = ρi1<br />

+ ρi<br />

2<br />

При експоненциално разпределение на времето за обслужване на заявките<br />

средното закъснение в система с приоритетни опашки се определя по формула (4):<br />

λi1<br />

λi2<br />

Tri<br />

= Tri1<br />

+ Tri<br />

2<br />

λi<br />

λi<br />

където<br />

ρi1Tsi1<br />

+ ρi<br />

2Tsi2<br />

Tri1<br />

= Tsi1<br />

+<br />

1− ρi1<br />

(4)<br />

Tr<br />

i2<br />

= Ts<br />

i2<br />

Tri1<br />

− Ts<br />

+<br />

1−<br />

ρ<br />

i<br />

i1<br />

След отчитане на резултати за линия с пропусквателна способност от 10Mbps,<br />

средна дължина на малки пакети с големина 240 байта и съответно за големи пакети с<br />

големина 1500 байта, които постъпват с честота 20 пакета в секунда и средно време за<br />

обработка на пакетите съответно 1ms и 10ms, както и наложено условие за по- висок<br />

приоритет на малките пкети се отчете, че приоритетните пакети ще бъдат обслужени<br />

3,7 пъти по-бързо. Основеният недостатък на описаният модел е следствие от<br />

наложеното условие за неограничен размер на опашките. Модела не отчита загуби на<br />

пакети. За случая е направен симулационен модел и анализ на трафика от симулацията.<br />

Фиг. 3. Схема на симулационен модел


21<br />

3. Резултати от симулационен модел на система с тънък клиент в поделена<br />

мрежова среда<br />

За целите на симулацията е използван мрежовият симулатор NS-2 [16, 9], който<br />

представлява модулно конструиран дискретно-събитиен симулатор използван найчесто<br />

за изследвания в областта на мрежите. Симулационният модел показан на Фиг. 3<br />

се състои от четери възела свързани с дуплексни линии и пропусквателна способност<br />

от 10 Mbps. Закъснението по линиите е 10 ms. Възел n 0 генерира трафик към възел<br />

n 3,<br />

който трафик е идентичен с този изпращан от сървър към тънък клиент - Фиг.4.<br />

Възел n 1 генерира фонов UDP и TCP поток от големи пакети. Симулирани са два<br />

основни случая с различно управление на опашката за входящите пакети на възел n 2 .<br />

Фиг. 4. Трафик от система “сървър - тънък клиент”<br />

При първата симулация е моделирана услуга с “максимални усилия”. Мрежата<br />

се старае да обработи постъпващият трафик максимално бързо без да дава никаква<br />

гаранция относно тестовият поток и относителният резултат от своите усилия.<br />

Дисциплината за управлвние на опашката е FIFO а трафика не се приоритезира.<br />

Направената повторна симулация се основава на механизма за приоритетна<br />

обработка на трафика. Общият мрежов поток е разделен на класове в зависимост от<br />

числов признак – приоритет. Симулационният модел е със същите параметри на<br />

системата но тестовият поток се обслужва с по-висок приоритет. Използвани са клас<br />

базирани опашки.<br />

На Фиг. 5 са показани резултатите от симулационният анализ. От графиките се<br />

вижда, че за случая когато всички пакети се разглеждат като равноправни и заявките се<br />

обработват в порядъка на тяхното постъпване, пропусквателната способност на канала<br />

за тестовият поток варира в границите от 7,2 Mbps до 9,8 Mbps. Отчетеното усреднено<br />

закъснение за пакетите на тестовият поток е от порядъка на 26 ms а размера на<br />

опашката е достигнала до 24 броя чакащи обслужване пакета.<br />

За вторият случай с приоритетна обработка на трафика и управление на<br />

опашката се вижда, че отчетените параметри за тестовият поток са с по-добри<br />

характеристики. Долната граница за пропусквателната способност на канала е 9,2<br />

Mbps. Закъснението на пакетите варира в интервала между 10 ms и 11,6 ms, което е с<br />

два порядъка по-малко от случая при мрежа с “максимално усилие”. Максималниат<br />

брой пакети в опашката чакащи обслужване е занижен до 2 броя.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


Пропусквателна способност при управляема и неуправляема опашки<br />

22<br />

Латентност в ms при управляема и неуправляема опашки<br />

Размер на опашките в брой пакети<br />

Фиг. 5. Резултати от симулационният анализ на система показана на Фиг.3<br />

Резултатите от симулацията показаха достигане на високи, макар и в границата<br />

на допустимото стойности за закъснение по линията, при обслужване само на един<br />

тънък клиент и наличие на агресивен фонов трафик от големи пакети. Наличието на<br />

голям брой пакети в опашката предполага отхвърляне на новопостъпващите при<br />

запълване на буфера и. С цел изследване на проблема в среда с реални устройства от


23<br />

типа на тези, които работят в университетската локална мрежа експеримента бе<br />

повторен върху следната тестова постановка:<br />

4. Тестова постановка<br />

Тестовата постановка показана на Фиг. 6 включва три компютъра с операционна<br />

система UNIX и комутатор на Cisco Systems. Генерираният тестов поток от HOST1 се<br />

изпраща към HOST3. Фоновият поток генериран от HOST2 се изпраща към виртуален<br />

обект, чийто адрес е въведен ръчно в CAM таблицата на комутатора. Към същият порт<br />

е присъединен и HOST3. Целта е да се подели капацитета на изходящият порт от<br />

тестовият и фоновият потоци. За генерирането на синтетичен трафик е използван<br />

пакета Rude&Crude [7].<br />

Фиг. 6. Опитна постановка - конфигурация<br />

Както при симулацията, така и при тестовата постановка са изследвани два<br />

основни случая, с различно управление на опашката за входящите пакети на<br />

поделеният порт. При първия не е приложено специално управление на трафика. За<br />

целите на изледването при втория случай е приложено стриктно приоритезиране на<br />

трафика и назначаване на по-висок приоритет за тестовият поток. И в двата случая<br />

успоредно с тестовият поток се пуска агресивен фонов поток от големи пакети.<br />

Отчетени са основните характеристики на мрежовите изисквания, за обслужване на<br />

разпределена система от тънки клиенти а именно загуба на пакети и латентност.<br />

На Фиг. 7 са показани резултатите от изследването. Ясно се откроява голямата<br />

загуба на пакети, до 45% за случая на система с “максимално усилие” . Закъснението<br />

на пакетите от тестовият поток е в номинални стойности, според изискванията за<br />

обслужване на архитектура с тънки клиенти, базиранa върху Sun Ray сървър софтуер.<br />

При прилагане на политика със стриктни приоритети се вижда, че се повлияват както<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


24<br />

загубата на пакети така и закъснението. В случая не се отчита загуба на пакети при<br />

тестовият поток а неговата латентност в мрежата е 28 ms.<br />

Тестов поток - закъснение и загуби на пакети в опашка при мрежа с<br />

“максимално усилие” и наличие на фонов поток<br />

Тестов поток - закъснение и загуби на пакети в опашка с приоритети и наличие<br />

на фонов поток<br />

Фиг. 7. Резултати от изследването на тестовия поток чрез опитна<br />

постановка<br />

4. Заключение<br />

Основна причина за поява на кратковременни прекъсвания в работата на<br />

инсталираните тънки клиенти в съществуващата обща поделена информационна<br />

инфраструктура е загуба на пакети при наличие на агресивен трафик с големи пакети.<br />

При проектиране на компютърни мрежи които предполагат обслужване на<br />

разпределени десктоп платформи е необходимо да се планират устройства<br />

позволяващи вграждане на алгоритми и политики за управление на опашки. Проблем<br />

при вграждането на политика със стриктни приоритети може да възникне при излишък<br />

на високоприоритетният трафик. Тогава опашките с нисък приоритет ще останат не<br />

обслужвани. За такива мрежови среди е много удачно да се комбинират справесливи<br />

алгоритми за управление на опашки, както и клас базирани опашки.<br />

ЛИТЕРАТУРА<br />

1. William Stallings, High-speed network and internets – performance and Quality of<br />

Service; 2d edition


25<br />

2. Jean Walrand, An Intraduction to Queuing Networks, University of California<br />

Berkeley<br />

3. W. Richard Stevens, TCP/IP Illustrated, Volume1, Addison-Wesley professional<br />

computing series<br />

4. Jeff Horwitz, Unix System Management Primer Plus<br />

5. http://www.linuxdevcenter.com/pub/a/linux/2005/08/25/whatisXwindow.html<br />

6. http://www.its.strath.ac.uk/courses/x/<br />

7. http://www.xfree86.org/<br />

8. RUDE&CRUDE – UDP data emitter/collector http://rude.sourceforge.net/<br />

9. K. Fall, K. Varadhan, The ns Manual, The VINT Project, UC Berkeley, LBL,<br />

UCS/ISI and Xerox PARC<br />

10. К. Боянов, Хр. Турлаков, Компютърни мрежи ИНТЕРНЕТ, София 1998<br />

11. Corporate Headquarters, Catalyst 3550 Multilayer Switch Software Configuration<br />

Guide, Cisco Systems, Inc<br />

12. The FreeBSD Documentation Project, FreeBSD Handbook<br />

13. Rolf Kersten, Solaris(TM) OE Guide for New System Administrators, Sun<br />

Microsystems GmbH, Germany<br />

14. C. Broomes, E. Khnaser, R. Crump, M. Craft, Configuring Citrix MetaFrame XP<br />

for Windows, 2002<br />

15. M.Kuhn, P.Evans, Sun Ray protocol observations,<br />

http://www.cl.cam.ac.uk/~mgk25/sunray/protocol.html<br />

16. The Network Simulator ns-2 http://www.isi.edu/nsnam/ns/<br />

17. Virtual Network Computing http://www.cl.cam.ac.uk/research/dtg/attarchive/vnc/<br />

Department of Communication and Information Technology<br />

Technical University–Sofia, Plovdiv Branch<br />

25, Tsanko Dystabanov Str.<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail:crs@tu-plovdiv.bg<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

27<br />

ENHANCEMENT OF STANDARD DATA ANALYSIS<br />

METHODS<br />

IVANKA VALOVA, PETAR POPOV<br />

Abstract. The development of information technologies, which allow storage of everincreasing<br />

volumes of huge datasets, urged the necessity of creation and development of<br />

new methods for information analysis. Such needs has led to the rise of new and<br />

perfection of existing methodologies for data analysis, which objectives are to enhance<br />

the standard data analysis methods and to provide some clarifying results, expressed by<br />

notions of real world, and presented mathematically through “symbol objects”.<br />

This paper aims to study and present a methodology for data analysis, called symbolic<br />

data analysis-SDA. The idea for making use of this theory was proposed by Prof.<br />

Noirhomme- Fraiture in 2005 in course of preparation of a joint implementation project.<br />

The paper studies and summarizes results from scientific works of researchers, working<br />

in field of SDA.<br />

Key words: data analysis, symbolic objects, symbolic data table.<br />

РАЗШИРЯВАНЕ НА МЕТОДИТЕ НА СТАНДАРТНИЯ АНАЛИЗ НА<br />

ДАННИ<br />

1. Въведение<br />

С цел да се извлекат нови знания се поражда необходимостта от разширяване на<br />

методите на стандартния анализ на данни. Методологията наречена “символен анализ<br />

на данни” предоставя разяснителни резултати, изразени чрез концепциите на реалния<br />

свят, математически представени чрез разбираеми “символни обекти”. Символния<br />

анализ на данни е продиктуван благодарение на развитието на информационните<br />

технологии, които имат капацитет да съхраняват все по-увеличаващ се обем от<br />

огромни набори данни.<br />

Описанията на данни се наричат “символни”, когато те са по-сложни от<br />

стандартните данни, поради факта, че те съдържат вътрешни променливи и са<br />

структурирани. Символните данни произтичат от много източници, с цел да се<br />

обобщят огромни множества от данни. Те изискват по-сложни таблици наричани<br />

“символни таблици за данни”, защото една клетка от таблицата не съдържа както<br />

обикновено единични количествени или категоризиращи стойности. Една клетка може<br />

да съдържа няколко стойности свързани от таксономия или интервали с логически<br />

правила и т.н. Нуждата от разширяване на стандартните методи за анализ на данни<br />

(изследователски, групиращ …..) към символни таблици за данни, се увеличава с цел<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


28<br />

да се добие по-точна информация и да се обобщят огромни набори от данни съдържани<br />

в базата данни.<br />

Основни дефиниции:<br />

“Символен анализ на данни” - разширение на стандартния анализ на данни към<br />

символни таблици. “Символни таблици за данни” - една клетка с данни не съдържа<br />

както обикновено единични количествени или категоризиращи стойности. Клетката<br />

може да съдържа няколко стойности свързани от таксономия или интервали с<br />

логически правила<br />

“Символните обекти” - представляват разяснителен резултат от изчисления на<br />

стандартен анализ на данни и могат да бъдат използвани с цел да се дефинират<br />

запитвания към базата данни.<br />

“Извличане на знание” означава да се извлекат разяснителни резултати, представени<br />

чрез “символни обекти”.<br />

“Символните обекти”-моделират “идея” или “физически съществуваща<br />

единица” в реалния свят. Какво наричаме идея? Има два вида “идеи”. брилянтно<br />

дефинирани от Арнолд и Никол [1] и Ж.П. Шаньо [4]:<br />

1. “Идеята за реалния свят” като град, регион, сценарии за пътно транспортно<br />

произшествие, вид безработица, …… Идеята е дефинирана от понятията “намерениесхващане”<br />

и “обхват” [1]. “Схващането- намерението на една идея са атрибутите,<br />

които тя съдържа и които не могат да бъда отнети от нея без тя да бъде разрушена.<br />

Например- схващането на идеята за триъгълник включва бегла степен, фигура, три<br />

линии, три ъгъла, равенството на тези три ъгъла на два прави ъгъла и т.н. Обхват на<br />

дадена идея, предметите към която тя се отнася, които са също така наричани по-нисши<br />

на даден универсален термин, който е по-висш за тях. По този начин идеята за<br />

триъгълник, като цяло обхваща всички различни видове триъгълници.”<br />

2. “Идеята за нашия разум” (наречени “умствени обекти”, както е<br />

дефинирано от Ж.П. Шаньо, който представя в нашия разум идеи за реалния свят, чрез<br />

тяхното намерение и “начина за изчисляване на техния обхват”, а не обхватът сам по<br />

себе си тъй като няма място за всички възможни обхвати.<br />

Идея за нашето съзнание може математически да бъде моделирана от символен обект,<br />

който е дефиниран от функцията за описание "d" (т.е. нейното намерение) и функцията<br />

за нанасяне “а” способна да изчисли нейния обхват, например описанието на това което<br />

наричаме “кола” и начина на разпознаване, че дадена съществуваща единица на<br />

реалния свят е кола. Идеята за реалния свят може да бъде моделирана от символен<br />

обект и неговия обхват. Докато “идеите” или “съществуващите единици” на реалния<br />

свят са математически моделирани от “символни обекти”, тяхното компютърно<br />

моделиране е предоставено от така наречените “обекти” използвани в “обектно<br />

ориентирания език”-например в компютърни езици като C ++ или JAVA.<br />

Според традицията на Аристотел, идеите са характеризирани от логическо<br />

свързване на свойства. Според традицията на Адансон [14], (Адансон (1727-1806 е бил<br />

френски натуралист, изпреварил с много времето си) идеята е характеризирана от<br />

набор от подобни един на друг обекти.<br />

Според традицията на Аристотел, ако всички елементи намиращи се в обхвата<br />

на понятието са еквивалентни, третата тенденция произлизаща от психологията и<br />

познавателната наука Рош (1978), цели да се вземе предвид, че идеите трябва да бъдат<br />

представени от класове, които “имат склонност да бъдат дефинирани от гледна точка<br />

на прототипни примери, които съдържат атрибутите, които са най-представителни за<br />

предметите вътре във класа”. Следвайки Вагнер, Виле [26] казва: “в традиционната<br />

философия, нещата за които тяхното намерение описва всичките свойства валидни за<br />

обекта на техния обхват, се наричат “идеи”.


29<br />

Символните обекти комбинират предимствата на тези четири тенденции:<br />

1. Традицията на Аристотел, при която те могат да имат разяснителната<br />

сила на логическо описание на идеите, които те представят.<br />

2. Адансонската традиция, при която елементите на обхвата на символния<br />

обект са подобни едни на други в смисъл, че те трябва да удовлетворяват по най-добър<br />

начин същите свойства (не задължително от булевата алгебра). В този смисъл идеите<br />

които те представят са политеистични [14].<br />

3. Гледната точка на Рош, където тяхната функция на елементи дава<br />

възможност, да се предоставят прототипни примери, характеризирани според найпредставителните<br />

атрибути [7].<br />

4. Свойството на Виле е удовлетворено от така наречените “завършени<br />

символни обекти”, което може да докаже, че те основават решетката на Галоа (виж<br />

например, Диде [3, 4, 5].<br />

2. Кратък обзор<br />

След като първите документи анонсират основните принципи на символиния анализ на<br />

данни [3], много трудове са били написани в същата посока. По-важни от тях са:<br />

o Трудовете на Дж. Леб [22], Е. Диде[4], Р. Вин (1995)[21], Конрът (1993)[17] - В<br />

случая когато обектите са описани от символни данни, и в случаите на структурирани<br />

данни са разработeни разширения на стандартни дървета на решения.<br />

o Факториалния анализ на обектите, дефиниращ главен компонентен анализ<br />

описан от един вектор на цифрови интервали и в същата посока грижейки се за дадени<br />

подвластни правила ( Лауро и Палумбо (1998) [2 ], Р. Верд и деКарвальо (1998) [20].<br />

o “правила за символно разграничение”- Е. Периьол, “сегментиращите дървета за<br />

напластяващи данни”- М.К. Браво, Дж. М. Гарсия-Сантесмасес (1998)<br />

разграничителния анализ на Кернел, започващ от различието между символните<br />

описания. С. Лисоа (1998) и Дж.Пи. Расън [18].<br />

o връзка с територията на “основаното на примери аргументиране”- Е. Ориол<br />

(1995). С цел да се изберат символни променливи, които разграничават по най-добрия<br />

начин обектите или класовете, няколко трудове са изработени от Р. Вин (1991) [21] и<br />

Зиани (1996) [25].<br />

o извличане на символни обекти от факториален анализ на данни Гетлър-Сума<br />

(1992), Смади (1995).<br />

o предоставяне на символни обекти от времеви серии, Ферари, Гетлър-Сума, К.<br />

Пардо, Х. Тонг (1995)[8].<br />

o Дисертации представени в Париж 9 – Университета Дафин:<br />

o Мфомоне (1998), изграждане на пирамида, където съединение е<br />

асоциирано със символен обект [6].<br />

o Шавен (1998), разделение на набор от символни обекти, чрез “top-down”<br />

алгоритъм, който също предоставя символен обект, асоцииран с всеки<br />

придобит клас.<br />

o Хилали (1998) изобразяването на класове от обекти, описани чрез вектор<br />

на вероятни разпределения.<br />

o Полаило (1998) разширяването на решетките на Галоа, до символни<br />

данни при нанасяне и “завършени” символни обекти получаване на<br />

резултат.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


30<br />

3. Произход на символния анализ на данни<br />

Символният анализ на данни произлиза от едновременното влияние на няколко<br />

сфери на анализ:<br />

- стандартният изследователски анализ на данни, където се отдава по-голямо<br />

значение на обектите, отколкото в стандартната статистика и където символиният<br />

подход разширява методите до по-сложни описания на единиците и дава поразяснителни<br />

резултати.<br />

- Изкуственият интелект (AI), където повече усилия са посветени в откриването<br />

на програмни езици, с цел да се представи сложно знание, вместо IR p вектори на<br />

стандартните статистически единици. Трябва да бъде отбелязано, че простият език<br />

използван с цел да се представят символните обекти е повече вдъхновен от езиците<br />

основани на логика от първа група [23] , отколкото от графическата презентация.<br />

Трябва също да бъде отбелязано, че в символния анализ на данни, ние не сме особено<br />

заинтересувани от компютърния език (SQL, C++, JAVA, ...), който е използван с цел да<br />

се представят символните обекти, а от тяхното математическо моделиране, начина по<br />

който те са индуцирани от данните, тяхното графично представяне и т.н.<br />

- Цифровата таксономия в биологията, интелигентните машини в изкуствения<br />

интелект, класифицирането в анализа на данни [9, 19].<br />

4. Приложение на символния анализ на данни<br />

В логическите съчинения („Органон”) на Аристотел (IV в. пр. н.е.) ясно се<br />

разграничава “първа група обекти” (като кон или човек), разглеждани като единица<br />

асоциирана към индивид от света на “втора група обекти” като единица асоциирана<br />

към клас от индивиди.<br />

Първата цел е да се разшири стандартния анализ на данни към втората група субекти.<br />

Пример:<br />

При преброяване на населението на дадена държава, всеки обект от всеки регион<br />

е описан от набор от цифрови или категоризиращи променливи, предоставени в<br />

няколко релации в базата данни и е разглеждан като “първа група обект”.<br />

С цел да се изучат регионите считани като “втора група обекти”, ние можем да опишем<br />

всеки регион обобщавайки стойностите взети от техните жители, чрез интервали или<br />

под набори на категоризиращите стойности, или хистограми или вероятностни<br />

разпределения и т.н. в зависимост от променливата. Създава се “символна таблица за<br />

данни”, където всеки ред дефинира “описанието” на региона и всяка колона е свързана<br />

към символнтаа променлива. Разширяване на стандартния анализ на данни към<br />

символна таблица за данни е първата цел на методологията наречена “символен анализ<br />

на данни”.<br />

Друга важна цел е да се придобие (или да се “извлече”) разяснителен резултат (т.е.<br />

знание) чрез извличане, на така наречените “символни обекти”, които моделират<br />

“идея” или “физическа съществуваща единица” в реалния свят. “Символичен обект” се<br />

дефинира от неговото “намерение” и чрез начина на намиране на неговия “обхват”.<br />

Например описанието на регион се нарича “намерение”, набора от обекти, които<br />

удовлетворяват това намерение, се нарича “обхват”. Синтаксисът от символични<br />

обекти трябва да има разяснителна сила.<br />

Например, символният обект дефиниран от следния израз:<br />

a(w) = [age(w) ∈ [20, 50] ] Λ [Брой на децата (w) ≤ 3] ни предоставя:<br />

o намерението на клас от обекти чрез описанието d = ( [20,50], 3),<br />

където [20, 50] е интервал на произволна променлива, свързана с региона,<br />

отнасящ се за възрастта на променливата,


31<br />

o калкулиране на обхвата чрез функция “а” дефиниран с помощта на<br />

релации Λ and ≤ .<br />

o обектът "w" принадлежи към “обхвата” ако неговата възраст е<br />

между 20 и 50 години и има по-малко или 3 деца.<br />

Този вид символен обект, може да бъде разширен по следния начин: обектите са от<br />

втората група (като градове и региони) и представят класове от обекти от първа група,<br />

следователно описанията на обектите са предоставени чрез разпределения (например<br />

хистограма на възрастта в даден град). В този случай трябва да се дефинира различен<br />

вид взаимовръзка “R” и праг с цел да се калкулира обхвата.<br />

Фиг. 1 представя отделните етапи на анализ на символни данни.<br />

Фиг.1 Символен анализ на данни<br />

5. Използване на класове в символния анализ на данни<br />

Един естествен въпрос изниква при всичките тези сфери на анализа: как се<br />

получават класовете и тяхното описание?<br />

В исторически план ние можем накратко да кажем, че съществуват три тенденции:<br />

Първата предложена от Жусо през 1748 година [12] е традицията на Аристотел и<br />

се състои в това да се дефинират класовете отгоре надолу, чрез добър подбор на<br />

свойствата, които ги характеризират от най-общия до най-специфичния. Получава се<br />

дърво на решения, където всяко разклонение е характеризирано чрез релации от<br />

свойства. Много други са продължили тази тенденция, стартирайки със обекти от първа<br />

група: Бреиман и колектив (1984) [13], а също и стартирайки със обекти от втора<br />

група: Х. Раламбонрейни (1991) [10], Лебе, Р. Виджин (1991) [21,22].<br />

Втората тенденция, представена за първи път от Адансон (1757) [14], който<br />

представя първия алгоритъм за “Последователно натрупващо се йерархично<br />

клъстериране”. Този добре познат “bottom up” алгоритъм, стартиращ чрез класове<br />

редуцирани до обекти, слива на всяко ниво най-сходните класове. Тази тенденция е<br />

добре представена от Уард (1963)[25], Жардин и Сибсън (1971), Снийт и Сокъл (1973),<br />

Жамбу (1978), Роа (1985), Бок (1974 ), Сельо, Говаер, Льошовалие и Раламбондраини<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


32<br />

(1989), и др. Класовете получени по този начин, съдържат сходни обекти. Тогава е<br />

възможно те да бъдат обобщени чрез разделяне на връзките от свойства, ето защо тези<br />

класове са наречени “политеистични” противно на класовете обобщени от връзки от<br />

свойства наречени “монотеистични”. Докато от друга страна първата тенденция ражда<br />

монотеистични класова чрез “top-down” процес, втората произвежда политеистични<br />

класове чрез "bottom up” процес. В тази рамка, фамилния метод наречен<br />

“Концептуално клъстериране”, е бил разработен за преглед през осемдесетте години от<br />

Ленгли и Сейдж (1984), Лебовиц (1983), Д.Х. Фишер. (1987) и Фишер и Ленгли (1986).<br />

Вместо да произвежда дървета, както е при Диде (1984), Бертран (1986) например, е<br />

описан възходящ процес на изграждане на пирамида от политеистични класове (т.е.<br />

обобщаване на йерархични дървета, позволяващи припокриване на гроздове). При<br />

Брито и Диде (1991) и Брито (1994) една възходяща пирамида произвежда<br />

монотеистични класове.<br />

Третата тенденция се състои в директното търсене на класове и тяхното<br />

представяне. Например “Методът на динамичното клъстериране” [3, 4, 5], дефинира<br />

обща рамка и алгоритми, които целят да откриват едновременно класове и техните<br />

представяния по такъв начин, че те “да съвпадат” заедно по възможно най-добрия<br />

начин. Този подход е бил използван с няколко видове между-класови структури<br />

(разделения, йерархии, …..) и представителни методи за всеки клас (начални числа, оси<br />

на множители, регресии, …..). При Диде (1976), е предложено логическо представяне<br />

на гроздове. С оглед на “Концептуалното клъстериране”, алгоритъм базиран на метода<br />

за динамично клъстериране или вдъхновен от него, сред другите пионерски документи<br />

на “Концептуалното клъстериране” трябва да се споменат трудовете на Льошавалие<br />

[24], Сиди (1980), Михалски и Степ [23].<br />

6. Визуализация на символни обекти: Решението Zoom Star<br />

В този раздел са представени няколко метода и софтуер, посветени на<br />

визуализацията на символни обекти [15, 16]. Те използват радиални графи. Същите<br />

могат да бъдат представени двуизмерно (Zoom Star, Simple Star) или триизмерно<br />

(3DZoom Star, Temporal Star). Всяко изображение се отнася само за един набор<br />

индивиди в агрегирана форма, но няколко обекта могат да бъдат сравнени, когато те са<br />

представени един до друг или когато са наложени един върху друг. Възможно е също<br />

така да бъде визуализирана еволюцията на един обект, който се променя с времето. За<br />

представянето на различните характеристики се използва звук.<br />

Фигура 2 представя стойността на 8 стоки за три различни седмици. Това позволява<br />

анализ на еволюцията на стоки в един портфейл, в зависимост от времето.<br />

Фиг. 2: Анализ на еволюцията на 8 стоки за три различни седмици [15 ]


33<br />

6.1 Триизмерен Zoom Star<br />

В тази версия, плоскостта на звездата се вижда триизмерно и хистограмите<br />

асоциирани с категорийните променливи са представени директно върху оста.<br />

Възможно е обръщането на фигурата с цел откриването на най-добрия ъгъл за изглед.<br />

Триизмерният Zoom Star може също така да бъде изобразен един до друг.<br />

6.2 Временна звезда<br />

Това представяне е използвано, за да визуализира един символен обект изменящ<br />

се с времето. Триизмерните Zoom Stars визуализиращи един обект в различни моменти<br />

във времето са нишка в централната ос представяща времето. Диаграмата може да бъде<br />

увеличена, преместена, завъртяна около времевата ос (фигура 3). За подчертаване на<br />

еволюцията от един временен момент към друг, външните (или вътрешните) краища на<br />

интервалите могат да бъдат свързани, правейки външен (или вътрешен) прозрачен воал.<br />

Фигури 2 и 3 представят стойността на 8 стоки от един и същи портфейл, изменящи се<br />

за период от 8 седмици.<br />

Фигура 3: Презентация на временна звезда за стойността на стоки през 8<br />

последователни седмици. [16]<br />

6.3 Анимиране в двумерен Zoom Star<br />

Анимирането може също така да бъде използвано, за да покаже промените на<br />

набори в зависимост от времето. При свръх налагането на двумерни звезди вариращи<br />

във времето (както е в фигура 2), ние получаваме анимиран ефект показващ<br />

еволюцията на един обект. Използвани са различни цветове за да бъде ясно изразен<br />

процеса.<br />

Модулите са разработени в среда Java, OpenInventor, 3D MasterSuite и Java Media<br />

Framework. OpenInventor е тримерен графичен API, използващ стандарт OpenGL. 3D<br />

Master-Suite разширява и включва OpenInventor и триизмерни графични класове от<br />

високо ниво. Потребителят е снабден с няколко интерактивни средства. Те касаят<br />

стандартните визуализационни характеристики, като увеличаване, ротация на фигурите<br />

и настройки на цвета и фона.<br />

7. Заключение<br />

Развитието на информационните технологии, които имат капацитет да<br />

съхраняват все по-увеличаващ се обем от огромни набори от данни породи<br />

необходимостта от възникване и развитие на нови методи за анализ на информация.<br />

Тази потребност доведе до възникване на нови и усъвършенстване на съществуващите<br />

методологии за анализ на данни, чиито цели са да разширят методите на стандартния<br />

анализ на данни и да предоставят по разяснителни резултати, изразени чрез<br />

концепциите на реалния свят, математически представени чрез “символни обекти”.<br />

Тази статия изследва методология за анализ на данни наречена символен анализ на<br />

данни. Идеята за използването на тази теория ни беше предлажена от проф.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


34<br />

Noirhomme- Fraiture през 2005 година по време на подготовката на съвместен проект.<br />

Статията изследва и обобщава трудове на учени работещи в тази област.<br />

Цел на нашата бъдеща работа ще бъде разработване на нови алгоритми в анализа на<br />

символни данни, разширяване на методологията на символния анализ на данни чрез<br />

използавне, невронни мрежи, размита логика и т.н.<br />

ЛИТЕРАТУРА<br />

1. А. Arnault and Р. Nicole, LaLogique ou l’art depensur” Reprinted by Froman, Stuttgart, 1965.<br />

2. C. Lauro, F. Palumbo, "New approaches to Principal Component Analysis of Interval Data".<br />

Proc. NTTS'98 Sorrento, Italy. Nanopoulos, Garonna, Lauro edit. Eurostat (Luxembourg), 1998.<br />

3. E. Diday. Orders and overlapping clusters by pyramids. In: Multidimensional Data Analysis (eds. J.<br />

De Leeuw, W. J. Heisen, J. J. Meulman and F. Critchley), DSWO Press, Leiden, 201-234, 1986.<br />

4. E. Diday, Introduction a e’Approche Symbolique en Analyse des Donnees. Premiere Jouneles<br />

Symbolique-Numerique, CEREMADE, Universite Paris - Dauphine, 21-56, 1987.<br />

5. E. Diday, Emilion, R. and Hillali, Y. (1996). Symbolic Data Analysis of Probabilistic Objects by<br />

Capacities and Credibilities. Atti Della XXXVIII Riunione Scientifia, 5-22.<br />

6. E. Mfoumoune, "Les aspects algorithmiques de la classification ascendante pyramidale et<br />

incrémentale" . Thèse de doctorat, Université Paris 9 Dauphine, 1998.<br />

7. E. Rosch, "Principle of categorization". E. Rosch, B. Lloyd edits. Cognition and Categorization ,<br />

pp 27-48 . Hillsdale, N.J.: Erlbaum, 1978.<br />

8. Ferraris, Gettler-Summa, C. Pardoux, H. Tong (1995) "Knowlege extraction using stochastic<br />

matrices: Application to elaborate a fishing strategy" Proc. Ordinal and Symbolic Data Analysis.<br />

Paris ; Diday, Lechevallier, Opitz edit. Springer Studies in Classification.<br />

9. Georgi Kirov, K. Trichkov , "Soft Computing agents in distributed network applications",<br />

International Scientific Conference Informatics in the Scientific Knowledge 2006, ISK’2006, June<br />

28 – 30, 2006,Varna, Bulgaria, pp. 143-153.<br />

10. H. Ralambondrainy, "Apprentissage dans le contexte d'un schéma de base de Données"<br />

Kodratoff, Diday edit. CEPADUES, Toulouse, 1991.<br />

11. I. Valova, Knowledge extraction from data bases, KMPro, Bulgaria - Chapter meeting, Sofia,<br />

19.06.2006.<br />

12. Jussieu, "Taxonomy. Coup d'oeil sur l'histoire et les principes des classifications botaniques".<br />

Dictionnaire d'Histoire Universelle, 1748.<br />

13. L. Breiman, L., Friedman, J. H., Olshen, R. A. and Stone, C. J. Classification and<br />

Regression Trees, Wadsworth, 1984.<br />

14. M. Adanson "Histoire Naturelle du Sénégal- Coquillages". Bauche Paris, 1757.<br />

15. M.Noirhomme- Fraiture, M.Rouard: Visualising and Editing Symbolic Objects,, in Hans-<br />

Hermann Bock, Edwin Diday (eds.):Analysis of Symbolic Data. Exploratory methods for extracting<br />

statistical information from complex data., Springer Verlag, Heidelberg, 2000, ISBN 3-540-66619-<br />

2.<br />

16. M. Noirhomme-Fraiture: Visualization of Large Data Sets: the Zoom Star Solution, Journal of<br />

Symbolic Data Analysis, vol 1, July 2002. http://www.jsda.unina2.it<br />

17. N. Conruyt, (1994) "Amélioration de la robustesse des systèmes d'aide à la description, à la<br />

classification et à la détermination des objets biologiques. Thèse de doctorat, Université Paris 9<br />

Dauphine.<br />

18. P. J. Rasson, S. Lissoir, "Symbolic Kernel discriminante analysis" Proc. NTTS'98 Sorrento,<br />

Italy. Nanopoulos, Garonna, Lauro edit. Eurostat (Luxembourg), 1998.<br />

19. P. Andreeva, S. Vassileva, A. Afuzova-Christova "Improved Models for Machine Learning<br />

through Density Estimation", International Scientific Conference Informatics in the Scientific<br />

Knowledge 2006, ISK’2006, June 28 – 30, 2006,Varna, Bulgaria, pp. 89-105<br />

20. R. Verde, and DeCarvalho, F. A. T. Dependence Rules Influence on Factorial Representation of<br />

Boolean Symbolic Objects. In: Knowledge Extraction form Statistical Data, 1998.<br />

21. R. Vignes, "Caractérisation automatique de groupes biologiques". Thèse de doctorat, Université<br />

Paris 9 Dauphine, 1991.


35<br />

22. R. Vignes and Lebbe J. "Génération de graphes d'identification à partir de descriptions de<br />

concepts", in Induction Symbolique-Numérique. Kodratoff, Diday edit. Cepadues (Toulouse), 1991.<br />

23. S. Michalski, and Stepp, R. E., Learning from Observation: Conceptual Cluster- ing. In:<br />

Machine Learning (eds. R. S. Michalski, J. G. Carbonell, and T. M. Mitchell), Springer-Verlag, 331-<br />

363, 1984.<br />

24. V. Stephan, V. Hebrail, G. and Lechevallier, Y. (2000). Generation of Symbolic Objects from<br />

Relational Databases. In: Analysis of Symbolic Data (eds. H. -H. Bock and E. Diday), Springer-<br />

Verlag, 78-105, 2000.<br />

25.Ward, 3 hierarchical groupings to optimize an objective function". J. Amer. Stat. Assoc. 58, pp.<br />

236-244, 1963.<br />

26. Wille R. (1989) "Knowledge Acquisition by methods of formal concepts analysis, in Data<br />

Analysis, Learning symbolic and Numeric Knowledge. Diday edit. Nova Science Publishers, 1989.<br />

27. Ziani . (1996) "Sélection de variables sur un ensemble d'objets symboliques" Thèse de doctorat,<br />

Université Paris 9 Dauphine<br />

Institute of Control and System Research<br />

Bulgarian Academy of Sciences<br />

Akad. Bonchev str., Bl.2, P.O. 79<br />

1113 Sofia<br />

BULGARIA<br />

E-mail: vania@icsr.bas.bg<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

37<br />

APPLES GRADING USING INDEPENDENT COMPONENT<br />

ANALYSIS<br />

KRASSIMIR KOLEV<br />

Abstract. The mathematic model of Independent Component Analysis (ICA) is presented. The<br />

ICA is one of the most widely used methods for blind source separation. Spectral characteristics of<br />

apples were analyzed. Two main independent components were found which play a role in the<br />

ripening of apples. The method can be implemented in a real time sorting machine. The classification<br />

system performs well with a small number of apples data is shown, which increases the speed of the<br />

fast ICA algorithm.<br />

Key words: apple grading, independent components<br />

КЛАСИФИКАЦИЯ НА ЯБЪЛКИ ИЗПОЛЗВАЙКИ<br />

МЕТОДА НА НЕЗАВИСИМИТЕ КОМПОНЕНТИ (ICA)<br />

1. Въведение<br />

Ябълките са плодове с богато съдържание на ценни съставки. Ябълковия плод е<br />

един от най-консумираните и притежава противораково и противогрипно действие.<br />

Зрелостта на ябълките е процес свързан с разлагане и намаляване на хлорофила и<br />

изграждане на каротиноиди. Хлорофила и каротиноидите имат специфичен добре<br />

изучен абсорбционен спектър. Спектъра на излъчване на ябълките е комбинация на<br />

тези индивидуални спектри. Използвайки спектралните характеристики за ябълки е<br />

възможно да се определи концентрацията на основните вещества съдържащи се в<br />

ябълките. Възможно е намиране на регресионен модел на база на обучение чрез<br />

спектрални изображения със известни концентрации на веществата определени чрез<br />

хроматографски анализ.<br />

Калибрирането на спектралните изображения използвайки химически еталонни<br />

измервания е бавен и скъп процес който затруднява практическото приложение. Това<br />

налага да се търсят нови подходи за изграждане на регресионни модели и<br />

класифициране без обучител. Техниките които могат да извършват класификация без<br />

обучител са известни като скрито разделяне на сигнали [3]. Един от най-широко<br />

използвани съвременни методи за разделяне на скрити сигнали е метода на<br />

независимите компоненти (ICA). Главната цел на изследването е възможността за<br />

прилагане на метода на независимите компоненти (ICA) за калибриране на<br />

класифицираща система за ябълки. Използвайки метода на независимите компоненти<br />

(ICA) е направен опит за разгадаване на специфични компоненти в спектъра на<br />

ябълките. Резултатите от анали са за сравнени с тези определени чрез хроматографски<br />

анализ.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


2. Материали и методи<br />

38<br />

Спектралното изображение се състои от голямо количество m пиксела. Всеки<br />

пиксел съдържа стойности на поглъщане за k дължини на вълните. Когато<br />

пространствената връзка на пикселите се пренебрегне, спектралното изображение може<br />

да бъде описано като двуразмерна матрица Х, където Х съдържа наблюдаваните<br />

променливи (x1,x2,…,xk) за m пиксела, xi е стойността на поглъщане за дължини i<br />

(i=1…k). Спектъра на пиксел l (l=1…m) може да бъде разглеждан като линейна<br />

комбинация на спектрите на поглъщане на веществата в плода. В контекста на метода<br />

на независимите компоненти (ICA) тези вещества се наричат независими компоненти.<br />

Матрицата S съставена за независимите компоненти (s1,s2…,sk), si е вектора на<br />

стойностите на поглъщане на независимите компоненти за дължина i. Спектъра на<br />

поглъщане на независимия компонент j в плода се отразява чрез (sj,1,sj,2,…sj,k) и се<br />

означава като IC-j. За да получим от Х матрицата S, е нужно да се знае<br />

комбинационната матрица А с размерност m.n т.е.<br />

X=A.S (1)<br />

Независимите компоненти sij са скрити променливи и те не могат да бъдат<br />

наблюдавани директно. Комбинационната матрица А също се смята, че е неизвестна.<br />

Задачата на метода на независимите компоненти (ICA) е да намери и двете матрици A и<br />

S чрез Х на наблюдаваните спектрални изображения. Известно е че това може да бъде<br />

направено когато компонентите са взаимно статистически независими и имат не<br />

гаусово разпределение.<br />

Размера на А матрицата е пропорционален на броя на пикселите в Х матрицата.<br />

Ако се използват всички пиксели на спектралното изображение, матрицата Х ще стане<br />

твърде голяма. Затова се използва случайно избрана серия от пиксели. След определяне<br />

на A и S може да се пресметне концентрацията на всички пиксели на спектралното<br />

изображение. За да получим матрицата на концентрация за всички независими<br />

компоненти се използва:<br />

'<br />

'<br />

A im = S.X im<br />

(2)<br />

Разгънатите пространствени връзки между пикселите се възстановяват в<br />

комбинационната матрицата А.<br />

Преди прилагане на метода на независимите компоненти (ICA) е необходимо да<br />

се центрират и изчистят наблюдаваните променливи. Центрирането се извършва чрез<br />

изваждане на матрицата на средните стойности на Х, т.е. M = E{X}<br />

Тази предварителна обработка се прави само за опростяване на алгоритмите на<br />

метода на независимите компоненти (ICA). След определяне на комбинационната<br />

матрица А със центрирани данни може да се изчисли и матрицата S със центрирани<br />

данни т.е S=A -1 .M<br />

Изчистването е техника, която трансформира матрицата Х така че да съдържа<br />

некорелирани компоненти със променени елементи. Изчистването може да се направи<br />

използвайки метода на независимите компоненти (ICA). Препоръчително е да се<br />

извърши и редуциране на размерността на данните едновременно с изчистването. За<br />

обработка на данните е използван бърз алгоритъм на метода на независимите<br />

компоненти (ICA). Алгоритъма използва фиксирана итерационна процедура за<br />

намиране на максимума на негаусовото поведение на центрираната и изчистена Х<br />

матрица. Този алгоритъм е сто пъти по-бърз от стандартния градиентен метод на<br />

независимите компоненти (ICA), и позволява вграждане в реална DSP платформа за<br />

обработка на изображения. Важните характеристики на бързия метод на независимите<br />

Λ


39<br />

компоненти (ICA) е, че приближението е квадратично, независимите компоненти<br />

могат да се изчислят един по един, алгоритъма е прост, ефективен и изисква по-малко<br />

място в паметта.<br />

Анализиране на спектрални изображения на ябълки чрез метода на<br />

независимите компоненти (ICA)<br />

Анализирани са петдесет и седем ябълки от сорта „златна превъзходна” в<br />

различна степен на зрялост. За всяка от 57 ябълки е снето спектрално изображение с<br />

размери 640х480 пиксела. Направена е предварителна обработка за премахване на<br />

фона. От всяко спектрално изображение случайно са взети 104 пиксела. Всичките 5928<br />

пиксела образуват данните на матрицата Х. Промените от геометрията са коригирани<br />

чрез нормализация. Направена е и една обратна логаритмична трансформация за да<br />

може да сравняват спектъра със еталонни спектри на поглъщане дадени в справочници<br />

за дадени вещества. Спектъра се състои от 80 честотни ленти покриващи обхвата от 400<br />

до 720 nm. Под 450 nm цялата светлина се поглъща от плода. Поради това първите<br />

честотните ленти се изключват от анализа. Извършва се изчистване на началния вектор.<br />

Използвайки бърз алгоритъм за метода на независимите компоненти (ICA) се<br />

изчисляват комбинационната матрица А и независимите компоненти. Бързия<br />

алгоритъм за метода на независимите компоненти е оптимизационна задача<br />

стартирана с случаен тегловен вектор. За това алгоритъма се повтаря докато се получи<br />

същата матрица Х сто пъти. За бързо калибриране, матриците Х и А трябва да бъдат<br />

колкото е възможно по малки, тъй като скоростта на алгоритъма е пропорционален на<br />

размерността на данните. За да се тества колко данни са нужни алгоритъма се повтаря<br />

104 пъти с различно количество пиксели от един до сто и четири за ябълка.<br />

Тъй като метода на независимите компоненти (ICA) има възможност да извлече<br />

независимите компоненти очаква се, че получените стойности са във връзка със<br />

съставните вещества на плода. Но намерените стойности на независимите компоненти<br />

не за реалните концентрации на веществата измерени, чрез хроматографски анализ.<br />

Поради това е необходимо начално калибриране на независимите компоненти със<br />

еталонни стойности. За да се тества възможността на метода на независимите<br />

компоненти (ICA) за калибриране в реално време е направена кръстосана проверка. 36<br />

плода са използвани за калибриране на класифицираща система за ябълки чрез метода<br />

на независимите компоненти (ICA).<br />

3. Резултати и дискусия<br />

Използвайки бърз алгоритъм се намира комбинационната матрица А 5928х2 и<br />

два независими компоненти IC1 и IC2. На фиг.1 са показани двата главни компонента<br />

от метода на главните компоненти (PCA) и двата независими компоненти от метода на<br />

независимите компоненти (ICA).<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


40<br />

Фиг. 1. Спектрални компоненти<br />

Хроматографския анализ показва, че chlorophyll и carotenoids са веществата с<br />

голяма промяна в концентрация в процеса на узряване на ябълките. Спектрите на<br />

chlorophyll и carotenoids са показани на фиг.2. Вижда се ,че получените независими<br />

компоненти приличат на действителните абсорбционни спектри, като IC-2 има<br />

максимум при 670nm, но високата абсорбция около 430nm в еталонния спектър е<br />

преместенa към 510nm.<br />

Това изместване се дължи на други вещества и на ефекта на разтваряне на<br />

еталонния спектър.<br />

Фиг. 2. Относителни спектри на поглъщане<br />

Фиг. 3.Средноквадратична грешка<br />

Сравняването на главните компоненти PC1÷2, независимите компоненти IC1÷2<br />

и еталонните спектри показа, че ICA е по-подходящ за намиране на концентрацията на<br />

веществата отколкото метода на главните компоненти. Повторяемостта на резултатите<br />

беше тествана сто пъти със същата матрица Х. Тъй като бързия метод на независимите<br />

компоненти (ICA) започва със случаен тегловен вектор, оптимизацията може да се<br />

натъкне на локален максимум. Оказа се , че в 82% от изчисленията резултатите са<br />

същите като на показаните на фиг.1. Чувствителността на метода на независимите<br />

компоненти (ICA) от размера на матрицата Х е тествана с вариране на броя на<br />

пикселите от 1÷104 за ябълка.


41<br />

Фиг. 4. Стойности на независимия компонент.<br />

Фиг. 5. Стойности на главния компонент.<br />

На фиг.3 е показана големината на средноквадратичната грешка на намерените<br />

независими компоненти в зависимост от големината на матрицата Х. 18% грешни<br />

решения са премахнати от графиката. Използването на по-голяма матрица Х слабо<br />

увеличава устойчивите решения, вижда се, че в целия обхват разликата е твърде малка,<br />

поради което използване на 8 пиксела например е напълно достатъчно. Това ще<br />

редуцира времето за калибриране в реално-време на системата за класифициране на<br />

ябълки. На фиг.4 и 5 са показани резултатите на концентрацията на независимите<br />

компоненти в комбинационната матрицата А и на главните компоненти. Тук не се<br />

забелязват разлики в получените резултати.<br />

Направи се кръстосана проверка за потвърждаване на възможността използване на<br />

метода на независимите компоненти за калибриране в поток. На фиг. 6 са показани<br />

наблюдаваните и предсказани концентрации.<br />

∑<br />

Процентното отклонение изчислено чрез<br />

∑<br />

m<br />

⎛<br />

⎞<br />

⎜ yˆ<br />

− ⎟<br />

n ij ( i)<br />

⎜ j=<br />

1 ⎟<br />

⎜<br />

− yi<br />

⎟<br />

i=<br />

1 m<br />

⎜<br />

⎟<br />

2<br />

Q = 1 −<br />

⎝<br />

⎠ , където<br />

n<br />

2<br />

( y − y)<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271<br />

∑<br />

i=<br />

1<br />

i


ˆij( i)<br />

42<br />

Фиг. 6. Предсказана концентрация чрез ICA.<br />

y − предсказаната концентрация на пиксел j от ябълка I на база на калибриращ<br />

комплект от всички ябълки без i-та ябълка.<br />

y измерена концентрация<br />

i<br />

y средната концентрация за всички ябълки<br />

n броя на ябълките<br />

m броя на избраните пиксели за ябълка<br />

e съответно 0.82 за IC-1 и 0.86 за IC-2.<br />

4. Заключение<br />

Направените изследвания показаха, че метода на независимите компоненти (ICA) е<br />

подходящ за калибриране на класифицираща система за ябълки работеща в реално<br />

време на база на спектрални изображения.. Необходимо е само да се направи начално<br />

калибриране към действителните стойности на веществата. Промените по-време на<br />

класифицирането партиди ябълки, светлинни източници, сензори могат да се<br />

прекалибрират в поток използвайки метода на независимите компоненти (ICA).<br />

Предимство на тази система сравнение с системите с обучител е използването на помалко<br />

еталонни данни за калибриране. Скоростта на обработка може още да се повиши,<br />

ако се използват изображения получени чрез камера с адресация на пикселите.<br />

ЛИТЕРАТУРА<br />

1. Hollas, M.. Modern Spectroscopy, John Wiley&Sons,2004.<br />

2. Hollet, L. .Food Analysis by HPLC , Marcel Dekker, 2002<br />

3. Hyvarinen, A., J. Karhunen . Independent Component Analysis, John Wiley&Sons,2001.<br />

Department of <strong>Computer</strong> Systems and Technologies<br />

University of Food Technologies – Plovdiv<br />

26, Mariza Bld.<br />

4002 Plovdiv<br />

BULGARIA<br />

E-mail: kr_kolev@abv.bg


©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

43<br />

VIRTUAL LABORATORY FOR DISTRIBUTED SYSTEM<br />

NIKOLAY KAKANAKOV, NIKOLAY RAITCHEV, GRISHA SPASOV<br />

Abstract. The paper presents a web based system for e-learning for the course<br />

“Distributed systems and computer communications” from the MSc program of<br />

department “<strong>Computer</strong> systems and technologies”. The system provides separate<br />

interfaces for students and lecturers. Each student can read online course materials, make<br />

tests and submit course projects. The lecturer can upload materials, tests, course project<br />

assignments, as long as monitoring test results, project work and students progress. The<br />

system has unique extra functionality – it provides interface for students to carry out the<br />

laboratory work for part of the course, entitled “Remote procedure call”.<br />

Key words: e-learning, distributed systems, RPC.<br />

ВИРТУАЛНА ЛАБОРАТОРИЯ ПО РАЗПРЕДЕЛЕНИ ИСТЕМИ<br />

1. Въведение<br />

Развитието на електрониката и комуникационните технологии, заедно с<br />

навлизането на Интернет във всички свери на съвременния живот, доведе до появата на<br />

електронно правителство (e-Government), електронно здравеопазване (e-Health),<br />

електронна търговия (e-Market), електронно обучение (e-Learning) и други. Тези<br />

явления отговарят на изискванията на съвременното общество за достъп до<br />

информация от всяка точка и по всяко време. Появата на нови технологии води и до<br />

поява на нови изисквания – сигурност, надеждност, достъпност.<br />

Създаването на система за провеждане на електронно обучение не следва<br />

развитието на технологиите, а следва еволюцията в изискванията на хората. Жизненият<br />

цикъл на една такава система включва създаване на материали, публикуване и достъп.<br />

Създаването на материалите се извършва от програмисти, дизайнери и специалисти в<br />

областта на курса. Публикуването на материалите е на Web сървър, който е в основата<br />

на достъпността на системата. Понякога материалите могат да бъдат разделени на<br />

множество сървъри, обединени от един портал. Достъпът до материалите е<br />

посредством Интернет браузер и може да се осъществи от всяка точка и по всяко време.<br />

2. Системи за Електронно Обучение<br />

Електронното обучение може да бъде проведено по няколко различни сценария.<br />

Най-простият сценарий включва само публикуване на теоретични и методически<br />

материали (telementoring). В един по-сериозен сценарий се включва и система за оценка<br />

на усвояването на материала от страна на обучавания – система за тестове. Самото<br />

създаване и провеждане на тестове е нерешен проблем в електронното обучение, тъй<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


44<br />

като в повечето случаи не е автоматизирано. Има разработки, които се стремят чрез<br />

създаването на софтуерни агенти да автоматизират генерирането на тестови въпроси от<br />

материала и да направят интерактивно оценяването [1, 3, 5].<br />

Фиг. 1. Структура на електронното обучение.<br />

Друг сценарий на провеждането на електронно обучение е провеждането на<br />

дискусионни форуми. Те могат да се реализират чрез електронна поща или чрез видео<br />

конференции. Проблемът при създаването на такива системи е, че изискват повече<br />

комуникационни ресурси и обучаваните и обучаващите е необходимо да са<br />

едновременно в системата [1, 3, 5].<br />

Един от най-трудните за решаване проблеми при електронното обучение е<br />

създаването и провеждането на упражнения. Това е така, защото необходимите<br />

материали и ресурси за различните дисциплини са много различни. Например<br />

необходимост от макети, опитни постановки, компилатори, програмни среди,<br />

измервателна апаратура. Едно решение на този проблем е използването на макети,<br />

които се дават под наем или се продават на студентите. Те могат да си ги инсталират<br />

вкъщи и да провеждат упражнението. Това, обаче, е скъп вариант и е приложим само за<br />

високоплатени курсове. Друг вариант, който може да бъде приложен, е разработването<br />

на емулационни и симулационни програми, които да заместят опитната постановка.<br />

Така проведените упражнения ще бъдат достъпни и лесни за изпълнение [1, 3].<br />

Съществуват множество системи за електронно обучение, позволяващи<br />

публикуването на материали и провеждането на онлайн тестове. Затова настоящата<br />

разработка се ограничава само до създаването на виртуална лаборатория за<br />

провеждането на лабораторни упражнения по дисциплината „Разпределени Системи и<br />

Компютърни Комуникации” от ОКС ”Магистър”, специалност „Компютърни Системи<br />

и Технологии”.


45<br />

3. Виртуална Лаборатория по Разпределени Системи<br />

Създадената виртуална лаборатория има за цел да улесни провеждането на<br />

лабораторни упражнения по дисциплината „Разпределени Системи и Компютърни<br />

Комуникации”. Поддържат се три различни нива на достъп до системата:<br />

администратор, преподавател и студент. Администраторът създава курса и приема<br />

регистрацията на потребителите, като единствено той може да променя нивото на<br />

достъп на регистрираните потребители (фиг. 2). За да се осигури надеждност и<br />

сигурност при едновременна работа на много потребители се поддържат сесии. Всеки<br />

студент е с отделна сесия, което позволява организирането на отделно Web<br />

пространство за него. Така може да се продължи работата оттам докъдето е стигнал<br />

предишния път.<br />

Фиг. 2. Регистрирани потребители и нива на достъп.<br />

Преподавателят може да качва материали за упражненията, лекции, програма,<br />

конспект, литература Той също може да проверява посещаемостта на студентите,<br />

грешките, които допуска всеки от тях при изпълнение на задачите. Студентите освен<br />

достъп до лекционни материали, методическо ръководство за упражненията, имат и<br />

възможност да си изберат курсова задача, да се регистрират, че ще работят по нея и да<br />

публикуват получените резултати за обсъждане и оценка.<br />

Най-важната част от разработката е възможността за дистанционно провеждане<br />

на някои теми от упражненията без необходимостта студентите да закупуват някакви<br />

софтуерни продукти, образци или материали. Цялото упражнение се провежда през<br />

Интернет. Като пример за лабораторно упражнение е дадена темата „Отдалечено<br />

извикване на процедури” [6]. В това лабораторно упражнение студентите се учат да<br />

разработват процедури за отдалечено извикване по модела ONC-RPC, въведен от Sun<br />

Microsystems. Това е най-базовия и най-стар модел за разработка на отдалечени<br />

процедури и всички останали се явяват негово развитие. При него се описва<br />

интерфейса и поведението на процедурата с специфичен език – IDL. Това описание<br />

включва сигнатурата на отдалечената процедура (име, брой и тип на параметрите,<br />

връщан резултат) и описание на комплексните структури и типове данни. Студентът<br />

въвежда IDL описанието през форма на страницата (фиг. 3) и когато натисне бутона<br />

„Send” данните се изпращат към специален инструмент, който генерира необходимите<br />

заглавни и сорс файлове. Този инструмент е инсталиран на сървър за упражнения и на<br />

студентите не им е необходим никакъв специфичен софтуер. Генерираните файлове се<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


46<br />

запазват в отделна директория за всеки потребител и той може в последствие да<br />

редактира тези от тях, които е необходимо. След редактирането на файловете и<br />

добавяне на потребителски такива, програмата може да бъде компилирана и да се<br />

генерират изпълними файлове. Тук отново не е необходимо потребителя да има<br />

компилатор, защото компилирането се извършва на сървъра. Всеки потребител има<br />

достъп само до директорията, съдържаща генерираните от него файлове и така може<br />

упражнението да се извършва на части [6].<br />

Фиг. 3. Въвеждане на IDL декларации през Web формата.<br />

Изпълнението на инструмента за отдалечени процедури и компилирането на<br />

сървъра вместо при клиента позволява гъвкавост на системата и използването на<br />

олекотени клиенти като джобни компютри, мобилни телефони. Това позволява полесното<br />

преминаване от електронно към мобилно обучение. Отдалеченото изпълнение<br />

се извършва посредством CGI процедури [2].<br />

4. Заключение<br />

Разработената система позволява отдалеченото провеждане на лабораторни<br />

упражнения по дисциплината „Разпределени Системи и Компютърни Комуникации”.<br />

Използването на тази система съвместно с популярни системи за електронно обучение<br />

ще позволи провеждането на дистанционни курсове по тази дисциплина. Системата не<br />

реализира напълно електронното обучение по дисциплината а само провеждането на<br />

лабораторните упражнения.<br />

В бъдеще трябва да се направи анализ на журналната информация на Web<br />

сървъра на системата,което ще позволи по-доброто й администриране и подобряването<br />

на интерфейса й. Анализирането на журналите позволява получаването на информация<br />

за профила на потребителя, най-търсени ресурси, тънки места, последователност на<br />

извикване на ресурси [4]. Друга важна стъпка в бъдещото развитие е пълното<br />

интегриране на системата към някоя съществуваща система за електронно обучение и<br />

автоматизиране на създаването на упражнения като обекти за обучение (learning<br />

objects) [3].


47<br />

ЛИТЕРАТУРА<br />

1. Aymerich, F., N. Dessi, B. Pes, A. Saba, An automatic assessment system supporting<br />

computer science entrance examinations, Proc. IEEE International Conference on<br />

Advanced Learning technologies, 2004, pp. 657-659.<br />

2. Ашок Апу, Администриране и защита на Apache Server, Дуо Дизайн, 2004, ISBN:<br />

954-8396-19-X.<br />

3. Horton, W., Horton, K., E-Learning tools and technologies, Wiley Publishing 2003,<br />

ISBN: 0-471-44458-8.<br />

4. Krishnamurthy, B., J. Rexford, Web Protocols and Practice, HTTP/1.1, Networking<br />

Protocols, Caching and Traffic Measurement, Addison-Wesley, 2001, ISBN:0-201-710889.<br />

5. Nichols, M., A theory for eLearning. Educational Technology & Society, 6(2), 1-10,<br />

(2003), Available at http://ifets.ieee.org/periodical/6-2/1.html.<br />

6. Tanenbaum, A., M. Van Steem, Distributed Systems Principles and Paradigms, Prentice<br />

Hall 2002, ISBN 0-13-088893-1.<br />

Department of <strong>Computer</strong> Systems and Technologies<br />

Technical University of Sofia, Branch Plovdiv<br />

25, Tsanko Dystabanov Str.<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: kakanak@tu-plovdiv.bg; nraitchev@mail.bg; gvs@tu-plovdiv.bg.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

49<br />

DISTRIBUTED SYSTEM FOR MONITORING AND<br />

CONTROL IN INTERNET ENVIRONMENT<br />

NIKOLAY KAKANAKOV, BORIS RIBOV<br />

Abstract. The paper proposes a distributed system for monitoring and control in internet<br />

environment. The system is based on IPC@CHIP SC12 microcontroller as a “host” and<br />

PIC16F877А as a “controller”. IPC@CHIP SC12 has integrated Ethernet interface and<br />

TCP/IP stack with Web server. PIC16F877А can monitor sensor or control hardware<br />

signals. It supports 1-Wire communication protocol based on I 2 C through DS2482-100<br />

chip (Dallas). It also has 6 ADC inputs (10bit) for monitoring analog signals, 4<br />

temperature signals (resolution 0.0625°C), 12 discrete inputs and RFID card reader. The<br />

system implements three-tier client/server model. The interaction between the “host” and<br />

the “controller” is based on serial ASCII protocol.<br />

Key words: Distributed Monitoring and Control, Sensors, Embedded Systems.<br />

РАЗПРЕДЕЛЕНА СИСТЕМА ЗА МОНИТОРИНГ И КОНТРОЛ ПРЕЗ<br />

ИНТЕРНЕТ<br />

1. Въведение<br />

Общата архитектура на системата е показана на фигура 1. Тя се базира на<br />

многослоен модел клиент-сървър, приложим в системи за разпределена автоматизация<br />

[2]. На най-горнят слой са потребителите, които се връзват към системата през<br />

Интернет, посредством стандартен Web браузер и HTTP.<br />

Фиг. 1. Архитектура на системата.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


50<br />

На вторият слой е разположен Web портал, който служи за администратиране на<br />

цялата система и за централизирано управление и конфигуриране на долните слоеве.<br />

Порталът служи и като единна входна точка за потребителите към системата. Връзката<br />

между този слой и долния е посредством специално проектиран протокол за извличане<br />

на данни от разпределени вградени ситеми – CNDEP [3].<br />

На последният слой работи подсистемата, която извършва реалния мониторинг и<br />

контрол. Тя включва контролер, който събира информация от външните сензори и хост,<br />

който се грижи за доставянето на информацията до система на по-високо ниво за<br />

анализ и обработка. В настоящата разработка за създаването на „хост” частта е<br />

използвана вградената платформа IPC@Chip на фирмата Beck [1]. Той реално работи<br />

като „мост” между CNDEP и серийния протокол за достъп до „контролера”. На него<br />

работят двата комуникационни процеса, които си взаимодействат в реално време и се<br />

извършва идентификацията на потребителите (по RFID картата).<br />

2. Контролер<br />

В настоящата статия под “контролер” се разглежда блока за комуникация със<br />

сензорите, който събира информацията от тях и анализира моментното им състояние.<br />

Блокова схема на контролера е показана на фигура 2. Той е изпълнен на базата на<br />

едночипов микроконтролер от серията PIC16F87X на фирмата Microchip [4].<br />

Фиг. 2. Структура на контролера.<br />

Избора на конкретния минроконтролер бе съобразен с това той да разполага с<br />

необходимите ресурси по отношение на комуникационни интерфейси и наличие на<br />

вградени хардуерни модули за обработка на информацията и съхранението и. Избора<br />

падна на микроконтролера PIC16F877A. Последният представлява RISC процесор<br />

работещ на 20MHz, който осигурява производителност от 5MIPS. Контролера<br />

разполага с вграден хардуерен модул за сериен интерфейс, I 2 C интерфейс, 8 канален<br />

аналогово-цифров преобразувател, двуканален цифрово-аналогов преобразувател,<br />

вградена EEPROM памет с размер 256 байта и налична RAM памет от 368 байта.<br />

Програмната памет е от тип FLASH, като размера е 8192 думи (14,3KB). Входно<br />

изходните шини са общо 33.<br />

Контролера поема следенето на статуса на множество сензори: безжичен четец<br />

на карти за идентификация (RFID); 6 аналогови входни сигнала с корекция на нулевото<br />

отместване в групи по 3 с голяма точност и статистическа корекция на грешката; 12


51<br />

цифрови дискретни входа и 4 цифрови температурни сензора с голяма точност.<br />

Контролера следи дали параметрите на всички тези сензори са в нормите зададени<br />

предварително в конфигурационна таблица и сигнализира алармено събитие към хост<br />

системата при излизане от границите на параметрите. При възвръщане към допустимия<br />

интервал от стойности на дадения параметър отново се генерира събитие към хост<br />

системата за да се уведоми, че следения процес е в нормите.<br />

Комуникацията между контролера и хост системата се осъществява посредством<br />

сериен RS232 интерфейс чрез ASCII команди. За тази цел в контролера работи<br />

команден интерпретатор, който обработва потока от символи и взима съответно<br />

решение за изпълнение на дадената команда.<br />

Всички параметри на сензорите се записват в регистров файл, който може да<br />

бъде достъпен за четене от хост системата. От своя страна хост системата може да<br />

задава и запазва началните конфигурационни параметри за следене на всеки един<br />

сензор в EEPROM паметта на контролера, както и да включва или изключва даден<br />

сензор. Това става с команди за запис от хост системата към контролера.<br />

Изходните данни от сензорите, както и текущото състояние на алармения буфер<br />

се намират в регистров файл в RAM паметта на контролера, която може да бъде<br />

прочетена от хост системата във всеки един момент от време. Последната може<br />

периодично да чете състоянието на сензорите с цел статистическо натрупване на данни<br />

от тях. Контролера е длъжен да уведоми хост системата чрез заявка за прочитане на<br />

алармения буфер ако даден параметър излезне извън рамките на допустимите<br />

стойности (генериране на алармено събитие от сензор). След прочитане на алармения<br />

буфер следва процедура на потвърждение, инициатор на която е хост системата. В<br />

алармения буфер се съдържа информация за поредния номер на алармата и номера на<br />

сензора, който я поражда. Ако такава бъде породена от множество сензори то се<br />

отбелязва мулти-алармено събитие. В алармения буфер може да бъде прочетена и<br />

стойността на брояч показащ общия брой рестарти на системата. При всяко пускане<br />

този брояч се увеличава с единица и неговата стойност се запомня в енерго-независима<br />

памет. В системата е предвидена отказоустойчива проверка на контролера в реално<br />

време. Проверява се кректността на изпълнение на хода на програмата и ако възникне<br />

критична ситуация се взимат мерки централния микроконтролер да бъде рестартиран.<br />

При наличие на проблем породен от некоректно поведение на контролера последният<br />

се рестартира, като брояча на начални стартирания се увеличава с единица. Предвидена<br />

е и възможност хост системата да рестартира принудително контролера при загуба на<br />

комуникация с него. В този случай брояча на начални стартирания също се увеличава с<br />

единица.<br />

В контролера е реализирана специфична операционна система, чрез която се<br />

следят всички процеси свързани с обработката на информацията от сензорите.<br />

Стартирани са множество процеси, някои от които са: комуникационен процес<br />

обслужващ серийния RS-232 интрфейс; опорен таймер; процес на АЦП; процес на<br />

следене на дискретните входове; процес на следене на температурните сензори; процес<br />

на следене на безжичния четец на карти и др. Специфичната операционна система е<br />

реализирана на езика асемблер (MPASM) с цел да се оптимизират процесите по<br />

оптимално използуване на ограничения ресурс на микроконтролера.<br />

3. Сензори<br />

Типа на сензорите, които се поддържат от контролера е разнообразен с цел<br />

универсалност при приложението на системата. Това налага да бъдат използвани и<br />

различни интерфейси за връзка.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


52<br />

3.1 Дискретни сензори – нормален режим на работа<br />

Дискретните сензори са галванично разделени и се следят по логически нива.<br />

Такъв тип сензори са например: сензор за врата, пожарен сензор, контактен сензор и др.<br />

Предвидена е възможност да бъде задавано активното следящо ниво – дали<br />

генериращото аларма събитие да бъде изпълнявано по логическа нула или логическа<br />

единица. За всеки един от тези сензори е предвидено хистерезисно време (таймаут) за<br />

задействане, което да се изчака преди да се вземе решение за алармено състояние. Това<br />

време се задава в секунди (от 1 до 63) и се запазва в конфигурационната таблица на<br />

сензорите, като за всеки един вход то се задава независимо. Използуването на<br />

хистерезисно време на задействане е продиктувано от спецификата на работа на<br />

множество от дискретните сензори с цел отсраняване на фалшиви въздействия<br />

породени от случайни шумове.<br />

3.2 Дискретни сензори – специален режим на работа<br />

За всеки един дискретен вход може да бъде зададено да работи по специфичен<br />

алгоритъм, нужен за определен тип специални сензори. При тях няма твърдо изменение<br />

на сигнала с, което да се предизвика алармено събитие а се наблюдава определен закон<br />

от преходи от единица в нула. Такива са например обемните сензори. При тях когато<br />

има движещ се обект в активната зона се предизвиква моментално задействане на<br />

сензора, и след някакъв интервал от време отново се възобновява нормалното<br />

състояние. Към тази група сензори принадлежат и шоковите сензори. За да може такива<br />

сензори да бъдат включвани към контролера е необходимо дадения дискретен вход към<br />

който е свързан такъв сензор да бъде конфигуриран да работи като “специален”. В този<br />

режим на работа не се проверява за хистерезисен интервал от време, като веднага се<br />

генерира аларма при поява на активно алармено ниво (то може да бъде задавано дали<br />

да е с високо или ниско логическо състояние). Ако сензор в този режим се задържи в<br />

активно състояние повече от 30 секунди се генерира ново алармено събитие за<br />

“липсващ сензор”. Това е индикация, че има окъсяване на сигналната линия или пък<br />

отпадане на сензора поради технически или умишлени причини.<br />

3.3 Аналогови входове/сензори и АЦП<br />

Обхвата на преобразуване е от 0 до +5V, като разделителната способност е 10<br />

бита. Поради необходимостта крачетата на микроконтролера да бъдат използувани за<br />

множество други входнo/изходни шини се използва само един входен аналогов сигнал<br />

и външен аналогов мултуплексор. За аналогов мултиплексор е използуван 4051, като се<br />

реализира динамично във времето сканиране на всички 8 аналогови сигнали. За<br />

измерванията е използван алгоритъм отстраняващ грешката. За целта се измерват 10<br />

поредни отчета на стойността на всеки един от входовете, отстранява се най-малката и<br />

най-голямата стойност и се осреднява стойността от останалите 8 измервания. Това<br />

гарантира получаването на значителна точност и отстраняване на грешката от случайни<br />

шумове. Измерената стойност се сравнява с реперните за минимална и максимална<br />

допустими граници и при излизане от тези граници за определен времеви период се<br />

генерира алармено събитие. В статуса на аларменото събитие е достъпна информация<br />

дали то е породено от спадане на напрежението на дадения аналогов сензор под<br />

минималния репер или е породено от превишаване над максималния репер.<br />

Хистерезисния времеви интервал е предвиден за да може бързо изменящи се<br />

процеси (шумове) да не генерират случайни сработвания на алармено събитие.<br />

Хистерезисния период се задава в конфигурационната таблица в секунди, като той е<br />

общ за всички аналогови входове и е в границите от 1 до 255 секунди.<br />

В схемата са предвидени два коригиращи аналогови входа чрез които се отчита<br />

реперната нулева стойност от която да започне измерването. Това се налага поради<br />

наличието на потенциали породени от токови контури при връзката на външни


53<br />

аналогови сензори. От отчетената стойност за всеки вход се изважда измерената<br />

реперна стойност и по този начин се получава действителната, която подлежи на<br />

последващо сравнение дали принадлежи на интервала от допустими стойнсти зададен в<br />

конфигурационния фаил. При необходимост може двата входа, измерващи реперните<br />

напрежения да бъдат свързани към нулевата шина, с което да се разреши измерването<br />

на пълния диапазон от стойности и да се изключи корекцията.<br />

3.4 Температурни сензори и интерфейс за връзка с тях<br />

Нулиране на 1-wire чрез команда 0x54 към<br />

драйвеа DS2482<br />

НЕ<br />

Начало<br />

Четене на статуса от DS2482<br />

Отговор от 1-wire<br />

устройство?<br />

Подаване на команда 0хА5 към DS2482<br />

(команда за изпращане на данни)<br />

Изпращане на команда 0xCC към DS18B20<br />

(глобалена адресация)<br />

Изпращане на команда 0х 44 към DS18B20<br />

(стартиране на температурното измерване)<br />

Подаване на команда 0х 96 към DS2482<br />

(команда за четене на байт от 1-wire)<br />

Проченен байт = 0х FF?<br />

Подаване на команда 0хА5 към DS2482<br />

(команда за изпращане на данни)<br />

Изпращане на команда 0xCC към DS18B20<br />

(глобалена адресация)<br />

Изпращане на команда 0х BE към DS18B20<br />

(команда за четене на таблицата с данни)<br />

Подаване на команда 0х 96 към DS2482<br />

(команда за четене на байт от 1-wire)<br />

ГРЕШКА!<br />

Липсващ сензор<br />

КРАЙ<br />

ДА<br />

ДА<br />

Това втори прочетен<br />

байт ли е ?<br />

ДА<br />

НЕ<br />

НЕ<br />

Контролера позволява измерването<br />

на четири независими температури чрез<br />

интелигентни цифрови сензори DS18B20<br />

производство на фирмата Dallas/Maxim [5].<br />

Самите сензори са компактни в 3-краков<br />

корпус TO92 и измерват температура в<br />

диапазона от –55 градуса до +125 градуса и<br />

разделителна способност от 0,0625 градуса<br />

(12 бита). Интерфейса за връзка на<br />

температурните сензори към контролера е<br />

1-Wire [5] и се характеризира с двупосочен<br />

трансфер на команди и данни по 2 линии<br />

(маса и данни).<br />

За да може да бъде изпълнен<br />

комуникационния протокол изискващ се от<br />

1-wire стандарта и да се разтовари<br />

централния микроконтролер от<br />

допълнителни задачи е използуван външен<br />

драйвер, който формира времедиаграмите<br />

на сигналите по шината. Този дарйвер<br />

поема комуникацията по 1-wire шината,<br />

като към него му се подават команди от<br />

контролера посредством I 2 C интерфейс.<br />

Използвания чип за драйвер на 1-Wire е<br />

DS2482-100 [5] и позволява реализирането<br />

на мрежа от 1-wire сензори свързани в<br />

паралел към шината. Всеки един сензор в<br />

шината има уникален адрес, чрез който се<br />

адресира при обмен на информация (данни или команди).<br />

3.5 Четец за безжични карти по RFID стандарта<br />

Контролера позволява четенето на идентификационните номера от безжични<br />

RFID карти. Това прави системата много атрактивна за реализиране на постоянен<br />

контрол и наблюдение в реално време на процеси в необслужваеми обекти и зони,<br />

изискващи контрол на достъпа. За безконтактни идентификационни карти са<br />

изпозувани TEMIC-5557, работещи на 125kHz. За четец на транспондерите на RFID<br />

картите се използва чипа U2270B, като декодирането и формирането на<br />

комуникационния протокол се изпълнява от допълнителен микроконтролер от серията<br />

PIC16F84. Изхода на последния е по стандарта RS232 с канална скорост 9600bps-8N1,<br />

като се предават прочетените 5 идентификационни байта от безконтактната карта.<br />

В контролера е предвидена функция за мултиплексиране на серийния интерфейс<br />

поради необходимостта той да бъде използван за комуникация и с хост системата.<br />

Данните от четеца за карти се протичат еднократно при доближаване на нова карта<br />

след което комуникацията се предава към хост системата. Контролера позволява да<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


54<br />

бъде въведено побитово маскиране на прочетените 5 байта (използуване на маска).<br />

Това дава възможност идентификацията да бъде реализирана само по определена част<br />

от информационните данни съдържащи се в картата.<br />

4. Заключение и бъдещо развитие<br />

Към проекта ще бъде включена възможност за дистанционен контрол на крайни<br />

устройства. В контролера се предвижда да има 8 галванично разделени дискретни<br />

изхода, които да управляват консуматори от различен тип и с различна мощност; 2<br />

аналогови галванично разделени изхода и интерфейс за комуникация с външен димер,<br />

който може да управлява консуматори на ~220V безжично посредством радио-канал на<br />

433MHz. За целта ще бъдат използувани съвременни сигурни техники за достъп до<br />

средата [6]. Допълнителна функционалност ще даде модула за контрол на консуматори,<br />

управлявани по захранващата ел. мрежа.<br />

Друго важно допълнение към системата ще бъде възможността за автоматично<br />

конфигуриране на всеки „хост” чрез зареждане на конфигурационен файл от сървъра на<br />

втория слой [2]. Така във всеки един момент на сървъра ще има картина на: всички<br />

„хостове”, връзката между тях, конфигурацията им и включената към съответния им<br />

„контролер” периферия (сензори, четци, управялеми устройства и др.). Това ще<br />

позволи самодиагностика на системата и ще гарантира увеличена надеждност.<br />

Като заключение може да се каже, че системата представлява завършена<br />

единица способна да поеме управлението, следенето и контрола на различни процеси,<br />

както и контрола на достъпа до помещения и зони.<br />

ЛИТЕРАТУРА<br />

[1] Beck’s IPC@Chip homepage, Beck IPC GmbH, http://www.beck-ipc.com/<br />

[2] Kakanakov, N., M. Shopov, G. Spasov, A New Web-based Multi-tier Model for<br />

Distributed Automation, Journal of “Information technology and Control”, b.2/2006.<br />

[3] Kakanakov, N., I. Stankov, M. Shopov, G. Spasov, Controller Network Data Extracting<br />

Protocol – Design and Implementation, Proc. of CompSysTech’06, V. Tarnovo, Bulgaria,<br />

2006, pp. IIIA.14-1 IIIA.14-6.<br />

[4] Microchip PIC16F87XA Data Sheet, Microchip Technology Inc., 1998;<br />

http://www.microchip.com/<br />

[5] Maxim Integrated Products Inc., http://www.maxim-ic.com/<br />

[6] Ribov, B., Introducing the newest Philips' microcontrollers into secured telemetry<br />

wireless applications, Proc. of CompSysTech'06, V. Tarnovo, Bulgaria, 2006, pp.I.4-1 I.4-6.<br />

Dept. <strong>Computer</strong> Systems and Technologies<br />

Technical University of Sofia, Branch Plovdiv<br />

25, Tsanko Dystabanov Str.<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: kakanak@tu-plovdiv.bg<br />

Space Research Institute<br />

Bulgarian Academy of Science<br />

6, Moskovska Str.<br />

1000 Sofia<br />

BULGARIA<br />

E-mail: ribov@developer.bg


- 55 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

ON THE USE OF WEB SERVICES FOR BUILDING<br />

DISTRIBUTED AUTOMATION SYSTEMS<br />

MITKO SHOPOV, HRISTO MATEV, GRISHA SPASOV<br />

Abstract. The paper discusses the applicability of Web services for building distributed<br />

automation systems and the benefits they bring. An adaptation of some of the wellproven<br />

enterprise architecture models and their applicability in distributed measurement<br />

is presented. The presented sample implementation is based on open and standardized<br />

approaches – high-level programming languages, object-oriented platforms, Internet<br />

technologies, and standardized communication interfaces.<br />

Key words: distributed automation, embedded systems, multi-tier models, web services.<br />

ПРИЛОЖЕНИЕ НА WEB УСЛУГИТЕ В ИЗГРАЖДАНЕТО НА<br />

РАЗПРЕДЕЛЕНИ СИСТЕМИ ЗА АВТОМАТИЗАЦИЯ<br />

1. Въведение<br />

Тенденция от последните години е да се избяга от използването на частни,<br />

затворени хардуерни и софтуерни платформи за изграждане на системи за разпределена<br />

автоматизация и да се премине към отворени и стандартизирани подходи и решения. В<br />

това отношение проектирането на подобни системи е силно повлияно от използването<br />

на езици за програмиране от високо ниво, обектно-ориентирани платформи, Интернет<br />

технологии и стандартни комуникационни интерфейси [1, 2, 7].<br />

Допълнителна подкрепа осигурява бързият темп на развитие на хардуера,<br />

осигурявайки пазара с множество нови вградени системи с интегриран TCP/IP стек,<br />

вграден Web сървър и продължително увеличаващи се изчислителни възможности.<br />

Моделите, прилагани в разпределената автоматизация, въпреки своите специфични<br />

изисквания, следват доказаните в бизнес среда модели за обмен на данни.<br />

Специфичността на разпределените системи се проявява в две основни насоки –<br />

специфичните изисквания към актуалността на данните и ограничените ресурси на<br />

вградените системи [5, 8].<br />

Внедряването на web услугите в системите за разпределена автоматизация е<br />

сравнително нова и интересна област за изследвания. Авторът на [7] предлага модел за<br />

адаптиране на web технологиите в индустриалната автоматизация, в който функциите<br />

на вградените системи са представени като услуги от сървър работещ в междинния<br />

слой (Remote Service Server). В [6] авторите разглеждат два метода за реализиране на<br />

отдалечено управление на газов хроматограф – с CGI приложение и посредством web<br />

услуга. Текущия проект SIRENA [1] има за цел създаването на рамка за да се улесни<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 56 -<br />

изграждането и внедряването на SOA архитектурата и в частност web услугите в<br />

индустриалната автоматизация, в следващото поколение вградени системи, както и<br />

приложенията и услугите, които те предлагат [1].<br />

В настоящата статия се разглеждат популярни модели за изграждане на<br />

разпределена автоматизация базиращи се на използването на TCP/IP протоколния стек,<br />

многослойни архитектури и Web технологии. Предложена примерна реализация<br />

използва четирислойна архитектура [3] и стандартизирания интерфейс на Web услугите<br />

[4] за комуникация между средните слоеве на системата.<br />

2. Модели за разпределена автоматизация<br />

Сред моделите за изграждане на разпределена автоматизация, най-голям е делът<br />

на трислойните архитектури. Те се характеризират с различни реализации на<br />

междинния слой [5]:<br />

• Модел със сървър за транзакции – сървърът за транзакции има за цел да<br />

разпределя заявките към мрежата от контролери. Той може да<br />

осъществява групиране на еднотипните заявки и приоритизиране на<br />

отделните заявки.<br />

• Модел със сървър за отдалечени услуги – функциите на отделните<br />

контролери се представят като услуги привързани към софтуерни<br />

компоненти на междинния сървър. По този начин клиентът комуникира с<br />

компонентите на сървъра, а не директно с контролерите [7].<br />

• Модел с Web сървър – една от най-разпространените реализации поради<br />

популярността на сървърните технологии. Базира се на динамични HTML<br />

документи и скриптове изпълнявани на сървъра.<br />

• Трислоен модел с Web услуги – Този модел залага на универсалността на<br />

описанието на данните чрез XML и универсалността на предаване им<br />

чрез HTTP. Функциите на вградените системи се представят чрез Web<br />

услуги описани на стандартен език – WSDL.<br />

Всеки от гореизброените модели притежава различни предимства и недостатъци<br />

за различни конкретни приложения. Представения в [3] многослоен модел има за цел да<br />

обедини предимствата на отделните модели. Този модел се състои основно от четири<br />

слоя отделени по функционалност и администриране (фигура 1).<br />

Фиг.1. Четирислоен модел за разпределена автоматизация.<br />

Функциите на отделните слоеве са [3]:<br />

• Клиентски слой – На този слой са разположени различните клиенти на<br />

системата. Те отправят заявки за услуги към системата посредством<br />

стандартен Web браузър или чрез Web услуги. Отговорът на системата<br />

зависи от платформата на клиента. (PC, PDA, cellphone).


- 57 -<br />

• Презентационен слой – Този слой е отговорен за обработването на<br />

заявките и формирането на отговорите. Заявките се анализират и<br />

препращат към подходящ сървър от слоя за услуги. Сървърът работещ на<br />

този слой се нарича Web портал и е базиран на портал технологията.<br />

• Слой за услуги – Този слой дава основната функционалност на системата.<br />

Различните услуги на този слой работят на отделни машини следователно<br />

срив на един сървър се отразява само на конкретната услуга, която той<br />

предлага. Този модулен подход позволява гъвкавост и надеждност на<br />

системата.<br />

• Даннов слой – Ролята на този слой е да продуцира и съхранява данни.<br />

Конкретната му реализация зависи от слоя за услуги. При услуга за<br />

събиране на журнална информация се представя от база данни. В случай<br />

на автоматизационна услуга – от мрежа от контролери.<br />

3. Експериментална реализация на система за разпределена автоматизация<br />

В тази точка е представена експериментална система за изграждане на<br />

разпределена автоматизация, реализирана върху представения в предишната точка<br />

четирислоен модел. Архитектурата на системата (фигура 2) е изградена от следните<br />

компоненти:<br />

• мрежи от контролери със сензори за мониторинг на температура и влажност.<br />

Използваните вградени системи са съответно DS TINI на Dallas Semiconductors<br />

[13] и IPC@Chip SC12 на Beck IPC [12].<br />

• сървър за транзакции – реализиран чрез Apache Tomcat 5.5.14 servlet контейнер и<br />

Apache Axis работещи на машина със следните параметри - 333MHz Pentium II,<br />

256 MB памет и OС Debian Linux 2.4.27-2-386.<br />

• сървър за събиране на журнална информация – реализиран чрез Apache Tomcat<br />

5.5.14 servlet контейнер и сървър за управление на база данни MySQL 5.0.22.<br />

• услуга за изчертаване на графики [10]<br />

• UDDI регистър – реализиран чрез Microsoft UDDI Services.<br />

Фиг. 2: Обща архитектура на системата.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 58 -<br />

3.1. Сървър за транзакции<br />

Сървъра за транзакции (transaction server) представлява една от възможните<br />

реализации на слоя за услуги (Service tier). Неговата роля е да осъществява свързващо<br />

звено между предлаганите от система за разпределена автоматизация услуги и данните,<br />

които постъпват от мрежата от сензори. Сред възможните му приложения са<br />

осъществяване на контрол и измервания във фабрики (plant control and monitoring) и<br />

автоматизиране на дома и офиса. В предложената реализация, сървъра за транзакции<br />

получава заявки за изпълнение на определени услуги от представителния слой<br />

(presentation tier), които заявки трансформира в серия от транзакции към слоя за данни.<br />

Комуникацията с представителния слой и останалите сървъри на същия слой се<br />

осъществява посредством web услуги. В конкретния случай, слоя за данни е представен<br />

от мрежа от контролери, комуникацията с които се осъществява чрез специално<br />

разработен протокол – CNDEP [9].<br />

Фиг. 2: Вътрешна архитектура на сървъра за транзакции.<br />

Структурата на сървъра за транзакции включва два компонента (нишки), които<br />

комуникират помежду си посредством синхронизирани опашки (фигура 3).<br />

Компонентата ‘TS thread’ се използва за предоставянето на функционалността на<br />

мрежата от сензори чрез Web услуги. За различните web услуги се генерират различни<br />

последователности от команди към слоя данни. Компонентата ‘CNDEP thread’ има за<br />

цел да осъществи изпълнението на командите над мрежата от контролери. В<br />

конкретния случай e използваn протоколът CNDEP. Подмяната на протоколът за<br />

комуникация с контролерите ще изисква единствено подмяната на тази компонента.<br />

3.2. Сървър за събиране на журнална информация<br />

Предназначението на този модул е да събира и съхранява и предоставя<br />

журнална информация от вградените системи. Възможностите на сървъра за събиране<br />

на журнална информация са: заявка за събиране на конкретна информация от мрежа от<br />

контролери или конкретна вградена система; регистриране на заявката и стартиране на<br />

работна нишка; тази нишка има две задачи – събиране на информацията през зададен


- 59 -<br />

период и съхранението и в база данни; предоставяне при заявка на информация от<br />

базата с данни. Всички тези задачи са реализирани като Web услуги. Извличаната от<br />

базата данни информация е XML кодирана, което улеснява по-нататъшното и<br />

обработване.<br />

3.3. Услуга за изчертаване на графики<br />

За изчертаване на графики се използва web услугата представена в [10]. Тази<br />

услуга получава серия от данни и ги организира в таблици или графики. Таблиците се<br />

съхраняват в comma separated values (.csv) формат, а графиките като картинки (bmp<br />

формат). Построяването на графиката се извършва от Graphic Server .NET 3.0<br />

компонента от Graphic Server Technologies. Графиките могат да се синтезират за<br />

различни данни получени от Web-услугата за регистрация.<br />

3.4. Откриване на услугите<br />

Един от популярните методи за откриване и локализиране на услуги е<br />

използването на централизиран справочник. При него се използва отделен сървър за<br />

съхранение на информацията за наличните отдалечени услуги. Популярни технологии<br />

за реализиране на централизирани справочници са Jini, Universal Plug and Play (UPnP) и<br />

Universal Description, Discovery, and Implementation (UDDI). От тях последния е част от<br />

стандартите за Web услуги.<br />

Стандартът UDDI дефинира правилата за взаимодействие с централизирания<br />

регистър и формата на записите в него. Операциите над регистъра са за регистриране и<br />

за търсене на информация. Съществуват два типа UDDI регистри: публични и частни.<br />

Публичните са свободно достъпни в Интернет и служат за свободно търсене на Web<br />

услуги. Частните UDDI регистри се използват от организации за регистриране и<br />

търсене само на частни, използвани изключително от тях или партньорски организации<br />

Web услуги [11].<br />

4. Заключение<br />

В статията са разгледани популярни модели за изграждане на системи за<br />

разпределена автоматизация. Разгледани са предимствата произтичащи от прилагането<br />

на SOA архитектурата и технологията на web услугите в тези системи. Предложена е<br />

реализация на четирислоен модел позволяваща географското разпръскване на<br />

отделните звена без това да се отразява съществено върху функционалността на цялата<br />

система. Реализацията се основава на отворени и стандартизирани подходи, което<br />

позволява улеснена интеграция със съществуващите информационни системи както и<br />

със следващото поколение програмни системи за управление а автоматизационни<br />

контролери.<br />

5. Благодарности<br />

Изследванията в настоящата работа са финансирани от Фонда за научни<br />

изследвания към МОН – проект “ВУ-966/2005”, “Интегриране на web услуги и данни в<br />

разпределени информационни системи за автоматизация в интернет среда”, договор<br />

“ВУ-МИ-108/2005”.<br />

ЛИТЕРАТУРА<br />

1. F. Jammes and H. Smith. Service-Oriented Paradigms in Industrial Automation, IEEE<br />

Transaction on Industrial Informatics, Vol. 1, Issue 1, Feb. 2005, 62 – 70.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 60 -<br />

2. M. Fowler. Patterns of Enterprise Application Architecture, Addison-Wesley Professional,<br />

2002, ISBN: 0-321-12742-0.<br />

3. N. Kakanakov, M. Shopov and G. Spasov. A new Web-based multi-tier model for<br />

distributed automation systems. Information Technologies and Control, Vol. 2, 2006.<br />

4. N. Kakanakov, M. Shopov and G. Spasov. Distributed Automation System based on Java<br />

and Web Services, Proceedings of the CompSysTech’06, Veliko Tarnovo, Bulgaria, June<br />

15-16, 2006, III-A.24-1-6.<br />

5. Н. Каканаков. Web базирани модели за разпределена автоматизация. Автоматика и<br />

Информатика, бр. 3, 2006, 40-44, ISSN: 0861-7562.<br />

6. U. Topp, and P. Müller. Web based service for embedded devices. 2001.<br />

7. N. Jazdi. Component-based and Distributed Web Application for Embedded Systems.<br />

International Conference on Intelligent Agents, Web Technology and Internet Commerce,<br />

Las Vegas, USA, 9-11 July 2001.<br />

8. G. Borriello, R. Want. Embedded Computation Meets the World Wide Web.<br />

Communications of ACM, Vol. 43, Issue 5, May 2000, pp. 59-66.<br />

9. Kakanakov, N., I. Stankov, M. Shopov, and G. Spasov. Controller Network Data<br />

Extracting Protocol – design and implementation. Proceedings of the CompSysTech’06,<br />

Veliko Tarnovo, Bulgaria, June 15-16, 2006, pp. IIIA-14.1 – IIIA-14.6.<br />

10. Kakanakov, N. An Application of Web Services for Distributed Measurment.<br />

Proceedings of the Young Researchers Session, International Symposium on Modern<br />

Computing., 4-6 October 2006, Sofia, Bulgaria, pp. 55-60, ISBN: 954-91743-5-2.<br />

11. Alonso, G. Myths around Web Services. IEEE Data <strong>Engineering</strong> Bulletin, Vol.25,<br />

number 4, 2002.<br />

12. http://www.beck-ipc.com/ipc/ - IPC@Chip Homepage [October 2006].<br />

13. http://www.maxim-ic.com/products/tini/ - DS TINI Homepage [October 2006].<br />

Department of <strong>Computer</strong> Systems and Technologies<br />

Technical University–Sofia, Branch Plovdiv<br />

25, Tsanko Dystabanov Str.<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: mshopov@tu-plovdiv.bg; hristo.matev@gmail.com; gvs@tu-plovdiv.bg


- 61 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

PARALLEL IMAGE PROCESSING OF 24-BIT BITMAP FILE<br />

WITH FILTER ‘MEAN’<br />

ATANASKA BOSAKOVA-ARDENSKA, NAJDEN VASILEV,<br />

ANELIA PAGUROVA (MATAKOVA)<br />

Abstract. In this paper are shown implementations of two parallel algorithms for image<br />

processing by filter ‘mean’ and a mask sized 5x5. It is shown a sequential<br />

implementation of algorithms which we used for a comparative analysis with parallel<br />

algorithms. Programs work with 24-bit BMP images. There are shown results from<br />

experiments proving that programs using partial sums are speeder in both<br />

implementations parallel and sequential. It is made a comparison between sequential and<br />

parallel algorithms.<br />

Key words: Parallel algorithms, Image processing, filter ‘mean’, MPI<br />

ПАРАЛЕЛНА ОБРАБОТКА НА 24 БИТОВ БИТМАП ФАЙЛ<br />

С ФИЛТЪР „MEAN”<br />

1. Въведение<br />

Алгоритмите за обработка на изображения най-често се разделят в три<br />

йерархични групи [1]:<br />

- алгоритми за първична обработка на изображения: целят намаляване на шума (noise<br />

reduction) и общо подобряване качеството на изображението (image enhancement);<br />

- алгоритми за междинна обработка на изображения: използват се за сегментация на<br />

изображения (segmentation), скелетизация (skeleton), откриване на контури (edge<br />

detection) и др.;<br />

- алгоритми за обработка на изображения от високо ниво: към тази група спадат<br />

различни алгоритми за откриване и разпознаване на обекти (тази група алгоритми е<br />

тясно свързана с изкуствения интелект (artificial intelligence)).<br />

За много практически приложения е необходимо обработването на изображения<br />

да става възможно най-бързо или дори в реално време. Един от възможните подходи за<br />

постигане на по-високо бързодействие е използването на паралелни алгоритми.<br />

Филтърът „mean” (или средно число) спада към групата алгоритми за първична<br />

обработка на изображения [5]. В литературата е известен още като „neighborhood<br />

averaging” или осредняване по съседите. Филтриране от този тип в пространствената<br />

област представлява обхождане на цялото изображение с квадратна маска (с нечетна<br />

размерност) и сумиране стойностите на пикселите попадащи под маската. Получената<br />

сума се дели на броя сумирани пиксели и по този начин се получава новата стойност за<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 62 -<br />

пиксела, попадащ под централния елемент на маската. Филтърът може да бъде<br />

анизотропен или рекурсивен. При анизотропната му реализация на всяка стъпка от<br />

придвижването на маската се използват стойностите на пикселите от оригиналното<br />

изображение, а при рекурсивната - стойности, които са получени от предишните стъпки<br />

от движението на маската.<br />

2. Файлов формат BMP<br />

BITMAP е графичен файлов формат, който e устройствено-независим, известен<br />

още като Device Independent Bitmap (DIB). Този формат позволява на операционната<br />

система (ОС) Windows да изобразява битмапи, независимо от хардуера на дисплея.<br />

Битмапите в Windows са масиви от битове, пренасочени към пиксели от дисплея. DIB<br />

фиксира цвета на пикселите на изображението по начин, независещ от този, който<br />

използва съответния дисплей за визуализиране на пикселите. Това се дължи на факта,<br />

че всеки DIB носи своя собствена информация за цветовете, а оттам и управлението на<br />

цветовите палитри е по-лесно. Всеки компютър, работещ с ОС Windows, може да<br />

обработва DIB, които обикновено се съхраняват като файлове с разширение ‘.bmp’.<br />

Основните компоненти на един битмап файл са: файлов хедър, информационен<br />

хедър, цветова таблица, растерни данни. Устройствената независимост на DIB от<br />

хардуера на дисплея до голяма степен се дължи на факта, че всеки DIB носи своя<br />

собствена информация за цветовете. При 1, 4 и 8-битовите DIB тази информация се<br />

съдържа в цветова таблица, която е разположена веднага след информационния хедър.<br />

Тя представлява масив от елементи, чиито брой е равен на броя на използваните<br />

цветове в изображението. Имайки предвид факта, че цветовата таблица е налична само<br />

за монохромни, 4 и 8-битови битмапи, то максималния брой на елементите в нея е 2^8 =<br />

256. Всеки байт от растерното изображение (при 8-битовите битмапи) съответства на<br />

индекс от цветовата таблица, посредством който от нея се извличат данни за реално<br />

използвания цвят. За 24-битовите DIB-изображения всеки пиксел представлява RGB<br />

(red-green-blue) цвят, което определя напълно цвета на всеки един пиксел и поради тази<br />

причина не е необходима цветова таблица.<br />

3. Видове комуникация между процеси чрез MPI стандарта<br />

Message Passing Interface (MPI) е гъвкав интерфейс за писане на програми,<br />

предаващи съобщения/данни [4]. Комуникацията в MPI бива два вида – блокираща и<br />

неблокираща. Независимо от вида й, при изпращане/получаване на данни се извършват<br />

следните няколко стъпки [2]:<br />

При изпращащия процес тези стъпки са:<br />

1. Данните се копират в потребителския буфер от потребителя;<br />

2. Потребителя вика една от изпращащите MPI подпрограми;<br />

3. Системата копира данните от потребителския буфер в системния буфер;<br />

4. Системата изпраща данните от системния буфер до процеса получател.<br />

При процеса получател се случва следното:<br />

1. Потребителят вика една от MPI подпрограмите за получаване;<br />

2. Системата получава данните от процеса източник и ги копира в системния<br />

буфер;<br />

3. Системата копира данните от системния в потребителския буфер;<br />

4. Потребителят работи с данните от потребителския буфер.<br />

От фигура 1 се вижда, че при изпращане на данни, не трябва да се използва<br />

буфера, докато системата копира данните от потребителския буфер в системния буфер.<br />

При получаване на данни, данните няма да са напълно получени, до цялостното им<br />

копиране от системния буфер в потребителския буфер. При използването на


- 63 -<br />

подпрограми за блокираща комуникация като MPI_Send и MPI_Recv, програмата няма<br />

да се връща в точката на извикване, докато копирането от/в системния буфер не<br />

приключи. От друга страна, при подпрограмите за неблокираща комуникация като<br />

MPI_Isend и MPI_Irecv, програмата незабавно се връща в точката на извикване, след<br />

като данните са копирани от/в системния буфер. Чрез допълнителна функция MPI_Wait<br />

се прави проверка дали копирането е приключило. В случай, че се използва<br />

потребителския буфер преди копирането да е завършило, то в системния буфер могат<br />

да бъдат копирани невалидни данни (при неблокиращо изпращане), или<br />

потребителския буфер ще съдържа такива (при неблокиращо получаване). Като цяло, в<br />

практиката се използва предимно неблокираща комуникация, въпреки сложността й,<br />

поради факта, че тя е по-бърза от блокиращата. С други думи, потребителят може да<br />

извършва странични изчисления, докато системата копира данни между<br />

потребителския и системния буфер в двете посоки.<br />

Фигура 1. Движение на данните при Point-to-Point комуникация<br />

4. Реализация на паралелна обработка на 24-битово BMP изображение<br />

4.1. Класически филтър ‘mean’<br />

Реализацията на анизотропен филтър ‘mean’ за цветно изображение (r, g, b)<br />

изглежда по следния начин:<br />

void Filter_mean(int height,<br />

int width,<br />

unsigned char * src_pixels,<br />

unsigned char * dst_pixels,<br />

int mask_size)<br />

{<br />

int i, j, x, y, next_row;<br />

unsigned int sum_r, sum_g, sum_b;<br />

int half_mask = mask_size / 2;<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


}<br />

- 64 -<br />

COLOURINDEX** src_rows, dst_rows;<br />

int row_offset = BmpWidthInBytes(width);<br />

src_rows = (COLOURINDEX**)malloc(sizeof(COLOURINDEX*)*height);<br />

dst_rows = (COLOURINDEX**)malloc(sizeof(COLOURINDEX*)*height);<br />

--mask_size;<br />

for( i = 0; i < mask_size; ++i ){<br />

src_rows[i] = (COLOURINDEX*)src_pixels;<br />

src_pixels += row_offset;<br />

dst_rows[i] = (COLOURINDEX*)dst_pixels;<br />

dst_pixels += row_offset;<br />

}<br />

next_row = i;<br />

++mask_size;<br />

height -= half_mask;<br />

width -= half_mask;<br />

mask_size *= mask_size;<br />

for (i = half_mask; i < height; i++){<br />

src_rows[next_row] = (COLOURINDEX*)src_pixels;<br />

dst_rows[next_row] = (COLOURINDEX*)dst_pixels;<br />

src_pixels += row_offset;<br />

dst_pixels += row_offset;<br />

++next_row;<br />

for (j = half_mask; j < width; j++) {<br />

sum_r = sum_g = sum_b = 0;<br />

for (y = - half_mask; y


- 65 -<br />

dst_rows[i][j] присвояваме частното от деленето на гореспоменатите суми на броя<br />

елементи, които обхваща маската (mask_size* mask_size).<br />

4.2. Филтър ‘mean’ с използване на частични суми<br />

Обработката на изображението се ускорява при използване на частични суми.<br />

При нея изчисляването на новата стойност за всеки първи пиксел от ред на<br />

изображението става по класическия начин, а новите стойности за всички останали<br />

пиксели от реда се изчисляват по-бързо с помощта на частични суми [3].<br />

Анизотропната реализация на филтър ‘mean’ с използване на частични суми е следната:<br />

void Filter_mean_ps(int height,<br />

int width,<br />

unsigned char * src_pixels,<br />

unsigned char * dst_pixels,<br />

int mask_size)<br />

{<br />

int i,j,a,b,ib, next_row, next_col, junk_sum;<br />

int sum_r[MAX_MASK_SIZE],<br />

sum_g[MAX_MASK_SIZE],<br />

sum_b[MAX_MASK_SIZE],<br />

mask_sum_r, mask_sum_b, mask_sum_g,<br />

temp_sum_r, temp_sum_g, temp_sum_b;<br />

int half_mask = mask_size / 2,<br />

quad_mask = mask_size * mask_size;<br />

COLOURINDEX** src_rows, dst_rows;<br />

int row_offset = BmpWidthInBytes(width);<br />

src_rows = (COLOURINDEX**)malloc(sizeof(COLOURINDEX*)*height);<br />

dst_rows = (COLOURINDEX**)malloc(sizeof(COLOURINDEX*)*height);<br />

--mask_size;<br />

for( i = 0; i < mask_size; ++i )<br />

{<br />

src_rows[i] = (COLOURINDEX*)src_pixels;<br />

src_pixels += row_offset;<br />

dst_rows[i] = (COLOURINDEX*)dst_pixels;<br />

dst_pixels += row_offset;<br />

}<br />

next_row = i;<br />

++mask_size;<br />

height -= half_mask;<br />

width -= half_mask;<br />

for (i = half_mask; i < height; i++)<br />

{<br />

src_rows[next_row] = (COLOURINDEX*)src_pixels;<br />

dst_rows[next_row] = (COLOURINDEX*)dst_pixels;<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


src_pixels += row_offset;<br />

dst_pixels += row_offset;<br />

++next_row;<br />

- 66 -<br />

mask_sum_r = 0; mask_sum_b = 0; mask_sum_g = 0;<br />

for( a = 0; a < mask_size; ++a ){<br />

sum_r[a] = 0; sum_g[a] = 0; sum_b[a] = 0;<br />

for ( b = -half_mask; b


- 67 -<br />

free(dst_rows);<br />

}<br />

Функцията void Filter_mean_ps (int, int, unsigned char *, unsigned char*,<br />

mask_size) реализира филтъра mean, но с използване на частични суми. Подават й се<br />

като параметри височината и ширината в байтове на изображението, указател към<br />

оригиналния масив от растерни данни, указател към масива с филтрирани растерни<br />

данни и размера на маската, с която се филтрира изображението. Функцията заделя<br />

памет за два масива за изходното и филтрираното изображение, с размери, колкото е<br />

броя на редовете на изображението. Растерните данни се обхождат дo ред (респ.<br />

колона) с номер half_mask. В масивите sum_r[], sum_g[], sum_b[] натрупваме сумите на<br />

обходените от маската пиксели по компоненти (синя, зелена, червена). В променливите<br />

mask_sum_r, mask_sum_b, mask_sum_g натрупваме по компоненти, сумите изчислени в<br />

sum_r[], sum_g[], sum_b[]. В масива dst_rows[i][j] записваме частното от деленето на<br />

гореспоменатите суми на броя елементи, които обхваща маската (quad_mask).<br />

Пълзейки с маската на дясно, за изчислението на градацията на всеки съседен пиксел<br />

вече са натрупани първите mask_size-1 частични суми, остава да се пресметне<br />

частичната сума от следващата колона, за да може да се изчисли градацията на<br />

съседния пиксел. Нея я натрупваме в променливите temp_sum_r, temp_sum_b,<br />

temp_sum_g. След това от натрупаната вече сума на маската изваждаме частичната<br />

сума на първата колона и прибавяме на нейно място новата частична сума за колоната<br />

(след тази последно обработената от маската). Частичните суми на колоните, които се<br />

редуцират се индексират чрез променливата junk_sum. Това се повтаря за цялото<br />

изображение. Променените растерни данни се записват в масива dst_rows[i][j].<br />

4.3. Експериментални резултати<br />

Експериментите са проведени при следните условия:<br />

- изпълнение на всяка от програмите по десет пъти;<br />

- измерване на времето за обработка в секунди;<br />

- BMP (Bitmap) изображение с 1024 реда и 768 колони;<br />

- паралелните програми са изпълнени с общо 8 процеса (1 главен, 7 подчинени);<br />

- използване на функции от библиотеката MPI;<br />

- изпълнение на паралелните програми от клъстерна машина с четири<br />

двупроцесорни компютърни системи.<br />

Таблица 1. Време за обработката на 24 битов BMP файл (1024х768 ) по анизотропния<br />

метод на сканиращата маска (5x5) с филтър mean”<br />

Брой<br />

измервания<br />

Последователна<br />

програма<br />

Последователна<br />

програма с<br />

частични суми<br />

Паралелна<br />

програма<br />

Паралелна<br />

програма с<br />

частични суми<br />

1 2,849675 0,799393 0,457306 0,121437<br />

2 2,849628 0,799013 0,417366 0,113027<br />

3 2,849601 0,799094 0,412652 0,118204<br />

4 2,849605 0,79932 0,425654 0,122937<br />

5 2,850328 0,799034 0,457128 0,119172<br />

6 2,84966 0,799072 0,415534 0,112586<br />

7 2,850137 0,799087 0,419536 0,112881<br />

8 2,849641 0,79903 0,416082 0,113038<br />

9 2,851022 0,799007 0,45576 0,114396<br />

10 2,849708 0,79959 0,417002 0,115706<br />

средни 2,8499005 0,799164 0,429402 0,1163384<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


стойности<br />

- 68 -<br />

Както при последователната, така и при паралелната реализация на<br />

предложените алгоритми пускането на програмите е извършено чрез Internet.<br />

време [s]<br />

3.0<br />

2.5<br />

2.0<br />

1.5<br />

1.0<br />

0.5<br />

0.0<br />

1 2 3 4 5 6 7 8 9 10<br />

брой измервания<br />

Последователна<br />

програма<br />

Последователна<br />

програма с<br />

частични суми<br />

Паралелна<br />

програма<br />

Паралелна<br />

програма с<br />

частични суми<br />

Графика 1. Сравнение между последователните и паралелните реализации на филтър<br />

‘mean’ с и без използване на частични суми<br />

5. Заключение<br />

Експерименталните резултати показват, че филтрирането на изображения с<br />

филтър mean с частични суми при последователната програма е около 3,6 пъти побързо<br />

за конкретното изображение, отколкото при филтрирането на изображението без<br />

използване на частични суми. Ускорението се дължи на факта, че при ‘пълзенето’ на<br />

маската по реда надясно, част от търсената сума, определяща новата стойност на<br />

следващия елемент, вече е изчислена [4].<br />

Времето за филтриране на съответните изображения с паралелната програма е<br />

значително по-малко (приблизително 7 пъти) при по-големи изображения. Най-добри<br />

резултати във времето при обработката на изображения дава паралелният алгоритъм с<br />

използване на частични суми.<br />

Теоретично може да се очаква, че при паралелна обработка бързодействието<br />

трябва да бъде толкова пъти по-голямо, колкото повече са използваните процесори.<br />

Тъй като за осъществяване на измерванията са използвани четири двупроцесорни<br />

компютърни системи, може да се очаква осем пъти по-голямо бързодействие.<br />

Направените експерименти показват по-малко увеличение на бързодействието поради<br />

две основни причини:<br />

- при последователната обработка се отчита времето само за обработване масива на<br />

изображението, а при паралелната е включено и времето за изпращане на редове от<br />

изображението на всеки от slave процесите, както и времето за получаване на<br />

обработените редове;<br />

- използваната при експериментите машина работи в многозадачен и многопотребителски<br />

режим.


- 69 -<br />

ЛИТЕРАТУРА<br />

1. Gonzalez. “Digital image processing” second edition, 1987.<br />

2. www.redbooks.ibm.com<br />

3. N. Vasilev, A. Bosakova-Ardenska. Parallel algorithms of the scanning mask method for<br />

primary images processing, CompSysTech’04, Rousse, Bulgaria<br />

4. www.mpi-forum.org<br />

5. http://www.cee.hw.ac.uk/hipr/html/mean.html<br />

Department of Electrical <strong>Engineering</strong><br />

Technical University–Sofia, Plovdiv Branch<br />

25, Tsanko Dystabanov Str.<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: abosakova@yahoo.com, mnvasilev@yahoo.com, a_pagurova@yahoo.com<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 70 -


- 71 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

8 - BIT IP CORES USING LIKE BASIS FOR SYSTEM-ON-<br />

CHIP PLATFORM FOR REALTIME EFFICIENCY<br />

ATANAS DESEV<br />

Abstract. We are examined few 8051-based IP, there is description of benefits and<br />

blemish of the appropriate core. Synthesis was done on Spartan-3 FPGA. We are shown the<br />

difficulties met on realization and achievement of requirements for working in real-time.<br />

8 - БИТОВИ ЯДРА КАТО ОСНОВА ЗА СИСТЕМА-ВЪРХУ-ЧИП<br />

ПЛАТФОРМА ЗА РАБОТА В РЕАЛНО ВРЕМЕ<br />

1. Въведение<br />

Редица изследвания на пазара на микропроцесорни устройства показват<br />

стабилният пазарен дял на 8-битовите контролери, който и в следващите няколко<br />

години ще остане с приходи от около 5.5 милиарда долара и производство на около 3<br />

милиарда чипа годишнo. Популярността на тези устройства се дължи на техните<br />

основни предимства, известни като 3P (preformance, periphers, price) – увеличена<br />

производителност, брой и фунцкионалност на периферните устройства, както и<br />

намалена цена и консумация [1]. Все по-голям брой производители на<br />

полупроводникови прибори предлагат „вградени” микропроцесорни устройства на<br />

базата на 8-битови ядра. Някои автори наричат тези устройства „smart” или<br />

интелигентни. Наличието на вграден процесор в даден продукт го прави<br />

„интелигинтен”, защото е способен сам да събира, съхранява, обработва и предава<br />

нужната информация.<br />

8-битовите микроконтролери се срещат на практика почти навсякъде в нашето<br />

ежедневие, трябва да отбележим ще съществува огромно количество и разнообразие от<br />

функционалност при тези устройства [1]. В настоящата статия се прави опит да се<br />

разгледа пазарът на 8-битовите контролери предлагани като IP core ядра и да се<br />

изследва възможността им да се вграждат в конфигуруеми системи-върху-чип (на<br />

базата на Spartan-3 FPGA) работещи в условия на реално-време със занижени<br />

изисквания (soft real-time).<br />

2. Изложение<br />

С намаляване на цената на FPGA устройствата става удобно използването на IP<br />

core или повторно използване на инженерния труд. IP (intellectual property) ядрата дават<br />

възможност на дизайнерите бързо, лесно и ефективно да създават сложни системивърху-чип<br />

проекти, като интегрират предварително създадени фунцкционални блокове.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 72 -<br />

По този начин се избягва нуждата от допълнителна верификация, тези ядра гарантират<br />

спазването на определените работни параметри, тъй като са предварително тествани и<br />

оптимизирани. Правилният избор на едно IP ядро е комплексна задача и зависи силно<br />

от спецификаците на изисквания краен продукт. Повечето от тези ядра се доставят под<br />

две форми: soft и hard (някои автори споменават и за firmcore). Soft-ядрата се<br />

„синтезират” от клиента, той може да си имплементира ядрото в негова система.<br />

Докато hard-ядрата са вече „внедрени” и не позволяват допълнителни интервенции.<br />

Всеки вид си има своите предимства и недостатъци. Като основно предимство на softядрата<br />

може да посочим тяхната гъвкавост, те се предлагат най-често под формата на<br />

VHDL или Veriolg RTL изходен код, заедно с необходимите тестбенчове и макроси за<br />

синтезирането и верификацията им. По този начин разработчика на системата може да<br />

внесе допълнителни промени в кода и ядрото да придобие необходимата допълнителна<br />

функционалност. Също така, soft-ядрото е много по-независимо технологично и е<br />

„преносимо”, защото задачите за оптимизация, в контекста на производителност и<br />

заемани ресурси, се поемат от VHDL/Verilog компилатора и CAD средата предоставяна<br />

от дадения производител на FPGA/CPLD/ASIC чипове. Основно предимство за hardядрото<br />

е неговата висока производителност и намалена консумация. Това се постига<br />

чрез много „финна настройка” на ядрото за съответния технологичен процес на<br />

изработка. От друга страна това го прави много по зависимо и трудно преносимо,<br />

например ако е разработено за 0,25µ процес, същото може да не работи коректно с<br />

0.35µ. Подробно предимствата и недостатъците на IP ядрата, както и кратка методика<br />

за техния правилен избор е дадена в [3].<br />

Съществува огромно разнообразие от предлагани IP-ядра, дори почти всички<br />

производители на FPGA/CPLD/ASIC чипове предлагат в техните CAD системи<br />

библиотеки съставени от набор IP-ядра, при това технологично съобразени с конкретно<br />

използваната логика. Добър пример в това отношение е Xilinx CoreGenerator. В<br />

настоящата статия ние акцентираме само върху IP-ядра представляващи процесорни<br />

елементи [4,5] и по-специално 8-битови контролери. В последните няколко години<br />

цената на програмируемите прибори спадна драстично, като наред с това се увеличи<br />

капацитета им и се вградиха памети, хардуерни умножители, DCM и други<br />

функционални блокове. На фиг. 1 е показана таблица описваща характеристиките на<br />

една съвременна серия FPGA устройства. В настоящата работа е използван чип<br />

XC3S200. Предвид ресурсите, с които разполага Spartan-3 200K, e удобно целия<br />

микроконтролер да се имплементира в FPGA.<br />

фигура 1. Фамилия FPGA устройства Xilinx Spartan-3<br />

Тук влизат и RAM/ROM паметта на контролера, както и възможността за реализация на<br />

XRAM. Важно е да отбележим, че инструкциите за умножение (деление) могат да<br />

бъдат имплементирани на хардуерно ниво, тъй като има 12 вградени 18bit x 18bit<br />

хардуени умножители в използвания FPGA.


- 73 -<br />

3. Особености при IP soft-ядро.<br />

Възможностите, които ни предоставят съвременните FPGA устройства<br />

позволяват да имплементираме цели микроконтролери заедно с паметите и<br />

периферията в чипа [2,5,6,7]. Това прави дизайнът напълно синхронен, а с подходяща<br />

оптимизация бихме могли да постигнем много по-добра производителност и по-малко<br />

заемани ресурси [8]. В [11] е показан дизайн на 8-битов акумулатор-базиран<br />

микроконтролер притежаващ 4 инструкции, които се имплементира в CPLD с 32<br />

макроклетки. Обект на разработката в [7] е световно известният 8-битов контролер<br />

PicoBlaze, наричан още KCPSM или програмируем краен автомат. Особеното при него<br />

е, че всички инсртукции за изпълнение (програмната памет) са заредени в BlockRAM<br />

блок в FPGA. Контролерът изисква само 35 CLB (конфигуруеми логически блока),<br />

което позволява дори в най-малкият FPGA Spartan-3 да се имплементират няколко<br />

контролера. Естествено изчислителните ресурси на този процесор за слаби, а основен<br />

недостатък е, че програмната памет е ограничена до 1024 думи. Въпреки това може<br />

успешно да се ползва като управляващ програмен краен автомат. Друг пример за добре<br />

оптимизирани за реализация в FPGA микроконтролери са [8,9,12]. Прави впечатление,<br />

че някои разработчици се ориентират към RISC базирани архитектури с ясни и<br />

изчистини системи от инструкции, като предпочитани езици за разработка са Verilog и<br />

VHDL. Разбира се съществуват и немалко CISC базирани разработки с богат набор от<br />

инструкции, но това се отразява на размера на заеманите в FPGA ресурси, тъй като за<br />

по-големия брой е нужна повече декодираща логика. Наред с традиционните езици за<br />

описание на електоронен хардуер все по-голяма популярност добива т.нар. метод на<br />

хардуерния/софтуерен кодизайн. Реализацията на специализирано процесорно ядро за<br />

вграждане в системи-върху-чип може с пълна сила да се възползва от този подход. При<br />

проектирането се взимат специфичните изисквания за подобен род продукт, от една<br />

страна ядрото да бъде достатъчно универсално, за да се възползва от съществуващия<br />

софтуер, асемблери и компилатори, но от друга да бъде максимално ефективно за<br />

дадено множество от управляващи програми, тъй като функционалността поставяна<br />

пред тези устройства е строго специфична. Процесорът за вгрдаждане трябва да бъде<br />

проектиран по начин позволяващ разширяване на възможностите с нови (периферия,<br />

специални регистри, памет и методи за адресация) [2]. Системата от инструкции трябва<br />

да бъде съобразена с размера на програмната памет, също трябва да се избират<br />

правилно и методите за адресация. Общо стремежът трявба да е насочен към<br />

минимална заемана площ, защото това води до по-добра реализация в система-върхучип<br />

и по-малка консумация (важно е за системите работещи с батерии).<br />

Хардуерният/софтуерен кодизайн е процес на съвместно проектиране. Единият процес<br />

се състои от определяне на оптималната система от инструкции и ахритектурата на<br />

ядрото, а другият се отнася към оптимизацията на ядрото, неговата операционна и<br />

управляваща части се изследват и минимизират по площ. Съществува взаимно влияние<br />

между двата процеса, затова винаги се търси подходящ компромис. В редица<br />

разработки се използват езици и среди за кодизайн, например в [10] е разработен 8битов<br />

RISC микроконтролер с 33 инструкции и програмируем таймер. Използван е език<br />

от високо ниво Handel-C за целия дизайн и отстраняване на бъгове. Контролерът е<br />

имплементиран в Xilinx XC4010XL FPGA устройство. Интересно е да се отбележи, че<br />

целия проект е реализиран за 48 часа. Подобен подход с използване на език от високо<br />

ниво SystemC е [13] за разработване, тестване, сумилация и оптимизация на 8051съвместимо<br />

ядро. Дериватът на SystemC – ArchC пък е изполван за описание на „цикълсъвместими”<br />

с 8051 инструкции и е наблюдавно тяхното поведение. Съществуват и<br />

други езици от високо ниво за описание на хардуер и позволяващи кодизайн [2].<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 74 -<br />

4. Избор на 8051-съвместимо IP soft-ядро.<br />

Съществува голямо разнообразие от 8-битови микроконтролери под формата на<br />

IP ядра, които са адаптирани за нуждите на работа в реално време. [14] е отличен<br />

пример за това, като целевия процесор е MC6805. В литературата са известни<br />

разработки базирани на AVR, PIC и други по-малко познати процесорни ядра.<br />

Съществува тенденция към създаване на мултипроцесорни системи-върху-чипа, на<br />

базата на няколко 8-битови процесорни ядра [15]. Това води до добра скалируемост,<br />

истински многозадачен режим, паралелно изпълнение, но за да възползваме от тези<br />

подобрения трябва софтуерът да е написан по специфичен начин за дадения<br />

мултипроцесор, което не е много популярно. В [1] е обосновано защо нашият избор за<br />

процесорно ядро се спира на 8051 архитектура. Основното му предимство е лесното<br />

нагрдаждане с нова периферия (през SFR) и огромното количесто от вече написан<br />

софтуер, асемблери, компилатори, RTOS и библиотеки. Въпреки, че с 25-годишната си<br />

архитектура това ядро се приема за доста архаично, съществуават доказателства за<br />

добрите възмножности, които то предоставя както като изчислителна мощ [16]. В [17]<br />

се предлага изцяло проектиран за работа в реално време 8051 контролер под формата<br />

на IP soft-ядро. Поддържат се до 65000 процеса благодарение на промени във<br />

вътршната архитектура на процесора – той е имплеметиран като фон Нойман процесор.<br />

Въпреки това, съвместимостта с оригиналния набор от инструкции е запазенa, като са<br />

добавени нови обслужващи RTM мениджера за реално време, инкорпориран в<br />

процесора. Премахнати са само някои редко използвани бит-ориентирани инструкции,<br />

в оригиналия модел на контролера съществува само 1 свободна инструкция с КОП<br />

А5H. В uRT51 са добавени съшо и мениджер на паметта, мениджер на прекъсванията и<br />

модул за дебъг . Целият проект е насочен за имплементация в Altera FPGA се обслужва<br />

от специално създадена интегрирана среда за разработка uRT51 programming suite,<br />

позволяваща пълно наблюдение на системата, програмиране, дебъг и осблужване на<br />

дисциплини EDF и RM. Системата-верху-чип е напълно синхронна и е постигната<br />

работна честота от 10MHz при използване на Altera APEX EP20KE200 FPGA, което<br />

дава възможност за прецизни времеви фунцкии от 100ns.<br />

Можем да направим условно разделение на два класа IP-ядра при избора ни:<br />

комерсиални и некомерсиални. В [18] са описани някои от най-добрите 8051-<br />

комерсиални ядра, а в таблица 1 са приведени характеристиките им.<br />

ЯДРО ПАМЕТ ПЕРИФЕР<br />

ИЯ<br />

ОСОБЕНОСТИ<br />

Actel<br />

Core8051<br />

100% ASM51 (8051/80C31/80C51) съвместим набор от инструкции,<br />

намалено време за изпълнение на инструкциите до 12 цикъла, Netlist и<br />

RTL версии, Verilog and VHDL Core Source Code, 4 8-Bit I/O Ports,<br />

алтернативни порт функции, като външни прекъсвания, предоставят се<br />

повече входно изходни пинове в сравнение с оригиналния 8051, сериен<br />

порт, два 16-Bit Timer/Counters4 приоритетни нива с 13 източника на<br />

прекъсвания, Core8051 Speed Advantage Average: 8.0<br />

Opcode и Cycle еквивалент на Intel 8051, поддържа Intel Hex file format<br />

Aldec до 4K Bytes Internal Program Memory (ROM), до 128 Bytes Internal Data<br />

8051 Memory (RAM), , до 128 Special Function Registers SFR, Full Duplex<br />

UART, 6-Source/5-Vector Interrupt Structure


Atotek<br />

ATT8051<br />

C128<br />

DCD<br />

DP8051<br />

Pipelined<br />

Mentor<br />

Graphics<br />

Inventra<br />

8051<br />

Trentz<br />

Electroni<br />

c TE-51<br />

Synopsys<br />

DW8051<br />

- 75 -<br />

ATT8051C128 е microcode-freedesign създаден за имплементиране в<br />

FPGA. Дизайнът е напълно синхронен с тактуване по нарастващ фронт,<br />

без вътрешни tri-states състояния.<br />

DP8051 е процесор с много висока призводителност, оптимизирано за<br />

скоростspeed soft ядро. То е специално разработено с идея за<br />

консумацията на енергия. DP8051 използва конвейрна RISC<br />

архитектура 10 пъти по-бърза от оригиналното ядро и може да<br />

изпълнява 85-200 million instructions per second<br />

M8051W високопроизводително 8051 съвместимо ядро, изисвкващо<br />

само два такта за машинен цикъл за разлика от отигиналното, изскващо<br />

12, като се напълно се запзва съвместимостта. Това позволява на<br />

M8051W да бъде до 6 пъти по-бързо при еднаква консумация или 1/6 от<br />

консумацията на енергия, когато работи със стандартна скорост.<br />

За разлика от оригиланият 8051 микроконтролер, в този няма никаква<br />

интегрирана периферия. Такава може да бъде добавена допълнително,<br />

когато се исиква от дизайна. Ядрото също не поддържа и прекъсвания,<br />

затова инструкцията RETI не е имплементирана.Инсртукциите за<br />

умножение и делене MUL and DIV се изпълняват за два такта, в<br />

стандартния 8051 за 4. Поддържат се само част от оригиналния набор от<br />

регистри със специално предназначение SFR.<br />

DW8051 е съвместимо със стандартния набор от инструкции на 8051и<br />

може да бъде конфигуриран до много модификации на индусртуални<br />

стандартни 803x/805x архитектури. Налице са контролните сигнали за<br />

805x В/И портове. Чрез задаване на допълнителни параметри са<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


QuickCor<br />

e<br />

QC8051<br />

Quickchi<br />

p<br />

QUIC_80<br />

51<br />

RDC<br />

RISC<br />

DSP<br />

Controlle<br />

r<br />

R8032TT<br />

E<br />

Roman-<br />

Jones<br />

PicoBlaze<br />

- 76 -<br />

достъпни още един сериен порт и трети таймер. DW8051 дизайнът е<br />

напълно синхронен. Благодарение на редуциране на машинния цикъл се<br />

постига повишена производителност, а чрез dual указател за данни се<br />

осигурява манипулирането на големи по обен данни. В зависимост от<br />

вида и начина на реализация и имплементираните функционални<br />

блокове DW8051 ядрото заема около 10k-13k gates. Работната честота<br />

достига до 120MHz, за по-големи честоти се изисква производствен<br />

процес 0.25 микрона или по-малко. Приложениеята, които не изискват<br />

пикова изчислителна мощ могат да се използват възможността,<br />

процесора да работи на по-ниска честота, като постига сходна с<br />

оригиналния 8051 производителност. Това води до понижена<br />

консумация. Стандатният 8051 предоставя интерфейс с периферията<br />

само през портовете си. В допълнение към портовете, DW8051 предлага<br />

и възможност за директен достъп през шината за памет и SFR. Това<br />

осигурява възможност и на потребителксата специализирана периферия<br />

да се свързва към ефективаната SFR шина, същата която се използва от<br />

вътрешната стандартна 8051 периферия. За целта могат да се използват<br />

свободните SFR адреси, които не са заети от вътрешната периферия.<br />

Този подход осигурява прединмства като бързо четене и запис – 1 цикъл<br />

срещу 2, ако се използва mem_bus; директно адресиране; може да се<br />

използва битово ориентирани инструкции, ако се налага побитова<br />

адресация; компактен и ефективен код.<br />

Използва се конвейрна архитектура, повечето от инструкциите се<br />

изпълняват за един цикъл. Разполага с потребителски конфигуруем блок<br />

от регистри със специално предназначение SFR. Използва се<br />

архитектура за мониторинг в реално време на вътрешните операции, без<br />

използване на „монитори”, през JTAG порт.<br />

QUIC_8051 е съвместим с оригиналния 8051, но не е идентичен.<br />

QUIC_8051 изпълнява инструкциите си до 6 пъти по-бързо на еднаква<br />

тактова честота. Това не се отразява на вградените периферни<br />

устройства. Използва се модерна тристепенна конвейрна архитектура,<br />

постига се максимална честота от 20MHz при имплементация в FPGA.<br />

Възможно е използването на различни средства за дебъг.<br />

8032TTE е високопроизводителен съвместим с 8051 RISC<br />

микроконтролер, базиран на конвейрна архитектура. Използват се<br />

различни тайминг спецификации при запис/четене на външна програмна<br />

и даннова памет, но наборът от инсдтрикции е обратно съвместим.<br />

8032TTE предлага 4 адресни пространства: 64КB програмна памет,<br />

64КB външна програмна памет, 256 байта вътрешна памет за данни и 16битов<br />

PC. От своя страна 256-те байта вътрешна памет за данни е<br />

разделена на две адресни пространства - 256 байта вътрешна памет за<br />

данни и 128 байта за регистри със специално предназначение. Горните<br />

128 байта се адресират индиректно. Изполват се 4 регистрови банки, 128<br />

адресируеми бита, а стекът е разположен във вътршната памет за данни.<br />

R8032TTE използва хардуерни умножители, за да се ускорят<br />

изчисленията. Може да извърши 1 инструкция за умножение за 1<br />

машинен цикъл.<br />

PicoBlaze Emulated 8051 е софтуерно съвместим контролер (включва<br />

сериен порт и<br />

таймери).


Emulated<br />

8051<br />

- 77 -<br />

Таблица 1. Описание на по-известни soft 8051 съвместими IP ядра<br />

Въпреки, че комерсиалните IP-ядра предлагат много добра производителност тяхната<br />

цена в висока. Повечето се преглагат в затворена EDIF форма, а в случаите когато се<br />

предоставя VHDL или Verilog RTL код цената може да достигне до няколко десетки<br />

хиляди долара. Затова е наложително да се търси некомерсиално ядро. Същесвтуват<br />

добри разработки като Dalton Project [19] и e8051 [20]. Трябва да отбележим, че е8051 е<br />

комерсиален продукт, на базата на който са създадени много високопроизводителни<br />

деривати на 8051 (например Dallas DS80C320), но съществува и ограничена версия за<br />

свободно позване. Dalton проектът, предлага много добър набор от тестови програми. И<br />

двете ядра обаче не са особено подходящи за реализация на система-въху-чип за работа<br />

в реално време.<br />

В [21] e описан 8051 съвместим модел MC8051 (фиг.2)., разработка на фирма<br />

Oregano Systems и <strong>Технически</strong>ят Университет - Виена, предлаган безплатно под GNU<br />

LGPL лиценз. Редица автори са избрали именно това ядро за основа на техните<br />

проекти. Подходяшо е за изграждане както на FPGA системи, така и за ASIC. В [22] на<br />

базата на MC8051 е проведено изследване за имплементация на ядрото чрез<br />

STMicroelectronics CORELIB8DLL_HCMOS8D VLSI CMOS 0.18 micron стандартни<br />

клетки в ASIC, а и по отношение на комсумацията на чипа [23]. От направената<br />

литературна справка MC8051 се оказва най-подходящо за използване като основа за<br />

създаване на система-върху-чип за реално време на базата на програмируема логика.<br />

Предимствата се състоят основно във възможността за оптимизация на наборът от инструкции<br />

с цел по-ефективно изпълнение на определени команди съобразени с особеностите<br />

на реално-времевите процеси по подобие на [24] и добавяне на специализирани<br />

функционални блокове. В [24] са сравнени резултатите от изпълнението на специално<br />

създаденият тест за определяне на производителнотта на реално-времеви системи -<br />

Rhealstone. В тестът са използвани няколко имплементации - базов MC8051 и MC8051<br />

с добавени нови инструкции (ART8051), и двете под управлението на софтуерна RTOS.<br />

Получените резултати са ползва на модифицираната версия. В [25] MC8051 се въвежда<br />

нов режим на работа в реално време на timer/counter - Mode 0: 13-bit timer/counter and<br />

real-time counter.<br />

Дизайнът на MC8051 е напълно синхронен, позволявайки значително по-добра<br />

производителност в сравнение с оригиналното 8051 ядро - Average Performance Gain:<br />

8,405405405. В MC8051 има възможност за избор на различни модули, като например<br />

брой на таймерите [21] само със смяната на една константа в RTL кода, което е много<br />

важно предвид крайния капацитет на използваният FPGA чип (4320 клетки). На фигура<br />

3 са показа резултатите от имплементацията на MC8051 ядрото в Xilinx Sparta-3<br />

XC3S200 FPGA. Използван е Xilinx ISE WebPACK 8.1.02i.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


Фиг. 2 Блокова схема на MC8051<br />

- 78 -<br />

Selected Device : 3s200ft256-4<br />

==========================================<br />

Number of Slices: 1749 out of 1920 91%<br />

Number of Slice Flip Flops: 536 out of 3840 13%<br />

Number of 4 input LUTs: 3104 out of 3840<br />

80%<br />

Number of bonded IOBs: 74 out of 173 42%<br />

IOB Flip Flops: 69<br />

Number of MULT18X18s: 1 out of 12 8%<br />

Number of GCLKs: 1 out of 8 12%<br />

==========================================<br />

Timing Summary: Speed Grade: -4<br />

Minimum period: 74.925ns (Maximum Frequency:<br />

13.347MHz)<br />

Minimum input arrival time before clock: 70.146ns<br />

Maximum output required time after clock: 65.211ns<br />

Maximum combinational path delay: 60.433ns<br />

==========================================<br />

Фиг. 3 Резултати от<br />

имплементацията в FPGA<br />

При реализацията на проекта всичкинеобходими за микроконтролера памети (IRAM,<br />

ROM, SFR) са имплементирани във вътрешната за FPGA BlockRAM. За целта се<br />

използват примитивите на Spartan-3 RAMB16_S9. Добавен е един блок SIU – serial<br />

interface unit, също и специалните инструкции за умножение и делене MUL и DIV.<br />

Изплозва се един от вградените в FPGA 12 хардуерни умножители, както се вижда от<br />

репорта, което ускорява значително операциите свързани с умножение/делене. В<br />

проекта са реализирани всичките 4 8-битови В/И порта. Прави впечатление, че се<br />

заемат почти всички ресурси на FPGA, може да ги редуцираме като не се задават<br />

всички 32 В/И пина, а само част от тях. Проектът е на базата на MC8051 вресия 1.4 от<br />

2002г.<br />

Установена e оптимизация по площ, но въпреки това се постига много добра<br />

тактова честота от около 13MHz. При реалните тестове на ядрото се забелязват<br />

проблеми при обработката на прекъсвания, изразяващи се в непредвидимо изпълнение<br />

при връщане от прекъсване – инструкцията RETI. Този проблем е успешно решен във<br />

версия 1.5 на ядрото. Тъй като MC8051 е с йерархичен дизайн, лесно може да се добави<br />

обслужване на потребителски функционални блокове, като се дефинират нови SFR<br />

регистри в модула i_control_mem. Това ще позволи директна адресация към<br />

специализианата периферия. Описанието на нови инструкции се прави в модулите<br />

i_control_fsm и i_control_mem, съответно за определяне на функциите на инструкцията<br />

и нейното декодиране. При една по-финна оптимизация и максимално използване на<br />

примитивите на Spartan-3 FPGA може да се постигне много добра производителност,<br />

до 20MHz тактова честота, инструкции изпълнявани за един цикъл, хардуерно<br />

подпомагане на операции по умножение/делене и други. Това ни дава възможност<br />

успешно да използваме ядрото, като основа за система-върху-чип платформа за работа<br />

в реално време, особено ако се добави хардуерен ускорител за RTOS под формата на<br />

специализирана периферия.<br />

5. Заключение<br />

Можем да обобщим, че „вграждането” на soft-ядро в FPGA и изграденият на<br />

негова база микроконтролер има редица предимства пред традиционния такъв със<br />

сходни функции – най-важното за работа в реално време е напълно синхронният дизайн<br />

на микроконтролера и периферията. Друго предимство е възможността за реализиране


- 79 -<br />

на собствени инструкции от разработчика (потербителя). Той може да извърши<br />

предварително програмиране и да определи в потока от команди, изпълнявани от<br />

процесора, кой са най-често срешаните. По такъв начин тези инсртукции могат да се<br />

групират в една изпълнявана апаратно, като производителността на процесора за<br />

определен вид задачи ще нарастне, а програмирането му ще се облекчи.<br />

Допълнителните (специални) потебителски инструкции могат да се изпълняват от АЛУ<br />

или в допълнителен изчислителен блок свързан към АЛУ, например бързо<br />

преобразувание на Фурие FFT. Последно е възможността за надграждане на контролера<br />

със нови функционални блокове, като техния брой и предназначение е ограничен<br />

единствено от наличните ресурси на FPGA.<br />

ЛИТЕРАТУРА<br />

1. А. Десев, Н. Шопов, О. Мариносян. Настояще и пазарни тенденции при 8-битовите<br />

микроконтролери, Научна конференция с междунардоно участие „Храни, наука и<br />

технологии”, УХТ – Пловдив, 2006.<br />

2. Иосиф Каршенбойм. Микропроцессор своими руками, Компоненты и технологии,<br />

№ 6’2002<br />

3. Choosing an Intellectual Property Core., MIPS Technologies, Inc., 2002.<br />

4. Daniel Mattisson, Marcus Christensson. Evaluation of synthesizable CPU cores, Master<br />

Thesis, CHALMERS UNIVERSITY OF TECHNOLOGY, Gothenburg, 2004.<br />

5. Gary Cheng-Yu Wang. Automated Reuse of Embedded Controllers, University of<br />

Auckland, 2004.<br />

6. C. Piguet. Reconfigurable Microcontrollers, CSEM Centre Suisse d’Electronique et de<br />

Microtechnique Neuchâtel, Switzerland, 2004.<br />

7. Ken Chapman. Creating Embedded Microcontrollers, Xilinx Co. UK, 2003.<br />

8. Jan Gray. Designing a Simple FPGA-Optimized RISC CPU and System-on-a-Chip, Gray<br />

Research LLC, 2000.<br />

9. Yap Zi He. Building A RISC Microcontroller in an FPGA, Universiti Teknologi Malaysia,<br />

2002.<br />

10. D. SulÍk. Design of a RISC Microcontroller Core in 48 Hours, Slovak University of<br />

Technology, 2003.<br />

11. Tim B¨oscke. A minimal 8Bit CPU in a 32 Macrocell CLPD, 2002.<br />

12. Matten Tariq, Meeshal Kausar. 8 Bit RISC Mmicroprocessor - Written in Verilog and<br />

implemented on FPGA, AIR University, 2005.<br />

13. Diogo José Costa Alves, Tiago Sampaio Lins. A 8051 μC FUNCTIONAL RTL<br />

DESCRIPTION USING SYSTEMC FOR PLATFORM BASED DESIGN, Centro de<br />

Informática, Universidad e Federal de Pernambuco, 2003.<br />

14. Guillermo Jaquenod, Oscar Bria. Adapting an IP MC6805 core for multiprocessing and<br />

multitasking, Fac. Ingeneria, UNCBA, Argentina, 2003.<br />

15. B.D. Theelen, A.C. Verschueren, V.V. Reyes. Scalable single-chip multi-processor<br />

architecture with on-chip RTOS kernel, Journal of Systems Architecture 49 (2003) 619–639.<br />

16. В.Л.Лепеха, А.М.Сергиенко. VHDL -модель ультрабыстрого процессора 8051.<br />

17. R. Cayssials, E. Ferro and O. Alimenti. uRT51: An Embedded Real-Time processor<br />

implemented on FPGA devices, Universidad Nacional del Sur, Bahía Blanca – Argentina.<br />

18. Author: Amit Dhir, Saeid Mousavi. High-performance Spartan-II 8-bit Microcontroller<br />

Solution, Xilinx, WP114 v1.0, 2000.<br />

19. Dalton Project - Synthesizable VHDL Model of 8051.<br />

20. www.e8051.net<br />

21. Oregano Systems, MC8051 IP core - Synthesizeable VHDL Microcontroller.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 80 -<br />

22. M. Schutti, M. Pfaff, R. Hagelauer. VHDL Design of Embedded Processor Cores: the<br />

Industry-Standard Microcontroller 8051 and 68HC11, ASIC Conference 1998. Proceedings.<br />

Eleventh Annual IEEE International, 13 – 16 Sept. 1998, Pages: 265 – 269.<br />

23. Roland Holler. Entwurf eines 8051-Microcontroller IP-Blocks, Diplomarbeit, Technische<br />

Universitat Wien, 1999.<br />

24. Lee L.C., Link H. Embedded Processor Core Design to Support Real-Time Operating<br />

Systems. Department of Electrical and <strong>Computer</strong> <strong>Engineering</strong>, University of Auckland, New<br />

Zealand, 2003.<br />

25. Cakiroglu M., Ozcerit A.T., Cetin O. , Eskikurt H.I. Integration of Real-time counter<br />

unit into a microcontrller through reconfiguration, Sakarya University, Tech. Edu. Fac.<br />

Adapazari, Turkey.<br />

Atanas Desev, PhD student<br />

Department of <strong>Computer</strong> system and technologies<br />

University of Food Technologie, Plovdiv<br />

26, Maritza blvd.,<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: desev@hifii-plovdiv.acad.bg<br />

Atanas Desev, PhD student<br />

Department of <strong>Computer</strong> system and technologies<br />

University of Food Technologie, Plovdiv<br />

26, Maritza blvd.,<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: desev@hifii-plovdiv.acad.bg


- 81 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

METHODS AND RESOUSCES FOR HARDWARE RTOS<br />

ACCELERATION<br />

ATANAS DESEV<br />

Abstract. We are examined basic methods and resources for hardware RTOS<br />

acceleration. There are brief descriptions of methods including coprocessor<br />

approach, instruction set optimization and partial and full accelerators. There is<br />

proposal of HW-RTOS-8/4 conceptual model, facilitate basic functions like<br />

process scheduling, interprocess synchronization, semaphores and timers.<br />

Behavior test and results from synthesis on Spartan-3 FPGA was done.<br />

МЕТОДИ И СРЕДСТВА ЗА ХАРДУЕРНО УСКОРЕНИЕ НА<br />

ОПЕРАЦИОННИ СИСТЕМИ ЗА РЕАЛНО ВРЕМЕ<br />

1. Въведение<br />

С нарастващият в световен мащаб брой на „вградените” микропроцесорни<br />

устройства се забелязва и усложняване на обслужващият системен софтуер и фърмуер.<br />

Тук централно място заема RTOS – операционната система за реално-време, тъй като<br />

пред „вградените” системи много често се поставя условие за функциониране в режим<br />

на реално време, например широко използваният кабелен модем Motorola SB5100 е под<br />

управлението на VxWorks RTOS с вграден web сървър. Операционната система<br />

предоставя ниво на абстракция от хардуера и набор от системни примитиви, както и<br />

API програмен интерфейс, използван от приложните програмисти. Нарастването по<br />

обем и сложност налага по-интензивно използване на централния процесор, което от<br />

своя страна води до редуцуране на процесорните ресурси, предоставяни на приложните<br />

програми. „Натоварването” при използването на RTOS варира в широки граници, като<br />

при системите от долния пазарен сегмент на 8/16 – битови контролери и процесори е<br />

по-ниско до 4-5%, защото се обслужва само многозадачния режим на работа и<br />

планирането на процесите, докато при 32/64 – битовите и DSP процесори може да<br />

достигне и до 30% поради обслужване на допълнителна периферия, мрежови стекове,<br />

файлови системи и други.<br />

В настоящата статия се разглеждат някои от най-използваните подходи за<br />

намаляване на „натоварването” на процесора при използването на RTOS. За целта може<br />

да направим условно разделение - на средства и на методи. В т.2 и т.3 се разглеждат<br />

съответно средствата и методите, в т.4 се предлага концептуален модел на ускорител за<br />

4 процеса при 8-битов контролер, а в т.5 са направени основните изводи и са<br />

представени предизвикателствата пред реализацията.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 82 -<br />

2. Описание на средствата<br />

Под средства разбираме елементната база – хардуерът, който се използва в<br />

системата за реално време. Подобно на [1] можем условно да отличим три групи<br />

хардуер. На първо място са т. нар. процесори с разширени възможности – advanced<br />

embedded processors – това са устройства от горния пазарен сегмент, които притежават<br />

характеристики и възможности нетипични за масовите микроконтролери и процесори:<br />

мултискаларни архитектури – DEC ALPHA 21164, PowerPC 604, MIPS R1000,<br />

UltraSPARC; Intel HyperThreading – един физически процесор се разглежда като два<br />

логически, за ОС и програмиста те са два реални процесора; Intel и AMD DualCore<br />

процесори – два физически процесора в един корпус; The Imagination Technologies<br />

META процесор – RISCP/DSP функции, предоставя се под формата на IP core за<br />

вграждане в SoC платформи; TI TMS320C80 MVP – едночипови многоядрени DSP<br />

процесори; Infenion TriCore – hardcore IP, CarCore IP ядро – базирано на TriCore,<br />

позволява изпълнение на една „hard realtime” и няколко „soft realtime” нишки.<br />

Поради високата цена и консумирана мощност на “advanced” процесорите, често<br />

в практиката се използва програмируема логика FPGA/CPLD за имплементиране на<br />

интензивни изчисления или специфични функции. Наблюдава се тенденция за все пошироко<br />

навлизане на FPGA в областта на вградените системи, като главен фактор е<br />

понижената им цена, намалена консумация, както и възможностите за повторно<br />

реконфигуриране. Използването на „готови ядра” - IP cores пък може значително да<br />

намали времето за разработка на даден проект, както и цената му. Наред с навлизането<br />

на термини като „хардуерен/софтуерен кодизайн” и „системи-върху-чип”, както е<br />

отбелязано в [2,3] се появява и нова група от устройства, обединяваща предимствата на<br />

традиционния подход и иновациите при реализиране на даден продукт ориентиран към<br />

пазара на вградените устройства. Тази група може да отнесем отново към FPGA<br />

поради наличието на такава логика в чипа – това са конфигуруемите систми-върхучип<br />

(CPU/DSP + FPGA) CSoC. Най-често при тях се използва soft-core програмируем<br />

процесор, изпълняващ RTOS. Обикновено, наборът от инструкциите на процесора<br />

може да се разширява с нови дефинирани от разработчика, като по този начин за<br />

постигането на дадена функция се редуцира комплексната последователност от<br />

инструкции до една инструкция реализирана на „хардуерно” ниво. Заедно с<br />

използването на soft-core процесори се вграждат и hard-core процесорни елементи (ПЕ),<br />

например Xilinx Virtex Pro съдържа до четири PowerPC 405 вградени ПЕ, а Altera<br />

Exalibur е с ARM7 ПЕ. Към класа на по-малките можем да отбележим известните Atmel<br />

AT94K с ядро AVR, Triscend E5 с 8032, както и Cypress CsoC. FPGA заедно с CSoC<br />

формират втората група от елементна база за хардуерно ускорение.<br />

В трета група отделяме т.нар. процесори за реално време. Това са ПЕ специално<br />

създадени и съобразени с особеностите на функционирането в режим на реално време.<br />

Най-известният представител на тази група е Inmos Transputer T800 и Т9000 – RISC<br />

процесор широко използван при изграждане на паралелни изчислителни системи,<br />

разполагащ с инкорпориран хардуерен диспечер, използващ специализиран паралелен<br />

eзик OCCAM, но вече спрян от производство. Неговият наследник е SGS-Thomson<br />

ST20 с ядро С4, което управлява две процесни опашки – нископриоритетна опашка,<br />

която използва преемтивно (с изтласкване) планиране чрез „time slicing” и високо<br />

приоритетна опашка, която използва кооперативно планиране. В [4] се разглеждат<br />

влиянието от използването на кеш, предсказване, MMU и DRAM като не се препоръчва<br />

използването им в процесори за “предвидимо” изпълнение. ARM966E-S представлява<br />

разновидност на ARM9 ядро и се предлага под формата на „hard realtime” макроклетка,<br />

като се постига минимално закъснение при прекъсване „interrupt latency”. Липсва MMU<br />

както и кеш памет, вместо нея се използва SRAM за инструкции/данни. Във Виенският


- 83 -<br />

университет по технологии е създаден SPEAR (scalable processor for embedded<br />

applications in realtime enviroment), на базата на SPEAR Готфрид Фуш създава LANCE –<br />

суперскаларен 16-битов микроконтролер за реално време. В университета Brigham<br />

Young – САЩ, Доран Уайлд и екип разработват RTP – 16-битов процесор за реално<br />

време. Проектът цели създаване на лесна за употреба система с бързо контекстно<br />

превключване, възможност за междупроцесна и междупроцесорна комуникация и<br />

RTOS имплементирани в FPGA. Основните характеристики са мултипроцесорна<br />

система (1-16), до 16 процеса в 1 процесор, всеки процесор има собствено В/И<br />

пространство с до 256 порта. 16-битовата В/И шина е свързана към използваните от<br />

процесора периферни устройства. Достъпът до периферията, която се използва от два<br />

или повече процесора, трябва да бъде синхронизиран. Това се постига чрез използване<br />

на системни „ресурси” – мутекси, семафори, таймери и други. Предложено е<br />

иновативно архитектурно решение наречено TRM – task resources matrix.<br />

3. Описание на методите<br />

В тази точка се прави кратък обзор на трите основни подхода, при които се<br />

осъществява хардуерно ускорение на RTOS. Тези методи включват използване на<br />

копроцесор, оптимизиран набор от инструкции, както и частични и пълни хардуерни<br />

ускорители.<br />

3.1 Метод с копроцесор.<br />

Исторически погледнато това е първият метод, използван за хардуерно ускорение.<br />

Идеята е копроцесора да обслужва RTOS, освобождавайки главния процесор само за<br />

изпълнение на потребителските програми. Съществуват множество разработки с<br />

подобен подход [1,2]. Андрю Мортън и екип от университета Waterloo предлагат<br />

“Realtime kernel support for coprocessors” – използват се cs1 Kernel и EDF Scheduler.<br />

Подобен проект наречен „ARPA – An Open Source systems-on-chip for Realtime<br />

Applications” е разработен от екип в университета Aweiro. В [5] се представя идеята за<br />

„task-scheduler” копроцесор. В предложения проект се ползва външен 8032 процесор, в<br />

ролята на копроцесор управляващ планирането на процесите, които могат да бъдат до<br />

32. Всички прекъсвания са достъпни за копроцесора, като по този начин се гарантира<br />

правилната работа при планирането. Копроцесорът е реализиран на отделна платка и се<br />

свързва към главния чрез системната шина. Подобна на тази разработка е [7], но се<br />

отнася за вграден „on-chip” програмируем В/И процесор. Използва се TriCore TC10GP<br />

ядро и MicroC/OS-II RTOS, която се изпълнява на PCP (peripheral control processor),<br />

докато диспечеризацията се извършва от главния процесор. Комуникацията между<br />

процесорите се извършва чрез прекъсвания и се постига значително намаляване на<br />

прекъсванията при планиране и закъсненията при обработката на подпрограмите за<br />

обслужване на прекъсванията ISR.<br />

3.2 Оптимизиране на наборът от инструкции.<br />

Съществуват два начина на изпълнение – към стандартното ПЕ на базата на<br />

допълнителна програмируема логика се реализират новите инструкции (Altera Exalibur,<br />

Triscend E5/7) или целият процесор се имплементира в FPGA (XSOC, gr4000,<br />

MircoBlaze). Появяват се т.нар. FIP – flexible instruction processor – Shay Ping Seng<br />

предлага рамка за разработка включваща „processor templates” или шаблони от стекбазирани<br />

и регистър-базирани процесори. Тази техника позволява подобряване на<br />

производителността и функционалността чрез FIP-оптимизирани компилатори и<br />

технико-специфични оптимизации като техники за ефективна FPGA реализция (NIOS,<br />

PicoBlaze). Предлагат се и методики за избор на ISA, като се вземат предвид както<br />

производителността, така и размера на полученото ядро, това налага компромис при<br />

избора на броя и на вида на инструкциите. Редица автори разглеждат ASIP – application<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 84 -<br />

specific instruction processor, за целта те използват „soft core” процесори като Altera<br />

NIOS, Xilinx MicroBlaze, OpenRISC, Tensilica Xtensa и други, разширявайки<br />

съществуващия набор със собствени инструкции. В [1,3] се предлага реализация на<br />

нови инструкции реализиращи части от RTOS ядро на MicroC/OS-II. Използвани са<br />

процесорите Altera NIOS и OpenRISC, като допълнителни инструкции са поддържащи<br />

планирането на процесите, управлението на събитията и част от времевите фунцкии.<br />

Измерените резултати на базата на Rhealstone и Dhrystone тестове, показват подобрения<br />

съответно с 10-35% и около 13%.<br />

3.3 Частитни и пълни ускорители<br />

В тази точка са изложени разработки, които пренасят функциите на една RTOS от<br />

софтуерна към хардуерна реализация. В зависимост от това, кои от тези функции са<br />

имплементират правим и разделение на частични и пълни ускорители. Разбира се<br />

съществуват и такива, който не е удачно да бъдат реализирани хардуерно или просто не<br />

е възможно, например обслужване на файлова система. Предимствата, които тези<br />

ускорители предоставят са значително намаляване на „натоварването” на процесора по<br />

обслужване на RTOS и възможността да се използват по-сложни и eфективни<br />

алгоритми за приложните процеси.<br />

Частичните ускорители са ориентирани към строго определена функционална<br />

част от RTOS. В литература са описани множвество разработки за решаване на<br />

безизходни ситуации, защитни механизми, обслужвания на прекъсвания, ускорение на<br />

контекстно превключване и други. В [8] се описва копроцесор за ускорение на<br />

планирането на процесите. Възмножно е използването на множество дисциплнини на<br />

планиране и комбинации между тях. Разработката е ориентирана към мултипроцесорни<br />

системи и дава много добри резултати. Намаляване на „натоварването” между вградени<br />

микроконтролери с до 30 пъти благодарение на хардуерно подпомагане на<br />

междупроцесорната комуникцая IPC е описано в [9]. В [10] се използва външен FPGA,<br />

които имплементира списък за 32 процеса, организирани по времеви приоритети.<br />

Предлага се прецизна резолюция от 100µs и няколко режима на прекъсванията. В други<br />

няколко разработки се предлага концепцията „нанопроцесор – ускорител”. Идеята е да<br />

се използва „нанопроцесор” в ролята на малък ускорител за различни фунции като<br />

реконфигуруема логика, В/И контролер и диспечер. Начело на тази концепция стои<br />

екитът на Брус Джейкъб от университета на Мериленд, САЩ. Всички разработки се<br />

базират на симулатор SimBed за процесор Motorola Mcore и MicroC/OS-II RTOS v2.3.<br />

Същият екип разбработва и „Hardware support for RTOS – Realtime Тask Мanager”<br />

изпълняващ ролята на диспечер, управление на събитията и времевите функции.<br />

Последният им проект наречен „Architectural support for embedded operating systems –<br />

CCAM configurable content-adressable memory” е насочен към по-комплексните системи.<br />

Винсент Муни от Технологическият университет Джорджия – САЩ е един пионерите в<br />

областта и заедно с екипа си имат множство разработки и нововъведения, по значимите<br />

от които са описани в [11,12,13]. В [11] се предлага малък, прост и ефективен<br />

хардуерен модул подпомагащ синхронизацията в мултипроцесорни системи-върхучипа.<br />

Подобен е модула описан в [12], но е ориентиран към управлението на паметта<br />

SoCDMMU, в [13] се предлага откриване на безизходни ситуации SoCDDU (Deadlock<br />

Detection Unit). Съществува и модул за разрешаване на критични секции. Всички тези<br />

модули по-късно за обеденини в една интегрирна среда за разработка δ-framework,<br />

която автоматично генерира различен набор от HW/SW RTOS.<br />

Пълните ускорители обединяват няколко RTOS фунцкии [17]. Най-известните<br />

разработки пренадлежат на шведа Ленард Линд, чиито академични проекти [14, 15] покъсно<br />

придибиват комерсиален вид под формата на IP core - Sierra HW-RTOS [16].


Системна архитектура - концепция<br />

System-on-Chip<br />

Тест програми (HW) Тест програми (SW)<br />

BLOCK<br />

RAM/ROM<br />

Xilinx Spartan-3<br />

FPGA<br />

HW-RTOS-8<br />

Oregano 8bit<br />

MC8051 IP core<br />

Monitor<br />

Модул<br />

- 85 -<br />

4. Концептуален модел на ускорител за 4 процеса при 8-битов контролер<br />

HW-RTOS-8/4<br />

task_create<br />

Ready<br />

Готов<br />

Running<br />

Изпълняван<br />

Dormаnt<br />

task_delete<br />

task_start()<br />

sem_release()<br />

undelay()<br />

Block<br />

Блокиран<br />

sem_take()<br />

task_block()<br />

delay()<br />

Вътрешна архитектура<br />

на HW -RTOS-8<br />

Scheduler<br />

Task<br />

Sem<br />

Timer<br />

Control<br />

Фиг.1 Концептуален модел на ускорител за 4 процеса при 8-битов контролер HW-RTOS-8/4<br />

HW-RTOS-8/4 се състои от шест функционални модула, всички използват общ тактов<br />

сигнал – фигура 1. Той изпълнява ролята на RTOS, т.е. това е хардуерен ускорител имплементиращ<br />

основните функции като управление и планиране на процесите, комуникация<br />

и синхронизация, семафори, таймери и т.н. BLOCK RAM/ROM се използва за<br />

съхранение на няколко тестови програми. В същото време се съхранява малко ядро, което<br />

обслужва HW-RTOS-8/4, т.е. предоставя системни извиквания. Модулът Monitor реализира<br />

мониторинг на поведението на цялата система, но не е задължителен. Използват<br />

се две шини: Address Bus – по нея CPU адресира всички вътрешни регистри и Data<br />

Bus, по която се извеждат резултатите от/за HW-RTOS-8/4. Когато възникне системно<br />

извикване от приложна задача, кода на функцията и параметрите на системното извикване<br />

се предават на микроядрото, то ги праща до HW-RTOS-8/4, те се декодират, изпълнява<br />

вътрешна операция и се връща съответния резултат на микроядрото, което от<br />

своя страна го предава на приложението.<br />

• Scheduler – планиране на процесите, то е приоритетно с изместване. Максималният<br />

брой процеси е 4, всеки има присвоен приоритет от 0 до 3. По-високо приоритетен<br />

процес може да измести по–ниско приоритетен. При процеси с еднакъв<br />

приоритет се използва цикличен механизъм Round-Robin.<br />

• Task – управление на процесите, за всеки процес се създава PCB – блок за управление<br />

на процеса, при унищожаването на процеса автоматично се разрушава<br />

тази структура. Task модулът е реализиран като state machine. Съществуват 4<br />

състояния определящи текущия статус на процеса и един процес, който се използва<br />

за декодиране на инструкцията.<br />

• Timer – управление на времеви функции, delay, wait и т.н. Това всъщност е един<br />

брояч. След като изтече интервала (модула на броене) се сменя сигнала Delayed,<br />

който е свързан към Task модула. Тогава възниква смяна на състоянието.<br />

• Sem – синхронизация, поддържат се 8 двоични семафори, използвани за синхронизация,<br />

когато е нужно даден ресурс на системата да се споделя между няколко<br />

процеса. На практика семафорите представляват FIFO опашки. Всички блокирани<br />

процеси, по точно техните идентификатори ID, се вписват в опашката и когато<br />

семафорът се освободи всички ID на блокираните роцеси се изчитат като дадения<br />

процес се “събужда” и участва отново в планирането.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 86 -<br />

• Scheduler (диспечер) контролира целия планиращ механизъм в HW-RTOS-8/4.<br />

Той може да функционира с 4 процеса на 4 приоритети нива. Обикновено броят<br />

процеси се създава при системна инициализация. Освен тези процеси трябва да<br />

се създаде и т.н. idle task. Това е процес на престой, т.е. той се изпълнява когато<br />

няма никакъв друг процес за изпълнение в състояние готов. Това се налага поради<br />

факта, че ако не съществува такъв idle task, поведението на системата става<br />

непредвидимо при положение, че няма готов процес за изпълнение. Idle task не<br />

трябва да прави никакви системни обръщения към HW-RTOS-8/4. Възможно е<br />

динамично създаване и унищожаване на процеси по време на изпълнение<br />

(runtime). Когато се създаде процес, той се инициализира в определено състояние<br />

(blocked или ready). Процесът трябва да има и приоритет, който също се<br />

присвоява когато се създава процеса. Също така трябва да се присвои и уникален<br />

идентификационен номер ID, за да може HW-RTOS-8/4 да различава отделните<br />

процеси. Процесът може да бъде в едно от следните 4 състояния:<br />

• Изпълняван (running), Готов (ready), Блокиран (blocked), Спящ (dormant).<br />

Диспечерът гарантира, че най-високо приоритетният процес измежду готовите ще се<br />

изпълнява винаги. Когато изпълнява даден процес съществуват няколко събития, които<br />

могат да променят състоянието на процеса, а именно: 1. Процесът издава доброволно<br />

заявка за превключване – task_yield; 2. Процесът се опитва да заяви семафор, който вече<br />

е бил зает и така преминава в състояние блокиран; 3. По-високо приоритетен процес<br />

преминава в състояние готов и по този начин измества текущо изпълнявания процес,<br />

който отива отново в опашката на готовите процеси.<br />

• Control - контролен модул, този модул контролира всички обръщения от страна<br />

на CPU към вътрешните регистри на HW-RTOS-8/4. Функционалността му се<br />

свежда до декодиране на адресите и генериране на контролни сигнали към останалите<br />

модули.<br />

Предлаганият модел е тестван на поведенческо ниво и имплементиран в FPGA<br />

устройство Xilinx Spartan-3 200. На фигура 2 е показана експерименталната платка<br />

Фиф. 2 Експерименталната платка<br />

Number of Slices 363 out of 1920 18%<br />

Number of slices Flip Flops 346 out of 3840 9%<br />

Number of 4 input LUTs 654 out of 3840 17%<br />

Number of bounded IOBs 30 out of 173 17%<br />

Number of BRAMs 4 out of 12 33%<br />

Number of GCLKs 1 out of 8 12%<br />

Minumim peridod - 8.653ns Maximum Frequency - 115.573 MHz<br />

Minimum input arrival time before clock: 10.220ns Maximum output required time after clock: 6.306ns


- 87 -<br />

5. Заключение<br />

Нарастващата сложност при днешните вградени системи с микропроцесорно управление<br />

налагат увеличеното използване на реално-времеви операционни системи. За<br />

съжаление те притежават значителни ограничения по отношение на производителността,<br />

особено при 8-битови платформи. Чрез предлаганите методи за хардуерно<br />

ускорение се цели значително минимизиране на основните недостатъци, асоциирани с<br />

реално-времевите операционни системи. Въпреки, че както се отбелязва при системите<br />

от горния пазарен сегмент процентът на натоварване на процесора вследстие от<br />

използване на RTOS е по-висок, то тези системи разполагат с достатъчен изчислителен<br />

ресурс, за да оперират правилно и стабилно и по традиционния чисто софтуерен<br />

подход. При 8/16-битовите устройства, използването на хардуерен RTOS ускорител<br />

може значително на облекчи работата на процесора, чиито ресурси да бъдат изцяло<br />

ориентирани към изпълнението на потребителските програми.<br />

ЛИТЕРАТУРА<br />

1. M. Sindhwani, T.F. Oliver. RTOS acceleration techniques – review and challenges,<br />

Nanyang Technological University, Singapoure, 2002.<br />

2. Neil Bergmann, Peter Waldeck. A catalog of hardware acceleration techniques for realtime<br />

reconfigurable system on chip, University of Queensland, Australia, 2003.<br />

3. Timothy F. Oliver, Siraj Mohammed. Accelerating an embedded RTOS in a SOPC<br />

platform, Nanyang Technological University, Singapoure, 2003.<br />

4. Christoph Berg. Requiments for and design of a processor with predictable timing, 2002.<br />

5. Cooling J. and Tweedale P. Task scheduler co-processor for hard real-time systems<br />

Micro-processors and Microsystems, 20 (1997), pp. 553 -566.<br />

6. Ramakrishnan N. Towards an independwnt on-chip RTOS manager. Honors Year Project<br />

Report, Nanyang University, 2002<br />

7. Schauser K E, Scheiman C. Exploiting the capabilities of communications co-processors,<br />

Proceedings of the 10th International Parallel Processing Symposium, pp. 109-115, 1996.<br />

8. Burleson W, Ko J, Niehaus D. The spring scheduling coprocessor: a scheduling<br />

accelerator, IEEE Transactions on VLSI Systems, Volume: 7 Issue: 1 pp. 38-47, 1999.<br />

9. Srinivasan S, Stewart D B. High speed hardware-assisted real-time interprocess<br />

communication for embedded microcontrollers, 21st IEEE Real-Time Systems Symposium,<br />

pp.269 - 279., 2000<br />

10. Parisoto A, Souza A Jr. F-Timer: dedicated FPGA to real-time systems design support,<br />

Proceedings of the Ninth Euromicro Workshop on Real-Time System, 1997, pp. 35-40.<br />

11. Saglam B E, Mooney V J III. System-on-a-chip processor synchronization support in<br />

hardware, Design Automation and Test Conference and Exhibition in Europe, 2001., pp. 633<br />

12. Shalan M, Mooney V J III. Hard-ware support for real-time embedded multiprocessor<br />

system-on-a-chip memory manage-ment, Tenth International Symposium on<br />

Hardware/Software Codesign, pp. 79-84, 2002.<br />

13. Shiu P H, Yudong Tan, Mooney V J III. A novel parallel deadlock detection algorithm<br />

and architecture Ninth International Symposium on Hardware/Software Codesign, 2001.<br />

14. Lindh L. Fastchart - a fast time deterministic CPU and hardware based real-time-kernel<br />

Workshop on Real Time Systems, 1991. Euromicro '91, pp. 36-40.<br />

15. Lindh L. FASTHARD - A Fast Time Deterministic HARDware Based Real-time Kernel,<br />

Fourth Euromicro workshop on RealTime Systems, pp. 21-25, 1992<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 88 -<br />

16. Realfast. Realfast Sierra Operating System Data Sheet, 2003.<br />

17. Nakano T, Komatsudaira Y, Shiomi A, Imai M. VLSI implementation of a real-time<br />

operating system, Asia and South Pacific Design Automation Conference, 1997, pp. 679-680<br />

Department of <strong>Computer</strong> system and technologies<br />

University of Food Technologie, Plovdiv<br />

26, Maritza blvd.,<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: desev@hifii-plovdiv.acad.bg


- 89 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

IMPORTANT MILESTONES IN DEVELOPMENT OF<br />

ANALYTICAL DATA PROCESSING THEORY<br />

VLADIMIR VALOV, IVANKA VALOVA<br />

Abstract. This paper presents most important milestones in development of analytical<br />

data processing theory. There are discussed achieved applied results, as well as existing<br />

drawbacks. In the paper are highlighted some interested issues for purposes of additional<br />

scientific studies, oriented towards software applications.<br />

Key words: OLAP, APL, software applications<br />

ПО-ВАЖНИ ЕТАПИ В РАЗВИТИЕТО НА ТЕОРИЯТА ЗА<br />

АНАЛИТИЧНА ОБРАБОТКА НА ДАННИ<br />

1. Въведение<br />

Стимулиран от увеличаващото се търсене на интегрирана бизнес<br />

информация, пазарът на OLAP (On-Line Analytical Processing-Аналитична обработка на<br />

данни в реално време) продуктите се разви бързо през последните години. Нови<br />

продукти и нови версии на вече съществуващи продукти следващи последните<br />

тенденции разширяват непрекъснато разнообразието от предлагани инструменти.От<br />

гледна точка на науката и на концепцията за база данни, съхраняването и обработката<br />

на данни в многомерни модели е новаторска дисциплина със специални нужди, дори<br />

ако вече установените концепции могат да се използват в един нов контекст.<br />

Необходимо е да бъдат конкретизирани съществуващите концепции, за да се<br />

осъществи трансфера на знания и да бъдат разбрани бъдещите изследвания и нужди на<br />

разработките. Следователно е необходимо знание относно постигнатите резултати и<br />

относно техниките и концепциите реализирани в софтуерните продукти. Тази статия<br />

проследява по-важните етапи в развитието на теорията за аналитична обработка на<br />

данни. Представени са постигнатите приложни резултати, както и съществуващи<br />

недостатъци. Изведени са интересни теми за целите на допълнително научно<br />

изследване ориентирано към софтуерните приложения<br />

2. Първите идеи за разработване на многомерни модели - APL<br />

Идеята за обработка и анализ на многомерни модели съществува от 1962 год.<br />

След публикацията на книгата на Кен Айверсън “Език за програмиране”. Първото<br />

компютърно приложение на APL езика се използва от IBM и датира от края на 60-те<br />

години. Операторите са гръцки символи и програмите са толкова кратки, че e трудно да<br />

се предви какво може да направи една APL програма. Станал известен като “Език само<br />

за писане –Write Only Language (WOL)”, тъй като e по-лесно да се пренапише<br />

програмата, отколкото да се поправи. Гръцките символи на APL имали нужда от<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 90 -<br />

специални екрани, клавиатури и принтери. Това било в дните на голямите по размер<br />

компютри с ниска мощ и приложенията, които използвали APL се обработвали бавно и<br />

били много скъпи. APL имал незаслужената репутация на гладен за памет, тъй като<br />

масивите били обработвани в RAM. Въпреки своите недостатъци APL е използван в<br />

много бизнес приложения от 70-те и 80-те години, които имат подобни функции на<br />

днешните OLAP системи. IBM развива цяла операционна система за APL наричана<br />

VSPC. Въпреки, че хардуерните проблеми били разрешими APL е прекалено елитарен<br />

за да привлече повече разработчици. Езикът се появява при персоналните компютри<br />

през 80-те години (и все още се използва, понякога в преработена форма, наричана “J”)<br />

но престава да има пазарно значение след 80-те години. Възможно е да се програмират<br />

многомерни приложения, използвайки масиви на други програмни езици [1, 2, 5, 6].<br />

APL<br />

IRI's<br />

Express<br />

EPS'-FCS<br />

Comshare's<br />

System W<br />

EPS'<br />

FCS-Multi<br />

1962's 1985 1990 1993 1996 2000<br />

Фиг.1. Развитие на идеята за многомерни модели представена в дати<br />

4. Развитие на идеите през 70-те години, Express – 1970<br />

MOLAP<br />

или<br />

ROLAP ?<br />

Oracle купува<br />

Express<br />

Gentia<br />

Arbor's MS-Panorma<br />

ESSBASE<br />

Panorama SAP BW<br />

Planning Codd<br />

MS<br />

Sciences' OLAP OLAP<br />

EPiC<br />

Софтуерният продукт Express, известен със своя академичен произход се<br />

създава в началото на 70-те години. С пренаписания си формат и модерна кодова<br />

система, той се превърна в широко използвано съвременно предложение на OLAP, в<br />

което първоначалните концепции от 70-те години все още са заложени под<br />

повърхността му. Дори след 30 години Express остава една от главните OLAP<br />

технологии. Express използва двуслойна структура на данни (фиг.2). В края на 2000<br />

година Oracle обяви, че ще вгради възможности на OLAP сървър в Oracle9i, започвайки<br />

в средата на 2001 година. Oracle9i OLAP Servises включва версия на Express engine,<br />

наричана аналитичната работна среда, както и нов ROLAP engine.


- 91 -<br />

Фиг.2 Двуслойна структура от данни съдържаща многомерни модели<br />

4. По-важни събития и софтуерни продукти през 80-те години<br />

През 80-те години се появяват нови софтуерни продукти за разработване на<br />

многомерни модели. В началото на десетилетието се появява Stratagem и в една от<br />

неговите форми - Acumate е предлаган на пазара до средата на 90-те години.<br />

Независимо че е прилича на Express се използва малко. По различно време е<br />

притежаван от Stratagem CA, която по-късно получава два ROLAP продукта, Prodea<br />

Beacon и Information Advantage DecisionSuite.<br />

System W на Comshare (1981 год.) е първият продукт с хиперкуб-подход и е<br />

ориентиран към разработка на финансови приложения от крайния потребител. Въвежда<br />

много нови концепции, които все още не се използват широко, като например пълни<br />

не-процедурни правила, многомерно показване на цял екран и редактиране на данни,<br />

автоматична рекалкулация и (партидна) интеграция на релационни данни.<br />

Недостатъците на този продукт са необходимост от добър хардуер и по-малко<br />

възможности за програмиране в сравнение с другите продукти. Продуктът се използва<br />

на Unix, не се продава и подобрения не са вероятни.<br />

Друг творчески продукт от началото на 80-те години е Metaphor (1984).<br />

Насочен към маркетинговите специалисти в компании за потребителски стоки той<br />

въвежда множество нови концепции, които стават популярни през 90-те години, като<br />

например:<br />

• клиент/сървър изчисленията<br />

• обработка на многомерни модели на релационни данни<br />

• обработване в група и обектно-ориентиран подход.<br />

Сандартния PC хардуер не е способен да изпълни всички изисквания на Metaphor и се<br />

създава специфични за него персонални компютри и мрежова технология.<br />

През 1985 се създава продукта Command Center на Pilot. Поради ограничената<br />

мощ на персоналните компютри от 80-те години, той е ориентиран централно към<br />

сървъра. Command Center вече не се продава, но е въвел много концепции, които могат<br />

да бъдат разпознати в съвременните OLAP продукти, включително автоматично<br />

обработване на времеви серии, многомерна клиент/сървър обработка и опростени<br />

човешки фактори (подходящи за използване на тъч-скрийн и мишка).<br />

Около средата на 80-те години Sinper е навлязъл в света на електронни таблици<br />

за многомерни приложения, първоначално със специфични DOS електронни таблици, а<br />

след това чрез връзка с DOS 1-2-3. Той навлиза в ерата на Windows като превръща<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 92 -<br />

(тогава наричащият се) TM/1 продукт в многомерен бек-енд сървър за Excel и 1-2-3.<br />

Традиционните продавачи на специфични фронт-енд продукти са принудени да<br />

последват примера и продукти като Express, Holos, Gentia, MineShare, PowerPlay,<br />

MetaCube и WhiteLight предлагат интегриран достъп за електронни таблици до<br />

съответните сървъри.<br />

Около края на 80-те години електронната таблица започва да доминира при<br />

анализа на данни от крайния потребител. Първата електронна таблица за многомерни<br />

модели се появява под формата на Compete. В началото се определя като много скъп<br />

инструмент за обикновените специалисти. <strong>Computer</strong> Associates (CA) го придобива<br />

заедно с няколко други продукти за електронни таблици, включително SuperCalc и<br />

20/20. Главното следствие от придобиването на Compete от CA е рязко намаляване на<br />

цената, премахване на защитата против копиране и широко рекламиране на продукта.<br />

Въпреки това той не се превърнал в тенденция, която да бъде повторена и при другите<br />

OLAP продукти, придобити от CA. През следващите няколко години старият Compete<br />

все още можел да бъде открит включен в пакети от продукти с голямо намаление на<br />

цената. По-късно Compete формира основите на версия 5 на SuperCalc на СА, но<br />

концепциите разработени относно многомерността му не се рекламират.<br />

В края на 80-те продуктите DOS One-Up на Comshare и по-късно базирания на<br />

Windows Commander Prism (наричан по-късно Comshare Planning) използват<br />

концепции, подобни на хост-базираната System W. Продуктът Essbase на Hyperion<br />

Solution, въпреки че не е директен наследник на System W, е повлиян от неговия<br />

финансово ориентиран, напълно пре-изчислен подход с хиперкуб. Колкото и иронично<br />

да е, Comshare впоследствие лицензира Essbase engine (вместо да използва собствени<br />

разработки) в някои от своите модерни OLAP продукти.<br />

5. 90-те години- висока динамика и иновации в OLAP технологиите.<br />

През 1990 година Cognos PowerPlay излиза на пазара (http://www.cognos.com/ ).<br />

Това е първият OLAP продукт за настолни (desktop) компютри и за Windows. Първите<br />

десктоп OLAP продукти представят малки кубове, генерирани от големи бази данни, но<br />

свалени на персоналните компютри за обработка (при мрежовото му внедряване<br />

кубовете обикновено съществуват на сървъра). Дистрибуторът който предлага и<br />

инструмент за релационна заявка, и инструмент за анализ на многомерни модели<br />

(Cognos с Impromptu и PowerPlay) докладва, че вторият е много по-добре приеман от<br />

крайните потребители, отколкото първия.<br />

През 1992 Essbase излиза на пазара. Първият добре рекламиран OLAP продукт,<br />

който се превръща в лидер на пазара за OLAP сървъри през 1997 година. Софтуерният<br />

продукт притежава патент за своя “метод и апарат за съхраняване и обработване на<br />

многомерни данни в паметта на компютъра”. Патентът обобщава гореспоменатата<br />

двуслойна структура до многослойна структура (с цел да се апроксимират липсващите<br />

данни на различните нива на D-структурата). В допълнение, масиви и В дървета могат<br />

да бъдат използвани по избор на всяко ниво по начин определен от потребителя.<br />

Администраторът има способи да повлияе върху структурата на данните, определяйки<br />

плътните и неплътни D-структури, които изграждат двата слоя. Arbor Essbase предлага<br />

достъп за писане в софтуера на множеството потребители. Има проблем при<br />

повикването на транзакциите.<br />

През 1993 година Код формулира термина OLAР ”Providing OLAP to User-<br />

Analysts: An IT Mandate- Предоставяне на OLAP на анализаторите на потребителите:<br />

IT-мандат” и привлича вниманието на много специалисти върху въпросите на<br />

разработването на многомерни модели. OLAP терминът представлява съкращение на


- 93 -<br />

“On-Line Analytical Processing” (Аналитична обработка на данни в реално време).<br />

Изследванията на Код са спонсорирани от компанията Arbor Software.<br />

Концепцията за многомерния модел на данни, който може да бъде представен в<br />

релационна база данни е описан от Ралф Кимбал. Концепцията придоби популярност и<br />

на пазара се появиха софтуерни продукти с ROLAP архитектура. С еволюирането на<br />

двете технологии започна голям дебат за това коя е по-добрата архитектура за OLAP<br />

приложения. Всъщност всяка има своите положителни и отрицателни страни. Коя от<br />

двете е най-добрата зависи от изпълнението, мащабируемостта, използване на<br />

ресурсите, основните изисквания за отчетите и от вида на данните.<br />

Първият ROLAP продукт- MicroStrategy DSS Agent излиза на пазара през 1994г.<br />

Почти цялата обработка на данните се извършва от multi-pass SQL — подходящ подход<br />

за много голями бази данни. Недостатъкът е твърде бавното изпълнение на<br />

отправените заявки.<br />

Около средата на 1994 IBM интегрира уникалната технология на Metaphor<br />

(прекръстена на DIS) с бъдеща IBM технология. Продуктът все още се поддържа заради<br />

останалите лоялни клиенти, а IBM го пускат под името IDS, но почти не го рекламират.<br />

Креативните концепции на Metaphor не са загубени и Information Advantage, Brio,<br />

Sagent, MicroStrategy и Gentia са повлияни от него.<br />

През 1995 Holos 4.0 е пуснат на пазара. Първият хибриден OLAP продукт,<br />

позволяващ на едно приложение едновременен достъп до релационни и многомерни<br />

бази данни. През същата година Oracle придобива Express. Първото значително<br />

придобиване в сектора на OLAP продуктите. Express се превърна днес в хибриден<br />

OLAP продукт и се конкурира успешно както с многомерните, така и релационните<br />

OLAP инструменти.<br />

Първият продукт, който предоставя многомерно и релационно отчитане от<br />

динамично вградените кубове е BusinessObjects 4.0 и излиза на пазара през 1996. През<br />

следващата година Microsoft обявява OLE DB за OLAP. Проектът носи кодовото име<br />

Tensor, и се превърна в "промишлен стандарт” OLAP API, преди още излизането на<br />

пазара на каквато и да е поддръжка на продукта.<br />

През 1998 IBM DB2 OLAP Server е пуснат на пазара. Тази версия на продукта<br />

Essbase съхранява всички данни под формата на една релационна схема, в DB2 или<br />

други релационни бази данни, но все още прилича повече на един бавен MOLAP (<br />

Многомерен OLAP), отколкото на ROLAP. През тази година се основава Hyperion<br />

Solutions. Компаниите Arbor Hyperion Software “се сливат”, осъществявайки първото<br />

голямо консолидиране на OLAP пазара.<br />

Lotus е следващата компания, която навлиза на пазара на електронни таблици за<br />

многомерни модели с Improv. Той е пуснат в употреба на машината NeXT, но когато е<br />

пренесен на Windows, Excel вече е прекалено голяма заплаха и продажбите на Improv<br />

са малки. Lotus, както и CA с Compete, раздвижва пазара с Improv, но това не е<br />

достатъчно и новото му разработване се спира. Microsoft прибавя PivotTables към Excel.<br />

Това е най-широко използваната възможност за анализ на многомерни модели в света,<br />

по простата причина че има много потребители на Excel. Excel 2000 включва поусъвършенствана<br />

версия на PivotTables, която може да се използва и като десктоп<br />

OLAP и като клиент на Microsoft Analysis Services.<br />

През 1999 започват доставките на Microsoft OLAP Services. Проектът носи<br />

кодовото име Plato и използва технология придобита от компанията Panorama Software<br />

Systems през 1996 година. По ирония през първите си шест месеца Microsoft OLAP<br />

Services е един от малкото OLAP сървъри, които нямат разработен клиент за<br />

електронни таблици. Основното предложение на Microsoft се появява през юни 1999<br />

год. в Excel 2000. Продуктът Microsoft OLAP Services е пазарен лидер в сегмента<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 94 -<br />

OLAP сървъри поради лесното му инсталиране, високотехнологичната архитектура за<br />

съхраняване на данни (ROLAP/MOLAP/Hybrid), огромната и добра поддръжка.<br />

6. Развитие на OLAP технологиите от 2000 година до наши дни<br />

През 2000 година Microsoft променя името на продукта OLAP Services на<br />

Analysis Services без всякаква основателна причини, с което създава голямо объркване<br />

на пазара. През тази година се обявява и XML за Analysis. Стартира инициатива за<br />

създаване на един много продаваем, независим от платформа, XML-базиран OLAP API<br />

продукт, която се ръководи от Microsoft (по-късно към проекта се присъединява<br />

Hyperion).<br />

През 2000 SAP Business Information Warehouse (BW) започва да се доставя в<br />

България. Осигурява всички необходими инструменти за моделиране, извличане,<br />

съхранение и достъп до данните. Даните от различни източници могат да се<br />

комбинират с цел разширяване на анализационните възможности.<br />

Oracle започва да доставя продукта-наследник на Express през 2001 година.<br />

Шест години след придобиването на продукта Express, Oracle започва да доставя<br />

продукта Oracle9I OLAP, от който се очаква евентуално да наследи Express. Подробна<br />

информация за маркетинговата политика на Oracle може да бъде намерена на<br />

www.oracle.bg и във в-к <strong>Computer</strong>world.<br />

В наши дни Hyperion и други BI производители подготвят от известно време<br />

отварянето на своите сървъри за потребностите на OLAP приложенията. Целта е освен<br />

многомерни бази от данни за източник на анализите да бъдат ползвани и релационни и<br />

неструктурирани данни. На 02.05.2006 в-к <strong>Computer</strong>world публикува информация –<br />

(http://www.computerworld.bg )– за коалицията между Hyperion и Microsoft които ще<br />

работят при Business Intelligence решенията. Конкурентите възнамеряват да съгласуват<br />

продуктите си за анализи и отчети, за да улеснят своите клиенти при реалзирането на<br />

хетерогенни решения. Чрез това споразумение Hyperion u Microsoft практически за<br />

първи път ще работят комплексно заедно, като изключим дейностите им по<br />

стандаризирането на XMLA. Досега Microsoft работеше в съюз с конкурентите Business<br />

Objects и Cognos. Сътрудничеството на Hyperion с Microsoft, не е добра новина за тези<br />

производители. Продуктовата стратегия на Hyperion е по-силно ориентирана към<br />

управление на бизнес производителността (BPM), което в момента се отъждествява с<br />

управление на финансите. Cognos, Business Objects, и други Microsoft партньори<br />

държат също на BPM пазара. Ще има ли потърпевши в това сътрудничество ще покаже<br />

времето.<br />

7. Теми за целите на допълнителното научно изследване<br />

MOLAP системите трябва да се справят с проблема свързан с липсата на данни.<br />

Проблемът е известен под названието “разпръснатост на данни” или “неплътност<br />

на структурите с данни”. Повече то 90% клетки в многомерния куб могат да бъдат<br />

празни ако дадени продукти не са били продадени в специфични региони и<br />

следователно не съществува продажна цена за съответната комбинация. Как<br />

софтуерните продуктите разрешават този проблем е един от най-важните критерии за<br />

оценка на MOLAP софтуерните системи.<br />

Техниката за съхраняване на данни трябва да разгледа много фактори, които могат в<br />

допълнение често да се променят:<br />

- профил на данните и обем (брой на D-структурите и атрибути на D-структурите,<br />

видове данни)<br />

- неплътност на структурите с данни (в кои D-структури / комбинации от Dструктури)


- 95 -<br />

- честота на промяната в началните данни (колко често MDDBMS ще бъде<br />

актуализирана)<br />

- честота на промяната в многомерния модел (D-структури, членове на Dструктурите)<br />

- достъп за писане на данни и т.н.<br />

В идеалния случай MDDBMS ще избере оптимална структура на данните, в<br />

зависимост от изброените фактори. Съществуващите системи, са базирани предимно на<br />

двуслойни структури на данните [1,2,3]. Един подход за съхраняване на многомерните<br />

данни е преобразуването в едномерен векторен масив. За справяне с “неплътните<br />

структурите с данни” са необходими допълнителни техники за компресиране. В<br />

повечето търговски MDDBMS се използва двуслойна техника на съхраняване в която<br />

плътните масиви са индексирани от една структура, която съдържа комбинации от<br />

непълни данни. Двуслойната структура на по-високо ниво е изградена от комбинации с<br />

разпръснати данни и е използвана за да посочи масива (с оставащите плътни<br />

комбинации), който съдържа желаната информация. В долния слой всички плътни Dструктури<br />

(време, регион, продукт) се съхраняват с техните данни. Вторият слой<br />

съдържа неплътни D-структури като индексна структура, съдържаща указания за<br />

кубовете с плътни данни намиращи се на по-ниско ниво.<br />

Втори проблем е трансфера на транзакционната концепция, както тя е позната и добре<br />

приемана в релационния свят към технологията за обработка и анализ на многомерни<br />

модели. Всички търговци на MOLAP, рекламират свободен достъп за писане в техните<br />

MDDBMS, основно в условия на “способност на много потребители”. В<br />

действителност, повечето MOLAP продукти са ограничени до позволен достъп за<br />

четене на много потребители и позволен достъп за писане само на един потребител.<br />

MDDBMS блокира за достъп цялата база данни по време на актуализирането на<br />

информацията. Блокирането на достъп на цялата база данни не е много подходящо<br />

решение, от друга страна взаимозависимостите на данните, превръщат дефинирането<br />

на блокиращите инструменти в труден за решаване проблем [7, 8, 9, 10].<br />

Много търговци на MOLAP, имат неясна представа за транзакционните концепции,<br />

което не е изненадващо, защото няма общ консенсус (нито в бизнеса, нито в<br />

изследователската общественост), кои аспекти от теорията на релационната транзакция<br />

са необходими в MDDBMS и как те могат да бъдат прехвърлени в практиката.<br />

Промените в кубовете с данни, могат да бъдат извършени, при прилагане на<br />

многовариантен причинно-следствен анализ. Често те изисква актуализиране на<br />

агрегираните резултати или мярите, които са изчислени (например общите разходи за<br />

ремонт, изчислени, като сума от частични разходи и заплати) върху вече променени<br />

данни. Посочените зависимости правят актуализирането значително по-трудно.<br />

Понататъшно изследване заслужават следните направления –атомарност,<br />

съгласуваност, изолираност и стабилност.<br />

Зависимостите между подробните данни, съвкупните данни и мярите, усложняват<br />

представата за съгласуваност. Ако условието е стриктно интерпретирано,<br />

съгласуваност може да бъде постигната само ако всички свързани данни са<br />

актуализирани едновременно, което е изключително трудно да бъде постигнато по<br />

време на работа, тъй като преизчисленията може да отнемат дълго време. Ако бъде<br />

реализиран едновременен контрол, посредством блокираща техника, трябва да бъдат<br />

дефинирани блокиращите способи и подаващите се на блокиране гранули с данни.<br />

Както беше споменато по-горе, блокирането на достъп на цялата база данни не е много<br />

подходящо решение. Взаимозависимостите на данните, превръщат дефинирането на<br />

блокиращите гранули в труден за решаване проблем.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 96 -<br />

Свързана с гореспоменатите проблеми е стратегията за актуализиране т.е., когато<br />

данните (съвкупности и мяри), трябва да бъдат актуализирани, съгласно промените в<br />

подробните данни или в модела данни (като нови членове на D-структури) Подобно на<br />

теорията за еволюция на схемите в OODBMS, могат да бъдат прилагани различни<br />

стратегии: незабавно актуализиране или отлагане на актуализацията и т.н. За<br />

гарантиране на непротиворечивостта при опцията за отлагане на актуализацията, могат<br />

да са необходими допълнителни концепции, като прегледи, филтри или пускови схеми.<br />

Достъпът на много потребители до базата данни, изисква повече отколкото MDDBMS<br />

може да предложи понастоящем. Транзакционната концепция е свързана с много други<br />

въпроси, като възстановяване, структурите на данните (напр. многослойни структури) и<br />

т.н. Има проблеми свързани с базите данни, които са решени чрез системите за<br />

управление на релационни бази данни (RDBMS), но които все са само частично<br />

реализирани в MDDBMS, като:<br />

- редактиране<br />

- възстановяване (което е свързано с транзакционната концепция)<br />

- концепциите за отчети<br />

- разпределени бази от данни<br />

Последната точка съдържа в себе си допълнителни проблеми, като фрагментация,<br />

разпределяне, прозрачност и т.н. Двата гореспоменати проблема (структурите на<br />

данните и транзакционната концепция), трябва също да поддържат функцията<br />

разпределение. Накрая, създаването на многомерен модел от различни източници на<br />

данни е интересен и обещаващ предмет на по-нататъшни изследвания [4].<br />

Тъй като съществуват множество архитектури и различни модели на данни, е от<br />

изключителна важност да бъдат предложени методи за моделиране на OLAP<br />

приложения, независещи от изпълнението. Тази цел остава извън целите и подкрепата<br />

на индустриалната общност, тъй като всички методологии, предложени от<br />

производители на продуктите и независими консултанти, използват модели,<br />

характерни за структурата или инструментите на техните софтуерни продукти през<br />

целият процес по разработване (включително концептуалната разработка). От друга<br />

страна, всеки от изследователските подходи дефинира свое собствено виждане за<br />

многомерен модел на данни, като използва различни терминология и семантични<br />

елементи. Няма общоприето разбиране по въпросите<br />

o какво принадлежи към една многомерна схема;<br />

o поради което и няма общоприет от всички DML (data manipulation language).<br />

o или общоприет от всички DDL (data definition language).<br />

За целите на общата дискусия e необходимо използването на единна терминология:<br />

o D-структури - нива на D-структури и класификационни взаимовръзки<br />

o Факт, мяра<br />

с цел идентифициране и изследване на дискутираните проблеми.<br />

В тази насока предоставяме таблица описваща термините използвани в SAP BW и в<br />

изследователските многомерни модели (MDM).<br />

MDM SAP BW<br />

Факт Ключови показатели<br />

Атрибути на<br />

дименсии (D –<br />

структура)<br />

D-структура<br />

(Дименсия)<br />

Характеристика/<br />

Навигационни атрибути/<br />

Отчетни атрибути/<br />

(външна) Йерархия<br />

Дименсия /<br />

Основни данни/<br />

Текстови данни<br />

Йерархични данни / (SID данни)


- 97 -<br />

Табл. 1. Термини използвани в SAP BIW<br />

От гледна точка на науката и на концепцията за база данни, съхраняването и<br />

обработката на данни в многомерни модели е новаторска дисциплина със специални<br />

нужди, дори ако вече установените концепции могат да се използват в един нов<br />

контекст. OLAP доставчиците се опитват да „завладеят” предни позиции в бъдещия<br />

пазар с бързи, но много често непълни приложения. Теория с единна терминология,<br />

усилия за стандартизиране и т.н. предстои да бъде представена и приета от научната и<br />

индустриалната общност.<br />

8. Заключение<br />

OLAP пазарът се характеризира с висока динамика и иновации.<br />

Изследователските дейности изискват продължително изследване на новите софтуерни<br />

продукти с цел предоставянето на необходимите концепции. Доставчиците трябва да<br />

обръщат необходимото внимание на изследователската общност, с цел да бъдат<br />

заместени „прототипните системи” с финансирани продукти, които удовлетворяват<br />

изискванията на бързо развиващите се информационни технологии. Качеството на<br />

стратегическите бизнес и управленски решения, взети следствие използването на<br />

OLAP, е значително по-високо и те са много по-навременни, отколкото взетите по<br />

традиционния начин решения.<br />

Конкурентноспособността на дружествата и способността им да се разрастват и просперират ще<br />

бъде пряко свързана с качеството, ефективността и разпространителната способност на възможностите<br />

им за OLAP. По тази причина IT организациите в рамките на малките и големи дружества трябва да се<br />

подготвят да предоставят стабилна OLAP поддръжка за своите организации.<br />

ЛИТЕРАТУРА<br />

1. Вълова И., От гръцките символи до съвременните OLAP софтуерни решения,<br />

<strong>Computer</strong>world, № 22, 9, 2006.<br />

2. Вълова И., OLAP-теория и приложни постижения, <strong>Computer</strong>world, № 23, 7-8, 2006.<br />

3. Вълова И., Релационни OLAP продукти - традиция и новаторство, <strong>Computer</strong>world,<br />

№ 27, 7-8, 2006.<br />

4. Вълова И., Mногомерни OLAP решения – в търсене на единна технология,<br />

<strong>Computer</strong>world, № 29, 8-9, 2006.<br />

5. Valovа I., Zhechev B., Valov V. Overview of research and software approaches for<br />

multidimensional data analysis, “Cybernetics and information technologies”, ISSN 1311-<br />

9702, vol.4, No1, IIT-BAS, Sofia, 2004, 26-34, 2004.<br />

6. Valov V., Zhechev B., Valova I. Development of technologies for data processing and the<br />

place of OLAP, ISBN 954-683-324-X, UNITECH’05, 24-25 November 2005, Gabrovo,<br />

Bulgaria, pp. 236-240.<br />

7. Valovа I., Hypercubes in <strong>Computer</strong> Science, NVNA- Jubilee Conference 17-18 May<br />

2006, Varna, Bulgaria (in print).<br />

8. Valova I., Reflecting changes in multidimensional models. Evolution of multidimensional<br />

scheme, NVNA- Jubilee Conference 17-18 May 2006, Varna, Bulgaria (in print).<br />

9. Valovа I., Advanced Technologies and Software Products for Data Processing and Their<br />

Use in Real Economy, Balkan Conference of Young Scientists, ISSN 1311-9419, 16-18<br />

June 2005, Plovdiv, Bulgaria, 493-499, 2005.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 98 -<br />

10.Valovа I., Study of some issues related with creation of multidimensional models.<br />

Maintaining of multidimensional scheme structure type “star”, Balkan Conference of Young<br />

Scientists, ISSN 1311-9419, 16-18 June 2005, Plovdiv, Bulgaria, 485-492, 2005.<br />

Institute of <strong>Computer</strong> and Communication Systems<br />

Bulgarian Academy of Sciences<br />

Acad. G. Bonchev str., bl. 2,<br />

1113 Sofia<br />

*Institute of Control and System Research<br />

Bulgarian Academy of Sciences<br />

Akad. Bonchev str., Bl.2, P.O. 79<br />

1113 Sofia<br />

BULGARIA<br />

E-mail: vania@icsr.bas.bg


- 99 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

ALGORITHMS OF WORK OF NODES ON THE PROTOCOL<br />

FOR 2PL WITH PRIMARY COPIES IN DISTRIBUTED<br />

DATABASE MANAGEMENT SYSTEMS<br />

SVETLANA VASILEVA<br />

Abstract. The paper views algorithms for concurrency control in Distributed database<br />

management systems (DDBMS) with data replication. The following algorithms are<br />

worked out on the base of Two-phase-locking (2PL) protocol with primary copies:<br />

algorithm for synchronization of the processes in taking resource in the distributed<br />

system; algorithm for transaction management based on the 2PL with the primary copy<br />

protocol for the phase on the global ratification; algorithm for transaction management<br />

for one-version model of distributed database (DDB) solving the problem for<br />

serialization of the distributed schedule; algorithm for transaction management for twoversion<br />

model of DDB.<br />

Key words: transactions, distributed databases, two-phase locking (2PL), concurrency<br />

control, lock table, scheduler, Two-version 2PL protocol.<br />

АЛГОРИТМИ НА РАБОТА НА ВЪЗЛИТЕ ПО ПРОТОКОЛА ЗА 2PL С<br />

ПЪРВИЧНИ КОПИЯ В РАЗПРЕДЕЛЕНА СИСТЕМА ЗА УПРАВЛЕНИЕ<br />

НА БАЗИ ОТ ДАННИ<br />

Направеният анализ в [1] и [2, с.872] показа, че в системите с разпределени бази<br />

от данни (РБД) механизмът на управлението на паралелното изпълнение на<br />

транзакциите трябва да осигурява: съгласуваност на елементите от данни; завършване<br />

на всяка елементарна операция в границите на установен интервал от време;<br />

устойчивост към отказите във възлите и свързващите линии; високо ниво на<br />

паралелност, удовлетворяващо съществуващите изисквания за производителност на<br />

разпределената система (РС); невисоко допълнително ниво на потребление на<br />

процесорно време и другите системни ресурси; удовлетворителни работни показатели<br />

на мрежовите съединения, имащи голяма продължителност на времето на задържане;<br />

липса на допълнителни ограничения върху структурата на елементарните операции.<br />

Освен това, разпределената система (РС) за управление на БД (РСУБД) с<br />

репликация на данните трябва да осигури и съгласуваност на многото копия на<br />

данните, съхранявани в различните възли. В работата се обсъжда синхронно<br />

обновяване на реплицираните елементи от данни. Разпределената транзакция<br />

осъществява достъп до данните, съхранявани в няколко места. Всяка от транзакциите<br />

се разделя на няколко подтранзакции – по една за всеки възел към данните, на които се<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 100 -<br />

осъществява достъп. В отдалечените възли субтранзакциите се представят от агенти.<br />

Ако графикът на изпълнение на транзакциите във всеки от възлите е подредим, то<br />

глобалният график (обединение на всички локални разписания) също е подредим, при<br />

условие, че последователностите на локалното подреждане са идентични [2, с.872].<br />

Затова е необходимо всички субтранзакции да са в един и същи ред в еквивалентния<br />

последователен график на всички възли.<br />

Организацията на управлението на паралелното изпълнение на транзакциите в<br />

системите с БД може да бъде осъществено по един от трите протокола: Двуфазна<br />

блокировка - за да прочете или да промени елемент от данни, транзакцията трябва да го<br />

блокира, за да няма конфликт с друга транзакция, искаща достъп до него;<br />

Хронометраж – използване на времеви маркери - глобално подреждане на<br />

транзакциите, така че по-старите (с по-малка стойност на времевия маркер) в случай на<br />

конфликт да получат приоритет; Проверка на достоверността – предполага се, че в<br />

системата възникват рядко конфликти, затова се изключват задържанията гарантиращи<br />

подредимостта.<br />

При последните два метода, ако паралелните транзакции често четат и записват<br />

едни и същи елементи данни, то ще има често и рестартове (rollbacks), което може да<br />

доведе до по-дълги отколкото при схемата на блокиране задържания [2, с.938]. Затова в<br />

доклада се разглежда основно организирането на управлението на паралелното<br />

изпълнение в РСУБД по механизма на двуфазната блокировка (two-phase locking –<br />

2PL). Протоколите за 2PL в РСУБД с репликация на данните са: централизиран<br />

протокол за двуфазна блокировка; 2PL с първични копия (2PL на главното копие);<br />

разпределен протокол за 2PL; 2PL на болшинството копия. Протоколите са<br />

анализирани подробно в [3]. Най-лесен за реализация е централизираният протокол за<br />

2PL, но най-големият му недостатък е, че централният възел (на който е единственият в<br />

РС организатор на заданията, т.нар в 2PL протоколите диспечер на блокировките и<br />

единствената таблица на блокировките) става тясното място в системата - отказ в<br />

централния възел води до нарушаване на работата на РС. В тази връзка се предлагат<br />

работни алгоритми за реализация на протокола за 2PL с първични копия. Той е едно<br />

развитие на централизирания протокол, който преодолява недостатъците му чрез<br />

разпределяне на диспечера на блокировките по няколко възела [2, с.874-875]. В процеса<br />

на репликацията за всеки копируем елемент от данни едно от копията се избира за<br />

първично (нар. още главно копие) (primary copy), а всички останали са вторични (slave<br />

copy). Изборът на „първичния” възел, т.е. възелът управляващ блокировката на<br />

първичното копие на елемента от данни, не зависи от това дали съдържа първичното<br />

копие [пак там]. За разлика от механизма на централизираната 2PL, при разглеждания<br />

протокол, ако се обновява елемент от данни, координаторът на транзакциите трябва да<br />

определи къде се намира първичното копие и да изпрати заявката за блокировка към<br />

съответния диспечер на блокировките. При обновяването на елемент от данни е<br />

достатъчно да се установи изключителна блокировка само на първичното (главното) му<br />

копие. След като първичното копие бъде обновено, внесените изменения могат да<br />

бъдат разпространени върху всички вторични копия [2, с.875].<br />

Описание на алгоритмите за работа на възлите в РСУБД<br />

1. Алгоритъм за синхронизация на процесите при отделяне на ресурс в РС по [4]<br />

според протокола за 2PL с първични копия:<br />

1.1 Възел Si изпраща заявка до възел Sk за намерението си да блокира елемент от<br />

данни x j със съобщението reqi(x j , type_lock, num_t). Аргументът num_t има стойност<br />

num_t = concat(ci, i), където ci е стойността на брояча на транзакциите в Si.


- 101 -<br />

1.2 Получавайки съобщението reqi(x j , …), диспечерът на блокировките LMk в Sk<br />

проверява в таблицата на блокировките LTk дали исканата блокировка е допустима в<br />

съответствие с правилото:<br />

- Ако реплицираният елемент е<br />

свободен или е блокиран с “rl” и<br />

type_lock=”rl”<br />

- Във всички останали случаи<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271<br />

=><br />

блокировката<br />

е допустима;<br />

–<br />

недопустима.<br />

1.3 Ако блокировката е допустима, то диспечерът на блокировките поставя в<br />

таблицата на блокировките съответния запис за елемента x j и изпраща съобщение за<br />

предоставяне на исканата блокировка към възела заявител Si.<br />

1.4 Ако блокировката е недопустима, диспечерът на блокировките LMk поставя<br />

заявка за нея в опашката qk на чакащите „пред” x j , разрешение за<br />

блокировка транзакции.<br />

Работата на първичен възел по този алгоритъм е илюстрирана на фиг.1.<br />

Фиг. 1. Работа по алгоритъм 1 в първичен възел Sк<br />

В доклада се разглеждат традиционни транзакции – такива, които се<br />

характеризират със свойството ACID (атомарност, съгласуваност, изолираност,<br />

дълговечност). Затова след локалната ратификация, провеждана в първичните възли,<br />

към които се обърнал възела-инициатор на дадената транзация се извършва глобална<br />

ратификация - откриване на глобални конфликти на ратифицираната транзакция.<br />

2. Алгоритъм за управление на транзакциите по протокола за 2PL с първични<br />

копия за провеждане на фазата на глобалната ратификация по [4 и 7]:<br />

2.1 Диспечерът на транзакциите ТМi във възeла-инициатор Si заявява<br />

необходимите блокировки под ръководството на диспечерите на блокировките LMk в<br />

първичните възли Sк.<br />

2.2 Координаторът на транзакциите (ТСi) във възел Si иницииращ глобалната<br />

транзакция Тi(num_t) я разделя на подтранзакции Тil(num_t) използвайки информацията<br />

в глобалния системен каталог. ТСi изпраща субтранзакциите Тil в съответните възли Sl


- 102 -<br />

чрез службата за обмен на данни. Ако Тi предвижда обновяване на данни, то ТСi трябва<br />

да осигури обновяването на всички копия.<br />

Подтранзакциите Тil извършват необходимите изчисления и записват<br />

резултатите в личното работно пространство (ЛРП).<br />

2.3 Локалната ратификация се свежда до проверка на условието за нормален<br />

завършек на субтранзакцията – за определен лимит от време тя да е завършила работата<br />

си, в определения възел-изпълнител DMl. При завършване на локалната ратификация<br />

във възлите-изпълнители DMl се образуват опашки от транзакции по реда на номера им<br />

num_t. Извършва се полуфиксация на транзакциите и полуфиксираните транзакции<br />

изпращат съобщения „ready2 il” на възлите-инициатори.<br />

2.4 Във възлите-инициатори Si се насочват от възлите-изпълнители DMl<br />

формиращите се опашки от транзакции стоящи в нарастващ ред на номерата им. Във<br />

връзка с транспортните задържания при доставката на съобщенията една и съща<br />

опашка в различните TMi може да бъде нееднаква в смисъл на брой членове в<br />

опашката, но редът на следване на членовете в нея се запазва.<br />

2.5 По реда на изпълнение на транзакциите възелът победител изпраща<br />

съобщения commit на всички други възли (решение за фиксация) и всички транзакции<br />

последователно се фиксират, след което резултатите от транзакциите се презаписват от<br />

ЛРП в РБД. Обновяват се всички копия на елемента x j , ако има операция .<br />

2.6 Диспечерът на глобалната транзакция ТМi във възела-инициатор Si изпраща<br />

съобщения до първичните възли Sk за освобождаване на блокировките на елементите x j ,<br />

използвани от транзакцията.<br />

3. Алгоритъм за управление на транзакциите за моноверсионен модел на РБД<br />

решаващ задачата за сериализуемост на разпределения план чрез протокола за 2PL с<br />

първични копия по [4 и 7]:<br />

3.1 При постъпване на команда start (за изпълнение на транзакция Тi n (n=num_t))<br />

в ТMi чрез службата за обмен на данни се изпращат заявки до първичните възли Sk<br />

reqi(x j ….) за блокиране на съответните елементи от данни:<br />

- Ако първичното копие на елемент x j е свободно, то транзакцията Тi n го блокира<br />

(диспечерът на блокировките LMk в Sk поставя в таблицата на блокировките съответния<br />

запис) и изпраща съобщение за потвърждение на блокировката на x j към ТMi в Si;<br />

- Ако x j не е свободен, TMi (т.е. Ti n ) получава от LMk в Sk съобщение wait(x j ),<br />

транзакцията Тi n застава в подредена опашка според номера си num_t в LTk [1, с.916].<br />

3.2 Когато транзакция Тi n инициирана в Si получи потвърждение за блокировка<br />

на x j , координаторът на транзакциите ТСi изпраща чрез службата за обмен на данни<br />

подтранзакциите Til n , свързани с x j във възлите-изпълнители Sl.<br />

3.3 Подтранзакциите Til n във възлите изпълнители ТМl обработват копията на x j ,<br />

записват резултата от обработката в личното работно пространство (ЛРП) и изпращат<br />

на възела-инициатор ТMi съобщение с готовност за фиксация.<br />

3.4 При постъпване на съобщение commit във възела-изпълнител Sl, резултатите<br />

от ЛРП се пренасят в БД (write DB). Съдържанието на ЛРП се ликвидира.<br />

3.5 При постъпване на съобщение за откат от Тi n в Sl, съдържанието на ЛРП се<br />

ликвидира (abort PS).<br />

3.6 При постъпване на команда commit(Тi n ) или rollback(Тi n ) мениджърът на<br />

транзакцията Тi n ТМi освобождава блокировките на всички x j използвани от Тi n , като<br />

изпраща до съответните първични възли Sk искания за освобождаване на блокировките<br />

на първичните копия на x j .<br />

3.7 При освобождаване на първично копие в Sk се проверява има ли на опашката<br />

qk транзакция Тp g с минимален номер, чакаща блокировката му. Ако има, то елементът


- 103 -<br />

се блокира от нея, LMk изпраща потвърждение за блокировката му на съответния възел<br />

инициатор Sp опашката се придвижва с едно място напред (q_shift).<br />

4. Алгоритъм за управление на транзакциите за двуверсионен модел на РБД<br />

решаващ задачата за сериализуемост на разпределения план чрез протокола за 2PL с<br />

първични копия по [4], [5] и [6, с.156-157]<br />

Многоверсионните методи за управление на паралелните транзакции съхраняват<br />

версията на данните, подлежащи на изменение. В повечето случаи може да се извършва<br />

четене на данните без съответстващата синхронизационна блокировка. Това позволява<br />

да се повиши скоростта на изпълнение на заявките за четене и да се намали<br />

вероятността от появата на взаимоблокировки [6]. “Терминът версия се отнася до<br />

стойността на елемента от данни, продуциран от транзакция, която е или активна или<br />

фиксирана” (завършила с commit). “Така, ако LM реши да назначи определена версия<br />

на х при операция read[x], стойността, която се връща не е тази, която е продуцирана от<br />

транзакция, прекъсната с abort.”[7] 2V диспечер на блокировките използва 3 вида<br />

блокировки: readlock (rl), writelock (wl) и certifylock (cl) [6 и 7]:<br />

rl се установява върху текущата версия на елемента от данни х, непосредствено<br />

преди прочитането й;<br />

wl се установява върху х преди да се създаде нова (незавършена) версия на х;<br />

cl се установява непосредствено преди изпълнението на последната операция на<br />

транзакцията (обикновено commit) по отношение на всеки елемент от данни, който тя е<br />

записала. Ако Ti е записала х, но още не е фиксирала, то тези 2 версии на х са на Тi<br />

преди да е записала изображението на х и стойността на х.<br />

Тези блокировки се регулират от матрицата на съгласуваността [6 и 7]:<br />

rl wl cl<br />

rl да да не<br />

wl да не не<br />

cl не не не<br />

4.1 При постъпване на съобщението start (за изпълнение на транзакция Ti n ) в Si,<br />

TMi изпраща съобщение до първичния възел Sk reqi(x j , type_lock, num_t) за блокиране<br />

на съответния елемент от данни.<br />

4.2 Получавайки съобщението reqi(x j , type_lock, num_t) първичният възел LMk<br />

проверява дали елементът е свободен (т.е. дали транзакция го е блокирала с rl, wl или<br />

cl):<br />

4.3 Ако елементът е свободен, то транзакцията Ti n го блокира (диспечерът на<br />

блокировките LMk в Sk поставя в таблицата на блокировките съответния запис) и<br />

изпраща разрешение за съответната блокировка на x j .<br />

4.4 Ако елементът не е свободен (т.е. друга транзакция е поставила запис в LTk<br />

wl(Tp g ), rl(Tp g ) или cl(Tp g ):<br />

4.4.1 Ако type_lock = wl(x j ) и x j е блокиран с wl или cl,<br />

- то Тi n „застава” в подредена опашка според номера си „пред” x j .<br />

- в противен случай LMk поставя срещу x j wl(Ti n ), превежда writen[x j ] във<br />

writen[x j n] и изпраща writen [x j n] на възела-инициатор ТMi.<br />

4.4.2 Ако type_lock = rl(x j ), LMk проверява в LTk притежава ли вече Ti n<br />

блокировка wl(x j ), ако това е така,<br />

- то LMk превежда readn[x j ] в readn[x j n] и изпраща readn[x j n] на ТMi;<br />

- иначе (по таблицата на съгласуваността) Ti n „застава на опашка пред” x j според<br />

номера си, за да изчака, докато може да постави rl(x j ) и когато я получи, LMk ще<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 104 -<br />

превърне readn[x j ] в readn[x j g], където x j g е най-скорошната (т.е. единствената<br />

фиксирана) версия на x j и ще изпрати readn[x j g] на TMi.<br />

4.5 При прочитане на команда commit(Ti n ) във възела инициатор ТMi, се изпраща<br />

заявка commit(Ti n ) – ci n във всички първични възли, обслужващи транзакцията Ti n .<br />

4.6 Когато LMk получи ci n , посочваща, че Тi n приключва с фиксация :<br />

4.6.1 Проверява в LTk за блокировки wli n :<br />

- Ако има елементи от данни, блокирани с wli n и с блокировки rlp g , притежавани<br />

от други транзакции,<br />

* То Ti n изчаква на опашка „пред” тези x j , за да изчака освобождаването на rlp g и<br />

да превърне своите wli n (x j ) в cl;<br />

* Иначе LMk превръща wli n (x j ) в cli n (x j ).<br />

4.6.2 Когато Ti n получи всички потвърждаващи блокировки cl на първичните<br />

копия на x j в Sk за определен лимит от време, възлите-изпълнители DMl получават<br />

потвърждение за фиксация от TMi.<br />

4.6.3 Ако за определен лимит от време Ti n не получи своите cl в Sk, то е<br />

възможна взаимоблокировка на Ti n с друга транзакция Tp g , която по времето, когато Ti n<br />

се е опитвала да превърне своите wli n (x j ) в cli n (x j ), пък се е опитвала да трансформира<br />

своите rlp g (x j ) в wlp g (x j ). Затова се стартира подалгоритъм за разкриване и разрешаване<br />

на взаимоблокировки, който работи по метода на хронометраж. (Транзакциите с помалки<br />

номера n, т.е. започнали по-рано работата си, да я приключат, а за по-младите се<br />

прилага рестарт).<br />

4.7 При постъпване на потвърждение за фиксация във възел–изпълнител DMl,<br />

резултатите от ЛРП се пренасят в БД (write_DB).<br />

4.8 При команда rollback(Ti n ), TMi изпраща до възлите-изпълнители Sl<br />

съобщения backil(x j ). Съдържанието на ЛРП на Til n се ликвидира. Присвоеният на Til<br />

номер се ликвидира.<br />

4.9 Si изпраща до съответните първични възли Sk съобщения за освобождаване<br />

на елементите, блокирани от Тi n – unlocki n (x j ). В таблиците на блокировките LTk<br />

записите за елементите x j остават чисти.<br />

4.10 Аналогично на 3.7.<br />

Алгоритъмът на работа на първичен възел Sk (диспечерът на блокировките LMk)<br />

е илюстриран на фиг.2.<br />

Представените тук алгоритми са разработени на базата на протокола за 2PL с<br />

първични копия и позволяват:<br />

- Синхронизация на транзакциите в РСУБД при едновременния им достъп до<br />

разделяеми елементи от данни, като се извършва сериализация, така, че във всеки<br />

момент от време само 1 транзакция да може да извършва действие на елемент от данни;<br />

- Глобална ратификация на паралелно изпълняваните разпределени транзакции;<br />

- Решение на задачата за сериализуемост на разпределените транзакции при<br />

моноверсионен модел на РБД и при двуверсионен модел на РБД.<br />

За получаване на количествени оценки на ефективността на представените в<br />

доклада алгоритми, предстои разработване на имитационен модел на РС и сравняване с<br />

резултатите от симулирането на другите протокола за 2PL в РБД с репликация на<br />

данните.


- 105 -<br />

фиг. 2. Работата на първичен възел Sk по алгоритъм 4<br />

ЛИТЕРАТУРА<br />

1. Г. Гарсиа-Молина, Д. Ульман, Д. Уидом. Системы баз данных. М., Вильямс, 2003.<br />

2. Т. Конноли, К. Бегг. Базы данных. М.-СПб-Киев, Вильямс, 2003.<br />

3. П. Милев, С. Василева. Проблеми при алгоритмите за управление на транзакциите в<br />

разпределени системи за управление на бази от данни. (Състояние и перспективи).<br />

VIII международна конференция на асоциацията „Тензор” по диференециална<br />

геометрия, системен и комплексен анализ и информатика. Варна, 2005.<br />

4. Н. Гасанова. Разработка алгоритмов управления транзакциями, основанных на<br />

методе временных меток в расспределенных базах данных. Автореферат, 2005.<br />

5. П. Чардин. Многоверсионность данных и управление паралельными транзакциями.<br />

http://www.citforum.ru/database/articles/multiversion<br />

6. Ph., Bernstein, V. Hadzilacos, N. Goodman. Concurrency control and recovery in<br />

Database Systems. http://www. itap.purdue.edu/homes/sunil/syllabi/542/book/images<br />

7. http://dbserver.kaist.ac.kr/~mhkim/cs662-05spring.dir/ozsu-chap11.pdf<br />

Shumen University “Bishop Konstantin Preslavski”, College - Dobrich<br />

Dobrotica 12<br />

9300 Dobrich<br />

BULGARIA<br />

E-mail: svetlanaeli@abv.bg<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 106 -


- 107 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

WIRELESS SENSOR NETWORKS WITH DYNAMIC<br />

NETWORK TOPOLOGY<br />

VASIL STOYANOV<br />

Abstract. Wireless sensor networks with dynamic topology are discussed. Basic<br />

networks topologies – star, tree and mesh are analyzed. It is proposed a method<br />

for building the tree sensor network, which reduces the nodes resource<br />

requirements. The average time for changing the network topology and the<br />

average throughput are analyzed in case of different initial conditions.<br />

Key words: coordinator, end device, router, tree topology.<br />

СЕНЗОРНИ МРЕЖИ С РЕКОНФИГУРИРАНЕ НА МРЕЖОВАТА<br />

ТОПОЛОГИЯ<br />

1. Въведение<br />

Сензорните мрежи (СМ) представляват ниско скоростни безжични мрежи,<br />

предоставящи възможност за безжична връзка между множество автономни устройства<br />

за мониторинг на определени параметри на средата и/или управлени на други<br />

устройства.<br />

Сензорните мрежи са изцяло базирани на стандарта IEEE 802.15.4, който<br />

дефинира протокол за връзка между устройства посредством радио комуникационен<br />

канал в PAN (Personal Area Network) мрежа. Радио връзката се осъществява на<br />

свободните радио честоти 2.4GHz, 915MHz или 868MHz. За реализиране на<br />

комуникация между два възела в рамките на една и съща мрежа, стандартът използува<br />

множествен достъп до средата, с откриване на носещата честота и механизъм за<br />

избягване на колизиите (CSMA-CA). Използуването на стандарта IEEE 802.15.4<br />

позволява изграждането на сензорни мрежи, включващи в състава си до 65536<br />

устройства, свързани в мрежова топология звезда, дървовидна топология или смесена<br />

топология.<br />

Основната градивна единица на всяка сензорна мрежа е устройството.<br />

Устройствата в СМ се делят на устройства, поддържащи пълен набор функции Full<br />

Function Device (FFD) и на устройства с ограничен набор от функции Reduced<br />

Function Device (RFD).<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 108 -<br />

2. Описание на метод за реконфигуриране на мрежовата топология при<br />

сензорни мрежи<br />

Сензорните мрежи предоставят възможност за свързването на стационарни и<br />

мобилни устройства благодарение на функционалните възможности на мрежовия<br />

протокол. Мрежовият протокол предоставя възможност на устройства да изграждат<br />

мрежа, да се асоциират с вече съществуваща СМ или да напускат съответната мрежа,<br />

на която са принадлежали. Всичко това предполага силно изразена динамика в<br />

мрежовата топология, което от своя страна поставя въпроса за решаване на редица<br />

комуникационни проблемите, свързани с нея.<br />

Разглежданият метод за реконфигуриране на мрежовата топология при СМ е<br />

ориентиран към мрежи с дървовидна, строго йерархична топология (фиг.1).<br />

Фиг.1<br />

При дървовидната топология сензорната мрежа е изградена от три типа<br />

устройства: координатор, рутер(и) и крайни устройства. Координаторът представлява<br />

устройство с пълен набор от функции (FFD устройство), което е отговорно главно за<br />

формиране на съответната сензорна мрежа и задаване на някои ключови параметри на<br />

мрежата. Рутерът представлява FFD устройство, което изпълнява основни мрежови<br />

функции – предаване на данни и контролни съобщения през мрежата, използувайки<br />

различни йерархични стратегии за намиране на оптимален път между възела изпращач<br />

и възела приемник. Крайните устройства представляват устройства с общо<br />

предназначение, с пълен (FFD) или ограничен (RFD) набор от функции, които се явяват<br />

листа в дървовидната мрежова топология. В разглежданият тип сензорни мрежи,<br />

крайните устройства не могат да комуникират директно помежду си. Потокът от<br />

даннови и контролни съобщения задължително преминава през координатор или<br />

рутер(и), които формират еднозначно определен път между крайните устройства,<br />

осъществяващи комуникация (фиг.2).


- 109 -<br />

Фиг.2<br />

Основната цел на разглеждания метод е да се предостави възможност на<br />

устройства с ограничени хардуерни ресурси, поддържащи стандарта IEEE 802.15.4, да<br />

участвуват в изграждането на сензорни мрежи с динамична мрежова топология. За<br />

конкретните разглеждания под ограничен хардуерен ресурс (визирайки устройствата,<br />

които изграждат мрежата) ще се разбира ограничение по отношение на паметта за<br />

данни, съдържаща мрежова конфигурационна информация. Обикновено размерът на<br />

тази памет е в границите [128B ÷ 1kB].<br />

Реализираният метод използува 16 битов вътрешен мрежов адрес за адресиране<br />

на отделните устройства на мрежово протоколно ниво. Всяко устройство също така<br />

притежава уникален 64 битов MAC адрес, който се използува при присъединяване на<br />

съответното устройството към дадена сензорна мрежа.<br />

Същността на метода се състои в следното:<br />

- Координаторът формира сензорна мрежа. Координаторът е с фиксиран мрежов<br />

адрес ADDRCoordinator = 0x8000.<br />

- При формиране на сензорната мрежа рутерите (възлите от дървовидната<br />

топология) изграждат двоично дърво за търсене с максимлна дълбочина<br />

MaxDepth = 8.<br />

- Мрежовите адреси на рутерите се задават при присъединяване на рутер към<br />

съществуваща мрежа съгласно формулата:<br />

[AddrHi = 2 MaxDepth – n -1 , AddrLo = 0x00],<br />

ParentChildCount= 0<br />

ADDRRouter = [AddrHi = AddrHiParent +2 MaxDepth – n -1 , AddrLo = 0x00],<br />

ParentChildCount =1<br />

Φ, ParentChildCount=2<br />

където:<br />

- AddrHi – старша част на адреса<br />

- AddrLo –младша част на адреса<br />

- MaxDepth – максимална дълбочина на дървото<br />

- n – ниво на дървото (n = 0..7)<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 110 -<br />

- ParentChildCount – брой устройства, асоциирани към съответен<br />

родителски възел (координатор или рутер)<br />

- 16 битовия мрежов адрес на всяко едно устрйство се разделя на две части –<br />

старша част (AddrHi), съдържаща старшата част на адреса на рутера, към<br />

който устройството е асоциирано; младша част (AddrLo)– адрес на крайното<br />

устройство(пореден номер в интервала [1..255]). При така формирания<br />

мрежов адрес, дадена сензорна мрежа може да включва в състава си до 255<br />

рутера, като всеки рутер може да асоциира до 255 крайни устройства.<br />

- Мрежовите адреси на крайните устройства се формират при асоцииране на<br />

устройството към определен рутер – ADDREndDev = ADDRRouter + SEQNum,<br />

където:<br />

o ADDREndDev – адрес на крайно устройство<br />

o ADDRRouter – адрес на рутер<br />

o SEQNum – пореден номер - цяло число в интервала [1..255]. SEQNum се<br />

инкрементира след всяко успешно присъединяване на крайно<br />

устройство към съответната сензорна мрежа.<br />

- Не се налага съхраняване на адреса на родителя, като част от мрежовата<br />

конфигурационна информация – последният е известен във всеки един момент<br />

от време, в резултат от начина на формирането на мрежовия адрес.<br />

- Не се налага поддържане на таблица на съседство (таблица, съдържаща<br />

адресите на крайните устройства, директно свързани към съответния възел от<br />

мрежата – координатор или рутер).<br />

На фиг.3а и фиг.3б е представена примерна сензорна мрежа, при която се<br />

извършва реконфигуриране на мрежовата топология в резултат на промяна на<br />

позицията на едно от крайните утройства.<br />

Addr = 0x8000<br />

Addr = 0x4000 Addr = 0xC000<br />

Addr = 0x4001<br />

Addr = 0x4003<br />

Addr = 0xC001<br />

Addr = 0x4001<br />

Addr = 0x8000<br />

Addr = 0x4000 Addr = 0xC000<br />

Addr = 0x4002<br />

Addr = 0x4002<br />

Фиг.3а Фиг.3б


- 111 -<br />

3. Резултати<br />

Основните параметри, които са изследвани при реализацията на метода са:<br />

средно време за промяна на мрежовата топология Тreavg, и максимална<br />

пропускателна способност Cmax.<br />

Средното време за промяна на мрежовата конфигурация Тreavg е равно на<br />

сумата от времената за получаване на информация за свободните адреси на крайни<br />

устройства за даден рутер (към който съответно крайно устройство прави опит да се<br />

присъедини) и времето необходимо за присъединяване на устройството:<br />

Тreavg = ∑ТReqFreeAddr + Tassoc<br />

Таблица 1. Средно време за реконфигуриране при различен брой крайни<br />

устройства<br />

Брой крайни устройства Тreavg, ms<br />

1 3.2<br />

2 6.1<br />

4 14.3<br />

8 27<br />

16 50<br />

32 112<br />

4. Заключение<br />

Разработеният метод предоставя възможност за изграждане на сензорни мрежи<br />

без да е необходимо съхраняване на обемна информация, свързана с мрежовата<br />

конфигурация. Това от своя страна значително редуцира изискванията по отношение на<br />

ресурса памет при хардуерните устойства, изграждащи мрежата. Поради естеството на<br />

мрежовата топология и начина на задаване на мрежовите адреси е необходимо всяко<br />

устройство да съхранява единствено назначения му 16 битов мрежов адрес, както и<br />

уникалния 64 битов MAC адрес. Процесът на рутиране на пакети в една такава мрежа<br />

се свежда до намиране на път в двоично дърво за търсене. Максималният брой<br />

мрежови устройства през, които трябва да премине даден пакет за да достигне<br />

съответно устройство приемник в най-лошия случай е равен на 2*MaxDepth, т.е 16.<br />

ЛИТЕРАТУРА<br />

1. IEEE P802.15 Working Group. Part 15.4: Wireless Medium Access Control (MAC)<br />

and Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area Networks<br />

(LR-WPANs), 2003.<br />

2. ZigBee Alliance. ZigBee Specification, 2005.<br />

3. Nilesh Rajbharti, Microchip Technology Inc.. Microchip Stack for the ZigBee<br />

Protocol<br />

.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 112 -


- 113 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

WEB SERVICE BASED SYSTEM FOR CUSTOMER<br />

RELATIONSHIP MANAGEMENT<br />

VELIN KRALEV, NINA SINYAGINA<br />

Abstract. In this article customer relationship management systems (CRM) are<br />

described. The model of CRM system which uses web services is proposed. The<br />

relational database scheme is presented that storage information about customers.<br />

New trends for development of CRM systems are presented.<br />

Key words: customer relationship management, web service, database.<br />

СИСТЕМА ЗА УПРАВЛЕНИЕ НА ВЗАИМООТНОШЕНИЯ<br />

С КЛИЕНТИ ИЗПОЛЗВАЩА УЕБ УСЛУГИ<br />

1. Въведение<br />

Системите за управление на взаимоотношения с клиенти – CRM (Customers<br />

Relationship Management) е втората по важност инициатива поемана от организациите<br />

във връзка със съхраняването на информацията и осигуряването на сигурността на<br />

данните [1]. От маркетингова гледна точка, управлението на взаимоотношения с<br />

клиенти е бизнес подход, който има за цел да създава такива взаимоотношения и да ги<br />

развива в бъдеще. CRM често се асоциира с използването на информационни<br />

технологии, като средство за маркетингова стратегия. В този аспект CRM обединява<br />

потенциала на новите информационни технологии с новите маркетингови виждания за<br />

връзките и взаимоотношенията на организациите със своите клиенти [2].<br />

Въпреки че съществуват множество CRM софтуерни пакети, които поддържат<br />

тази стратегия, това не е технология само по себе си. По-скоро, това е цялостна<br />

промяна в разбирането на организациите, които вече поставят ударението основно<br />

върху своите клиенти. На практика CRM е маркетингова стратегия от една страна,<br />

която има за цел да постави клиента в центъра на свързаните с организациите процеси,<br />

а самата технология CRM позволява да бъде реализирана тази стратегия [3].<br />

В средата на 80-те години на миналия век за първи път са били въведени<br />

системите за управление на лична информация – PIM (Personal Information Management<br />

System) и системите за управление на контакти – CMS (Contact Management System). И<br />

двата вида системи са предоставяли възможности за организиране и управление на<br />

данните за клиенти (име на клиента, телефон(и) за връзка, адрес и други). Едва в<br />

средата на 90-те години на миналия век, започват да се развиват системите за<br />

управление на взаимоотношения с клиенти – CRM. Следващото поколение на CRM<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 114 -<br />

системите ще се базират на уеб услуги, като по този начин могат да се използват<br />

всички предимства предоставяни от глобалната мрежа Интернет. Изграждането на<br />

приложения чрез уеб услуги, позволява те да бъдат лесно интегрирани, бързо<br />

конфигурирани за нуждите на организациите и разширяват значително кръга на<br />

потребителите, които могат да ги използват.<br />

CRM системите значително намаляват времето за достъп до различни видове<br />

информация свързана с клиентите. Това бързодействие се постига чрез съхраняването<br />

на всички данни на едно централизирано място. Достъп до тях може да се осъществява<br />

както през Интернет, от страна на самите клиенти, така и от информационни системи,<br />

внедрени в самата организация, използваща CRM системата [4].<br />

Полезността на една CRM система зависи от полезността на компонентите,<br />

които я изграждат. Колкото по-полезен, по-мащабируем и по-гъвкав е всеки отделен<br />

компонент на тази система, толкова тя е по-полезна. Целта на разработчиците в<br />

момента е насочена към свързването на различни "затворени" системи с цел споделяне<br />

на общи данни между тях. Според [5] данните са "валутата" на 21-ви век и тези<br />

организации, които могат успешно да използват своите данни, ще преуспяват.<br />

Обхващането на всички аспекти на CRM системите само в една статия е невъзможно,<br />

затова тук се разглежда функционалната част на една CRM система обработваща само<br />

основната информация за клиентите. Целта на настоящата статия е, да се изследват<br />

основните компоненти и функции на CRM системите и да проектира софтуерен<br />

приложен модул, съхраняващ и обработващ информация за клиенти. Част от<br />

функционалността на предложеният модул да бъде реализирана с помощта на<br />

съществуващи уеб услуги.<br />

2. Същност на CRM системите<br />

CRM системите са разработени, за да събират, съхраняват и анализират данни<br />

свързани с клиентите, да оптимизират продажбите по отношение на време и<br />

количество, да подпомагат дейността на отдела за работа с клиенти и други процеси,<br />

които водят до повишаване на маркетинговата ефективност. Освен осъществяване на<br />

тези цели, CRM системите помагат на бизнеса да използва технологични и човешки<br />

ресурси в следните насоки: осигуряване на по-ефективен отдел за връзка и обслужване<br />

на клиенти, по отношение на време и брой служители; увеличаване на продажбите;<br />

откриване на нови клиенти; и други. Освен изброените аспекти, внедряването на една<br />

CRM система предоставя възможност за автоматизиране на цял диапазон от функции,<br />

като се избягва изпълнението на повтарящи се задачи, а в същото време се предоставя<br />

достъп до данни от всяко място и по всяко време.<br />

Някой от предлаганите CRM софтуерни пакети на пазара са: Dynamics CRM 3.0<br />

на фирмата Microsoft, Daffodil CRM на Daffodil Software, Clientele CRM на Epicor и<br />

други. Компании като Salesforce, NetSuite и SAP планират да пуснат онлайн софтуерна<br />

поддръжка на своите програми за управление на взаимоотношения с клиенти.<br />

За да бъде една CRM система наистина ефективна, не е достатъчно само<br />

закупуването и инсталирането на специализиран софтуер. Необходимо е<br />

организацията, която е решила да използва CRM системата, първо да реши какъв вид<br />

информация ще съхранява за своите клиенти, как и къде да бъде съхранена тази<br />

информация и как ще бъде използвана тя. Начините за взаимодействие с клиентите от<br />

страна на организацията могат да бъдат различни – електронна поща, уеб сайт,<br />

специализирани центрове за връзка и други. Събирането на потоци от данни между<br />

действащи системи (например система за продажби или инвентаризационна система) и<br />

аналитични системи, могат да помогнат на организациите, да получат по-цялостен


- 115 -<br />

изглед за всеки свой клиент и да определят къде е необходимо предлагането на подобри<br />

услуги за този клиент.<br />

3. Компоненти и основни функции на CRM системите<br />

Приложната архитектура на CRM системите се състои от три части:<br />

операционна (operational) – чрез нея се извършва автоматизация на основните бизнес<br />

процеси (маркетинг, продажби, обслужване); аналитична (analytical) – чрез нея се<br />

извършва анализиране на поведението на клиентите; сътрудническа (collaborative) –<br />

чрез нея се осигурява информацията за осъществяване на контакт с клиента (основни<br />

данни за клиента, телефон(и) за връзка, електронна поща, факс, адрес и други).<br />

CRM системите се характеризират със следните свойства:<br />

• мащабируемост – способността да бъдат използвани за много цели и да бъдат<br />

надеждно разширени, ако е необходимо да се добави нова функционалност към<br />

тях;<br />

• производителност – способността да се извърши процес в системата на фонов<br />

режим, без да се изисква намеса на служител (например автоматизиран отговор<br />

на клиент чрез електронна поща);<br />

• поверителност – способността за криптиране на личните данни на клиента, а<br />

също така и възможност за унищожаване на документи с цел предпазване от<br />

злоупотреба с тях;<br />

• комуникация по много канали – способността за осъществяване на връзка с<br />

клиента по много начини и чрез различни устройства (телефон, WAP, Интернет<br />

и т.н);<br />

• единна база от данни – способността за централизирано съхраняване на<br />

информацията свързана с клиента;<br />

• достъпност – способността на клиентът самостоятелно, бързо и лесно да получи<br />

достъп до информацията от която се нуждае;<br />

• актуалност – идентифициране на клиентът и моментален достъп до неговия<br />

профил при осъществяване на контакт с него. Профилът на всеки клиент се<br />

формира на базата на цялата съхранена информация за него, от всички звена на<br />

организацията;<br />

• оперативен маркетинг – способността за изпращане към клиента на<br />

персонализирани маркетингови предложения (например автоматизирано<br />

генериране и изпращане на персонализирани електронни писма);<br />

• анализ – способността за анализ, чрез който се извършва групиране на<br />

клиентите, с цел формиране на различни маркетингови стратегии за отделните<br />

групи клиенти (сегменти);<br />

4. Схема на CRM система използваща уеб услуги<br />

На Фиг. 1 е представена схема на връзките между различните компоненти на<br />

CRM система използваща уеб услуги. Предложена е трислойна архитектура на<br />

софтуерната система, която се състои от слой за данни, приложен слой (съдържащ кода<br />

за управление на данните или т.нар. "бизнес логика") и клиентски слой, който<br />

представлява инсталирания софтуерен модул при клиента.<br />

При еднослойна архитектура на приложението, файлът или файловете на базата<br />

от данни се разполагат на същия компютър на който се разполагат и файловете на<br />

самото приложение.<br />

При двуслойната архитектура (клиент/сървър), клиентският компютър изисква<br />

данни от компютъра-сървър, който съхранява както файловете на базата от данни, така<br />

и машината на базата от данни за достъп до тях. В зависимост от реализацията на<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 116 -<br />

самата система, сървъра може да извършва по-голямата част от обработката на данните.<br />

По този начин един мощен сървър може да осигури услуги за обработка на данни на<br />

няколко клиента. Двуслойната архитектура притежава следните предимства в<br />

сравнение с еднослойната: надеждна система за сигурност; цялост (интегритет) на<br />

данните; възможности за архивиране; управление на ограниченията върху достъпа и<br />

данните; управление на транзакции и други.<br />

При логическата трислойна архитектура има само два физически слоя, но самото<br />

приложение е разделено на три отделни елемента: данни, код за управление на данните<br />

и клиентско приложение. Логическият трислоен модел има два съществени<br />

недостатъка. Първо, необходимо е да се копира частта от програмата управляваща<br />

данните върху клиентската машина, което значително ще понижи производителността.<br />

Второ, когато множество потребители модифицират едни и същи данни, няма лесен<br />

начин по който могат да се обработят възникналите конфликти при обновяване на<br />

данните.<br />

І. СЛОЙ ДАННИ<br />

База от данни и<br />

система за управление<br />

на бази от данни (СУБД)<br />

ІІ. ПРИЛОЖЕН СЛОЙ<br />

Приложен сървър<br />

ІІІ. КЛИЕНТСКИ СЛОЙ<br />

Компютър при клиента<br />

CRM модул<br />

Проверка за валидност<br />

на лична карта<br />

Фиг. 1. Схема на CRM система, използваща уеб услуги.<br />

Уеб услуга за<br />

проверка на ЕГН<br />

Уеб услуга за<br />

населени места<br />

Физическата трислойна архитектура е следващата стъпка след клиент/сървър<br />

архитектурата. При нея частта от програмата, управляваща данните е преместена на<br />

отделен компютър-сървър, наречен сървър на приложението или приложен сървър.<br />

Всички клиентски програми са проектирани да взаимодействат с него. Приложният<br />

сървър, от своя страна комуникира със системата за управление на бази от данни,<br />

която може да бъде инсталирана на същия компютър или на друг компютър, специално<br />

предназначен за тази цел. Поради това, клиентските машини не се свързват директно<br />

към сървъра за бази от данни, а индиректно посредством приложния сървър.<br />

Предимството на трислойната архитектура е, че при промяна на бизнес логиката на<br />

приложението, се извършват корекции само върху приложния сървър, без да се налага<br />

промяна на клиентските приложения. Недостатък е, че реализирането на системи с<br />

трислойна архитектура е значително по-сложно отколкото на системи с архитектура<br />

клиент/сървър.<br />

За създаване на предлаганата CRM система, беше избрана трислойна<br />

архитектура. Част от функционалността на системата е реализирана чрез


- 117 -<br />

предварително създадени уеб услуги, съответно за проверка коректността на единен<br />

граждански номер (ЕГН), и втора, която връща списък с населените места в Република<br />

България.<br />

5. Кратко описание на работата със CRM система<br />

На Фиг. 2 е представена примерна сесия на работа с разработената система.<br />

Изпраща заявка към услугата place_names_rb,<br />

като получава йерархичен списък на<br />

населените места в Р. България<br />

Фиг. 2. Сесия на работа със софтуерния модул .<br />

Предава ЕГН като параметър<br />

на уеб услугата check_pn за<br />

проверка<br />

Стартира сайт http://nbds.mvr.bg/<br />

за проверка валидността на<br />

номер на лична карта<br />

Софтуерната система предоставя функции за въвеждане на нови и коригиране на<br />

вече въведени данни за клиенти. Клиентите са разделени на два типа – "юридически<br />

лица" и "физически лица". За всеки тип клиент се предоставят следните основни<br />

функции – "Търсене", "Добавяне" и "Актуализиране".<br />

Потребителят има възможност за избор на населено място от предварително<br />

генериран списък – Фиг. 2. Този списък се създава с помощта на предварително<br />

реализирана уеб услуга (get_all_places), която връща наименованията на областите,<br />

общините към тях и съответно населените места към всяка община в Република<br />

България. Получените данни се трансформират и визуализират в дървовидна структура,<br />

от която потребителя има възможност да избере желаното населено място.<br />

За проверка на валидността на лична карта, към момента на писане на<br />

настоящата статия Министерството на вътрешните работи на Република България, не е<br />

предоставило тази възможност като уеб услуга. Предоставен е сайт на който може да се<br />

направи проверка за валидност на лична карта – http://nbds.mvr.bg/, но това изисква<br />

допълнителни усилия по копиране и прехвърляне на данните от софтуерния модул към<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 118 -<br />

специален контрол за целта. Реализираната система използва функции от приложния<br />

програмен интерфейс (API) на операционната система Windows, за да зареди<br />

автоматично по-горе цитирания сайт в уеб клиент. След натискане от страна на<br />

потребителя на бутона "Справка", се копира стойността на полето "Лична карта /<br />

Номер" в системния буфер (clipboard) за временни данни (с цел спестяване на<br />

операциите по селектиране и копиране на въведената стойност), след което може да<br />

бъде направена съответната проверка.<br />

За проверка на въведения от потребителя ЕГН, софтуерната система предлага<br />

две възможности. Първо, потребителят има възможност да натисне бутона "Есграон",<br />

който ще зареди сайта: http://www.grao.bg/esgraon.html, на който има възможност да се<br />

провери дали ЕГН е валиден. Второ, при включена опция за проверка на ЕГН, при опит<br />

да се напусне полето "Единен граждански номер" се извършва проверка на въведената<br />

стойност, която се предава като параметър на вече съществуваща уеб услуга (check_pn).<br />

Отговорът от уеб услугата може да бъде "валиден", "невалиден" или друг символен низ,<br />

съдържащ описание на грешката направена в ЕГН (например "невалиден месец,<br />

позиции 3 и 4").<br />

6. Схема на релационната база от данни "Клиенти"<br />

Данните за клиентите се съхраняват в релационна база от данни с име<br />

"Клиенти", която е представена схематично на Фиг. 3.<br />

Фиг. 3. Схема на релационната база от данни "Клиенти".


- 119 -<br />

Таблицата “Клиенти” съдържа поле “тип_клиент”, което определя дали клиентът<br />

е “юридическо лице” или е “физическо лице”. Според тази категоризация останалите<br />

характеристики за клиента се записват съответно в таблицата “клиенти_юл” –<br />

съхранявща допълнителна информация за юридически лица, и в таблицата<br />

“клиенти_фл” – съхраняваща допълнителна информация за физическите лица. Типа на<br />

връзките между таблиците “клиенти” и “клиенти_юл”, съответно таблиците “клиенти”<br />

и “клиенти_фл” е едно-към-едно (1:1), което налага ограничението, че в таблицата<br />

“клиенти_юл” или “клиенти_фл” не може да бъде цитиран повече от един път вече<br />

въведен клиент в таблицата “клиенти”. Типа на връзката между таблиците “клиенти” и<br />

“контакти” е едно-към-много (1:М), защото един клиент може да има повече от един<br />

контакт (например мобилен телефон, служебен телефон, електронна поща и т.н.).<br />

Аналогична е вързката между таблиците “клиенти” и таблицата “адреси”, която също е<br />

от тип едно-към-много (1:М). Един клиент може да има адрес за връзка и постоянен<br />

адрес. Таблицата “лица” съхранява информация за лицата свързани с юридическото<br />

лице (например лица отговорни за стопански операции, упълномощени лица и други).<br />

7. Заключение<br />

Реализирането на една мащабна CRM система с всички нейни аспекти е огромна<br />

по обем задача. Затова в настоящата статия беше разгледана реализацията на частта<br />

“сътрудничество” на CRM системата, т.е. съхраняването и обработването на данните за<br />

клиентите. Беше предложена схема на софтуерна система, използваща уеб услуги за<br />

реализация на част от функциите. Създаването адаптивна CRM система, базирана на<br />

уеб услуги е новаторска идея, която изисква провеждането на допълнителни<br />

експерименти и по-нататъшна изследователска работа. Такава система би могла да се<br />

използва за съхраняване и обработване на информация, събирана от различни<br />

източници и използвана по различни начини. Тенденциите в развитието на CRM<br />

системите е, те да бъдат предоставяни като уеб услуги. Това ще позволи на различни<br />

организации да използват тези системи с цел управление на взаимоотношенията с<br />

клиентите.<br />

ЛИТЕРАТУРА<br />

1. P. Greenberg. CRM at the Speed of Light, Mcgraw-Hill Osborne Media, 2004.<br />

2. A. Payne. Handbook of CRM, Butterworth-Heinemann, 2005.<br />

3. J. Reynolds. A practical Guide of CRM, CMP Books, 2002.<br />

4. J. Scott, D. Lee, Microsoft CRM 3, For Dummies, 2006<br />

5. P. Hagen. Creating the Relationship-Centric Organization, Idealware, 2006<br />

Department of Informatics<br />

South-West University "Neofit Rilsky" – Blagoevgrad<br />

66, Ivan Mihailov Str.<br />

2700 Blagoevgrad<br />

BULGARIA<br />

E-mail: velin_kralev@abv.bg<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 120 -


- 121 -<br />

© Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

ON MODIFICATION OF THE ITERATIVE<br />

SELF-ORGANIZING DATA ANALISYS TEACHINIQUE<br />

ALGORITHM<br />

RADOSLAVA KRALEVA, VELIN KRALEV<br />

Abstract. In the present paper one of the most popular classical self-organizing<br />

clustering methods – ISODATA (Iterative Self-Organizing Data Analysis Techniques<br />

Algorithm) is considered. It is proposed a modification implemented by changes in two<br />

of the restriction conditions of ISODATA algorithm. There are presented the received<br />

results of the work of the both algorithms on the same input data. The presented<br />

modification can be used for detailed distribution of samples in clusters.<br />

Key words: pattern recognitions, self-organizing mode, clusters.<br />

ВЪРХУ ЕДНА МОДИФИКАЦИЯ НА ИТЕРАТИВНИЯ<br />

САМООРГАНИЗИРАЩ СЕ МЕТОД ЗА АНАЛИЗ НА ДАННИ<br />

1. Въведение<br />

Човек може да разпознае сред тълпата свой приятел, символите в думите, да<br />

различи цветовете, да различи любима песен. Нашите сетива улавят сигнали -<br />

светлинни или звукови и след това ги модулират и съхраняват в нашата памет във вид<br />

на прости обекти. След което чрез тези прости обекти може да се възстанови<br />

приблизително запаметения сигнал или събитие. Животните и птиците, също като<br />

хората, могат да различат себеподобните си, храната си. Този процес на възприемане и<br />

познание, се нарича разпознаване. Класификацията (групирането) на изходните данни<br />

към определен клас, чрез определяне на съществени признаци или свойства<br />

характеризиращи тези данни измежду останалите несъществени детайли. Под<br />

понятието образ обикновено се разбира модел, начин, стил закономерност, начин на<br />

действие. Основната цел на въвеждането на понятието е използуването му в процеса на<br />

установяване на съответствия, т.е при доказването на идентичността, аналогията, подобието и<br />

сходството на обектите по пътя на сравнението (съпоставянето). [1].<br />

2. Терминология<br />

Основната задача на разпознаването на образи се състои в построяването на<br />

ефективни процедури на базата на систематични, теоретични и експериментални<br />

изследвания за класифициране на формализирани описания и обекти в съответстващите<br />

им класове [2]. При разпознаването на образите се използват два основни процеса –<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 122 -<br />

идентификация и класификация на обектите. При първия процес обектите се<br />

разпределят по отделни уникални класове, а при втория – се извършва разпределянето<br />

на обектите по класове в зависимост от техните прилики и свойства (това е същинското<br />

разпознаване). Класификацията се реализира по два начина или чрез обучение с учител<br />

или чрез самообучение (нарича се още обучение без учител). Една система се обучава<br />

(training), когато в резултат на изпълнението на опити е настъпило изменение във<br />

вътрешната й структура, е довело до промяна в поведението й като цяло [3]. При<br />

самоорганизиращите методи за класификация, процесът на групиране на векторобразите<br />

в класове се нарича кластеризация От това наименование произлиза<br />

наименованието клъстер, под което се разбира група от обекти (образи), образуващи в<br />

пространството компактна област с център на определено разстояние от центровете на<br />

останалите области. Система (устройство), която служи за различаване на процеси,<br />

явления, обекти и т.н. се нарича разпознаваща система (устройство). Когато на входа на<br />

такава система попадне нов образ, е необходимо тя да вземе решение за<br />

принадлежността му към определен клас (клъстер). Образът се отнася към този клас, за<br />

който разстоянието (най-често евклидовото разстояние) между неговия център и<br />

разглеждания образ е минимално. Центърът, e един или няколко идеализирани<br />

представители (еталони, прототипи), които могат да се разглеждат като представители<br />

на всеки клас.<br />

3. Итеративен СамоОрганизиращ се Метод за Анализ на Данни.<br />

Кластеризацията е мощен инструмент в съвременната обработка на<br />

изображения. Така например тя се прилага за изработването на топографски карти на<br />

земната повърхност, базирани на снимки от спътници; при анализ на фотографски<br />

изображения; при разработване на мултиспектрални анализи за химични изследвания и<br />

т.н. Алгоритми от този тип се прилагат върху оскъдни или трудно получени данни.<br />

Един от алгоритмите за кластеризация (a clustering algorithm) е Итеративния<br />

СамоОрганизирац се Метод за Анализ на Данни – ИСОМАД (Iterative Self Organizing<br />

Data Analysis Techniques Algorithm – ISODATA). Той е предложен от Бел и Хол през<br />

1965 г., с цел за дадено множество от N образа (точки) в n-мерното пространство, да се<br />

намерят K на брой центрове на клъстери с помощта на набор предварително<br />

дефинирани евристични характеристики. При този алгоритъм се изпълняват процедури<br />

за намиране на най-подходящите центрове на клъстерите, чрез итеративни<br />

приближения, докато не бъдат удовлетворени предварително зададените критерии..<br />

ИСОМАД от своя страна е достатъчно гъвкав и позволява при необходимост<br />

параметрите на критериите да бъдат коригирани, с цел увеличаване на прецизността<br />

при изпълнение.<br />

Тези параметри са:<br />

• N – параметър определящ броя на входните образи;<br />

• K – параметър определящ очаквания брой клъстери;<br />

• I – параметър определящ максималния брой итерации;<br />

• L – параметър определящ максималния брой двойки центрове, които<br />

могат да бъдат обединени (lumping)<br />

• θN – параметър определящ минималния брой елементи влизащи във всеки<br />

клъстер (използва се за ликвидиране на ненужните клъстери);


- 123 -<br />

• θS – параметър определящ максималното стандартно отклонение за всеки<br />

клъстер (използва се в операцията разцепване);<br />

• θC – параметър определящ минималното разстояние между два центъра на<br />

клъстери, т.е. това е параметър характеризиращ компактността (използва<br />

се в операцията сливане).<br />

Алгоритъмът ИСОМАД се състои от следните стъпки (подробно описание може<br />

да се намери в [3]):<br />

(Стъпка 1) Задават се центровете на клъстерите. (Стъпка 2) Разпределят се образите по<br />

клъстери. (Стъпка 3) Премахват се онези клъстери, чиито брой образи, влизащи в тях е<br />

по-малък от предварително зададен параметър. (Стъпка 4) Всички центрове на<br />

останалите клъстери се локализират и коригират. (Стъпка 5) Изчислява се средното<br />

разстояние между образите във всеки клъстер и съответният им център. (Стъпка 6)<br />

Пресмята се обобщеното средно разстояние. (Стъпка 7) Изпълнението на алгоритъма<br />

продължава с операциите сливане или разцепване на клъстери. В зависимост от<br />

получения и очаквания брой клъстери, както и от номера на текущата итерация и<br />

максималния брой итерации се определя дали алгоритъмът да премине към изпълнение<br />

на следващата стъпка, или да прескочи няколко стъпки. (Стъпка 8) За всеки клъстер се<br />

изчислява стандартното отклонение на образите, влизащи в него по всяка от<br />

координатните оси. (Стъпка 9) Намира се максималното средноквадратично<br />

отклонение. (Стъпка 10) Използвайки тази информация заедно с параметрите за<br />

максимално стандартно отклонение и текущия брой клъстери, се извършва разцепване<br />

на клъстера с максималното стандартно отклонение. Ако е извършено разцепване,<br />

алгоритъмът преминава към Стъпка 2. В противен случай, параметрите L и θC се<br />

използват за осъществяване на операцията сливане на двойки клъстери (Стъпки 11 -<br />

13). На последния етап (Стъпка 14) се определя дали алгоритъмът ще приключи, или<br />

ще бъде увеличен номера на текущия цикъл на итерацията с единица и ще се премине<br />

към стъпка 1 или 2.<br />

4. Нашата модификация<br />

Предимствата на алгоритъма ИСОМАД се дължат на способността му да<br />

отстранява клъстерите с малък брой елементи, да разцепва онези от тях, които имат<br />

несъвместими свойства и да обединява други, които притежават сходни такива.<br />

Изходните резултати обаче зависят изцяло от входните параметри N, K, I, L, θN, θS, θC.<br />

Освен това този алгоритъм е неприложим при голям набор от клъстери и се прилага<br />

само върху образи разположени линейно в хиперпространството.<br />

В резултат на много тестове достигнахме до извода, че разпределянето на<br />

образите по клъстери при класическия алгоритъм ИСОМАД, може да бъде подобрено.<br />

Ако разгледаме внимателно алгоритъма установяваме, че в 7 и 10 се съдържат еднакви<br />

условия за проверка, които се отнасят до това дали текущия брой на клъстерите (NC), е<br />

два пъти по-малък от очаквания, т.е. NC ≤ K / 2.<br />

Ще илюстрираме само тези две стъпки от алгоритъма [3]:<br />

Стъпка 7: Ако текущата итерация е последна, то параметърът определящ<br />

минималното разстояние между два клъстера θC = 0 и следва стъпка 11.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 124 -<br />

Ако текущия брой на клъстерите е по-малък от половината от очаквания брой,<br />

т.е. NC ≤ K / 2 (много малко клъстери), се преминава към стъпка 8.<br />

Ако текущата итерация има четен пореден номер или броя на получените<br />

клъстери е по-голям от удвоената стойност на очаквания брой, т.е. NC > 2K<br />

(твърде много клъстери), се преминава към стъпка 11.<br />

В противен случай изпълнението на алгоритъма се преустановява.<br />

Стъпка 10: Ако за някое максимално средно-квадратично отклонение<br />

( j 1,..., N )<br />

σ = на j-тия клъстер са изпълнени условията σ j > θS<br />

, т.е.<br />

jmax c<br />

максималното средно-квадратично отклонение е строго по-голямо от<br />

максималното стандартно отклонение за j-тия клъстер и<br />

а) средната стойност на разстоянията D j между обектите е строго по-голямо от<br />

обобщеното средно разстояние D , т.е. D j > D , и текущият брой на обектите<br />

попадащи в j-тия клъстер Nj е строго по-голям от 2( 1)<br />

N<br />

max<br />

θ + , където θN е<br />

минималния брой образи, които могат да принадлежат на един клъстер, т.е.<br />

( 1)<br />

N j > 2 θ N + ;<br />

или<br />

б) получения общ брой на клъстерите NС е по-малък от NC ≤ K 2,<br />

то клъстерът<br />

с център zj се разцепва на два нови клъстера с центрове zj + и zj – , като съответно<br />

се добавя и изважда зададена константна величина γj към максималната<br />

компонента на вектора σ j . За стойност на γj може да се вземе максималната<br />

max<br />

средно квадратична компонента, т.е. γ = σ , 0 < k < 1.<br />

j<br />

k jmax<br />

Препоръчителна стойност за k е 0,5, тъй като стойността на γj трябва да бъде<br />

достатъчно голяма, за да се отличават разликите в разстоянията между образа и<br />

двата нови центъра, и същевременно да бъде достатъчно малка, за да не<br />

настъпят промени в общата структура на процеса на клъстеризация. След което<br />

се изтрива стария център zj и NC се увеличава с 1.<br />

Ако разцепването е извършено на тази стъпка се преминава към Стъпка 2.<br />

В противен случай се изпълнява следващата стъпка.


- 125 -<br />

Фиг. 1. Схематично представяне на стъпки 7 и 9 от ИСОМАД.<br />

Стъпка 7 е стъпка на разклонение в алгоритъма, при която има три<br />

възможности: едната е да се премине към разцепване на клъстери; другата – към<br />

сливането им; третата – към безусловен изход от алгоритъма.<br />

Модификация на алгоритъма се състои в промяната на условията в Стъпка 7 и в<br />

Стъпка 10. На местата в алгоритъма, в които се проверява дали текущия брой на<br />

клъстерите NC е достигнал половината от очаквания резултат от потребителя, т.е.<br />

NC≤ K 2 , да бъде заменено с условието: NC≤ K .<br />

С тази промяна се запазва цялостната концепция на алгоритъма, т.е. получената<br />

модификация може да се прилага в процеса на идентификацията. С тази промяна се<br />

цели да се постигне по-детайлно разпределяне на образите с общи свойства по класове,<br />

което при първоначалния вариант на алгоритъма се достига трудно, тъй като ИСОМАД<br />

зависи изцяло от входните параметри, които имат евристичен характер. Не винаги е<br />

лесно определянето на броя на класовете (клъстерите), на които може да се разделят<br />

образите от едно изображение 1 . От ограничителните условия се вижда, че преди да<br />

бъдат променени, броят на очакваните клъстери няма да бъде достигнат, защото<br />

алгоритъмът ще спре своето изпълнение след като са получени половината клъстери. В<br />

1 Изображение – обект подложен на процеса разпознаване.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 126 -<br />

този случай, за да бъдат установени класовете на разпределение на образите, експертът<br />

ще трябва да въведе два пъти повече, от този които смята че има.<br />

5. Експериментални резултати<br />

Всички експерименти са проведени с помощта на специално разработен софтуер<br />

с графичен потребителски интерфейс, работещ под ОС Widows 98, NT, XP, за<br />

компилирането на продукта е използван компилатор на Borland. Последователността на<br />

стъпките на двата алгоритъма са програмирани на ниско ниво. Въвеждането на<br />

образите става посредством кликане на мишката върху координатната система или от<br />

клавиатурата, като нагледно се визуализират върху координатна система. След<br />

изпълнението на който и да е от двата алгоритъма, върху координатната система<br />

точките се разпределят по клъстери, като всеки клъстер формира единен обект. Тъй<br />

като целта на тази статия е да представи предложената модификация, то за тестване на<br />

ИСОМАД и на неговата модификация, тук ще разгледаме само опростени схеми от<br />

образи в Таблица 1 са представени малка част от използваните модели, както и<br />

резултата от изпълнението на двата алгоритъма.<br />

Таблица 1. Таблица на част от опитите с ИСОМАД и предложената модификация.<br />

Задачата за разпознаване на образи се състои в построяването на ефективни<br />

изчислителни средства на базата на систематични теоретични и експериментални<br />

изследвания за класифициране на формализирани описания и обекти в<br />

съответствуващите им класове [4]. Както може да се види от таблицата, след<br />

прилагането на ИСОМАД и на предложената модификация върху едни и същи входни<br />

данни, резултатът (броя на получените клъстери) е различен. При първия алгоритъм<br />

броя на получените клъстери след провеждането на всички опити рядко надвишава<br />

половината от очаквания броя клъстери, и ако това стане то не е с повече от 1. От тук<br />

може да заключим, че за да получим желания брой от клъстери за съответната схема,<br />

трябва да въведем стойност, която да я надвишава, като трябва да се вземе предвид, че<br />

входните данни зависят от познанията на експерта, който ги въвежда.


- 127 -<br />

При предложената модификация, както се вижда от Таблица 1, сме задали<br />

приблизителна стойност за очаквания брой на клъстерите. След изпълнение на<br />

модифицирания алгоритъм, обаче получаваме максимално количество клъстери,<br />

надвишаващо предварително зададеното, които реално съществуват на съответната<br />

схема. Неудобството тук е, че е необходимо повече време за изпълнение.<br />

На Фиг. 2 е представена съпоставката между очаквания брой на клъстерите и<br />

получения при двата алгоритъма съгласно схемите от Таблица 1.<br />

Фиг. 2. Диаграма на очаквания и получения брой клъстери.<br />

6. Заключение<br />

В тази статия е разгледана модификация на самоорганизиращия се метод за<br />

анализ на данни (ИСОМАД), получен след промяна в две от ограничителните му<br />

условия. Представени са част от направените опити за изследване на поведението на<br />

двата алгоритъма при еднакви входни параметри. Изводът, който може да се направи<br />

след проведените експерименти, е че въведените промени доведждат до по-детайлно<br />

разпределяне на образите по клъстери.<br />

ЛИТЕРАТУРА<br />

1. M. Todorova, D. Birov. „The Recognition as an Approach in the Learning of <strong>Computer</strong><br />

Science”, Proceeding of the Thirty Fifth Spring Conference of the Union of Bulgaria<br />

Mathematicians Borovets, April 5-8 2006, p. 449-454<br />

2. Ю. И. Журавлев, И. Б. Гупенич. „Разпознавание, классификация, прогноз.<br />

Математичекие методы и примение”, Вып. 2, Москва, Наука, 1982, 302 с.<br />

3. C. L. Looney. “Pattern Recognition Using Neural Networks – Theory and Algorithms for<br />

Engineers and Scientists”, Oxford University Press, New York, 1997, p 40-47.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 128 -<br />

4. М.Todorova, N.Siniagina, Interrelation of Teaching of the Pattern Recognition and<br />

Discrete Mathematics, 7-th International Conference on Discrete Mathematics and<br />

Applications, Proceedings of the Seventh International Conference, Vol. 7, стр.157 – 164,<br />

2005,<br />

Department of Informatics<br />

South-West University "Neofit Rilsky" - Blagoevgrad<br />

66, Ivan Mihailov Str.<br />

2700 Blagoevgrad<br />

BULGARIA<br />

E-mail: rady_kraleva@hotmail.com


- 129 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

THE WEB SERVICES LIKE AN INSTRUMENT OF<br />

BUILDING THE DISTRIBUTED SOFTWARE SYSTEMS<br />

VELIN KRALEV<br />

Abstract. In this article are described the web services like an instrument of building the<br />

distributed software systems. There are presented the common technology related with<br />

them - XML, WSDL, SOAP and UDDI. Two web services are suggested for personal<br />

number checking and other for giving information about the populated places in the<br />

Republic of Bulgaria. Software applications using the previous described web services<br />

are presented.<br />

Key words: web service, distributed software system, xml, wsdl, soap.<br />

УЕБ УСЛУГИТЕ КАТО СРЕДСТВО ЗА ИЗГРАЖДАНЕ<br />

НА РАЗПРЕДЕЛЕНИ СОФТУЕРНИ СИСТЕМИ<br />

1. Въведение<br />

Уеб услугите (web services) свързват различни софтуерни програми, които се<br />

изпълняват на отдалечени точки от земното кълбо. Те правят възможно пренасянето на<br />

огромни количества данни, като чрез тях се постига по-бърза и по-продуктивна<br />

комуникация, както между фирми, така и между отделни потребители. Текстовобазираното<br />

виртуално пространство не поддържа добре взаимодействията между<br />

софтуерните приложения. Необходим е по-ефикасен метод, който позволява на<br />

софтуерните приложения да взаимодействат директно едно с друго, без да бъде<br />

необходима намесата на потребител. Тези приложения трябва да могат да откриват, да<br />

осъществят достъп и автоматизирано да взаимодействат с други приложения. Уеб<br />

услугите подобряват използването на Интернет, като позволяват комуникация между<br />

софтуерни приложения, които могат да се свързват директно и да се интегрират като<br />

части от една голяма софтуерна система [1].<br />

Уеб услугите позволяват на софтуерни компании и потребители да предоставят<br />

свои услуги (или приложения) по стандартен начин за всички клиенти. Те могат да<br />

бъдат реализирани на различни платформи и до тях може да се осъществява достъп от<br />

произволно място в света [2].<br />

Това е бързо налагаща се технология, която има потенциала да промени начина,<br />

по който работи Интернет за бизнес цели. Използването на уеб страници за въвеждане<br />

на данни от страна на клиенти (отделни лица, наричани също B2C – business-tocustomers,<br />

приложения) е добро, но не и за компании (наричани B2B – business-tobusiness,<br />

приложения) [3].<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 130 -<br />

Интернет все още е смесица от трудно работещи заедно технологии. Далеч подобре<br />

би било, ако услугите получени по Интернет, можеха да работят заедно, като<br />

така подобряват продуктивността и опита на крайния потребител. Чрез уеб услугите<br />

много софтуерни компании и разработчици твърдят, че ще направят "революция" в<br />

начина, по който разработчиците създават приложения, а също така и начина на<br />

придобиване и използване на тези приложения. Уеб услугите предоставят достъп до<br />

услуги и данни отвсякъде и по всяко време. Три елемента се съдържат в идеята<br />

"навсякъде, по всяко време". Първо, необходимо е да има постоянен достъп до<br />

Интернет. Второ, необходимо е уеб услугите да предоставят функционалност чрез<br />

Интернет. И трето, уеб услугите могат да имат за обект всяко устройство, проектирано<br />

да работи с уеб услуги (персонален компютър, джобен компютър или мобилен<br />

телефон).<br />

Чрез уеб услугите, разработчиците на софтуер могат да изграждат своите<br />

приложения, като използват вече съществуваща функционалност. Това позволява<br />

съсредоточаване върху самото бизнес решение (софтуерния продукт, който се<br />

разработва) и не толкова върху инструментите за неговото създаване. Организациите<br />

използващи автоматизирани софтуерни системи, който не могат да комуникират<br />

помежду си, могат да използват уеб услуги, като чрез тях осигурят съвместимост<br />

между различни приложения. По този начин "закритият" вид на системите може да се<br />

запази, а тяхната функционалност да бъде "открита". Други системи могат да използват<br />

тази функционалност, позволявайки с това на организациите да изградят цялостно<br />

бизнес решение.<br />

Като обобщение за уеб услугите може да се каже, че са дискретни,<br />

самостоятелни и универсални приложения, които предоставят своята функционалност<br />

чрез уеб интерфейс. Като под уеб интерфейс не се разбира уеб страница, а приложение,<br />

което комуникира с останалата част от света чрез дистанционно извикване на<br />

процедури (Remote Procedure Calls – RPC) [2].<br />

2. Технологии и термини свързани с уеб услугите<br />

Програмите, които взаимодействат една с друга във виртуалното пространство,<br />

трябва да могат да откриват информацията, която им дава възможност да се свързват,<br />

да се договорят за специфични характеристики на услугите, като сигурност и надежден<br />

обмен на съобщения. Стандартите на уеб услугите се проектират и разработват така, че<br />

да бъдат "разширяеми", т.е. каквото и да се въведе в бъдеще, да може да се използва.<br />

По този начин се появяват нови стандарти и технологии [2]. Следва кратко описание на<br />

основните термини и технологии свързани с уеб услугите.<br />

Разширяем език за маркиране – (Extensible Markup Language – XML). XML,<br />

подобно на езика за маркиране на хипертекст (Hypertext Markup Language - HTML),<br />

произлиза от стандартен обобщен език за маркиране (Standard Generalized Markup<br />

Language - SGML). Една от характеристиките на SGML е разделянето на формата от<br />

съдържанието, т.е. формата се описва независимо от съдържанието на документа. Този<br />

принцип на езиците за маркиране се използва при уеб услугите. Чрез него се разделят<br />

данните в един документ от схемата, която описва тяхната структура и техния тип.<br />

XML е основата върху, която са изградени уеб услугите. Той осигурява формата за<br />

описание, съхраняване и пренасяне на данни, обменяни чрез уеб услуги. Използва се и<br />

за създаването на технологии за уеб услуги, които обменят данни. Комуникацията<br />

между различни уеб услугите се осъществява чрез обмен на форматирани инстанции на<br />

XML документи, които пренасят данни. Те се описват, като се използват XML схеми,<br />

които дефинират различни типове от данни и структурата на самият документ.<br />

Основното предимство, което XML предлага на уеб услугите, е независимост на


- 131 -<br />

данните, т.е. типовете данни и структурите не са обвързани с основните реализации на<br />

услугите. За да се извлече полза от независимостта на данните е необходимо<br />

приложенията да преобразуват данни в XML и да трансформират данни от XML в<br />

естествения им формат.<br />

Език за описание на уеб услуги – (Web Service Description Language - WSDL).<br />

WSDL осигурява механизъм, чрез който дефинициите на уеб услугите са достъпни за<br />

външния свят. Той описва типове данни и структури за уеб услуги и как те да се<br />

съгласуват в обменяните съобщения. WSDL е дефиниран по начин даващ възможност<br />

елементите му да бъдат разработвани отделно и да могат да се комбинират при<br />

създаване на подробен WSDL файл. Типовете данни и структурите могат да бъдат<br />

споделяни между множество съобщения, както и самите дефиниции на услугите.<br />

WSDL описва интерфейсите и в рамките на даден интерфейс асоциира всяка услуга с<br />

основно приложение. За да се постигне комуникацията при уеб услугите, WSDL ги<br />

съгласува с комуникационните и транспортни протоколи. При взаимодействие на уеб<br />

услуги и двете страни споделят общ WSDL файл. Подателят използва този файл, за да<br />

генерира съобщение в съответния формат и да използва подходящия комуникационен<br />

протокол. Получателят от своя страна използва същия файл, за да разбере как да<br />

получи и анализира съобщението и как да го съгласува с основните обекти или със<br />

софтуерна програма.<br />

Протокол за достъп до обекти – (Simple Object Access Protocol – SOAP). След<br />

като е дефиниран интерфейса за уеб услуги е необходим начин за комуникация между<br />

тях с цел обмен на съобщения. SOAP дефинира общ формат за XML съобщения.<br />

Проектиран е като механизъм, който може да бъде разширен така, че да обхваща<br />

допълнителни характеристики, функции и технологии. SOAP представлява<br />

еднопосочна асинхронна технология за изпращане на съобщения, която може да бъде<br />

използвана за дистанционно извикване на процедури, документно-ориентирано<br />

публикуване и други. Този протокол е дефиниран на много ниско ниво на абстрактност<br />

и той може да бъде съгласуван с произволен брой софтуерни системи, включително<br />

приложни сървъри, системи за управление на бази от данни и пакетни приложения [1].<br />

SOAP специфицира формата на заявката и формата на нейните параметри, той е<br />

свързан само със съобщението и не налага изисквания към самите уеб услуги и техните<br />

потребители.<br />

Универсално описание, откриване и инсталиране – (Universal Description,<br />

Discovery, and Integration - UDDI). UDDI е стандарт за публичен регистър за<br />

"складиране" на информация и за публикуване на уеб услуги (http://www.uddi.org). Като<br />

примери за UDDI регистри могат да се открият в Интернет на адреси:<br />

http://www.xmethods.net и http://uddi.microsoft.com [2]. UDDI регистърът може да бъде<br />

претърсван по различни критерии за категоризиране с цел намиране на информация за<br />

фирми, предлагащи специфични услуги. Виртуалното пространство се нуждае от<br />

UDDI, за да се осигури хранилище с информация за уеб услуги, като по този начин<br />

създатели и потребители да имат възможност да се откриват взаимно. Така различни<br />

потребители ще могат да осъществяват достъп до реализации на уеб услуги навсякъде<br />

по света. [1].<br />

3. Разпределена разработка чрез уеб услуги<br />

Уеб услугите променят начина, по който е необходимо да се възприемат<br />

разпределените софтуерни системи (distributed software systems). Идеята на<br />

разпределеното изчисление е да се разделят функционалните компоненти на една<br />

софтуерна система, като с това се постига по-добро разпределение и сигурност на<br />

работното натоварване.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 132 -<br />

Дистанционното извикване на процедури (RPC) през Интернет не е нищо ново.<br />

Това, което прави уеб услугите новаторски, е идеята, че различни клиенти и различни<br />

сървъри, могат да използват такива услуги. Без значение е езика на който са<br />

реализирани, или вида и операционната система на устройствата на които се намират.<br />

Те позволяват на приложенията да споделят данни и функционалност по един<br />

универсален начин. Много модели на разпределена разработка са базирани на системи<br />

със "затворена" функционалност. Интегрирането на различни системи е все още много<br />

трудно, но нуждата от това е значителна. Като пример може да се посочи<br />

обединяването на мащабна счетоводна система с производствена система. Чрез уеб<br />

услугите, функционалните компоненти на една софтуерна система са изложени пред<br />

много потребители. Потребител, например може да бъде уеб сайт, който от своя страна<br />

използва уеб услуги, осигурени от други доставчици.<br />

Основните елементи на уеб услугите са самите услуги, клиентите, развойните<br />

инструменти и сървърите. На Фиг. 1 е представена идеята как различни приложения,<br />

сървъри и уеб услуги комуникират помежду си.<br />

мобилен<br />

телефон<br />

PDA<br />

сървър<br />

компютър<br />

уеб<br />

услуги<br />

сървър<br />

Фиг. 1. Топология на уеб услугите.<br />

компютър<br />

сървър<br />

компютър<br />

На Фиг. 1 може да се видят клиенти, които са свързани с уеб услуги, които от<br />

своя страна са свързани със сървъри. Когато един клиент се свързва с уеб услуга, за да<br />

получи данни от сървър, той се явява потребител (консуматор) на уеб услугата.<br />

Възможно е също така даден сървър да използва уеб услуга, за да получи данни от друг<br />

сървър. В този случай сървъра също се явява като консуматор на услугата. Част от<br />

услугите могат да бъдат "вътрешни", а други "външни" за информационната система на<br />

дадена организация [2].


- 133 -<br />

4. Използвани технологии и софтуерни продукти<br />

В настоящата статия ще бъдат представени реализациите на две уеб услуги,<br />

съответно за проверка на единен граждански номер (ЕГН) и втора, предоставяща<br />

информация за населените места в Р. България. Обемът на настоящата статия не е<br />

достатъчен, за да се разгледат подробни всички използвани технологии и софтуерни<br />

продукти, затова те ще бъдат само представени.<br />

За създаването на уеб услугите и примерното приложения, е използвана<br />

визуалната среда за проектиране и събитийно-ориентирано програмиране – Developer<br />

Studio 2006 на фирмата Borland. Системата за управление на релационни бази от данни<br />

– Microsoft SQL Server 2005 е използвана за съхраняване на информацията за<br />

населените места, необходима при реализацията и използването на втората уеб услуга.<br />

За създаването на динамични уеб страници и уеб услуги е използвана машината за<br />

обработка на скриптове – ASP (Active Server Pages), съвместно с уеб сървъра Internet<br />

Information Server (IIS) на фирмата Microsoft. Използваната технология е .NET, която<br />

има за цел: бързо и лесно разработване, внедряване и съвместимост на приложения [2].<br />

5. Уеб услуга за проверка валидността на единен граждански номер (ЕГН)<br />

Единният граждански номер се състои от десет цифри, като първите шест са<br />

датата на раждане, следващите три са поредност на раждането (число между 000 и 999),<br />

като деветата цифра е четна за момче и нечетна за момиче. Десетата цифра е контролна<br />

и се изчислява като цифрите от 1 до 9 се умножат съответно по теглата: 2, 4, 8, 5, 10, 9,<br />

7, 3 и 6, тяхната сума се раздели на 11 и се вземе остатъка от делението. Алгоритъмът е<br />

реализиран във функция с име check_pn (виж. Фиг. 2). Тази функция приема като<br />

параметър символен низ с дължина десет знака, съдържащ единният граждански номер,<br />

който ще бъде проверен за валидност.<br />

Фиг. 2. Функцията check_pn, реализирана на езика Object Pascal.<br />

Функцията check_pn е реализирана като метод на клас. Нейната декларация се<br />

предхожда от атрибута [WebMethod]. Този атрибут определя, че метода на уеб услугата<br />

ще бъде достъпен от външни приложения, който ще могат да го използват.<br />

6. Уеб услуга предоставяща информация за населени места в Р. България<br />

За реализацията на тази уеб услуга беше създадена база от данни "nasmesta",<br />

която притежава три таблици, съответно таблица за областите, таблица за общините и<br />

таблица за населените места. Връзката между таблиците "области" и "общини" е еднокъм-много.<br />

Връзката между таблиците "общини" и "населени места" също е едно-къммного.<br />

Функцията get_all_places е реализирана също като уеб метод (виж Фиг. 3).<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 134 -<br />

Фиг. 3. Функцията get_all_places, реализирана на езика Object Pascal.<br />

Във функцията се декларират три променливи, съответно Conn – за връзка към<br />

базата от данни, DS – за съхраняване на получените данни от сървъра в паметта и DA –<br />

за свързване между източника на данни и тези данни, които са съхранени в паметта. В<br />

защитен режим (try...except блок) се извършват операциите по създаването и<br />

настройването на обектите, след което метода Fill на обекта DataAdapter (DA), активира<br />

връзката до сървъра за бази от данни (променливата Conn) и изтегля данните от<br />

таблицата "tbl_oblasti", след което ги предоставя на обекта DataSet (DS). Функцията<br />

връща получените данни в паметта на извикващата програма, като трансформира<br />

обекта DS в XML формат.<br />

7. Използване на реализираните уеб услуги<br />

Когато се извика адреса на услугата без параметри, ASP.NET връща описанието<br />

на услугата във вида, показан на Фиг. 4А.<br />

Фиг. 4А. Методи на уеб услугата. Фиг. 4Б. Описание на уеб услугата.


- 135 -<br />

Показани са имената на методите, достъпни от потребителя на уеб услугата.<br />

Също така е визуализирана описателна информация за всеки един от показаните<br />

методи. Когато потребителя избере препратката "Service Description" (описание на<br />

услугата), се показва страницата представена на Фиг. 4Б. На нея се вижда описанието<br />

на услугата в XML формат, познато като WSDL код на услугата (виж т.2). Това<br />

описание се използва от инструменти, които могат автоматично да генерират класове,<br />

скриващи специфичните параметри по извикването на уеб услугата. Тези класове се<br />

наричат прокси класове. Предложените методи на Фиг. 4А, могат да бъдат тествани,<br />

като се избере някой от тях (например check_egn), след което от страницата показана на<br />

Фиг. 5А се въведе стойност за ЕГН в текстовото поле и се натисне бутона Invoke.<br />

Резултата от изпълнението е показан на Фиг. 5Б.<br />

Фиг. 5А. Тестване на уеб услугата. Фиг. 5Б. Резултат от тестване.<br />

Всяко приложение, което ще използва дадена уеб услуга е необходимо да<br />

изпълни три стъпки за това: Първо, откриване на уеб услугата (това е процеса по<br />

получаване на информация за уеб услугата, т.е. необходимо е да се открият достъпните<br />

методи, свойства, типове, параметри и т.н. WSDL документа (виж Фиг. 4Б) трябва да<br />

бъде разгледан за всяка уеб услуга, която ще се извиква, защото чрез този документ,<br />

уеб услугите описват себе си на приложенията, които ще ги използват. Второ,<br />

създаване на прокси клас, реализиран като междинен слой, между HTTP SOAP заявката<br />

към уеб сървъра и кодът, който се пише за отправяне на тази заявка. Трето, използване<br />

на прокси класа, за извикване на методи на уеб услугата. Прокси класът изпълнява<br />

ролята на обект заместител на уеб услугата и декларира методи, които могат да бъдат<br />

извиквани от консумиращото приложение, което пък от своя страна извиква методи на<br />

уеб услугата. Дефинират се два начина за извикване на методи на уеб услугата. Може<br />

да се направи синхронно или асинхронно извикване на методи. Синхронните методи<br />

имат същите имена като тези предоставяни от уеб услугата, например check_pn().<br />

Асинхронното извикване на методи изисква два метода за всеки метод на уеб услугата.<br />

Дефинират се чрез използването на следния формат: Begincheck_pn и Endcheck_pn.<br />

На Фиг. 6 е представено примерно приложение, което използва уеб услуги, за да<br />

визуализира на потребителя исканата от него информация. Когато се избере област от<br />

секцията "Списък на областите", се извиква метода get_obstini на уеб услугата, който<br />

изисква да му бъде предаден параметър от символен низ, съдържащ името на избраната<br />

област. Този метод се обръща към сървъра за бази от данни и извлича списък на<br />

общините към избраната област. Този списък чрез генерирания прокси клас се предава<br />

на списъчния контрол за визуализиране. По аналогичен начин протича процеса при<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 136 -<br />

избор на община и съответно визуализиране на списъка с населени места в секцията<br />

"Списък на населените места".<br />

Фиг. 6. Сесия на работа с приложение, използващо уеб услуги.<br />

4. Заключение<br />

В заключение ще отбележим, че когато софтуерните системи се разработват като<br />

съвкупност от различни уеб услуги, може да се извлече полза от използването на тези<br />

уеб услуги и за други цели. Както идеята на обектно-ориентираното програмиране е, да<br />

се създават компоненти, които други разработчици да могат да използват, като ги<br />

свързват в своя изходен код, по подобен начин уеб услугите издигат тази идея на ново<br />

ниво, като предоставят възможност да бъде използвана тяхната функционалност,<br />

осигурена чрез общ интерфейс. Когато се използват повторно вътрешни и външни<br />

услуги, продуктивността на разработването на софтуерни продукти се увеличава<br />

значително.<br />

ЛИТЕРАТУРА<br />

1. E. Newcomer. Understanding Web Services: XML, WSDL, SOAP and UDDI, Addison<br />

Wesley Professional, 2002.<br />

2. X. Pacheco. Delphi for .NET Developer's Guide, Sams, 2004.<br />

3. M. Cantu. Mastering Delphi 6, Sybex, 2001.<br />

Department of Informatics<br />

South-West University "Neofit Rilsky" – Blagoevgrad<br />

66, Ivan Mihailov Str.<br />

2700 Blagoevgrad<br />

BULGARIA<br />

E-mail: velin_kralev@abv.bg


- 137 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

ALGORITHM FOR PROPAGATION TO BASE<br />

CONJUNCTIONS FOR THE 2P-METHOD FOR QUERY<br />

PROCESSING IN DEDUCTIVE DATABASE SYSTEMS<br />

VELKO ILTCHEV<br />

Abstract. An algorithm for propagation to base conjunctions has been proposed. The<br />

appropriate data structures for holding the original and the propagated rule sets have also<br />

been described. The algorithm finds an implementation in the 2P-Method for query<br />

processing in deductive database systems, developed by the author of this paper.<br />

Key words: deductive databases, query processing, algorithms.<br />

АЛГОРИТЪМ ЗА ТРАНСЛАЦИЯ ДО БАЗОВИ КОНЮНКЦИИ<br />

ЗА 2P-МЕТОД ЗА ОБРАБОТКА НА ЗАПИТВАНИЯ<br />

В ДЕДУКТИВНИ БАЗИ ДАННИ<br />

1. Въведение<br />

Една дедуктивна система за бази данни дава възможност за дефиниране на<br />

система от правила, с чиято помощ да бъде извличана допълнителна информация от<br />

фактите, съхранявани в конвенционална база дани. За дефиниране на системата от<br />

правила се използва език за логическо програмиране (със синтаксис, подобен на езика<br />

ProLog). Дедуктивен механизъм, вграден в системата и наричан още инферентна<br />

машина, интерпретира системата от правила, като по този начин извлича нови факти от<br />

базата данни.<br />

Обикновено в практиката, фактите се съхраняват в релационна база данни.<br />

Инферентната машина се явява надстройка над тази релационна база данни. Въз основа<br />

на зададените правила тя изпраща запитвания към релационната база данни,<br />

интерпретира отговорите и при необходимост ги използва за формиране на нови<br />

запитвания. За формирането на тези запитвания се използват стандартни декларативни<br />

езици за програмиране, като например SQL. От тази гледна точка инферентната<br />

машина може да бъде разглеждана като езиков процесор, транслиращ системата от<br />

правила (описани на език за логическо програмиране, като напр. ProLog) в запитвания<br />

към релационната база данни (описани на декларативен език като напр. SQL).<br />

Методите за обработка на запитвания в дедуктивни бази данни могат да бъдат<br />

класифицирани в две групи, в зависимост от посоката на движение на инферентния<br />

процес (от фактите към запитването или обратно):<br />

- низходящи методи - при тях инферентната машина тръгва предиката, свързан<br />

със запитването, и се опитва, посредством субституция на аргументите му, да намери<br />

валидни факти в базата данни. При този подход не се генерират излишни факти, както<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 138 -<br />

това става при възходящите методи. Недостатък на низходящите методи е, че в общия<br />

случай те извличат информацията от базата данни запис-по-запис. Затова те не могат да<br />

използват ефективно мощните множествени операции от релационната алгебра като:<br />

селекция, проекция, join и др.<br />

- възходящи методи - при тях инферентната машина тръгва от фактите, като<br />

прилага правилата за да генерира нови факти. След като фактите бъдат генерирани, те<br />

се сравняват с главата на правилата, свързани със запитването. Този подход позволява<br />

да бъдат използвани ефективно множествените операции: селекция, проекция, join и<br />

др., което прави инферентния процес множествено-ориентиран. Недостатък на<br />

въззходящите методи е, че отначало се генерират всички факти, голяма част от които<br />

не съответстват на подаденото запитване. Това е неефективно при големи бази данни.<br />

За целта трябва да се търси стратегия за генериране само на фактите, отговарящи на<br />

подаденото запитване.<br />

Статията предлага една такава стратегия, разработена от автора и наречена от<br />

него 2P-метод, както и алгоритъм за транслация до базови конюнкции за този метод.<br />

2. Терминология<br />

Съгласно дефинициите, дадени в [2]:<br />

- extensional database - е крайно множество от положителни факти. На практика<br />

тези факти обикновено се съхраняват в таблици на релационна база данни. Терминът<br />

extensional database ще бъде превеждан оттук-нататък като външна база данни и ще<br />

бъде съкращаван като EDB.<br />

- intensional database - е крайно множество от породени релации, дефинирани<br />

посредством множество от правила. Терминът intensional database ще бъде превеждан<br />

оттук-нататък като вътрешна база данни и ще бъде съкращаван като IDB.<br />

- database predicate - той съответства на релационна таблица от външната база<br />

данни, при което аргументите му съответстват на атрибутите на тази релационна<br />

таблица. Терминът database predicate ще бъде превеждан оттук-нататък като предикат<br />

от базата данни и ще бъде съкращаван като dbp.<br />

- rule-defined predicate - това е предикат, дефиниран посредством правило. Той<br />

се състои от глава, която представлява един единствен позитивен литерал, и тяло, което<br />

е поредица от dbp и rdp предикати, разделени със запетаи. Главата и тялото са<br />

разделени посредством :- . Терминът rule-defined predicate ще бъде превеждан оттукнататък<br />

или като дефиниран посредством правило предикат, или за по-кратко като<br />

правило, и ще бъде съкращаван като rdp.<br />

- base conjunction - това е множество от dbp предикати в опашката на правило.<br />

Терминът base conjunction ще бъде превеждан оттук-нататък като базова конюнкция и<br />

ще бъде съкращаван като bc.<br />

Алгоритъм за транслация на базови конюнкции в изрази от релационната<br />

алгебра е даден в [5]. За описанието му ще бъде използвана следната IDB:<br />

rdp1(X, Y, Z) :- dbp5(X, T), rdp3(R, Y), dbp4(Z, R, T), rdp4(Y, T, Z).<br />

rdp1(X, Y, Z) :- dbp1(X, Z, X, Q), rdp2(Q, Y).<br />

rdp2(X, Y) :- dbp3(Y, _, X).<br />

rdp3(X, Y) :- dbp1(X, c, Y, _).<br />

rdp3(X, Y) :- rdp2(Y, Q), dbp2(Q, _, X).<br />

rdp4(X, Y, Z) :- dbp2(X, Z, R), dbp3(Y, R, _).<br />

Очевидно, тялото на rdp4 представлява базова конюнкция. За да бъде то<br />

обработено, трябва да бъдат приложени следните операции от релационната алгебра:<br />

- join между релационните таблици, кореспондиращи на dbp2 и dbp3, по атрибут<br />

номер 3 от dbp2 и атрибут номер 2 от dbp3. Причината е, че и двата аргумента са<br />

означени с едно и също име - R.


- 139 -<br />

- проекция на първите два атрибута на dbp2 и на първия атрибут на dbp3;<br />

- селекция, единствено при положение, че съществува аргумент, свързан с<br />

константа, в главата на правилото или в неговото тяло.<br />

Съгласно с казаното дотук, релационният израз за rdp4 е:<br />

π (dbp2 dbp3)<br />

1,4,2<br />

3=2<br />

При това положение запитването:<br />

:- rdp4(c, b, Z).<br />

предизвикващо следното свързване на константи към агрументи:<br />

rdp4(c, b, Z) :- dbp2(c, Z, R), dbp3(b, R, _).<br />

ще бъде транслирано в:<br />

Съгласно дефинициите, дадени в [1], един аргумент е свързан (bound), ако той<br />

получава ограничен набор от стойности. Това може да стане ако е изпълнено едно от<br />

следните три условия:<br />

- аргументът е константа;<br />

- аргументът е свързан вследствие на разпространението на свързването от<br />

главата към тялото на дадено правило;<br />

- аргументът участва в dbp, който има поне един свързан аргумент.<br />

Съгласно последното условие, един dbp е определен, ако притежава поне един<br />

свързан аргумент.<br />

Допълнителни дефиниции, дадени в [1]:<br />

- adornment (свързване) за даден предикат p с n на брой аргументи, представлява<br />

стринг a с дължина n от азбуката {b,f}, където b е съкращение от bound (свързан), а f е<br />

съкращение от free (свободен). Редът на аргументите е фиксиран. Начинът на записване<br />

е p a π c,b,2 (( σ 1=c<br />

dbp2) 3=2(<br />

σ 1=b dbp3) )<br />

.<br />

- sideways information passing (sip), което ще бъде превеждано като хоризонтално<br />

разпространение на информацията, описва как свързването на аргументите се предава<br />

от главата на правилото към тялото му или към други правила. Неформално<br />

погледнато, SIP-графът за дадено правило или програма дава последователността, в<br />

която трябва да бъдат пресметнати предикатите от тялото на правилото.<br />

Нека имаме рекурсивното правило:<br />

rdp1(X, Y) :- dbp1(X1, X), rdp1(X1, Y1), dbp1(Y1, Y).<br />

и запитването:<br />

:- rdp1(v, Y).<br />

Тогава SIP-графът, със съответното свързване е:<br />

rdp1 bf (X, Y) :- dbp1(X1, X), rdp1 bf (X1, Y1), dbp1(Y1, Y).<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 140 -<br />

Очевидно, аргументът X1 на предиката rdp1 в тялото на правилото е свързан,<br />

защото:<br />

- аргументът X на левия dbp1 е свързан с константа, вследствие на<br />

разпространението на свързването от главата на предиката към тялото му;<br />

- следователно левият dbp1 е определен, защото е предикат от базата данни и<br />

има един свързан аргумент;<br />

- следователно другият аргумент X1 на dbp1 също е свързан, защото участва в<br />

предикат от базата данни с поне един свързан аргумент;<br />

- следователно аргументът X1 на rdp1 също е свързан, вследствие на<br />

разпространението на свързването от dbp1.<br />

Аргументът Y1 на rdp1 е свободен, защото за него не е изпълнено нито едно от<br />

условията, упоменати по-горе.<br />

В такива случаи (рекурсивен предикат със свободни аргументи) предлагам да се<br />

генерира множество от записи, за този рекурсивен предикат, със свързани аргументи,<br />

заменени със стойности от ограничения набор от стойности и със свободни аргументи,<br />

заменети с NULL. Всеки един от тези записи ще бъде наричат оттук нататък заявка<br />

(request) и ще бъде записван във временната таблица на предиката, с цел - бъдеща<br />

обработка.<br />

3. 2P-Метод за обработка на запитвания<br />

Това е нов, стратифициран, възходящ метод. Наименувал съм го по този начин,<br />

тъй като процесът на дедукция преминава през две фази: фаза на разпъване и фаза на<br />

свиване. На всяка стъпка на итерацията, през всяка една от тези две фази, се изчислява<br />

диференциал, който представлява множество от нови факти и евентуално нови заявки.<br />

Този диференциал се записва във временната таблица на предиката, с цел - бъдещо<br />

използване. Алгоритмите за изчисляване на двата диференциала са различни, за всяка<br />

една от двете фази.<br />

Диференциалът от фазата на разпъване е резултат от хоризонталното<br />

разпространение на информацията от заявките, генерирани на предходната стъпка на<br />

итерацията. Той е обединение на две множества:<br />

- множество от факти, генерирани посредством транслация до базови<br />

конюнкции. Един възможен способ за генериране на тези факти е чрез пренаписване на<br />

рекурсивните правила, заменяйки предикатите, дефинирани посредством правило, с<br />

базови конюнкции. Друг способ, предложен в [4], е посредством итерация през графа<br />

на зависимостите, тръгвайки от базовите конюнкции и движейки се в посока към<br />

предиката, свързан със запитването;<br />

- множество от нови заявки, генерирано посредством SIP, при което свързаните<br />

аргументи идват от базова конюнкция, съставена само от определените предикати в<br />

тялото на правилото. Тази конюнкция ще бъде наричана оттук нататък определена част<br />

от конюнкцията (Distinguished Part of Conjunction (DPC)). Свободните аргументи се<br />

заменят с NULL.<br />

Така SQL-заявката, генерираща поредния диференциал от фазата на разпъване е:<br />

SELECT DISTINCT <br />

FROM BaseConjunction BC<br />

WHERE BC. IN<br />

(<br />

SELECT <br />

FROM expD CurrentExpandStep-1<br />

WHERE IS NULL


- 141 -<br />

)<br />

AND <br />

UNION<br />

SELECT DISTINCT ,<br />

= NULL<br />

FROM DistinguishedPartOfConjunction DPC<br />

WHERE DPC. IN<br />

(<br />

SELECT <br />

FROM expD CurrentExpandStep-1<br />

WHERE IS NULL<br />

)<br />

AND <br />

Фазата на разпъване продължава, докато за поредния диференциал не се получи<br />

празно множество, или да е равен на предходния.<br />

Диференциалът от фазата на разпъване ще бъде означаван оттук нататък с<br />

expD StepNo , където StepNo е номера на поредната стъпка на итерацията.<br />

Диференциалът от фазата на свиване изчислява посредством заместване на<br />

срещанията на рекурсивните предикати в телата на правилата, с фактите, генерирани<br />

през време на фазата на разпъване. По този начин, цялото тяло на съответното правило<br />

се превръща в базова конюнкция, която генерира нови факти. Нарекъл съм това<br />

действие обратно заместване (reverse substitution).<br />

Така SQL-заявката, генерираща поредния диференциал от фазата на свиване е:<br />

SELECT DISTINCT <br />

FROM expD MaxExpSteps-CurrentShrinkStep ED, BaseConjunction BC<br />

WHERE ED. IN<br />

(<br />

SELECT <br />

FROM expD MaxExpSteps-CurrentShrinkStep-1<br />

WHERE IS NULL<br />

)<br />

AND <br />

UNION<br />

SELECT <br />

FROM expD MaxExpSteps-CurrentShrinkStep<br />

WHERE IS NOT NULL<br />

Фазата на свиване продължава, докато за поредния диференциал не се получи<br />

празно множество.<br />

Диференциалът от фазата на свиване ще бъде означаван оттук нататък с<br />

shrD StepNo , където StepNo е номера на поредната стъпка на итерацията.<br />

Използването на оператора DISTINCT в SELECT-клаузата повишава<br />

допълнително ефективността на метода, тъй като отстранява повтарящите се факти на<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 142 -<br />

възможно най-ранен етап (още в момента на тяхното генериране). Най-голямото<br />

повишаване на ефективността обаче се получава вследствие на вложената операция<br />

SELECT. Тя се използва за отделянето само на тези факти, които съответстват на<br />

заявките, генерирани през поредната стъпка от фазата на разпъване. Само отделените<br />

по този начин факти се използват при обратното заместване в базовите конюнкции<br />

(виж след оператор AND във WHERE-клаузата). Това намалява значително броя на<br />

ненужните факти, предавани и препредавани към следващите стъпки на итерацията. За<br />

сравнение, при методите с пренаписване се отстраняват само ненужните факти извън<br />

конуса на решението. В предлагания метод освен тези факти се откриват и отстраняват<br />

и ненужните факти вътре в самия конус на решението, при това на възможно най-ранен<br />

етап на итерацията.<br />

4. Алгоритъм за транслация до базови конюнкции<br />

За целта ще бъдат дефинирани следните структури от данни:<br />

PredicateType(PredicateID, Args, ArgsCount, IsDBP)<br />

за съхранение на един предикат от тялото на правилото. Цялото тяло от своя<br />

страна е масив от тип PredicateType.<br />

HeadType(PredicateID, Bindings, ArgsCount, IsDBP)<br />

Всяка система от правила може да бъде разделена на групи от правила, които<br />

имат за глава един и същи предикат. Структурата HeadType съдържа информацията за<br />

една такава глава, както и за свързванията на аргументите при положение, че<br />

предикатът е извикан от тялото на друго правило. Тези връзки се съхраняват в елемента<br />

Bindings, който е от тип:<br />

ArgBindings(OriginalName, SubstitutedName)<br />

Създадена е и допълнителна структура:<br />

SubstitutionsTable(Table, ArgsCount)<br />

за съхранение на връзките в тялото на правилото. Елементът Table също е от<br />

тип ArgBindings.<br />

Разработени са две взаимно-рекурсивни подпрограми, които извършват<br />

транслацията на задатената система от правила във функция на предиката, свързан със<br />

запитването.<br />

Първата от тях е:<br />

void LanguageProcessor::PropagatePredicate(PredicateType<br />

Predicate)<br />

{<br />

HeadType Rules[20];<br />

int RulesPointer, RulesCount;<br />

TCursor Cursor;<br />

// Селектира подмножество от правила, чиято глава<br />

// съответства на предиката, който подпрограмата получава<br />

като аргумент.<br />

ExecSQL(&Cursor,<br />

"select ID from RulesTbl where HeadPredID = :PHeadPredID<br />

and Typ = 1",<br />

Predicate.PredicateID);<br />

RulesPointer = 0;<br />

for(Cursor->First() ; !Cursor->Eof ; Cursor->Next())


- 143 -<br />

{<br />

Rules[RulesPointer].PredicateID = Cursor-<br />

>FieldByName("ID");<br />

RulesPointer++;<br />

}<br />

RulesCount = RulesPointer;<br />

// За всяко от селектираните правила<br />

for(RulesPointer = 0 ; RulesPointer < RulesCount ;<br />

RulesPointer++)<br />

{<br />

ExecSQL(&Cursor,<br />

"select ArgName \<br />

from RuleHeadArgsTbl \<br />

where RuleID = :PRuleID \<br />

order by ID",<br />

Rules[RulesPointer].PredicateID);<br />

// Свързва аргументите от главата с аргументите на<br />

предиката,<br />

i = 0; // от който е станало извикването<br />

for(Cursor->First() ; !Cursor->Eof ; Cursor->Next())<br />

{<br />

Rules[RulesPointer].Bindings[i].OriginalName =<br />

Cursor->FieldByName("ArgName");<br />

Rules[RulesPointer].Bindings[i].SubstitutedName =<br />

Predicate.Args[i].ArgName;<br />

}<br />

Rules[RulesPointer].ArgsCount = i;<br />

}<br />

// Рекурсивно извиква подпрограмата, обработваща опашката<br />

на правилото<br />

for(RulesPointer = 0 ; RulesPointer < RulesCount ;<br />

RulesPointer++)<br />

PropagateRule(Rules[RulesPointer]);<br />

}<br />

Тази подпрограма селектира най-напред подмножество от правила, чиято глава<br />

съответства на предиката, който тя получава като аргумент. След това, за всяко едно от<br />

селектираните правила, подпрограмата извършва:<br />

- свързване на аргументите от главата на правилото с аргументите на предиката,<br />

от който е станало извикването. Това се налага, тъй като независимо дали това е<br />

предикатът, свързан със запитването, или е предикат от тялото на друго правило,<br />

агрументите му са: или свързани с константи и/или преименувани вследствие на<br />

хоризонталното разпространение на информацията.<br />

- извикване на подпрограмата PropagateRule(HeadType Head) за<br />

обработка на тялото на всяко едно от селектираните правила.<br />

Тази втора подпрограма е:<br />

void LanguageProcessor::PropagateRule(HeadType Head)<br />

{<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 144 -<br />

int i;<br />

int PropagatedRuleID;<br />

PredicateType RuleBody[20];<br />

int RBPointer, RBLength, ArgsCount, OutputRuleReper;<br />

OutputRuleReper = OutputRulePointer;<br />

TCursor Cursor;<br />

// Селектира предикатите от тялото на правилото<br />

ExecSQL(&Cursor,<br />

"select R.BodyPredID, P.Typ \<br />

from RuleBodiesTbl R, PredicatesTbl P \<br />

where R.RuleID = :PRuleID and R.BodyPredID =<br />

P.ID",<br />

Head.PredicateID);<br />

RBPointer = 0;<br />

for(Cursor->First() ; !Cursor->Eof ; Cursor->Next())<br />

{<br />

RuleBody[RBPointer].PredicateID = Cursor-<br />

>FieldByName("BodyPredID");<br />

RuleBody[RBPointer].IsDBP = (Cursor->FieldByName("Typ")<br />

== 1);<br />

RBPointer++;<br />

}<br />

RBLength = RBPointer;<br />

// За всеки един от предикатите от тялото на правилото<br />

for(RBPointer = 0 ; RBPointer < RBLength ; RBPointer++)<br />

{<br />

ExecSQL(&Cursor,<br />

"select ArgName \<br />

from RuleBodyArgsTbl \<br />

where RuleBodyID = %d \<br />

order by ID",<br />

RB[RBPointer].PredicateID);<br />

// Извършва субституция на аргументите му<br />

i = 0;<br />

for(Cursor->First() ; !Cursor->Eof ; Cursor->Next())<br />

{<br />

RuleBody[RBPointer].Args[i] =<br />

SubstituteArgument(Cursor->FieldByName("ArgName"),<br />

Head);<br />

i++;<br />

}<br />

RuleBody[RBPointer].ArgsCount = i;<br />

}<br />

for(RBPointer = 0 ; RBPointer < RBLength ; RBPointer++)<br />

if(RuleBody[RBPointer].IsDBP ||<br />

(RuleBody[RBPointer].PredicateID ==<br />

GoalPredicate.PredicateID))


- 145 -<br />

{ // Ако това е предикатът свързан със запитването<br />

OutputRule[OutputRulePointer] = RuleBody[RBPointer];<br />

OutputRulePointer++;<br />

}<br />

else PropagatePredicate(RuleBody[RBPointer]); // Влизане<br />

в рекурсия<br />

// Записва транслираното вече правило<br />

OutputRulesTable.Add(OutputRule, OutputRulePointer);<br />

// Възстановява позицията на показалеца по тялото на<br />

правилото<br />

OutputRulePointer = OutputRuleReper;<br />

}<br />

Тази подпрограма обработва тялото на правилото, чиято глава получава като<br />

аргумент. За целта подпрограмата селектира предикатите от тялото на полученото<br />

правило и за всеки един от тях:<br />

- извършва субституция на аргументите му, като за целта използва<br />

информацията от SubstitutionsTable;<br />

- ако поредният предикат е предикат от базата данни, то подпрограмата прескача<br />

на следващия предикат от тялото на правилото;<br />

- ако поредният предикат е дефиниран посредством правило, то:<br />

- подпрограмата инициализира репер, с цел - съхраняване на позицията на<br />

показалеца по тялото на правилото, където ще бъде извършено разпъване;<br />

- подпрограмата извиква рекурсивно PropagatePredicate<br />

(CurrentBodyPredicate) за да обработи подмножеството от правила, които имат<br />

за глава текущия предикат CurrentBodyPredicate.<br />

След връщането от рекурсия, подпрограмата PropagateRule( ) записва<br />

транслираното вече правило в таблицата с изходни правила и възстановява показалеца<br />

по тялото на правилото.<br />

5. Заключение<br />

Предлаганият в статията алгоритъм има специфично приложение, а именно в<br />

2P-метода за обработка на запитвания в дедуктивни бази данни.<br />

2P-методът от своя страна формира същия конус на решението както и<br />

методите, използващи пренаписване. Така той постига същия оптимизационен ефект,<br />

както и тези методи, когато става въпрос за отстраняване на фактите, намиращи се<br />

извън конуса на решението. Предимството предложения нов метод е, че освен фактите<br />

извън конуса на решението се откриват и отстраняват и ненужните факти вътре в самия<br />

конус, при това на възможно най-ранен етап на итерацията. Това става благодарение на<br />

въведената допълнителна селекция, при изчисляването на диференциалите от фазата на<br />

свиване. Тази селекция намалява значително броя на ненужните факти, предавани и<br />

препредавани към следващите стъпки на итерацията.<br />

Предлаганият алгоритъм за транслация до базови конюнкции е предназначен за<br />

реализация на езици от високо ниво, поддържащи рекурсия, като напр. C++ и Pascal.<br />

Последните са удобни за използване и като host-езици, за изпращане на SQL-заявки<br />

към външната база данни.<br />

За тестване на алгоритъма за транслация до базови конюнкции и<br />

съответнстващия му 2P-метод, е разработена програмна среда, съдържаща: текстови<br />

редактор за програмата на логически език; езиков процесор, реализиращ описания<br />

алгоритъм; връзки към стандартни машини за релационни бази данни.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 146 -<br />

ЛИТЕРАТУРА<br />

1. C. Beeri and R. Ramakrishnan. On the Power of Magic, Proceedings of the sixth ACM<br />

SIGACT-SIGMOD symposium on Principles of Database Systems, pp. 269-284, ISBN: 0-<br />

89791-223-3, San Diego, California, United States, 1987, ACM Press New York, NY,<br />

USA.<br />

2. S. Ceri, G. Gottlob and L. Tanka. Logic Programming and Databases, Springer-Verlag,<br />

ISBN 3-540-51728-6, Berlin.<br />

3. V. Iltchev. Bottom-Up Method for Processing Recursive Sets of Rules, International<br />

Conference on <strong>Computer</strong> Systems and Technologies, pp. II.18.1-II.18.6, ISBN 954-9641-<br />

33-3, 19-20 June, 2003, ACM-acmbul&UAI, Sofia, Bulgaria.<br />

4. V. Iltschev. Bottom-Up Method for Processing Nonrecursive Sets of Rules, 13-th<br />

International DAAAM Symposium, pp. 223-224, ISBN 3-901509-20-1, 23-26 October,<br />

2002, Vienna University of Technology, Vienna, Austria.<br />

5. J. Ullman. Implementation of logical query languages for databases, ACM Transactions on<br />

Database Systems (TODS), Vol. 10, No 3, September 1985, pp. 289 - 321, ISSN: 0362-<br />

5915.<br />

Department of <strong>Computer</strong> Systems and Technologies<br />

Technical University–Sofia, Plovdiv Branch<br />

25, Tsanko Dystabanov Str.<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: iltchev@tu-plovdiv.bg


- 147 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

STORAGE, MANIPULATION AND RETRIEVAL<br />

OF ORDERED XML INTO/FROM<br />

RELATIONAL DATABASES<br />

VELKO ILTCHEV<br />

Abstract. The paper proposes a relational database model for holding structure and items<br />

of ordered XML-documents. The appropriate algorithms for storing, manipulating and<br />

retrieving of data, implemented as procedures in C++ as a host-language, have also been<br />

described.<br />

Key words: XML, relational databases, XPath, information retrieval.<br />

СЪХРАНЕНИЕ, ОБРАБОТКА И ИЗВЛИЧАНЕ<br />

НА ПОДРЕДЕН XML В/ОТ РЕЛАЦИОННИ БАЗИ ДАННИ<br />

1. Въведение<br />

XML е съкращение от eXtensible Markup Language, което в превод означава -<br />

разширяем език за описание на документи [3]. Той дава възможност данните да бъдат<br />

съхранявани в техния естествен вид, така както са в оригиналния документ. Най-често,<br />

структурата на тези данни нарушава изискванията на Първа нормална форма при<br />

релационните бази данни. Затова и системите, съхраняващи данни с подобна структура<br />

са известни още като NF 2 -бази данни, което е съкращение от NonFirstNormalForm.<br />

При тях, вместо за модел на базата данни, напр. ER-модел, се говори за<br />

граматика, описваща структурата на документите. Двата най-разпространени начина за<br />

описание на тази структура са:<br />

- посредством DTD, съкращение от Data Type Definition [4]<br />

- посредством XSD, съкращение от eXtensible Stylesheet Definition [5].<br />

В статията ще бъде използван XSD, като по-нов способ, даващ възможност попрецизно<br />

да бъдат дефинирани брой на включвания на даден възел в родителски възел,<br />

да бъдат дефинирани пространства от имена и други. Предлаганите в статията<br />

алгоритми са приложими и при документи, дефинирани посредством DTD.<br />

Както вече бе споменато, предимството на съхраняването на данни в XMLформат<br />

е опростената структура, близка до тази на оригиналния документ. Основният<br />

проблем обаче е, че тези данни се съхраняват обикновенно под формата на текст, което<br />

от своя страна води до бавно търсене, вмъкване и изтриване на информация.<br />

В противовес на това, релационни бази данни имат сложна структура, НО<br />

търсенето, вмъкването и изтриването на информация е бързо.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 148 -<br />

Затова, целта на множество съвременни разработки в тази област е комбинация<br />

на предимствата на двата подхода: XML-структура на данните, близка до естествената,<br />

съхранявана обаче в релационна база данни, с цел - използване на бързите алгоритми за<br />

търсене, обработка и извличане на информация, характерни за релационните бази<br />

данни.<br />

Тази статия предлага модел на релационна база данни, подходящ за съхранение<br />

както на самите документи, така и на тяхната структура. Описани са също така и<br />

разработените от автора алгоритми, за: обработка на XPath [6], търсене, обработка и<br />

извличане на информацията от така предложената структура на релационна база данни.<br />

2. Структура на данните<br />

В [2] е предложена следната структура на релационна таблица:<br />

XMLDataTbl(ID, TagName, NodeValue, ParentID)<br />

с цел:<br />

- съхраняване на информацията във възлите на документа,<br />

- съхраняване връзките между самите възли.<br />

В същата публикация се предлага, вместо име на таг, да се използва пътеката до<br />

този таг. Причината е, че имена на тагове могат да се повтарят на различни нива в<br />

структурата на документа. Предлага се също така, тази пътека да се съхранява не като<br />

стринг, а в отделна таблица, отново с авторекурсивна връзка между полетата. По този<br />

начин, в таблицата с данните, описана по-горе е достатъчно да се записва само ID на<br />

тага, тъй като той носи информация и за пътеката до него.<br />

С настоящата статия предлагам, в тази втора таблица, описваща структурата на<br />

документа, да се съхранява и допълнителна информация за:<br />

- името на релационната таблица;<br />

- името на полето от тази релационна таблица;<br />

- типа на това поле<br />

които съответстват на дадения таг. Важно е да се отбележи, че съответствието<br />

таг→поле от базата данни, е еднозначно. Така, предлаганата структура на тази таблица<br />

ще изглежда по следния начин:<br />

XMLStructTbl(ID, TagName, TableName, FieldName, FieldType, ParentID)<br />

Това ще доведе и до следната промята в таблицата с данните, чиято структура<br />

вече ще бъде:<br />

XMLDataTbl(ID, TagNameID, NodeValueID, ParentID)<br />

При извличане на информация, най-напред през TagNameID се намират<br />

таблицата, полето и неговия тип, а стойността му е в ред, сочен от NodeValueID. Този<br />

начин на представяне има и още едно предимство, а именно, че типът на полето<br />

NodeValueID е атомарен - цяло число, независимо от различния тип данни в отделните<br />

възли.<br />

Предлагам също така, когато при извличането на информацията за host-език се<br />

използва C++ или Pascal, стойността на възела да бъде извличана в променлива от тип<br />

Variant. Този тип е имплементиран като клас в библиотеките на повечето модерни<br />

компилатори. Това дава възможност да бъде унифицирана подпрограмата, извършваща<br />

извличането на информацията.<br />

3. Способи за номериране на възлите на XML-документ<br />

За пример ще бъде използвана следната XSD-схема, описваща структурата на<br />

един закон от областта на правото:


- 149 -<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Съгласно тази схема, един закон има име и поне един, а може и повече членове.<br />

Един член може да съдържа директно законовия текст или да съдържа поне една, а<br />

може и повече алинеи, като всяка една от тях има име и законов текст.<br />

#текст<br />

име<br />

2<br />

име<br />

член<br />

3<br />

4 5<br />

текст<br />

#текст #текст<br />

име<br />

#текст<br />

закон 1<br />

7<br />

име текст<br />

#текст<br />

алинея<br />

9<br />

#текст<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271<br />

фиг. 1. Глобална номерация на възли<br />

8<br />

член<br />

10<br />

6<br />

име<br />

#текст<br />

алинея<br />

11<br />

12 13<br />

текст<br />

#текст


- 150 -<br />

3.1. Глобална номерация на възли<br />

При глобалната номерация, на всеки възел се присвоява число, показващо<br />

абсолютната позиция на този възел в цялото дърво на документа. Удобен за<br />

извършване на такъв тип номериране е алгоритъмът за обхождане на възлите в<br />

дълбочина. Схемата на документ, номериран по този начин, е дадена на фиг. 1.<br />

За съхраняване на тази допълнителна информация се налага следната промяна в<br />

таблицата с данните:<br />

XMLDataTbl(ID, TagNameID, NodeNumber, NodeValueID, ParentID)<br />

Добавено е полето NodeNumber, което съхранява абсолютната позиция на<br />

текущия възел в цялото дърво на документа.<br />

3.2. Локална номерация на възли<br />

При локалната номерация, на всеки възел се присвоява число, показващо<br />

относителната позиция на този възел спрямо възлите, с които той има пряк-общ<br />

родител. Удобен за извършване на такъв тип номериране е алгоритъмът за обхождане<br />

на възлите в ширина. Схемата на документ,номериран по този начин,е дадена на фиг. 2.<br />

Абсолютната позиция на възела в целия документ може да бъде възстановена,<br />

тъй като са известни възлите, на които той е наследник.<br />

За съхраняване на тази допълнителна информация се налага следната промяна в<br />

таблицата с данните:<br />

XMLDataTbl(ID, TagNameID, NodeIndex, NodeValueID, ParentID)<br />

Добавено е полето NodeIndex, което съхранява относителната позиция на<br />

текущия възел спрямо възлите, с които той има пряк-общ родител. Този индекс се<br />

нуждае от опресняване при всяко вмъкване или изтриване на възел.<br />

#текст<br />

име<br />

1<br />

име<br />

член<br />

2<br />

1 2<br />

текст<br />

#текст #текст<br />

име<br />

#текст<br />

закон 1<br />

име текст<br />

#текст<br />

алинея<br />

#текст<br />

3.3. Номерация на Dewey<br />

Този способ за номериране е предложен за първи път от Melvil Dewey, като<br />

система за класифициране на библиотечна информация [1]. При този способ, на всеки<br />

възел се присвоява вектор, съдържащ пътя от корена на документа, до този възел.<br />

Удобен за извършване на такъв тип номериране отново е алгоритъмът за обхождане на<br />

възлите в дълбочина. Схемата на документ, номериран по този начин,е дадена на фиг.3.<br />

Абсолютната позиция на възела в целия документ може да бъде възстановена,<br />

тъй е известен пътят до всеки един възел.<br />

член<br />

фиг. 2. Локална номерация на възли<br />

1<br />

1<br />

2<br />

2<br />

3<br />

име<br />

#текст<br />

алинея<br />

3<br />

1 2<br />

текст<br />

#текст


- 151 -<br />

За съхраняване на тази допълнителна информация се налага следната промяна в<br />

таблицата с данните:<br />

XMLDataTbl(Dewey, TagNameID, NodeValueID, ParentID)<br />

Вижда се, че първичният ключ ID е сменен с полето Dewey, което съхранява<br />

векторa, съдържащ пътя от корена на документа, до текущия възел. Тъй като този<br />

вектор има уникална стойност за всеки един възел от дървото, то той може да се<br />

използва и за първичен ключ на таблицата.<br />

#текст<br />

При вмъкване или изтриване на възел за всеки един от тези три способа, се<br />

налага преномериране на възлите, което изглежда по начина, даден на фиг.4.<br />

фиг. 4.<br />

име<br />

1.1<br />

име<br />

член<br />

1.2<br />

1.2.1 1.2.2<br />

текст<br />

#текст #текст<br />

име<br />

#текст<br />

закон 1<br />

1.3.1<br />

а) б)<br />

име текст<br />

#текст<br />

алинея<br />

1.3.2.1<br />

#текст<br />

#текст<br />

Възли, които трябва да бъдат преномерирани, след вмъкване на възел, при:<br />

а) глобална номерация, б) локална номерация, в) номерация на Dewey<br />

4. Модификация на Локалната номерация на възли<br />

Целта на предлаганата модификация е да се намали броят на възлите, които се<br />

налага да бъдат преномерирани, при вмъкване или изтриване на възел.<br />

За постигането на тази цел предлагам, допълнителното поле в таблицата с<br />

данните да се използва за създаване на свързан списък на възлите, с които текущия<br />

възел има пряк-общ родител. За тази цел това поле няма да съдържа абсолютна<br />

позиция, както е при глобалната номерация или индекс, както е при локалната<br />

номерация, а номера на предходния възел от списъка и по точно, стойността на полето<br />

му ID. Тя се съхранява в новото поле PrevNodeID. Първият възел в този списък има<br />

стойност на това поле 0. Така структурата на таблицата с данните добива следния вид:<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271<br />

член<br />

1.3.2<br />

фиг. 3. Номерация на Dewey<br />

1.3<br />

име<br />

#текст<br />

алинея<br />

1.3.3<br />

текст<br />

1.3.2.2 1.3.3.1 1.3.3.2<br />

в)


- 152 -<br />

XMLDataTbl(ID, TagNameID, NodeValueID, PrevNodeID, ParentID)<br />

Вижда се, че в нея има двойна авторекурсивна връзка:<br />

- първо, с прекия родител, посредством полето ParentID;<br />

- второ, с предходния възел от списъка, посредством полето PrevNodeID.<br />

Предимството на тази структура е, че при вмъкване на възел се налага<br />

"преномериране" само на възела, преди който е извършено вмъкването. Това<br />

"преномериране" се изразява в пренасочване (промяна на стойността) на полето<br />

PrevNodeID.<br />

4. Алгоритми<br />

Алгоритмите ще бъдат описани посредством програмен код на C++, използван<br />

като host-език за отправяне на параметризирани заявки към релационната база данни.<br />

За последното ще бъде използвана функцията:<br />

ExecSQL(TCursor *Cursor, AnsiString SQLStatement, TParam<br />

Parameters);<br />

която получава SQL-израз и параметри, както и указател към курсор, в който<br />

връща резултата от заявката.<br />

Предполага се и наличието на клас TXPath, обекти от който ще се използват за<br />

съхраняване на XPath-изрази. Този клас има методи:<br />

bool TXPath::Reset(void);<br />

bool TXPath::GetNextTag(AnsiString &TagName);<br />

bool TXPath::GetTagValue(AnsiString &NodeValue);<br />

които са тривиални и няма да бъдат разглеждани в тази статия.<br />

4.1. Алгоритъм за търсене.<br />

XML-документите имат рекурсивна структура. Възможно е обаче търсенето в<br />

тях да бъде реализирано постедством итеративен алгоритъм, както това е направено в<br />

следната подпрограма:<br />

int XPathFind(TXPath &XPath, TCursor &Cursor)<br />

{<br />

int TagID, NodeValueID;<br />

AnsiString TagName, NodeValue;<br />

TCursor TagCursor, ParentCursor;<br />

ExecSQL(&ParentCursor, "select ID from XMLDataTbl where<br />

TagID = 1");<br />

TagID = 1; XPath.Reset();<br />

for( ; ; )<br />

{<br />

if(!XPath.GetNextTag(TagName)) return TagID; // 1<br />

ExecSQL(&TagCursor,<br />

"select ID \<br />

from XMLStructTbl \<br />

where ParentID = :PParentTagID and TagName =<br />

:PTagName",<br />

TagID, TagName);<br />

if(TagCursor.IsEmpty()) return 0;<br />

TagCursor.First();<br />

TagID = TagCursor.FieldByName("ID");


\<br />

}<br />

- 153 -<br />

XPath.GetTagValue(NodeValue);<br />

NodeValueID = GetValueID(TagID, NodeValue);<br />

ExecSQL(&Cursor,<br />

"select ID \<br />

from XMLDataTbl \<br />

where TagID = :PTagID and NodeValueID = :PNodeValueID<br />

and ParentID in (select ID from ParentCursor)",<br />

TagID, NodeValueID);<br />

ParentCursor = Cursor;<br />

}<br />

В нея, безкрайният цикъл се инициализира с данните от корена на XMLдокумента<br />

TagID = 1. Цикълът продължава, докато не бъдат анализирани всички части<br />

на пътеката (виж. // 1). Следващата SQL-заявка извлича тага на наследника, от който се<br />

интересуваме (съгласно зададената пътека XPath). След това се извлича<br />

идентификатора на стойността във възела, при положение, че в пътеката има зададено и<br />

условие. Това става с помощта на следната подпрограма:<br />

int GetValueID(int TagID, AnsiString NodeValue)<br />

{<br />

AnsiString TableName, FieldName;<br />

TCursor Cursor;<br />

XMLStructTbl.Locate("ID", TagID);<br />

TableName = XMLStructTbl.FieldByName("TableName");<br />

FieldName = XMLStructTbl.FieldByName("FieldName");<br />

ExecSQL(&Cursor,<br />

"select ID from :PTableName where :PFieldName =<br />

NodeValue",<br />

TableName, FieldName, NodeValue);<br />

Cursor.First();<br />

return Cursor.Field[0];<br />

}<br />

чието действие е тривиално и затова няма да бъде обсъждано. Накрая, посредством<br />

втората SQL-заявка, се извлича информацията за наследниците. Така полученият<br />

курсор, става родител (ParentCursor), за следващото завъртане на цикъла.<br />

4.2. Алгоритъм за вмъкване на възел<br />

bool XPathInsert(TXPath&XPath,AnsiString NodeValue,AnsiString<br />

NewNodeValue)<br />

{<br />

int TagID, NodeID, NodeValueID, PrevNodeID, ParentNodeID,<br />

NewNodeID, NewNodeValueID;<br />

TCursor Cursor;<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 154 -<br />

TagID = XPathFind(XPath, &Cursor); // 1<br />

if(!TagID) return false;<br />

NodeValueID = GetValueID(TagID, NodeValue); // 2<br />

XMLDataTbl.Locate("NodeValueID", NodeValueID);<br />

NodeID = FieldByName("ID");<br />

PrevNodeID = FieldByName("PrevNodeID");<br />

ParentNodeID = FieldByName("ParentNodeID");<br />

NewNodeValueID = InsertValue(TagID, NewNodeValue); // 3<br />

XMLDataTbl.Insert(TagID, NewNodeValueID, ParentNodeID);<br />

NewNodeID = FieldByName("ID");<br />

ExecSQL("update XMLDataTbl \<br />

set PrevNodeID = :PPrevNodeID \<br />

where ID = :PID",<br />

PrevNodeID, NewNodeID);<br />

ExecSQL("update XMLDataTbl \<br />

set PrevNodeID = :PPrevNodeID \<br />

where ID = :PID",<br />

NewNodeID, NodeID);<br />

}<br />

Подпрограмата получава пътека до и стойност на възела, преди който ще бъде<br />

извършено вмъкването, както и стойността на възела, който ще бъде вмъкнат. В блока<br />

от оператори (// 1) се намира тагът на възела, преди който ще се извършва вмъкването.<br />

В (// 2) се извлича идентификаторът на този възел, както и на възлите, с които той е<br />

свързан. В (// 3) се добавя новия възел, като резултат се получават неговият<br />

идентификатор, както и идентификаторът за неговата стойност. В следващите две SQLзаявки<br />

се извършва пренареждане на връзките на на вмъкнатия нов възел и на текущия<br />

възел.<br />

Алгоритъмът за изтриване на възел действа по подобен начин и затова, поради<br />

липса на място няма да бъде разглеждан в настоящата статия.<br />

4.3. Алгоритъм за извличане на XML-документ<br />

int XPathRetrieve(TCursor &Cursor)<br />

{<br />

int NodeID;<br />

TCursor ChildCursor;<br />

Cursor.Locate("PrevNodeID", 0); // Намира началото на<br />

списъка<br />

for( ; ; )<br />

{<br />

NodeID = Cursor.FieldByName("ID");<br />

// Вкарва данните от възела в изходния документ<br />

OutputDoc.InsertData(NodeID);<br />

ExecSQL(&ChildCursor,<br />

"select ID from XMLStructTbl where ParentID =<br />

:PParentID",


- 155 -<br />

NodeID);<br />

if(!ChildCursor.IsEmpty())<br />

XPathRetrieve(ChildCursor); // Рекурсивно извикване<br />

if(!Cursor.Locate("PrevNodeID", NodeID))break;//Взема<br />

следващия елем.<br />

}<br />

}<br />

В случая той е реализиран рекурсивно. Подпрограмата получава курсор,<br />

изчислен на предишното ниво на рекурсия. Първоначално подпрограмата се<br />

инициализира с курсор, с TagID = 1, тоест - с корена.<br />

Подпрограмата обхожда елементите на получения курсор, следвайки свързания<br />

списък, посредством безкрайния цикъл for( ; ; ). За всеки елемент (възел) от този<br />

списък, най-напред се извеждат данните му, след което, посредством SQL-заявката, се<br />

отделят наследниците, в нов курсор ChildCursor. Ако този курсор не е празен, то се<br />

извършва рекурсивно извикване на подпрограмата, като за параметър й се подава<br />

курсорът с наследниците. След връщане от рекурсията се взема следващият елемент от<br />

списъка на братята на текущият възел. Ако няма такъв - излиза се от цикъла и от<br />

подпрограмата, съответно - от текущото ниво на рекурсия.<br />

5. Заключение<br />

Предлаганата в статията модификация на способа за локална номерация на<br />

възлите снижава до минимум броя на възлите, които трябва да бъдат преномерирани,<br />

при вмъкване или изтриване на възел в подреден XML-документ. Този брой се снижава<br />

до точно два възела и е независим от броя на възлите, с които засегнатият възел има<br />

пряк-общ родител.<br />

Предлаганата модификация е удобна за реализация върху произволна,<br />

стандартна SQL-машина за бази данни. Пакетът от съпътстващи алгоритми може да<br />

бъде реализиран като библиотека от подпрограми на host-език, поддържащ рекурсия,<br />

като например C++ или Pascal. Възможна е и нерекурсивна версия на алгоритъма за<br />

извличане на информацията, като за целта се симулира стек от курсори. За<br />

реализацията му може да се използва временна таблица, с репери в нея, които пазят<br />

номера на поредната стъпка на итерацията.<br />

Библиотеката може да се използва като основа за създаване на езикови<br />

процесори за обработка на XQuery запитвания, както за извършване на XSLT<br />

трансформации.<br />

ЛИТЕРАТУРА<br />

1. L. M. Chan and J. S. Mitchell. Dewey Decimal Classification: Principles and<br />

Application, Third edition, 2004, ISBN 0-910608-72-5.<br />

2. I. Tatarinov, S. D. Viglas, K. Beyer, J. Shanmugasundaram, E. Shekita and C. Zhang.<br />

Storing and querying ordered XML using a relational database system, Proceedings of the<br />

2002 ACM SIGMOD international conference on Management of data, Madison,<br />

Wisconsin, USA, June 03-06, 2002, pp.204-215, ISBN: 1-58113-497-5.<br />

3. World Wide Web Consortium. Extensible Markup Language (XML) 1.0 (Fourth<br />

Edition), W3C Recommendation 16 August 2006, edited in place 29 September 2006,<br />

http://www.w3.org/TR/2006/REC-xml-20060816/<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 156 -<br />

4. World Wide Web Consortium. Datatypes for DTDs (DT4DTD) 1.0, W3C Note 13<br />

January 2000, http://www.w3.org/TR/2000/NOTE-dt4dtd-20000113/<br />

5. World Wide Web Consortium. XML Schema Part 0: Primer Second Edition, W3C<br />

Recommendation 28 October 2004, http://www.w3.org/TR/2004/REC-xmlschema-0-<br />

20041028/<br />

6. World Wide Web Consortium. XML Path Language (XPath) Version 1.0, W3C<br />

Recommendation 16 November 1999, http://www.w3.org/TR/1999/REC-xpath-19991116/<br />

Department of <strong>Computer</strong> Systems and Technologies<br />

Technical University–Sofia, Plovdiv Branch<br />

25, Tsanko Dystabanov Str.<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: iltchev@tu-plovdiv.bg


- 157 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

VALUATION OF AV-PROGRAMS EFFECTIVENESS<br />

SIMEON MOEV, PETKO BAKALOV<br />

Abstract. The antivirus (AV) protection is a mandatory software element in any<br />

Windows-based computer system. This article makes an attempt to compare together and<br />

estimate the effectiveness of several AV programs by means of different criteria.<br />

Key words: antivirus software, malware, Trojan horse, virus, worm .<br />

ОЦЕНКА ЕФЕКТИВНОСТТА НА AV-ПРОГРАМИ<br />

1. Въведение<br />

Днес огромното множество на злоумишлените програми (malware – от malicious<br />

software) експлоатира изключително разнообразни тактики и цели. Броят на всички<br />

видове вредни програми е трудно да се фиксира. Приблизително се оценяват над<br />

550 000 (около 230 000 за DOS и около 320 000 за Windows и други OS) [3]. Бурният<br />

ръст на този вид IT-продукти доведе и до промяна в класифицирането им. Масовото<br />

схващане сега е, че към malware спадат вируси (viruses), троянски коне (Trojan horses -<br />

trojans), червеи (worms), шпионски програми (spyware), измами (hoaxes). Сигурно то<br />

може да бъде коментирано и променяно. Както може да бъде оспорено и разделението<br />

само при вирусите на 10 вида [1].<br />

Въпреки относителността на класификациите и бройката, едно е сигурно –<br />

деструктивните програми са способни и нанасят реален вреден ефект на милиони<br />

потребители в глобалната мрежа [2]. И срещу тях обезателно трябва да се вземат мерки.<br />

Антивирусните програми са едно от задължителните средства в борбата срещу<br />

различните malware. Разнообразието при тези защитни средства е голямо, може да се<br />

каже объркващо. Някои от тях се равиват в пакети от програми със специфични,<br />

допълващи се функции, но стават тежки, консумират доста системни ресурси. Други<br />

изтъкват свята компактност и бързина. Оценката коя да бъде предпочетена се превръща<br />

в нещо достатъчно комплицирано<br />

2. Цел и методика на работа<br />

Целта на настоящата проверка беше да се направи сравнение на няколко от найизползваните<br />

сега у нас антивирусни (AV) програми, чрез което да се подпомогне<br />

изборът на крайния потребител, работещ в домашни условия или в малък офис. За<br />

големите, корпоративни мрежи (при всичката условност на българските мащаби),<br />

условията са различни - там може да се разчита на скъпи, комплексни защитни решения<br />

и помощта на подготвен мрежов администратор.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 158 -<br />

Всяка от проверяваните AV-програми беше самостоятелно инсталирана на РС с<br />

параметри: CPU Duron 1300MHz, RAM 384MB, HD 40GB, Windows XP SP2.<br />

За целите на експеримента бяха използвани три архива – с 6850 вируси, с 680<br />

троянски коне и с 450 червеи. Общ брой malware – 7980. Всяка от програмите сканира<br />

всеки един от архивите след като е обновена с най-новите за деня вирусни дефиниции.<br />

3. Резултати<br />

Архивите съдържат следните типове заразени файлове: .exe, .com, .class, .php,<br />

.dll, .htm, .cgi, .mrc, .msp, .cip, .gtx, .stb, .tfc, .bat, .vbs, .txt, .cpl, .pif, .scr, .obj. Те са взети<br />

от форуми и сайтове с цел тестване на антивирусен софтуер.<br />

Освен основния критерий - брой откривани malware, за всяка антивирусна<br />

програма бяха наблюдавани и параметрите:<br />

- ползвана памет - колко оперативна памет ангажират мадулите на AV.<br />

Резултатите са получени от free-програмата ActMonProcessMonitoring.<br />

- бързината на работа - чрез скоростта за проверка на 10 000 разнотипни файла.<br />

Най-важните резултати са представени в следната таблица:<br />

Таблица 1. Обобщени резултати<br />

Ran Deflt Deflt Full Full RAM 1 RAM 2<br />

Application k Abs. Omit Abs. Omit (KB) (KB) Points<br />

Panda Titanium<br />

115,46<br />

2006 Antivirus 1 7 688 292 7 688 292 90,612 8 61 100<br />

BitDefender 9 Pro 2 7 287 693 7 287 693 41,760 48,876 61 94<br />

McAfee 2006 3 7 181 799 7 181 799 56,524 84,324 58 17<br />

F-Secure 6.0 4 7 175 805 7 175 805 58,936 79,825 58 25<br />

Kaspersky 6.0<br />

Steganos AV<br />

5 7 169 811 7 169 811 17,504 23,284 64 49<br />

2006 6 7 163 817 7 166 814 32,580 33,248 48 29<br />

Norton AV 2006<br />

PC-cillin Internet<br />

7 7 018 962 7 021 959 28,024 77,604 55 34<br />

Security 2006 8 6 977 1003 6 977 1003 48,642 63,512 58 47<br />

Nod32 2.51.20 9 5 997 1983 6 730 1250 18,056 38,476 60 116<br />

AVG 7.1 10 6 073 1907 6 552 1428 14,624 39,664 52 26<br />

Speed<br />

file/sec<br />

Класирането е според основния критерий - общ брой открити malware.<br />

Означенията на колоните са както следва:<br />

- Deflt Abs / Full Abs - открити malware в режим по подразбиране / режим с<br />

пълни настройки;<br />

- Deflt Omit / Full Omit – пропуснати malware в споменатите два режима;<br />

- RAM1 / RAM2 – използвана оперативна памет в покой / при сканиране<br />

- Points – точки, получени от допълнителни показатели като наличие на международни<br />

сертификати, честота на обновяване, удобство при инсталиране и работа, хелп,<br />

поддръжка и др.<br />

Получените резултати са обработени статистически чрез продукта Analise-it<br />

v.173 [5], който разширява възможностите на популярния MS Excel. Статистическата<br />

обработка показва някои характерни зависимости при работа на AV-програмите.<br />

Илюстрацията на фиг.1 показва усредненото нарастване на използваната<br />

оперативна памет в режим на сканиране.


- 159 -<br />

Фиг.1 Необходима RAM в режими на покой и на сканиране<br />

Оставянето на AV да работи с подразбиращи се настройки (default) може да<br />

доведе до увеличаване броя на пропуснатите malware. Следващата илюстрация посочва<br />

средна разлика от 122 между двата режима.<br />

Фиг.2. Пропуснати malware в режими default и full<br />

Кривите от фигури 3 и 4 демонстрират зависимостите при класирането на<br />

наблюдаваните продукти. Макар и с отклонения, очертава се тенденцията по-добрите<br />

да използват повече RAM. А фиг.5 потвърждава ръстът в употребата на оперативна<br />

памет.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 160 -<br />

Фиг.3. Зависимост класиране / брой открити malware<br />

Фиг.4. Зависимост класиране / използвана RAM<br />

Фиг.5. Зависимост изолзвана RAM / открити malware


- 161 -<br />

Получените резултати не претендират за изчерпателност. Съзнаваме, че в тях<br />

има доста ограничения. Например: броят на използваните malware не е висок,<br />

възможно е да се включат и други AV-програми, а също и нови критерии като цена,<br />

удобство при ползване и др. Но въпреки това могат да се използват като отправна точка<br />

при избора на персонална AV-защита. Те могат да се съпоставят с други класации,<br />

правени периодично от различни фирми или организации. За сравнение, в таблицата<br />

по-долу са показани резултати от два подобни теста.<br />

Таблица 2. AV-тестове от други източници<br />

Класи- Oт www.av-comparatives.org [3] Oт www.toptenreviews.com [4]<br />

ране AV програма AV програма<br />

1 AntiVirusKit (AVK) v.16.0.7 BitDefender v.10<br />

2 AntiVir PE v.7.01 Kaspersky v.6.0<br />

3 F-Secure v.6.12.90 F-Secure 2006<br />

4 Kaspersky v.6.0 PC-cillin 2006<br />

5 TrustPort AV v.2.0 Nod 32 v.2.51.26<br />

6 Nod 32 v.2.51.26 McAfee 2006<br />

7 Norton AV v.12.2 Norton AV 2007<br />

8 BitDefender Prof. V.9.5 AVG Pro v.7.1<br />

9 Norman Virus Control v.5.81 eTrust EZ v.7.1<br />

10 McAfee v.11.0 Norman Virus Control v.5.81<br />

4. Заключение<br />

Опитът за оценяване ефективността на AV програми показа, че трудно може да<br />

се наложи категорична класация при тях. Получените резултати бързо се променят във<br />

времето и винаги могат да се оспорят по някой критерий. По-добрите показатели не са<br />

задължително притежание на по-скъпи или изискващи повече системни ресурси<br />

защитни средства. Съществуват разлики в използваните алгоритми за откриване на<br />

malware, както и в базата данни с техни описатели. Това прави сравнението на AV<br />

сложен и бързопроменящ се процес. При тези условия, за да се обективизира изборът<br />

на антивирусен софтуер, трябва да се държи сметка за:<br />

- предлагането на пакет от защитни програми (AV, spyware, adware, firewall),<br />

които имат единен интерфейс и поддръжка;<br />

- наличието на повече международно признати сертификати;<br />

- съвместимостта на конкретната AV-програма с вече инсталирани други<br />

защитни продукти.<br />

ЛИТЕРАТУРА<br />

1. Л. Кландер. Защита от хакери, СофтПрес, 1999.<br />

2. К. Дънам. Компютърни вируси. Диагностика и защита, АлексСофт, 2001.<br />

3. www.av-comparatives.org<br />

4. www.toptenreviews.com.<br />

5. www.analyse-it.com<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 162 -<br />

Department of Electronics, <strong>Computer</strong> Systems and Automation<br />

Technical College “J.Atanasov”<br />

Technical University–Sofia, Plovdiv Branch<br />

25, Tsanko Dystabanov Str.<br />

4000 Plovdiv, BULGARIA<br />

E-mail: simon18@mail.bg, petkobakalov@gmail.com


- 163 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

AN ENHANCED STATIONARY PHASE METHOD (SPM)<br />

APPROXIMATION FOR THE ASYMPTOTIC CALCULATION<br />

OF THE SCATTERED ELECTRIC FIELD FROM A FINITE<br />

RECTANGULAR PLATE<br />

CH. G. MOSCHOVITIS, E. G. PAPKELIS, H. T. ANASTASSIU,<br />

K. T. KARAKATSELOS, I. CH. OURANOS , P. V. FRANGOS<br />

Abstract. The enhanced Stationary Phase Method (SPM) approximation we present here<br />

appears to be a rather fast and attractive alternative in order to calculate the scattered<br />

electric field from a perfectly conducting rectangular plate of finite dimensions. Such<br />

rectangular plates could model propagation in a modern high frequency wireless<br />

communication network. A comparison is made with other methods such as numerical<br />

integration.<br />

Key words: stationary phase method, asymptotic approximation, scattered electric field.<br />

1. Introduction<br />

Propagation in an urban outdoor environment which consists of three dimensional<br />

scatterers (walls) is the main goal of our research. Provided that both transmitter and receiver<br />

are located below rooftop level, this scenario pertains to propagation circumstances related to<br />

modern high frequency communication wireless networks. Such environment could be<br />

modeled through the prerequisite problem of an electromagnetic (EM) wave which is<br />

assumed to be incident on a perfectly conducting rectangular plate of finite dimensions.<br />

Modifying appropriately the equation of the vector potential A, which is calculated by using<br />

physical optics (P.O) current density approximation, we can apply SPM approximations<br />

resulting in calculating the vector potential A and eventually the total electric field E at the<br />

observation point R(x,y,z). The novel, important feature, of our approach is the inclusion of<br />

the edges contribution to the resulting asymptotic expressions, not being documented in the<br />

literature ([1]-[3]) for a double integral. Furthermore, in order to check the accuracy of our<br />

asymptotic calculations, standard (e.g. Gaussian) numerical integration was used to compare<br />

the results.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 164 -<br />

2. Description of the stationary phase method<br />

Fig. 1. Rectangular plate, schematic 3D layout.<br />

� � � � � � � �<br />

R = R ⋅ R = r − ( x′<br />

⋅ x + y′<br />

⋅ y)<br />

= ( x − x′<br />

) ⋅ x + ( y − y′<br />

) ⋅ y + z ⋅ z<br />

(1)<br />

�<br />

� R<br />

1<br />

� � �<br />

R = =<br />

⋅ ( x − x′<br />

) ⋅ x + ( y − y′<br />

) ⋅ y + z ⋅ z (2)<br />

R<br />

2<br />

2 2<br />

( x − x′<br />

) + ( y − y′<br />

) + z<br />

TE and TM y-z plane projection calculations indicate the following results according<br />

to Physical Optics (P.O.) current density calculations:<br />

Fig. 2. Rectangular plate, TE rhythm y-z plane projection.<br />

The incident electric field is calculated via equation<br />

� � �<br />

Ei = η ⋅ H 0 ⋅ y ⋅ cosϑi<br />

+ z ⋅sinϑi<br />

⋅ exp − j ⋅ k y ⋅ sinϑi<br />

− z cosϑi<br />

Hi = x ⋅ H0<br />

⋅ exp[<br />

− j ⋅ k(<br />

y ⋅sinϑi<br />

− z cosϑi<br />

) ]<br />

� �<br />

� �<br />

P.<br />

O<br />

�<br />

J = ⋅ n × H = y ⋅ 2 ⋅ H ⋅ exp − j ⋅ k ⋅ y′<br />

⋅ sinϑ<br />

s<br />

( ) [ ( ) ]<br />

2 i z=<br />

0<br />

0<br />

y=<br />

y′<br />

[ ]<br />

while the scattered electric field is calculated by using equation:<br />

i<br />

(3)<br />

(4)<br />

(5)


�<br />

E<br />

s<br />

�<br />

H<br />

⎛<br />

∫ ⎜<br />

V '⎝<br />

⎛<br />

⎜<br />

'⎝<br />

- 165 -<br />

() r = − j ⋅ k ⋅ ⎜ M ( r′<br />

) × R + J ( r′<br />

) − J(<br />

r′<br />

)<br />

s<br />

�<br />

μ<br />

ε<br />

() r = j ⋅ k ⋅ ⎜ J ( r′<br />

) × R + M ( r′<br />

) − M ( r′<br />

)<br />

∫<br />

V<br />

�<br />

�<br />

H<br />

s<br />

ε<br />

μ<br />

� � ⎞<br />

[ { ⋅ R}<br />

⋅ R]<br />

⎟ ⋅ G(<br />

r,<br />

r′<br />

)<br />

⋅ dV<br />

′<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271<br />

⎟<br />

⎠<br />

� � ⎞<br />

[ { ⋅ R}<br />

⋅ R]<br />

⎟ ⋅ G(<br />

r,<br />

r′<br />

)<br />

( r)<br />

= j ⋅k<br />

⋅ J ( r′<br />

)<br />

∫ ( × R)<br />

( )<br />

V '<br />

�<br />

⎟<br />

⎠<br />

�<br />

⋅G<br />

r,<br />

r′<br />

⋅dV<br />

′<br />

2<br />

( x − x′<br />

) + ( y − y′<br />

)<br />

⋅ dV<br />

′<br />

� �<br />

1<br />

� �<br />

J ( r′<br />

) × R = 2H ⋅ ( − jk ⋅ ( y′<br />

⋅ i ) )<br />

⋅{<br />

− z ⋅ ( x − x′<br />

0 exp sinϑ<br />

) + x ⋅ z}<br />

(8)<br />

2 2<br />

+ z<br />

�<br />

H<br />

�<br />

s<br />

c a<br />

2<br />

j ⋅ k ⋅ 2H<br />

0<br />

() r<br />

( x − x′<br />

) + ( y − y′<br />

⋅<br />

)<br />

= ∫ ∫<br />

4π<br />

1<br />

� �<br />

⋅{<br />

− z ⋅ ( x − x′<br />

) + x ⋅ z}<br />

⋅<br />

2 2<br />

+ z<br />

dx′<br />

⋅ dy′<br />

⋅ exp<br />

⎛<br />

⎜ − jk⎜⎛<br />

y′<br />

⋅ sinϑi<br />

+<br />

⎝ ⎝<br />

2<br />

2<br />

( x − x′<br />

) + ( y − y′<br />

) + z ⎟⎞<br />

⎞<br />

⎟<br />

⎠⎠<br />

y′<br />

= d x′<br />

= b<br />

2<br />

Fig. 3. Rectangular plate, TM rhythm y-z plane projection.<br />

Ei = x ⋅ E0<br />

⋅exp[<br />

− j ⋅k<br />

( y ⋅sinϑi<br />

− z cosϑi<br />

) ]<br />

� �<br />

�<br />

H i<br />

E0<br />

� �<br />

= − ⋅ ( y ⋅ cosϑi<br />

+ z ⋅ sinϑi<br />

) ⋅ exp[<br />

− j ⋅ k(<br />

y ⋅sinϑi<br />

− z cosϑi<br />

) ]<br />

η<br />

� P.<br />

O<br />

J s<br />

�<br />

= 2 ⋅ n × H i z=<br />

0<br />

y=<br />

y′<br />

� E0<br />

= x ⋅ 2 ⋅ ⋅cosϑi<br />

⋅ exp[<br />

− j ⋅ k ⋅ y′<br />

⋅sinϑi<br />

]<br />

η<br />

�<br />

⎛ �<br />

E () ∫ ⎜ ( ′<br />

s r = − j ⋅ k ⋅<br />

⎜<br />

M r ) × R +<br />

V '⎝<br />

μ<br />

� � ⎞<br />

[ J ( r′<br />

) − { J(<br />

r′<br />

) ⋅ R}<br />

⋅ R]<br />

⎟ ⋅ ( ′ ) ⋅ ′<br />

⎟<br />

G r,<br />

r dV<br />

ε<br />

⎠<br />

�<br />

⎛ �<br />

H () ∫ ⎜ ( ′<br />

s r = j ⋅ k ⋅<br />

⎜<br />

J r ) × R +<br />

V '⎝<br />

ε<br />

� � ⎞<br />

[ M ( r′<br />

) − { M ( r′<br />

) ⋅ R}<br />

⋅ R]<br />

⎟ ⋅ ( ′ ) ⋅ ′<br />

⎟<br />

G r,<br />

r dV<br />

μ<br />

⎠<br />

�<br />

H<br />

s<br />

() r = j ⋅k<br />

⋅ J ( r′<br />

)<br />

�<br />

2E<br />

∫ ( × R)<br />

⋅G(<br />

r,<br />

r′<br />

)<br />

V '<br />

�<br />

�<br />

⋅dV<br />

′<br />

0<br />

( r′<br />

) × R = ⋅ cosϑ<br />

⋅ exp(<br />

− jk ⋅ ( y′<br />

⋅ sinϑ<br />

) )<br />

J i<br />

i<br />

η<br />

1<br />

2<br />

( x − x′<br />

) + ( y − y′<br />

)<br />

2<br />

+ z<br />

2<br />

⋅<br />

�<br />

(6)<br />

(7)<br />

(10)<br />

(11)<br />

(12)<br />

(13)<br />

(14)<br />

(15)<br />

�<br />

(9)<br />

{ z ⋅ ( y − y′<br />

) − y ⋅ z}


- 166 -<br />

(16)<br />

1<br />

� �<br />

⋅{<br />

− z ⋅ ( y − y′<br />

) − y ⋅ z}<br />

⋅<br />

c a<br />

�<br />

2<br />

2<br />

j ⋅ k ⋅ 2E<br />

2<br />

0<br />

H () r<br />

( x x′<br />

) ( y y′<br />

) z<br />

s = ⋅ cosϑ<br />

− + − +<br />

i<br />

dx′<br />

⋅ dy′<br />

4π<br />

⋅η<br />

∫ ∫<br />

y′<br />

= d x′<br />

= b<br />

⋅<br />

⎛<br />

jk y i ( x x ) ( y y ) z<br />

⎞<br />

⎜ − ⎜⎛<br />

2<br />

2 2<br />

exp ′ ⋅ sinϑ<br />

+ − ′ + − ′ + ⎟⎞<br />

⎟<br />

⎝ ⎝<br />

⎠⎠<br />

(17)<br />

By combining the TE and TM formulas we step into a single alternative formula<br />

which may calculate the vector potential A for the combination of TE and TM rhythms which<br />

is described below:<br />

− μ0<br />

�<br />

�<br />

A(<br />

x,<br />

y,<br />

z)<br />

= ⋅[<br />

x ⋅ ( E0θ<br />

⋅ cosφ<br />

i − Ε 0φ<br />

⋅ cosθ<br />

i ⋅ sin φi<br />

) + y ⋅ ( E0θ<br />

⋅ sinφ<br />

i + E0φ<br />

⋅ cosθ<br />

i ⋅ cosφi<br />

)] ⋅<br />

2π<br />

⋅η<br />

c<br />

a<br />

2<br />

2 2<br />

− j⋅k<br />

⋅ ( x−<br />

x')<br />

+ ( y−<br />

y')<br />

+ z<br />

⋅ ∫<br />

y′<br />

= d<br />

j⋅k<br />

⋅(<br />

x'⋅<br />

K + y'⋅L<br />

)<br />

e e<br />

∫<br />

2<br />

2 2<br />

x′<br />

= b ( x − x')<br />

+ ( y − y')<br />

+ z<br />

dx'<br />

dy′<br />

(18)<br />

where<br />

K = sinθ ⋅ cosφ<br />

(19)<br />

i<br />

i<br />

L = sinθ i ⋅sinφi<br />

(20)<br />

This equation is reduced to a simplified, yet complex expression by utilizing the<br />

accurate asymptotic result obtained from [2] for the case of a single integral. By combining<br />

)<br />

= I<br />

o<br />

+∞<br />

− I<br />

( x)<br />

⋅ exp(<br />

jkf ( x)<br />

) ⋅ dx − F(<br />

x)<br />

⋅ exp(<br />

jkf ( x)<br />

) ⋅ dx − FF(<br />

x)<br />

⋅ exp(<br />

jkff ( x)<br />

)<br />

I ′ = ∫ F<br />

∫<br />

∫<br />

−∞<br />

where<br />

a<br />

− I<br />

−b<br />

2 ⋅π<br />

⎛ ⎡ π<br />

I o = sgn o<br />

k ⋅ f ′′<br />

⋅ F(<br />

x ) ⎜ ( ) { ( ) } ⎟<br />

( )<br />

⎢<br />

′′<br />

o ⋅ exp j k ⋅ f xo<br />

+ ⋅ f x<br />

x<br />

⎥<br />

o<br />

⎝ ⎣ 4<br />

⎦⎠<br />

( a)<br />

2<br />

⋅exp{<br />

jk ⋅ f ( a)<br />

} + o(<br />

)<br />

′ ( a)<br />

F(<br />

b)<br />

2<br />

⋅ ⋅ exp{<br />

jk ⋅ f ( b)<br />

} + o(<br />

)<br />

f ′ ( b)<br />

+∞<br />

a<br />

⎤⎞<br />

+∞<br />

−b<br />

⋅ dx =<br />

(21<br />

1 F<br />

Ia = − ⋅<br />

jk f<br />

−<br />

k<br />

(23)<br />

′<br />

I− b = Ib<br />

=<br />

1<br />

jk<br />

−<br />

k<br />

(24)<br />

Double integral terms are far more complicated to compute utilizing the results of the<br />

single integral onto appropriately modified functions:<br />

j⋅k<br />

⋅ f ( xs<br />

, ys<br />

)<br />

I[<br />

0]<br />

≅ F(<br />

xs<br />

, ys<br />

) ⋅ e ⋅<br />

k ⋅<br />

j ⋅ 2 ⋅π<br />

⋅δ<br />

2<br />

4A<br />

⋅ B − C<br />

(25)<br />

1<br />

A = ⋅ f ′′ xx(<br />

xs<br />

, ys<br />

)<br />

2<br />

(26)<br />

1<br />

B = ⋅ f ′<br />

yy ( xs<br />

, ys<br />

)<br />

2<br />

(27)<br />

C = f ′′ x , y<br />

(28)<br />

xy<br />

( )<br />

s<br />

s<br />

(22)


- 167 -<br />

⎧+<br />

1<br />

⎪<br />

δ = ⎨−1<br />

⎪<br />

⎩<br />

− j<br />

,<br />

,<br />

,<br />

2<br />

4A<br />

⋅ B > C , A > 0<br />

2<br />

4A<br />

⋅ B > C , A < 0<br />

2<br />

4A<br />

⋅ B < C<br />

(29)<br />

where the stationary point (xs,ys) is defined by:<br />

( ) ⎟ ⎛<br />

x ⎜<br />

s , y s =<br />

⎜<br />

x +<br />

⎝<br />

K ⋅ z<br />

2 2<br />

1−<br />

K − L<br />

, y +<br />

L ⋅ z ⎞<br />

2 2<br />

1−<br />

K − L ⎠<br />

(30)<br />

and the functions on which the method is applied are:<br />

F s s<br />

( x , y ) =<br />

2<br />

1<br />

⎛ ⎛ K ⋅ z ⎞⎞<br />

⎛ ⎛ L ⋅ z ⎞⎞<br />

⎜<br />

2<br />

x − ⎜ x<br />

⎟⎟<br />

+ ⎜ y − ⎜ y<br />

⎟⎟<br />

+ z<br />

2 2<br />

2 2<br />

1 K L<br />

⎜ ⎜<br />

+<br />

⎜ ⎜<br />

+<br />

⎟⎟<br />

⎟<br />

1 K L<br />

⎟<br />

⎝ ⎝ − − ⎠⎠<br />

⎝ ⎝ − − ⎠⎠<br />

(31)<br />

⎛ K ⋅ z ⎞ ⎛ L ⋅ z ⎞<br />

( xs,<br />

y ) = ⎜ x<br />

⎟K<br />

⎜ y<br />

⎟<br />

⎜<br />

+<br />

L −<br />

2 2 ⎟<br />

+<br />

⎜<br />

+<br />

2 2 ⎟<br />

⎝ 1−<br />

K − L ⎠ ⎝ 1−<br />

K − L ⎠<br />

f s<br />

2<br />

⎛ ⎛ K ⋅ z ⎞⎞<br />

⎛ ⎛ L ⋅ z ⎞⎞<br />

2<br />

− ⎜ x − ⎜ x<br />

⎟⎟<br />

+ ⎜ y − ⎜ y<br />

⎟⎟<br />

+ z<br />

2 2<br />

2 2<br />

1 K L<br />

⎜ ⎜<br />

+<br />

⎜ ⎜<br />

+<br />

⎟⎟<br />

⎟<br />

1 K L<br />

⎟<br />

⎝ ⎝ − − ⎠⎠<br />

⎝ ⎝ − − ⎠⎠<br />

′<br />

I =<br />

o<br />

For the case of a double integral, the main terms will be transformed into:<br />

2⋅π<br />

⋅ F(<br />

x ′ o,<br />

y ) ⋅<br />

2<br />

∂ f<br />

k ⋅ 2<br />

∂x′<br />

x′<br />

= x , y′<br />

= y′<br />

o<br />

2<br />

⎛ ⎡<br />

⎤⎞<br />

⎜ ⎢<br />

⎪⎧<br />

2<br />

π ∂ f ⎪⎫<br />

⋅exp<br />

( )<br />

⎥⎟<br />

⎜<br />

j k ⋅ f x ′ o,<br />

y + ⋅sgn⎨<br />

2 ⎬<br />

⎢<br />

4<br />

⎥⎟<br />

⎝ ⎣<br />

⎪⎩<br />

∂x′<br />

x′<br />

= x y′<br />

= y′<br />

⎪⎭<br />

o , ⎦⎠<br />

1 F(<br />

a,<br />

y′<br />

)<br />

−2<br />

I′<br />

⋅exp{<br />

⋅ ( , ′<br />

a = − ⋅<br />

jk f a y ) } + o(<br />

k )<br />

jk ∂f<br />

∂x′<br />

(34)<br />

x′<br />

= a,<br />

y′<br />

= y′<br />

( b,<br />

y′<br />

)<br />

I ′ b =<br />

1 F<br />

⋅<br />

jk ∂f<br />

∂x′<br />

⋅ exp<br />

−<br />

k<br />

(35)<br />

x′<br />

= b,<br />

y′<br />

= y′<br />

2<br />

{ jk ⋅ f ( b,<br />

y′<br />

) } + o(<br />

)<br />

where xo the solution of equation:<br />

∂f<br />

( x′<br />

, y′<br />

)<br />

= 0<br />

∂x′<br />

x′ = xo<br />

, y′<br />

= y′<br />

By defining the following set of functions, furthermore appliance of the method may<br />

calculate the terms for the edges of the plate, not documented for the case of a double integral.<br />

∂f<br />

′ ( 01)<br />

( y′<br />

)<br />

= 0<br />

(37)<br />

∂y′<br />

∂f<br />

′<br />

( 02)<br />

∂f<br />

′<br />

∂y′<br />

( 03)<br />

∂y′<br />

( y′<br />

)<br />

( y′<br />

)<br />

y′<br />

= y<br />

y′<br />

= y<br />

y′<br />

= y<br />

01<br />

02<br />

03<br />

= 0<br />

= 0<br />

2<br />

(32)<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271<br />

(33)<br />

(36)<br />

(38)<br />

(39)


F′<br />

( 01)<br />

2π<br />

2<br />

∂ f<br />

k 2<br />

∂x′<br />

( y′<br />

) =<br />

F(<br />

x , y′<br />

)<br />

⎛<br />

⎜ ⎪⎧<br />

2<br />

π ∂ f<br />

⋅exp<br />

j ⋅ sgn<br />

⎜ ⎨ 2<br />

4<br />

⎝ ⎪⎩<br />

∂x′<br />

f ′ y′<br />

= f xo<br />

, y′<br />

( ) ( )<br />

x′<br />

= xo<br />

, y′<br />

= y′<br />

x′<br />

= xo<br />

, y′<br />

= y′<br />

⎪⎫<br />

⎞<br />

⎟<br />

⎬<br />

⎪⎭<br />

⎟<br />

⎠<br />

o<br />

⋅<br />

- 168 -<br />

( 01)<br />

(41)<br />

F′<br />

( 02)<br />

( y′<br />

)<br />

1 F<br />

= − ⋅<br />

jk ∂f<br />

∂x′<br />

( a,<br />

y′<br />

)<br />

x′<br />

= a,<br />

y′<br />

= y′<br />

( y′<br />

) = f ( a y )<br />

( y′<br />

) =<br />

1<br />

⋅<br />

F(<br />

b,<br />

y′<br />

)<br />

f ′ , ′<br />

( 02)<br />

(43)<br />

F′<br />

( 03)<br />

jk<br />

∂f<br />

∂x′<br />

( y′<br />

) = f ( b y )<br />

f ′ , ′<br />

x′<br />

= b,<br />

y′<br />

= y′<br />

( 03)<br />

(45)<br />

By defining the rest of the terms we have presented a new method for the case of the<br />

asymptotic double integral calculation based on results obtained from the single integral<br />

mathematical formulas.<br />

I<br />

=<br />

+∞ +∞<br />

j⋅k⋅<br />

f ( x′<br />

, y′<br />

)<br />

[] 1 = F(<br />

x′<br />

, y′<br />

) ⋅ e<br />

∫∫<br />

−∞x′<br />

= a<br />

2 ⋅π<br />

2<br />

∂ f ′ ( 02)<br />

k ⋅ 2<br />

∂y′<br />

⎛ ⎡<br />

⎜<br />

⋅ exp ⎢<br />

⎜ j k ⋅ f ′ (<br />

⎜ ⎢<br />

⎝ ⎣<br />

I<br />

02)<br />

y′<br />

= y02<br />

( y )<br />

02<br />

⋅ F ′<br />

( 02)<br />

dx′<br />

⋅ dy′<br />

=<br />

( y )<br />

02<br />

⎧ 2<br />

π ⎪∂<br />

f ′ (<br />

+ ⋅ sgn⎨<br />

2<br />

4 ⎪⎩<br />

∂y′<br />

j⋅k<br />

⋅ f ( x′<br />

, y′<br />

)<br />

[] 2 = F(<br />

x′<br />

, y′<br />

) ⋅ e<br />

=<br />

+∞x′<br />

= b<br />

∫∫<br />

−∞<br />

−∞<br />

2 ⋅ π<br />

2<br />

∂ f ′ ( 03)<br />

k ⋅ 2<br />

∂y′<br />

⎛ ⎡<br />

⎜<br />

⋅ exp ⎢<br />

⎜ j k ⋅ f ′ (<br />

⎜ ⎢<br />

⎝ ⎣<br />

03)<br />

y′<br />

= y03<br />

( y )<br />

03<br />

⋅ F ′<br />

( 03)<br />

⋅<br />

( y )<br />

02)<br />

dx′<br />

⋅ dy′<br />

=<br />

03<br />

⎧ 2<br />

π ⎪∂<br />

f ′ (<br />

+ ⋅ sgn⎨<br />

2<br />

4 ⎪⎩<br />

∂y′<br />

⋅<br />

03)<br />

y′<br />

= y02<br />

y′<br />

= y03<br />

⎫⎤⎞<br />

⎪ ⎟<br />

⎬<br />

⎥<br />

⎥<br />

⎟<br />

⎪⎭<br />

⎟<br />

⎦⎠<br />

⎫⎤⎞<br />

⎪ ⎟<br />

⎬<br />

⎥<br />

⎥⎟<br />

⎪⎭<br />

⎟<br />

⎦⎠<br />

(40)<br />

(42)<br />

(44)<br />

(46)<br />

(47)


I<br />

j⋅k⋅<br />

f ( x′<br />

, y′<br />

)<br />

[] 3 = F(<br />

x′<br />

, y′<br />

) ⋅ e<br />

=<br />

y′<br />

= d<br />

∫<br />

−∞<br />

y′ = d a<br />

− ∞ x′<br />

= b<br />

( I ′ − I ′ − I ′ )<br />

0<br />

∫ ∫<br />

a<br />

⋅ dy′<br />

=<br />

[ 3.<br />

1]<br />

− I[<br />

3.<br />

2]<br />

− I[<br />

3.<br />

3]<br />

b<br />

dx′<br />

⋅ dy′<br />

=<br />

- 169 -<br />

= I<br />

y′<br />

= d<br />

I[<br />

3 . 1]<br />

= ∫ I o ⋅ dy′<br />

=<br />

−∞<br />

1 F ′ ( 01)<br />

( d )<br />

⋅<br />

jk ∂f<br />

′ ( 01)<br />

⋅ exp{<br />

jk ⋅ f ′ ( 01)<br />

( d ) }<br />

∂y′<br />

y′<br />

= d<br />

(49)<br />

y′<br />

= d<br />

I[<br />

3 . 2]<br />

= ∫ I a ⋅ dy′<br />

=<br />

−∞<br />

1 F ′ ( 02)<br />

( d )<br />

⋅<br />

jk ∂f<br />

′ ( 02)<br />

⋅ exp{<br />

jk ⋅ f ′ ( 02)<br />

( d ) }<br />

(50)<br />

∂y′<br />

y′<br />

= d<br />

y′<br />

= d<br />

I[<br />

3 . 3]<br />

= ∫ I ′ b ⋅ dy′<br />

=<br />

−∞<br />

1 F′<br />

( 03)<br />

( d )<br />

⋅<br />

jk ∂f<br />

′ ( 03)<br />

∂y′<br />

⋅ exp{<br />

jk ⋅ f ′ ( 03)<br />

( d ) }<br />

I<br />

=<br />

j⋅k<br />

⋅ f ( x′<br />

, y′<br />

)<br />

[] 4 = F(<br />

x′<br />

, y′<br />

) ⋅ e<br />

( I′<br />

− I′<br />

− I′<br />

)<br />

o<br />

y′<br />

= c<br />

a<br />

y′<br />

= c x′<br />

= b<br />

a<br />

b<br />

⋅ dy′<br />

=<br />

y′<br />

= d<br />

I[<br />

4.<br />

1]<br />

− I[<br />

4.<br />

2]<br />

− I[<br />

4.<br />

3]<br />

+∞<br />

1 F(<br />

′ 01<br />

[ ] )( c)<br />

. 1 = ∫ I′<br />

⋅ dy′<br />

= − ⋅<br />

=<br />

+ ∞<br />

∫<br />

+∞<br />

∫ ∫<br />

dx′<br />

⋅ dy′<br />

=<br />

(51)<br />

{ jk ⋅ f }<br />

I 4<br />

y′<br />

= c jk ∂f(<br />

′ 01)<br />

∂y′<br />

⋅ exp ′<br />

o 01<br />

y′<br />

= c<br />

+∞<br />

1 F(<br />

′ 02<br />

[ ] )( c)<br />

. 2 = I ′ ⋅ dy′<br />

= − ⋅<br />

( )() c<br />

(53)<br />

{ jk ⋅ f }<br />

I 4 ∫ a<br />

y′<br />

= c jk ∂f<br />

( ′ 02)<br />

∂y′<br />

⋅ exp ′ 02<br />

(54)<br />

y′<br />

= c<br />

+∞<br />

1 F(<br />

′ 03<br />

[ ] )( c)<br />

. 3 = I′<br />

⋅ dy′<br />

= − ⋅<br />

( )() c<br />

{ }<br />

∫ b ⋅ exp jk ⋅ f(<br />

03)()<br />

c<br />

(55)<br />

jk ∂f(<br />

′ 03)<br />

I 4 ′<br />

y′<br />

= c<br />

∂y′<br />

y′<br />

= c<br />

The final result for the modified stationary phase method is obtained through equation:<br />

I = I[<br />

0]<br />

− I[<br />

1]<br />

− I[<br />

2]<br />

− I[<br />

3]<br />

− I[<br />

4]<br />

(56)<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271<br />

(48)<br />

(52)


- 170 -<br />

3. Results<br />

Table 1. SPM and Numerical Integration Simulation Parameters<br />

Symbol Quantity Value<br />

λ Wavelength 0.3m<br />

r Observation distance r < Fresnel area 1<br />

Fresnel area 1 < r < Far Field area 1<br />

r > Far Field area 1<br />

φi Angle of incidence 225 o<br />

θi Angle of incidence 45 ο<br />

φs<br />

Observation angle<br />

θs Observation angle 0 o – 90 o<br />

E0θ Constant related to emitted field (θ) 1 V/m<br />

E0φ Constant related to emitted field (φ) 1 V/m<br />

a-b x axis plate dimension 20λ, 40λ, 60λ, 80λ<br />

c-d y axis plate dimension 20λ, 40λ, 60λ, 80λ<br />

Furthermore, in order to check the accuracy of our asymptotic calculations, standard<br />

(e.g. Gaussian) numerical integration was used to compare the results. Due to complex<br />

calculations, a simulating application was developed using Matlab’s symbolic toolbox which<br />

is barely able to handle the exhaustive calculations needed. SPM and numerical integration<br />

results for the total scattered electric field are presented here for the frequency of 1GHz, and a<br />

rectangular plate with side length equal to 40λ. Elevation and azimuth angles were assumed<br />

equal to 45 degrees.<br />

Comparison charts in Figs. 4 – 6 below indicate reasonable convergence between the<br />

asymptotic results of the SPM method, drawn with solid line, and the numerical results of<br />

standard integration, drawn with dashed line. More simulation results were obtained<br />

according to the simulation parameters of table 1, and showed satisfactory agreement.<br />

Fig. 4. Total Electric Filed for 40λ plate side, Far Field area.<br />

45 ο


- 171 -<br />

Fig. 5. Total Electric Filed for 40λ plate side, Fresnel area.<br />

Fig. 6. Total Electric Filed for 40λ plate side, Near Field area.<br />

4. Conclusions<br />

Even though rather complicated mathematical formulas are involved in the proposed<br />

SPM method, it is very important that this technique is much faster than the numerical<br />

integration (namely, SPM in this case is about 40 times faster). This is very important this is<br />

e.g. for a propagation problem in an urban outdoor environment, in which case many<br />

scatterers (walls) and multiple reflection phenomena are present. The SPM method presented<br />

here appears to be very attractive for the calculation of vector potential and electric field in<br />

various radio propagation simulation tools.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 172 -<br />

REFERENCES<br />

1. C. A. Balanis, "Antenna Theory: Analysis and Design", John Wiley & Sons, New York,<br />

1996, pp. 922-926.<br />

2. Graeme L. James, Geometrical Theory Of Diffraction for Electromagnetic Waves, UK,<br />

IEE 1976, pp. 30-42.<br />

3. David C. Jenn, Radar and Laser Cross Section <strong>Engineering</strong>, American Institute of<br />

Aeronautics and Astronautics, Inc. Washington, 1995, pp. 29-33.<br />

National Technical University of Athens, School of Electrical and <strong>Computer</strong> <strong>Engineering</strong>,<br />

Division of Information Transmission Systems and Materials Technology,<br />

Radar Systems and Remote Sensing Laboratory,<br />

9 Iroon Polytechniou Str. 15773 Zografou, Athens, Greece<br />

phone: +30210-772-3694 ;fax: +30210-772-2281;<br />

E-mail: pfrangos@central.ntua.gr


- 173 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

SIMPLESCALAR SIMULATION TOOL<br />

MARIA MARINOVA, ELENA DUNCHEVA<br />

Abstract. The SimpleScalar tool set includes sample simulators ranging from fast<br />

functional simulator to detailed, dynamically scheduled processor model that<br />

supports non-blocking cache, speculative execution and branch prediction. Using<br />

the Simplescalar tools, users can build modelling applications that simulate real<br />

programs running on a range of modern processors and systems. The simulators<br />

generate statistics for different parameters – cycle per instruction, instruction per<br />

cycle, branch prediction speed, cache misses, hit ratio in table look-aside buffer,<br />

and other.<br />

Key words: SimpleScalar, superscalar processor, out-order execution.<br />

СИМУЛАЦИОННА ТЕХНИКА SIMPLESCALAR<br />

1. Въведение<br />

Симулацията е изключително мощна приложна методология, чийто основни<br />

цели са: да опише структурата на изследваната система чрез създаване на нейн модел;<br />

да даде необходимата информация за изграждането на достоверна хипотеза или теория<br />

за поведението на системата; да послужи като средство за предсказване на ефекти,<br />

породени от промяна в системата или в правилата на нейното функциониране.[1]<br />

Симулационната техника SimpleScalar[2] ни предоставя възможност за симулиране<br />

изпълнението на суперскаларен процесор. Тази симулационна среда включва няколко<br />

симулатора, чрез които могат да се симулират различни компютърни архитектури.<br />

Базовата архитектура на симулатора се основава на суперскаларния(СС) процесор<br />

MIPS R10000, който изпълнява на всеки такт 4 64-разрядни инструкции. При този<br />

процесор е реализирано динамично подаване на инструкциите към свободните<br />

конвейри и подава инструкциите неподредено(out-order). Към симулатора е включен<br />

пакет от реални тестиращи програми(т.нар. benchmarks), които се подават за<br />

изпълнение от суперскаларния процесор.<br />

2. Симулатори от SimpleScalar<br />

Симулаторът за неподредено изпълнение (sim-outorder) е най-усъвършенствания<br />

и детайлен симулатор. Генерира статистики за процесор, изпълняващ неподредено<br />

инструкции с кеш от първо и второ ниво и оперативна памет, реализирана чрез<br />

опашката Load/Store. Основни модули в симулатора са RUU и Load/Store буфер – фиг.1.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 174 -<br />

Спекулативно подаване и изпълнение на инструкциите се осъществява от<br />

устройството RUU (Register Update Unit). Използва буфер за преподреждане, за да<br />

преименува автоматично регистрите и да задържи резултатите на неизпълнените<br />

инструкции. Всеки такт буферът за преподреждане записва резултатие на завършилите<br />

инструкции в регистровия файл.<br />

Системната памет използва Load/Store буфера. Записаните стойности се<br />

преместват в опашката при спекулативен запис. Четенето се изпраща до системната<br />

памет само, когато са известни адресите на всички предишни записи. Може да се чете<br />

от системната памет или по-ранна записана стойност, присъстваща в буфера, ако<br />

адресите им съвпадат. Спекулативното четене може да генерира непопадения в кеша<br />

(misses), докато условния преход е неизвестен.<br />

Фиг.1 Конвейр на sim-outorder<br />

Главният цикъл на симулатора е разположен в sim_main() и изглежда по следния начин:<br />

ruu_init();<br />

for (;;) {<br />

ruu_commit();<br />

ruu_writeback();<br />

lsq_refresh();<br />

ruu_issue();<br />

ruu_dispatch();<br />

ruu_fetch();<br />

}<br />

Цикълът се изпълнява по един път за всеки симулиран машинен такт. Ако<br />

конвейера се обърне, вътрешно-фазовата синхронизация може да се управлява само с<br />

едно преминаване през всяка фаза. При извикване на exit(), симулаторът извършва<br />

longjmp() към main(), за да генерира резултати.<br />

Фазата на извличане е реализирана в ruu_fetch().<br />

FETCH<br />

Mispredistion (from<br />

Writeback)<br />

To Instruction Fetch<br />

Queue<br />

Устройството за извличане определя как процесора извличане машинните<br />

инструкции, взимайки в предвид стойността на програмния брояч, състоянието на<br />

логиката за предсказване на преходи (branch predictor) и неправилното предсказаните


- 175 -<br />

преходи, засечени от устройствата за преход. Всеки такт Фазата на извличане извлича<br />

инструкции само от един ред на кеша за инструкции. Извлечените инструкции се<br />

подават към опашката за изпращане (Dispatch Queue) и се изследва (line predictor), за да<br />

се определи правилният ред от кеша, който да е достъпен в следващият цикъл.<br />

Фазата за изпращане е реализирана в ruu_dispatch() и моделира декодирането<br />

на инструкция и преименуването на регистрите.<br />

Instruction from<br />

Instruction Fetch<br />

Queue<br />

DISPATCH<br />

To RUU or<br />

LSQ<br />

Функцията използва инструкциите от опашката (запълнена през фазата на<br />

извличане), указател към активно RUU, таблица за преименуване и състоянието на<br />

процесора. На всеки такт диспечерът изпраща инструкции от опашката за извличане<br />

(fetch queue) към опашката за планиране (scheduler queue). Ако се срещне неправилно<br />

предсказан условен преход започва въстановяване на пресъздаденото състояние в<br />

буфери на състоянието. В тази фаза RUU и Load/Store опашката (LSQ) се “захранват” с<br />

инструкции. Инструкциите за обръщение към паметта се разделят на две отделни<br />

инструкции (ADD и LOAD/STORE) и се подобрява проверката на зависимостите по<br />

памет.<br />

Фазата на подаване на инструкции се реализира от ruu_issue() и lsq_refresh().<br />

RUU, LSQ REGISTER<br />

To Functional<br />

SCHEDULER<br />

Units<br />

MEMORY<br />

SCHEDULER<br />

Те моделират “събуждането” и подаването на инструкция конвейрите, като<br />

проследяват зависимостите регистър-памет. На всеки такт, процедурата по планиране<br />

открива инструкции, за които има вече готовите входове на регистрите. Подаването на<br />

готови инстукции за четене от паметта се блокира ако има по-ранен запис с нерешен<br />

действителен адрес в Load/Store опашката. Ако адреса на по-ранния запис съвпада с<br />

адреса на чакащото четене, записаната стойност се прочита (четенето е изпратено към<br />

системната памет).<br />

Фазата на изпълнение се реализира от ruu_issue().<br />

Issued<br />

Instructions from<br />

Scheduler<br />

EXEC<br />

MEM<br />

Memory request to D -Cache<br />

Finished<br />

Instructions to<br />

Writeback<br />

Всеки такт процедурата получава толкова инструкции, колкото са изпратени от<br />

опашката за планиране (Scheduler Queue). Прави се проверка за налични функционални<br />

устройства и ако има такива, им се подават инструкциите. Накрая процедурата планира<br />

записа, използвайки латентността (latency) на функционалните устройства. Липсата на<br />

данни в буфера TLB, която блокира подаването на инструкции за обмен с паметта, се<br />

обслужва във фазата на отегляне. Латентностите на функционалните устройства са<br />

записани в дефинирането на fu_config[] в sim-outorder.c.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 176 -<br />

Фазата на запис се реализира в ruu_writeback().<br />

Detected Mispredictions<br />

to Fetch<br />

Finished Instructions from<br />

Execute<br />

WRITEBACK Instructions ready to<br />

Commit<br />

На всеки такт се проверява опашката за завършили инструкции. Когато се<br />

открие завършила инструкция, се обхожда веригата на зависимостите между изходите<br />

на инструкциите, за да се маркират инструкции, които са зависими от завършилата<br />

инструкция. Ако зависима инструкция все още не е завършила, процедурата я маркира<br />

като готова за подаване.<br />

Фазата на запис открива и неправилно предсказани преходи, когато е срещнат<br />

такъв преход, тя връща състоянието обратно към контролната точка, отхвърляйки<br />

неправилно подадените инструкции.<br />

ruu_commit() управлява инструкциите от фазата на запис, който са готови да<br />

фазата на отегляне.<br />

Instructions ready to<br />

Commit from<br />

Writeback<br />

COMMIT<br />

Процедурата извършване подреден запис на инструкциите, обновява на<br />

кешовете за данни (или паметта) със записаните стойности и контролира<br />

непопаденията на данни в TLB. Процедурата задържа т.нар. “пенсионирани”<br />

инструкции, които са готови за отеглянев началото на RUU, докато главната<br />

инструкция все още не е завършила. Когато инструкция е в тази фаза, нейният резултат<br />

се премества в регистровия файл и ресурсите на RUU / LSQ съобщават, че тази<br />

инструкция е поправена.<br />

3. Симулации<br />

За симулиране изпълнението на суперскаларен процесор използвам<br />

симулационна техника SimpleScalar, чиято базова архитектура се основава на<br />

суперскаларния процесор MIPS R10000 и в частност симулатора sim-outorder,<br />

поддържащ неподредено подаване и изпълнение на инструкциите и генериращ времева<br />

статистика. Симулираната компютърна архитектура подава и изпълнява неподредено<br />

(out-of-order) инструкциите и има две нива кеш и оперативна памет.<br />

SimpleScalar предоставя възможност за симулиране на разнообразни тестиращи<br />

програми (т.нар. benchmarks), с които може да се тества производителността на<br />

различни процесорни архитектури.[3]<br />

3.1. Тестиращи програми<br />

• go - използва се за просто тестване на производителността на симулирания<br />

процесор.;<br />

• compress 95 – базирана е на стандартна компресия в UNIX. Версията на теста е<br />

модифицирана за тестване на паметта. При пускане на теста се генерира голям<br />

буфер с данни, чието съдържание се компресира.<br />

• Тестът на Дикстра е разработен въз основа на алгоритъма на Дикстра за<br />

откриване на най-краткия път между два възела в граф.<br />

• Тестът Риндаел е разработен на базата на алгоритъма за блоково шифриране,<br />

възприет като стандарт за криптиране.<br />

• Алгоритъм за криптографски хеш памети – тестиращата програма е<br />

разработена въз основа на SHA(Secure Hash Algorithm) алгоритъм.


- 177 -<br />

3.2. Резултати<br />

След симулацията на тестиращите програми от симулатора sim-outorder<br />

анализирамe следните параметри:<br />

sim_total_insn – брой изпълнени инструкции;<br />

sim_total_refs – брой изпълнени инструкции за обръщение към паметта;<br />

sim_total_loads - брой изпълнени инструкции за четене от паметта;<br />

sim_total_stores - брой изпълнени инструкции за запис в паметта;<br />

sim_total_branches - брой изпълнени инструкции за преход;<br />

sim_IPC – брой инструкции, които се изпълняват за един такт;<br />

sim_CPI – брой тактове, необходими за изпълнението на една инструкция;<br />

il1.accesses – брой обръщения към кеша от първо ниво за инструкции;<br />

il1.hits – честота на попадения в il1;<br />

il1.misses – честота на непопадения в il1;<br />

il1.replacements – брой замествания в il1;<br />

il1.writebacks – брой записи в il1;<br />

dl1.accesses – брой обръщения към кеша от първо ниво за данни;<br />

dl1.hits – честота на попадения в dl1;<br />

dl1.misses – честота на непопадения в dl1;<br />

dl1.replacements – брой замествания в dl1;<br />

dl1.writebacks – брой записи в dl1;<br />

ul2.accesses - обръщения към кеша от второ ниво;<br />

ul2.hits – честота на попадения в ul2;<br />

ul2.misses – честота на непопадения в ul2;<br />

ul2.replacements – брой замествания в ul2;<br />

ul2.writebacks – брой записи в ul2;<br />

itlb.accesses – брой обръщения към TLB за инструкции;<br />

itlb.hits – честота на попадения в itlb;<br />

dtlb.accesses - брой обръщения към TLB за данни;<br />

dtlb.hits – честота на попадения в dtlb;<br />

mem.page_mem – големина на страниците, разположени в паметта;<br />

mem.ptab_misses – брой на страниците, които липсват в паметта;<br />

Забележка: Симулираната процесорна архитектура има две нива кеш, който е<br />

разделен на кеш за инструкции и кеш за данни от първо ниво или второ ниво.<br />

Означенията са il1 и dl1 – кеш от първо ниво съответно за инструкции и за данни и il2<br />

и dl2 – кеш от второ ниво съответно за инструкции и за данни. Кешът за инструкции<br />

и кешът за данни на всяко ниво могат да се обединят, като се насочи кешът за<br />

инструкции към кеша за данни за всяко ниво и се използват аргументите за<br />

конфигуриране на кешовете за данни dl1 и dl2 и за двете нива. Симулираната<br />

процесорна архитектура използва обединен кеш от второ ниво с означение ul2. Също<br />

така и TLB е разделен на TLB за инструкции (itlb) и TLB за данни (dtlb).<br />

Стойностите на анализираните параметри, получени при симулация на<br />

описаните по-горе тестиращи програми са дадени в таблицата 1.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 178 -<br />

Таблица 1. Параметри на симулационната техника SimpleScalar<br />

go compress95 dijkstra rijndael sha<br />

sim_total_insn 1041989 3069412 55667370 38108159 13569524<br />

sim_total_refs 242297 1992888 19418083 12033940 2610960<br />

sim_total_loads 127289 163919 15022507 8989587 1995046<br />

sim_total_stores 115008 1828969 4395576 3044353 615914<br />

sim_total_branches 172983 260224 10000079 2240622 859096<br />

sim_IPC 1,9573 1,7439 1,869 1,9417 2,8234<br />

sim_CPI 0,5109 0,5734 0,535 0,515 0,3542<br />

il1.accesses 1087669 3100829 56135385 39241347 13704591<br />

il1.hits 1086398 3088192 55975880 38349316 13699763<br />

il1.misses 1271 12637 159505 892031 4828<br />

il1.replacements 777 12187 159021 891531 4358<br />

il1.writebacks 0 0 0 0 0<br />

dl1.accesses 222420 1963656 17647502 11835840 2534710<br />

dl1.hits 210537 1735202 17493696 11833396 2533936<br />

dl1.misses 11883 228454 153806 2444 774<br />

dl1.replacements 11371 227942 153294 1932 262<br />

dl1.writebacks 10365 225257 9884 672 254<br />

ul2.accesses 23519 466348 323195 895147 5856<br />

ul2.hits 17940 410976 321635 894141 5023<br />

ul2.misses 5579 55372 1560 1006 833<br />

ul2.replacements 1608 51276 0 0 0<br />

ul2.writebacks 1177 45542 0 0 0<br />

itlb.accesses 1087669 3100829 56135385 39241347 13704591<br />

itlb.hits 1087642 3100809 56135367 39241330 13704577<br />

dtlb.accesses 223139 1980663 19188662 11894346 2534770<br />

dtlb.hits 223019 1980458 19188640 11894332 2534759<br />

mem.page_mem 1128k 624k 188k 164k 124k<br />

mem.ptab_missses 282 164 75 49 31<br />

След направените симулации за визуализиране на получените резултати и полесното<br />

им анализиране следват графики.<br />

3069412<br />

1041989<br />

13569524<br />

total_ins<br />

38108159<br />

go compress95 sha rijndael dijkstra<br />

55667370<br />

фиг.2 Брой на изпълнените инструкции по време на симулацията.<br />

Най-много изпълнени инструкции има при алгоритъма на Дикстра, последван<br />

от алгоритъма на Риндаел и с най-малко инструкции е go. От тук става ясно, че найголяма<br />

заетост (производителност) на процесора има при алгоритъма на Дикстра.


- 179 -<br />

На следващата, фиг.3. се вижда, че параметърът брой обръщения към паметта<br />

има най-голяма стойност при програмите Дикстра и Риндаел, защото при тях има найголям<br />

брой изпълнени инструкции.<br />

242297<br />

2610960<br />

1992888<br />

total_refs<br />

12033940<br />

go compress95 sha rijndael dijkstra<br />

фиг.3 Брой обръщения към паметта.<br />

benchmarks<br />

8989587<br />

loads/stores<br />

rijndael<br />

15022507<br />

dijkstra<br />

1995046<br />

sha 615914<br />

163919<br />

compress95 1828969<br />

127289<br />

go<br />

115008<br />

3044353<br />

instructions<br />

sim_total_loads sim_total_stores<br />

19418083<br />

4395576<br />

фиг. 4 Обръщения към паметта<br />

Както и в предишните графики и тук параметрите запис и четене от паметта<br />

имат най-малки стойности при изпълнение на тестиращите програми go, compress95 и<br />

sha. При go и compress95 инструкциите за четене са значително по-малко от<br />

инструкциите за запис, докато при останалите програми се наблюдава обратното.<br />

859096<br />

260224<br />

172983<br />

2240622<br />

фиг. 5. Инструкции за преход<br />

total_branches<br />

10000079<br />

rijndael<br />

dijkstra<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271<br />

sha<br />

compress95<br />

go


- 180 -<br />

Напълно логично и на фиг. 5 се вижда, че най-малко инструкции за преход се<br />

изпълняват при go и compress95.<br />

rijndael<br />

dijkstra<br />

sha<br />

compress95<br />

go<br />

0,515<br />

0,535<br />

0,3542<br />

0,5734<br />

0,5109<br />

1,9417<br />

1,869<br />

1,7439<br />

1,9573<br />

sim_CPI<br />

sim_IPC<br />

2,8234<br />

Фиг. 6 CPI - брой тактове, необходими за изпълнението на една<br />

инструкция и IPC – брой инструкции, изпълнени за един такт<br />

Най-добри резултати по отношение на параметъра IPC дава алгоритъмът за<br />

защита на данните (sha). За останалите benchmarks стойностите са близки.<br />

il1<br />

1087669<br />

1086398<br />

go<br />

777<br />

3100829<br />

3088192<br />

compress95<br />

12187<br />

13704591<br />

sha<br />

13699763<br />

4358<br />

56135385<br />

dijkstra<br />

il1.accesses il1.hits il1.replacements<br />

55975880<br />

159021<br />

rijndael<br />

фиг. 7 и фиг. 8 Честота на попадение в кеша за инструкции/данни от първо ниво.<br />

dl1<br />

222420<br />

210537<br />

11371<br />

10365<br />

1963656<br />

1735202<br />

227942<br />

225257<br />

go<br />

compress95<br />

2534710<br />

2533936<br />

sha<br />

17647502<br />

262<br />

254<br />

dijkstra<br />

17493696<br />

153294<br />

9884<br />

11835840<br />

rijndael<br />

39241347<br />

38349316<br />

11833396<br />

891531<br />

1932<br />

672<br />

dl1.accesses dl1.hits dl1.replacements dl1.writebacks<br />

Разглеждам заедно фиг. 7 и фиг. 8. Честотите на попадение в кеша за<br />

инструкции от първо ниво (фиг. 7) и в кеша за данни от първо ниво (фиг. 8) са много


- 181 -<br />

високи. Отново този параметър има най-големи стойности при Дикстра и Риндаел,<br />

които значително се отличават.<br />

ul2<br />

23519<br />

17940<br />

1608<br />

1177<br />

go<br />

466348<br />

410976<br />

compress95<br />

51276<br />

45542<br />

5856<br />

5023<br />

sha<br />

0<br />

0<br />

323195<br />

321635<br />

dijkstra<br />

0<br />

0<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271<br />

895147<br />

rijndael<br />

894141<br />

0<br />

0<br />

ul2.accesses ul2.hits ul2.replacements ul2.writebacks<br />

Фиг. 9<br />

Наблюдава, че честотата на попадение в кеша от второ ниво (обединен е кеша за<br />

инструкции и кеша за данни) вече има най-големи стойности при програмите Риндаел<br />

и compress95, а Дикстра остава на по-задни позиции.<br />

rijndael<br />

dijkstra<br />

sha<br />

compress95<br />

go<br />

3100809<br />

3100829<br />

1087642<br />

1087669<br />

13704577<br />

13704591<br />

iTLB<br />

39241330<br />

39241347<br />

itlb.accesses itlb.hits<br />

фиг. 10<br />

56135367<br />

56135385<br />

Фиг. 10 и фиг. 11 представят честотите на попадение съответно в TLB за<br />

инструкции и в TLB за данни. И тук отново най-големи стойности за този параметър<br />

дават Дикстра и Риндаел. Параметрите, характеризиращи TLB за инструкции имат<br />

значително по-високи стойности от параметрите, характеризиращи TLB за данни.


compress95<br />

size, KB<br />

rijndael<br />

dijkstra<br />

sha<br />

go<br />

1128<br />

1980458<br />

1980663<br />

223019<br />

223139<br />

2534759<br />

2534770<br />

dTLB<br />

dtlb.accesses dtlb.hits<br />

624<br />

фиг. 11<br />

- 182 -<br />

11894332<br />

11894346<br />

mem.page_mem<br />

124<br />

19188640<br />

19188662<br />

188 164<br />

go compress95 sha dijkstra rijndael<br />

benchmarks<br />

фиг. 12<br />

Показва размера на страниците, които се намират в оперативната памет. За<br />

разлика от предишните графики тук най-голям е размера на страниците при програмата<br />

go, затова при нея има най-малко изпълнени инструкци.<br />

pages<br />

282<br />

164<br />

mem.ptab_missses<br />

31<br />

go compress95 sha dijkstra rijndael<br />

benchmarks<br />

фиг. 13 Брой станиците, които липсват.<br />

Най-големи стойности има при програмите go и compress95. Когато в<br />

оперативната памет има страници с голяма дължина, техният брой ще е по-малък, а<br />

75<br />

49


- 183 -<br />

това означава, че стойността на параметъра misses (липсващи страници) е голяма и това<br />

понижава производителността на процесора, която се изразява в брой инструкции за<br />

единица време.<br />

4. Заключение<br />

В резултат от направените симулации на програмите go, compress95, sha,<br />

dijkstra и rijndael и анализираните резултати, могат да се направят следните<br />

заключение, че ниската производителност при тестовете go и compress95 се дължи на<br />

големината на страниците, които се зареждат в оперативната паметта, защото по този<br />

начин се намалява честотата на попадение в паметта, а от там като цяло спада и<br />

производителността на процесора.<br />

1. M.Behar. “SimpleScalar Introduction”<br />

2. http://www.simplescalar.com<br />

3. http://www.spec.org/cpu<br />

Department of Electrical <strong>Engineering</strong><br />

Technical University–Sofia, Plovdiv Branch<br />

25, Tsanko Dystabanov Str.<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail:mr_marinova@yahoo.com<br />

ЛИТЕРАТУРА<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 184 -


- 185 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

A MODULE FOR A DYNAMIC PRESENTATION OF<br />

EXAMPLES IN ELECTRONIC TEXTBOOKS ON WEB<br />

PROGRAMMING – A METHOD FOR ITS REALIZATION<br />

YURI HOPTERIEV<br />

Abstract. This paper describes a module, designed for the dynamic presentation of<br />

examples in web format e-textbooks on languages that are interpreted by a browser on a<br />

client computer. The solution of a sample problem is presented by the module in terms of<br />

stages and steps. Using the possibilities of the web page and the functions of the browser,<br />

the learner is given an opportunity (i) to view the result of the solution at each stage, (ii)<br />

to make experiments on the model examples, (iii) to solve and test the assignments in the<br />

electronic textbook itself. The data structures and methods of realization of the module<br />

are described.<br />

Key words: web programming, e-learning, e-textbook.<br />

МОДУЛ ЗА ДИНАМИЧНО ПРЕДСТАВЯНЕ НА ПРИМЕРИ В<br />

ЕЛЕКТРОННИ УЧЕБНИЦИ ПО ПРОГРАМИРАНЕ ЗА ИНТЕРНЕТ –<br />

НАЧИН ЗА РЕАЛИЗАЦИЯ<br />

1. Въведение<br />

Развитието на дистанционното обучение [1] е свързано с използването на<br />

съвременните информационни технологии [4], предоставящи възможност за създаване<br />

на електронни курсове и учебници, които качествено се отличават от хартиените. В<br />

електронните учебни материали може да се включат функции, които до известна степен<br />

компенсират липсата на пряк контакт между студент и преподавател. В работата е<br />

разгледан модул, осъществяващ подход [2] за динамично представяне на примери в<br />

електронни учебници в уеб-формат по езиците, които се интерпретират от браузера на<br />

машината-клиент.<br />

2. Възможности на модула<br />

Посредством модула се представят учебни примери и се възлагат задачи, чието<br />

решаване се свежда до писане на HTML-код или скрипт.<br />

2.1. Представяне на примерна задача<br />

1) Извежда се условието на задачата и се показва очакваният резултат от<br />

решението.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 186 -<br />

2) Показва се процесът на решаване на задачата. Кодът на решението се<br />

представя в текстов редактор по етапи и по стъпки 2 . Стъпката е посимволно извеждане<br />

или изтриване на низ (в частност- един символ), представляващ малка част (подниз) от<br />

решението. Серията е последователност от стъпки (в частност- една стъпка), която се<br />

изпълнява без прекъсване във времето. Например първа серия от стъпки при<br />

създаването на уеб-страница може да бъде записването на началния и крайния тагове<br />

(Таблица 1). Всака стъпка може да вмъква или изтрива в написания до момента код.<br />

Редът и съдържанието на стъпките се определя от автора на учебника. Изискване: ако<br />

се предвижда даден подниз от кода да бъде изтрит, извеждането му също трябва да<br />

стане с отделна стъпка. Етапът е последователност от серии (в частност- една серия),<br />

която може да се разглежда като завършена част от решението. След края на всеки етап<br />

се показва резултат [2].<br />

Таблица 1. Серия от стъпки<br />

Стъпка № 1 2 3 4 5 6<br />

Изведен<br />

код<br />

< <br />

<<br />

<br />

<br />

<br />

<br />

Изпълнението на стъпките се стартира от обучаемия, който чете обяснителен<br />

текст относно решението, съдържащ активни елементи 3 . При избор на АЕ се изпълнява<br />

серия от стъпки. За да се спазва редът на извеждане, във всеки момент от представянето<br />

на решението е изпълним само (най-много) един АЕ, съответстващ на прочетения до<br />

момента текст. След завършване на решението се показва резултат и на обучаемия се<br />

предоставя възможност да редактира готовия пример и да проверява резултата от<br />

експериментите си (Фиг. 1).<br />

Фиг. 1. Модулът, интегриран в страница на електронен учебник.<br />

2 Модулът реализира усъвършенстван вариант на описания в [2] подход, което налага предефиниране на<br />

понятията стъпка и етап и въвеждане на ново понятие- серия.<br />

3 Активен елемент (АЕ)- елемент, който реагира на предизвикано от мишката събитие.


- 187 -<br />

2.2 Възлагане на задача за самостоятелна работа<br />

1) Извежда се условието на задачата и се показва очакваният резултат от<br />

решението.<br />

2) На екрана се извежда среда за въвеждане и тестване на примери [2] (Фиг. 1).<br />

Модулът може да се използва самостоятелно за задачи, решението на които се<br />

изчерпва с един HTML-документ. При задачи, за чието решение са необходими два или<br />

повече файла, модулът се използва в комбинация с виртуален диск (ВД) [3], който<br />

съхранява файловете, осъществява връзките между тях и предоставя на обучаемия<br />

помощ при определяне на път към файл.<br />

3. Начин за реализация<br />

Модулът е реализиран под формата на динамична уеб-страница, което го прави<br />

удобен за интегриране в страниците на електронен учебник.<br />

3.1. Организация на интерфейса<br />

Използват се свойствата на уеб-страницата, възможността за динамична промяна<br />

на стойностите им и функциите на браузера. Информацията се представя на екрана в<br />

правоъгълни области, дефинирани с таг div и разположени в два слоя (Фиг. 2).<br />

Layer01<br />

Layer02<br />

Layer01_Left<br />

Първи слой<br />

Втори слой<br />

Layer02_Left<br />

Текстово поле<br />

Бутони за управление<br />

Layer01_Right<br />

Фиг. 2. Елементи на нтерфейса.<br />

Layer02_Right_Rect01<br />

Layer02_Right_Rect02<br />

Плаващ прозорец<br />

Съдържанието в правоъгълните области се променя посредством свойството<br />

innerHTML, а видимостта на всеки слой се определя от стойностите на свойствата<br />

visibility и z-index. Първият слой с идентификатор Layer01 по подразбиране е видим и<br />

има две подобласти- лява и дясна (Layer01_Left и Layer01_Right). В Layer01_Left се<br />

извежда условието на представяната задача. В Layer01_Right на фона на изобразен<br />

браузер е разположен плаващ прозорец (елемент iframe) с идентификатор winResult01,<br />

в който се показва очакваният резултат от решението. Вторият слой (Layer02) съвпада<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 188 -<br />

по размери и (x,y)-координати с Layer01. Той става видим, когато се представя решение<br />

на задача. Разделен е на две подобласти- лава (Layer02_Left) и дясна, в която са<br />

разположени два правоъгълника (Layer02_Right_Rect01 и Layer02_Right_Rect02),<br />

съвпадащи по размери и (x,y)-координати, но с различна видимост (по подразбиране е<br />

видим Layer02_Right_Rect01). В Layer02_Left на фона на изобразен текстов редактор е<br />

разположено текстово поле (елемент textarea) с идентификатор codeEditor, в коeто се<br />

извежда и редактира решението на задачата. Обяснентелният текст с активните<br />

елементи е в Layer02_Right_Rect01. В Layer02_Right_Rect02 на фона на изобразен<br />

браузер е разположен плаващ прозорец (елемент iframe, имащ способността да<br />

интерпретира HTML-код) с идентификатор winResult02, в който се показва резултатът<br />

от решението, съдържащо се в текстовото поле codeEditor (Фиг. 1). Видимостта на<br />

Layer02_Right_Rect02 може да се сменя автоматично и ръчно. След завършване на<br />

решението codeEditor става достъпен за писане от клавиатурата.<br />

Посредством бутони (Фиг. 2) може да се преминава към следваща (предходна)<br />

задача, да се сменя видимостта на слоевете и да се показва резултат от решение,<br />

съдържащо се в codeEditor.<br />

3.2. Структури от данни<br />

Данните, необходими за представянето на една задача се съхраняват в обект от<br />

предварително дефиниран тип objectExample със следните свойства:<br />

1) txtProblem е стринг, съдържащ условието на задачата в HTML-формат.<br />

Стойността му се извежда на екрана посредством свойството innerHTML на<br />

Layer01_Left.<br />

2) codeSolution е стринг, съдържащ решението на задачата (HTML-код или<br />

скрипт). Стойността му се използва при показване на очакван резултат в winResult01 и<br />

при извеждане на решението в codeEditor.<br />

3) txtSolution е стринг (в HTML-формат), съдържащ обяснителния текст по<br />

решението с включени активни елементи. На всеки АЕ посредством таг span е<br />

присвоен един и същи идентификатор activeElem. Стойността на txtSolution се извежда<br />

на екрана посредством свойството innerHTML на Layer02_Right_Rect01, при което в<br />

уеб-страницата се създава масив от АЕ (activeElem).<br />

4) arraySteps е масив. Всеки елемент на arraySteps съдържа данни за една стъпка<br />

и е обект от предварително дефиниран тип objectStep със следните свойства:<br />

4.1) beginStep- начална позиция на подниза в codeSolution;<br />

4.2) lengthStep- дължина на подниза (при изтриване lengthStep е отрицателно<br />

число);<br />

4.3) posStep- позиция на вмъкване (или изтриване) в изведения до момента код.<br />

Стойността на posStep е сума от стойностите на lengthStep на изпълнените до момента<br />

стъпки, за които beginStep е по-малко от beginStep на текущата стъпка.<br />

5) arraySeries е масив за сериите. Всеки елемент на arraySeries е цяло<br />

положително число (брой стъпки в серия) или нула (край на етап).<br />

Редът на стъпките и сериите в решението на една задача се управлява с помощта<br />

на числовите променливи currentStep (за стъпките) и currentSeries(за сериите).<br />

При работа със списък от задачи може да се дефинира масив от обекти<br />

objectExample.<br />

3.3. Функции<br />

За динамично представяне на решението на задача се използват функциите:<br />

function adaptCode (htmlCode)<br />

действие:


- 189 -<br />

1) проверява htmlCode (стринг, съдържащ HTML-код) за препратки към други<br />

файлове и при наличие на протокол file адаптира съответната препратка за работа с<br />

виртуалния диск [3];<br />

2) връща като резултат адаптирания код.<br />

Използва се при съвместна работа с ВД.<br />

function displayResult(winID, htmlCode)<br />

действие- извежда резултата от съдържанието на htmlCode в прозорец с<br />

идентификатор winID, използвайки способността на прозореца да интерпретира<br />

HTML-код.<br />

Използва се при показване на резултат в winResult01 и winResult02.<br />

function execStep()<br />

действие:<br />

1) изпълнява текущата стъпка (вмъкване или изтриване в codeEditor), данните за<br />

която се съдържат в arraySteps[currentStep] за текущата задача;<br />

2) увеличава currentStep с 1;<br />

function execSeries()<br />

действие:<br />

1) изпълнява N на брой пъти execStep(), където N=arraySeries[currentSeries] за<br />

текущата задача;<br />

2) при край на етап- displayResult(winResult02, codeEditor.value); 4<br />

3) увеличава currentSeries с 1;<br />

4) дава право за изпълнение на следващия активен елемент.<br />

Динамично представяне на решение:<br />

При първоначално зареждане на задача:<br />

currentStep=0;<br />

currentSeries=0;<br />

activeElem[0].onclick=”execSeries()”;<br />

При избор на първия изпълним активен елемент от обяснителния текст, се<br />

извиква execSeries() и започва интерактивният процес на извеждане на решението.<br />

4. Резултати<br />

Първите резултати от работата са приложени в електронен учебник 5 по HTML.<br />

Студентите имат възможност да експериментират с готовите примери и да въвеждат и<br />

тестват свои в рамките на самия учебник. Динамичното представяне на решение<br />

позволява да се проследи процесът на писане и тестване на кода. Новите функции<br />

разширяват възможностите на модула. Посредством стъпки, които редактират (вмъкват<br />

и изтриват) кода на решението, може да се представят примери, демонстриращи<br />

локализиране, откриване и отстраняване на допусната грешка. Съвместното използване<br />

на модула с виртуален диск [3] позволява решаването на задачи, включващи<br />

хипервръзки.<br />

5. Заключение<br />

Динамичното представяне на примери е резултат от пълноценно използване на<br />

свойствата на уеб-страницата и функциите на браузера. Модулът е създаден със<br />

4 При съвместна работа с ВД извикването е displayResult(winResult02, adaptCode(codeEditor.value));.<br />

5 Ю. Хоптериев, Въведение в HTML, http://e-school.hit.bg/html (от 01.11.2005 г.).<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 190 -<br />

средствата на HTML, CSS и JavaScript и работи на браузер Iternet Explorer 6.0 или<br />

съвместим.<br />

ЛИТЕРАТУРА<br />

1. Г. Тотков, Е. Сомова, Р. Донева. За дистанционното обучение и развитието му в<br />

България, Юбилейна научна сесия- 30 години ФМИ, ПУ “Паисий Хилендарски”,<br />

Пловдив, 3-4.11.2000, 266-271.<br />

2. Ю. Хоптериев. Един подход за представяне на примери в електронни учебници по<br />

програмиране за Интернет, Научно-приложна конференция по математика,<br />

информатика и компютърни науки, В. Търново, 12-13 май 2006 г., 468-472.<br />

3. Ю. Хоптериев. Модул за провеждане на упражнения и тестове в електронни курсове<br />

по информатика, разглеждащи операции с файлове и директории,<br />

ІІ национална конференция с международно участие по електронно обучение във<br />

висшето образование, Китен, 14-16 септември 2006 г., 106-108.<br />

4. G. Totkov. Virtual Learning Environments: Towards New Generations. Proceedings of the<br />

Intern. Conf. of <strong>Computer</strong> Systems and Technologies (e-learning), CompSysTech’2003,<br />

Sofia, Bulgaria, 19-20 June, 2003, P.2-1 – P.2-9.<br />

Department of <strong>Computer</strong> Technologies<br />

University of Plovdiv “Paisii Hilendarski”<br />

24, Tsar Asen Str.<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: yurih@uni-plovdiv.bg


- 191 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

STUDY OF TECHNICAL POSSIBILITIES OF NEW VERSION<br />

OF MS COM+<br />

IVANKA VALOVA, BOZHAN ZHECHEV<br />

Abstract. In this paper are studied the technical possibilities of new version of COM<br />

technology – version 1.5. The improvements made as compared to COM+ 1.0 are studied<br />

and some of existing problems are discussed. The new improvements secure the full<br />

compatibility of COM+ 1.5 with components and applications of COM+ 1.0. Microsoft<br />

also added new features to existing services and laid the foundation for integration with<br />

Microsoft .NET services. The software application COM+ is a component of new<br />

Windows - Windows Vista and its knowledge and understanding is an investment in the<br />

future.<br />

Key words: COM+ 1.5, COM+ 1.0, Component Services.<br />

ИЗСЛЕДВАНЕ НА ТЕХНИЧЕСКИТЕ ВЪЗМОЖНОСТИ НА НОВАТА<br />

ВЕРСИЯ НА MS COM+<br />

ИВАНКА ВЪЛОВА, БОЖАН ЖЕЧЕВ<br />

1. Въведение<br />

COM+ е името на COM-базираните услуги и технологии, за пръв път въведени с<br />

Windows 2000. COM+ участва и в новата версия на Windows, Windows Vista. COM+<br />

обедини технологията на COM компонентите и предоставящия среда за приложенията<br />

Transaction Server (MTS) на Microsoft. COM+ автоматично управлява сложни<br />

програмни задачи, като: събиране на ресурси в пулове, публикуването и абонамент за<br />

събития, разпределени операции.<br />

COM+ 1.5 предлага редица подобрения в сравнение с COM+ 1.0.<br />

1. Комплексен потребителски интерфейс, който показва повече данни за всяко<br />

приложение<br />

2. Пълна поддръжка за наследените компоненти от предишната версия<br />

3. Управление на съществуващите приложения по-лесно и по-ефикасно.<br />

4. Подобрената поддръжка в организацията на изчакването на опашка, предоставя<br />

възможност за по-гъвкаво управление на изчакващите заявки, а обединяване и<br />

рециклиране означава по-добро управление на жизнения цикъл на дадено<br />

приложение.<br />

5. Сегментирането на дадено приложение в COM+ 1.5, превъзхожда COM+ 1.0,<br />

6. Изолирането на дадена транзакция може да бъде конфигурирано за подобряване<br />

на сигурността на транзакцията.<br />

7. COM+ 1.5 позволява да се представи всеки COM+ компонент като уеб-услуга,<br />

при положение че последният отговаря на определени критерии.<br />

Microsoft Windows XP пакетът включва следващата версия на COM+, която се<br />

нарича COM+ 1.5. Тази статия описва новите характеристики и възможности на COM+<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 192 -<br />

1.5. Подобрени са начините за използването на COM+ чрез отстраняване на някои от<br />

съществуващите проблеми в COM+ 1.0. Майкрософт са добавили нови характеристики<br />

към съществуващите услуги и са поставили основите за интегриране с Microsoft .NETбазираните<br />

услуги. Останалите подобрения осигуряват пълната съвместимост на COM+<br />

1.5 с компонентите и приложенията на COM+ 1.0.<br />

COM+ версия 1.5 добавя нови характеристики, които са проектирани за да<br />

увеличат общата универсалност, наличност и лесно управление на COM+<br />

приложенията, както за разработчиците така и за системните администратори. За<br />

улесняване на конфигурирането и внедряването на тези нови характеристики са<br />

добавени разширена документация и нови отчети към документацията на SDK, а<br />

помощните менюта са обновени в инструмента за администриране Component Services<br />

(Компонентни услуги).<br />

COM+ 1.5 е включен в операционните системи Microsoft Windows XP и<br />

Microsoft Windows Server 2003. Новите COM+ 1.5 характеристики не са налични в поранните<br />

платформи, например в Microsoft Windows 2000. В новата версия COM+<br />

представя поддръжка за COM+ сегменти и позволява различни версии от COM+<br />

приложения да бъдат инсталирани и конфигурирани на една и съща машина. Спестяват<br />

се скъпо струващите и отнемащи време усилия да се използват многобройни сървъри за<br />

да се управляват различни версии на дадено приложение. На една машина всеки<br />

сегмент (сектор) действа като виртуален сървър. След като се инсталира приложението<br />

се създават набори от сегменти, които насочват потребителите към логическите<br />

сървъри.<br />

2. Конкуриращи се технологии -CORBA, DCOM, EJB<br />

За опростяване на мрежовото програмиране и за да бъде реализирана основана на<br />

компонентите софтуерна архитектура се появиха като стандарти два модела на<br />

разпределени обекти - DCOM (Distributed Component Object Model) на Майкрософт и<br />

CORBA (Common Object Request Broker Architecture) на Object Management Group<br />

(OMG). От гледна точка на компонентите съществуват две конкуриращи се<br />

архитектури: Javasoft’s Enterprise JavaBeans и Microsoft’s COM. Голяма част от<br />

литературата смесва понятията разпределени обекти и компоненти. Полезна<br />

информация за разпределените обекти и компоненти може да бъде намерена в [1,6, 7,8]<br />

2.1 CORBA<br />

CORBA е рамка от разпределени обекти, предложена от консорциум от над 800<br />

дружества наречени Object Management Group (OMG), създаден през 1989 година.<br />

Организациите-членки варират от големи дружества като Sun Microsystems, до помалки<br />

като Visigenic/Inprise Software Corporation.<br />

CORBA служи като спецификация на междуплатформено програмно обезпечение за<br />

разпределени обекти. Има няколко търговски продукта, които прилагат стандарта<br />

CORBA.<br />

Кратък преглед върху CORBA архитектурата e направен в [5]. Работата е полезна за<br />

откриването на подробности относно синтаксиса за IDL (Interface Definition Language),<br />

използван от CORBA. Както беше споменато има няколко ORB приложения сред които<br />

Inprise Visibroker ORB е най-широко използваното. Описаниe на класовете и<br />

интерфейсите, поддържани от Visibroker за Java е направено в [10]. Техническа<br />

информация за Orbix ORB може да бъде намерена в [1].


- 193 -<br />

2.2 DCOM<br />

DCOM (Distributed Component Object Model) е разширение на COM, което<br />

предоставя взаимодействие между обектите изпълнявани на отделни компютри в<br />

дадена мрежа. DCOM използва мрежови протокол за обектно ориентиран RPC [3, 7].<br />

DCOM скрива разположението на сървърния компонент от клиента, независимо дали<br />

той е на същата машина (вътрешен или външен процес) или на друга машина в друга<br />

част на света. При всички случаи начинът по който клиентския код се свързва с<br />

компонента и извиква неговите методи е един и същ. Всеки път когато един клиент се<br />

нуждае от услуга от отдалечен разпределен обект, той извиква метод приложен от<br />

отдалечен обект. Услугата, която отдалечения разпределен обект (сървъра) предоставя<br />

е капсулирана като обект, а интерфейсът на отдалечения обект е описан в IDL. DCOM<br />

сървър компонентите могат да бъдат разработени на различни програмни езици като<br />

C++, Java, Object Pascal (Delphi), Visual Basic и COBOL. DCOM се използва върху<br />

Windows платформа.<br />

2.3 EJB<br />

Технологията EJB (Enterprise JavaBeans) дефинира модел за разработване на Java<br />

компоненти, които могат да бъдат използвани повторно. Базирани на Java<br />

компонентния модел JavaBeans, EJB разширява компонентния модел, с цел поддръжка<br />

на сървърни компоненти. Сървърът предоставя работна среда за EJB контейнер, който<br />

действа като интерфейс между Enterprise Bean и външния свят. EJB bean не е достъпен<br />

от EJB клиент, всеки достъп е извършван чрез EJB контейнер [4].<br />

Широко използван е сървърът BEA Weblogic Server 5.1 от BEA Systems [2].<br />

3. COM+ 1.5- наследени приложения и компоненти<br />

COM+ 1.5 Explorer притежава подобрен потребителски интерфейс. При COM+<br />

1.0 например, единственият начин да се познае начина на активиране на дадено COM+<br />

приложение е да се извика таблицата за активиране и тя да бъде изследвана докато бъде<br />

открито необходимото приложение. COM+ 1.5 Explorer отнася различните икони към<br />

различните видове приложения и виждайки даденото приложение може да се разбере<br />

вида- сървър, библиотека или прокси-сървър.<br />

Приложения за услуги, четвъртият вид приложения, които са налични в COM+<br />

1.5 имат отделна икона. Нова директория, която може да бъде открита в иконата My<br />

<strong>Computer</strong> наречена Running Processes, съдържа всички приложения, които се използват<br />

в даден момент, осигурявайки по този начин лесно администриране на изпълнението.<br />

COM+ 1.0 Explorer позволява да се управляват само конфигурираните<br />

компоненти. В реалния живот, конфигурираните компоненти често си взаимодействат с<br />

наследени COM компоненти, които са собствени или на трета компания-доставчик. В<br />

хетерогенна среда, разработчиците използват други инструменти в допълнение към<br />

COM+ Explorer, за целите на управлението на наследените компоненти. Тези<br />

инструменти включват DCOMCNFG, OLEView, Visual Studio или други разработени по<br />

поръчка на клиента инструменти.<br />

Разработчиците трябва да управляват два подхода за разполагане – единият използва<br />

експортирани COM+ приложения (MSI файлове), а другият се състои от необходимите<br />

за инсталирането на наследените компоненти. Предоставя се цялостна поддръжка за<br />

наследени приложения и компоненти в COM+ 1.5. Това позволява да се управлява<br />

всеки аспект от дадени наследени приложения и компоненти, толкова успешно,<br />

колкото и ако използвате DCOMCNFG или OLEView.<br />

При COM+ 1.5 Explorer, в My <strong>Computer</strong> има нова директория наречена DCOM<br />

Config.Тази директория е сродна с приложения на COM+. Директорията DCOM Config<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 194 -<br />

съдържа всички регистрирани локални COM сървъри (EXE сървъри). Всеки локален<br />

сървър е наречен наследено приложение. За разлика от COM+ приложенията, не може<br />

да се разширява наследеното приложение до компонент, интерфейс или до методическо<br />

ниво. Директорията DCOM Config дава централизирана позиция от която да се<br />

управляват COM+ приложения и наследени локални сървъри, без да е необходимо<br />

прибягването до други инструменти.<br />

При натискане с десния бутон на мишката върху дадено наследено приложение<br />

и избирайки функция Properties от падащото меню, се отваря страницата на свойствата,<br />

която позволява да се управлява всеки аспект от наследеното приложение. General tab<br />

позволява да се променя името на приложението и да се задава ниво на достъп за<br />

входящи заявки към това приложение. Функцията Location tab позволява да се<br />

контролира дали да се стартира приложението на вашия компютър или на друг<br />

компютър в мрежата. Функцията Security tab позволява да се конфигурира достъпа,<br />

стартирането и промяната на оторизациите за достъп на всеки потребител. Функцията<br />

Endpoints tab позволява да се конфигурира транспортните протоколи за DCOM<br />

заявките. Функцията Identity tab позволява да се определя при каква идентификация за<br />

достъп да бъде стартиран сървъра, включително и системния акаунт (само за услуги).<br />

Ако дадено COM+ приложение използва наследените компоненти (неконфигурирани<br />

по време на процеса COM компоненти), тогава COM+ 1.5 Explorer<br />

позволява да се управляват също тези компоненти които са в обхвата на даденото<br />

приложение. Приложение на COM+ 1.5 има нова директория наречена Legacy<br />

Components. За да се добави наследен компонент към директорията се избира New от<br />

контекстното меню. COM+ 1.5 Explorer представя приложението Legacy Component<br />

Import Wizard, който позволява да се избират наследени компоненти и да се добавят<br />

към даденото приложение. Трябва да се отбележи, че точно както конфигурираните<br />

компоненти, наследените компоненти, могат да участват точно в едно COM+ 1.5<br />

приложение.<br />

Основното предимство на наследените компоненти като част от дадено COM+ 1.5<br />

приложение е по-лесното им разгръщане. Когато се експортира дадено COM+<br />

приложение, неговият MSI файл съдържа наследени компоненти и техните настройки.<br />

Когато се инсталира MSI файл на друга машина, Windows Installer регистрира<br />

компонентите, което спестява проблема с писането на отделна инсталационна<br />

програма за всеки проект.<br />

Фиг.1. Свойства на наследените компоненти


- 195 -<br />

Страницата на приоритетите на наследените компоненти запознава с всяко съответно<br />

регистрационно вписване за дадения компонент- Фиг. 1. Може да се променят<br />

стойностите на настройки, които не са в противоречие с регистрационните настройки в<br />

самия компонент. Например, не може да се променя стойността на модела за<br />

последователна обработка, но може да се предостави име на псевдопроцес. Може да се<br />

повиши един наследен компонент в конфигуриран компонент. Извиква се менюто на<br />

наследения компонент, след това се избира функцията Promote-Фиг. 2. Наследеният<br />

компонент е отстранен от директорията наследени компоненти и е добавен към<br />

директорията компоненти в същото COM+ 1.5 приложение.<br />

Фиг. 2. Повишаване на категорията на наследен компонент<br />

4. Деактивиране на приложения и компоненти<br />

COM+ 1.5 Explorer позволява да се деактивират приложения и компоненти.<br />

Когато е деактивирано дадено приложение, всички опити на клиента да създаде<br />

компонент от съответното приложение са неуспешни при получаването на следното<br />

съобщение HRESULT: “Компонентът е деактивиран.” За да се деактивира дадено<br />

приложение трябва де се избере функция Disable от падащото меню. Когато<br />

приложението е деактивирано, се появява червено квадратче върху иконата на<br />

приложението в COM+ 1.5 Explorer. За активиране на деактивирано приложение се<br />

избира функция Enable (Фиг.3).<br />

Може да се деактивира само COM+ 1.5 приложения, наследените приложения не<br />

могат да бъдат деактивирани. Клиент който вече има отношения с даден COM+ обект<br />

не е засегнат от факта, че приложението е деактивирано, а само клиенти които се<br />

опитват да създадат нови обекти. Съответно може да имате деактивирано приложение<br />

което да работи неопределено дълго време.<br />

Може индивидуално да се деактивират компоненти. Всяко падащо меню на<br />

компонента има опцията Disabled. Деактивираният компонент има изобразено червено<br />

квадратче върху неговата икона. Всички опити на клиента за създаване на деактивиран<br />

компонент няма да бъдат успешни, като се получава съобщение уведомяващо, че<br />

компонентът е бил деактивиран.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


.<br />

- 196 -<br />

Фиг. 3. Активиране на деактивирано приложение<br />

Може да се деактивира всеки компонент в COM+ 1.5 приложението, включително и<br />

наследените компоненти (Фиг. 2). За да се активира един компонент, трябва да се<br />

избере функция Enable от падащото меню. Деактивирането на един компонент оказва<br />

влияние върху нови заявки към въпросния компонент; вече съществуващите отношения<br />

със други обекти не са засегнати. Статусът Активиран за приложението и компонента<br />

се съхранява в COM+ Catalog и следователно се поддържа дори когато се рестартира<br />

компютъра.<br />

Деактивирането на приложения или компоненти е полезно в два случая.<br />

Първият е когато внимателно се затваря едно приложение намиращо се на активен<br />

сървър, с цел извършването на работи по поддръжка или обновяване. Ако се затвори<br />

приложението, това може да доведе до неочаквани проблеми при работата в<br />

клиентските компютри, поддържащи работни отношения с приложението. Чрез<br />

деактивирането на приложението, се позволява на клиентите да приключат своята<br />

работа, докато новите активации вероятно се прехвърлят към друг компютър,<br />

предоставяйки по този начин възможността за извършване на поддръжка.<br />

Деактивирането на приложение е полезно при разработки и тестове. То предоставя<br />

гарантиран начин за неуспешни клиентски заявки и по този начин проверява дадената<br />

система за управлението на грешки в приложението от страна на клиента.<br />

5. Поставяне на приложенията в режим на пауза<br />

Поставяне на приложенията в режим на пауза е действие подобно на<br />

деактивирането на приложение, с изключение, че се използва за деактивирането само<br />

на точно определен текущ работен процес и режимът на пауза не се запазва при<br />

затваряне на приложението. За да се постави в режим на пауза един процес, се отваря<br />

директорията Running Processes и се избира функция Pause от менюто на<br />

приложението. За да се активира отново процеса, се избира функция Resume-Фиг. 4.


- 197 -<br />

Фиг. 4. Възобновяване активността на приложение<br />

6. Вид активиране на услуга<br />

COM+ 1.5 позволява да се конфигурира сървър приложение да работи като<br />

системна услуга. Правейки това е налице работещо приложение, веднага след като<br />

компютъра бъде включен, независимо от повикванията за активиране от страна на<br />

клиенти. Друга полза е, че работно приложение е единствения начин дадено<br />

приложение да работи под определен идентификационен системен акаунт. Системният<br />

акаунт е най-мощният акаунт на даден компютър.<br />

Activation tab на приложението съдържа клетка "Run application as NT Service" (Фиг.5).<br />

Когато се избира тази функция може да се конфигурират различни параметри на<br />

услугата, избирайки бутон Setup New Service, което спестява главоболия свързани с<br />

използването на аплет за услуги от контролния панел.<br />

Фиг. 5 Конфигуриране на работно приложение<br />

7. Подобрена поддръжка на изчакване<br />

Поредните компоненти при COM+ 1.0 изискват присъствието на контролер на<br />

домейна, за осигуряване на достъпа на изчакващата заявка. Ако няма контролер на<br />

домейна, трябва да се изключи COM+ 1.0 функцията идентифициране на приложение<br />

(None). COM+ 1.5 предоставя по-гъвкава възможност за конфигуриране на<br />

поддръжката на сигурността за изчакващи заявки, чрез разделянето им от стандартните<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 198 -<br />

синхронни заявки. Функцията Queuing tab позволява да се конфигурира ясно контрола<br />

на достъп за изчакващите заявки –Фиг. 6.<br />

Следните опции са налични:<br />

Фиг. 6. Изчакване на приложение<br />

• Контрол за достъп на домейн контролера Microsoft Message Queuing (MSMQ),<br />

когато приложението е конфигурирано да използва контрол за достъп за синхронни<br />

заявки (когато контролът за достъп на приложението е настроен за всяка стойност с<br />

изключение на None).<br />

• Никога не удостоверявайте контрола за достъп на изчакващи заявки в това<br />

приложение. Като се избере тази опция, е позволено свободно да се използва<br />

изчакващи компоненти без домейн контролер.<br />

• Винаги да се удостоверява контрола за достъп на изчакващи заявки, независимо<br />

от настройките за контрола за достъп на даденото приложение.<br />

Функцията Queuing tab също позволява да се контролира максимален брой от<br />

едновременно функциониращи играчи, които приложението може да съдържа. (Играч е<br />

компонент , който връща обратно поредната заявка до вашия компонент.) Тъй като<br />

всеки играч е създаден върху отделна нишка, има завишени разходи на капацитет при<br />

създаването и поддръжката на един играч. В екстремни ситуации, дадено приложение<br />

може да спре да работи, ако броят на едновременно функциониращите играчи е<br />

прекалено голям (до няколко стотици). Когато се заложи ограничение за броя на<br />

играчите и това ограничение е изпълнено, приемникът спира създаването на нови<br />

играчи. По-скоро, изчакващите заявки остават в опашката на приложението за<br />

изпълнение, позволявайки по този начин на заявките които се обработват в момента да<br />

бъдат изпълнени и завършени. Поставянето на ограничение е също така добро и за<br />

целите на балансиране на натоварването и могат да бъдат използвани във връзка със<br />

обединяването на едно място на приложения.<br />

8. Предоставяне на уеб услуги чрез COM+<br />

COM+ приложение може да се представи като XML уеб-услуга [6, 11] чрез<br />

COM+ 1.5. Лесно може да се създаде нова XML уеб-услуга извън съществуващите<br />

COM+ приложения и да се внедри XML уеб-услуги в нови COM+ приложения. Чрез<br />

избиране на клетката Uses SOAP в инструмента за администриране Component Services,


- 199 -<br />

може да се покаже COM+ приложение като XML уеб-услуга. Може да се създаде нова<br />

XML уеб-услуга извън съществуващите COM+ приложения и лесно да се внедри XML<br />

уеб-услуга в нови COM+ приложения.<br />

Поддръжката на уеб услуги е нова услуга на .NET платформата. Уеб услугите<br />

позволяват среден компонент в уебсайт да призовава методи от друг среден компонент<br />

в друг уеб сайт все едно, че двата компонента се намират на един сайт и на един и същи<br />

компютър. COM+ 1.5 представя всеки COM+ компонент като уеб-услуга, доколкото<br />

компонента съответства на ръководните принципи за дизайн на уеб-услуги. (Activation<br />

tab на приложението позволява да се конфигурира SOAP активирането за дадено<br />

приложение [12]. Всичко което трябва да се направи е да се определи виртуална<br />

директория за уеб-услугата, асоциирана с това приложение. COM+ осигурява<br />

необходимите адаптери като компонентна услуга, инсталира уеб-услугата с IIS и<br />

създава подходяща конфигурация на уеб-услугата и информационни файлове.<br />

Необходимо е да има Internet Information Server (IIS) инсталиран за да се стартира<br />

активиращия режим на SOAP за дадено приложение.<br />

9. Заключение<br />

COM+ е от съществено значение за бързото разработване на компоненти и за<br />

мащабируеми приложения. COM+ позволява на разработчиците да фокусират<br />

вниманието върху настоящите бизнес проблеми, вместо да прилагат процеси<br />

пломбиращи услугите, като управление на жизнения цикъл на обекти и приложения,<br />

поддръжка на транзакции, успореден мениджмънт, сигурност, несинхронизирани<br />

извиквания, събития и разполагане. COM+ 1.5 изглажда тези неравности, които COM+<br />

1.0 притежава, а неговите характеристики са добро допълнение към арсенала за<br />

разработки. Тъй като COM+ е основата за всички .NET компонентни услуги няма<br />

съмнение, че това няма да бъде последната нова версия на COM+ пусната на пазара и<br />

Майкрософт ще продължи да добавя нови характеристики и способности към COM+ за<br />

да подобри и увеличи неговата интеграция с .NET.<br />

В тази статия се разглеждат възможностите на новата версия на COM – версия<br />

1.5 (COM+ 1.5 Explorer, Running Processes, DCOM Config, Legacy Components ), които<br />

се грижат за стандартните процедури, като оставят повече време на разработчиците да<br />

се концентрират върху бизнес компонентите.<br />

COM+ е за пръв път въведен с Windows 2000. Моделът COM+ е съставка на новата<br />

версия на Windows - Windows Vista. Неговото познаване и разбиране е инвестиция в<br />

бъдещето.<br />

Обект на бъдещи изследвания и статии ще бъде тестване и описание на новите<br />

опции за управление на жизнения цикъл на приложението, наречени обединяване и<br />

рециклиране (Pooling & Recycling tab ); до каква степен е подобрено изолирането на<br />

транзакции в новата версия на COM+; сегментиране с цел управление на COM+<br />

приложенията.<br />

ЛИТЕРАТУРА<br />

1. Baker, Seán. 1997. Distributed Objects using Orbix. ISBN: 0-201-92475-7. Harlow:<br />

Addison-Wesley Longman.<br />

2. BEA WebLogic Server Enterprise JavaBeans 1.1: http://www.weblogic.com/docs51/,<br />

2000.<br />

3. Chung, P. Emerald. Huang, Yennun. Yajnik, Shalini. Liang, Deron. Shih, Joanne C.<br />

Wang, Chung-Yih. Wang, Yi-Min. DCOM and CORBA Side by Side, Step by Step, and<br />

Layer by Layer http://www.cs.wustl.edu/%7Eschmidt/submit/Paper.html, 2000.<br />

4. Enterprise JavaBeans 1.1 Specification. http://java.sun.com/products/ejb/, 2000.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 200 -<br />

5. Hoque, Reaz.1999. CORBA for Real Programmers. ISBN: 0-12-355590-6. San Diego,<br />

Calif.: Academic.<br />

6. I. Valovа, B. Zhechev, Providing XML Web services with Microsoft COM,<br />

UNITECH’06, November 2006, Gabrovo, Bulgaria, 2006.<br />

7. Microsoft Corporation, Product information, evaluation, and technical developer<br />

resources, www.microsoft.bg<br />

8. Sessions, Roger. 1998. COM and DCOM: Microsoft’s Vision for Distributed Objects.<br />

ISBN 0-471-19381-X. John Wiley & Sons, Inc.<br />

9. Siegel, Jon. 1996. CORBA Fundamentals and programming. ISBN: 0-471-12148-7.<br />

United States of America. John Wiley & Sons, Inc.<br />

10. VisiBroker for Java 4.1 http://www.inprise.com/ [2000, August 23].<br />

11. W3C, Extensible Markup Language (XML) - http://www.w3.org/XML/<br />

12. W3C, Latest SOAP versions - http://www.w3.org/TR/soap/<br />

Institute of <strong>Computer</strong> and Communication Systems<br />

Bulgarian Academy of Sciences<br />

Acad. G. Bonchev str., bl. 2<br />

1113 Sofia<br />

Institute of Control and System Research<br />

Bulgarian Academy of Sciences<br />

Akad. Bonchev str., Bl.2, P.O. 79<br />

1113 Sofia


- 201 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

INTELLIGENT VIRTUAL AGENTS<br />

-A NEW COMPUTER’S INTERFACE<br />

DILYANA BUDAKOVA, LUYDMIL DAKOVSKI<br />

Abstract. In this paper the main directions for intelligent virtual agent’s (IVA) modeling<br />

and realization are discussed. Great attention is paid to this direction, a proof of which is<br />

the big amount of articles, program systems and tools for modeling. The aims are<br />

exploring aspects of intelligent behavior and improving computer-human interaction.<br />

Classification of the elaborations is made in this issue. Solutions of more basic problems<br />

are pointed out. The latest elaborations in this area develop models of learning characters<br />

and personalities; models of embodied conversational agents; IVA’s recognizing human<br />

behavior, human interpretation of IVA’s behavior; IVA’s recognition of emotion from<br />

speech, from a human-computer dialogue with an intelligent tutoring system or an<br />

improvisatory e-drama; IVA’s expressing nonverbal behavior; assisting conversational<br />

agents. In this paper the focus is placed on the consideration of IVA as a new computer’s<br />

interface.<br />

Key words: intelligent virtual agent, emotional conversational agents, modeling,<br />

affective computing, recognizing and expressing behavior.<br />

ИНТЕЛИГЕНТНИ ВИРТУАЛНИ АГЕНТИ<br />

- НОВ ИНТЕРФЕЙС С КОМПЮТЪРА<br />

1.Въведениe<br />

Не е далеч времето, когато взаимодействието компютър-човек до такава степен<br />

ще се доближи до взаимодействието човек-човек, че в интелектуално отношение<br />

разликите ще бъдат незначителни. Основание за това твърдение може да се намери в<br />

масираните изследвания и получените обнадеждаващи резултати при разработването<br />

на разнообразни интелигентни виртуални агенти.<br />

Интелигентните виртуални агенти (ИВА) са програмно реализирани автономни<br />

агенти, които притежават графично построено човешко лице (често и тяло) и<br />

съществуват в 2D или 3D виртуална среда. Те притежават възможности интелигентно<br />

да взаимодействат със заобикалящата ги среда, в това число както и с други ИВА, така<br />

и с потребителите на съответното приложение.<br />

ИВА са резултат от съвместните усилия на изследователи в различни области на<br />

компютърните науки[1]: компютърна графика, изкуствен интелект, компютърна<br />

анимация, компютърни игри, моделиране на виртуални среди, компютърна обработка<br />

на естествени езици, когнитивно моделиране, човеко-компютърни системи, изкуствен<br />

живот и др.. Изследванията в това направление съвсем естествено привличат знания и<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 202 -<br />

специалисти по когнитивна и социална психология при моделирането на емоции и<br />

невербални комуникации, по социология при моделирането на общества от хора и<br />

ИВА, по анатомия при разработката на хармонията между тялото и жестовете на<br />

агентите, дизайнери и артисти при реализацията на средства за взаимодействие с ИВА,<br />

на педагози при развитието на механизми за обучение на агентите и т.н.<br />

ИВА вече могат да се срещнат в web-базирани интерфейси, като приложения за<br />

персонални компютри или други персонални устройства на интерактивната телевизия.<br />

ИВА са привлекателни действащи лица в игри и забавления. Но те имат и сериозни<br />

задачи например като инструменти за психологически изследвания. Постигнатото<br />

развитие на ИВА им отрежда още днес място както в изследователски така и в<br />

индустриални приложения. [1]<br />

В настоящата статия се обсъждат някои от основните направления в развитието<br />

на изследванията на ИВА и се дискутира бъдещото им развитие като компютърен<br />

интерфейс.<br />

2. Очаквания на потребителите.<br />

Един от първите въпроси при работата над ИВА е в каква степен е успешен този<br />

нов интерфейс, как потребителите го приемат и дали ползата от него оправдава<br />

усилията за неговото разработване. В [2] е предложен въпросник за оценяване на<br />

виртуални агенти в конкретна среда. Оценяват се степента на информираност на агента,<br />

дали той е забавен и как се възприема. Посочени са фактори, които трябва да се имат<br />

предвид при създаването на ИВА.<br />

Външният вид на графично визуализирания ИВА е от съществено значение за<br />

начина, по който той ще се възприемане от потребителите. Това категорично се<br />

потвърждава от проведените експерименти със студенти [3], които е трябвало да<br />

избират агента, с който предпочитат да общуват. При експериментите е променян<br />

външния вид на агентите.<br />

Разработената виртуалната среда FearNot (населена от ИВА виртуална класна<br />

стая) [4] дава възможности да се наблюдават и обобщят предпочитанията и<br />

очакванията относно дизайна и използването на ИВА сред групи от 8 - 12 годишни<br />

деца. Събрани са данни от 345 деца чрез използването похвата дискусионен форум на<br />

класната стая.<br />

Освен дизайна съществено за предпочитанията на потребителите е и<br />

възможността ИВА да се обучават в процеса на взаимодействието както помежду си,<br />

така и с хората. Появява се нов вид взаимодействие между човека и компютърните<br />

приложения – взаимно обучение. Тепърва предстои да се разработва и оценява този вид<br />

взаимодействие, който може да бъде развиван в различни направления: да се разбере<br />

как хората се опитват да обучават ИВА, да се създават ефективно обучаващи се агенти,<br />

да се изучава самия процес на обучение и т.н. В [5] са представени резултати от<br />

направени наблюдения и анализи по някои от тези въпроси и е показана базирана на<br />

подсилване структура за обучение на ИВА. В статията са посочени редица интересни<br />

факти, като например, че хората се опитват да обучават ИВА като управляват неговото<br />

внимание, като му посочват целите на играта, опитват се да формулират инструкции, да<br />

използват наказанието като обратна връзка, да предлагат следващо действие и т.н. и са<br />

изведени препоръки към проектирането на агенти, които се учат по-добре и стават позабавни<br />

в резултат от обучението.<br />

3. Нов тип диалог човек-компютър.<br />

ИВА, които поддържат разговор в позната им ограничена област, съществуват<br />

отдавна. Основният инструмент за избиране на подходящи отговори в тази област е


- 203 -<br />

класификацията. В [6] е разгледан проблема за работа с потребителски въпроси, които<br />

са извън областта на знанията на агента. Предложени са архитектури за класификация<br />

на типовете отговори, и от там за избор на най-подходящия отговор. Оценките<br />

показват, че качеството на избор на отговор значително се подобрява, с което диалогът<br />

с потребителя става по-естествен и по-ангажиращ.<br />

Общуването лице в лице има значимо въздействие върху участниците в диалога.<br />

Те реагират като подсъзнателно включват подражание в поведението си, като с това<br />

създават субективно усещане за разбиране, подсилват връзката и изграждат доверие<br />

помежду си. Така диалогът получава ново качество. Това е причината породила редица<br />

опити да се създадат системи за диалог между човек и виртуален агент [7], които си<br />

поставят за цел да се създаде наситен цикъл „действие-разбиране” и/или „говоренеумение<br />

да се слуша” въз основа на наблюдението на събеседника и подражанието.<br />

фиг. 1. Виртуалният агент пресъздава разказвана от събеседничката история с<br />

подходящи мимики, жестове и интонация.[7]<br />

Съществен момент за качеството на такъв диалог е възможността виртуалният<br />

агент да разпознава емоцията в произнесената реч, в изображението на лицето или<br />

позата на индивида.<br />

Един от подходите към разпознаване на подмножество от емоции в изречени<br />

думи е развит в [8]. Подходът се базира върху интонационен модел (прозодични и<br />

акустични характеристики) за всяка емоция от подмножеството и свързването на<br />

модела с речевите примери. По характеристиките са структурирани йерархична група<br />

класификатори. Изводите са, че лексическата информация и получените<br />

информационни образци от прозодичните и акустични оценки на ниво дума пораждат<br />

сигурна класификация и разпознаване на емоциите.<br />

В [9] е описана система, която чрез примери от директен диалог се обучава да<br />

разпознава емоцията в диалога. ИВА идентифицира емоционалното състояние на<br />

събеседника, като резултата се подкрепя или отхвърля от двама обучени арбитри.<br />

Направен е опит да се определят и оценят правилно различията между индивидуалните<br />

емоционални състояния в сравнение с основната линия на неутрално състояние на<br />

събеседника. Експериментите са показали, че по характеристиките на диалога могат с<br />

голяма точност да се предскажат емоционални състояния като разстройване, объркване,<br />

отекчение<br />

В [10] са описани любопитни изследвания върху начини за откриване на емоция<br />

във виртуална драматична импровизация. Интересни са изследванията върху начина,<br />

по който метафорите могат да пренасят емоции. Авторите посочват, че модулът за<br />

откриване на емоцията може да се използва при създаването автоматизиран виртуален<br />

актьор, който разказва истории.<br />

Ролята на контекста е изключително важна при всеки диалог. Когато хората<br />

разговарят помежду си, те разчитат на това, което е било казано или направено преди.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 204 -<br />

Някои невербални действия могат да са двусмислени когато се разглеждат сами по себе<br />

си, но тяхното значение е очевидно, когато се разглеждат в контекста на използването<br />

им. В [11] е описана реализацията на контекстен модел на ИВА, който е проектиран да<br />

възприема, запомня и реагира на невербалните събития, които съпровождат диалозите.<br />

Често емоциите се крият в речта, в израза на лицето, в жестовете, т.е. в различни<br />

модалности. В реалния живот те често са смесени, скрити зад пози или маскирани. За<br />

правилното идентифициране и изразяване на емоциите от ИВА е необходимо<br />

изучаването на смесените емоции във всички модалности. Този въпрос е дискутиран в<br />

[12], където е описан експеримент за разпознаване на маскирани емоции на<br />

събеседници в телевизионни интервюта и последващото им симулиране чрез ИВА.<br />

Разговарящите с потребителя графично визуализирани ИВА с реалистични лица<br />

стават съществена част от много програмни системи. Въпросът е как хората възприемат<br />

и разбират емоцията на говорещия агент. В [13] се оценява зрителното разбиране от<br />

хората на изразените от ИВА емоции. При експеримента лицето на ИВА или човек се<br />

представя цялостно както е заснето на видеоклип или чрез специално подбрани за да го<br />

описват точки. Направените анализи показват, че долната част на лицето осигурява<br />

достатъчно добър емоционален ключ за правилното визуално възприемане на емоцията<br />

и че емоциите могат да се обхванат напълно и когато лицето е представено чрез<br />

множество подбрани точки. Други експерименти относно този проблем са описани в<br />

[14,15,16].<br />

Фиг. 2. ИВА Леа изпълнява на естествен език презентации и обяснява възможности<br />

на софтуерни компоненти или web услуги .[17]<br />

Редица изследователи се фокусират върху идеята за създаване на асистиращи<br />

диалогови агенти (Assisting Conversational Agent ACA) [17,18]. Това са графично<br />

визуализирани ИВА, които имат за задача да помагат на потребителите на софтуерни<br />

компоненти и/или web услуги. Виманието на изследователите е насочено към<br />

диалогичната функционалност на агентите, към динамичното символно представяне на<br />

компонентите за обясняване, проблемите на посредничеството, определянето на<br />

начините за реагиране на агента и поддържането на обратна връзка с потребителя.<br />

4. Заключение<br />

В статията са дискутирани някои от основните проблеми при моделирането и<br />

реализирането на интелигентни виртуални агенти (ИВА). В един кратък материал не е<br />

възможно да се обхванат всички аспекти и проблеми, с които е свързано използуването<br />

на ИВА. Акцентирано е на онези от тях, които превръщат ИВА в интерфейс на<br />

недалечното бъдеще между човек и компютър.


- 205 -<br />

Дискутирани са следните моменти: очакванията и предпочитанията на<br />

потребителите към ИВА, начините за оценяване на вече създаден ИВА, разширяване на<br />

възможностите ИВА да се учат при общуването си с хората. Разгледани са проблеми на<br />

общуването между ИВА и човек: намирането на подходящ отговор, който е извън<br />

областта на знание на ИВА; включването на подражание при общуването, което<br />

изисква по-богат цикъл “действие-разбиране”; създаването на интонационни модели за<br />

разпознаване на емоцията в произнесени думи; създаването на архитектура за<br />

разпознаване на промяната в емоцията в хода на разговор; създаването на модул за<br />

разпознаване на емоцията в импровизация; възможността да се реализира контекстен<br />

модел на ИВА, с което се подчертава ролята на контекста за правилното разбиране на<br />

невербалното изразяване; проблемът за разпознаване и изразяване на емоцията по<br />

израза на лицето; разпознаването и изразяването на смесени емоции скрити в жестовете<br />

и израза на лицето.<br />

ЛИТЕРАТУРА<br />

1. J. Gratch, IVA’2006, http://iva2006.ict.usc.edu/<br />

2. Michael Kipp1, Kerstin H. Kipp2, Alassane Ndiaye1, and Patrick Gebhard1,<br />

Evaluating the Tangible Interface and Virtual Characters in the Interactive COHIBIT<br />

Exhibit, IVA 2006, LNAI 4133, pp. 434–444, 2006.<br />

3. Van Vugt, H.C., Konijn, E.A., Hoorn, J.F., and Veldhuis, J., Why fat interface<br />

characters are better e-health advisors., In: Gratch, J. et al (Eds.), IVA 2006, LNAI 4133, pp<br />

1-13, 2006. [pdf]<br />

4. L. Hall, M. Vala5, M. Hall, M. Webster, S. Woods, A. Gordon and R. Aylett, FearNot’s<br />

Appearance: Reflecting Children’s Expectations and Perspectives, IVA 2006, LNAI, 2006.<br />

5. Andrea Thomaz, Cynthia Breazeal, Teachable Characters: User Studies, Design<br />

Principles, and Learning Performance, IVA 2006, LNAI 4133, 2006.<br />

6. Ronakkumar Patel, Anton Leuski, David Traum, Dealing with Out of Domain<br />

Questions in Virtual Characters, IVA 2006, LNAI 4133, 2006.<br />

7. J. Gratch, A. Okhmatovskaia, F. Lamothe, S. Marsella, M. Morales, R. van der Werf,<br />

L. Morency. Virtual Rapport, IVA’2006, Marina Del Rey, CA, USA, August 21-23, 2006.<br />

8. M. Hoque, M. Yeasin, M. Louwerse. Robust Recognition of Emotion from Speech, IVA<br />

2006, Marina Del Rey, CA, USA, August 21-23, 2006.<br />

9. S. D'Mello, A. Graesser, Affect Detection from Human-<strong>Computer</strong> Dialogue with an<br />

Intelligent Tutoring System, IVA 2006, Marina Del Rey, CA, USA, August 21-23, 2006.<br />

10. L. Zhang, J. A. Barnden, R. J. Hendley, A. M. Wallington, Exploitation in Affect<br />

Detection in Improvisational E-drama, IVA 2006, Marina Del Rey, CA, USA, August, 2006.<br />

11. N. Pfleger, M. Loeckelt, A Comprehensive Context Model for Multi-party Interactions<br />

with Virtual Characters, IVA 2006, Marina Del Rey, CA, USA, August 21-23, 2006.<br />

12. S. Buisine, S. Abrilian, R. Niewiadomski, J.C. Martin, L. Devillers, C. Pelachaud,<br />

Perception of Blended Emotions: from Video Corpus to Expressive Agent, IVA 2006,<br />

Marina Del Rey, CA, USA, August 21-23, 2006.<br />

13. D. Zhigang, J. Bailenson, J.P. Lewis, U. Neumann, Perceiving Visual Emotions With<br />

Speech, IVA 2006, Marina Del Rey, CA, USA, August 21-23, 2006.<br />

14. Costantini, E., Pianesi, F., and Cosi, P, Evaluation of Synthetic Faces: Human<br />

Recognition of Emotional Facial Displays, Affective Dialogue Systems, Dybkiaer, L.<br />

Minker, W. and Heisterkamp, P. (eds.), 2004.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 206 -<br />

15. Costantini, E., Pianesi, F., Prete, M: Recognising emotions in human and synthetic<br />

faces: the role of the upper and lower parts of the face, Proc. of IUI’05, ACM Press (2005),<br />

20-27. 2005.<br />

16. Deng, Z., Bulut, M., Neumann, U., and Narayanan, S: Automatic Dynamic Expression<br />

Synthesis for Speech Animation, Proc. of IEEE <strong>Computer</strong> Animation and Social Agents<br />

2004, July 2004, pp. 267-274.<br />

17. J.P. Sansonnet, D. Leray, J.C. Martin, Architecture of a Framework for Generic<br />

Assisting Conversational Agents , IVA 2006, Marina Del Rey, CA, USA, August, 2006.<br />

18. http://www.limsi.fr/individu/jps/interviews<br />

Department of Electrical <strong>Engineering</strong><br />

Technical University–Sofia, Plovdiv Branch<br />

25, Tsanko Dystabanov Str.<br />

4000 Plovdiv<br />

BULGARIA<br />

E-mail: dilyana_budakova@yahoo.com<br />

Center of Biomedical <strong>Engineering</strong><br />

Bulgarian Academy of Science<br />

105 bl., acad. G. Bonchev Str.<br />

1113 Sofia,<br />

BULGARIA<br />

E-mail: seven_in@cablebg.net


- 207 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

WEB 2.0 TECHNOLOGIES IMPACT ON ACTIVE LEARNING<br />

IN ENGINEERING EDUCATION<br />

MALINKA IVANOVA<br />

Abstract. Active learning strategies are effective in engaging learners and assisting them<br />

in creating their own learning experiences. These strategies can help educators develop<br />

new learning activities to engage learners in the online environment. Web 2.0 proposes<br />

technologies that let learners and educators collaborate and share information online in a<br />

new way - such as social networking sites, wikis, communication tools. Recent research<br />

reveals great interest to introduce Web 2.0 technologies and how they can be used in the<br />

engineering education. In this paper the main active learning strategies are discussed<br />

from the view point of their adaptation for using in online learning environment. The role<br />

of these strategies is analyzed and their influence on learner activation and motivation is<br />

presented. The Web 2.0 technologies are summarized and their impact on engineering<br />

education is shown.<br />

Key words: Web 2.0 technologies, active learning strategies, engineering education.<br />

1. Introduction<br />

For much of the last century, engineering education consisted primarily of a deductive<br />

top-down approach to learning that emphasizes the acquisition of knowledge. This philosophy<br />

often drives learners away from engineering. Active learning seeks to give learners increased<br />

responsibility for the learning process, to increase learner engagement and to provide them<br />

with the competencies they will need in their professional career.<br />

The 21st century needs a new kind of engineer. Not one who finds increasingly elaborate<br />

technical solutions, but creative problem solvers, who with social and environmental<br />

involvement are able to anticipate and adapt to the needs of industry. The main goal should<br />

not only to give the learners of knowledge, but to develop their competencies. According to<br />

the active learning model learners will discover new phenomena and concepts on their own,<br />

link them to previous knowledge, reflect and generalise to acquire conceptual understanding<br />

[1], [2]. Active learning redefines classroom practice from a static view of learning to a more<br />

dynamic view through project-based, collaborative, problem-based activities. Learners play a<br />

more vital role in creating new knowledge to be applied to other professional and academic<br />

contexts. Technology can play an important role in ensuring that learning is the result of<br />

dialogue and production of new knowledge and experience in new media for audiences<br />

beyond the classroom, making both course content and learner work more relevant.<br />

The Web 2.0 proposes new services and software and it transforms from a predominantly<br />

“read only” medium to one where anyone can publish and share content and easily collaborate<br />

with others. The Web 2.0 is already having an impact in class, as educators start exploring the<br />

potential of blogs, media-sharing services, and other social software, which, although not<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 208 -<br />

designed specifically for e-learning, can be used to empower learners and create exciting new<br />

learning opportunities. These same tools allow educators to share and discuss innovations<br />

more easily and, in turn, spread good practice [3]-[9].<br />

Recent research reveals great interest to introduce Web 2.0 technologies and how they<br />

can be used in engineering education. In this paper the main active learning strategies are<br />

discussed from the view point of their adaptation for using in online learning environment.<br />

The role of these strategies is analyzed and their influence on learner activation and<br />

motivation is presented. The Web 2.0 technologies are summarized and their impact on<br />

engineering education is shown.<br />

2. Active Learning Strategies<br />

Of the many active learning strategies available for use in the online learning<br />

environment, most have not been developed specifically for online instruction, but are<br />

currently used in traditional classrooms, and can be successfully adapted for facilitating<br />

online learning. Educators should choose instructional strategies that are most effective for<br />

accomplishing a particular educational objective. Below are some active learning strategies<br />

which have been effectively used in the traditional classroom and can likewise be used in the<br />

online learning environment:<br />

� Learning contracts. A learning contract is a formal agreement written by a learner<br />

which details what will be learned, how the learning will be accomplished, the period of time<br />

involved, and the specific evaluation criteria to be used in judging the completion of the<br />

learning. Learning contracts help the educator and learner share the responsibility for<br />

learning. Learning contracts can be extremely effective active strategy, because the learners<br />

are involved to discuss learning objectives and expectations. Sample learning contracts can be<br />

placed on a web page for the student to use as examples, and students can be encouraged to<br />

brainstorm ideas for learning contracts with their online peers as well as negotiate the final<br />

contract with the educator through utilizing email or online conferencing.<br />

� Lecture. The lecture is one of the most frequently used instructional methods in<br />

engineering education. Most educators agree that the purpose of lectures is to lay foundations<br />

as the student works through the subject, and good lecturers know their students and develop<br />

their lectures according to the students' needs. Lectures are most effective and activate when<br />

they are used in combination with other instructional strategies. Online lectures can be<br />

presented in a variety of ways: via notes, audio or video over the Internet.<br />

� Discussions. Discussion is the active learning strategy most favored by learners<br />

because it is interactive and encourages active, participatory learning. The discussion format<br />

encourages learners to analyze alternative ways of thinking and acting and assists learners in<br />

exploring their own experiences so they can become better critical thinkers. The Internet<br />

offers several modes for discussion including mailing lists, chat, forum, panel symposium and<br />

online conferencing programs.<br />

� Self-directed learning. Self-directed learning is learning initiated and directed by the<br />

learner and can include self-paced, independent, and individualized learning as well as selfinstruction.<br />

Self-directed learning places the responsibility for learning directly on the learner.<br />

Learners who take the initiative in learning and are proactive learners learn more and better<br />

than passive learners (reactive learners). Proactive learners enter into learning more<br />

purposefully and with greater motivation. The independent learner is one who is more<br />

involved and active within the learning process. Online learning supports the self-directed<br />

learner in pursuing individualized, self-paced learning activities. The learner, working at a<br />

computer at a convenient time and pace, is able to search and utilize the vast resources of the<br />

Internet research nearly any topic imaginable. Students can visit libraries and various<br />

institutes world-wide, talk to professionals, access recent research, and read newspapers and


- 209 -<br />

peer reviewed scholarly journals online. Students can write collaboratively with peers and<br />

even publish written and multimedia products on web pages.<br />

� Mentorship. The aim of mentorship is to promote learner development drawing out<br />

and giving form to what the student already knows. A mentor serves as a guide rather than a<br />

provider of knowledge and serves the function of introducing students to the new world,<br />

interpreting it for them, and helping them to learn what they need to know to function in it. A<br />

major benefit to online mentorship is the opportunity for frequent, convenient communication<br />

between mentor and student. Weekly or even daily journals and communications can be sent<br />

between mentor and student via e-mail, providing an ongoing “dialogue” which supports the<br />

development of the mentor relationship and offers numerous opportunities for timely<br />

feedback on student questions, concerns and issues.<br />

� Group-based learning. In small groups learners can discuss content, share ideas, and<br />

solve problems. They present their own ideas as well as consider ideas put forth by others. In<br />

this way, they can be exposed to a variety of viewpoints on a given subject. There are many<br />

small group formats that encourage and provide opportunities for interaction: The discussion<br />

group allows learners to reflect on a subject under discussion and present their view; Guided<br />

design focus is on developing learners’ decision-making skills as well as on teaching specific<br />

concepts and principles; Role playing involves recreating a situation relating to a real-world<br />

problem in which participants act out various roles.<br />

� Project-based learning. Online projects give students an opportunity to pursue their<br />

special interests and can be done individually or within groups. Projects also provide students<br />

with practical experience and a sense of accomplishment. Using projects in a learning activity<br />

makes the learning more relevant to the learners. Products can be shared with others in the<br />

class and critiqued. Group projects can include simulations, role playing, case studies,<br />

problem solving exercises, group collaborative work, debates, small group discussion, and<br />

brainstorming.<br />

� Collaborative learning. Collaborative learning is the process of getting two or more<br />

students to work together to learn. Students often work in small groups composed of<br />

participants with differing ability levels and using a variety of learning activities to master<br />

material initially developed by an instructor, or construct knowledge on substantive issues.<br />

Each member of the team is responsible for learning what is taught and for helping teammates<br />

learn. In the online environment collaborative work can be implemented by using social<br />

software or can be created social networks.<br />

� Case studies, Readings. The case study is a teaching strategy which requires learners<br />

to draw upon their past experiences, is participatory and has action components which are<br />

links to future experience. The key to a successful case study is the selection of an appropriate<br />

problem situation which is relevant both to the interests and experience level of learners and<br />

to the concepts being taught. The case report should include facts regarding the problem, the<br />

environmental context, and the characters of the people involved in the case. It should be<br />

factual, but also contain the opinions and views of the people involved. Learners should have<br />

access to the problem solution, but not until they have reached their own conclusions and can<br />

then compare their results with the actual decision taken to resolve the problem. In the online<br />

environment case studies can be presented on web pages and discussed in conferencing<br />

groups. Cases can be developed by class groups as collaborative projects. In addition, the vast<br />

resources of the Internet can be tapped by students and educators to contribute data,<br />

information and expert advice to case development and analysis.<br />

� Simulation-based learning. It is in which a person is placed into a scenario or situation<br />

and is directly responsible for the changes that occur as a result of their decisions. Recent<br />

developments in software, the Internet and virtual reality have created richer, more life-like<br />

learning experiences. Simulation in this context is a set of techniques and technologies to<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 210 -<br />

create guided, interactive, and often “immersive” activities that recreate experiences of a realworld<br />

environment. These are used to amplify or replace actual experiences.<br />

� Experiential Learning. On the one hand the term is used to describe the sort of<br />

learning undertaken by students who are given a chance to acquire and apply knowledge,<br />

skills and feelings in an immediate and relevant setting. Experiential learning thus involves a<br />

direct encounter with the phenomena being studied rather than merely thinking about the<br />

encounter, or only considering the possibility of doing something about it. The second type of<br />

experiential learning is education that occurs as a direct participation in the events of life.<br />

3. Web 2.0 Technologies<br />

Web 2.0 includes web-based technologies that allows a “read/write” approach to the<br />

web and enables the learner to be both a consumer and producer of content and services.<br />

Learners are actively involved in a learning process as co-learners and co-authors in this type<br />

of environment. It enhances the opportunities for learners to collaborate and generate new<br />

knowledge or build expert domains by a community of practice. In engineering education can<br />

be used the following Web 2.0 technologies:<br />

� Blogging. A weblog or blog is a web-based publication consisting primarily of<br />

periodic articles. Blogging is increasingly finding a home in education, as not only does the<br />

software remove the technical barriers to writing and publishing online - but the “journal”<br />

format encourages students to keep a record of their thinking over time. Blogs also of course<br />

facilitate critical feedback, by letting readers add comments - which could be from educators,<br />

peers or a wider audience.<br />

� Video blogging. By combining use of two popular web services, Blogger<br />

(blogger.com) and YouTube (youtube.com), students can make research and produce video<br />

blog entry on a new media technology of their choice - anything from the social networking<br />

website MySpace to MP3 players like the iPod.<br />

� Podcasting. Podcasting is a means of distributing audio and video programs via the<br />

Internet that lets learners subscribe to a number of files, also known as “feeds”, and then hear<br />

or view the material at the time that they choose. A feed is usually in the MP3 audio format.<br />

Podcasting has become a popular technology in education, in part because it provides a way<br />

of pushing educational content to learners. Also student-produced podcasts are where it's at<br />

when it comes to educational podcasting. As with blogging, podcasting provides students with<br />

a sense of audience - and they are highly motivated to podcast.<br />

� Wikis. Educators are using many of these same tools to share their innovative uses of<br />

Web 2.0 applications and services, and to collaborate with colleagues and students. By using<br />

wiki software the site lets anyone add their details to the directory or update a previous entry.<br />

� Media sharing (Discussing/annotating images) . The photo-sharing site Flickr is also<br />

finding use within education - as it provides a valuable resource for students and educators<br />

looking for images for use in presentations, learning materials or coursework. Many of the<br />

images uploaded to Flickr carry a Creative Commons license, making them particular suitable<br />

for educational use - and the tagging of images makes it much easier to find relevant content.<br />

Students can also use Flickr to publish and discuss their digital photography and find images<br />

relevant to a particular subject for use in their coursework. And like blogging, the<br />

commenting function on Flickr allows for critical feedback.<br />

It also has a lesser-known feature that has many potential uses for teaching and learning: the<br />

ability to add annotations to an image.<br />

� Mashups. Combine nigh-value software and services from multiple sources into single<br />

new web-based applications. A mashup is a website or web application that seamlessly<br />

combines content from more than one source into an integrated experience and this is useful<br />

method to support educators and learners in collect and aggregate knowledge.


- 211 -<br />

Content used in mashups is typically sourced from a third party via a public interface or API.<br />

Other methods of sourcing content for mashups include Web feeds (e.g. RSS or Atom) and<br />

JavaScript includes.<br />

� Folksonomy. It is a neologism for a practice of collaborative categorization using<br />

freely chosen keywords. More colloquially, this refers to a group of people cooperating<br />

spontaneously to organize information into categories, typically using categories or tags on<br />

pages, or semantic links with types that evolve without much central control. The use of<br />

formally typed links is however rare. Folksonomy is rarely supported directly by text<br />

navigation facilities, web browsers, or other tools requiring types.<br />

� Social Networks. A social network is a social structure between actors, mostly<br />

individuals or organizations. It indicates the ways in which they are connected through<br />

various social familiarities ranging from casual acquaintance to close familial bonds. The<br />

educational potential of social software and services is huge. A social networking website is<br />

defined as any web service that: allows users to create web pages or profiles that provide<br />

information about themselves and are available to other users; and offers a mechanism for<br />

communication with other users, such as a forum, chat room, email, or instant messenger.<br />

4. Using Web 2.0 Technologies in <strong>Engineering</strong> Education<br />

The online learning environment allows educators and students to actively exchange<br />

ideas and information, work together on projects, from anywhere in the world, using multiple<br />

communication modes. Given the advantages and resources of this rich learning environment,<br />

how can multiple instructional strategies best be utilized for online learning through Web 2.0<br />

technologies? There is no simple, straightforward answer to this question, depending on<br />

specific situation, one solution will work best of given students. On Figure 1 is presented one<br />

model for using the Web 2.0 technologies in engineering education.<br />

Wiki<br />

Learni<br />

ng<br />

Bloggin<br />

Group<br />

-based<br />

learni<br />

Podcastin<br />

Selfdirected<br />

learnin<br />

Media<br />

Sharin<br />

Lectur Discussio Mentorshi<br />

Googl<br />

e<br />

Simulatio<br />

n-based<br />

learning<br />

Case<br />

Mashu Folksono<br />

Project<br />

-based<br />

learnin<br />

Active Learning<br />

Strategies<br />

Collaborati<br />

ve learning<br />

Experienti<br />

al<br />

Web 2.0<br />

Technologies<br />

Social<br />

Networ<br />

Fig. 1. Web 2.0 Technologies in and Active Learning Strategies in <strong>Engineering</strong> Education<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 212 -<br />

5. Discussion and Future Work<br />

Active learning: increases motivation, students become involved in their own learning<br />

process and develop learning strategies, students become more creative, reactive and<br />

proactive, the effectiveness of contacts between students and teachers is improved, students<br />

learn to work autonomously and cooperative in teams. Web 2.0 technologies encourage<br />

implementation of active learning strategies and these technologies have great potential to<br />

change learning, communication and publishing practices in engineering education. With<br />

these extended technology opportunities come new challenges for educators.<br />

The investigations and analysis in this paper will support the future work which aim is<br />

to design and implement the online learning environment web 2.0 technology-based with<br />

models of active learning strategies.<br />

REFERENCES<br />

1. D. Brodeur, S.Hall, I. Waitz, E. Crawley, D. Newman. Active Learning, American<br />

Society of <strong>Engineering</strong> Education, National Conference, Albuquerque, June, 2001.<br />

2. J. Millis. Managing-and motivating-distance learning group activities,<br />

http://www.tltgroup.org/gilbert/millis.htm , 2000<br />

3. P. Graham. Web 2.0, http://www.paulgraham.com/web20.html, 2005.<br />

4. D. Hinchcliffe. The State of Web 2.0, Web Services Journal, 2006.<br />

A. Leene. The MicroWeb: Using MicroContent in theory and practice. MicroLearning<br />

5. conference, Innsbruck, Austria, 2006.<br />

6. M. Ivanova, E. Vasilyeva. Web 2.0: Conceptual Modeling of Application Design<br />

Strategy, International Scientific Conference <strong>Computer</strong> Science’2006, Istanbul, Turkey.<br />

7. L. Grant. Using Wikis in Schools: A Case Study, 2006,<br />

http://www.futurelab.org.uk/download/pdfs/research/disc_papers/Wikis_in_Schools.pdf<br />

8. M. Prensky. Delivering 21st Century tools, learning and skills education, Australian<br />

National Seminar, March 2006<br />

9. S. Downes. E-learning 2.0, eLearn Magazine, http://www.elearnmag.com, 2006.<br />

10. J. Banico. Web 2.0 Concepts and Technologies, http://www.rssrsssrsss.com, 2006.<br />

11. M. Kerres. Web 2.0 and its implication for eLearning, MicroLearning conference,<br />

Innsbruck, Austria, 2006.<br />

12. A.Bruckman. The future of e-learning communities. Communications of the ACM,<br />

45(4), pp. 60-63. 2002<br />

13. R. Hiltz, M. Turoff. What makes learning networks effective? Communications of the<br />

ACM, (45)4, pp. 56-59, 2002<br />

14. R. Felder, R. Brent. FAQs-3. Groupwork in Distance Learning. Chem. Eng. Education,<br />

35(2), 102-103 (Spring 2001).<br />

Technical University–Sofia,<br />

8, Kl. Ohridski Blv.<br />

1000 Sofia<br />

BULGARIA<br />

E-mail: m_ivanova@tu-sofia.bg


- 213 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

СПЕЦИАЛНО ДООПРЕДЕЛЯНЕ НА ЛОГИЧЕСКИ<br />

ФУНКЦИИ: ОПТИМИЗАЦИОННА ПРОЦЕДУРА "БАЛАР"<br />

В ПОСЛЕДОВАТЕЛНОСТНИЯ СИНТЕЗ<br />

СПИРИДОН АРНАУДОВ<br />

В теорията и практиката на логическото проектиране едва ли има нещо, подобре<br />

разработено и по-широко известно от формалните описания на основните<br />

типове елементарни автомати - тригери тип О, Т, RS, JK, и използването им в<br />

конвенционалните процедури за синтез и анализ на синхронни последователностни<br />

схеми /ПС/. В продължение на повече от 30 години [5-18] теоретичната база и<br />

приложните аспекти на този въпрос са останали, според нас, удивително инвариантни.<br />

Това естествено е довело до устойчивата професионална представа, че всичко по тази<br />

тема е вече напълно<br />

и окончателно решено.<br />

Азбучни истини от теорията на крайните автомати са преобразуването на един<br />

тип тригер в друг и възможността произволна ПС да бъде синтезирана и реализирана<br />

само чрез един /който и да е / от четирите основни типа тригери. Естествено е да се<br />

постави въпросът: а защо тогава изобщо са необходими останалите три /които и да са /<br />

типа тригери ? Иначе казано, защо и до сега в теорията и практиката на<br />

последователностния синтез и при реализацията на ПС се използват почти равностойно<br />

и четирите типа тригери? Единственият разумен, по наше мнение, отговор може да<br />

бъде: от десетилетия се е утвърдила професионалната представа, че в някои ПС<br />

определен тип тригер обуславя съществени предимства - удобство при проектирането и<br />

простота при реализацията. Съществуват достатъчно основания да се приеме, че това<br />

твърдение е безусловно валидно за ПС от типа регистри /тригери RS, О/ и броячи<br />

/тригери JK, Т/ . Но за един достатъчно широк кръг от произволни ПС, например<br />

управляващи автомати, паритетът на четирите типа тригери, и по-специално на<br />

двувходовите спрямо едновходовите тригери, е дискусионен и може да бъде обект на<br />

специално оптимизационно изследване.<br />

СПЕЦИАЛНО ДООПРЕДЕЛЯНЕ НА ВЬЗБУДИТЕЛНИТЕ ФУНКЦИИ НА<br />

ДВУВХОДОВИТЕ ТРИГЕРИ<br />

Специалното доопределяне на непълно определени логически функции /лФ/<br />

като една нова методология и алгоритмична технология в комбинационния синтез<br />

[4,3,2,1] може с успех да се приложи върху възбудителните функции на тригерите при<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 214 -<br />

синтез на ПС. Между различните варианти за специално доопределяне приоритетно<br />

значение имат случаите, в които се установява двукратна импликативна релация<br />

еквивалентност /равенство или противоравенство/, защото при тях се намалява самият<br />

брой на подлежащите<br />

на реализация ЛФ.<br />

Този критерий за ранжиране е безусловно валиден при реализация на всяка ПС в<br />

произволна матрична среда - програмируеми логически матрици /ПЛМ/ и постоянни<br />

памети /ПП/ във всички техни разновидности, и е достатъчно значим за всяка друга<br />

среда на микроархитектурно ниво, например първична логика /AND, ОА, NAND,<br />

NOR, ХОR и др./.<br />

Специалното доопределяне има съществено значение за възбудителните функции<br />

на двувходовите тригери, които съдържат дефинитивна неопределеност, вследствие<br />

наличието на дублирани преходи. За целта след обичайното съставяне на кодираната<br />

таблица на преходите на синтезираната ПС може да се изпълни драйверна процедура за<br />

специално доопределяне на възбудителните функции на входовете R и S, К и J, след<br />

което се преминава към конвенционалната процедура за минимизация на тези функции.<br />

Този подход може да се третира само като технологичен, защото се прилага за търсене<br />

на ефективно частно решение във всеки отделен случай на синтез на конкретна ПС.<br />

Проблемът за специалното доопределяне на възбудителните функции на<br />

двувходовите тригери може да бъде разглеждан и в общ методологичен аспект и да<br />

бъде решен генерално за всяка ПС с произволно автоматно поведение. За тази цел бе<br />

извършено съответно аналитично изследване, с което бе установено еднозначно и<br />

общовалидно, че в произволна ПС специалното доопределяне позволява всеки<br />

двувходов тригер винаги и безусловно да се управлява само с една единствена<br />

възбудителна функция.<br />

Пълното аналитично изследване на този проблем може да бъде обект на<br />

интерес само за твърде ограничен кръг от елитни специалисти в съответната област.<br />

Затова то ще бъде докладвано на ежегодната международна научна конференция<br />

Systems for Automation of <strong>Engineering</strong> and Research и публикувано в сборника трудове<br />

Proceedings of SAER'99. В настоящата статия ще приведем само основните<br />

постановки и резултати от това изследване с оглед на тяхното място и значение в<br />

общата методология на последователностния синтез.<br />

Същността на изследвания проблем е формулирана в следното основно<br />

твърдение:<br />

ТЕОРЕМА БАЛАР. В произволна последователност на схема /краен автомат/,<br />

синтезирана с двувходови тригери /RS, JK/, всеки от тях винаги и безусловно може да<br />

се управлява само с една единствена възбудителна функция.<br />

В доказателството на теоремата се използват аналитични дефинитивни<br />

форми на възбудителните функции на двувходовите тригери, които до сега не са<br />

познати. Следствията от доказаната теорема могат да се представят в<br />

обобщен вид:<br />

Следствие 1. Специалното доопределяне на възбудителните функции на<br />

двувходовите тригери при синтез на произволна ПС редуцира винаги и безусловно<br />

тригера тип RS в тригер тип D, а тригера тип JK - в тригер типD или Т.<br />

Следствие 2. Общоизвестните елементарни трансформации на тригер тип RS<br />

в тип D и тригер тип JK в тип D или тип Т, които се използват самостоятелно и<br />

независимо от процедурата за синтез на конкретна ПС, се явяват частни случаи на<br />

доказаната теорема.<br />

Редукциите съгласно следствие 1 очевидно намаляват двукратно броя на<br />

необходимите възбудителни функции за управление на двувходовите тригери. При


- 215 -<br />

реализация на ПС в произволни матрични структури /ПП, ПЛМ/ това води безусловно<br />

до двукратно съкращаване на броя на управляващите линии към логическите входове<br />

на тригерите, т. е. на изходната размерност /разредност/ на комбинационния блок и на<br />

съответната част от информационната площ на матричната среда. Ако<br />

комбинационната логика на ПС се реализира в първична елементна база, заместването<br />

на двете възбудителни функции с една единствена води по принцип до изменение в<br />

сложността, оценена като брой прости импликанти. Известно е, че не съществуват<br />

точни априорни оценки за сложността на минималните форми на ЛФ. Поради това в<br />

нашето изследване е изказана и частично обоснована хипотезата, че сложността на<br />

единствената редуцирана възбудителна функция /D или Т/ ще бъде съизмерима със<br />

сумарната сложност на двете отделни възбудителни функции R и S, респ. K и J.<br />

Считаме, че резултатите от нашето изследване може да се разглеждат като<br />

определен принос в теорията на последователностния синтез и да се използват като<br />

практически подход за оптимална реализация на произволен краен автомат чрез<br />

специално доопределяне на възбудителните функции на елементарните автомати с<br />

два логически входа. Като наименование на доказаната теорема и на съответната<br />

алгоритмична процедура предлагаме означението БАЛАР /Базов АЛгоритъм за<br />

Автоматни Редукции/ , респ. BALAR (Basic ALgorithm for Automata Reductions).<br />

ПРОЦЕДУРАТА БАЛАР В МЕТОДОЛОГИЯТА НА<br />

ПОСЛЕДОВАТЕЛНОСТНИЯ СИНТЕЗ<br />

Ще се опитаме да представим в илюстративен вид нашето виждане относно<br />

мястото и влиянието на описаните изследвания спрямо методологията и технологията<br />

на последователностния синтез.<br />

По наше мнение съществува интересна и нетривиална аналогия между ролята<br />

и значението на теоремата БАЛАР в последователностния синтез и ролята и<br />

значението на теоремата на Де Морган в комбинационния синтез.<br />

Фиг. 1 - комбинационният синтез. Общоизвестната фундаментална теорема<br />

на Де Морган има поне две съществени приложения в комбинационния синтез:<br />

От една страна тя дефинира елементарните трансформации на един тип<br />

логически елемент в друг - И ⇔ ИЛИ-НЕ, ИЛИ⇔ И-НЕ.<br />

От друга страна, приложена заедно със закона за двойното отрицание в<br />

конвенционалната процедура за комбинационен синтез, тя преобразува<br />

дизюнктивните, респ. конюнктивните нормални форми в И - НЕ, респ. ИЛИ - НЕ<br />

форми, т. е. заменя елемент ната база И, ИЛИ, НЕ със среда И - НЕ, респ. ИЛИ -НЕ. В<br />

резултат от това базата И, ИЛИ, НЕ се елиминира като ефективна алтернатива за<br />

реализация на КЛС и остава само като спомагателен инструмент в логическото<br />

проектиране и изследване на КЛС.<br />

Фиг. 2 и 3 - конвенционалният последователностен синтез. Азбучно<br />

известните елементарни трансформации на един тип тригер в друг се извършват<br />

отделно и напълно независимо от конвенционалната процедура за<br />

последователностен синтез. В хода на тази процедура предварително избраният тип<br />

тригери по никакъв начин не може да бъде променен. В резултат на това за<br />

синтезираната ПС се получават специфични схемни реализации за всеки от основните<br />

типове тригери със значително различни оценки.<br />

Фиг. 4 и 5 - процедурата БАЛАР в последователностния синтез. Ако<br />

проектантът реши, изхождайки от някакви /независимо какви/ мотиви да синтезира<br />

произволна ПС чрез двувходови тригери /RS или JK/ и приложи оптимизационната<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 216 -<br />

процедура БАЛАР за специално доопределяне на техните възбудителни функции, той<br />

винаги, безусловно и напълно независимо от своите желания или предпочитания, ще<br />

стига до едно и също решение - тригерите с два логически входа да се управляват<br />

само с по една логическа функция. В резултат от това за синтезираната ПС ще се<br />

получават винаги схемни реализации само за двата типа едновходови тригери, което<br />

гарантира оптимална реализация в матрична среда.<br />

Фиг. 6 - перспективите в послепователностния синтез. Съгласно<br />

доказаната теорема БАЛАР двувходовите тригери в произволна ПС винаги и<br />

безусловно може да се редуцират в едновходови. Нашето виждане е, че вследствие на<br />

това двувходовите тригери отпадат като ефективна алтернатива в процедурата за<br />

последователностен синтез и в този контекст стават ненужни. Считаме, че такъв<br />

подход напълно удовлетворява реалностите и обозримите перспективи в<br />

компютърната схемотехника и микроархитектура и в значителна част от цифровата<br />

електроника, където безспорно преобладават програмируемите логически среди от<br />

матричен тип. В тези условия последователностният синтез с едновходови тригери е<br />

единствената оптимална алтернатива.<br />

Щe подчертаем специално обаче, че двувходовите тригери запазват напълно<br />

своята значимост и приложимост в следните случаи:<br />

- като схемотехническа база /суровина/ за реализация на едновходовите тригери<br />

във всяка / в това число и матрична/ елементна среда;<br />

- като база за синтез и оптимална реализация на определени типове ПС /регистри,<br />

броячи/;<br />

- като равностойна и евентуално оптимална алтернатива за синтез на произволна<br />

ПС, но само в достатъчно редките и, по наше мнение, екзотични случаи на реализация в<br />

произволна първична елемент на среда.<br />

ЗАКЛЮЧЕНИЕ<br />

В статията е дефиниран проблемът за специално доопределяне на<br />

възбудителните функции на тригерите с два логически входа като оптимизационна<br />

възможност в синтеза на произволна последователност на схема. Приведени са<br />

основните постановки и резултати от извършеното аналитично изследване, в което е<br />

доказано, че във всяка последователност на схема /краен автомат/ с произволна<br />

функция на преходите всеки тригер с два логически входа /RS, JK/ може винаги и<br />

безусловно да се управлява само с една единствена възбудителна функция. В<br />

регулярни програмируеми логически среди от матричен тип / постоянни памети, PLA,<br />

РАИ това води до оптимална реализация вследствие двукратното намаляване на броя<br />

на функционалните линии, които управляват логическите входове на тригерите.<br />

Илюстрирано е виждането на авторите за ролята и мястото на доказаната<br />

теорема БАЛАР и на едноименната оптимизационна процедура в теорията и<br />

практиката на съвременния последователен синтез.<br />

ЛИТЕРАТУРА<br />

1. Balkanjiev L., Arnaudov S., Partial relation and consistency in the special post<br />

determination of logical functions, Proceedings of the 11 th International Conference if<br />

System for Automation of <strong>Engineering</strong> and Research (SAER’97), 54-58.


- 217 -<br />

Balkandjiev L., Arnaudov S., Secial postdetermination of logical functions:<br />

Algorithmic procedure using integer numeric tabIes, Proceedings of the 12th International<br />

conference of System for Automation of <strong>Engineering</strong> and Research (SAER’98), 97-101.<br />

2. Балканджиев Л., Арнаудов С., Дескрипторните функции като аналитичен<br />

инструмент в специалното доопределяне, Автоматика и информатика, 1997, бр.5-<br />

6, 44-49<br />

3. Балканджиев Л., Арнаудов С., Специално доопределяне на логически функции,<br />

Автоматика и информатика, 1997, бр. 5-6,44-49.<br />

4. Даковски Л., Анализ и синтез на лигически схеми, София, Сиела, 1998.<br />

5. Working with programmable logic, Electronics World + Wireless world, Jan.1994, 49-<br />

56. Dec. 1993, 1017-1023, Nov. 1993, 905-911.<br />

6. Савелъев П., Коняхин В., Функционалъно логическое проектирование БИС,<br />

Москва, Высшая школа, 1990.<br />

7. Лазарев В., Пийлъ Е., Синтез управляющих автоматов, изд ІІІ, Москва, Энергия,<br />

1989.<br />

8. Киносита К., Асада К., Карацу О., Логическое проектирование СБИС, Москва,<br />

Мир 1985.<br />

9. Мурога С., Системное Проектирование СБИС, Москва, Мир, 1985.<br />

10. Баранов С., Синеев В., Автоматы и программируемые матрицы, Минск,<br />

Вышэйшая школа, 1980.<br />

11. Фридман А., Менон П., Теория и проектирование преключателъных схем,<br />

Москва, Мир, 1978.<br />

12. Гаврилов М., Девятков В., Пурпырев Е., Логическое проектирование<br />

дискретных автоматов, Москва, Наука, 1977<br />

13. Кисъов В., Теория на крайните автомати, София, Техника, 1976.<br />

14. Вавилов Е., Портной Г., Синтез схем элекронных цифровых машин, Москва,<br />

Сов. Радио, 1964.<br />

15. Гилл А., Введение в теорию конечных автоматов, Москва, Наука, 1966.<br />

16. Глушков В., Синтез цифровых автоматов, Москва, 1962.<br />

17. Phister M., Logical design of digital computers, New York, Tohn Willy & sons, 1958;<br />

на руски език – Киев, Техника, 1964.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 218 -


- 219 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

STUDYING THE APPLICATION OF CAD SYSTEMS<br />

DOBRINKA PETKOVA, PETAR NENCHEV, KRASIMIR KRASTEV,<br />

VESELINA VASILEVA, PENKA NEDELCHEVA<br />

Abstract: The different approaches in making drawings of parts are conditioned by three<br />

main factors: complexity of parts; level of knowing of CAD-system and technical<br />

capacity of the means for their realization.<br />

The present work analyzes the results by methods of studying the realization of one<br />

object (drawing) by using the system AutoCAD. The Analysis is based on DHF file. It<br />

collects information determining the rationality of making of a drawing, which is<br />

compared with a “model”. A specific factor of rationality for every drawing has been<br />

determined. The results received enable to evaluate the level of rationality, as well as the<br />

effectiveness of AutoCAD application.<br />

Key words: drawing, analyze, methods of studying, coefficient of rationality.<br />

ИЗСЛЕДВАНЕ ИЗПОЛЗВАНЕТО НА CAD СИСТЕМИ<br />

1. Въведение<br />

Съвременната техника позволява бързо преминаване от традиционните ръчни<br />

методи на изработване на конструкторска документация към нови информационни<br />

технологии с използването на специализирани CAD-системи. Получената при това<br />

документация изцяло съответствува на стандартите по БДС и БДС ISO по качеството<br />

на изпълнение на документите. При такъв подход на конструиране използването на<br />

CAD-системи не отстранява чертежа като основа на конструирането. Компютърът при<br />

това служи за “електронен кадастрон”, което значително ускорява процеса за създаване<br />

на нови изделия. Компютърната графика се явява един от най-важните елементи на<br />

системата за автоматизирано проектиране на изделията. Тримерното компютърно<br />

моделиране дава на потребителя – конструктор възможност да използва естествения<br />

традиционен принцип на проектиране на изделието: от неговия пространствен модел<br />

към представяне в двумерното пространство, в това число и във вид на чертеж. За да се<br />

извърши преход от тримерно в двумерно пространство е необходимо най-напред да се<br />

овладеят от потребителите начините за изобразяване на детайл в двумерно<br />

пространство.<br />

В настоящата работа са използвани методите на двумерното моделиране в<br />

средата на графичната система за проектиране AutoCAD [1, 2, 3, 4, 5, 6].<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 220 -<br />

2. Кратко описание на използваната методика<br />

2.1. Първи етап от изследването<br />

В работата [7] са разгледани две схеми на изследване. Приета е първата схема –<br />

един обект на изследване, разработен със системата AutoCAD изпълнен от различни<br />

потребители.<br />

Обект на изследване се явяват предварително разработени шест прости детайли,<br />

зададени с двете си проекции. Ограниченият обем на доклада не позволява да се<br />

приложат всички детайли.<br />

На фиг. 1 е представен един от изследваните обекти – чертеж на детайл –<br />

вариант 5.<br />

5<br />

Фиг. 1. Изследван обект – детайл вариант 5<br />

В изследването участвуват девет начинаещи потребители, които са завършили<br />

напълно чертежа на детайла от вариант 5.<br />

За еталон са взети чертежите на детайла от вариант 5 на пет потребителя,<br />

познаващи много по-добре системата AutoCAD.<br />

2.2. Втори етап от изследването<br />

Вторият етап от изследването се явява оценка на създаденото с AutoCAD изображение,<br />

съдържащо се във файл. Задължително условие за работата на този етап е запис на<br />

файла с изображението в DXF формат. Този файл представлява пълна база данни за<br />

всеки чертеж. Развитието и усъвършенстването на системата AutoCAD с нови<br />

графични примитиви води до добавяне на нови групи данни в този файл.


- 221 -<br />

Всеки DXF файл включва много и разнообразна информация. Този факт прави<br />

непосредствения анализ на информацията във файла трудно изпълним, а при сложни<br />

изображения дори невъзможен. DXF файловете имат еднаква структура [1] и това<br />

позволява анализът им да се извършва лесно с програма за търсене на зададена<br />

информация. Те включват еднакви раздели с точно определени имена - HEADER,<br />

CLASSES, TABLES, BLOCKS, ENTITIES, OBJECTS, THUMBNAILIMAGE, които<br />

съдържат специфична информация, зависеща от изображението. В разделите са<br />

записани групи кодове със специфичен за файла формат. Анализът се базира на<br />

информация, която е записана в разделите BLOCKS (БЛОКОВЕ) и ENTITIES<br />

(ПРИМИТИВИ).<br />

Разделът BLOCKS (БЛОКОВЕ) включва блоковете, използувани при създаване на<br />

изображението. Съдържат се дефинициите на всички блокове, заедно с генериращите<br />

се анонимни блокове. Отделният дефиниран блок включва примитивите, които го<br />

съставят. Форматът на примитивите от този раздел е еднакъв с този от раздел<br />

ENTITIES. Всеки отделен примитив е разположен между елементите BLOCK и<br />

ENDBLK. Тези елементи се срещат само в раздела BLOCKS.<br />

Разделът ENTITIES (ПРИМИТИВИ) съдържа групата кодове на използуваните<br />

графичните примитиви и извиканите блокове, използувани за създаване на<br />

изображението в чертежа. Форматът за разполагане на графичните примитиви в този<br />

раздел е същият като в - раздел BLOCKS.<br />

Анализът на DXF файла се извършва по програмен път. Създадена е програма, която<br />

открива и отчита зададена информация. Информацията се записва или е записана<br />

предварително в отделен файл и програмата ползува този файл при търсенето.<br />

Записаната информация във файла може да се променя. Тя се определя от поставената<br />

при анализа задача. Програмата чете DXF файла и търси информацията и отразява<br />

получените резултати. Създадената програма използува таблична форма на представяне<br />

на информацията.<br />

При анализ на рационалността се търси и отчита записана информация в споменатите<br />

два раздела на DXF файла. Анализът се отнася за определени примитиви, изграждащи<br />

записаното във файла изображение. Разгледани са примитивите: LINE, CIRCLE,<br />

DIMENCION и POLYLINE.<br />

На база изведената матрица (1) в работата [7] е определен коефициента на<br />

рационалност по формула (1):<br />

КR = KL +2 x (КC + KD) + 3 x KPL, където (1)<br />

Σ PL<br />

Σ LЕ<br />

KL = - коефициент на примитива линии;<br />

Σ PС<br />

КC = Σ СЕ - коефициент на примитива окръжности;<br />

Σ PD<br />

KD = Σ DЕ - коефициент на примитива размери;<br />

Σ PPL<br />

KPL= Σ PLЕ<br />

- коефициент на примитива полилинии.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 222 -<br />

В числителя на посочените коефициенти сумите PL , PС , PD и PPL са съответно<br />

суми от примитивите за линии, окръжности, размери и полилинии от файловете на<br />

потребителите. В знаменателя сумите LЕ, СЕ, DЕ и PLЕ са суми от примитивите, взети<br />

от еталона. Множителят пред първото, второто и трето събираемо от формула (1)<br />

отчита степента на тежест на разглежданите примитиви.<br />

Прието е, във формула (1) използването на линия да има степен на тежест, равна<br />

на 1, за окръжност и оразмеряване – степента на тежест е равна на 2 и за полилиния -<br />

степен на тежест - равна на 3. Тези степени на тежест са приети на база анализ на броя<br />

операции за построяване на примитив, сложност на изпълнение на обектите,<br />

ресурсоемкост на техниката и др.<br />

Общият брой линии ( L ), общият брой окръжности ( C ), общият брой размери<br />

( D ) и общият брой полилинии ( PL ) се определя съответно чрез броя синтактични<br />

конструкции LINE, CIRCLE, DIMENSION и POLYLINELINE, записани в анализирания<br />

файл.<br />

3. Резултати от анализа на изследването<br />

Определянето на рационалността на изчертаване на чертеж на детайл с помощта<br />

на AutoCAD изисква следната последователност на работа:<br />

- създаване и запис на чертежа във файл с DWG формат;<br />

- запис на чертежа във файл с DXF формат;<br />

- преглед на големината на файловете;<br />

- обработка на DXF файла с програма за търсене – откриват се броя символи,<br />

определящи стойностите на параметрите във формула (1);<br />

- изчислява се относителния коефициент на рационалност КR на чертежа по<br />

формула (1) с получените данни от DXF файла.<br />

Резултатите, получени от обработката на създадените 14 файла са дадени в табл.<br />

1, 2 и 3.<br />

Таблица 1. Размер на обработваните файлове в [KB] (килобайта)<br />

Потребител № DWG формат DXF формат<br />

1 40 169<br />

2 45 196<br />

3 33 68<br />

4 41 169<br />

5 33 67<br />

6 34 70<br />

7 33 67<br />

8 40 118<br />

9 42 172<br />

10 46 62<br />

11 44 168<br />

12 33 69<br />

13 37 68<br />

14 42 65


- 223 -<br />

Файловете са създадени от различни потребители. Различават се по размер<br />

поради факта, че използуваните средствата за създаване на изображението отразяват<br />

познанията и умения за работа на съответния потребител.<br />

За определяне коефициентите на еталона е използвана средноаритметичната<br />

стойност на резултатите от чертежите на детайла на пет потребителя, познаващи много<br />

по-добре системата AutoCAD. Получените данни за коефициентите LЕ, СЕ, DЕ и PLЕ са<br />

представени в табл. 2.<br />

Таблица 2. Определяне на коефициентите LЕ, СЕ, DЕ и PLЕ за еталона<br />

Примитиви<br />

10 11<br />

Потребител №<br />

12 13 14<br />

Σ Коефициенти<br />

LINE 78 85 77 50 96 386 LЕ = 77,2<br />

CIRCLE 1 1 1 1 0 4 CЕ = 0,8<br />

DIMENSION 12 12 12 12 12 60 DЕ = 12,0<br />

POLYLINE 1 1 1 10 0 13 PLЕ = 2,6<br />

Резултатите на девет начинаещи потребители, завършили напълно чертежа на<br />

детайла са представени в табл. 3.<br />

Таблица 3. Определяне на общия брой примитиви за всеки потребител<br />

Примитиви<br />

1 2 3<br />

Потребител №<br />

4 5 6 7 8 9<br />

LINE 95 102 88 101 90 85 73 105 94<br />

CIRCLE 2 1 1 1 1 1 1 0 0<br />

DIMENSION 12 12 12 12 12 12 12 11 12<br />

POLYLINE 1 1 1 1 3 3 4 1 1<br />

След обработка на данните от табл. 2 и 3 се определят относителните коефициенти на<br />

рационалност KR за всеки потребител. Получените резултати са представени в табл. 4.<br />

Таблица 4. Определяне на коефициента на рационалност KR по формула (1)<br />

Коефициенти<br />

1 2 3<br />

Потребител №<br />

4 5 6 7 8 9<br />

КL LINE 1,23 1,32 1,14 1,31 1,17 1,10 0,95 1,36 1,22<br />

КC CIRCLE 2,50 1,25 1,25 1,25 1,25 1,25 1,25 0,00 0,00<br />

КD DIMENSION 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00 1,00<br />

КPL POLYLINE 0,38 0,38 0,38 0,38 1,15 1,15 1,54 0,38 0,38<br />

KR 9,38 6,98 6,79 6,96 9,13 9,06 10,06 4,35 4,37<br />

Сравнението на резултатите от табл. 4 показва различни коефициенти KR. Това е<br />

поредно доказателство за различните подходи при реализирането на един и същ обект<br />

(чертеж) от различни потребители. Максимална стойност на KR получава потребител<br />

№7. Този резултат е вследствие на коефициента КPL.<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 224 -<br />

4. Заключение<br />

Получените резултати и направения анализ на база разработената методика за<br />

изследване използването на програмния продукт AutoCAD [7] показват приложимостта<br />

и за оценяване ефективността на работа на потребителите. Критерий за съпоставимост<br />

е максималната стойност на KR.<br />

ЛИТЕРАТУРА<br />

1. AutoCAD 14 БИБЛИЯ. Част ІІ. – Изд. Алекс Софт, 1998. – 432 с.<br />

2. Д. Петкова, М. Пенев, В. Василева. Създаване на тримерни модели в CAD системи,<br />

“АМТЕХ–2005”, Русе, Научни трудове, т.44, серия 2 “Прогресивни<br />

машиностроителни технологии”, ISBN 1311-3321, 10-12 ноември, 2005, с.540–545.<br />

3. М. Пенев, Д. Петкова, В. Василева. Сравнение при изграждане на 3D модели в<br />

CAD системи, “АМТЕХ–2005”, Русе, Научни трудове, т. 44, серия 2 “Прогресивни<br />

машиностроителни технологии”, ISBN 1311-3321, 10-12 ноември, 2005, с. 534–539.<br />

4. М. Пенев, Д. Петкова, К. Кръстев. Методика и анализ при проектирането в<br />

тримерно пространство, В сб. доклади на Международна научна конференция<br />

Trans&motauto’05+, В. Търново, т.4, ISBN 954.9322-12-2, 23-25 ноември, 2005,<br />

с.13–16.<br />

5. Д. Петкова, В. Петков, Д. Драганов, П. Ненчев. Проектиране на<br />

детайли с методите на проекционното чертане и с геометричното 3D<br />

моделиране, В сб. доклади на Международна научна конференция<br />

“UNITEX’05”, Габрово, 24-25 ноември 2005, с. ІІІ-287–292.<br />

6. М. Пенев, Д. Петкова. Оценка ефективността на изобразяване на 2D детайли в<br />

AutoCAD, HCTech’05, ноември, 2005, сп. “Машиностроене & Електроника”, София,<br />

ISSN 0025-455х, Машиноинтелект ЕООД, с. 73 – 75.<br />

7. Д. Петкова, П. Ненчев, К. Кръстев, М. Рачева. Методика за изследване<br />

използването на програмния продукт AutoCAD, В сб. доклади на Международна<br />

научна конференция Trans&motauto’06, Варна, 26-27 октомври, 2006, с. 31-33.<br />

Department of Machine Elements and Technical Drawing<br />

Department of Applied Information<br />

Technical University – Gabrovo<br />

4, Hadji Dimitar Str.<br />

5300 Gabrovo<br />

BULGARIA<br />

E-mail: dpetkova@tugab.bg


- 225 -<br />

©Journal of the Technical University at Plovdiv<br />

“Fundamental Sciences and Applications”, Vol. 13(1), 2006<br />

Anniversary Scientific Conference’ 2006<br />

BULGARIA<br />

VHDL MODELS OF SENSORS WITH ANALOG INPUT AND<br />

DIGITAL OUTPUT<br />

ATANAS KOSTADINOV<br />

Abstract. VHDL (Very high speed integrated circuit description language) has been used<br />

to build sensor models with analog input and digital output. There have been created and<br />

tested temperature sensors models of MAX 6666/MAX 6667, MAX 6676/MAX 6677<br />

produced by MAXIM Integrated Products Inc., TMP 03/ TMP 04 produced by Analog<br />

Devices Inc., as well as intelligent opto sensor TSL 230R produced by American firm<br />

TAOS Inc. (Texas Advanced Optoelectronic Solutions ). Input signal for above<br />

mentioned sensors is realized as analog type, while output signal is realized as<br />

digital one.<br />

The models have been verified using VHDL simulator ModelSim XE III/Starter 6.1e.<br />

Key words: VHDL, sensors, VHDL simulator.<br />

VHDL МОДЕЛИ НА СЕНЗОРИ С АНАЛОГОВ ВХОД И ИМПУЛСЕН<br />

ИЗХОД<br />

1. Въведение<br />

Сензорите са електронни елементи, които преобразуват определени физически<br />

величини (температура, скорост на въртене, осветеност, влажност, налягане и др.) в<br />

електрически сигнал. За да може информацията постъпваща от сензора да се съхрани в<br />

памет, както и да се обработи от микропроцесор е необходимо тя да бъде в цифров вид.<br />

Ако изходът на сензора е от аналогов тип, то трябва да се използва АЦП (Аналоговоцифров<br />

преобразувател), за да се извърши необходимото преобразуване. Съществуват<br />

сензори, на изхода на които информацията се получава непосредствено в цифров вид,<br />

т.е. при тях не е необходимо допълнително преобразуване на сигнала при изграждане<br />

на микропроцесорни системи. Като специална група сензори може да се обособи<br />

групата на т.нар. “интелигентни сензори”, които освен преобразователният елемент<br />

съдържат и електронни схеми, които извършват първоначална обработка на<br />

информацията и осигуряват по-голяма степен на функционалност [1].<br />

Сензорите са част от състава на всяка една вградена микропроцесорна<br />

система [2]. От важно значение при изграждането на подобни системи е проверката на<br />

тяхната работа. Това се извършва чрез създаване и тестване на опитни образци на<br />

вградената система. Опитните образци биват реални – изградени от съответни<br />

интегрални схеми или виртуални – модели на тези системи създадени и описани чрез<br />

съответни езици. Виртуалните модели имат определени предимства в сравнение с<br />

физическите модели, като те са:<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 226 -<br />

1.1. По-лесно и по-бързо е реализирането на виртуалните модели – не се изисква<br />

закупуването на електронни компоненти, създаването на печатни платки, запояването<br />

на елементите и т.н.;<br />

1.2. Не се отделят вредни вещества при реализирането им, както и не се<br />

използват материали, които са опасни за човешкото здраве;<br />

1.3. При промяна на свързването на елементите, не е необходимо създаването на<br />

нова платка или запояване на допълнителни проводници. Това, което се извършва е<br />

корекция във файла, определящ връзките между електронните елементи;<br />

1.4. Наличието в компютърната мрежа Интернет на IP (Intellectual property,<br />

интелектуална собственост) електронни елементи, в това число микропроцесори и<br />

микроконтролери. Някои от създадените IP модели са достъпни и без заплащане;<br />

1.5. Възможност за използване на компютърна техника през целият период на<br />

проектиране на микропроцесорна система, а не само при създаване на програмното<br />

осигуряване. Това позволява изследване на различни възможни комбинации от<br />

използваните електронни компоненти, което от своя страна води до получаване на<br />

системи с различни характеристики. Компютърната техника и подходящо програмно<br />

осигуряване е това, което помага на инженера-проектант да подбере най-подходящата<br />

микропроцесорна система за конкретното приложение от всички съществуващи<br />

решения;<br />

1.6. Получените резултати при симулирането на създадените виртуални модели,<br />

са много близки или идентични с тези, които биха се получили в резултат от<br />

проверката на физическите модели;<br />

1.7. Някои от фирмите производителки на програмируеми интегрални схеми<br />

предлагат достъпни университетски програми [6]. В резултат от участието в тях може<br />

да се получи дарение под формата на програмни и/или апаратни средства за създаване<br />

и проверка на реализираните виртуалните модели;<br />

Най-често използваните езици за описание на апаратната част са езиците VHDL<br />

и Verilog. Освен тях се използва и езикът Системен С (System C). Създадените<br />

виртуални модели се проверяват като се използват HDL (Hardware description language,<br />

език за описание на апаратната част) симулатори.<br />

2. Създадени модели на сензори<br />

Използван е VHDL за създаването на модели на температурни сензори<br />

MAX 6666/MAX 6667 и MAX 6676/MAX 6677 произведени от фирма MAXIM<br />

Integrated Products Inc., TMP 03/ TMP 04 произведени от Analog Devices Inc., както и<br />

интелигентният оптичен сензор TSL 230R, произведен от TAOS Inc. Подобен подход<br />

може да се види в публикуваните научни доклади и създадените модели [3, 4, 5, 9].<br />

Последователността от действия използвани при създаване на VHDL моделите<br />

може да бъде обобщена в следните основни стъпки:<br />

• Разучаване на техническата документация за съответния сензор;<br />

• Създаване на VHDL модела, като използваното описание е от т.нар.<br />

поведенчески тип. Задава се сигнал с име s, който съществува в списъка от сигнали,<br />

които запускат създаден процес в поведенческото описание (структура, която се<br />

изпълнява паралелно), а същевременно той е включен и във VHDL израз от типа “s<br />

приема стойност не (not) s след (after) ...”. Това позволява създаването на непрекъснат<br />

генерационен процес, т.е. води до появата на правоъгълни импулси на изхода;<br />

• Промяната в коефициента на запълване, характерен за споменатите<br />

температурни сензори, се извършва чрез използването на два различни израза от типа<br />

“s приема стойност не s след ...”;


- 227 -<br />

• При интелигентният оптичен сензор TSL 230R са използвани няколко на<br />

брой израза от типа “s приема стойност не s след ...”, задаващи различната честота на<br />

генерираните правоъгълни импулси при съответен набор от двоични комбинации на<br />

входните сигнали s0, s1, s2 и s3, както и при конкретна стойност на светлинния<br />

интензитет (Ее);<br />

• Задават се границите измение на температурата (интензитета на<br />

светлината), при които работи сензора. При превишаването на тези граници, не се<br />

произвеждат правоъгълни импулси, т.е. сензорът спира своята работа;<br />

• Извършва се симулиране на създадените модели и се съхраняват, както<br />

получените времедиаграми, така и тестовите въздействия при които те са снети;<br />

• Допълнително, може да се повиши точността на модела, чрез отчитане на<br />

на съществуващите зависимости на генерираните импулси от промяната на<br />

захранващото напрежение, температурата (за TSL 230R), фабричните толеранси и др.;<br />

По предложеният алгоритъм са моделирани следните типове сензори:<br />

2.1. Температурните сензори MAX 6666/MAX 6667 производство на фирма<br />

MAXIM Integrated Products Inc. При тях произведените правоъгълни импулси са от вида<br />

показан на Фиг.1[8] .<br />

Фиг. 1. Правоъгълни импулси получени от сензорите MAX 6666/MAX 6667,<br />

kъдето продължителността на интервала t1 е постоянна и е равна на 10 mS, a<br />

продължителността на t2 е модулирана от температурата по формула (1) [8]<br />

0 ( C)<br />

235 − ( 400 t1)<br />

/ t2<br />

Temperatur e = ×<br />

(1)<br />

При създаването на модела, трябва да определим зависимостта на<br />

продължителността на t2 като функция на температурата. Затова след математически<br />

преобразувания на формула 1 се получава равенство 2.<br />

400×<br />

t<br />

= (2)<br />

t2 0<br />

1<br />

( 235 − Temperature(<br />

C )<br />

Последното е използвано в създадения модел, който е симулиран прилагайки<br />

следното тестово въздействие.<br />

run 200 mS<br />

force t -35<br />

run 200 mS<br />

force t 120<br />

run 200 mS<br />

force t 200<br />

run 200 mS<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 228 -<br />

Получените резултатите от симулацията са представени на Фиг.2, където с t е<br />

отбелязана температурата, а с dout – изходът, на който се получава информацията от<br />

сензора. Температурният обхват, в който работи създадения модел, както и реалния<br />

електронен елемент, е от - 40°C до +125°C.<br />

Фиг. 2. Правоъгълни импулси получени от MAX 6666 VHDL модела.<br />

2.2. Температурните сензори MAX 6676/MAX 6677, също произведени от<br />

фирма MAXIM. Тук изходните импулси са с формата показана на Фиг. 3 [8].<br />

Фиг. 3. Правоъгълни импулси получени от сензирете MAX 6676/MAX 6677,<br />

където стойността на интервала t1 e равна на 0.24 mS, а продължителността на t2 е<br />

модулирана от температурата по формула 3 [8].<br />

0 ( C)<br />

= . 15×<br />

( t / t ) − 273.<br />

15<br />

398 1 2<br />

Temp (3)<br />

След математическо преобразуване на горното равенство, получаваме<br />

формула 4.<br />

t1<br />

× 398.<br />

15<br />

t 2 =<br />

(4)<br />

Temp<br />

0 ( C)<br />

+ 273.<br />

15<br />

Формула 4 е приложена в реализирания модел.<br />

Работният температурният обхват на този модел, както и на реалният<br />

електронен елемент, е от -40°C до +125°C. За симулирането на модела е използвано<br />

тестово въздействие, представено по-долу. Получените времедиаграни, в резултат на<br />

проверката на модела, са показани на Фиг. 4.<br />

run 5 mS<br />

force t -35<br />

run 5 mS<br />

force t -50<br />

run 5 mS<br />

force t 120<br />

run 5 mS<br />

force t 200<br />

run 5 mS


- 229 -<br />

Фиг. 4. Правоъгълни импулси получени от MAX 6676 VHDL модела.<br />

2.3. Температурните сензори TMP 03/ TMP 04 произведени от фирма Analog<br />

Devices Inc. Генерираните изходни правоъгълни импулси са с форма показани на<br />

Фиг.5 [7].<br />

Фиг. 5. Правоъгълни импулси получени от сензорите TMP 03/ TMP 04,<br />

където продължителността на Т1 е с номинална стойност от 10 mS, а стойността на Т2<br />

се променя по формула 5 [7], която е представена по-долу.<br />

0 ⎛ 400×<br />

T1⎞<br />

( C)<br />

= 235 − ⎜ ⎟<br />

⎝ T 2 ⎠<br />

Temperatur e<br />

(5)<br />

След математически преобразувания на равенство 5, получаваме формула 6.<br />

400×<br />

Т1<br />

2 = (6)<br />

235 − Temperature<br />

Т 0<br />

( C)<br />

Тази формула е използвана при създаването на модела.<br />

Температурният обхват на работа на модела и на самия сензор е от - 55°C до<br />

+150°C. Използваното тестово въздействие е представено на следващите редове, а<br />

получените резултати са показани на Фиг.6.<br />

run 150 mS<br />

force t -50<br />

run 150 mS<br />

force t -60<br />

run 150 mS<br />

force t 120<br />

run 150 mS<br />

force t 200<br />

run 150 mS<br />

Фиг. 6. Правоъгълни импулси получени от TMP 03 VHDL модела.<br />

2.4. Интелигентният оптичен сензор TSL 230R, произведен от фирма<br />

TAOS Inc. [10]. При него на изхода се получават правоъгълни импулси, с различна<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271


- 230 -<br />

честота зависеща от двоичния набор подаден на входовете s0, s1, s2 и s3, както и от<br />

стойността на Ее (интезитета на светлината). Използваната тестова последователност за<br />

проверка на модела е представена на редовете по-долу, а на Фиг.7 са показани<br />

резултатите получени при симулацията на VHDL модела.<br />

Тези резултати са сравнени с получените чрез създадения програмен симулатор<br />

за сензора TSL 230 (еднотипен с TSL 230R), зареден от страницата на фирмата<br />

производител. Създаден е и по-точен модел, при който са отчетени влиянието на<br />

температурата, промяната на захранващото напрежение, фабричните толеранси и др.<br />

върху честотата на генерираните правоъгълни импулси.<br />

force s0 0<br />

force s1 0<br />

force s2 0<br />

force s3 0<br />

force oe 1<br />

run 300 mS<br />

force s0 1<br />

force s1 0<br />

force s2 0<br />

force s3 0<br />

force oe 0<br />

run 300 mS<br />

force s0 0<br />

force s1 1<br />

force s2 0<br />

force s3 0<br />

run 300 mS<br />

force s0 1<br />

force s1 1<br />

force s2 0<br />

force s3 0<br />

run 300 mS<br />

force s0 1<br />

force s1 1<br />

force s2 0<br />

force s3 0<br />

force oe 1<br />

run 300 mS<br />

Фиг. 7. Правоъгълни импулси получени от TSL 230R VHDL модела.


- 231 -<br />

3. Резултати<br />

3.1. Създадени са VHDL модели на сензорите MAX 6666/MAX 6667,<br />

MAX 6676/MAX 6677, TMP 03/TMP 04 и TSL 230R.<br />

3.2. Предложен е алгоритъм, по който могат да се създават модели и на други<br />

подобни сензори с аналогов вход и импулсен изход.<br />

3.3. Формулите определящи продължителността на генерираните правоъгълни<br />

импулси, взети от техническата документацията на сензорите, са точно приложени в<br />

създадените и изследвани модели. За модела на TSL 230R резултатите са много близки<br />

сравнени с тези получени от програмния симулатор на същия сензор.<br />

3.4. Работата на всички реализирани модели е проверена със симулатора<br />

ModelSim XE III/Starter 6.1e.<br />

4. Заключение<br />

Бъдещата работа в тази насока ще бъде свързването на създадените VHDL<br />

модели с други такива, при което ще се реализират различни цифрови устройства и<br />

системи.<br />

ЛИТЕРАТУРА<br />

1. P.J. Boltryk, C.J. Harris and N.M. White. Intelligent sensors – a generic software<br />

approach, Journal of Physics: Conference series 15, 2005, 155-160.<br />

2. De Micheli G., R. Gupta. Hardware/Software Co-Design, Proceedings of IEEE, 85(3),<br />

Vol.85, No. 3, 1997, 349-365.<br />

3. K. S. Karim, P. Servati, N. Mohan, A. Nathan and J.A. Rowlands. VHDL-AMS<br />

Modeling and Simulation of a Passive Pixel Sensor in a-Si:H Technology for Medical<br />

Imaging, Proceedings of IEEE ISCAS 2001, Sydney, Australia, Vol. 5, 2001, 479-482.<br />

4. E. Markert, M. Schlegel, M. Dienel, G. Herrmann and D. Muller. Modeling of a new<br />

acceleration sensor as part of a 2D Sensor Array in VHDL-AMS, Proceedings of 2005 NSTI<br />

Nanotechnology Conference & Trade Show, Anaheim CA, USA, Vol.3, 2005, 399-402.<br />

5. A. Tetelin, H. Levi, B. Mongellaz, C. Pellet. Behavioral modeling of a humidity sensor<br />

using an analog hardware description language, Proceedings of Modeling and Simulation of<br />

Microsystems conference, Puerto Rico, USA, 2002, 140-143.<br />

[6] http://www.altera.com<br />

[7] http://www.analog.com<br />

[8] http://www.maxim-ic.com<br />

[9] http://web.umr.edu/~daryl/nsfccli/models.htm<br />

[10] http://www.taosinc.com<br />

Electronics, <strong>Computer</strong> systems and Automation section<br />

John Atanasoff Technical Colege – Plovdiv<br />

71A, Br. Buckston Str.<br />

4004 Plovdiv<br />

BULGARIA<br />

E-mail: nasko67@mail.orbitel.bg<br />

Copyright © 2006 by Technical University at Plovdiv, Plovdiv, BULGARIA. ISSN 1310 - 8271

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!