Tải bản đầy đủ (.pdf) (7 trang)

Tổng quan kiến trúc hướng dịch vụ SOA potx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (375.27 KB, 7 trang )

Tổng quan kiến trúc hướng dịch vụ SOA
Ngày nay, tại một ngân hàng của Việt Nam, khách hàng muốn thanh toán thẻ tín dụng họ
phải đến một quầy riêng, muốn rút tiền phải đến quầy ATM riêng v.v… Nếu họ muốn chỉ
đến một quầy mà có thể giải quyết mọi chuyện liên quan thì sao? Nếu họ chỉ muốn ở nhà
và giải quyết chuyện tiền nong qua Internet mà không phải đi đến quầy này, quầy nọ thì
sao? SOA giải quyết được những vấn đề đó. Với SOA, một ngân hàng vẫn khai thác được
các hệ thống và giải pháp cũ nhờ kết nối chúng và cung cấp dịch vụ hỗ trợ KH theo các địa
điểm hay giao diện khác nhau.

Kiến trúc hướng dịch vụ là gì? Kiến trúc hướng dịch vụ - Service Oriented Architecture - là một
thuật ngữ khó hiểu bởi vì nó miêu tả hai thứ hoàn toàn khác nhau. Hai từ đầu tiên (Service
Oriented) miêu tả phương pháp luận của việc phát triển phần mềm. Từ thứ ba (Architecture),
kiến trúc là một bức tranh của tất cả các tài sản phần mềm trong một công ty, khá giống như một
bản vẽ kiến trúc là một màn trình diễn tất cả các mảnh ghép nhỏ với nhau để tạo nên một toà nhà.
Do vậy, kiến trúc hướng dịch vụ là một chiến dịch cho biết dự định xây dựng tất cả các tài sản
phần mềm của công ty đó bằng cách sử dụng phương pháp luận lập trình hướng dịch vụ.
Dịch vụ là gì?
Dịch vụ là khúc dữ liệu phần mềm hoặc các cấu phần được cấu trúc để chúng có thể liên kết với
các cấu phần phần mềm khác một cách dễ dàng. Ý tưởng đằng sau các phần mềm này thật đơn
giản: Công nghệ nên được diễn tả thành từng đoạn dữ liệu mà người kinh doanh có thể hiểu được
hơn là một phần mềm ứng dụng ít người hiểu như ERP hoặc CRM.
Sự trừu tượng là cốt lõi của khái niệm dịch vụ, ý tưởng mà bạn có thể hợp dịch code phần mềm
vào trong một đoạn dữ liệu có ý nghĩa mà nó có thể được chia sẻ hoặc tái sử dụng trong nhiều
lĩnh vực khác nhau của công ty đó.
Đây là một khái niệm cổ lỗ quay trở lại thập niên 80, khi mà lập trình hướng đối tượng xuất hiện
lần đầu tiên, sự khác biệt duy nhất đó là hiện nay tham vọng về quy mô và tính tinh sảo của các
đối tượng phần mềm này lớn hơn trước rất nhiều.
Có nhiều cách khác nhau để kết nối các dịch vụ chẳng hạn các liên kết lập trình tuỳ chọn hoặc
các phần mềm tích hợp từ các nhà cung cấp nhưng từ năm 2001, một loạt các cơ chế giao tiếp
phần mềm được biết đến như là các dịch vụ web được xây dựng dựa trên nền tảng web toàn cầu,
bất cứ nơi nào cũng có, đã trở thành một phương pháp phổ biến cho việc kết nối các cấu phần


phần mềm với nhau.
Sự khác nhau giữa kiến trúc hướng dịch vụ (SOA) và các dịch vụ web là gì?
Kiến trúc hướng dịch vụ là chiến dịch bao quát toàn bộ việc xây dựng các ứng dụng phần mềm
trong một công ty - nghĩ về một thiết kế kiến trúc - ngoại trừ trường hợp này, kiến trúc này cần
phải làm cho tất cả các chi tiết của phần mềm được xây dựng trên cơ sở dùng một phương pháp
luận phát triển phần mềm cụ thể được biết đến như là việc lập trình hướng dịch vụ. Trong khi đó,
dịch vụ web là một tập hợp các cơ chế giao tiếp chuẩn được xây dựng trên nền tẳng web toàn
cầu. Các dịch vụ web là một phương pháp giao tiếp và kết nối. SOA là một chiến dịch CNTT
toàn diện.
Làm thế nào để biết được liệu tôi có nên chấp nhận SOA như là một chiến dịch hay không?
Bởi vì nó là một chiến dịch kiến trúc, SOA liên quan đến nhiều thứ hơn chứ không phải chỉ đơn
giản là xây dựng phần mềm. Thiết lập một kiến trúc trên nền tảng một danh mục đầu tư các dịch
vụ yêu cầu các giám đốc CNTT của doanh nghiệp đó phải làm một vụ hấp dẫn cho kiến trúc
doanh nghiệp, một phương pháp luận phát triển tập trung và một đội ngũ nhân lực tập trung gồm
các giám đốc, kiến trúc sư và lập trình viên dự án. Điều đó cũng yêu cầu một giám đốc điều hành
và nhân viên hành chính luôn sẵn lòng mở đường cho CNTT để ngụp lặn trong quá trình kinh
doanh chủ đạo của công ty đó. Hiểu được các quy trình đó và việc nhận được các đơn hàng mua
dự trữ trên cơ sở chia sẻ của doanh nghiệp là những viên đá quan trọng của việc chuyển đổi kinh
doanh dựa trên kiến trúc hướng dịch vụ - SOA.
Đối với các dịch vụ được tái sử dụng khắp công ty đó, thì phải có một phương pháp luận phát
triển phần mềm tập trung để các lĩnh vực khác nhau của doanh nghiệp đó không xây dựng dịch
vụ giống hệt theo những cách thức khác nhau hay sử dụng những sự liên kết không tương thích.
Phải có một kho dữ liệu tập trung hoặc chỗ chứa để các lập trình viên sẽ biết được tìm kiếm dịch
vụ ở đâu và vì vậy CNTT sẽ biết ai đang sử dụng chúng. Các dịch vụ này sẽ được chuyển hoá
thành tài liệu để các lập trình viên biết được các thông tin hay dữ liệu đó dùng để làm gì, liên kết
tới chúng như thế nào và những quy tắc để sử dụng chúng.
Hầu hết các công ty mà gặt hái được nhiều thành công dọc theo chặng đường đi tới SOA đã tạo
ra một nhóm kiến trúc tập trung để chọn các quy trình sẽ là dịch vụ được kích hoạt và để tham
khảo với những lĩnh vực khác nhau của công ty đó để xây dựng các dịch vụ cụ thể. Nhóm tập
trung đó cũng tạo ra một cơ chế thuận tiện cho việc quản lý. Nếu tất cả các yêu cầu dịch vụ phải

đi qua nhóm kiến trúc đó, các phương pháp luận phát triển dịch vụ ấy và dự án và những thoả
thuận thực hiện có thể được quản lý dễ dàng hơn.
Các công ty đã có nhiều thành công nhất với SOA cho đến tận bây giờ là những công ty mà luôn
gặt hái thành công với công nghệ: Các công ty lớn với những nguồn ngân sách lớn có nhiều hoạt
động kinh doanh được dựa trên nền tảng công nghệ. Họ cũng có xu hướng có những nhà lãnh
đạo kinh doanh sành sỏi về công nghệ và có khả năng hỗ trợ công việc trong công ty. Đối với các
công ty không có những thành tựu này, SOA đang được làm ra không thể là “thần dược”.
Đối với các công ty nhỏ hơn, đối với những công ty mà có những sự cá cược lớn vào những phần
mềm ứng dụng tích hợp và đối với những công ty đã chuẩn bị sẵn các chiến dịch tích hợp phần
mềm ứng dụng chắc chắn tại chỗ thì SOA không phải là “khi nào” mà là “nếu”. Các giám đốc
CNTT cần theo đuổi một chiến dịch SOA một cách cẩn thận bởi vì những phần lập kế hoạch
kiến trúc và phát triển dịch vụ đó của SOA là khác biệt nhưng không phải độc lập – chúng cần
được xem xét kỹ và triển khai song song. Các dịch vụ được xây dựng biệt lập không để lưu tâm
đến các mục tiêu kinh doanh và kiến trúc của công ty đó thì có thể có khả năng tái sử dụng (một
trong số những lợi ích quan trọng nhất của SOA) hoặc có thể thất bại hoàn toàn.
Lợi ích của SOA là gì?
Đầu tiên hãy đặt lợi ích của SOA trong triển vọng. SOA là một lưỡi hái mà nó lát mỏng sự phức
tạp và sự dư thừa. Nếu công ty của bạn không lớn hay phức tạp, ví dụ hơn 2 hệ thống cơ bản đòi
hỏi vài cấp tích hợp - không có vẻ như SOA sẽ mang lại nhiều lợi ích. Thất bại trong tất cả các
quảng cáo thổi phổng sự thật về SOA hiện nay là thực tế mà phương pháp luận phát triển này
bản thân nó không đem lại lợi ích thực - đó là những tác động mà nó có được trên một cơ sở hạ
tầng dư thừa và phức tạp, cái cơ sở mà đem lại phần thưởng. Các kiến trúc sư nói có nhiều công
việc có liên quan đến việc tạo một ứng dụng hướng dịch vụ tốt hơn là có một sự tích hợp phần
mềm ứng dụng truyền thống hiện có. (Các cuộc điều tra cho thấy SOA đang được sử dụng cho
việc tích hợp ứng dụng truyền thống ở hầu hết các công ty). Vì vậy thực tế có một chi phí bổ
sung sinh ra do việc phát triển SOA trả trước. Vì có một lợi ích từ công việc đó nên nó phải loại
bỏ công việc ở nơi nào khác bởi vì phương pháp luận này trong nội tại bản thân nó không hề tạo
lợi ích kinh doanh. Trước khi xem xét xem liệu SOA có lợi ích hay không, đầu tiên bạn phải
quyết định xem liệu có sự dư thừa nào không, thật tồi tệ nếu các ứng dịng được tích hợp mà có
thể được cố kết hay bị loại bỏ là kết quả của việc chấp nhận SOA. Trong trường hợp này thì có

vài lợi ích tiềm năng.
Để nhận được bức tranh toàn cảnh những lợi ích được bán kèm với SOA, bạn phải quan sát nó ở
2 mức: đầu tiên, là những ưu điểm (lợi ích) sách lược của sự phát triển hướng dịch vụ và thứ hau
đó là những ưu điểm của SOA như là một chiến dịch kiến trúc tổng thể.

Ưu điểm của việc phát triển hướng dịch vụ:
1. Tái sử dụng phần mềm. Nếu gói mã mà tạo thành 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, một đội phát triển cần chức
năng cụ thể đó cho một ứng dụng phần mềm mới mà nó mong muốn xây dựng. Họ không
cần biết bất cứ thứ gì về việc mã được gói chặt như thế nào hay nó có nguồn gốc từ đâu.
Tất cả những thứ mà họ cần làm đó là xây dựng một sự kết nối đến mã đó.
2. Trong một công ty mà thường xuyên xây dựng những hệ thống mới dựa trên những chức
năng tương tự – ví dụ một công ty bảo hiểm với nhiều bộ phận, mỗi một bộ phận đảm
nhận cho các sản phẩm khác nhau hay một công ty thường xuyên thu được những công ty
mới – thời gian được tiết kiệm thông qua việc phát triển, kiểm thử và tích hợp đó với
chức năng phần mềm nhỏ bé tương tự đó có thể thêm vào.Năng suất gia tăng. Nếu các lập
trình viên tái sử dụng các dịch vụ điều đó có nghĩa là các dự án phần mềm có thể tiến xa
hơn và đội phát triển tương tự có thể tiếp tục nhiều dự án hơn. Sự tích hợp trở nên rẻ hơn
nhiều( theo ước tính của Gartner thì ít nhất sẽ rẻ hơn 30%) và cũng nhanh hơn, chu trình
phát triển các dự án mới sẽ giảm bớt thời gian đi vài tháng.
3. Linh hoạt Thậm chí nếu các dịch vụ sẽ không được tái sử dụng, thì họ có thể đưa ra nhiều
giá trị nếu họ làm cho hệ thống CNTT chỉnh sửa dễ dàng hơn. Ví dụ tại website
ProFlowers.com có nhiều ứng dụng dư thừa hoặc tình trạng kêu la của nhiều đơn vị
doanh nghiệp. Tuy nhiên theo ông Kevin Hall giám đốc CNTT của ProFlowers thì việc
phân chia quá trình đặt hoa thành các dịch vụ riêng rẽ có nghĩa là mỗi một cấu phần có
thể được tách biệt và được thay đổi như mong muốn để xử lý các cụm hoa theo yêu cầu
nảy sinh xung quanh các ngày nghỉ. Khi ProFlowers đã có một ứng dụng nguyên khối,
đơn lẻ xử lý quá trình đó thì một sự thay đổi đơn lẻ trong quy trình đó hay một sự gia
tăng số lượng giao dịch( nói vào ngày Lễ tình nhân) đồng nghĩa với việc xé nhỏ toàn bộ
hệ thống và xây dựng lại hệ thống đó.

Các ưu điểm khác của SOA đối với danh nghiệp:
1. Định hướng kinh doanh. SOA là một bức tranh lớn của tất cả các quy trình kinh doanh và
dòng dịch chuyển trong một công ty. Điều đó có nghĩa là người làm kinh doanh lần đầu
tiên có thể mường tượng toàn bộ các quy trình kinh doanh được xây dựng theo quan điểm
của công nghệ. Khi các dự án CNTT được đặt theo quan điểm của các hoạt động và các
quy trình kinh doanh hơn là các ứng dụng phần mềm phức tạp, những người làm kinh
doanh có thể đánh giá và ủng hộ các dự án CNTT tốt hơn. Tầm nhìn vĩ đại đối với SOA
là khi dịch vụ CNTT toàn diện kích hoạt được các quy trình lớn của một doanh nghiệp,
người làm kinh doanh một ngày nào đó sẽ có thể nắm quyền chỉnh sửa, pha trộn và kết
hợp nhịp nhàng, ăn khớp các dịch vụ khác nhau đó với nhau thành những sự kết hợp quy
trình mới trên chính doanh nghiệp của họ. Tuy vậy tầm nhìn này còn là viễn cảnh trong
nhiều năm.
2. Một cách thức tốt hơn để nâng cao vị thế CNTT. Kiến trúc doanh nghiệp là khái niệm mà
đã khá lâu người ta không dám nói đến tên của nó. Một vài giám đốc CNTT tiến đến
những bước đi lớn để nhằm tránh việc sử dụng thuật ngữ này với những người ngang cấp
vì sợ hăm dọa, làm xa lánh hay đơn giản là việc làm cho họ buồn tê tái. Kiến trúc doanh
nghiệp luôn luôn là một công việc lớn, khó khăn và đắt đỏ còn chỉ số đầu tư hiệu của
(ROI) của nó thường không rõ ràng đối với doanh nghiệp đó. Việc tiêu chuẩn hóa, ánh xạ
và kiểm soát các tài sản CNTT không làm cho doanh nghiệp đó linh động hơn, có năng
lực hơn và nhiều lợi nhuận hơn. Kết quả là, những nỗ lực kiến trúc CNTT thường thất bại
hoặc trở nên hoàn toàn hướng về CNTT. SOA cung cấp giá trị cho doanh nghiệp đó mà
với kiến trúc doanh nghiệp cũ thì chỉ là những lời “hứa hươu, hứa vượn”. Tái sử dụng,
năng suất và sự nhanh nhạy trong CNTT thông tin được nâng cao và một cơ sở hạ tầng
phần mềm ăn khớp với các quy trình kinh doanh cụ thể là sự hấp dẫn để bán một nỗ lực
kiến trúc doanh nghiệp cho doanh nghiệp đó. Nhưng phải nhớ rằng kiến trúc ấy không
giành cho tất cả mọi người. Các công ty nhỏ hoặc các công ty phân tán lớn có thể không
thể điều chỉnh được một đội ngũ nhân sự tập chung gồm các giám đốc dự án, các kiến
trúc sư và các lập trình viên.
Làm thế nào tôi có thể cân bằng giữa nhu cầu lập kế hoạch kiến trúc trong SOA với nhu
cầu chứng minh giá trị của nó đối với doanh nghiệp là nhanh chóng?

Việc lập kế hoạch kiến trúc là việc tiêu tốn thời gian, việc phát triển theo hướng dịch vụ, vẽ lên
những nguyên tắc lập trình nổi tiếng và những tiêu chuẩn công nghệ phù hợp (chẳng hạn như
SOAP, HTTP …) có thể xảy ra nhanh hơn nhiều.
Trong khi đó nó sẽ giúp cho bạn có được kế hoạch kiến trúc và ánh xạ quy trình tại chỗ trước khi
xây dựng các dịch vụ (để cải thiện những cơ hội tái sử dụng), việc lập kế hoạch kiến trúc không
có sự đáp lại trong thời gian ngắn cái mà có thể đang bị phá hủy.
Làm thế nào để tôi biết được dịch vụ nào sẽ cung cấp giá trị cao nhất cho việc đầu tư của
tôi?
Khi hoàn nghi ngờ thì bạn hãy bắt đầu với những quy trình có liên quan đến khách hàng, ảnh
hưởng trực tiếp đến doanh thu và chỉ ra những thiệt hại cụ thể đối với doanh nghiệp. Một cuộc
điều tra năm 2006 của viện quản lý hiệu quả hoạt động kinh doanh đã cho thấy những khách
hàng đang phát triển cần và thích trở thành người chèo lái trong việc thay đổi quy trình kinh
doanh hoặc giới thiệu các ứng dụng mới, theo sau là các mối đe dọa cạnh tranh và những cơ hội
về doanh thu. (Tiết kiệm chi phí đã là một quãng xa cách).
Làm việc trên “mây”
Trong năm 2008, IBM đã công bố công nghệ đám mây (cloud
technology). Đầu năm nay, IBM đã bước thêm một bước: bằt đầu
giới thiệu các hạ tầng “mây” tư nhân (private cloud), “mây” công
cộng (public cloud) và “mây lai” (hybrid cloud) dành cho từng đối
tượng khác nhau. Một ví dụ điển hình chính là hệ thống Lotus Live
cho phép người dùng có thể chạy các giải pháp Lotus trực tuyến
mà không phải cài đặt vào máy của mình. Lotus Live chính là
“đám mây” riêng thuộc sở hữu của IBM nhưng lại là một dịch vụ
hay “đám mây” công cộng. Một chuyên gia công nghệ của IBM
cho biết, hiện tại giới kỹ thuật ứng dụng công nghệ đám mây nhiều
vì họ có thể thử nghiệm trên nhiều nền tảng hạ tầng công nghệ
thuộc các hãng khác nhau mà không phải mất tiền mua các thiết bị
đó. Chẳng hạn, một nhóm phát triển có thể chọn thử nghiệm sản
phẩm của mình trên nền tảng của Sun Solaris hay IBM i5/OS hay
Windows Server Theo IBM, Nhà Nước sẽ có nhu cầu triển khai

các đám mây công cộng ,trong khi các DN sẽ có nhu cầu triển khai các “đám mây” tư nhân. Đi
cùng với các “đám mây”, IBM công bố thiết bị Websphere CloudBurst vận hành như một “trung
gian” giữa người dùng và hạ tầng “đám mây”.
Singapore ứng dụng SOA vào hệ thống giao thông
Singapore chỉ là một hòn đảo nhỏ bé bằng ½ TP. New York (Mỹ). Trong
vòng 50 năm qua, đảo quốc này đã trở thành một trong những trung tâm kinh
tế sầm uất nhất khu vực. Trong vài năm qua, bên cạnh việc xây dựng hệ
thống tàu điện ngầm, Singapore còn hợp tác với IBM trong việc xây dựng hệ
thống vé giao thông điện tử.
IBM cung cấp cho Singapore một nền tảng (platform) sử dụng một cơ chế
tính giá để tác động tới hệ thống giao thông công cộng. Nền tảng này mang
tính mở và lấy cơ sở nền tảng là hệ thống Websphere. Singapore đã đưa hệ
thống này vào vận hành từ đầu năm và những lợi ích đạt được là:
1. Một thẻ (card) có thể dùng cho nhiều loại phương tiện của một người.
2. Hệ thống định giá cho phép tăng giá sử dụng cầu đường và giảm ùn
tắc giao thông. Hệ thống này tiết kiệm không chỉ cho người dân sử
dụng phương tiện giao thông mà còn giảm chí phí bảo trì cho nhà
cung cấp dịch vụ. Người dân có thể chuyển đổi qua lại giữa các hình
thức vận tải nhanh chóng.
SOA là một kiến trúc phần
mềm nhằm giúp hệ thống
CNTT cung cấp dịch vụ,
hỗ trợ cho người dùng DN
tốt hơn. Bạn đọc có thể tìm
hiểu thêm về SOA qua các
bài viết đã đăng trên
TGVT-PCW
(www.pcworld.com.vn):
“SOA – Kết nối những ốc
đảo thông tin”, ID:

B0809_80; “Tìm hiểu
SOA”, ID: B0710_68

Ông Silvester Prakasam, đại diện cho cơ quan quản lý giao thông Singapore
(Singapore Transport Authority)
SOA: Là bước tiến hóa hơn là cuộc cách mạng
DN ứng dụng hẳn sẽ giật mình và tự hỏi: “Vậy các phần mềm như kế toán, CRM, ERP mà chúng
tôi đang ứng dụng đã lỗi thời hay sao? Phải chăng chúng tôi phải chạy đi tìm những giải pháp
phần mềm được xây dựng theo kiểu SOA mới là tân tiến và mạnh nhất?” Ông Subramanyam
Venkatakrishnan, giám đốc bộ phận phần mềm của IBM phụ trách thị trường Việt Nam, cho biết,
DN không nhất thiết phải dùng những phần mềm nói trên được viết theo kiểu SOA mà chỉ cần
dùng SOA để kết nối các phần mềm này lại, tùy biến giao diện của chúng phục vụ cho nhu cầu
biến đổi dịch vụ, giao diện của DN. Đó mới chính là lĩnh vực IBM đang tập trung phát triển
mạnh. Dịch vụ kết nối các ứng dụng của IBM bổ sung cho thị trường phần mềm ứng dụng hơn là
cạnh tranh, mặc dù cũng đã có không ít các hãng phát triển các ứng dụng theo hướng SOA dựa
trên chuẩn mở. Ông Subramanyam đưa ra một ví dụ: “Ngày nay, tại một ngân hàng của Việt
Nam, KH muốn thanh toán thẻ tín dụng họ phải đến một quầy riêng, muốn rút tiền phải đến quầy
ATM riêng v.v… Nếu họ muốn chỉ đến một quầy mà có thể giải quyết mọi chuyện liên quan thì
sao? Nếu họ chỉ muốn ở nhà và giải quyết chuyện tiền nong qua Internet mà không phải đi đến
quầy này, quầy nọ thì sao? SOA giải quyết được những vấn đề đó. Với SOA, một ngân hàng vẫn
khai thác được các hệ thống và giải pháp cũ nhờ kết nối chúng và cung cấp dịch vụ hỗ trợ KH
theo các địa điểm hay giao diện khác nhau”.
FPT APTECH mở ra cho các bạn đam mê học tin học,
học công nghệ thông tin chuyên sâu về học lập trình cơ
hội được đào tạo Công Nghệ Thông Tin trong môi
trường tiêu chuẩn chất lượng quốc tế ISO9001.
Học CNTT - Học Aptech - Học tại FPT

Để tìm hiểu thêm về Kiến trúc hướng dịch vụ - SOA, hãy tham gia hội thảo cùng chuyên gia Phí
Anh Tuấn - Phó chủ tịch Hội tin học TPHCM, đăng ký trực tuyến tại đây


×