Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow -- 3 doc

16 416 0
Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow -- 3 doc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 28 2.7.2. Theo dõi và thông báo tin cập nhật Ứng dụng cổ điển này làm nổi bật bản chất không đồng bộ của các mobile agent. Các agent có thể được gởi đi, đến nơi có nguồn tin và hoạt động theo dõi nguồn tin ngay cả khi người dùng ngắt kết nối. Sau đó, khi nguồn tin có sự thay đổi , agent sẽ quay về báo cho chủ nhân. Các agent có thể được gửi đi để chờ một dạng thông tin nào đó xuất hiện, rồi sau đó báo cho người dùng biế t hoặc tự nó có những hành động thích hợp đối với thông tin đó. 2.7.3. Giám sát và phân tán thông tin Các mobile agent là minh họa cho mô hình Internet Push, các agent có thể phổ biến tin tức và cập nhật phần mềm cho các nhà sản xuất. Các agent mang các software component và các thủ tục cần thiết đến các máy cá nhân của khách hàng và tự cập nhật phần mềm trên máy đó. Mô hình này giúp nhà sản xuất chủ động hơn trong việc phục vụ khách hàng để đảm bảo dịch vụ của mình. Mặt khác, các ứng dụng lọai này cũng tỏ ra hiệu quả đối vớ i các mạng cục bộ hay các chương trình quản lý quy trình tự động, sản xuất… để giúp người quản trị giám sát các hệ thống con. 2.7.4. Xử lí song song Do các agent có thể tạo ra các bản sao của nó trên mạng, tạo ra 1 ứng dụng đầy tiềm năng của agent là quản trị các tác vụ song song.Một ứng dụng đòi hỏi nhiều tài nguyên bộ xử lý có thể được phân bố cho các agent mang đi thực hiện trên nhiều máy tính khác nhau để tận dụng các tài nguyên trống và cân bằng tải. 2.7.5. Thương mại điện tử Các ứng dụng thương mại điện tử cho phép người dùng thực hiện các giao dịch trong kinh doanh trên mạng. Một giao dịch có thể bao gồm sự thương lượng với các thực thể ở xa và có thể đòi hỏi truy cập nguồn thông tin liên tục thay đổi. Từ thực tế đó nảy sinh nhu cầu thay đổi hành vi của các thực thể để đạt Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 29 được một nghi thức chung trong việc thương lượng. Hơn nữa, việc di chuyển các thành phần của ứng dụng tiến gần đến nguồn thông tin thích hợp cho giao dịch cũng được quan tâm. Vì thế công nghệ mobile agents là một giải pháp rất hấp dẫn cho lĩnh vực này. 2.7.6. Quản trị hệ thống mạng Đối với những hệ thống mạng lớn, việc chẩn đoán lỗi, duy trì sự ổn định của hệ thống là các công việc rất khó khăn. Việc ứng dụng mobile agent vào việc quản trị mạng sẽ giúp cho các công việc chẩn đoán lỗi và duy trì từ xa sự ổn định của hệ thống được dễ dàng hơn 2.7.7. Hỗ trợ các thiết bị di động Do đặc điểm tài nguyên hạn chế và không kết nối thường xuyên, việc xây dựng các ứng dụng dựa trên mobile agent với khả năng di chuyển đến các máy tính có cấu hình mạnh hơn để hoạt động (truy vấn cơ sở dữ liệu, tìm tin…) rồi trả kết quả về sẽ là một giải pháp tốt cho người dùng các thiết bị di động. 2.8. Bảo mật Để đảm bảo agent đáng tin cậy, AgentOS sẽ tiến hành 1 số kiểm tra với agent 9 Authentication: kiểm tra xuất xứ agent 9 Vertification: kiểm tra mã agent 9 Authorisation: cho phép agent có quyền nhận và truy cập 1 số tài nguyên. Trên quá trình di trú của agent, để đảm bảo thông tin được bảo vệ, có thể áp dụng phương pháp mã hoá PKI. Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 30 3. Tổng quát về Aglet Aglets được xây dựng và phát triển bởi D. B. Lange và IBM Tokyo Research Laboratory. Hiện nay, bộ Aglets Software Development Kit (ASDK) do IBM phát triển đã dừng lại ở phiên bản 1.1 Beta3 trên nền JDK1.1. Phiên bản mới nhất của ASDK là 2.0.2 do SourceForge phát triển trên nền JDK1.3. 3.1. Khái niệm Aglet là những đối tượng Java có thể di chuyển từ host này sang host khác trên môi trường mạng. Khi 1 aglet di chuyển, nó mang theo mình cả mã chương trình lẫn dữ liệu. Trong mô hình đối tượng aglets, một mobile agent là một đối tượng di động có luồng kiểm soát riêng của nó, làm việc theo sự kiện và liên lạc với các agent khác bằng cách truyền thông điệp. Aglets có một cơ chế định danh duy nhất và toàn cục dựa trên URL. Aglets hỗ trợ cơ chế di động yếu (weak- mobility). Các aglets giao tiế p với nhau một cách đồng nhất, và độc lập với vị trí lưu trú thông qua đối tượng proxy. Suốt chu kỳ sống, các aglets sẵn sàng bắt những sự kiện (clone, mobility, persistence) phát sinh trong môi trường để có phản ứng thích hợp. Agent có thể giao tiếp đồng bộ hoặc không đồng bộ thông qua các loại thông điệp: synchronous, one-way, hay future reply. Aglets sử dụng ATP (Agent Transfer Protocol) cho việc di chuyển và giao tiếp. Aglets sử dụng 2 loại mẫu thiết kế chính là chủ-tớ (Master-Slave) và hành trình (Itinerary) cho vi ệc di chuyển của các agent. Aglets là một trong những platform được sử dụng nhiều nhất để phát triển các hệ thống mobile agent. Một số đề án thực hiện với Aglet có thể kể đến là TabiCan (http://www.tabican.ne.jp) - chợ điện tử chuyên bán vé máy bay và tour du lịch trọn gói -, Cps720 (Artificial Intelligence Topics with Agent) tại đại học Ryerson University, Mỹ , Acme – Hệ thống hỗ trợ Sales Order Processing trong việc mua bán chứng khoán, của Đại học Loughborough, Anh. Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 31 Aglets là một hệ thống Java mobile agent hỗ trợ các khái niệm thi hành tự trị và định tuyến động trên lộ trình của nó. Có thể xem aglets như là một khái quát hóa và mở rộng của applet và servlet. Aglet server là chương trình cung cấp một môi trường thi hành và một máy ảo Java cho aglet hoạt động. Ngoài ra, Aglet server cũng sử dụng một trình quản lý để tiếp nhận và kiểm soát aglet một cách an toàn. 3.2. Tính chất Một chương trình aglet có những tính chất sau đây: 9 Là một đối tượng khả chuyển. Nó là một đối tượng ứng dụng với các phương thức và dữ liệu trạng thái, và khả năng di chuyển, nó có thể gửi đi những aglets hoặc tự chuyển đến một địa điểm khác trong mạng như một thực thể độc lập. 9 Tính tự trị. Mộ t aglet có khả năng tự quyết định xem sẽ làm gì hoặc sẽ di chuyển về đâu và khi nào. 9 Khả năng tương tác với những đối tượng khác. Nó có khả năng tương tác với những aglets khác hoặc những đối tượng stationary. Khi cần thiết, nó sẽ tự gửi nó hoặc các aglets khác đến một địa điểm ở xa để tương tác với các đối tượng ở đó. 9 Không kết nối. Nếu một máy tính đang ngắt kết nối với 1 mạng, aglet vẫn có thể tự động chờ và sẽ di chuyển khi máy tính này kết nối lại. 9 Xử lý song song. Nhiều aglets có thể di chuyển và thực thi độc lập trong cùng một hệ thống. 3.3. Cách cài đặt và sử dụng Aglet trên môi trường Window Thể hiện của Aglet trên môi trường Window chính là server Tahiti. Trong file nén aglets-2.0.2.jar bao gồm ASDK( Aglets Source Development Kit) và môi trường thực thi ứng dụng ( run-time environment). Phần chính trong gói là Aglets library, phần này cho phép những người viết phần mềm có thể dịch Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 32 và chạy những ứng dụng Aglets, phần còn lại là những agents được biên dịch trước và những chương trình dùng để thực thi aglets platform. Để thực thi Aglets platform bạn cần phải cài tối thiểu là Java 2 Run-time Enviroment (JRE), tuy nhiên bạn nên cài đặt đầy đủ Java 2 Source Development Kit (J2SDK) để biên dịch các agents, tham khảo ở trang chủ của SUN: http://java.sun.com . Aglets có thể đưọc cài đặt trên một máy chạy UNIX/LINUX, Microsoft Windows hoặc Mac OS X. Nói chung, mọi kiến trúc máy tính có thể chạy được Java 2 Platform đều có thể cài đặt và thực thi được Aglets. Quá trình cài đặt được thực hiện trên nền Window ( các bước cài đặt giống như trong Windows đối với các hệ điều hành khác). Mặc định là bạn đã cài đặt và có thể thực thi mọi lệnh Java. Có 3 cách cài đặt aglet, ở đây chúng ta chỉ tìm hiểu 1 cách cài đặt là cài đặt từ gói đã được biên dịch sẵn: Đây là cách được khuyên nên sử dụng bởi vì gói được biên dịch sẵn bao gồm những thành phần mới nhất của Platform và thư viện ASDK. Nếu bạn không phải là một nguời viết ứng dụng bạn nên dùng cách này để cài đặt. Cả platform và thư viện ASDK được đặt trong một file jar mà bạn download về. Tên của file jar này cho biết version Aglets mà bạn đang sử dụng. Version của file jar được đề c ập đến trong tài liệu này là 2.0.2 ứng với tập tin aglets-2.0.2.jar Những bước chi tiết sau đây sẽ hưóng dẫn cách cài đặt Aglets từ file jar nói trên. 3.3.1. Giải nén file jar Bởi vì aglets được nén trong một file jar nên việc đầu tiên bạn phải giải nén nó. Hãy chú ý là khi giải nén thì các tập tin được giải nén sẽ nằm trong thư mục hiện hành, do đó tốt hơn hết là bạn nên tạo một thư mục riêng của bạn dùng để sử dụng trong quá trình cài đặt Aglets, ví dụ là E:\MAgent. Khi bạn đã tạo Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 33 xong thư mục, bạn copy file jar nói trên vào thư mục đó và đánh lệnh sau đây trong console: jar xvf aglets-2.0.2.jar Trong suốt quá trình cài đặt bạn sẽ thấy những dòng sau đây xuất hiện trên màn hình, những dòng này sẽ liệt kê những tập tin đang được giải nén: Hình 11: Giải nén aglets-2.0.2.jar Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 34 Nếu các bước cài đặt thành công bạn sẽ thấy các thư mục con bên trong thư mục cài dặt của bạn, các thư mục con bao gồm: 9 bin: sẽ chứa những chương trình thực thi được cho Aglets 2 platform, ngoài ra nó còn chứa những file cần thiết dùng cho các bướccài đặt tiếp theo. 9 cnf: chứa những file cấu hình cho Aglets platform 9 public: chứa vài ví dụ agent mẫu , và đây là thư mục root cho các ứng dụng agent sau này của bạn. 9 lib: đ ây là thư mục thư viện của Aglets 2 library( bao gồm những tập tin jar) và vài tập tin thư viện cần thiết khác đối với Aglets. Nếu có thể, bạn hãy đọc tập tin README và INSTALL bao gồm trong gói cài đặt và tùy thuộc vào version mà bạn download. 3.3.2. Cài đặt platform Để cài đặt platform, bạn cần phải chạy Apache Ant, tool này dùng để chạy và biên dịch những ứng dụng java. Aglets 2 được đóng gói chung với một version của Ant để cài đặt platform, ngòai ra bạn có thể sử dụng bất kì version nào mới hơn 1.5 cũng được. Để cài đặt Aglets với Ant, bạn cần phải vào thư mục bin ở trên và đánh lệnh ant.bat như sau: Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 35 Hình 12: Cài đặt platform Trong quá trình dịch và cài đặt thư viện, bạn sẽ thấy những message thông báo về version của Aglets. 3.3.3. Cài đặt chính sách bảo mật Như những chương trình Java khác, Aglets platform cần những quyền trong chính sách bảo mật của java để thực thi các tác vụ như mở socket, chạy các ứng dụng agent khác, mở tập tin trong máy client, … Bạn có thể copy các Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 36 tập tin bin/.aglets.policy hoặc chương trình Ant có thể làm điều này giúp bạn. Ngoài ra Ant sẽ cài đặt keystore cho bạn. Aglets cần một keystore để chứa những khóa bảo mật dùng khi di trú; thông thường các keystore đưọc lưu trong file /.keystore. Để cài đặt các chính sách bảo mật và keystore như trên trong thư mục home, bạn chạy file install-home: Hình 13: Cài đặt chính sách bảo mật 3.3.4. Khai báo các biến môi trường Để Aglets platform có thể hoạt động được, bạn cần phải khai báo các biến môi trường sau đây bao gồm AGLETS_HOME và AGLETS_PATH. Ngoài ra, để chạy Aglets platform một cách tiện lợi hơn, bạn phải khai báo thư mục bin của aglets vào biến môi trường PATH. Bạn đánh các lệnh sau đây trong console của windows: set AGLETS_HOME=E:\Magent set AGLETS_PATH=%AGLETS_HOME% set PATH=%PATH%;\%AGLETS_HOME%\bin hoặc có thể khai báo các biến môi trường trên trong control panel. Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 37 3.3.5. Chạy Aglets server Sau khi cài đặt Aglets platform và keystore, bạn có thể chạy được Aglets server, tên gọi là Tahiti. Tahiti có thể chạy bằng cách chuyển vào thư mục \bin và đánh dòng lệnh agletsd. Hình 14: Đăng nhập server Tahiti Tahiti sẽ yêu cầu người dùng đăng nhập, người dùng sẽ phải điền username và password. Nếu bạn đã cài đặt keystore thành công thì bạn cso thể đăng nhập với username là anonymous và password là aglets. Sau khi đăng nhập thành công thì cửa sổ chính của server Tahiti sẽ hiện ra. Bên trong màn hình chính này, người dùng có thể quản lý server, tạo và huỷ các agents, … [...]... Cao Đăng Tân Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow aglet mới Khi di trú đến host mới, đối tượng context sẽ bị hủy đi và thay thế nó là đối tượng aglet của host mới khi agent di trú đến Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 42 GVHD: GVC Cao Đăng Tân Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Chương 3: Khái niệm và các mô hình WorkFlow Công việc quản lý workflow xuất... mảnh thành bit-stream, mọi mobile aglet có thể bền vững trong tự nhiên Hàm Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 39 GVHD: GVC Cao Đăng Tân Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Aglet.deactivete(long timeout) giúp 1 aglet được lưu trữ lại trong bộ nhớ và đưa aglet vào trạng thái ngủ đông trong 1 khỏang thời gian nhất định Sau khi hết thời gian hoặc khi 1 chương trình khác yêu cầu... cứng bên dưới hay nguồn gốc cụ thể của Aglet API được cài trên máy đang chạy Aglet : chính là lớp ảo com.ibm.aglet.Aglet : định nghĩa các phương thức nền tảng đẻ kiểm sóat sự di chuyển và vòng đời của mobile agent Mọi mobile agent đều phải kế thừa từ lớp ảo này Vài hàm quan trọng của lớp này là : Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 40 GVHD: GVC Cao Đăng Tân Ứng dụng thử nghiệm Mobile Agent vào. . .Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Hình 15: Màn hình Server Tahiti Để đóng server, bạn có thể click vào button close hoặc chọn Exit trong Aglet menu Trong cả hai cách Aglets sẽ hỏi bạn có chắc sẽ thoát hay không, khi đó bạn click OK để thoát, Cancel sẽ đóng cửa sổ đó lại và Reboot sẽ làm server restart 3. 4 Aglet LifeCycle Lớp ibm.com.aglet.Aglet... aglet đã tồn tại bằng cách dùng hàm Aglet.clone() Aglet được sao ra sẽ có cùng trạng thái như aglet gốc nhưng có AgletID khác Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 38 GVHD: GVC Cao Đăng Tân Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Context A Clone Context B Proxy Dispatch Proxy Aglet Aglet Dispose Retract Create Deactivate Activate Bộ lưu trữ thứ cấp Class Hình 16: Vòng đời Aglet Khi được... cách hiểu về workflow Cách 1: workflow theo nghĩa rộng, là 1 mô hình nghiệp vụ, trong đó các công việc được phân công rõ ràng, thực hiện theo thứ tự đặt sẵn Khái niệm workflow theo cách hiểu này đã có từ lâu và được ứng dụng rộng rãi trong các ngành công nghiệp Cách 2: Khái niệm workflow trong khoa học máy tính ứng dụng vào quản lý tiến trình kinh doanh (tìm hiểu dưới đây) Khái niệm về workflow nói... atp://aglets.ibm.com:1 434 /context_name Khi di trú, 1 aglet phải ngưng hoạt động, lần lượt đưa trạng thái hoạt động và bytecode của nó vào 1 form chuẩn và rồi được chuyển đến đích Bên phía nhận, đối tượng Java được tái xây dựng dựa theo dữ liệu nhận được từ gốc và 1 thread được đăng kí và thực thi Aglets có thể bền vững Do 1 mobile aglet cần được phần mảnh thành bit-stream, mọi mobile aglet có thể bền... công việc tùy vào trạng thái hiện hành của aglet Tuy nhiên, khi aglet bị hủy, những tài nguyên đang được sử dụng như cơ sở dữ liệu hay file sẽ không được tự động hủy như aglet, bạn phải có những lệnh riêng hủy chúng 3. 5 Aglet API Aglet Aglet Proxy Message Aglet Proxy Aglet Aglet Context Hình 17: Aglet API Aglet API là bộ thư viện bao gồm các hàm chuyên biệt dành cho việc phát triển agent Nhờ vào Aglet... nay, công việc quản lý workflow thu hút rất nhiều những quan tâm dựa vào khả năng của nó trong mô hình hóa, thực thi và quản lý tiến trình Tiến trình công việc không chỉ là tiến trình trong kinh doanh mà còn là bất kì một tiến trình nào cần được điều khiển và quản lý Nhưng điểm chính của việc quản lý workflow là những hứa hẹn trong sử dụng nó để quản lý tiến trình kinh doanh Workflow giúp nhà quản... lớp này là : Nguyễn Hoàng Linh Phương Nguyễn Văn Thoại 40 GVHD: GVC Cao Đăng Tân Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Aglet.dispatch(URL) : di chuyển aglet từ máy nó đang cư trú đến máy đích theo thông số nhập vào Aglet.deactivate(long time) : lưu trữ aglet và đưa aglet vào trạng thái ngủ đông Aglet.clone() : sinh ra 1 thể hiện của aglet mới có cùng trạng thái như aglet gốc nhưng là . control panel. Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 37 3. 3.5. Chạy Aglets server Sau khi. host mới khi agent di trú đến. Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh Phương GVHD: GVC Cao Đăng Tân Nguyễn Văn Thoại 43 Chương 3: Khái niệm. mục riêng của bạn dùng để sử dụng trong quá trình cài đặt Aglets, ví dụ là E:MAgent. Khi bạn đã tạo Ứng dụng thử nghiệm Mobile Agent vào xây dựng Workflow Nguyễn Hoàng Linh

Ngày đăng: 30/07/2014, 20:20

Mục lục

  • Tóm tắt luận văn

  • Chương 1: Giới thiệu đề tài

    • Tổng quát về software agent

      • Nguồn gốc

      • Các tính năng của agent:

        • Tính tự trị (autonomous):

        • Tính thích nghi và tự học hỏi (adaptive/learning)

        • Bền vững trong quá trình hoạt động (persistent)

        • Hoạt động hướng đích (goal driven)

        • Giao tiếp và cộng tác ( communicative/collaborative):

        • Tính di động (mobility):

        • Phân loại agent

          • Phân loại theo tính năng

            • Agent tĩnh (Stationary agent) :

            • Phân loại theo mục đích:

              • Collaborative agents

              • Mobile Agent và nguyên lý hoạt động

                • Khái niệm Mobile Agent

                • Tính chất mobile agent:

                • Một số hệ thống MA:

                  • Aglets

                  • Nguyên lý hoạt động

                    • So sánh với các kĩ thuật khác

                      • Kĩ thuật pull code

                      • Kĩ thuật push code

                      • Kĩ thuật autonomous code

                      • Các điều kiện agent phải thỏa mãn

                      • Agent Host :

                        • Khái niệm

                        • Các yêu cầu cho AgentOS :

                        • Ích lợi của mobile agent 

                          • Giảm bandwidth 

Tài liệu cùng người dùng

Tài liệu liên quan