object oriented computing พยุหยาตราของเหล่า objects

21
1 Object-oriented computing ถึงคราวพยุหยาตราของเหลา objects สุรพล ศรีบุญทรง บทความ 1997 ภายในชวงหลายปที่ผานมานีเทคโนโลยีการประมวลผลแบบ Microkernel Technology นับ ไดวาเปนรูปแบบการประมวลผลสําคัญซึ่งไดรับความนิยมยอมรับใชงานอยางกวางขวางมากที่สุดในหมูผูใชเครื่อง คอมพิวเตอรสวนบุคคลทั่วๆ ไป ไมวาจะเปนเครื่องคอมพิวเตอรตระกูลพีซี หรือตระกูลแมคอินทอช และเปน รูปแบบการประมวลผลซึ่งตอมาไดพัฒนาไปสูการจัดวาง ระบบพื้นฐานแบบ modular system อันมีประสิทธิภาพ และความยืดหยุนในการทํางานเปนอยางมาก กระนั้น กระบวนการวิวัฒนาการของ เทคโนโลยีการประมวลผลมิไดจบลงตรงที่ Micrkernel modular system เทานั้น มันยังมีการพัฒนาสืบเนื่อง ตอไปอีกเพื่อใหไดรุปแบบการประมวลที่มีประสิทธิภาพ มากที่สุด ซึ่งรูปแบบการประมวลผลที่ดูเหมือนวากําลัง มาแรงอยางมากในปจจุบัน และมีความเปนไปไดอยาง มากที่จะกลายมาเปนรูปแบบการประมวลผลมาตรฐาน สําหรับอนาคตอันใกลนีก็คือ การประมวลผลแบบ Object-oriented computing วิวัฒนาการแหงระบบ Modular system ภายใตระบบ modular system นั้น การทํางานตางๆ ภายในระบบคอมพิวเตอรจะถูกซอย ออกเปนหลายๆ หนวยยอย (หรือที่เรียกวา module) ซึ่งแตละหนวยยอยนั้นตางมีความเปนอิสระในตัวของ ตัวเอง สามารถดัดแปลงแกไข, ทดสอบ, และปรับปรุงไดตางหากกอนที่จะนํากลับมาประกอบกันเขาใหมเปน ผลลัพธรวมไดในภายหลัง โดยมักจะมีระบบปฏิบัติการ อยางเชน MS-DOS เปนหนวยยอยหลักซึ่งทําตัวเหมือน เปนแกนกลาง (microkernel) ของระบบ สําหรับใหหนวยยอยอื่นๆ เชน Windows หรือ networking ประกอบ เขามา อยางไรก็ตาม การใชระบบปฏิบัติการ DOS หรือ Macintosh เปนแกนกลางสําหรับติดตอกับ ฮารดแวรคอมพิวเตอรใหกับหนวยยอยอื่นๆ ของระบบ Modular system ยุคตนๆ นั้น ก็ยังมิไดเปนรูปแบบการ ประมวลผลที่ผสมผสานกลมกลืนเทาที่ควรนัก ยังคงมีความผิดพลาดอันเนื่องมาจากความไมมั่นคง (instability) หรือความขัดแยงระหวางโปรแกรม (conflict) เกิดขึ้นใหเห็นไดบอยๆ ภายใตรูปแบบการประมวลผลดังกลาว ซึ่งถาเปนเครื่องคอมพิวเตอรพีซีที่ใชระบบปฏิบัติการ MS-DOS เปน Microkernel ขอผิดพลาด ที่วานั้นก็มักจะเกิดขึ้นเมื่อมีการเรียกโปรแกรมเขาไปจองพื้นที่ในหนวยความจํามากๆ โดยโปรแกรมที่วานั้น ก็ ไดแก โปรแกรมประเภท TSR (Terminate-and resident program), โปรแกรมพวก Device drivers, หรือ

Upload: surapol-imi

Post on 21-Jan-2018

224 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Object oriented computing พยุหยาตราของเหล่า objects

1

Object-oriented computing ถึงคราวพยุหยาตราของเหลา objects สุรพล ศรีบุญทรง

บทความ 1997

ภายในชวงหลายปที่ผานมาน้ี เทคโนโลยีการประมวลผลแบบ Microkernel Technology นับ

ไดวาเปนรูปแบบการประมวลผลสําคัญซ่ึงไดรับความนิยมยอมรับใชงานอยางกวางขวางมากที่สุดในหมูผูใชเคร่ือง

คอมพิวเตอรสวนบุคคลทัว่ๆ ไป ไมวาจะเปนเคร่ืองคอมพิวเตอรตระกูลพีซี หรือตระกูลแมคอินทอช และเปน

รูปแบบการประมวลผลซ่ึงตอมาไดพัฒนาไปสูการจัดวาง

ระบบพ้ืนฐานแบบ modular system อันมีประสิทธิภาพ

และความยืดหยุนในการทํางานเปนอยางมาก

กระน้ัน กระบวนการวิวัฒนาการของ

เทคโนโลยีการประมวลผลมิไดจบลงตรงที่ Micrkernel

modular system เทานั้น มันยังมีการพัฒนาสืบเนื่อง

ตอไปอีกเพ่ือใหไดรุปแบบการประมวลที่มีประสิทธิภาพ

มากที่สุด ซ่ึงรูปแบบการประมวลผลที่ดูเหมือนวากําลัง

มาแรงอยางมากในปจจุบัน และมีความเปนไปไดอยาง

มากที่จะกลายมาเปนรูปแบบการประมวลผลมาตรฐาน

สําหรับอนาคตอันใกลนี้ ก็คือ การประมวลผลแบบ

Object-oriented computing

วิวัฒนาการแหงระบบ Modular system

ภายใตระบบ modular system น้ัน การทํางานตางๆ ภายในระบบคอมพิวเตอรจะถูกซอย

ออกเปนหลายๆ หนวยยอย (หรือที่เรียกวา module) ซ่ึงแตละหนวยยอยน้ันตางมีความเปนอิสระในตัวของ

ตัวเอง สามารถดัดแปลงแกไข, ทดสอบ, และปรับปรุงไดตางหากกอนที่จะนํากลับมาประกอบกันเขาใหมเปน

ผลลัพธรวมไดในภายหลัง โดยมักจะมีระบบปฏิบัติการ อยางเชน MS-DOS เปนหนวยยอยหลักซึ่งทําตัวเหมือน

เปนแกนกลาง (microkernel) ของระบบ สําหรับใหหนวยยอยอ่ืนๆ เชน Windows หรือ networking ประกอบ

เขามา

อยางไรก็ตาม การใชระบบปฏิบัติการ DOS หรือ Macintosh เปนแกนกลางสําหรับติดตอกับ

ฮารดแวรคอมพิวเตอรใหกับหนวยยอยอื่นๆ ของระบบ Modular system ยุคตนๆ น้ัน ก็ยังมิไดเปนรูปแบบการ

ประมวลผลที่ผสมผสานกลมกลืนเทาที่ควรนัก ยังคงมีความผิดพลาดอันเน่ืองมาจากความไมมั่นคง (instability)

หรือความขัดแยงระหวางโปรแกรม (conflict) เกิดข้ึนใหเห็นไดบอยๆ ภายใตรูปแบบการประมวลผลดังกลาว

ซ่ึงถาเปนเคร่ืองคอมพิวเตอรพีซีที่ใชระบบปฏิบัติการ MS-DOS เปน Microkernel ขอผิดพลาด

ที่วาน้ันก็มักจะเกิดข้ึนเม่ือมีการเรียกโปรแกรมเขาไปจองพ้ืนที่ในหนวยความจํามากๆ โดยโปรแกรมที่วาน้ัน ก็

ไดแก โปรแกรมประเภท TSR (Terminate-and resident program), โปรแกรมพวก Device drivers, หรือ

Page 2: Object oriented computing พยุหยาตราของเหล่า objects

2

โปรแกรมพวก memory managers ฯลฯ แตถาเปนการประมวลผลแบบ Microkernel บนเครื่องคอมพิวเตอร

Macintosh ขอผิดพลาดดังกลาวก็มักจะมีสาเหตุมาจากการทํางานประเภท INITs* หรือพวก system

extensions ประเภทอื่นๆ

เพ่ือแกไขปญหาขอผิดพลาดดังกลาว จึงไดมีความพยายามพัฒนาเทคนิคตางๆ เขามาใชประกอบ

ในระบบ modular system และเทคนิคการประมวลผลที่ดูเหมือนวานาจะเปนทางออกอยางดีของปญหาก็เห็น

จะไดแก การประมวลผลแบบ Object-oriented computing ซ่ึงมุงเนนไปที่ตัว object ที่ถูกสรางข้ึนจาก

โปรแกรมหนวยยอยตางๆ และผลลัพธโดยรวมซึ่งประกอบขึ้นจาก object เหลานั้น มากกวาที่จะมุงเนนไปที่ตัว

โปรแกรมประยุกตเชนรูปแบบการประมวลผลเดิมๆ

ดังจะเห็นไดจากการที่เหลา

บริษัทผูผลิตระบบปฏิบัติการรายสําคัญๆ ตางพากันหัน

เหรูปแบบผลิตภัณฑของตนไปสูเทคโนโลยีการ

ประมวลผลแบบ object-oriented computing กัน

ตามๆ กัน ไมวาจะเปนบริษัท Microsoft

Corporation, Apple Computer Corporation,

IBM (International Business Machine) Corporation, Novell/USL (Unix Systems Laboratories), หรือ

Sun Microsystems Incorporated ฯลฯ

* INITs ความจริงก็จัดเปน System extensions หนึ่งเหมือนกัน โดยเฉพาะใน System 7

มักจะเรียกวา System extension รวมกันไปเลย เปนสวนการทํางานที่เกี่ยวของกับการติดตอกับผูใชอยาง

extra sounds, extra pictures, bizarre cursors, หรือ clocks ฯลฯ ซึ่งจะถูกโหลดเขาไปเก็บไวใน

หนวยความจํา RAM โดยอัตโนมัติเพ่ือเตรียมพรอมสําหรับการทํางานทันทีเม่ือมีการเปดสวิทซเครื่องคอมพิวเตอร

แมคอินทอชขึ้นใชงาน (คลายๆ กับ Start up ของวินโดวสนั่นแหละ)

ตามปรกติ System extensions นับวาเปนสวนของโปรแกรมที่มีประโยชนเหลือคณา และชวย

อํานวยความสะดวกใหกับผูใชเครื่องคอมพิวเตอรแมคอินทอชเปนอยางมาก แตก็มีบางโปรแกรม System

extension เหมือนกัน ที่อาจจะกอใหเกิดปญหาใหกับการทํางานของเครื่องคอมพิวเตอรแมคอินทอชทั้งระบบ

อันเน่ืองมาจากการเขาไปจับจองพ้ืนที่บนหนวยความจําใน RAM แลวไมยอมใหการทํางานที่สําคัญเขามาใช

หนวยความจําในตําแหนงดังกลาว โดยเฉพาะพวก System extension ของฟรีๆ ทั้งหลาย ไมวาจะเปน

freeware หรือ shareware

"Object-oriented computing" อยูใกลแคปลายจมูก

ผลิตภัณฑระบบปฏิบัติการประเภท object-oriented operating system ที่นับวาโดดเดนเปน

พิเศษก็เห็นไดแก ผลิตภัณฑ Taligent อันเปนผลิตผลที่เกิดขึ้นจากความรวมมือกัน (joint-venture) ระหวางสอง

บริษัทยักษใหญทางคอมพิวเตอร "IBM" และ "Apple" มีลักษณะเดนตรงที่ไดรับการออกแบบมาเพ่ือการ

Page 3: Object oriented computing พยุหยาตราของเหล่า objects

3

ประมวลผลแบบ object-oriented โดยเฉพาะ ต้ังแตสวนพื้นฐานยอยที่สุดของระบบน่ันเลยทีเดียว (from-

scratch design)

แตถาจะถามวาผลิตภัณฑระบบปฏิบัติการ

แบบที่เปนทั้ง microkernel system และ object-oriented

system ชนิดใดที่นาจะมีความกาวล้ํานําสมัยมากที่สุดใน

ปจจุบัน คําตอบก็เห็นจะไดแก ผลิตภัณฑ NeXTStep จาก

บริษัท NeXT Computer Inc. เพราะถึงแมวาจะมิไดเปน

ระบบปฏิบัติการแบบ object ที่ถูกออกแบบจากสวนรากฐาน

ขึ้นมาเลยเชน Taligent แตมันก็เปนระบบปฏิบัติการแบบ

object รุนแรกที่มีใหผูใชคอมพิวเตอรไดใช ต้ังแตป ค.ศ. 1989 นั่นเลยทีเดียว (ในชวงแรกๆ น้ันผลิตภัณฑ

NeXTStep ยังคงจํากัดอยูเฉพาะกลุมเคร่ืองเวิรกสเตช่ันซึ่งทํางานภายใตระบบปฏิบัติการ Unix เทาน้ัน)

กระน้ัน สําหรับผูใชคอมพิวเตอรที่คุนเคยกับระบบปฏิบัติการ Windows อยูเปนอยางดีแลว

รูปแบบการประมวลผลแบบ Object-oriented computing ที่พวกเขานาจะรูจักดีที่สุดนาจะเปนผลิตภัณฑ OLE

2.0 ซึ่งไดรับความนิยมสูงจนทางบริษัท Microsoft ตองรีบเข็นระบบปฏิบัติการ Cairo ออกมาอยางตอเน่ือง

อยางไรก็ตาม ระบบ OLE 2.0 หรือ Cairo ก็ยังจํากัดอยูเฉพาะกลุมผูใชวินโดวสเทาน้ัน ไมไดเปดกวางสําหรับผูใช

ระบบคอมพิวเตอรทั่วๆ ไปเชนผลิตภัณฑ OpenDoc

และสําหรับกลุมผูใชคอมพิวเตอรภายใตระบบปฏิบัติการตระกูล Unix ซึ่งเปนที่ยอมรับกันวามี

ความโดดเดนเปนพิเศษในเรื่องของการสื่อสารขอมูลภายในเครือขายเน็ตเวิรกแลว ปจจุบันก็มีโครงสรางทางส

ถาปตยสําหรับการประมวลผลแบบ Object-oriented computing ช่ือ "COBRA" ใหเลือกใชภายในกลุมไดอีก

เชนกัน จนนาจะเปนที่สังเกตไดวาปจจจุบันน้ีผูใชคอมพิวเตอรอยางเราๆ ทานๆ มีโอกาสที่จะตองเขาไป

เกี่ยวของสัมพันธกับการประมวลผลแบบ object นี้อยูแทบตลอดเวลา ไมวาจะรูตัวหรือไมก็ตาม เชน ผูใช

คอมพิวเตอรบางรายอาจจะเคยชินอยูกับการลากเอารูปตารางของ

Excel มาวางบนเอกสารของ Microsoft Word โดยที่ตัวเองไมทราบ

เสียดวยซํ้าวา ตัวเองกําลังใชการประมวลผลแบบ Object-oriented

computing อยู

คุณานูปการแหง Object-oriented OS

ระบบปฏิบัติการแบบ Fully object-oriented

operating systems ไดนําคุณประโยชนมาสูวงการคอมพิวเตอรคณา

นับประการ ประโยชนที่วาน้ีมิไดจํากัดเฉพาะเพียงเหลาโปรแกรมเมอร

ผูออกแบบและพัฒนาโปรแกรมระยุกตเทาน้ัน แตยังสงผลตอเน่ืองไป

ยังเหลาผูใชโปรแกรมประยุกตทั่วๆ ไปอีกดวย

สําหรับเหลาโปรแกรมเมอรซ่ึงติดตอกับคอมพิวเตอรใน

ระดับระบบปฏิบัติการ (system level) น้ันการประมวลผลแบบ

Page 4: Object oriented computing พยุหยาตราของเหล่า objects

4

object จะทําใหพวกเขาสามารถเจาะลึกลงไปในระบบปฏิบัติการเพื่อดัดแปลงแกไขรูปแบบการติดตอใหเหมาะสม

(customize) กับที่โปรแกรมประยุกตซ่ึงตนพัฒนาขึ้นมาตองการโดยไมทําใหเกิดการสูญเสียความม่ันคงเช่ือถือได

(integrity) ของระบบคอมพิวเตอรโดยรวมไป

สวนในกลุมผูใชคอมพิวเตอรระดับทั่วๆ ไปซ่ึงติดตอกับโปรแกรมประยุกต (application level)

การประมวลผลแบบ object จะทําใหผูใชคอมพิวเตอรผสมผสานการทํางานของโปรแกรมประยุกตชนิดตางๆ ไว

ภายในเอกสารไดอยางสะดวกสบาย สามารถนําสวนยอยๆ ของแตละโปรแกรมประยุกตในรูป object มา

ประกอบเขาดวยกันเปนผลิตภัณฑไดทันที ไมตองมาน่ังเขียนโปรแกรมต้ังแตตนในทุกๆ สวน และหากตองการ

อัพเกรดผลิตภัณฑ ก็สามารถเลือกอัพเกรดไดเฉพาะเพียงบางสวนได

นอกจากน้ัน การประมวลผลแบบ object ยังเปนแนวทางนําไปสูการพัฒนาระบบการ

ประมวลผลแบบกระจาย (Distributed computing) ที่มีประสิทธิภาพอีกดวย เน่ืองจากแตละหนวย object

ประกอบไปดวยรหัสคําสั่ง และขอมูลอยูเปนกลุมๆ สามารถจัดสงไปมาระหวางเครือขายเน็ตเวิรกไดอยางสะดวก

(highly interchangeable) เวลาจะนําเอาการทํางานใดบนหนาจอไปทําบนเครื่องคอมพิวเตอรอีกเครื่องซ่ึงอยู

หางออกไปในเน็ตเวิรก ก็ใชวิธีสง object ดังกลาวไปทั้ง object เลย

อยางไรก็ตาม สิ่งหน่ึงที่การประมวลผลแบบกระจายซ่ึงสงผานขอมูลไปในรูป object นํามาสู

ผูใชคอมพิวเตอร ก็คือความไมแนนอนของตําแหนงสถานที่อยูของขอมูลซ่ึงผูใชติดตออยู (จากเดิมที่ผูใชเคยทราบ

แนนอนวาขอมูลของตนถูกจัดเก็บบนสวนใดสวนหนึ่งของหนวยความจําสํารอง) เพราะขอมูลที่จัดเก็บไวภายใน

หนวย object น้ันสามารถทีจ่ะเคลื่อนยายไปไหนตอไหนไดไมจํากัด

(roam) ขึ้นอยูกับวาในชวงเวลาขณะนั้นๆ สวนใดของระบบ

คอมพิวเตอรตองการใชขอมูลภายใน object ดังกลาวมากที่สุด

และดวยความไมแนนอนของตําแหนงที่อยูของขอมูลใน

รูป object นี่เอง ก็ทําใหเกิดความวิตกกังวลขึ้นในหมูผูใชคอมพิวเตอรที่

เก่ียวของกับขอมูลอันเปนความลับคอนขางมาก เพราะมีความเปนไปได

ที่อาจจะมีผูไมประสงคดีตอเครื่องคอมพิวเตอรของตนเขากับระบบแลว

แอบลักเอา object ขอมูลอันเปนความลับไปเปดดู ดังน้ัน ระบบปฏิบัติการ object-oriented Operating

System รุนหลังๆ จึงจําเปนตองเสริมการทํางานอยาง cryptographic protocol ซึ่งติดตอกันดวยรหัสลับ เพ่ือ

จํากัดใหขอมูลใน object สามารถถูกเรียกดูไดเฉพาะผูใชที่ไดรับอนุญาตเทาน้ัน

แนนอน รูปแบบการทํางานตางๆ ที่กลาวมาจะยังคงไมปรากฏขึ้นเปนตัวตนที่แนนอนในขณะน้ี

ยังตองไดรับการพัฒนาจากทีมงานผูออกแบบผลิตภัณฑระบบปฏิบัติการไปอีกสักระยะเวลาหนึ่ง แตก็คอนขาง

ชัดเจนแลววาผูใชคอมพิวเตอรอยางเราๆ ทานๆ คงไดมีโอกาสใชขอมูลในรูป object ผานทางเครือขายเน็ตเวิรก

ภายในอนาคตอันใกล โดยอาศัยผลิตภัณฑตอไปน้ี| คือ ระบบ OLE (Object Linking & Embedding) ของ

บริษัท Microsoft; ระบบมาตรฐาน OpenDoc ซึ่งเกิดขึ้นจากความรวมมือกันระหวางบริษัทApple, IBM,

WordPerfect, Novell และ Borland; ระบบ DSOM (Distributed System Object Model) ของบริษัท IBM;

และระบบ frameworks ของบริษัท Taligent Inc., ฯลฯ

Page 5: Object oriented computing พยุหยาตราของเหล่า objects

5

"Microsoft's OLE" object บนวินโดวส

ในวงการโฆษณาประชาสัมพันธ

น้ันมีคํากลาววา "ประสบการณครั้งแรก มักจะ

เปนตัวบงช้ีถึงความนิยมในผลิตภัณฑ" ซ่ึงน่ันก็เปน

ความจริง เพราะบอยครั้งที่ผูบริโภคมักจะปฏิเสธ

ผลิตภัณฑย่ีหอใดยี่หอหน่ึงไปอยางตัดญาติขาดมิตร

ไปเลย หากวาการทดลองใชครั้งแรกน้ันไมเปนที่

นาประทับใจ หรือเปนความประทับใจในดานลบ

และผูบริโภคที่มีความซ่ือสัตยตอช่ือย่ีหอมากๆ

(brand loyalty) ก็อาจจะตกลงปลงใจกับ

ผลิตภัณฑใดผลิตภัณฑหน่ึงไปตลอดชีพเลยก็ได

หากวาการทดลองคร้ังแรกน้ันใหประสบการณในทางที่ดีเปนอยางมาก

สําหรับในกลุมผูใชคอมพิวเตอรแลว ประสบการณคร้ังแรกที่มีตอผลิตภัณฑ Microsoft's OLE

(Object Linking & Embedding) น้ันนาจะเปนไปในทางบวกเสียมากกวาที่จะเปนไปในทางลบ เพราะการ

เปดตัวครั้งแรกของผลิตภัณฑ OLE (version 1.0) ซึ่งติดตั้งมาในระบบปฏิบัติการ Windows 3.1 น้ันนับวา

สามารถสางความประทับใจใหกับผูใชวินโดวสอยางเหลือหลาย ดวยผลิตภัณฑ Microsoft's OLE ไดทําใหผูใช

วินโดวสสามารถสอดแทรก object จากโปรแกรมประยุกตตางๆ เขาไปในเอกสาร (client document) อยาง

สะดวกสบาย

โดยที่ object ซึ่งทํางานภายใตระบบ Microsoft's OLE จะยังคงความเช่ือมโยงสัมพันธกับ

โปรแกรมประยุกตซ่ึงสรางมันขึ้นมา (server applications) อยูตลอดเวลา หากผูใชวินโดวสตองการดัดแปลง

รายละเอียดภายใน object การคลิ้กเมาสซ้ําๆ กันสองคร้ัง (double clicks) ที่ตัว object ก็จะทําใหโปรแกรม

ประยุกตเจาของ object ดังกลาวถูกเปดข้ึนมาเพ่ือการทํางานดัดแปลงแกไข object ไดโดยอัตโนมัต

อยางไรก็ตาม ผลิตภัณฑ Microsoft's OLE 1.0 ยังคงมีขอจํากัดในการทํางานหลายๆ ประการที่

ทําใหงานบนวินโดวสหลายๆ อยางดําเนินไปไมสะดวกเทาที่ควร ยกตัวอยางเชน การอางอิงสถานที่อยูของ

object แบบสัมบูรณ (absolute path) ของ OLE 1.0 น้ันมักจะทําใหความเช่ือมโยงระหวาง object และ

เอกสารถูกทําลายลงอยางสิ้นเชิง หากผูใชวินโดวสมีการเคลื่อนยายตําแหนงของไฟลลซ่ึงรับผิดชอบ object

ออกไปจากตําแหนงไดเรกตอรี่เดิม

ขอจํากัดอีกอยางหน่ึงของผลิตภัณฑ OLE 1.0 ก็เห็นจะไดแกการที่ระบบใชวิธีเปดโปรแกรม

server applications ซึ่งเปนเจาของ object ข้ึนซอนทับอยูบนเอกสารหลักอีกทีหน่ึงนั้น ซ่ึงอาจจะทําใหผูใช

วินโดวสถูกทําใหออกจากโปรแกรมที่ใชงานอยูโดยไมต้ังใจ หากเกิดไปคลิ้กเมาสในตําแหนงหนาจอที่อยูนอกเหนือ

ขอบเขตของหนาตางที่โปรแกรมประยุกตครอบครองอยู

นอกจากน้ัน การจัดการหนวยความจําแบบเรียงตามลําดับของ OLE 1.0 (load from a

stream, or save to a stream) ก็ยังทําใหการทํางานโดยรวมของ OLE 1.0 เปนไปอยางเชื่องชาอยางมาก

เพราะจะตองเรียกเอา object ทั้ง object ขึ้นมาทุกครั้งที่มีการเรียกใช หรือถาตองการจะอัพเกรด object

Page 6: Object oriented computing พยุหยาตราของเหล่า objects

6

เพียงนิดๆ หนอย ระบบ OLE 1.0 ก็บังคับใหตองบันทึก object ลงไปใหมทั้ง object เลย แทนที่จะอัพเกรด

เฉพาะสวนที่มีการเปลี่นแปลงแกไขเทาน้ัน

"OLE 2.0" พัฒนาการอีกขั้นของ Microsoft's object

ดังน้ัน หลังจากเปดตัวผลิตภัณฑ

Microsoft's OLE เวอรช่ัน 1.0 ขึ้นมาไดระยะหนึ่ง บริษัท

Microsoft จึงตองออกผลิตภัณฑ OLE เวอรชั่น 2.0 ติดตามมา

ในรูปของโปรแกรมสวนขยายของ Windows 3.1 (Windows

3.1 extension) โดยใน OLE 2.0 น้ีไดมีการปรับปรุงแกไขขอจํากัดตางๆ ที่เคยปรากฏในผลิตภัณฑ OLE 1.0

ออกไปจนหมดสิ้น อยางเชน การอางอิงแบบสัมบูรณที่เคยเปนสาเหตุของการสูญเสียความเชื่อมโยงโดยถาวรของ

object ก็ถูกปรับเปลี่ยนไปใชการอางอิงตําแหนงที่อยูแบบสัมพัทธแทน ("moniker" adaptable link) ทําใหการ

เชื่อมโยงระหวางเอกสารยังคงสภาพเดิมตลอดไมวาจะมีการยายไฟลลขอมูลไปไหนตอไหน

สวนปญหาเร่ืองการหลุดออกจากโปรแกรมโดยไมต้ังใจเพราะไปดับเบิ้ลคลิ้กเมาสนอกหนาตาง

ของโปรแกรมน้ัน ผลิตภัณฑ OLE 2.0 ก็ปรับปรุงแกไขดวยการกําหนดรูปแบบเอกสารหลัก (container) เสีย

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

แทนที่เอกสารหลักไปโดยอัตโนมัติ (in-place activation) มิใชการเปดหนาตางข้ึนมาซอนทับอยูบนเอกสารหลัก

เชนในผลิตภัณฑ OLE 1.0

ที่สําคัญ ในผลิตภัณฑ OLE 2.0 นั้น ยังขยายขอบเขตความสามารถในการจัดการ

หนวยความจําขึ้นไปจากเดิม ทําใหผูใชวินโดวสสามารถเรียกอาน หรือบันทึก object เฉพาะสวนที่ตองการ หรือ

เฉพาะสวนที่ถูกอัพเดทเพิ่มข้ึนจากเดิมได ไมตองบันทึก หรือเรียกขอมูลทั้งหมดภายใน object ในแตละคร้ัง จึง

ทําใหการทํางานโดยรวมของของระบบ OLE 2.0 มีความสะดวกรวดเร็วกวาผลิตภัณฑ OLE 1.0 มากมายนัก

นอกจากน้ัน บริษัทไมโครซอฟทยังไดเสริมการทํางานดานโปรแกรมตางๆ เพิ่มเขามาอีกมากมายภายในผลิตภัณฑ

OLE 2.0 ที่ออกมาใหมของตน

ฉนั้น เมื่อมองจากมุมองของผูใชคอมพิวเตอรทั่วไปที่มีการติดตอกับคอมพิวเตอรในระดับ

โปรแกรมประยุกต ผลิตภัณฑ OLE 2.0 จึงเปนรูปแบบการประมวลผลที่นาประทับใจเปนอยางมาก อยางไรก็

ตาม สําหรับผูใชคอมพิวเตอรอีกกลุมหน่ึง คือ กลุมโปรแกรมเมอรผูออกแบบและพัฒนาผลิตภัณฑโปรแกรม

ประยุกตสําหรับใชงานกับระบบปฏิบัติการวินโดวสแลว ระบบ OLE 2.0 อาจจะเปนที่มาของความยุงยากใจบาง

ประการสําหรับเหลานักโปรแกรมเมอรทั้งหลาย

เพราะในการทํางานรวมกับระบบ OLE 2.0 นั้น โปรแกรมเมอรจําเปนตองปรับเปลี่ยนแนวคิด

ในการทํางานของตนไปจากเดิมคอนขางมาก จากที่เคยเขียนโปรแกรมใหครอบคลุมการทํางาน user interface

ซ่ึงติดตอกับผูใชโปรแกรมประยุกตโดยตรง ก็ตองเปลี่ยนไปเขียนโปรแกรมประยุกตที่โอนออนผอนตามการทํางาน

ของระบบ OLE 2.0 ประดุจทาสผูภักดีคนหน่ึง และปลอยการติดตอกับผูใชคอมพิวเตอรใหเปนหนาที่ของระบบ

OLE 2.0 แตเพียงผูเดียว

Page 7: Object oriented computing พยุหยาตราของเหล่า objects

7

ในขณะเดียวกัน ถึงแมวาจะสูญเสียอํานาจในการติดตอกับผูใชคอมพิวเตอรไปใหระบบ OLE

2.0 แลวแตโปรแกรมประยุกตที่ถูกออกแบบมาเพ่ือการทํางานภายใต OLE 2.0 ก็ยังคงตองออกแบบการอิน

เทอรซเฟระหวางโปรแกรม (interface) ใหมีความมั่นคงเชื่อถือได เพ่ือวาจะสามารถติดตอสัมพันธกับ object

ของโปรแกรมประยุกตอ่ืนๆ (object interaction) ไดอยางถูกตองมีประสิทธิภาพมากที่สุด

ความสัมพันธระหวาง OLE 2.0 และ C++

การทํางานที่ผสานสัมพันธระหวาง object หลายๆ object ของโปรแกรมประยุกตตางชนิดกัน

ภายใตระบบ OLE 2.0 น้ัน

เปนไปโดยผานการทํางาน

QueryInterface ของสวน

เช่ือมโยงสัญญาณหลัก (root

interface) ของระบบ OLE 2.0

ซึ่งมีชื่อเรียกวา "IUnknown"

เวลาที่ตองมีการติดตอระหวาง

object เกิดขึ้น ตัวโปรแกรม

เจาของ object ก็จะติดตอไปยังการทํางาน QueryInterface เพื่อรองขอรูปแบบการอินเทอรเฟซที่เหมาะสม ซึ่ง

จัดเก็บไวในตารางระบุชนิดการทํางานเสมือน (virtual function table หรือเรียกสั้นๆ วา vtable)

ตาราง vtable ของระบบ OLE 2.0 น้ีจะมีลักษณะคลายคลึงกับตาราง vtable ซ่ึงถุกสรางขึ้น

โดยโปรแกรม C++ compiler แตจะไมจําเพาะกับชนิด และประเภทของของแพล็ตฟอรมคอมพิวเตอร หรือชนิด

ของโปรแกรมคอมไพลลเลอรเชน vtable ของ C++ compiler (โครงสรางตาราง vtable ซ่ึงถูกสรางขึ้นโดย C++

compiler จะมีรูปแบบแตกตางกันไปตามชนิดของระบบคอมพิวเตอร หรือชนิดของโปรแกรมคอมไพลลเลอรที่ใช

แต vtable ของระบบ OLE 2.0 จะเปนมาตรฐานเดียวกันตลอดไมวาจะใชกับเครื่องคอมพิวเตอรแพล็ตฟอรมใด)

ความคลายคลึงกับโปรแกรม C++ น้ัน สงผลใหระบบ OLE 2.0 สามารถใชรวมกับโปรแกรม

C++ ไดงายกวาการใชงานรวมกับโปรแกรมภาษาชนิดอ่ืนๆ ทําใหโปรแกรมเมอรที่มีความถนัดในภาษา C++

สามารถเรียกใช object ของระบบ OLE 2.0 โดยผานทางโปรแกรมภาษา C++ ไดอยางไมมีปญหาในขณะที่การ

เรียกใช object ของ OLE ผานทางโปรแกรมภาษา C ธรรมดานั้นผูใชโปรแกรม C จะตองใชความพยายามขึ้น

จากการใชโปรแกรม C++ อีกกวาเทาตัว เพราะจะตองมีการจัดสราง vtable และเรียกใชอยางถูกตองชัดเจน

ความโนมเอียงไปสัมพันธกับโปรแกรมภาษา C++(C++ bias) ของผลิตภัณฑ OLE 2.0 สงผล

ใหมันมีภาพลักษณที่แตกตางไปอยางเดนชัดเม่ือเทียบกับระบบ OpenDoc ซ่ึงเปนรูปแบบการประมวลผล

object-oriented computing อีกชนิดที่ไดรับความนิยมไมย่ิงหยอนไปจาก OLE 2.0 เพราะหัวใจของระบบ

OpenDoc นั้น อยูที่ IBM's SOM (System Object Mode) ซ่ึงใชภาษาคําสั่ง neutrality language ที่มีความ

เปนกลางมากที่สุดในหมูบริษัทผูผลิตคอมพิวเตอรทั่วๆ ไป (คลายๆ กับวา OLE 2.0 น้ันเปนระบบปด ในขณะที่

OpenDoc เปนระบบเปด)

Page 8: Object oriented computing พยุหยาตราของเหล่า objects

8

แตละหนวย object ภายใตระบบ OLE 2.0 นั้น สามารถรองรับการทํางานตางๆ ภายในระบบ

คอมพิวเตอรไดอยางหลากหลาย ไมวาจะเปน การจัดการหนวยความจํา (memory management), การ

เชื่อมโยงระหวางชื่อของ object (name binding), การสงผานขอมูลไปมา (data transfer), หรือการจัดเก็บ

ขอมูลในรูป object (object storage) ฯลฯ

ในหมูของการทํางานภายในระบบคอมพิวเตอรซ่ึง object สัมพันธเกี่ยวของอยูดวยน้ัน สวนที่

นับวามีความสําคัญมากที่สุด เห็นจะไดแกการอินเทอรเฟซซึ่งระบุถึงวิธีการซ่ึงแตละ object ใชการตกลง

แบงสรรปนสวนทรัพยากร (resource negotiation) กับเอกสารหลัก เชนวา จะใหภาพของเอกสารที่ประกอบ

ไปดวย object หลายๆ ชนิดน้ันปรากฏบนหนาจอมอนิเตอรน้ันมีลักษณะ

อยางไร, หรือจะจัดเก็บขอมูลไวในหนวยความจําในลักษณะใด ฯลฯ

กลาวไดวาผลิตภัณฑ " OLE 2.0" ของบริษัทไมโครซอฟท

น้ี เปนหนึ่งในสุดยอดระบบการประมวลผลแบบ object-oriented

computing ที่มีอยูในปจจุบัน เพราะเพรียบพรอมไปดวยการทํางานอันมี

ประสิทธิภาพแทบทุกอยางที่ผูใชคอมพิวเตอรจะคาดหวังไดจากผลิตภัณฑ

ประเภทน้ี จะขาดไปบางก็เพียงความสามารถในการทํางานดานเน็ตเวิรก

(networking) เทาน้ัน ซ่ึงทางบริษัทไมโครซอฟทเองก็กําลังมีแผนที่จะ

ออกผลิตภัณฑระบบปฏิบัติการ distributed, object-oriented

Windows ใหมของตนออกสูตลาดในช่ือ "Cairo" ภายในไมเกินป ค.ศ.

1995 ที่กําลังจะมาถึงนี้

"OpenDoc" มาตรฐาน object ที่เปนกลาง

เม่ือบริษัทไมโครซอฟทมีการพัฒนาระบบการประมวลผล object-orient computing "OLE"

ออกสูตลาด และไดรับความนิยมจากเหลาผูใชคอมพิวเตอรอยางกวางขวางดังที่กลาวมาแลวน้ัน มีหรือที่บริษัท

ยักษใหญทางคอมพิวเตอรอยาง บริษัท Apple Computer จะยอมนอยหนา จึงไดรวมมืออีกเจ็ดบริษัท

คอมพิวเตอร อันไดแก IBM, WordPerfect, Novell, Sun, Xerox, Oracle และ Taligent จัดต้ังหนวยงานกลาง

ข้ึนมาในชื่อ the Component Integration laboratories (CIL) เพื่อออกแบบผลิตภัณฑ OpenDoc อันเปน

โครงสรางทางสถาปตยกลางสําหรับการประมวลผลแบบ object-oriented computing โดยเฉพาะ

ระบบ OpenDoc นี้เปนโครงสถาปตยแบบ object-oriented compound document

architecture ซ่ึงถูกออกแบบมาอยางเปดกวางและเปนกลางไมข้ึนกับรูปแบบการทํางานของระบบคอมพิวเตอร

ย่ีหอใดย่ีหอหน่ึง (vendor neutral) สามารถใชไดกับโปรแกรมประยุกตที่ถูกออกแบบมาใหทํางานตางระบบกันได

(cross-platform architecture) ไมวาโปรแกรมประยุกตดังกลาวน้ันจะถูกออกแบบมาเพ่ือใชงานบนแพล็ตฟอรม

ระบบ PC-compatible, ระบบ Macintosh, ระบบ Unix หรือ ระบบ Netware ฯลฯ

อยางไรก็ตาม ระบบ OpenDoc ที่วานี้ยังคงเชื่องชาลาหลังไปจากผลิตภัณฑ OLE 2.0 ของ

ไมโครซอฟทอยูคอนขางมาก เพราะจนแมกระทั่งบัดนี้ผูใชคอมพิวเตอรอยางเราๆ ทานๆ ก็ยังไมมีโอกสาใช

ผลิตภัณฑ OpenDoc ที่วานี้กันเสียที เทาที่มีอยูก็ยังคงเปนผลิตภัณฑ Alpha version สําหรับทดสอบลองใชกัน

Page 9: Object oriented computing พยุหยาตราของเหล่า objects

9

เฉพาะในหมูผูพัฒนาระบบเทาน้ัน และกวาจะถึงขั้นการทดสอบแบบ Beta test ก็คงจะตองลวงเขาชวงซัมเมอร

ของฝรั่ง ซึ่งเปนชวงของการประชุมใหญประจําปเหลาผูพัฒนาโปรแกรมประยุกตของบริษัทแอปเปล (the Apple

Worldwide Develoer's Conference) พอด ี

รายละเอียดพ้ืนฐานของ OpenDoc

แกนหลักในการทํางานของระบบ OpenDoc อยูที่เทคนิคการจัดเก็บขอมูลในหนวยความจําแบบ

"Bento storage mechenism" ซ่ึงมีชื่อแปลกๆ เพราะต้ังชื่อตามชุดอาหาร

ญี่ปุน Bento plates โดยอางอิงจากความหลากหลายของชนิดอาหารที่

ประกอบอยูบนชุดอาหาร Bento ที่วานั้น, เทคนิคการจัดสรางชุดคําสั่ง

script (Scripting technology) ที่สวนใหญถูกหยิบยืมมาจากชุดคําสั่ง

AppleScript, และแบบจําลองระบบ IBM's SOM (System Object

Model)

การจัดวางหนวย object ตางๆ บนเอกสารภายใตการ

ทํางานของ Bento storage mechanism น้ัน แตละหนวย object จะมี

หมายเลขรหัสประจําตัวที่ชัดเจนแนนอน (persistent ID) ไมเปลี่ยนแปลง

ไมวา object ดังกลาวน้ันจะถูกเคลื่อนยายไปไหนตอไหนภายในระบบ

คอมพิวเตอร หรือขามระบบคอมพิวเตอร ทําใหผูใชคอมพิวเตอรสามารถเรียกใช object ที่ตองการกลับมาใชได

อยางสะดวกสบาย ไมตางไปจากการติดตอกับ object ในระบบ OLE 2.0

แตที่การทํางาน Bento storage mechanism ของระบบ OpenDoc แตกตางไปจากระบบ

OLE 2.0 อยางชัดเจนเห็นจะไดแกวิธีการจัดการกับหนวยความจํา เพราะมันมิไดจัดเก็บไวเฉพาะขอมูลทราน

แซกชั่นที่ระบุวามีการดําเนินการอะไรกับ object บนเอกสารบางเหมือนในผลิตภัณฑ OLE 2.0 แตสามารถจัดเก็บ

และเรียกคนรายการปรับปรุงแกไขที่มีตอ object แตละ object ตั้งแตตนจนจบออกมาดูไดดวย (multiple

revision storing & tracking)

นอกจากน้ัน หากมีการดัดแปลงแกไขรูปแบบเอกสารโดยรวม (Compound document) ไป

จากเดิมหลายๆ แบบราง (several drafts) ระบบการจัดเก็บขออมูลบนหนวยความจําของ OpenDoc ก็จะเลือก

เก็บเฉพาะสวนที่ไดรับการเปลี่ยนแปลงแกไขเพ่ิมข้ึนจากเดิมเทาน้ัน (incremental changes) มิไดจัดเก็บแบบราง

ทั้งแบบราง ทําใหสามารถลดพ้ืนที่จัดเก็บขอมูลบนหนวยความจําลงไปไดอยางมาก รวมทั้งยังทําใหการเรียกดู

ขอมูลเอกสารแบบรางเปนไปอยางสะดวกรวดเร็วอีกดวย

ความสามารถในการจัดการเอกสารที่ไดรับการปรับเปลี่ยนไปในหลายๆ แบบราง (revision

control) นี่เองที่ทําใหระบบ OpenDoc ดูเหมือนวาจะมีภาษีเหนือกวาผลิตภัณฑ OLE 2.0 ของบริษัท

ไมโครซอฟทอยูคอนขางมาก (บริษัทไมโครซอฟทยืนยันวาจะมีการเสริมความสามารถในการทํางานแบบ revision

control ใหกับผลิตภัณฑ Object-oriented Operating system ของตนเหมือนกัน แตคงตองรอใชในผลิตภัณฑ

ระบบปฏิบัติการ cairo ที่กําลังจะออกสูตลาดน่ันแหละ)

Page 10: Object oriented computing พยุหยาตราของเหล่า objects

10

ชุดคําส่ัง Scripting ของ OpenDoc

สวนชุดคําสั่ง Scripting ของระบบ OpenDoc น้ันก็ดังที่กลาวมาแลวขางตนวาจําลองมาจาก

ชุดคําสั่ง AppleScript ของระบบปฏิบัติการ Macintosh เปนสวนใหญ จะมีปรับปรุงเพ่ิมเติมบางก็ในสวนของ

ความพยายามติดต้ังชุดคํากริยามาตรฐานใหอยูในรูปแบบ polymorphism อันนาจะเปนที่ยอมรับโดยทั่วไปมาก

ที่สุดเทาที่จะมากได (as general as possible verbs) โดยเฉพาะกับกลุมของโปรแกรมประยุกตที่ถูกออกแบบมา

เพ่ือรองรับการทํางานของระบบ OpenDoc

ตัวอยางที่แสดงใหเห็นการครอบคลุมความหมายอยางกวางๆ ของคํากริยาในชุดคําสั่ง

OpenDoc's Scripting ก็ไดแก คําสั่งที่บอกวา "move to next item" นั้น หากเปนคําสั่งที่ใชกับเอกสารประเภท

เวิรด ก็จะหมายความถึงการเคลื่อนไปยังคําถัดไป (move to next word) แตถาเปนการทํางานบนเอกสารตาราง

สเปรดชีต คําสั่งดังกลาวก็จะหมายถึงการเคลื่อนที่ไปยังชองตารางถัดไป (move to next cell)

การตกลงใจใชเทคนิค Polymorphism กับชุดคําสั่ง OpenDoc Scripting language ของ

บริษัท Appleน้ี เปนผลสืบเน่ืองมาจากประสบการณของบริษัทที่มีมาอยางยาวนานในผลิตภัณฑ HyperCard และ

เชื่อม่ันในกลไกการทํางาน XCMD (ยอจาก external command) mechanism ของ HyperCard จะอนุญาตให

นักโปรแกรมเมอรที่ตองการเสริมการทํางานของตนเขามาในระบบ HyperCard สามารถสอดแทรกคําสั่ง

arbitrary commands เขาไวภายในชุดคําสั่ง HyperCard's Scripting language ได

อยางไรก็ตาม การที่จะทําอยางวาน้ันได นักโปรแกรมเมอรผูออกแบบโปรแกรมประยุกตสําหรับ

ทํางานรวมกับผลิตภัณฑ HyperCard จําเปนตองอาศัยลูกไม และเทคนิคพลิกแพลงหลายๆ ประการมาประกอบ

เขากับการทํางาน XCMD ดวย (ความลําบากเล็กๆ นอยๆ เหลานี้เปนสิ่งนาจะหลีกเลี่ยงได หากวาแบบจําลอง

ชุดคําสั่ง HyperCard Language's model ไดรับการออกแบบโดยมีการคํานึงถึงจุดนี้ไวตั้งแตแรก)

ดังนั้น เพ่ือใหชุดคําสั่ง Scripting ของผลิตภัณฑ

OpenDoc มีความสละสลวยหมดจดงดงามมากข้ึน ทีมงาน

ผูออกแบบผลิตภัณฑจึงตกลงใจที่จะใชแบบจําลอง IBM's SOM

แทนที่จะเปน HyperCard Scripting เพราะชุดคําสั่ง IBM's SOM

Scripting นั้นไมขึ้นกับภาษาคอมพิวเตอรประเภทใดประเภทหน่ึง

(language-independent engine) ทั้งยังเพียบพรอมไปดวย

ความสามารถในการทํางานแบบ Inheritance และ Method-

dispatching ทําใหนักโปรแกรมเมอรตางๆ สามารถรวมเอา

โปรแกรมประยุกตที่แตกตางกันมากๆ เขามาไวดวยกันภายในระบบเดียวกันได

ย่ิงไปกวานั้น ทีมงานผูออกแบบผลิตภัณฑ OpenDoc ของบริษัท Apple ยังมีแผนที่จะ

ออกแบบใหระบบ OpenDoc สามารถทํางานรวมกับระบบ OLE ของไมโครซอฟทได (OLE's compatible) อีก

ดวย ซ่ึงถาแผนดังกลาวประสบความสําเร็จตามที่ทีมผูออกแบบมุงมายไว มันก็หมายความวาตอไปผูใชระบบ

OpenDoc จะสามารถนําเอาขอมูลในรูป object จากระบบ OLE เขามาประกอบ และใชงานภายในเอกสารของ

OpenDoc ไดดุจดังวา object ดังกลาวนั้น เปน object ที่ถุกสรางข้ึนโดยตัวระบบ OpenDoc เองเลย และตัว

Page 11: Object oriented computing พยุหยาตราของเหล่า objects

11

object ที่ถูกเขามาวางไวในเอกสาร Compound document ของระบบ OpenDoc ก็จะรับรูถึงตัวเอกสารใน

รูปแบบเดียวกับเอกสาร Container* ที่มันติดตออยูตามปรกติออยางไรอยางน้ัน

ในทางกลับกัน ผูใชผลิตภัณฑ OLE 2.0 ก็สามารถจะดึงเอาขอมูลใน รูป object ซ่ึงสรางขึ้น

โดยระบบ OpenDoc เขาไปใชในเอกสาร container ของตนในรูปลักษณแนวทางเดียวกัน เพียงแตตองผานการ

แปลงรูปแบบฟอรแมทของ object (reverse translation) สักเล็กนอย โดยอาศัยการทํางาน Application

layer ซึ่งกําลังอยูระหวางการดําเนินการพัฒนาโดยบริษัท WordPerfect (เปนความรวมมือระหวางบริษัท

WordPerfect, Borland, Claris, Lotus และบริษัทผูผลิตซอฟทแวรคอมพิวเตอรอ่ืนๆ )

* ระบบ OpenDoc และ OLE 2.0 มีวิธีการเรียกเอกสารซ่ึงประกอบไปดวย object ตางๆ ของตนที่แตกตางกัน

ขณะที่ผลิตภัณฑ OpenDoc เรียกเอกสารดังกลาววา "Compound document" ผลิตภัณฑ OLE 2.0 กลับ

เรียกวา "Container"

ซ่ึงหากจะถามวา การพัฒนาใหผลิตภัณฑ object-oriented operating system ทัง้สองระบบ

สามารถทํางานรวมกัน และสามารถเคลื่อนยาย object ไปมาระหวางระบบไดน้ี มีโอกาสเกิดข้ึนจริงมากนอย

เพียงไร คําตอบในขณะน้ีก็ยังคงตองบอกวามันไมใชเรื่องที่จะกระทําไดอยางงายๆ นัก กระนั้น มันก็มีลูทางและ

แนวโนมที่จะเกิดข้ึนไดคอนขางมากอยู เพราะอยางนอยแนวคิดพ้ืนฐานเร่ือง object ของผลิตภัณฑทั้งสองระบบน้ี

ก็เปนไปในทิศทางเดียวกัน, มีรูปแบบการทํางานพื้นฐานอยาง save และ delete เหมือนๆ กัน และมีรูปแบบการ

อินเทอรเฟซที่คลายคลึงกันอยางมาก ฯลฯ

"SOM & COM modeling" ใครจะเปนหมู ใครจะเปนจา ?

สวนสําคัญที่รองรับระบบ OpenDoc และ OLE 2.0 อยู คือแบบจําลองของการประมวลผล

แบบ object สองชนิดที่ดูเหมือนวาจะแขงขันกันอยางเอาเปนเอาตายอยูในขณะน้ี คือ แบบจําลอง IBM's SOM

(System Oboject Model) และแบบจําลอง

Microsoft's COM (Component Object Model)

ซ่ึงแตละแบบจําลองก็ตางมีรูปแบบโปรโตคอลซ่ึงใช

สําหรับการติดตอระหวาง object ที่มีลักษณะเฉพาะตัว

แตกตางกันออกไป

ความแตกตางที่เห็นไดชัดระหวาง

แบบจําลอง SOM และ แบบจําลอง COM คือในขณะที่

แบบจําลอง SOM ของบริษัท IBM ใชภาษาคําสั่งที่

คอนขางเปนกลางสําหรับเหลาบริษัทผูผลิตผลิตภัณฑ

ทางคอมพิวเตอรทั่วๆ ไป (language-neutral) และมี

การสนับสนุนการทํางานแบบ Inheritance ซึ่งอนุญาต

Page 12: Object oriented computing พยุหยาตราของเหล่า objects

12

ใหแตละโปรแกรมประยุกตสามารถถายทอดคุณลักษณะไปยัง object ยอยๆ ที่มันเปนผูใหกําเนิดข้ึนมาได

(คลายๆ กับการถายทอดพันธุกรรมจากพอแมปูยาตายายไปยังลูกหลานนั่นแหละ)

แตแบบจําลอง COM ของบริษัทไมโครซอฟทกลับใชภาษาซ่ึงคอนขางมุงเนนไปในลักษณะของ

ภาษา C++ เสียสวนมาก และแทนที่จะใชวิธีการสืบทอดคุณลักษณะตางๆ ของตัวโปรแกรมประยุกตไปยัง object

ซ่ึงมันสรางขึ้นแบบแบบ Inheritance แบบจําลอง COM ก็เลี่ยงไปใชวิธีการเช่ือมโยงความสัมพันธระหวาง

โปรแกรมประยุกตและ object กันแบบ aggregation แทน

แบบจําลอง SOM ถูกนําออกสูตลาดคอมพิวเตอรครั้งแรกโดยบริษัท IBM ดวยการติดตั้งมากับ

ระบบปฏิบัติการ OS/2 2.0 เพ่ือใชสนับสนุนการทํางาน class hierachy ในสวน WorkPlace Shell ของ

ระบบปฏิบัติการ OS/2 2.0 แตรูปแบบของแบบจําลอง SOM ในขณะน้ันยังมีสภาพเปนเพียงโปรแกรมประยุกต

ที่ใชสําหรับกําหนดลําดับชั้นของ object (object heirachies defining) และกระตุนเรียกเอา object ขึ้นมา

ทํางาน (object invoking) โปรแกรมหนึ่งเทาน้ัน

ภายใตการทํางานของแบบจําลอง SOM รุนแรกที่วาน้ัน เมื่อ SOM object หน่ึงเรียกกระตุนไป

ยังอีก SOM object หน่ึง โปรแกรมการทํางาน SOM run-time engine จะทําหนาที่ขัดจังหวะการเรียก แลว

จัดการกําหนดตําแหนงเปาหมายของ object ที่ถูกเรียก, และกระตุนเอา object เปาหมายดังกลาวขึ้นมาทํางาน

พรอมกับที่จัดสงเอาคาพารามิเตอรตางๆ ที่เกี่ยวของกับการทํางานไปยัง object เปาหมาย ในรูปของขอมูลฐาน

สองมาตรฐาน (standard binary format parameter)

ดวยรูปแบบ

การทํางานดังกลาวของ

แบบจําลอง SOM ไดชวย

แกปญหาความไมผสมผสาน

ระหวางภาษา (poorly

interoperate) ที่เคยเปน

อุปสรรคสําหรับเหลา

โปรแกรมเมอรผูใชโปรแกรม

ภาษา OOP (Object-

oriented programing) language มาอยางเน่ินนานลงได โดยปญหาความไมผสมผสานลงตัวระหวางภาษาน้ี

เดิมเกิดข้ึนเพราะยังไมมีมาตรฐานขอมูลฐานสอง (binary standard) ที่จะใชสนับสนุนการทํางานแบบ

inheritance และ Method dispatching ระหวางโปรแกรมที่ผานการคอมไพลลมาโดยโปรแกรมคอมไพลลเลอร

ที่ตางกันได

ตัวอยางของความไมผสมผสานระหวางโปรแกรมภาษาก็ไดแก การที่เราไมสามารถนําเอากลุม

โปรแกรม class libraries ซ่ึงถูกเขียนขึ้นดวยโปรแกรมภาษา Borland C++ มาดัดแปลงงาน (extend) ดวย

โปรแกรมภาษา Microsoft C++ ได, หรืออีกกรณีหน่ึงก็ไดแกการที่เราไมสามารถจะนําเอากลุมโปรแกรม class

libraries ที่สรางขึ้นโดยโปรแกรม Microsoft C++ หรือ Borland C++ มาใชงาน (inherit) หรือดัดแปลง

(extend) ดวยโปรแกรมภาษา COBOL, C, หรือ Smalltalk ได ฯลฯ

Page 13: Object oriented computing พยุหยาตราของเหล่า objects

13

อยางไรก็ตาม ปญหาความไมผสมผสานระหวางโปรแกรมภาษาตางๆ เหลาน้ีจะสามารถกําจัดให

หมดสิ้นไปได หากปลอยใหโปรแกรม SOM เปนผูรับผิดชอบตอการทํางานสวน inheritance และ method

dispatching แทนที่จะปลอยใหเปนการทํางานของโปรแกรมภาษา Borand C++, Microsoft C++ หรือ

โปรแกรมภาษา Object-oriented programming language ประเภทอ่ืนๆ

นอกจากน้ี แบบจําลอง SOM ยังนํามาซ่ึงคุณประโยชนอื่นๆ อีกหลายอยาง ที่เห็นไดชัดๆ ก็คือ

เรื่องความสะดวกรวดเร็วในการพัฒนาโปรแกรม (rapid development) อันเปนเรื่องที่ผูพัฒนาโปรแกรมสวน

ใหญมักจะใหความสําคัญกับมันเปนอยางมาก บางคนถึงกับเลิกใชโปรแกรมบางภาษาไปเลยเพราะความชักชา

เสียเวลา โดยเฉพาะกลุมโปรแกรมประเภทที่ตองมีการคอมไพลลโปรแกรมทั้งโปรแกรมใหมหมด (recompile)

ทุกครั้งมีการดัดแปลงแกไขอะไรเพียงนิดหนอยในโปรแกรม

ความรวดเร็วในการทํางานของแบบจําลอง SOM เปนผลมาจากการที่มันถูกออกแบบมาใหไม

จําเปนตองมีการคอมไพลลโปรแกรมใหม (recompile) ทุกครั้งที่การดัดแปลงแกไขโปรแกรม ผูใชแบบจําลอง

SOM สามารถเสริมรูปแบบการทํางานใหมๆ (new method) หรือคาตัวแปรจําเพาะที่ (local variables) เขาไป

ในโปรแกรมหลัก (base class) ไดโดยไมจําเปนตองคอมไพลลโปรแกรมดังกลาวเสียใหม ในขณะที่โปรแกรมซึ่ง

ผานการดัดแปลงแกไขจากเดิมไปแลวนั้นก็ยังคงความสามารถในการเรียกใชการทํางานเดิมๆ ที่เคยมีอยูใน

โปรแกรมหลัก (base class's method) ไดอยางไมมีปญหา

ความยืดหยุนของโปรแกรมดังกลาวมีความสําคัญอยางมาก หากวาเราตองการใหระบบ

คอมพิวเตอรสามารถพัฒนาขอบเขตความสามารถการทํางานขึ้นไปจากเดิมไดอยางไมมีปญหา ยกตัวอยางเชน

ถาเรามีการจัดสรางหนาตาง object สําคัญๆ ขึ้นมาหนาตางหน่ึง โดยภายในหนาตางนั้นเกี่ยวของสัมพันธกับ

โปรแกรมประยุกตหลายๆ โปรแกรม เราก็คงไมคาดหวังวาจะตองกลับมานั่งคอมไพลลหนาตางดังกลาวใหมหมด

เมื่ออยูๆ วันดีคืนดีทางบริษัท IBM มีการอัพเดทระบบซ่ีงรองรับหนาตางดังกลาวเสียใหม

ตรงน้ีเองที่แบบจําลอง SOM เปนเสมือนอัศวินขี่มาขาวเขามา เพราะมันทําใหผูใชไมตองคอม

ไพลลโปรแกรมเสียใหมทุกครั้งที่มีการเปลี่ยนแปลงของระบบหลัก (base system) อยางไรก็ตาม ความยืดหยุน

ดังกลาวของระบบก็มิไดเปนสิ่งจะไดมาฟรีๆ ตองแลกมาดวยขอจํากัดบางอยาง เพราะการติดตั้งแบบจําลอง

SOM เขามาน้ันหมายถึงวาตัวโปรแกรมคอมไพลลเลอรจะไมสามารถปรับเปลี่ยนรูปแบบการสื่อสารระหวาง

object (interobject communication optimize) เชนเคยทําได

นอกจากนั้น เมื่อไมนานมาน้ีทางบริษัท IBM ยังมี

การจะพัฒนาขีดความสามารถของแบบจําลอง SOM ใหข้ึนไปเลนบน

ระบบการประมวลผลบนเครือขายเน็ตเวิรกคอมพิวเตอรอยาง

IPX/SPX, TCP/IP, และ NetBIOS networks ภายใตชื่อ DSOM

(Distributed SOM) อีกดวย โดยแบบจําลอง DSOM ซ่ึงไดรับการ

พัฒนาข้ึนมาใหมนี้ จะมีรูปลักษณที่ไทแตกตางไปจากแบบจําลอง

SOM เลยในสายตาของโปรแกรมเมอรทั่วๆ ไป เพียงแตวา

Page 14: Object oriented computing พยุหยาตราของเหล่า objects

14

แบบจําลอง DSOM นั้นจะมีโปรแกรม run-time engine ที่สามารถจับคู object เขากับคําสั่งรองขอ (request)

ตางๆ ไดอยางเหมาะสม ไมจํากัดวาคํารองขอดังกลาวน้ันจะมาจากกระบวนการทํางานประเภทใด หรืออยูภายใต

การทํางานของคอมพิวเตอรประเภทใด

แบบจําลอง COM

แบบจําลอง COM (Compound Object Model) ไดรับการพัฒนาขึ้นโดยบริษัทไมโครซอฟทไว

เพ่ือใชงานกับผลิตภัณฑ OLE 2.0 ของตนโดยเฉพาะ มีเปาหมายในการทํางานไมตางไปจากแบบจําลอง SOM

ของบริษัทไอบีเอ็มสักเทาใดนัก เพียงแตใชรูปแบบวิธีการที่ตางออกไปเทานั้น ความแตกตางสําคัญอยูตรงที่

บริษัทไมโครซอฟทเลือกที่จะใชเทคนิค aggregation ในการเชื่อมโยงความสัมพันธระหวางโปรแกรมประยุกตกับ

object ที่มันสรางข้ึน แทนที่จะเปนเทคนิค inheritance เชนในแบบจําลอง SOM

การทํางานของเทคนิค aggregation ของแบบจําลอง COM น้ัน จําเปนที่แตละ object จะตอง

ประกอบไวดวยคาตัวชี้ (pointer) ซึ่งระบุไปยัง object ที่อยูลําดับสูงขึ้นไป (higher hierachy) เชน สมมติวา

เรามีการจัดสราง object ในรูปตารางสเปรดชีตขึ้นมาสัก object หน่ึง โดยตารางที่สรางข้ึนน้ีมีขอพิเศษจาก

ตารางสเปรดชีตทั่วๆ ไปหนอยตรงที่ตองการใหขนาดความกวางคอลัมนของตารางสามารถปรับขยายไดตาม

ตองการ(flexible columns width) ไมจํากัดที่ขนาดความกวางขนาดใดขนาดหนึ่ง (fixed columns)

หากเปนการทํางานของโปรแกรมภาษา OOPs รุนเกาๆ ทั่วๆ ไป ก็คงจะตองมีการถายทอด

คุณสมบัติตางๆ ดานตารางตามที่กําหนดไปยัง object จากโปรแกรมพ้ืนฐาน (capabilties inherit) จากน้ันก็

จัดการครอบงําสวนการทํางาน display function ที่เก่ียวของการแสดงภาพบนหนาจอ ใหจัดสรางตารางสเปรด

ชีตที่มีชองคอลัมนซึ่งสามารถปรับขยายขนาดได แลวตัวโปรแกรมคอมไพลลเลอรภาษา C++ หรือโปรแกรม SOM

run-time machine จะเปนตัวกําหนดสงคําสั่งการแสดงออกบนหนาจอมอนิเตอร (display call) ที่วาน้ันไปยัง

object สเปรดชีตที่เราสราง พรอมๆ กับที่มีการสรางเสนทางการเดินทางของคําสั่งดังกลาวอีกสายหนึ่งไปยัง

object เดิมซึ่งเปนตนกําเนิดของตารางสเปรดชีต

แตสําหรับเทคนิค

aggregation ของแบบจําลอง COM แลว

มันจะไมมีการกําหนดทิศทางคําสั่งแสดงออก

บนหนาจอใหมโดยอัตโนมัติ (automatic

redirection) เชนแบบจําลอง SOM ผูใช

แบบจําลอง COM ตองระบุรายละเอียด

คาตัวชี้ซ่ึงอางอิงไปยัง object ลําดับสูงข้ึน

ไป (upper class reference pointer)

เพ่ิมใหกับตาราง vtable ของ object สเป

ปรดชีตที่ไดรับการดัดแปลงแกไขดวยตนเอง

ซ่ึงการรวมเอา pointer เขากับ object นี้

เองที่ทางบริษัทไมโครซอฟทเรียกวาการ aggregate

Page 15: Object oriented computing พยุหยาตราของเหล่า objects

15

การ aggregrate หรือการผนึกคา pointer เขากับ object นี้มีความสําคัญอยางมากสําหรับ

แบบจําลอง COM เพราะการทํางาน QueryInterface ในแตละ object ของ OLE จะรูจักวาตองติดตอกับ

object อ่ืนๆ อยางไรบางก็อาศัยขอมูลภายในตาราง vtable (virtual function table) เทานั้น มันไมสามารถ

สืบคนกลับไปยัง object อ่ืนๆ ไดดวยตัวของมันเอง แมวา object น้ันจะเปนตนกําเนิดและเทือกเถาเหลากอของ

มันเองก็ตาม (ancestor objects)

ที่ทีมงานวิศวกรผูออกแบบโครงสรางทางสถาปตยของไมโครซอฟทเลือกตกลงใจที่จะใชเทคนิค

การ aggregation กับแบบจําลอง COM ของตนก็เน่ืองมาจากเหตุผลวาตองการปกปองตัวโปรแกรมอันเปนตน

กําเนิดดั้งเดิมของ object จากขอผิดพลาดที่คาดไมถึง (fragile base class) อันเน่ืองมาจากการดัดแปลงแกไข

รายละเอียดไปจากเดิม แตในขณะเดียวกันพวกเขาก็ไมตองการตัดขาดความสัมพันธระหวาง object กับรากฐาน

เดิมที่สรางมันข้ึนมา จึงใชวิธีเพ่ิมคาตัวชี้ (pointers) เขาไปในตาราง vtable ของ object แทน

การปฏิวัติครั้งสําคัญของ Taligent

ระบบปฏิบัติการ Taligent น้ันนับวาเปนปรากฏการณที่คอนขางใหมในหมูระบบปฏิบัติการ

object-oriented operating system เพราะแทนที่จะไปนําเอาแบบจําลอง และโครงสรางทางสถาปตยที่มีๆ

อยูมาดัดแปลงแกไขใหมใหเปนการประมวลผลในแบบ object เชนผลิตภัณฑ object-oriented OS รายอื่นๆ

ทางบริษัท

Taligent กลับ

เลือกจัดสราง

ระบบปฏิบัติการใน

แนว object-

oriented ขึ้นมา

จากรากฐานเลย

ทีเดียว

ทําใหทุกๆ สวนของระบบปฏิบัติการ Taligent ไมวาจะเปนสวนโปรแกรมขับอุปกรณ (device drivers)

หรือสวนของโปรแกรมประยุกต (applications) ตางก็ลวนอางอิงถึงแบบจําลอง object เดียวกันทั้งสิ้น

(common object model) โดยทางบริษัท Taligent เชื่อวาดวยรูปแบบการพัฒนาบริษัทระบบปฏิบัติการแนวน้ี

เทาน้ัน จึงจะทําใหระบบปฏิบัติการที่ไดมามีความบริสุทธผุดผอง ไมมีขอติดขัดขัดแยงอันเน่ืองจากการผสม

กลมกลืนระหวางผลิตภัณฑตางระบบ และสามารถพัฒนาขยับขยายตอไปไดอยางไมจํากัด (completly

extensible)

พ้ืนฐานโครงสรางหลักของระบบปฏิบัติการ Taligent อยูที่สวนการทํางานที่เรียกวา

"framework" อันเปรียบเสมือนบังเหียนที่คอยควบคุมบังคับกลุมของ object ตางๆ ที่เขามาประกอบในระบบให

ดําเนินไปในิศทางเดียวกัน อยางไรก็ตาม คําวา Framework ของระบบปฏิบัติการ Taligent น้ีจะแตกตางไปจาก

ความหมายของคําวา Framework เดิมๆ(conventional framework) ที่เคยรูจักกันมา

Page 16: Object oriented computing พยุหยาตราของเหล่า objects

16

โดยในความหมายของ Framework แบบเกาๆ ซ่ึงประกอบไปดวยกลุมโปรแกรม Object

Windows Library (OWL) ของบริษัท Borland และกลุมโปรแกรม MacApp ของบริษัท Apple น้ัน จะ

ครอบคลุมเฉพาะในระดับของการจัดสรางโปรแกรมประยุกตซึ่งทํางานภายใตระบบปฏิบัติการ Windows หรือ

Macintosh อันประกอบไปดวยกลุมโปรแกรม classes for Windows, controls, menus และรูปแบบการ

ทํางานของโปรแกรมประเภท GUI (Graphic User Interface) ประเภทตางๆ เทาน้ัน

ซ่ึงการทํางานของ Framework แบบเดิมๆ หรือ Conventional framework นี้ จะมุงเนนไป

ที่ความสะดวกสบายและความเปนมาตรฐานในการติดตอกับผูใชคอมพิวเตอร ทําใหเหลาโปรแกรมเมอรทั้งหลาย

สามารถทุมเทเวลาสวนใหญไปมุงเนนไปที่การออกแบบโปรแกรมประยุกตของตนไดอยางลึกซึ้ง และมี

ประสิทธิภาพมากย่ิงข้ึน โดยปลอยใหสวนของการติดตอกับผูใชกลายเปนอํานาจหนาที่ของสวนการทํางาน

Framework ไป

แตสําหรับสวนการทํางาน Framework ของระบบปฏิบัติการ Taligent แลว มันจะลงลึกไปกวา

การทํางาน Framework แบบเดิมๆ มากมายนัก เพราะไดมีการเจาะลึกลงไปถึงกนบึ้งของระบบปฏิบัติการน่ัน

เลยทีเดียว ซึ่งนั่นก็ยอมทําใหโปรแกรมประยุกตตางๆ ที่ถูกเขียนข้ึนเพื่อการทํางานรวมกับระบบปฏิบัติการ

Taligent มีอิสระในการทํางานไดมากย่ิงข้ึน แตก็อีกน่ันแหละ เสรีภาพในการออกแบบโปรแกรมประยุกตของ

โปรแกรมเมอรนั้นก็หมายถึงวาเหลาโปรแกรมเมอรจะตองมีความระมัดระวัง และความรับผิดชอบในการเขียน

โปรแกรมมากยิ่งข้ึนตามไปดวย จะตองระมัดระวังวาการดัดแปลงปรับรูปแบบการทํางานตางๆ ของตนจะตองไม

ไปรบกวนกับการทํางานของระบบปฏิบัติการโดยรวมดวย

กลาวโดยรวมๆ แลว ระบบปฏิบัติการ Taligent นี้ก็นับไดวาเปนระบบปฏิบัติการแบบ Object-

oriented OS ที่นาสนใจเปนอยางมาก เพราะเปนผลิตภัณฑที่ไดรับการออกแบบข้ึนเพ่ืองานประมวลผลแบบ

object ตั้งแตสวนรากฐานขึ้นมาเลยทีเดียว จะมีปญหาอยูบางก็เฉพาะเรื่องความไมแนนอนในนโยบายของ

บริษัทเทานั้น เพราะบริษัท Taligent นั้นเปนผลิตผลรวมระหวางบริษัท Apple และบริษัท IBM ดังน้ันจะทํา

อะไรสักอยางก็ติดขัดวาทางบริษัทแมของตนจะวาอยางไร (คลายๆ กับรัฐบาลผสมหาพรรคของไทยเรานั่นๆ แหละ

จะทําอะไรก็ดูเหมือนยึกยักเอาแนนอนไมคอยไดเหมือนกัน)

"NeXTStep" ผูมากอนกาล

ความฮือฮาในเทคโนโลยีการประมวลผลแบบ object-oriented computing ที่เกิดขึ้นภายใน

ชวงสองสามปที่ผานมา รวมทั้งขาวสารขอมูลที่ออกมาจากเหลาบริษัทผูผลิตผลิตภัณฑคอมพิวเตอรรายสําคัญๆ

เชน Apple, IBM, Microsoft และ Taligent ที่ปรากฏออกสูสายตาผูคนในวงการคอมพิวเตอรอยางตอเน่ือง

อาจจะทําใหผูใชคอมพิวเตอรอยางเราๆ ทานๆ หลงประเด็นไปไดเหมือนกันวา บริษัทเหลาน้ีนี่แหละที่เปนผูให

กําเนิดเทคโนโลยีการประมวลผลแบบ object-oriented ทั้งที่จริงๆ แลวพวกเขาเปนเพียงผูที่เขามาเก็บเก่ียว

ผลประโยชนจากสิ่งที่บริษัท Next เขามาบุกเบิกหักรางถางพงแตแรกดวยผลิตภัณฑระบบปฏิบัติการ NeXTStep

ระบบปฏิบัติการ NeXTStep ซึ่งนับไดวาเปนผูเปดศักราชแหงเทคโนโลยีการประมวลผลแบบ

object-oriented ที่วาน้ีไดเปนที่ปรากฏตอสายตาผูใชคอมพิวเตอรครั้งแรกก็ต้ังแตหาปที่แลว (ค.ศ. 1989) โดย

ถูกติดต้ังมากับผลิตภัณฑเครื่องคอมพิวเตอร Personal workstation ของบริษัท Next ประกอบไปดวย

Page 17: Object oriented computing พยุหยาตราของเหล่า objects

17

คุณสมบัติทางดาน object-oriented OS หลายๆ อยางที่ไมตางไปจากผลิตภัณฑ object-oriented OS ใหมๆ

เลย ไมวาจะเปน การสนับสนุนการทํางานดาน Framework ของฐานขอมูล หรืองานประเภทภาพกราฟฟกสาม

มิติ (3-D graphics work)

หลังจากผานไปหาป ระบบปฏิบัติการ NeXTStep ไดรับการพัฒนาข้ึนใหมีประสิทธิภาพสูงข้ึน

กวาเดิมมาก โดยเฉพาะในจุดที่วาดวยการจัดสรรหนวยความจําใหมีความเหมาะสมกับงานที่ทําอยู (optimize

memory allocation) น้ัน จะอนุญาตใหจัดวาง

object ทั้งหมดไวภายในหนวยความจําเดียวกันได

ทําใหไมจําเปนตอง swapt ยายขอมูลเขาออกจาก

หนวยความจําเชนที่เคยเปนมากับผลิตภัณฑ

NeXTStep รุนแรกๆ

อีกทั้งในสวนโปรแกรมคอม

ไพลลเลอรของ NeXTStep ก็ยังมีความสามารถ

ในการทํางานหลายๆ อยางในระดับ object-

level optimization ไดดวย โดยแตละการ

ทํางานที่วาน้ีจะถูกกําหนดจําแนกไวดวยเลขหมาย

ที่จําเพาะตัว ทําให object ของระบบปฏิบัติการ NeXTStep สามารถเรียกใชการทํางานตางๆ ไดโดยผานเลข

หมายประจําตัว (by number) แทนที่จะเปนการเรียกดวยชื่อ (by name) ทําใหมีความเปนมาตรฐานเสมอไมวา

จะเปลี่ยนไปใชภาษาที่มีใชคําศัพทอยางไร และจึงมีผลสืบเน่ืองใหระบบปฏิบัติการ NeXTStep มีการทํางานได

อยางรวดเร็วอีกดวย

นอกจากน้ัน ผลิตภัณฑ NeXTStep ยังถูกออกแบบมาเพ่ือการสงผานขอมูลในรูป object ไปมา

ระหวางเครื่องคอมพิวเตอรที่ติดตั้งอยูภายในเครือขายเน็ตเวิรกไดดวยเทคนิคที่มีชื่อเรียกวา "Distributed Object"

ซ่ึงหากนักโปรแกรมเมอรรายใดตองการให object ของตนสามารถจัดสงไปตามเน็ตเวิรกได ก็จะตองลงทะเบียน

ช่ือ object ของตนไวในสวน Network Name Service ของระบบปฏิบัติการ NeXTStep (เทคนิคการ

ลงทะเบียนชื่อ object เพ่ือใชจัดสงไปตามเคร่ืองขายเน็ตเวิรกนี้เรียกวาการ "vending")

ดวยการทํางานงานของ Distributed Object น่ีเองก็ทําให นักโปรแกรมเมอรทั้งหลายที่ตอง

ติดตอกับเน็ตเวิรกสามารถทํางานไดสะดวกสบายข้ึน เพราะไมตองติดตอกับการทํางานระดับลางสุดของเน็ตเวิรก

(lowest level interaction) โดยตรง ไมวาสวนที่ตองติดตองดวยน้ันจะเปนระบบปฏิบัติการ Mach (เปน

ระบบปฏิบัติการ Unix ประเภทหน่ึง ไดรับการพัฒนาข้ึนโดยมหาวิทยาลัย Carnegie-Mellon) , ตัวเน็ตเวิรกเอง

หรือ สวนการทํางาน RPCs (Remote procedure calls)

ปจจุบัน บริษัท Next ไดมีการพัฒนาเทคนิคการทํางานของ object บนเน็ตเวิรก (Distributed

Objects) ใหสามารถทํางานบนระบบปฏิบัติการอ่ืนๆ ไดดวย โดยใหช่ือวา PDO (Portable Distributed

Objects) เชน ผลิตภัณฑ PDO for HP-UX ที่มีแผนจะนําออกสูตลาดภายในเวลาไมเกินสิ้นปน้ี ก็จะประกอบไป

ดวยสวนโปรแกรม Objective C language compiler (ภาษาเดียวกับที่ผลิตภัณฑ NeXTStep ถูกเขียนขึ้นมา)

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

Page 18: Object oriented computing พยุหยาตราของเหล่า objects

18

หลังจาก PDO for HP-UX แลว บริษัท Next ก็แผนทยอยผลิตภัณฑ PDO สําหรับ

ระบบปฏิบัติการอ่ืนๆ ติดตามออกมาอยางตอเน่ือง อันไดแก PDO for Dat General, PDO for NCR, PDO

สําหรับระบบปฏิบัติการ Unix ตางๆ และรวมไปถึง PDO สําหรับระบบปฏิบัติการประเภทอ่ืนๆ ที่

นอกเหนือไปจากกลุม Unix อันไดแก PDO for Windows NT

"COBRA" มาตรฐานการเชื่อมโยงระหวางระบบ

บริษัท Hewlett-Packard, Sun Microsystems, และ DEC ก็นับเปนกลุมบริษัทผูผลิต

ผลิตภัณฑทางคอมพิวเตอรอีกกลุมหน่ึงที่นับวามีประสพการณดานเทคโนโลยีการประมวลผลแบบ object มา

อยางยาวนานเชนกัน โดยปจจุบันทั้งสามบริษัทที่วานี้ไดตกลงรวมือกับบริษัทผูผลิตคอมพิวเตอรอื่นอีกหลายๆ ราย

จัดต้ังกลุมพันธมิตรทางอุตสาหกรรมคอมพิวเตอรชื่อ OMG กรุป (Object Management Group) ขึ้นเพื่อพัฒนา

มาตรฐานกลางสําหรับการแลกเปลี่ยนขอมูลในรูป object ระหวางผลิตภัณฑตางระบบ (standard for object

exchange)

มาตรฐานที่วานั้น คือ โครงสรางทางสถาปตย "COBRA (Common Object Request Broker

Architecture)" ซ่ึงทําหนาที่กําหนดวิธีการที่แตละ object ใชกําหนดตรวจสอบตําแหนงที่อยูของ object อื่นๆ

ตลอดจนวิธีการทีจ่ะเรียกใชการทํางานบน object นั้นๆ มาตรฐาน COOBRA นี้ถาจะวาไปแลวก็คลายๆ กับ

แบบจําลอง SOM ของบริษัท IBM ซ่ึงก็ไมนาจะเปนที่แปลกใจนัก เพราะเราสามารถนําแบบจําลอง SOM มาใช

รวมกับมาตรฐาน COBRA ไดดวย (COBRA compliant)

เชน ถาใชแบบจําลอง DSOM ภายใตระบบปฏิบัติการ OS/2 (หรือระบบปฏิบัติการ AIX) อยู

เราก็สามารถจะเรียกใชการทํางานของ object บนระบบปฏิบัติการ COBRA compliant อื่นๆ ได ไมวาจะเปน

object ที่ทํางานบนระบบ Hewlett-Packard, Sun ฯลฯ อยางไรก็ตาม มันมิไดเปนการยืนยันวาเราจะสามารถ

ใชมาตรฐาน COBRA ดัดแปลงแกไข object ที่สรางข้ึนจากเคร่ืองคอมพิวเตอร Macintosh (OpenDoc object)

บนเครื่องคอมพิวเตอร RISC workstation ได

มันอาจจะทําได หรือทําไมไดก็ได เพราะมาตรฐาน COBRA นั้นเพียงแตรับประกันวาจะอนุญาต

ให object จากระบบหน่ึงไปเรียกใช object ของอีกระบบในการทํางานระดับ low-level mechanism เทาน้ัน

และหากตองการใหการทํางานของ object ระบบหน่ึงสามารถนําไปใชกับ object อีกระบบหน่ึงไดอยางสมบูรณ

แบบ (succesfully interaction) object ทั้งสองน้ันก็ควรจะเขาใจถึงสารที่ปรากฏอยูภายใน object ของ อีก

ฝายหน่ึงดวย

ซ่ึงกลุมพันธมิตร OMG ก็มีความหวังวาจะสามารถรวบรวมเอาคุณลักษณะของระบบปฏิบัติการ

ของเหลาบริษัทผูผลิตเครื่องเวิรกสเตช่ันรายสําคัญๆ เขามาไวภายในมาตรฐาน COBRA ของตนใหมากที่สุดเทาที่

จะมากได เชนมีการนําเอาขอกําหนด COSS (the Common Object Service Specification) ของบริษัท

Sunsoft เขามาประกอบเปนสวนหนึ่งของมาตรฐาน COBRA ฯลฯ

ระบบรักษาความปลอดภัยยิ่งทวีความจําเปน

Page 19: Object oriented computing พยุหยาตราของเหล่า objects

19

มีความจริงที่นาตระหนกอยางหนึ่งวา ยิ่งเราพยายามเชื่อมโยงเอาการทํางานบนคอมพิวเตอรตาง

ระบบเขามาไวดวยกันมากข้ึนเทาไร มันก็จะย่ิงใหความสามารถในการรักษาความปลอดภัยของขอมูลภายในระบบ

ลดนอยลงไปเทาน้ัน โดยเฉพาะยิ่งถาอนุญาตใหมีการสงผานขอมูลในรูป object ผานไปมาระหวางเครื่อง

คอมพิวเตอรภายในเน็ตเวิรก หรืออนุญาตใหแตละ object สามารถเรียกการทํางานใน object อื่นๆ ขึ้นมาใชได

ดวยแลว ก็จะยิ่งทําใหความเสี่ยงที่จะมีผูไมหวังดีเขามาเรียกดูเรียกใชขอมูลอันเปนความลับเพ่ิมข้ึนอยางมาก

ระบบการประมวลผลแบบ Object-oriented computing ทั้งหลายจึงจําเปนตองเพิ่มกลไก

ทางคณิตศาสตรเขามาคอยกลั่นกรองการติดตอตางๆ ภายในเครือขายการเชื่อมโยงสัญญาณ เพ่ือปกปองขอมูล

สําคัญๆ ใหพนเสียจากสายตาอันสอดรูสอดเห็นของผูไมประสงคดี และอนุญาตใหเฉพาะบุคคลหรือ object ที่

ไดรับสิทธิในการติดตอจริงๆ (authentic person or object) เทาน้ันที่จะติดตอเขามายังขอมูลได แตปญหาที่

ตามมาก็คือ กลไกการตรวจสอบดังกลาวน้ันยอมจะนํามาซ่ึงความชักชาเสียเวลาการทํางานของระบบอยาง

หลีกเลี่ยงไมได

เพราะในขณะที่ระบบเครือขายเน็ตเวิรกทั่วๆ ไปน้ัน การตรวจสอบสิทธิเขาถึงขอมูล (security

check) จะดําเนินไปเฉพาะตอนที่ผูใชติดตอ Log on เขากับเครือขายเน็ตเวิรก แตสําหรับระบบการประมวลผล

Object-oriented computing ที่มีการเรียกถึงกันระหวาง object บอยๆ แลวละก็ การตรวจสอบสิทธิทุกคร้ังที่

มีการเรรียกระหวาง object ยอมจะสงผลใหหนวยประมวลผลตองทํางานหนักข้ึนโดยไมจําเปน

ดังนั้น รูปแบบเทคนิคการรักษาความปลอดภัยขอมูลแบบใหมๆ จึงจําเปนตองไดรับการ

พัฒนาขึ้นมาเพ่ืองานประเภท Distrbuted, Object-oriented computing โดยเฉพาะ และระบบการรักษาา

ความปลอดภัยขอมูลสําหรับ Object-oriented computing ที่มีอยูในขณะนี้ก็มีอยูไมก่ีระบบเทานั้น ระบบแรก

ซ่ึงกําลังไดรับความสนใจอยางมากจากบริษัท Novell และ บริษัท Apple คือการนําเอากลไกทางตรรกกะ

"public key algorithms" ภายใตสิทธิบัตรของบริษัท RSA Data Security และ Public Key Partners มาใช

ภายใตกลไกการรักษาความปลอดภัยแบบ public key algorithms ที่วาน้ี รหัสผานเขาระบบ

จะถุกแบงออกเปนสองสวน สวนหน่ึงน้ันเปดเผยได (published key), อีกสวนหน่ึงถุกเก็บไวเปนความลับโดย

เจาของระบบ (owner private key) ซ่ึงสวนควบคุมกลาง (central authority) จะแจกจายเฉพาะรหัสสวน

published key ใหกับผูใชทั่วๆ ไปเทาน้ัน

อีกวิธีหนึ่งสําหรับระบบรักษาความปลอดภัยของขอมูลในระบบ Distributed, Object-

oriented computing น้ัน เปนเทคนิคที่ถุกเลือกใชโดยบริษัท Apple, IBM, DEC และบริษัทผูผลิตคอมพิวเตอร

ระบบ Unix ทั่วๆ ไป เปนการทํางานที่มีรากฐานมาจากระบบการรักษาความปลอดภัย the Kerberos system

ซ่ึงไดรับการพัฒนาข้ึนโดยสถาบัน MIT (Messachusetts Institute of Technology) ต้ังแตชวงทศวรรษที่ 80

การทํางานของระบบ the Kerberos system นั้นข้ึนอยูกับรหัสผานอันเปนความลับ (private

key) ที่ไดรับการกําหนดมาจากหนวยงานกลางที่มีสิทธิขาดในการปกปองขอมูล (central, trusted authority)

แตเพียงอยางเดียว และทุกคร้ังที่มีการสรางความเช่ือมโยงสัมพันธกันระหวางสวนตางๆ ภายในเครือขายเน็ต

เวิรกข้ึนมาใหม รหัสลับก็จะถุกจัดสรางข้ึนโดย central authority เพ่ือแจกจายใหกับสวนที่มีความสัมพันธกันน้ัน

ทันที ซ่ึงแตกตางไปจากการรักษาความปลอดภัยแบบ Public key algorithms ซึ่งหนวยงานกลางมีหนาที่

เกี่ยวของเฉพาะเม่ือคอมพิวเตอรสองเคร่ืองมีการติดตอกันเปนคร้ังแรกเทาน้ัน

Page 20: Object oriented computing พยุหยาตราของเหล่า objects

20

สําหรับวิธีการรักษาความปลอดภัยขอมูลในระบบ Object-oriented computing รายลาสุด

น้ัน เปนวิธีการที่ถูกติดต้ังมากับระบบปฏิบัติการลาสุดบนเครื่อง Macintosh ของบริษัท Apple ที่มีช่ือวา

"System 7 Pro" ซึ่งเปนระบบปฏิบัติการที่ออกแบบมา

เพ่ือการทํางานบนเครือขายเน็ตเวิรกโดยเฉพาะ และมี

ระบบการรักษาความปลอดภัยที่จําแนกรหัสผาน

ออกเปนสองสวนที่แตกตางกันอยางสิ้นเชิง คือสวน

digital signatures และ Secure collaboratve

session

โดยสวนของ Digital signatures น้ัน

จะถุกจัดสรางขึ้นดวยอัลกอริทึ่มของ RSA algorhithm ในลักษณะที่เคยไดกลาวถึงมาแลวขางตน คือ เมื่อผูใช

คอมพิวเตอรรายหน่ึงติดตอเขารวมกับเน็ตเวิรก เขาก็จะไดรับการจัดสรางรหัสสวนตัวขึ้นมาสองรหัส private key

และ public key ภายใตชื่อของผูใชคอมพิวเตอรเอง เมื่อผูใชคอมพิวเตอรมีความตองการที่ลงนามในเอกสาร

(document sign) เขาก็จะตองลากเอาเอกสารดังกลาวไปใสไวในโปรแกรมการทํางานที่ชื่อ DigiSign Program

การลากเอกสารไปใสใน DigiSign Program จะสงผลใหมีการดึงเอารหัสลับสวนตัว (private

key fetch) ที่เก็บไวในแบบฟอรม encrypt form ที่คนทั่วไปไมสามารถอานเขาใจได จากน้ันเมื่อผูใชปอน

รหัสผาน (password) เขาไป ระบบรักษาความปลอดภัยก็จะแปลงกลับเอารหัสลับออกมาเปนรหัสที่มนุษยมนา

ทั่วไปสามารถเขาใจได (แตก็ยาวเกินกวาใครจะจดจําไหว) หลังจากน้ันการลงนามของผูใชคอมพิวเตอรก็จะถูก

ดําเนินการไปโดยอัตโนมัต

ดวยรูปแบบการรักษาความปลอดภัยลักษณะดังกลาว บริษัท Apple คาดหวังวามันนาจะทําให

หนวยงานสํานักงานธุรกิจตางๆ สามารถลดจํานวนเอกสารกระดาษที่ใชติดตอลงไปไดอยางจริงๆ จังๆ เสียที

หลังจากคําวา paperless office ไดถูกกลาวขานอยางลอยๆ มาเปนเวลาเน่ินนานแลว เพราะที่ผานๆ มาน้ัน

เม่ือพูดถึงการนําขอมูลทางอิเล็กทรอนิกสมาใชแทนเอกสารกระดาษ ขอจํากัดที่เกิดข้ึนก็มักจะมาติดอยูตรงจุดที่วา

เอกสารทางอิเล็กทรอนิกสน้ันไมสามารถมีการตกลงยืนยันเปนลายลักษณอักษรได

แตภายใตระบบการรักษาความปลอดภัยของ Apple น้ี หากตองมีการลงนามเปนรายลักษณ

อักษร (sign) บนเอกสารอิเล็กทรอนิกส ผูใชคอมพิวเตอรก็สามารถรองขอไปยังหนวยงาน central authority

เพ่ือยืนยันรหัสอันเปนที่เปดเผย (public key) ของผูลงนาม ทางหนวยงานกลางก็จะมีการตรวจสอบยืนยันการลง

นามที่เกิดข้ึน (sign verify) โดยเทียบกับรหัสลับของเจาของนามอีกทีหน่ึง ซึ่งทางเดียวที่จะมีการปลอมแปลง

นามกันไดก็คือ ผูปลอมแปลงจะตองรูรหัสลับ (private key) หรือรหัสผาน (password) ของเจาของนาม อยาง

ใดอยางหน่ึง

การรักษาความปลอดภัยระดับ object

บริษัท IBM เอง ก็ไดมีความรวมมือกับกลุมพันธมิตรธุรกิจ OMG และผูผลิตคอมพิวเตอรรายอื่นๆ

ในการเสริมเอาการทํางานดานความปลอดภัยเขาไปบนสวน Object Managers layer ของแบบจําลอง SOM

และ DSOM ดวยเชนกัน เพ่ือวาการติดตอเขาถึง object ตางๆ ภายในระบบปฏิบัติการนั้นจะสามารถกระทําไดก็

Page 21: Object oriented computing พยุหยาตราของเหล่า objects

21

ตอเม่ือไดรับการอนุญาตอยางถูกตองแลวเทาน้ัน โดยมีจุดมุงหมายอยูเกณฑมาตรฐาน Orange Book criteria

ของหนวยงาน the National Security Agency อันเปนยอมรับโดยทั่วไปในสหรัฐ

โดยทางบริษัท

IBM มุงเนนไปที่การทํางาน ORB

(Objectrequest broker) ซ่ึงทํา

หนาที่เปนตัวแทนในการติดตอกับ

object ตางๆ ภายในเน็ตเวิรก

(คลายกับที่บริษัทนายหนาโบรก

เกอรในตลาดหุนทําหนาที่ซื้อขาย

หลักทรัพยแทนนักเลนหุนน่ันแห

ละ) เพ่ือที่วาจะไดไมตองจัดวาง

ระบบรักษาความปลอดภัยลงไปบน

ตัว object โดยตรง ซึ่งอาจจะ

สงผลใหเกิดขอขัดแยงกับกับสวนของโปรแกรมประยุกตในการที่จะนําเอา object ไปดัดแปลงแกไขใหมได

การจัดวางระบบรักษาความปลอดภัยไวที่สวน ORB ยังทําใหนักโปรแกรมเมอรผูออกแบบ

โปรแกรมประยุกตตางๆ สามารถทุมเทเวลาไปใชในการพัฒนา object ของตนไดอยางเต็มที่ และปลอยใหเรื่อง

การรักษาความปลอดภัยใหเปนหนาที่ของสวน ORB ไปทั้งหมด ไมวาจะเปนการตรวจสอบสิทธิของแตละคําสั่งที่ถุ

กเรียกเขามา (Unauthorized requests filter), การดูแลตาราง access table ซ่ึงระบุวา object จากนอก

ระบบจะเขามาติดตอกับ object ในระบบไดระดับใด, การตรวจทานดูความถูกตองของรหัส public-key

algorithms ที่ถุกสงเขามา, และรวมจนถึงกระทั่งการตกลงหาขอสรุปถึงวิธีการใสหรือถอดรหัสอันเปนยอมรับได

ระหวาง object (encrypt & decrypt negotiation) เพ่ือที่วาขอมูลซึ่งถูกจัดสงจาก object หน่ึงไปยังอีก

object จะไดอยูรูปแบบที่ถูกตองเหมาะสม