SAP กับ Client/Server
ตอนที่เริ่มทำ SAP ใหม่ๆในปีพ.ศ. 2540 ฝรั่งที่จะมาทำการ Implement SAP ให้ที่บริษัทก็พูดหลายๆเรื่องที่ทำให้ SAP เหมือนสิ่งที่วิเศษที่สามารแก้ไขปัญหาในบริษัทได้ รวมทั้ง SAP สามารถที่จะทำอไรได้ทุกอย่างที่บริษัทต้องการ มีการพูดในหลายๆเรื่องใช้ถ้อยคำแปลกๆที่เป็นภาษาอังกฤษที่พอจะเข้าใจภาษาอังกฤษแต่ไม่เข้าใจว่ามันจะเกี่ยวข้องกับการ Implement ได้อย่างไร อาทิเช่น Big bang,Methodology, Dialog, Three tier เป็นต้น
เรื่องที่จะมาเล่าสู่กันฟังคือ Tree tier ตอนแรกไม่รู้นึกว่าเป็นอะไรที่ SAP คิดค้นขึ้นมาเองเพราะคนขายก็พยายามเน้นเสมือนว่านี่คือจุดขาย ณ.เวลานี้เมื่อคิดย้อนไปผมว่าเค้าก็คงไม่รู้พอๆกับผมเพราะหลังจากนั้นมาอีกปีก็ไม่เห็นคนเดิมพูดเรื่องนี้อีก
Three tier ก็เป็นเพียงแบบหนึ่งของ client/server โดยที่ client/server เป็นแนวคิดของการที่มีเครื่องคอมพิวเตอร์ส่วนบุคคล (Personal computer) มาต่อพ่วงกันเพื่อวัตถุประสงค์ที่จะใช้เครื่องคอมพิวเตอร์ให้ได้ประโยชน์จากทรัพยากรของแต่ละเครื่องให้มากที่สุดเมื่อเทียบกับคอมพิวเตอร์แบบ Mainframe ลักษณะ Client/server Software Architecture) ต้องการที่จะปรับปรุงดังต่อไปนี้
1 Usability เพื่อที่ให้ง่ายต่อผู้ใช้ในการเรียนรู้ในการควบคุม เตรียมข้อมูล และอ่านผลลัพธ์ที่ออกมาจากระบบคอมพิวเตอร์
2 Flexibility เพื่อให้ง่ายต่อการแก้ไขและเปลี่ยนแปลงให้ซอฟตแวร์สามารถใช้กับเครื่องคอมพิวเตอร์แบบไหนๆก็ได้ โดยไม่ต้องยึดติดกับคอมพิวเตอร์รุ่นใดรุ่นหนึ่งหรือค่ายใดค่ายหนึ่ง
3 Interoperability เพื่อให้ง่ายต่อระบบคอมพิวเตอร์ตั้งแต่สองระบบหรือมากกว่าให้สามรถพูดคุยกันได้และสามารถแลกเปลี่ยนข้อมูลระหว่างกันได้
4 Scalability เพื่อให้ง่ายต่อการเปลี่ยแปลงแก้ไขระบบให้เหมาะสมตามความต้องการในลักษณะที่แตกต่างกันไป
แนวคิดเรื่อง client/server เริ่มเป็นที่แพร่หลายในปีพ.ศ. 2523 โดยที่ client หมายถึง ผู้ที่ร้องข้อบริการ และ server หมายถึงผู้จัดหาบริการ เครื่องคอมพิวเตอร์เครื่องเดียวกันสามารถที่จะเป็นทั้ง client และ server ได้ขึ้นอยู่กับการออกแบบของซอฟต์แวร์เพื่อเป็นการให้ข้อมูลที่มากขึ้นเกี่ยวกับ Client/server จะมีการกล่าวถึงเล็กน้อยเกี่ยวกับ
Mainframe architecture และ File sharing architecture
Mainframe architecture สถาปัตยกรรมของซอฟต์แวร์จะเน้นหนักการทำงานที่เครื่องแม่ (host computer) อย่างเดียว ผู้ใช้จะทำการติดต่อกับเครื่องแม่โดยผ่านหน้าจอคอมพิวเตอร์ที่มีแป้นพิมพ์ (terminal) โดยการส่งข้อมูลไปที่เครื่องแม่เพื่อการประมวลผลและผลลัพธ์ที่ได้จะกลับมาที่เรื่องลูกอีกทีหนึ่ง
ข้อเสียเปรียของ mainframe software architecture คือไม่สนับสนุนการทำงานแบบ GUI (Graphic User Interfaces) รวมทั้งการเข้าถึงฐานข้อมูลที่อยู่ในที่ๆต่างกัน File sharing architecture เป็นจุดแรกของการพัฒนาระบบเน็ตเวิร์ก โดยที่ server จะเก็บไฟล์ต่างๆไว้ที่ใดที่หนึ่งที่ผู้ใช้ในกรณีคือ PC สามารถเข้าถึงไฟล์ข้อมูลเหล่านั้นได้ เมื่อผู้ใช้ต้องการใช้ไฟล์ไหนก็จะดึงไฟล์เหล่านั้นไปเก็บที่ PC และทำการ Run ที่ PC นั้นๆ ด้วยแนวคิดแบบนี้จึงทำให้เป็นข้อจำกัดของจำนวนผู้ใช้ในแต่ละเน็ตเวิร์ก ในเริ่มแรกจะมีผู้ใช้ได้ไม่เกิน 12 คนที่สามารถใช้งานในเน็ตเวิร์กพร้อมๆกันได้การที่มีการนำสถาปัตยกรรมแบบ client/server มาใช้ ได้มีการแนะนำการใช้ database server แทนการใช้ file server โดยการใช้ relational database management system ทำให้ผู้ใช้สามารถที่ run งานที่ต้องการที่ database server ได้โดยตรงและ Database server ก็จะส่ง
ผลลัพธ์ให้กับผู้ใช้ ได้โดยตรง client/server ทำให้ลดความแออัดในการส่งข้อมูลของเน็ตเวิร์กได้ และที่แน่นอนที่สุดการสนองตอบ (response time) ก็จะรวดเร็วขึ้น ซึ่งทำให้การนำเสนอแบบ GUI ที่ front end ก็จะรวดเร็วเช่นกัน ภาษาที่ใช้ที่เป็นมาตรฐานในการขอข้อมูลจาก database server ของ client ก็
คือ SQL statements
ตัวอย่างของ สถาปัตยกรรมของ client/server
Two tier architecture มีหลักดเกณฑ์ง่ายๆคือ GUI จะอยู่ที่ client และการให้บริการเกี่ยวกับฐานข้อมูลจะอยู่ที่ server โดยที่ server ต้องมีขนาดใหญ่เพียงพอที่จะให้บริการกับ client หลายๆตัวได้การจัดการในการดึงข้อมูลจะถูกแบ่งออกอย่างเห็นได้ชัด โดยที่ database server จะจัดการเรื่อง stored
procedure และ triggers ผู้ทำซอฟต์แวร์สำเร็จรูปขายจำนวนมากพัฒนาโปรแกรมด้วย สถาปัตยกรรมแบบ two tier architecture เพราะว่าง่ายและไม่ซับซ้อน และสะดวกกับจำนวนผู้ใช้ที่ใช้ระบบพร้อมๆกันไม่เกิน 100 คน เพราะถ้ามากไปกว่านี้จะมีปัญหาเรื่องการติดต่อระหว่าง server/client ในการตรวจสอบการติดต่อระหว่าง server กับ client “keep-alive” ซึ่งกลายเป็นข้อจำกัดของ two tier architecture ไปนอกจากนี้ยังมีข้อจำกัดอีกก็คือ วิธีในการดึงข้อมูลจากฐานข้อมูลจะเป็นของผู้ผลิตฐานข้อมูลนั้นๆ โดยที่ผู้ผลิตแต่
ละเจ้าก็จะมีวิธีการเขียนคำสั่งใน stored procedure และ triggers ที่แตกต่างกัน และท้ายสุดก็คือต้องทำการ regenerate code ใหม่ถ้ามีการเอาฟังก์ชั่นที่เขียนไส้แล้วบน database server หนึ่งไปใช่บนอีก database server หนึ่ง
Three tier architecture เป็นสถาปัตยกรรมเพิ่มเติมเพื่อมาแก้ไขข้อจำกัดของ two tier architecture จึงได้มีการเพิ่ม middle tier ขึ้นมาระหว่าง client และ server โดยที่ middle tier สามารถที่จะกำหนดได้หลายรูปแบบอาทิเช่น transaction monitoring, message server, หรือ application server (ที่เราคุ้นกันดีใน SAP) และ middle tier สามารถทำหน้าที่ต่างๆกันได้เช่น
queuing หรือ run application
Three tier application server จะทำการเก็บแอปพลิเคชั่นที่ต้องการ run ไว้ที่ server หลักdatabase server และ application server จะทำหน้าที่ในการจัดการเรื่อง business logic การคำนวณ และการดึงข้อมูล ส่วน front end จะทำหน้าที่เกี่ยวกับการแสดงผล (presentation) ประโยชน์ของแบบนี้คือ สามารถกระจายงานที่ application server ได้มากตาที่ต้องการซึ่งจะมีผลดีต่อความเร็วในการ run งานที่ต้องการได้ เพราะงานที่ต้องการก็จะถูก run อยู่ที application server และ application server ก็จะติดต่อขอข้อมูลจาก database server อีกที ประโยชน์อีกประการหนึ่งคือการดูแลในการลงซอฟต์แวร์ที่ application server เครื่องเดียวจะถูกและง่ายกว่าการที่ต้องไปลงที่ client ทุกๆเครื่อง
สำหรับ SAP แล้วก็เป็นผู้นำในส่วนของแอพพลิเคชั่นที่เป็น Client/server อยู่เช่นเดียวกัน ส่วน SAP landscape ของเราจะมีรูปแบบอย่างไรก็เป็นเรื่องของเราตามความเหมาะสมขององค์กรของเรา โดยต้องพิจารณาจากจำนวนของผู้ใช้ในระบบพร้อมๆกัน จำนวนของโมดุลที่จะต้องใช้ จำนวนของเอกสารที่จะเกิดขึ้นในระหว่างการทำงาน เป็นต้น
รูปแบบที่ 1 Central instance/database server อยู่ในเครื่องเดียวกันโดยที่มี front end เป็น PC หลายๆเครื่อง เหมาะกับงานขนาดเล็ก
รูปแบบที่ 2 central instance server มีได้ 1 ตัวdatabase server มีได้ 1 application server จะมีกี่ตัวก็ได้ ถ้ามีมากกว่าหนึ่งตัวก็อาจจะเรียกว่า multi-tiers architecture เหมาะกับองค์กรขนาดกลางจนถึงใหญ่
18/03/47
KLJ