MỤC LỤC
Mục lục.1
Danh mục các hình vẽ.5
Mở đầu .6
Chương I: Giới thiệu về cơ sở thực tập .9
1.1.Lịch sử thành lập và phát triển của công ty qua các giai đoạn .10
1.2.Tổ chức bộ máy quản lý của công ty .11
1.2.1 Sơ đồ tổ chức công ty .11
1.2.2.Các phòng ban và chức năng .11
1.3.Các sản phẩm - Dịch vụ chính của Công ty Điện toán và truyền số liệu.14
1.4. Định hướng phát triển .14
1.5 Kết quả kinh doanh 17
Chương II: Công nghệ Mobile Agent .20
2.1. Công nghệ Agent. 21
2.1.1 Khái niệm. .21
2.1.2 Một số ứng dụng của công nghệ agent .23
2.1.2.1 Ứng dụng trong quản lý sản xuất .23
2.1.2.2 Tác tử quản lý quá trình và luồng công việc .23
2.1.2.3 Tác tử thu thập và quản lý thông tin .24
2.1.2.4 Tác tử phục vụ thương mại điện tử .24
2.1.2.5 Tác tử giao diện .25
2.1.2.6 Trò chơi sử dụng tác tử . .25
2.2 Công nghệ Mobile Agent .26
2.2.1 Khái niệm .26
2.2.1.1 Nguồn gốc .26
2.2.1.2 Sự tiến hoá từ các mô hình ứng dụng phân tán .28
2.2.1.3 Các định nghĩa .29
2.2.1.4 Tính chất của Mobile Agent .30
2.2.2 Các đặc tính của Mobile Agent .30
2.2.3 Một số hệ thống Mobile Agent .31
2.2.3.1 Aglets .31
2.2.3.2 Voyager .32
2.2.3.3 Mole 33
2.2.3.4 Zeus .35
2.2.4 Ứng dụng của Mobile Agent .36
2.2.4.1 Giảm tải mạng .36
2.2.4.2 Khắc phục sự trễ mạng .37
2.2.4.3 Đóng gói các giao thức .37
2.2.4.4 Thi hành không đồng bộ và tự trị .37
2.2.4.5 Thích ứng nhanh .37
2.2.4.6 Khắc phục tình trạng không đồng nhất .38
2.2.4.7 Mạnh mẽ và có khả năng chế ngự lỗi cao .38
2.2.5 Các lĩnh vực nghiên cứu tiềm năng của mobile agent .38
2.2.5.1 Thương mại điện tử .38
2.2.5.2 Thu thập thông tin phân tán .39
2.2.5.3 Theo dõi và thông báo tin cập nhật .39
2.2.5.4 Giám sát và phổ biến thông tin . .39
2.2.5.5 Xử lý song song .40
2.2.5.6 Quản trị hệ thống mạng .40
2.2.5.7 Hỗ trợ các thiết bị di động .40
2.2.6 Nguyên lý hoạt động .40
2.2.6.1 Kỹ thuật Pull Code .40
2.2.6.2 Kỹ thuật Push Code .41
2.2.6.3 Kỹ thuật Autonomous Code .42
Chương III: Ứng dụng Mobile Agent trong Workflow .44
3.1 Khái niệm .45
3.2 Ích lợi của áp dụng workflow 46
3.3 Các dạng workflow .46
3.3.1 Dạng đơn giản 46
3.3.1.1 Tuần tự . 46
3.3.1.2 Phân luồng song song .47
3.3.1.3 Đồng bộ hoá 47
3.3.1.4 Phép chọn loại trừ 48
3.3.1.5 Trộn đơn giản .48
3.3.2 Các dạng nâng cao .49
3.3.2.1 Chọn đa nhánh .49
3.3.3.2 Trộn đồng bộ hoá 50
3.3.2.3 Trộn đa nhánh .50
3.3.2.4 Discriminator .51
3.3.2.5 Các vòng lặp tuỳ ý .52
3.3.2.6 Kết thúc không tường minh .52
3.3.2.7 Đa thể hiện không đồng bộ . .53
3.3.2.8 Đa thể hiện với thông tin biết trước ở thời điểm thiết kế 53
3.3.2.9 Đa thể hiện với thông tin biêt trước ở thời điểm thực thi 54
3.3.2.10 Đa thể hiện không biết trước thông tin .54
3.3.2.11 Chọn lựa bị trì hoãn . .55
3.3.2.12 Đường vào song song 55
3.3.2.13 Cột mốc .56
3.3.2.14 Widthdraw .56
3.3.2.15 Huỷ trường hợp .57
3.4 Kết hợp kỹ thuật Mobile Agent và Workflow .57
3.4.1 Ích lợi . .57
3.4.2 Phương pháp ứng dụng Mobile Agent trong Workflow . 58
3.5 Các hướng nghiên cứu khi tích hợp Mobile Agent và workflow .61
3.5.1 Agent Enhanced Workflow 61
3.5.2 Agent Based Workflow .61
3.6 Mô phỏng ứng dụng.61
3.6.1 Mô tả bài toán.61
3.6.2 Agent host.62
3.6.3 Cấu trúc hệ thống.62
3.6.4 Quá trình hoạt động.65
3.6.5 Các đối tượng sử dụng.65
3.6.6 Các lỗi có thể xảy ra.66
Kết luận và đánh giá.67
Tài liệu tham khảo.69
69 trang |
Chia sẻ: lynhelie | Lượt xem: 1531 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Chuyên đề Tìm hiểu công nghệ Agent và nghiên cứu ứng dụng Mobile Agent trong Workflow, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Khi kết nối các máy tính, các mạng cục bộ vào Internet, các ứng dụng người dùng phải đối mặt với một môi trường không đồng nhất cả về phần cứng lẫn kiến trúc, hệ điều hành. Và bài toán tương thích, dễ mang chuyển sẽ là vấn đề cần giải quyết
Sự khập khiễng về đường truyền: Mặc dù ngành viễn thông đã đạt được những tiến bộ đáng kinh ngạc và cho ra đời các loại cáp quang với độ truyền tải nhanh đáng kể, đa số người dùng vẫn bị giới hạn với các kết nối như Modem, các đường truyền băng thông thấp với mạng không dây
Với tất cả những đặc điểm trên đây, các ứng dụng phân tán phát triển theo mô hình Client- Server truyền thống tỏ ra một số bất lợi vì đòi hỏi làm việc đồng bộ, đòi hỏi đường truyền băng thông cao, độ trễ thấp và cuối cùng là các dịch vụ thiếu linh động, khó thay đổi hay bổ sung. Mobile Agent là một mô hình trong đó các tiến trình- được gọi là Agent- có tính tự trị và khả năng di động từ máy chủ sang máy khách để hoàn tất các tác vụ. Ý tưởng chủ đạo của Mobile Agent là di chuyển xử lý đến gần nguồn dữ liệu, nhờ đó có thể giảm tải mạng, khắc phục tình trạng trễ, hỗ trợ xử lý không đồng bộ và tạo ra sự tương thích mạnh trên các môi trường không đồng nhất. Mobile Agent với các ưu điểm này hứa hẹn một giải pháp mới, hiệu quả và dễ dàng hơn trong việc phát triển ứng dụng phân tán.
2.2.1.2 Sự tiến hoá từ các mô hình ứng dụng phân tán
Theo truyền thống, một ứng dụng phân tán có cấu trúc xây dựng trên mô hình client – server sẽ thực hiện giao tiếp thông qua cơ chế truyền thông điệp hoặc các lời gọi hàm từ xa (RPCs). Các mô hình giao tiếp này thường phải đồng bộ, nghĩa là phía client tạm ngưng hoạt động của mình trong thời gian gửi yêu cầu đến server và đợi đến khi nhận được kết quả trả về từ server. Một kiến trúc tiến bộ hơn là Remote Evaluation (REV) do Stamos và Gifford đưa ra vào năm 1990. Trong mô hình REV, thay vì yêu cầu thực hiện các hàm từ xa thì client chỉ việc gửi mã nguồn các hàm của nó đến server và yêu cầu server thực thi rồi trả về kết quả. Một số hệ thống gần đây cũng đã giới thiệu khái niệm thông điệp chủ động (active messages) có thể di trú giữa các vị trí trên mạng, mang theo mã của chương trình để thực thi tại đó. Mobile agent là mô hình tiến hoá tiên tiến nhất so với các mô hình trước đó.
Mobile agent là danh từ ghép giữa agent và mobile. Một mobile agent là một chương trình có khả năng di chuyển một cách tự trị từ nút mạng này sang nút mạng khác và thực hiện các xử lý thay thế cho con người để đạt được mục tiêu được giao phó. Khi di chuyển, các mobile agent đóng gói mã nguồn, dữ liệu và cả trạng thái thi hành, nhờ vậy mobile agent có thể dừng việc thi hành đang thực hiện tại máy này, di chuyển sang máy khác và khôi phục lại sự thi hành tại máy đích.
Client
Server
Tham số (dữ liệu)
Kết quả (dữ liệu)
RPC
Client
Server
Hàm (mã nguồn)
Kết quả (dữ liệu)
RFV
Server 1
Server 2
Client
Server 3
1. agent gửi đi
2. agent di trú
3. agent di trú
4. agent di trú
Agent
Mobile Agent
Hình 2.2: Sự tiến hoá của mô hình mobile agent
2.2.1.3 Các định nghĩa
Mobile Agent là những thành phần phần mềm, bao gồm mã chương trình, dữ liệu và trạng thái hoạt động, có thể tự mình di chuyển từ nơi này sang nơi khác.
Mobile Agent chính là 1 dạng của mobile code (là những chương trình chuyển mã đến Client và thực thi ở đó).
Mobile Agent ngoài những tính năng cơ bản giống với mobile code còn có khả năng mang theo mình dữ liệu, trạng thái thực thi, di chuyển trong mạng dưới sự kiểm soát của chính nó. Vì vậy Mobile Agent an toàn hơn mobile code khi sử dụng.
2.2.1.4 Tính chất của Mobile Agent
Có khả năng di trú từ nơi này sang nơi khác
Liên lạc được với nhau, nhân bản, nhập lại và tổng hợp tính toán
Một số agent có khả năng cung cấp dịch vụ hoặc giao diện cho các ứng dụng kế thừa
Có kích thước nhỏ
Có khả năng xác định và dùng những tài nguyên trên máy tính đang chứa nó.
2.2.2 Các đặc tính của Mobile Agent
Tính tự trị (autonomous): là khả năng tự kiểm soát bản thân của agent sau khi được giao việc mà không cần có sự can thiệp nào của người dùng hoặc các agent khác. Hai đặc tính hướng đích (goal-orient) và tính tự chủ (pro-activeness) thường được dùng để đánh giá mức độ tự trị của agent. Khả năng tự trị của agent chủ yếu được quyết định bởi tri thức trang bị cho agent.
Tính di động (mobility): là khả năng di chuyển từ môi trường thi hành này sang môi trường thi hành khác của một agent. Khả năng di động của một agent được phân thành hai loại: 1) Di động mạnh (strong mobility) là khả năng mà hệ thống có thể di chuyển cả mã chương trình và trạng thái thi hành của agent đến một môi trường khác. 2) Di động yếu (weak mobility) là khả năng của hệ thống chỉ có thể di chuyển mã chương trình giữa các môi trường thi hành với nhau, mã nguồn có thể mang kèm theo một số dữ liệu khởi tạo nhưng trạng thái thi hành thì không thể di chuyển.
Tính thích ứng (reactiveness): là khả năng của agent có thể thực thi trên những môi trường lạ và cảm nhận được sự thay đổi của môi trường.
Khả năng cộng tác (collaboration): là khả năng liên lạc, phối hợp hoạt động của agent với các agent cùng môi trường hay với các loại đối tượng khác trong những môi trường khác.
2.2.3 Một số hệ thống Mobile Agent
2.2.3.1 Aglets
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.
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 hoá và mở rộng của applet và servlet. Aglet server là một 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 aglets một cách an toàn.
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 API, khả năng nổi tiếng của Java là “viết một lần, thi hành bất cứ đâu”. Một khi aglets được tạo ra, nó sẽ chạy trên máy có hỗ trợ Aglet API mà không quan tâm đến nguồn gốc hệ điều hành và phần 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.
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, 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 hai loạ 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 tronh những flatform đượ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 - 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.
2.2.3.2 Voyager
Voyager là một môi trường thương mại hỗ trợ phát triển các ứng dụng agent được hãng Object Space phát triển từ giữa năm 1996. Voyager đã trải qua nhiều lần nâng cấp và thay đổi từ phiên bản 1.0 cho đến bây giờ là phiên bản 4.5. Tháng 03.2002 sản phẩm Voyager được nhượng lại cho Recursion Software, một công ty chuyên về các sản phẩm viết trên C++ và Java để đảm bảo cho việc phát triển Voyager sau này. Các phiên bản từ 1.0 đến 3.3 Voyager được phân phối cho các nhà phát triển như một freeware. Hiện tại Voyager đã có phiên bản 4.5 Evaluation hoàn toàn tương thích với JDK1.3, JDK1.2 và JDK1.1. Phiên bản này bao gồm 6 sản phẩm, trong đó sản phẩm chính yếu dùng cho các ứng dụng mobile agent là Voyager ORB Proffessional.
Voyager sử dụng ngôn ngữ lập trình Java với cú pháp chuẩn để tạo dựng các đối tượng ở xa một cách rất dễ dàng, cho phép các đối tượng này trao đổi thông điệp với nhau, và di chuyển các đối tượng giữa các máy tính có hỗ trợ môi trường Voyager. Voyager hỗ trợ mạnh về tính di động với khả năng mang toàn bộ mã chương trình và dữ liệu di chuyển từ máy ảo Java này sang máy ảo Java khác nếu các máy ảo có hỗ trợ Voyager. Trạng thái hoạt động của agent cũng sẽ được bảo toàn và tiếp tục thực thi tại nơi agent đến.
Một trong những đặc điểm nổi trội khác của Voyager là tính phổ quát. Các chương trình viết trong Voyager có thể trao đổi thông tin hai chiều với các chương trình viết bằng SOAP, CORBA, RMI và DCOM. Các dạng thông tin được trao đổi có thể là các lời gọi hàm từ xa, các dịch vụ đặt tên, dịch vụ thư mục. Voyager có thể được xem là một cửa ngõ, một cầu nối làm cho các chương trình theo chuẩn khác trở nên liên thông với nhau. Hơn nữa, tất cả các chương trình và đối tượng có thể tổ chức thành một không gian chung, nhờ vậy việc liên lạc sẽ trở thành một - nhiều một cách tự động.
Phiên bản 4.5 của Voyager đã được bổ sung thêm các tính năng rất quan trọng hỗ trợ cho các chuẩn dịch vụ Web. SAOP và WSDL cũng đã được phát triển trong phiên bản này giúp các nhà phát triển có khả năng triển khai các ứng dụng truy cập tới các dịch vụ Web từ xa và các chương trình Voyager có thể truy cập nhau thông qua các dịch vụ Web.
Thế mạnh thật sự củat Voyager nằm ở sự đơn giản và dễ dùng. Sự “trong suốt” hay cách mà Voyager che dấu các kỹ thuật lập trình phân tán phức tạp đã làm cho việc xây dựng các ứng dụng mobile agent trở nên dễ dàng hơn rất nhiều. Việc tích hợp công nghệ mới và các chuẩn mới vào cùng một sản phẩm tạo cho Voyager sự hấp dẫn riêng biệt.
2.2.3.3 Mole
Là hệ thống mobile agent được xây dựng với ngôn ngữ Java tại đại học Stugart của Đức. Phiên bản đầu tiên 1.0 đã hoàn thành năm 1995, 1997 phiên bản 2 được hàon thành và phiên bản 3 hoàn tât nắm 1998 và đề án đã kết thúc với kết quả là môi trường ổn định để xây dựng ứng dụng thoe mô hình agent trên các hệ phân tán.
Được xây dưng trên Java, Mole có khả năng thực thi trên tât cả các môi trường có hỗ trợ JDK1.1.x (JDK1.1.7 và JDK1.1.8), sử dụng giao thức TCP/IP trong quá trình giao tiếp. Mole hỗ trợ di chuyển yếu – weak migration.
Để thực hiện giao tiếp giữa các giao tiếp Agent – Mole sử dụng các cơ chế truyền thông điệp, gọi hàm từ xa RPCs và cơ chế đặc trưng của Mole là session, badge. Ngôn ngữ giao tiếp giữa các agent được Mole hỗ trợ là KQML. Việc trao đổi dữ liệu giữa các agent được thực hiện theo giao thức TCP/IP. Mole cho phép đa tiểu trình / agent và quản lý tài nguyên và lập lịch các tiểu trình trong hệ thống qua bộ lập lịch trung tâm MCP. Khả năng bảo mật của Mole được đánh giá khá tốt trong các hệ thống agent. Mole tuân theo mô hình bảo mật SANDBOX của Java. Agent trong hệ thống Mole được chia thành 2 loại: user agent và system agent. User agent là những agent di đông được kích hoạt bởi người dùng và không thể truy cập trực tiếp tài nguyên hệ thống. Ngược lại, system agent (service agent) được khởi động bởi người quản trị - không có tính di động và được phép truy cập tài nguyên hệ thống.
Môi trường Mole phù hợp cho phát triển những ứng dụng trong các lĩnh vực: truyền thông, ứng dụng thuộc hệ thống thông tin điện tử. Một số ưng dụng đựoc phát triển trên môi trường Mole: AIDA – Infrastructure for Mobile Agent, ASAP, ATOMAS, FESTIVAL (Mole office, Mole shopping), HAWK.
Vói hệ thống mã nguồn mở của Mole, ta có thể tiến hành cải tiến, nâng cấp những chức năng hiện có, và bổ xung những chức năng mới như các chức năng về công cụ hỗ trợi lập trình agnet để Mole trở thành hệ thống agent hiện đại hỗ trợ tốt cho việc phát triển các ứng dụng dựa theo mô hình Agent.
2.2.3.4 Zeus
Zeus là môi trường do British Telecommunication phát triển để hỗ trợ xây dựng các hệ thống đa agent. Ngoài các tính năng thông thường trong việc tạo lập và quản lý các agent, Zeus đặc biệt chú trọng việc hỗ trợ một phương pháp luận và một bộ công cụ mạnh để phát triển đa agent trong môi trường phân tán.
Zeus định nghĩa một phương pháp luận để phân tích, thiết kế, triển khai hệ thống và còn kèm theo các công cụ cho phép người phát triển có thể bắt lỗi hệ thống cũng như phân tích sự thực hiện của mình. Hai giai đoạn phân tích và thiết kế được mô tả chi tiết trong [COL-99] nhưng chưa được hỗ trợ bởi các công cụ. Zeus Toolkit hỗ trợ hai giai đoạn cài đặt và bảo trì Zeus Toolkit qua các công cụ Zeus Agent Generator và Zeus Agent Visualiser. Zeus cung cấp nhiều Editor để định nghĩa agent và các thuộc tính của agent. Code Generator sẽ tự động phát sinh mã nguồn cho agent từ những thuộc tính đã đặc tả.
Hai đặc tính quan trọng của các Zeus agent là tính tự trị và cộng tác. Bộ phận Planner trong mỗi agent sẽ hỗ trợ agent thể hiện tính tự trị. Khả năng thương lượng và cộng tác giữa các agent cũng được Zeus tích hợp vào trong Toolkit thông qua một thư viện các giao thức, cùng các chiến lược thương lượng và cộng tác. Do có mã nguồn mở, người dùng có thể thêm vào thư viện này các chiến lược riêng phù hợp với ứng dụng của mình.
Các Zeus agent truyền thống theo point-to-point socket TCP/IP với mỗi message là một chuỗi các kí tự mã ASCII. Ngôn ngữ truyền thông Zeus sử dụng là FIPA ACL. Nhằm cung cấp khả năng “hiểu” lẫn nhau giữa các agent, Zeus cung cấp các công cụ cho việc định nghĩa các ontology-cơ sở khái niệm chung cho cộng đông agent.
Các agent của Zeus được phân tán qua mạng và có thể thực hiện các tác vụ đồng thời. Chính vì thế, việc quản lý các agent cũng là một vấn đề mà môi trường đặt ra. Visualiser của Zeus cung cấp các công cụ để kiểm tra các quan hệ giao tiếp giữa các agent, trạng thái tác vụ những agent đang thực hiện và trạng thái bên trong của agent. Đồng thời, Zeus Statistic Tool cho phép người dùng so sánh các thống kê khác nhau về cộng đồng agent, chẳng hạn những loại thông điệp nào agent đã gửi và tỉ lệ là bao nhiêu, một cách trực quan dưới những dạng đồ thị khác nhau. Cũng nhằm quản lý agent, Zeus cung cấp những agent tiện ích như Agent Name Server hoạt động như một Yellow Page, Facilitator như một White Page, Visualiser và Database Proxy.
Một hạn chế của Zeus là tuy được liệt kê vào một trong những môi trường Mobile Agent nhưng hiện hướng nghiên cứu về tính di động của Zeus mới ở bước đầu, chưa được cài đặt. Do đó mà tính bảo mật của Zeus cho các Agent hầu như không có. Điều này có thể sẽ được khắc phục trong các phiên bản sau.
Zeus đã và đang được triển khai trong một số ứng dụng như Agent Based Workflow Management, PTA: Personal Travel Assistance, Personal Computer Manufacture, Agent-based Electronic Commerce, Network Management (VPNP), Home Shopping.
2.2.4 Ứng dụng của Mobile Agent
2.2.4.1 Giảm tải mạng
Kỹ thuật mobile agent cho phép người dùng đóng gói cuộc trao đổi, gửi nó đến máy đích và thực hiện xử lý dữ liệu, trao đổi cục bộ tại đó. Như thế sẽ góp phần làm giảm những dòng dữ liệu thô trên mạng; và như thế, tải mạng sẽ giảm đáng kể. Phương châm thực hiện của kỹ thuật mobile agent là: mang xử lý đến nơi chúng chứa dữ liệu hơn là mang dữ liệu về chỗ xử lý.
2.2.4.2 Khắc phục sự trễ mạng
Việc điều khiển các hệ thống với quy mô lớn thông qua mạng sẽ phải chấp nhận một sự trễ nhất định. Nhưng điều đó lại không được phép xảy ra trong các hệ thống thời gian thực như điều khiển robot, quy trình sản xuất Khi đó, giải pháp mobile agent tỏ ra hữu ích trong việc khắc phục độ trễ nhờ vào việc các agent có thể gửi đi từ một trung tâm điều khiển và hành động cục bộ, tự trị, trực tiếp thi hành các chỉ dẫn của người điều khiển.
2.2.4.3 Đóng gói các giao thức
Khi dữ liệu được trao đổi trong hệ thống phân tán, việc truyền và nhận dữ liệu phải được mã hoá bởi các giao thức cần thiết. Các giao thức này được sở hữu bởi một máy trong hệ thống. Tuy nhiên, một khi các giao thức phải tiến hoá để phù hợp với những yêu cầu mới về sự bảo mật hoặc tính hiệu quả, chúng bắt đầu trở nên cồng kềnh, nặng nề và trở thành vấn đề nan giải. Riêng với giải pháp mobile agent, các agent có thể mang trên mình các giao thức thích hợp và di chuyển tới các máy ở xa để thiết lập kênh truyền nhận thông tin tương ứng.
2.2.4.4 Thi hành không đồng bộ và tự trị
Thông thường, các thiết bị di động thường phụ thuộc vào các kết nối mạng đắt tiền nhưng rất yếu ớt. Vì thế, những tác vụ cần có kết nối liên tục giữa thiết bị di động và mạng cố định có thể sẽ không có tính kinh tế hoặc không khả thi về mặt kỹ thuật. Giải pháp mobile agent giải quyết vấn đề này bằng cách nhúng tác vụ cần thực hiện vào agent, rồi gửi lên mạng. Sau khi được gửi đi, agent trở nên độc lập thi hành không đồng bộ và có khả năng tự trị. Các thiết bị di động sau đó có thể kết nối trở lại để đón agent về.
2.2.4.5 Thích ứng nhanh
Các agent có khả năng cảm nhận những thay đổi của môi trường thi hành và tác động trở lại những thay đổi ấy một cách tự động.
2.2.4.6 Khắc phục tình trạng không đồng nhất
Việc xử lý tính toán trên mạng cơ bản là không đồng nhất vì sự đa dạng về phần cứng và phần mềm được sử dụng. Do mobile agent độc lập với máy tính (phần cứng và hệ điều hành) và tầng vận chuyển, chỉ phụ thuộc vào môi trường thi hành, nên chúng cung cấp một điều kiện tối ưu cho việc liên kết các hệ thống không liên quan gì lại với nhau.
2.2.4.7 Mạnh mẽ và có khả năng chế ngự lỗi cao
Với khả năng phản ứng năng động với các sự kiện và thay đổi bất lợi, mobile agent giúp cho việc xây dựng hệ thống mạnh mẽ và chịu lỗi cao được dễ dàng hơn.
2.2.5 Các lĩnh vực nghiên cứu tiềm năng của mobile agent
Hiện nay, theo các nghiên cứu về agent, chưa có một ứng dụng nào có thể được xem như là ứng dụng đặc trưng (kill application) dành cho công nghệ mobile agent. Với tất cả những kết quả đạt được hiện nay với mobile agent, người ta đều đạt được bằng công nghệ truyền thống. Tuy nhiên, trong một vài trường hợp, mobile agent có thể là giải pháp tối ưu. Mobile agent có thể được áp dụng trong nhiều lĩnh vực như:
2.2.5.1 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à đò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 đượ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 một ứ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 agent là một giải pháp rất hấp dẫn.
2.2.5.2 Thu thập thông tin phân tán
Trong trường hợp có nhu cầu truy vấn phức tạp, chuyên biệt, liên quan tới nhiều nguồn dữ liệu phân tán, không đồng nhất, việc cử các mobile agent di chuyển đến các nguồn để khai thác tại chỗ và cuối cùng là quay về với những thông tin cần thiết sẽ cho phép giảm tải mạng và giải quyết tốt hơn bài toán tương thích. Mobile Agent for WWW Distr.DB Access (University of Cyprus), và Distributed Query Processing via Mobile Agents (University of Maryland), DBMS là những dự án thuộc loại ứng dụng này.
2.2.5.3 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 thông tin và hoạt động theo dõi nguồn thông 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. Weather Alarm (University of Tromso) và JobFinder, Mole Office là một trong những đại diện của loại ứng dụng này.
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 hoặc tự nó có những hành động thích hợp với thông tin đó.
2.2.5.4 Giám sát và phổ biến thông tin
Các mobile agent là một minh hoạ 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 tự động cho các nhà sản xuất. Các agent mang các software components cũng như 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 cho nhà sản xuất chủ động hơn trong việc phục vụ khách hàng để đảm bảo chất lượng dịch vụ của mình. Mặt khác, các ứng dụng thuộc loại 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ý qui trình hoạt động, sản xuất để giúp người quản trị giám sát các hệ thống con. Có thể thể tìm thấy những loại ứng dụng này trong các dự án Banking Dartflow, Autopilot
2.2.5.5 Xử lý song song
Vì các mobile agent tạo ra nhiều bản sao của nó trên mạng, một ứng dụng đầy tiềm năng của mobile agent là quản trị các tác vụ song song. Một ứng dụng đòi hỏi quá nhiều tài nguyên bộ xử lý có thể được phân bổ cho các mobile 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 rảnh rỗi và cân bằng tải. Hệ mobile agent không đồng nhất là một minh hoạ khai thác ưu điểm này của mô hình mobile agent.
2.2.5.6 Quản trị hệ thống mạng
Đối với những hệ thống mạng lớn, việc chuẩn đoán lỗi, duy trì sự ổn định của hệ thống là công việc rất khó khăn. Việc ứng dụng mobile agent vào quản trị mạng sẽ giúp cho các công việc chuẩ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.2.5.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. Trong số các đề án về loại ứng dụng này có thể kể đến Sony Magic Link PDA (xây dựng trên Telescript), TACOMA, Mobile Agent Middlerware tại Darmouth College và đề án Docking Laptop tại University of Maryland.
2.2.6 Nguyên lý hoạt động
2.2.6.1 Kỹ thuật Pull Code
Áp dụng trong mô hình Client – Server, bắt đầu từ khi Client gửi yêu cầu đến Server, Server sẽ gửi code đến Client và code thực thi, cho ra kết quả ở Client.
Code
Request code
Server
Client
Bước 1: Client gửi yêu cầu đến Server
Code
Request code
Server
Client
Code
Bước 2: Code được Server gửi đến Client
Code
Server
Client
Code
Execute
Bước 3: Code được thực thi ở Client
Hình 2.3: Các bước của kỹ thuật Pull Code
Ví dụ: các Java Applet thực thi theo kỹ thuật này
Chú ý: Trong mô hình này, một bản sao của code được Server gửi tới Client để thực thi, Server sẽ vẫn giữ lại code.
2.2.6.2 Kỹ thuật Push Code
Khi người dùng có yêu cầu, một máy (1 node) trong mạng sẽ gửi code tới máy khác trong mạng và thực thi ở đó. Quá trình này gồm 2 bước:
Bước 1: Tự bản thân máy A gửi yêu cầu đến máy B mà không có yêu cầu từ phía B. Trong mô hình này, máy A chỉ đóng vai trò là máy có nối mạng với B chứ không cần A là Server.
Bước 2: Sau khi gửi yêu cầu đến máy B, code được thực thi ở máy B.
Code
Node A
Node B
Code
Remote exec
Bước 1: Code được gửi tới máy
Code
Node A
Node B
Code
Execute
Bước 2: Code được thực thi ở máy B
Hình 2.4: Các bước của kỹ thuật Push Code
Chú ý: Ở A vẫn lưu trữ một bản sao của Code
2.2.6.3 Kỹ thuật Autonomous Code
Code sẽ tự quyết định đi đâu và thực thi ở đâu.
Node A
Node B
Code
Execute
Code
migrate
Bước 1: Code sau khi thực thi ở A sẽ tự động đóng gói và di chuyển tới B.
Node A
Node B
Code
Execute
Bước 2: Code thực thi ở máy B, lúc này code không còn ở máy A nữa.
Hình 2.4: Các bước của kỹ thuật Autonomous Code
Ví dụ: mobile agent hoạt động theo phương pháp này
Tự động di trú và đóng gói là điểm khác biệt của phương pháp này so với 2 phương pháp trên.
Chương III
ỨNG DỤNG MOBILE AGENT TRONG WORKFLOW
Tổng quan về Workflow
Các mô hình Workflow
Phương pháp ứng dụng Mobile Agent trong Workflow
Trong chương này sẽ trình bày một cách tổng quan về Workflow, các mô hình workflow, phương pháp ứng dụng Mobile Agent trong Workflow, các ích lợi mà phương pháp đó mang lại, các hướng nghiên cứu về ứng dụng Mobile Agent trong Workflow
Công việc quản lý workflow xuất phát từ những công việc đòi hỏi tính tự động trong những văn phòng doanh nghiệp, trong đó mọi tài liệu phải được số hoá và lưu chuyển giữa các nhóm làm việc. Ngày nay công việc quản lý workflow thu hút rất nhiều sự quan tâm dựa vào khả năng của nó trong mô hình hoá, thực thi và quản lý tiến trình. Tiến trình công việc không phải là tiến trình trong quản lý 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 trong quản lý workflow là ứng dụng nó trong quản lý kinh doanh.
Workflow giúp nhà quản trị lên kế hoạch, quản lý một cách tự động các nhiệm vụ, giám sát tiến trình công việc, đưa thông tin đến từng thành viên đúng lúc, có được cái nhìn tổng quan về tiến trình công việc.
Có hai cách hiểu về workfl
Các file đính kèm theo tài liệu này:
- 7944.doc