PDA

View Full Version : Bàn về SOA



tinhocvpqt
16-09-2010, 08:12
Bàn về SOA:http://meliasoft.com/Default.aspx?tabid=86&CategoryID=9&News=216&language=vi-VN
Meliasoft - Một điển hình trong phát triển ứng dụng theo mô hình SOA ở Việt Nam

Hiện trạng ứng dụng phần mềm trong doanh nghiệp

Hiện nay, trên thế giới nói chung và ở Việt Nam nói riêng, việc ứng dụng các phần mềm vào xử lý nghiệp vụ kinh tế và quản lý doanh nghiệp là khá phổ biến. Từ các ứng dụng đơn lẻ như: quản lý hoá đơn, quản lý nhân sự, quản lý công nợ,… đến một giải pháp tổng thể như ERP (Enterprise Resource Planning), tất cả đã và đang đem đến cho doanh nghiệp nhiều tiện ích.

Tuy nhiên, một hệ thống phần mềm lớn như ERP thì cấu trúc của nó đang ngày càng trở nên phức tạp quá mức và nó kéo theo chi phí phát triển và bảo trì cao, không phù hợp với đại bộ phận các doanh nghiệp. Hàng chục năm qua, các kiến trúc phần mềm đã cố gắng giải quyết vấn đề này. Thế nhưng độ phức tạp vẫn tiếp tục tăng và dường như vấn đề này đã vượt quá khả năng xử lý của các kiến trúc phần mềm truyền thống.

Nhìn từ một góc độ khác, bất cứ một lĩnh vực kinh doanh nào trong thời buổi này, ta sẽ thấy nó đang thay đổi nhanh và liên tục đến mức không có công ty nào có thể duy trì vị thế của mình mãi được. Mỗi ngày các công ty đều phải thuê bên ngoài làm bớt công việc, nhận lấy những việc làm mới, tái cấu trúc những quy trình có sẵn hay chia sẻ thông tin với đối tác bằng một nhịp điệu mà mấy năm trước có nằm mơ cũng không thấy nổi.

Thế đấy, mọi doanh nghiệp ngày hôm nay đều đòi hỏi mức độ linh hoạt cao hơn, cả ở khả năng thay đổi quy trình và mức độ tương tác giữa các công đoạn nghiệp vụ. Thay đổi này kéo theo nhu cầu đổi với hệ thống IT cũng thay đổi và cuối cùng là các công nghệ, phương pháp và chuẩn cũng phải thay đổi theo.
Ta phải làm gì để khắc phục những bất cập trên?

Nhà khoa học lừng danh Albert Einstein từng nói: “Mọi việc nên thực hiện theo cách đơn giản đến mức có thể...”, đây cũng chính là vấn đề đặt ra hiện nay trong lĩnh vực phát triển phần mềm.

Gần đây xuất hiện một kiến trúc phần mềm mới được kỳ vọng là chìa khóa giải quyết vấn đề phức tạp này, nó được gọi là SOA.
Vậy SOA là gì?
SOA (Service-Oriented Architecture) - kiến trúc hướng dịch vụ. Hiểu một cách cơ bản, SOA là tập hợp các dịch vụ kết nối “mềm dẻo” với nhau, có giao tiếp được định nghĩa rõ ràng và độc lập với nền tảng hệ thống, và có thể tái sử dụng. SOA là cấp độ cao hơn của phát triển ứng dụng, chú trọng đến quy trình nghiệp vụ và dùng giao tiếp chuẩn để giúp che đi sự phức tạp kỹ thuật bên dưới.
Nói cách khác, SOA là:
Một kiểu kiến trúc phần mềm gồm nhiều thành phần độc lập được thể hiện thành những dịch vụ (service), mỗi dịch vụ thực hiện quy trình nghiệp vụ nào đó của doanh nghiệp.
Các thành phần được nối kết qua cổng giao tiếp, có tính kế thừa các thành phần đang tồn tại, và sự tương tác giữa chúng không cần quan tâm đến việc chúng được phát triển trên nền tảng công nghệ nào. Điều này khiến hệ thống có thể mở rộng và tích hợp một cách dễ dàng.


Bản chất SOA chỉ đơn thuần là sự đáp ứng đối với một thách thức ngày càng lớn: đó là yêu cầu thực tế của doanh nghiệp thay đổi ngày càng nhanh, đến mức những cấu trúc ứng dụng kiểu truyền thống khó giải quyết nổi. SOA sẽ đáp ứng được yêu cầu đó, nó sẽ trợ giúp cho hoạt động doanh nghiệp có thể quản lý được (manageable), linh hoạt hơn và sẵn sàng thay đổi hơn. Một chuyên gia của IBM từng nói: “SOA được xây dựng để thay đổi (built to change), chứ không chỉ để tồn tại (not built to last)“.

Từ góc độ doanh nghiệp thì có thể coi SOA là một phương pháp để tái cấu trúc hạ tầng thông tin của doanh nghiệp.
Một số ưu điểm của việc phát triển ứng dụng hướng dịch vụ (SOA)

Thứ nhất, tái sử dụng phần mềm. Nếu một dịch vụ có quy mô và kích thước phù hợp sau đó nó có thể được tái sử dụng cho lần kế tiếp. Điều này đồng nghĩa sẽ làm giảm công sức phát triển và chi phí về mặt tài chính cho cả hai phía: nhà phát triển phần mềm và các khách hàng (doanh nghiệp).

Thứ hai, linh hoạt khi mở rộng, kết nối và tích hợp. Giả sử rằng các dịch vụ sẽ không được tái sử dụng, thì ta có thể đưa ra nhiều giá trị nếu ta làm cho hệ thống CNTT chỉnh sửa dễ dàng hơn.

Doanh nghiệp Việt Nam và SOA phía trước

Tính đến thời điểm hiện tại, hầu hết các hãng cộng nghệ hàng đầu thế giới như Microsoft, IBM, SAP, Oracle,... đều đã chuyển đổi một phần hoặc toàn bộ hướng phát triển ứng dụng hoặc công nghệ của họ theo kiểu SOA, kéo theo đó là hệ thống các doanh nghiệp (các khách hàng của các hãng phần mềm này ) đã chuyển đổi hệ thống cũ sang hệ thống mới được thiết kế theo kiểu SOA.

Trong khi đó, các doanh nghiệp Việt Nam đang trong giai đoạn đầu tư cho công nghệ thông tin (CNTT), và ERP, theo "quán tính" đang là cái đích ngắm của một số doanh nghiệp lớn đang trong giai đoạn lên sàn chứng khoán. Tính đến thời điểm hiện tại, số lượng doanh nghiệp Việt Nam ứng dụng hệ thống ERP của nước ngoài đang tăng nhưng tỷ lệ số các doanh nghiệp được cho là ứng dụng thành công mới chỉ đếm trên đầu ngón tay. Chính những hứa hẹn của ERP là để kiểm soát được thông tin tức thời, đánh giá khả năng đáp ứng nhu cầu của doanh nghiệp khi có những kế hoạch mới như thế nào,... đã thu hút được nhiều doanh nghiệp lớn hướng đến ERP. Tuy nhiên, con đường đi tới mục tiêu đó lại xuất hiện những “cạm bẫy” bất ngờ.

Mục tiêu của SOA và ERP giống nhau, cả 2 đều muốn hệ thống CNTT kiểm soát toàn bộ thông tin đang diễn ra trong quy trình doanh nghiệp. Đó có thể là thông tin về nhà cung ứng, khách hàng, đối tác, tài chính, ngân hàng, tài sản,... ở một thời điểm bất kỳ.

Kiến trúc ERP mà doanh nghiệp Việt Nam đang nhắm tới đã bộc lộ khuyết điểm so với SOA là ở khả năng xoay sở khi quy trình, định hướng tổng thể của doanh nghiệp thay đổi. Nếu trong ERP hiện thực hóa các quy trình doanh nghiệp thành một chức năng tích hợp vào hệ thống chính, khó tháo rời và mất nhiều thời gian để cập nhật, bổ sung quy trình. SOA thì lại được ví như những mảnh lắp ghép, có thể tháo lắp để tạo thành những kiến trúc đặc thù cho một nhu cầu nào đó. Quy trình doanh nghiệp trong ERP bị đóng chặt trong ứng dụng, trong khi đó quy trình thực tế của các doanh nghiệp Việt Nam vẫn là quy trình đang chuẩn hóa và chưa trải qua thời gian đủ để trở thành những thành phần ổn định cho hệ thống ERP của phương Tây; ngược lại, với dịch vụ trong SOA thì quy trình doanh nghiệp được tự do để có thể tận dụng ở nhiều nơi hay ở những mục đích khác nhau.

Tính linh hoạt và lợi ích mà SOA mang lại đang đem đến cho ta cái nhìn: SOA chính là mô hình hệ thống phần mềm phù hợp nhất mà các doanh nghiệp Việt Nam nên hướng đến trong những năm tới.

Meliasoft với định hướng theo SOA

Hình dưới đây mô phỏng các thành phần chính của hệ thống phần mềm cho doanh nghiệp do Meliasoft thiết kế theo mô hình SOA:

Trong mô hình trên, thành phần mấu chốt là Meliasoft Services, đây là một dịch vụ (hoặc nhóm dịch vụ ) đóng vai trò là cổng giao tiếp giữa hệ thống chính do Meliasoft phát triển với các module mở rộng khác (External Modules - các module này có thể được phát triển trên bất kỳ công nghệ nào bởi Meliasoft hoặc bất cứ một nhà cung cấp khác tại bất cứ thời điểm nào mà doanh nghiệp có nhu cầu )

Có thể hình tượng hoá mô hình trên giống như việc thiết kế hệ thống điện cho một toà nhà: Ngoài hệ thống gồm đường dây điện, bóng đèn, công tắc,… thì một thành phần thiết yếu nữa là hệ thống các ổ cắm điện (Meliasoft Services) được lắp đặt sẵn. Ta có thể cắm phích điện của máy tính, ti-vi, quạt điện,… hay bất kỳ một thiết bị gia dụng nào khác vào hệ thống các ổ cắm có sẵn tuỳ thuộc vào nhu cầu của người chủ gia đình. Các thiết bị gia dụng này chính là các module mở rộng (External Modules) trong mô hình trên.

Sự liên tưởng giữa hệ thống phần mềm theo kiểu SOA với một hệ thống điện trong toà nhà có thể chưa làm sáng tỏ được hết mọi khía cạnh nhưng chúng ta có thể nhận thấy tính rất linh động của mô hình này, nó mang đến không chỉ những lợi ích đã đề cập ở trên mà nó còn đem đến sự tự do cho nhà phát triển và các khách hàng (doanh nghiệp) trong giai đoạn xây dựng cũng như khi cần thay đổi hoặc mở rộng hệ thống trong tương lai.

Tất cả lợi ích của mô hình hệ thống kiểu SOA mang lại có thể gói gọn bằng sự phụ hợp – một cụm từ mà Meliasoft đã chọn đưa vào định hướng cho việc phát triển sản phẩm của Công ty.