Tài Liệu Thiết Kế Ứng Dụng ATM cho Deutsche Bank

Chuyên khảo phân tích Design document for ab service ta code, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu tiếp theo.

Trường đại học

Đại Học Kinh Tế Quốc Dân

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2023

61
1
0

Phí lưu trữ

30 Point

Tóm tắt

I. Khám phá tài liệu thiết kế ứng dụng ATM cho Deutsche Bank

Tài liệu thiết kế ứng dụng ATM cho Deutsche Bank là một bản kế hoạch chi tiết, đóng vai trò nền tảng cho việc phát triển và triển khai hệ thống. Văn bản này không chỉ là một tài liệu kỹ thuật phần mềm thông thường, mà còn là cầu nối giữa yêu cầu nghiệp vụ và giải pháp công nghệ. Mục tiêu chính của tài liệu là cung cấp một cách tiếp cận kỹ thuật toàn diện để triển khai ứng dụng mô phỏng ATM, sử dụng các sơ đồ kiến trúc khác nhau để trình bày các khía cạnh của hệ thống. Tài liệu này được xây dựng trên nền tảng .NET Framework với ngôn ngữ lập trình C#, nhằm mô tả kiến trúc ở cấp độ cao, trong đó hệ thống được chia thành các lớp chức năng riêng biệt. Việc phân tích yêu cầu chức năng và phi chức năng được thực hiện kỹ lưỡng để đảm bảo ứng dụng đáp ứng mọi nghiệp vụ, từ rút tiền, chuyển khoản đến vấn tin số dư. Hơn nữa, đặc tả yêu cầu phần mềm (SRS) được trình bày một cách rõ ràng, giúp đội ngũ phát triển, kiểm thử và cả đại diện khách hàng có chung một tầm nhìn về sản phẩm cuối cùng. Cấu trúc của tài liệu được tổ chức một cách khoa học, bao gồm các phần chính như: Giới thiệu, Thiết kế Kiến trúc, Thiết kế Dữ liệu, Thiết kế Giao diện, Bảo mật Ứng dụng, Cấu hình, và cuối cùng là Đóng gói và Triển khai. Mỗi phần đều đóng góp vào việc xây dựng một thiết kế hệ thống ATM mạnh mẽ, linh hoạt và dễ bảo trì, tạo tiền đề cho một hệ thống giao dịch tài chính ổn định và an toàn.

1.1. Mục tiêu và phạm vi của tài liệu kỹ thuật phần mềm

Mục tiêu cốt lõi của tài liệu kỹ thuật phần mềm này là trình bày một phương pháp tiếp cận rõ ràng để hiện thực hóa ứng dụng ATM. Tài liệu tập trung vào việc mô tả các quyết định kiến trúc quan trọng, định hình cách ứng dụng sẽ được xây dựng từ góc độ .NET và C#. Phạm vi của tài liệu, như được nêu trong 'Design Document For AB-SERVICE', giới hạn trong một ứng dụng mô phỏng ATM (ATM simulator) thuộc dự án FRESHER11. Mặc dù là một hệ thống mô phỏng, nó vẫn phải bao gồm các chức năng ngân hàng cốt lõi. Các chức năng này bao gồm xác thực thẻ, rút tiền, kiểm tra số dư, xem lịch sử giao dịch, chuyển tiền, đổi mã PIN và ghi nhật ký hệ thống. Việc xác định rõ phạm vi giúp tập trung nguồn lực phát triển vào các tính năng quan trọng nhất, tránh sự lan man và đảm bảo sản phẩm đáp ứng đúng mục tiêu ban đầu đã đề ra cho dự án.

1.2. Phân tích yêu cầu chức năng và phi chức năng cốt lõi

Việc phân tích yêu cầu chức năng là bước đầu tiên để định hình hệ thống. Các yêu cầu chức năng chính được xác định bao gồm: UC01 (Validation - Xác thực), UC02 (Withdraw - Rút tiền), UC03 (Check Balance - Vấn tin số dư), UC04 (View History - Xem lịch sử), UC05 (Cash Transfer - Chuyển tiền), UC06 (Change PIN - Đổi PIN), và UC07 (Logging - Ghi nhật ký). Bên cạnh đó, phân tích yêu cầu phi chức năng cũng cực kỳ quan trọng, bao gồm các yếu tố như hiệu suất, khả năng mở rộng, tính bảo mật và độ tin cậy. Hệ thống phải đảm bảo thời gian phản hồi nhanh chóng cho các giao dịch, có khả năng xử lý đồng thời nhiều yêu cầu, và đặc biệt, phải có cơ chế bảo mật giao dịch tài chính vững chắc để bảo vệ thông tin khách hàng và ngăn chặn gian lận.

1.3. Đối tượng và cấu trúc đặc tả yêu cầu phần mềm SRS

Bản đặc tả yêu cầu phần mềm (SRS) này hướng đến hai đối tượng chính: đội ngũ phát triển (Developers) và đại diện khách hàng (Customer Representatives). Đối với đội ngũ phát triển, tài liệu cung cấp các chỉ dẫn kỹ thuật chi tiết về kiến trúc và thiết kế để họ có thể triển khai hệ thống một cách chính xác. Đối với đại diện khách hàng, tài liệu đóng vai trò là cơ sở để họ xem xét và phê duyệt, đảm bảo rằng giải pháp được đề xuất hoàn toàn phù hợp với yêu cầu nghiệp vụ. Cấu trúc tài liệu được phân chia logic thành các mục lớn như Thiết kế Kiến trúc, Thiết kế Dữ liệu (Data Design), và Thiết kế Giao diện (Interface Design). Cách tổ chức này giúp các bên liên quan dễ dàng tra cứu và nắm bắt thông tin thuộc lĩnh vực chuyên môn của mình, tạo ra sự đồng thuận và hiệu quả trong quá trình làm việc.

II. Thách thức bảo mật trong thiết kế ứng dụng ATM tài chính

Thiết kế một ứng dụng ATM không chỉ đơn thuần là xây dựng các chức năng giao dịch, mà còn phải đối mặt với những thách thức to lớn về an ninh và bảo mật. Bảo mật giao dịch tài chính là ưu tiên hàng đầu, bởi bất kỳ lỗ hổng nào cũng có thể dẫn đến thiệt hại nghiêm trọng về tài chính và uy tín cho ngân hàng. Một trong những thách thức lớn nhất là đảm bảo quy trình xác thực người dùng (Authentication) diễn ra an toàn tuyệt đối, chống lại các hình thức tấn công như đánh cắp mã PIN hoặc làm giả thẻ. Dữ liệu của khách hàng, từ số thẻ, mã PIN cho đến thông tin tài khoản, phải được bảo vệ ở mọi trạng thái: khi được lưu trữ trong cơ sở dữ liệu, khi được truyền tải qua mạng lưới và khi được xử lý bởi hệ thống. Do đó, việc áp dụng các kỹ thuật mã hóa dữ liệu (Data Encryption) mạnh mẽ là yêu cầu bắt buộc. Thêm vào đó, việc tuân thủ các tiêu chuẩn quốc tế như PCI DSS (Payment Card Industry Data Security Standard) đặt ra một loạt yêu cầu khắt khe về cách hệ thống được xây dựng, vận hành và duy trì. Việc thiết kế một kiến trúc phần mềm ATM vừa đáp ứng được các quy trình nghiệp vụ ATM phức tạp, vừa tuân thủ các quy định bảo mật nghiêm ngặt là một bài toán đòi hỏi sự cân bằng giữa tính năng, hiệu suất và an toàn.

2.1. Đảm bảo bảo mật giao dịch tài chính và xác thực người dùng

Quy trình xác thực người dùng là lớp phòng thủ đầu tiên và quan trọng nhất của hệ thống ATM. Tài liệu thiết kế nhấn mạnh vào Use Case 01: Validation, nơi hệ thống phải xác thực thẻ và mã PIN của khách hàng một cách chính xác. Thách thức ở đây là làm sao để quy trình này chống lại được các kỹ thuật tấn công phổ biến. Giải pháp bao gồm việc giới hạn số lần nhập sai mã PIN, tự động khóa thẻ sau nhiều lần thất bại, và đảm bảo kênh truyền thông giữa máy ATM và hệ thống lõi ngân hàng (Core Banking) được mã hóa an toàn. Mọi xử lý giao dịch ngân hàng, dù là nhỏ nhất, đều phải bắt đầu bằng một phiên làm việc đã được xác thực thành công, đảm bảo chỉ chủ tài khoản hợp pháp mới có thể truy cập và thực hiện giao dịch.

2.2. Tầm quan trọng của mã hóa dữ liệu Data Encryption

Dữ liệu tài chính là mục tiêu hấp dẫn của tội phạm mạng. Do đó, mã hóa dữ liệu đóng một vai trò sống còn trong việc bảo vệ thông tin nhạy cảm. Toàn bộ dữ liệu khách hàng, đặc biệt là mã PIN và thông tin tài khoản, phải được mã hóa trước khi lưu trữ vào cơ sở dữ liệu. Khi dữ liệu được truyền đi qua giao thức kết nối ATM đến máy chủ ngân hàng, nó cũng phải được mã hóa bằng các thuật toán mạnh như AES hoặc 3DES. Việc này giúp ngăn chặn các cuộc tấn công xen giữa (man-in-the-middle), nơi kẻ tấn công cố gắng nghe lén và đánh cắp thông tin trên đường truyền. Một thiết kế hệ thống ATM hiện đại bắt buộc phải tích hợp cơ chế mã hóa đầu cuối (end-to-end encryption) để đảm bảo an toàn tối đa.

2.3. Hướng tới tuân thủ PCI DSS trong hệ thống ngân hàng

Mặc dù tài liệu gốc không đề cập trực tiếp, việc tuân thủ PCI DSS là một yêu cầu ngầm định đối với bất kỳ hệ thống nào xử lý dữ liệu thẻ thanh toán. Đây là một bộ tiêu chuẩn bảo mật thông tin toàn diện, bao gồm các yêu cầu về xây dựng và duy trì mạng lưới bảo mật, bảo vệ dữ liệu chủ thẻ, duy trì chương trình quản lý lỗ hổng, và thường xuyên giám sát, kiểm tra mạng lưới. Một thiết kế ứng dụng ATM phải tính đến các yêu cầu này ngay từ đầu, ví dụ như không lưu trữ dữ liệu nhạy cảm không cần thiết, sử dụng các thành phần mạng được cấu hình an toàn, và triển khai hệ thống ghi nhật ký (logging) chi tiết để phục vụ cho việc điều tra khi có sự cố xảy ra. Việc tuân thủ PCI DSS không chỉ là nghĩa vụ pháp lý mà còn là cam kết về sự an toàn đối với khách hàng.

III. Phương pháp thiết kế kiến trúc phần mềm ATM N Tier tối ưu

Để giải quyết các thách thức về nghiệp vụ và bảo mật, tài liệu đề xuất một kiến trúc phần mềm ATM theo mô hình N-Tier. Đây là một phương pháp thiết kế hệ thống hiện đại, giúp phân tách ứng dụng thành các lớp (layer) logic độc lập. Lợi ích chính của kiến trúc này là tăng cường tính linh hoạt, khả năng bảo trì và mở rộng hệ thống. Tài liệu mô tả một kiến trúc 3 lớp kinh điển, bao gồm: Lớp Trình diễn (Presentation Layer), Lớp Nghiệp vụ (Business Layer) và Lớp Truy cập Dữ liệu (Data Access Layer). Mỗi lớp có một trách nhiệm rõ ràng và chỉ giao tiếp với các lớp liền kề nó. Sự phân tách này cho phép các nhóm phát triển có thể làm việc song song trên các lớp khác nhau, đồng thời giúp việc thay đổi công nghệ ở một lớp không ảnh hưởng lớn đến các lớp còn lại. Ví dụ, việc nâng cấp thiết kế cơ sở dữ liệu (Database Design) hoặc chuyển đổi nhà cung cấp CSDL sẽ chỉ tác động chủ yếu đến Lớp Truy cập Dữ liệu. Cách tiếp cận này là nền tảng cho việc xây dựng một thiết kế hệ thống ATM bền vững, có khả năng thích ứng với các yêu cầu thay đổi trong tương lai và dễ dàng tích hợp với các hệ thống khác thông qua API cho hệ thống ngân hàng.

3.1. Mô hình 3 lớp Presentation Business và Data Access

Tài liệu thiết kế mô tả rõ vai trò của từng lớp trong kiến trúc phần mềm ATM. Lớp Trình diễn (Presentation Layer) chịu trách nhiệm hiển thị giao diện cho người dùng cuối và quản lý các yêu cầu/phản hồi. Nó thực hiện các kiểm tra tính hợp lệ của dữ liệu đầu vào (UI validation) và xử lý các ngoại lệ từ các lớp bên dưới. Lớp Nghiệp vụ (Business Logic Layer - BLL) là trái tim của hệ thống, nơi xử lý toàn bộ logic và các quy tắc nghiệp vụ. Lớp này quản lý các quy trình nghiệp vụ ATM và đóng vai trò trung gian, không cho phép lớp trình diễn giao tiếp trực tiếp với lớp dữ liệu. Cuối cùng, Lớp Truy cập Dữ liệu (Data Access Layer - DAL) quản lý việc truy cập vào bộ lưu trữ dài hạn (cơ sở dữ liệu). Việc tách riêng lớp này giúp dễ dàng thay đổi nguồn dữ liệu mà không ảnh hưởng đến logic nghiệp vụ.

3.2. Vai trò của Data Access Object DAO và Business Entities

Trong Lớp Truy cập Dữ liệu, mẫu thiết kế Data Access Object (DAO) được áp dụng. DAO là các đối tượng chịu trách nhiệm kết nối với hệ thống CSDL, trích xuất thông tin dựa trên các yêu cầu cụ thể và tạo ra các đối tượng giá trị (Value Object). Tài liệu cũng đề xuất sử dụng LINQ to SQL để giúp ứng dụng linh hoạt hơn trong việc truy cập cơ sở dữ liệu. Ở Lớp Nghiệp vụ, các đối tượng thực thể nghiệp vụ (Business Entities - BE) được sử dụng để thực hiện các hoạt động kinh doanh. Lớp BE sẽ truy cập vào DAO để tương tác với CSDL. Mô hình này giúp tách biệt hoàn toàn logic truy vấn dữ liệu khỏi logic xử lý nghiệp vụ, làm cho mã nguồn trở nên sạch sẽ và dễ quản lý hơn.

3.3. Thiết kế các gói Packages và thành phần Components

Bên cạnh việc phân chia theo lớp, tài liệu còn đưa ra một góc nhìn khác thông qua sơ đồ Gói/Thành phần (Packages/Components view). Các thành phần chính bao gồm: UI Components (thành phần giao diện), Business Entities (thực thể nghiệp vụ), Data Access Object (đối tượng truy cập dữ liệu), Exceptions Lib (thư viện ngoại lệ), General Lib (thư viện tiện ích chung), và Logging Lib (thư viện ghi nhật ký). Cách tổ chức mã nguồn thành các gói riêng biệt này giúp tăng cường khả năng tái sử dụng và quản lý các phụ thuộc. Ví dụ, Logging Lib có thể được sử dụng bởi tất cả các lớp khác trong ứng dụng để ghi lại các hoạt động quan trọng, phục vụ cho việc gỡ lỗi và kiểm toán hệ thống sau này.

IV. Bí quyết thiết kế CSDL và giao diện người dùng ATM

Một hệ thống ATM hiệu quả không chỉ cần một kiến trúc phần mềm vững chắc mà còn đòi hỏi một thiết kế cơ sở dữ liệu (Database Design) tối ưu và một thiết kế giao diện người dùng (UI) thân thiện. Về mặt dữ liệu, việc cấu trúc và thao tác với dữ liệu là yếu tố then chốt quyết định hiệu suất và tính toàn vẹn của hệ thống. Tài liệu đề cập đến việc sử dụng Sơ đồ Quan hệ Thực thể (Entity Relationship Diagram - ERD) để mô hình hóa cấu trúc dữ liệu, xác định các thực thể chính như Khách hàng, Tài khoản, Giao dịch và mối quan hệ giữa chúng. Việc thiết kế CSDL hợp lý giúp giảm thiểu sự dư thừa dữ liệu và đảm bảo các truy vấn xử lý giao dịch ngân hàng được thực hiện nhanh chóng. Về mặt giao diện, thiết kế trải nghiệm người dùng (UX) trên máy ATM phải cực kỳ đơn giản và trực quan. Người dùng cần có khả năng thực hiện các giao dịch một cách nhanh chóng và không gặp trở ngại. Các biểu đồ UML cho ATM như sơ đồ hoạt động (Activity Diagram) được sử dụng để mô tả chi tiết luồng tương tác của người dùng, từ đó làm cơ sở cho việc thiết kế các màn hình và nút bấm một cách logic, giảm thiểu sai sót và nâng cao sự hài lòng của khách hàng.

4.1. Sơ đồ luồng dữ liệu DFD cho các giao dịch chính

Mặc dù tài liệu gốc tập trung vào UML, việc áp dụng sơ đồ luồng dữ liệu (DFD) là một phương pháp hữu ích để phân tích cách dữ liệu di chuyển trong hệ thống. DFD có thể được sử dụng để minh họa luồng thông tin cho một giao dịch rút tiền: bắt đầu từ việc người dùng nhập thông tin thẻ và PIN tại máy ATM, dữ liệu được gửi đến hệ thống để xác thực, sau đó hệ thống kiểm tra số dư trong CSDL, và cuối cùng gửi lệnh nhả tiền và cập nhật lại số dư. Việc trực quan hóa luồng dữ liệu này giúp xác định các điểm xử lý quan trọng, các kho dữ liệu cần thiết và các điểm cần tăng cường bảo mật giao dịch tài chính, đảm bảo dữ liệu luôn được xử lý một cách nhất quán và an toàn.

4.2. Nguyên tắc thiết kế giao diện người dùng UI hiệu quả

Tài liệu cung cấp các mô tả chi tiết về màn hình (Screen Design) cho các chức năng như Xem Lịch sử và Chuyển tiền. Nguyên tắc chung cho thiết kế giao diện người dùng (UI) là sự rõ ràng và đơn giản. Các nút chức năng được bố trí hợp lý, các hướng dẫn trên màn hình phải ngắn gọn, dễ hiểu. Ví dụ, trong màn hình chuyển tiền (Cash Transfer), hệ thống yêu cầu người dùng nhập tài khoản nhận, sau đó hiển thị thông tin người nhận để xác nhận trước khi nhập số tiền. Quy trình từng bước này giúp người dùng tránh nhầm lẫn và thực hiện giao dịch một cách tự tin. Việc sử dụng các nút bấm vật lý bên cạnh màn hình cũng phải được đồng bộ hóa một cách logic với các tùy chọn hiển thị trên giao diện.

4.3. Cải thiện thiết kế trải nghiệm người dùng UX trên ATM

Bên cạnh giao diện, thiết kế trải nghiệm người dùng (UX) tổng thể là yếu tố giữ chân khách hàng. Trải nghiệm tốt không chỉ đến từ giao diện đẹp mà còn từ tốc độ xử lý nhanh, thông báo lỗi rõ ràng và quy trình giao dịch liền mạch. Ví dụ, tài liệu mô tả màn hình chờ (Waited screen) khi hệ thống đang tìm kiếm. Một trải nghiệm tốt hơn có thể bao gồm một thanh tiến trình hoặc một thông báo động để người dùng biết hệ thống vẫn đang hoạt động. Hay khi xảy ra lỗi, như tài khoản không đủ tiền (Screen 08 trong mục Cash Transfer), hệ thống không chỉ báo lỗi mà còn điều hướng người dùng quay lại màn hình nhập số tiền. Những chi tiết nhỏ này trong quy trình nghiệp vụ ATM góp phần tạo nên một trải nghiệm người dùng tích cực và chuyên nghiệp.

V. Phân tích quy trình nghiệp vụ ATM Giao dịch chuyển tiền

Việc phân tích sâu vào một quy trình nghiệp vụ ATM cụ thể sẽ cho thấy cách kiến trúc và thiết kế được áp dụng vào thực tế. Tài liệu cung cấp một ví dụ rất chi tiết về Use Case 05: Chuyển tiền (Cash Transfer), một trong những nghiệp vụ phức tạp nhất. Quy trình này không chỉ liên quan đến việc trừ tiền từ một tài khoản và cộng tiền vào một tài khoản khác, mà còn bao gồm nhiều bước xác thực, kiểm tra và tương tác với người dùng. Việc xử lý giao dịch ngân hàng này đòi hỏi sự phối hợp nhịp nhàng giữa Lớp Trình diễn (hiển thị các màn hình nhập liệu và xác nhận), Lớp Nghiệp vụ (kiểm tra số dư, xác thực tài khoản nhận) và Lớp Truy cập Dữ liệu (cập nhật thông tin trong CSDL). Các sơ đồ như Sơ đồ Luồng Hoạt động (Activities Flow) được sử dụng để mô tả chi tiết từng bước của quy trình, từ khi người dùng chọn chức năng cho đến khi giao dịch hoàn tất và biên lai được in. Việc sử dụng các biểu đồ UML cho ATM giúp trực quan hóa các luồng xử lý phức tạp, đảm bảo tất cả các trường hợp có thể xảy ra, bao gồm cả các kịch bản lỗi, đều được tính đến và xử lý một cách triệt để.

5.1. Luồng hoạt động chi tiết của Use Case Chuyển tiền

Sơ đồ luồng hoạt động (Activities flow) cho chức năng chuyển tiền mô tả một quy trình đa bước. Bắt đầu khi khách hàng chọn 'Cash Transfer', hệ thống sẽ hiển thị màn hình yêu cầu nhập số tài khoản người nhận. Sau khi nhập, hệ thống xác thực tài khoản này có tồn tại trong hệ thống ngân hàng hay không. Nếu hợp lệ, thông tin người nhận sẽ được hiển thị để khách hàng xác nhận. Tiếp theo, khách hàng nhập số tiền muốn chuyển. Hệ thống sau đó sẽ thực hiện kiểm tra logic nghiệp vụ quan trọng: so sánh số tiền chuyển với số dư khả dụng. Cuối cùng, một màn hình xác nhận cuối cùng với đầy đủ thông tin giao dịch được hiển thị trước khi thực hiện chuyển tiền. Mỗi bước trong luồng này tương ứng với một màn hình giao diện cụ thể, cho thấy sự liên kết chặt chẽ giữa thiết kế giao diện người dùng (UI) và logic nghiệp vụ.

5.2. Xử lý logic nghiệp vụ và các quy tắc kiểm tra BR

Phần 'Detail Processing' trong tài liệu làm rõ các quy tắc nghiệp vụ (Business Rules - BR) quan trọng. Ví dụ, BR01 (Check Money) mô tả quy tắc kiểm tra số dư: 'IF (Balance > amount) THEN Continue transaction ELSE DISPLAY “Your account not enough money to transfer”'. Quy tắc này được thực thi trong Lớp Nghiệp vụ. Một quy tắc khác là BR02 (Transfer Cash), mô tả hành động cập nhật số dư của tài khoản gửi và tài khoản nhận. Việc trừ tiền từ tài khoản gửi và cộng tiền vào tài khoản nhận phải được thực hiện như một giao dịch nguyên tử (atomic transaction). Điều này đảm bảo tính toàn vẹn dữ liệu: hoặc cả hai hành động đều thành công, hoặc cả hai đều thất bại, tránh trường hợp tiền bị trừ mà không được cộng vào tài khoản đích. Đây là một phần cốt lõi của việc xử lý giao dịch ngân hàng.

5.3. Sử dụng biểu đồ UML cho ATM để trực quan hóa quy trình

Tài liệu tham chiếu đến các loại biểu đồ UML cho ATM khác nhau như Sơ đồ Lớp (Class Diagram) và Sơ đồ Tuần tự (Sequence Diagram). Sơ đồ lớp sẽ định nghĩa các lớp đối tượng liên quan đến giao dịch chuyển tiền, ví dụ như lớp Account, Transaction, Customer, và mối quan hệ giữa chúng. Trong khi đó, Sơ đồ Tuần tự sẽ mô tả sự tương tác theo thời gian giữa các đối tượng này để hoàn thành một giao dịch. Ví dụ, nó sẽ cho thấy UIController gọi một phương thức trong TransactionService (Lớp Nghiệp vụ), sau đó TransactionService gọi các phương thức trong AccountDAO (Lớp Dữ liệu) để lấy và cập nhật thông tin số dư. Việc sử dụng UML giúp các lập trình viên hiểu rõ hơn về cấu trúc tĩnh và hành vi động của hệ thống.

VI. Tương lai hệ thống ATM Kết nối API và Core Banking

Một thiết kế ứng dụng ATM thành công không chỉ đáp ứng các yêu cầu hiện tại mà còn phải có tầm nhìn về tương lai, đặc biệt là khả năng mở rộng và tích hợp. Trong bối cảnh ngân hàng số, máy ATM không còn là một hệ thống độc lập mà là một kênh giao dịch quan trọng trong một hệ sinh thái lớn hơn. Do đó, khả năng kết nối với hệ thống lõi ngân hàng (Core Banking) là yêu cầu bắt buộc. Core Banking là hệ thống trung tâm quản lý tất cả các tài khoản và giao dịch của ngân hàng. Mọi hoạt động trên ATM phải được đồng bộ hóa ngay lập tức và chính xác với hệ thống này. Hướng phát triển trong tương lai là xây dựng các API cho hệ thống ngân hàng. Các API này (Giao diện lập trình ứng dụng) hoạt động như những cổng giao tiếp chuẩn hóa, cho phép ứng dụng ATM và các hệ thống khác (như Mobile Banking, Internet Banking) có thể tương tác với Core Banking một cách an toàn và hiệu quả. Việc đóng gói và triển khai (Packaging and Deployment) ứng dụng trên nền tảng .NET, như được đề cập trong tài liệu, cũng cần được thực hiện theo các quy trình tự động hóa hiện đại để đảm bảo việc nâng cấp và bảo trì hệ thống diễn ra nhanh chóng, giảm thiểu thời gian gián đoạn dịch vụ.

6.1. Tầm quan trọng của việc tích hợp hệ thống lõi ngân hàng

Sự tích hợp chặt chẽ với hệ thống lõi ngân hàng (Core Banking) đảm bảo tính nhất quán dữ liệu trên toàn hệ thống. Khi một khách hàng rút tiền tại ATM, số dư trong tài khoản của họ phải được cập nhật ngay lập tức trên Core Banking. Điều này ngăn chặn các rủi ro như khách hàng có thể rút tiền vượt quá số dư thực tế bằng cách thực hiện giao dịch đồng thời trên nhiều kênh khác nhau. Lớp Truy cập Dữ liệu (DAL) trong kiến trúc N-Tier đóng vai trò là cầu nối đến Core Banking. Thay vì kết nối trực tiếp đến CSDL, trong một hệ thống thực tế, DAL sẽ gọi các API hoặc dịch vụ web do hệ thống Core Banking cung cấp để thực hiện các thao tác dữ liệu. Điều này đảm bảo mọi logic nghiệp vụ phức tạp và các quy tắc bảo mật của ngân hàng đều được tuân thủ.

6.2. Phát triển API cho hệ thống ngân hàng trong tương lai

Việc phát triển API cho hệ thống ngân hàng là một xu hướng tất yếu. Thay vì xây dựng các kết nối riêng lẻ cho từng kênh giao dịch, ngân hàng sẽ xây dựng một bộ API trung tâm cho các chức năng như kiemTraSoDu, chuyenTien, rutTien. Ứng dụng ATM sau đó chỉ cần gọi các API này. Lợi ích của phương pháp này là rất lớn: tái sử dụng logic, giảm thời gian phát triển cho các kênh mới, và dễ dàng quản lý, giám sát và bảo mật các truy cập vào hệ thống lõi. Kiến trúc N-Tier được đề xuất trong tài liệu là một tiền đề rất tốt cho việc áp dụng mô hình dựa trên API, vì Lớp Nghiệp vụ có thể được thiết kế để giao tiếp với các API này một cách dễ dàng.

6.3. Đóng gói và triển khai ứng dụng trên nền tảng .NET

Phần cuối cùng của tài liệu đề cập đến 'Packaging and Deployment' (Đóng gói và Triển khai). Trong một môi trường chuyên nghiệp, quy trình này thường được tự động hóa bằng các công cụ CI/CD (Continuous Integration/Continuous Deployment). Đối với một ứng dụng .NET, quá trình này bao gồm việc biên dịch mã nguồn, chạy các bài kiểm tra tự động, đóng gói các tệp thực thi và thư viện (DLLs) thành một gói cài đặt, và sau đó triển khai gói này lên các máy chủ ATM. Việc sử dụng các thư viện như Microsoft Enterprise Library, như được đề cập, có thể giúp chuẩn hóa các tác vụ như ghi nhật ký, xử lý ngoại lệ và cấu hình, làm cho quá trình triển khai trở nên đáng tin cậy và nhất quán hơn. Một quy trình triển khai hiệu quả là yếu tố quan trọng để đảm bảo hệ thống ATM luôn hoạt động ổn định và được cập nhật các bản vá bảo mật kịp thời.

10/07/2025

Trích đoạn nội dung tài liệu

Design Document For AB-SERVICE [TA Code] Prepared for Deutsche Bank Thursday, July 26, 2012 Version 0.1 Prepared by Pham Trung Hai 27 Revision and Signoff Sheet Change Record Date Author Version Change reference 09/18/2011 Pham Trung Hai 0.1 Create new 10/11/2011 nganptq 0.7 Reviewers Name Version Position Date Nguyen Trung Kien 0.1 QA 08-Sep-2010 Nguyen Minh Tien 0.1 QA 08-Sep-2010 28 Table of Contents 1 Introduction.3 Intended Audiences and Document Organization.4 Acronyms and Abbreviations.1 Application Logical Architecture.1 User case view.3 Data Access Layer.3 Packages/Components view.6 Data Access Object.1 Exception handling mechanism. 37 4 Database design HuyVQ4.1 Entity Relationship Diagram. Main functions ‘s security matrix. 41 7 Details function design.1 Use case 01: Validation – HuyVQ4.2 Use case 02: Withdraw Money - LuyenNV.3 Use case 03: Check Balance – LuyenNV.4 Use case 04: View History – HuyVQ4.5 Use case 05: Cash Transfer – DucNA9.6 Use case 06: Change PIN – DucNA9.7 Use case 07: Logging – HuyVQ4.

88 9 Packaging and Deployment.1 Micrsoft Enterprise library.1 Purpose This document provides a technical approach for implementing ATM application, using a number of different architectural diagráms to view different aspects of the system. It also presents the decisions that will govern how the application will be built from .NET framework with C# programming perspective. This document’s aim is to describe the architecture at high level, in which the system will be described as a set of functional layers, with technologies suggested for each layers.2 Scope This document is prepared for the ATM simulator application in scope of the Assignemtn of FRESHER11.3 Intended Audiences and Document Organization This document is intended for:  Development team: Developers  Customer Representatives: Responsible to review & approve the document. Below are main sections of the document:  Introduction : This section describes the general introduction of this document  Architecture Design : This section describes the high-level technical assessments and decisions for the application.

 Data Design: This section describes in detail how data is structured and manipulated in this application.  Interface Design: This section describes in detail how UI is designed in general ( layout , theme ).  Application Security: This section describles security matrix in detail  Configuration: This section describes all configuration needed for the application to function properly.  Packaging and Deployment: This section describles how applications could be packaged and deployed.4 Acronyms and Abbreviations # Item Description 1 ATM Automated Teller Machine 2 PL Presentation Layer 3 BLL Business Logic Layer 4 DAL Data Access Layer 5 DAO Data Access Object, this object is responsible for attaching to a system, extracting some information, based on specific requirements, and creating a value object.

6 VO Value Object 7 BE Business Entities 31 1.5 References # Title Version File Name / Link Description 1 .NET Project_Software 1.NET Project_Software Design Design Document Document.1: List of References 2 Architecture design 2.1 Application Logical Architecture 1.1 User case view 2.1 Overview The following use cases are required to be to be included in the ATM simulator application 32 2.2 Description UC Name Description UC01 Validation Validate customer card and PIN customer enterred UC02 Withdraw Allow customer to withdraw money UC03 Check balance Allow customer to check their account balance UC04 View history Allow customer to view their succesful transaction UC05 Cash Transfer Allow customer to transfer their cash to another account in accepted bank system UC06 Change PIN Allow customer to change their PIN UC07 Logging System write log 2.2 Architectural Representation The following diagram shows the primary tiers in the proposed n-tier architecture. This diagram shows the main layers in this architecture and the vision of how they fit together. 33 Figure 1 – N-tier architecture of ATM simulator system 2.1 Presentation Layer This layer controls the display to the end user. The development framework is based on .NET Model architecture.

The framework is responsible for:  Managing requests/responses from/to the clients.  Controlling display to the end user.  Performing UI validation.  Handling exceptions from other layers.2 Business Layer This layer manages the business processing rules and logic.

 Handling application business logic and business validation.  Allowing interfaces for interaction with other layers.  Managing dependencies between business level objects.  Adding flexibility between the presentation and the persistence layer so they do not directly communicate with each other.

34  Exposing a context to the business layer from the presentation layer to obtain business services.  Managing implementations from the business logic to the persistence layer.3 Data Access Layer This layer manages access to persistent storage. The primary reason to separate data access from the rest of the application is that it is easier to switch data sources and share Data Access Objects (DAOs) between applications. This layer manages reading, writing, updating, and deleting stored data.3 Packages/Components view Figure 2 – Packages/Component view of ATM simulator system 2.4 UI Components This package includes the implementation for the .NET architecture proposed to be used in the Presentation Layer to handle the display to the end user.

Validation: All validation of incoming requests parameters to the server should be validated using .NET client side control .5 Business Entities This package includes the implementation of business objects. Business Entities (BE) layer is used to perform the business operations. The Business Entities layer will access the DAO to access database. Transactions should be managed within this business layer.6 Data Access Object This package includes the implementation of Data Access Object.

Using Linq to SQL classes here to make the application more flexible to access database. Linq to SQL classes includes basic functions to work with database: select, insert, update, delete.7 Exceptions Lib This package will include all general exceptions that will typically used by more than one package. The try- catch clauses should be kept to a minimum.8 General Lib This package includes all utilities .NET classes will be wisely used in the modules.9 Logging Lib This package includes implemented logging classes. 36 Screen Design & Data Description SC 01 : Screen list the time criterias to customer to choose Item Type Description button Set TimeCriteria = Current Date – 7 day button Set TimeCriteria = Current Date – 30 day button Set TimeCriteria = Current Date – 120 day button Set TimeCriteria = Current Date – 180 day button Set TimeCriteria = Current Date – 365 day button Set TimeCriteria = Current Date – 700 day Others button Button Do nothing at this screen 62 SC 02 : Waitted screen when system is searching.

Item Type Description All button Button Do nothing at this screen SC 03 : Screen show search results paged. 63 Item Type Description button Show previous search results paged. button Show next search results paged. Others button Button Do nothing at this screen Activities Flow Figure 4.5:Activities flow of check balance Detail Processing Activit BR Description y Code (3) BR01 Checking rules: 64  Search transaction/ log  Set <<Criteria>> = [Filter Criteria] the customer has chosen.

 System search from database all transaction/ log with:  <<LogStatus>> = [Successful]  <<LogDate>> = <<Criteria.Date>>  <<LogType>> in ([Withdraw], [Transfer], [CheckBalance], [ChangePIN]) (4) BR02 Paging rules  Paging  Set <<NumPerPage>> = [Number records per page] in system configuration.  Paging the search results follow <<NumPerPage>> Class diagram 65 Sequense diagram 7.5 Use case 05: Cash Transfer – DucNA9 Name Cash Transfer Description This use case allows customer transfer cash from his/her account to another account Actor Customer Trigger When user clicked on ‘Cash Transfer’ button at main screen. Pre-condition After validation success, customer enter account and amount of cash which want to transfer. Post-condition Write log into system, decide print receipt (Yes/No) 66 Screen Design & Data Description Screen 01: Main screen when require customer enter account want to transfer cash, show rules of transfer Item Type Description button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Accept rules of transfer cash in ATM button Reject and stop transaction button Do nothing at this screen button Stop transaction button Do nothing at this screen button Do nothing at this screen 67 Screen 02: Display account transfer and receive account Item Type Description button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Accept input of customer button Stop transaction button Clear text in textbox button Submit receive account ID which want to transfer 68 Screen 03: Display information about receive account Item Type Description button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Continue transfer cash button Back to enter receive account ID button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen 69 Screen 04: Display allow customer enter amount which want to transfer Item Type Description button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Accept input of customer button Do nothing at this screen button Clear text in textbox button Submit amount and continue 70 Screen 05: Display screen allow customer confirm transfer cash Item Type Description button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Accept to transfer cash button Reject to transfer cash and back to previous screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen 71 Screen 06: Display screen allow customer choose receive receipt or not Item Type Description button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Accept to receive receipt button Reject to receive receipt button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen 72 Screen 07: Display screen to notice customer that receive account not exist and re-enter account to transfer Item Type Description button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Accept input of customer button Do nothing at this screen button Do nothing at this screen button Continue transaction 73 Screen 08: Display screen to notice customer that his/her account isn’t enough money to transfer and re- enter amount he/she want to transfer Item Type Description button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Do nothing at this screen button Accept input of customer button Do nothing at this screen button Do nothing at this screen button Continue transaction 74 Activities Flow Figure 4.6:Activities flow of Cash transfer 75 Detail Processing Activit BR Description y Code (11) BR01 Check Money  IF <Customer> accept amount have just entered THEN  Get balance of this account and compare with amount he/she want to transfer  IF (Balance > amount) THEN  Continue transaction  ELSE  DISPLAY “Your account not enough money to transfer”  Back to previous screen to enter another amount (18) BR02 Transfer Cash:  IF <Customer> click accept transfer cash THEN  Get amount and balance of send account and receive account  Plus amount to balance of receive account and subtract balance of send account 76

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ