26 research outputs found

    ANALISIS PERBANDINGAN ARSITEKTUR REST DAN GRAPHQL UNTUK APLIKASI PENGENALAN EMOSI PADA PEMBELAJARAN DARING SINKRONIS

    Get PDF
    Emosi memiliki peran yang penting dalam proses pembelajaran, karena dapat mencerminkan perasaan dan keterlibatan pelajar selama mengikuti pembelajaran. Saat ini telah tersedia berbagai macam Application Programming Interface (API) pengenalan emosi, sehingga membuka peluang untuk mengimplementasikan aplikasi pengenalan emosi dan aplikasi untuk visualisasinya secara real-time. Data real-time umumnya diperoleh melalui suatu API, seperti Representational State Transfer (REST) dan Graph Query Language (GraphQL). Beberapa penelitian sebelumnya belum ditemukan penggunaan GraphQL serta belum ditemukan kajian mendalam terkait arsitektur yang paling optimal untuk digunakan. Penelitian ini ditujukan untuk mengembangkan aplikasi pengenalan emosi dengan arsitektur yang paling optimal diantara REST dan GraphQL, lalu menganalisis performa aplikasi back-end sebagai data primer dan front-end sebagai data sekunder. Performa aplikasi back-end diukur menggunakan metrik QoS meliputi response time, throughput, memory utilization, dan CPU load. Analisis data yang digunakan adalah efisiensi. Uji-t dan visualisasi boxplot digunakan untuk membuktikan dan memvisualisasikan adanya perbedaan signifikan antara kedua arsitektur. Hasil pengujian pada endpoint recognition grup response time REST lebih efisien sebesar 4,42%, throughput REST lebih efisien sebesar 4,82%, memory utilization REST lebih efisien sebesar 10,83%, serta CPU load REST lebih efisien sebesar 20,51%. Adapun pada endpoint recognition individual, response time REST lebih efisien sebesar 5,92%, throughput REST lebih efisien sebesar 9,31%, memory utilization REST lebih efisien sebesar 9,89%, serta CPU load GraphQL lebih efisien sebesar 22,01%. Secara umum REST adalah pilihan arsitektur yang tepat untuk aplikasi dengan kebutuhan performa serta stabilitas tinggi, sedangkan GraphQL cocok diimplementasikan pada aplikasi dengan kebutuhan field data yang kerap berubah. ----- Emotions have an important role in the learning process, because they can reflect the feelings and involvement of learners during learning. Currently, there are various kinds of emotion recognition Application Programming Interfaces (APIs) available, thus opening up opportunities to implement emotion recognition applications and applications for their visualization in real-time. Real-time data is generally obtained through an API, such as Representational State Transfer (REST) and Graph Query Language (GraphQL). Several previous studies have not found the use of GraphQL and no in-depth studies have been found regarding the most optimal architecture to use. This research is aimed at developing emotion recognition applications with the most optimal architecture between REST and GraphQL, and then analyzing the performance of back-end applications as primary data and front-end as secondary data. Back-end application performance is measured using QoS metrics including response time, throughput, memory utilization, and CPU load. The data analysis used is efficiency. T-test and boxplot visualization are used to prove and visualize the existence of significant differences between the two architectures. The test results on group recognition endpoint showed that REST response time is more efficient by 4,42%, REST throughput is more efficient by 4,82%, memory utilization REST is more efficient by 10,83%, and CPU load REST is more efficient by 20,51%. As for individual recognition endpoint, REST response time was more efficient by 5,92%, REST throughput was more efficient by 9,31%, REST memory utilization was more efficient by 9,89%, and GraphQL CPU load was more efficient by 22,01%. In general, REST is the right choice of architecture for applications with high performance and stability needs, while GraphQL is suitable for applications with frequently changing data field needs

    Migrating to GraphQL: A Practical Assessment

    Full text link
    GraphQL is a novel query language proposed by Facebook to implement Web-based APIs. In this paper, we present a practical study on migrating API clients to this new technology. First, we conduct a grey literature review to gain an in-depth understanding on the benefits and key characteristics normally associated to GraphQL by practitioners. After that, we assess such benefits in practice, by migrating seven systems to use GraphQL, instead of standard REST-based APIs. As our key result, we show that GraphQL can reduce the size of the JSON documents returned by REST APIs in 94% (in number of fields) and in 99% (in number of bytes), both median results.Comment: 11 pages. Accepted at 26th International Conference on Software Analysis, Evolution and Reengineerin

    A Mechanized Formalization of GraphQL

    Get PDF
    International audienceGraphQL is a novel language for specifying and querying web APIs, allowing clients to flexibly and efficiently retrieve data of interest. The GraphQL language specification is unfortunately only available in prose, making it hard to develop robust formal results for this language. Recently, Har-tig and Pérez proposed a formal semantics for GraphQL in order to study the complexity of GraphQL queries. The semantics is however not mechanized and leaves certain key aspects unverified. We present GraphCoQL, the first mechanized formalization of GraphQL, developed in the Coq proof assistant. GraphCoQL covers the schema definition DSL, query definitions, validation of both schema and queries, as well as the semantics of queries over a graph data model. We illustrate the application of GraphCoQL by formalizing the key query transformation and interpretation techniques of Hartig and Pérez, and proving them correct, after addressing some imprecisions and minor issues. We hope that GraphCoQL can serve as a solid formal baseline for both language design and verification efforts for GraphQL

    Microservice architecture patterns with GraphQL

    Get PDF
    In this thesis the GraphQL query language was studied in the context of the microservice architecture. The thesis was a combination of a literary study and expert interviews. Most prevalent microservice architecture patterns were gathered from peer reviewed studies and grey literature. Four expert interviews were held to detect which patterns were used in projects which used a microservice architecture and GraphQL APIs. Based on the interviews, a typical GraphQL microservice architecture consists of up to 10 REST or GraphQL microservices exposed to public networks using a GraphQL API gateway. The studied microservice architectures typically had a flat structure where a GraphQL API gateway exposed the other microservices in a protected network, which used a persistence layer to store data. Most of the microservice architectures seemed to rely on synchronous communication patterns, using a platform provided service discovery mechanisms to implement load balancing. The most prominent authorization mechanism was to use web tokens via an authorization header. An aggregating GraphQL service seemed to work well as an API gateway layer, which exposes the functionality of underlying microservices to clients. A pattern called schema stitching was successfully used in some of the interviewed projects to automatically combine multiple microservice GraphQL schemas together. Overall the interviewed developers had a positive experience using GraphQL in their projects. The API exploration tools and built-in documentation enabled by the GraphQL schema introspection functionality made client application development easier

    Analysis and Improvement of Tools and Methods Used in GraphQL Query Building Process

    Get PDF
    Günümüzde yaşanan teknolojik gelişmeler, İnternete bağlanan toplam cihaz tür ve sayısında büyük bir 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 Facebook tarafından 2015 yılında duyurulan 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 miktardaki 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 bu yöntemi kullanan 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ı önemli miktardaki kodu tekrar yazmaktan kurtararak zamandan tasarruf sağladığı görülmüştürNowadays, as a result of developing technology, increasing device diversity, and the total number of devices connected to the Internet, servers have started to receive more requests adversely affecting both network traffic and server response time. For eliminating these problems, in 2015, Facebook announced GraphQL technology allowing multiple tables, collections, or databases can be accessed instantly via a single request and a single answer. Therefore, the number of requests per device and the size of the data to be kept in the memory of the devices is reduced significantly. However, it is necessary to write code manually to create and run the GraphQL queries on the server part due to the lack of adequate code management and automation tools. Thus, it creates an additional workload for the developer. In this study, we have analyzed the tools used to automate or facilitate the query development process of GraphQL and compared the cost of query development. A new method and tool for generating GraphQL queries have been developed and its effectiveness has been compared to other methods and evaluated quantitively. The results show that the developers save time by avoiding the burden of writing many lines of code

    Desarrollo de un envoltorio del api-rest de mendeley con Graphql

    Get PDF
    Desarrollar un envoltorio del API-REST del gestor bibliográfico Mendeley utilizando el lenguaje de consultas GraphQL y validado con un marco de trabajo de calidad en uso basado en el estándar ISO/IEC 25000La creación de sistemas ha experimentado cambios en su proceso de construcción, la separación del servidor y cliente ha impulsado la innovación tecnológica por medio de la creación de tecnologías más útiles y eficientes. La integración entre el cliente y servidor normalmente es realizada por una API, comúnmente usando tecnología REST la cual es muy aceptada en la comunidad de desarrollo de software, aunque es muy aceptada también presenta inconvenientes como la complejidad que presenta su consumo lo que hace necesario la creación y utilización de alternativas, una de estas alternativas es GraphQL que es un lenguaje de consultas para las APIs y que pretende ser más eficiente y mejorar circunstancialmente la experiencia de desarrollo del lado del cliente. El presente trabajo describe la creación de una API que envuelve la tecnología API-REST y la convierte en tecnología GraphQL (envoltorio), se tomó a la API-REST de Mendeley como caso de desarrollo. Para la creación del envoltorio se definió una base teórica que permitió conocer conceptos que involucra crear el envoltorio. El desarrollo del producto se lo hizo siguiendo la metodología ágil Scrum que comprende ciclos interactivos llamados Sprints. Para validar la usabilidad del software, se usó un taller práctico y una encuesta que fueron validadas estadísticamente y que permitieron recolectar datos los cuales fueron usados para evaluar la calidad en uso con un marco de trabajo basado en el estándar ISO/IEC 25000, por lo cual se obtuvo resultados satisfactorios.Ingenierí

    Pengembangan Aplikasi Forum Komunitas Sepeda Berbasis Web

    Get PDF
    Pada saat ini, tren bersepeda masih cukup banyak diminati di kalangan masyarakat Indonesia. Hal itu menyebabkan terdapat banyak komunitas sepeda yang tersebar di berbagai daerah di seluruh Indonesia. Biasanya komunitas memiliki grup komunitas online yang berfungsi sebagai media bagi anggotanya untuk dapat saling berinteraksi maupun bertukar informasi. Akan tetapi, penggunaan media sosial sebagai sarana utama komunitas sepeda memiliki kekurangan karena masih tersebar di berbagai macam platform media sosial yang berbeda-beda seperti Facebook, Kaskus dan WhatsApp. Selain itu juga terdapat kesulitan bagi orang-orang baru untuk menemukan komunitas yang sesuai dengan preferensinya karena kurangnya informasi tentang komunitas yang sudah ada. Dengan adanya permasalahan-permasalahan tersebut, maka dikembangkan sebuah aplikasi forum komunitas sepeda yang diharapkan dapat menangani kekurangan yang sudah ada dan memenuhi kebutuhan yang diperlukan oleh komunitas sepeda di seluruh Indonesia. Metode Rapid Application Development dipilih sebagai metode pengembangan dalam penelitian ini agar dapat mempercepat proses pengembangan dan menghasilkan produk sesuai dengan kebutuhan. Teknologi utama pengembangan sistem yang digunakan dalam penelitian ini adalah React.js, Node.js, MongoDB dan GraphQL. Pengujian sistem menggunakan teknik black box dan white box testing. Hasil dari kedua pengujian menghasilkan keluaran yang benar dan valid, menandakan bahwa seluruh kebutuhan fungsional sistem sudah terpenuhi dan berjalan sesuai dengan yang diharapkan

    Comparación de la facilidad de aprendizaje entre Graphql y Rest mediante un modelo de calidad interna basada en las ISO/IEC 25000

    Get PDF
    Comparar la facilidad de aprendizaje entre GraphQL y REST mediante un modelo de calidad interna basada en las ISO/IEC 25000.Los sistemas informáticos actuales presentan arquitecturas en la parte del backend de servicios y microservicios, para lo cual se utiliza tecnologías como REST, la más usada en la actualidad, y GraphQL que nace como respuesta a problemas que presentaba REST como arquitectura de servicios, sin embargo, se tiene entendido que GraphQL tiene una complejidad en comparación a REST con su implementación, por lo que en el desarrollo de APIs es comúnmente ver consumos de servicios con REST. El presente trabajo compara las tecnologías de GraphQL y REST con respecto a la facilidad de aprendizaje, se diseñó un modelo de calidad interna basado en la ISO/IEC 25000, se utilizó un diseño Crossover para realizar el experimento controlado. Se requirió una base teórica para el conocimiento de los conceptos y poder familiarizarse con el experimento controlado y su procedimiento, en el cual se realizó una preparación a un grupo de sujetos de prueba, para posterior recolectar los resultados del experimento a través de una evaluación de conocimientos prácticos de las tecnologías, y validar estos resultados con la ISO/IEC 25000, y se receptaron resultados esperados del experimento.Ingenierí
    corecore