SlideShare a Scribd company logo
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
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
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.
4
Lietojums monolītiskā
arhitektūrā
Rīgas Tehniskā universitāte
5
Lietojums mikroservisu
arhitektūrā
Rīgas Tehniskā universitāte
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
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
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.
9
Veiktspējas salīdzinājums
palielinot skaitlisko lauku skaitu
Rīgas Tehniskā universitāte
10
Veiktspējas salīdzinājums
palielinot virknes lauku skaitu
Rīgas Tehniskā universitāte
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
12
Enduro/X arhitektūra
Rīgas Tehniskā universitāte
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
Enduro/X esošā datu struktūra
Rīgas Tehniskā universitāte
Maksājuma datu reprezentācija izmantojot
esošo Enduro/X datu formātu
15Rīgas Tehniskā universitāte
Vairāku komisiju datu reprezentācija
izmantojot esošo Enduro/X datu formātu
16
Enduro/X datu formāta izmaiņas
Rīgas Tehniskā universitāte
17
Enduro/X datu formāta
sagaidāmais rezultāts
Rīgas Tehniskā universitāte
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
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.
20
PALDIES PAR
UZMANĪBU!

More Related Content

Featured

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
Expeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
Pixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
marketingartwork
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
Skeleton Technologies
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Lily Ray
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
Rajiv Jayarajah, MAppComm, ACC
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
Christy Abraham Joy
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
Vit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
MindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools
 

Featured (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
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.
  • 9. 9 Veiktspējas salīdzinājums palielinot skaitlisko lauku skaitu Rīgas Tehniskā universitāte
  • 10. 10 Veiktspējas salīdzinājums palielinot virknes lauku skaitu Rīgas Tehniskā universitāte
  • 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
  • 15. 15Rīgas Tehniskā universitāte Vairāku komisiju datu reprezentācija izmantojot esošo Enduro/X datu formātu
  • 16. 16 Enduro/X datu formāta izmaiņas Rīgas Tehniskā universitāte
  • 17. 17 Enduro/X datu formāta sagaidāmais rezultāts Rīgas Tehniskā universitāte
  • 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.