19/1/09

Tìm hiểu về SOA

Tìm hiểu SOA
Nguồn: http://quantrimang.com

“SOA là một hành trình”, đó là câu cửa miệng của nhiều chuyên gia IBM. Hàng năm, IBM cam kết đầu tư 1 tỷ USD cho nghiên cứu và phát triển SOA. Vậy SOA là gì?
Nếu bạn đồng ý rằng ông thợ rèn nào cũng cần có cây búa chuyên nghiệp của riêng mình thì SOA chính là “cây búa” mới nhất của IBM. Với kiến trúc hướng dịch vụ (Service-oriented Architecture, viết tắt SOA), IBM giúp doanh nghiệp (DN) tăng khả năng đáp ứng và sự linh hoạt trong hoạt động nghiệp vụ. IBM không chỉ là một hãng phát triển phần cứng (máy chủ, hệ thống lưu trữ...) mà còn là “gã khổng lồ” về phần mềm (PM) và dịch vụ (DV) tích hợp hệ thống. Ngay tại TPHCM, IBM đã xây dựng trung tâm DV Toàn Cầu (Global Delivery Center) với 300 nhân viên, mà nhiệm vụ chủ yếu là phát triển các giải pháp PM theo đơn đặt hàng của các DN và quốc gia trên toàn cầu. Tạm hiểu nôm na, SOA chính là khái niệm bao trùm toàn bộ phương pháp luận, kỹ năng và công cụ CNTT-TT hiện đại nhất trong thực tiễn cung cấp DV tích hợp hệ thống của IBM. Định nghĩa của SOA dựa trên nhiều khái niệm nền tảng. Tuy nhiên, từ góc nhìn của DN, có thể thấy tinh thần của SOA được thể hiện thông qua 4 khái niệm cơ bản là “DV” (service), “quy trình DN” (business process), “ứng dụng tổ hợp” (composite application) và quản lý quy trình DN (Business Process management - BPM). Khái niệm “DV” Chúng ta luôn phải trả tiền cho “DV”, chẳng hạn DV hay “phí phục vụ” tại khách sạn, nhà hàng, trên xe taxi... Cụ thể hơn, đến một tiệm ăn, chúng ta “gửi thông tin” cho người phục vụ (gọi thức ăn, đồ uống) và rồi thưởng thức món ăn. Chúng ta không thấy người đầu bếp chế biến món ăn đó ra sao, cũng không tham gia vào quá trình nấu, nhưng đó chính là “DV” mà chúng ta phải trả tiền. Khái niệm “kiến trúc hướng DV” liên quan đến khái niệm DV. Trở lại với DV trên, tiệm ăn rõ ràng đã cung cấp “DV nấu ăn” bao gồm những hoạt động như chuẩn bị nguyên liệu (nhặt rau, làm cá), nấu nướng và trình bày món ăn... Ví dụ này dẫn chúng ta đến một định nghĩa nghiêm túc về DV DN (business service): “Sự thể hiện logic chức năng của DN”. Nói một cách dễ hiểu hơn, để thực hiện được một chức năng nào đó của DN, chúng ta phải huy động mọi thứ cần phải có - đó chính là một business service (DV DN).
Nói một cách ngắn gọn, SOA là một phong cách kiến trúc (architecture style) mang lại cho DN sự linh hoạt cao. Ông Dan Powers, phó chủ tịch phụ trách SOA toàn cầu của IBM.
Tiệm ăn nói trên không chỉ cung cấp DV cho thực khách mà còn sử dụng DV từ hệ thống CNTT. Ngày càng có nhiều tiệm ăn trên thế giới và tại Việt Nam ứng dụng CNTT để phục vụ việc nhận đặt hàng và chuẩn bị món ăn nhờ vào website, PM quản lý tiệm ăn, hệ thống nhận lệnh đặt món ăn qua PDA (thiết bị cầm tay) và mạng không dây... như KFC, Highlands Coffee... Khái niệm “DV” của SOA cũng đề cập đến các DV mà hệ thống CNTT cung cấp cho tiệm ăn như DV email, DV tin nhắn, DV cung cấp dữ liệu, v.v... Nếu nhìn tổng quan vào toàn bộ hoạt động của DN, bạn sẽ thấy các DV thường là những công việc “lặp đi lặp lại”, với “các bước thực hiện rõ ràng” trong quá trình hoạt động của DN. IBM chỉ ra rằng các DV thường được “tái sử dụng” (reuse) nhiều lần. Một chuyên gia của IBM đã nêu ra một ví dụ từ văn hóa Trung Hoa cổ: In chữ lên bia đá. Chúng ta biết người Trung Quốc dùng chữ tượng hình và họ viết từng chữ một lên bia đá. Nhưng sau này họ đã “cải tiến” quy trình: Họ tạo sẵn các khuôn chữ; rồi mỗi khi cần in chữ đó lên bia họ tìm lại chiếc khuôn đó, nhúng mực và in lên mặt bia. Đó chính là khái niệm tái sử dụng DV mà SOA ứng dụng. Quá trình hoạt động của ngân hàng có thể tiêu biểu cho việc sử dụng một DV nhiều lần (nói cách khác là tái sử dụng) trong nhiều quy trình. Chẳng hạn, DV tạo tài khoản (account opening) hay kiểm tra khả năng thanh toán của người vay nợ (credit checking) thường nằm trong nhiều quy trình cho vay tiền của ngân hàng. Khái niệm tái sử dụng khiến các hãng PM và DN tập trung hình thành các DV chuẩn và tối ưu hóa rồi tái sử dụng chúng. Quy trình DN và ứng dụng tổ hợp Nếu DN “xâu chuỗi” nhiều DV, DN đó đang hình thành ra các quy trình DN (business process, viết tắt BP). Trong nhiều năm qua, IBM và các hãng cung cấp giải pháp và tích hợp hệ thống nhắc rất nhiều đến khái niệm BP. Nhưng “quy trình DN” là gì? Định nghĩa chung nhất: Là tất cả những điều gì phải được thực hiện để hoàn tất một việc nào đó. BP khác DV ở chỗ nào? BP rộng lớn hơn và bao gồm con người, DV và nhiều thành phần khác. Theo định nghĩa chính thống, BP là việc mã hóa các quy tắc và tập quán kinh doanh tốt nhất để hoàn thành công việc kinh doanh. “Xử lý các trường hợp bảo hiểm” (claim handling) là BP đối với một công ty bảo hiểm. “Nhận bệnh nhân” là BP của bệnh viện. “Bán tủ gỗ” là BP của cửa hàng nội thất. Cần chú ý, BP không hoàn toàn phải được tự động hóa. Trong BP có thể có những hoạt động không được tự động hóa như gọi điện thoại, đóng gói sản phẩm hay bất cứ những công việc nào liên quan đến con người. Trong 1 BP có thể có nhiều BP khác. Hay nói cách khác các BP trong DN như các con búp bê Nga: trong búp bê này còn có búp bê khác nhỏ hơn. Nếu như các BP xâu chuỗi các DV DN thì các chương trình ứng dụng xâu chuỗi các DV của hệ thống CNTT. DN có lẽ đã quen thuộc với khái niệm “chương trình ứng dụng” như Word, Outlook, Mozilla, SPSS... Tuy nhiên, IBM đã phát triển ứng dụng tới mức “tổ hợp” (composite). Hiểu nôm na, ứng dụng tổ hợp (composite application, viết tắt CA) như một BP chạy hoàn toàn tự động (Nhắc lại, BP có những hoạt động thủ công liên quan đến con người như gọi điện thoại, bật máy...). CA chính là các ứng dụng được xây dựng từ các chức năng của các ứng dụng có sẵn với một vài thành phần mới được bổ sung. Như vậy, chúng ta đã chạm vào những “viên gạch” và những “mảng tường lớn” xây nên tòa nhà SOA: DV và quy trình. Nhưng SOA không chỉ là những viên gạch mà còn là cách sắp xếp những viên gạch đó sao cho hợp lý. Quản lý quy trình DN Có lẽ đến đây, bạn đọc vẫn chưa hình dung ra hình thù của SOA. Tuy nhiên, chúng tôi nhấn mạnh tinh thần của SOA là hướng việc làm cho hoạt động DN 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)”. SOA được xây lên từ các DV và quy trình DN. Nhưng DN không nên chỉ xây mà phải kiểm soát việc xây. Đó là lúc khái niệm Quản Lý Quy Trình DN (Business Process Management - BPM) vào cuộc. Về mặt lý thuyết quản lý, BPM chính là phương pháp quản lý mà phương Tây học tập từ triết lý quản lý sản xuất Nhật Bản. Thuật ngữ sát nghĩa nhất với BPM chính là “Kaizen” của Nhật, nghĩa là “cải tiến liên tục”, hay rõ hơn: “gỡ ra và gắn kết lại theo một cách hay hơn”. BPM còn “học tập” nhiều phương pháp quản lý khoa học nổi tiếng khác như Quản Lý Chất Lượng Toàn Diện (TQM) và Sáu Sigma (Six Sigma). Vậy BPM làm gì? BPM cho phép DN theo dõi các quy trình DN, dùng PM mô phỏng và chỉnh sửa quy trình nhằm mang lại hiệu quả và hiệu suất cao hơn. BPM được dùng để tạo mới các chức năng của DN cũng như kết nối các chức năng có sẵn trong hệ thống CNTT lại với nhau. Với công cụ BPM, các chuyên gia phân tích tổ chức DN sẽ thiết kế ra đường dẫn quy trình (process flow) và định ra luồng công việc từ người này đến người khác (hay từ BP này đến BP khác và ngược lại) bên trong các BP lớn hơn. Một ví dụ: Ngân hàng A muốn tung ra 1 DV cho vay tài chính mới. Với BPM và các thông số giả định theo thiết kế, ngân hàng này sẽ chạy quy trình mô phỏng trong 1 tháng. Kết quả trả về sẽ cho thấy quy trình này bị “nghẽn” ở chỗ nào, vị trí nào quá tải... Nhờ đó, ngân hàng biết cải tiến quy trình ở đâu và tăng tốc việc đưa DV ra thị trường. “Xe buýt” của IBM Cần nhớ rằng các quy trình, ứng dụng là các cấu phần của hệ thống CNTT. BPM chỉ đảm bảo các quy trình được sắp xếp theo 1 cách tối ưu nhưng không đảm bảo khả năng giao tiếp thông tin giữa các quy trình với nhau. Làm sao thông tin từ chiếc máy tính trong kho hàng ở tỉnh được gửi đến đúng chiếc máy tính của nhân viên bán hàng tại TP.HCM? IBM đưa ra giải pháp Enterprise Service Bus (ESB). Có thể hiểu ESB như một “tuyến xe buýt đặc biệt”, mang thông tin, DV đến mọi nơi trong hệ thống thông tin của DN. ESB đảm bảo những thông điệp quan trọng nhất của DN được truyền đạt đến đúng đối tượng. IBM gọi ESB bằng thuật ngữ “trung gian DV” (service broker hay message broker). Khi “tuyến xe buýt” này được đặt vào hệ thống CNTT của DN, có thể xem như DN đó đang ứng dụng SOA. SOA sẽ giúp thay đổi “cảnh quan” của hệ thống DN. Sẽ không còn những “ốc đảo” công nghệ, những phòng ban riêng biệt với những hệ thống riêng biệt. “Với SOA, các phòng ban trong DN sẽ không còn tường ngăn cách”, một chuyên gia IBM ví von. SOA, hơn cả việc kết nối các “ốc đảo”, đang san phẳng chúng. Các ốc đảo công nghệ, với các ứng dụng và phần cứng riêng biệt, được dựng lên để đáp ứng nhu cầu của 1 phòng ban nào đó của DN. Tuy nhiên, khi có quá nhiều ốc đảo thì lại tồn tại sự không nhất quán của nhiều loại dữ liệu khác nhau, sự lãng phí tài nguyên CNTT (do không tận dụng hết), sự trùng lặp (chẳng hạn, mỗi phòng có một PM quản lý nhân sự riêng...). SOA khi đó cho phép tiếp cận các ốc đảo, gỡ bỏ chúng dần dần và biến chúng thành những thành phần hữu ích có thể tái sử dụng. Ở một khía cạnh khác, các chuyên gia IBM thường lấy ví dụ về việc tích hợp hệ thống theo điểm-điểm (point-to-point, viết tắt PtP) để chỉ ra lợi ích của SOA. Mỗi lần DN muốn 1 ứng dụng trao đổi dữ liệu với 1 ứng dụng khác (chẳng hạn, chuyển dữ liệu từ website sang PM CRM), họ yêu cầu phòng CNTT “tích hợp” 2 ứng dụng này- đó chính là PtP. Trong thực tế hiện nay, nhiều DN Việt Nam thậm chí còn chưa đạt đến trình độ này mà chỉ xuất dữ liệu và nhập (thủ công) trở lại vào PM. Cứ giả sử DN đã tiến hành PtP, đến một ngày nọ, công ty có hệ thống PtP đó bị mua lại và công ty mẹ nhận ra rằng họ có quá nhiều PM giống nhau, nào là kế toán, CRM (quản lý marketing, bán hàng), HRM (quản lý nhân sự) nhưng chúng lại không đồng nhất về dữ liệu. Tuy nhiên, để có thể đồng nhất dữ liệu thì tốn quá nhiều công sức. Đó là lúc SOA vào cuộc. ESB chính là công cụ để giải quyết vấn đề PtP. SOA không phải là cuộc chơi “có mới, nới cũ” hay “gỡ bỏ và thay thế”. SOA là phong cách kiến trúc tận dụng những gì còn dùng được từ “tài sản thừa kế”. Ứng dụng CNTT từ trên xuống Khái niệm về SOA phức tạp và nhiều tầng nghĩa. Tuy nhiên, có thể tóm gọn SOA trong 3 từ “lặp đi lặp lại” (repeat), “tái sử dụng” (reuse) và “mã nguồn mở” (open source). SOA là triết lý quản lý dựa trên sự tiết kiệm và tối ưu hóa nguồn lực DN. IBM sử dụng ngôn ngữ Java để phát triển nên SOA mang tính mở, cho phép nhiều nhà phát triển tham gia. Với bài viết này, TGVT-PC World VN sêri B mong muốn mang đến cho bạn đọc quan điểm công nghệ của một trong những tập đoàn CNTT lớn nhất thế giới: “Tăng tốc cho việc ra quyết định”, “phản ứng nhanh với nhu cầu của khách hàng” nhờ vào khả năng quản lý hoạt động DN đến từng quy trình, từng DV. Điều đó chỉ có được khi người dùng DN không phải thông qua phòng CNTT để có được quy trình cải tiến. SOA cho phép DN ứng dụng CNTT từ trên xuống. Nói cách khác, người dùng DN cứ việc thay đổi quy trình ngay trong quá trình làm việc, “lớp công nghệ” bên dưới sẽ tự động chuyển đổi theo. Hành trình SOA chính là hành trình giảm dần sự phụ thuộc của người dùng DN vào những ràng buộc của hệ thống CNTT - hành trình của sự tự do. Ông Aroon Tor-ek-bundit, phó chủ tịch cao cấp của Metro Systems Corporation, Thái Lan SOA là thuật ngữ mới trong 4 năm trở lại đây. Nhưng 10 năm trước chúng tôi gọi nó là công nghệ hướng đối tượng (object-oriented technology). Đây là một khái niệm hay trong ngành lập trình, với ý tưởng “chặt” PM ra thành từng phần (component). Bởi vì khi đó, các lập trình viên có thể chỉnh sửa thành phần này của giải pháp mà không ảnh hưởng đến các thành phần khác. Tuy nhiên, công nghệ hướng đối tượng đã không thành công, ít công ty nào làm được điều này vì họ thiếu công cụ. Nhưng ít ra chúng tôi đã từng suy nghĩ theo quan điểm tương tự SOA từ 10 năm trước. Kiến trúc hướng DV mà IBM đề xướng giải quyết nhiều vấn đề mà các lập trình viên và người dùng DN gặp phải. Tôi cho rằng IBM đang đi đúng hướng. “Đi đúng hướng” nghĩa là không chỉ có tầm nhìn mà phải có cả công cụ. Tôi đảm bảo rằng vài năm tới, SOA sẽ trở thành chuẩn mực của ngành PM. Các giải pháp ứng dụng sau này nếu không được dán nhãn SOA sẽ khó bán chạy trên thị trường. IBM có đầy đủ công nghệ và công cụ để giữ vững vị trí hàng đầu trong lĩnh vực này. Metro Systems (Thái Lan) đã được thành lập 21 năm, là đối tác của IBM hơn 17 năm. Công ty chuyên cung cấp giải pháp thiết bị máy tính văn phòng và PM. Hiện công ty có khoảng 800 nhân viên và doanh thu hàng năm đạt khoảng 180 triệu USD. Ông Manny Tuason, chủ tịch HĐQT và CEO của tập đoàn CIS Bayad Center (Bayad), Philippines“Bayad” tiếng Philippines nghĩa là “trả tiền”. Nhờ vào giải pháp Websphere MQ series của IBM mà Bayad đã trở thành 1 công ty tư nhân cung cấp DV thu nợ quá hạn cho công ty Điện Lực Manila (MERALCO), đối với những người dân đến hạn mà chưa thanh toán tiền điện. Hệ thống của chúng tôi xử lý hoàn toàn tự động. Ngoài ra, chúng tôi còn cung cấp DV thanh toán cho người dân Philippines lao động tại nước ngoài, cho phép họ thanh toán chi phí cho thân nhân trong nước. Ông Kevin Ong Boon Siong, giám đốc cấp cao về công nghệ ứng dụng và hệ thống thông tin của Sony châu Á - Thái Bình Dương Trước khi bắt tay ứng dụng SOA từ 2004, môi trường giải pháp CNTT của Sony châu Á - Thái Bình Dương (Sony AP) gồm nhiều hệ thống phức tạp khác nhau. Kinh nghiệm của chúng tôi là hãy bắt đầu với những qui mô ứng dụng nhỏ nếu chọn SOA. Chúng tôi đã ứng dụng SOA vào quy trình của nhóm Sửa Chữa Thiết Bị và đến nay thu nhiều hiệu quả, tăng tần suất tái sử dụng các ứng dụng, giảm thời gian làm việc của bộ phận CNTT. Bước đi tiếp theo của chúng tôi sẽ là mở rộng ứng dụng SOA sang các quy trình khác như dây chuyền cung ứng, tiếp thị và bán lẻ.

Một số bài viết về SOA

http://www.quantrimang.com.vn/tintuc/tin-quoc-te/20763_Oracle_cong_bo_giai_phap_SOA_cho_DN_Viet_Nam.aspx

http://www.quantrimang.com.vn/kienthuc/kien-thuc-co-ban/47213_Microsoft_bo_sung_them_workflow_cho_nen_tang_SOA_dua_tren_cloud_.aspx

Không có nhận xét nào:

Đăng nhận xét