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 18:11 | IT novinky

    Dnes a zítra probíhá vývojářská konference Google I/O 2025. Sledovat lze na YouTube a na síti 𝕏 (#GoogleIO).

    Ladislav Hagara | Komentářů: 0
    dnes 15:22 | Komunita

    V Bostonu probíhá konference Red Hat Summit 2025. Vybrané přednášky lze sledovat na YouTube. Dění lze sledovat na síti 𝕏 (#RHSummit).

    Ladislav Hagara | Komentářů: 0
    dnes 15:00 | Nová verze

    Společnost Red Hat oficiálně oznámila vydání Red Hat Enterprise Linuxu 10. Vedle nových vlastností přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Podrobnosti v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    dnes 12:22 | Pozvánky

    Tuto sobotu 24. května se koná historicky první komunitní den projektu Home Assistant. Zváni jsou všichni příznivci, nadšenci a uživatelé tohoto projektu. Pro účast je potřebná registrace. Odkazy na akce v Praze a v Bratislavě.

    jose17 | Komentářů: 0
    dnes 04:44 | IT novinky

    Troy Hunt představil Have I Been Pwned 2.0, tj. nový vylepšený web služby, kde si uživatelé mohou zkontrolovat, zda se jejich hesla a osobní údaje neobjevili v únicích dat a případně se nechat na další úniky upozorňovat.

    Ladislav Hagara | Komentářů: 13
    včera 23:22 | Zajímavý software

    Microsoft představil open source textový editor Edit bežící v terminálu. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 7
    včera 22:22 | Zajímavý software

    V Seattlu a také online probíhá konference Microsoft Build 2025. Microsoft představuje své novinky. Windows Subsystem for Linux je nově open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 0
    včera 13:11 | Zajímavý článek

    Z příspěvku Turris Sentinel – co přinesl rok 2024 na blogu CZ.NIC: "Za poslední rok (únor 2024 – únor 2025) jsme zachytili 8,3 miliardy incidentů a to z 232 zemí a z jejich závislých území. Tyto útoky přišly od 6,2 milionu útočníků (respektive unikátních adres). SMTP minipot je stále nejlákavější pastí, zhruba 79 % útoků bylo směřováno na tento minipot, 16 % útoků směřovalo na minipot Telnet, 3 % útoků směřovaly na minipot HTTP a 2 % na minipot FTP. Dále jsme zaznamenali 3,2 milionu unikátních hesel a 318 tisíc unikátních loginů, které útočníci zkoušeli."

    Ladislav Hagara | Komentářů: 1
    včera 12:44 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová verze 3.0.4 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 12:33 | Nová verze

    Byla vydána nová stabilní verze 7.4 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 136. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    Jaký je váš oblíbený skriptovací jazyk?
     (60%)
     (23%)
     (9%)
     (2%)
     (0%)
     (0%)
     (6%)
    Celkem 47 hlasů
     Komentářů: 5, poslední dnes 20:57
    Rozcestník

    Java na serveru - 2

    12.10.2007 20:08 | Přečteno: 1547× | 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.