Learning Community

ผลงานวิทยานิพนธ์
ของคุณ พนิต เวชศิลป์
ภาควิชาวิศวกรรมคอมพิวเตอร์
สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง

ปรับแก้ไขโดยนาย รุ่งโรจน์ โรจนโพธิ์ ( ธันวาคม 2548 )




Learning Community
• Home
• Jini Beginning
- บทเรียนที่ 1
- บทเรียนที่ 2
- บทเรียนที่ 3
- บทเรียนที่ 4
- บทเรียนที่ 5
- บทเรียนที่ 6
- บทเรียนที่ 7
- บทเรียนที่ 8
- บทเรียนที่ 9


บทที่ 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


E-mail : roongroj @ mac.com
SMS : 081 615-5135  ( iPhone )
FAX : 02   943-6433