Matlab Builder for Java a
Java servlety
MATLAB
Builder for Java rozširuje MATLAB Compiler o nástroje
pre automatické generovanie Java tried z .m súborov.
Z každej MATLAB-ovskej funkcie vytvorí Java Builder metódu
Java triedy. Vytvorené triedy je potom možné použiť
mimo prostredia Matlabu zvyčajným spôsobom ako je to
obvyklé u iných Java tried. To umožňuje použiť
algoritmy vytvorené v MATLABe
v aplikáciách založených na Java
technológii. Komponenty vytvorené pomocou Java
Builderu nepotrebujú MATLAB k svojej funkčnosti, preto
môžu byť bezplatne distribuované užívateľom ,
ktorí MATLAB nemajú. V distribuovanom balíku
je samozrejme nutné zahrnúť pomocné súbory
ako CTF súbor a MCR.
Pre vytvorenie Java tried z
.m suboru, je potrebný .m súbor s odskúšanou
funkciou, ktorý sa prevedie do Java tried pomocou MATLAB
Compileru. Zrealizovať sa to dá buď priamo príkazom
mcc,
alebo za pomoci grafického
nástroja, v ktorom sa vyberie typ a meno projektu,
pridajú sa .m a iné pomocné súbory,
nastavia sa mená tried a celého distribučného
balíka. Tento grafický nástroj je možné
spustiť priamo z MATLABu príkazom deploytool.
Použitie príkazu mcc,
buď to z pracovného prostredia MATLABu alebo
z príkazového riadku operačného systému
by mohlo vyzerať nasledovne:
mcc
-W java:myPackage,myClass test.m
Parameter
-W
java: oznamuje kompilátoru,
že ako výstup ma použiť jazyk Java. myPackage je názov Java balíka, myClass
názov triedy, ktorá má byť vytvorená a
test.m
je meno zdrojového .m
súboru. Ak všetko prebehne hladko, kompilátor
vyprodukuje zdrojové kódy v jazyku Java a to
súbor myClass.java
obsahujúci samotnú Java triedu s funkciami z pôvodného
.m súboru, myPackageMCR.java
obsahujúci dekryptovací kľúč pre CTF súbor,
spomínaný CTF súbor a potom zavolá
Java kompilátor javac,
ktorý zo zdrojových kódov vytvorí
príslušné .class súbory a JAR archív
myPackage.jar.
Vytvorené komponenty je potom možné začleniť do
akejkoľvek Java aplikácie. Výmena parametrov medzi
funkciami vytvorenými MATLAB Java Builderom a zvyškom
programu je zabezpečovaná cez MWArray
API (MathWorks Array Application
Programing Interface) . MWArray API
je hierarchia tried, ktorá reprezentuje hlavné dátové
typy v MATLABe. Koreňová trieda je abstraktná
trieda MWArray,
ktorá má
podtriedy: MWNumericArray,
MWLogicalArray,
MWCharArray,MWCellArray,MWStructArray
Tieto
podtriedy obsahujú konštruktory pre vytváranie
MATLAB-ovských dátových typov zo štandardných
Java dátových typov a obsahujú aj metódy
pre spätnú konverziu.
Java
Servlety
Servlety sú
technológiou JAVA platformy a sú jednou z možností
pre rozšírenie funkcionality WEB serverov. Servlety poskytujú
platformovo nezávislé metódy pre vývoj
WEB-aplikácií, bez výkonových obmedzení
CGI programov. Až na proprietárne rozšírenia (ako
Netscape Server API alebo Apache moduly) servlety sú
platformovo a serverovo nezávislé. To umožňuje
zvolenie najviac vyhovujúcej kombinácie operačný
systém - server - nástroje. Najpoužívanejšie
servery s priamou podporou pre servlety a JSP stránky
sú Sun Java System Web Server (predtým znamy ako
Sun ONE Web Server) a Apache Tomcat server.
Treťostranné servletové kontajnery (servlet
containers) sú dostupné pre Apache Web Server,
Microsoft IIS a iné servery.
Dalo
by sa povedať, že servlet je niečo čo by sme dostali prepojením
appletu a CGI (Common Gateway Interface) skriptu.
Z programátorského
hľadiska, servlet pripomína applet. Je to spustiteľný
program napísaný v jazyku JAVA a zvyčajne (ale
nie stále) je vykonávaný ako odpoveď na dotaz
nejakej HTML stránky. Z hľadiska druhu činnosti ktorú
vykonáva, servlet priponína CGI skript ešte viac. Tak
jako CGI skript, môže servlet odpovedať na vstup od užívateľa
a zbierať užívateľom zadané údaje alebo
odoslať informácie spať k používateľovi. Ak je
servlet vytvorený pre poskytovanie informácií
používateľovi, môže získavať požadované
informácie z rôznych zdrojov, napr. získanim
z databázového systému. Servlet potom môže
dynamicky vytvoriť HTML stránku alebo obrázok
obsahujúcu požadované informácie a zobraziť ju
na používateľovom prehliadači.
CGI
skripty boli do doby prichodu servletov štandardnými
mechanizmami pre vytváranie dynamických stránok.
Servlety maju oproti CGI skriptom mnoho výhod. Jednou z nich
je úspora systémových prostriedkov. Zakaždým,
keď bol volany CGI skript musel byť vytvorený nový
proces, čo spotrebovalo veľa výkonu systému. CGI
skripty su na rozdiel od JAVA servletov platformovo závislé
a bežali v od servera oddelených procesoch, preto nemali
prístup k mnohým možnostiam servera, napríklad
zapisovat do log súboru servera.
Servlety
sú
efektívnejšie a prispôsobiteľnejšie. Nevytvárajú
nový proces pri každom ich volaní ale vytvárajú
nové vlákno v procese servera. Tým môžu
využívať možnosti servera, pretože bežia v jeho
vlastnom procese. Keďže sú napísane v jazyku
JAVA, môžu byť bez úprav sputené na akejkoľvek
platforme. Ich tvorba je však pracnejšia ako napísanie CGI skriptu.
Zopár príkladov servletov:
MagicSquareServlet
Servlet generujúci štvorcovú maticu
náhodných čísel zadaného rozmeru. Aplikácia
demonštruje jednoduchý vstup a výstup numerických údajov vo forme
matice
a výstup bez použitia JSP stránky.
NetfigServlet
Servlet
generujúci výstupný graf zo simulácie vloženého
diskrétneho systému, s vloženou periódou vzorkovania
a parametrami
regulátora v zložkovom tvare. Aplikácia demonštruje vstup
numerických
údajov a výstup vo forme grafu, pričom je využitá funkcia pre
tvorbu
interaktívnej grafiky webfigures().Pre výstup je použitá JSP stránka.
NetsimServlet
Servlet generujúci výstupný graf zo simulácie
pevne daného systému pomocou simulácie vytvorenej v Simulinku. Do
formulára je možné vložiť koeficienty regulátora. Aplikácia demonštruje
hlavne
použitie simulinkovských modelov v nových technológiách
a výstup vo
forme grafu, pričom je využitá funkcia pre tvorbu interaktívnej grafiky
webfigures(). Pre výstup je použitá JSP stránka.