วันอังคาร, พฤศจิกายน 21, 2549

Information Exchange

ตอนนี้กำลังทำโครงการเกี่ยว กับ XBRL ซึ่งเป็นภาษามาตรฐานในการบรรยายข้อมูล business report โดยเริ่มต้นได้มีการทำข้อกำหนด (specification)สำหรับ financial report ออกมา ซึ่งปัจจุบันมีหลายประเทศได้นำมาตรฐานนี้มาใช้ และประเทศไทยก็เริ่มต้นนำมาใช้ด้วยเช่นกัน

XBRL ย่อมากจาก eXtensible Business Report Language เป็นภาษาที่พัฒนาจากภาษา XML เพื่อใช้ในการนำเสนอข้อมูลด้านธุรกิจ เพื่อให้องค์กรทั้งหลายสามารถมีภาษากลางร่วมกันที่ใช้ในการสื่อสาร และแลกเปลี่ยนข้อมูลด้านการเงินซึ่งกันและกัน

ก่อน ที่เข้าสู่ XBRL นั้น ผมอยากชี้ให้เห็นถึงเหตุผลการพัฒนาภาษานี้ขึ้นมาก่อน ทั้งนี้คงต้องย้อนกลับไปถึงเรื่อง information exchange

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

รูปแบบและโครงสร้าง
คำว่า รูปแบบ และ โครงสร้าง หมายถึงอะไร แล้วทำไมจึงมีความสำคัญนัก

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

การ แลก เปลี่ยนข้อมูลในแบบอัตโนมัติ จะเกิดไม่ได้หากข้อมูลที่ทั้งฝ่ายต้องการมีความขัดแย้งกัน (conflict)ใน รูปแบบ หรือ โครงสร้าง หรือ ทั้งคู่

ตัวอย่างข้างล่างจะเป็นตัวอย่างของข้อมูลของสององค์กรที่ต้องการแต่มีความขัดแย้งกัน

ตัวอย่างรูปแบบขัดแย้ง
  1. format display -> mm/dd/yyyy กับ dd/mm/yyyy
  2. presision -> % กับ เกรด
  3. หน่วยวัด -> บาท กับ เยน
ตัวอย่างโครงสร้างขัดแย้ง

  • decomposition
    • ชื่อ-นามสกุล (รวมเป็น field เดียวกัน)
    • ชื่อ และ นามสกุล (แยกกัน)
  • struture difference
    • address1, address2, address3
    • address (address1, address2, address3)
  • flat และ hierarchy
    • product_code, product_name, type
    • type (type_code, product*) และ product (product_code, product_name)

เรื่องของความขัดแย้งด้านข้อมูลนั้น เป็นเรื่องที่ศึกษากันมาเนิ่นนาน เป็นปัญหาที่เกิดขึ้นในความพยายามที่จะแลกเปลี่ยนข้อมูลกันระหว่างฐานข้อมูลต่างองค์กรกัน บทความที่น่าสนใจเกี่ยวกับเรื่องนี้สามารถหาอ่านได้จาก On Resolving Schematic Heterogeneity in Multidatabase Systems ของ Won Kim, Injun Choi, Sunit Gala, และ Mark Scheevel

ความต้องการพื้นฐานในการทำ information exchange

การที่จะทำให้องค์กรหนึ่งเข้าใจข้อมูลของอีกองค์กรหนึ่ง มีงานสองอย่าง

  1. แปลงข้อมูลจากรูปแบบหนึ่งมาเป็นรูปแบบที่ตนเข้าใจ
  2. แปลงข้อมูลจากโครงสร้างหนึ่งมาเป็นโครงสร้างที่ตนต้องการ

กล่าวคือหากต้องการให้ทั้งสองฝ่ายสามารถแลกเปลี่ยนข้อมูลแบบอัตโนมัติ ทั้งสองต้องมีข้อกำหนดทั้งทางโครงสร้างและรูปแบบที่สอดคล้องกัน ซึ่ง XBRL ถูกพัฒนาเพื่องานนี้โดยเฉพาะ

วันจันทร์, พฤศจิกายน 20, 2549

กลับมาเริ่มด้วย blog


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

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

จากวันนั้นเป็นต้นมา ตั้งใจจะเขียนหนังสือเกี่ยวกับ Open Source อีกสักเล่ม ตั้งใจเขียนให้มีรายละเอียดมากขึ้น แต่ technology เปลี่ยนไปเรื่อยๆ เขียนเสร็จไม่ทันไรมันก็เก่าเสียแล้ว เลยรู้สึกว่าการจะเขียนหนังสือให้ดีและสมบูรณ์สักเล่มนี่มันยากและใช้เวลา จริงๆ หากไม่มีเวลาทุ่มเทให้กับมัน สุดท้ายก็ออกมาเหมือนกับเล่มก่อนหน้า ที่ทำได้แต่แนะนำการใช้งานเริ่มต้นเท่านั้น

แต่ตัวเองก็ยังอยากเล่า ประสบการณ์ทำงานเก็บเอาไว้ และจะดีมากถ้ามี comment จากคนอื่นเพื่อปรับปรุงตัวเอง จึงตั้งใจว่าจากนี้ไป จะเจียดเวลาทุกวันมาเขียน blog เล่าเรื่องต่างๆที่เจอมาในการทำงาน

เอาไว้อยากเขียนหนังสืออีกสักเล่ม ค่อยลาพักยาวมาเขียนแล้วกัน