GraphQL drošība un veiktspēja analīze un ieviešana mikropakalpojumos
Autor
Hashimov, Yusif
Co-author
Latvijas Universitāte. Datorikas fakultāte
Advisor
Zuters, Jānis
Datum
2023Metadata
Zur LanganzeigeZusammenfassung
Tā kā digitālās ainavas attīstās un kļūst arvien sarežģītākas, rodas nepieciešamība pēc efektīvākiem veidiem, kā datu pārvaldība un manipulēšana ir kļuvusi par programmatūras inženierijas centrālo punktu. The GraphQL un mikropakalpojumu parādīšanās ir mainījusi veidu, kā mēs izstrādājam API un pārvaldīt sadalītās sistēmas. Šajā darbā ir sniegts visaptverošs GraphQL novērtējums mikropakalpojumu kontekstā, koncentrējoties uz to savietojamības un veiktspējas apsvērumiem. Promocijas darbs sākas ar detalizētu GraphQL un mikropakalpojumu ievadu struktūras un to sastāvdaļas, izraisot diskusiju par to, kā šīs tehnoloģijas var būt harmoniski integrēti. Tajā sīkāk izpētītas galvenās problēmas, kas saistītas ar šādu integrāciju un piedāvā iespējamos risinājumus, galvenokārt koncentrējoties uz pārmērīgas un nepietiekamas datu ielādes problēmu. Pētījuma pamatā ir veiktspējas analīze un drošība GraphQL sekas, ieviešot novatorisku ieguldījumu: teorētisko GraphQL vaicājumu Optimizācijas rīks. Rīks, kura pamatā ir plaša izpratne par vaicājumu sarežģītību, veiktspējas metrikas un drošības prakses mērķis ir atvieglot kopējo veiktspēju un drošību jautājumiem. Tas piedāvā interaktīvu saskarni izstrādātājiem, lai ģenerētu efektīvus un drošus vaicājumus pielāgotas viņu īpašajām datu vajadzībām. Rīka arhitektūra ietver vaicājumu sarežģītību analizators, vaicājumu atzarošanas sistēma un stabili drošības līdzekļi, lai nodrošinātu optimālu veiktspēju un datu aizsardzību. Šo funkciju integrācija ir nozīmīgs solis ceļā uz to GraphQL izmantošanas uzlabošana mikropakalpojumu kontekstā. Pēdējā sadaļā ir sniegts piedāvātā risinājuma eksperimentāls novērtējums un a salīdzinājums ar esošajām pieejām, izceļot tās iespējamos ieguvumus un jomas nākotnē pētījumiem. Šis darbs veicina notiekošo diskursu par GraphQL un mikropakalpojumiem, izgaismo viņu izaicinājumus un iespējas, kā arī piedāvā jaunu pieeju GraphQL vaicājuma optimizācija. Ir paredzēts, ka pētījuma rezultāti un piedāvātais instruments nodrošina vērtīgas atziņas gan izstrādātājiem, gan pētniekiem viņu centienos veidot un optimizēt Uz GraphQL balstītas mikropakalpojumu lietojumprogrammas As digital landscapes evolve and grow in complexity, the need for more efficient ways of managing and manipulating data has become a focal point of software engineering. The emergence of GraphQL and microservices has revolutionized the way we design APIs and manage distributed systems. This thesis presents a comprehensive evaluation of GraphQL within the context of microservices, focusing on their interoperability and performance considerations. The thesis initiates with a detailed introduction of both GraphQL and microservices, their structures, and their components, leading to a discussion on how these technologies can be harmoniously integrated. It further explores the main challenges that come with such integration and presents potential solutions, chiefly focusing on the problem of over-fetching and underfetching of data. The heart of the research pivots around the performance analysis and security implications of GraphQL, introducing an innovative contribution: a theoretical GraphQL Query Optimization tool. The tool, grounded on an extensive understanding of query complexity, performance metrics, and security practices, aims to alleviate common performance and security issues. It offers an interactive interface for developers to generate efficient and secure queries tailored to their specific data needs. The tool's architecture incorporates a query complexity analyzer, a query pruning system, and robust security features to ensure optimal performance and the protection of data. The integration of these features embodies a significant stride towards improving GraphQL's utilization in the context of microservices. The final section presents an experimental evaluation of the proposed solution and a comparison with existing approaches, highlighting its potential benefits and areas for future research. This thesis contributes to the ongoing discourse surrounding GraphQL and microservices, shedding light on their challenges and opportunities, and presents a novel approach to GraphQL query optimization. It is envisioned that the research outcomes and proposed tool provide valuable insights for developers and researchers alike in their quest to build and optimize GraphQL-based microservices applications