master's thesis
Ivan Magdić (Author), Tomaž Kosar (Mentor), Sandi Majninger (Co-mentor)

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

Web application;Multi-tenancy architecture;Metadata-driven architecture;Laravel;

Data

Language: English
Year of publishing:
Typology: 2.09 - Master's Thesis
Organization: UM FERI - Faculty of Electrical Engineering and Computer Science
Publisher: [I. Magdić]
UDC: 004.76-022.2183(043.2)
COBISS: 86387715 Link will open in a new window
Views: 388
Downloads: 42
Average score: 0 (0 votes)
Metadata: JSON JSON-RDF JSON-LD TURTLE N-TRIPLES XML RDFA MICRODATA DC-XML DC-RDF RDF

Other data

Secondary language: Slovenian
Secondary title: Razvoj spletnih aplikacij z večnajemniško in metapodatkovno arhitekturo
Secondary 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.
Secondary keywords: spletna aplikacija;večnajemniška arhitektura;metapodatkovna arhitektura;magistrske naloge;
Type (COBISS): Master's thesis/paper
Thesis comment: Univ. v Mariboru, Fak. za elektrotehniko, računalništvo in informatiko, Računalništvo in informacijske tehnologije
Pages: XIV, 69 f.
ID: 13228661
Recommended works:
, diplomska naloga visokošolskega strokovnega študijskega programa
, meje dopustnosti medijskega poročanja
, Linux delavnica na 2. mednarodnem IT Linux Festivalu Kiblix 2003, 13., 14. in 15. November 2003, Maribor, Slovenija