DB2 เป็นผลิตภัณฑ์ในกลุ่ม ระบบจัดการฐานข้อมูล ของ ไอบีเอ็ม ปัจจุบันถูกเรียกว่า ไอบีเอ็ม DB2 Data Server ซึ่งเป็นผลิตภัณฑ์ในกลุ่ม ไอบีเอ็ม Information Management Software
AS/400 และระบบฐานข้อมูลของมันอย่างละเอียดครับ
1. ระบบฐานข้อมูลของ AS/400
AS/400 (หรือที่ปัจจุบันเรียกว่า IBM i) ใช้ระบบฐานข้อมูลแบบ DB2 ที่มีลักษณะพิเศษคือ:
- เป็นระบบฐานข้อมูลแบบ integrated ที่ฝังตัวมากับระบบปฏิบัติการ
- ใช้โครงสร้างแบบ single-level storage ที่จัดการหน่วยความจำและพื้นที่เก็บข้อมูลเป็นระบบเดียวกัน
- รองรับการทำงานแบบ journaling และ commitment control เพื่อรักษาความถูกต้องของข้อมูล
2. เหตุผลที่มีความน่าเชื่อถือสูงในสถาบันการเงิน:
ความปลอดภัย:
- มีระบบรักษาความปลอดภัยระดับ object-level
- การเข้าถึงข้อมูลต้องผ่านการตรวจสอบสิทธิ์อย่างเข้มงวด
- มีระบบ audit trail ที่ติดตามการเปลี่ยนแปลงข้อมูลทั้งหมด
ความเสถียร:
- ออกแบบมาให้ทำงานได้ต่อเนื่องแบบ 24/7
- มีระบบ fault tolerance และ redundancy สูง
- การบำรุงรักษาทำได้โดยไม่ต้องหยุดระบบ
ความน่าเชื่อถือของข้อมูล:
- รองรับ ACID properties อย่างสมบูรณ์
- มีระบบ journaling ที่บันทึกการเปลี่ยนแปลงทุกรายการ
- สามารถกู้คืนข้อมูลได้แม่นยำในกรณีที่เกิดปัญหา
3. การใช้งานในระบบธนาคาร:
ระบบหลัก (Core Banking):
- ระบบบัญชีเงินฝาก
- ระบบสินเชื่อ
- ระบบการโอนเงิน
- ระบบบัตรเครดิต
ระบบสนับสนุน:
- ระบบรายงานทางการเงิน
- ระบบบริหารความเสี่ยง
- ระบบ compliance และ audit
4. จุดเด่นที่เหมาะกับธนาคาร:
ประสิทธิภาพ:
- รองรับการประมวลผลธุรกรรมจำนวนมาก (high transaction volume)
- การตอบสนองรวดเร็ว แม้มีผู้ใช้งานพร้อมกันจำนวนมาก
- ประสิทธิภาพในการจัดการข้อมูลขนาดใหญ่
ความต่อเนื่องทางธุรกิจ:
- มีระบบ disaster recovery ที่มีประสิทธิภาพ
- สามารถทำ failover ได้อย่างรวดเร็ว
- รองรับการสำรองข้อมูลแบบ real-time
การบำรุงรักษา:
- ต้นทุนการบำรุงรักษาต่ำเมื่อเทียบกับระบบอื่น
- มีความเสถียรสูง ต้องการการดูแลน้อย
- มีผู้เชี่ยวชาญและบริการสนับสนุนจาก IBM
5. ความท้าทายในปัจจุบัน:
- การขาดแคลนบุคลากรที่มีความเชี่ยวชาญในระบบ AS/400
- การเชื่อมต่อกับเทคโนโลยีสมัยใหม่
- การพัฒนา user interface ให้ทันสมัย
แม้จะมีความท้าทายบางประการ แต่ AS/400 ยังคงเป็นระบบที่ได้รับความไว้วางใจจากสถาบันการเงินทั่วโลก เนื่องจากความน่าเชื่อถือ ความปลอดภัย และประสิทธิภาพที่พิสูจน์แล้วตลอดระยะเวลาหลายทศวรรษ
ภาษาโปรแกรมมิ่งและเครื่องมือที่ใช้พัฒนาบน AS/400
1. ภาษาโปรแกรมมิ่งหลักที่ใช้บน AS/400:
RPG (Report Program Generator):
- RPG III, RPG IV (ILE RPG)
- เป็นภาษาที่นิยมที่สุดสำหรับ AS/400
- เหมาะสำหรับการจัดการธุรกรรมและการประมวลผลข้อมูล
- รองรับทั้งแบบ procedural และ free-format coding
COBOL:
- ยังคงใช้งานอยู่ในระบบเก่า
- เหมาะกับการประมวลผลข้อมูลทางธุรกิจ
- มีความสามารถในการจัดการไฟล์ขนาดใหญ่
CL (Control Language):
- ใช้สำหรับเขียนสคริปต์และควบคุมระบบ
- จัดการ job, program calls และ system commands
- คล้ายกับ shell script ในระบบ Unix
2. เครื่องมือพัฒนา (Development Tools):
IBM Rational Developer for i (RDi):
- IDE ที่ทันสมัยสำหรับพัฒนาโปรแกรม
- รองรับการเขียน RPG, COBOL, CL
- มี code editor, debugger และ analysis tools
SEU (Source Entry Utility):
- เครื่องมือดั้งเดิมสำหรับแก้ไขซอร์สโค้ด
- ทำงานบนหน้าจอ green screen
- ยังคงใช้งานในองค์กรที่ใช้ระบบเก่า
PDM (Programming Development Manager):
- จัดการไฟล์ซอร์สโค้ดและออบเจ็กต์
- compile และ build โปรแกรม
- จัดการ library และ source members
3. การจัดการข้อมูลและการเชื่อมต่อ:
Socket Programming:
- ใช้ sockets สำหรับการสื่อสารระหว่างระบบ
- รองรับทั้ง TCP/IP และ SNA
- สามารถเขียนโดยใช้ RPG, COBOL หรือ C
DSPF (Display File):
- ใช้สำหรับสร้าง user interface แบบ green screen
- กำหนด screen layout และ field properties
- จัดการ input/output กับผู้ใช้
4. Modern Integration Tools:
IBM i Access Client Solutions:
- เครื่องมือสำหรับเข้าถึงระบบ AS/400
- รองรับ 5250 emulation
- จัดการไฟล์และข้อมูล
SQL และ DB2:
- ใช้ SQL สำหรับจัดการฐานข้อมูล
- เชื่อมต่อกับระบบภายนอกผ่าน JDBC/ODBC
- รองรับ stored procedures และ triggers
5. Web Development:
IBM Integrated Web Services:
- สร้าง web services จากโปรแกรม RPG/COBOL
- รองรับ SOAP และ REST
- เชื่อมต่อกับระบบสมัยใหม่
6. ตัวอย่าง Code Structure:
rpg
// RPG IV example for file handling Fcustomer if e k disk Forders if e k disk /free // Read customer record chain custkey customer cusrec; if %found(customer); // Process customer data exsr ProcessCustomer; endif; /end-free
7. การจัดการ Sockets:
rpg
// Socket programming in RPG d socket pr 10i 0 extproc('socket') d domain 10i 0 value d type 10i 0 value d protocol 10i 0 value // Create socket d sockDesc s 10i 0 /free sockDesc = socket(AF_INET: SOCK_STREAM: IPPROTO_IP);