กระโดดไปยังแผงนำทาง

การเชื่อมโยงข้อมูลกันในระบบ Enterprise 13 September 2006 11:23 pm

บันทึกโดย Mr. PeeTai ใน : การสร้างซอฟต์แวร์ , ตรวจย้อนกลับ

คราวที่แล้ว ผมได้คุยเรื่อง GAP Analyst เอาไว้ วันนี้เรามาต่อกันดีกว่าครับ

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

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

จริง ๆ ผมก็อยากจะได้ลองมีตำแหน่งเป็น Software Engineering กับเค้าดูบ้างเหมือนกัน คงจะเท่ไม่น้อย :-) เลยอดเลยตอนนั้น

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

  1. เชื่อมโยงโดยใช้ TCP/IP Socket
  2. เชื่อมโยงโดยใช้ฐานข้อมูล
  3. เชื่อมโยงโดยใช้ Flat File หรือ Text File นั่นเอง

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

ขอให้อย่าสับสนกับการเชื่อมโยงระหว่างฮาร์ดแวร์ต่อฮาร์ดแวร์เช่น เครื่องอ่านบัตร Smart Card กับบัตร Smart Card หรือเครื่องอ่าน RFID กับตัวชิบ RFID นะครับ อันนั้นเป็นคนล่ะเรื่องกัน อันนั้นระบบไร้สายครับ ตอนนี้ผมกำลังพูดถึงการเชื่อมโยงระหว่างซอฟต์แวร์ต่อซอฟต์แวร์อยู่

ทีนี้ในการทำงานจริง ๆ เรามีความจำเป็นต้องประยุกต์ใช้ทั้งสามแนวทางข้างต้น ตามแต่สภาวการณ์ณ์ของระบบหรือซอฟต์แวร์ที่เราต้องเชื่อมต่อจะเอื้ออำนวยครับ แต่สำหรับไฮไลท์ในการเชื่อมโยงคงหนีไม่พ้นการเชื่อมโยงโดยใช้ TCP/IP Socket

ผมเชื่อว่าหลาย ๆ ท่านซึ่งอยู่ในแวดวงคอมพิวเตอร์ หรือจบการศึกษาจากสาขาที่เกี่ยวกับคอมพิวเตอร์ น่าจะเคยลงทะเบียนเรียนวิชา Computer Network และ Data Communication ครับ ซึ่งเราจะได้ใช้มันอย่างสะใจเลยล่ะ ในการเชื่อมโยงข้อมูลระหว่างระบบหลาย ๆ ระบบด้วย TCP/IP Socket

ผมจะไม่เท้าความเรื่อง OSI Layer ให้เมื่อยตุ้มกันหรอกครับ เพราะเชื่อว่าหลาย ๆ คนคงจะเก่งเรื่องนี้ เก่งมาก เก่งกว่าผม แต่สิ่งที่ผมจะจำเพาะลงไปก็คือ ไม่ว่าจะเป็น OSI Layer หรือ TCP/IP ก็ล้วนต้องมี Layer ที่อยู่ใกล้ชิดกับผู้ใช้มากที่สุด นั่นคือ Application Layer ซึ่งจะเป็นสิ่งที่ผมจะบอกต่อไป

ปัจจุบันมีเรื่องอย่างนึงที่น่าสนใจนั่นก็คือ ซอฟต์แวร์สำเร็จรูประดับโลกที่ขายกันอยู่ทุกวันนี้ อนุญาตให้ระบบภายนอกสื่อสารข้อมูลกับตนเองได้ โดยการใช้ TCP/IP Socket ครับ โดยบริษัทเอกชนที่ผลิตซอฟต์แวร์ระดับโลกเหล่านั้นออกมาขาย ก็ไม่ใช่ว่าจะเป็นผู้กำหนดมาตรฐานการต่อเชื่อมเหล่านั้นด้วยตนเองนะ เขาต้องมีการตกลงกัน, ประชุมกันในหมู่ผู้ผลิตซอฟต์แวร์ประเภทเดียวกัน, หรือในกลุ่มอุตสาหกรรมเดียวกันก่อน จึงจะตกลงมาตรฐานกันออกมาได้

ซึ่งมาตรฐานดังกล่าวจะเป็น Message Protocol ระดับ Application Layer ครับ โดยซอฟต์แวร์เหล่านั้นจะเปิดหมายเลขพอร์ตที่แน่นอน ให้ซอฟต์แวร์อื่น ๆ ต่อเชื่อมเข้าไปได้ด้วยกลไก TCP/IP Socket จากนั้นจึงสื่อสารกันด้วย Message Protocol

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

Message Protocol

จากรูปจะเห็นว่าซอฟต์แวร์ทั้งสองคุยกันได้ เพราะซอฟต์แวร์ที่เราสร้างขึ้น อาจมีคำถามว่าทำไมมันไม่คุยกันเอง คำตอบก็ง่าย ๆ ครับ ก็มันไม่ได้ออกแบบให้คุยกันไง เพราะทั้งสองฝ่ายต่างทำตัวเป็น Server ไม่มีใครเป็น Client ดังนั้นต่างฝ่ายจึงตั้งอยู่บนพื้นฐานที่ตนเองจะรอรับการร้องขอเท่านั้น จึงจะสื่อสารข้อมูลกันได้ ถ้าไม่ขอ ก็ไม่คุยด้วยครับ เราเลยต้องสร้างตัวช่างคุยมาเป็นตัวกลางระหว่างทั้งสองระบบนั่นเอง

ทีนี้ผมมีตัวอย่างของ Message Protocol ที่ใช้ในระดับโลกครับ และคิดว่าคงจะแพร่หลายไปทั่วทั้งประเทศไทยแน่ ๆ นั่นคือ HL7 เจ้า HL7 หรือที่ย่อมาจาก Health Level Seven

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

แต่ประเด็นมันอยู่ที่แต่ล่ะองค์กรก็จะมีระบบคอมฯของตัวเอง มีระบบฐานข้อมูลคนล่ะแบบ และทำงานอยู่บนล่ะ platform ที่ต่างกัน ดังนั้นเพื่อให้สื่อสารข้อมูลกันได้ จึงได้มีการคิดค้น HL7 ขึ้นมานั่นเอง

มันจะน่าตื่นเต้นมาก เพราะเมื่อเชื่อมโยงกันได้ มันจะช่วยเราได้เยอะ ยกตัวอย่างเช่น ผมจะสามารถตรวจเลือดที่โรงพยาบาลใกล้บ้านที่กรุงเทพฯตอนเช้า แล้วนั่งเครื่องบินไปเชียงใหม่แล้วแวะพบคุณหมอที่โรงพยาบาลแถวเชียงใหม่ เพื่อฟังผลการตรวจเลือด

คงจะได้ใช้กันอีกไม่ช้านี้ครับ เพราะตอนนี้โรงพยาบาลใหญ่ ๆ ของไทย ทยอยสั่งซื้อซอฟต์แวร์ระบบโรงพยาบาลที่มีมาตรฐาน HL7 ติดตั้งอยู่ คิดว่าอีกไม่นานคงค่อย ๆ ขยายไปเรื่อย ๆ จนทั่วเมืองใหญ่ ๆ ของประเทศไทยครับ

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

ความคิดเห็น»

1. E-Book - Network Programming for Microsoft Windows - พี่ไท้.คอม | เว๊ปบล็อกที่โ - 17 September 2006

[…] หลายวันก่อนผมได้คุยค้างเอาไว้เรื่องการเชื่อมโยงข้อมูลกันในระบบ Enterprise วันนี้ยังไม่ได้คิดจะมาคุยต่อครับ เพียงแต่จะโยงเรื่องดังกล่าวเข้ากับ E-Book ที่จะนำมาแจกวันนี้ […]

2. แนวคิดการประยุกต์ใช้ TCP/IP Socket - พี่ไท้.คอ - 18 September 2006

[…] กลับมาต่อจากหัวข้อที่แล้วดีกว่าครับ ผมคุยค้างเอาไว้เรื่องการเชื่อมโยงข้อมูลกันในระบบ Enterprise และเคยให้ดาวน์โหลด E-Book Network Programming For Microsoft Windows ไปแล้ว วันนี้ก็จะมาเล่าต่อว่า แนวคิดการเชื่อมโยงระบบซอฟต์แวร์แต่ล่ะระบบด้วย TCP/IP Socket นั้นจริง ๆ มีมานานแล้ว แต่ส่วนใหญ่จะเน้นไปทางด้านระบบเครือข่ายเป็นหลัก เน้นทางด้านการ Handshaking เพิ่งจะมาพักหลังนี่เอง ที่นักพัฒนาซอฟต์แวร์ รวมถึงนักอุตสาหกรรมคอมพิวเตอร์และนักวิทยาศาสตร์คอมพิวเตอร์ จะให้ความสำคัญกับโครงสร้างข้อมูลที่ส่งไปมาบนเครือข่าย […]

3. ERP และ CRM - พี่ไท้.คอม | เว๊ปบล็อกที่โม้ - 22 September 2006

[…] ในคราวที่แล้วผมได้เขียนไว้ว่า องค์กรใหญ่ ๆ ส่วนใหญ่ มักจะจัดซื้อจัดจ้างซอฟต์แวร์ตัวใหญ่ ๆ มาไว้ในองค์กร แต่มักไม่เคยจัดสรรงบประมาณในการเชื่อมโยงระบบเหล่านั้นให้ทำงานได้อย่างไหลลื่น (อ่านจากการเชื่อมโยงข้อมูลกันในระบบ Enterprise) […]


*
เพื่อพิสูจน์ว่าคุณเป็นมนุษย์ (ไม่ใช่หุ่นยนต์) ดังนั้น กรุณาใส่รหัสป้องกันซึ่งแสดงอยู่ด้านล่างด้วยครับ
Anti-Spam Image