2.9 ICE-model
ICE-modellen beskriver de forskellige dele af systemet og hvem der kommunikerer sammen. For at give et overblik over systemet vises her først det samlede system fra WAP-telefon gennem PtG og et forsimplet MAOV-system, til de data der ligger i databasen. Desuden beskrives hvilke tier's de forskellige dele ligger på. MAOV ligger selv kun på tier 2, dog med nogle egne tabeller på tier 3.
Brugeren står med WAP-telefonen og kalder op til Portal-to-Go. Forespørgelsen sendes videre til MAOV-systemet, som henter de ønskede data fra databasen. Data'ene sendes tilbage til PtG som XML, der sendes igennem XSL-Transformeren til WAP-telefonen. Det er værd at bemærke at alle kald til MAOV-systemet går til MAOVAdapteren. Det er altså dens opgave at sende opgaven videre så den kan blive løst.
Internt i MAOV er systemet delt op efter funktioner. På den måde er det nemt at tilføje nye funktioner, da de andre kan forblive uændrede. De to objekter: MAOVAdapter og DBAccess er de samme på begge tegninger. Det er det store MAOV-objekt, der er delt ud på nedenstående figur.
Eftersom systemet kører som en Adapter, er de faktiske kendskabs-relationer ikke som man skulle forvente. Det er MAOVAdapteren der skal kende alle kontrol-objekterne, som derimod ikke skal kende hinanden i koden. Der er derfor indtegnet de logiske kendskabs-relationer (stiplede linjer), så man kan se hvilke objekter der fører brugeren videre til andre objekter.
Når MAOVAdapteren modtager en forespørgsel, sendes den videre til det relevante kontrol-objekt, der så svarer på forespørgslen. Der er ikke kun een forespørgsel til hvert kontrol-objekt, så forespørgslen er delt op i en action og en sub-action (action til MAOVAdapteren, sub-action til kontrol-objektet). Se de forskellige action-værdier og forklaring dertil, i afsnit XXX side XXX.
Når kontrol-objektet skal bruge data, opretter det et entitets-objekt der selv henter oplysningerne i databasen. Entitets-objektet får DBAccess med fra kontrol-objektet som henter det fra MAOVAdapteren. Alle entitets-objekterne har derfor reelt fat i DBAccess, men kun når de henter data fra databasen. Derfor er der ingen kendskabs-relationer mellem entitets-objekterne og DBAccess-objektet.
Herunder beskrives alle objekterne fra begge illustrationer kort.
- WAP Telefon: Den håndholdte enhed der viser outputtet fra PtG.
- Portal-to-Go: Systemet der kan formattere XML til forskellige enheder.
- XSL Transformer: Heri står hvordan PtG skal formattere XML'en til den respektive enhed.
- MAOVAdapter: Vores interface til PtG. Alle kald fra brugere/PtG går til dette objekt.
- MainMenu: Genererer hovedmenuen i XML.
- FindCustomer: Genererer de sider der guider brugeren frem til den ønskede kunde (se mock-ups side XXX).
- FoundCustomers: Indeholder oplysninger om hvilke kunder brugeren senest har brugt i systemet. Indeholder desuden oplysninger om de kunder der er fundet ved fritekst søgning.
- Licenses: Genererer de sider der viser hvilke licenser kunden har.
- LicensesData: Indeholder oplysninger om hvilke licenser kunden har.
- TAR: Genererer de sider der viser hvordan kundens aktuelle sager forløber (TAR).
- TARData: Oplysninger om en kundes aktuelle sager (en TAR).
- Contacts: Genererer sider med kontaktoplysninger for kundens/partnerens kontakt-personer.
- ContactsData: Oplysninger om hvordan man får fat i kontaktpersonerne hos kunden.
- Activities: Genererer de sider der viser hvilke seminarer og mailing-lister kunden er tilmeldt og har været på. Desuden vil den kunne vise hvilke fremtidige seminarer der tilbydes, og give mulighed for tilmelding.
- ActivitiesData: Oplysninger om aktiviteter der har relation til kunden, såsom seminarer og mailing-lister.
- FindEmployee: Genererer de sider der guider brugeren frem til den ønskede kollega.
- FoundEmployees: Indeholder oplysninger om hvilke medarbejdere brugeren senest har brugt i systemet. Indeholder desuden oplysninger om de medarbejdere der er fundet ved fritekst søgning.
- EmployeeData: Indeholder oplysninger om een kollega.
- SendActionPoint: Opretter et actionpoint, og fylder op med de oplysninger der er givet i situationen. Resten kan nemt vælges. Actionpointet skal sendes som e-mail.
- PriceList Genererer sider med priserne for Oracle's forskellige produkter.
- PriceListData: Oplysninger om hvad de forskellige licenser for produkter koster.
- Send e-mail: Sender en e-mail.
- DBAccess: Opretter en forbindelse til databasen, så man kan hente informationer derfra. Bruges af entitetsobjekterne, selvom det ikke direkte fremgår af illustrationen.
- ekst. DB: Repræsenterer samtlige af Oracle's eksisterende databaser, som MAOV-systemet skal tilgå.
- egen DB: Repræsenterer de tabeller vi selv opretter til at gemme oplysninger i, der kun skal bruges af MAOV-systemet. Eksempelvis hvilke kunder der skal være direkte adgang til for den enkelte bruger.
- 1. tier: Den håndholdte enhed. Klienten.
- 2. tier: Server hos Oracle DK hvor PtG kører, og dermed også MAOV-systemet.
- 3. tier: Databaserne ligger på servere i USA. Den vi selv opretter tabeller på ligger dog lokalt her hos Oracle DK.