Mục tiêu chính của lập trình Grid là nghiên cứu về các mơ hình lập trình, các cơng cụ và các phương pháp nhằm hỗ trợ cho việc phát triển hiệu quả các thuật tốn và các chương trình hiệu năng cao trên mơi trường lưới. Lập trình lưới yêu cầu các kỹ năng và tính chất cao hơn so với lập trình tuần tự, và thậm chí là lập trình song song và phân tán. Bên cạnh việc sắp xếp các thao tác đơn giản trên những cấu trúc dữ liệu riêng, hay sắp xếp các thao tác phức tạp trên những cấu trúc dữ liệu chia sẽ hay phân tán, một lập trình viên tính tốn lưới cần phải đảm nhiệm luơn việc quản lý tính tốn trên mơi trường. Bên cạnh việc chỉ thực hiện các thao tác đơn giản, người lập trình lưới cũng phải thiết kế tương tác giữa những dịch vụ từ xa, nguồn dữ liệu và tài nguyên phần cứng. Mặc dù người ta cĩ thể xây dựng các ứng dụng Grid với các cơng cụ lập trình hiện tại, nhưng người ta vẫn
đang đồng lịng nhất trí với nhau rằng hiện nay chúng vẫn khơng đáp ứng hiệu quả để hỗ trợ cho việc xây dựng mã nguồn Grid.
Các ứng dụng lưới thường cĩ xu hướng động và khơng đồng nhất, bởi vì chúng sẽ chạy trên các loại nguồn tài nguyên khác nhau với cấu hình thay đổi khi thực thi. Những cấu hình động này cĩ thể được thúc đẩy bởi sự thay đổi của mơi trường, ví dụ như thay đổi hiệu năng hay lỗi của phần cứng, v.v…Bất kể nguyên nhân gì thì liệu một mơ hình hay một cơng cụ lập trình nào đĩ cĩ thể làm cho các nguồn tài nguyên “hỗn tạp” ấy trở nên “gần gũi” với những người lập trình hay khơng? che dấu các khác biệt đĩ trong khi vẫn cho phép người lập trình quyền
điều khiển trên các loại tài nguyên nếu cĩ thể? Nhưng nếu cĩ một sự trừu tượng thích hợp được sử dụng thì liệu nĩ cĩ được hỗ trợ, cung cấp bởi các hệ thống thời gian thực?
http://etrithuc.vn
thơng tin giữa các nguồn tài nguyên liên quan. Hiện tại thì chúng ta cĩ thể thực hiện điều này bằng cách quản lý tính tốn, thơng tin, và dữ liệu cục bộ sử dụng truyền thơng điệp (message passing) hay gọi yêu cầu các phương thức từ xa (remote method invocation - RMI).
Để giải quyết các vấn đề này, chúng ta phải biết được rằng các mơ hình lập trình hiện nay đang thiếu những gì, cần thêm những khả năng mới gì, và nĩ sẽ được thực thi ở mức ngơn ngữ, mức cơng cụ hay ở hệ thống thời gian thực nào. Thuật ngữ mơ hình lập trình ở đây được sử dụng khơng chỉ liên quan đến ngơn ngữ lập trình. Một mơ hình lập trình cĩ thể được thể hiện theo nhiều dạng khác nhau, ví dụ như một ngơn ngữ, một thư viện API, hay đơn thuần chỉ là một cơng cụ cĩ các chức năng mở rộng. Một mơ hình lập trình thành cơng nhất là mơ hình cĩ hiệu năng cao, sự kết hợp và quản lý linh hoạt các nguồn tài nguyên. Các mơ hình lập trình cũng phải ảnh hưởng đến tồn bộ chu trình phát triển phần mềm : thiết kế, cài đặt, kiểm lỗi, vận hành, duy trì, v.v…Vì thế những mơ hình thành cơng cũng phải đáp ứng việc sử dụng hiệu quả tất cả các loại cơng cụ phát triển, ví dụ như là trình biên dịch, trình sửa lỗi, trình theo dõi hiệu năng…
Trước tiên ta sẽ tìm hiểu các vấn đề chính khi lập trình lưới, sau đĩ chúng ta sẽ tìm hiểu một vài mơ hình lập trình phổ biến đang được sử dụng và đề xuất trên mơi trường Grid. Tiếp theo chúng ta sẽ thảo luận các phương pháp và kỹ thuật lập trình nhằm giải quyết các vấn đề phức tạp bằng cách sử dụng các cơng cụđang cĩ hiện nay.