abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 03:33 | Zajímavý software Ladislav Hagara | Komentářů: 0
    dnes 00:11 | Nová verze

    Byla vydána nová major verze 34.0.0 webového prohlížeče Pale Moon (Wikipedie) vycházejícího z Firefoxu. Přehled novinek v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 16:11 | Humor

    Win8DE je desktopové prostředí pro Wayland, inspirované nechvalně proslulým uživatelským rozhraním Metro z Windows 8. Nabízí dlaždicové rozhraní s velkými tlačítky a jednoduchou navigací, optimalizované pro dotyková zařízení. Cílem projektu je přetvořit design operačního systému Windows 8 do funkčního a minimalistického rozhraní vhodného pro každodenní použití na Linuxu.

    NUKE GAZA! 🎆 | Komentářů: 8
    včera 14:33 | Nová verze

    Laboratoře CZ.NIC vydaly Datovku 4.28.0 a Mobilní Datovku 2.6.0. Hlavní novinkou je ukládání rozpracovaných datových zpráv do konceptů. Datovka je svobodné multiplatformní aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi.

    Ladislav Hagara | Komentářů: 3
    včera 14:22 | Zajímavý projekt

    Unix Pipe Game je vzdělávací karetní hra zaměřená na děti a rodiče, která děti učí používat unixové příkazy prostřednictvím interaktivních úkolů. Klíčovým prvkem hry je využití symbolu | pro pipeline neboli 'rouru', který umožňuje propojit výstupy a vstupy jednotlivých unixových příkazů, v tomto případě vytištěných na kartičkách. Předpokládá se, že rodič má alespoň nějaké povědomí o unixových příkazech a jejich provazování pomocí |.

    … více »
    NUKE GAZA! 🎆 | Komentářů: 3
    včera 13:55 | Zajímavý software

    PCIem je linuxový framework, který vytváří virtuální zařízení PCIe pomocí technik, které umožňují hostitelskému operačnímu systému rozpoznat tyto syntetické 'neexistující' karty jako fyzické zařízení přítomné na sběrnici. Framework PCIem je primárně zamýšlen jako pomůcka pro vývoj a testování ovladačů bez nutnosti použít skutečný hardware. Dle tvrzení projektu si fungování PCIem můžeme představit jako MITM (Man-in-the-Middle), který se nachází mezi ovladači a kernelem.

    NUKE GAZA! 🎆 | Komentářů: 0
    včera 05:33 | Bezpečnostní upozornění

    Byla nalezena vážná bezpečnostní chyba v telnetd z balíčku GNU InetUtils. Týká se verzí GNU InetUtils od 1.9.3 z 12. května 2015 až po aktuální 2.7 z 14. prosince 2025. Útočník může obejít autentizaci a získat root přístup, jelikož telnetd nekontroluje předaný obsah proměnné prostředí USER a pokud obsahuje "-f root"…

    Ladislav Hagara | Komentářů: 5
    20.1. 17:22 | Komunita

    Stanislav Aleksandrov předložil patch rozšiřující KWin (KDE Plasma) na 3D virtuální desktopové prostředí (videoukázka v mp4).

    Ladislav Hagara | Komentářů: 6
    20.1. 05:55 | IT novinky

    Digg (Wikipedie), "místo, kde můžete sdílet a objevovat to nejlepší z internetu – a nejen to", je zpět. Ve veřejné betě.

    Ladislav Hagara | Komentářů: 4
    20.1. 01:44 | Komunita

    Po .deb balíčcích Mozilla nově poskytuje také .rpm balíčky Firefoxu Nightly.

    Ladislav Hagara | Komentářů: 11
    Které desktopové prostředí na Linuxu používáte?
     (17%)
     (5%)
     (0%)
     (10%)
     (21%)
     (3%)
     (5%)
     (2%)
     (11%)
     (37%)
    Celkem 562 hlasů
     Komentářů: 16, poslední 20.1. 17:04
    Rozcestník

    Java na serveru - 2

    12.10.2007 20:08 | Přečteno: 1591× | software

    Minule jsem psal o tom, že chci ukázat jednoduchou aplikaci, která využívá základní koncept javy na serveru.

    Prvním krokem, než začnu tvořit, je samotná instalace potřebných částí. Tu se pokusím v tomto článku sepsat.

    Začnu od nejspodnější vrstvy a tou je databáze. Jak jsem již psal, budu používat MySQL. Není třeba klást velké požadavky na tuto vrstu, pouze musí být správně nainstalována a podporovat důležité funkce. Za jednu ze základních funkcích považuji referenční integrity. Jedná se o propojení dat, které mi jednak tvorí základní koncept a jednak udržuje data v konzistentním stavu. K tomuto účelu volím InnoDB, což je typ "tabulky", který splňuje tento základní požadavek. Osobně doporučuji MySQL 5 a vyšší.

    Instalace je často dost triviální a snad každá schopnější distribuce nabízí přímo balíčky s touto DB. Po úspěšné instalaci je třeba ještě stáhnout MySQL Connector/J, který se bude hodit později.

    Dalším krokem je instalace Javy. Opět se jedná o dost jednoduchou věc, která je popsána snad na stovkách webů a nemá cenu rozepisovat, jak takovou věc provést.

    Nyní se již začnu zabývat aplikačním serverem, který je o dost šťavnatejší.

    Takže, nejprve stahneme glassfish, doporučuji v2, která před nedávnem vyšla. Po úspěšně instalaci je třeba nakonfigurovat samotný server.

    Konfiguraci mohu provádět pomocí příkazové řádky, kde si spustím GLASSFISH_HOME/bin/asadmin, nebo pomocí webového rozhranní: http://localhost:4848/. V určitých případech mohu zazásnout přímo do souborů, ale k tomu až později.

    Osobně volím druhou možnost, tedy webové rozhraní.

    Nejprve je třeba ukončit server (GLASSFISH_HOME/bin/asadmin stop-domain domain1) a zaregistrovat MySQL. Stažený JDBC ovladač nakopírujeme do doménové cesty glassfishe (GLASSFISH_HOME/domains/domain1/lib) a spustíme server (GLASSFISH_HOME/bin/asadmin start-domain domain1).

    Po přihlášení do webového rozhraní přejdu do "Resources->JDBC->Connection Pools". Nyní zaregistruji MySQL. Při vytvoření nového poolu zadáme jméno (např. mysql/test), vybereme Resource Type ConnectionPoolDataSource a vendora MySQL. V dalším kroku mohu nechat všechny hodnoty výchozí, pouze změním: Allow Non Component Callers na ON, protože budu potřebovat volat z MySQL i přihašování, které pojede mimo tvořenou aplikaci. Propetry nastavím na vlastne definované hodnoty, podle instalace MySQL. Důležitými jsou tyto:

    Nyní vytvořím samotný jdbc zdroj, který budu pomocí lookup získávat v aplikaci (respektive na persistentní vrstvě). Takže, v JDBC Resources dám nový, určím jméno JNDI (pozor, toto jméno musí být dostatatčně jasné, abych později věděl oč jde) např: jdbc/mysql_test, vyberu vytvořený pool a popřípadě doplním popisek.

    Tímto bych měl mít zpřístupněnou MySQL databázi z aplikačního serveru. Samozřejmě existují i další volby, které jsou ovšem závislé na druhu projektu a také DBMS. Ne vždy nám totiž výchozí hodnoty stačí. Já ovšem předpokládám, že každý si dokáže dohledat příslušné materiály k danému problému.

    Instalace JAAS-Realmu.

    Předem bych měl asi objasnit o co se vlastně jedná. Samotný popis je vcelku rozsáhlý, já opět vezmu jen to nejdůležitější pro daný problém. Ve chvíli, kdy budete tvořit jakýkoli informační systém, budete se muset zabývat otázkou autentifikace a autorizace. Samotné J2EE proto implemetuje toto řešení, které má zjednodušit práci v této oblasti. Pokud jste se o tom nedočetli v Java EE5 Tutoriálu, tak po autentifikování uživatele jsem schopen říct, do které skupiny spadá a v jakých rolích se daný uživatel může vyskytovat. Jinými slovy, uživatel spadá do určité skupiny, která obsahuje určité role. Je možné i skupinu vynechat a říci, že uživatel má namapovanou tu či onu roli.

    I když se na začátku může zdát, že tento systém je příliš složitý, není to pravda. Naopak umožňuje čistěji definovat oprávnění jednotlivých uživatelů a to zejména ve větších projektech.

    Abych byl upřímný, sám jsem na začátku měl velké problémy rozchodit tuto službu přes vzdáleného klienta. Po pár dnech (pokusů a omylů) jsem se ale dopracoval ke zdárnému výsledku :)

    Takže, aplikační server může obsahovat několik říší (Realms), které obsahují určitý modul přihlašování. Jako výchozí říše je nastavena "file". O tom se můžete přesvědčit v aplikačním serveru "Configuration->Security". Samořejmě máte možnost toto změnit či si vytvořit novou říši. Mezi základními říšemi naleznete i JDBCRealm, který se dá k tomuto účelu použít. Abych to zbytečně neprodlužoval, odkážu Vás na web, kde je hezky popsáno, jak takový realm vytvořit a nastavit. Já jsem pro své účely musel jít vlastní cestou a vytvořil jsem si vlastni LoginModule. Nevyhovovala mi totiž tato předefinovaná říše. Pokud by měl někdo zájem, mohu mu vlastní řešení zaslat.

    Tím by měla být základní kostra aplikačního serveru hotová. Nyní ještě IDE, které použiji pro psaní své aplikace

    K tvorbě aplikací jsem zvolil NetBeans. Instalace Netbeansů je velice triviální a nemá cenu ji rozebírat. Snad jen upřesním, že musíte mít verzi s podporou pluginů z J2EE a Web. K zaregistrování aplikačního serveru v NetBeans se můžete dočíst například zde.

    Možná se Vám zdá, že instalace je docela rozsáhlá záležitost. S tím naprosto souhlasím, ovšem je třeba si ovědomit, že samotný aplikační server můžu chápat jako vlastní OS. Jednak obsahuje webový kontejner (stejně, jako například Tomcat), ale také i EJB kontejner, podporu JAAS, JMS, atd. Prostě v tomto prostředí jsem schopen tvořit jakoukoli rozsáhlou aplikaci a třeba i s pomocí X desítek lidí.

    Příště tedy již o samotném programování doménového modelu.

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    13.10.2007 10:14 Petr Masopust | skóre: 14
    Rozbalit Rozbalit vše Re: Java na serveru - 2
    Par komentaru/doplneni:

    s/zazásnout/zasáhnout/

    JNDI jmeno spojeni muze byt treba jenom mysql_test, jdbc/ je nepovinne, ale rozhodne doporucuji si podle prefixu rozdelit JNDI na casti.

    Pro postgres je jdbc driver tady - instalace prakticky stejna jako u mysql. Ja jsem akorat mel trochu problem s ConnectionPoolDataSource, doporucuji spis pouzivat normalni DataSource, resp. XADataSource.

    Standardni JAAS jdbc realm mi prijde ponekud nedotazeny - ja jsem si take musel vytvorit vlastni podle navodu.

    Pouzivam Eclipse + MyEclipse pluginy a pro vyvoj na glassfish je to naprosto luxusni IDE (ale uz ne zadarmo ...).

    Pokud vypustim instalaci vlastniho JAAS realmu tak je instalace glassfishe pomerne trivialni - vetsinou mam zakladni pouzitelny server behem 10 minut (pro development, pro produkcni nasazeni by to bylo trochu dele :)). A i ten JAAS realm neni tak tezky, ale napoprve to da trochu zabrat.

    Btw velmi dobre napsany uvod do jee programovani, jen tak dal !
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.