đối tượng, chuẩn bị cho sự xuất hiện của một quan điểm lập trình mới hơn, gần gũi hơn nữa với sự suy nghĩ của con người - Phương pháp lập trình hướng Agent.Luận văn "Phân tích thiết k ế
Trang 1LÊ TRƯỜNG THIÊN
Trang 2CH Ư Ơ NG IV T R IỂ N K H A I 32
IV l M ẫu thiết k ế .32
IV.1.1 Proxy P a tte r n 33
IV 1.2 Rem ote P ro x y 35
IV 1.3 Visitor P a tte rn 36
IV.2 Ngôn ngữ lập t r ì n h 37
IV.3 Kiên trú c hệ th ố n g 39
IV.3.1 R egistry A gent 41
IV.3.2 Đ ảng ký bằng hợp đồng (contractual re g istra tio n ) 42
IV.4 Tương tác giữa các A g e n t 46
IV.4.1 Ja v a Rem ote M ethod Invocation 46
IV.4.2 M obile O bject .48
IV.4.3 Tương tác thông qua các biểu hiện (p erfo rm ativ e) 49
IV.4.4 O ntology . 53
IV.5 D uyệt lại yêu c ầ u 61
K Ế T L U Ậ N 63
T À I L IỆ U t h a m k h ả o .66
L uận văn tốt nghiệp cao học
Trang 3MỎ ĐẦU
Hiện nay, thời đại thông tin điện tử đang thay đổi đáng kể Trong nhiều năm qua, m ôi trường liên mạng ngày càng phát triển như Internet khiến cho thông tin điện tử ngày càng phong phú và đa dạng Trước đây, thông tin trên máy tính chủ yếu ở dạng văn bản, nhưng nay những thông tin đó đã tồn tại ở nhiều dạng khác nhau: đổ hoạ hai chiều, đồ hoạ ba chiều, âm thanh, hình ảnh Khái niệm về không gian thông tin đa phương tiện toàn cầu bắt đầu phổ biến.
Tuy nhiên, để có thể sử dụng khối lượng thông tin lớn đó một cách hiệu quả, một số vấn đề cơ bản cần đặt ra cho người sử dụng là: thông tin sẽ được tổ chức và quản ỉý như thế nào và do đó việc duyệt và tìm kiếm trên những thông tin đó được thực hiện như thế nào? [8].
Khi ngày càng nhiều tổ chức, người sử dụng tham gia vào liên mạng thì khối lượng thông tin này sẽ ngày càng lớn Tuy nhiên, số lượng thông tin sẽ tăng lên theo m ột cách không cấu trúc và không dự đoán được, do đó người sử dụng sẽ gặp nhiều khó khăn trong việc duyệt, tìm kiếm và quản lý thông tin cần thiết.
Những công nghệ hiện thời chỉ tập trung vào lĩnh vực tìm kiếm thông tin đơn thuần, và thông tin cần nằm Ưong một lĩnh vực cụ thể chẳng hạn dụng cụ tìm kiếm cho World W ide Web Và những công nghệ này sẽ gặp nhiều khó khăn nếu thông tin là phân tán vì phải luôn luôn trực tuyến, kết hợp nhiều nguồn thông tin khác nhau
Công nghệ agent ra đời giải quyết hoặc hứa hẹn giải quyết được nhiều vấn đề trong đó có những vấn đề trên: vấn đề băng thông trong m ôi trường khách/chủ, kết nối mạng không tin cậy hoặc giúp người dùng lựa chọn được những thông tin đúng đắn dựa trên tri thức và kinh nghiệm Bên cạnh đó, công nghệ A eent còn là một bước tiến triển mạnh của phương pháp lập trình hướng
L uận văn tốỉ nqhiệp cao học
Trang 4đối tượng, chuẩn bị cho sự xuất hiện của một quan điểm lập trình mới hơn, gần gũi hơn nữa với sự suy nghĩ của con người - Phương pháp lập trình hướng Agent.
Luận văn "Phân tích thiết k ế dịch vụ truyền thông trong hệ thống Agent di
động" với mục đích nghiên cứu về công nghệ agent, hy vọng sẽ góp phần nhỏ trong quá trình nghiên cứu phát triển công nghệ Agent ở Việt nam nói riêng
và trên thế giới nói chung.
Luận văn được chia thành 4 chương:
- Chương 1: Giới thiệu các khái niệm cơ sở và mối quan hệ giữa agent với phần mềm như thế nào Chương này phân biệt một số nhận thức về
A gent đang được sử dụng bởi những người dùng khác nhau.
- Chương 2, 3: m ô tả về một số đặc điểm của Agent di động, kiến trúc của một hệ Agent dì động dựa trên quan điểm hướng Agent Chương này phân loại một số Agent có các nhiệm vụ khác nhau cùng hoạt động trong một cấu trúc, các Agent tương tác với nhau như thế nào để giải quyết những vấn đề phức tạp hơn.
- Chương 4: phân tích một số cơ ch ế cần thiết trong việc xây dựng hệ thống Agent di dộng bằng ƯML và ngôn ngữ lập trình Java, tập trung chủ yếu thiết k ế dịch vụ truyền thông trong hệ thống, nhờ đó các Agent
có thể thực hiện truyền thông với nhau.
L u ậ n văn tốt nghiệp cuo học
Trang 5CHƯƠNG I GIỐI THIỆU VỂ AGENT 1.1 Agent là gì ?
D o các cồng việc Agent (tác tử) có thể thực hiện cũng như nhận thức chung của người dùng về Agent rất khác nhau, việc đưa ra một diễn tả hoàn chỉnh về một Agent là tương đối khó Tuy nhiên, theo nghĩa rộng nhất, tất cả các kịch bản sau đây được quy về cổng việc của một Agent (Wooldridge et al., 1995) [12]:
- Khi người dùng đăng nhập hệ thống máy tính, người dùng sẽ được chào đón bởi chương trình trợ giúp cá nhân kỹ thuật số (PDA - Personal Digital Assitant) PDA sẽ đưa ra một tổng kết về các hoạt động xảy ra
từ lần cuối cùng bạn đàng nhập hệ thống PDA đã sắp xếp các thư điện
tử của người dùng theo thứ tự dựa trên tính quan trọng đồng thời thêm các lời chỉ dẫn tham khảo tới các íhư điệnt tử có liên quan Một thư điện
tử từ người giám sát, người giám sát muốn có một cuộc họp để bàn về công việc của người dùng, PDA tự động kiểm tra lịch làm việc của người dùng và đã đàm phán về ngày giờ thích hợp cho cuộc họp với PDA của người giám sát Ngoài ra, PDA cũng đã tự động tìm kiếm các nhóm tin và đưa ra các tin tức phù hợp với nhu cầu của người dùng, hướng sự chú ý của người đùng tới các công việc có liên quan.
- Trong khi người dùng đang soạn thảo một tệp, PDA nhận thấy có một thư điện tử đến Thư điện tử này thông báo rằng bài báo của người dùng
đã được chấp nhận tại một hội thảo nào đó Không cần hỏi, PDA của người dùng tự động sắp xếp và lên k ế hoạch cho việc đi dự hội thảo Trong một khoảng thời gian ngắn, PDA sẽ đưa ra một số các lựa chọn thuận tiện nhất cho người dùng Khi người dùng đã chọn một lựa chọn nào đó, PDA sẽ thay mật người dùng thực hiện kế hoạch tương ứng với
L uận vàn tốt nghiệp cao học
Trang 6đàm phán với PDA của người giám sát hội thảo đó về dữ liệu cần thiết của người dùng) Khi người dùng đang đi đến hội thảo, PDA truyền dữ liệu cần thiết tới nơi tổ chức hội thảo, thông báo cho PDA của người giám sát hội thảo.
Mặc dù một số công nghệ để hỗ trợ cho các hệ thống máy tính phức tạp như trên là chưa tồn tại, nhưng các hướng nghiên cứu đang tập trung vào các vấn
đề này Tuy nhiên, trong các kịch bản trên thì thành phần máy tính chính được gọi là Agent.
Ở mức độ cơ sở và khái niệm, Agent có thể được coi là thực thể có thể thực hiện các công việc thay cho con người Chẳng hạn, chúng ta sẽ đến các đại lý
du lịch và đặt chỗ cho kỳ nghỉ của chúng ta, đại lý du lịch sẽ thay mặt chúng
ta thực hiện các công việc như: tổ chức chi tiết về chuyên bay, đặt phòng ở khách sạn và lo các thủ tục bảo hiểm Chúng ta thấy phiền toái, mệt mỏi khi tự làm m ọi thủ tục trên, nên chúng ta uỷ thác trách nhiệm đó cho một đại lý mà
ta biết họ có thể thực hiện các công việc đó.
Tương tự trong lĩnh vực phần mềm, một Agent là một phần mềm nào đó có khả năng thực hiện công việc thay cho người sử dụng Tuy nhiên có một vài giả thiết đang được đặt ra Trong thế giới thực, chúng ta tin tưởng vào đại lý
du lịch giúp ta đặt chuyến bay, đồng thời chúng ta cũng tin rằng đại lý đu lịch
đó sẽ đặt chuyến bay đúng ngày N ói một cách khác, chúng ta không chỉ uỷ thác niềm tin vào khả nãng hoàn thành công việc của đại lý du lịch mà còn tin rằng họ sẽ thực hiện công việc một cách đúng đắn.
Như vậy, tính hữu dụng của Agent liên quan trực tiếp đến khả năng đáng tin cậy mà A gent sinh ra, và điều này có thể quan trọng hơn chính công việc mà Agent có khả năng thực hiện Các Agent thực hiện các công việc một cách tồi
tệ sẽ không được sử dụng nhiều, vì chúng ta có thể sử dụng dịch vụ của các Agent khác hoặc tự chúng ta thực hiện việc đó.
Luận văn tốt nghiệp cao học
Trang 7tệ sẽ không được sử dụng nhiều, vì chúng ta có thể sử dụng dịch vụ của các Agent khác hoặc tự chúng ta thực hiện việc đó.
1.2 Khái niệm vế Agency
A gency (tác sở) liên quan đến các khái niệm và thuộc tính mà nhờ chúng ta có thể xác định được bản chất và hành vi của Agent Thông thường, người dùng
sẽ tin tưởng và sử dụng Agent có bản chất hoàn chỉnh và hành vi có thể kiểm soát được W ooldridge và Jenings [12] đưa ra hai khái niệm về agency khi mô
tả bản chất và hành vi của agency: Agent yếu (weak agent) và Agent mạnh (strong agent)
Ị.2.1 A g e n t y ế u
M ột A gent được gọi là Agent yếu (weak agent) nếu có những đặc tính sau:
- Tính tự trị: sau khi được khởi tạo, Agent có khả năng hoạt động độc lập vói người dùng Tự Agent phải kiểm soát được mọi hành vi của mình, Agent phải tự quyết định hành động tiếp theo là gì khi một hành động thành công hay thất bại Hơn nữa, Agent phải có khả năng cập nhật trạng thái bên trong, và dựa vào trạng thái đó đưa ra những quyết định hợp lý.
- Khả năng giao tiếp: để có thể thay đổi hoặc truy vấn môi trường hoạt động, một Agent phải có khả năng tương tác với thế giới bên ngoài (Genesereth, M ayfield - 1994), Tuỳ thuộc vào vấn đề Agent cần giải quyết mà sự tương tác này tồn tại ở nhiều mức khác nhau, điển hình là tương tác giữa các Agent, giữa Agent với m ôi trường hoạt động và
A gent với người dùng.
- Khả năng phản ứng: Agent cần có khả năng quan sát môi trường hoạt động và có những phản ứng kịp thời khi m ồi trường thay đổi dựa trên vấn đề cần giải quyết Chẳng hạn, một Agent có thể giám sát hệ thống
L uận văn tố t nghiệp cao học
Trang 8truy vấn hệ thống tệp như thế nào Agent phải nhận thức được về môi trường hoạt động cũng như trạng thái và những thay đổi trong môi trường để có những phản ứng thích hợp.
- Tính chủ động: Agent cần đánh giá trạng thái của môi trường hoạt động
và quyết định thực hiện mục đích như thế nào cho tốt nhất.
1.2.2 A g e n t m ạnh
Agent mạnh có thêm những thuộc tính liên quan về trí tuệ nhân tạo như: tri thức, sự tin tưởng (belief), ý định (intention) và nghĩa vụ (obligation) (theo Shoham, 1993) Những Agent như vậy có thể được coi là một hệ thống có chủ
ý (intentional system ) (Dennett, 1987).
Một hệ thống có chủ ý được mô tả bởi những quan điểm về chủ ý: nghĩa là mô
tả hoạt động của hệ thống bằng cách gán những khái niệm trừu tượng cho hệ thống đó.
Một số thuộc tính khác của Agent
Agent (cả Agent yếu và mạnh) có một số thuộc tính khác như:
- Tính chuyển động: Agent có khả năng di chuyển giữa các mạng để thực hiên công việc.
- Tính hợp lý: giả thiết rằng Agent sẽ không hoạt động theo những cách thức có thể cản trở mục đích của chúng Và giả thiết rằng Agent luôn luôn c ố gắng để hoàn thành mục đích của mình.
- Tính chính xác: Agent không truyền những thông tin sai một cách có chủ ý.
- Tính không xung đột: Agent không mang những mục đích xung đột nhau.
L uận văn tốt nghiệp cao học
Trang 91.3 Một số loạỉ Agent
Ị.3.1 A g e n t tru yền th ố n g
Khái niệm truyền thống về Agent bắt nguồn từ trí tuệ nhân tạo Quan điểm truyền thống coi Agent là một hệ thống: đầu vào là dữ liệu về môi trường hoạt động, hệ thống thực hiện những suy diễn trên dữ liệu đó và đưa ra những kết qủa.
Mục đích của cùng của Agent trí tuệ nhân tạo là cung cấp trí tuệ và khả năng suy luận giốn g như con người Tuy nhiên, do những khó khăn trong việc thu thập và m ô tả chất lượng của trí tuệ, Agent được coi như một phương tiện thể hiện những đặc tính mong muốn của trí tuệ nhân tạo.
Kiến trúc trí tuệ nhân tạo truyền thống dựa trên những triết ỉý sau:
- Tính tượng trưng: thu nhỏ thế giới về các biểu tượng mà ta có thể nhận thức được Các biểu tượng đó có thể kết hợp với nhau tạo nên những cấu trúc, nhờ đó các quá trình có thể được thực hiện để điều khiển các biểu tượng theo những tập lệnh có sẵn Những quyết định về hành động cần thực hiện được thực hiện theo suy luân logic dựa trên những phương pháp như đối sánh mẫu, thao tác ký hiệu
- Tính phản ứng lại (reactive): Vấn đề chính của kiến trúc trên là năng lực
xử lý cần thiết để phân tích thông tin về thế giới thực, lập những giải pháp phù hợp và thực hiện những hành động được chọn Vấn đề này làm tiền đề cho sự ra đời của một kiến trúc mới - kiến trúc phản ứng lại Kiến trúc này không biểu diễn thế giới thực bằng những ký hiệu, do đó không cần đến những phép suy luận dựa trên ký hiệu Kiến trúc này phân cấp những hành vi dùng để thực hiện công việc Các hành vi cạnh tranh lẫn nhau để chi phối đến hành động của Agent ở cấp thấp là những hành vi nguyên thuỷ, ở cấp cao hơn là những hành vi trừu tượng.
Luận văn tốt nghiệp cuo học
Trang 101.3.2 A g e n tg ìa o d iện
Agent giao diện trợ giúp người dùng trong bất kỳ công việc gì (Maes, 1994):
có thể là cung cấp những hiểu biết trong nhữnh trường hợp cụ thể hoặc cung cấp những tư ỉiệu thay thế cho một lĩnh vực nào đó.
Ị 3.3, A g e n t th ô n g tin
Agent thông tin là Agent có thể truy cập một số tài nguyên thông tin và có khả năng thu thập và xử lý những thông tin đó Agent này có thể thực hiện truyền thông qua mạng máy tính để định vị những tài nguyên thông tin.
Chất lượng của một Agent thông tin được đánh giá thông qua khả năng giao tiếp với một phạm vi tài nguyên thông tin rộng, khối lượng thông tin được xử
lý để có thể cung cấp kết quả chính xác cho người dùng.
L3.4 A g en tp h â n tán
Agent phân tán thường được gọi là hệ thống đa Agent (multi-agent system) Trong hệ thống này vấn đề cần giải quyết thường được chia thành các vấn đề nhỏ, mỗi vấn đề nhỏ được giải quyết bởi các Agent, sự hợp tác giữa các Agent
sẽ giải quyết được vấn đề đặt ra.
- K ế t h ợ p h a i k i ế n t r ú c t r ê n
Luận văn tốt nghiệp cao học
Trang 11CHƯƠNG II HỆ THỐNG AGENT DI ĐỘNGI ■
Hệ thống RPC của Sun M icrosystems đã cố gắng loại bỏ những gánh nặng này cho người lập trình Với hệ thống này, máy khách có thể yêu cầu những địch vụ của máy chủ được thực hiện trên phía máy chủ giống như việc thực hiện trên phía máy khách Trong hệ thống này, vị trí của máy chủ, sự khởi tạo các dịch vụ và việc truyền các kết quả trả vể là trong suốt đối với máy khách.
Mô hình A gent di động có khả năng giải quyết được các vấn đề nói trên Những đặc điểm điển hình của Agent di động là khả năne di chuyển được, tính tự trị trong hành động, trao đổi điểm điểm (peer to peer) và có khả năng
xử lý độc lập với mạng và vị trí ban đầu.
Tính chuyển động là một đặc điểm mong muốn của Agent vì một số lý do sau:
- Hiệu quả: nếu một Agent có khả năng di chuyển trong mạng tới vị trí của tài nguyên thì, mật độ truyền thông của mạng máy tính sẽ được giảm đáng kể vì các Agent có thể tiẻn xử lý dữ liệu, xác định dữ liệu
L uận văn tố t nghiệp cao học
Trang 12nào là quan trọng nhất Và điều này sẽ càng quan trọng hơn đối với các người dùng sử dụng đường truyền với bàng thông thấp.
- Tính bền bỉ (persistence): khi một nút mạng tạo ra một Agent thì Agent
đó không nên bị phụ thuộc vào nút đó, và Agent không nên bị ảnh hưởng nếu nút đó hỏng Khái niệm Agent di chuyển giữa các nút mạng
có nghĩa là Agent có khả năng sống sót và sử dụng các tài nguyên tới mức tối đa Điều này là rất có ích đối với những người dùng máy tính di động: họ có thể truy cập vào mạng, sinh ra một Agent hoạt động trong mạng, thoát khỏi mạng và kiểm tra kết quả sau một khoảng thời gian nào đó.
- Trao đổi điểm -điểm (peer to peer communication): nhược điểm của mô hình khách/chủ là các máy chủ khồng có khả năng giao tiếp Những Agent đi động được xem là các thực thể cùng cấp và như vậy chúng có thể chấp nhận bất cứ vai trò nào thích hợp cho nhu cầu hiện tại của chúng, Chằng hạn, khi một Agent di động đang truy cập vào tài nguyên,
nó đóng vai trò khách Tuy nhiên, khi một Agenl di động khác đang truy vấn nó thì nó thành vai trò máy chủ.
- Sự dung thứ lỗi (fault tolerance): thông thường trong mối quan hệ khách/chủ, trạng thái của giao dịch được phân đều trên máy khách và máy chủ Trong khi thực hiện yêu cầu, mạng hoặc máy chủ có thể bị hỏng và khi đó việc phục hồi và đồng bộ lại với máy chủ là rất khó khăn đối với máy khách Ngược lại, các Agent di động không cần thiết duy trì kết nối trong suốt giao địch, trạng thái được tập trung tại bản thân các Agent, do đó sẽ dễ dàng hơn cho việc xử lý và phục hồi dữ liệu khi gặp lỗi.
L uận văn tốt nghiệp cao học
Trang 13II.2.ĐỢC điểm của Agent di động
ỊỊ.2.1 S ự d i ch u yển
Tính chuyển động là đặc điểm cho phép Agent di chuyển giữa các nút mạng, nhưng sự di chuyển là chức năng kiểm soát tính chuyển động được thực hiện như thế nào v ề cơ bản, Agent di động là sự thực hiện các tiến trình, tuy nhiên nhân tố quan trọng để phân biệt Agent di động với các tiến trình thông thường
là không phải tất cả các lệnh của tiến trình đều được thực hiện ưên cùng một nút mạng Và như vậy, vì Agent di động khác với các tiến trình thông thường nên sự đi chuyển của chúng cũng khác so với sự di chuyển của các tiến trình thông thường: chúng khác nhau về chủ thể quyết định trong việc xác định không gian và thời gian di chuyển Đ ối với các tiến trinh thông thường, một tiến trình của hệ thống sẽ điều khiển sự di chuyển của các tiến trình khác vì một số lý do như vị trí tài nguyên, cân bằng tải trọng Thao tác điều khiển này tương đối phức tạp Đ ối với Agent di động, thì chính Agent là chủ thể quyết định trong việc thời gian di chuyển, và hệ thống phải hỗ trợ và có khả nãng thực hiện yêu cầu này [4].
Agent đi chuyển giữa các nút mạng theo hai cách:
- Hướng trạng thái (state-oriented): Agent có thể di chuyển tại bất cứ bước nào trong quá trình thực hiện của chúng thông qua các lệnh di chuyển như: go, ju m p, m ove. Khi các lệnh này được gọi, trạng thái hiện tại của Agent được đóng gói và truyền tới một nút khác trong mạng Tại nút này, quá trình thực hiện của A gent được tiếp tục tại bước mà chúng
đã di chuyển Việc khôi phục lại trạng thái của Agent tại nút đích có thể được thực hiện bởi bản thân A gent hoặc bởi hệ thống.
- Không có trạng thái: Agent có thể di chuyển tại bất cứ bước nào trong quá trình thực hiện nhưng trạng thái của chúng lại bắt đầu lại từ đầu.
L uận vân tố t nghiệp cao học
Trang 14Đ iều này có nghĩa là trước khi Agent chuẩn bị di chuyển, các thông tin
về trạng thái của chúng được lưu vào một bộ lưu trữ hoặc một cơ sở tri thức Bộ lưu trữ dữ liệu hoặc cơ sở tri thức này được bao gói và gửi đi
cù n g với Agent Tại nút đích, nếu cần thiết thì Agent phải tự khôi phục lại trạng thái của mình từ bộ lưu trữ dữ liệu này Những hệ thống này có khả năng di chuyển dễ dàng nhưng việc tạo ra các Agent là tương đối khó khăn VI việc tạo Agent gắn liền với thao tác lưu giữ/khôi phục trạne thái.
ỊỊ.2.2 S ự th u th ập d ữ liệu
Agent di động thu thập các thông tin cần thiết từ môi trường cục bộ để thực hiện mục đích của mình Những thông tin này cần phải được lọc bởi các Agent trước khi chúng được lưu hoặc gửi đi tiếp cùng với các Agent Do đó những hệ thống Agent di động cần phải có khả năng đánh giá các tài nguyên
mà chúng cần.
H.2.3 X á c địn h đư ờng đ i
Có 3 phương pháp để xác định đường đi cho các Agent [9]:
- X ác định trước (predetermination): đường đi của Agent được xác định ngay khi Agent được sinh ra Phương pháp này thích hợp trong các trường hợp các hành động của Agent cần được kiểm soát, thứ tự các nút
mà A gent thăm là quan trọng.
- X ác định động (dynamic determinaiton): Agent được tự do di chuyển giữa các nút mạng V iệc lựa chọn nút mạng tiếp theo để di chuyển có thể được thực hiên một cách ngẫu nhiên, hay có thể dựa trên cơ sở tri thức về các nút mạng mà bản thân Agent có hoặc là các thông tin thư được từ các Agent khác Phương pháp này phù hợp với các Agent khai phá dữ liệu (data mining agent).
L u ậ n văn tố t nghiệp cao học
Trang 15- Xác định hỗn hợp (hybrid determination): kết hợp hai phương pháp trên Các nút đích của Agent đã được định nghĩa nhưng Agent vẫn có khả năng quyết định xem các địch vụ và tài nguyên của một nút khác nào đó trong mạng là có thích hợp với mục đích của mình hay không Hay nói một cách khác là Agent chứa một tập các tiêu chuẩn dùng để xác định xem một nút mạng là có phù hợp với mục đích của mình hay không Phương pháp này thường được sử dụng trong các trường hợp khi
mà tốc độ trả về của các dữ liệu ỉà quan trong hơn so với độ phức tạp của dữ liệu được xử lý.
ỊỊ.2.4 Vấn đ ề tru yền th ô n g
Khả năng các Agent có thể giao tiếp được với nhau là nền tảng của một hệ thống Agent di động Các Agent giao tiếp với nhau theo hai phương thức:
- Hướng mạng (Network oriented): các Agent giao tiếp thông qua các cơ
ch ế dựa trên mạng máy tính như phương pháp truyền thồng điệp Với phương pháp này các thực thể tham gia giao tiếp không nhất thiết phải trên cùng một mạng.
- Hướng nút (N ode oriented): các Agent giao tiếp thống qua cơ chể truyền thông cục bộ giữa các tiến trình, chẳng hạn thồng qua tệp, chia
x ẻ bộ nhớ Với phương pháp này, các Agent phải ở trên cùng một mạng.
N goài ra, truyển thông có thể thực hiện theo hai cách:
- Đ ồng bộ: các Agent phải sắp xếp thời gian cho việc truyền thông, và các A gent phải thực hiện đồng bộ với nhau trước khi dữ liệu được truyền Phương pháp này thường được sử dụng khi truyền những dữ liệu quan trọng, cần được xác nhận.
Luận văn tốt nghiệp cao học
Trang 16- Không cần đồng bộ: các Agent có thể giao tiếp với nhau bất cứ lúc nào
Dữ liệu sẽ được nhận khi các Agent kiểm tra nó Phương pháp này thường được dùng khi trao đổi các dữ liệu mang tính chất thông tin Agent di động c ó thể truyền thông với nhiều thực thể khác nhau:
- Môi trường cục bộ: Agent di động thường được hạn chế chỉ giao tiếp với môi trường cục bộ để tránh những vấn đề thường gặp trong mở hình khách/chủ khi truyền dữ liệu Agent đi động phải di chuyển qua các môi trường khác nhau để truy cập dữ liệu Tuy nhiên trong một số trường hợp, Agent di động phải truyền thông với môi trường từ xa, chẳng hạn khi xác định xem một môi trường nào đó có chứa một tài nguyên hay một dịch vụ cần thiết hay không? Xác định vị trí của một Agent khác, gửi trả kết quả về cho nút gốc.
- Các Agent khác: trong một vài trường hợp việc truyền thông giữa các Agent là rất quan trọng: các Agent có thể chia xẻ thông tin vê các nút mạng, các Agent có thể chia xẻ các cơ sở tri thức mà chúng có hoặc hợp tác để thực hiện một công việc nào đó.
- Người sử dụng: đôi khi Agent cần phải truyển những kết quả thu được
vể cho người dùng đã sinh ra Agent Thổng thường, Agent di động thường ghi lại những dữ liệu của chúng bằng một Agent khác hoạt động trên nút mạng của người dùng (người sở hữu Agent) Trong hầu hết các hành động tìm kiếm tài nguyên, công việc ghi lại này được thực hiện bởi một A gent khác, Agent này thu thập, sắp xếp thông tin và tổ chức thông tin theo những khuôn dạng phù hợp với người dùng.
Luận văn tốt nghiệp cưo học
Trang 1711.3 Một số hệ thống Agent di động
H.3.1 A g e n t TCL
Hệ thống Agent TCL là một mô hình hỗ trợ các Agent di động, đang được phát triển tại Khoa Khoa học Máy tính, trường đại học Darthmouth Kiến trúc của A gent TCL dựa trên mô hình máy chủ và ngôn ngữ TCL (Tool Command Language) Kiến trúc bao gồm bốn lớp: (hình vẽ)
Mobile Agents
Server or Engine
Hình 2.1 : Kiến trúc hê Agent TCL
Các A gent tĩnh và động trong hệ thống đều cung cấp các dịch vụ Agent được viết bởi các ngôn ngữ thông dịch như TCL hoặc Java Tác giả chỉ ra rằng những A gent viết bởi ngôn ngữ biên dịch như c sẽ hạn ch ế khả năng di chuyển của Agent.
Tại m ỗi nút trong hệ thống Agent TCL có một máy chủ chịu trách nhiệm quản
lý các Agent cục bộ và các Agent đến từ nút khác Máy chủ cung cấp cơ chế
L uận ván tốt nghiệp cao học
V - u > / l è ' ẽ
Trang 18an ninh, không gian tên có phân cấp nhờ đó các Agent có thể được tham chiếu
và các Agent có thể xác định lẫn nhau trong môi trường cục bộ.
A gent di chuyển giữa các nút trong hệ thống theo cách thức hướng trạng thái (thực hiện lộnh agent_jum p) Lệnh này đóng gói trạng thái của Agent và truyền Agent tới nút đích, tại đó máy chủ sẽ khởi động lại Agent tại lệnh sau câu lệnh a g e n t _ jump V iệc truyền Agent có thể dựa trên TCP/IP.
Việc thực hiện các Agent được xử lý thông qua các bộ thông dịch [8].
II.3.2 TACOMA
TACOM A (Tromoso And COmelI M oving Agents) là một dự án liên kết giữa đại học Tromoso và đại học Cornell nhằm cung cấp một hệ điều hành hỗ trợ cho Agent.
TACOM A coi Agent (hoặc là tĩnh hoặc di động) là thành phần tính toán trong
hê thống Như vậy» Agent đi động hoạt động theo phương thức không trạng thái và mỗi Agent có ba cơ chế lưu trữ: folder (kẹp tài liệu), filing cabinet (tủ đựng hồ sơ), briefcase (cặp đựng tài liệu) Folder là đơn vị dữ liệu cơ sở, được truy cập bởi một Agent Folder có thể được lưu trong các Filing Cabinet là các kho dữ liệu tĩnh hoặc lưu trong các Briefcase là các dữ liệu sẽ được đem đi cùng với các Agent Khi Agent di chuyển giữa các nút, trạng thái được lưu trong folder DATA, mã chương trình cho Agent được lưu trong folder CODE,
cả hai folder này được lưu trong cùng một briefcase tương ứng của một Agent
đó Tại nút đích, mã chương trình của Agent được lấy ra từ folder CODE để thực hiện, trạng thái được khôi phục từ folder DATA [8].
Luận văn tốt nẹhiệp cao học
Trang 19Hình 2.2: Kiến trúc hệ TACOMA
II.3.3 T e ỉe scrip t
Telescript là một sản phẩm thương mại được phát triển bởi General M agic Incorporated để hỗ trợ cho Agent di động trong môi trường thương mại điện
tử Telescript là một ngôn ngữ ỉập trình hướng đối tượng cung cấp lệnh cơ bản giúp Agent có thể di chuyển theo phương thức hướng trạng thái: go Tại m ỗi nút trong hộ thống Telescript tồn tại một chương trình chủ (engine) tiếp nhận
và xử lý các Agent, khởi động lại các Agent sau lệnh go.
Agent có thể di chuyển giữa các địa điểm (place) là các vùng logic có liên quan bên trong các engine Một engine có thể hỗ trợ nhiều địa điểm (place),
và bản thân engine có một địa điểm (engine place) Các địa điểm engine tồn tại trong một vùng (region), là các điểm kết nối trong một mạng Telescript.
Luận văn tố t nghiệp cao học
Trang 20Khi di chuyển tối một địa điểm (place), engine sẽ thực hiện xác minh Agent
và có thể cấp quyển cho Agent truy cập vào địa điểm đó hoặc không cho Agent truy cập vào địa điểm đó [8]
Luận vân tố t nghiệp cao học
Trang 21CHƯƠNG III CẤU TRÚC AGENT DI ĐỘNG III 1 Yêu cầu
/// 1.1 S ự d i ch u yển tu ỳ ý
Để đảm bảo cho người lập trình có được độ linh hoạt tối đa trong việc thiết kế Agent, sự di chuyển của Agent nên trong suốt với người sử dụng và thực hiện bằng một lệnh (chẳng hạn, lệnh go trong hệ Telescript) Lệnh này phải bao gói được trạng thái của Agent, đóng gói Agent theo một khuôn dạng phù hợp với môi trường mạng.
n u 2 Tỉnh b ề n b ỉ
Một thuộc tính quan trọng của hệ thống Agent di động là tính bền bỉ Một Agent được kích hoạt càng lâu thì số nút mạng mà Agent thăm càng nhiều và Agent càng c ó ảnh hưởng lớn trong mạng Đ ối với các Agent có khả năng học
và mở rộng cơ sở tri thức thì khi thời gian sống càng lâu, Agent càng thu thập được nhiều kinh nghiệm Và khi đó, Agent càng trở nên có giá trị hơn đối với người dùng vì chúng có các tri thức có ích về các nút mạng mà chúng đã thăm Những kinh nghiệm mà các Agent thu thập được cũng có thể được tập trung tại một cơ sở tri thức lưu tại nút mạng nơi người dùng đã khởi tạo nên các Agent Như vậy cơ sở tri thức này là rất có ích cho các Agent mới trong việc tìm kiếm.
/ / /1.3 S ự du n g th ứ lỗ i
Khi Agent di chuyển giữa các nút mạng hay giữa các mạng để thực hiện mục đích của mình, kinh nghiệm và cơ sở tri thức của chúng sẽ ngày càng phát triển Đ ể những thông tin này không bị mất, cần phải tránh một số trường hợp sau quá trình hoạt động của Agent:
L uận vãn tốt nghiệp cao học
Trang 22- Lồi đường truyền: nếu lỗi xuất hiện trong qúa trình Agent di chuyển giữa các nút mạng, Agent phải được truyền lại Nếu không được truyền lại, A gent phải được gửi về nút mà nó được tạo ra, nhờ vậy những thông tin mà A gent lưu giữ vẫn có thể được sử dụng bởi người dùng Cho dù
k ế hoạch như thế nào thì dữ liệu của Agent cần phải được bảo quản.
- Nút mạng hỏng: nếu một nút mạng bị hỏng thì hộ thống phải có khả năng tim lại dấu vết và khối phục lại trạng thái của Agent đang làm việc tại nút mạng đó Có một số phương pháp giải quyết vấn đề này: sao lưu Agent ở nhiều nút khác nhau trong quá trình hoạt động của nó hoặc bản thân Agent định kỳ gửi các bản sao lun về nút gốc của Agent đó Sự việc một nút mạng bị hỏng có thể là nghiêm trọng (hỏng đột ngột, không có báo trước, dữ liệu sẽ bị mất) hoặc là không nghiêm trọng (được báo trước như đóng nút mạng, Agent có thể di chuyển sang một nút mạng khác).
- V i phạm an ninh: nếu một Agent không được truyền đến một địa điểm mới vì lý do an ninh (chẳng hạn Agent đến từ một nút mạng lạ) thì Agent nên được khởi động lại và thử truyền tới một địa điểm khác /// 1.4 N gôn n g ữ tru yền th ô n g A g e n t
Các Agent phải có khả năng giao tiếp với nhau thông qua một ngôn ngữ chung N gôn ngữ này có tác dụng truyền đạt ý nghĩa và biểu diễn thông tin theo một khuồn dạng chuẩn V í dụ, KQML (Knowledge Query and
M anipulation Language) và KIF (K nowledge Interchange Format) là các ngôn ngữ như vậy.
H U 5 Truyền th ô n g
Một khía cạnh khác cần được xem xét là các Agent được đặt tên như thế nào
và chúng tham chiếu lẫn nhau ra sao V ì các Agent luôn thay đổi vị trí nên
Luận vãn tốt nghiệp cao học
Trang 23việc tham chiếu các Agent thông qua địa chỉ máy cũng như địa chỉ mạng là không thích hợp N goài ra, các Agent cần phải đăng ký khi chúng di chuyển
để giúp cho việc xác định vị trí hiện tại của Agent.
C ơ c h ế x á c nhận: trước khi thực hiện kiểm tra quyền, phải thực hiện xác nhận định danh của Agent và nút gốc của Agent N ếu định đanh không được xác định, A gent đó sẽ bị loại hoặc chỉ được cấp quyền truy cập ở mức thấp nhất.
C ơ c h ế tru yền A gen t: khi Agent trên đường truyền, chúng có thể bị sửa đổi thông tin hoặc lấy cắp chữ ký D o đó, cần phải có cơ ch ế bảo vệ khi truyền các Agent (M ột số phương pháp mã hoá như PGP, SSL có thể được áp dụng)
C ơ c h ế x á c thực: khi Agent di chuyển tới một nút mạng nào đó, hệ thống cần phải thẩm định bytecode của Agent để đảm bảo Agent đó không thực hiện các hành động hư hại hoặc bị cấm.
L uận vân tố t nghiệp cao học
Trang 24111.2 Cấu trúc hoạt dộng
Cấu trúc hoạt động dựa trên phương pháp mô hình hoá hướng Agent Mọi thành phần của hệ thống đều được trừu tượng hoá theo Agent Hệ thống bao gồm Agent tĩnh (static agent) và Agent di động (m obile agent) Agent tĩnh cung cấp tài nguyên và phương tiện cho Agent di động, Agent di động đi chuyển giữa các m iền (domain), sử dụng các tài nguyên tại các miền để thực hiện mục đích của mình.
Các Agent di động sẽ di chuyển theo phương thức hướng trạng thái (state - oriented) và Agent gổm: mã chương trình (code), trạng thái (state) và một số
cơ sở tri thức (know ledge base) Phẩn mã chương trình của Agent thể hiện chức năng của Agent, chẳng hạn Agent có thể là Agent phát hiện tài nguyên hoặc A gent bảo trì kết nối Phần trạng thái của Agent là những dữ liệu cục bộ
mà A gent đang thực hiện trước khi thay đổi vị trí Phần cơ sở tri thức chứa những ừi thức của Agent: kinh nghiệm, mục đích Cơ sở tri thức cũng là nơi
mà các thông tin tạm thời được lưu giữ trước khi Agent trở về nút gốc.
Luận văn tố t nghiệp cao học
Trang 25Luận văn tố t nghiệp cao học
Trang 26Nút mạng, Agent, tài nguyên được phân thành những thực thể gọi là các miền Agent miền là Agent tĩnh giám sát mọi hành động xảy ra trong một miền Agent miền có một s ố chức nãng sau:
- Cung cấp dịch vụ di chuyển (migration Service) cho các Agent động muốn dời khỏi miền đó Agent miền phải đảm bảo Agent đó sẽ được truyền đi thành công Đ ể cho người dùng có thể theo dõi được Agent của họ, Agent miền phải có cơ chế thông báo cho nút gốc của Agent.
- Cung cấp cơ ch ế xác nhận (authentication and validation) cho các Agent muốn di chuyển vào miền đó Tương tự như trên, Agent miền phải có cơ chế thông báo.
- Khi các Agent đi chuyển vào trong miền, Agent miền phải khởi động các Agent đó trong một môi trường thích hợp dựa trên độ tin tưởng của Agent đó Agent đến từ các nút mạng đáng tin sẽ được phép truy cập nhiều tài nguyên hơn so với các Agent đến từ các nút mạng lạ Môi trường hoạt động đó còn phụ thuộc vào ngôn ngữ ìập trình mà Agent được thực hiện, mức truy cập cấp phát cho Agent và những chức năng
mà Agent cần thực hiện.
- Dàn xếp sự truy cập tới các tài nguyên thông tin Agent miền có nhiệm
vụ cấp quyền cho các Agent động Các Agent động phải được cấp quyền trước khi chung truy cập các tài nguyên thông tin.
- Cung cấp cơ ch ế tìm đường tập trung cho các thông điệp Các Agent tĩnh và động giao tiếp với nhau thông qua các thông điệp Các thông điệp này đều được gửi qua Agent miền Phương pháp này giúp các Agent có thể giao tiếp với nhau theo phương thức không đồng bộ Tuy nhiên các Agent cũng có thể giao tiếp đồng bộ trực tiếp với nhau.
ỊỊỊ.2.1 Agentmiền
Luận văn tốt nghiệp cao học
Trang 27- C u n g c ấ p c ơ c h ế đăng k ý tậ p tru n g : c á c A g e n t tĩn h và đ ộ n g c ó th ể đ ă n g
k ý tà i n g u y ê n c h ú n g c ó th ể c u n g c ấ p h o ặ c n h ữ n g tà i n g u y ê n , d ịc h v ụ
m à A g e n t c ầ n T u y n h iê n c ầ n p h ả i g iớ i h ạ n v ề s ố lư ợ n g A g e n í c ó th ể
tồ n tạ i tro n g m iề n tro n g m ộ t k h o ả n g th ờ i g ia n n h ấ t đ ịn h
- A g e n t m iể n c ầ n p h ả i quảng c á o n h ữ n g tà i n g u y ê n th ô n g tin c h u n g c ũ n g
n h ư s ự x u ấ t h iệ n c ủ a c á c A g e n t đ ộ n g k h á c N h ờ đ ó , c á c A g e n t đ ộ n g
k h á c c ó th ể tru y v ấ n đ ư ợ c n h ữ n g th ô n g tin c ầ n th iế t c h o v iệ c q u y ế t đ ịn h
c ó đ i c h u y ể n tới m iề n đ ó h a y k h ồ n g h o ặ c c á c th ô n g tin v ề c á c A g e n t
- A g e n t m iể n p h ả i đ ả m b ả o v ấ n đ ề a n n in h đ ư ợ c th i h à n h tro n g m iề n , n h ờ
đ ó c á c A g e n t đ ộ n g c ó th ể g ia o tiế p với n h a u v à v ớ i tà i n g u y ê n th ô n g tin
M.2.2 Agent tài nguyên
A g e n t tà i n g u y ê n là m ộ t A g e n t tĩn h tro n g m ộ t m iề n c ó n h iệ m v ụ c u n g c ấ p c á c
Trang 28- D à n xếp sự tru y c ậ p tà i n g u y ê n th ô n g tin d ự a trên c ơ sở t ừ n g A g e n t K h i
m ộ t A g e n t đ ã đ ư ợ c c ấ p q u y ề n tru y c ậ p tà i n g u y ê n , A g e n t tà i n g u y ê n c ó
n h iệ m v ụ đ ả m b ả o tín h to à n v ẹ n v à tín h p riv a c y c ủ a tà i n g u y ê n th ô n g tin K h i m ộ t A g e n t d i c h u y ể n tớ i m ộ t d o m a in , A g e n t m iề n p h ả i c ấ p c h o
A g e n t đ ó m ộ t tậ p q u y ề n , n h ờ đ ó A g e n t tà i n g u y ê n c ó th ể k iể m s o á t
đ ư ợ c s ự tru y c ậ p v à o tà i n g u y ê n
- C u n g c ấ p sự c h u y ể n đ ổ i g iữ a sự b iể u d iễ n th ô n g tin c ủ a A g e n t đ ộ n g v à
sự b iể u d iễ n th ô n g tin c ủ a tà i n g u y ê n th ô n g tin m à A g e n t tà i n g u y ê n
quản lý.
- Đ ă n g k ý tài n g u y ê n vớ i A g e n t m iề n , n h ờ đ ó c á c A g e n t đ ộ n g c ó th ể b iế t
đ ư ợ c n h ữ n g th ỏ n g tin n à o là s ẩ n s à n g tro n g m iề n trư ớ c k h i d i c h u y ể n tới
Trang 29n ã n g m à A g e n t c ó th ể th ự c h iệ n , h o ặ c c ó th ể g â y ra đ ỗ trễ tro n g h o à n
th à n h c ô n g v iệ c , tu y n h iê n p h ư ơ n g p h á p n à y d ẻ d à n g th ự c h iệ n h ơ n
N ế u c ấ u trú c h o ạ t đ ộ n g đ ư ợ c th ự c h iệ n th e o p h ư ơ n g p h á p n à y th ì m ộ t
đ iề u c ầ n q u a n tâ m d u y n h ấ t là tru y ề n th ô n g g iữ a c á c A g e n t
- H ệ th ố n g đ a A g e n t ( m u lti-a g e n t s y s te m ): đ iể m k h á c b iệ t c ủ a h ệ th ố n g
Trang 30th ể th ự c h iệ n c á c c ô n g v iệ c tư ơ n g tự n h a u , v à n h ư vậy m ộ t A g e n t n à y c ó
th ể s ử d ụ n g lạ i k ế t q u ả c ủ a m ộ t A g e n t k h á c H a y m ộ t A g e n t c ó th ể
c u n g c ấ p c á c d ịc h vụ c h o c á c A g e n t k h á c , c h ẳ n g h ạ n m ộ t A g e n t c ó th ể
c u n g c ấ p k in h n g h iê m về c á c m iề n c ó íc h tro n g m ộ t lĩn h vực n à o đó
T u y n h iê n , p h ư ơ n g p h á p n à y c ó n h ư ợ c đ iể m v é đ ộ tin c ậ y C h ẳ n g h ạ n ,
k h i c á c A g e n t tra o đ ổ i v ớ i n h a u th ô n g tin về tiề n đ iệ n tử , m ộ t c â u h ỏ i
lu ô n đ ư ợ c đ ặ t ra là “ liệ u th ô n g tin n à y c ó đ á n g tin k h ô n g ? ” h o ặ c “ đ ộ
Ịf 1.2.4 Agentgỉao diện người dùng
A g e n t eiiao d iệ n là A g e n t th ư ờ n g trú tro n g m iề n v à c u n g c ấ p g ia o d iệ n tớ i các
th e o tín h ư u tiê n , q u a n trọ n g v à b iể u d iễ n th ô n g tin b ằ n g n h ữ n g c ô n g c ụ
th ậ n th iệ n c ủ a n g ư ờ i d ù n g
Luận văn tốt nghiệp cao học
Trang 31' C u n g c ấ p th ô n g tin c ầ n th iế t (tê n , m ậ t k h ẩ u ) đ ể A g e n t m iề n c ó th ể x á c
th ự c A g e n t đ ộ n g c ủ a n g ư ờ i d ù n g
A g e n t g ia o d iệ n c u n g c ấ p c h o n g ư ờ i d ù n g m ộ t c ử a sổ tới A g e n t c ủ a h ọ , tới
•trạng th á i c ủ a n h ữ n g A g e n t đ ó , k ế t q u ả c ô n g v iệ c c ủ a A g e n t
M2.5 Agent cổng (Gateway Agent)
A g e n t n à y là m ộ t th ự c th ể tĩn h tro n g m iề n , c u n g c ấ p s ự tru y c ậ p tớ i m ộ t m ạ n g
m ớ i g iú p c á c A g e n t c ó th ể th ự c h iệ n tru y ề n th ô n g tro n g m ạ n g m ới
- T ư ờ n g lử a : m ộ t m iề n h o ặ c m ộ t tậ p c á c m iề n c ó th ể tồ n tạ i tro n g c ù n g
Trang 32CHƯƠNG IV TRIẾN KHAI
IV l Mẩu thiết kế
M ẫ u th iế t k ế đ ư ợ c đ ịn h n g h ĩa n h ư s a u [5]:
- L à n h ữ n g g iả i p h á p đ ư ợ c sử d ụ n g lại n h iề u lầ n đ ể th iế t k ế m ộ t v ấn đ ề
- T ạ o n ê n m ộ t tậ p c á c lu ậ t m ô tả v iệ c h o à n th à n h n h ữ n g c ồ n g v iệc c ụ th ể tro n g lĩn h v ự c p h á t triể n p h ầ n m ề m (P re e , 1994)
~ M ẫ u th iế t k ế tậ p tru n g h ơ n v à o v iệc sử đ ụ n g lạ i n h ữ n g đ ề tà i th iế t k ế
m a n s tín h k iế n trú c , fr a m e w o rk tậ p tru n g v ào th iế t k ế c h i tiế t v à p h ầ n triể n k h a i (C o p lie n & S c h m id t, 1 9 9 5 )
- M ộ t m ẫ u x á c đ ịn h n h ư n g v ấ n đ ề th iế t k ế lặ p đ i lặ p lại x u ấ t h iệ n tro n g
n h ữ n g trư ờ n g h ợ p th iế t k ế c ụ th ể và đ ư a ra g iả i p h á p c h o n h ữ n g trư ờ n g
h ợ p đ ó (B u s c h m a n n , 1 9 9 6 )
N g o à i v iệ c đ ư a ra n h ữ n g k iế n trú c tư ơ n g tự, m ẫ u th iế t k ế k h ô n g n h ữ n g tậ p
tr u n g v à o v iệ c th iế t k ế n h ữ n g đ ố i tư ợ n g m à c ò n tậ p tru n g v à o tư ơ n g tá c g iữ a
c á c đ ố i tư ợ n g T h ự c tế, đ ô i k h i m ẫ u th iế t k ế c ũ n g đ ư ợ c g ọ i là m ẫ u tư ơ n g tác
C á c m ẫ u th iế t k ế c ó th ể tồ n tạ i ở n h iề u m ứ c k h á c n h a u từ n h ữ n g g iả i p h á p cụ
th ể đ ế n n h ữ n g n h ữ n g v ấn đ ề c h u n g H iệ n n a y , tồ n tại rấ t n h iề u m ẫ u th iế t k ế lchác n h a u , đ ư ợ c đ ề c ậ p đ ế n ở n h iề u m ứ c k h á c n h a u tro n g c á c b à i b á o , h ộ i
th ả o
T h ô n g th ư ờ n g , c á c m ẫ u th iế t k ế đ ư ợ c c h ia là m b a lo ạ i:
- M ẫ u tạ o đ ố i tư ợ n g (c re a tio n a l p a tte m ): m ẫ u c ó n h iệ m v ụ tạ o ra c á c đ ố i
tư ợ n g c h ứ k h ô n g p h ả i là c á c in s ta n c e C á c m ẫ u n ày g iú p c h ư ơ n g trìn h
m ề m d ẻ o h ơ n tro n g v iệc tạ o ra c á c đ ố i tư ợ n g tro n g c ác trư ờ n g h ợ p k h á c
n h a u
Luận văn tốt nghiệp cao học
Trang 33- M ẫ u c ấ u trú c (s tru c tu ra l p a tte m ): n h ó m c á c đ ố i tư ợ n g th à n h m ộ t c ấ u
tr ú c lớ n h ơ n
- M ẫ u h à n h vi: đ ịn h n g h ĩa sự tư ơ n g tá c g iữ a c á c đ ố i tư ợ n g tr o n g h ệ th ố n g
v à k iể m s o á t lu ồ n g tư ơ n g tá c tro n g c á c c h ư ơ n g trìn h p h ứ c tạ p
C á c p h ầ n tiế p sa u sẽ trìn h b ày v ề h a i m ẫ u th iế t k ế đ ư ợ c sử d ụ n g đ ể th iế t k ế
d ịc h v ụ tr u y ề n th ô n g v à o n to lo g y tro n g h ệ th ố n g
IV 1.1 ProxyPattern
M ẫ u n à y đ ư ợ c s ử d ụ n g k h i m u ố n b iể u d iê n m ộ t đ ố i tư ợ n g p h ứ c tạ p b ở i m ộ t
đ ố i tư ợ n g k h á c đ ơ n g iả n h ơ n T ro n g k h i q u á trin h tạ o m ộ t đ ố i tư ợ n g là rấ t tố n
- V iệ c tả i m ộ t đ ố i tư ợ n g m ấ t n h iề u th ờ i g ia n ,
- M ộ t đ ố i tư ợ n g tồ n tạ i trê n m ộ t m á y k h á c ( r e m o te m a c h in e ), v à v iệ c tải