Distributed Virtual Environments _DVEs_

Document Sample
Distributed Virtual Environments _DVEs_ Powered By Docstoc
					                        Distributed Virtual Environments (DVEs)
                                            &
                                  Software Introduction
1. ตัวอย่างของ DVE
         ่
   โดยทัวไป node ของระบบจาลองประกอบไปด้วย
   - ระบบแสดงผล
   - ฐานข้อมูลทางภูมิศาสตร์ (terrain database)
   - แผงควบคุม
                            ี่         ั
   ซึ่งดาเนินการโดยซอฟแวร์ทแบ่งส่วนได้ดงนี้
   - image generator
   - network interface
   - control/display interface
   - sound generator
   - ตารางข้อมูลสถานะของวัตถุจาลองอื่นในระบบ (other objects) ซึ่งควบคุมโดย node อื่น
   - โปรแกรมควบคุมวัตถุของ node (local objects)

                 ่                                 ้
   ระบบ DVE โดยทัวไปจะ execute/ประมวลผล ต่อไปนีทุกๆ 1/30 s.
   - รับข้อความ (message) จากภายนอก, อินพุตจากผู้ใช้ แล้วแก้ไข (update)
      สถานะของวัตถุซึ่งควบคุมโดย node อื่น (remote object)
   - update การแสดงผล
   - คานวณสถานะของวัตถุของ node
   - ส่งข้อความไปยัง node อื่น เพื่อแจ้งสถานะใหม่ของวัตถุที่ node รับผิดชอบอยู่
      ตามการคานวณข้างบน

2. Federated Simulation
                                                ่             ่
   เป็นรูปแบบระบบจาลองทีเ่ ชื่อมต่อ simulator ทีหลากหลายทีหลากหลายรูปแบบเข้าด้วยกัน
   โดยระบบ (Federation) จะประกอบด้วย
   1) node การจาลอง (simulation) หรือ federate
   2) Runtime Infrastructure (RTI) โครงสร้างพื้นฐานซึ่งจะเชื่อมต่อ federate ต่าง ๆ
   เข้าด้วยกัน โดยใช้ข้อกาหนดการติดต่อ (Interface Specification)
   โดยมีบริการในการสร้างและจัดการระบบดังนี้
   - สร้างและยกเลิก federation
   - รับส่ง data ระหว่าง federate
   - ดูแลการเข้าจังหวะของ federate ในระบบ (Federation)
    ตัวอย่างของ federate
   1) Internet Gaming Simulation ที่
       - มีความสามารถในการ Plug and Play
       - จานวนของผู้เล่นเปลี่ยนแปลงได้ตลอดเวลา
                                ่ ุ
   2) High Level Architecture ทีมีคณสมบัตเิ พิ่มเติมดังนี้
       - การนาโมเดลกลับมาใช้ใหม่อีก (mode reuse)
       - ความสามารถในการรวมรวมโปรแกรม / mode จาลองเก่า (legacy simulation)
            เข้าในระบบใหม่

ตัวเลือกในการส่งผ่านข้อความของระบบจาลอง
(Message Passing Alternatives) มีดงนี้  ั
         ่                                                  ่                         ่
1) ผู้สงระบุผู้รับ เช่น พอร์ต หรือ process ปลายทาง ซึ่งไม่คอยเหมาะสมกับการจาลองทีมี node
     หลากหลายและจานวน node ทีเ่ ข้าร่วมในระบบเปลี่ยนแปลงอยู่ตลอดเวลา
2) Broadcast
                                                                             ่
     ซึ่งผู้รับจะต้องตรวจเลือกข้อความที่เกี่ยวข้องกับตนเองและไม่สนใจข้อความทีไม่เกี่ยวข้อง
            ี้                                          ี้
     วิธีนใช้ในระบบ SIMNET และ DIS ตอนเริ่มต้น วิธีนไม่สามารถปรับให้ใช้กับระบบแบบ
                     ่           ่
     federation ทีใหญ่ขึ้นได้ เนืองจากปัญหาของ Bandwidth
     และประสิทธิภาพของการรับส่งข้อมูล
                                          ่
3) กลไก Publication / Subscription ทีใช้ใน HLA
                ั
    - มีลกษณะคล้าย newsgroups ทีมีระบบสมาชิกและข่าวสารจะได้รับเฉพาะกลุ่มสมาชิก
               ิ ี่
    - มีวธีทตกลงร่วมกันในการอธิบาย data ของผู้ผลิตและผู้รับ data

Class – based data distribution ประกอบด้วย
                                                              ่
1) Federation Object Model (FOM) ซึ่งนิยามชนิดของข้อมูลทีรับส่งระหว่าง Federate เช่น
   ชนิดของ object class, เช่น รถ, หรือ attribute ของวัตถุ เช่น ตาแหน่ง, ทิศทางของวัตถุ
2) Primitive ตัวอย่างของการเชื่อมระหว่าง federate และ RTI คือ
   - ประกาศ object class และ attribute ที่ federate สามารถ update ข้อมูล
   - ประกาศ Object class และ attribute ที่ federate ต้องการรับข้อมูล
                                     ี่
   - แจ้ง RTI ถึง instance ของวัตถุทได้สร้างขึ้น ภายใน federate (ลงทะเบียน instance
     ของวัตถุ)
                      ่
   - แจ้ง federate ทีได้ลงทะเบียน (โดย RTI) ถึง instance ของวัตถุของ class ที่ federate
     เป็นสมาชิกอยู่
                                           ี่
   - แจ้ง RTI เกี่ยวกับ attribute ของวัตถุทได้มีการเปลี่ยนแปลง
                                                                          ้
   - แจ้ง federate เกี่ยวกับการเปลี่ยนแปลงข้อมูล attribute ที่ federate นันเป็นสมาชิกอยู่

   บริการของ Federate และ RTI
       บริการทีเ่ รียกโดย Federate
       - การสมัครสมาชิก (subscribe), การแจ้ง class หรือ attribute ที่ Federate อื่น
           สมัครเป็นสมาชิก (publish) การลงทะเบียน (register) และการแก้ไขข้อมูล
           (update)
       - ไม่เหมือนกับการเรียกฟังก์ชันของ library
       - ฟังก์ชันดังกล่าวจะถูกเรียกโดย RTI ambassador
       บริการทีเ่ รียกโดย RTI
       - การสะท้อนข้อมูล, การค้นพบ instance
       - ฟังก์ชันถูกนิยามโดย federate ใน federate ambassador

Single threaded and multithreaded implementation
1) Multi - threaded implementation
    - โปรแกรม RTI และ federate ประมวลผลแยกจากกัน
    - การสลับไปมาระหว่าง RTI และ federate โดยส่วนใหญ่จะโปร่งใส
2) Single – threaded implementation
    - RTI และ federate ใช้ thread ร่วมกัน เช่นใน libraries
    - federate ส่งผ่านการควบคุมไปยัง RTI อย่างเห็นได้ชัด เช่น การส่งข้อความตัวอย่าง
        ฟังก์ชัน (function) ลักษณะดังกล่าวคือ tick ()
    - callback ต่าง ๆ เช่น discover และ reflect จัดการภายใน Tick()

การเข้าจังหวะและการรับส่งข้อความ
     จุดประสงค์ของการเข้าจังหวะการรับส่งข้อความคือ
                                  ั้
เพื่อให้สามารถประมวลผลเหตุการณ์ทงหลายที่ (local และ incoming) ตามลาดับการลงเวลา
โดย RTI จะส่งข้อความตามลาดับการลงเวลา (Time stamp order หรือ TSO)
และเข้าจังหวะการรับส่งด้วยกลไกการขยับเวลาจาลอง (simulation time advance)
                  ่
   หากเหตุการณ์ตอไปของ federate มีการลงเวลาทีเ่ วลา T
   - federate จะขยับออกไปยัง T
                                ั                     ่
       และประมวลผลเหตุการณ์ดงกล่าวหากไม่มีข้อความทีลงเวลา < T
                                                        ี่
   - federate จะขยับเวลาไปยัง T’ และประมวลเหตุการณ์ทลงเวลา T’ หาก T’ < T

                                                        ่                 ่
      การเข้าจังหวะในการจัดการประมวลเหตุการณ์ตาง ๆ ใน federation ทีมีหลาย federates
ประกอบกันใน HLA แบ่งได้เป็น 2 รูปแบบ
1) Next Event Request ซึ่ง federate ร้องขอไปยัง RTI เพื่อขยับเวลาไปยัง เวลาของเหตุการณ์ /
                  ่                                                     ้
      ข้อความทีลงเวลา (TSO) ลาดับถัดไปของ mode ของ federate (T) นัน ๆ หรือ
                                                      ่   ่ ุ
      เวลาก่อนดังกล่าว (T’) โดยพิจารณาจากเวลาทีน้อยทีสดของข้อความหรือเหตุการณ์จาก
      federate อื่นโดย RTI
2) Time Advance Request (TAR)
           ี้
      วิธีนมักใช้โดย federate ทีเ่ ป็นแบบ time - stepped. โดย federate จะแจ้งเวลา T
  ่ ้                                               ่
ทีตองการขยับไปแก่ RTI และ RTI จะส่งข้อความทีลงเวลาภายในเวลา T ให้แก่ federate นัน ๆ ้
และขยับเวลาของ federate ไปยัง T

สรุป
    - ในการจาลองแบบกระจาย (distributed simulation) ประกอบไปด้วย federate ต่าง ๆ
      และโครงสร้างพื้นฐาน (RTI)
    - federate จาลองวัตถุ (entity) ต่าง ๆ ในโลกเสมือน (virtual world) และส่งข้อความแก่
      federate อื่น ๆ ทีเ่ กี่ยวข้อง

บริการของ RTI ประกอบด้วย
    - การติดตั้งและทาให้เกิดการสื่อสารระหว่าง federate
    - การควบคุมและจัดการดาเนินการของ federation
    - การเข้าจังหวะการรับส่งข้อความ

				
DOCUMENT INFO