Thứ Tư, 3 tháng 7, 2013

Tổng quan về mô hình hướng dịch vụ SOA

http://www.cio.gov.vn/vi-vn/Tong-quan-ve-mo-hinh-huong-dich-vu-SOA_104_23_vi-VN.aspx#.UdPgSpyjYUX

Tổng quan về mô hình hướng dịch vụ SOA

(08/12/2012)

Mô hình hướng dịch vụ (Service Oriented Architechture – gọi tắt là mô hình SOA)


Định nghĩa: Mô hình hướng dịch vụ (Service Oriented Architechture – gọi tắt là mô hình SOA) là một khái niệm về kiến trúc hệ thống nhằm đem lại một cách thuận tiện nhất những chức năng nghiệp vụ, hoặc là những quy trình ứng dụng, tới 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ạị. Dịch vụ ở đây được hiểu là những mô-đun nghiệp vụ hoặc chức năng ứng dụng với 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. Hình vẽ dưới đây khái quát hóa mô hình SOA.

Về mối liên hệ với kiến trúc tổng thể EA: Trong khi kiến trúc tổng thể (Enterprise Architecture – EA) là một phương pháp luận nhằm xác định, sắp xếp và điều chỉnh quy trình nghiệp vụ cho phù hợp với tầm nhìn, chiến lược và mục tiêu của một cơ quan, tổ chức, mô hình SOA chủ yếu được sử dụng trong thiết kế và phát triển các hệ thống thông tin phục vụ cho những quy trình nghiệp vụ đã được nhận biết (trong kiến trúc tổng thể).

 

Có thể liệt kê một số lợi ích cơ bản của việc sử dụng mô hình SOA như sau:
  • Cho phép hướng sự tập trung vào xây dựng các tính năng nghiệp vụ trong quá trình phát triển phần mềm;
  • 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;
  • Chi phí bảo trì thấp;
  • Chu trình phát triển phần mềm nhanh chóng hơn.

Mô hình SOA có ưu thế hơn các mô hình truyền thống (như mô hình hướng ứng dụng hoặc mô hình hướng lập trình) ở điểm mô hình SOA chủ yếu tập trung nguồn lực phát triển vào các chức năng và tính năng phục vụ hoạt động và quy trình nghiệp vụ. Điều này cho phép nhà quản lý chỉ cần dựa trên đặc điểm mang tính nghiệp vụ rà soát, xác định rõ chi tiết, thành phần cần thêm, sửa đổi hoặc loại bỏ. Do đó, các hệ thống phần mềm phát triển phía sau có thể được thiết kế nhằm đáp ứng những quy trình nghiệp vụ (thay vì quy trình nghiệp vụ phải thay đổi để tận dụng những tính năng phần mềm như trong các mô hình thường thấy ở nhiều cơ quan tổ chức với hạ tầng ứng dụng Công nghệ thông tin được phát triển từ trước).

 

Bằng cách phát triển và tập hợp danh mục các dịch vụ, nhà phát triển có một bộ sưu tập những mô-đun phần mềm có sẵn, có thể được sử dụng để lắp ghép nên một hệ thống mới (thay vì phải xây dựng hệ thống này từ đầu). Danh mục dịch vụ này sẽ nhanh chóng được gia tăng về qui mô và số lượng, khiến việc phát triển các hệ thống mới ngày càng trở nên thuận tiện, nhanh chóng. Khả năng sử dụng lại cũng cho phép giảm bớt chi phí phát sinh khi thêm các tính năng mới vào hệ thống.

 

Khái niệm định hướng dịch vụ

Định hướng dịch vụ là một khái niệm gắn với quy cách tạo ra các chuỗi lôgic một cách tự động dưới hình thức là tập hợp các dịch vụ, qua đó cho phép các thành phần bên trong hệ thống tổng thể về nghiệp vụ được tính hợp với nhau dưới dạng các dịch vụ có khả năng kết nối cùng với các chức năng riêng biệt của chúng.

 

Khái niệm định hướng dịch vụ là nền tảng của mô hình SOA, mà ở đó các hệ thống thông tin có kiến trúc dựa trên quy tắc cung cấp các dịch vụ nghiệp vụ có khả năng sử dụng lại. Các dịch vụ này được lắp ghép từ những thành phần của phần mềm được gắn kết một cách khá mềm dẻo. Sự mềm dẻo thể hiện ở chỗ, với mô hinh SOA các lựa chọn về công nghệ, nền tảng hệ thống, vị trí hoặc môi trường của mỗi bên, nhà cung cấp hoặc người sử dụng dịch vụ, không nhất thiết phải khai báo tường minh đối với bên còn lại. Chính vì mô hình SOA thúc đẩy sự gắn kết mềm dẻo giữa các thành phần phần mềm, các thành phần này có thể được sử dụng lại. Các mô hình truyền thống thường yêu cầu nghiêm ngặt về tường minh giao diện kết nối cũng như sự phối hợp logic rất chặt chẽ giữa các nhóm, thủ tục chức năng. Đây là một lý do chính cản trở hoạt động cập nhật, thay đổi hệ thống, dịch vụ và quy trình để không ảnh hưởng tới môi trường nghiệp vụ và Công nghệ thông tin hiện tại của cơ quan, tổ chức. Tính mềm dẻo đã góp phần giúp các dịch vụ có thể được nâng cao hoặc sửa đổi, đưa ra những dịch vụ chia sẻ hoặc chuẩn hóa mới vào quy trình nghiệp vụ mà không đòi hỏi phải thay đổi toàn bộ quy trình.

 

Mô hình SOA thể hiện sự tiên tiến hơn hình thức phát triển ứng dụng thông thường bằng cách đặt trọng tâm phát triển vào qui trình nghiệp vụ và sử dụng các giao tiếp đã được chuẩn hóa nhằm che đi tính chất phức tạp của kỹ thuật phía dưới. Theo thiết kế SOA, mô-đun thực hiện dịch vụ (phần mềm) được tách rời với mô-đun đảm nhiệm giao tiếp, nối kết dịch vụ. Điều này cho phép mô-đun giao tiếp, nối kết dịch vụ được chuẩn hóa và có tính độc lập với công nghệ (bao gồm nền tảng phần cứng, hệ điều hành và ngôn ngữ lập trình) sử dụng trong mô-đun thực hiện dịch vụ. Thay vì xây dựng các ứng dụng đơn lẻ và quy mô lớn trong toàn bộ quy trình nghiệp vụ, nhà phát triển sẽ xây dựng các dịch vụ được tinh gọn, dễ triển khai và sử dụng lại. Điều này không chỉ cho phép sử dụng lại phần mềm tốt hơn, mà còn nâng cao tính linh hoạt thông qua khả năng gói gọn việc cải tiến dịch vụ mà không phải thiết kế hay viết lại các ứng dụng sử dụng dịch vụ này.

 

Mô hình SOA cũng có thể coi như là một sự phát triển tự nhiên tiếp theo của kiến trúc khách/chủ. Trong các hệ thống khách/chủ, mỗi nhóm chức năng hoặc về giao diện người dùng, hoặc về chuỗi lô-gic nghiệp vụ, hoặc về quản trị dữ liệu sẽ được thực hiện riêng rẽ, sử dụng các hệ thống nền và công nghệ phù hợp nhất đối với nhóm chức năng đó. Với mô hình SOA, những nhóm chức năng này (đặc biệt là chức năng nghiêp vụ/ứng dụng) sẽ được phân rã thành những lớp dịch vụ có chức năng nhỏ hơn . Ví dụ, thay vì xây dựng phần mềm độc lập hoặc ứng dụng trên máy chủ thực hiện một chức năng nghiệp vụ, hệ thống dựa trên mô hình SOA có thể kết hợp các dịch vụ được chạy trên các nền tảng phần mềm khác nhau, kể cả các dịch vụ phân tán, dịch vụ được chạy trên những hệ thống cung cấp dịch vụ từ xa hoặc trên hệ thống sử dụng cơ chế tính toán lưới. Tất nhiên, để thực hiện điều này thành công, các phân tích khi xây dựng mô hình SOA không những phải xác định ra tập hợp gồm nhiều thành phần dịch vụ, đồng thời cũng mô tả cách thức ứng dụng hoạt động dựa trên sự liên kết các dịch vụ.

 

Trong khái niệm định hướng dịch vụ, có thể phân loại dịch vụ thành hai dạng cơ bản, đó là: các dịch vụ về nghiệp vụ và các dịch vụ về kỹ thuật. Dịch vụ về nghiệp vụ mô tả hoạt động và khái niệm mang tính nghiệp vụ. Dịch vụ về nghiệp vụ cũng có thể được coi như là dịch vụ về quy trình nghiệp vụ do chúng thường được gắn với nguyên một chức năng nghiệp vụ cụ thể của một cơ quan hay một tổ chức cụ thể. Việc xác định các dịch vụ trong một cơ quan, tổ chức thường được xem xét trong bối cảnh của một nhóm nghiệp vụ hoặc nhóm phòng ban tương ứng. Mô hình SOA sẽ giải quyết vấn đề về sự cô lập trong ứng dụng Công nghệ thông tin vào dịch vụ về nghiệp vụ. Thông qua việc phân tích dịch vụ, các ứng dụng và dịch vụ mang tính liên ngành có thể được đẩy mạnh. Khả năng sử dụng lại dịch vụ cho phép việc xác định các nhóm dịch vụ hoặc quy trình thực hiện dịch vụ bên trong các vùng cô lập (silos) (liên kết theo chiều dọc), và sau đó tìm kiếm cơ hội sử dụng lại các nhóm dịch vụ hoặc quy trình thực hiện dịch vụ này theo chiều ngang. Giá trị của dịch vụ về nghiệp vụ còn ở chỗ chúng tạo tiền đề cho hoạt động xác định và phân tích dịch vụ cốt lõi bên trong cơ quan, tổ chức.

 

Dịch vụ về kỹ thuật là các dịch vụ được liên kết theo chiều ngang và được sử dụng trong các quy trình nghiệp vụ, khối nghiệp vụ (business unit), hoặc nhóm quy trình. Các dịch vụ này bao gồm các dịch vụ an toàn thông tin, dịch vụ lưu vết, dịch vụ kiểm toán, dịch vụ chuyển đổi (transformation service), cũng như các dịch vụ Công nghệ thông tin đáp ứng các nhu cầu về nền tảng hệ thống xuyên suốt phạm vi nghiệp vụ thuộc cơ quan, tổ chức. Do vậy, dịch vụ về kỹ thuật ở một chừng mực nào đó có thể được coi như là dịch vụ dùng chung mức tổng thể. Những dịch này có mặt ở mọi nơi và được chia sẻ sử dụng chung trong các quy trình nghiệp vụ. Tuy nhiên, cũng cần thiết phải chỉ ra rằng mô hình SOA không khuyến khích sự tập trung quá mức vào các dịch vụ loại này. Phát triển kiến trúc hệ thống thông tin dựa trên mô hình SOA cần phải lấy yếu tố nghiệp vụ làm trung tâm, xuất phát điểm từ các dịch vụ về nghiệp vụ, sau đó mới dần sắp xếp, chọn lựa triển khai các dịch vụ về kỹ thuật. Bởi vì mục đích cao nhất của mô hình SOA là làm sao mô tả được các nhu cầu và quy trình từ phía nghiệp vụ dưới dạng các khối, thành phần Công nghệ thông tin.

 

Các thành phần logic của mô hình SOA
Mô hình SOA gồm nhiều thành phần khác nhau, không chỉ gói gọn vào những thành phần mang tính công nghệ hỗ trợ sự vận hành của mô hình. Một số thành phần cơ bản nhất sẽ được liệt kê và mô tả sau đây. Các thành phần này sẽ ảnh hưởng trực tiếp và chủ yếu vào kết quả ứng dụng mô hình SOA.
  • Tầm nhìn mức khái niệm của mô hình SOA
          Mô hình SOA có thể được coi như một ý niệm mang tính nghiệp vụ cao, một sáng kiến hoặc một phương pháp, phục vụ việc lên kế hoạch, thiết kế và chuyển giao chức năng Công nghệ thông tin dưới hình thức là các dịch vụ nghiệp vụ nhằm đạt được các lợi ích nghiệp vụ cụ thể của một cơ quan, tổ chức. Tầm nhìn mức khái niệm của mô hình SOA bao gồm các nghiệp vụ được định nghĩa chặt chẽ, có mục tiêu (cả về giá trị Công nghệ thông tin lẫn về kiến trúc), cùng với mô hình quản trị và tập hợp chính sách phù hợp nhằm thiết lập những ràng buộc chặt chẽ về tiêu chuẩn và nền tảng kỹ thuật trong suốt thời gian phát triển. Đây chính là định nghĩa của mô hình SOA đích, mô hình mục tiêu sẽ cần phải đạt được.
  • Dịch vụ
          Dịch vụ là vừa là khái niệm, vừa là thực thể quan trọng nhất, đóng vai trò trung tâm trong mô hình SOA. Có nhiều quan điểm về khái niệm dịch vụ tùy thuộc vào từng ngữ cảnh cụ thể. Trong mô hình SOA, dịch vụ được xác định cách đơn giản là một mô đun phần mềm hay một chương trình hoàn chỉnh được cấu trúc để có thể liên kết với nhau một cách dễ dàng thông qua hình thức trao đổi thông điệp. Đặc điểm chính của dịch vụ trong mô hình SOA thể hiện ở việc sử dụng dịch vụ này sẽ được diễn ra liên tục và có tính lặp đi lặp lại. Đối tượng sử dụng dịch vụ gồm nhiều thành phần khác nhau, có thể từ kiến trúc sư, nhà phát triển, nhà phân tích thiết kế phần mềm, đến các khách hàng, đối tác hay chính những thành viên của cơ quan, tổ chức. Kèm với việc xây dựng các dịch vụ, một mô hình dịch vụ cần được thiết kế nhằm đảm bảo tính chất sử dụng lại, tương tác liên thông và tích hợp của toàn bộ qui trình nghiệp vụ cũng như giữa các hạ tầng công nghệ khác nhau của hệ thống.
Để đáp ứng được những yêu cầu của một cơ quan, tổ chức nào đó, dịch vụ phải thỏa mãn được những yêu cầu về khả năng đem lại giá trị ở mức cao nhất cho cơ quan, tổ chức này. Một số đặc điểm chính của dịch vụ bao gồm:
  • Dịch vụ dạng thô (coarse-grained services);
  • Thỏa thuận làm rõ dịch vụ (well-defined service contracts);
  • Liên kết mềm dẻo;
  • Khả năng phát hiện được;
  • Tính bền vững;
  • Khả năng phối ghép (composable);
  • Phù hợp với nghiệp vụ (business aligned);
  • Sử dụng lại được;
  • Tương tác liên thông.
Trên lý thuyết, mô hình SOA không phụ thuộc vào bất cứ ngôn ngữ lập trình nào. Tuy nhiên sự phổ biến của ngôn ngữ lập trình Java cùng với các giao diện và giao thức được lập trình sẵn đã giúp Java trở thành một trong những ngôn ngữ được ưu tiên sử dụng khi phát triển mô hình SOA. Trong môi trường SOA, Java thường được sử dụng trong việc mã hóa chức năng của mỗi dịch vụ, điều khiển các đối tượng dữ liệu và tương tác với đối tượng được đóng gói một cách logic bên trong dịch vụ. Tuy rằng bất cứ một chức năng nào đều có thể chuyển đổi thành dịch vụ, thách thức ở đây là việc phải định nghĩa giao diện dịch vụ ở một mức độ bậc cao phù hợp. Dịch vụ cũng cần cung cấp các chức năng có khả năng tinh chỉnh.
  • Công nghệ tạo khả năng (Enabling Technology)

           Hiện nay, có khá nhiều giải pháp công nghệ khác nhau trong lĩnh vực dịch vụ Web và SOA. Tuy nhiên, điều này không gây khó khăn khi thực hiện phát triển hệ thống phần mềm sử dụng mô hình SOA. Tuy rằng công nghệ có vai trò trong việc nhận thức và đưa ra tầm nhìn trong ứng dụng mô hình SOA, bản thân công nghệ chỉ là yếu tố hỗ trợ chứ không phải là thành phần cốt lõi của mô hình SOA. Việc thực hiện công nghệ tạo khả năng hướng tới hai mục đích: (1) cho phép các dịch vụ được triển khai một cách tin cậy và an toàn, hướng tới hỗ trợ các mục tiêu nghiệp vụ; (2) tạo ra khả năng duy trì hạ tầng Công nghệ thông tin sẵn có cũng như tận dụng các hệ thống cũ nhằm phục vụ mục đích ứng dụng mô hình SOA.

 

Thực tế là, một trong những giá trị lớn nhất của SOA là cho phép sử dụng lại hệ thống máy tính lớn và các tài sản Công nghệ thông tin đang tồn tại. Trong khá nhiều các tổ chức lớn, chính các hệ thống chính cũ và các ứng dụng cài đặt đi kèm lại là những thành tố quan trọng đóng góp vào cung cấp dịch vụ trong thời gian đầu triển khai SOA. Điều này hết sức quan trọng vì các phần mềm và dữ liệu liên quan đến quy trình nghiệp vụ cơ bản thường được cài đặt và lưu trử trong các hệ thống chính chuyên dụng. Bằng cách cho phép các dịch vụ truy cập vào các hệ thống này, các giá trị thông tin đã có có thể được tái sử dụng ngay lập tức trong các mô hình và quá trình tự động.

 

  • Quản trị và chính sách trong mô hình SOA
           Kiến trúc ứng dụng Công nghệ thông tin dựa trên mô hình SOA chỉ được đánh giá là khả thi khi nó thể hiện sự liên hệ chặt chẽ với những đối tượng sử dụng, bao gồm: người sử dụng nghiệp vụ, nhà phát triển, kiến trúc sư phần mềm, giám đốc phụ trách nghiệp vụ, giám đốc phụ trách Công nghệ thông tin và nhà phân tích nghiệp vụ. Ngoài ra, đối tác của cơ quan, tổ chức cũng cần phải được thông tin chính xác về khả năng và ích lợi khi áp dụng mô hình dựa trên khái niệm SOA.
Tuy vậy, ngoài công tác truyền thông nột vấn đề không kém phần khó khăn nữa là sự yêu cầu sự tuân thủ nghiêm ngặt từ các đối tượng sử dụng nêu trên đối với tầm nhìn và mục tiêu của kiến trúc ứng dụng đang được thực hiện. Sự phát triển mô hình dựa trên khái niệm SOA sẽ không thể hoàn tất ngay một lúc, giống như trường hợp các hệ thống phần mềm đóng gói. Thay vì đó, kiến trúc ứng dụng được xây dựng dần dần trong suốt thời gian triển khai dự án bằng cách liên tục đưa ra các định nghĩa mới và áp đặt việc sử dụng các tiêu chuẩn nền tảng của chính kiến trúc ứng dụng này. Những tiêu chuẩn được chỉ định ở đây chính là những chính sách, gián tiếp liên quan tới quá trình phát triển kiến trúc ứng dụng, mà qua đó giúp cơ quan, tổ chức đạt được tầm nhìn và mục tiêu nghiệp vụ khi ứng dụng mô hình SOA. Cơ chế quản trị trong mô hình SOA xác định rõ các quy trình quản trị, vai trò và trách nhiệm mang tính tổ chức, tập hợp các chuẩn và chính sách cần thiết phải đưa vào quá trình xây dựng và phát triển kiến trúc ứng dụng Công nghệ thông tin để đảm bảo tính hiệu quả và khả thi của kiến trúc này.
  • Các chuẩn đo (metrics)
           Để kiểm chứng việc ứng dụng mô hình SOA cũng như nhằm tối ưu hóa hệ thống, yêu cầu cần có một bảng gồm các chuẩn đo đánh giá kết quả ứng dụng SOA. Những chuẩn đo này có thể bao gồm các chuẩn đo mức chi tiết, ví dụ như các thỏa thuận cho từng dịch vụ cụ thể, cũng như các chuẩn đo về mức độ sử dụng, chuẩn đo về sự tuân thủ chính sách, chuẩn đo về phát triển, nghiệp vụ, các chuẩn đo đánh giá hiệu quả đầu tư, và chuẩn đo về quy trình. Luôn luôn phải định hướng và xây dựng các bộ chuẩn đo trong thời gian sớm nhất, và liên tục cập nhật, sửa đổi, bổ sung chúng trong suốt thời gian đưa dịch vụ vào hoạt động.
  • Mô hình tổ chức và ứng xử
          Kiến trúc Công nghệ thông tin hiện thời thường là kết quả trong nhiều năm của các hoạt động mang tính tổ chức, ứng xử, các quyết định nghiệp vụ, cũng như những lựa chọn liên quan đến mô hình kiến trúc. Để ứng dụng SOA hiệu quả, trước hết những hành vi mang tính tổ chức và ứng xử cần phải được tìm hiểu và sau đó sẽ dần được tối ưu hóa hướng tới việc đem lại các giá trị mang tính tầm nhìn và mục tiêu của quá trình ứng dụng mô hình SOA. Các mô hình tổ chức và ứng xử hợp lý sẽ thúc đẩy khả năng thành công của việc ứng dụng mô hình SOA.
  • Hệ thống vật lý điển hình
          Về thiết kế mức lô-gic đã nêu, một hệ thống điển hình dựa trên mô hình SOA thường bao gồm các khối thành phần và dịch vụ sau:
  • Enterprise Service Bus (ESB): cung cấp khả năng kết nối cần thiết cho những dịch vụ trong toàn bộ hệ thống, bao gồm cả dịch vụ liên quan tới thực hiện giao vận (transport), quản lý tình huống (event) và điều phối (mediation). ESB cho phép nhà phát triển tận dụng giá trị của phương thức giao tiếp qua gửi nhận thông điệp mà không phải thực hiện viết những đoạn mã chuyên biệt. ESB không chỉ là một thành phần cần phải có mà còn là thành phần quan trọng trong việc quản lý quy trình nghiệp vụ trong mô hình SOA.
  • Dịch vụ tương tác (interaction services): cung cấp chức năng về Công nghệ thông tin và dữ liệu đến người dùng cuối theo yêu cầu sử dụng của họ.
  • Dịch vụ xử lý (process services): cung cấp dịch vụ điều khiển cần thiết để quản lý các luồng và tương tác của nhiều dịch vụ, đáp ứng việc thực hiện quy trình nghiệp vụ.
  • Dịch vụ thông tin (information services): cung cấp các chức năng tập hợp (federate), thay thế và chuyển đổi nhiều nguồn dữ liệu khác nhau được thực hiện bởi nhiều cách thức khác nhau.
  • Dịch vụ truy cập (access services): cung cấp các chức năng bắc cầu cho những ứng dụng cũ (legacy applications), ứng dụng chưa hoàn thiện (prepackaged applications), kho dữ liệu chính, và ESB nhằm kết hợp dịch vụ có trong những ứng dụng hiện tại vào hệ thống SOA.
  • Dịch vụ đối tác (partner services): cung cấp tài liệu, giao thức, và chức năng quản lý đối tác cho những quy trình nghiệp vụ có yêu cầu tương tác với đối tác bên ngoài và nhà cung cấp.
  • Dịch vụ ứng dụng nghiệp vụ (business application services): cung cấp dịch vụ runtime cho phép những thành phần ứng dụng mới có thể tích hợp vào hệ thống.
  • Dịch vụ hạ tầng (infrastructure services): cung cấp khả năng tối ưu băng thông, sẵn sàng và hiệu năng.
  • Ứng dụng mô hình SOA để giải quyết bài toán tích hợp
       Lý do chủ yếu cho việc thúc đẩy các hoạt động ứng dụng mô hình SOA chính là nhằm giải quyết bài toán bài toán tích hợp. Đối với nhiều nhà quản lý, mô hình SOA giữ một vị trí quan trọng trong việc xóa bỏ các mô hình tích hợp truyền thống khá quen thuộc với họ, thông qua các tiêu chuẩn công nghiệp và ứng dụng hiện đại. Một số phân tích đã ước lượng khoảng 30% chi phí Công nghệ thông tin thông thường được sử dụng trong các hoạt động tích hợp. Hiệu quả của nghiệp vụ sẽ phụ thuộc vào tính tích hợp, từ tích hợp quy trình, tích hợp các thành phần của cơ quan, tổ chức, đến tích hợp các vấn đề liên quan đến tách nhập các khối chức năng.  Hay nói cách khác, chính giá trị về đẩy mạnh tính cạnh tranh của cơ quan, tổ chức đã mang lại nhu cầu về tích hợp.
  • Nhu cầu giải quyết bài toán tích hợp
          Các nghiên cứu gần đây cho biết công tác hỗ trợ tính tương thích ngược và bảo trì hệ thống chiếm khoảng 80 đến 90% chi phí đầu tư Công nghệ thông tin, thay vì dành cho hoạt động đầu tư vào các hệ thống mới. Đây là vấn đề gây trở ngại cho hầu hết các giám đốc Công nghệ thông tin khi phân bổ kinh phí đầu tư Công nghệ thông tin và cũng chính là một trong các lý do cho việc thiếu các chiến lược đầu tư Công nghệ thông tin theo chiều sâu như hiện nay. Nhu cầu về tích hợp Công nghệ thông tin và quy trình được chi phối bới các yêu cầu về nghiệp vụ, bao gồm:
  • Nâng cao hoạt động tách nhập (M&A actitivity);
  • Phối hợp tổ chức và cấu trúc lại mô hình tổ chức;
  • Củng cố ứng dụng và/hoặc hệ thống;
  • Sáng kiến về tích hợp dữ liệu và kho dữ liệu (data warehousing);
  • Xây dựng chiến lược nghiệp vụ nhằm tận dụng các hệ thống hiện tại đáp ứng quy trình mới;
  • Đạt được sự tuân thủ về quy định;
  • Gắn kết các quy trình nghiệp vụ để nâng cao hiệu năng.
  • Chuyển đổi sang ứng dụng dịch vụ
           Phương án chung cho việc tích hợp hiện tại là kết hợp sử dụng các giải pháp lớp giữa (middleware solutions), kỹ thuật tích hợp điểm-điểm riêng biệt, và các giải pháp hướng tích hợp chiến lược (đã thất bại ngay từ khi mới đề xuất). Các giải pháp này thường không có được tính bền vững cao, trong khi lại yêu cầu chi phí bảo trì ngày một tăng.
Do vậy, giải pháp tích hợp mới cần phải loại trừ tất cả các kết nối tích hợp trực tiếp điểm-điểm và cấu trúc lại việc tích hợp giữa các hệ thống, đơn vị có nhu cầu dựa trên quan diểm mô hình SOA. Chí phí Công nghệ thông tin sẽ được tính toán để đảm bảo kinh phí cho những giải pháp, dự án, bao gồm cả chi phí cho cán bộ chuyên trách, chi phí bảo trì và đầu tư, duy trì hạ tâng Công nghệ thông tin. Đồng thời sự giảm bớt khối lượng công việc dành cho việc tích hợp sẽ phải được ước lượng thông qua sử dụng các dịch vụ có thể sử dụng lại được trong mô hình SOA và phân tích phản ứng của người sử dụng đối với việc tích hợp này. Tuy rằng việc tích hợp thông qua hướng dịch vụ sẽ yêu cầu nhiều quy định cũng như kế hoạch hơn các mô hình tích hợp trước đó, kết quả thu được hoàn toàn tương xứng để quyết định đầu tư.
  • Mối tương quan giữa mô hình SOA và dịch vụ Web

          Bản thân mô hình SOA là một sự xây dựng bậc cao nhằm tích hợp phần mềm. Nó được dựa trên nền tảng ý tưởng và công nghệ thực hiện trong XML và WS để có thể triển khai thực tế trong môi trường phần mềm. Ngoài ra, để đảm bảo hoạt động một cách hiệu quả, mô hình SOA cũng đòi hỏi sự hỗ trợ từ an toàn bảo mật, quản trị chính sách, thông điệp tin cậy, và các hệ thống thanh toán.

 

           Dịch vụ Web hay Web Service (WS) là những dịch vụ hoạt động trên nền World Wide Web hoặc mạng intranet, sử dụng công nghệ được xây dựng trên nền tảng Web. Những dịch vụ này còn có thể được coi như là những hệ thống phần mềm được thiết kế nhằm hỗ trợ tính tương tác liên thông trên hệ thống mạng. Thành phần cơ bản của dịch vụ Web bao gồm nhóm các chuẩn dựa trên XML, gồm ngôn ngữ định danh dịch vụ Web (Web Services Definition Language – WSDL) có nhiệm vụ cung cấp một cách thức cơ bản để mô tả các thành phần của phần mềm; giao thức truy cập đối tượng đơn giản (Simple Object Access Protocol – SOAP) là một giao thức gọn nhẹ cho trao đổi thông tin trong môi trường không tập trung hoặc môi trường phân tán; và chuẩn dịch vụ Tích hợp, Khám phá và Mô tả thống nhất (Universal Description, Discovery, and Integration – UDDI), hoạt động như một dịch vụ đăng ký và định vị có khả năng xác nhận và phân loại các ứng dụng dịch vụ Web. Dịch vụ Web được cung cấp trên một hệ thống mạng dử dụng các công nghệ như XML, WSDL, SOAP, và UDDI. Mô hình SOA cho phép cơ quan, tổ chức tạo ra những thành phần chuẩn dưới hình thức là các dịch vụ Web. Những thành phần này có thể được truy cập thông qua giao thức chuẩn là SOAP, đồng thời sử dụng giao diện truy cập dựa trên XML là WSDL. Bằng cách này, các dịch vụ SOA có thể sử dụng được một hệ thống giao tiếp năng động và uyển chuyển hơn rất nhiều các hệ thống cũ như IDL (Interface Definition Language).
           Dịch vụ Web cung cấp một phương pháp dựa trên các chuẩn nhằm định nghĩa và thực hiện lời gọi các khối dòng lệnh, trong khi mô hình SOA hướng đến việc chuyển đổi các giá trị Công nghệ thông tin thành tập hợp có thể sử dụng lại được những thành phần cho phép lắp ghép thành nhiều dịch vụ hướng nghiệp vụ khác nhau nhằm đáp ứng sự thích ứng với thay đổi một cách nhanh chóng và hiệu quả về chi phí. Dịch vụ Web có thể được coi như một cách triển khai tốt nhất của mô hình SOA do khả năng cung cấp giao thức và công nghệ phục vụ quản lý hiệu quả dịch vụ trong mô hình SOA. Dịch vụ Web giúp đơn giản và chuẩn hóa cơ chế giao diện và lời gọi dịch vụ. Lưu ý rằng mô hình SOA không phải là một tập hợp các giao thức và không phụ thuộc vào bất cứ ngôn ngữ nào. Thay vì đó mô hình SOA là một bản mô tả cụ thể các thành phần và cách kết hợp chúng, các nhóm chức năng, giao thức và dữ liệu sử dụng giữa các nhóm chức năng. Dịch vụ Web không có khả năng giải quyết các vấn đề liên quan tới đặc điểm tổ chức và quản lý; những khả năng này cần phải thêm vào phương án triển khai để đảm bảo tính thực tế của phát triển mô hình SOA.
Sự khác biệt giữa dịch vụ SOA và dịch vụ Web cũng được coi như sự khác nhau giữa hai yếu tố: khái niệm và thực hiện. Xét trên yếu tố khái niệm, mô hình SOA không nhằm định nghĩa một cách chính xác phương thức dịch vụ được đặc tả để có thể tương tác với nhau. Mô hình SOA sẽ chỉ định nghĩa làm thể nào để các dịch vụ có thể 'hiểu' được nhau và từ đó có thể tương tác được với nhau. Dịch vụ Web xây dựng một tập hợp hướng dẫn về thực hiện thông điệp giữa các dịch vụ (thông thường có thể thấy ở thông điệp SOAP khi được chuyển nhận trên HTTP). Dịch vụ Web cũng là một phương án để thực hiện mô hình SOA, tuy nhiên nó không phải là phương án duy nhất. Bất kỳ phương án thực hiện nào nếu có khả năng xây dựng giao diện dịch vụ trên nền WSDL và giao tiếp với thông điệp XML đều có thể thực hiện mô hình SOA. Tóm lại, dịch vụ Web là một phương án cụ thể và thực tế phục vụ việc phát triển và triển khai mô hình SOA.
  • Những thách thức khi xây dựng mô hình SOA
          Bên cạnh những lợi ích rõ ràng, mang tính đặc trưng cao, có một số lý do khiến mô hình SOA tỏ ra khó thực hiện, quản lý cũng như điều khiển trong thực tế. Lý do chính ở đây không đến từ mặt công nghệ, mà là hệ quả của các vấn đề liên quan đến tính tổ chức, văn hóa và hành vi của mô hình SOA có ảnh hưởng tới hiệu quả cuối cùng của việc xây dựng mô hình. Cho dù trình độ công nghệ đã tiến bộ khá nhanh trong thời gian gần đây, qua việc hình thành và ban hành các chuẩn, ứng dụng hỗ trợ, các nền tảng phát triển và vận hành, thực tế vẫn tồn tại khá nhiều các vấn đề thuộc phạm trù công nghệ cần phải giải quyết như các giao dịch cần thực hiện trong thời gian dài, vấn đề liên quan đến an ninh bảo mật và nhiều vấn đề khác. Tuy nhiên, các vấn đề liên quan đến tổ chức, văn hóa và hành vi tỏ ra phức tạp, đòi hỏi nhiều nỗ lực giải quyết hơn cả, hơn rất nhiều so với các vấn đề thuộc phạm trù công nghệ.
  • Yêu cầu từ xây dựng mô hình kiến trúc tổng thể
          Khi các cơ quan, tổ chức tiến hành nghiên cứu phát triển hệ thống Công nghệ thông tin dựa trên nền tảng mô hình SOA của mình, họ sẽ nhận ra nhu cầu về điều chỉnh các đặc điểm tổ chức, quy trình, và quy tắc thuộc cấu trúc hành chính của bản thân cơ quan, tổ chức để phù hợp với những đặc điểm,  yêu cầu và đòi hỏi từ mô hình SOA. Thông thường, quy trình liên quan đến kiến trúc tổng thể chưa đầy đủ tính hoàn thiện để giúp làm rõ hiện trạng của kiến trúc Công nghệ thông tin.  Thực tế là hầu hết các kiến trúc Công nghệ thông tin lâu đời đã được xây dựng một cách cứng nhắc, thể hiện ở sự tồn tại các hệ thống lớn cồng kềnh, cũ kỹ, nền tảng ứng dụng thiếu linh hoạt, cũng như tập hợp các ứng dụng phải đòi hỏi các phần mềm làm nhiệm tích hợp chúng để hoạt động với nhau.
          Các kiến trúc sư thường có xu hướng thiết kế ra các giải pháp đảm bảo khả năng tích hợp thay vì hướng đến sự linh hoạt, tính sử dụng lại, và hỗ trợ các quy trình nghiệp vụ. Việc hỗ trợ các quy trình nghiệp vụ ngày càng trở nên quan trọng đối với các cơ quan, tổ chức do các yêu cầu về thay đổi mang tính toàn cầu hóa. Đây chính là các yêu cầu mới của mô hình SOA. Mô hình SOA sẽ không đạt được thành công trừ phi các quy trình của kiến trúc được thay đổi từ hình thức là những khuyến nghị khô cứng, chú ý tạo những tài liệu trình bày, những bản phác thảo ứng dụng và lộ trình kiến trúc sang những tài nguyên thuộc Công nghệ thông tin có sự linh hoạt, sử dụng lại được và phục vụ quy trình nghiệp vụ.
  • Sự phát triển không đồng bộ (phát triển từng phần và tạm thời)
          Một trong những thách thức của mô hình SOA là tất cả các thành phần của mô hình này hầu như không thể được thực hiện tập trung (trong một phạm vi địa lý với một khoảng thời gian cụ thể). Thay vì đó, chúng sẽ được thực hiện phân tán bởi nhiều dự án cụ thể có quy mô, được thực hiện tại địa điểm và thời gian khác nhau. Đặc điểm phát triển từng phần này của các dự án SOA kiến việc quản trị SOA trở nên quan trọng và khó khăn hơn. Các chính sách về quản trị và triển khai là những yếu tố quan trọng hàng đầu để quản lý mức độ tuân thủ đối với mô hình SOA khi mô hình được phát triển một cách không đồng bộ, có sự khác biệt về địa lý và thời gian triển khai.
  • Yêu cầu sự quản lý
           Phát triển mô hình SOA là một mục tiêu khá phức tạp, đồng thời là thách thức có tính tổ chức, hành vi và văn hóa đối với hầu hết các cơ quan, tổ chức. Do vậy, mô hình SOA sẽ đòi hỏi một mô hình quản trị SOA thiết thực, các chính sách rõ ràng và thực thi được, cũng như một cách thức thực hiện quản trị SOA xuyên suốt quá trình hoạt động và phát triển của cơ quan, tổ chức.
  • Thách thức trong xác định, phân tích và thiết kế dịch vụ
Vai trò của dịch vụ có tính rất quan trọng đối với mô hình SOA. Tuy nhiên, khó khăn nằm ở cách thức xác định một chính xác các dịch vụ thiết yếu, và giải thích tại sao các dịch vụ đó lại có vai trò thiết yếu như vậy.
Thách thức khi triển khai SOA một cách toàn diện
Về kỹ thuật, mô hình SOA có ưu điểm về hiệu năng và độ linh hoạt, tuy nhiên khi tiến hành triển khai một cách toàn diện, các vấn đề liên quan đến tính mở rộng được cũng như những ràng buộc thuộc về mục tiêu ứng dụng Công nghệ thông tin cần phải được xem xét nghiêm túc. Về tính mở rộng được, cần phải thiết lập một quy cách cho phép dịch vụ có thể tương tác liên thông về mặt ngữ nghĩa với dịch vụ khác mà không cần biết thông tin về dịch vụ đó. Đồng thời, những dịch vụ cấp thấp (low-level services) cũng phải được mịn hóa thành những dịch vụ cơ bản trong các lớp dịch vụ về nghiệp vụ cấp tổng thể. Cơ chế truy cập tập trung và có quản lý tới những dịch vụ thành phần và hệ thống dịch vụ tạo ra bởi nền tảng phần mềm sẵn có cũng phải được cung cấp. Tuy nhiên cũng cần phải lưu ý đơn giản cấu trúc hệ thống. Khá nhiều sản phẩm từ những dự án phát triển hoặc thực hiện mô hình SOA có độ phức tạp lớn hơn bản thân kiến trúc chúng thay thế. Chìa khóa cho việc thực hiện thành công mô hình SOA chính là tối thiểu độ phức tạp và sử dụng chuẩn. Nếu môi trường phát triển không được quản lý đúng, kết quả của việc phát triển mô hình SOA không đem lại một hệ thống ổn định. Một số vấn đề quan trọng khác bao gồm việc quản lý và giám sát hoạt động dịch vụ, cũng như các chính sách về phạm vi hoạt động của dịch vụ.
Nói một cách cụ thể, mô hình SOA cần phải được quản lý sao cho những chức năng được liệt kê dưới đây phải được cung cấp:
  • Đăng ký toàn bộ các dịch vụ có phạm vi xuyên suốt cơ quan, tổ chức
  • Thay đổi việc quản lý và hỗ trợ các phiên bản
  • Chức năng về an toàn, bảo mật
  • Chức năng giám sát dịch vụ
  • Quản lý dịch vụ và kiểm soát tình huống
  • Công cụ quản trị dịch vụ
  • Xây dựng môi trường SOA
Như đã trình bày, mô hình SOA thường được nhận biết thông qua dịch vụ Web. Tuy nhiên, mô hình SOA không chỉ gói gọn trong việc triển khai phần mềm. Các cơ quan, tổ chức cần phải phân tích kỹ thuật thiết kế và phương pháp phát triển của mình, cũng như mối quan hệ đối tác/khách hàng/nhà cung cấp. Hoạt động chuyển đổi sang SOA cần phải được tiến hành một cách từ từ, và việc chuyển đổi này cần căn cứ trên yêu cầu phải xây dựng ra những ứng dụng dựa trên dịch vụ đồng thời vẫn tối đa các khoản đầu tư Công nghệ thông tin hiện tại.

Xây dựng mô hình SOA được thực hiện theo các bước của chu trình phát triển như sau:  mô hình, gắn kết, triển khai, quản lý, và xử lý-quản lý. Quá trình phát triển SOA được bắt đầu với bước mô hình khi trước tiên thu thập các yêu cầu nghiệp vụ, và sau đó thiết kế quy trình nghiệp vụ. Sau khi một quy trình nghiệp vụ được tối ưu, quy trình này sẽ được thực hiện bằng cách lắp ghép những dịch vụ mới và dịch vụ đang có. Những dịch vụ này sau đó được tiếp tục phát triển theo hướng tích hợp vào môi trường SOA thành những dịch vụ có tính an toàn và khả năng tích hợp. Khi đó, việc quản lý và giám sát những dịch vụ này được thực hiện như đối với những quy trình nghiệp vụ. Thông tin có được trong bước quản lý sẽ được sử dụng để nâng cao chất lượng dịch vụ trong bước tiếp theo của chu trình phát triển. Thao tác về xử lý và quản lý sẽ có mặt trong tất cả các bước của chu trình phát triển.

 

Kết luận
Mô hình SOA là môt mô hình luôn biến đổi, đòi hỏi phải có một sự cam kết lâu dài mới có thể đạt được các mục tiêu nghiệp vụ cụ thể. Và để đạt được mục đích này, nhà phát triển cũng như những người chịu trách nhiệm về Công nghệ thông tin cần phải nắm được các kỹ năng lập kế hoạch, thiết kế và thực hiện mô hình SOA thông qua các dịch vụ có thể sử dụng lại.

Tài liệu tham khảo
1. Marks, Eric and Bell, Michael. Service-oriented Architecture: A planning and implementation Guide for Business and Technology. s.l. : John Wiley & Sons, Inc., 2006.
2. Minoli, Daniel. Enterprise Architecture A to Z: Frameworks, Business Process Modeling, SOA, and Infrastructure Technology. s.l. : Taylor & Prancis, 2008.

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

Đăng nhận xét

(Chơi cho vui) AIRDROP CHAINGE FINANCE - dự án xây dựng ứng dụng ngân hàng số cho mọi người

 Không hiểu lắm về cái này, tuy nhiên thấy quảng cáo khá nhiều, lại chỉ cung cấp vài thông tin cá nhân (mà mấy ông lớn như facebook với goog...