• Thứ Hai, 09/03/2009 17:16 (GMT+7)

    Oslo: Đường lên mây

    Con đường mà Microsoft đi lên điện toán đám mây "chạy" qua Oslo, một nền tảng mô hình có thể làm thay đổi bộ mặt của lĩnh vực phát triển phần mềm trong tương lai.

    Phần mềm trên mạng (Internet) nói chung và ứng dụng phân tán nói riêng đều phức tạp. Một phần là vì chúng có nhiều thành phần biến động – các dạng dữ liệu khác nhau, các máy chủ và môi trường khác nhau và các dạng ứng dụng nghiệp vụ khác nhau chạy trên các nền tảng khác nhau – tạo nên một môi trường khó quản lý. Ngoài ra, thường có nhiều tác nhân tham gia vào ứng dụng phân tán như: người phân tích nghiệp vụ, người thiết kế hệ thống, người phát triển ứng dụng và các chuyên gia CNTT – tất cả những người này phải làm việc với nhau để thực hiện các mục tiêu của hệ thống. Tuy nhiên, các tác nhân tham gia có các mối quan tâm và định mức ưu tiên khác nhau. Điều này gây khó khăn cho việc đạt các mục tiêu chung.

    Ví dụ, khi có một yêu cầu quan trọng không được đáp ứng, làm sao phân tích vấn đề trong một ứng dụng phân tán lớn: Qui trình nghiệp vụ liên quan? Người nào chịu trách nhiệm về qui trình này?

    Ứng dụng nào hỗ trợ qui trình này và nó chạy trên server nào?... Với các công nghệ hiện có, các tình huống như thế này rất khó giải quyết – nhưng chúng lại rất phổ biến trong thế giới ứng dụng phân tán.

    Cái mà người ta cần là một nền tảng "nhìn thấy" được những vấn đề phức tạp này, một nền tảng cho phép lập mô hình dữ liệu và qui trình nghiệp vụ, thiết kế hệ thống và triển khai các thành phần hệ thống, đồng thời kết hợp một cách hiệu quả với tác nhân khác trong tiến trình dự án. Và có lẽ quan trọng hơn, người ta cần một nền tảng có khả năng "nhìn thấu" các ứng dụng và công cụ để quản lý hệ thống khi có vấn đề xảy ra. Nó giúp nhận diện vấn đề dễ dàng, tìm ra nguyên nhân và giải quyết sự việc nhanh chóng. Người ta cần một nền tảng để quản lý chu trình của ứng dụng phân tán hiệu quả hơn. Đây chính là điều mà nền tảng mô hình Oslo hứa hẹn cung cấp. Oslo cung cấp nền tảng kỹ thuật cho việc thiết kế, xây dựng và quản lý các ứng dụng phân tán, đồng thời cải thiện việc cộng tác giữa nhiều tác nhân tham gia. Quan trọng hơn hết, tầm nhìn Oslo toàn diện sẽ được hiện thực bởi nhiều sản phẩm khác nhau được xây dựng trên nền tảng Oslo như Windows Application Server (Dublin), Microsoft System Center, Team Foundation Server và BizTalk Server.

    Mục tiêu chính của Oslo là xây dựng các mô hình có vai trò nền tảng phục vụ cho việc tạo, triển khai và quản lý ứng dụng. Trong Oslo, mô hình đại diện cho nhiều thứ như qui trình nghiệp vụ, ứng dụng hay luồng công việc... Oslo cho phép tạo nên mô hình thực sự là một phần của ứng dụng, chứ không đơn thuần là lược đồ chỉ được dùng trong quá trình thiết kế. Thuật ngữ "mô hình" (model) ở đây có ý nghĩa khác với "mô hình" được dùng trong những ngữ cảnh khác như UML (Unified Modeling Language).

    Mô hình – trung tâm của Oslo

    Thuật ngữ "mô hình" có nhiều nghĩa khác nhau. Microsoft sử dụng thuật ngữ này với nghĩa rộng nhất – đại diện cho nhiều thứ và có thể có nhiều dạng như hình ảnh, văn bản hay định nghĩa lược đồ. Do thực tế có nhiều vấn đề liên quan đến thuật ngữ "mô hình" nên Microsoft thường dùng thuật ngữ "lược đồ” (schema) thay thế.

    Có thể xem mô hình trong Oslo như là siêu dữ liệu của ứng dụng phân tán hay nói cách khác là dữ liệu mô tả chính ứng dụng phân tán. Siêu dữ liệu có vai trò quan trọng vì mở ra nhiều hướng đi cho chương trình lúc thực thi.

    Khả năng có thể "chạy" mô hình là điểm khác biệt quan trọng của nền tảng Oslo so với các nền tảng khác trước đây. Khả năng này xóa đi khoảng cách giữa mô hình và chương trình, cho phép nhiều tác nhân khác nhau có thể làm việc cộng tác trên cùng mô hình có thể thực thi. Oslo tạo một con đường trực tiếp hơn để người ta hiện thực các ý tưởng.

    Tóm lại, mô hình có vị trí trung tâm trong nền tảng Oslo. Mô hình được lưu trong kho Oslo và các tác nhân tương tác với mô hình trong hệ thống thông qua công cụ trực quan (Quadrant). Và khi cần mở rộng kho Oslo với các mô hình cho chuyên ngành cụ thể nào đó, nhà phát triển sẽ sử dụng ngôn ngữ mô hình Oslo (M).

    Kho Oslo

    Tôi cho rằng một trong những xu hướng quan trọng nhất trong lĩnh vực phát triển phần mềm đó là... mô hình. Thực tế, người ta cần khả năng tạo mô hình theo chuyên ngành nhưng không bị cô lập mà tồn tại trong một không gian chung..."
    Bill Gates

    Đây là đầu não của nền tảng Oslo, nơi mà các tác nhân và các thành phần hệ thống khác nhau "nhìn" vào để biết điều gì cần làm. Nó cho phép mọi người làm việc với 1 tập thông tin chung, nhờ đó cải thiện việc liên lạc và làm việc cộng tác giữa các tác nhân.

    Thực ra kho là CSDL SQL Server có chứa các bảng và mẫu tin. Nhà phát triển dùng ngôn ngữ mô hình Oslo (xem phần "Ngôn ngữ M") để định nghĩa các mô hình và đưa vào kho. Oslo đã có sẵn các mô hình thông dụng cho tất cả ứng dụng phân tán. Kho này cho phép các tác nhân khác nhau, tham gia ứng dụng phân tán, làm việc cộng tác suốt chu trình của ứng dụng.

    Ví dụ, người phân tích có thể định nghĩa các mô hình dữ liệu và qui trình nghiệp vụ mà không cần quan tâm đến các chi tiết kỹ thuật (bằng cách dùng công cụ lập mô hình Oslo sẽ được đề cập bên dưới). Người này cũng có thể định nghĩa các sự kiện cần giám sát. Tất cả thông tin này được lưu vào kho. Cùng lúc, chuyên gia CNTT có thể mô tả cơ sở hạ tầng (ví dụ các trung tâm dữ liệu, cụm máy chủ, máy tính...) và cũng lưu thông tin đó trong kho. Nhà phát triển sau đó có thể truy xuất các mô hình này trong kho và hiện thực chúng với Visual Studio dùng mã lệnh WCF và WF. Khi thực hiện xong, nhà phát triển sẽ lưu trở lại kho các mô hình theo định dạng XAML. Sau đó, người thiết kế hệ thống tổng thể định nghĩa mô hình ứng dụng với cách thức triển khai các mô hình phần mềm khác nhau và lưu mô hình kết quả vào kho.

    Oslo là nền tảng lập mô hình do phân bộ CSD (Connected Systems Division) của Microsoft phát triển. CSD chịu trách nhiệm về Windows Communication Foundation (WCF), Windows Workflow Foundation (WF), BizTalk Server và các công nghệ liên quan khác.

    Sau khi kho có các mô hình cần thiết, chuyên gia CNTT có thể dùng Windows Application Server (Dublin) để triển khai, thực thi, giám sát và quản lý ứng dụng trên cụm máy chủ. Trong khi ứng dụng chạy, người phân tích nghiệp vụ sẽ có thể thu thập thông tin giám sát và phân tích. Và khi có vấn đề phát sinh, chuyên gia CNTT có thể nhận diện vấn đề thông qua các chức năng giám sát và theo dõi, cũng như xác định người có trách nhiệm xử lý bằng cách truy vấn kho.

    Công cụ lập mô hình

    Một thành phần quan trọng khác làm nên nền tảng Oslo là công cụ lập mô hình có tên mã "Quadrant". Công cụ này có nhiệm vụ cung cấp giao tiếp trực quan để tương tác với các mô hình trong kho. Cụ thể, có thể dùngQuadrant để xem các mô hình dữ liệu, qui trình nghiệp vụ và cả mô hình hạ tầng CNTT với các "góc nhìn" thích hợp. Công cụ này còn thể hiện mối quan hệ giữa các mô hình, cho phép tìm kiếm và khai thác thông tin giá trị trong kho một cách dễ dàng.

    Quadrant được thiết kế với khả năng tùy biến cao cho các tác nhân khác nhau tham gia vào ứng dụng phân tán. Mỗi mô hình trong kho đi kèm một thể hiện mặc định nhưng người dùng có thể tạo các thể hiện riêng có ý nghĩa nhất đối với mình.

    Ngoài việc xem thông tin trong kho, Quadrant còn cho phép người dùng "chỉnh sửa" thông tin. Đây sẽ là phương tiện giao tiếp chính để người dùng không chuyên về CNTT (chẳng hạn những người phân tích nghiệp vụ) thêm thông tin vào kho hay để thực hiện các thay đổi cần thiết mà không phải làm việc trực tiếp với ngôn ngữ mô hình (M). Quandrant còn cho phép nhà phát triển dễ dàng phân tích vấn đề và tìm ra các mô hình liên quan trong kho.

    Ngôn ngữ mô hình

    Ngôn ngữ mô hình Oslo – được gọi là M – là ngôn ngữ dành cho nhà phát triển, dùng để định nghĩa mô hình mà không phải dùng công cụ đồ hoạ cũng như không phải đi quá sâu vào các chi tiết. M được thiết kế đặc biệt để nhà phát triển nhập và đọc, nghĩa là tạo nên một lớp trung gian giữa thế giới của các công cụ lập mô hình đồ hoạ (mà nhiều nhà phát triển không thích) và thế giới của T-SQL và XAML. M cho phép nhà phát triển định nghĩa hàng loạt mô hình.

    Điều quan trọng cần lưu ý là M không ràng buộc cách thức lưu trữ hay truy cập dữ liệu, cũng không ràng buộc công nghệ hiện thực cụ thể. Thay vì vậy, M được thiết kế để cho phép người dùng "ghi" ra điều muốn làm với dữ liệu mà không phải xác định cách thức thực hiện dựa trên một công nghệ hay nền tảng cho trước. Tuy nhiên, các mô hình này nhất thiết phải được lưu trong kho Oslo, đó là CSDL SQL Server vì vậy chúng ta sẽ cần một vài công cụ để dịch các định nghĩa dùng ngôn ngữ M thành các câu lệnh SQL.

    Sau khi đã định nghĩa mô hình dùng M, bạn có thể dùng các công cụ có trong bộ công cụ phát triển Oslo để sinh ra lệnh SQL và gói cài đặt vào kho. Bộ công cụ phát triển (SDK) có nhiều công cụ để làm việc với các mô hình. Có 1 công cụ để biên dịch file M thành gói cài đặt và 1 công cụ khác để cài mô hình vào kho. SDK còn có trình soạn thảo dạng NotePad gọi là Intellipad (Ipad) để nhà phát triển làm việc với file M (thật sự công cụ này giống Emacs hơn là Notepad).

    Nếu rành SQL, thực sự bạn có thể bỏ qua M và viết dữ liệu trực tiếp vào kho nhưng có lẽ điều này không phổ biến do phức tạp. Ngoài ra, kho Oslo có sẵn nhiều mô hình thông dụng với các ứng dụng phân tán, làm giảm nhu cầu tạo mô hình riêng. Do đó, việc xây dựng các ứng dụng Oslo không nhất thiết dùng M.

    Bạn chỉ cần dùng M khi muốn mở rộng nền tảng Oslo với các mô hình thuộc chuyên ngành nào đó. Bạn có thể dùng M để định nghĩa nhiều mô hình khác nhau – mô hình dữ liệu mới, mô hình qui trình nghiệp vụ và cả mô hình hạ tầng CNTT (mô tả thiết bị phần cứng). Thậm chí bạn có thể dùng M để định nghĩa ngôn ngữ riêng để làm đơn giản hơn nữa việc tạo mô hình theo lĩnh vực cụ thể.

    Kết luận

    Dự án Oslo của Microsoft nhằm tạo nên một nền tảng thống nhất cho các ứng dụng phân tán, hướng dịch vụ và dựa trên mô hình. Cách tiếp cận mới này sẽ ảnh hưởng đến các phiên bản kế tiếp của nhiều sản phẩm và công nghệ, bao gồm Microsoft .NET Framework, Microsoft Visual Studio, Microsoft BizTalk Server, Microsoft System Center...

    Ban đầu, Misrosoft đưa ra Oslo như một phần của kiến trúc hướng dịch vụ (SOA - Service Oriented Architecture), tuy nhiên Oslo giờ đây có ý nghĩa nhiều hơn thế. Nó là công nghệ mô hình nền tảng và sẽ giúp Microsoft bước hẳn vào lĩnh vực ứng dụng trên môi trường Internet hay điện toán đám mây.

    Phương Uyên

    Tham khảo: • Introducing "Oslo", Aaron Skonnard • Microsoft Oslo website: http://www.microsoft.com/soa/products/oslo.aspx

    ID: A0902_82