Quản lý giao dịch điện tử (tiếng Anh Transactional Communicattion Management System) là quản lý và điều khiển các quy trình giao dịch, tương tác giữa các đơn vị trên mạng máy tính đảm bảo tính nhất quán và toàn vẹn dữ liệu trong quá trình cập nhật dữ liệu.
Vd. về các hệ thống quản lý giao dịch điện tử:
- Hệ thống thanh toán trong thương mại điện tử,
- Hệ thống đặt chỗ trong hàng không,
- Hệ thống tiếp nhận và giải quyết đăng ký trong hành chính điện tử,
- Hệ thống giao dịch trong một ngân hàng hoặc liên ngân hàng,
- Hệ thống truy nhập cơ sở dữ liệu.
Một hệ thống quản lý giao dịch điện tử (hệ thống quản lý giao dịch điện tử) bao gồm chức năng soạn thảo các giao dịch, lưu trữ và cập nhật các giao dịch, chuyển giao, thực hiện các giao dịch và tiếp nhận và xử lý thông tin phản hồi về quy trình và kết quả thực hiện các giao dịch. Mỗi giao dịch điện tử được hiểu là một yêu cầu cần được thực thi do một chủ thể, có thể là một công ty, một mạng máy tính hoặc một cá nhân gọi chung là chủ thể gửi, gửi tới một chủ thể khác, gọi chung là chủ thể nhận.
Các giao dịch tương tác trên dữ liệu theo nguyên tắc ACID (atomicity / đơn nguyên, consistency / toàn vẹn, isolation / tách biệt, và durability / bền vững) Khi một giao dịch được thực hiện trên một cơ sở dữ liệu, giao dịch đó truy xuất đến các đơn vị dữ liệu của cơ sở dữ liệu (tính đơn nguyên). Đơn vị dữ liệu có thể là
- Một file dữ liệu
- Một bản ghi trong file dữ liệu
- Một số dư trong tài khoản ngân hàng
Mỗi giao dịch có thể tương tác trên các đơn vị dữ liệu theo các quyền truy nhập khác nhau như chỉ đọc, chỉ ghi, đọc và ghi theo từng pha riêng biệt.
Mỗi giao dịch hoặc là được thực thi trọn vẹn, hoặc là bị từ chối, không thể để xảy ra hiện tượng một giao dịch thực thi dở dang (tính bền vững). Giả sử một giao dịch D đang cập nhật một file dữ liệu F mà gặp sự cố như mất điện hoặc đường truyền bị ngắt, thì hệ thống quản lý giao dịch phải đảm bảo rằng giao dịch đó được xem như chưa được thực thi và dữ liệu trong file F phải được bảo toàn nội dung đúng như tại thời điểm trước khi giao dịch D thực thi (tính toàn vẹn và tính bền vững).
Giả sử có hai giao dịch là T1 và T2 được phát sinh từ hai chủ thể khác nhau và được gửi đến hệ thống quản lý giao dịch tại cùng một thời diểm.
Giao dịch T1 yêu cầu: "chuyển 2 triệu từ tài khoản A sang tài khoản B. "
Giao dịch T2 yêu cầu: "chuyển 3 triệu từ tài khoản C sang tài khoản B. "
Hệ thống có thể thực thi hai giao dịch T1 và T2 theo một trong các phương án sau đây:
- Phương án 1: Thực thi giao dịch T1 trước giao dịch T2.
- Phương án 2: Thực thi giao dịch T2 trước giao dịch T1.
- Phương án 3: Thực thi đan xen các thao tác của hai giao dịch.
Dù hệ thống thực thi theo phương án nào cũng phải đảm bảo đúng kết quả sau đây, sau khi cả hai giao dịch T1 và T2 được thực thi trọng vẹn:
{tài khoản A giảm đi 2 triệu đồng và
tài khoản C giảm đi 3 triệu đồng và
tài khoản B tăng thêm 5 triệu đồng} (Tính toàn vẹn)
Phương thức xử lý giao dịch[sửa]
Các giao dịch có thể được xử lý theo các phương thức sau đây.
Tuần tự: hệ thống thực thi lần lượt và trọn vẹn từng giao dịch theo một trật tự quy định, vd., theo quy tắc hàng đợi: giao dịch đến trước sẽ được thực thi trước. Phương thức này có hạn chế là khi có nhiều giao dịch được gửi đến cùng một thời điểm nhưng lại bị xếp vào cuối hàng đợi thì giao dịch đó phải chờ lâu.
Theo lô: tại mỗi thời điểm, hệ thống tiếp nhận một tập các giao dịch được chuyển đến đồng thời, sau đó hệ thống đan xen các thao tác của các giao dịch để tạo thành một lịch rồi thực hiện lịch đó. Phương thức này giống như cách thức phục vụ trong một quán ăn. Mỗi bàn trong quán ăn dựa vào thực đơn để chọn món và ghi vào một phiếu đặt hàng. Mỗi phiếu này được hiểu là một giao dịch. Chủ quán nhận đồng thời một tập phiếu rồi lập ra một lịch phục vụ đan xen các bàn với tiêu chí là không để bàn nào phải chờ lâu.
Xử lý theo lô đòi hỏi hệ thống phải tuân thủ tiêu chí khả tuần tự như sau: mọi lịch được lập từ một tập các giao dịch phải cho cùng một kết quả như khi thực thi trọn vẹn từng giao dịch theo phương thức tuần tự (tính tách biệt: mỗi giao dịch là độc lập với các giao dịch khác). Tiêu chí này là một trong các nguyên lý cơ sở đảm bảo tính nhất quán và toàn vẹn dữ liệu.
Khi có nhiều giao dịch cùng thực thi trên cùng một số đơn vị dữ liệu hoặc cùng đòi hỏi một số thiết bị dùng chung (gọi chung là tài nguyên) thì có thể xảy ra hiện tượng đụng độ về tài nguyên. Các kỹ thuật xử lý tình huống này được gọi chung là xử lý tương tranh. Xử lý tương tranh tập trung phát hiện và khắc phục các tình huống sau đây:
Nghẽn: là hiện tượng xảy ra khi hai hay nhiều giao dịch cùng đòi hỏi một tài nguyên dẫn đến tình trạng không giao dịch nào có thể hoàn tất quá trình.
Hoài vọng: là hiện tượng một giao dịch đợi vô hạn thời gian mà không thể đựơc thực thi trọn vẹn. Dễ thấy là hiện tượng nghẽn nói trên cũng dẫn đến hoài vọng. Ngoài ra, hoài vọng có thể nảy sinh khi hệ thống xử lý các giao dịch theo một tiêu chí nào đó, vd., ưu tiên cho các giao dịch cần ít tài nguyên. Giả sử có nhiều giao dịch chỉ yêu cầu cập nhật một trong hai tài khoản là A hoặc B và có một giao dịch X yêu cầu cập nhật đồng thời cả hai tài khoản A và B. Nếu hệ thống hoạt động theo nguyên tắc ưu tiên nói trên, thì mỗi khi một trong hai tài khoản A hoặc B được giải phóng, hệ thống sẽ cấp ngay tài khoản đó cho các giao dịch chỉ cần duy nhất một tài khoản. Hậu quả là giao dịch X có thể rơi vào trạng thái hoài vọng.
Lịch sử hình thành[sửa]
Năm 1949 Shannon công bố cớ sở toán học về khái niệm giao tiếp sau này được mở rộng thành khái niệm giao dịch / giao tác. Mô hình toán học của Shannon được coi như nền tảng để phát triển các hệ thống điện thoại, dạng sơ khởi của giao dịch điện tín.
Năm 1960 IBM xây dựng phần mềm quản lý thông tin IMS phục vụ xử lý các giao dịch được gọi là chuẩn hóa.
Năm 1970 hệ thống xử lý giao dịch SABRE trên dàn máy IBM 7090 có thể xử lý mỗi ngày 83.000 giao dịch. Năm 1972 hệ thống được nâng cấp để vận hành trên dàn máy IBM System/360 phục vụ cho việc xử lý các giao dịch hàng không, khách sạn và tín dụng.
Năm 1976 Hewlett-Packard xây dựng hệ Tandem NonStop xử lý các giao dịch trực tuyến.
Công nghệ khách - chủ được ra đời từ năm 1980, tuy nhiên mô hình xử lý tập trung này không thể đáp ứng được các giao dịch phân tán và trực tuyến trên diện rộng, điển hình là các giao dịch web. Nhu cầu này dẫn đến sự ra đời và nâng cấp các hệ thống mới như mainframes, X/Open Distributed Transaction Processing (DTP), API (JTA), CICS.
Từ năm 2011 xuất hiện thuật ngữ xử lý giao dịch siêu hạng (XTP) nói về các hệ thống xử lý trực tuyến các giao dịch đa dạng phát sinh liên tục với tần suất cao trên mạng diện rộng.
Hệ thống quản lý giao dịch điện tử được ứng dụng rộng rãi trong thương mại điện tử và chính phủ điện tử.
Tài liệu tham khảo[sửa]
- Agrawal D, Das S, El Abbadi A. (2013). Data management in the cloud – challenges and opportunities. London: Morgan & Claypool Publishers. Google Scholar
- Cellary W, Gelenbe E, Morzy T. (1998). Concurrency control in distributed database systems. Amsterdam: North-Holland. zbMATHGoogle Scholar
- Gerhard Weikum, Gottfried Vossen (2002). Transactional information systems: theory, algorithms, and the practice of concurrency control and recovery, Morgan Kaufmann, ISBN 1-55860-508-8.