DOI QR코드

DOI QR Code

A Design and Implementation of Integrated Content Management System Based on Microservices Architecture

마이크로서비스 아키텍처 기반의 통합 콘텐츠 관리 시스템 설계 및 구현

  • 윤경식 (숭실대학교 IT융합학과) ;
  • 김영한 (숭실대학교 전자정보공학부)
  • Received : 2018.09.20
  • Accepted : 2019.01.13
  • Published : 2019.03.31

Abstract

As digital content items increase, new content services are often added to or integrated among existing content management systems to manage them. For efficient system integration, this paper designed a content management system that combines two existing content management systems based on a microservices architecture. In addition, during the development process, integrated system that existing systems were recycled without disruption to existing systems, integrated efficiently and implemented as scalable systems. It measured the resource usage of this systems and analyzed the differences between features for system integration using traditional middleware.

디지털 콘텐츠 재화가 증가됨에 따라 이를 관리하기 위한 콘텐츠 관리 시스템에 새로운 콘텐츠 서비스를 추가하거나 기존 콘텐츠 관리 시스템 간에 통합하는 경우가 빈번하게 발생한다. 효율적인 시스템 통합을 위해 본 논문에서는 이 기종으로 구성된 두개의 콘텐츠 관리 시스템을 마이크로서비스 아키텍처 기반으로 통합 콘텐츠 관리 시스템을 설계하여 개발 간 기존 시스템의 중단 없이 재활용이 가능하고, 효율적으로 통합이 가능하며, 확장성을 가진 시스템을 구현하였다. 이를 통해 구현된 시스템의 소요되는 자원 사용량을 측정하고, 기존 미들웨어를 사용한 시스템 통합을 방식 간의 차이점을 분석하였다.

Keywords

JBCRJM_2019_v8n3_97_f0001.png 이미지

Fig. 1. Difference Between Regular CMS and Headless CMS

JBCRJM_2019_v8n3_97_f0002.png 이미지

Fig. 2. Target System

JBCRJM_2019_v8n3_97_f0003.png 이미지

Fig. 3. Sequence Diagram

JBCRJM_2019_v8n3_97_f0004.png 이미지

Fig. 4. Design of API URL

JBCRJM_2019_v8n3_97_f0005.png 이미지

Fig. 5. System Architecture

JBCRJM_2019_v8n3_97_f0006.png 이미지

Fig. 6. Example of Mediation Processing for API Formatting

JBCRJM_2019_v8n3_97_f0007.png 이미지

Fig. 7. Template Code for Content List API

JBCRJM_2019_v8n3_97_f0008.png 이미지

Fig. 8. Result of Mediation for List API

JBCRJM_2019_v8n3_97_f0009.png 이미지

Fig. 9. Implemented Backend System Screens

JBCRJM_2019_v8n3_97_f0010.png 이미지

Fig. 10. Implemented Frontend Website Screen

JBCRJM_2019_v8n3_97_f0011.png 이미지

Fig. 11. Implemented System Architecture as a Result

JBCRJM_2019_v8n3_97_f0012.png 이미지

Fig. 12. System Resource Measuring Using Kibana

JBCRJM_2019_v8n3_97_f0013.png 이미지

Fig. 13. Measurement Chart of System CPU Usage

JBCRJM_2019_v8n3_97_f0014.png 이미지

Fig. 14. Measurement Chart of System Memory Usage

JBCRJM_2019_v8n3_97_f0015.png 이미지

Fig. 15. Call and Error Statistic Per API

JBCRJM_2019_v8n3_97_f0016.png 이미지

Fig. 16. REST and SOAP Response Time Measurements [20]

JBCRJM_2019_v8n3_97_f0017.png 이미지

Fig. 17. Webhook for API Event

Table 1. Definition of Integrated Content Metadata Field

JBCRJM_2019_v8n3_97_t0001.png 이미지

Table 2. API List

JBCRJM_2019_v8n3_97_t0002.png 이미지

Table 3. Environment for Test System

JBCRJM_2019_v8n3_97_t0003.png 이미지

Table 4. Environment for API Gateway

JBCRJM_2019_v8n3_97_t0004.png 이미지

Table 5. Measurement of System CPU Usage per Minute

JBCRJM_2019_v8n3_97_t0005.png 이미지

Table 6. Measurement of System Memory Usage per Minute

JBCRJM_2019_v8n3_97_t0006.png 이미지

Table 7. Comparison ESB based SOA with Proposed System

JBCRJM_2019_v8n3_97_t0007.png 이미지

References

  1. "International Digital Content Market Research 2017.12," in National IT Industry Promotion Agency, pp.12, 2017.
  2. Chris Richardson, Monolithic Architecture pattern [Internet], http://microservices.io/patterns/monolithic.html.
  3. Chris Coyier, "What is a Headless CMS?" [Internet], https://css- tricks.com/what-is-a-headless-cms/.
  4. Buzachis Aris, Microservices vs Monolithic architectures [Internet], https://blog.buzachis-aris.com/2014/12/microservicesvs-monolithic-architectures/.
  5. graphCMS, GraphCMS - The GraphQL Headless CMS [Internet], https://graphcms.com/.
  6. butterCMS, ButterCMS: Headless CMS and Content API [Internet], https://buttercms.com/.
  7. Contentful, Contentful: Content Infrastructure for Digital Teams [Internet], https://www.contentful.com/.
  8. DirectUs, Directus: Open-Source Headless CMS and API [Internet], https://getdirectus.com/.
  9. Prismic.io, Prismic: Headless API CMS for both developers and marketers [Internet], https://prismic.io/.
  10. Disadvantages of Headless [Internet], https://en.wikipedia.org/wiki/Headless_CMS.
  11. Wordpress, WordPress.com: Create a free website or blog [Internet], https://wordpress.com.
  12. Drupal, Drupal - Open Source CMS $\mid$ Drupal.org [Internet], https://www.drupal.org/.
  13. Neos, Neos CMS [Internet], https://www.neos.io/.
  14. Django, Django: The Web framework for perfectionists with deadlines [Internet], https://www.djangoproject.com/.
  15. Jang Seok Lee, Jeong Ki Hong, and Jeong Gwon Jee, "The strategy and approach of EAI for improving business agility," Communications of the Korean Institute of Information Scientists and Engineers, Vol.22, No.7, pp.13-21, 2004.
  16. Yong Deok Kim, "A Design of Secure Key Exchange Protocol and Framework for SOA based ESB Environment," Ph.D. dissertation, University of Soongsil, Seoul, Korea, pp.11-14, 2013.
  17. Goel and Anurag, "Enterprise integration EAI vs. SOA vs. ESB," Infosys Technologies White Paper 87, 2006
  18. Juris Tihomirovs and Jānis Grabis, "Comparison of SOAP and REST Based Web Services Using Software Evaluation Metrics," Information Technology and Management Science, Vol.19, Issue1, pp.92-97, 2016. https://doi.org/10.1515/itms-2016-0017
  19. Fatna Belqasmi, Jagdeep Singh, Suhib Bani melhem, and Roch H. Glitho, "SOAP-Based Web Services vs. RESTful Web Services for Multimedia Conferencing Applications: A Case Study," IEEE Internet Computing, 2012.
  20. T. Aihkisalo and T. Paaso, "Latencies of Service Invocation and Processing of the REST and SOAP Web Service Interfaces," 2012 IEEE 8th World Congress on Services, Honolulu, HI, USA, pp.100-107. 2012.
  21. Chris Richardson, A pattern language for microservices [Internet], http://microservices.io/patterns/index.html.
  22. Wordpress REST API v2 Documentation [Internet], https://v2.wp-api.org.
  23. Tyk Open Source API Gateway, API Management Platform, Developer Portal and Analytics - Tyk - Tyk API Gateway and API Management [Internet], https://tyk.io.
  24. goLang, Go Web Examples: Templates [Internet], https://gowebexamples.com/templates/.
  25. Metricbeat, Metricbeat: Lightweight Shipper for Metrics $\mid$ Elastic [Internet], https://www.elastic.co/kr/products/beats/metricbeat.