Giả sử đặc tả ộ được biểu diễn trong ngôn ngữ logic L. Để đạt được một hệ thống tính
toán cụ thể từ đặc tả ộ này,ta phải coi đỏ là đặc tả có thể thực thi được, và phiên dịch
đặc tả trực tiếp để tạo ra hành vi của agent. Việc phiên dịch một đặc tả agent có thể được coi là một loại chứng minh suy diễn, nhờ đó ta chỉ ra rằng đặc tả có thể thỏa mãn bằng cách xây dựng một mô hình (theo nghĩa logic) cho nó. Nếu các mô hình cho ngôn ngữ đặc tả L có thể đưa ra một biểu diễn tính toán được, thì việc xây dựng mô hình có thể coi là thực thi đặc tả. Để cụ thể hơn, ta xem xét ngôn ngữ lập trình Concurrent MetateM[88]. Trong ngôn ngữ này,agent được cài đặt bằng cách đặc tả hành vi cua chúng sử dụng temporal logic; sau đỏ đặc tả này được thực thi trực tiếp để tạo ra hành vi của mồi agent. Các mô hình cho temporal logic mà ở đó các Concurrent MetateM
、 Ằ
Trần Thị M ai Thương,K11T1 81 Luận văn thạc sỹ
agent được đặc tả là chuỗi các trạng thái rời rạc tuyến tính: thực thi một đặc tả Concurrent MetateM agent do đó là một quá trình xây dựng chuỗi trạng thái. Chuỗi các
雩 、 ,
trạng thái đỏ có thê được xem là lân vêt quá trình thực thi chương trình.
Chú ý răng việc thực thi đặc tả Concurrent MetateM agent là cơ bản bời vì các mô hình dựa trên Concuưent MetateM temporal logic là tương đối đơn giản. Tuy nhiên, các ngôn ngữ đặc tả agent nói chung là dựa trên logic rất phức tạp. Cụ thể, chúng thường dựa trên framework ngữ nghĩa (còn được gọi là possible world).
b) Biên dịch cảc đặc tả agent
Một cách tiếp cận khác cho việc thực thi đặc tả là biên dịch đặc tả. Tư tưởng của nó là
y 9 t
chuyên từ đặc tả trừu tượng sang một mô hình tính toán cụ thê qua quá trình tông hợp tự động. Cách tiếp cận này ưu việt hom thực thi trực tiếp ở hiệu quả thời gian chạy. Thực thi trực tiếp một đặc tả agent như trong Concurrent MetateM liên quan đến việc xử lý các biêu diên ký hiệu của đặc tả vào thời gian chạy. Việc xử lí này nói chung rât tốn kém. Cách tiếp cận biên dịch nhằm làm giảm bớt đặc tả ký pháp trừu tượng sang mô hình tính toán đơn giản hơn, không chứa các biểu diễn trừu tượng. Việc xử lí ký pháp trừu tượng do đó được thực hiện off-line, vào thời gian biên dịch; việc thực thi hệ thống đã biên dịch sau đó có thể được thực hiện dễ dàng hơn.
Cách tiếp cận biên dịch thường phụ thuộc vào mối quan hệ giữa các mô hình temporal logic và các máy trạng thái tự động. Cách tiếp cận chung cho việc tổng hợp tự động, mặc dù về mặt lý thuyết rất hay, nhưng nó bị giới hạn bởi một số lĩnh vực quan trọng. Thứ nhất, khi các ngôn ngữ đặc tả agent trở nên tốn kém hơn, thì ngay cả việc xử lí o ff line cũng trở nên rất tốn kém. Thứ hai,các hệ thống được tổng hợp theo cách này không có khả năng học (vì chúng không có khả năng điều chỉnh vào thời gian chạy). Cuối cùng, các framework đặc tả agent không có biểu diễn tính toán cụ thể, làm cho quá trình tổng hợp tự động là khó khăn.
3.5. K iể m t h ử v à b ả o t r ì
Các k ĩ thuật kiểm chửng cho các hệ thống MAS thường áp dụng các kết quả đã biết từ
\ t t
tính toán phân tán và đông thời. Việc kiêm chứng thông thường dựa trên các lý thuyêt hình thức, cho phép xác định liệu hệ thống có thoả mãn các đặc tả ban đầu, do đó câu trả lời cho câu hỏi là hệ thống có được xây dựng đúng đắn hay không? Khi thuộc tính đảm bảo rằng ứng dụng thoả mãn các yêu cầu người dùng, đó là ám chỉ đến thuật ngữ validation. Testing, mặt khác, thường được định nghĩa như là hoạt động tìm các lỗi trong cài đặt cuối cùng của hệ thống. Có rất nhiều cách tiếp cận sử dụng các phương pháp đã có cho việc kiểm thử và bảo trì hệ thống agent, nhưng nỏ không đạt được hiệu quả do không kiểm tra được hết đặc tính của agent, vấn đề là ờ chỗ, việc kiểm định và
phải tạo ra các cách tiếp cận mới để giải quyết vấn đề này.
Có hai cách tiếp cận cho vấn đề kiểm chứng các hệ thống hướng agent và MAS là: (l)axiom atic (tiên đề) và (2) semantic _ ngữ nghĩa (model checking).
, 7 \ f 9
Cách tiêp cận axiomatic cho kiêm chứng chương trình được Hoare đê xuât vào cuôi những năm 1960 [82]. Việc kiểm chửng tiên đề yêu cầu, phải có chương trình cụ thể,
9 9 •
từ chương trình này tạo ra được lý thuyêt logic biêu diên hành v i của hệ thông. Lý thuyết này gọi là lý thuyết chương trình (program theory). Nếu như lý thuyết chương trình được biểu diễn bằng ngôn ngữ của phần đặc tả ban đầu, thì vấn đề kiểm chứng trở thành vấn đề chứng minh: chỉ ra rằng đặc tả là định lý đã được chứng minh của lý thuyết chương trinh.
Việc phát triển lý thuyết chương trình được thực hiện bằng cách tiên đề hoá ngôn ngữ cài đặt hệ thống. Ví dụ, trong logic của Hoare thì mỗi kiểu câu lệnh chương trình được tiên đề hoá bởi một hoặc nhiều tiên đề trong ngôn ngữ đơn giản tương tự pascal. Dựa
trên việc tiên đề hoá,lý thuyết chương trình có thể suy ra từ văn bản chương trình một
cách hệ thống.
Có lẽ xu hướng phát triển chính trong khoa học máy tính trong việc đặc tả và kiểm chứng chứng các hệ thống phản ứng là sử dụng temporal logic (Pnueli, et al, [84]). Quá
r 9
trình tính toán các hệ thông phản ứng cỏ thê coi ià một chuôi các hoạt động không xác định tương ứng với các mô hình logic tuyến tính. Temporal logic có thể được sử dụng để phát triển một đặc tả và tiên đề hoá ngôn ngữ lập trình. Việc tiên đề hoá này có thể được sử dụng để tạo ra lý thuyết chương trình từ văn bản chương trình. Sau đó, cả phần đặc tả cũng như lý thuyết chương trình được mã hoá trong temporal logic,và vấn đề
kiểm chứng trở thành việc chứng minh trong temporal logic.
Có tương đối ít công việc được thực thi trong các hệ thống dựa trên agent qua việc tiên đề hoá các môi trường đa agent. Ở đây, luận văn chỉ đề cập một cách tiếp cận do [Wooldridge, 1992] đưa ra. Tư tưởng chính của nó là sử dụng temporal belief logic để tiên đề hoá thuộc tính của hai ngôn ngữ lập trình đa agent. Dựa trên khả năng tiên đề hoá này ta sẽ xây dựng được lý thuyết chương trình của hệ thống. Temporal belief logic được sử dụng là bởi vì. Thứ nhất, thành phần temporal được yêu cầu vì ta phải nắm bắt được những hoạt động diễn ra liên tục của hệ thống. Thứ hai, thành phần
% r t
belief được yêu câu vì các agent chúng ta muôn đặc tả là các hệ thông lập luận dựa trên ký hiệu, bao gồm một biểu diễn về môi trường và các hành vi mong muốn. Thành phần belief trong logic cho phép ta năm băt các biêu diên ký hiệu bên trong agent. Hai ngôn ngữ lập trình đa agent được tiên đề hoá trong temporal belief logic là AgentO của Shoham va Current MetaM của Fisher. Cách tiếp cận này dựa trên các hoạt động của
Trần Thị M al Thương,K11T1 83 Luận văn thạc sỹ
agent đủ đơn giản để các thuộc tính của chúng có thể biểu diễn được trong logic. Nó làm việc được với AgentO và Current MetaM là vì các ngôn ngữ này cũng có ngữ nghĩa đơn giản. Nhưng nói chung, đối với các agent phức tạp hơn, việc nắm bắt ngữ nghĩa của thực thi agent là không dễ dàng.
Rõ ràng rằng, cách tiếp cận dựa trên tiên đề hoá gặp phải hạn chế do những khó khăn trong việc chứng minh, Đê khăc phục điêu này, một cách tiêp cận thành công hơn cho kiểm thử các hệ thống agent là sử đụng model checking. K ĩ thuật kiểm chứng dựa trên model checking được nghiên cứu cùng với temporal logic và các máy trạng thái xác
% ể
định. Giả sử răng ộ là đặc tả của hệ thông, và n là một chương trình cài đặt đặc tả ộ. Sau đó, để xác định liệu n cỏ cài đặt ộ đúng đắn hay không, thì chúng ta tạo ra mô
hình Mựị tương ứng với IQ,theo nghĩa này thì M|-ị mã hóa tất cả các khả năng cỏ thể
xảy ra của n . Và xác định liệu công thức đặc tả ộ có đúng trong M f] hay không; nghĩa là chương trình n cỏ thỏa mãn đặc tả ộ hay không thì câu trả lời phải là “ yes” . Ưu điểm của model checking so với kiểm chứng dựa trên tiên đề hóa là ở tính phức tạp; model checking sử dụng branching time temporal logic CTL[83] được thực hiện trong thời gian đa thức, trong khi đỏ hầu hết những vấn đề chứng minh cho model logic là khá phức tạp.
Trong [87], Rao và George đã đưa ra một thuật toán cho việc kiểm chửng các hệ thống agent sử dụng k ĩ thuật model checking. Cụ thể, họ đã đưa ra một thuật toán tạo ra một mô hình logic cho ngôn ngữ đặc tả agent BDI của họ, và một công thức cho ngôn ngữ cài đặt, và sau đó xác định liệu công thức có đúng trong mô hình đó hay không. K ĩ thuật này chủ yếu dựa trên các thuật toán model checking cho modal logic thông thường. Tuy nhiên, thuật toán không đưa ra mối quan hệ cụ thể giữa logic BDI và các mô hình tính toán cụ thể được sử đụng để cài đặt agent,và nó cũng không chỉ ra rõ ràng mô hình đỏ được tạo ra như thế nào.
3 .6 . T ổ n g k ế t
Chương này đã trình bày tổng quan về k ĩ nghệ phần mềm hướng agent, đồng thời cũng chỉ ra một số lĩnh vực áp dụng mà ở đó giải pháp agent là thích hợp. Điều đó rất có ích
cho những người tham gia vào quá trình phát triền ứng dụng sử dụng công nghệ agent,
bời nó sẽ tránh được các sai lầm thường mắc phải khi tiếp cận với một công nghệ mới như công nghệ agent.
Ngoài ra,chương này cũng trình bày một sô phương pháp phân tích và thiêt kê hướng agent hiện hành. Những thiết kế này bao phủ một phạm vi rộng lớn các cách tiếp cận từ sử dụng logic hình thức cho các phương pháp hình thức như z cho đến các phương pháp đặc tả sử dụng các ký pháp đồ họa như Agent ƯML và MaSE.
về platform cũng như framework chung cho việc cài đặt các ứng dụng agent. Điều này dẫn đến khó khăn khi người thiết kế quyết định chuyển sang framework thực thi khác thì họ sẽ gặp phải các vấn đề khó khăn trong việc chuyển đổi. Hiện nay đã có rất nhiều nỗ lực trong việc chuẩn hóa các môi trường, công cụ phát triển, các platform mà FIPA là tổ chửc đi đầu trong lĩnh vực này.
Như vậy có thể nói, chương này một phần nào đã lý giải được tại sao công nghệ agent là một k ĩ thuật quan trọng cho k ĩ nghệ phần mềm, và cũng là một trong những k ĩ thuật hỗ trợ cho đặc tả, phân tích, thiết kế, cài đặt và kiểm thử agent. K ĩ nghệ phần mềm hướng agent đang ở giai đoạn đầu của quá trình phát triển, và chưa được chấp nhận rộng rãi trong công nghiệp phần mềm. Nhưng trong tương lai không xa, khi công nghệ agent được sử dụng rộng rãi thì việc đâu tư vào nghiên cứu k ĩ nghệ phân mêm là cân thiết.
C H Ư Ơ N G 4
CÀI Đ Ặ T T H Ử NGHIỆM
4 .1 . L ĩn h v ự c t h ử n g h iệ m
Đáp ứng những đòi hỏi của việc tìm kiếm thông tin trong sự tăng trường ồ ạt của dữ liệu ngày nay, nhiều công nghệ phân tích dữ liệu đã trở thành sản phẩm thương mại. Các tổ chức (như Google, yahoo, msn,...) đang toan tính rút ngắn khoảng cách giữa các hệ thông lưu trữ mạnh và khả năng phân tích hiệu quả dữ liệu lưu trữ trên chúng nhằm đáp ứng nhu cầu của các doanh nghiệp. Phần nhiều các thông tin trên Internet ngày nay luôn sẵn cỏ đối với người dùng thông qua các phương tiện thông tin như: mailing list, distribution list,bulletin board, và World Wide Web. Tuy nhiên, những công cụ hiện đại mới đáp ứng được phần nào các yêu cầu
ệ
tìm kiêm đơn giản và người dùng đang bị quá tải với lượng thông tin trên web. Và phải mất rất nhiều công sức mới đến được thông tin thực sự cần thiết. Một vấn đề nảy sinh cần giải quyết là: Làm sao để người dùng mau chóng đến được các thông tin mà họ quan tâm, tránh phải đọc quá nhiều các dữ liệu không cần thiết mà họ nhận được khi tìm kiếm.
Để đáp ứng nhu cầu của các cá nhân, tổ chức trong việc nghiên cứu thị trường, nắm bắt các thông tin liên lạc của các công ty liên quan đến lĩnh vực người dùng
t ạ
quan tâm. Luận văn tiên hành cài đặt thử nghiệm một hệ thông trích chọn thông tin đặc thù trên web (cụ thê là tìm kiêm thông tin vê địa chỉ liên lạc, thông tin cá nhân của các nhà quản lí thuộc các công ty kinh doanh), phân nào đáp ứng được nhu
、 . , : 而 ‘
câu câp thiêt của lĩnh vực kinh doanh thương mại. Thêm vào đó, luận văn cũng đóng góp vào cộng đông phân mêm một công cụ tìm kiêm thông minh, mang đên cho người dùng những thông tin có lợi trong một thời gian ngắn nhất thông qua việc áp dụng công nghệ agent. Không chỉ dừng lại ờ đó, mặc dù thử nghiệm được ứng dụng trong các hoạt động của các cá nhân, tổ chức kinh doanh. Nhưng việc cài đặt thử nghiệm này cũng phần nào chứng minh được lợi ích tiềm năng của việc
tiếp cận mới trong phát triển các hệ thống hoạt động trong môi trường luôn biến động như môi trường Internet.
4 .2 . M ụ c tiê u
Sự cài đặt thành công ứng dụng trích chọn thông tin sử đụng công nghệ agent sẽ góp phần nêu lên được vai trò và tầm quan trọng của công nghệ agent trong k ĩ nghệ phần mềm nói chung, và trong việc phát triển các hệ thống phân tán, phức tạp nói riêng. Đây cũng sẽ là một cơ sở bước đầu để chứng minh rằng cách tiếp cận này là đúng đắn và có tính khả thi. Thêm vào đó, luận văn cũng có mong muốn góp phần vào thúc đẩy hướng nghiên cứu agent,những tác động của nó lên
f J)
các lĩnh vực của đời sông xã hội và phát triên các ứng dụng hướng agent trong tương lai ờ Việt Nam, một lĩnh vực còn tương đối mới mẻ và còn nhiều tranh cãi.
4.3. Thử nghiệm phát triển phần mềm hướng agent
4.3.1. Nội dung thử nghiệm
• ••• ::: ĩ . ỵ - :
- Xây dựng hệ thông trích chọn thông tin trên Web sử dụng công nghệ agent,
hoạt động như một ứng dụng độc lập trên môi trường Wiftdow 2000,
Window XP, Window 2003. Hỗ trợ cho người đùng tìm kiếm các thông tin về địa chỉ công ty cũng như các thông tin cá nhân liên quan đến người quản lý của tô chức, hoặc công ty đó với thời gian ngăn nhât và kêt quả có độ chính xác cao nhất.
4.3.2. Phương pháp phát triển
Trong phần thử nghiệm này, tôi sử dụng phương pháp Prometheus cho phát triển phần mềm hướng agent như đã đề cập trong chương 3. Có rất nhiều phương pháp phát triển phần mềm hướng agent, nhưng qua quá trình nghiên cứu tìm hiểu tôi thấy đây là phương pháp phù hợp nhất cho phát triển hệ thống của tội.
Đây là một phương pháp gần với thực tế cài đặt hơn các phương pháp khác, đồng
, ệ / f
thời nó cũng đã được kiêm nghiệm trên thực tê với những kêt quả khá tôt. Phương
Trần T hị M a i T hư ơng,K ll T I 88 L u ậ n văn th ạ c s ĩ
pháp này hỗ trợ một quá trình từ đầu đến cuối (bao gồm đặc tả, phân tích thiết kế, cài đặt và kiểm thử).
Một trong những ưu điểm của phương pháp này là số lượng nơi có thể sử dụng các công cụ tự động hóa trong việc kiểm tra chéo các chế tác khác nhau của quá trình thiết kế. Ví dụ, các sự kiện vào và ra của một agent phải là một trên sơ đồ tổng