Telecommunications & Computer Engineering - Технически ...
Telecommunications & Computer Engineering - Технически ...
Telecommunications & Computer Engineering - Технически ...
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