8. Đúng gúp của luận ỏn về lý luận và thực ti ễn
1.2.1. Kiến trỳc hướng dịch vụ
ạ Khỏi niệm
Kiến trỳc hướng dịch vụ là một khỏi niệm về kiến trỳc của hệ thống thụng tin nhằm đem lại những chức năng nghiệp vụ, hoặc là những quy trỡnh ứng dụng một cỏch thuận tiện nhất cho người sử dụng dưới dạng cỏc dịch vụ hoạt động trờn mụi trường mạng cú khả năng chia sẻ và sử dụng lại (Marks và Bell, 2006; Mike Rosen và cộng sự, 2008). Hỡnh 1.6 thể hiện sự cộng tỏc giữa cỏc yếu tố trong một hệ thống SOẠ
Hỡnh 1.6. Sự cộng tỏc giữa cỏc yếu tố trong một hệ thống SOẠ
Nguồn: Mark Endrei và cộng sự, 2004; Thomas Erl, 2005.
Thuật ngữ SOA được Alexander Pasik đưa ra vào năm 1994, ban đầu dựng để nhấn mạnh cụm từ “Server Orientation” trong mụ hỡnh Client/Server. Đến năm 2000 cụng nghệ dịch vụ Web của Microsoft đó làm cho SOA trở thành một trong những xu
Nơi đăng ký dịch vụ Người sử dụng dịch vụ Nhà cung cấp dịch vụ Tỡm kiếm Đăng ký Ràng buộc, Thực hiện
thế kiến trỳc phần mềm được giới CNTT và giới doanh nghiệp quan tõm. Từ năm 2008, SOA bắt đầu phỏt triển mạnh, được cỏc nhà cung cấp giải phỏp CNTT như IBM, Microsoft, Oracle và SAP quan tõm. Họđó đầu từ hàng nghỡn tỷđồng để xõy dựng nền tảng và bộ cụng cụ hỗ trợ SOA (Mike Rosen và cộng sự, 2008; Ali Arsanjani, 2004). Cú thể núi SOA là cấp độ cao 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 để che dấu sự phức tạp kỹ thuật bờn dướị
Dịch vụ (Service)
Dịch vụ là yếu tố then chốt trong SOẠ Dịch vụ được hiểu là những mụ đun nghiệp vụ hoặc chương trỡnh ứng dụng cú thể cung cấp những dữ liệu mà hoạt động nghiệp vụ khỏc cần. Nú cú thể cung cấp cỏc kết quả thụng qua giao diện được thiết kế theo quy định và được tương tỏc bằng cỏch gửi nhận thụng điệp (Marks và Bell, 2006; Mike Rosen và cộng sự, 2008). Việc hoàn thành cỏc mục tiờu kinh doanh là một nhiệm vụ tất yếu của bất kỳ giải phỏp tựđộng nàọ Cỏc mục tiờu này bao gồm cỏc xử lý logic được thực hiện để đỏp ứng cỏc yờu cầu kinh doanh. Trong cỏc giải phỏp hướng dịch vụ, mỗi nhiệm vụ cú thể liờn quan đến một số cỏc dịch vụ. Sự tương tỏc của cỏc dịch vụ nhằm hoàn thành một mục tiờu kinh doanh được gọi là một hoạt động của dịch vụ (Thomas Erl, 2005).
Hỡnh 1.7 Cỏc dịch vụ hợp tỏc để làm một cụng việc cụ thể.
Nguồn: Thomas Erl, 2005.
Hỡnh 1.7. chỉ ra luồng thụng tin giữa một người sử dụng dịch vụ và một nhà cung cấp dịch vụđược tớch hợp trong một SOẠ Cỏc dịch vụ giao tiếp với nhau khụng thụng qua mó của chỳng, mà thụng qua một tập cỏc giao thức được phỏt triển để đảm bảo cho sự giao tiếp. Giao thức độc lập với SOA, do đú người sử dụng dịch vụ khỏc nhau cú thể giao tiếp với một nhà cung cấp dịch vụ theo cỏc cỏch khỏc nhaụ Việc quản lý cỏc tương tỏc dịch vụđược đảm bảo bởi cỏc nhà mụi giới dịch vụ mà ởđú cú chứa danh sỏch tất cả cỏc dịch vụ cú sẵn và thụng tin của chỳng.
b. Nền tảng của kiến trỳc hướng dịch vụ
Để giữ được sự độc lập, dịch vụ được đúng gúi logic theo cỏc bối cảnh khỏc nhaụ Một dịch vụ cú thể nhỏ hay lớn. Quy mụ và phạm vi của logic đại diện bởi cỏc
Dịch vụ A Dịch vụ B Dịch vụ C Tụi cần sự giỳp đỡđể thực hiện một số cụng việc Tụi sẵn sàng giỳp đỡ Tụi cần bạn làm giỳp cụng việc này Đõy là kết quả tụi đó thực hiện
dịch vụ cú thể khỏc nhaụ Hơn nữa dịch vụ cú thể bao gồm cỏc logic được cung cấp bởi cỏc dịch vụ khỏc (Thomas Erl, 2005).
Hỡnh 1.8 cho thấy khi xõy dựng một giải phỏp tự động húa bao gồm cỏc dịch vụ, mỗi dịch vụ cú thể gúi gọn một nhiệm vụ và được thực hiện bởi một bước riờng hoặc một quy trỡnh con bao gồm một tập hợp cỏc bước. Một dịch vụ cú thể gúi gọn toàn bộ quy trỡnh logic và cú thể bao gồm cỏc logic đúng gúi của cỏc dịch vụ khỏc.
Hỡnh 1.8. Dịch vụđúng gúi logic khỏc nhaụ
Nguồn: Thomas Erl, 2005.
Trong SOA, một dịch vụ cú thể được cỏc dịch vụ khỏc hoặc cỏc chương trỡnh khỏc sử dụng. Mối quan hệ giữa cỏc dịch vụ dựa trờn sự hiểu biết để tương tỏc với nhau, một dịch vụ phải được cỏc dịch vụ khỏc nhận biết. Sự nhận biết này đạt được thụng qua việc sử dụng cỏc mụ tả dịch vụ (Thomas Erl, 2005).
Một mụ tả dịch vụ theo định dạng cơ bản nhất là thiết lập tờn của dịch vụ, cỏc dữ liệu cần cung cấp và dữ liệu mà dịch vụ trả về. Hỡnh 1.9 và Hỡnh 1.10 minh họa dịch vụ A nhận biết được dịch vụ B nhờ nú cú được mụ tả của dịch vụ B.
Để cỏc dịch vụ tương tỏc và thực hiện thao tỏc cú ý nghĩa thỡ chỳng phải trao đổi thụng tin. Cỏc dịch vụ sẽ giao tiếp với nhau bằng cỏch sử dụng thụng điệp, điều này tạo mối quan hệ lỏng lẻo giữa cỏc dịch vụ.
Hỡnh 1.9. Dịch vụ nhận biết nhaụ
Nguồn: Thomas Erl, 2005.
Hỡnh 1.10. Trao đổi thụng điệp giữa hai dịch vụ.
Nguồn: Thomas Erl, 2005. c. Đặc điểm cụng nghệ của kiến trỳc hướng dịch vụ
Theo Marks và Bell (2006) và Thomas Erl (2005), SOA cú cỏc tớnh chất cơ bản sau:
Tớnh đúng gúi dịch vụ: Nghĩa là cỏc đối tượng sử dụng dịch vụ chỉ quan tõm tới đặc tả của dịch vụ thụng qua giao diện mà nú được cung cấp, khụng cần biết đến dịch vụđú được cài đặt thế nàọ
Khả năng sử dụng lại dịch vụ: Khi một dịch vụ logic được đúng gúi cú hữu ớch cho hơn một người sử dụng thỡ nú cú thể được xem xột để tỏi sử dụng. Nhờ vậy cú thể loại bỏ những thành phần dư thừa, giỳp giảm thời gian và chi phớ cho việc phỏt triển và quản trị phần mềm. Khả năng sử dụng dịch vụ khụng đồng bộ: SOA hỗ trợ triệu gọi khụng đồng bộ, tức là bờn gọi gửi thụng điệp cho bờn nhận xử lý mà khụng cần chờ bờn nhận xử lý xong thụng điệp, cho nờn khụng bịảnh hưởng bởi việc xử lý trễ và lỗi của bờn thực hiện. Khả năng cộng tỏc: Là khả năng mà cỏc hệ thống cú thể giao tiếp với nhau trờn nhiều nền tảng cụng nghệ và ngụn ngữ lập trỡnh khỏc nhaụ Dịch vụ A Dịch vụ B Mụ tả dịch vụ B …… …... …… Tự quản lý thụng điệp
Khả năng dũ tỡm dịch vụ: SOA hỗ trợ dũ tỡm dịch vụ được lưu trữ trong kho dịch vụ.
Tớnh kết nối lỏng lẻo: Là một cỏch kết nối hỗ trợ mức độ độc lập cao giữa cỏc dịch vụ (hoặc giữa cỏc nhà cung cấp dịch vụ và đối tượng yờu cầu dịch vụ). Mức độ kết nối giữa cỏc thành phần hệ thống cú ảnh hưởng rất lớn đến khả năng chỉnh sửa của hệ thống.
d. Lợi ớch kinh doanh mà kiến trỳc hướng dịch vụ mang lại
Theo Marks và Bell (2006), lợi ớch kinh doanh mà SOA mang lại thể hiện qua 9 yếu tố sau:
Kinh doanh linh hoạt: SOA mang lại lợi ớch kinh doanh thụng qua khả năng phản ứng nhanh nhạy và linh hoạt với những thay đổi trong kinh doanh.
Giảm chi phớ: Khi ỏp dụng SOA khụng cần phải viết lại cỏc ứng dụng hiện cú của doanh nghiệp, mà chỉ cần đưa ra cỏc chức năng kinh doanh như là cỏc dịch vụ tương ứng với cỏc quy trỡnh nghiệp vụ của doanh nghiệp. SOA cũng cú thể sử dụng cỏc dịch vụ sẵn cú để tỏi sử dụng và tạo thành cỏc dịch vụ tổng hợp. Lợi ớch giảm chi phớ khi ỏp dụng SOA được thể hiện ở 3 khớa cạnh: giảm thiểu chi phớ trong quỏ trỡnh phỏt triển; giảm thiểu yờu cầu vềđào tạo và kỹ năng; giảm chi phớ bảo trỡ.
Tăng doanh thu: Sự mau lẹ và linh hoạt trong kinh doanh giỳp doanh nghiệp cú doanh thu và lợi nhuận cao hơn. Điều này cú được khi doanh nghiệp triển khai ỏp dụng SOA, bởi với SOA doanh nghiệp thớch ứng nhanh với sự thay đổi trong kinh doanh cũng như CNTT.
Đổi mới cụng nghệ thụng tin linh hoạt: Doanh nghiệp cú thể phản ứng nhanh với những thay đổi của thị trường hoặc những mối đe dọa cạnh tranh. Đú chớnh là một lợi thế của doanh nghiệp. Sự linh hoạt được thể hiện ở hai khớa cạnh: tốc độ hoàn thành cỏc thành phần CNTT cho hoạt động kinh doanh và tổng thời gian cho mỗi quy trỡnh kinh doanh. Nếu chu kỳ phỏt triển phần mềm của một tổ chức chậm chạp, thỡ doanh nghiệp khụng đủ điều kiện để kịp thời đỏp ứng những nhu cầu thường xuyờn thay đổi của thị trường. SOA cú thể tạo được sự linh hoạt thụng qua sự phỏt triển cỏc ứng dụng CNTT nhanh hơn. SOA cho phộp thay đổi, nõng cấp nền tảng CNTT nhưng khụng làm ảnh hưởng tới quy trỡnh kinh doanh, hướng sự tập trung vào xõy dựng ứng dụng nghiệp vụ trong quỏ trỡnh phỏt triển phần mềm.
Thớch ứng nhanh với hoạt động sỏp nhập và mua lại doanh nghiệp (Mergers & Acquisitions - M&A): SOA đảm bảo cho chiến lược sỏp nhập, mua lại cỏc doanh
nghiệp mà khụng ảnh hưởng tới quy trỡnh kinh doanh cũng như khụng cú độ trễ trong việc đưa sản phẩm mới, dịch vụ mới ra thị trường.
Tăng sự hài lũng của khỏch hàng: Việc linh hoạt, mau lẹ trong kinh doanh làm tăng khả năng đỏp ứng nhanh chúng cỏc yờu cầu của khỏch hàng và làm tăng mức độ hài lũng của khỏch hàng. Đõy là một trong những yếu tố quan trọng quyết định sự thành cụng trong kinh doanh.
Nhanh chúng đưa ý tưởng mới, sản phẩm mới ra thị trường: Với sự nhanh nhạy trong kinh doanh và sự linh hoạt CNTT thỡ doanh nghiệp sẽđảm bảo nhanh chúng cho ra thị trường cỏc sản phẩm và dịch vụ mới, nõng cao khả năng cạnh tranh và thay đổi mụi trường kinh doanh.
Tăng năng suất: SOA làm cho cỏc hệ thống thụng tin của doanh nghiệp cú thể “trao đổi” được với nhau, vỡ vậy cỏc bộ phận sản xuất, kinh doanh cũng như nhà quản lý cú thể nhanh chúng cú thụng tin và ra quyết định kịp thời, do đú năng suất lao động sẽ tăng lờn.
Tăng khả năng tỏi sử dụng:Đặc điểm nổi bật của SOA là khả năng tỏi sử dụng dịch vụ. Một dịch vụ mới cú thểđược xõy dựng từ cỏc dịch vụ sẵn cú được gọi là dịch vụ tổng hợp.
ẹ Cỏc bước triển khai ứng dụng theo kiến trỳc hướng dịch vụ
Nhỡn chung cú hai phương phỏp chớnh để triển khai một hệ thống SOA (Thomas Erl, 2005) là phương phỏp Top-down (xuất phỏt từ cỏc yờu cầu nghiệp vụ) và phương phỏp Bottom-up (xuất phỏt từ thực trạng của cỏc ứng dụng hiện cú).
+ Phương phỏp Top-down
Trong cỏch tiếp cận xõy dựng một ứng dụng theo mụ hỡnh SOA, phương phỏp Top-down là phương phỏp xuất phỏt từ cỏc yờu cầu nghiệp vụđể xỏc định cỏc yờu cầu chức năng, cỏc quy trỡnh và quy trỡnh con, cỏc trường hợp sử dụng (Use Cases) để tiến tới việc xỏc định cỏc thành phần hệ thống (Components), cỏc dịch vụ…
Ưu điểm:
- Cú thể kiểm soỏt được quỏ trỡnh xõy dựng hệ thống. - Dễ dàng tối ưu húạ
Nhược điểm:
- Cú thể kiểm soỏt được quỏ trỡnh xõy dựng hệ thống. - Phải đào tạo lại nhõn viờn sử dụng hệ thống.
Hỡnh 1.11. Cỏc bước xõy dựng hệ thống SOA theo chiến lược Top-down.
Nguồn: Thomas Erl, 2005.
Chiến lược từ trờn xuống hỗ trợ tạo ra cỏc bước để hỡnh thành tầng dịch vụ (Service Layer). Chiến lược này phổ biến để tạo ra cỏc dịch vụ cú chất lượng cao, sẵn sàng cho việc sử dụng lạị
Bước 1: Định nghĩa mối quan hệ giữa cỏc tập thụng tin
Một bản thể (Ontology) là một sự phõn lớp cỏc chức năng được tổ chức xử lý. Bước này là để xỏc định cỏc bản thể. Cỏc kết quả này là từ vựng phổ biến xỏc định mối quan hệ giữa một chức năng này với một chức năng khỏc. Cỏc tổ chức cú phạm vi lớn cú thể cú nhiều bản thể khỏc nhau, mỗi bản thểứng với một bộ phận trong tổ chức. Tuy nhiờn, chỳng phải liờn kết với nhau để hỗ trợ cho chức năng (bản thể) của toàn tổ chức. Nếu cú từ vựng nghiệp vụ khụng tồn tại cho bất cứ chức năng nào mà một giải phỏp được yờu cầu thực hiện thỡ nú sẽđược xỏc định tại bước nàỵ
Bước 2: Cõn chỉnh quan hệ giữa cỏc mụ hỡnh nghiệp vụ cú liờn quan với nhau
Sau khi cỏc bản thểđược thiết lập như tập cỏc từ vựng, cỏc mụ hỡnh kinh doanh hiện tại cần phải được điều chỉnh (hoặc thậm chớ tạo mới) để biểu diễn được qua cỏc từ vựng được cung cấp.
Bước 3: Phõn tớch dịch vụ
Xỏc định cỏc dịch vụ và hướng tiếp cận cho cỏc dịch vụ, mụ hỡnh húa cỏc dịch vụ.
Bước 4: Thiết kế dịch vụ
Thực hiện thiết kế dịch vụ theo phõn tớch ở Bước 3.
Bước 5: Phỏt triển dịch vụ Bước 1 Bước 2 Bước 3 Bước 4 Bước 5 Bước 6 Bước 7 Định nghĩa quan hệ giữa cỏc tập thụng tin Phõn tớch dịch vụ Phỏt triển dịch vụ Thử nghiệm dịch vụ Cõn chỉnh quan hệ giữa cỏc mụ hỡnh nghiệp vụ Thiết kế dịch vụ Triển khai dịch vụ
Phỏt triển dịch vụ theo yờu cầụ Cỏc dịch vụ được phỏt triển theo những bản thiết kế kỹ thuật tương ứng với cỏc đặc tả dịch vụđược tạo ra ở Bước 4.
Bước 6: Thử nghiệm hoạt động của dịch vụ
Giai đoạn kiểm thử được yờu cầu cho tất cả quỏ trỡnh hoạt động của dịch vụ và quỏ trỡnh kiểm tra phải thực hiện đảm bảo chất lượng. Cỏc dịch vụ vượt qua được sự kiểm tra coi nhưđạt chất lượng và cú thể tỏi sử dụng sau nàỵ
Bước 7: Triển khai dịch vụ
Quan tõm tới vấn đề thực thi, cần xỏc định tiềm năng tương lai sử dụng lại của dịch vụ. Để tạo điều kiện cho nhiều người yờu cầu dịch vụ, cỏc dịch vụđược sử dụng lại cú thể mở rộng năng lực xử lý và cần cú sự bảo mật. Đồng thời, cần phải cung cấp cỏc khả năng truy cập cho dịch vụ.
+ Phương phỏp Bottom-up
Với cỏch tiếp cận xõy dựng ứng dụng theo mụ hỡnh SOA, phương phỏp Bottom-up sẽ dựa trờn việc phõn tớch hiện trạng, cỏc tài nguyờn của hệ thống hiện cú và sẽ tỏi sử dụng những thành phần này trong việc xõy dựng cỏc dịch vụ mớị
Ưu điểm:
Chi phớ về thời gian, nhõn lực, tài chớnh thấp hơn vỡ sử dụng nền tảng cú sẵn của tổ chức.
Nhược điểm:
- Khú khăn trong việc tối ưu húa hệ thống, cú thể dẫn tới việc dư thừa, lóng phớ. - Khú phỏt triển hệ thống theo ý muốn.
Hỡnh 1.12 Cỏc bước xõy dựng hệ thống SOA theo chiến lược Bottom-up.
Nguồn: Thomas Erl, 2005.
Mụ hỡnh húa dịch vụ Phỏt triển dịch vụ Triển khai dịch vụ Thiết kế dịch vụ Kiểm thử dịch vụ Bước 1 Bước 2 Bước 3 Bước 4 Bước 5
Chiến lược Bottom-up dựa trờn việc phõn tớch hiện trạng, cỏc tài nguyờn cú sẵn của hệ thống hiện cú và tỏi sử dụng lại những thành phần này trong việc xõy dựng cỏc dịch vụ mớị Sau khi cú được cỏc dịch vụ từ những thành phần đú, ta cú thể cải tiến chất lượng dịch vụ hoặc tổ hợp cỏc dịch vụ lại để tạo ra cỏc dịch vụ cao cấp hơn hay cũn gọi là dịch vụ tổ hợp. Theo hướng tiếp cận này, ta thừa nhận cỏc yờu cầu nghiệp vụđó tồn tạị
Bước 1: Mụ hỡnh húa dịch vụ
Kết quả của giai đoạn này là sự định nghĩa cỏc yờu cầu ứng dụng được thỏa món. Cỏc yờu cầu này bao gồm những thiết lập cỏc kờnh tớch hợp điểm nối điểm giữa cỏc hệ thống cũ (Legacy Systems) hoặc giải phỏp B2B (Business to Business). Cỏc dịch vụ cũng sẽđược mụ hỡnh húa bao gồm cỏc logic và quy tắc nghiệp vụ cụ thể. Cú hai lớp dịch vụ nổi bật lờn là cỏc dịch vụ đơn lẻ và cỏc dịch vụ tổng hợp. Những dịch