Showing posts with label Phần mềm. Show all posts
Showing posts with label Phần mềm. Show all posts

Wednesday, October 12, 2016

Công nghệ Agent trong quản lý mạng Internet

Công nghệ Agent trong quản lý mạng Internet

Sự ra đời của công nghệ Agent, đặc biệt là Agentphần mềm có thể là một câu trả lời cho các bài toán quản lí mạng hóc búa. Xu hướng quản lý mạng hiện nay thường theo kiểu tập trung (centralized) do đó phải sử dụng các ứng dụng tương đối lớn thì mới có thể thực hiện được các đặc tính thông minh của hệ thống, người ta sẽ sử dụng một số các hệ thống nhỏ hơn có quan hệ mật thiết với nhau hoặc các Agentcó thể giao tiếp được với nhau (điều này không chỉ đơn thuần là chia nhỏ hệ thống, vì nó yêu cầu phức tạp hơn nhiều).



1. Giới thiệu


Ngày nay, cùng với sự phát triển như vũ bão của công nghệ thông tin, điện tử viễn thông, mạng viễn thông nói chung và mạng Internet nói riêng ngày càng hiện đại và phức tạp. Điều này đòi hỏi người điều hành mạng phải có một kiến thức rất rộng và phải được đào tạo và cập nhật kiến thức thường xuyên. Việc quản lý nhiều loại mạng khác nhau sẽ yêu cầu phải thu thập một khối lượng lớn các số liệu, các số liệu này phải được phân tích xử lý trước khi đưa ra một biện pháp quản lý thực sự, điều này sẽ gặp rất nhiều khó khǎn cho người điều hành nếu không có một công cụ hiệu quả trong tay. Đồng thời với sự phức tạp của mạng thì đối với người sử dụng việc nâng cao độ tin cậy và chất lượng dịch vụ được mong đợi cao hơn. Sự ra đời của công nghệ Agent , đặc biệt là Agent phần mềm có thể là một câu trả lời cho bài toán quản lí mạng hóc búa này. Xu hướng quản lý mạng hiện nay thường theo kiểu tập trung (centralized) do đó phải sử dụng các ứng dụng tương đối lớn thì mới có thể thực hiện được các đặc tính thông minh của hệ thống, người ta sẽ sử dụng một số các hệ thống nhỏ hơn có quan hệ mật thiết với nhau hoặc các Agent có thể giao tiếp được với nhau (điều này không chỉ đơn thuần là chia nhỏ hệ thống, vì nó yêu cầu phức tạp hơn nhiều). Với sự phát triển của trí tuệ nhân tạo, thì một Agent có thể được nhìn nhận theo mô hình BDI (Belift-Desires-Intentions), và được sử dụng để có thể trao đổi thông tin, đưa ra các kết quả hoặc kết hợp các kết quả một cách thông minh, nhưng cũng đơn giản hơn mô hình đang sử dụng hiện tại.


Hiện nay, việc quản lí mạng nói chung đều dựa trên mô hình client/server. Cho dù hệ thống Agent có thể hoạt động với bất kỳ công nghệ client/server nào nhưng nó khác với hệ thống client/server do nó không phân biệt rõ ràng đâu là client đâu là server. Tất cả các Agentđược uỷ quyền một nhiệm vụ hay vai trò do người thiết kế hoặc người sử dụng hoặc một Agent giám sát gán cho. Các hệ thống quản lý mạng khi sử dụng công nghệ Agent với một đặc tính của Agent đó là tính di động sẽ thuận lợi hơn so với mô hình client/server thông thường, cũng như hệ thống dựa trên các Agent tĩnh.



2. Agent di động


2.1. Khái niệm về Agent


Sẽ thật không dễ dàng khi đi tìm một khái niệm chính xác cho Agent. Nó là một khái niệm cực kỳ rộng lớn, bao hàm nhiều vấn đề, theo nhà nghiên cứu Krogh "Agent là gì? Nó là rất nhiều thứ. Nếu cố gắng tìm ra một mẫu thức chung về hoạt động hay lí thuyết về Agent thì bạn có thể gặp sai lầm", và ông đã chỉ ra một số các điểm mâu thuẫn giữa các khái niệm Agent như tính tiên đoán, tính phản ứng, tính suy diễn.


Để có thể hiểu rõ hơn về Agent , ở đây ta nên thu hẹp phạm vi của Agent , đó là Agent phần mềm: "Đó là một thực thể phần mềm, hoạt động theo sự uỷ quyền của các Agent khác, của người điều khiển, nó có khả nǎng tự động, thực hiện tiên đoán, phản ứng và một số khả nǎng như tự học, tự di chuyển, hoạt động theo kiểu cộng tác. Ta có thể coi đây là một mô hình Agent cơ sở.


Ngoài ra Agent phần mềm còn xác định một số khái niệm khác: mô hình vòng đời, mô hình tính toán, mô hình giao tiếp truyền thông, mô hình bảo mật, mà nằm ngoài khuôn khổ bài báo


2.2. Agent di động


Bây giờ thì rất dễ dàng để hiểu được khái niệm Agent di động: là một Agent phần mềm có khả nǎng thay đổi vị trí. Agent di động còn được trang bị thêm một đặc tính nữa đó là mô hình di chuyển. Công nghệ được sử dụng cho Agent di động: code di động (mobile code) hoặc remote object với Agent TCL, Telescript hoặc gần đây là Aglets.


Để có thể sử dụng các Agent di động, thì hệ thống cần có một framework: cung cấp các tính nǎng và hỗ trợ hầu hết các mô hình Agentdi động kể cả cách thức di chuyển của Agent.


Mô hình đời: cần một số tiện ích tạo, huỷ, dừng, tạm dừng, một Agent.


Mô hình tính toán: khả nǎng điều khiển thread, vận hành quản lý dữ liệu


Mô hình bảo mật: đó là các cách để cho Agent có thể truy nhập tài nguyên mạng cũng như các cách để truy nhập tới Agent từ mạng.


Mô hình giao tiếp, truyền thông: xác định cách thức truyền thông giữa các Agent và giữa Agent với các thực thể khác (ví dụ: mạng)


Tất cả các vấn đề liên quan đến việc di chuyển của một Agent(cùng với trạng thái của nó hoặc không) giữa hai thực thể (có thể là hai máy tính) nằm ở hai vị trí khác nhau đều dựa vào mô hình di chuyển. Với những yêu cầu trên, hiển nhiên, framework sẽ phải đáp ứng một số yêu cầu nhất định bao gồm: tǎng dung lượng bộ nhớ đồng thời đáp ứng được các yêu cầu về trễ khi truy nhập hoặc thi hành trên các thiết bị xác định. Tuy nhiên, với sự phát triển nhanh chóng của công nghệ thì vấn đề này dường như không quá khó khǎn. Một ví dụ về vấn đề này, đó là máy ảo Java (JVM-Java Virtual Machine), nó là cơ sở cho hầu hết các framework Agent , nó rất nhỏ và phù hợp cho việc nhúng vào hệ thống.


Và điều cuối cùng về khái niệm Agentdi động, đó là kích cỡ của chúng: không nhất thiết cố định, nó thay đổi tuỳ theo công việc mà chúng phải thực hiện. Với các Agentthông minh tổ chức kiểu tổ ong (swarm intelligent) thì lại có kích cỡ rất nhỏ, nhưng với các Agentcó nhiệm vụ cấu hình hoặc phân tích chẩn đoán thì kích cỡ của chúng khá là lớn (do chúng cần phải mang theo các thuật toán phức tạp, bộ máy phân tích). Điều quan trọng nữa, là các Agentcó thể mở rộng khả nǎng (nếu cần) bằng cách tải về các đoạn mã cần thiết từ tài nguyên mạng.


Tóm lại một Agentdi động sẽ đem lại một số lợi ích :


Tiết kiệm tài nguyên CPU.


Tiết kiệm không gian: Do nó chỉ ở tại mỗi nút mạng trong một thời điểm nhất định.


Giảm được lưu lượng trên mạng: các đoạn mã thường là nhỏ hơn rất nhiều so với khối lượng dữ liệu mà một Agent xử lý



2.3. Chuẩn về cơ cấu tổ chức Agent di động


Cũng như bất kì các hoạt động liên quan đến truyền thông, các khái niệm chung về Agent di động cho quản lí mạng sẽ phụ thuộc rất nhiều vào các tiêu chuẩn đưa ra. Tổ chức OMG (Open Management Group) đã đưa ra được bản phác thảo tiêu chuẩn (trong Bluebook) cho Agentnói chung và Agentdi động nói riêng. Mô hình này được chỉ ra trên hình vẽ [4], với khái niệm quần thể Agent : gồm một nhóm các hệ thống Agentcó thể truy nhập lẫn nhau và có quyền và nhận dạng tương tự nhau. Bản phác thảo này cũng đưa ra được mô hình tổ chức của một Agent thiên về CORBA, với giao thức IIOP được sử dụng như giao thức truyền vận và sử dụng một số dịch vụ có sẵn của CORBA (ví dụ: naming).




3. Ứng dụng của Agent di động trong quản lý mạng



Hệ thống quản lí mạng phức tạp nên còn nhiều vấn đề cần được nghiên cứu thử nghiệm với Agentphần mềm: dữ liệu cần xử lý rất lớn, các môi trường ngày càng hỗn tạp vơi nhiều loại thiết bị,…Các sự cố trên mạng luôn luôn có nguy cơ xảy ra: việc tràn dữ liệu trên mạng đòi hỏi người quản lí giám sát cần đưa ra giải pháp xử lí nhanh chóng. Lỗi phải được chẩn đoán một cách nhanh chóng chính xác và được tự động sửa hoặc thông báo đến người điều hành và đưa ra một số khuyến nghị về cách giải quyết. Trong mạng Internet hoặc mạng khác, người điều hành mạng phải làm việc từ xa với rất nhiều thiết bị (thường là ngồi ở trạm điều hành). Để có thể nắm bắt được tính đa dạng của các thành phần mạng thì các ứng dụng quản lí cần làm việc với nhiều giao diện hoặc các công cụ. Các hệ thống quản lí mạng thường là rất lớn và rất khó để duy trì hoạt động, chính vì vậy, chúng ta hãy điểm lại một số lĩnh vực ứng dụng trong quản lí mạng mà các Agent di động có thể sử dụng và cách sử dụng chúng trong từng lĩnh vực như thế nào.


Trước hết ta hãy tìm hiểu một số giao thức quản lí mạng:


Giao thức quản lí mạng SNMP (Simple Network Management Protocol). Giao thức quản lí mạng này được sử dụng để thiết lập các kênh truyền thông giữa NMS (Network Management Station) và nút mạng được quản lí với các nhiệm vụ, gửi đi các yêu cầu và nhận về các bản tin trả lời. Giao thức này tương ứng với tầng ứng dụng trong mô hình TCP/IP, và được sử dụng chính trong mạng Internet, và nó cúng được sử dụng với các giao thức truyền thông khác như IPX, AppleTalk, OSI. Nó gồm một số thành phần chính: thiết bị được quản lí, các Agent , các hệ thống quản lí mạng NM


Các chức nǎng quản lí mạng được tiêu chuẩn trong chuẩn OSI:


- Quản lí về lỗi: nó gồm một loạt các công cụ cho phép phát hiện, cách ly hoặc sửa lỗi: lỗi thực thi, lỗi thiết kế, lỗi quá tải, nhiễu, quá thời gian sống (lifetime). Nó gồm một số chức nǎng:


+ Kiểm tra lỗi, ghi lại lỗi (file .log), bảo dưỡng.


+ Chấp nhận và làm theo chỉ dẫn thông báo về lỗi


+ Nhận dạng lỗi


+ Tiến hành các bài kiểm tra phân tích lỗi.


+ Sửa lỗi.


- Quản lý cước: Gồm một số chức năng.


+ Thông báo với khách hàng về cước


+ Thông báo với khách hàng về cước trong tương lai


+ Giới hạn cước (ví dụ: không cho phép lớn hơn 6 kết nối điện thoại)


+ Tổng hợp cước (tránh cho khách hàng các hoá đơn cước lẻ tẻ).


- Quản lý cấu hình của mạng. Đôi khi còn được gọi là quản lí tên và cấu hình, nó gồm một số chức nǎng:


+ Ghi lại cấu hình hiện tại.


+ Ghi lại các thay đổi về cấu hình.


+ Nhận dạng các thành phần mạng.


+ Khởi tạo và đóng các hệ thống mạng.


+ Thay đổi các thông số trong mạng (ví dụ bảng cấu hình).


- Quản lí hoạt động của mạng. Nó rất cần để nâng cao QoS của mạng. Để thấy được sự thay đổi trong hoạt động của mạng, thì các dữ liệu cần được thu thập và thống kê thông qua các file .log. Điều này mang lại một số ưu điểm:


+ Các dữ liệu được ghi có thể được sử dụng bởi chức nǎng quản lí lỗi để phát hiện lỗi


+ Các dữ liệu được ghi có thể được sử dụng bởi chức nǎng quản lí cấu hính để quyết định khi nào cần thay đổi cấu hình


+ Và cũng có thể được sử dụng cho phần quản lí cước để điều chỉnh hoá đơn


- Quản lí bảo mật: Cho phép quản lí quá trình khởi tạo và thay đổi các chức nǎng bảo mật trong mạng chống lại sự truy nhập trái phép. Một số phần quan trọng được sử dụng: quản lí khoá truy nhập (chứng thực, mã hoá, uỷ quyền), quản lí firewall và tạo các bản ghi bảo mật.


Để có thể thấy hết được tiềm nǎng của việc sử dụng Agentdi động trong một số lĩnh vực quản lý mạng, chúng ta hãy bắt đầu bằng việc nghiên cứu mô hình mạng:


Mô hình hình mạng. Việc tự động tìm kiếm phát hiện là một trong những chức nǎng cơ bản của hệ thống quản lí mạng. Trong trường hợp đơn giản nhất, đó chỉ là tìm các thiết bị cả mạng.


Các đoạn mã di động được ví như một phương tiện thuận lợi nhất để thực hiện nhiệm vụ trên. Trong khi sự tìm kiếm phát hiện cơ bản trong mạng (chỉ đơn giản là phát hiện các nút mạng) không đủ phức tạp cần thiết cho việc sử dụng các đoạn mà di động, sự phức tạp hơn sẽ đem lại lợi ích lớn hơn từ những khả nǎng mới đó. Tuy nhiện việc tìm kiếm phát hiện trong mạng là phương tiện cơ sở cho định hướng mới. Một trong những kĩ thuật tìm kiếm phát hiện được sử dụng thông dụng là việc gửi đi các bản tin ping đến địa chỉ IP trong một vùng nào đó. Và quá trình tìm kiếm phát hiện sẽ đưa ra một cái nhìn tổng quan về mạng thông qua các bản tin trả lời. Nhưng bây giờ, các Agentdi động, được gọi là deglet (delegation-sự uỷ quyền), sẽ được sử dụng, các Agentnày có thể được tạo ra với một nhiệm vụ duy nhất là gửi các ID của nút mạng (mà nó di chuyển đến) đến nơi đã tạo ra nó (xem hình vẽ [6]). Sau đó, deglet này sẽ được đưa vào trong mạng và di chuyển theo các mẫu di chuyển được thực thi. Có nhiều vấn đề tương tự đã được giải quyết như trong thuật toán ping (ví dụ như phạm vi tìm kiếm) tuy nhiên phương thức mới được sử dụng sẽ linh hoạt hơn, chẳng hạn: nó không yêu cầu người sử dụng phải có kiến thức về mạng. Sự kết thúc nhiệm vụ được nhận ra ngay trong deglet, có thể bằng cách đếm các bước nhảy hoặc trung bình số lần kiểm tra của một nút mạng xác định.


Bằng Bằng cách ghép các ràng buộc của các deglet làm nhiệm vụ tìm kiếm chúng ta có thể tạo ra được các mô hình mạng. Các ràng buộc về loại của thiết bị trong các Agentdeglet tìm kiếm phát hiện sẽ cho kết quả một mô hình mạng chứa các thiết bị chỉ thuộc loại xác định ở trên. Những mô hình mạng này có thể được tạo ra một cách tự động, không nhất thiết cố định, chúng có thể thay đổi cho phù hợp với các yêu cầu của ứng dụng.


Nếu nhiệm vụ được uỷ quyền có tính chất không thay đổi, thì chúng ta có thể gọi các Agentthực hiện nhiệm vụ đó là các netlet. Các netlet được coi như là một phần thuộc cơ sở hạ tầng mạng. Và quá trình tìm kiếm phát hiện trở nên liên tục hơn, nhanh hơn khi sử dụng các netlet. Các netlet có thể phát hiện ra các thay đổi trong cấu hình mạng nên mô hình mạng thay đổi. Một số các netlet có thể được gán để thực thi các tác vụ đó, sự thay đổi về cấu hình đó có thể được phát hiện nhanh chậm tuỳ thuộc vào mật độ của các netlet (điều này hoàn toàn có thể điều khiển được), càng có nhiều các netlet trong mạng thì khả nǎng phát hiện sự thay đổi càng nhanh. Tuy nhiên, cũng có một số ràng buộc nhất định về số lượng các netlet trong mạng, ví dụ như khả thông, bǎng thông của mạng. Tương tự như deglet, các netlet có thể sử dụng mặc định về sự di chuyển trong mạng, hoặc có thể sử dụng riêng một mô hình di chuyển nào đó phù hợp với mô hình mạng và với tác vụ thực thi. Một ví dụ đơn giản về điều này, netlet có thể xác định cho mình một phạm vi di chuyển trong một mạng rộng lớn, vì thế nó không thể di chuyển ra ngoài phạm vi phần mạng xác định đó.




3.1. Quản lý lỗi


Phân tích chuẩn đoán hiện trạng mạng. Các phương thức được sử dụng để mô hình hoá mạng đều có thể được sử dụng để phân tích chẩn đoán lỗi trong mạng. Việc phát hiện các lỗi cũng là một quá trình xây dựng một mô hình đặc biệt của mạng. Nếu các ràng buộc cho sự tìm kiếm phát hiện mô tả các xung đột được coi là bình thường của các thành phần mạng, thì các Agentkiểm tra các ràng buộc đó rồi mới thực hiện chức nǎng phát hiện lỗi. Deglet có thể được sử dụng để phản ứng lại kết quả phát hiện hoặc đưa ra các vấn đề nghi vấn. Chúng cố gắng thu thập thêm các thông tin, thực hiện các bài kiểm tra mở rộng hoặc thi hành các tác vụ khôi phục.


Các ràng buộc không hạn chế cho một thiết bị mạng đơn lẻ nào. Chúng có thể mã hoá các thuật toán phức tạp với chức nǎng tìm kiếm phát hiện lỗi, và chỉ có giới hạn về kích cỡ của netlet là liên quan trực tiếp đến khả nǎng di chuyển và khả thông của mạng. Vấn đề đó có thể được giảm thiểu bằng cách tận dụng các ưu điểm của Java, các kĩ thuật nén mã, và các phương thức thông minh. Các cơ sở về lý thuyết hỗ trợ kĩ thuật cho hoạt động Agentdi động cũng đang được các tổ chức quan tâm xúc tiến nghiên cứu.


Với sự phân bố Agent , chúng ta có một "xã hội" các Agentcó mối quan hệ với nhau mà nhu cầu cần thiết là phối hợp để phân chia mức độ thông minh cần thiết cho việc phân tích và phát hiện lỗi trong mạng. Một số lượng nhất định các loại Agenttí hon được đưa vào mạng, mỗi một loại có thể nghiên cứu giải quyết một vấn đề nào đó, và được giải quyết bằng cách tǎng cường giả thuyết theo sự quan sát của một số lượng lớn các Agentcùng loại. Như vậy để có giải pháp giải quyết vấn đề trong mạng cần kết hợp các giả thuyết được đưa ra bởi mỗi loại Agent.


Cả hai loại Agent netlet và deglet cùng tuân theo một cách bảo mật cung cấp trước nào đó có thể được cho phép thực hiện các hoạt động trên các thiết bị mạng [hình 3]. Mỗi một netlet "tích cực" có thể được sử dụng để giải quyết một vấn đề nào đó một cách tự động theo cách khôi phục ngay tức thì khi có thể. Người quản lí mạng sẽ được thông báo về sự kiện xảy ra hoặc được cảnh báo nếu như sự khôi phục tự động của Agentkhông thực hiện được hoặc yêu cầu sự trợ giúp từ phía người điều hành. Mức độ kĩ thuật của mạng sẽ giảm được phần nào các lỗi xuất hiện trên mạng. Trong khi với các deglet, mà các tác vụ được uỷ quyền khi cần thiết thông qua sự giao tiếp của Agentvới thực thể uỷ quyền thì với netlet, chúng có thể được gán cho các tác vụ dựa theo quyền ưu tiên do người thiết kế tự đặt hoặc được khởi động tự động như là một phần trong mạng, kết cấu tổ chức và mật độ các netlet được điều khiển bởi các kĩ thuật bảo mật nào đó (ví dụ, tần suất di chuyển đến các nút mạng có thể được đo và sử dụng để tái tạo hoặc kết thúc các netlet).


Sự bảo dướng duy trì từ xa với các thành phần mạng hỗn hợp Các Agentdi động cần phải tương tác với các nút mạng thông qua một giao diện mà tại đó cung cấp đầy đủ các phương tiện: bảo mật, truy nhập gián tiếp đến tài nguyên của nút mạng và một số dịch vụ đi kèm khác. Giao diện này được gọi là thành phần quản lý ảo (VMC-Virtual Managed Component): được thiết kế bởi nhà cung cấp thiết bị. Nó có thể nằm ngay trong thiết bị hoặc trên proxy trong trường hợp thiết bị không có khả nǎng chấp nhận Agentdi động. Trong thực tế, nhà cung cấp thiết bị mạng thường trang bị một phương tiên cho VMC là khả nǎng tải được các dữ liệu về trình điều khiển thiết bị (driver), và điều này làm cho việc quản lý các thiết bị được dễ dàng hơn. Khi thiết bị được nối mạng, nó sẽ biết được các phương tiện có sẵn được quảng bá trong mạng. Ví dụ, một Agentlàm nhiệm vụ tìm kiếm có thể sẽ yêu cầu một danh sách các thiết bị được hỗ trợ trong mạng, người sử dụng dựa vào danh sách các thiết bị này để kiểm tra một thiết bị cụ thể [hình 3], nếu như thiết bị có trong danh sách thì nó được cài đặt ngay trạm. Nó có thể thi hành trên trình duyệt Web hoặc như một chương trình độc lập. Applet cung cấp dữ liệu và các chức nǎng thành phần mà nhà cung cấp đã trang bị phù hợp với thiết bị: có thể đơn giản chỉ là danh sách thiết bị đơn giản hoặc đồ hoạ của thiết bị phần cứng hoặc các dịch vụ.


Nếu thiết bị không cung cấp một applet đại diện, thì người điều hành phải điều khiển thiết bị hoặc một thiết bị chung nhất (thường gọi là mặc định) được sử dung thay thế. Đây cũng là giải pháp mà hiện nay các hệ thống quản lý mạng đang áp dụng trong các Agent . Một thiết bị không chỉ có phần đại diện được thực thi mà chúng còn phải thực thi một giao thức truyền thông chẳng hạn như SNMP với người quản lí, để có thể nhận được hoặc truyền đi các thông số về thiết bị. Chính điều này một lần nữa đã góp phần làm cho việc quản lí mạng càng thêm lớn, phức tạp và bất tiện hơn. Chúng ta có thể kết luận giải pháp các applet có thể tải về được không bị những ràng buộc trên.


Một khía cạnh hấp dấn nữa cho xu hướng trên được cung cấp bởi các kho chứa các applet trên máy chủ, ví dụ như máy chủ của nhà cung cấp thiết bị. Và giao diện VMC được đóng gói cùng thiết bị sẽ chứa một con trỏ trỏ đến applet trên máy chủ. Một điều hiển nhiên là nhà cung cấp có thể duy trì kho chứa applet, cập nhật và làm cho nó thuận tiện hơn, ví dụ bằng cách sử dụng các phần mềm. Đó cũng là một trong những xu hướng hiện nay với các thiết bị plug-n-play.


Một ví dụ khác sử dụng Agentdi động để duy trì bảo dưỡng thiết bị từ xa: cung cấp dịch vụ video theo yêu cầu. Cùng với sự phát triển của mạng trong tương lai, mà không phát triển về việc quản lí mạng thì một điều không thể giải quyết được đó là việc phải gửi các nhà kĩ thuật để giải quyết các lỗi về thiết bị, do có nhiều các thiết bị được cài đặt nằm rải rác nhiều vùng địa lý-> gây khó khǎn cho việc quản lí mạng. Để giải quyết vấn đề này chúng ta chỉ cần gửi đi các Agent , nó sẽ thực hiện các bài kiểm tra phù hợp và sẽ cố gắng đưa ra các phương án giải quyết vấn đề nếu có thể, nếu không nó sẽ thông báo để con người can thiệp. Với khả nǎng tự học thì Agentcó thể tự bồi đắp, làm giàu thêm thư viện kiến thức của mình với các tác vụ đã thực hiện.


3.2. Quản lí cấu hình


Các dịch vụ. Việc cung cấp dịch vụ (tất nhiên ở đây ta không xét khía cạnh cấp dịch vụ đến người sử dụng) trong mạng viễn thông cũng như mạng Internet hiện nay tương đối phức tạp và liên quan đến nhiều thành phần. Công việc này sẽ được giảm nhẹ khi sử dụng các Agentdi động. Ví dụ, cung cấp PVC trong mạng ATM (giả sử có mạng IPoATM). Người điều hành sẽ mất rất nhiều thời gian với các khái niệm phức tạp của PVC để có thể thiết lập được kết nối giữa hai tổng đài ATM, đặc biệt là hai tổng đài do hai hãng khác nhau cung cấp. Một hệ thống Agent(hình vẽ [4]) có thể làm nhiệm vụ này một cách tự động: yêu cầu thiết lập PVC được gán cho deglet. Các dữ liệu cần thiết được trao đổi giữa các EP (endpoint) deglet lấy thông tin đó qua VMC sử dụng một loại ontology xác định trứơc. Deglet khác lại thông tin với người điều hành, các dữ liệu cần thiết được thu gom và hoàn thành kết nối.


Các thành phần mạng. Cấu hình một thiết bị yêu cầu một số các thuộc tính trong mạng và ở thiết bị phải được đặt tương tự như các thành phần mềm được cài đặt. Ví dụ, một máy in cần có trình điều khiển nằm trên các trạm làm việc để các trạm này sử dụng chúng. Hiện nay, người quản lý mạng phải thực hiện tất cả các tác vụ trên một cách thủ công. Với sự phát triển của công nghệ Agentthì việc sử dụng các Agentdi động sẽ đem lại một viễn cảnh các thành phần mạng được thực thi theo xu hướng cắm và chạy (plug-n-play)


Bây giờ ta phân tích kĩ hơn ví dụ nêu ở trên, cài đặt máy in trong mạng. Tác vụ này liên quan đến mạng doanh nghiệp gồm một số các trạm làm việc với các yêu cầu khác nhau: các trình điều khiển cần thiết cho máy in sẽ khác nhau giữa các máy tính sử dụng Windows và OS/2, giữa các máy Maccintosh và Unix. Bây giờ ta lại giả sử rằng mạng này lại được nối đến Internet. Để sử dụng được máy in thì các trạm làm việc cần được cung cấp các trình điều khiển hợp lý. Nếu như máy in có đi kèm tất cả các trình điều khiển yêu cầu hoặc hệ điều hành đã chứa các trình điều khiển đó thì công việc cài đặt máy in trên mạng không có gì đáng nói cả, và hoán toàn có thể quản lí được. Còn trong trường hợp không có các trình điều khiển máy in phù hợp, thì toàn bộ quá trình cài đặt sẽ gặp nhiều khó khǎn. Sự biến đổi về topo mạng cần được quản lí ngay cả khi các máy in và các trạm làm việc được thêm vào: các máy in phải được cho cấp phép dịch vụ, các hệ điều hành được cập nhật.


Ở đây, chúng ta mô tả việc sử dụng các Agent động và các Agent tĩnh. VMC của thiết bị mới, ở đây là máy in, bao gồm cả Agentlàm nhiệm vụ cung cấp dịch vụ. Trên kết nối tới mạng, một số các deglet hoặc netlet được gửi đi để tìm kiếm phát hiện các thiết bị mạng đang cần trình điều khiển máy in, sau đó nó liên hệ với trang Web của nhà cung cấp máy in và phiên bản mới nhất của máy in sẽ được tải về. VMC của máy in có thể chứa danh sách các thiết bị sử dụng máy in, vì vậy nó có thể kết hợp để cài đặt các trình điều khiển mới khi cần. Máy in sẽ đǎng kí với nhà cung cấp, khi có trình điều khiển mới, nó sẽ được tự động gửi cho Agentcung cấp dịch vụ cho máy in. Cũng giống như các Agentlàm nhiệm vụ phân tích lỗi, việc quản lí cấu hình cũng cần sự kết hợp của nhiều loại Agentđơn giản.


3.3 Quản lí hoạt động mạng


Chúng ta đều biết rằng, các khái niệm về đo kiểm đánh giá chất lượng mạng là rất khó khǎn khi mà sử dụng một máy chủ tập trung. Trễ trên mạng là một vấn đề đối với việc đưa ra các quyết định đo kiểm mạng. Thay vì dùng các thành phần thǎm dò từ xa, một Agentdi động được gửi đi để thực thi sự phân tích ngay tại thành phần được đo. Các thông tin theo cách này sẽ đúng và chính xác hơn, bởi vì chúng không chịu ảnh hưởng của trễ trên mạng. Một kết quả tương tự có thể nhận được khi mà tiến trình điều khiển là một phần của thành phần kiểm tra và cũng là một phần tĩnh nằm ngay trong thành phần kiểm tra. Song giải pháp với Agentdi động là đáng quan tâm hơn cả, do nó không đòi hỏi một tài nguyên cố định trên trạm cần đo. Và tất nhiên việc quản lí sẽ càng đơn giản, do chúng ta hoàn toàn dễ dàng sử dụng các Agenttiên tiến nhất mà không mất mấy công sức, trong khi chúng ta sẽ phải rất khó khǎn để cập nhật cho các Agenttĩnh nằm ngay tại nơi cần đo.


Các công nghệ hot-swapping (trao đổi thông tin nóng) cũng có thể dựa trên các đoạn mã di động. Các bảng trao đổi đựoc áp dụng để cập nhật cho các Agentquản lí giám sát mạng tĩnh. Nếu các Agentnày là các ứng dụng có thể mở rộng, thì các module chứa các đoạn mã động (extlet) được sử dụng để cập nhật mà không tạm ngưng các dịch vụ mà ứng dụng đang cung cấp. Các module di động này không nhất thiết phải nằm ở thành phần cập nhật, mà chỉ tải về khi cần, không giồng như việc sử dụng các applet trong các trình duyệt Web. Một lần nữa, Agentdi động lại chứng tỏ ưu điểm: yêu cầu ít tài nguyên hơn, thêm nữa là quá trình xử lí phân tán, cách xử lí thông minh phối hợp từ các nguồn tài nguyên khác nhau trong quá trình đo kiểm, đánh giá.


Một ví dụ cho công nghệ trên, đó là khi server được di chuyển đến môi trường thực thi tốt hơn, việc quyết định di chuyển sẽ yêu cầu một loạt các phân tích thông minh của nhiều nhân tố như: yêu cầu dịch vụ, tải trên mạng, tỉ lệ lỗi,…chẳng hạn người điều hành có thể di rời dịch vụ khi nhận thấy tỉ lệ lỗi xuất hiện khi truy nhập dịch vụ của nó là không chấp nhận được. Một trường hợp khác, server cung cấp các dịch vụ truyền thông trong một hệ thống phân tán có thể được di chuyển nếu như các yêu cầu dịch vụ tǎng trong một vùng nào đó. Trong tất cả các trường hợp đó, server là một Agentdi động không có ràng buộc về kích cỡ, có thể là rất lớn.


Tuy nhiên, khi sử dụng Agentdi động trong việc quản lí hoạt động của mạng, chúng ta sẽ gặp phải một số vấn đề. Khi sử dụng tràn lan các Agentdi động, mà không được điều khiển, sẽ gây hiện tượng đầy tràn mạng, chiếm một tỉ lệ lớn trong tài nguyên mạng. Chính vì thế phần nền cho các Agentdi động hoạt động cần có một số qui tắc ràng buộc về mật độ Agent .


3.4 Mạng plug-n-play


Việc sử dụng Agentdi động mở ra một hướng mới cho một mạng thống nhất: mạng plug-n-play, nó có thể tự động xác định được các thiết bị, các thành phần trong mạng và các yêu cầu của người sử dụng. Như chúng ta đã phân tích ở trên, các Agentdi động hoàn toàn có thể can thiệp vào các quá trình cấu hình thiết bị mạng, cung cấp dịch vụ. Nếu xet một ví dụ thực tế, các applet được sử dụng để lấy các dữ liệu trên mạng về thông tin lưu trữ của thiết bị và của người sử dụng, và khi mạng phát triển hơn (thêm các dịch vụ, các thiết bị), thì mạng có thể phát hiện và thay đổi dữ liệu cấu hình. Sử dụng các Agentdi động với tác vụ uỷ quyền: cấu hình và cung cấp dịch vụ, ta hoàn toàn có thể thực hiện được điều này. Ngoài ra mạng plug-n-play còn có khả nǎng phát hiện ra lỗi, hoặc các khả nǎng xảy ra ảnh hưởng tới chất lượng dịch vụ hoặc vấn đề bảo mật, nó có thể tự động sửa chữa.


4. Kết luận


Việc sử dụng công nghệ Agentcho quản lí mạng là phù hợp và là nhu cầu tất yếu. Trong thực tế hiện nay, các giao thức quản lí mạng như SNMP, CMIP (OSI), TNM đều đang sử dụng công nghệ hướng đối tượng (OO-Object Oriented) và một phần khái niệm Agent . Hơn thế, các Agentthông minh một lần nữa được chứng tỏ trong việc thực thi quản lí mạng. Tuy nhiên, do còn là một công nghệ mới, đang hoàn thiện nên công nghệ Agentnói chung và Agentdi động nói riêng cần được đầu tư nghiên cứu hơn nữa. Ví dụ, Agentdi động đối mặt với vấn đề bǎng thông trong mạng client/server, với việc quản lí các Agentdi động như thế nào cho tối ưu


Các nhà nghiên cứu phát triển hệ thống quản lí mạng đều tin tưởng quản lí mạng dựa trên mạng Internet sẽ mang lại kết quả hơn, và nhiều hơn khi sử dụng công nghệ Agent . Một xu hướng mới đang phát triển dựa trên Jini, một công nghệ tổng hợp giữa các công nghệ remote object (điển hình là CORBA), mã di động và Agent .






Tài liệu tham khảo
[1] O'Hare, G. and Jenning, N, Foundations of Distributed Artificial Intelligence
[2] Mobile Agents. FIPA: http://www.fipa.com (http://www.fipa.com/)
[4] Agent technology, Blue book, OMG:www.omg.org (http://internet.vdc.com.vn/www.omg.org)
[5] Rima Abdul-Mobile Agent for Network Management.
[6] Ichiro- A mobile agent-based framework for active networks
[7] OMG- CORBA: www.omg.org (http://internet.vdc.com.vn/www.omg.org)


[Biên soạn, sưu tập với nguồn từ đồng nghiệp]

Sunday, June 30, 2013

Thuật toán Cây quyết định ID3 và chương trình mô phỏng

1. Giải thuật ID3:

ID3_algorithm(Training_Set, Class_Labels, Attributes)

Tạo nút Root của cây quyết định

   If tất cả các ví dụ của Training_Set thuộc cùng lớp c

   Return Cây quyết định có nút Root được gắn với (có nhãn) lớp c

   If Tập thuộc tính Attributes là rỗng

   Return Cây quyết định có nút Root được gắn với nhãn lớp ≡ Majority_Class_Label(TrainingSet)

   A ← Thuộc tính trong tập Attributes có khả năng phân loại “tốt nhất” đối với Training_Set

   Thuộc tính kiểm tra cho nút Root ← A

   For each Giá trị có thể v của thuộc tính A

 Bổ sung một nhánh cây mới dưới nút Root, tương ứng với trường hợp: “Giá trị của A là v”

   Xác định Training_Setv = {ví dụ x | x ⊆ Training_Set, xA=v}

  If (Training_Setv là rỗng) Then

  Tạo một nút lá với nhãn lớp ≡ Majority_Class_Label(Training_Set)

Gắn nút lá này vào nhánh cây mới vừa tạo

Else Gắn vào nhánh cây mới vừa tạo một cây con sinh ra bởi ID3_algorithm(Training_Setv, Class_Labels, {Attributes A})

Return Root


2. Giao diện chính của chương trình Demo gồm 4 phần:

o Phần 1: Bảng lưu dữ liệu training (Data Training).

o Phần 2: Ghi ra các bước giải của thuật toán (Solutions).

o Phần 3: Vẽ cây minh họa cho thuật toán (Decision Tree).

o Phần 4: Các chức năng của chương trình (Control).


Có 4 button với các chức năng như sau:

- Load Data: Đưa dữ liệu training vào chương trình.

- ID3 – Alg: Chạy giải thuật ID3.

- Reset: Khởi động, chạy lại chương trình.

- About: Thông tin về chương trình.


3.  Các bước chạy chương trình:

- Đầu tiên, nạp dữ liệu vào chương trình bằng button Load Data.

Dữ liệu được đưa lên bảng Data Training (Phần 1).

- Sau đó, nhấn button ID3 – Alg để chạy giải thuật.

Các bước giải sẽ được hiện ra ở phần 2 (Solutions).

Cây được vẽ ra ở phần 3 (Decision Tree).


4. Giao diện chương trình:

Chương trình gồm những hàm chính sau:

 Hàm tính Entropy:

· Công thức:    Entropy (S) = – p+ log2 p+ – p- log2 p-

· Code [C#]:

private double GetEntropy(int Positives , int Negatives)
{
if (Positives == 0)
return 0;
if (Negatives == 0)
return 0;
double Entropy;
int total = Negatives + Positives;
double RatePositves = (double)Positives / total;
double RateNegatives = (double)Negatives / total;
Entropy = -RatePositves * Math.Log(RatePositves, 2) – RateNegatives * Math.Log(RateNegatives, 2);
return Entropy;
}


 Hàm tính Gain:

· Công thức: 


· Code [C#]:

private double Gain(List<List<string>> Examples, Attribute A, string bestat)
{
double result;
int CountPositives = 0;
int[] CountPositivesA = new int[A.Value.Count];
int[] CountNegativeA = new int[A.Value.Count];
int Col = Attributes.IndexOf(A);
for (int i = 0; i < A.Value.Count; i++)
{
CountPositivesA[i] = 0;
CountNegativeA[i] = 0;
}
for (int i = 0; i < Examples.Count; i++)
{
int j = A.Value.IndexOf(Examples[i][Col].ToString());
if (Examples[i][Examples[0].Count – 1]==”yes”)
{
CountPositives++;
CountPositivesA[j]++;
}
else
{
CountNegativeA[j]++;
}
}
result = GetEntropy(CountPositives, Examples.Count – CountPositives);
for (int i = 0; i < A.Value.Count; i++)
{
double RateValue = (double)(CountPositivesA[i] + CountNegativeA[i]) / Examples.Count;
result = result – RateValue * GetEntropy(CountPositivesA[i], CountNegativeA[i]);
}
Solution = Solution + “n * Gain(” + bestat + “,” + A.Name + “) = ” + result.ToString();
return result;
}



 Hàm chọn đặc tính tốt nhất:

· Phương pháp:
    - Dựa vào giá trị gain của các đặc tính, đặc tính nào có Gain lớn nhất.

    - Chọn đặc tính đó – đặc tính tốt nhất.

· Code [C#]:

private Attribute GetBestAttribute(List<List<string>> Examples, List<Attribute> Attributes, string bestat)
{
double MaxGain = Gain(Examples, Attributes[0], bestat);
int Max = 0;
for (int i = 1; i < Attributes.Count; i++)
{
double GainCurrent = Gain(Examples, Attributes[i], bestat);
if (MaxGain < GainCurrent)
{
MaxGain = GainCurrent;
Max = i;
}
}
return Attributes[Max];
}
 Hàm thực hiện giải thuật ID3:
Code:
private TreeNode ID3(List<List<string>> Examples, List<Attribute> Attribute,string bestat)
{
if (CheckAllPositive(Examples))
{
return new TreeNode(new Attribute(“Yes”));
}
if (CheckAllNegative(Examples))
{
return new TreeNode(new Attribute(“No”));
}
if (Attribute.Count == 0)
{
return new TreeNode(new Attribute(GetMostCommonValue(Examples)));
}
Attribute BestAttribute = GetBestAttribute(Examples, Attribute, bestat);
int LocationBA = Attributes.IndexOf(BestAttribute);
TreeNode Root = new TreeNode(BestAttribute);
for (int i = 0; i < BestAttribute.Value.Count; i++)
{
List<List<string>> Examplesvi = new List<List<string>>();
for (int j = 0; j < Examples.Count; j++)
{
if (Examples[j][LocationBA].ToString() == BestAttribute.Value[i].ToString())
Examplesvi.Add(Examples[j]);
}
if (Examplesvi.Count==0)
{
return new TreeNode(new Attribute(GetMostCommonValue(Examplesvi)));
}
else
{
Attribute.Remove(BestAttribute);
Root.AddNode(ID3(Examplesvi, Attribute,BestAttribute.Value[i]));
}
}
return Root;
}


Toàn bộ chương trình demo ở đây: http://adf.ly/RJwUY [sau 5s, click Bỏ qua quảng cáo]

(theo csshare)

Wednesday, June 26, 2013

Tính toán lưới - tổng quan và ứng dụng


LỜI NÓI ĐẦU

Tính toán lưới là một mô hình tính toán đang được ứng dụng rất nhiều, đây là một mô hình có khả năng thực hiện tính toán với tốc độ cao bằng cách tận dụng nhiều máy tính nối mạng để tạo ra một kiến trúc máy tính ảo có thể phân phối việc tính toán trên một cơ sở hạ tầng song song. Lưới tính toán sử dụng tài nguyên của nhiều máy tính riêng lẻ kết nối với nhau thông qua một mạng máy tính (thường là mạng máy Internet) để giải quyết các yêu cầu tính toán lớn. Lưới có khả năng thực hiện việc tính toán trên những tập dữ liệu lớn, bằng cách chia nhỏ các tập dữ liệu này thành các tập hợp nhỏ hơn hoặc thực hiện nhiều qui trình tính toán cùng lúc như trên một mánh tính đơn thông qua mô hình phân phối công việc giữa các tiến trình song song. Ngày nay, việc phân phối tài nguyên trên lưới tuân theo chuẩn SLA (service level agreement).


Thông qua đề tài này chúng tôi mong muốn tìm hiểu sơ lược về một mô hình tính toán với hiệu năng cao, tận dụng được tài nguyên của máy tính. Đang là mô hình tính toán được thế giới quan tâm phát triển.

I. Một số khái niệm cơ bản
1.1. Khái niệm

Trong những năm gần đây, tính toán lưới – grid computing nổi lên như một nền tảng hỗ trợ tính toán phân tán trên những bộ dữ liệu lớn, thực hiện những công việc tính toán phức tạp. Tư tưởng của Grid là kết hợp sức mạnh tính toán của hàng trăm, hàng nghìn máy tính bình thường nằm phân tán về mạnh địa lý, tạo thành một cơ sở hạ tầng tính toán tổng hợp tương đương hoặc thậm chí vượt xa sức mạnh của những siêu máy tính hiện đại đắt tiền.

Michael Di Stefano đưa ra định nghĩa về tính toán lưới như sau:

“Tính toán lưới là bất kỳ cụm tài nguyên tính toán nào cung cấp môi trường hỗ trợ chia sẻ và quản lý tài nguyên cho các công việc phân tán dựa trên chính sách nào đó”.

Còn Ian Foster đưa ra ba đặc điểm của một lưới thực sự :

• Phối hợp sử dụng tài nguyên mà không dựa trên điều khiển tập trung.

• Sử dụng các giao thức chuẩn và có tính mở rộng.

• Cung cấp chất lượng dịch vụ không tầm thường, theo nghĩa tài nguyên hoạt động kết hợp trên môi trường lưới tạo ra chất lượng dịch vụ tốt hơn nhiều so với tổng chất lượng dịch vụ của các tài nguyên đơn lẻ.

Hiện nay, nhiều người vẫn lẫn lộn khái niệm “tính toán lưới” với “tính toán ngang hàng”. Cả hai có điểm chung là cùng giải quyết bài toán chia sẻ tài nguyên phân tán giữa các tổ chức ảo , cùng được xây dựng dựa trên kiến trúc phân tầng, và mỗi hướng tiếp cận có điểm mạnh, điểm yếu riêng. Lưới được xây dựng trên nền tảng kiến trúc chặt chẽ, phục vụ cộng đồng người dùng quy mô nhỏ, thường nằm trong cùng lĩnh vực nghiên cứu mà họ quan tâm, hỗ trợ khả năng tích hợp tài nguyên mạnh mẽ đa dạng hơn tính toán ngang hàng. Ứng dụng trên lưới thường là ứng dụng khoa học, đòi hỏi khả năng tính toán cao, và hướng người dùng. Ngược lại, tính toán ngang hàng được xây dựng trên nền kiến trúc linh hoạt hơn, phục vụ cho một số lượng lớn người dùng, có thể lên đến hàng triệu, chủ yếu hỗ trợ ứng dụng chia sẻ tài nguyên như chia sẻ chu kỳ tính toán hoặc tệp.


1.2. Cấu trúc mô hình tính toan lưới:



Hình 1


1.3. Các chức năng chung
Tính toán lưới tạo ra một mô hình để giải quyết các bài toán tính toán lớn bằng cách sử dụng những tài nguyên rỗi (CPU, và thiết bị lưu trữ) của một loạt các máy tính riêng rẽ, thường là máy để bàn, hệ thống này được coi là một một cụm máy ảo nhúng trong một môi trường liên lạc phân tán. Tính toán lưới tập trung vào khả năng hỗ trợ tính toán giữa các khu vực hành chính, điều này làm cho mô hình này tách biệt so với mô hình cụm tính toán và tính toán phân tán truyền thống.
Lưới cung cấp một giải pháp cho những bài toán về tính toán hiệu năng cao như tạo nếp protein, mô hình hoá tài chính, mô phỏng động đất và dự đoán khí hậu thời tiết. Ngoài ra lưới còn có thể giúp các tổ chức, doanh nghiệp sử dụng một cách tối ưu hoá tài nguyên công nghệ thông tin và tạo ra các dịch vụ tính toán theo nhu cầu cho các khách hàng thương mại và miễn phí trong đó khách hàng chỉ phải trả những gì họ đã sử dụng giống như điện và nước.
Tính toán lưới được thiết kế với mục tiêu giải các bài toán tính toán quá lớn cho một siêu máy tính, trong khi vẫn giữ được sự linh hoạt đối với những bài toán nhỏ hơn. Vì vậy tính toán lưới cung cấp một môi trường đa người dùng. Mục tiêu thứ hai của tính toán lưới là khả năng khai thác tốt hơn những năng lực tính toán chưa được sử dụng và phục vụ cho những nhu cầu tính toán không ngừng của các bài toán khoa học lớn.
Điều này dẫn đến việc sử dụng các cơ chế cấp phép an toàn để cho phép những người sử dụng ở xa có thể điều khiển các tài nguyên tính toán từ xa.
Tính toán lưới thực hiện sử dụng các chuẩn mở để chia sẻ qua mạng những tài nguyên hỗn tạp (trên những nền tảng kiến trúc phần mềm, phần cứng và ngôn ngữ lập trình khác nhau), nằm tại những địa điểm khác nhau tuỳ thuộc vào các khu vực hành chính. Nói một cách đơn giản, nó là việc ảo hoá các tài nguyên tính toán.
1.4. Lưới tính toán có thể phân theo ba giai đoạn phát triển:
- Lưới văn phòng
- Lưới công ty
- Lưới toàn cầu.
Những giai đoạn này tương ứng với một công ty bắt đầu tận dụng tài nguyên trong một nhóm đơn như một đơn vị hoặc phòng chuyên về công nghệ kết nối các máy tính để bàn, các cụm và thiết bị. Lưới sẽ phát triển để trở thành lưới của toàn công ty khi các tài nguyên của các phòng ban còn lại có thể sử dụng để lưu trữ và tận dụng tài nguyên CPU. Một lưới toàn cầu là sự kết nối của các lưới phòng ban và hãng, lưới này sẽ được sử dụng theo kiểu thương mại và cộng tác.
1.4. Tính toán lưới là một loại hình đặc biệt của tính toán phân tán.
Mô hình khái niệm
Bản chất của tính toán lưới giống một nền tảng dạng khái niệm hơn là một tài nguyên vật lý. Lưới được tận dụng để cung cấp tài nguyên cho một nhiệm vụ tính toán. Mục tiêu của công nghệ lưới liên quan tới những yêu cầu của việc cung cấp tài nguyên linh hoạt vượt ra khỏi các khu vực cục bộ.
Tổ chức Ảo
Một môi trường lưới được tạo ra để giải quyết các nhu cầu về tài nguyên. Những tài nguyên này(như CPU, ổ lưu trữ, dữ liệu, các chương trình phần mềm, các thiết bị ngoại vi) thường nằm ở ngoài các khu vực cục bộ. Phương thức cung cấp ngoài này đòi hỏi phải tạo ra một khu vực khác được nhắc đến với cái tên là Tổ chức ảo(Virtual Organization – VO) với một tập riêng rẽ các chính sách quản lý ( các chính sách quản lý cục bộ và các chính sách quản lý tài nguyên bên ngoài tạo thành các chính sách của VO. Ngữ cảnh được tạo ra cho một nhiệm vụ tính toán lưới được phân biệt bằng những yêu cầu được tạo ra khi thực thi ngoài các khu vực cục bộ. Công nghệ Lưới được tận dụng để làm cho việc chuẩn hoá và thống nhất với ngữ cảnh lưới liên quan tới việc thực thi ứng dụng của bạn.
Tận dụng tài nguyên.
Một đặc điểm mà hiện tại phân biệt tính toán lưới và tính toán phân tán là sự trừu tượng hoá của một tài nguyên phân tán thành một tài nguyên lưới. Một kết quả của sự trừu tượng này là nó cho phép việc thay thế tài nguyên trở nên dễ dàng hoàn thành. Vài chi phí liên quan tới sự linh hoạt này nằm ở tầng phần mềm trung gian và thời gian trễ liên quan tới việc truy nhập vào một tài nguyên lưới hoặc tài nguyên phân tán. Những chi phí, đặc biệt là thời gian trễ, phải được đánh giá khi đánh giá sự ảnh hưởng của tới hiệu năng tính toán của một tài nguyên lưới.
Các tài nguyên web hoặc việc truy nhập các tài nguyên web là một phương pháp hấp dẫn để cung cấp tài nguyên lưới. Một sự phát triển gần đây của phần mềm trung gian lưới GGF đã sửa lại kiến trúc và thiết kế của khái niệm tài nguyên lưới bằng cách sử dụng ngôn ngữ mô tả dịch vụ web WSDL của W3C để triển khai một tài nguyên lưới. Các ứng dụng chuyển đổi từ việc sử dụng các tài nguyên liên quan tới vị trí địa lý sang việc sử dụng các tài nguyên web cần quan tâm tới bản chất phi ranh giới của web trong khi vẫn đảm bảo khả năng mở rộng cho web.


II.Nền tảng của tính toán lưới (Grid computing)

Tính toán mạng lưới (grid) ngày nay không còn là một giải pháp hàn lâm hay thử nghiệm. Với những tiến bộ quan trọng về phần mềm triển khai, người ta hy vọng nó sẽ đem sức mạnh của siêu máy tính tới tất cả người dùng PC đơn lẻ trên thế giới.

2.1. Grid là gì và hoạt động như thế nào?

Grid là một loại hệ thống phân tán, bố trí song song, cho phép linh hoạt chia sẻ, tuyển lựa và tập hợp các nguồn tài nguyên độc lập và rải rác về địa lý, tùy theo khả năng sẵn có, công suất, hoạt động, chi phí và yêu cầu về chất lượng dịch vụ của người sử dụng.




Hình 1: Mô hình tính toán lưới


Điện toán mạng lưới (ĐTML) có nghĩa là tất cả hoặc một phần của một nhóm máy tính, máy chủ và thiết bị lưu trữ trong mạng doanh nghiệp, được “ảo hóa” (virtualize) thành một cỗ máy tính lớn. Vì ĐTML giải phóng những khả năng tính toán không được sử dụng vào một thời điểm bất kỳ, chúng có thể cho phép các doanh nghiệp tăng cường rất nhiều về tốc độ, sức mạnh xử lý thông tin và sự liên kết, thúc đẩy các quy trình tính toán mật độ cao. Trong khi đó, chi phí vẫn sẽ được giữ ở mức thấp vì ĐTML có thể được xây dựng từ chính hạ tầng hiện có, góp phần đảm bảo sự huy động tối ưu các khả năng tính toán.


ĐTML cho phép ảo hóa các chức năng tính toán phân tán cũng như các nguồn xử lý, băng thông mạng và khả năng lưu trữ, để từ đó tạo ra một hệ thống đơn đồng nhất, cho phép người sử dụng và các ứng dụng truy cập thông suốt vào các tính năng điện toán rộng lớn. Giống như người lướt web xem một nội dung thống nhất qua web, người sử dụng ĐTML cũng nhìn thấy một máy tính ảo cực lớn duy nhất.






Hình 2: Mô hình tính toán lưới dựa trên Internet


Trọng tâm của ĐTML dựa trên một tập hợp mở của nhiều chuẩn và giao thức, ví dụ Kiến trúc dịch vụ lưới mở (OGSA), cho phép liên lạc qua nhiều môi trường hỗn tạp và phân tán về địa lý. Với ĐTML, các tổ chức và doanh nghiệp có thể tối ưu hóa khả năng tính toán và các nguồn dữ liệu, tập trung chúng lại thành những khối sức mạnh lớn, chia sẻ chúng qua mạng và thúc đẩy sự phối hợp, tương tác.

Giả dụ, khi một người có chiếc máy tính cá nhân tham gia đóng góp sức mạnh xử lý trong một mạng lưới grid muốn chạy một ứng dụng đòi hỏi thêm sức mạnh xử lý thì công việc đang được giải quyết trên chiếc máy đó sẽ được tự động tái phân bổ tới một máy khác trong lưới đang “rảnh rỗi” và không bị trưng dụng sức mạnh tính toàn vào công việc nào.



Hình 3


Xây dựng một lưới grid có thể đơn giản như việc cho phép một số lượng nhỏ PC hoặc server hoặc mạng lưu trữ tận dụng những khả năng chưa được khai thác hết. Từ một quy mô triển khai ban đầu nhỏ, người sử dụng có thể dần dần hoặc lập tức mở rộng lưới tùy theo nhu cầu của doanh nghiệp. Lưới này không chỉ có thể liên kết các quy trình hoạt động của một bộ phận mà có thể phối hợp các phòng ban với nhau hoặc thậm chí liên kết sức mạnh hạ tầng của một số doanh nghiệp độc lập.
2.2. Ích lợi của tính toán lưới:
ĐTML có thể đem lại những ích lợi rất rộng lớn. Nó tăng tốc độ xử lý để rút ngắn thời gian thu được kết quả, từ đó cho phép tiết kiệm thời gian và tài nguyên phục vụ cho việc giải quyết những vấn đề mà trước đó chưa được xử lý. ĐTML nâng cao năng suất và sự phối hợp trong doanh nghiệp bằng cách cho phép các bộ phận và phòng ban phân tán ở nhiều nơi tạo ra các “tổ chức ảo” để chia sẻ dữ liệu và tài nguyên. Grid khiến cho hạ tầng hoạt động của doanh nghiệp linh hoạt hơn với việc cho phép truy nhập lập tức vào hệ thống tính toán và các kho dữ liệu để “cảm nhận” và phản hồi kịp thời những yêu cầu. Grid cũng góp phần đảm bảo khai thác tốt nhất các khả năng tính toán hiện có của một công ty dựa trên những khoản đã đầu tư. Triển khai ĐTML cũng góp phần tránh được nguy cơ phân bổ tài nguyên không cân đối xảy ra rất phổ biến và tránh được các chi phí phát sinh. Một ích lợi lớn khác của ĐTML là nó giải phóng các bộ phận quản lý CNTT khỏi gánh nặng của việc quản lý các hệ thống không đồng nhất.

So sánh grid với các công nghệ khác:
So với khái niệm cluster và điện toán phân tán khác, grid có điểm chung là đem các nguồn sức mạnh tính toán lại làm một nhưng khác ở chỗ nó không cần có sự giới hạn về không gian địa lý hay sự đồng nhất về nền điều hành. Khác biệt cơ bản giữa khái niệm cluster (bó) với grid (lưới) chủ yếu nằm ở phương thức quản lý các nguồn tài nguyên. Đối với cluster, việc phân bổ tài nguyên được thực hiện bởi một đối tượng quản lý tài nguyên trung tâm và tất cả các nút (node) mạng hoạt động phối hợp với nhau như một nguồn đơn thống nhất. Đối với grid, mỗi nút có đối tượng quản lý tài nguyên riêng và các nguồn tài nguyên độc lập trong lưới có thể trải rộng khắp một hoặc nhiều tổ chức.


Trên thực tế grid không phải là một cuộc cách mạng mới mà có thể coi nó là một bước tiến hóa trong công nghệ điện toán phân tán, giống như web, chia sẻ file ngang hàng và các công nghệ ảo khác. Giống như web, ĐTML giảm bớt tính phức tạp khi mà nhiều người cùng khai thác một nền hoạt động thống nhất. Cái khác của nó đối với web chủ yếu là sự hỗ trợ liên lạc. So với mạng ngang hàng (P2P), ĐTML có điểm chung là cho phép người sử dụng chia sẻ file nhưng khác ở chỗ việc chia sẻ đó không chỉ là các file mà có thể là nhiều tài nguyên khác. So với các công nghệ ảo khác, grid giống ở chỗ cho phép ảo hóa các nguồn lực CNTT. Điểm khác là trong khi đối tượng và mục tiêu của các công nghệ ảo là một hệ thống đơn thì grid cho phép ảo hóa những nguồn tài nguyên tản mát và vô cùng rộng lớn.

Grid đã được thương mại hóa như thế nào?
Các nhà cung cấp giải pháp điện toán hàng đầu thế giới như Oracle, IBM, HP, Dell, Microsoft và Sun đều đã và đang có sách lược đầu tư lớn vào việc phát triển các sản phẩm và dịch vụ ĐTML.

Thiết lập một hệ thống ĐTML không đơn thuần chỉ là có một mạng máy tính tốc độ cao. Yếu tố quan trọng nhất chính là một nền phần mềm điều phối sức mạnh của các máy tính tham gia đóng góp sức mạnh nhiều dạng khác nhau trong lưới.

Trên thị trường đã xuất hiện những nền phần mềm thương mại hoặc dịch vụ phục vụ cho việc này. Ví dụ, Oracle đã tung ra thị trường Application Server 10g, được coi là phần mềm trung gian đầu tiên giúp đơn giản hóa việc quản lý các ứng dụng chạy trên môi trường ĐTML. Đây là một bộ sản phẩm gồm khoảng 600 cải tiến trong ứng dụng tích hợp và cơ sở hạ tầng các dịch vụ Web.

Oracle Application Server 10 được xây dựng dựa trên các chuẩn mở, tạo ra một nền tảng thống nhất cho các khả năng hỗ trợ yêu cầu đa dạng của một doanh nghiệp thương mại điện tử, bao gồm các chức năng hỗ trợ như phần mềm cổng dành cho doanh nghiệp, lưu trữ tốc độ cao, tình báo doanh nghiệp, quản lý đồng nhất, phát triển ứng dụng nhanh, kết nối không dây và các dịch vụ Web. Oracle Application Server 10g cũng là sản phẩm trung gian duy nhất trong ngành giải pháp điện toán doanh nghiệp được trang bị các công nghệ tích hợp và ĐTML lắp sẵn.

Với việc đưa thêm khả năng ĐTML, phần mềm Application Server 10g giúp khách hàng giảm thời gian, sức lao động và chi phí cho việc quản lý CNTT bằng cách kết hợp các hệ thống máy chủ, hệ thống lưu trữ và các phần mềm cần thiết. Kết quả là các doanh nghiệp có thể sử dụng sức mạnh của toàn bộ hệ thống hay lưới cho tất cả các ứng dụng dành cho doanh nghiệp chứ không phải mua thêm tính năng cho các ứng dụng riêng biệt. Oracle Application Server 10g được cung cấp với ba phiên bản: Java Edition (giá 5.000 USD tính trên một bộ vi xử lý hoặc 100 USD/một người sử dụng), Standard Edition (10.000 USD/bộ vi xử lý hoặc 200 USD/người sử dụng) và Enterprise Edition (20.000 USD/bộ vi xử lý hoặc 400 USD/một người sử dụng).

Trong khi đó, Sun Microsystems gần đây tung ra một mô hình dịch vụ với cách tiếp cận khác. Họ gọi đây là cơ chế thu tiền tính theo người sử dụng đầu tiên áp dụng đối với kiến trúc ĐTML. Với chi phí khởi điểm là 1 USD/bộ xử lý/giờ, dịch vụ tính toán theo lưới này của Sun được cung cấp theo từng gói tính bằng tiếng đồng hồ. Sun khẳng định mô hình này có thể cho phép khách hàng khai thác sức mạnh tính toán giống như sử dụng các tiện ích thông thường như điện thoại, điện gia dụng hay nước…từ hạ tầng của nhà cung cấp dịch vụ.

Một số lợi thế khá rõ ràng:

1) Không cần phải mua các máy chủ SMP lớn cho các ứng dụng mà có thể được tách ra và nuôi ra các máy chủ nhỏ hơn (trong đó chi phí ít hơn so với các máy chủ SMP). Kết quả sau đó có thể được nối và phân tích khi công việc (s) hoàn thành.

2) Phần lớn hiệu quả hơn sử dụng các nguồn lực nhàn rỗi. Việc làm có thể được nuôi ra máy chủ nhàn rỗi hoặc thậm chí máy tính để bàn nhàn rỗi. Nhiều người trong số các nguồn lực này ngồi nhàn rỗi đặc biệt là trong thời gian off giờ làm việc.

3) Grid môi trường, nhiều hơn modular và không có điểm duy nhất của thất bại. Nếu một trong các máy chủ / máy tính để bàn trong lưới điện không có nhiều nguồn lực khác có thể chọn tải. Việc làm có thể tự động khởi động lại nếu thất bại xảy ra.

4) Các chính sách có thể được quản lý bởi các phần mềm lưới. Một số các lưới cho phép các phần mềm phổ biến nhất bao gồm Platform LSF, Sun Grid Engine, liệu Synapse, PBS, Condor, UnivaUD, trong số những người khác. Mỗi làm tốt công việc giám sát tài nguyên và đệ trình công việc quản lý dựa trên các công cụ chính sách nội bộ.

5) quy mô mô hình này rất tốt. Cần thêm các nguồn tài nguyên tính toán chỉ cần cắm chúng vào lưới khách hàng bằng cách cài đặt trên máy tính để bàn hoặc máy chủ bổ sung. Họ có thể được gỡ bỏ cũng như dễ dàng trên bay.

6) Nâng cấp có thể được thực hiện trên bay mà không có lịch trình thời gian chết. Vì có quá nhiều tài nguyên một số có thể được thực hiện offline, trong khi để lại đủ cho công việc để tiếp tục. Bằng cách này có thể được nâng cấp cascaded như không có hiệu lực các dự án đang tiếp diễn.

7) Việc làm có thể được thực hiện trong thực hiện tăng tốc song song. Sử dụng những thứ như Bộ KH & ĐT sẽ cho phép tin nhắn qua để xảy ra giữa các tài nguyên tính toán.

Một số disadvatages:

1) Đối với các ứng dụng bộ nhớ đói mà không thể tận dụng lợi thế của MPI bạn có thể bị buộc để chạy trên một SMP lớn

2) Bạn có thể cần phải có một kết nối nhanh giữa các tính toán các nguồn lực (gigabit ethernet ở mức tối thiểu). Infiband cho Bộ KH & ĐT mạnh ứng dụng

3) Một số ứng dụng có thể cần phải được tinh chỉnh để có đầy đủ lợi thế của mô hình mới.

4), cấp phép trên nhiều máy chủ có thể làm cho nó cấm đối với một số ứng dụng. Các nhà cung cấp đang bắt đầu được linh hoạt hơn với môi trường như thế này.

Khu vực đã được tận dụng tốt của tính toán lưới bao gồm tin sinh học, cheminformatics, khoan dầu và, và các ứng dụng tài chính.

Với lợi thế được liệt kê ở trên, bạn sẽ bắt đầu để xem con nuôi lớn hơn nhiều của Grids mà nên lợi ích tất cả mọi người tham gia





Hình 4


III. Mốt số thành phần cơ trong mô hình tính toán lưới

Môi trường lưới có thể phân thành 3 lớp:
3.1. Lớp ứng dụng (Grid Application)
Lớp ứng dụng rất phong phú, chẳng hạn, từ việc truy xuất dữ liệu qua điện thoại di động đến những hệ mô phỏng xử lý một lượng dữ liệu lớn để có thể quan sát quá trình diễn biến của một thí nghiệm khoa học nào đó
3.2.Lớp cơ sở hạ tầng (Grid Infrastructures)
Lớp hạ tầng cơ sở gồm hệ thống máy tính, siêu máy tính, các hệ lưu trữ, hạ tầng truyền dẫn và Internet
3.3.Lớp giữa (Grid Middleware).
Còn lớp giữa cung cấp cho lớp ứng dụng và lớp cơ sở hạ tầng những giao thức được chuẩn hóa, tạo khả năng truy cập lưới dễ dàng, thuận tiện.

Có thể xem lớp giữa là một PM hệ thống nằm giữa lớp PM ứng dụng và hệ điềuhành, nhằm cung cấp các dịch vụ (DV) cho các ứng dụng như DV khám phá tài nguyên (Discovery), lưu trữ (Storage), thực thi (Execution), thôngtin (Information), theo dõi tài nguyên (Resource Monitoring), kiểm lỗi và phục hồi (Failure Detector and Recovery)… Đây là những DV cốt lõi đểcho người dùng tham gia vào môi trường lưới. Tùy theo yêu cầu của người dùng, lớp ứng dụng sẽ tạo cho người dùng một nền tảng ứng dụng (Platform) thích hợp.

IV. Từ tính toán lưới đến tính toán đám mây

Ở nước ta trong mấy năm qua, báo chí đã đề cập với những tên gọi khác nhau mà thuật ngữ tiếng Anh là “Grid computing” và “Cloud computing”. Nào là mạng lưới máy tính, mạng lưới tính toán, điện toán lưới, tính toán đám mây, điện toán đám mây, điện toán máy chủ ảo…Ở đây, tôi dùng cụm từ “tính toán lưới” (Grid computing) và “tính toánmây” (Cloud computing) để chỉ những khái niệm này.

Tính toán lưới đã phát triển rất mạnh trên thế giới để liên kết những hệ thống tính toán với nhau nhằm giải những bài toán cực lớn. Hệ thống bao gồm phần cứng, phần mềm (PM), đường truyền và hàng bao nhiêu thiết bị khác…trong những không gian thích hợp tạo một môi trường tính toán gọi là môi trường lưới.

Nói đến tính toán lưới là nói đến những cơsở hạ tầng cực mạnh, những siêu máy chủ, những thiết bị lưu trữ lớn,những clusters, những PM ứng dụng và sự quản trị hệ thống phức hợp; là nói đến tính toán song song, phân chia thời gian, các thuật toán tối ưu xử lý phân bố tài nguyên tính toán, lưu trữ…Những mô hình tính toán lưới gần đây cũng tiếp cận đến cách khai thác PM như một DV, khai thác nền tảng như một DV, đã có DV máy chủ ảo... và thực sự chúng đã chuyển hoá dần sang tính toán mây. Tính toán mây đều có những đặc điếm nói trên của tính toán lưới, nhưng còn phát triển cao hơn ở những khía cạnh sau:

Tính toán mây là một mô hình tính toán năng động cao, có khả năng mở rộng đến các tài nguyên ảo trên Internet. Hạ tầng cơ sở của tính toán mây được khai thác như một DV (IaaS –Infrastructure as aService). Người dùng không phải đầu tư vốn vào thiết bị và không phảilo bảo trì thiết bị và hàng nhiều công việc khác liên quan mà chỉ chịuchi phí khai thác thiết bị ảo trên Internet do nhà cung cấp phân bố,quản lý. Người dùng truy cập đến tính toán mây thông qua các DV Webservices.




Hình 5: Mô hình tính toán mây (hình lấy trên Internet)

Nền tảng của một ứng dụng nào đó được khai thác nhưmột DV (PaaS- Platform as a Service). Người dùng không phải chịu chiphí cho toàn bộ nền tảng của ứng dụng mà chỉ chịu chi phí cho phần nềntảng nào được sử dụng.

PM được khai thác như một DV(SaaS-Software as a Service). Không phải trả bản quyền cho PM mà ngườidùng chỉ trả tiền khai thác PM đó.

Tiện ích tính toán (UtilityComputing). Người dùng chỉ chịu chi phí cho những tài nguyên, tiện íchđược khai thác, không khác gì trả tiền điện, tiền nước theo đồng hồ đomà ta đã rất quen thuộc trong cuộc sống hàng ngày. 

V. Một số ứng dụng thực tiễn
4.1. Nhìn ra thế giới

IBMnói nhiều đến một cơ sở hạ tầng thông minh. IBM phối hợp với ĐH TexasMedical Branch (UTMB) sử dụng Big Blue (siêu máy tính ảo) để xác địnhcác hợp chất hóa học có nhiều khả năng ngăn chặn sự lây lan của viruscúm gia cầm và các loại virus khác. Dự án nghiên cứu nhân đạo này sửdụng một nguồn lực tính toán lớn đến hàng triệu máy tính của hơn400.000 người sẵn sàng hiến thời gian máy của họ cho việc xử lý. DV IBMSmart Business (IBM kinh doanh thông minh) với công nghệ tính toán mâycung cấp cho người dùng khả năng nâng cao chất lượng công việc, đảm bảoan toàn thông tin và tìm kiếm mô hình kinh doanh sáng tạo. IBM đang sởhữu một mạng lưới tính toán mây rất lớn.

Ngoài lắp đặt ở nước ta, IBM còn có những trung tâmkhác như ở Hàn Quốc, Ấn Độ, Brazil…Tháng 5/2008, IBM cho ra mắt siêumáy tính Road Runner (trị giá 133 triệu USD), tốc độ tính toán đạt 1triệu tỷ phép tính/giây(petaflop).

Chúng ta liên tưởng đếnnhững máy tính “cực lớn” của IBM trước đây và các trung tâm tính toántập trung mà người dùng chỉ có thể tiếp cận thông qua các máy trạmtrong những năm 60, 70 của thế kỷ trước. Thời kỳ “tập trung cửa quyền”ấy qua đi, nhường chỗ cho các máy tính cá nhân để bàn (PC) làm việctrong môi trường khách/chủ (client/server), rồi tiếp đến là hình thànhcác mạng máy tính mà nổi bật là mạng Internet. Ngày nay, sự hình thànhtính toán mây với những TTDL cực lớn, người dùng có thể truy cập nhờWeb services bằng các phương tiện như điện thoại di động, netbook,desktop…, làm chúng ta lại nghĩ đến một sự tập trung mới! Nhưng lần nàylà sự tập trung tiến bộ, nâng cao, ảo hóa. 

4.2. Vài nét trong nước

Ở nước ta đã có những đề tài nghiên cứu về tính toán lưới như đề tài Xâydựng dữ liệu lưới cho khí tượng Việt Nam (Construction a Data Grid forMeteorology in Viet Nam) của Đại học Bách khoa Hà Nội và nhiều đề tàikhác của Viện CNTT- Viện Khoa học Công nghệ Việt Nam và của chươngtrình Nghiên cứu cấp nhà nước KC-01.

VN, đã đồng hành cùng thếgiới vào “tính toán mây”. Bộ KH&CN phối hợp với hãng IBM xây dựngcổng thông tin VIP (Vietnam Information for Science and TechnologyAdvance Innovation Portal) với công nghệ tính toán mây từ năm 2007 nhằmtạo một môi trường sáng tạo cho các nhà nghiên cứu, giảng viên, sinhviên các trường ĐH chia sẻ thông tin, thiết lập một cộng đồng hợp tácnghiên cứu. Ngay từ năm 2005, CISCO cũng đã giới thiệu một mô hìnhchuẩn Trung tâm dữ liệu (Data Center) tính toán lưới có khả năng tíchhợp các DV web và khả năng tự động hoá cao cho các doanh nghiệp lớnngành ngân hàng - tài chính. Tại TPHCM và Hà Nội đã có nhiều Trung tâmdữ liệu (TTDL) đạt tiêu chuẩn của Hiệp hội Viễn thông Quốc tế TIA, nhưcủa FPT Telecom, CMC Telecom, Ngân hàng Sài gòn Thương tín- Sacombank.Ngân hàng Đông Nam Á... Tất cả đều cho biết nhờ dùng công nghệ tínhtoán lưới đã tiết kiệm đến 50% chi phí…
4.3. Một số lưu ý
Ở nướcta, Bộ KHCN đã sớm quan tâm đến vấn đề này. Bộ đã tổ chức hội thảo và đã có một số đề tài nghiên cứu, một số dự án được triển khai. Mặt khácBộ cũng rất quan tâm đến một hướng có tính nền tảng là PM nguồn mở(PMNM), là một trong những vấn đề cũng có tính cốt lõi cho phát triểntính toán mây. Tuy nhiên, nên triển khai:
Nghiên cứu xây dựngmột chiến lược phát triển tính toán mây ở nước ta. Chiến lược này sẽtrả lời cho câu hỏi khi hàng loạt các cơ sở tính toán hay là các TTDLcủa nhiều cơ quan, tổ chức doanh nghiệp được trang bị hàng chục năm naytrên cơ sở những công nghệ cũ, bây giờ sẽ phát triển tiếp như thế nào?Sẽ chuyển dần đến tính toán mây như thế nào? Trong tính toán mây thìnơi nào cần có TTDL riêng, nơi nào thuê DV và thuê ở cấp độ nào, loạiDV gì? Câu hỏi này càng phức tạp khi chúng ta đầu tư phát triển hạ tầngcơ sở cho việc đẩy mạnh phát triển chính phủ điện tử.
Cần cóchính sách tâp hợp được lực lượng nghiên cứu có năng lực tham gianghiên cứu lĩnh vực này. Một số trường ĐH lớn nên có nội dung đào tạotính toán mây mà không chỉ dừng lại ở bộ môn tính toán song song như ởcác trường trước đây đã có.
Cần tiếp tục đẩy mạnh việc dùng PMnguồn mở để chuẩn bị sẵn sàng đón nhận công nghệ tính toán mây. Cần cónhững chính sách thỏa đáng thu hút nhân lực cũng như đầu tư vào PMNM. 

4.4. Các tổ chức hỗ trợ và phát triển tính toán lưới
Diễn đàn điện toán lưới toàn cầu GGF

Diễn đàn Grid toàn cầu có mục đích định nghĩa các đặc tả cho tính toán lưới. GGF được phát triển với hợp tác giữa khu vực công nghiệp và khoa học với những hỗ trợ quan trọng từ cả hai khu vực này.
Tổ chức Globus Alliance

Globus Alliance triển khai một số chuẩn được phát triển tại diễn đàn GGF thông qua bộ phần mềm lưới trung gian Globus Toolkit. Với chức năng là một thành phần trung gian trong kiến trúc lưới, bộ phần mềm này cung cấp nền tảng chuẩn để thiết lập các dịch vụ trên lưới tính toán, nhưng tính toán lưới còn cần có nhiều thành phần khác và rất nhiều công cụ để thiết lập và duy trì môi trường lưới.

Globus đã triển khai được các giao thức do GGF định nghĩa để cung cấp các tính năng như:

1. Quản lý tài nguyên: thông qua giao thức phân phối và quản lý tài nguyên - GRAM( Grid Resource Allocation & Management).

2. Các dịch vụ thông tin: Dịch vụ kiểm soát và khai phá thông tin - MDS(Monitoring and Discovery Service)

3. Các dịch vụ bảo mật: Nền tảng bảo mật lưới - GSI(Grid Security Infrastructure)

4. Di chuyển và quản lý dữ liệu: Giao thức truy nhập toàn cầu tới một nơi lưu trữ thứ cấp - GASS(Global Access to Secondary Storage) và GridFTP

Rất nhiều công cụ kết hợp với Globus để tạo ra một nền tảng lưới mạnh, rất hữu ích cho cộng đồng tính toán hiệu năng cao như:

o WebCom và WebCom-G

o Gridbus Grid Service Broker

o Grid Portal Software như GridPort, OGCE and GridSphere

o Grid Packaging Toolkit (GPT)

o MPICH-G2 (Grid Enabled MPI)

o Network Weather Service (NWS) (phần mềm quản lý chất lượng dịch vụ)

o Condor (Tận dụng tài nguyên CPU) và Condor-G (Đệ trình công việc)

o HPC4U Middleware (Phần mềm trung gian có khả năng chịu lỗi và hỗ trợ SLA)

Các dịch vụ web dựa trên XML cung cấp một phương thức để truy nhập tới các dịch vụ và ứng dụng rải rác trong một môi trường phân tán. Từ năm 2003, cộng đồng tính toán lưới và dịch vụ web đã thống nhất cung cấp Lưới như một dịch vụ web (Grid Service). Kiến trúc dịch vụ lưới mở OGSA(Open Grid Service Architecture)đã được hình thành để thực hiện khuynh hướng này, nó định nghĩa ra môi trường cung cấp một vài chức năng liên quan tới dịch vụ lưới. Sứ mệnh của OGSA là mô tả và xây dựng một bộ giao diện chuẩn và thao tác có chức năng như một nền tảng chung cho các hệ thống và ứng dụng hỗ trợ lưới.
4.5. Các sản phẩm tính toán lưới thương mại
Các hãng cung cấp dịch vụ tính toán cung cấp các giải pháp lưới dựa trên bộ công cụ Globus Toolkit hoặc theo một kiến trúc riêng của họ. Nhưng một việc vẫn chưa rõ ràng đó là các hãng này cung cấp dịch vụ tính toán theo yêu cầu hay theo kiểu phân cụm.


KẾT LUẬN

Tính toán lưới đã được khoảng vài năm nay, lợi thế của nó rất nhiều. Lưới điện toán có thể được định nghĩa theo nhiều cách nhưng đối với những cuộc thảo luận chúng ta hãy chỉ đơn giản gọi nó là một cách để thực hiện tính toán công việc (ví dụ: perl script, các truy vấn cơ sở dữ liệu, vv) trên một phân phối thiết lập các nguồn tài nguyên thay vì nguồn tài nguyên trung tâm. Trong quá khứ hầu hết các máy tính đã được thực hiện ở silo hoặc lớn SMP như hộp. Thậm chí ngày nay bạn vẫn sẽ thấy các công ty thực hiện các tính toán về SMP hộp lớn (ví dụ của E10K, HP Superdomes). Tuy nhiên, mô hình này có thể khá đắt tiền và cũng không quy mô.

Cùng đến lưới điện toán và bây giờ chúng ta có khả năng phân phối công việc để các thành phần nhỏ hơn bằng cách sử dụng nhiều máy chủ tải phần mềm chia sẻ tải trọng phân phối đồng đều dựa trên nguồn lực và chính sách. Bây giờ thay vì có một gánh nặng rất nhiều máy chủ tải được trải đều trên nhiều máy tính nhỏ hơn mà có thể lây lan xung quanh các địa điểm khác nhau.

TÀI LIỆU THAM KHẢO

[1] What is the Grid? A three points checklist. Ian Foster. http://www-fp.mcs.anl.gov/~foster/Articles/WhatIsTheGrid.pdf

[2] Introduction to Grid computing – IBM Redbook. Bart Jacob, Michael Brown, Kentaro Fukui, Nihar Trivedi. ibm.com/redbooks

[3] Grid FAQ. http://www.gridcomputing.com/gridfaq.html [4]. Grid computing. Joshy Joseph, Craig Fellenstein. Prentice Hall PTR, 2003.

[5]. http://www.gridcafe.org/

[6]. "A Gentle Introduction to Grid Computing and Technologies", http://www.buyya.com/papers/GridIntro-CSI2005.pdf

[7] http://www.eu-egee.org

[8] http://www.pragma-grid.net/

[9] http://www.globus.org/

[10] http://glite.web.cern.ch/glite/


[TxT]

Ví dụ mảng 2 chiều [C/C++]

BAI TAP MANG 2 CHIEU - 29.11.19 /* Viết các hàm thực hiện 1.Nhập vào từ bàn phím ma trận vuông chứa các số nguyên có kích thước n (3...