View
0
Download
0
Category
Preview:
Citation preview
ระบบสงไฟลอตโนมต Automatic File System
รงธรรม อณหนนท Roongtham Ounhanant
สารนพนธนเปนสวนหนงของการศกษา หลกสตรวทยาศาสตรมหาบณฑต สาขาวศวกรรมเครอขาย
คณะวทยาการและเทคโนโลยสารสนเทศ มหาวทยาลยเทคโนโลยมหานคร
ปการศกษา 2557
I
หวขอ ระบบสงไฟลอตโนมต ชอนกศกษา นายรงธรรม อณหนนท รหสนกศกษา 5617660012 หลกสตร วทยาศาสตรมหาบณฑต สาขาวศวกรรมเครอขาย ปการศกษา 2557 อาจารยทปรกษา ดร.วรวฒ ไพรวน
บทคดยอ
ระบบสงไฟลอตโนมตเปนโปรแกรมทพฒนาใหใชงานรวมกบโปรแกรมแสดงอตราแลกเปลยนสกลเงนตางประเทศทถกใชอยางแพรหลายในธนาคารตางๆ ซงผดแลระบบนจะตองคอยจดสงไฟลดวยวธตางๆ เพอเปลยนแปลงคาสกลเงนของโปรแกรม
โครงงานนจงพฒนาขนเพอใชส าหรบการจดสงไฟลจากเครองแมขายไปยงลกขายหลายๆ เครองโดยอตโนมตดวยการตงเวลา ซงเมอสนสดการท างานจะมการเกบผลการท างานไวเพอใหสามารถตรวจสอบขอมลยอนหลงได โดยจะมงเนนไปในดานของการตรวจสอบความถกตองของไฟลในการสง ในสวนของโปรแกรมจะมอนเตอรเฟสทงายตอการใชงาน และผดแลยงสามารถตรวจสอบปญหาตางๆ ทเกดขนในการสงไฟลไดจากผลการท างานทเกบไว
II
กตตกรรมประกาศ
สารนพนธโครงงานนไดส าเรจลลวงไปไดดวยความชวยเหลออยางดยงจากอาจารยทปรกษาโครงการ ดร.วรวฒ ไพรวน ทไดใหค าแนะน า ขอคดเหนตางๆ ตลอดจนการตรวจทานแกไข และใหขอเสนอแนะทด ขาพเจาขอขอบพระคณมา ณ ทน
ขอขอบพระคณคณะคนาจารยสาขาวชาเทคโนโลยสารสนเทศมหาวทยาลยเทคโนโลยมหานครทกๆทานทใหความรค าแนะน าแกตวขาพเจา
สดทายน ขอขอบพระคณพๆ เพอนๆ และทกคนทใหขอเสนอแนะ ท าใหขาพเจามก าลงใจในการพฒนาระบบจนส าเรจลลวงได
รงธรรม อณหนนท
III
สารบญ หนา
บทคดยอ I กตตกรรมประกาศ II สารบญรป VI สารบญตาราง VIII บทท 1 บทน า. 1
1.1 ความเปนมาและความส าคญของปญหา 1 1.2 ปญหาและแรงจงใจ 1 1.3 วตถประสงค 1 1.4 ขอบเขตการท างานระบบ. 1 1.5 ประโยชนทคาดวาจะไดรบ 2 1.6 โครงสรางของสารนพนธ 2 1.7 แผนเวลาของโครงงาน 3
บทท 2 ทฤษฏทเกยวของ .4 2.1 Protocol 4
2.1.1 Protocol TCP 5 2.2 พนฐานเซรฟเวอร-ไคลเอนต. 6
2.2.1 Port. 6 2.2.2 Connection oriented. 6 2.2.3 Connectionless 7 2.2.4 Class 7
2.3 พนฐานการรบ-สงไฟล 9 2.3.1 การสงไฟล. 9 2.3.2 การรบไฟล 10
2.4 ฟงกชนแฮส 12 2.5 ฐานขอมล. 12
2.5.1 องคประกอบของฐานขอมล .12 2.5.2 ค าสงพนฐานในการจดการฐานขอมล 13
บทท 3 การออกแบบระบบ 14 3.1 ภาพรวมของระบบ 14
3.1.1 ขอดของระบบทจดการจากสวนกลาง 15 3.2 องคประกอบของระบบ 15
IV
สารบญ(ตอ) หนา
3.2.1 Server 15 3.2.2 Client 15 3.2.3 Console 15
3.3 การสอสารภายในระบบ 16 3.3.1 การสงไฟล 16
3.4 ขนตอนการท างานของโปรแกรม 17 3.4.1 ขนตอนการท างานของเซรฟเวอรสงไฟลไปยงไคลเอนต. 17 3.4.2 ขนตอนการท างานไคลเอนตรบไฟลเซรฟเวอร. 20 3.4.3 ขนตอนการท างานคอนโซลอพโหลดไฟลไปยงเซรฟเวอร 22
3.5 Database Diagram. 23 3.6 Data Dictionary 24
บทท 4 ผลการด าเนนงาน 28 4.1 คอนโซลหนาตางผดแลระบบ 28
4.1.1 หนาตางการเขาใชงานระบบ 28 4.1.2 หนาตางหลกของโปรแกรม 28 4.1.3 หนาตางการตงคา 29 4.1.4 หนาตางจดการบญชผใชงาน 29 4.1.5 หนาตางจดการไคลเอนต 30 4.1.6 หนาตางจดการตารางงาน 30 4.1.7 หนาตางการอพโหลดไฟล 34 4.1.8 หนาตางตรวจสอบผลการสงไฟล 35
4.2 ทดสอบสงไฟลเซรฟเวอร-ไคลเอนต และตรวจสอบขอมล 36 บทท 5 สรปผลการด าเนนงาน 44
5.1 สรปผลการด าเนนงาน 45 5.2 ปญหาการด าเนนงาน 45 5.3 แนวทางแกปญหา 45 5.4 ขอเสนอแนะเพมเตม 45
เอกสารอางอง 45 ภาคผนวก ก. ขนตอนการตดตงระบบ ก-1
V
สารบญรป หนา
รปท 1.1 โครงสรางของระบบสงไฟลอตโนมต 2 รปท 2.1 OSI-TCP/IP Protocol Stack 5 รปท 2.2 ขนตอนการสอสารระหวางเซรฟเวอร-ไคลเอนตโพรโตคอล TCP 7 รปท 2.3 Flow Chart การสงไฟล 10 รปท 2.4 Flow Chart การรบไฟล 11 รปท 2.5 ตวอยางการดงขอมลจากฐานขอมลโดยใชค าสง Select 13 รปท 3.1 ภาพการท างานโดยรวมของระบบ. 14 รปท 3.2 รปแบบการสอสารเพอสงไฟลในโพรโตคอล. 16 รปท 3.3 แสดงขนตอนการท างานโปรแกรมเซรฟเวอร. 18 รปท 3.4 แสดงขนตอนการท างานโปรแกรมไคลเอนต 20 รปท 3.5 แสดงขนตอนการสงไฟลจากคอนโซลไปยงเซรฟเวอร 22 รปท 3.6 Database Diagram ของระบบ 23 รปท 4.1 หนาตางยนยนการเขาใชงานระบบ 28 รปท 4.2 หนาตางหลกของโปรแกรม 28 รปท 4.3 หนาตางการตงคา 29 รปท 4.4 หนาตางจดการบญชผใชงาน 29 รปท 4.5 หนาตางจดการไคลเอนต 30 รปท 4.6 หนาตางจดการตารางงาน 30 รปท 4.7 หนาตางเพมการจดการงาน 31 รปท 4.8 รปหนาตางเพมไฟล 32 รปท 4.9 หนาตางเพมการจดการงานแถบTarget 32 รปท 4.10 หนาตางเพมการจดการงานแถบSchedules 33 รปท 4.11 หนาตางตงคาเวลา 34 รปท 4.12 หนาตางอพโหลดไฟล 35 รปท 4.13 แสดงหนาตางตรวจสอบผลการสงไฟล 36 รปท 4.14 รายละเอยดไฟลทท าการทดสอบ 37 รปท 4.15 ขอมลการเชอมตอระหวางโปรแกรมสวนของเซรฟเวอรและไคลเอนต 38 รปท 4.16 ขอมลการสงขอมลทใชสอสารระหวางเซรฟเวอรไปยงไคลเอนต. 38 รปท 4.17 ขอมลการตอบรบการท างานจากไคลเอนตไปยงเซรฟเวอร. 40 รปท 4.18 แสดงขอมลการสงไฟลจากเซรฟเวอรไปยงไคลเอนต 41 รปท 4.19 แสดงขอมลยนยนการตรวจสอบความถกตองของไฟล 41
VI
สารบญรป (ตอ) หนา
รปท 4.20 เซรฟเวอรท าการยตการเชอมตอ.........................................................................42 รปท 4.21 ผลการสงไฟล.....................................................................................................43 รปท ก.1 แสดงไฟลในการตดตงโปรแกรมสวนเซรฟเวอร ก-1 รปท ก.2 แสดงหนาตางการตดตงโปรแกรมสวนเซรฟเวอร ก-2 รปท ก.3 แสดงหนาตางการเลอกต าแหนงตดตงโปรแกรมสวนเซรฟเวอร ก-3 รปท ก.4 แสดงหนาตางยนยนตดตงโปรแกรมสวนเซรฟเวอร ก-4 รปท ก.5 แสดงหนาตางการตดตงโปรแกรมสวนเซรฟเวอรเสรจสมบรณ ก-5 รปท ก.6 แสดงหนาตางตรวจสอบ Service ของโปรแกรมสวนเซรฟเวอร ก-6 รปท ก.7 แสดงไฟลในการตดตงโปรแกรมสวนไคลเอนต ก-6 รปท ก.8 แสดงหนาตางการตดตงโปรแกรมสวนไคลเอนต ก-7 รปท ก.9 แสดงหนาตางการเลอกต าแหนงตดตงโปรแกรมสวนไคลเอนต ก-8 รปท ก.10 แสดงหนาตางยนยนตดตงโปรแกรมสวนไคลเอนต ก-9 รปท ก.11 แสดงหนาตางการตดตงโปรแกรมสวนไคลเอนตเสรจสมบรณ ก-10 รปท ก.12 แสดงหนาตางตรวจสอบ Service ของโปรแกรมสวนไคลเอนต ก-11 รปท ก.13 แสดงไฟลในการตดตงโปรแกรมสวนคอนโซล ก-11 รปท ก.14 แสดงหนาตางการตดตงโปรแกรมสวนคอนโซล ก-12 รปท ก.15 แสดงหนาตางการเลอกต าแหนงตดตงโปรแกรมสวนคอนโซล ก-13 รปท ก.16 แสดงหนาตางยนยนตดตงโปรแกรมสวนคอนโซล ก-14 รปท ก.17 หนาตางแสดงการตดตงโปรแกรมสวนคอนโซลเสรจสมบรณ ก-15 รปท ก.18 การตรวจสอบ Shortcut โปรแกรมคอนโซล ก-15
VII
สารบญตาราง หนา
ตารางท 1.1 แผนการด าเนนงานโครงงาน 3 ตารางท 2.1 ฟงกชนส าคญของคลาส IP Address 8 ตารางท 2.2 ตวแปรส าคญของคลาส IPEndPoint 8 ตารางท 2.3 ฟงกชนส าคญของคลาส Encoding 8 ตารางท 2.4 ฟงกชนส าคญของคลาส Socket 9 ตารางท 3.1 Message Header ในสวน Sender 16 ตารางท 3.2 รายละเอยด Command ในการสงไฟล. 17 ตารางท 3.3 รายละเอยด Command ในการตอบกลบ 17 ตารางท 3.4 รายละเอยดสวน Status. 17 ตารางท 3.5 พจนานกรมขอมลตาราง Job 24 ตารางท 3.6 พจนานกรมขอมลตาราง JobSchedule 24 ตารางท 3.7 พจนานกรมขอมลตาราง JobTaget 25 ตารางท 3.8 พจนานกรมขอมลตาราง JobAction 25 ตารางท 3.9 พจนานกรมขอมลตาราง JobActionType 25 ตารางท 3.10 พจนานกรมขอมลตาราง Log 25 ตารางท 3.11 พจนานกรมขอมลตาราง Client 26 ตารางท 3.12 พจนานกรมขอมลตาราง Group 26 ตารางท 3.13 พจนานกรมขอมลตาราง Group_Client 26 ตารางท 3.14 พจนานกรมขอมลตาราง User_Password 26 ตารางท 3.15 พจนานกรมขอมลตาราง Configuration 26 ตารางท 3.16 พจนานกรมขอมลตาราง Files 27 ตารางท 4.1 แสดงขอมลจากเซรฟเวอร(Command Send File). 39 ตารางท 4.2 แสดงขอมลจากไคลเอนต(Command Client Status Ready) 40 ตารางท 4.3 แสดงขอมลจากไคลเอนต(Command Client Status Complete). 42
1
บทท 1 บทน า
1.1 ความเปนมาและความส าคญของปญหา
ปจจบนการแสดงอตราแลกเปลยนสกลเงนตางประเทศนนเปนสงทเกอบทกๆธนาคารม เพอใชใหบรการแลกเปลยนสกลเงนตางๆกบลกคา ซงจดทตดตงนนมมากกวา 1 จด และอาจจะมการแสดงอตราแลกเปลยนนในหลายๆจงหวด สงทระบบมเหมอนกนกคอ ระบบจะตองมการเปลยนแปลงขอมลคาอตราแลกเปลยนสกลเงนอยเสมอๆ โดยทวไปโปรแกรมจะท าการเปลยนแปลงคาอตราแลกเปลยนสกลเงนทแสดงโดยอานจากไฟล 1 ไฟล ทงนรปแบบในการจดการไฟล แตละธนาคารกจะมวธจดการทตางกนเชนใชการ Map drive, Ftp สงไฟลรวมไปถงใชโปรแกรมตงเวลาในการดาวโหลดไฟลจากเซรฟเวอรเปนตน ซงดวยรปแบบในการจดการทตางกนท าใหเกดปญหาตางๆขนทงสวนของธนาคารและสวนของบรษททรบผดชอบโปรแกรม 1.2 ปญหาและแรงจงใจ
จากการจดการไฟลทแตกตางกนท าใหเกดปญหาขนหลากหลายแบบทงธนาคารและบรษททรบผดชอบโปรแกรม เชนปญหาของธนาคารเนองจากไมมผลของการท างาน(Log)ในรบสงไฟลท าใหไมสามารถตรวจสอบไดวาการสงไฟลส าเรจแลวหรอไมรวมไปถงไมสามารถทราบถงขอผดพลาดในการสงไฟลท าใหมการแจงเปนปญหากบทางบรษททร บผดชอบโปรแกรม ทงสวนของบรษทเองจะตองท าการฝกอบรมพนกงานทจะท าการตรวจสอบและแกไขระบบ แตเนองดวยระบบทหลากหลายท าใหสนเปลองคาใชจายในการฝกอบรมมาก การใชงานระบบสงไฟลอตโนมตกจะชวยแกปญหาตางๆเหลานเนองดวยการสงไฟลจะถกจดการจากเซรฟเวอรทงหมดท าใหสามารถสราง Log ในการตรวจสอบผลการสงไฟลได รวมไปถงคาใชจายในการฝกสอนพนกงานกจะลดลงเนองจากไมตองฝกสอนหลายๆระบบ 1.3 วตถประสงค
1.3.1 เพอสรางระบบการสงไฟลอตโนมตระหวางเครองแมขายไปยงเครองลกขาย 1.3.2 เพอตรวจสอบผลขอมลการสงไฟลได 1.3.3 เพอลดภาระของพนกงานทตองเรยนรระบบทหลากหลายและลดคาใชจายของ
บรษทในการฝกอบรม 1.4 ขอบเขตของการท างานระบบ
1.4.1 ระบบจะตองสามารถสงไฟลไดตามเวลาทก าหนดโดยอตโนมต 1.4.2 ระบบจะตองมเกบผลของการสงไฟลเมอท าการสงไฟลเพอใชในการตรวจสอบ
ภายหลง
2
1.4.3 ระบบจะตองมหนาอนเตอรเฟซ (interface) เพอใหงายตอการใชงาน
รปท 1.1 โครงสรางของระบบสงไฟลอตโนมต 1.5 ประโยชนทคาดวาจะไดรบ
1.5.1 ชวยอ านวยความสะดวกในการจดสงไฟล 1.5.2 ชวยลดความขนตอนซ าซอนในการสงไฟล 1.5.3 ชวยใหผดแลระบบสามารถวเคราะหปญหาทเกดขนไดอยางรวดเรว 1.5.4 ชวยใหสามารถตรวจสอบขอมลยอนหลงได
1.6 โครงสรางของสารนพนธ
ส าหรบเนอหาของสารนพนธฉบบนจะถกแบงออกไดดงน บทท 1 บทน า กลาวถงปญหาทเกดขนจรงของทงทางลกคาและทางบรษท บทท 2 ความรพนฐานและทฤษฏ ศกษาโพรโตคอลตางๆ เพอใชส าหรบเปนขอมลใน
การออกแบบโปรแกรม บทท 3 การออกแบบระบบและแสดงขนตอนการท างานของระบบ รวมไปถงการ
ตดตอสอสารกนระหวางสวนกลางไปยงสาขา
3
บทท 4 การทดลองและผลการทดลองน าเอาระบบไปใชงานเพอประเมนประสทธภาพการท างานของระบบ
บทท 5 สรปผลและขอเสนอแนะ เปนการน าเอาผลทไดจากการทดลองมาสรปและหาขอผดพลาดเพอเปนแนวทางในการปรบปรงแกไขตอไป 1.7 แผนเวลาของโครงงาน
ตารางท 1.1 ตารางแผนการด าเนนการโครงงาน
ขนตอนการด าเนนงาน พ.ศ. 2557
เม.ย พ.ค ม.ย ก.ค ส.ค ก.ย ต.ค พ.ย 1.ศกษาทฤษฎทเกยวของ 2.ออกแบบระบบ 3.สรางและพฒนาระบบงาน 4.ทดลองใชระบบงาน 5.สรปผลการใชระบบและจดท าเอกสาร
4
บทท 2 ทฤษฎทเกยวของ
ในบทนจะกลาวถงการศกษาองคความรและความรพนฐานตางๆ ทใชพฒนาโครงงาน
ซงมรายละเอยดดงน - โพรโตคอล - พนฐานเซรฟเวอร-ไคลเอนต - พนฐานการรบ-สงไฟล - ฟงกชนแฮช(HASH) - ระบบฐานขอมล
2.1 โพรโตคอล (Protocol)
กลาวถงยคแรกของการผลตคอมพวเตอร ในยคนนผผลตคอมพวเตอรแตละรายผลตคอมพวเตอรขนตามมาตรฐานของตนเอง ซงสามารถท างานไดเฉพาะกบเครองๆ เดยวเทานน จากการทมการพฒนาเครองคอมพวเตอรและระบบการท างาน ท าใหการตดตอระหวางเครองคอมพวเตอรเปนเรองทส าคญขนมา แตเนองจากการทเครองแตละเครองผลตขนมาโดยมาตรฐานทไมเหมอนกน ท าใหการสงขอมลระหวางเครองนนเปนไปไดยาก จากจดนท าใหเกดการสรางมาตรฐานของขอมลขน เพอความสะดวกของเครองคอมพวเตอรในการตดตอสอสารกน หรออาจกลาวไดวาโพรโตคอลเปนภาษาทคอมพวเตอรใชสอสารกน ดงนนการทคอมพวเตอรทตองการสอสารกนจ าเปนตองใชภาษาหรอโพรโตคอลเดยวกน เพราะไมเชนนนคอมพวเตอรกจะสอสารกนไมได ปจจบนโพรโตคอลทเปนทนยมใชมากทสดคอ โพรโตคอลทซพ ไอพ (TCP/IP) ยอมาจากTransmission Control Protocol/Internet Protocol
5
รปท 2.1 OSI-TCP/IP Protocol Stack
จากภาพแสดงใหเหนวาในชดของ TCP/IP Protocol จะมองเปน 4 Layer ซงตางจาก OSI ทมทงหมด 7 Layer สงเกตไดวาโพรโตคอลชนบนสด(HTTP,FTP,SMTP,DNS) จะไมสามารถจดอยใน Layer เดยวได (OSI) ทงนเพราะรปแบบการท างานของโพรโตคอลเหลานครอบคลมทง 3 Layer แบบ OSI Model นนเอง
2.1.1 Protocol TCP TCP ยอมาจาก Transmission Control Protocol เปนโปรโตคอลทท างานโดย
ควบคมการรบสงขอมลระหวางโฮส(Host) ถง โฮส ในเครอขายเพอแลกเปลยนขอมลระหวางกนเปรยบเสมอนมทอสงขอมลระหวางกน ซงจดเดนหรอหนาทของ TCP คอจดการเรองการตรวจสอบ Error, ท า Flow control, ท า multiplex นอกจากนยงท าหนาทแลกเปลยนสถานะและ Synchronization โดยเมอมการสงขอมล TCP จะท าหนาทแยกขอมลเปนสวนๆ และสงออกไป สวน TCP ทเปนฝายรบทปลายทางกจะท าหนาทรวบรวมขอมลเขาดวยกนเพอน าไปประมวลผลตอ โดยระหวางการรบสงขอมลนนกจะมการตรวจสอบความถกตองของขอมลดวย หากเกดขอผดพลาดขน TCP ฝายรบกจะรองขอให TCP ฝายสงใหท าการสงขอมลมาใหใหม
6
ขอดของ TCP - Reliable TCPมการตรวจสอบขอมลวาถกตองและไปถงผรบจรง
หากไมเปนไปตามนนจะมการสงขอมลไปใหมอกครง - Connection-oriented มการรองขอเพอเปดชองทางกอนทจะท า
การสงขอมลหากน เปนการเตรยมทรพยากรตางๆ ระหวางฝายผสงและฝายผรบเพอใหการสงขอมลเปนไปอยางมประสทธภาพ
- Flow control มการควบคมปรมาณในการสงขอมลระหวางฝายสงและฝายรบเพอปองกนขอมลถกสงมาในปรมาณทมากเกนกวาฝายรบจะรบได
- Congestion control เปนการควบคมปรมาณในการสงขอมลในชวงทขอมลมความหนาแนนสงเพอปองกนขอมลทสงหนาแนนจนไมสามารถไปถงยงฝายรบได
2.2 พนฐานเซรฟเวอร-ไคลเอนต พนฐานของการสรางโปรแกรมใหสามารถตดตอหรอท างานรวมกนไดแบบเซรฟเวอร-
ไคลเอนต นนจะมพนฐานทควรจะตองทราบดงน 2.2.1 Port
หมายเลข Port คอหมายเลขทใชเพอท าการตดตอกนระหวางโปรแกรมเชนเครองเซรฟเวอรเครองหนงเวลาตดตอจะตองระบ IP ทจะท าการตดตอไป แตแคเพยง IP ยงไมสามารถบงบอกไดวาตดตอไปยงเครองดงกลาวทโปรแกรมสวนใดบนเครองนนๆ ฉะนนหมายเลข Port นจะเปนบอกการตดตอวาจะตดตอกบโปรแกรมใดๆซงหมายเลข Port มคาตงแต 0 - 65535
2.2.2 Connection oriented การตดตอสอสารแบบทฝ งผสงจะตองรอฝ งผรบยอมรบการเชอมตอกอนทจะท า
การสงขอมลใดๆไป คลายกบการสราง Connection ขนกอนทจะท าการตดตอกน หากเปรยบเทยบกจะเทยบไดกบโทรศพททจะตองรอใหฝ งผรบกดรบสายกอนจงจะเรมการพดคยกนไดนนเอง ซงโพรโตคอลทใชวธนไดแก โพรโตคอล TCP
สวนของโครงงานนไดเลอกใชโพรโตคอล TCP เพอเปนพนฐานในการสอสารกนระหวางโปรแกรมทจะท าการพฒนาในระบบ เนองจากมขอดดงไดกลาวไวขางตน
7
รปท 2.2 ขนตอนการสอสารระหวางเซรฟเวอร-ไคลเอนตผานโพรโตคอล TCP
จากภาพแสดงใหเหนถงการสอสารเบองตนของเซรฟเวอร-ไคลเอนตผานโพรโตคอล TCP ซงสงเกตไดวาขนตอนแรกจะมการรองขอการเชอมตอกนไปมากอนเมอท าการเชอมตอเรยบรอยแลวกจะมการสอสารขอมลระหวางกนขน เมอจบการสอสารจะสง FIN,ACK เพอยตการเชอมตอ
2.2.3 Connectionless การตดตอสอสารแบบทฝ งผสงไมตองรอใหผรบยอมรบการเชอมตอกอนทจะท า
การสงขอมล ไมมการสราง Connection ขนกอนทจะท าการตดตอ หากเปรยบเทยบกจะเทยบไดกบการสงจดหมายนนเอง ซงโพรโตคอลทใชวธนไดแก โพรโตคอล UDP
2.2.4 คลาส (Class) ทส าคญในการเขยนโปรแกรมทางเนตเวรค การเขยนโปรแกรมทางเนตเวรคจะมคลาสเฉพาะทจ าเปนจะตองศกษาและท า
ความเขาใจซงจะยกตวอยางคลาสทใชในการพฒนาโครงงานดงน คลาส IP Address เปนคลาสทเกบขอมล Address เพอใชส าหรบอางองท
อย ของเคร องทตองการจะตดต อ ซ งการเรยกใชจะอย ต า แหนง Namespace System.Net
8
ตารางท 2.1 ฟงกชนส าคญของคลาส IP Address ฟงกชน ค าอธบาย
Parse ฟงกชนส าหรบแปลง String ขอความ ip address ทสงเขามาแปลงและสงออกไปเปนตวแปรชนด IP Address
คลาส IPEndPoint เปนคลาสทเกบขอมลคลายกบคลาส IP Address แต
เพมการเกบคา Port เพอใชอางองทอยเฉพาะเจาะจงภายในเครองเปาหมาย ซงการเรยกใชจะอยต าแหนง Namespace System.Net
ตารางท 2.2 ตวแปรส าคญของคลาส IPEndPoint
ตวแปรภายในคลาส ค าอธบาย Any ตวแปรอางองถง IP ทต งไวในเครอง Loopback ตวแปรอางองเปน loopback ของเครอง
คลาส Encoding การสงขอมลคลาส Socket จ าเปนจะตองขอมลออกไปเปน Byte ซงคลาสนจะใชส าหรบแปลงขอมลจากชนดหนงเปนอกชนดหนง ทอยจะอยใน Namespace System.Text
ตารางท 2.3 ฟงกชนส าคญของคลาส Encoding
ฟงกชน ค าอธบาย GetBytes แปลงขอมลเปน Byte GetString แปลงขอมลเปน String
คลาส Socket เปนคลาสส าหรบสงขอมลทางเนตเวรค ซงการเรยกใชจะอยต าแหนง Namespace System.Net.Socket
9
ตารางท 2.4 ฟงกชนส าคญของคลาส Socket ฟงกชน ค าอธบาย Bind ฟงกชนอยในสวนของเซรฟเวอรใชส าหรบตงคาตวแปร Socket ขนกบ
เซรฟเวอร Listen ฟงกชนอยในสวนของเซรฟเวอรใชส าหรบรอการรบ Connect จากไคลเอนต Accept ฟงกชนอยในสวนของเซรฟเวอรใชส าหรบยอมรบการ Connect จากไคลเอนต Send ฟงกชนส าหรบสงขอมลสามารถใชกบทงสวนของเซรฟเวอรและไคลเอนต
Receive ฟงกชนส าหรบรบขอมลสามารถใชกบทงสวนของเซรฟเวอรและไคลเอนต Close ฟงกชนส าหรบปดการตดตอทงสวนของเซรฟเวอรและไคลเอนต
2.3 พนฐานการรบ-สงไฟล
2.3.1 การสงไฟล ขนตอนในการสงไฟลจะเกดขนหลงจากเรมการเชอมตอกนระหวางเซรฟเวอร
และไคลเอนตเรยบรอยแลว ซงสวนทใจความส าคญกคอจะตองน าเอาไฟลทจะสงน ามาแปลงขอมลออกไปเปน Byte และสงไปยงอกฝายแลววนลปสงขอมลไปจนครบขนาดของขอมล สามารถอธบายเปน Flow ไดดงน
10
รปท 2.3 Flow Chart การสงไฟล
จากรปเมอเรมกระบวนการสงไฟลจะตองมการสงขนาดของไฟลไปยงฝายตรงขามเผอใหอกฝายทราบวาขนาดของไฟลทจะท าการสงไปนนมขนาดเทาไหร ฝายตรงขามจะไดท าการรบไฟลไดอยางถกตอง ถดมากจะมกระบวนการในการตรวจสอบขอมลทสงวาสงไดครบแลวหรอไม กอนทจะท าการสงขอมลไปเมอสงแลวกจะเขาสกระบวนการตรวจสอบขอมลเปนลปแบบนไปเรอยๆ จนสงครบตามขนาดของไฟลกจะจบกระบวนการสงไฟล
2.3.2 การรบไฟล การรบขอมลกจะตองรบจ านวนขนาดของไฟลทจะรบมากอน จากนนเมอรบ
ขอมลเขามาเปน Byte วนลปรบขอมลจนครบตามจ านวนขนาดของไฟลสามารถอธบายเปน Flow ไดดงน
11
รปท 2.4 Flow Chart การรบไฟล
จากรปเมอเรมกระบวนการรบไฟลจะตองมการรบขอมลขนาดของไฟลทจะรบกอนเพอสามารถน ามาใชในการรบไฟลทงหมดไดอยางถกตอง ถดมากจะมกระบวนการในการตรวจสอบขอมลทรบวารบไดครบตามขนาดไฟลแลวหรอไม กอนทจะท าการรบขอมลแลวกจะเขาสกระบวนการตรวจสอบขอมลเปนลปแบบนไปเรอยๆ จนรบขอมลครบตามขนาดของไฟลกจะจบกระบวนการรบไฟล
12
2.4 ฟงกชนแฮช(HASH) [5] ฟงกชนแฮช(HASH) คอวธการอยางหนงซงท าใหขอมลทงหมดกลายเปนขอมลใหมซง
มจ านวนเลกมปฏสมพนธ ซงขอมลใหมดงกลาวเปรยบไดกบเปนลายนวมอของขอมลหรอลายเซนนนเอง วธการของแฮชนนสวนใหญจะเปนการแบงยอยขอมลและผสมขอมล ยอยทงหมดเขาดวยกนเพอใหไดผลลพธสดทาย เรยกไดหลายแบบเชน ผลบวกแฮช (hash sum), คาแฮช (hash value), รหสแฮช (hash code) เปนตน
ในโครงงานจะใชฟงกชนแฮชของ MD5 ในการตรวจสอบความถกตองของขอมลซงแฮช มหลายแบบใหเลอกใชเชน SHA-1, MD5, CRC32
2.5 ฐานขอมล [2]
ระบบฐานขอมล(Database) คอสถานทเกบหรอบนทกขอมลเพอใชในองคกรหรอใชรวมกบโปรแกรมคอมพวเตอร โดยขนาดหรอรปแบบของฐานขอมลจะอยทความจ าเปนในการใชงานของแตละองคกร ฐานขอมลสามารถบนทกขอมลทส าคญรวมไปถงสามารถเรยกดขอมล ลบ แกไข หรอเพมขอมลตางๆตามทตองการได
2.5.1 องคประกอบของฐานขอมล ระบบจดการฐานขอมลประกอบดวย 4 สวนดงน 2.5.1.1 ขอมลหมายถงขอมลทส าคญทถกจดเกบไวในฐานขอมล เพอให
สามารถเรยกหรอน ามาใชไดอกในภายหลง 2.5.1.2 ฮารดแวรสวนประกอบตางๆซงสามารถจบตองไดน ามารวมกนเพอให
สามารถใชงานฐานขอมลไดโดยการใชงานฐานขอมลกมขอก าหนดความตองการพนฐานทางฮารดแวรดวย
2.5.1.3 ซอฟตแวรหมายถงระบบทใชจดการฐานขอมลโดยไมตองยงเกยวกบสวนของฮารดแวร
2.5.1.4 ผใช ผใชงานแบงออกเปน 3 ระดบ - ผใชงานทวไปคอผทม สวนเกยวของกบการใชฐานขอมล แตจะใช
ผานโปรแกรมทตดตอกบฐานขอมลอกขน ท าใหไมตองมความรในภาษา SQL กสามารถใชงานได
- ผพฒนาโปรแกรมคอผทพฒนาโปรแกรมใหใชงานรวมกบฐานขอมลท าหนาทพฒนาโปรแกรมดวยภาษาตางๆเชน C#, VB.net, PHP เปนตน
- ผดแลฐานขอมลคอผทท าหนาทดแลระบบฐานขอมลใหมความพรอมตอการใชงานเสมอๆ โดยมากจะถกเรยกวา Database Admin
13
2.5.2 ค าสงพนฐานในการจดการฐานขอมล (Query) ในการจดการฐานขอมลเชน เรยกดขอมล แกไขขอมล หรอลบขอมล จ าเปนทจะตองมการปอนค าสงเฉพาะโดยทวไปหลกๆจะม 4 ประเภทดงน
- Select ใชเพอดงขอมลทตองการ - Update ใชเพอแกไขขอมลทตองการ - Insert ใชเพอเพมขอมลทตองการ - Delete ใชเพอลบขอมลทตองการ โดยทงหมดนจดวาเปนภาษาชอ SQL ยอมาจาก Structured Query
Language เปนภาษาทใชส าหรบจดการฐานขอมล ผทจะใชงานฐานขอมลจงควรทจะเรยนรและมความสามารถในการใชงานภาษา SQL ไดจงจะสามารถใชงานฐานขอมลไดอยางมประสทธภาพ
รปท 2.5 ตวอยางการดงขอมลจากฐานขอมลโดยใชค าสง Select
14
บทท 3 การออกแบบระบบ
3.1 ภาพรวมของระบบ
ระบบสงไฟลอตโนมต เปนระบบทถกออกแบบมาเพอใหสามารถแกไขปญหาในสวนตางๆทเกดขนเนองจากมการควบคมการสงขอมลจากสวนกลางท าใหการสงขอมลไปยงปลายทางสามารถเกบผลของการท างานการสงขอมลได อกทงเมอเกดปญหาขนผดแลระบบจะสามารถตรวจสอบปญหาเบองตนไดจากผลการสงขอมล (Log) ทเกบไววาการสงขอมลไปยงปลายทางในแตละจดสงส าเรจหรอไม ซงหากมปญหาปญหาดงกลาวทเกดขนเกดจากขอผดพลาดใดอกทงยงลดขนตอนการท างานทซ าซอนเนองจากสามารถตงเวลาในการสงขอมลไดโดยอตโนมต ผดแลระบบจงไมจ าเปนทจะตองดแลระบบตลอดเวลา
Client
Server Console
Client
Client
รปท 3.1 ภาพการท างานโดยรวมของระบบ
จากรปท 3.1 ภาพรวมการท างานของระบบสงไฟลอตโนมตจะมเซรฟเวอร(Server) เปนศนยกลางการควบคมโดยสวนของเซรฟเวอรจะคอยตรวจสอบงานในฐานขอมลวามงานทตองสงหรอไม หากถงเวลาทตงไวกจะเรมตนการสงไฟลไปยงไคลเอนต(Client)ตามรายการท
15
ก าหนดและเขยน log เมอสนสดการท างาน ในสวนคอนโซล (Console) เปนสวนทไวใหผดแลระบบตรวจสอบ, ตงคาการท างานและสงไฟลหลกไปยงเซรฟเวอร
3.1.1 ขอดของระบบทจดการจากสวนกลางทงหมด เนองจากปญหาตางๆทพบท าใหการออกแบบระบบโดยรวมจะถกควบคมจาก
สวนกลางทงหมดโดยการควบคมจากสวนกลางมขอดดงน - -ระบบสามารถรองรบการเปลยนแปลง IP Address ไดทงเซรฟเวอรหรอ
ไคลเอนต หากมการเปลยนแปลงกจะไมสงผลกระทบมาก สามารถแกไขไดจากทเซรฟเวอรเพยงจดเดยว
- -ระบบสามารถเกบผลของการสงไฟลไดงาย เพราะการสงไฟลจะถกสงจากเซรฟเวอรไปยงไคลเอนตเพยงเสนทางเดยว เพราะฉะนนผลของการสงไฟลและเวลาทบนทกจะอางองจากสวนของเซรฟเวอรเทานน
3.2 องคประกอบของระบบ
ระบบสงไฟลอตโนมตมองคประกอบโดยแบงออกเปน 3 สวนดงน 3.2.1 Server
การท างานของระบบจะมเซรฟเวอรเปนหวใจหลกในการท างานเนองจากเปนสวนทท าหนาทสงไฟลไปยงเครองลกขายทงหมดตามเวลาทไดก าหนดไว โดยลกษณะการท างานจะท างานเปนเซอรวสซงจะไมมอนเตอรเฟสใหใชงานเนองจากท างานอยบนเครองเซรฟเวอรการควบคมการท างานในการตงคาหรอก าหนดคาตางๆนนจะถกใชงานผานโปรแกรมในสวนของคอนโซลซงสามารถตดตงอยทเครองใดๆกไดในเครอขายเดยวกบเซรฟเวอรเมอเซอรวสเซรฟเวอรท างานจะท าหนาทเทยบขอมลในตารางงานเพอตรวจสอบวามงานใดๆทตรงกบเวลาในปจจบน จงเรมตนกระบวนการท างานการสงไฟลไปยงเครองลกขาย
3.2.2 Client เปนสวนทจะท างานโดยคอยรอรบการเชอมตอจากเซรฟเวอรเพอรบการสงไฟล
จาก เซรฟเวอรโดยลกษณะการท างานจะเปนเซอรวสเชนเดยวกบเซรฟเวอรโดยการท างานจะท างานอยเบองหลงไมมหนาตาอนเตอรเฟสใหใชงาน เนองจากสวนของไคลเอนตจะก าหนดใหท างานโดยอตโนมตเนองจากไมมผดแล
3.2.3 Console เปนโปรแกรมในสวนทใชในการตงคาระบบและเพมงานทจะใหเซรฟเวอรสง
ไฟลไปยงไคลเอนตตามเวลาทก าหนดเปรยบเสมอนเปนหนาตางอนเตอรเฟสของเซรฟเวอร ซงจะสามารถตดตงทเครองใดๆกไดทอยภายในเครอขายเดยวกบเซรฟเวอร
16
3.3 การสอสารภายในระบบ การสอสารกนระหวางโปรแกรมภายในระบบจะใชโพรโตคอลทสรางขนเองมชอวา
Automatic File System Protocol (AFSP) ในการสอสาร โดยจะจ าแนกหรอแยกท างานดวยการใช Message Header ทมขนาด 1 Byte
ตารางท 3.1 Message Header ในสวน Sender ชอ ขอมลทสง ค าอธบาย
Send File &H11 เมอตองการสงไฟลจะมสวน Header เปนขอมลดงน
3.3.1 การสงไฟล (Send File)
รปท 3.2 รปแบบการสอสารเพอสงไฟลในโพรโตคอล
17
ตารางท 3.2 รายละเอยด Command ในการสงไฟล (Send File) ชอ ขนาดขอมล ค าอธบาย
Command Header 1 Byte สวนทจะแสดงใหอกฝายรบทราบวาจะตองรบไฟล File name Length 2 Byte ชอของไฟลทจะสง (65,536) File name ขอมลชอไฟล ขอมลชอของไฟลทสง File Length 4 Byte ขนาดของไฟลทจะสง (4,294,967,296) Hash Length 2 Byte ขนาดของคา Hash (65,536) Hash ขอมล Hash ขอมล Hash ของไฟลทสง Check sum 1 Byte สวนทใชตรวจสอบความถกตองของขอมลทสง
ตารางท 3.3 รายละเอยด Command ในการตอบกลบ (Client Status)
ชอ ขนาดขอมล ค าอธบาย Command Header 1 Byte ขอมลจะเหมอนกบขอมลทสงมา Status 1 Byte แสดงขอมลสถานะ การท างาน MessageLength 2 Byte ขนาดของขอความ (65,536) Message จ านวนอกษร สวนทสงขอความบางอยางกลบเชนขอความ
ผดพลาด Check sum 1 Byte สวนทใชตรวจสอบความถกตองของขอมลทตอบกลบ
ตารางท 3.4 รายละเอยดสวน Status ชอ ขอมลทสง ค าอธบาย
Ready &H1 ใชสงเมอตรวจสอบคา Check sum ไมพบปญหาใดๆ
Complete &H2 สงเมอตรวจสอบคา Hash ของไฟลวาตรงกน Error &H3 สงเมอการตรวจสอบ Check sum หรอ Hash ม
ปญหา
18
3.4 ขนตอนการท างานของโปรแกรม 3.4.1 ขนตอนการท างานของเซรฟเวอรสงไฟลไปยงไคลเอนต
รปท 3.3 แสดงขนตอนการท างานโปรแกรมเซรฟเวอร
19
ขนตอนการท างาน - เรมการท างานจะตรวจสอบตารางเวลาทจะตองท าการสงไฟลวาม
งานทตองท าหรอไมหากไมระบบกจะท าการวนเพอตรวจสอบเปนลปตอไป
- เมอพบวามงานทตองท ากจะท าการตดตอไปยงไคลเอนตเพอเตรยมทจะสงไฟล
- หากไมสามารถตดตอได ระบบกจะท าการบนทกขอมลและวนตดตอไคลเอนตตอๆไปตามจ านวนขอมลรอบทท าการตงคาไว
- หากตดตอไดระบบกจะท าการสงไฟลใหกบไคลเอนต - หากเกดขอผดพลาดใดๆในการสงไฟลระบบกจะท าการบนทกผล
การสงไฟลและวนลปสงไฟลไปยงไคลเอนตใหมตามจ านวนรอบทตงคาไว
- หากสงไฟลส าเรจทายทสดระบบกจะบนทกขอมลการสงไฟลและจบการท างานลง
20
3.4.2 ขนตอนการท างานไคลเอนตรบไฟลเซรฟเวอร
รปท 3.4 แสดงขนตอนการท างานโปรแกรมไคลเอนต
21
ขนตอนการท างาน - เรมตนการท างานสวนของไคลเอนตจะเปดรอการเชอมตอจาก
เซรฟเวอร หากไมมการเชอมตอกจะวนรอการเชอมตอ - เมอเซรฟเวอรเชอมตอเขามากจะรบไฟลจากเซรฟเวอรหากรบไฟล
ไมไดหรอมปญหาใดๆกจะท าการสงขอมลทมปญหากลบไปยงเซรฟเวอรและจบการท างานลง
- หากรบไฟลเสรจสมบรณกจะท าการตรวจสอบความถกตองของไฟลหากตวไฟลมขอผดพลาดใดๆกจะสงขอมลกลบไปยงเซรฟเวอรและจบการท างานลง
- หากการตรวจสอบไฟลถกตองสมบรณกจะสงขอความไปยงเซรฟเวอรวาการรบไฟลถกตองและเสรจสมบรณและจบการท างานลง
22
3.4.3 ขนตอนการท างานคอนโซลอพโหลดไฟลไปยงเซรฟเวอร
รปท 3.5 แสดงขนตอนการสงไฟลจากคอนโซลไปยงเซรฟเวอร
23
ขนตอนการท างาน - เรมตนการท างานสวนของคอนโซลจะท าการเชอมตอไปเซรฟเวอร
หากไมสามารถเชอมตอไดกจะแสดงขอมลและจบการท างานทนท - เมอเมอสามารถเชอมตอกบเซรฟเวอรไดคอนโซลกจะท าการสง
ไฟลไปยงเซรฟเวอร - ระหวางการสงไฟลหากเกดปญหาใดๆในการสงไฟลกจะท าการสง
ขอผดพลาดนนไปยงเซรฟเวอรเพอบนทกผล - หาการสงไฟลเสรจสมบรณกฝ งเซรฟเวอรจะสงผลการตรวจสอบ
ไฟลมายงคอนโซล - ทายทสดคอนโซลกจะแสดงผลการตรวจสอบไฟลทไดจาก
เซรฟเวอรและกระบวนการจบการท างานลง 3.5 Database Diagram
รปท 3.6 Database Diagram ของระบบ
24
3.6 Data Dictionary
ตารางท 3.5 พจนานกรมขอมลตาราง Job Fieldname Description Data Type Allow NULL PK/FK
JobID รหสงานทก าหนด nvarchar(50) PK JobName ชองานทก าหนด nvarchar(50) Desciption รายละเอยดของงานท
ก าหนด nvarchar(MAX) NULL
IsEnable เปด-ปดการท างาน bit NULL LastRun เวลาท างานครงลาสด datetime NULL NextRun เวลาท างานในครงตอไป datetime NULL CreateDate เวลาทสรางงานขน datetime NULL
ตารางท 3.6 พจนานกรมขอมลตาราง JobSchedule Fieldname Description Data Type Allow NULL PK/FK
ScheduleID รหสการตงเวลางาน int PK JobID รหสงาน nvarchar(50) FK Name ชอ varchar(50) Discription รายละเอยด varchar(200) NULL Type ประเภท int IsEnable เปด-ปดการท างาน bit OneTimeRunAt เวลาในการท างานครงเดยว datetime NULL OccursType ประเภทการท างาน int Referent1 การตงคาขอมล1 varchar(50) NULL Referent2 การตงคาขอมล2 varchar(50) NULL OccursRunAt เวลาทท างานแบบรายวน datetime NULL StartDate เวลาทเรมท างาน datetime NULL CreateDate เวลาทสราง datetime NULL
25
ตารางท 3.7 พจนานกรมขอมลตาราง JobTaget Fieldname Description Data Type Allow NULL PK/FK
TargetID รหสเปาหมาย int PK JobID รหสงาน nvarchar(50) FK TargetType รายละเอยดของเปาหมาย varchar(15) TargetName ชอเปาหมาย varchar(50) TargetClientID รหสเครองเปาหมาย varchar(50) TargetDiscription รายละเอยดของเปาหมาย varchar(50) NULL
ตารางท 3.8 พจนานกรมขอมลตาราง JobAction
Fieldname Description Data Type Allow NULL PK/FK ActionID รหสการท างาน int PK JobID รหสงาน nvarchar(50) FK ActionTypeID รหสประเภทการท างาน int FK ActionReferent1 รายละเอยด nvarchar(MAX) NULL ActionReferent2 รายละเอยดเพมเตม nvarchar(MAX) NULL
ตารางท 3.9 พจนานกรมขอมลตาราง JobActionType
Fieldname Description Data Type Allow NULL PK/FK ActionTypeID รหสประเภทการท างาน int PK ActionTypeName ชอของประเภทการท างาน nvarchar(50)
ตารางท 3.10 พจนานกรมขอมลตาราง Log
Fieldname Description Data Type Allow NULL PK/FK LogID รหสผลการท างาน int PK LogTime เวลาผลการท างาน datetime LogLevel ระดบของผลการท างาน nvarchar(50) ClientIP IP Address ของเครอง
ไคลเอนต nvarchar(50) NULL
ActionTypeID รหสประเภทของการท างาน int NULL FK Description รายละเอยด nvarchar(500) NULL
26
ตารางท 3.11 พจนานกรมขอมลตาราง Client Fieldname Description Data Type Allow NULL PK/FK
ClientIP หมายเลขไอพเครองไคลเอนต
nvarchar(50) PK
ClientName ชอของไคลเอนต nvarchar(MAX) NULL ComputerName ชอของเครองคอมพวเตอร nvarchar(50) NULL MACAddress Mac Address เครอง
ไคลเอนต nvarchar(50) NULL
ตารางท 3.12 พจนานกรมขอมลตาราง Group
Fieldname Description Data Type Allow NULL PK/FK GroupID รหสกลมงาน int PK GroupName ชอของกลมงาน nvarchar(50) NULL
ตารางท 3.13 พจนานกรมขอมลตาราง Group_Client
Fieldname Description Data Type Allow NULL PK/FK GroupID รหสกลมงาน int PK,FK ClientIP หมายเลขไอพเครอง
ไคลเอนต nvarchar(50) PK,FK
ตารางท 3.14 พจนานกรมขอมลตาราง User_Password
Fieldname Description Data Type Allow NULL PK/FK UserID รหสผใชงาน nvarchar(20) PK Password รหสผานของผใชงาน nvarchar(MAX) CreateDate เวลาทสรางบญชใชงาน datetime NULL LastLogin เวลาสดทายทเขาใชงาน datetime NULL
ตารางท 3.15 พจนานกรมขอมลตาราง Configuration Fieldname Description Data Type Allow NULL PK/FK
MaxThread จ านวนหนวยประมวลผลทสราง
int
TryToSend จ านวนครงทพยายามสง int
27
ตารางท 3.16 พจนานกรมขอมลตาราง Files Fieldname Description Data Type Allow NULL PK/FK
FileName ชอไฟล nvarchar(200) PK FileSize ขนาดไฟล nvarchar(50) NULL FileLocalPath ต าแหนงทอยของไฟล datetime NULL
28
บทท 4 ผลการด าเนนงาน
4.1 คอนโซลหนาตางผดแลระบบ
4.1.1 หนาตางการเขาใชงานระบบ
รปท 4.1 หนาตางยนยนการเขาใชงานระบบ
จากรปท 4.1 เมอท าการเปดโปรแกรมจะแสดงหนาตางการเขาใชงานระบบโดยจะก าหนดใหกรอกขอมลไอพเซรฟเวอร,พอรต,รหสผใชงานและรหสผานผใชงาน กอนทจะกดปม OK เพอใหโปรแกรมสงคาไปประมวลผลทเซรฟเวอรเพอรอการตรวจสอบความถกตองกอนจะเขาสหนาจอหลกของโปรแกรม
4.1.2 หนาตางหลกของโปรแกรม
รปท 4.2 หนาตางหลกของโปรแกรม
29
จากรปท 4.2 เมอเขาผานการยนยนตวตนเพอเขาใชงานระบบกจะก าหนดเขาสหนาตางหลกเพอเรยกใชงานระบบตอๆไป
4.1.3 หนาตางการตงคา
รปท 4.3 หนาตางการตงคา
จากรปท 4.3 เมอเรยกหนาตาง Config จะแสดงขอมลดงภาพซงมความส าคญดงน
- Max Thread เปนการก าหนดจ านวนเทรดทจะใหโปรแกรมสรางขนสงสดจ านวนใดๆ
- Try to send เปนการก าหนดจ านวนครงทโปรแกรมจะท าการสงไฟลยงเครองไคลเอนต หากสงไฟลไมไดในครงแรก
4.1.4 หนาตางจดการบญชผใชงาน
รปท 4.4 หนาตางจดการบญชผใชงาน
30
จากรปท 4.4 หนาตางจดการเพมหรอลดผใชงานโปรแกรม 4.1.5 หนาตางจดการไคลเอนต
รปท 4.5 หนาตางจดการไคลเอนต
จากรปท 4.5 ท าหนาทจดการเกยวกบการเพมเครองไคลเอนตและกลมของไคลเอนต
4.1.6 หนาตางจดการตารางงาน
รปท 4.6 หนาตางจดการตารางงาน
31
จากรปท 4.6 เปนหนาส าหรบเพมงานทจะใหเซรฟเวอรสงไฟลตามเวลาทก าหนดโดยสามารถเพม,แกไขและลบงานได ซงจะมสวนทใชจดการตอดงน
หนาตางเพมการจดการงาน
รปท 4.7 หนาตางเพมการจดการงาน
รปท 4.7 หนาเพมการจดการงานจะใชส าหรบเพมรายละเอยดของงานม 3 แถบ(Tab)
- Action สวนจดการในเรองของการเพม,ลบไฟลทตองการใหเซรฟเวอรสง
- Target สวนจดการใหเซรฟเวอรสงไฟลไปยงทเครองใดหรอกลมใด - Schedules สวนการจดการเรองตงเวลาในการสงใหเซรฟเวอรเรม
สงไฟลเมอตองการเพมไฟลยงเครองเซรฟเวอรใหคลกทปม Add จะแสดงหนาตางตอไป
32
หนาตางเพมไฟล
รปท 4.8 รปหนาตางเพมไฟล
จากรปท 4.8 แสดงไฟลทมอยบนเครองเซรฟเวอรและสามารถเพมไฟลไปยงเซรฟเวอรไดคลกทปม Select File
หนาตางเพมการจดการงานแถบTarget
รปท 4.9 หนาตางเพมการจดการงานแถบTarget
33
จากรปท 4.9 เปนสวนจดการรายละเอยดของงานในสวนของเครองเปาหมายทตองการใหเซรฟเวอรสงไฟลไปโดยก าหนดไดวาจะใหสงไปยงเครองไคลเอนตใดหรอกลมของไคลเอนตใด
หนาตางเพมการจดการงานแถบSchedules
รปท 4.10 หนาตางเพมการจดการงานแถบSchedules
จากรปท 4.10 เปนสวนเพมรายละเอยดการจดการงานสวนของเวลาทจะตงใหเซรฟเวอรท าการสงไฟลโดยสามารถกดปมเพม, แกไข, ลบ
หนาตางตงคาเวลา
34
รปท 4.11 หนาตางตงคาเวลา
จากรปท 4.11 ใชเพอก าหนดการตงคาเวลาใหกบงาน 4.1.7 หนาตางการอพโหลดไฟล
35
รปท 4.12 หนาตางอพโหลดไฟล
จากรปท 4.12 ใชเพออพโหลดไฟลจากคอนโซลไปเซรฟเวอรเพอใหเซรฟเวอรสงไฟลสงไฟลทตองการไปยงเครองไคลเอนตตอไป
4.1.8 หนาตางตรวจสอบผลการสงไฟล
36
รปท 4.13 แสดงหนาตางตรวจสอบผลการสงไฟล
จากรปท 4.13 เปนสวนทใชตรวจสอบผลของการสงไฟลจากเซรฟเวอรไปยงไคลเอนตแตละเครองวามผลการสงเปนเชนไร ส าเรจหรอมปญหาท าใหไมสามารถสงไฟลไดกจะสามารถตรวจสอบเบองตนไดจากสวนน
4.2 ทดสอบสงไฟลเซรฟเวอร-ไคลเอนต และตรวจสอบขอมล
ท าการสอบการท างานของโปรแกรมสงไฟลจากเซรฟเวอรไปยงไคลเอนต โดยตรวจสอบขอมลทถกสงผานเครอขายออกไปวาตรวจตามโพรโตคอลทออกแบบไวหรอไม โดยใชโปรแกรม Wire shark ดกจบขอมล
37
รปท 4.14 รายละเอยดไฟลทท าการทดสอบ
จากรปท 4.14 แสดงรายละเอยดของไฟลทจะท าการสงจากเครองเซรฟเวอรไปยงไคลเอนตเปนไฟล txt ซงมเนอของขอมลดงภาพและมขอมลยอยดงน
File name: rate.txt File size: 2,268 Bytes MD5SUM: A21A361C69035ECCC2D66E3AC6ABF34A
38
รปท 4.15 ขอมลการเชอมตอระหวางโปรแกรมสวนของเซรฟเวอรและไคลเอนต
จากรปท 4.15 เมอเรมการเชอมตอจากเครองเซรฟเวอรไอพ 192.168.2.2 ท าการเชอมตอไปยงไคลเอนตไอพ 192.168.2.9 ดวย port 24824 จากภาพเปนกระบวนการ 3 way handshake เพอเรมการเชอมตอระหวางกนดวยการสง SYN,ACK
รปท 4.16 ขอมลการสงขอมลทใชสอสารระหวางเซรฟเวอรไปยงไคลเอนต
39
จากรปท 4.16 เซรฟเวอรท าการสงขอมลเพอใชสอสารเพอบงบอกใหไคลเอนตทราบวาตองการสงไฟล โดยขอมลทสงออกไปทงหมด 50 Bytes ซงแปลงเปนเลขฐาน 16 ไดดงน 11 00 08 72 61 74 65 2e 74 78 74 00 00 08 dc 00 20 41 32 31 41 33 36 31 43 36 39 30 33 35 45 43 43 43 32 44 36 36 45 33 41 43 36 41 42 46 33 34 41 c5 ซงเมอท าการตรวจสอบขอมล Command ในการสงไฟลจะถกแบงออกดงน
ตารางท 4.1 แสดงขอมลจากเซรฟเวอร (Command Send File) ชอ ขนาดขอมล ขอมลทสงออก
(Hex) ค าอธบาย
Command Header
1 Byte 11 แสดงความตองการสงไฟล
File name Length
2 Byte 00 08 ชอไฟล rate.txt จะไดจ านวน 8 อกษร
File name ขอมลชอไฟล 72 61 74 65 2e 74 78 74
เมอแปลงออกเปนอกษรจะได rate.txt ซงเปนชอไฟล
File Length 4 Byte 00 00 08 (Dec 2268)
ขนาดของไฟลซงมขนาด 2,268 Bytes
Hash Length 2 Byte 00 00 20 (Dec 32)
จ านวนอกษรของ MD5SUM ไฟล
Hash ขอมล Hash 41 32 31 41 33 36 31 43 36 39 30 33 35 45 43 43 43 32 44 36 -36 45 33 41 43 36 41 42 46 33 34 41
เมอแปลงออกเปนอกษรจะได A21A361C69035ECCC2D66E3AC6 ABF34A ซงกคอ Hash ของไฟล
Check sum 1 Byte C5 การน าขอมลทก Bytes มา XOR กนเพอใหไดคา Check sum ส าหรบการตรวจสอบ error
40
รปท 4.17 ขอมลการตอบรบการท างานจากไคลเอนตไปยงเซรฟเวอร
จากรปท 4.17 เมอไคลเอนตตรวจสอบขอมลจากเซรฟเวอรกจะท าการสงขอมลกลบเพอแจงสถานะความพรอมในการรบไฟล โดยสงขอมลออกไป 5 Bytes ซงแปลงเปนเลขฐาน 16 ดงน
11.01.00.00.10 เมอท าการตรวจสอบขอมล Command ในการตอบรบ (Client Status) จะแบงไดดงน ตารางท 4.2 แสดงขอมลจากไคลเอนต (Command Client Status Ready) ชอ ขนาดขอมล ขอมลทสงออก
(Hex) ค าอธบาย
Command Header
1 Byte 11 ตอบรบการยนยนการสงไฟล
Status Byte 01 ยนยนสถานะพรอมรบไฟล(Ready)
Message Length 2 Byte 00 00 จ านวนอกษรขอความทสง Message จ านวนอกษร อกษรทงหมดทสง Check sum 1 Byte 10 การน าขอมลทก Bytes มา XOR
กนเพอใหไดคา Check sum ส าหรบการตรวจสอบ error
41
รปท 4.18 แสดงขอมลการสงไฟลจากเซรฟเวอรไปยงไคลเอนต
จากรปท 4.18 เมอไคลเอนตสงสถานะพรอมรบไฟล เซรฟเวอรกจะท าการสงไฟลใหในทนทโดยจากรปจะแสดงใหเหนวาขอมลทถกสงมจ านวน 2,268 Bytes ตามขนาดของไฟลตน
รปท 4.19 แสดงขอมลยนยนการตรวจสอบความถกตองของไฟล
42
จากรปท 4.19 เมอไคลเอนตรบไฟลทงหมดครบตามขอมลแลวกจะท าการ Check hash ของไฟลเพอเทยบกบขอมล(Command Send File) ทไดรบจากเซรฟเวอรกอนหนานเมอพบวาขอมลไมมปญหาใดๆกจะสง Command Status กลบไปยงเซรฟเวอรอกครง โดยสงขอมลออกไป 5 Bytes ซงแปลงเปนเลขฐาน 16 ดงน
11.02.00.00.13 เมอท าการตรวจสอบขอมล Command ในการตอบรบ (Client Status) จะแบงไดดงน ตารางท 4.3 แสดงขอมลจากไคลเอนต (Command Client Status Complete) ชอ ขนาดขอมล ขอมลทสงออก
(Hex) ค าอธบาย
Command Header
1 Byte 11 ตอบรบการยนยนการสงไฟล
Status Byte 02 ยนยนสถานะพรอมรบไฟล(Complete)
Message Length 2 Byte 00 00 จ านวนอกษรขอความทสง Message จ านวนอกษร อกษรทงหมดทสง Check sum 1 Byte 13 การน าขอมลทก Bytes มา XOR
กนเพอใหไดคา Check sum ส าหรบการตรวจสอบ error
รปท 4.20 เซรฟเวอรท าการยตการเชอมตอ
43
จากรปท 4.20 เมอไดรบขอมลสถานะเสรจสมบรณจากไคลเอนต เซรฟเวอรจะเขาสกระบวนการยตการเชอมตอกบไคลเอนตโดยขนตอนการสง FIN,ACK ระหวางทง 2 ฝายเปนการยตการเชอมตอกนโดยสมบรณ
รปท 4.21 ผลการสงไฟล
จากรปท 4.21 เมอท าการตรวจสอบผลของการสงไฟลจากเมน Log แสดงใหเหนวาเมอสนสดการสงไฟลจากเซรฟเวอรไปยงไคลเอนตแลวมการเกบ Log การสงไฟลเพอใชตรวจสอบภายหลง
44
บทท 5 สรปผลการด าเนนงาน
5.1 สรปการด าเนนงาน
ในการท าระบบสงไฟลอตโนมตนนไดทดสอบการสงไฟลจากเครองแมขายไปยงเครองลกขายไดจรง ทงยงตรวจสอบโพรโตคอลในการเชอมตอวาตรงตามทออกแบบหรอไม โดยเมอโปรแกรมท าการสงไฟลเรยบรอยแลวจะมการเกบผลการสงไฟล เพอใชตรวจสอบการท างานในภายหลง 5.2 ปญหาการด าเนนงาน
หลงจากไดไดเขยนโปรแกรม ในหลายๆสวนทเกยวเนองกบดาน Network ท าใหทราบวาจะตองมความเขาใจในดาน Network มากจงจะท าใหการเขยนโปรแกรมเปนไปไดอยางราบลนและหลายๆสวนทออกแบบไวเมอไดลงมอท าแลวบางสวนกไมสามารถท าไดตามทออกแบบไวตองมการปรบแกโครงสรางในหลายสวน รวมไปถงปญหาความสะดวกรวดเรวในการสงไฟลเนองดวยวาระบบถกออกแบบใหสงไฟลดวยการตงเวลาจงไมสามารถสงไฟลออกไปในทนท 5.3 แนวทางแกปญหา
ควรศกษาและเขาใจการเขยนโปรแกรมทางดาน Network ใหมากกอนทจะท าโปรแกรมจรงเนองจากหลายๆสวนจะตองใชความรและความเขาใจทลกซงไมใชแคเพยงออกแบบทางความคดแลวจะสามารถท าโปรแกรมตามทออกแบบไดโดยสมบรณ และเพอความสะดวกรวดเรวในการใชงาน โปรแกรมควรสามารถก าหนดใหมการสงไฟลออกไปยงเครองลกขายไดในทนทโดยไมตองตงเวลา 5.4 ขอเสนอแนะเพมเตม
สวนโปรแกรมในสวนของคอนโซลนาจะมการพฒนาใหสามารถใชงานบนบราวเซอรเพอความสะดวกในการใชงานยงขน และดานโปรแกรมของไคลเอนตหากพฒนาใหสามารถใชงานกบระบบปฏบตการนอกเหนอจาก Microsoft windows นาจะมความหลากหลายมากขน
45
เอกสารอางอง
[1] ศฬาณ นชตประสทธชย, การเขยนโปรแกรมบนระบบปฏบตการ GUI. กรงเทพฯ บรษท ซคเซส มเดย จ ากด, 2550. [2] ลาภลอย วานชองกร, เรยนรดวยตนเอง Database Query T-SQL Stored procedure. กรงเทพฯ :บรษท ซเอดยเคชน จ ากด, 2552. [3] จตชย แพงจนทร และ อนโชต วฒพรพงษ, เจาะระบบ Network 3rd Edition. กรงเทพฯ :บรษท ไอดซ พรเมยร จ ากด, 2555. [4] ภมภากร มาโนช, การเขยนโปรแกรมทาง Network ดวยภาษา C#. กรงเทพฯ : บรษท ทเดยกด จ ากด,2553 [5] Hash Function, URL http://en.wikipedia.org/wiki/Hash_function
ก-1
ภาคผนวก ก. ขนตอนการตดตงระบบ
ก-2
ขนตอนการตดตงระบบ
สวนของไฟลภายในแผน CD ประกอบดวย 3 Folder ดงน -Code -Install -Paper
1. การตดตง Automatic File System Server 1.1 ไฟลในสวนการ Install อยทต าแหนง CD/Install/Server ดบเบลคลกท setup.exe
รปท ก.1 แสดงไฟลในการตดตงโปรแกรมสวนเซรฟเวอร
1.2 เมอสง install โปรแกรมจะไดหนาตางดงภาพใหคลกทปม Next
รปท ก.2 แสดงหนาตางการตดตงโปรแกรมสวนเซรฟเวอร
ก-3
1.3 หนาก าหนดต าแหนงตดตงโปรแกรมและกดปม Next เพอไปยงขนตอนตอไป
รปท ก.3 แสดงหนาตางการเลอกต าแหนงตดตงโปรแกรมสวนเซรฟเวอร
ก-4
1.4 หนาตางยนยนการตดตงโปรแกรม กดปม Next เพอยนยนการตดตงโปรแกรม
รปท ก.4 แสดงหนาตางยนยนตดตงโปรแกรมสวนเซรฟเวอร
ก-5
1.5 หนาตางยนยนการตดตงโปรแกรมเสรจสมบรณ
รปท ก.5 แสดงหนาตางการตดตงโปรแกรมสวนเซรฟเวอรเสรจสมบรณ
ก-6
1.6 เปดหนาตาง Window Service เพอตรวจสอบหากโปรแกรมตดตงเรยบรอยจะตองม Service ชอ AutomaticFileSystemServer
รปท ก.6 แสดงหนาตางตรวจสอบ Service ของโปรแกรมสวนเซรฟเวอร 2. การตดตง Automatic File System Client
2.1 ไฟลในสวนการ Install อยทต าแหนง CD/Install/Client ดบเบลคลกท setup.exe
รปท ก.7 แสดงไฟลในการตดตงโปรแกรมสวนไคลเอนต
ก-7
2.2 เมอสง install โปรแกรมจะไดหนาตางดงภาพใหคลกทปม Next
รปท ก.8 แสดงหนาตางการตดตงโปรแกรมสวนไคลเอนต
ก-8
2.3 หนาก าหนดต าแหนงตดตงโปรแกรมและกดปม Next เพอไปยงขนตอนตอไป
รปท ก.9 แสดงหนาตางการเลอกต าแหนงตดตงโปรแกรมสวนไคลเอนต
ก-9
2.4 หนาตางยนยนการตดตงโปรแกรม กดปม Next เพอยนยนการตดตงโปรแกรม
รปท ก.10 แสดงหนาตางยนยนตดตงโปรแกรมสวนไคลเอนต
ก-10
2.5 หนาตางยนยนการตดตงโปรแกรมเสรจสมบรณ
รปท ก.11 แสดงหนาตางการตดตงโปรแกรมสวนไคลเอนตเสรจสมบรณ
2.6 เปดหนาตาง Window Service เพอตรวจสอบหากโปรแกรมตดตงเรยบรอยจะตองม Service ชอ AutomaticFileSystemClient
ก-11
รปท ก.12 แสดงหนาตางตรวจสอบ Service ของโปรแกรมสวนไคลเอนต
3. การตดตง Automatic File System Console 3.1 ไฟลในสวนการ Install อยทต าแหนง CD/Install/Console ดบเบลคลกท setup.exe
รปท ก.13 แสดงไฟลในการตดตงโปรแกรมสวนคอนโซล
3.2 เมอสง install โปรแกรมจะไดหนาตางดงภาพใหคลกทปม Next
ก-12
รปท ก.14 แสดงหนาตางการตดตงโปรแกรมสวนคอนโซล
3.3 หนาก าหนดต าแหนงตดตงโปรแกรมและกดปม Next เพอไปยงขนตอนตอไป
ก-13
รปท ก.15 แสดงหนาตางการเลอกต าแหนงตดตงโปรแกรมสวนคอนโซล
3.4 หนาตางยนยนการตดตงโปรแกรม กดปม Next เพอยนยนการตดตงโปรแกรม
ก-14
รปท ก.16 แสดงหนาตางยนยนตดตงโปรแกรมสวนคอนโซล
3.5 หนาตางยนยนการตดตงโปรแกรมเสรจสมบรณ
ก-15
รปท ก.17 หนาตางแสดงการตดตงโปรแกรมสวนคอนโซลเสรจสมบรณ
3.6 ตรวจสอบ Shortcut โปรแกรมทหนา Desktop เครองวามอยหรอไม
รปท ก.18 การตรวจสอบ Shortcut โปรแกรมคอนโซล
Recommended