Podrobnosti o webové aplikaci Aukce

Webová aplikace Aukce je sestavena z několika komponent, jak je uvedeno v následujícím diagramu. Toto není výukový program pro sestavení celé aplikace. Tento dokument zvýrazňuje důležité body vývoje a návrhu, které se odrážejí na různých nástrojích pracovního prostředí a tak můžete i vy aplikovat toto poznání na své webové aplikace.

Tento diagram zobrazuje vztahy mezi daty, obchodní logikou, webovým obsahem a nástroji.
Jak je uvedeno v předcházejícím diagramu, webový obsah byl vyvinut pomocí spojení dat a obchodní logiky. Zatímco návrháři vyvinuli styl a vzhled webových stránek, vývojáři Java a webových služeb nastavili obchodní logiku tak, aby tyto stránky řídila. Následující sekce popisují, jak byly tyto klíčové komponenty sestaveny a jak fungují ve webové aplikaci Aukce.
  1. Mapování objektů entity bean do tabulek databáze pomocí editoru mapování EJB
  2. Vytváření objektu facade relace pomocí datových objektů SDO a průvodce objekty bean facade relace
  3. Definování rozvržení webové stránky pomocí Návrháře webu
  4. Vytváření šablon webových stránek pomocí Návrháře stránek
  5. Přidávání komponent JavaServer Faces ke stránkám JSP pomocí Návrháře stránek
  6. Vytváření webové služby

Mapování objektů entity bean do tabulek databáze pomocí editoru mapování EJB

Enterprise JavaBeans (EJB) nabízí pohodlný způsob přístupu aplikací Java k datům zadrženým v relačních databázích. Objekty entity bean lze vyvinout pomocí perzistence typu BMP (bean-managed persistence) nebo CMP (container-managed persistence). CMP umožňuje větší flexibilitu než použití BMP, protože kontejner EJB provádí všechna volání specifická pro databázi, jak jsou řízená objektem bean. Předvoleně generují nástroje pracovního prostředí platformy Rational objekty entity bean pomocí CMP. Objekt entity bean CMP neobsahuje žádný přístupový kód k SQL. To vám umožňuje umístit objekt bean na ostatní servery J2EE, které používají jiné databáze, bez nutnosti kód přepisovat.

Existují různé přístupy k mapování objektů na relační databáze, jako například shora dolů, zdola nahoru a setkání uprostřed. Přístup shora dolů postupuje od stávajících objektů, poté definuje stoupající měrou podrobné vrstvy podle požadavku, a nakonec navrhuje databázi. Přístup zdola nahoru použije stávající schéma databáze, a pak navrhne související vrstvy, které definují tyto objekty. Přístup setkání uprostřed použije stávající databázi a stávající objekty, a pak vyvine pomocné vrstvy, které spojí objekty s odpovídajícími tabulkami databáze.

Aplikace Aukce použila při vývoji EJB entity přístup zdola nahoru. Databáze Derby existovala na začátku a obsahovala tabulky, které se úzce shodují s potřebnými EJB. Po vytvoření připojení k databázi pomocí průvodce připojením databáze jsme použili průvodce mapováním EJB k RDB, abychom vytvořili objekty EJB, které byly mapovány z jedné nebo více tabulek, až na některé výjimky. Následující obrázek zobrazuje objekty entity EJB, které se používají v aplikaci Aukce, a jejich vzájemné vztahy.

Tento diagram zobrazuje vztahy mezi různými objekty entity bean.

Objekty entity bean v aplikaci Aukce nejsou přímo zpřístupnitelné vzdáleným klientem. Všechny požadavky a odezvy jsou ošetřeny objekty facade relace a pro přístup k zálohovaným datům se používají objekty bean. To umožňuje mít na straně serveru sdílený přístup k trvalému úložišti dat. Následující sekce se týká podrobnějšího popisu objektů facade relace.

Na další informace o mapování objektů entity bean se podívejte na téma nápovědy Vytváření mapování zdola nahoru.

Vytváření objektu facade relace pomocí datových objektů SDO a průvodce objekty bean facade relace

Objektem facade relace se rozumí rozhraní mezi klientem a systémem typu back-end, které zprostředkovává spojení komponentám objektu Service Data Object (SDO) a v neposlední řadě také databázi. Objekt facade relace se používá, když klient zasílá požadavky, které jsou potřeba pro činnost některých objektů. Individuální zasílání těchto požadavků objektům může zvýšit zatížení nebo zpoždění reakce sítě. Objekt facade relace se chová jako vyrovnávací paměť mezi dvěma konci; přijetím obecného požadavku od klienta a zasláním specifických požadavků k vybraným objektům. Tímto se sníží zatížení a usnadní se vývoj klienta.

Jakmile je objekt facade vytvořen, můžete vybrat objekty EJB, které bude spravovat, tak že z nabídky nástrojů vyberete Mapovat objekty EJB. Objekt facade vygeneruje nezbytné komponenty SDO z objektů entity bean. V aplikaci Aukce jsou dva objekty facade, založené na následující funkční skupině:
  • Objekt facade systému je propojen se systémem typu back-end a se systémovými objekty EJB, jako je Kategorie a Role.
  • Objekt facade uživatele zapouzdří uživatelem specifikovaná data, jako je Aukce, Položka a Role.

Shromážděním objektů EJB a použitím dvou odlišných objektů facade můžete zvýšit výkonnost aplikace, protože uživatelé si zpřístupní pouze ty objekty, které budou potřebovat. Objekty entity bean, které řídí funkčnost samotné webové stránky, jako např. Kategorie, jsou řízeny systémovým objektem facade.

Objekty EJB, na které je odkazováno objektem facade, jsou postupně vybírány pomocí průvodce Vytvoření objektu bean facade relace, jak je vyobrazeno v následujícím diagramu. Objekt EJB může být odkazován v jednom či více objektech facade, je-li potřeba. Toto však neplatí pro aplikaci Aukce.

Tento diagram zobrazuje uživatelské rozhraní Vytvoření objektu bean facade relace.

Další funkce můžete přidat tak, že přidáte metody k objektům facade. Například v uživatelském objektu facade je jedna metoda, která navrátí seznam uživatelů, a druhá metoda, která navrátí seznam všech aktivních uživatelů. Vezmeme-li tyto dvě metody jako příklad, k uživatelskému objektu facade bychom mohli přidat další metodu, která navrátí seznam všech uživatelů, označených jako neaktivní.

Další informace o objektech facade relace naleznete v diskuzním fóru "Vzory návrhu: facade relace" na adrese http://java.sun.com./.

Definování rozvržení webové stránky pomocí Návrháře webu

Pohled Navigace nástroje Návrhář webu poskytuje vizuální znázornění toho, jak je stránka rozvržena. Zobrazuje jednotlivé stránky a jejich hierarchické uspořádání a je užitečný pro udržování rozvržení a uspořádání stránek uvnitř webu. Když přetáhnete stránky do editoru, obslužné prvky navigace se v šablonách stránky automaticky aktualizují. Například podle navigace Aukce, která je zobrazena v následujícím diagramu, byste mohli změnit pořadí karet navigace přesunutím stránky Prodeje (Sell) před stránku Prohlížení (Browse). Návrhář webu automaticky vygeneruje na všech stránkách karty ve správném pořadí. Abyste změny zviditelnili v běžící aplikaci, musíte znovu uložit každou stránku, která používá šablonu navigace.

Tento diagram znázorňuje soubory JSP, které jsou v Návrháři webu.

Kromě navigačního pohledu, který jsme zde právě popsali, poskytuje Návrhář webu pohled Podrobnosti, který uspořádá další prvky stránky do odpovídající tabulky, jak je zobrazeno v následujícím nákresu. Tato tabulka zjednodušuje aktualizaci vlastností stránek, jako je titulek, autor a štítek navigace.

Tyto diagramy zobrazují podrobný pohled na Návrháře webu (Web Site Designer).

Na další informace týkající se použití Návrháře webu pro správu rozvržení webu se podívejte na téma Vytváření struktury webové stránky v nápovědě online.

Vytváření šablon webových stránek pomocí Návrháře stránek

Součástí pracovní plochy je vizuální návrhář pro vývoj šablon stránek a samotných webových stránek.

Šablony stránek jsou opětovně použitelné části obsahového kódu, který zajišťuje společný vzhled chování sekcí webové stránky. Chcete-li sdílet společný vzhled a prostředí, webové stránky potřebují pouze odkaz na šablony. Používání šablon ocení jak uživatel, který se může jednoduše pohybovat po webu, tak vývojář, který pouze zadá kód specifický pro každou stránku.

Šablony stránek také umožňují jednoduchou údržbu obsahu webových stránek. Změny provedené v souboru šablony se automaticky projeví na každé odkazované stránce. Například ve webové aplikaci Aukce šablona maintemplate.jtpl zajišťuje obecné rozvržení stránek Aukce. Prvky webové stránky lze k šabloně přidat pomocí palety v Návrháři stránek, která vám umožňuje přetáhnout prvky na webovou stránku. Požadovaný kód HTML se vytvoří automaticky. Šablonu Aukce můžete tímto způsobem snadno upravit, například když se rozhodnete zahrnout aktuální datum a čas do zápatí.

Klíčové prvky v šabloně Aukce jsou obslužné prvky navigace. Navigační panel webové aplikace Aukce používá dva způsoby navigace:
  • Navigační karty: zobrazují různé sekce webové stránky.
  • Navigační cesty neboli "bread crumbs": textově zobrazí, kde se uživatel na webové stránce nachází, například Domů > Procházet > Výpis.
Tento diagram zobrazuje navigační karty, které se objevují na ukázkových stránkách Aukce.

Vložením příznaku, který vyvolá šablonu, spíše než složitou kódovanou navigací můžete začlenit stejný panel navigace na všechny stránky webu. Editor mapování šablony vloží odkazy na šablonu na webovou stránku.

Dynamické šablony jsou v této technologii o krok dále; mohou například pozměnit obsah webových stránek na základě uživatelských rolí nebo schopností nebo mohou na webovou stránku vložit informace týkající se uživatele. Ukázka Aukce používá dynamické šablony pro zajištění administrativních odkazů v navigačním panelu pouze pro uživatele přihlášené jako administrátoři a pro změnu čtení tlačítka "Přihlásit" na "Odhlásit", jakmile se uživatel úspěšně přihlásí.

Na další informace o vytváření šablon webových stránek se podívejte na téma nápovědy Vytváření šablony stránky.

Přidávání komponent JavaServer Faces k souborům JSP pomocí Návrháře stránek

JSF (JavaServer Faces) je technologie, která spolupracuje při sestavování uživatelských rozhraní pro dynamické webové aplikace, které běží na aplikačním serveru. JSF je jazyk otevřeného standardu a používá knihovnu značek standardu JavaServer. Značky jsou vloženy do kódu HTML, aby vytvořily dynamické webové stránky.

Rámcový systém JSF spravuje stavy uživatelského rozhraní mezi požadavky serveru a nabízí jednoduchý vývojový model pro ošetření událostí ze strany serveru, které jsou aktivovány klientem. Například, JSF může mít určité chování pro různé události, jako je třeba klepnutí na tlačítko. Návrhář stránek má na paletě zobrazeny vestavěné funkce, které můžete přetáhnout na webovou stránku. Tyto funkce s možností přetažení zjednodušují používání JSF, HTML a dalších prvků pro tvoření skriptů. Toto je užitečné nejen pro řízení základních funkcí pole, jako je typ hodnoty textového pole (celé číslo, alfanumerický znak), ale také povolují nastavení pravidel ověřování platnosti. V Návrháři stránek mohou být ovladače JSF svázány k datům SDO, která jsou přidružena ke každé stránce.

Paletu Návrháře stránek lze použít k přidání dalších funkcí ke stránkám JSF. Například byste mohli k podrobnostem o položce přidat tlačítko "Koupit teď", abyste umožnili uživateli koupit položku za cenu, kterou prodejce u položky stanovil.

Následující nákres zobrazuje ovladače JSF stránky podrobností JSF. Pole newbid inputText je omezeno pouze na přijímání celých čísel pomocí zaškrtávacího okénka Pouze celé číslo, jak vidíte v pravém dolním rohu nákresu. Pole inputText má další nastavení pro Ověření, Chování a Usnadnění, jak je definováno v níže uvedených tabulkách h:inputText v levém dolním rohu obrázku. V kartě Ověření jsou definována určitá pravidla ověřování pomocí Java. Například platný vstup pro pole newbid inputText je celé číslo, které není rovno nule, je větší než počáteční hodnota aukce a větší než aktuální hodnota aukce + 1.

Následující diagram zobrazuje obslužné prvky JSF, použité na stránce Podrobnosti aukce.

Pro pole newbid inputText byl na stránce Podrobnosti položky v aplikaci Aukce vygenerován následující kód.

<h:inputText styleClass="inputText" id="newbid" required="true" size="14">
    <f:convertNumber integerOnly="true" />
    <f:validateLongRange minimum="#{pc_Itemdetail.userFacadeLocalGetFindHighestBidResultBean==null ?
        pc_Itemdetail.userFacadeLocalGetBidItemSDOByKeyResultBean.startingbid :
        pc_Itemdetail.userFacadeLocalGetFindHighestBidResultBean.currentbid+1}">
    </f:validateLongRange>
</h:inputText>

Na další informace o vývoji souborů JSP Faces se podívejte na heslo nápovědy JavaServer Faces.

Vytváření webové služby

Webová služba byla implementována společně s webovou aplikací, protože není na webové aplikaci závislá - webová služba je další způsob přístupu k obchodní logice a neobsahuje veškerou funkčnost webové aplikace. Na podrobnější popis této součásti aplikace Aukce se podívejte do sekce Webová služba.

Uspořádání projektů aukce

Webová aplikace Aukce obsahuje několik projektů. Každý z projektů má svůj účel. Následující seznam popisuje každý z projektů a jeho použití v ukázce Aukce:
  • Projekt AuctionV60EAR je hlavní soubor EAR (Enterprise Archive), který je umístěn na aplikační server. Tento projekt je nezbytný pro prostředí běhové komponenty.
  • Projekt AuctionV60EJB obsahuje objekty EJB a třídy objektu facade.
  • Projekt AuctionV60EJBClient zadržuje vygenerovaný kód, včetně tříd SDO a je implementován na klienta.
  • Projekt AuctionV60Web obsahuje všechny soubory JSF, šablonu a obchodní logiku pro jejich spuštění.
  • Projekt AuctionV60WebService obsahuje soubory webové služby WSDL a zdroj pro webovou službu Java.
  • Projekty OIDGenerator a OIDGeneratorClient jsou nezbytné pro vytváření nových klíčů pro vkládání databází.
Nadřazené téma: Webová aplikace Aukce

Zpětná vazba