6 Hiện thực và đánh giá thực nghiệm
5.4 Các dịch vụ lõi của phần mềm
Việc định nghĩa các “dịch vụ lõi” sẽ giúp tận dụng được tính kế thừa và giảm bớt cơng sức lập trình, đồng thời đảm bảo được sự nhất quán của hệ thống phần mềm. Các dịch vụ lõi này sẽ giao tiếp trực tiếp với Lớp xử lý dữ liệu Blockchain và gửi giao dịch đến mạng lưới Blockchain để ghi nhận dữ liệu cũng như tương tác với các thực thể của Hợp đồng thông minh. Các dịch vụ lõi sẽ được hiện thực bao gồm:
• Dịch vụ Khởi tạo đối tượng: Dịch vụ này cung cấp các API để các mô-đun phần mềm khác trong hệ thống có thể tạo các đối tượng số trong cơ sở dữ liệu và một thực thể Hợp đồng thơng minh tương ứng. Ví dụ như tạo tài khoản người dùng và lưu trữ thông tin định danh trên Hợp đồng thơng minh, hoặc tạo các đối tượng sản xuất.
• Dịch vụ Khởi tạo mã số: Dịch vụ này là nơi tin cậy để các mô-đun phần mềm khác truy vấn tới để cấp phát mã số định danh cho các đối tượng. Việc này rất quan trọng, vì các yêu cầu xử lý từ phần mềm sẽ mang tính bất đồng bộ, nghĩa là tại cùng một thời điểm có thể có nhiều yêu cầu tạo mã số định danh mới. Bên cạnh đó, việc chênh lệch về thời gian xử lý giữa ứng dụng phần mềm và mạng lưới Blockchain cũng là một nguyên nhân khiến cho mã số
5.3 Ứng dụng phần mềm
định danh có thể trùng nhau. Như đã trình bày ở chương 04, dịch vụ này cần đảm bảo được hệ thống mã số mang tính đơn nhất, có cấu trúc và bảo mật. • Dịch vụ Truy xuất nguồn gốc: Bao gồm các API liên quan tới nghiệp vụ truy
xuất nguồn gốc, ví dụ như API cho việc quản lý vùng sản xuất, đối tượng sản xuất, ghi nhật ký sản xuất và các tác vụ khác liên quan tới tem mã QR. • Dịch vụ Đặt mua trước: Bao gồm các API liên quan tới việc cho phép các
tác nhân trong chuỗi giá trị nơng sản có thể đặt mua trước nơng sản đang trong thời kỳ sản xuất của nông dân.
Ngồi ra, trong phần này cịn mơ tả thiết kế cơ sở dữ liệu tổng quan của toàn bộ ứng dụng phần mềm. Theo một cách đơn giản, tác giả sẽ hiện thực phần mềm để lưu trữ tồn bộ dữ liệu thơ ở các cơ sở dữ liệu truyền thống. Tuy nhiên, song song với việc lưu trữ dữ liệu như cách truyền thống, thì đồng thời sẽ tạo một giao dịch Blockchain lưu trữ bản đối chiếu của các dữ liệu đó.
Bản đối chiếu dữ liệu này thực chất là giá trị băm, được tạo ra thông qua việc dùng hàm băm trên dữ liệu gốc. Tính chất của hàm băm đảo bảo rằng bất kỳ thay đổi dù là nhỏ nhất trên dữ liệu gốc đều dẫn tới thay đổi hoàn toàn giá trị băm. Giá trị băm này có độ dài cố định (tùy vào thuật tốn băm, nhưng thơng thường là khoảng vài chục ký tự), khơng thể đốn trước và khơng thể xác định dữ liệu gốc từ giá trị băm. Các tính chất trên giúp cho giá trị băm trở thành một bản đối chiếu phù hợp để lưu giữ trên Blockchain. Tiết kiệm chi phí nhưng đủ mạnh để phát thiện nếu dữ liệu gốc bị thay đổi (thông qua việc đối chiếu các giá trị băm).
Để lưu trữ dữ liệu gốc, giải pháp phần mềm sẽ sử dụng cơ sở dữ liệu mongoDB. Do việc lưu trữ dữ liệu trên hệ thống Blockchain là bản đối chiếu của dữ liệu trong cơ sở dữ liệu mongoDB nên các mơ hình giữa hai thành phần hợp đồng thơng minh và cơ sở dữ liệu truyền thống sẽ có nhiều nét tương đồng. Cụ thể, thiết kế mơ hình của cơ sở dữ liệu này như hình 5.5:
5.3 Ứng dụng phần mềm