The thesis analyzes and compares the microservice data exchange formats. The work
contains a study of what data exchange formats are available, what characteristics to consider
when choosing these formats. Each of the selected data exchange formats is implemented in a
microservice architecture environment where measurements are made on the performance of a
particular data exchange format by serialization of data, deserialization between service calls.
The end results are compared and conclusions are drawn on which of these data exchange
formats is better, which one would be better suited to specific situations.
The analytical section of the thesis examines the Enduro/X UBF data exchange format, which
was found to be incomplete during the research. Based on these shortcomings, design is being
developed.
The main body of the thesis is 82 pages, 41 pictures, 18 tables, 43 titles of information sources and 19 appendices.
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Analysis and comparison of microservice data exchange formats on Enduro/X platform
1. 1
Maģistra darbs
Darba autors: Einārs Leckis,151RDC008
Darba vadītājs: Dr.sc.ing., profesors Jānis Eiduks
MIKROSERVISU DATU
APMAIŅAS FORMĀTU ANALĪZE
UN SALĪDZINĀJUMS
22.01.2019
2. 2
Maģistra darba mērķis
Rīgas Tehniskā universitāte
Maģistra darba mērķis ir mikroservisu datu
apmaiņas formātu analīze un to salīdzināšana.
Uzdevumi:
1. Mikroservisu datu apmaiņas formātu analīze (JSON, XML, Enduro/X
UBF);
2. Mikroservisu datu apmaiņas formātu API salīdzinājums (JSON, XML,
Enduro/X UBF);
3. Priekšrocību (sarežģītība programmēt augstas veiktspējas C
programmēšanas valodas sistēmās, grūtības definēt, ātrdarbības,
saderības ar citām sistēmām) analīze un novērtējums;
4. Datu apmaiņas formātu JSON, XML, Enduro/X UBF veiktspējas
salīdzinājums mikroservisu arhitektūrā
3. 3
Tēmas aktualitāte un problēmas
raksturojums
Rīgas Tehniskā universitāte
Attīstoties biznesam pieaug prasības, kā rezultātā produktu ir
nepieciešams uzlabot, lai tas spētu nodrošināt labāku veiktspēju.
Izmantojot tradicionālo monolītisko arhitektūru tas bieži vien sagādā
neērtības.
6. 6
Datu apmaiņas formātu
veiktspējas salīdzinājums
Rīgas Tehniskā universitāte
Datu apmaiņas formāti:
1. JSON,
2. XML,
3. UBF.
Datu formāti JSON un XML tika izvēlēti, jo tie ir visbiežāk
industrijā lietotie formāti interfeisos, savukārt UBF tika izvēlēts kā
papildus datu apmaiņas formāts, jo to piedāvā Enduro/X, kas
tika izvēlēta par pamatu mikroservisu arhitektūras realizēšanai,
lai noskaidrotu kuram no datu formātiem ir augstāka veiktspēja.
7. 7
Izmantotās komponentes
Rīgas Tehniskā universitāte
C programmēšanas valodas bibliotēkas:
1. XML – libxml2
2. JSON – jansson
3. UBF – libubf
Operētājsistēma: Linux Mint 19 (Linux eleckis-X540SA 4.15.0-43-generic #46-Ubuntu
SMP Thu Dec 6 14:45:28 UTC 2018 x86_64 GNU/Linux)
Portatīvais dators: ASUS X540SA-XX018D
Starpprogrammatūra: Enduro/X
8. 8
Testa scenārijs
Rīgas Tehniskā universitāte
1. Klients aizpilda ziņojuma struktūru ar datiem;
2. Izsauc funkciju, kas sagatavo (serializē) ziņojumu atbilstoši izvēlētajam datu
formātam;
3. Izsauc servera servisu pārsūtot datus;
4. Serveris saņemot datus veic to deserializāciju izmantojot funkciju atbilstoši
izvēlētajam datu formātam;
5. Ja netiek konstatētas kļūdas ziņojuma deserializēšanā, tad tas ziņojumam
pievieno atbildes informāciju un serializē datus transportam;
6. Serveris atbild klientam pārsūtot datus;
7. Klients saņem informāciju un deserializē;
8. Klients pārbauda atbildes datus.
11. 11
API salīdzinājums
Rīgas Tehniskā universitāte
Pazīme
Formāts
JSON XML UBF
Viegli lietojamsun saprotams
Atbilst Atbilst Atbilst
Kļūdu apstrāde
Atbilst Atbilst Atbilst
Kļūdu paziņojumi
Neatbilst Neatbilst Atbilst
Labi dokumentēts
Daļēji atbilst Daļēji atbilst Atbilst
Funkciju atbilstība
Atbilst Atbilst Atbilst
Strukturēts
Atbilst Atbilst Neatbilst
13. 13
Enduro/X izmaiņu prasības
Rīgas Tehniskā universitāte
1. Jāpārveido esošais bufera formāts uz strukturētu formātu;
2. Jānodrošina tādas pašas funkcijas kā esošajam buferim darbam ar
strukturēto buferi;
3. Strukturētā bufera funkcijas jānodrošina ar vienību testiem;
4. Esošā Enduro/X funkcionalitātenedrīkst tikt sabojāta.
14. 14
Enduro/X esošā datu struktūra
Rīgas Tehniskā universitāte
Maksājuma datu reprezentācija izmantojot
esošo Enduro/X datu formātu
18. 18
Enduro/X nepieciešamās
izmaiņas
Rīgas Tehniskā universitāte
1. Rekursīvs API bufera lauku piekļūšanai (BE / CBE funkcijas);
2. Vienību testi jaunpievienotajām funkcijām darbam ar strukturēto buferi;
3. Izmaiņas RESTINCL – funkcijās tpjsontoubf(), tpubftojson() ieviest atbalstu
konvertēt datus uz JSON un no JSON datu formāta;
4. Funkcija pirmā līmeņa UBF konvertācijai uz padziļinātu UBF līmeni;
5. Funkcijas strukturētu datu bufera serializācijai un deserializācijai starpprocesu
komunikācijai;
6. Izmaiņas TPBRIDGE datu serializācijā un deserializācijā datu pārsūtīšanai
starpprogrammatūras līmenī;
7. Izmaiņas TPBRIDBGE/libnetproto strukturēta bufera serializācija uz TLV
formātu un otrādi.
19. 19
Secinājumi
Rīgas Tehniskā universitāte
1. Izpētot datu apmaiņas formātu īpašības tika secināts, ka UBF nav
strukturēts datu formāts.
2. Mikroservisu arhitektūra dod iespēju izmantot dažādas tehnoloģijas
izvietotajos servisos, bet brīva un dažādu tehnoloģiju lietošana var
novest pie nelabvēlīgām sekām.
3. XML datu apmaiņas formāts nodrošina detalizētāku iespēju klāstu
kontrolēt datu integritāti.
4. Binārais datu formāts – UBF, šajos veiktspējas testos nodrošina
vislabāko veiktspēju pie visiem iterācijas soļiem.
5. Informācija par JSON vēsta, ka tas ir vieglāks un ātrāks datu
apmaiņas formāts nekā XML, taču veicot veiktspējas mērījumus
pierādījās tas, ka XML ir ātrāks.
6. Binārais datu formāts var būt uzskatāms un ērts darbam ar datiem.