Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
Nowa wersja Both sides next revision
pl:miw:miw08_ruleruntimeo:howto [2008/05/19 19:42]
miw utworzono
pl:miw:miw08_ruleruntimeo:howto [2008/05/20 02:08]
miw
Linia 1: Linia 1:
-====== Używanie JPL i Logtalk do tworznenia ​aplikacji zgodnych z wzorcem MVC ======+====== Używanie JPL i Logtalk do tworzenia ​aplikacji zgodnych z wzorcem MVC ====== 
 + 
 + ==== Instalacja JPL pod Windows==== 
 +  
 +Jako, że do komunikacji pomiedzy obiektami klas Javy i Logtalk'​a używana jest bibliotek'​a JPL, konieczne jest   ​wcześniejsze jej zainstalowanie.  
 +Jest ona standardowo instalowana wraz z środowiskiem SWI-Prolog, warto jednak podkreslic, ze instalowana jest biblioteka w wersji 3.1.3-alpha,​ podczas gdy wiekszość dokumentacji,​ którą można znaleźć na [[http://​www.swi-prolog.org/​packages/​jpl/​|stronie projektu]] dotyczy wersji 2.x. Skrótowy opis API do uzywania [[http://​www.swi-prolog.org/​packages/​jpl/​java_api/​high-level_interface.html|Prologa z Javy]], natomiast opis API do uzywania [[http://​www.swi-prolog.org/​packages/​jpl/​prolog_api/​overview.html|Javy z Prologa ]].  
 + 
 +Jeżeli chodzi o konfigurowanie projektu w Javie konieczne jest też podanie scieżki do NativeLibrary czyli jpl.dll dla Windowsa (pod Linuxami bodajże jpl.so), ktora domyslnie znajduje sie w SWI_HOME_DIR\bin,​ gdzie SWI_HOME_DIR to folder instalacyjny SWI-Prolog.Aby JPL działał porawnie i możliwa bylo komunikacja pomiedzy Java, a Prologiem nalezy dokonać odpowiednich zmian w zmiennych systemowych zgodnych z instrukcją [[http://​www.swi-prolog.org/​packages/​jpl/​installation.html|instalacji JPL]]. W szczególności upewnić się : 
 +  * jpl.jar jest widoczny dla Javy, czyli np znajduje się w folderze obecnym w CLASSPATH 
 +  * Zmienna środowiskowa PATH zawiera folder, w którym znajduje się libpl.dll (domyślnie SWI_HOME_DIR\bin) 
 + 
 +Przy uwzglednieniu tych uwag wszystko powinno działać normalnie. 
 + 
 +==== Konfiguracja Logtalk runtime ==== 
 + 
 +Aby móc używać obiektów Logtalk'​a potrzebne jest nie tylko ich kod zrodlowy w plikach z rozszerzeniem lgt ale aby móc je skompilować i uruchomić, tworząc instancje tych obiektów konieczne jest załadowanie środowiska uruchomieniowego Logtalk'​a.  
 +Aby skonfigurowac odpowiednio kompilator SWI do pracy z LogTalk'​iem należy uruchomić 3 pliki konfiguracyjne:​ 
 +   * configs/​swi.config - ustawia zmienne i konfiguruj srodowisko Prologa 
 +   * complier/​logtalk.pl - laduje kompilator LogTalka 
 +   * libpaths/​libpaths.pl - ustawia sciezki do bibliotek standardowych LogTalka 
 +Pliki te znajduja sie w katalogu instalacyjnym Logtalk'​a (czyli domyslnie dla Windowsa C:\Program Files\Logtalk) 
 + 
 +chyba najwygodniej jest sporządzić sobie plik startowy o zawartosci:​ 
 +<code prolog>​ 
 +:​-consult('​lib/​Resources/​logtalk/​swi.config'​). 
 +:​-consult('​lib/​Resources/​logtalk/​logtalk.pl'​). 
 +:​-consult('​lib/​Resources/​logtalk/​libpaths.pl'​). 
 + 
 +</​code>​ 
 + 
 +Zanim przystapimy do tworzenia instancji jakiego obiektu Logtalk'​a konieczne bedzie uruchomienie tego pliku. 
 + 
 +==== Podzial na klasy i moduly ==== 
 + 
 +Analizujac architekture wzorca MVC na przykladzie prostego [[http://​java.sun.com/​developer/​technicalArticles/​javase/​mvc/​|edytora tekstu ]], widoczną na poniższym diagramie : {{:​pl:​miw:​miw08_ruleruntimeo:​figure4.gif|:​pl:​miw:​miw08_ruleruntimeo:​figure4.gif}} 
 +---- 
 + 
 +Widać, że podmiana klas modelu na obiekty Logtalku może się odbyć tylko poprzez modyfikacje Kontrolera (Controller) na taki, który wykorzystując JPL będzie komunikował się z Logtalk'​iem ​ i przekazywał komunikaty do Widoku (View). Zatem klasy modelu napisane w Javie de facto mogą zostać podmienione przez obiekty Logtalk na zasadzie 1:1. 
 +Niestety jako, że problematyczne okazało się wywoływanie zdarzeń bezpośrednio z kodu Prologa, konieczne było zastosowanie pewnych obejść żeby zachować istniejącą architekturę aplikacji, ale generlanie rzecz biorąc próba realizacji takiej podmiany udała się. 
 + 
  
-  - Instalacja JPL 
-  - Konfiguracja Logtalk runtime 
-  - Podzial na klasy i moduly 
  
  
pl/miw/miw08_ruleruntimeo/howto.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0