Roongtham Ounhanant - msit.mut.ac.th ระบบส่งไฟล์... ·...

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