HOOK

ระบบการกระจายงานในระบบเครือข่าย ( HOOK )

โครงการพัฒนาต้นแบบโปรแกรมสร้างการกระจายงานในระบบเครือข่าย เป็นโครงการที่ช่วยสร้างระบบพื้นฐานที่สามารถเอื้อให้ผู้พัฒนาสร้างโปรแกรมดังกล่าวได้ง่ายขึ้น โดยเฉพาะเมื่ออาศัยเทคนิคด้าน Visual Programming สามารถลดเวลาและความซับซ้อนของการพัฒนาไปได้มาก นอกจากนี้ระบบ Visual Programming ยังเอื้อให้ผู้พัฒนาสามารถตรวจสอบคุณสมบัติและสถานะต่างๆ ของระบบได้ง่าย และด้วยเทคโนโลยีของ Web Service ทำให้ผู้พัฒนาสามารถใช้งานผ่าน Web Browser ได้อีกด้วย

ซอฟต์แวร์ในโครงการ จะประกอบด้วยซอฟต์แวร์หลัก 3 ชิ้นงานได้แก่

• ซอฟต์แวร์สำหรับการสร้างโปรแกรมประมวลผลแบบกระจายระบบ GIS (Hook System Application)

• ซอฟต์แวร์สำหรับการสร้างโปรแกรมประมวลผลแบบกระจายโดยใช้ Visual Editor

• ซอฟต์แวร์ตัวอย่างการประมวลผลแบบกระจายที่สร้างจากซอฟต์แวร์ของโครงการ

โดยซอฟต์แวร์หลักของโครงการนี้จะเป็นการพัฒนาซอฟต์แวร์สำหรับการประมวลผลแบบกระจายโดยใช้ Visual Editor

หน้าที่และความสามารถของโปรแกรม

ผู้ใช้สามารถออกแบบระบบการประมวลผลโดยนำ Object ไปวางใน Editor และกำหนดทิศทางการไหลของการประมวลผลให้กับ object เพื่อที่โปรแกรมสามารถประมวลผลตามระบบที่ออกแบบได้ object ที่ว่านี้ผู้พัฒนาจะเรียกว่า WSDL Component โดยความสามารถโดยรวมมีดังนี้

• สามารถออกแบบระบบการประมวลผลแบบกระจายได้ โดยการนำองค์ประกอบต่างๆ สำหรับการออกแบบระบบมาวางบน Visual Editor

• สามารถตรวจสอบหรือกำหนดคุณสมบัติขององค์ประกอบการประมวลผลได้

• สามารถกำหนดทิศทางการไหลของการประมวลผลแบบกระจายได้

• สามารถกำหนดเงื่อนไขในการไหลของการประมวลผลแบบกระจายได้

• สามารถที่จะตรวจสอบคุณสมบัติขององค์ประกอบการประมวลผล ( WSDL Component ) จากต่างเครื่องซึ่งเป็นระบบประมวลผลเดียวกันได้

• มีความสามารถในการแชร์ข้อมูลที่เกิดจากการออกแบบโดยผู้ใช้ ซึ่งก็คือข้อมูลขององค์ประกอบต่างๆ เพื่อให้ตัวโปรแกรมเดียวกันจากต่างเครื่องซึ่งอยู่ในระบบประมวลผลเดียวกันสามารถที่จะดูข้อมูลได้ แต่ไม่สามารถที่จะแก้ไขข้อมูลได้

• สามารถตรวจสอบความถูกต้องของระบบที่ออกแบบได้

• สามารถที่จะทำการประมวลผลแบบกระจาย และแสดงผลลัพธ์ของการประมวลผลได้

ซึ่งจากความสามารถในการที่จะสามารถำหนดคุณสมบัติของ WSDL Component โดยคุณสมบบัติหนึ่งก็คือ กำหนดถึงที่อยู่ของ WSDL Component นั้น ทำให้ WSDL Component ที่มาประกอบบน Visual Editor นั้นมาจากที่อยู่หลายที่และทำการประมวลผลตามแต่ละที่ ที่ WSDL Component นั้นให้บริการอยู่ ซึ่งการประมวลผลรูปแบบนี้ก็คือระบบการกระจายงานในระบบเครือข่ายนั่นเอง

สถาปัตยกรรมของระบบ ( System Architecture )

ลักษณะการประมวลผลของระบบที่ออกแบบโดยโปรแกรมการประมวลผลแบบกระจายด้วย Visual Editor จะมีลักษณะดัง รูปที่ 1 ? 1 โดย WSDL Component แต่ละโมดูลจะใช้บริการจาก เว็บเซอร์วิส เพื่อประมวลผลอินพุตที่ผู้ใช้งานโปรแกรมกำหนด

เมื่อ WSDL Component เรียกใช้บริการ เว็บเซอร์วิส และได้รับผลลัพธ์การประมวลผล เอาต์พุตที่ได้นี้จะถูกส่งต่อไปเป็นอินพุตของ WSDL Component ตัวอื่นๆ เพื่อประมวลผลต่อไปตามที่ได้ออกแบบระบบไว้ โดยผู้พัฒนาจะอาศัยมาตรฐานของ WSFL (Web Service Flow Language) ในการควบคุม และตรวจสอบเงื่อนไขต่างๆ เพื่อให้การไหลของข้อมูลการประมวลผลเป็นไปตามที่ผู้ใช้งานโปรแกรมได้ออกแบบระบบประมวลผลไว้


รูปที่ 1 . 1 System Architecture ของระบบ


รูปแบบการประมวลผล

รูปแบบการประมวลผลสามารถ แบ่งได้ 2 รูปแบบ คือ

การประมวลผลแบบตามลำดับ ( Sequential flow control)

การประมวลผลลักษณะนี้ คือ การประมวลผลที่ยึดถือเฉพาะลำดับของการทำงานเท่านั้น ดังตัวอย่าง รูปที่ 1 . 2

รูปที่ 1 . 2 รูปแบบการประมวลแบบลำดับ

การประมวลผลแบบมีเงื่อนไข (Condition flow control)

การประมวลผลลักษณะนี้ คือ การประมวลผลที่ยึดถือทั้งลำดับของการทำงานและเงื่อนไขในการจะทำงานลำดับต่างๆ ดังตัวอย่าง

รูปที่ 1 .3

รูปที่ 1 . 3 รูปแบบการประมวลแบบมีเงื่อนไข


รูปแบบการทำงานของระบบ

รูปแบบการทำงานของระบบจากตัวอย่าง Flow Control ใน รูปที่ 1.2 สามารถแสดงได้ดัง รูปที่ 1 . 4 ซึ่งจะเห็นได้ว่า ผู้ที่ต้องการใช้บริการจากระบบประมวลผล GIS นั้นจะเข้าถึงบริการได้จาก Hook Service (ซึ่งโปรแกรมเป็นตัว generate code ส่วนนี้จากการออกแบบระบบประมวลผล) หน้าที่ของ Hook Service คือการควบคุมการไหลของการประมวลผล (Flow Control ) ให้เป็นไปตามที่ได้ออกแบบระบบไว้ เมื่อ Hook Service ถูกกำหนดอินพุตและถูกสั่งให้เริ่มต้นประมวลผล Hook Service จะทำงานโดยการไปเรียกใช้งาน ( Invoke) Service ย่อยอื่นๆ ภายในระบบ ในกรณีที่เซอร์วิสย่อยเหล่านั้นต้องการอินพุต Hook Service ก็สามารถบอกเซอร์วิสย่อยเหล่านั้นได้ว่าสามารถไปเอาอินพุตได้จากที่ไหน

ผลลัพธ์ที่เกิดจากการประมวลผลของเซอร์วิสย่อยเหล่านี้ ไม่ได้ถูกส่งกลับมายังตัว Hook Service แต่เซอร์วิสย่อยจะเก็บผลลัพธ์การประมวลผลไว้ที่ตัวเอง (ที่ที่เซอร์วิส locate อยู่ ซึ่งไม่จำเป็นต้องอยู่ที่เดียวกับเครื่องที่รันโปรแกรมอยู่) เมื่อเซอร์วิสย่อยประมวลผลเสร็จก็จะส่ง response กลับมายัง Hook Service พร้อมทั้งตำแหน่งของผลลัพธ์ หลังจากนั้น Hook Service ก็จะไป Invoke เซอร์วิสอื่นๆ ตามลำดับและเงื่อนไขที่กำหนด พร้อมทั้งบอกเซอร์วิสย่อยนั้นว่าสามารถไปเอาอินพุต (ที่จะเอามาประมวลผลจริง) ได้จากที่ไหน ซึ่งจะเห็นได้ว่าการทำงานลักษณะนี้จะเสมือนกับว่าแต่ละเซอร์วิสย่อยนั้นได้คุยกันเอง

รูปที่ 1 ..4 แสดงรูปแบบการทำงานของระบบ


สภาพแวดล้อมของระบบที่จะสามารถใช้งานโปรแกรมได้

1.ระบบปฏิบัติการ Linux หรือ Window

2. ติดตั้ง JRE 1.4.0 ขึ้น

3.ติดตั้ง GLUE ของบริษัท The Mind Electric Co., Ltd

4.ติดตั้ง โปรแกรม Web Browser คือ Netscape หรือ Internet Explorer

5.ติดตั้ง โปรแกรม Web Server คือ Apache Web Server

Web Master