คราวที่แล้ว ผมได้คุยเรื่อง GAP Analyst เอาไว้ วันนี้เรามาต่อกันดีกว่าครับ
ปรกติแล้วหลังจากที่นักวิเคราะห์ระบบได้ตกลงกับผู้ใช้ระบบ ว่าระบบอะไรจะต้องผูกโยงกับระบบอะไรบ้างแล้ว ทีนี้ก็ถึงคราวของวิศวกรซอฟต์แวร์กับโปรแกรมเมอร์แล้วครับ ที่จะต้องมาคุยกันว่าจะทำอีท่าไหนทางเทคนิค เพื่อให้ทุกระบบสามารถเชื่อมโยงข้อมูลกันได้
เป็นเรื่องโชคร้ายอย่างนึงครับ เพราะมีน้อยองค์กรนักที่จะมีวิศวกรซอฟต์แวร์ อันนี้เรื่องจริงเลย ผมผ่านมาหลายที่แล้ว มีที่เดียวเท่านั้นที่มีตำแหน่งวิศวกรซอฟต์แวร์ ที่นั่นเป็นบริษัทมหาชนครับ และหลังจากนั้นเพียงแค่สองปี พี่ที่มีตำแหน่งเป็นวิศวกรซอฟต์แวร์คนเดียวที่มี ก็ถูกย้ายมาเป็นนักวิเคราะห์ระบบแทนด้วยเงินเดือนที่เท่าเดิม ผมไม่รู้ว่าเป็นเพราะความยืดหยุ่นในการทำงาน หรือเพราะผู้บริหารมีความเข้าใจว่าวิศวกรซอฟต์แวร์มันไม่มีความจำเป็นกันแน่ เขาถึงได้ยุบตำแหน่งวิศวกรซอฟต์แวร์ อันนี้ยากจะเดาครับ
จริง ๆ ผมก็อยากจะได้ลองมีตำแหน่งเป็น Software Engineering กับเค้าดูบ้างเหมือนกัน คงจะเท่ห์ไม่น้อย 🙂 เลยอดเลยตอนนั้น
กลับมาว่าเรื่องตามหัวข้อกันต่อครับ โดยปรกติทีมงานทางเทคนิคก็สุมหัวกัน เพื่อคิดว่าจะเชื่อมโยงกันยังไง แล้วเราก็ได้แนวคิดออกมาสามแนวทาง ซึ่งเป็นแนวทางสากลอันประกอบไปด้วย
- เชื่อมโยงโดยใช้ TCP/IP Socket
- เชื่อมโยงโดยใช้ฐานข้อมูล
- เชื่อมโยงโดยใช้ 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 ของระบบซอฟต์แวร์เหล่านั้น แล้วจึงออกแบบและสร้างซอฟต์แวร์ให้มันสื่อสารข้อมูลกัน เหมือนเอาสี่เหลี่ยมมาใส่วงกลมยังไงอย่างงั้น
จากรูปจะเห็นว่าซอฟต์แวร์ทั้งสองคุยกันได้ เพราะซอฟต์แวร์ที่เราสร้างขึ้น อาจมีคำถามว่าทำไมมันไม่คุยกันเอง คำตอบก็ง่าย ๆ ครับ ก็มันไม่ได้ออกแบบให้คุยกันไง เพราะทั้งสองฝ่ายต่างทำตัวเป็น Server ไม่มีใครเป็น Client ดังนั้นต่างฝ่ายจึงตั้งอยู่บนพื้นฐานที่ตนเองจะรอรับการร้องขอเท่านั้น จึงจะสื่อสารข้อมูลกันได้ ถ้าไม่ขอ ก็ไม่คุยด้วยครับ เราเลยต้องสร้างตัวช่างคุยมาเป็นตัวกลางระหว่างทั้งสองระบบนั่นเอง
ทีนี้ผมมีตัวอย่างของ Message Protocol ที่ใช้ในระดับโลกครับ และคิดว่าคงจะแพร่หลายไปทั่วทั้งประเทศไทยแน่ ๆ นั่นคือ HL7 เจ้า HL7 หรือที่ย่อมาจาก Health Level Seven
มันเป็น Message Protocol ที่คิดขึ้นเพื่อระบบการบริการสาธารณสุขครับ เหมาะสมที่จะใช้กับโรงพยาบาล, โพลีคลีนิค, คลีนิค, สาธารณสุขจังหวัด, สาธารณสุขอำเภอ และองค์กรทางการแพทย์อื่น ๆ เพราะฝรั่งเค้าคิดงี้ครับ เค้าคิดว่ามันจะเป็นการดีมาก หากสามารถเชื่อมโยงข้อมูลของคนไข้ได้จากทุก ๆ องค์กรสาธารณสุข เพื่อผลในการวินิจฉัยโรคที่แม่นยำขึ้น เนื่องจากคนไข้ส่วนใหญ่มักจะไม่ได้เข้ารับการรักษาที่โรงพยาบาลแห่งเดียว อาจจะรักษาหลาย ๆ ที่ตามแต่สภาพโรคของตนเอง
แต่ประเด็นมันอยู่ที่แต่ล่ะองค์กรก็จะมีระบบคอมฯของตัวเอง มีระบบฐานข้อมูลคนล่ะแบบ และทำงานอยู่บนล่ะ platform ที่ต่างกัน ดังนั้นเพื่อให้สื่อสารข้อมูลกันได้ จึงได้มีการคิดค้น HL7 ขึ้นมานั่นเอง
มันจะน่าตื่นเต้นมาก เพราะเมื่อเชื่อมโยงกันได้ มันจะช่วยเราได้เยอะ ยกตัวอย่างเช่น ผมจะสามารถตรวจเลือดที่โรงพยาบาลใกล้บ้านที่กรุงเทพฯตอนเช้า แล้วนั่งเครื่องบินไปเชียงใหม่แล้วแวะพบคุณหมอที่โรงพยาบาลแถวเชียงใหม่ เพื่อฟังผลการตรวจเลือด
คงจะได้ใช้กันอีกไม่ช้านี้ครับ เพราะตอนนี้โรงพยาบาลใหญ่ ๆ ของไทย ทยอยสั่งซื้อซอฟต์แวร์ระบบโรงพยาบาลที่มีมาตรฐาน HL7 ติดตั้งอยู่ คิดว่าอีกไม่นานคงค่อย ๆ ขยายไปเรื่อย ๆ จนทั่วเมืองใหญ่ ๆ ของประเทศไทยครับ
รู้สึกจะโม้ไปไกลแล้ว ทิ้งท้ายนิดนึงแล้วกันว่า คราวหน้าเราจะมาคุยกันต่อครับ ว่าถ้าซอฟต์แวร์ทั้งหมดในองค์กรของเรา ไม่ได้ซื้อใครมา แต่ว่ามีหลาย ๆ ทีมที่ช่วย ๆ กันทำ แล้วเราจะออกแบบ Message Protocol แบบส่วนตั๊วส่วนตัว เพื่อทำให้ซอฟต์แวร์ในองค์กรของเราสื่อสารกันได้อย่างไร โดยไม่จำเป็นต้องใช้ Message Protocol ระดับโลก
3 thoughts on “การเชื่อมโยงข้อมูลกันในระบบ Enterprise”