Our Blog

Read the Latest News

ความหมายของโปรเซสในทางคอมพิวเตอร์นั้น มีสองความหมาย ได้แก่ 1. ใช้ในความหมายของกระบวนการ หรือขั้นตอนวิธีการ และ 2. หมายถึงโปรแกรมที่กำลังทำงานอยู่ ถ้าถามดูว่าโปรเซสแปลว่าอะไรนั้น ส่วนใหญ่จะได้ความหมายแรกเป็นคำตอบ. โปรแกรมคือลำดับของคำสั่งที่มาเรียงร้อยกันให้ทำงานตามจุดประสงค์ใดจุดประสงค์หนึ่งที่เป็นเฉพาะ พอเรียกมาทำงานโดยสร้างสภาพแวดล้อมในคอมพิวเตอร์ให้โปรแกรมเริ่มทำงาน มีหน่วยความจำ และเตรียมรับอินพุทต่างๆ โปรเซสก็ถูกสร้างขึ้น ประหนึ่งว่าเราอยากทำอาหาร ตำราอาหารก็เป็นโปรแกรม ถ้าเราเริ่มเข้าครัวทำอาหารเก็เกิดโปรเซสขึ้นมา อีกตัวอย่างหนึ่ง มนุษย์เราก็มีโปรแกรมคือดีเอ็นเอ พอเกิดปฏิสนธิเริ่มสร้างฮาร์ดแวร์ พอปัจจัยทั้งหลายเกิดพร้อมก็อุแว้ออกมาเป็นโปรเซสให้เกิดทุกข์กันต่อไป ในคอมพิวเตอร์นั้นเราจะสามารถเห็นโปรแซสได้จากคำสั่ง ps หรือดูการแสดงผลของ Task Manager ที่จะแสดงว่ามีโปรเซสอะไรทำงานอยู่บ้าง

จากความหมายของโปรเซสที่อธิบายไปขั้นตอน ระบบปฏิบัติการในปัจจุบันสามารถสร้างสภาวะแวดล้อมให้หลายๆ โปรเซสทำงานพร้อมๆ กันได้ หรือจัดการทำงานประหนึ่งว่าหลายๆ โปรเซสทำงานพร้อมกันอยู่ การพัฒนาระบบซอฟต์แวร์ที่มีความซับซ้อนก็เริ่มต้องการการติดต่อสื่อสารกันระหว่างโปรเซสที่เรียกว่า Inter-process Communications หรือการสื่อสารระหว่างโปรเซส โดยที่ลักษณะการสื่อสารดังกล่าวมีทั้งระหว่างโปรเซสในเครื่องเดียวกัน และโปรเซสที่อยู่คนละเครื่องกันที่ต่อเชื่อมผ่านเครือข่าย การเขียนโปรแกรมในการสื่อสารระหว่างโปรเซสนั้นมีความซับซ้อนพอควร ในทางปฏิบัติจึงมีการเขียนไลบารี่ออกมาจะได้เอื้อต่อการพัฒนาโปรแกรมให้ง่ายขึ้น การเรียกใช้งานไลบารี่นั้นทำผ่านความเข้าใจตรงกันระหว่างผู้เขียนโปรแกรมและผู้พัฒนาไลบารี ผ่านตัวเชื่อมที่เรียกว่า Application Programming Interfaces (APIs ) หรือเรียกว่าเอพีไอ การเรียกใช้เอพีไอนั้นมีหลายระดับ ตั้งแต่การเรียกใช้ฟังก์ชั่น จนกระทั่งเรียกใช้บริการในลักษณะซับซ้อนต่างๆ ที่เปิดให้บริการหลายกหลายในปัจจุบัน

การสื่อสารระหว่างโปรเซสเป็นบริการหนึ่งของระบบปฏิบัติการ ตัวอย่างพื้นฐานของสื่อสารระหว่างโปรเซสได้แก่ pipe และ socket ที่ผู้เขียนโปรแกรมสามารถเรียกใช้งานช่องทางการสื่อสารระหว่างโปรเซสในเครื่องเดียวกันและผ่านเครือข่ายได้, ตามลำดับ เมื่อการเขียนโปรแกรมที่มีการสื่อสารระหว่างโปรเซสมากยี่งขึ่น ก็มีการพัฒนาลักษณะวิธีการติดต่อสื่อสารแบบต่างๆ ให้สามารถใช้งานได้ง่ายขึ้นตามลำดับ โดยเฉพาะอย่างยิ่งเมื่อการบริการเว็ปที่ผ่านโปรโตคอล http ที่มีการใช้งานที่หลายหลายและเป็นที่ยอมรับกันทั่วโลก การสื่อสารระหว่างโปรเซสได้อาศัยช่องทางการสื่อสารในรูปแบบของการบริการเว็ป ในการแลกเปลี่ยนข้อมูลที่เราเรียกว่า เว็ปเซอร์วิส การสื่อสารระหว่างโปรเซสแบบเว็ปเซอร์วิสนั้นเป็นรูปแบบของการบริการข้อมูล ที่ทำผ่านบริการเว็ปบนโปรโตคอล http ทำให้ลดปัญหาด้านการเปิดปิดบริการจากข้อกำหนดด้านการรักษาความปลอดภัยไปได้มาก เนื่องจากผู้ใช้งานโดยทั่วไปมีความต้องการใช้งานเว็ปในชีวิตประจำวันอยู่แล้ว เว็ปเซอร์วิสจึงอาศัยช่วงทางดังกล่าวในการแลกเปลี่ยนข้อมูล มีข้อสังเกตอีกประการหนึ่ง ได้แก่ความเข้าใจสับสนระหว่างเว็ปเซอร์วิสกับเว็ปแอพพลิเคชั่น ว่าเป็นเรื่องเดียวกัน อธิบายยากจริงๆ

พอเราพูดถึง เว็ปเซอร์วิส ก็จะนึกถึง SOAP กับ REST. SOAP ถูกออกแบบเพื่อพัฒนาระบบบริการข้อมูลในรูปแบบของสถาปัตยกรรมบริการ (Service Oriented Architecture, SOA) ซึ่งก่อนหน้าการพัฒนา SOAP นั้น มีความพยายามที่จะสร้างระบบแลกเปลี่ยนข้อมูลที่มีโครงสร้างชัดเจนระหว่างโปรเซส เช่น RPC, CORBA, RMI, XML-RPC, DCOM เป็นต้น ที่การสื่อสารระหว่างโปรเซสในช่วงเริ่มแรกมีการออกแบบโปรโตคอลที่เชื่อมต่อระหว่างผู้ให้กับผู้รับบริการ เฉพาะสำหรับการบริการแลกเปลี่ยนข้อมูล การออกแบบระบบการสื่อสารที่เป็นเฉพาะดังกล่าวสร้างความซับซ้อนกับการขยายการใช้งานในวงกว้าง. SOAP แก้ปัญหาดังกล่าวโดยพัฒนาระบบแลกเปลี่ยนข้อมูลให้ทำงานบน http และ XML. SOAP มีกลไกสำหรับการสร้างวิธีการเชื่อมต่อระหว่างภาษาต่างๆ โดยอัตโนมัติ โดยเครื่องมือในการพัฒนาโปรแกรมจะสามารถอ่านคำอธิบายบริการเว็ปเซอร์วิสของ SOAP ผ่านภาษากลางที่ชื่อว่า WSDL (Web Services Descriptor Langulage) โดย WSDL ถูกเขียนอยู่ในรูปแบบของ XML (Extensible Markup Language) ที่อธิบายการบริการข้อมูลของเว็ปเซอร์วิส

กลไกดังกล่าวได้ซ่อนความซับซ้อนของการสื่อสารระหว่างโปรเซส โดยการสร้างการเชื่อมต่อระหว่างภาษา ที่สามารถแปลง WSDL ให้เชื่อมต่อการเรียกใช้งานขั้นตอนการทำงานและความแตกต่างของโครงสร้างข้อมูลในระบบที่ต่างๆกันได้ การออกแบบในลักษณะนี้ทำให้การพัฒนาซอฟต์แวร์จากส่วนประกอบที่กระจายอยู่ตามที่ต่างๆ ทำได้ง่าย อย่างไรก็ตาม SOAP มีความซับซ้อนในการใช้งานมาก ถึงแม้จะเป็นชื่อย่อของ "Simple" Object Access Protocol ก็ตาม

ที่นับว่าเป็นคู่แข่งของ SOAP ในการสื่อสารระหว่างโปรเซสได้แก่ REST อันว่าจะเป็นอย่างไร ขอต่อคราหน้ารึกันนะครับ

รศ.ดร.วรา วราวิทย์

Login

Who's Online

We have 28 guests and no members online