WYKORZYSTANIE TECHNOLOGII WEB SERVICES DO BUDOWY ROZPROSZONEGO SYSTEMU STEROWANIA



Podobne dokumenty
epuap Ogólna instrukcja organizacyjna kroków dla realizacji integracji

Warszawa, r.

Oprogramowanie FonTel służy do prezentacji nagranych rozmów oraz zarządzania rejestratorami ( zapoznaj się z rodziną rejestratorów FonTel ).

Sieci komputerowe. Definicja. Elementy

INSTRUKCJA RUCHU I EKSPLOATACJI SIECI DYSTRYBUCYJNEJ

8. Konfiguracji translacji adresów (NAT)

INSTRUKCJA RUCHU I EKSPLOATACJI SIECI DYSTRYBUCYJNEJ

Stowarzyszenie Lokalna Grupa Działania EUROGALICJA Regulamin Rady

elektroniczna Platforma Usług Administracji Publicznej

Postanowienia ogólne. Usługodawcy oraz prawa do Witryn internetowych lub Aplikacji internetowych

Administrator Konta - osoba wskazana Usługodawcy przez Usługobiorcę, uprawniona w imieniu Usługobiorcy do korzystania z Panelu Monitorującego.

System do kontroli i analizy wydawanych posiłków

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

Instrukcja Obsługi STRONA PODMIOTOWA BIP

Harmonogramowanie projektów Zarządzanie czasem

Opis obsługi systemu Ognivo2 w aplikacji Komornik SQL-VAT

Systemy mikroprocesorowe - projekt

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

Obowiązuje od 30 marca 2015 roku

ZARZĄDZENIE nr 1/2016 REKTORA WYŻSZEJ SZKOŁY EKOLOGII I ZARZĄDZANIA W WARSZAWIE z dnia r.

MINISTERSTWO PRACY I POLITYKI SPOŁECZNEJ

UCHWAŁA NR./06 RADY DZIELNICY PRAGA PÓŁNOC M. ST. WARSZAWY

Elementy i funkcjonalno

Podatek przemysłowy (lokalny podatek od działalności usługowowytwórczej) :02:07

Uchwała Nr... Rady Miejskiej Będzina z dnia roku

PROGRAM ZAPEWNIENIA I POPRAWY JAKOŚCI AUDYTU WEWNĘTRZNEGO

Logowanie do mobilnego systemu CUI i autoryzacja kodami SMS

Praca na wielu bazach danych część 2. (Wersja 8.1)

Automatyka. Etymologicznie automatyka pochodzi od grec.

DE-WZP JJ.3 Warszawa,

InsERT GT Własne COM 1.0

Ewidencja abonentów. Kalkulacja opłat

VLAN Ethernet. być konfigurowane w dowolnym systemie operacyjnym do ćwiczenia nr 6. Od ćwiczenia 7 należy pracować ć w systemie Linux.

Instrukcja postępowania w celu podłączenia do PLI CBD z uwzględnieniem modernizacji systemu w ramach projektu PLI CBD2

ZAPYTANIE OFERTOWE. MERAWEX Sp. z o.o Gliwice ul. Toruńska 8. ROZWÓJ PRZEDSIĘBIORSTWA MERAWEX Sp. z o.o. POPRZEZ EKSPORT.

enova Workflow Obieg faktury kosztowej

2. Subkonto oznacza księgowe wyodrębnienie środków pieniężnych przeznaczonych dla danego Podopiecznego.

Microsoft Management Console

Regulamin Projektów Ogólnopolskich i Komitetów Stowarzyszenia ESN Polska

Ogłoszenie o zwołaniu Zwyczajnego Walnego Zgromadzenia IDM Spółka Akcyjna w upadłości układowej z siedzibą w Krakowie na dzień 30 czerwca 2015 roku

Spis treści. Rozdział 1 ewyniki. mmedica - INSTR UKC JA UŻYTKO W NIKA

Zamawiający potwierdza, że zapis ten należy rozumieć jako przeprowadzenie audytu z usług Inżyniera.

ZARZĄDZENIE NR 82/15 WÓJTA GMINY WOLA KRZYSZTOPORSKA. z dnia 21 lipca 2015 r.

Bazy danych. Andrzej Łachwa, UJ, /15

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

RZECZPOSPOLITA POLSKA MINISTER CYFRYZACJI

R O Z P O R ZĄDZENIE M I N I S T R A N A U K I I S Z K O L N I C T WA W YŻSZEGO 1) z dnia r.

1. DYNAMICSAX nie pobiera żadnych opłat za korzystanie z serwisu internetowego DYNAMICSAX.PL.

1. PODMIOTEM ŚWIADCZĄCYM USŁUGI DROGĄ ELEKTRONICZNĄ JEST 1) SALESBEE TECHNOLOGIES SP. Z O.O. Z SIEDZIBĄ W KRAKOWIE, UL.

Regulamin Zarządu Pogórzańskiego Stowarzyszenia Rozwoju

System Informatyczny CELAB. Przygotowanie programu do pracy - Ewidencja Czasu Pracy

PROCEDURA ADMINISTROWANIA ORAZ USUWANIA

Lublin, Zapytanie ofertowe

Projektowanie bazy danych

SKRÓCONA INSTRUKCJA OBSŁUGI ELEKTRONICZNEGO BIURA OBSŁUGI UCZESTNIKA BADANIA BIEGŁOŚCI

(Tekst ujednolicony zawierający zmiany wynikające z uchwały Rady Nadzorczej nr 58/2011 z dnia r.)

Chmura obliczeniowa. do przechowywania plików online. Anna Walkowiak CEN Koszalin

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

Zarządzenie Nr 12 /SK/2010 Wójta Gminy Dębica z dnia 06 kwietnia 2010 r.

Regulamin serwisu internetowego ramowka.fm

Waldemar Szuchta Naczelnik Urzędu Skarbowego Wrocław Fabryczna we Wrocławiu

Ogłoszenie Zarządu o zwołaniu Nadzwyczajnego Walnego Zgromadzenia Akcjonariuszy Yellow Hat S.A. z siedzibą w Warszawie

Platforma do obsługi zdalnej edukacji

UCHWAŁA NR VIII/43/2015 r. RADY MIASTA SULEJÓWEK z dnia 26 marca 2015 r.

Procedura nadawania uprawnień do potwierdzania Profili Zaufanych w Urzędzie Gminy w Ryjewie

ROZPORZĄDZENIE MINISTRA ZDROWIA 1)

Konfiguracja historii plików

Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.

Ogłoszenie o zwołaniu Nadzwyczajnego Walnego Zgromadzenia Akcjonariuszy TELL Spółka Akcyjna z siedzibą w Poznaniu na dzień 11 sierpnia 2014 r.

Wrocław, 20 października 2015 r.

Sieci komputerowe cel

V. Wymagania dla wsparcia projektu oraz nadzoru eksploatacyjnego... 6

UNIWERSALNY PULPIT STEROWANIA

POLITYKA PRYWATNOŚCI SKLEPU INTERNETOWEGO

Procedura nadawania uprawnień do potwierdzania, przedłuŝania waŝności i uniewaŝniania profili zaufanych epuap. Załącznik nr 1

Ogłoszenie o zwołaniu Nadzwyczajnego Walnego Zgromadzenia Spółki na dzień 27 czerwca 2016 r.

Elementy animacji sterowanie manipulatorem

Programowanie Zespołowe

INSTRUKCJA TESTOWANIA USŁUG NA PLATFORMIE ELA-ENT

Program szkoleniowy Efektywni50+ Moduł III Standardy wymiany danych

PROJEKTOWANIE PROCESÓW PRODUKCYJNYCH

Warunki Oferty PrOmOcyjnej usługi z ulgą

OPIS PRZEDMIOTU ZAMÓWIENIA. wymagane minimalne parametry techniczne:

REGULAMIN WALNEGO ZEBRANIA STOWARZYSZENIA POLSKA UNIA UBOCZNYCH PRODUKTÓW SPALANIA

INSTRUKCJA DLA UCZESTNIKÓW ZAWODÓW ZADANIA

Generalny Dyrektor Ochrony rodowiska. Art.32 ust. 1. Art. 35 ust. 5. Art. 38. Art. 26. Art 27 ust. 3. Art. 27a

Projekt U S T A W A. z dnia

Procedura działania Punktu Potwierdzającego Profile Zaufane epuap Urzędzie Gminy w Ułężu

Przedsiębiorstwo WielobranŜowe GALKOR Sp. z o.o. ul. Ogrodowa Koronowo Tel:

IZBA CELNA WE WROCŁAWIU Wrocław, dnia 30 kwietnia 2012 r. Ul. Hercena Wrocław

Zainstalowana po raz pierwszy aplikacja wymaga aktualizacji bazy danych obsługiwanych sterowników.

PFR Wstępnie wypełnione zeznanie podatkowe. PIT-37 i PIT-38 za rok 2015

Wdrożenie modułu płatności eservice dla systemu Virtuemart 2.0.x

PRZEMYSŁOWY ODTWARZACZ PLIKÓW MP3 i WAV

PROGRAM ZAPEWNIENIA I POPRAWY JAKOŚCI AUDYTU WEWNĘTRZNEGO

Opis zmian funkcjonalności platformy E-GIODO wprowadzonych w związku z wprowadzeniem możliwości wysyłania wniosków bez podpisu elektronicznego

ZARZĄDZENIE NR 223/2014 BURMISTRZA MIASTA I GMINY WIELICZKA. z dnia 15 października 2014 r.

OGŁOSZENIE O ZWOŁANIU NADZWYCZAJNEGO WALNEGO ZGROMADZENIA SPÓŁKI VISTAL GDYNIA S.A.

I. INSTALACJA BAZY DANYCH ORACLE10g EXPRESS EDITION

Transkrypt:

dr hab. in. Jerzy Zaj c, prof. PK mgr in. Grzegorz Chwajo Politechnika Krakowska WYKORZYSTANIE TECHNOLOGII WEB SERVICES DO BUDOWY ROZPROSZONEGO SYSTEMU STEROWANIA Wspó czesne technologie internetowe otwieraj nowe mo liwo ci w budowie otwartych, rekonfigurowalnych systemów sterowania. W pracy przedstawiono wybrane elementy wieloagentowego systemu sterowania AIM opracowanego w Politechnice Krakowskiej. Komunikacja pomi dzy rozproszonymi elementami systemu sterowania realizowana jest przy u yciu technologii Web services. BUILDING DISRIBUTED CONTROL SYSTEM USING WEB SERVICES TECHNOLOGY Contemporary Internet technologies open new opportunities for building open, reconfigurable control systems. The paper presents selected elements of multiagent control system AIM developed at Cracow University of Technology. The communication among distributed elements of control system is performed by means of Web services technology. 1. WPROWADZENIE Otwarto i rekonfigurowalno to zasadnicze wymagania stawiane wspó czesnym systemom sterowania z o onych systemów produkcyjnych. Osi gni cie tych wymaga jest obecnie mo liwe dzi ki rozwojowi technologii informacyjnych, zw aszcza w zakresie standardów komunikacyjnych, w ród których dominuj technologie internetowe, a tak e szeroka dost pno profesjonalnych pakietów aplikacji typu open-source gwarantuj cych niezale no na wci cz ciowo zmonopolizowanym rynku IT. Szczególn rol w budowie systemów sterowania odgrywaj aktualnie technologie wieloagentowe. Wychodz one naprzeciw dominuj cym trendom rozpraszania decyzji polegaj cym na przybli aniu decydenta do miejsca decyzji, co docelowo prowadzi b dzie do powstawania inteligenych urz dze dzia aj cych w systemach produkcyjnych zgodnie z zasad plug and play [3]. Takie dzia anie wi e si jednak z ograniczeniem dost pu do informacji o charakterze systemowym, co powoduje, e lokalny decydent musi uzyskiwa dodatkowe informacje, aby móc podejmowa decyzje uwzgl dniaj ce realizacj celów systemowych. Odbywa si to w praktyce na dwa sposoby. Albo wykorzystuje si elementy wspólnego rodowiska albo te stosuje bezpo redni komunikacj mi dzyagentow. Elementami wspólnego rodowiska w systemie wieloagentowym s zazwyczaj scentralizowane lub rozproszone tablice og osze. Na takich tablicach agenty umieszczaj informacj o realizowanych procesach, zg aszaj swoje zapotrzebowania na zasoby itp. S to wi c miejsca, przez które odbywa si kontakt agentów - klientów poszukuj cych okre lonych us ug i agentów us ugodawców, us ugi te oferuj cych. Najbardziej znanym przyk adem narz dzia umo liwiaj cego bezpo redni komunikacj mi dzyagentow jest protokó kontraktu sieciowego CNP (ang. Contract Net Protocol) [2]. Jest to protokó prowadzenia negocjacji wykorzystuj cy mechanizmy rynkowe. Istnieje równie wiele ró nych mutacji tego protoko u. Protokó ten jest cz sto wykorzystywany tak e w procesach rozproszonego sterowania produkcj. automation 2009 105

Zastosowanie technologii wieloagentowych do budowy rozproszonych systemów sterowania, przyjmuj c jednocze nie jako platform implementacyjn technologi Web services, jedn ze znanych technologii internetowych, otwiera nowe mo liwo ci budowy otwartych, rekonfigurowalnych systemów sterowania. W pracy przedstawiono ogóln struktur wieloagentowego systemu sterowania AIM (Agents Integrated Manufacturing) opracowanego w Politechnice Krakowskiej i omówiono elementy technologii Web services wykorzystane do jego budowy. 2. WIELOAGENTOWY SYSTEM STEROWANIA AIM Wieloagentowy system sterowania AIM zbudowany jest czterech typów uniwersalnych agentów oraz dwóch typów agentów dedykowanych. Agenty uniwersalne to agent zlecenia, agent systemowy, agent wykonawczy i agent przedmiotowy. Agenty Systemowe Interakcja z wszystkimi agentami Agent Technolog Agenty Zlece Agenty Przedmiotowe logika Agenty Wykonawcze Rys. 1. Ogólna struktura wieloagentowego systemu AIM [5] Agent zlecenia reprezentuje w systemie wykonywany typ produktu oraz przechowuje informacje dotycz ce zamówienia, takie jak liczba sztuk produktu, termin i koszt jego wykonania oraz dokumentacj konstrukcyjn zawieraj c m.in. model CAD. Agent ten tworzony jest po wp yni ciu zlecenia, a usuwany albo po zako czeniu jego realizacji w przypadku przyj cia zlecenia, lub te bezpo rednio po odrzuceniu zlecenia w przypadku jego nieprzyj cia. Agent systemowy odpowiedzialny jest za dzia ania o charakterze systemowym, tj. administracj systemu, nadzór i rejestracje agentów, a ponadto gromadzi informacje o bie cym stanie systemu. Agent ten jest równie aktywny w ca ym okresie dzia ania systemu. Agent wykonawczy reprezentuje w systemie AIM fizyczne urz dzenie takie jak maszyna, robot, magazyn itp. Agent ten odgrywa zasadnicz rol w procesie decyzyjnym. Tworzony jest wraz z w czeniem (uaktywnieniem) fizycznego urz dzenia, które reprezentuje, a usuwany z systemu po wy czeniu tego urz dzenia. Agent przedmiotowy reprezentuje zadanie wykonania pojedynczego produktu. Posiada informacje dotycz ce marszrut technologicznych jego wykonania, a ponadto dysponuje bie cymi informacjami o aktualnym stanie zaawansowania realiza- 106 automation 2009

cji procesu. Agent ten tworzony jest w momencie wprowadzenia pó fabrykatu do magazynu, a usuwany po wykonaniu gotowego produktu. Linie przerywane cz ce agenty na rys. 1 wskazuj na wspó dzia anie w procesie przygotowywania procesów technologicznych obróbki, natomiast linie ci g e oznaczaj wspó dzia anie w procesie sterowania produkcj. Dwa typy agentów dedykowanych tworz agent technolog i agent dostosowuj cy (pomini ty na rys. 1). Agent technolog jest wyposa ony w eksperck wiedz z zakresu projektowania procesów technologicznych, a jego zadaniem jest opracowywanie i modyfikacja procesów technologicznych dla przyjmowanych zamówie. Agent ten jest aktywny w ca ym okresie dzia ania systemu AIM. Rola agentów dostosowuj cych sprowadza si najogólniej mówi c do zapewnienia wspó pracy pomi dzy agentami wykonawczymi a sterownikami urz dze. Jedn z najciekawszych cech systemu AIM jest wprowadzenie mechanizmu symulacyjnego wykorzystuj cego tzw. wirtualne procesy wytwórcze [4]. Trzon omawianego mechanizmu stanowi wirtualne kopie (klony) agentów bior cych udzia w procesie sterowania operatywnego tj. wirtualne agenty wykonawcze oraz przedmiotowe, a tak e wirtualne agenty zlece. Wymienione agenty wspó dzia aj z ich rzeczywistymi odpowiednikami, a tak e w ograniczonym zakresie z pozosta ymi elementami tworz cymi system sterowania. Za koordynacj wirtualnych procesów odpowiedzialny jest tzw. superagent, tj. okre lony, uprzywilejowany agent wchodz cy w sk ad grupy agentów systemowych, które w systemie pe ni role administracyjne i monitoruj ce. Jednym z zasadniczych celów zastosowania wspomnianego mechanizmu symulacyjnego jest weryfikacja mo liwo ci przyj cia nowego zlecenia. Rozpocz cie wirtualnego procesu wytwórczego w trybie nowego zlecenia poprzedzone jest w pierwszej kolejno ci weryfikacj mo liwo ci technologicznych realizacji zamówienia. W przypadku pozytywnego wyniku weryfikacji, w nast pnej kolejno ci opracowany zostaje proces technologiczny. W efekcie, dla poszczególnych zasobów wytwórczych sporz dzone zostaj zbiory dodatkowych czynno ci elementarnych niezb dnych do realizacji rozpatrywanego zlecenia. Dopóki jednak warunki realizacji zamówienia nie zostan zaakceptowane przez zleceniodawc, dane te nie s przesy ane do agentów wykonawczych reprezentuj cych rzeczywiste zasoby wytwórcze. S one jednak niezb dne w celu przeprowadzenia procesu symulacji. Jego rozpocz cie wi e si zatem z wcze niejszym dostarczeniem danych o nowych czynno ciach oraz konfiguracj wszystkich agentów wirtualnie reprezentuj cych zasoby wytwórcze wymagane przez proces technologiczny. W celu uzyskania wielowariantowej oferty symulacje przeprowadzane s dla ró nych terminów wprowadzenia zlecenia do realizacji. Uruchomienie mechanizmu symulacyjnego realizowane jest przez operatora przyjmuj cego zlecenie i ka dorazowo rozpoczyna si od synchronizacji danych pomi dzy rzeczywistymi i wirtualnymi agentami wykonawczymi oraz agentami zlece. Nast pnie inicjowany zostaje obieg wirtualnego etonu decyzyjnego przyznaj cego uprawnienia decyzyjne poszczególnym agentom, co w konsekwencji pozwala na rozpocz cie g ównego etapu dzia a, jakim jest symulacja realizacji procesów wytwórczych. Algorytm dzia a symuluj cych sterowanie w podsystemie wirtualnym jest analogiczny do tego, który okre la funkcjonowanie sterowania rzeczywistego, z jednym wyj tkiem dotycz cym sposobu sygnalizacji zako czenia poszczególnych czynno ci elementarnych. W systemie rzeczywistym zdarzenia te s sygnalizowane przez uk ady steruj ce urz dze bior cych udzia w realizacji czynno ci, za w procesach wirtualnych zako czenie poszczególnych czynno ci nast puje po up ywie oszacowanych uprzednio czasów ich trwania, przy czym czasy te s proporcjonalnie skrócone w stosunku do ich faktycznych warto ci. Po zako czeniu realizacji wszystkich zadanych wa- automation 2009 107

riantów symulacji przygotowywana jest oferta, która nast pnie zostaje przekazana zleceniodawcy. Istnieje tak e mo liwo ledzenia przebiegu i cz ciowych wyników poszczególnych etapów symulacji w trakcie jej trwania. Proces symulacji w trybie nowego zlecenia zobrazowano na UML-owym diagramie przedstawionym na rys. 2. Superagent nowy :Agent Zlecenia /wirtualny/ :Agent Wykonawczy /wirtualny/ :Agent Zlecenia /wirtualny/ loop [dla ka dego wymaganego agenta wykonawczego] konfiguruj loop [dla kolejno zadawanych warunków symulacji ] rozpocznij symulacj za daj synchronizacji par loop [dla ka dego agenta zlecenia] synchronizuj ref Synchronizacja danych z rzeczywistym agentem loop [dla ka dego agenta wykonawczego] synchronizuj ref Synchronizacja danych z rzeczywistym agentem Warunki kolejnych przebiegów symulacji mog ró ni si m.in. -zastosowan regu podejmowania decyzji - terminem wprowadzenia nowego zlecenia do wirtualnej realizacji ref uruchom obieg wirtualnego etonu decyzyjnego zatrzymaj obieg wirtualnego etonu decyzyjnego Symulacja dla zadanych warunków przygotuj zestawienie wyników ; sformu uj (wielowariantow ) ofert Rys. 2. Symulacja w trybie nowego zlecenia 108 automation 2009

3. ZASTOSOWANIE TECHNOLOGII WEB SERVICES Komunikacja pomi dzy rozproszonymi elementami systemu na wszystkich etapach sterowania, zarówno w trybie rzeczywistym jak i wirtualnym, realizowana jest przy u yciu technologii Web services [1]. Poszczególne kroki wymagane w procesie projektowania i implementacji mechanizmów wymiany informacji wykorzystuj cych powy sz technologi zostan przedstawione w dalszej cz ci rozdzia u na przyk adzie funkcji startsimulation wywo ywanej na agencie systemowym, za pomoc której inicjowany jest proces symulacji opisanej w rozdziale 2. Jednym z podej do projektowania mechanizmów komunikacyjnych opartych na technologii Web services jest rozpocz cie ich budowy od przygotowania dokumentu WSDL (ang. Web Services Description Language) opisuj cego w szczegó owy sposób funkcjonowanie mechanizmów. Podej cie takie zapewnia najpe niejsz kontrol nad regu ami wymiany informacji i jest ono rekomendowane. Listing 1 przedstawia dokument (zgodny z wersj 1.1 standardu WSDL) definiuj cy regu y wymiany komunikatów w czasie wywo ywania funkcji startsimulation, która jest metod typu void (nie zwraca adnego rezultatu swego dzia ania) i przyjmuje jeden parametr okre laj cy tryb symulacji. Dokument ten zbudowany jest z pi ciu zasadniczych typów elementów: types, message, porttype, binding oraz service, które wchodz w sk ad elementu nadrz dnego definitions. Wszystkie te elementy zdefiniowane s w przestrzeni nazw http://schemas.xmlsoap.org/wsdl/ (ich nazwy poprzedza przedrostek wsdl, który jest niejako skrótem pe nej nazwy wspomnianej przestrzeni, co zosta o okre lone poprzez atrybut: xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/ ). Znaczenie poszczególnych elementów jest nast puj ce: - element types zawiera deklaracje struktur danych wykorzystanych do definicji komunikatów. Struktury takie opisywane s najcz ciej przy u yciu schematów XML (XML Schema). W omawianym przyk adzie struktury te zosta y zdefiniowane poprzez dwa elementy: startsimulation zawieraj cy jeden parametr typu string o nazwie workmode oraz startsimulationresponse nie zwracaj cy adnego rezultatu. Omówiona wy ej symulacja w trybie nowego zlecenia realizowana jest dla parametru workmode przyjmuj cego warto virtual. - elementy message definiuj komunikaty przesy ane w czasie wymiany informacji. W omawianym przyk adzie okre lono dwa takie elementy: startsimulationinputmessage oraz startsimulationouputmessage, a tak e powi zano z nimi definicje wprowadzono uprzednio w ramach elementu types. - element porttype tworzy interfejs zawieraj cy okre lony zbiór udost pnianych operacji. Ka da z operacji zdefiniowana jest w elemencie potomnym operation. W analizowanym, uproszczonym przyk adzie element porttype definiuje jedn operacj o nazwie startsimulation. W odpowiadaj cym wymienionej operacji elemencie operation zdefiniowano z kolei który z okre lonych uprzednio komunikatów jest komunikatem wej ciowym, a który wyj ciowym. Taki uk ad komunikatów tworzy tzw. wzorzec wymiany komunikatów typu danie-odpowied. - element binding definiuje powi zanie elementu porttype z konkretnym protoko em. W przedstawionym dokumencie WSDL element binding dokonuje powi zania w standardzie SOAP elementu o nazwie SystemAgentServicePortType z protoko em transportowym HTTP. Istotne znaczenie odgrywaj tak e atrybuty style oraz use, które okre laj typ wi zania maj cy w efekcie wp yw na ostateczn posta przesy anych pakietów danych. automation 2009 109

Zdefiniowany w przyk adzie typ document/literal jest najpopularniejsz spo ród stosowanych kombinacj, która równocze nie jest rekomendowana w celu zapewnienia najwy szego poziomu interoperacyjno ci. <?xml version="1.0" encoding="utf-8"?> <wsdl:definitions name="systemagentservice" targetnamespace="http://m6.mech.pk.edu.pl/systemagentservice.wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://m6.mech.pk.edu.pl/systemagentservice.wsdl" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsd1="http://m6.mech.pk.edu.pl/systemagentservice.xsd1"> <wsdl:types> <xsd:schema elementformdefault="qualified" targetnamespace="http://m6.mech.pk.edu.pl/systemagentservice.xsd1" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:xsd1="http://m6.mech.pk.edu.pl/systemagentservice.xsd1"> <xsd:complextype name="void"> <xsd:sequence /> </xsd:complextype> <xsd:element name="startsimulation"> <xsd:complextype> <xsd:sequence> <xsd:element name="workmode" type="xsd:string" nillable="true" minoccurs="0" /> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:element name="startsimulationresponse" type="xsd1:void" /> </xsd:schema> </wsdl:types> <wsdl:message name="startsimulationinputmessage"> <wsdl:part element="xsd1:startsimulation" name="parameters"/> </wsdl:message> <wsdl:message name="startsimulationoutputmessage"> <wsdl:part element="xsd1:startsimulationresponse" name="parameters"/> </wsdl:message> <wsdl:porttype name="systemagentserviceporttype"> <wsdl:operation name="startsimulation"> <wsdl:input message="tns:startsimulationinputmessage"/> <wsdl:output message="tns:startsimulationoutputmessage"/> </wsdl:operation> </wsdl:porttype> <wsdl:binding name="systemagentservicebinding" type="tns:systemagentserviceporttype"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="startsimulation"> <soap:operation soapaction="systemagentserviceporttype#startsimulation"/> <wsdl:input> <soap:body use="literal"/> </wsdl:input> <wsdl:output> <soap:body use="literal"/> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="systemagentservice"> <wsdl:port binding="tns:systemagentservicebinding" name="systemagentserviceport"> <soap:address location="http://10.1.1.11:8080/axis2/services/systemagentservice"/> </wsdl:port> </wsdl:service> </wsdl:definitions> Listing 1. Dokument WSDL dla us ugi SystemAgentService 110 automation 2009

- element service okre la lokalizacje, pod jakimi osi galne b d ka de ze zdefiniowanych uprzednio wi za. W prezentowanym przyk adzie us uga o nazwie SystemAgentService udost pnia zdefiniowane wi zanie pod adresem: http://10.1.1.11:8080/axis2/services/systemagentservice. Z tej informacji korzysta mo e oprogramowanie klienckie dedykowane danej us udze. Warto jednak zauwa y, e wiele implementacji aplikacji klienckich umo liwia podawanie lokalizacji us ug niezale nie od informacji zawartych w omawianym elemencie service, co bywa w okre lonych sytuacjach przydatne. Na podstawie tak przygotowanego dokumentu WSDL mo na nast pnie za pomoc okre lonych narz dzi (np. WSDL2Java w rodowisku Apache Axis2 lub wsdl.exe dost pnym w Microsoft.NET Framework) wygenerowa kod po rednicz cy (dla strony serwerowej lub klienckiej), który w dalszej kolejno ci nale y zintegrowa z w a ciwym kodem implementuj cym logik agenta b d wykorzysta w zewn trznym oprogramowaniu klienckim. Listing 2 przedstawia tre wymienianych w celu inicjalizacji symulacji XML-owych pakietów danych, których struktura wi e si w sposób cis y z definicj zawart w dokumencie WSDL. Warto zwróci uwag, i w przedstawionej sytuacji, mimo e wywo ywana funkcja jest typu void, w odpowiedzi zwracany jest XML-owy pakiet. Wynika to z faktu zastosowania w definicji operacji zawartej w dokumencie WSDL wzorca wymiany komunikatów typu danie-odpowied. Podej cie takie pozwala w przeciwie stwie do potencjalnego zastosowania wzorca jednokierunkowego stwierdzi czy funkcja zako czy a swe dzia anie poprawnie. Zapytanie: <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sys="http://m6.mech.pk.edu.pl/systemagentservice.xsd1"> <soapenv:header/> <soapenv:body> <sys:startsimulation> <sys:workmode>virtual</sys:workmode> </sys:startsimulation> </soapenv:body> </soapenv:envelope> Odpowied : <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:body> <startsimulationresponse xmlns="http://m6.mech.pk.edu.pl/systemagentservice.xsd1"/> </soapenv:body> </soapenv:envelope> Listing 2. Dane w XML-owej postaci przesy ane w czasie uruchamiania symulacji automation 2009 111

4. PLATFORMA IMPLEMENTACYJNA Implementacja warstwy logiki systemu sterowania AIM zosta a dokonana przy u yciu j zyka Java. Mechanizmy komunikacyjne wykorzystuj ce technologi Web services opracowano w oparciu o silnik Web services - Apache Axis2/Java. Aby poszczególne agenty wchodz ce w sk ad systemu sterowania mog y by dost pne dla siebie oraz dla zewn trznych aplikacji klienckich w postaci us ug Web services, oprogramowanie agentów wraz z silnikiem Axis2 umieszczono w kontenerze aplikacji WWW, którego rol pe ni w omawianym rodowisku serwer Apache Tomcat. Zarówno Axis2 jak i Tomcat nale do grupy aplikacji typu open source. Wykorzystywanym serwerem bazodanowym jest PostgreSQL, który w zale no ci od konfiguracji systemu mo e by uruchamiany centralnie lub te na ka dej stacji roboczej. System sterowania AIM mo e by uruchamiany w rodowisku MS Windows lub Linux, a tak e na innych systemach operacyjnych, dla których istnieje implementacja maszyny wirtualnej Java. Struktura rodowiska uruchomieniowego zosta a przedstawiona na rys. 3. AZ AW AS AW_wirt Apache Axis 2 Apache Tomcat PostgreSQL Java Runtime Environment Windows / Linux Rys. 3. rodowisko uruchomieniowe systemu AIM Kliencka aplikacja do zarz dzania systemem sterowania AIM zosta a równie zaimplementowana przy u yciu j zyka Java oraz silnika Apache Axis2/Java. Do stworzenia graficznego interfejsu u ytkownika aplikacji wykorzystano bibliotek Qt Jambi. Ca o komunikacji pomi dzy aplikacj a systemem AIM realizowana jest w oparciu o technologi Web services. Listing 3 zawiera przyk adowy kod implementuj cy danie rozpocz cia symulacji. Na rys. 4 przedstawiono zrzut g ównego okna aplikacji. 112 automation 2009

public void pushbuttonstartsimulation() { try { // stwórz obiekt odpowiadaj cy elementowi startsimulation zdefiniowanemu w WSDL StartSimulation req = StartSimulation.Factory.newInstance(); req.setworkmode(workmode.virtual.tostring()); // stwórz obiekt reprezentuj cy wysy any komunikat StartSimulationDocument reqdoc = StartSimulationDocument.Factory.newInstance(); reqdoc.setstartsimulation(req); // wywo aj metod uruchamiaj c symulacj, przeka jej obiekt z komunikatem SystemAgentServiceStub stub = new SystemAgentServiceStub(m_superAgentUrl); stub.startsimulation(reqdoc); } catch(remoteexception e) { Utils.showError("Error while starting simulation: " + e.getmessage()); } } Listing 3. Kod implementuj cy danie rozpocz cia symulacji (Java) Rys. 4. Zrzut g ównego okna aplikacji zarz dzaj cej systemem sterowania AIM automation 2009 113

Wykorzystuj c jeden z zasadniczych atutów technologii Web services, jakim jest relatywnie du y stopie niezale no ci od stosowanych j zyków programowania i platform systemowych mo na w atwy sposób komunikowa si z poszczególnymi elementami systemu AIM z poziomu modu ów programowych zaimplementowanych nie tylko w j zyku Java. Listing 4 zawiera przyk adowy kod implementuj cy danie rozpocz cia symulacji napisany w j zyku JavaScript z wykorzystaniem skryptu WSRequest wchodz cego w sk ad oprogramowania WSO2 Web Services Framework/AJAX. var req = new WSRequest(); var reqoptions = { usesoap : true }; var url = "http://10.1.1.11:8080/axis2/services/systemagentservice"; req.open(reqoptions, url, true); var message = "<startsimulation xmlns=\"http://m6.mech.pk.edu.pl/systemagentservice.xsd1\" />"; req.send(message); Listing 4. Kod implementuj cy danie rozpocz cia symulacji (JavaScript) 5. PODSUMOWANIE Znacz ca liczba wspó czesnych przemys owych rozwi za uk adów sterowania oferuje mo liwo komunikacji za pomoc protoko ów TCP/IP. Umo liwia to ich pod czanie bezpo rednio do Internetu lub zak adowego intranetu. Oznacza to tak e, i producenci urz dze automatyki przemys owej widz nowe mo liwo ci dzi ki wykorzystaniu pot gi Internetu. Jest to trend obserwowalny w bardzo wielu obszarach dzia alno ci cz owieka. St d, wykorzystanie technologii internetowych w budowie rozproszonych systemów sterowania nale y uzna za krok we w a ciwym kierunku. Technologie internetowe oprócz akceptowanego globalnie standardu komunikacyjnego jakim s protoko y TCP/IP stanowi y baz do powstania znacz cej i ci gle rosn cej liczby profesjonalnych aplikacji typu open source, które pozwalaj na budow systemów oprogramowania niezale nych od sprz tu czy systemu operacyjnego. 6. LITERATURA [1] FRY LEWICZ Z., SALAMON A., Podstawy architektury i technologii us ug XML sieci WEB. Wydawnictwo Naukowe PWN SA, Warszawa 2008, ISBN 978-83-01-15371-7 [2] SMITH R.G., The Contract Net Protocol: High-Level Communication and Control in a Distributed Problem Solver. IEEE Trans. on Computers, Vol. C-29, No. 12, 1980, s. 1104-1113 [3] ZAJ C J., Rozproszone sterowanie zautomatyzowanymi systemami wytwarzania. Monografia 288, Seria Mechanika. Wydawnictwo Politechniki Krakowskiej, Kraków 2003. [4] ZAJ C J., CHWAJO G., Wykorzystanie wirtualnych procesów sterowania produkcj do wspomagania decyzji w zautomatyzowanych systemach wytwarzania. Problemy Robotyki Tom II, Red. K. Tcho, C. Zieli ski. Oficyna Wydawnicza Politechniki Warszawskiej 2008, s. 625-634. [5] ZAJ C J., CHWAJO G., KMIECIK A., Integracja projektowania procesów i sterowania produkcj w zautomatyzowanych systemach wytwarzania. Pomiary Automatyka Robotyka, 2/2007. 114 automation 2009