Streszczenie ARCHITEKTURA SYSTEMU EKSPERTOWEGO W PRZEDSIĘBIORSTWIE ROZPROSZONYM Krzysztof T. Psurek Politechnika Śląska Wydział Organizacji i Zarządzania ktp@ps.edu.pl W pracy przedstawiono podstawową architekturę systemu ekspertowego. Następnie zaprezentowano architekturę systemu rozproszonego w oparciu o architekturę trójwarstwową oraz technologię klient-serwer. Artykuł pokazuje architekturę systemu ekspertowego do zastosowań w przedsiębiorstwie rozproszonym w oparciu o technologię klient-serwer. Słowa kluczowe: Systemy ekspertowe, systemy rozproszone, technologia klient-serwer Wprowadzenie Współczesne przedsiębiorstwa chcąc sprostać wyzwaniom stawianym przez rynek bardzo często są rozproszone terytorialnie. Sprzyja temu coraz łatwiejsza komunikacja i znikające granice [4]. Daje to nowe moŝliwości pełniejszego wykorzystania potencjału przedsiębiorstwa oraz przybliŝa je do klientów. Tym co często jest najcenniejszą wartością posiadaną przez przedsiębiorstwa jest wiedza i doświadczenie gromadzone przez lata. Wiedzą tą zwykle dysponują eksperci zatrudnieni w firmie, którzy jednak nie są w stan być dostępni przez cały czas i we wszystkich miejscach, w których ich wiedza byłaby przydatna. Rozproszenie terytorialne przedsiębiorstwa powoduje, Ŝe dostęp do tych ekspertów jest dodatkowo utrudniony i często pracownicy oddziałów są zmuszeni do podejmowania decyzji opierając się na własnym doświadczeniu bez moŝliwości konsultacji. Wraz ze wzrostem ilości oddziałów i odległości od centrali te trudności pogłębiają się. Aby przezwycięŝyć te trudności potrzebne jest zastosowanie odpowiednich narzędzi informatycznych oraz takiej ich architektury aby moŝliwe było ich efektywne wykorzystanie. W niniejszej pracy przedstawiono system ekspertowy jako narzędzie, które pozwala na gromadzenie wiedzy i tym samym zwiększenie dostępu do niej. W dalszej części przedstawiono architekturę systemu rozproszonego oraz technologię klient/serwer, odpowiednią dla przedsiębiorstwa rozproszonego.
364 Technologia przetwarzania wiedzy w SWO Celem niniejszej pracy jest przedstawienie architektury systemu ekspertowego w odniesieniu do technologii klient/serwer. Pozwala to na zbudowanie efektywnego systemu ekspertowego do zastosowań w przedsiębiorstwie rozproszonym. Systemy ekspertowe Istnieje wiele definicji systemów ekspertowych (SE). Jedna z nich mówi, Ŝe systemem ekspertowym nazywamy program, który rozwiązuje problemy zlecane zwykle ekspertom i charakteryzujący się strukturą składającą się z [1]: 1. Bazy wiedzy 2. Systemu wnioskującego 3. Dynamicznej bazy danych 4. Edytora bazy wiedzy 5. Interfejsu uŝytkownika Bardzo istotnym w budowie systemu ekspertowego jest oddzielenie wiedzy dziedzinowej od reszty systemu. Pozwala to na uaktualnianie wiedzy, a dzięki temu usprawnianie działania SE, bez ingerencji w kod programu. Generalnie SE jest nastawiony na pozyskiwanie i przetwarzanie wiedzy [2]. Jest to takŝe cecha odróŝniająca go od innych systemów informatycznych, które są najczęściej nastawiona na przetwarzanie danych. EDYTOR BAZY WIEDZY INTERFEJS UśYTKOWNIKA BAZA WIEDZY SYSTEM WNIOSKUJĄCY DYNAMICZNA BAZA DANYCH Rys. 1. Struktura funkcjonalna systemu ekspertowego [1] Rys. 1 przedstawia sposób komunikacji pomiędzy poszczególnymi elementami systemu ekspertowego. Wynika z niego, Ŝe nie ma bezpośredniego dostępu
Architektura systemu ekspertowego w przedsiębiorstwie rozproszonym 365 do bazy wiedzy z interfejsu uŝytkownika. Wszelkie operacje na bazie są realizowane poprzez edytor lub system wnioskujący. Architektura taka pozwala wyróŝnić trzy warstwy systemu: 1. Warstwa interfejsu uŝytkownika 2. Warstwa przetwarzania wiedzy (zawierająca system wnioskujący z dynamiczną bazą danych oraz edytor wiedzy) 3. Warstwa bazy wiedzy. Architektura systemu rozproszonego System rozproszony charakteryzuje się tym, Ŝe jest on (a przynajmniej jego elementy) zlokalizowany na więcej niŝ jednym węźle (komputerze, urządzeniu). Oznacza to, Ŝe do jego wprowadzenia potrzebny jest jakiś sposób komunikacji pomiędzy węzłami. Obecnie do połączenia stosowana jest sieć komputerowa. Sposób implementacji tej sieci (sieć przewodowa, bezprzewodowa) nie ma znaczenia z punktu widzenia tej pracy więc nie będzie w niej rozpatrywana. Zastosowanie systemu rozproszonego pozwala w lepszym stopniu wykorzystać moc posiadanych węzłów oraz umoŝliwia utrzymywanie integracji przetwarzanych danych oraz wielodostęp do nich. Architektura trójwarstwowa Standard architektury trójwarstwowej został wprowadzony przez komitet ANSI/SPARC w 1978 roku. Proponuje ona podział systemu na trzy warstwy [3]: 1. Fizyczną implementację systemu (schemat wewnętrzny) określa implementację na danym sprzęcie oraz fizyczną bazę danych stanowiącą część systemu 2. Abstrakcyjny model wycinka rzeczywistości odzwierciedlanej przez system (schemat pojęciowy) stanowi zasadniczy element architektury systemu opisujący jego moŝliwości oraz sposób działania 3. Sposób w jaki system jest postrzegany z zewnątrz (schemat zewnętrzny) jest to spojrzenie na system z punktu widzenia jego uŝytkownika. Modeli tej warstwy moŝe być teoretycznie tyle ilu jest róŝnych uŝytkowników systemu kaŝdy z nich postrzega go poprzez pryzmat funkcji jakie są dla niego uŝyteczne/dostępne JeŜeli odniesiemy architekturę trójwarstwową do systemów informatycznych wykorzystywanych w przedsiębiorstwach to odpowiednikiem schematu wewnętrznego jest warstwa bazy danych, schematu konceptualnego warstwa biznesowa, a schematu zewnętrznego warstwa aplikacji. Architekturę taką przedstawia Rys. 2.
366 Technologia przetwarzania wiedzy w SWO APLIKACJA UśYTKOWNIKA WARSTWA BIZNESOWA BAZA DANYCH Rys. 2. Architektura trójwarstwowa systemu informatycznego [3] Technologia klient/serwer Architekturę warstwową daje się bardzo dobrze wykorzystać w technologii klient/serwer. Jest ona oparta na podziale systemu komputerowego na dwie części, z których jedna nazywana jest klientem a druga serwerem [5]. Podziału systemu moŝna dokonać na dowolnej granicy pomiędzy warstwami. JeŜeli chce się uzyskać cienkiego klienta (ang. thin client) wtedy linię podziału naleŝy poprowadzić pomiędzy warstwą aplikacji a warstwą biznesową, która wraz z warstwą bazy danych będzie tworzyła obszerny serwer (ang. fat server). W przeciwnym zaś wypadku linię taką naleŝy poprowadzić pomiędzy warstwą biznesową a warstwą bazy danych. Otrzymujemy wtedy obszernego klienta (ang. fat client) i cienki serwer (ang. thin server). W pierwszym przypadku zastosowanie cienkiego klienta pozwala na bardzo łatwą adaptację systemu do rozproszonego, a takŝe niejednorodnego środowiska. Klient jest właściwe jedynie interfejsem uŝytkownika, który moŝna dosyć łatwo zaimplementować dla róŝnych systemów operacyjnych lub teŝ uniezaleŝnić od systemu operacyjnego znajdującego się na komputerze uŝytkownika. W tym celu moŝna zastosować np. aplikację napisaną w języku Java, która jest uruchamiana na wirtualnej maszynie odpowiedniej dla systemu operacyjnego lub teŝ zastosować interfejs obsługiwany poprzez przeglądarkę internetową. Cała logika aplikacji i przetwarzanie danych odbywa się na serwerze. Wadą takiego rozwiązanie jest konieczność zastosowania dosyć silnego serwera dla systemu aby potrafił obsłuŝyć przetwarzanie danych przez wielu uŝytkowników jednocześnie gdyŝ moc obliczeniowa komputera, z którego uŝytkownik obsługuje system wykorzystywana jest jedynie do przekazywania poleceń i obsługiwania odpowiedzi oraz prezentacji wyników.
Architektura systemu ekspertowego w przedsiębiorstwie rozproszonym 367 Drugie rozwiązanie pozwala na wykorzystanie mocy obliczeniowej komputera uŝytkownika do przetwarzania danych a zadanie serwera sprowadza się do obsługi zapytań bazy danych. Wymaga to jednak umieszczenia całej logiki biznesowej systemu w aplikacji uŝytkownika co utrudnia implementację tego rozwiązania dla środowiska niejednorodnego. Wszelkie aktualizacje oprogramowania związane ze zmianą przetwarzania wymagają przy tym rozwiązaniu wymiany aplikacji na wszystkich końcówkach uŝytkowników. Zastosowanie technologii klient/serwer do systemu ekspertowego Porównując architekturę systemu ekspertowego z architekturą systemu w technologii klient/serwer moŝna dostrzec bardzo prostą analogię. Warstwa interfejsu uŝytkownika odpowiada warstwie aplikacji, warstwa przetwarzania wiedzy warstwie biznesowej, a warstwa bazy wiedzy warstwie bazy danych. PoniewaŜ filozofia działania SE polega na przetwarzaniu wiedzy i właściwie logika biznesowa systemu jest zaszyta w bazie wiedzy a system wnioskujący (znajdujący się w warstwie przetwarzania wiedzy) pozwala jedynie tę logikę wydobyć więc taka prosta analogia nie jest do końca słuszna. Jakkolwiek rozdzielenie mechanizmu wnioskującego od bazy wiedzy jest kluczowe dla SE to jednak umieszczenie obu tych elementów na oddzielnych komputerach połączonych niezbyt szybkim łączem (np. poprzez internet) byłoby brzemienne w skutkach. Zastosowanie wariantu technologii klient/serwer z grubym klientem wymagałoby dla poprawnego działania SE przesłanie właściwie całej bazy wiedzy do komputera uŝytkownika. Uzyskalibyśmy w ten sposób co prawda jeden z celów zastosowania SE w przedsiębiorstwie rozproszonym jednolity dostęp do wiedzy wszystkich oddziałów przedsiębiorstwa, jednak nie byłoby to rozwiązanie optymalne. Dla SE najodpowiedniejszym wydaje się być zastosowanie technologii klient/serwer z wykorzystaniem cienkiego klienta. W tym rozwiązaniu całe przetwarzanie wiedzy odbywa się na serwerze, który moŝe być umieszczony w centrali przedsiębiorstwa a uŝytkownicy uzyskują dostęp do systemu np. poprzez interfejs oparty na przeglądarce internetowej. Podsumowanie Zastosowanie systemu ekspertowego w przedsiębiorstwie daje podwójne korzyści. Po pierwsze pozwala na zgromadzenie wiedzy ekspertów w systemie komputerowym i w ten sposób częściowe uniezaleŝnienie się od ekspertówludzi. Jest to szczególnie istotne w sytuacji gdy rotacja pracowników zwłaszcza wysoko wykwalifikowanych jest dosyć duŝa. Gromadzenie wiedzy w systemie ekspertowym pozwala na zbudowanie know-how przedsiębiorstwa. W
368 Technologia przetwarzania wiedzy w SWO przypadku przedsiębiorstwa rozproszonego pojawia się takŝe druga korzyść w postaci moŝliwości korzystania z wiedzy ekspertów bez dostępu do ekspertówludzi. W tym celu potrzebna jest taka konstrukcja systemu ekspertowego aby był moŝliwy do niego dostęp zdalny. Jak pokazano optymalnym rozwiązaniem jest zastosowanie do budowy systemu ekspertowego technologii klient/serwer w wersji z cienkim klientem. Pozwala to takŝe na spójną politykę firmy we wszystkich oddziałach np. dla systemu ekspertowego oceniającego wnioski kredytowe w oddziałach banku. Kierunkiem dalszych prac będzie rozpatrzenie w kontekście systemów ekspertowych architektury wielowarstwowej (która jest pewnym rozszerzeniem architektury trójwarstwowej) oraz przedstawienie koncepcji takiego systemu i jego implementacja. Literatura [1] Niederliński A.: Regułowe systemy ekspertowe. Wydawnictwo pracowni komputerowej Jacka Skalmierskiego, Gliwice 2000 [2] Mulawka J.J.: Systemy ekspertowe. Wydawnictwa naukowo techniczne, Warszawa 1996 [3] Dumnicki R., Kasprzyk A., Kozłowski M.: Analiza i projektowanie obiektowe. Wydawnictwo HELION, Gliwice 1998 [4] Praca zbiorowa pod red. Michalski A.: Analiza nowych technologii informatycznych w zarządzaniu rozproszonym. Wydawnictwo Politechniki Śląskiej, Gliwice 2003 [5] Kisielnicki J., Sroka H.: Systemy informacyjne biznesu. Agencja Wydawnicza Placet, Warszawa 1999 EXPERT SYSTEM ARCHITECTURE IN DISTRIBUTED ENTERPRISE The architecture of expert system and architecture of distributed system taking three-tier architecture and Client/Server technology into consideration is shown in this paper. The purpose of this paper is presenting the architecture of expert system in reference to Client/Server technology. Key words: Expert systems, distributed systems, Client/Server technology.