Research Article
BibTex RIS Cite

ORCA: GO Programlama Dili için ORM/ODM Kütüphanesi

Year 2020, Ejosat Special Issue 2020 (ARACONF), 310 - 317, 01.04.2020
https://doi.org/10.31590/ejosat.araconf40

Abstract

Bu bildiride Go olarak bilinen Golang dili için geliştirilmiş ORCA adında yeni bir ORM kütüphanesi sunulmaktadır. Geliştirilen kütüphane SQLite, MongoDB, RedisDB ve MemcacheDB olmak üzere dört farklı veritabanı sistemine veritabanı tipinden bağımsız olarak destek sunmaktadır. Böylelikle rakiplerinden farklı olarak, veritabanı ve hatta veritabanı tipi değiştirildiğinde bile uygulamanın kaynak kodunu değiştirmeden kullanabilme imkanı sunmaktadır. Bunun dışında benzerlerine göre daha kullanıcı dostu ve daha yüksek performans sağlayan bir kütüphanedir. Ayrıca kullanıcının kendi fonksiyonlarını yazabilmesini sağlayan yerel kanca (local hook) ve global kanca (global hook) yapılarını sunmaktadır.

References

  • Y. Ueda and M. Ohara, “Performance competitiveness of a statically compiled language for server-side Web applications,” in ISPASS 2017 - IEEE International Symposium on Performance Analysis of Systems and Software, 2017, pp. 13–22.
  • “blueperf/acmeair-monolithic-java: This version of Acme air is redesigned removing hardcoded components to WXS and also optimized for Cloud Data Services.” [Online]. Available: https://github.com/blueperf/acmeair-monolithic-java. [Accessed: 03-Feb-2020].
  • “blueperf/acmeair-monolithic-nodejs: A Node.js implementation of the Acme Air Sample Application. With datastore support of MongoDB. With runtime support of Bluemix/CloudFoundry, Docker... With Micro-Services.” [Online]. Available: https://github.com/blueperf/acmeair-monolithic-nodejs. [Accessed: 03-Feb-2020].
  • “index | TIOBE - The Software Quality Company.” [Online]. Available: https://www.tiobe.com/tiobe-index/. [Accessed: 13-Feb-2020].
  • “jinzhu/gorm: The fantastic ORM library for Golang, aims to be developer friendly.” [Online]. Available: https://github.com/jinzhu/gorm. [Accessed: 03-Feb-2020].
  • “xorm/xorm: Simple and Powerful ORM for Go, support mysql,postgres,tidb,sqlite3,mssql,oracle - xorm - Gitea: Git with a cup of tea.” [Online]. Available: https://gitea.com/xorm/xorm. [Accessed: 03-Feb-2020].
  • “src-d/go-kallax: Kallax is a PostgreSQL typesafe ORM for the Go language.” [Online]. Available: https://github.com/src-d/go-kallax. [Accessed: 03-Feb-2020].
  • “ezbuy/redis-orm: write db yaml once, generate go orm code everywhere.” [Online]. Available: https://github.com/ezbuy/redis-orm. [Accessed: 03-Feb-2020].
  • “zebresel-com/mongodm: A golang object document mapper (ODM) for MongoDB.” [Online]. Available: https://github.com/zebresel-com/mongodm. [Accessed: 03-Feb-2020].
  • “MehmetEminKaymaz/Orca: Simple and Powerful ORM for Go Language.” [Online]. Available: https://github.com/MehmetEminKaymaz/Orca. [Accessed: 13-Feb-2020].
  • “go-pg/pg: Golang ORM with focus on PostgreSQL features and performance.” [Online]. Available: https://github.com/go-pg/pg. [Accessed: 13-Feb-2020].
  • “PolyglotPersistence.” [Online]. Available: https://martinfowler.com/bliki/PolyglotPersistence.html. [Accessed: 03-Feb-2020].
  • “list - The Go Programming Language.” [Online]. Available: https://golang.org/pkg/container/list/. [Accessed: 13-Feb-2020].
  • K. Elhardt and R. Bayer, “A Database Cache for High Performance and Fast Restart in Database Systems,” ACM Trans. Database Syst., vol. 9, no. 4, pp. 503–525, Dec. 1984.
  • R. Jain, Y. B. Lin, S. Mohan, and C. Lo, “A Caching Strategy to Reduce Network Impacts of PCS,” IEEE J. Sel. Areas Commun., vol. 12, no. 8, pp. 1434–1444, 1994.

ORCA: An ORM/ODM Library for Go Programming Language

Year 2020, Ejosat Special Issue 2020 (ARACONF), 310 - 317, 01.04.2020
https://doi.org/10.31590/ejosat.araconf40

Abstract

This paper proposes a new ORM library, namely ORCA, for the Golang (Go) language. The proposed library supports four different database systems (SQLite, MongoDB, RedisDB and MemcacheDB), regardless of database type. Thus, unlike its competitors, it offers the possibility to use the database without changing the source code ıf when the database or even the database type is changed. Besides, ORCA performs better with a more user friendly syntax compared to its competitors. ORCA also offers local hook and global hook structures that enable the user to write their own functions.

References

  • Y. Ueda and M. Ohara, “Performance competitiveness of a statically compiled language for server-side Web applications,” in ISPASS 2017 - IEEE International Symposium on Performance Analysis of Systems and Software, 2017, pp. 13–22.
  • “blueperf/acmeair-monolithic-java: This version of Acme air is redesigned removing hardcoded components to WXS and also optimized for Cloud Data Services.” [Online]. Available: https://github.com/blueperf/acmeair-monolithic-java. [Accessed: 03-Feb-2020].
  • “blueperf/acmeair-monolithic-nodejs: A Node.js implementation of the Acme Air Sample Application. With datastore support of MongoDB. With runtime support of Bluemix/CloudFoundry, Docker... With Micro-Services.” [Online]. Available: https://github.com/blueperf/acmeair-monolithic-nodejs. [Accessed: 03-Feb-2020].
  • “index | TIOBE - The Software Quality Company.” [Online]. Available: https://www.tiobe.com/tiobe-index/. [Accessed: 13-Feb-2020].
  • “jinzhu/gorm: The fantastic ORM library for Golang, aims to be developer friendly.” [Online]. Available: https://github.com/jinzhu/gorm. [Accessed: 03-Feb-2020].
  • “xorm/xorm: Simple and Powerful ORM for Go, support mysql,postgres,tidb,sqlite3,mssql,oracle - xorm - Gitea: Git with a cup of tea.” [Online]. Available: https://gitea.com/xorm/xorm. [Accessed: 03-Feb-2020].
  • “src-d/go-kallax: Kallax is a PostgreSQL typesafe ORM for the Go language.” [Online]. Available: https://github.com/src-d/go-kallax. [Accessed: 03-Feb-2020].
  • “ezbuy/redis-orm: write db yaml once, generate go orm code everywhere.” [Online]. Available: https://github.com/ezbuy/redis-orm. [Accessed: 03-Feb-2020].
  • “zebresel-com/mongodm: A golang object document mapper (ODM) for MongoDB.” [Online]. Available: https://github.com/zebresel-com/mongodm. [Accessed: 03-Feb-2020].
  • “MehmetEminKaymaz/Orca: Simple and Powerful ORM for Go Language.” [Online]. Available: https://github.com/MehmetEminKaymaz/Orca. [Accessed: 13-Feb-2020].
  • “go-pg/pg: Golang ORM with focus on PostgreSQL features and performance.” [Online]. Available: https://github.com/go-pg/pg. [Accessed: 13-Feb-2020].
  • “PolyglotPersistence.” [Online]. Available: https://martinfowler.com/bliki/PolyglotPersistence.html. [Accessed: 03-Feb-2020].
  • “list - The Go Programming Language.” [Online]. Available: https://golang.org/pkg/container/list/. [Accessed: 13-Feb-2020].
  • K. Elhardt and R. Bayer, “A Database Cache for High Performance and Fast Restart in Database Systems,” ACM Trans. Database Syst., vol. 9, no. 4, pp. 503–525, Dec. 1984.
  • R. Jain, Y. B. Lin, S. Mohan, and C. Lo, “A Caching Strategy to Reduce Network Impacts of PCS,” IEEE J. Sel. Areas Commun., vol. 12, no. 8, pp. 1434–1444, 1994.
There are 15 citations in total.

Details

Primary Language Turkish
Subjects Engineering
Journal Section Articles
Authors

Mehmet Emin Kaymaz This is me 0000-0002-0710-5732

Övünç Öztürk 0000-0001-7127-7902

Publication Date April 1, 2020
Published in Issue Year 2020 Ejosat Special Issue 2020 (ARACONF)

Cite

APA Kaymaz, M. E., & Öztürk, Ö. (2020). ORCA: GO Programlama Dili için ORM/ODM Kütüphanesi. Avrupa Bilim Ve Teknoloji Dergisi310-317. https://doi.org/10.31590/ejosat.araconf40