| Title: | Web application development with multi-tenancy and metadata-driven architecture : master's thesis |
|---|
| Authors: | ID Magdić, Ivan (Author) ID Kosar, Tomaž (Mentor) More about this mentor...  ID Majninger, Sandi (Comentor) |
| Files: | MAG_Magdic_Ivan_2021.pdf (1,10 MB) MD5: 836A467BD38AE392A7A32EC867A6259A PID: 20.500.12556/dkum/bf6009a3-923f-4d16-8d43-1db8bec94bab
|
|---|
| Language: | English |
|---|
| Work type: | Master's thesis/paper |
|---|
| Typology: | 2.09 - Master's Thesis |
|---|
| Organization: | FERI - Faculty of Electrical Engineering and Computer Science
|
|---|
| Abstract: | Podjetja in stranke želijo stroške gostovanja in programske opreme čim bolj omejiti. Z aplikacijami, ki imajo arhitekturo za določenega najemnika in nato gostijo kot posamezno instanco, se stroški gostovanja linearno povečujejo na najemnika. Pri večnajemniški arhitekturi podjetja uporabljajo iste aplikacije, storitve in podatkovne baze, kar zmanjšuje stroške gostovanja, razvoja in vzdrževanja. Večnajemniška arhitektura mora zagotoviti zasebnost podatkov posameznih najemnikov in nadgradljivost aplikacije.
To magistrsko delo opisuje arhitekturo programske opreme, ki je nadgradljiva, nastavljiva in učinkovita za več najemnikov. Delo se osredotoča na večnajemniško arhitekturo, oblikovano v programskem jeziku PHP z uporabo okvira Laravel za določanje trdne arhitekture aplikacij. Vse to je narejeno za boljše razumevanje zmogljivosti, varnosti, izvajanja in vloge večnajemniške arhitekture aplikacij. Delo podrobneje pojasnjuje večnajemniško arhitekturo, metapodatkovno arhitekturo in tri pristope k podatkovnim bazam. Pojasnjuje, da je večnajemniška programska aplikacija vrsta gostujoče programske opreme, ki različnim najemnikom služi posamezno iz ene instance aplikacije. Najemniki so lahko ena stranka, organizacija ali celo podjetje. Magistrsko delo primerja večnajemniško arhitekturo z enoinstančno ter enonajemniško arhitekturo. Večnajemniška arhitektura se od večinstančne razlikuje po tem, da ima večinstančna arhitektura več (različnih) kopij programske opreme, ki služi strankam, medtem ko ima večnajemniška eno samo instanco programske opreme na strežniku, ki služi več najemnikom. Pojasnjena je tudi arhitektura večnajemniške podatkovne baze. Ločene podatkovne baze, skupne podatkovne baze, skupne sheme, ter skupne podatkovne baze, ločene sheme so trije različni pristopi, obravnavani v magistrskem delu. Poglavju o večnajemniški arhitekturi sledi razlaga metapodatkovne arhitekture, razloženo pa je tudi, kako lahko zmanjša povezavo med poslovno in programsko implementacijo, izboljša prilagodljivost oblikovanja in poveča ponovno uporabo sistema. Podrobno je opisano, kako je Force.com, ustvarjalec največje CRM storitve na trgu, implementiral metapodatkovno arhitekturo v svoje aplikacije. Poleg razlage arhitektur, na katerih temelji prototipna aplikacija, je predstavljena tudi razlaga sestavnih delov sistema aplikacije. Prototipna aplikacija je bila ustvarjena z odprtokodnimi in prosto dostopnimi spletnimi tehnologijami in knjižnicami. Za razvoj prototipov aplikacij je bil uporabljen programski jezik PHP z Laravel okvirjem, skupaj z NGINX kot spletnim strežnikom in MySQL kot podatkovno bazo. Za lokalni razvoj in testiranje sta bila uporabljena Docker in tehnologija vsebnikov. V naslednjem poglavju je preučen in povzet prilagojen pristop k podatkovni bazi, ki ga uporablja prototipna aplikacija. Temelji na pristopih ločene podatkovne baze ter ločene podatkovne baze, skupne sheme, z manjšo prilagoditvijo pri ločevanju podatkov najemnikov. Razložena je sistemska arhitektura ali sklad LEMP, čemur sledijo pomisleki glede varnosti. Pojasnjuje tudi, kako je bila dosežena identifikacija najemnika ter kako sta bila najemodajalec in najemnik strukturirana in uporabljena. Modul najemodajalca se nahaja na nivoju korenske domene, najemniki pa so locirani in identificirani na podlagi poddomen. Modul najemodajalca je namenjen upravljanju najemnikov s preprostimi dejanji, kot so ustvarjanje, posodabljanje in brisanje. Poleg teh ukazov, lahko uporabniki modula najemodajalca filtrirajo ali prekličejo dostop za določene najemnike, če ne spoštujejo pogodbe. Sledeče poglavje opisuje, kako smo ustvarili in strukturirali projekt Laravel ter katere ukaze smo uporabili za doseganje končnega rezultata. Za dostop do podatkov, povezanih z najemniki, obstajata dve komponenti. Prva je uporabniški vmesnik, v katerega se lahko uporabnik vpiše s svojimi poverilnicami (e-poštni naslov in geslo), druga pa je REST API. |
|---|
| Keywords: | Spletna aplikacija, Večnajemniška arhitektura, Metapodatkovna arhitektura, Laravel |
|---|
| Place of publishing: | Maribor |
|---|
| Place of performance: | Maribor |
|---|
| Publisher: | [I. Magdić] |
|---|
| Year of publishing: | 2021 |
|---|
| Number of pages: | XIV, 69 f. |
|---|
| PID: | 20.500.12556/DKUM-79677  |
|---|
| UDC: | 004.76-022.2183(043.2) |
|---|
| COBISS.SI-ID: | 86387715  |
|---|
| Publication date in DKUM: | 18.10.2021 |
|---|
| Views: | 1206 |
|---|
| Downloads: | 105 |
|---|
| Metadata: |  |
|---|
| Categories: | KTFMB - FERI
|
|---|
|
:
|
Copy citation |
|---|
| | | | Average score: | (0 votes) |
|---|
| Your score: | Voting is allowed only for logged in users. |
|---|
| Share: |  |
|---|
Hover the mouse pointer over a document title to show the abstract or click
on the title to get all document metadata. |