<
เรียนรู้โครงสร้างของ SAP R/3 แบบง่ายๆ เพื่อปูทางไปสู่เซียนภาษา ABAP
หลายท่านคงรู้จักกับระบบ SAP R/3 ซึ่งเป็นซอฟต์แวร์ ERP (Enterprise Resource Planning) ชั้นนำตัวหนึ่งของโลกมาบ้าง แต่ทราบไหมครับว่า SAP R/3 ที่ใช้กันอยู่นี้ เขียนขึ้นมาจากภาษาโปรแกรมอะไร
พื้นที่โฆษณา
สนใจลงโฆษณา ติดต่อ โทร.0-2642-3400 ต่อ 4613
บทความที่ผมจะนำเสนอต่อจากนี้ คือเรื่องราวของภาษา ABAP (อ่านว่าอาบัพ) ที่อยู่เบื้องหลังระบบ SAP R/3 โดยเราจะเริ่มต้นกันที่สถาปัตยกรรมของระบบ SAP R/3 และฉบับต่อไป ผมจะลงลึกไปถึงการทำโปรแกรมบน SAP R/3 แล้วคุณจะรู้สึกเหมือนกับผมว่าภาษา ABAP ง่ายกว่าที่คาดไว้จริงๆ
รู้จักกับระบบ SAP R/3
SAP R/3 เป็นแอพพลิเคชันซอฟต์แวร์ชนิดไคลเอ็นต์/เซิร์ฟเวอร์ ที่ทำงานในลักษณะของทรีเทียร์ (3 Tier Architecture) ซึ่งแบ่งลำดับชั้นของเซอร์วิสในแอพพลิเคชันเป็น 3 ระดับคือ Presentation Server, Application Server และ Database Server (อ้างอิงจากโมเดลมาตรฐานของแอพพลิเคชันแบบทรีเทียร์ ซึ่งประกอบไปด้วย Presen tation Logic, Application Logic, Data Logic และ Data Service)Presentation Server (หมายถึงโปรแกรม SAPGUI ในระบบ SAP R/3) เป็นส่วนให้บริการด้านการแสดงผลบนจอภาพ ซึ่งรันอยู่บนไคลเอ็นต์ที่มีการโต้ตอบกับยูสเซอร์ ส่วน Application Server (ในระบบ SAP R/3 ส่วนนี้คือ R/3 Instance) จะให้บริการทางด้านแอพพลิเคชันลอจิก (Application Logic) และดาต้าลอจิก (Data Logic) สุดท้ายคือ Database Server จะทำงานร่วมกับ RDBMS ชั้นนำได้ ไม่ว่าจะเป็น ORACLE, Informix, DB2, Microsoft SQL Server หรือ ADABUS (ปัจจุบันเป็น SAP DB)
โมเดลมาตรฐานของแอพพลิเคชันแบบทรีเทียร์Presentation Logic หมายถึง งานที่เกี่ยวข้องกับการแสดงข้อมูลบนจอภาพ ส่วน Application Logic เป็นคำสั่งที่ใช้ควบคุมการทำงานของโปรแกรม หรือคำนวณค่าต่างๆ เช่น คำสั่ง IF, CASE, DO, WHILE หรือคำนวณบวกลบคูณหาร Data Logic ก็คือ กลุ่มของโค้ดที่ใช้เข้าถึงข้อมูลในฐานข้อมูล อย่างคำสั่ง SQL เป็นต้น สุดท้ายคือ Data Service จะทำหน้าที่ดูแลและจัดการข้อมูลในระบบฐานข้อมูล (RDBMS) |
แนวคิดของระบบไคลเอ็นต์/เซิร์ฟเวอร์
ระบบไคลเอ็นต์/เซิร์ฟเวอร์นั้นมีรากฐานมาจากวิธีคิดแบบกระจายงานกันทำ ซึ่งหมายถึงการแยกองค์ประกอบทั้ง 4 ของแอพพลิเคชัน ให้ไปทำงานบนคอมพิวเตอร์แต่ละเครื่อง ซึ่งจะไม่เหมือนกับระบบโฮสต์เดี่ยวบนเมนเฟรมอย่างในสมัยก่อน ถ้าเราย้อนไปในอดีตที่ผ่านมา คุณจะพบว่าไคลเอ็นต์/เซิร์ฟเวอร์เกิดขึ้นมาพร้อมๆ กับคำว่า Down Sizing คือ เมื่อมีการแยกส่วนของแอพพลิเคชันออกจากกันแล้ว (ทำงานที่คนละเครื่อง) เซิร์ฟเวอร์ก็ไม่จำเป็นต้องมีพลังประมวลผลสูงนัก เนื่องจากตัวมันจะถูกใช้งานเฉพาะในส่วนของ Data Service เท่านั้น ขณะที่ Presentation Logic, Application Logic และ Data Logic ถูกย้ายไปทำงานที่เครื่องไคลเอ็นต์แทน ซึ่งเป็นรูปแบบที่เรียกว่า 2 Tier Client/Serverสถาปัตยกรรมแบบทรีเทียร์ของระบบ SAP/R3 |
การทำงานของระบบโฮสต์เดี่ยว (Host-based) |
แต่ปัญหาของระบบ Message-based Client/Server คือ เมื่อเราย้าย Application Logic และ Data Logic บางส่วนไปที่เซิร์ฟเวอร์ ก็ย่อมเป็นการเพิ่มภาระงานให้โดยปริยาย ปัญหาที่ตามมา ก็คือเรื่องของประสิทธิภาพ โดยเฉพาะถ้ามียูสเซอร์เข้ามาใช้งานมากขึ้นเท่าไร ก็จะยิ่งรับภาระมากขึ้นเท่านั้น แถมยังมีส่วนที่ทำงานซ้ำซ้อนกันอีกด้วย ดังนั้น จึงมีหลักการของ 3 Tier Client/Server เกิดขึ้นมา ข้อดีของการทำงานในแบบทรี-เทียร์ อยู่ตรงที่เราสามารถเพิ่มประสิทธิภาพ ให้กับแอพพลิเคชันเซิร์ฟเวอร์ได้ง่าย เป็นการแก้ปัญหาที่ตรงจุด แถมคอมพิวเตอร์ในแต่ละเลเยอร์ก็ไม่ต้องรับภาระหนักเกินตัว
สถาปัตยกรรมของ SAP R/3 หลังจากที่เรียนรู้แนวคิดของไคลเอ็นต์/เซิร์ฟเวอร์ในแบบทรีเทียร์กันพอสมควรแล้ว คราวนี้เรามาลองดูในภาคปฏิบัติกันบ้าง ผมจะแสดงให้เห็นถึงรูปแบบการทำงานของระบบ SAP R/3 ในส่วนของ 3 Tier Client/Server ว่าทำงานอย่างไร
การทำงานของระบบไคลเอ็นต์/เซิร์ฟเวอร์ |
ระบบไคลเอ็นต์/เซิร์ฟเวอร์ที่ทำงานด้วยแมสเซจ |
Report ztest.
Tables customers.
Select single * from customers where id = 1
Write customers-name
ขั้นตอนแรกเราจะต้องล็อกออนเข้าไปใช้งานระบบ SAP R/3 ก่อน โดยเรียกโปรแกรม SAPGUI ที่ฝั่งไคลเอ็นต์ขึ้นมาทำงาน จากนั้นก็เรียกโปรแกรม ztest มา ทำงาน เพื่อนำข้อมูลของลูกค้าที่มีรหัส ID เป็น 1 ออกมาแสดงผลที่หน้าจอ ขั้นตอนของ การเอ็กซีคิวต์โปรแกรม ztest จะเป็นดังนี้
ระบบไคลเอ็นต์/เซิร์ฟเวอร์แบบทรีเทียร์ |
ภาพรวมของระบบ SAP R/3 |
จากตัวอย่างที่ผมกล่าวมานั้น จะเห็นได้ว่าการทำงานของโปรแกรม ztest แต่ละคำสั่ง จะถูกกระจายออกไปยังส่วนต่างๆ ตามประเภทของคำสั่งในโปรแกรม ztest ผมหวังว่าทุกท่านคงพอจะมองเห็นภาพการทำงานในแบบ 3 Tier Client/Server ของระบบ SAP R/3 บ้างไม่มากก็น้อย
ส่วนท่านใดที่อยากรู้รายละเอียดของการทำงานในระบบ SAP R/3 มากกว่านี้ ก็ขอแนะนำให้เตรียมอ่านหนังสือ SAP R/3: Basis Administration ที่ผมได้เขียนไว้โดยละเอียด ซึ่งหนังสือเล่มนี้คาดว่าคงจะปรากฏอยู่ในแผงหนังสือทั่วไปเร็วๆ นี้
สำหรับบทความในฉบับต่อไปนั้น เราจะเริ่มลุยการเขียนโปรแกรม ABAP กัน อดใจรอสักนิด อาจจะมีเซียน ABAP เกิดขึ้นในวงการอีกไม่มากก็น้อย ผมหวังไว้เช่นนั้นครับ