บทที่ 1 บทนำ
1.1 ความสำคัญและที่มา
ในปัจจุบัน
ระบบเครือข่ายกำลังเข้ามามีบทบาทในทุกที่ไม่ว่าจะเป็นที่บ้าน ที่ทำงาน ในสถานศึกษา
หรือองค์กรต่าง ๆ นอกจากนี้ยังมีซอฟต์แวร์ อุปกรณ์ และแอพพลิเคชั่น
ในการจัดการกับเครือข่ายในรูปแบบกระจายศูนย์มากขึ้น
แม้จะมีการลงทุนในระบบเครือข่ายบรอดแบนด์ความเร็วสูงอย่างต่อเนื่อง
แต่ระบบเครือข่ายที่เป็นอยู่ในปัจจุบันนี้ มีความซับซ้อนเกินไปสำหรับ
"ผู้ใช้" ในการที่จะใช้งานและดูแล ผู้ใช้ทั่วไปต้องการเครือข่ายที่ใช้ง่าย
และเชื่อถือได้ เพื่อการทำงานร่วมกันของคอมพิวเตอร์อื่น ๆ
ในการแลกเปลี่ยนข้อมูลข่าวสาร บริการ ทางเครือข่าย การประมวลผลแบบกระจายศูนย์ (
Distributed Computing ) เป็นเทคโนโลยีที่ช่วยทำให้โปรแกรมประยุกต์ต่าง ๆ
ที่อยู่บนเครือข่ายสามารถทำงานร่วมกันได้สะดวกมากขึ้น
งานบริการและโปรแกรมประยุกต์เหล่านี้นั้นถูกมองเป็นออบเจ็กต์
โดยการที่ออบเจ็กต์ต่าง ๆ ในโปรแกรมเดียวกันจะทำงานร่วมกัน
หรือมีการติดต่อกันระหว่างออบเจ็กต์ด้วยกันนั้นไม่ได้มีความยุ่งยากซับซ้อนมากนัก
เพราะทำงานอยู่ในสภาพแวดล้อมเดียวกัน แต่ในระบบของออบเจ็กต์แบบกระจาย (
Distributed Object ) นั้น
ออบเจ็กต์จะกระจัดกระจายอยู่ทั่วไปในระบบเครือข่ายที่หลากหลายรูปแบบ
สิ่งที่ยากลำบาก คือ การที่จะทำให้โปรแกรมประยุกต์ทั้งหลายเหล่านั้น
สามารถติดต่อสื่อสารกันได้โดยไม่จำเป็นว่าจะต้องทำงานอยู่ในสภาวะแวดล้อมเดียวกัน
บนเครื่องเดียวกัน หรือบนระบบปฏิบัติการต่างกัน
เทคโนโลยีจาวาได้มาทำให้การประมวลผลแบบกระจายศูนย์นั้นเป็นเรื่องที่ง่ายขึ้น
เนื่องจากตัวภาษาจาวาเองนั้นก็สามารถทำงานได้โดยไม่ขึ้นอยู่กับแพลตฟอร์มอยู่แล้ว
ซึ่งตรงกับความต้องการของการประมวลผลแบบกระจายศูนย์
โดยทางบริษัท Sun Microsystems ซึ่งเป็นผู้พัฒนาภาษาจาวา
ก็ได้ใส่ความสามารถในการทำงานในลักษณะของการประมวลผลแบบกระจายศูนย์ไว้ในเทคโนโลยี
Java RMI ( Java Remote Method Invocation )
ซึ่งติดมากับชุดโปรแกรมของภาษาจาวาด้วย
ซึ่งจากความสามารถของภาษาจาวาและแนวคิดของการประมวลผลแบบกระจายศูนย์
ถูกพัฒนามาจากแนวความคิดของ Jini Network Technology ( Linda Systems ตั้งแต่ปี 1982 )
1.2 แนวความคิดของ Jini Network Technology
เป็นเวลาหลายปีมาแล้วที่ผู้คนเฝ้าติดตามแนวความคิดของเทคโนโลยี บ้านอัจฉริยะ
ให้เป็นจริงขึ้นมา เหมือนกับที่เราเห็นในภาพยนตร์แนววิทยาศาสตร์
ที่อุปกรณ์เครื่องใช้ไฟฟ้าต่าง ๆ ล้วนแต่รู้หน้าที่ของมันเมื่อได้รับคำสั่ง
โทรศัพท์จะติดต่อไปยังเลขหมายที่ต้องการได้เอง
มีการค้นหาความผิดปกติในรถยนต์โดยอัตโนมัติ
สามารถแสดงรายการอาหารที่ถูกเลือกพร้อมรายงานว่ายังขาดส่วนผสมใดบ้าง
และสั่งซื้อไปยังร้านขายของชำในทันที แต่ที่จะเป็นมากกว่านั้นก็คือ
เครื่องใช้ไฟฟ้าแต่ละตัวสามารถหยิบยืมประสิทธิภาพของคอมพิวเตอร์มาใช้เมื่อจำเป็น
และจะได้ผลตอบรับในทันที
เพราะอาศัยการทำงานของสัญญาณไร้สายจึงเป็นเครือข่ายที่กว้างขวางกว่าในปัจจุบันมากนัก
และที่สำคัญคือ
จะไม่มีความน่ารำคาญเหมือนดังเช่นอุปกรณ์ต่อเชื่อมคอมพิวเตอร์เดสก์ท้อป ( desktop
) ในปัจจุบัน หรือถ้าจะลองจินตนาการดูว่า คุณได้ไปร่วมประชุมที่ออฟฟิศของลูกค้า
ซึ่งคุณมีหน้าที่ในการนำเสนอข้อมูลให้กับลูกค้า
เมื่อคุณต่อเครื่องโน้ตบุ๊กไปยังเครือข่ายที่มีอยู่ภายในห้อง
เครื่องโน้ตบุ๊กของคุณก็พบกับ Printer, FAX และ เครื่องฉายภาพเคลื่อนไหว ( video
projector ) ที่อยู่ภายในห้องทันที
และสามารถนำมาใช้ได้โดยไม่ต้องกำหนดค่าคอนฟิกูเรชั่น ( configuration )
ของคอมพิวเตอร์แต่อย่างใด
หรือถ้าคุณลืมเอกสารอิเล็กทรอนิกส์ที่สำคัญต่อการประชุมไว้ที่ออฟฟิศของคุณ
คุณก็จะสามารถเรียกเอกสารนี้จากเครือข่ายที่ออฟฟิศของคุณผ่านทางอินเตอร์เน็ตได้โดยปลอดภัย
และสามารถสั่งพิมพ์ออกมาทาง Printer ที่อยู่ในห้องประชุมได้ทันที
ไม่จำเป็นต้องพึ่ง ไดรเวอร์ ( driver ), ค่าคอนฟิกูเรชั่น,
ไม่มีปัญหาเรื่องความเข้ากันได้ ( compatibility ) ทุก ๆ
สิ่งจะทำหน้าที่เป็นบริการที่อยู่ในเครือข่าย
เป็นเครือข่ายที่เกิดขึ้นได้โดยตัวมันเองจากอุปกรณ์เครือข่ายที่มีอยู่นับล้านล้านชนิดนั่นเอง
พลังประมวลผลของคอมพิวเตอร์กลายเป็นบริการหนึ่งที่คอมพิวเตอร์เครื่องอื่นซึ่งอยู่ในเครือข่ายสามารถหยิบยืมสมองหรือโปรเซสเซอร์
( processor ) ของเครื่องอื่นมาใช้ได้ตามหลักการของการประมวลผลแบบกระจายศูนย์
นี่คือแนวคิดของ Jini Network Technology ( Linda Systems ตั้งแต่ปี 1982 )
1.3 Jini คืออะไร
Jini
คือชื่อของระบบการประมวลผลแบบกระจายศูนย์ประเภทหนึ่ง ซึ่งพัฒนาโดยบริษัท Sun
Microsystems สำหรับ Jini
นั้นมีความแตกต่างจากระบบเครือข่ายทั่วไปตรงที่ Jini มีความสามารถที่เรียกว่า
เน็ตเวิร์คปลั๊กแอนด์เพลย์ ( Network Plug and Play ) ซึ่งมีความหมายคือ
อุปกรณ์ต่าง ๆ ที่อยู่ภายในเครือข่ายของ Jini นั้น มีความสามารถในการถอดออกจากระบบ
หรือเชื่อมต่อกับระบบแล้วสามารถทำงานได้ทันทีโดยที่ไม่ต้องมีการปรับแต่งใด ๆ
บริการทุก ๆ อย่างในเครือข่ายของ Jini เรียกว่า Service กลุ่มของ Service
ที่อยู่ภายในเครือข่ายของ Jini เดียวกัน เรารวมเรียกว่า Jini Community โดย
Jini นั้นออกแบบให้ Service เหล่านี้ สามารถทำงานได้อย่างมีเสถียรภาพสูงในรูปแบบ
Dynamic ( มีการเปลี่ยนแปลงได้ตลอดเวลา ) โดยความสามารถหลัก ๆ 3 ข้อ คือ
-
ไม่จำเป็นต้องมีการปรับแต่งฝังผู้ใช้เมื่อ Service
มีการนำมาเชื่อมต่อหรือถอดออกจากระบบ
-
Jini Community สามารถปรับเปลี่ยนตัวเองได้ตลอดเวลา เมื่อมี Service ใหม่มาเชื่อมต่อ
หรือว่า Service เก่าถูกถอดออกจากระบบ
-
ผู้ใช้ Service ไม่จำเป็นต้องรู้จักกับตัว Service มาก่อน โดยที่ Service นั้น
จะถูกโหลดมายังผู้ใช้โดยอัตโนมัติ และผู้ใช้จะทำการติดต่อกับ Service ผ่านทาง
Interface ปกติที่เป็นที่รู้จักของ Service ประเภทนั้น ๆ เช่น Service ของ Printer ก็จะเรียกใช้ผ่าน Method ชื่อ print()
เหมือนกันกับ Printer ทุกรุ่นทุก Brand Name ( ยี่ห้อ, ตราสินค้า )
1.4 วัตถุประสงค์ของปริญญานิพนธ์
-
เพื่อศึกษา Jini Network Technology ว่าทำงานอย่างไร
และสามารถนำไปประยุกต์กับงานประเภทใดได้บ้าง
-
ศึกษาเทคโนโลยีที่เกี่ยวข้อง เช่น Java RMI
และการพัฒนาโปรแกรมประยุกต์ด้วยชุดพัฒนา Java 2 Micro Edition ( J2ME )
สำหรับพัฒนาโปรแกรมประยุกต์บนคอมพิวเตอร์มือถือ ปาล์มไพลอต
-
นำ Jini Network Technology มาประยุกต์ใช้ โดยการสร้างเครื่อข่ายจำลองของ Jini ขึ้นมา
ทำการพัฒนาโปรแกรมประยุกต์ และฮาร์ดแวร์ โดยเน้นที่จะแสดงให้เห็นถึงความง่าย
และคุณสมบัติต่าง ๆ ของ Jini Network
-
เพื่อเป็นแนวทางในการพัฒนาระบบที่สามารถนำไปประยุกต์ใช้กับงานจริงได้ต่อไป
1.5 ขอบเขตของปริญญานิพนธ์
จากแนวความคิดของ Jini Network Technology ดังที่ได้กล่าวมาข้างต้นแล้ว
ปริญญานิพนธ์นี้จึงมุ่งเน้นที่จะนำ Jini Network Technology ไปประยุกต์ใช้จริง
โดยนำเสนอระบบตัวอย่าง
ซึ่งเป็นระบบเครือข่ายในการติดต่อสื่อสารเพื่อควบคุมหุ่นยนต์ขนาดเล็ก
โดยจำลองให้เป็นอุปกรณ์อิเล็กทรอนิกส์มาเชื่อมต่อกับ Jini
Network โดยที่ผู้ใช้บริการจะสามารถควบคุมหุ่นยนต์ได้
โดยผ่านทางเครื่องคอมพิวเตอร์ขนาดฝ่ามือ ( Palm Computer
) ลักษณะของระบบนี้ แสดงให้เห็นถึงข้อได้เปรียบของ Jini Network
คือ หุ่นยนต์ขนาดเล็กที่มาทำหน้าที่เป็น Service สามารถนำมาเชื่อมต่อกับระบบ
หรือจะถอดออกจากระบบได้ตลอดเวลา โดยที่เครื่องปาล์ม
ที่ทำหน้าที่เป็นผู้ใช้บริการจะสามารถรับทราบและควบคุมหุ่นยนต์ที่มีการเปลี่ยนแปลงนั้น
ได้ทันที จุดนี้แสดงให้เห็นว่าถึงเสถียรภาพในการทำงานแบบ Dynamic
โดยผู้ใช้ไม่จำเป็นต้องทราบถึงวิธีการติดต่อสื่อสารและวิธีการทำงานของ Service
เพียงแต่รู้วิธีการ Interface กับ Service ที่มีการเตรียบการไว้ให้
ก็สามารถเรียกบริการของ Service ได้แล้ว ตัวอย่างโครงสร้างของระบบ
สามารถแสดงเป็นภาพตัวอย่างคร่าว ๆ ได้ดังนี้
รูปที่ 1-1 ภาพรวมของระบบที่จะสร้าง
เครื่องปาล์มทำหน้าที่เป็นผู้ใช้ของระบบ
โดยจะมีโปรแกรมที่มีลักษณะเป็นคันบังคับสามารถใช้บังคับหุ่นได้
เครื่องปาล์มเชื่อมต่อกับคอมพิวเตอร์เดสก์ทอปด้วย Interface แบบ RS-232
คอมพิวเตอร์เดสก์ทอปทำหน้าที่เป็น Server กลางสำหรับระบบ Jini
และส่วนของหุ่นยนต์ขนาดเล็กนั้นจะติดต่อกับระบบเครือข่ายของ Jini ผ่านทางอินฟราเรด
ซึ่งส่วนนี้อาจจะปรับเปลี่ยนเป็นสื่ออื่นก็สามารถทำได้
หุ่นยนต์ขนาดเล็กนั้นเป็นหุ่นยนต์ที่ควบคุมการทำงานด้วยไมโครคอนโทรลเลอร์ตระกูล
8051 มีล้อซึ่งขับเคลื่อนด้วยสเตปปิ้งมอเตอร์และใช้พลังงานจากแหล่งจ่ายไฟภายนอก
1.6 ขั้นตอนในการดำเนินงาน
การดำเนินงานในปริญญานิพนธ์นี้จะเริ่มจากการศึกษา Jini Network Technology
และเทคโนโลยีที่เกี่ยวข้อง เช่น Java RMI, K Virtual Machine (
KVM ) และการเขียนโปรแกรมบนเครื่องปาล์ม เป็นต้น
โดยเนื้อหาส่วนใหญ่ที่ต้องศึกษา คือ ระบบการทำงานและ Jini Protocol
เพื่อที่จะใช้ความรู้ที่ได้ มาออกแบบโครงสร้างของระบบทั้งหมด จากนั้นจึงพัฒนาระบบตามหลักการและข้อกำหนดของ
Jini Protocol ซึ่งการออกแบบและการพัฒนาระบบนั้น ในชุดพัฒนา Jini Starter Kit ได้มี API
สำหรับ Jini Framework บางส่วนมาให้แล้ว ทำให้การออกแบบและพัฒนานั้นง่ายขึ้น โดยส่วนที่ต้องออกแบบคือ
-
โครงสร้างของระบบโดยรวม
-
ส่วนของการติดต่อกันตามข้อกำหนด Jini Protocol สำหรับหุ่นยนต์ขนาดเล็กและปาล์ม
-
โปรแกรมควบคุมสำหรับปาล์ม โดยพัฒนาด้วยภาษาจาวา ทำงานบน J2ME/KVM
-
โครงสร้างและวงจรต่าง ๆ ของหุ่นยนต์ขนาดเล็ก รวมถึงโพรโตคอลในการติดต่อสื่อสาร
-
Service จำลองที่สร้างขึ้นเป็นซอฟต์แวร์
หลังจากออกแบบเสร็จแล้ว ก็ทำการพัฒนาส่วนต่าง ๆ
ของระบบทั้งที่เป็นซอฟต์แวร์และฮาร์ดแวร์
โดยภาษาที่ใช้เป็นหลักในการพัฒนาคือภาษาจาวา
ส่วนภาษาที่ใช้ในการโปรแกรมหุ่นยนต์ขนาดเล็ก
ใช้ภาษาแอสเซมบลีสำหรับไมโครคอนโทรลเลอร์ตระกูล 8051
Last update : June 17, 2009 17:00 ( Thailand )
Apple, Mac, iMac, iPhone and iPod are trademarks of Apple, Inc.
Jini, Java and all Java-based are trademarks of Sun Microsystems, Inc.
JiniSoft Corporation
Copyright @ 1990 - 2009 Mr. Roongroj Rojanapo ( )
99/2 Soi Ramindra 14, Ramindra Road, Bangkane, Bangkok 10230, Thailand
|