โครงการพัฒนาส่วนต่อประสานผู้ใช้งานสาหรบัจัดการฐานข้อมูล...

Post on 01-Jun-2020

5 views 0 download

Transcript of โครงการพัฒนาส่วนต่อประสานผู้ใช้งานสาหรบัจัดการฐานข้อมูล...

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 50

โครงการพฒนาสวนตอประสานผใชงานส าหรบจดการฐานขอมล Redis

ณฐพงศ วาดไธสง* บรษท โมโน อนโฟ ซสเตมส จ ากด

*Correspondence: n.wadthaisong@gmail.com doi: 10.14456/jisb.2017.4 บทคดยอ

บทความนน าเสนอการพฒนาสวนตอประสานกราฟกกบผใชงานส าหรบจดการฐานขอมล Redis (Redis manager) เพอชวยอ านวยความสะดวกแกผใชงาน ลดระยะเวลาในการท างานและชวยเพมประสทธภาพในการจดการขอมลในฐานขอมล Redis โดยระบบไดแบงออกเปนสองสวน ไดแก สวนของเวบไซต และสวนของระบบทน าไปตดตง โดยสวนของเวบไซต มสถาปตยกรรมเปนแบบเวบแอปพลเคชน (Web Application) มขอบเขตการท างานครอบคลมตงแตการลงทะเบยนเปนสมาชก จดการขอมลสวนตว ช าระเงนออนไลน ดาวนโหลดแพกเกจเพอน าไปตดตง สงค าแนะน าและตชม และผดแลเวบไซตสามารถเรยกดรายงานตางๆ ทเปนประโยชนในการน าไปพฒนาผลตภณฑในอนาคต สวนของระบบทน าไปตดตง มสถาปตยกรรมเปนแบบ Web Application และมขอบเขตการท างานครอบคลมตงแต การจดการฐานขอมล Redis การจดการผใชงาน ดสถตของฐานขอมล Redis รวมทงการเรยกดรายงานของฐานขอมล Redis เพอน าไปใชในการบรหารจดการฐานขอมล Redis ไดอยางมประสทธภาพ

ในการพฒนาระบบ ผพฒนาใชแนวคดการวเคราะหและออกแบบระบบเชงวตถ(Object-Oriented analysis and design) ใช UML 2.0 (Unified Modeling Language) ในการสรางตวแบบระบบ โดยใชโปรแกรม Sublime Text 2 และภาษา PHP รวมกบฐานขอมล MySQL เปนเครองมอในการพฒนาโปรแกรม ค าส าคญ: ระบบจดการฐานขอมล สวนตอประสาน เวบแอปพลเคชน

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 51

Developing a Web Application and Package Installer to Help Manage Data in Redis

Nattapong Wadthaisong* Mono Info Systems Co.,Ltd.

*Correspondence: n.wadthaisong@gmail.com doi: 10.14456/jisb.2017.4 Abstract

Redis manager, Redis GUI management tool, a development project, would offer a system architecture web application and package installer to help efficiently manage data in Redis, an open source, in memory data structure store, used as database. The web application covered the register, managing user, online payment, downloading package and web administrator generating reports for managing the Redis system. The package installer would covers database and user management as well as viewing database statistics.

Object-oriented analysis and design (OOAD) was applied with Unified Modeling Language (UML) 2.0 to create the system model. PHP, a server-side scripting language designed for web development but also used as a general-purpose programming language, and Sublime Text 2, a text editor for code, markup and prose, were employed to develop the system. It was integrated with MySQL, an open-source relational database management system, as development tool Keywords: DBMS, Graphic user interface, Web application

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 52

1. แนวคดและทมาของการพฒนาซอฟตแวร ในชวงเวลา 2-3 ปทผานมา ไดมการพฒนาเทคนคและเครองมอทชวยจดการกบขอมลอยางมากมาย เชน

ฐานขอมลเชงสมพนธ (Relational database) ฐานขอมลเชงเอกสาร (Document-oriented Database) หรอฐานขอมลประเภทอน ส าหรบนกพฒนาระบบ การเลอกใชฐานขอมลไมจ าเปนตองเปนฐานขอมลเชงสมพนธอกตอไป โดยปจจยในการเลอกใชฐานขอมลของนกพฒนาระบบนนขนอยกบวตถประสงคและลกษณะการใชงานขอมลเปนหลก จากเทคนคและเครองมอทหลากหลาย Redis เปนเทคนคและเครองมอหนงส าหรบจดการขอมลทนกพฒนาระบบใหความสนใจศกษาและน ามาใชงานอยางแพรหลาย

Redis ถกพฒนาขนในป 2009 โดยค านยามของ Redis คอ โครงสรางฐานขอมลทถกจดเกบอยในรปแบบ Key-value เหตผลทท าใหนกพฒนาใหความสนใจ Redis คอ (1) สามารถเรยนรและท าความเขาใจไดงาย ใชเวลาศกษาเพยงไมนานกสามารถใชงานได (2) การน า Redis มาใชงานสามารถแกไขปญหาทนกพฒนาพบจากการใชงานฐานขอมลรปแบบเดมแตไมสามารถแกปญหาได คลายกบระบบทถกเพมเตมเพอใหแอปพลเคชน (Application) ท างานไดมประสทธภาพมากขน เชน ระบบคนหาขอมล ถาใช Redis จะท าใหการคนหาขอมลมความรวดเรวมากขน

ถงแมวาการศกษาและใชงาน Redis สามารถท าความเขาใจไดงาย แตปญหาหนงทมาพรอมกบเทคโนโลยใหมกคอ ยงไมมเครองมอ (Tool) ทอ านวยความสะดวกในการใชงานเทคโนโลยนน ในการใชงาน Redis กเชนกน ถาตองการจะตดตอหรอสงค าสงตางๆ เพอให Redis ท างานตองสงค าสงผานทางคอมมานดไลน (Command line interfaces, CLI) ซงท าใหเกดความไมสะดวกและไมมประสทธภาพกบผทใชงาน แตกตางจากการใชงานฐานขอมลเชงสมพนธ เชน MySQL ทมระบบจดการฐานขอมล เชน phpMyAdmin อ านวยความสะดวกและเพมประสทธภาพใหกบผใชงาน ดงนนผพฒนาจงเหนเปนโอกาสทางธรกจทจะพฒนาสวนตอประสานกบผใชส าหรบจดการฐานขอมล Redis ขน เพอใชเปนสวนตอประสานกราฟกกบผใช (Graphic user interface หรอ GUI) ระหวางผใชงานกบฐานขอมล Redis ซงผใชงานสามารถน าไปเปนเครองมอส าหรบบรหารจดการฐานขอมล Redis ไดโดยการสงค าสงตางๆ ผานทางสวนตอประสานกราฟกทเขาใจงายแทนการสงค าสงผานทางคอมมานดไลน

โครงการพฒนาสวนตอประสานกราฟกกบผใชส าหรบจดการฐานขอมล Redis แบงออกเปนสองสวนคอ สวนของเวบไซตส าหรบผพฒนาทเปนผใหบรการระบบน และสวนของระบบทน าไปตดตงเพอใชเปนสวนตอประสานกราฟกระหวางผใชงานกบฐานขอมล Redis

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 53

2. ขอบเขตการท างานของระบบสารสนเทศ โครงการพฒนา GUI ส าหรบจดการฐานขอมล Redis ท าหนาทเปนสอกลางทคอยประสานงานระหวางผใชงานกบ

ฐานขอมล Redis โดยแบงระบบออกเปนสองสวน ไดแก สวนทน าไปตง และสวนของเวบไซต โดยแตละสวนมขอบเขตการท างานดงแสดงในภาพท 1

ภาพท 1 ขอบเขตของระบบในสวนเวบไซต redismanager.com และ Redis manager

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 54

2.1 ขอบเขตการท างานของระบบยอยในสวนของเวบไซต เวบไซต www.redismanager.com เปนเวบแอปพลเคชน (Web application) ทน าเสนอขอมลและรายละเอยด

แพกเกจของระบบ Redis manager ใหกบผใชโดยเวบไซตจะท าหนาทตงแตผใชงานสามารถสมครสมาชก เลอกแพกเกจ จนกระทงช าระเงนออนไลนบนเวบไซตผานบรการของ PayPal และสงค าแนะน าตชมผานระบบรวมทงผใหบรการสามารถจดการขอมลและรายละเอยดของแพกเกจตางๆ และเรยกดรายงานตางๆ ได เชน รายงานการลงทะเบยนของผใช รายงานการช าระเงนได ตลอดจนสงรายละเอยดเกยวกบบรการหลงการขายและการบ ารงรกษาระบบใหกบสมาชกทสมครบรการเสรมได

2.1.1 บทบาทของผทเกยวของกบระบบ ผทเกยวของกบระบบในสวนของเวบไซต สามารถแบงออกเปนสามสวน ดงน

1. ผเยยมชมเวบไซต (New User) ซงอาจจะเปนผคนทเหนการประชาสมพนธผานชองทางตางๆ และสนใจเขามาดรายละเอยดบนเวบไชต

2. สมาชก (Member) ไดแก ผทไดลงทะเบยนไวกบเวบไซตและน าระบบ Redis manager ไปตดตงเพอใชงาน

3. ผดแลเวบไซต (Web admin) ไดแก ฝายพฒนาผลตภณฑขององคกรผใหบรการ ซงมหนาทพฒนาปรบปรงและดแลเวบไซตใหสามารถใชงานไดอยางมประสทธภาพอยเสมอ และยงมหนาทเปนผดแลเวบไซต คอยจดการขอมลตางๆ ทอยบนเวบไซตและสามารถเรยกดรายงานตางๆ ได

2.1.2 ล าดบการใชงานระบบ ผดแลเวบไซตจะตองจดการขอมลแพกเกจทอยในระบบใหเสรจสนกอน สมาชกจงจะสามารถใชงานหนาท

ตางๆ ของระบบได ดงแสดงในภาพท 2

ภาพท 2 แสดงล าดบการใชงานสวนของเวบไซต

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 55

2.1.3 ตวอยางหนอจอเวบไซต www.redismanager.com

1. หนาแรกของเวบไซต แสดงรายละเอยดของระบบและเมนตางๆ ไดแก หนาหลก แสดงรายระเอยดของระบบ แสดงแพกเกจทมในระบบ สงค าแนะน าและตชม เขาสระบบและลงทะเบยน ดงแสดงในภาพท 3

ภาพท 3 แสดงหนาแรกของเวบไซต redsimanager.com

2. หนาจอส าหรบสมาชก เมอสมาชกไดลอกอนเขาสระบบ ระบบจะแสดงหนาจอในสวนของสมาชกซงแสดงขอมลของสมาชก และมเมนตางๆ ไดแก แสดงรายการแพกเกจทไดซอไว แกไขขอมลสวนตวและออกจากระบบ ดงแสดงในภาพท 4

ภาพท 4 แสดงหนาจอส าหรบสมาชก

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 56

3. หนาจอส าหรบผดแลเวบไซต เมอผดแลเวบไซตลอกอนเขาสระบบ ระบบจะแสดงหนาจอในสวนของผดแลเวบไซต ซงมเมนตางๆ ไดแก จดการแพกเกจ เรยกดรายงาน แกไขขอมลสวนตวและออกจากระบบ ดงแสดงในภาพท 5

ภาพท 5 แสดงหนาจอส าหรบผดแลเวบไซต

2.2 ขอบเขตการท างานของระบบยอยในสวนของระบบทน าไปตดตง

ระบบทน าไปตดตง เปนแบบโปรแกรมส าเรจรป (Software package) ซงภายหลงจากตดตงระบบแลว ผดแลระบบและผใชงานสามารถคนหาขอมล โดยระบเงอนไขในการคนหาไดจากทงชอ key และชนดของ key สามารถจดการขอมลทอยในฐานขอมล เชน เรยกด เพม แกไข ลบ สามารถส ารองขอมล เรยกดขอมลของฐานขอมล เชน เวอรชนของฐานขอมล จ านวน key ทม หนวยความจ า (Memory) ทใชไปของแตละฐานขอมล เปนตน นอกจากน ผดแลระบบยงสามารถเพม ลบ แกไข ฐานขอมลทมในระบบ สามารถตงคาของฐานขอมล จดการในสวนทเกยวของกบผใชงาน เชน เพม ลบ แกไขและก าหนดสทธในการเขาใชงานฐานขอมลใหกบผใชงานแตละคน ผดแลระบบยงสามารถเรยกดรายงาน ประกอบดวย จ านวนของฐานขอมลและจ านวนของผใชงานทมในระบบได

2.2.1 บทบาทของผทเกยวของกบระบบ ผทเกยวของกบระบบในสวนของระบบท าน าไปตดตง สามารถแบงออกเปนสองสวน ดงน 1. ผใชงานระบบ (Redis user) ไดแก นกพฒนาระบบ ผดแลฐานขอมลขององคกรผซอ หรอผทมความ

สนใจในฐานขอมล Redis

2. ผดแลระบบ (Redis admin) ไดแก ผใชหรอผดแลฐานขอมล Redis ขององคกรผซอ 2.2.2 ล าดบการใชงานระบบ

เมอผดแลระบบไดดาวนโหลดระบบแลวตองท าการตดตงระบบไวท Web Server กอน จงจะสามารถเขาใชงานระบบได โดยผดแลระบบจ าเปนตองเพมขอมลของเครองคอมพวเตอรทตดตงฐานขอมล Redis กอน จงจะสามารถใชงานหนาทตางๆ ของระบบได ดงแสดงในภาพท 6

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 57

ภาพท 6 แสดงล าดบการใชงานสวนของระบบทน าไปตดตง

2.2.3 ตวอยางหนอจอสวนระบบทน าไปตดตง

1. หนาจอ dashboard แสดงรายการสรปขอมลตางๆ ทมในระบบ ประกอบดวย แพกเกจทใชงาน จ านวนฐานขอมล Redis ทม จ านวนผใชงานในระบบ และสถานะการท างานของฐานขอมล Redis และมเมนตางๆ ไดแก จดการฐานขอมล Redis จดการผใชงาน แกไขขอมลสวนตวและออกจากระบบ ดงแสดงในภาพท 7

ภาพท 7 แสดงหนาจอ dashboard

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 58

2. หนาจอแสดงขอมลพนฐานของฐานขอมล Redis หลงจากเชอมตอกบฐานขอมล Redis ระบบจะแสดงหนาจอนเปนหนาจอแรกซงจะแสดง ขอมลพนฐานของฐานขอมล ไดแก ขอมลเกยวกบเซรฟเวอร (Server) ขอมลสถตตางๆ (Stats) ขอมลการใชงานหนวยความจา (Memory) และขอมลสถานะของการทา Replicateดงแสดงในภาพท 8

ภาพท 8 หนาจอแสดงขอมลพอนฐานของฐานขอมล Redis

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 59

3. หนาจอแสดงสถตของฐานขอมลแบบ real-time เมอผใชงานเลอกทแทบ monitor ระบบจะแสดงหนาจอสถตในรปแบบของกราฟ ไดแก หนวยความจ าทใช (Memory Consumption) อตราการใชงานขอ CPU (CPU Usage) อตราระหวางจ านวน key ทคนหาเจอ จ านวน key ทคนหาไมเจอ (Key Space Hit and Miss Ratio) จ านวน Key ทหมดอาย (Expire Keys) จ านวนการเชอมตอกบเครองลกขาย (Connections) ดงแสดงในภาพท 9

ภาพท 9 หนาจอแสดงสถตของฐานขอมลแบบ real-time

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 60

4. หนาจอจดการขอมลในฐานขอมล Redis ผใชงานสามารถเพม แกไข ลบ key และ value ไดทหนาจอน ดงแสดงในภาพท 10

ภาพท10 หนาจอจดการขอมลในฐานขอมล Redis

3. สถาปตยกรรมของระบบทพฒนา 3.1 สถาปตยกรรมในสวนเวบไซต

ในสวนเวบไซตถกออกแบบโดยใชสถาปตยกรรมแบบเวบแอปพลเคชน (Web-Based Application) ซงสามารถเรยกใชงานผานเวบเบราวเซอร โดยรบสงขอมลกบเวบเซฟเวอร (Web Server) ผานโปรโตคอล HTTP ดงภาพท 11

ภาพท 11 แผนภาพแสดงสถาปตยกรรมในสวนของเวบไซต

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 61

3.2 สถาปตยกรรมในสวนของระบบทน าไปตดตง ระบบ Redis manager ถกออกแบบโดยใชสถาปตยกรรมแบบเวบแอปพลเคชน (Web-Based Application) โดย

ตดตงสวนการแสดงผลการประมวลผล และฐานขอมลแยกออกจากกน มการเชอมตอกบผใชงานผานโปรโตคอล HTTP ดงแสดงในภาพท 12

ภาพท 12 แผนภาพแสดงสถาปตยกรรมในสวนของระบบทน าไปตดตง 4. สรป

เนอหาหลกของบทความนเปนการน าเสนอแนวคดและทมาของการพฒนา Redis Manager ซงเปนโปรแกรมทน าไปตดตงแลวจะท าใหผใชงานฐานขอมล Redis สามารถสงค าสงงานผาน GUI แทนการสงค าสงผานคอมมานดไลน รวมทงน าเสนอล าดบการใชงานโปรแกรม ตวอยางบางหนาจอของโปรแกรมดงกลาว ตลอดจนสถาปตยกรรมทโปรแกรมนถกออกแบบมา โดยผทน าโปรแกรมนไปใชงานจะไดรบประโยชน ดงน

- สามารถจดการฐานขอมล Redis ไดอยางงาย โดยไมจ าเปนตองจดจ าค าสงและปอนค าสงผานคอมมานไลนของ Redis ท าใหลดความผดพลาด และเพมประสทธภาพในการใชงาน

- ชวยใหผดแลฐานขอมลบรหารจดการผใชงานและฐานขอมล Redis ไดสะดวกขน ส าหรบองคกรทมฐานขอมล Redis มากกวา 1 ฐานขอมล

- ผดแลฐานขอมลสามารถใชระบบน ตดตาม (Monitor) การท างานของฐานขอมล Redis วาท างานตามปกตหรอไม

นอกจากนในบทความยงไดน าเสนอถงขอบเขตและการท างานของสวนเวบไซต www.redismanager.com ทเปนเวบไซตส าหรบน าเสนอขอมลและรายละเอยดเกยวกบระบบ Redis manager และแพกเกจการใชงาน Redis manager ใหกบผทสนใจใชงาน Redis manager สามารถสมครเปนสมาชก เลอกแพกเกจการใชงาน Redis manager และจายช าระคาแพกเกจทเลอกซอได พรอมทงแสดงตวอยางการใชงานในบางหนาจอของเวบไซตน

วารสารระบบสารสนเทศดานธรกจ (JISB) ปท 3 ฉบบท 1 เดอน มกราคม-มนาคม 2560 หนา 62

บรรณานกรม กตต ภกดวฒนะกล. (2550). ระบบฐานขอมล (Database Systems). กรงเทพ: เคทพ คอมพ แอนด คอนซลท. กตต ภกดวฒนะกล. (2551). การวเคราะหและออกแบบระบบ (Systems Analysis and Design). กรงเทพ: เคทพ

คอมพ แอนด คอนซลท Carlson, J. L. (2013). Redis in Action. NY: Manning Publications Co. Dennis, A. R., Wixom, B. H., Tegarden, D. (2007). Systems Analysis and Design with UML Version 2.0: An

Object-Oriented Approach. NY: John Wiley & Sons, Inc. erikdubbelboer. phpRedisAdmin. Retrieved September 9, 2015, from https://github.com/ErikDubbelboer/

phpRedisAdmin. FastoRedis - cross-platform GUI Manager for Redis Databases. Retrieved September 9, 2015, from

http://fastoredis.com/. Macedo, T., Oliveira, F. (2010). Redis Cookbook. CA: O'Reilly Media, Inc. Redis. Retrieved November 8, 2015, from http://redis.io/. Redis Desktop Manager - Redis GUI management tool for Windows, Mac OS X, Ubuntu and Debian.

Retrieved September 9, 2015, from https://redisdesktop.com/. Redsmin. Retrieved September 9, 2015, from https://www.redsmin.com/. sasanrose. PHPRedMin. Retrieved September 9, 2015, from https://github.com/sasanrose/phpredmin.