| | SLO | ENG | Cookies and privacy

Bigger font | Smaller font

Show document Help

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... New window
ID Majninger, Sandi (Comentor)
Files:.pdf 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 New window
UDC:004.76-022.2183(043.2)
COBISS.SI-ID:86387715 New window
Publication date in DKUM:18.10.2021
Views:1206
Downloads:105
Metadata:XML DC-XML DC-RDF
Categories:KTFMB - FERI
:
Copy citation
  
Average score:(0 votes)
Your score:Voting is allowed only for logged in users.
Share:Bookmark and Share



Hover the mouse pointer over a document title to show the abstract or click on the title to get all document metadata.

Licences

License:CC BY-NC-ND 4.0, Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International
Link:http://creativecommons.org/licenses/by-nc-nd/4.0/
Description:The most restrictive Creative Commons license. This only allows people to download and share the work for no commercial gain and for no other purposes.
Licensing start date:11.08.2021

Secondary language

Language:Slovenian
Title:Razvoj spletnih aplikacij z večnajemniško in metapodatkovno arhitekturo
Abstract:This master's thesis describes a scalable, configurable, and multi-tenant efficient software architecture. It also focuses on a multi-tenant architecture written in PHP and built with the Laravel framework. The goal is to test and evaluate a multi-tenant architecture's scalability, configuration and customization, maintenance, and technical constraints. We also researched metadata-driven architecture, which allows each tenant to create a unique data model with metadata by utilizing pre-defined or custom-made templates. We browsed through the scientific literature to learn about the characteristics of multi-tenant and metadata-driven architectures. The development was accomplished using open source and freely available web-based tools and libraries. The PHP programming language with the Laravel framework, as well as NGINX as the web server and MySQL, were used to create application prototypes. Several approaches for structuring tenant databases were tested and explained, and data models were independent and unique in each approach. Each tenant has a unique subdomain by which he is identified within the application. The tenant application logic component executes tenant-specific business logic and queries the database for necessary data. There are two components for accessing tenant-specific data. The first one is a user interface, in which the user can log in with their credentials (email and password), and the other one is an application interface based on REST principles.
Keywords:Web application, Multi-tenancy architecture, Metadata-driven architecture, Laravel


Comments

Leave comment

You must log in to leave a comment.

Comments (0)
0 - 0 / 0
 
There are no comments!

Back
Logos of partners University of Maribor University of Ljubljana University of Primorska University of Nova Gorica