Az Aukciós webalkalmazás részletei

Az Aukciós webalkalmazás számos, a következő ábrán bemutatott összetevőből épül fel. Ez nem a teljes alkalmazás összeépítésének ismertetője. Ez a dokumentum inkább kiemeli a fontos fejlesztési és tervezési pontokat, melyek a munkaterület különböző eszközeit használják ki, így alkalmazhatja ezt a tudást a saját webalkalmazásaiban.

Az ábra az adatok, az üzleti működés, a webtartalom és az eszközök közötti viszonyt mutatja be.
Az előző ábrán láthatóan a webes tartalom az adatokkal és a működéssel együtt volt fejlesztve. Míg a tervezők a weboldalak stílusát és elrendezését fejlesztették, a Java webszolgáltatás fejlesztők az oldalakat vezérlő működést kódolták. A következő részek ezen kulcsösszetevők létrehozását és az Aukciós webalkalmazásban betöltött szerepüket írják le:
  1. Példánykomponensek leképezése adatbázistáblákhoz az EJB leképezés szerkesztővel
  2. Session komponens előállítása SDO adatobjektumokkal a Session komponens varázsló segítségével
  3. A webhely elrendezés meghatározása Webhely tervezővel
  4. Weboldal sablonok létrehozása az Oldaltervezővel
  5. JavaServer Faces komponensek hozzáadása JSP oldalakhoz az Oldaltervezővel
  6. A webszolgáltatás létrehozása

Egyedkomponensek leképezése adatbázistáblákhoz az EJB leképezés szerkesztővel

Az Enterprise JavaBeans (EJB) kényelmes módot kínál Java alkalmazásoknak a relációs adatbázisokban tárolt adatok elérésére. Az egyedkomponenseket komponensvezérelt megmaradással (BMP) vagy tárolóvezérelt megmaradással (CMP) lehet fejleszteni. A CMP nagyobb rugalmasságot engedélyez, mint a BMP, mivel a komponen irányításával az EJB végzi az összes adatbázisra jellemző hívást. A Rational munkaterület eszközei alapértelmezésben CMP használatával hozzák létre az egyedkomponenseket. A CMP egyedkomponens nem tartalmaz hozzáférési SQL kódot. Így a komponensek a kód újraírása nélkül telepíthetők más J2EE kiszolgálókra, melyek eltérő adatbázisokat használnak.

Az objektumok relációs adatbázisra leképezésének különféle megközelítései vannak, például lentről felfelé, fentről lefelé és középen találkozás. A lentről felfelé megközelítés meglévő objektumokból indul ki, ezután egyre növekvő részletességű rétegeket ad meg, végül utolsó lépésként megtervezi az adatbázist. A fentről lefelé megközelítés meglévő adatbázissémából kiindulva megtervezi a függő rétegeket, melyek megadják az objektumokat. A középen találkozás megközelítés meglévő adatbázist és objektumokat használ, majd kidolgozza köztes rétegeket, hogy az objektumok megfeleljenek a vonatkozó adatbázis tábláknak.

Az Aukciós alkalmazás az EJB példánykomponensek fejlesztéséhez fentről lefelé megközelítést használt. Kezdetben a Derby adatbázis tartalmazta a szükséges EJB komponenseknek szorosan megfelelő táblákat. Az Adatbáziskapcsolat varázslóval létrehozott kapcsolat után az EJB - RDB leképezés varázslóval lettek létrehozva (néhány kivétellel) a néhány táblához leképezendő EJB komponensek. Az alábbi ábra szemlélteti az Aukciós alkalmazásban használt EJB komponenseket, illetve a köztük levő viszonyokat.

Az ábra a különféle egyedkomponensek közötti viszonyt jeleníti meg.

Az Aukciós alkalmazás egyedkomponenseit nem éri el közvetlenül a távoli ügyfél. Minden kérést és választ a session komponensek kezelnek, a komponensek pedig a háttéradatokat érik el. Ez lehetővé teszi az állandó adattároló kiszolgáló oldali osztott elérését. A következő rész bővebben tárgyalja a session komponenseket.

Az egyedkomponensek leképezésének további információhoz olvassa a Fentről lefelé leképezés előállítása című témakört.

Session komponens előállítása SDO adatobjektumokkal, a Session komponens varázslóval

A session komponens az ügyfél és a háttér közti felület, ami a kommunikációt biztosítja a Service Data Objects (SDO) összetevők, és végül az adatbázis között. A session komponens hasznos, ha az ügyfél több objektum futtatását megkívánó kéréseket küld. Az ilyen kérések közvetlenül az objektumhoz küldése megnövelheti a hálózati forgalmat és a várakozási időt. A session komponens pufferként viselkedik a két végpont között, fogadva az ügyfél általános kéréseit, majd az adott kéréseket a szükséges objektumoknak küldve. Ez csökkenti a forgalmat és egyszerűsíti az ügyfél fejlesztését.

A komponens létrehozása után az általa kezelt EJB komponensek kijelöléséhez válassza az eszköz EJB komponensek leképezése menüpontját. A komponens előállítja a szükséges SDO összetevőket az egyedkomponensekből. Az Aukciós alkalmazásban két komponens van, a következő két funkcionális csoportba osztva:
  • A rendszerkomponens a háttér-, rendszerfüggő EJB komponensekhez kapcsolódik, például a Kategória és a Szerepkör komponenshez.
  • A felhasználói komponens felhasználóra jellemző adatokat foglal magába, mint például Ajánlat, Elem és Szerepkör.

Az EJB komponensek csoportosításával és két különböző komponens használatával megnövelheti az alkalmazás teljesítményét, mivel a felhasználók csak a szükséges EJB komponenseket érik el. A webhely funkcióit vezérlő egyedkomponenseket, például a Kategóriát a rendszerkomponens kezeli.

A komponens által hivatkozott EJB komponenseket egyesével választja ki a Munkamenet komponens varázsló, ahogy az az alábbi képen látszik. Szükség szerint egy EJB több komponensben is hivatkozható. Ez nem fordul elő az Aukciós alkalmazásban.

Az ábra a Session komponens létrehozása felhasználói felületet jeleníti meg.

További funkciók hozzáadásához vegyen fel metódusokat a komponenshez. Például a felhasználói komponens egyik metódusa a felhasználók listáját adja vissza, egy másik pedig az aktív felhasználókét. Ezeket a metódusokat például véve hozzáadhat egy olyan metódust a felhasználói komponenshez, ami az inaktívként jelölt felhasználók listáját adja vissza.

A session komponensekről további információkat a "Tervezési minták: Session komponens" fórumban, a http://java.sun.com./ címen talál.

A webhely elrendezés meghatározása a Webhely tervezővel

A Webhely tervező eszköz Navigáció nézete az oldal elrendezésének vizuális ábrázolása. Megjeleníti az egyedi oldalakat és hierarchikus szervezetüket, és hasznos a webhely oldalak elrendezésének és szervezésének karbantartásában. Amikor oldalakat rak le a szerkesztőben, az oldalsablon navigációs vezérlői automatikusan frissülnek. Például az alábbi ábrán látható Aukciós navigációs szerkezetben megváltoztathatja a navigációs lapok sorrendjét, ha az Eladás oldalt a Tallózás oldal elé helyezi. A Webhely tervező automatikusan megfelelően állítja elő a lapok sorrendjét minden oldalon. Ahhoz, hogy a módosítások a futó alkalmazásban is láthatóak legyenek, mentsen el minden oldalt, ami a navigációs sablont használja.

Az ábra a Webhely tervezőben megjelenő Aukciós JSP komponenseket mutatja be.

A most leírt Navigáció nézeten túl a Webhely tervező biztosítja a Részletek nézetet is, ami a további oldalelemeket rendezi kényelmes, szerkeszthető táblába, mint ahogy az a következő ábrán is látható. Ezzel a táblával könnyen frissíthetőek az oldaltulajdonságok, például a cím, a szerző és a navigációs címke.

Az ábra a webhely tervező részlet nézetét jeleníti meg.

A Webhely tervező webhelykezelés elrendezéséhez használatáról további információkat az online súgóban talál, a Webhelyszerkezet létrehozása témakörben.

Weboldal sablonok létrehozása az Oldaltervezővel

A munkaterület egy vizuális tervezővel érkezik, ami mind az oldalsablonok, mind a weboldalak tervezéséhez használható.

Az oldalsablonok olyan újra felhasználható tartalomkódok, melyek a webhely részeinek közös kinézetét vagy viselkedését biztosítják. Az egyező kinézet és viselkedés megosztásához a weboldalaknak csak hivatkozniuk kell a sablonokra. A sablonok használata előnyös a felhasználónak is, mivel könnyen navigálhat a webhelyen, és a fejlesztőnek is, akinek csak az adott oldalra vonatkozó kódot kell megírnia.

Az oldalsablonok használatával egyszerűbbé válik a webhely tartalmának karbantartása is. A sablonfájl módosítása automatikusan megjelenik az azt hivatkozó oldalakon is. Az Aukciós webalkalmazásban például a maintemplate.jtpl sablon biztosítja az Aukciós oldalak általános elrendezését. A weboldal elemeit hozzá lehet adni a sablonhoz az Oldaltervező palettájával, ami lehetővé teszi, hogy elemeket húzzon és rakjon a weboldalra. A szükséges HTML kód automatikusan elkészül. Az Aukciós sablont így könnyen lehet módosítani, például hogy szerepeljen a láblécben az aktuális dátum és idő.

Az Aukciós sablon kulcselemei a navigációs vezérlők. Az Aukciós webalkalmazás navigációs sávja a navigáció két formáját használja:
  • Navigációs lapok: a webhely különböző részeit jelenítik meg.
  • Navigációs nyomok, vagy "kenyérmorzsák": szövegesen jelenítik meg, hogy a felhasználó éppen hol jár a webhelyen, például Kezdőlap > Tallózás > Listázás.
Az ábra az Aukciós mintaoldalakon megjelenő navigációs lapokat mutatja be.

A navigáció kézi programozása helyett a sablont meghívó jelölő beszúrásával ugyanazt a navigációs sávot használhatja a webhely minden oldalán. A Sablonleképezés szerkesztő beszúrja a weboldalra a sablon hivatkozásait.

A dinamikus sablonok egy lépéssel továbbviszik ezt a technológiát, például a felhasználó szerepköre vagy képességei alapján módosítják a weboldal tartalmát, vagy a felhasználóra vonatkozó információkat szúrnak a weboldalra. Az Aukciós minta dinamikus sablonokkal biztosítja a navigációs sávon az adminisztrátori hivatkozásokat az adminisztrátorként bejelentkezett felhasználóknak, valamint azt, hogy a sikeres bejelentkezést követően a "Bejelentkezés" gomb felirata "Kijelentkezés" legyen.

A weboldal sablonok létrehozásának további információit az Oldalsablon létrehozása súgó témakörben találja.

JavaServer felület összetevők hozzáadása JSP fájlokhoz az Oldaltervezővel

A JavaServer felület (JSF) technológia segíti az alkalmazáskiszolgálón futó dinamikus webalkalmazások felhasználói felületének felépítését. A JSF nyílt szabvány nyelv, ami a JavaServer felület szabványos jelölőfüggvénytárát használja. A HTML kódba illesztett jelölők hozzák létre a dinamikus weboldalakat.

A JSF keretrendszer kezeli a kiszolgálókéréseken keresztül a felhasználói felületek állapotát, valamint egyszerű fejlesztési modellt biztosít az ügyfél által aktivált szerver oldali eseményekhez. Például egy JSF felületnek lehet adott viselkedése különböző eseményekre, például egy gombra kattintáskor. Az Oldaltervező a palettán vizuálisan megjelenő beépített funkcióit a weboldalra helyezheti. Ezekkel a fogd és vidd funkciókkal egyszerűvé válik a JSF, HTML és egyéb parancselemek használata. Ez nem csak egy mező alapvető funkcióinak (például egy szövegmező típusánál - integer, alfanumerikus) felügyeleténél hasznos, hanem lehetővé teszi az ellenőrzési szabályok használatát is. Az Oldaltervezőben az egyes oldalakhoz tartozó SDO adatokhoz lehet kötni a JSF vezérlőket.

Az Oldaltervezővel további funkciókat lehet a JSF oldalakhoz adni. Például hozzáadhat egy "Most vedd meg" gombot az elemrészletek oldalhoz, amivel a felhasználó az eladó által beállított áron veheti meg az adott cikket.

Az alábbi ábra az Aukciós részletoldal JSF vezérlőit mutatja. A newbid inputText mező csak egész számot fogad el, mivel ki van választva a Csak integer jelölőnégyzet, ahogy az ábra jobb alsó sarkában látható. Az inputText mező kiegészítő beállításai közé tartozik az Ellenőrzés, Viselkedés és Hozzáférhetőség, ahogy a h:inputText alatt levő lapokban meg van adva, az ábra bal alsó részén. Az Ellenőrzés lap az, ahol a specifikus ellenőrzési szabályok meg vannak adva Java segítségével. Például az új ajánlat inputText mező érvényes bemenete olyan nem nulla egész, ami nagyobb a kezdő ajánlatnál, és legalább eggyel nagyobb az aktuális ajánlatnál.

Az ábra az Aukciós részletoldal JSF vezérlőit mutatja.

A következő kód a newbid inputText mezőhöz készült, az Aukciós alkalmazás itemdetails oldalára.

<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>

A felület JSP fájlok fejlesztésének további információit a JavaServer felület súgótémaköriben találja.

A webszolgáltatás létrehozása

A webszolgáltatás a webalkalmazással párhuzamosan lett fejlesztve, mivel nem függ a webalkalmazástól - a webszolgáltatás egy másik mód a működés elérésére, és nem tartalmazza a webalkalmazás minden funkcionalitását. Az Aukciós alkalmazás ezen részének bővebb leírásáról a Webszolgáltatás részben olvashat.

Az Aukciós projektszervezete

Az Aukciós webalkalmazásnak számos projektje van. Minden egyes projektnek megvan a saját rendeltetése. Az alábbi lista leírja az egyes projekteket, és használatukat az Aukciós mintában:
  • Az AuctionV60EAR projekt a fő Enterprise Archive (EAR) fájl, ami az alkalmazáskiszolgálón van telepítve. Ez a projekt a futási környezethez szükséges.
  • Az AuctionV60EJB projekt tartalmazza az EJB komponenseket és a komponensosztályokat.
  • Az AuctionV60EJBClient projekt tárolja az előállított kódot, beleértve az SDO osztályokat is, és az ügyfélen lesz telepítve.
  • Az AuctionV60Web projekt tartalmaz minden JSF fájlt, a sablont és a JSF fájlokat futtató kódot.
  • Az AuctionV60WebService projekt tartalmazza a webszolgáltatás WSDL fájljait és Java forrását.
  • Az OIDGenerator projekt és az OIDGeneratorClient az adatbázisba beillesztések új kulcsainak létrehozásához szükséges.
Szülőtéma: Aukciós webalkalmazás

Visszajelzés