Araştırma Makalesi
BibTex RIS Kaynak Göster

GraphQL için Sorgu Oluşturma Sürecinde Kullanılan Yöntemlerin Analizi ve İyileştirilmesi

Yıl 2021, Cilt: 33 Sayı: 1, 73 - 82, 30.01.2021
https://doi.org/10.7240/jeps.737786

Öz

Günümüzde teknolojik gelişmeler İnternete bağlanan toplam cihaz türü ve sayısında büyük artışa yol açmıştır. Sunucu makineler daha fazla istek almaya başlamış hem ağ trafiği hem de sunucu yanıt süresi olumsuz etkilenmiştir. Bu sorunları çözmek için geliştirilen GraphQL teknolojisi tek bir istekle birden fazla tablo, koleksiyon veya veri tabanına erişim sağlayarak toplu veri sorgulama ve değiştirmeye imkân vermektedir. Bu sayede cihaz başına düşen istek sayısı ve cihazların belleklerinde tutulacak veri boyutu azalır. Ancak GraphQL yeni bir teknoloji olduğundan henüz kod geliştirme sürecini yöneten ve kolaylaştıran araçlar tam olarak gelişmemiştir. Sunucu kısmında sorguları oluşturmak ve çalıştırmak için önemli ölçüde kodun elle yazılması gerekmektedir. Bu da yazılım geliştiricilere önemli bir iş yükü oluşturmaktadır. Bu çalışmada GraphQL sorgu geliştirme süreci, bu süreci kolaylaştırmak veya otomatikleştirmek için kullanılan araçlar, bu araçların kullandığı yöntemler ve sorgu geliştirme maliyetleri analiz edilmiştir. Bu maliyeti azaltmak için kodları otomatik oluşturan bir yöntem önerilmiş ve bir araç geliştirilmiştir. Geliştirilen yöntemin etkinliği diğer yöntemlerle karşılaştırılmış, sayısal olarak incelenmiş ve yazılımcıları birçok kodu tekrar yazmaktan kurtararak zamandan tasarruf sağladığı görülmüştür.

Destekleyen Kurum

Fatih Sultan Mehmet Vakıf Üniversitesi

Proje Numarası

-

Teşekkür

-

Kaynakça

  • Apollo. (2020). Executing a query. Erişim Şubat 29, 2020, https://www.apollographql.com/docs/react/data/queries/
  • Biying, L. (2010). Jetty improves the performance of network management system based on TR069 protocol. 2010 IEEE International Conference on Intelligent Computing and Intelligent Systems, 3, 799–801. https://doi.org/10.1109/ICICISYS.2010.5658303
  • Capers, J., & Bonsignour, O. (2011). The Economics of Software Quality. Addison-Wesley.
  • Chen, T. H., Shang, W., Jiang, Z. M., Hassan, A. E., Nasser, M., & Flora, P. (2014). Detecting performance anti-patterns for applications developed using object-relational mapping. Proceedings - International Conference on Software Engineering, 1001–1012. https://doi.org/10.1145/2568225.2568259
  • Costal, D., Farré, C., Gómez, C., Jovanovic, P., Romero, O., & Varga, J. (2017). Semi-automatic Generation of Data-Intensive APIs. Erişim http://opendata-ajuntament.barcelona.cat/data/en/dataset
  • Drupal. (2020). Usage statistics for GraphQL | Drupal.org. Erişim Mart 3, 2020, https://www.drupal.org/project/usage/graphql
  • Electronjs. (2020). GraphiQL | Apps | Electron. Erişim Mart 4, 2020, https://www.electronjs.org/apps/graphiql
  • Facebook. (2015). GraphQL. Erişim Şubat 28, 2020, http://spec.graphql.org/July2015/
  • Ghebremicael, E. S. (2017). Transformation of REST API to GraphQL for OpenTOSCA. https://doi.org/10.18419/opus-9352
  • GraphQL. (2020). Who’s Using | GraphQL. Erişim Mart 3, 2020, https://graphql.org/users/
  • Guo, Y., Deng, F., & Yang, X. (2018). Design and Implementation of Real-Time Management System Architecture based on GraphQL Design and Implementation of Real-Time Management System Architecture based on GraphQL. In IOP Conf. Ser.: Mater. Sci. Eng. (p. 466). https://doi.org/10.1088/1757-899X/466/1/012015
  • Hartig, O., & Pérez, J. (2018). Semantics and Complexity of GraphQL Preprint Version, 27th World Wide Web Conference on World Wide Web.
  • Hasura.io. (2020). Realtime GraphQL on PostgreSQL. Erişim Mayıs 10, 2020, https://hasura.io/
  • He, H. (2008). Graphs-at-a-time : Query Language and Access Methods for Graph Databases, 405–417.
  • Howtographql. (2019). Alternative approaches to schema development. Erişim Mart 4, 2020, https://www.howtographql.com/graphql-java/11-alternative-approaches/
  • Howtographql. (2020). GraphQL is the better REST. Erişim Mart 3, 2020, https://www.howtographql.com/basics/1-graphql-is-the-better-rest/
  • Javapoet. (2020). Javapoet: A Java API for generating .java source files. Erişim Mart 4, 2020, https://github.com/square/javapoet
  • JFoenix. (2020). JavaFX Material Design Library. Erişim Mayıs 11, 2020, http://www.jfoenix.com/
  • Kozma, D., Varga, P., & Larrinaga, F. (2019). Data-driven Workflow Management by utilising BPMN and CPN in IIoT Systems with the Arrowhead Framework. IEEE International Conference on Emerging Technologies and Factory Automation, ETFA, 2019-Septe, 385–392. https://doi.org/10.1109/ETFA.2019.8869501
  • Li, L., Chou, W., Zhou, W., & Luo, M. (2016). Design Patterns and Extensibility of REST API for Networking Applications. IEEE Transactions on Network and Service Management, 13(1), 154–167. https://doi.org/10.1109/TNSM.2016.2516946
  • McConnell, S. (2006). Software estimation : Demystifying the Black Art. Microsoft Press.
  • MongoDB. (2020). The database for modern applications. Erişim Mart 4, 2020, https://www.mongodb.com/
  • Porcello, E., & Banks, A. (2018). Learning GraphQL: Declarative Data Fetching for Modern Web Apps. O’Reilly Media.
  • PostGraphile. (2020). CRUD Mutations. Erişim Mart 3, 2020, https://www.graphile.org/postgraphile/crud-mutations/
  • Prisma. (2020). GraphQL Usage - Prisma. Erişim Mart 3, 2020, https://www.prisma.io/with-graphql
  • Rasool, S., Khan, R., & Mian, A. N. (2019). GraphQL and DC-WSN-Based Cloud of Things. IT Professional, 21(1), 59–66. https://doi.org/10.1109/MITP.2018.2876982
  • Relay. (2020). QueryRenderer. Erişim Mart 2, 2020, https://relay.dev/docs/en/query-renderer
  • Rodriguez-Echeverria, R., Cánovas Izquierdo, J. L., & Cabot, J. (2017). Towards a UML and IFML Mapping to GraphQL. In ICWE 2017 (pp. 149–155). Springer Verlag. https://doi.org/10.1007/978-3-319-74433-9_13
  • StG. (2020). Swagger-to-GraphQL. Erişim Şubat 29, 2020, https://www.npmjs.com/package/swagger-to-graphql
  • Taskula, T. (2019). Advanced Data Fetching with GraphQL: Case Bakery Service.
  • Torres, A., Galante, R., Pimenta, M. S., Jonatan, A., & Martins, B. (2017). Twenty years of object-relational mapping : A survey on patterns , solutions , and their implications on application design, 82, 1–18. https://doi.org/10.1016/j.infsof.2016.09.009
  • Vargas, D. M., Mayor, U., Sim, D. S., Blanco, A. F., Pablo, J., Alcocer, S., Bergel, A. (2018). Deviation Testing: A Test Case Generation Technique for GraphQL APIs, 1–9.
  • Vogel, M., Weber, S., & Zirpins, C. (2018). Experiences on Migrating RESTful Web Services to GraphQL, 2, 283–295.
  • Wernet, C. (2017). Unifying access to data from heterogeneous sources through a RESTful API using an e icient and dynamic SQL-query builder. Hochschule Karlsruher Technik und Wirtschaft.
  • Wittern, E., Cha, A., & Laredo, J. A. (2017). Generating GraphQL-Wrappers for REST(-like) APIs. In ICWE 2018. Springer, Cham.
Toplam 35 adet kaynakça vardır.

Ayrıntılar

Birincil Dil Türkçe
Konular Mühendislik
Bölüm Araştırma Makaleleri
Yazarlar

İbrahim Enes Aydoğdu 0000-0003-3523-0941

Ali Nizam 0000-0002-5613-0686

Proje Numarası -
Yayımlanma Tarihi 30 Ocak 2021
Yayımlandığı Sayı Yıl 2021 Cilt: 33 Sayı: 1

Kaynak Göster

APA Aydoğdu, İ. E., & Nizam, A. (2021). GraphQL için Sorgu Oluşturma Sürecinde Kullanılan Yöntemlerin Analizi ve İyileştirilmesi. International Journal of Advances in Engineering and Pure Sciences, 33(1), 73-82. https://doi.org/10.7240/jeps.737786
AMA Aydoğdu İE, Nizam A. GraphQL için Sorgu Oluşturma Sürecinde Kullanılan Yöntemlerin Analizi ve İyileştirilmesi. JEPS. Ocak 2021;33(1):73-82. doi:10.7240/jeps.737786
Chicago Aydoğdu, İbrahim Enes, ve Ali Nizam. “GraphQL için Sorgu Oluşturma Sürecinde Kullanılan Yöntemlerin Analizi Ve İyileştirilmesi”. International Journal of Advances in Engineering and Pure Sciences 33, sy. 1 (Ocak 2021): 73-82. https://doi.org/10.7240/jeps.737786.
EndNote Aydoğdu İE, Nizam A (01 Ocak 2021) GraphQL için Sorgu Oluşturma Sürecinde Kullanılan Yöntemlerin Analizi ve İyileştirilmesi. International Journal of Advances in Engineering and Pure Sciences 33 1 73–82.
IEEE İ. E. Aydoğdu ve A. Nizam, “GraphQL için Sorgu Oluşturma Sürecinde Kullanılan Yöntemlerin Analizi ve İyileştirilmesi”, JEPS, c. 33, sy. 1, ss. 73–82, 2021, doi: 10.7240/jeps.737786.
ISNAD Aydoğdu, İbrahim Enes - Nizam, Ali. “GraphQL için Sorgu Oluşturma Sürecinde Kullanılan Yöntemlerin Analizi Ve İyileştirilmesi”. International Journal of Advances in Engineering and Pure Sciences 33/1 (Ocak 2021), 73-82. https://doi.org/10.7240/jeps.737786.
JAMA Aydoğdu İE, Nizam A. GraphQL için Sorgu Oluşturma Sürecinde Kullanılan Yöntemlerin Analizi ve İyileştirilmesi. JEPS. 2021;33:73–82.
MLA Aydoğdu, İbrahim Enes ve Ali Nizam. “GraphQL için Sorgu Oluşturma Sürecinde Kullanılan Yöntemlerin Analizi Ve İyileştirilmesi”. International Journal of Advances in Engineering and Pure Sciences, c. 33, sy. 1, 2021, ss. 73-82, doi:10.7240/jeps.737786.
Vancouver Aydoğdu İE, Nizam A. GraphQL için Sorgu Oluşturma Sürecinde Kullanılan Yöntemlerin Analizi ve İyileştirilmesi. JEPS. 2021;33(1):73-82.