Elektronikus kereskedelmi rendszer tervezése és megvalósítása IBM környezetben


Pap Gábor <s8683pap@hszk.bme.hu>

BME, Automatizálási és Alk. Informatikai Tanszék

Sallai János <sallai@sch.bme.hu>

BME, Automatizálási és Alk. Informatikai Tanszék

Nagy Tamás <bigtom@avalon.aut.bme.hu>

BME, Automatizálási és Alk. Informatikai Tanszék


Bevezető

Napjaink web alapú alkalmazásai eltérő komplexitásúak. Megvalósításukra számos eszköz áll rendelkezésre. Az egyszerűbb alkalmazások elkészítéséhez nem szükséges hosszú tervezési folyamat, hiszen azok könnyen átláthatóak, így a régi, jól bevált rendszereket lehet alkalmazni. Ezzel ellentétben, ahogy a rendszer bonyolultsága nő – nem csak egyszerű lekérdezésekről van szó -, úgy válik szükségessé a tervezés és dokumentálás. Ezt illusztráljuk egy konkrét példán keresztül.


A webes alkalmazás-fejlesztés gyakorlata

Tekintsük át a webes alkalmazás-fejlesztés eszközeit kialakulásuk sorrendjében és vizsgáljuk meg több aspektusból, mi volt a cél a kifejlesztésük során.

Objektum-orientált megközelítés

Egy bonyolultsági fok fölött - ahol már nem átlátható a rendszer- szükségessé válik annak megtervezése, és dokumentálása. Erre alkalmas leíró eszköz az UML, mely lehetővé teszi a modellalkotást, az oldalstruktúra leírását és kódgenerálást a tervek alapján. Az objektum-orientáltság egyik következménye, hogy a rendszer komponens alapú, így könnyebben karbantartható és új igények esetén a régi elemeket újra felhasználhatóak.

Egy konkrét alkalmazás

A tervezés és fejlesztés során az UML alapú megközelítésnél is ismert és bevált projektlépéseket követtük.

Üzleti követelmények

Az általunk feltételezett megrendelő rendelkezik egy már létező – nem feltétlenül online - eladói hálózattal. A megrendelő céljai és lehetőségei:

A megrendelő így kényelmes, gyors és biztonságos online vásárlási lehetőséget biztosíthat a vásárlóknak, és meglévő értékesítési hálózatát használva kézben tarthatja az internetes tartalmat és az online piacot.

Célkitűzések

A projektünk célja volt, hogy egy kellőképpen általános, többnyelvű e-commerce megoldást fejlesszünk, amely termékek egy csoportjának online értékesítését segíti elő a hagyományos eladási csatornák bevonásának lehetőségét megtartva, oly módon, hogy a rendszer működtetője (a feltételezett megrendelő) egy kézben tartja az online koncepciót.

A fő rendszerjellemzők a következők:

Felhasználói csoportok

A különböző felhasználói csoportok tevékenységeinek definiálásához a használati eset (use case) megközelítést alkalmaztuk. Célunk az volt, hogy felismerjük, milyen külső szereplők (actor) állnak kapcsolatban rendszerünkkel, és hogy ezek a szereplők mire használják azt. Így meghatároztuk a rendszer határait, tisztáztuk, hogy milyen feladatokat kell a rendszernek ellátnia.

A használati esetek rendszerezése folyamán a következő diagrammhoz jutottunk:


1. Ábra A rendszer használati eset diagrammja


Tervezés

A részletes specifikációból az elemzés során készült először egy magas szintű osztálydiagram. Ez a modellnek az entitás osztálydiagramja, amely egyrészt megfelel az adatbázis terveinek, másrészt az alkalmazás középső rétegének “üzleti” osztályait jeleníti meg. Ezen osztályoknak tehát elsősorban tulajdonságaik vannak, és nem a metódusaik dominálnak. Ezt követően készült el a menedzser osztályok diagramja, és a megjelenítési réteg terve.

Szoftver vetület

A Lotus Notes/Domino rendszer biztosítja az adatbázis funkciókon kívül az adminisztrációs és tartalom menedzsment felületet, valamint a levelezési szolgáltatásokat. A Lotus Notes kliens egy könnyen kezelhető felhasználói felületet biztosít. Ha az adatbázisokat egy Domino szerveren helyezzük el, akkor a Notes kliens által kínált funkciók nagy része weben is elérhető lesz, tehát a Lotus Notes/Domino rendszert, mint publikációs illetve tartalom menedzsment interfészt alkalmazhatjuk.

A szerveren tárolt adatbázisokról a felhasználók munkaállomásain másolatok (Notes terminológiával élve: replikák) készíthetők. A felhasználók akár offline is dolgozhatnak a helyi adatbázisaikban, majd később a helyi replikák szinkronizálhatók a szerveren tárolt adatbázisokkal. A Lotus Notes/Domino rendszer kifinomultan képes szabályozni az adatokhoz és szolgáltatásokhoz való hozzáférést.

A középső réteg Java alkalmazása felelős a megjelenítéssel kapcsolatos üzleti logika megvalósításáért. Itt volt a legkézenfekvőbb az objektum orientált megközelítés és tervezés, melyben nagy segítséget jelent az StP-UML által biztosított környezet.

A megjelenítéshez JSP technológiát használtunk. A teljesítmény javítása céljából a sűrűn lekérdezett adatbázis rekordok paraméterezett módon cache-elve tárolódnak a memóriában, ilyenek a nyelvi rekordok, a gyakran hivatkozott termékek, stb. A termékek strukturált megjelenítéséhez tetszőleges mélységű katalógusrendszert alkalmaztunk, a termékek csoportosítására a kategóriákon kívül más lehetőség is biztosított.

Kommunikációs felület

A rendszerben szabványos kommunikációs protokollokat alkalmaztunk. A Java alkalmazás szerver HTTP-n keresztül éri el az XML formátumú adatokat szolgáltató Domino szervert. A Domino szerver és a Lotus Notes kliensek a Lotus Notes/Domino natív protokolljával, NRPC-vel (Notes Remote Procedure Call) kommunikálnak TCP szállítási réteg felett. A böngészők HTTP illetve HTTPS protokollokkal érik el a Java alkalmazás szervert.

Tesztelés

Mivel az általunk fejlesztett rendszer funkcionálisan is és architektúráját tekintve is két jól elkülöníthető részre tagolódik, a tesztelést az alábbi fázisokra osztottuk:

Telepítés

A rendszer négy jól elkülöníthető részből áll:

A Domino szervert és a Java alkalmazás szervert telepíthetjük ugyanazon hardverre, de teljesítmény-optimalizálási szempontból érdemes külön gépeken elhelyezni őket. Az intenzív XML/HTTP illetve CORBA/IIOP alapú kommunikáció zavartalanságának fenntartása céljából javasolt a két szervert egy dedikált lokális hálózaton üzemeltetni.

Az adminisztrátor és a viszonteladók Lotus Notes kliensei TCP/IP protokollal csatlakoznak a Domino szerverhez, és a szerveren található termék-, vásárló- és megrendelés-adatbázisokat rendszeres replikáció útján tartják a szerverrel szinkronizált, konzisztens állapotban.

A vásárlók web böngészők segítségével HTTP illetve HTTPS protokollal csatlakoznak a Java alkalmazás szerverhez. A vásárlók oldalán a web böngészőn kívül egyéb szoftver telepítésre nincs szükség.



Továbbfejlesztési lehetőségek

Munkánk témáját képező alkalmazás továbbfejlesztési lehetőségeit alapvetően két csoportba sorolhatjuk, aszerint, hogy a rendszernek a felhasználók felé nyújtott funkcionalitását vagy a rendszer architektúráját tekintjük-e a fejlesztés tárgyának.

Értékelés