Ứng dụng Công nghệ phần mềm hướng tác tử trong Thương mại điện tử (Phần 1)

Để đáp ứng yêu cầu ngày càng cao về công nghệ thông tin trong mọi lĩnh vực thì những đòi hỏi về công nghệ phần mềm ngày càng rất lớn. Hai xu hướng phát triền công nghệ phần mềm hiện nay là công nghệ phần mềm hướng mô hình và công nghệ phần mềm hướng tác tử.

Nếu chúng ta đã quá quen thuộc với công nghệ phần mềm hướng mô hình - là một cách thiết kế phần mềm tiếp cận việc phát triển của hệ thống phần mềm dựa trên các mô hình, thì lại ít người biết đến công nghệ phần mềm hướng tác tử, chủ yếu được ứng dụng trong thương mại điện tử.

Bài viết này tìm hiểu về công nghệ phần mềm hướng tác tử và việc ứng dụng công nghệ phần mềm này trong thương mại điện tử như thế nào.

Phần 1: Công nghệ phần mềm hướng tác tử

1. Khái niệm tác tử

Có rất nhiều định nghĩa khác nhau, thậm chí mâu thuẫn, về tác tử. Theo một định nghĩa thường được sử dụng, tác tử (agent) là hệ thống tính toán hoạt động tự chủ trong một môi trường nào đó, có khả năng cảm nhận môi trường và tác động vào môi trường.

1.png

Có thể hiểu định nghĩa trên như sau: Hệ thống tính toán có thể là phần cứng, phần mềm, hoặc cả phần cứng lẫn phần mềm. Bất cứ tác tử nào cũng tồn tại và hoạt động trong một môi trường nhất định. Tác tử nhận thông tin từ môi trường qua các cơ quan cảm nhận và tác động vào môi trường bằng các cơ quan tác động.

2. Kiến trúc của tác tử

2.png

Từ hình trên ta thấy, tác tử nhận thông tin từ môi trường (bao gồm thông tin từ các tác tử khác) thông qua cơ quan cảm nhận. Nhờ có cơ chế ra quyết định, tác tử lựa chọn hành động cần thực hiện. Quá trình ra quyết định có thể sử dụng thông tin về trạng thái bên trong của tác tử. Trong trường hợp đó, tác tử lưu trữ trạng thái dưới dạng những cấu trúc dữ liệu riêng. Hành động do cơ chế ra quyết định lựa chọn sau đó được tác tử thực hiện thông qua cơ quan tác động.

3. Công nghệ phần mềm hướng tác tử

3.1. Phần mềm hướng tác tử là gì?

Hiện nay, có rất nhiều cuộc tranh luận đang xảy ra xung quanh định nghĩa chính xác về cái gì tạo thành một tác tử, nhưng vẫn chưa có một sự nhất trí hoàn toàn nào. Tuy nhiên, các nhà nghiên cứu tìm ra sự mô tả đặc điểm hữu ích sau: “Một tác tử là một hệ thống máy tính được đóng gói và đặt trong một vài môi trường và có khả năng hành động mềm dẻo, tự trị trong môi trường đó để đạt được các mục tiêu thiết kế của nó”.

Có một số vấn đề định nghĩa này cần giải thích rõ hơn. Các tác tử là:

  • Các thực thể có thể nhận dạng rõ ràng của bài toán đang được giải quyết với các giao diện và ranh giới rõ ràng,
  • Được đặt trong một môi trường cụ thể - chúng nhận các đầu vào từ trạng thái của môi trường thông qua các bộ cảm nhận của chúng và tác động lên môi trường thông qua cơ quan cảm ứng của chúng;
  • Được thiết kế để thực hiện một vai trò cụ thể - chúng có các mục tiêu cụ thể cần đạt đến, có thể rõ ràng hay không rõ ràng trong các tác tử;
  • Tự trị - chúng kiểm soát qua trạng thái trong và các hành vi của chúng;
  • Có khả năng thể hiện hành vi giải quyết vấn đề mềm dẻo (phụ thuộc ngữ cảnh) - chúng cần reactive (có thể phản ứng ngay lập tức với những thay đổi của môi trường để thoả mãn các mục tiêu thiết kế của chúng) và proactive (có khả năng cập nhật các mục đích mới và nắm thế chủ động để thoả mãn mục tiêu thiết kế của chúng).

Trong hầu hết các trường hợp, các tác tử hành động để đạt đến mục tiêu đại diện cho các thành phần riêng lẻ hay các hệ thống. Vì vậy, khi các tác tử tương tác, thường có một số ngữ cảnh cơ bản thuộc tổ chức. Ngữ cảnh này trợ giúp việc định nghĩa tính chất của mối quan hệ giữa các tác tử.

Ví dụ, chúng có thể hoạt động ngang hàng trong một nhóm, một tác tử có thể là ông chủ của các tác tử khác, hoặc chúng có thể được bao hàm trong một loạt các mối quan hệ chủ - tớ. Để giành được các liên kết đó, các hệ thống tác tử thường có cấu trúc rõ ràng cho việc mô hình các mối quan hệ tổ chức (chẳng hạn như peer, boss...) và các cấu trúc tổ chức (chẳng hạn như là teams, groups...). Lưu ý rằng trong nhiều trường hợp, các mối quan hệ này có thể thay đổi trong khi hệ thống hoạt động.

3.png

Bằng cách vẽ các vấn đề trên cùng nhau, ta có thể thấy việc chấp nhận một hướng tiếp cận hướng tác tử với công nghệ phần mềm có nghĩa là việc phân rã bài toán thành nhiều thành phần tương tác và tự trị (tác tử) mà có các mục tiêu cụ thể đạt tới.

3.2. Vòng đời phần mềm hướng tác tử

  • Đặc tả (Specification)

Theo cách nhìn các tác tử như trên, cách tiếp cận nổi bật để đặc tả các tác tử bao gồm cả việc xử lý chúng như là các hệ thống có mục đích có thể được hiểu bằng cách quy cho chúng các trạng thái tri thức chẳng hạn như lòng tin, mong muốn và mục đích. Dựa vào ý tưởng này, một số cách tiếp cận cho việc đặc tả một cách hình thức các tác tử đã được phát triển, có khả năng thể hiện các hướng sau đây của một hệ thống tác tử:

Beliefs: thông tin mà các tác tử có về môi trường xung quanh nó, có thể không đầy đủ hoặc không chính xác;

Goals: là các mục đích mà các tác tử cố gắng đạt đến;

Action: các hành động mà các tác tử thực hiện và các ảnh hưởng của các hành động đó;

Ongoing interaction: cách mà tác tử tương tác với các tác tử khác trong môi trường của chúng qua thời gian.

  • Thực hiện (Implementation)

Một khi đã có một đặc tả, ta phải thực hiện một hệ thống đúng đắn với đặc tả này. Vấn đề tiếp theo là sự chuyển đổi từ một đặc tả trừu tượng sang một hệ thống tính toán cụ thể. Các kỹ thuật bao gồm:

Làm mịn (Refinement)

Hầu hết các nhà phát triển phần mềm sử dụng các kỹ thuật cấu trúc không chính thức để chuyển các đặc tả thành các thực hiện cụ thể. Hầu hết các kỹ thuật được ứng dụng rộng rãi dựa vào ý tưởng làm mịn top-down.

Trong cách tiếp cận này, một đặc tả hệ thống trừu tượng được làm mịn thành các đặc tả hệ thống con nhỏ hơn và ít trừu tượng hơn mà cùng nhau thoả mãn đặc tả ban đầu. Nếu các hệ thống con này vẫn còn quá trừu tượng cho việc thực hiện trực tiếp thì chúng vẫn tiếp tục được làm mịn.

Thực hiện trực tiếp các đặc tả tác tử

Giả sử rằng chúng ta có một đặc tả hệ thống ∅ được biểu diễn trong một số ngôn ngữ logic L. Một cách để đạt được một hệ thống cụ thể từ ∅ là coi nó như là một đặc tả có thể thực hiện được, và thông dịch đặc tả một cách trực tiếp để tạo ra hành vi của tác tử.

Biên dịch các đặc tả tác tử

Một sự thay đổi cho việc thực hiện trực tiếp là sự biên dịch (compilation). Theo ý đồ này, ta biết được đặc tả trừu tượng và chuyển đổi chúng thành một mô hình tính toán cụ thể qua một số quá trình tổng hợp tự động.

Xác minh

Khi phát triển một hệ thống cụ thể, ta cần phải chỉ ra rằng hệ thống này là đúng đắn với những gì đã có trong đặc tả ban đầu. Quá trình này được gọi là sự xác minh. Các hướng tiếp cận theo sự xác minh của các hệ thống là: (1) axiomatic và (2) sematic (kiểm tra mô hình).

(Còn tiếp...)

Các định nghĩa trích từ Giáo trình Công nghệ phần mềm hướng tác tử 2006, NXB Khoa học và Kỹ Thuật, Lê Tấn Hùng, Từ Minh Phương, Huỳnh Quyết Thắng.