(Post 25/04/2008) Chúng ta có thể tìm thấy
từ SOA (Service Oriented Architecture - Cấu trúc hướng dịch vụ) trong
danh sách những chủ đề CNTT nổi bật nhất trong năm qua (đặc biệt trong
lĩnh vực phần mềm như Oracle và BEA), nhưng trên thực tế, để hiểu tường
tận khái niệm SOA mới mẻ này, đòi hỏi phải có một phương pháp luận mở
tiếp cận cấu trúc CNTT.
Mô hình
SOA minh họa |
|
Khái niệm cơ bản về SOA
Có nhiều định nghĩa về SOA tùy theo quan điểm của mọi
người. Theo tổ chức OASIS (Organization for the Advancement of Structured
Information Standards - Tổ chức phát triển Chuẩn thông tin cấu trúc),
một trong những tổ chức chuẩn quốc tế phát triển SOA, thì SOA được định
nghĩa là "một cơ chế để tổ chức và sử dụng những tính năng phân tán
dưới sự kiểm soát của nhiều miền sở hữu khác nhau". Minh họa cụ thể
cho cách thức hoạt động này là phòng hậu cần của một công ty tại Nhật
Bản truy nhập một dịch vụ SOA từ một ứng dụng của đối tác sản xuất thuê
ngoài của mình tại Trung Quốc, nhằm lấy những thông tin cập nhật nhất
về đơn hàng sản phẩm cụ thể cho một khách hàng ở Ấn Độ.
Thực tế, khái niệm SOA không phải hoàn toàn mới. Cộng
đồng CNTT đã từng thử hợp nhất các ứng dụng doanh nghiệp khác nhau rất
nhiều lần. Những nỗ lực như EAI (Tích hợp ứng dụng doanh nghiệp - Enterprise
Application Integration) và tích hợp giao dịch thương mại B2B cùng có
mục tiêu giống nhau. Trong nhiều cách, những cố gắng trước đây đã được
đăng ký sở hữu, tạo ra sự tích hợp cặp ứng dụng chặt chẽ. Nhưng trong
thế giới luôn thay đổi ngày nay, điều này thường không đủ linh hoạt và
thuận tiện.
Sau khi có sự ra đời của web như một chuẩn phổ biến cho
cộng đồng trực tuyến, SOA mang lại bước đột phá lớn là sử dụng các giao
thức chuẩn đã được triển khai rộng rãi - thường là các chuẩn dịch vụ web
của Simple Object Access Protocol (SOAP), Universal Description, Discovery,
and Integration (UDDI), và Web Services Description Language (WSDL) -
cho phép khả năng liên tác giữa những ứng dụng phần mềm không đồng nhất,
làm cho mọi tính năng phần mềm hoạt động trên dịch vụ web thích hợp với
mọi ứng dụng khác ở mọi nơi trên thế giới như một "dịch vụ"
phát sinh theo yêu cầu, mà không cần quan tâm đến địa điểm vật lý, ngôn
ngữ lập trình của một hệ điều hành hoặc một hệ thống mạng gốc. Với việc
đưa tính năng ứng dụng tới gần khả năng truy cập rộng rãi thông qua những
định dạng thông điệp chuẩn, SOA có tiềm năng để mang tới giá trị kinh
doanh và hiệu quả CNTT to lớn.
Những giả thuyết SOA cho hệ thống mạng
L.Peter Deutsch, nhà nghiên cứu máy tính nổi tiếng, đã
viết cuốn sách"8 sự ảo tưởng về hệ thống điện toán phân tán".
Những giả thuyết đó là:
- Hệ thống mạng là đáng tin cậy.
- Độ trễ bằng 0.
- Băng thông là vô hạn.
- Hệ thống mạng an toàn.
- Cấu trúc mạng không thay đổi.
- Chỉ có một nhà quản trị.
- Phí truyền dẫn bằng 0.
- Hệ thống mạng là đồng nhất.
Mặc dù được Deutsch viết vào năm 1991 nhưng những vấn
đề về ảo tưởng này có vẻ như vẫn có sự liên quan với khái niệm SOA "mới
mẻ" ngày nay. SOA sử dụng dịch vụ web, về bản chất, là những ứng
dụng phân tán. Khi thiết kế bất kỳ dịch vụ web nào, chúng ta cũng phải
ý thức được 8 điểm này.
Hiện tại, có nhiều giả thuyết quan trọng đối với việc
sử dụng nhiều dịch vụ web trên mạng:
- Web hóa (webification) ứng dụng có nghĩa là tăng thêm 5-10 lần tải
lưu lượng.
- Trong một framework SOA, có thể có mặt ở bất kỳ đâu mà vẫn dễ dàng
dùng web để truy cập. Những module khác nhau của các hệ thống cùng
làm việc để thực hiện quy trình kinh doanh, điều này đồng nghĩa những
mẫu lưu lượng mạng có thể khó dự đoán hơn và phân tán hơn so với những
ứng dụng máy chủ - máy khách thông thường.
- Các nhà quản lý mạng cần hỗ trợ SLA và QoS một cách đặc biệt đối
với lưu lượng http/https của SOA và cô lập chúng khỏi những lưu lượng
web thuần túy, chẳng hạn như lưu lượng phát sinh khi nhân viên truy
nhập hộp thư webmail cá nhân của họ.
- Dịch vụ SOA có thể được cung cấp bởi những đơn vị bên ngoài như
ASP, hoặc bởi những đối tác kinh doanh. Hệ thống mạng cần được coi
như là hệ thống điểm cuối - điểm cuối, nghĩa là không chỉ hệ thống
mạng nội bộ mà cả "hệ thống mạng bên ngoài" bao gồm Internet
công cộng (thông qua IPSec hoặc SSL).
Thông thường, ngân sách cho dự án SOA có thể chỉ bao
gồm phần mềm và các máy chủ, nhưng như đã nhấn mạnh ở trên, thực tế còn
có rất nhiều vấn đề cần phải kiểm thử. Do đó, bắt buộc cần phải có một
kế hoạch tổng thể bao gồm nâng cấp hệ thống mạng (thiết bị định tuyến,
bộ chuyển mạch switch, tường lửa và thiết bị tăng tốc ứng dụng) để hỗ
trợ cho vận hành SOA.
Những vấn đề bảo mật trực tiếp
Việc triển khai SOA tại một doanh nghiệp đã trở nên phức
tạp hơn khi sử dụng các dịch vụ web do các thể nhân bên ngoài cung cấp
(như các nhà cung cấp và các đối tác kinh doanh). Cần phải xem xét một
cách thấu đáo và cẩn thận khi triển khai sử dụng các dịch vụ mới nhất
như giải pháp tường lửa, IDP, SSL VPN, phân tải SSL... để bảo mật môi
trường SOA trong doanh nghiệp.
Bảo mật là một chủ đề khá rộng, trải dài từ các lớp mạng
tới các thiết bị đầu cuối (máy chủ, PC người dùng cuối...) và hệ thống
mạng. Trên thực tế, nếu chỉ một máy chủ ứng dụng được bảo mật thì không
đủ để bảo vệ và đảm bảo khả năng luôn sẵn sàng cho các dữ liệu kinh doanh;
không thể giải quyết mọi vấn đề mà doanh nghiệp phải đối mặt hàng ngày
như đối phó với các hacker bên ngoài, các cuộc tấn công DOS, các cuộc
tấn công dựa trên giao thức hay khai thác cổng hậu... (nhấn
vào đây để tham khảo Top 10 vấn đề bảo mật ứng dụng web).
Rất cần thiết phải có biện pháp bảo mật đa lớp (các lớp
ứng dụng và lớp mạng), và các biện pháp bảo mật tổng thể. Dưới đây là
một số vấn đề trong chiến lược bảo mật quan trọng ở 4 lĩnh vực: hệ thống
mạng, truy cập, thiết bị đầu cuối, và các trung tâm dữ liệu.
Bảo mật mạng
Điều đầu tiên chúng ta nghĩ về bảo mật mạng là về tường
lửa. Tuy nhiên, bảo mật mạng truyền thống qua hệ thống tường lửa lớp 3/4
là cần thiết nhưng chưa đủ, bởi hầu hết các lưu lượng web hiện nay được
thực hiện ở cổng 80/443 (cần dò tìm và bảo vệ sâu rộng lưu lượng ngay
tại đây). Điều này cần được triển khai ở "lớp ứng dụng", chẳng
hạn như Tường lửa thông minh thế hệ mới với khả năng kiểm soát lớp ứng
dụng/nội dung như dòng SSG của Juniper Networks, hay các thiết bị bảo
mật lớp ứng dụng chuyên dụng như Thiết bị dò tìm và phòng chống xâm nhập
(IDP) của Juniper Networks để hỗ trợ thiết bị tường lửa mạng nhằm bảo
vệ tối ưu cho cả các lớp ứng dụng và lớp mạng. Những thiết bị này có thể
dò tìm mẫu (các định dạng tấn công) hay những vấn đề bất thường (luồng
giao dịch và/hay giao thức) mà những kẻ viết các phần mềm độc hại hay
các mã độc tạo ra (ví dụ như các loại sâu) để khai thác các lỗ hổng ứng
dụng, và sau đó có thể cô lập các cuộc tấn công này trước khi chúng đạt
được mục đích. Tường lửa lớp ứng dụng có thể bảo vệ được nhiều loại ứng
dụng dựa trên web hay những ứng dụng khách/chủ được tùy biến hoặc đóng
gói.
Bảo mật truy cập
Truy cập từ xa là một thành phần quan trọng của ứng dụng
doanh nghiệp. Những người dùng di động (bao gồm cả những nhân viên trong
nội bộ, các nhà tư vấn, các đối tác kinh doanh hay các khách hàng) cần
có những kết nối bảo mật và dễ dàng cấu hình tới các ứng dụng doanh nghiệp
như các ứng dụng SOA qua mạng Internet. Việc kết nối tới các ứng dụng
doanh nghiệp thông qua các mạng riêng ảo và mã hóa SSL đã trở thành một
chuẩn cho truy cập bảo mật tới các ứng dụng phổ cập. Ngành CNTT đang chuyển
sang chuẩn hóa Mạng riêng ảo dựa trên công nghệ lớp bảo mật gói (SSL VPN),
giải pháp mang đến khả năng linh hoạt và kiểm soát tập trung tốt hơn nhiều.
Sử dụng các giải pháp cổng SSL VPN mới nhất như dòng giải pháp SA, giải
pháp bảo mật khách, kiểm soát truy cập cấp độ URL và kiểm soát file, ứng
dụng tập trung SSL VPN của Juniper Networks có thể giúp các nhà quản trị
kiểm soát một cách linh hoạt việc truy cập tới các ứng dụng dựa trên khả
năng nhận dạng người dùng và việc đánh giá các công nghệ sử dụng điểm
cuối máy khách như host checkers. Điều này cho phép các doanh nghiệp sử
dụng SSL VPN để cung cấp truy cập bảo mật trong rất nhiều trường hợp sử
dụng khác nhau như truy cập từ xa của nhân viên, truy cập ngoại vi của
đối tác và khách hàng, hay những trường hợp khẩn cấp, xảy ra thảm họa.
Bảo mật Điểm cuối
Không chỉ các điểm cuối từ xa cần khả năng bảo vệ an
toàn, mà các điểm cuối truy cập tới các ứng dụng SOA trong mạng nội bộ
văn phòng cũng cần có những biện pháp bảo vệ phù hợp. Chẳng hạn, một số
máy tính xách tay bị nhiễm virus có thể được các nhân viên trong văn phòng
bán cho nhau và lọt qua tất cả các lớp phòng vệ vùng biên mạng. Những
chiếc máy bị lây nhiễm này có thể khởi sự các cuộc tấn công tới các máy
chủ web và có thể làm rối loạn các dịch vụ web trong hệ thống mạng.
Việc triển khai bảo mật điểm cuối không đầy đủ sẽ là
nguyên nhân trực tiếp dẫn đến sự thành công của các mối đe dọa đột ngột
hay sự tấn công ồ ạt của các loại sâu. Những lỗ hổng bảo mật này xuất
hiện khi thiếu các biện pháp kiểm soát doanh nghiệp trực tiếp, hoặc chưa
quan tâm đúng mức đến việc triển khai các chính sách bảo mật điểm cuối
như bảo vệ chống virus được cập nhật, chống xâm nhập máy chủ trái phép,
cấu hình phần cứng và phần mềm hợp lý hay giới hạn các tiến trình đang
hoạt động...
Các hệ thống bảo mật ở góc độ máy khách như các giải
pháp Kiểm soát Truy cập Hợp nhất (UAC) của Juniper cho phép các nhà quản
lý bảo mật triển khai các sáng kiến tuân thủ với việc xác định vị trí
của hệ thống mà một máy khách cần có thông tin, hay thậm chí tiến hành
kiểm kê một hệ thống máy khách và kiểm soát truy cập tới các ứng dụng
web dựa trên phần mềm bảo mật cần có được cài đặt và cập nhật. Các nhà
quản trị mạng cũng cần có khả năng thiết lập các chính sách truy cập dựa
trên việc phối hợp nhiều biện pháp khác nhau. Ví dụ, một người sử dụng
được cấp phép từ phòng tài chính có thể được cấp phép truy cập đầy đủ
tới ứng dụng tài chính Oracle, và những người sử dụng từ các phòng ban
khác như marketing có thể bị từ chối truy cập tới ứng dụng đó ngay từ
lớp mạng để phòng chống bất cứ cuộc tấn công nào có thể xảy ra hoặc dò
tìm mật khẩu có chủ đích. Tính năng này rất có giá trị đối với các tổ
chức "nhạy cảm về sự tuân thủ" và với những giao dịch mà dữ
liệu cá nhân có thể được sử dụng để nhận dạng việc xâm nhập.
Bảo mật trung tâm dữ liệu
Bất kể bạn có sử dụng SOA hay không thì một điều rõ ràng
là trung tâm dữ liệu của bạn vẫn cần sử dụng những công nghệ bảo mật thích
hợp như tường lửa và IDP. Trong trường hợp SOA được sử dụng chủ yếu cho
các giao dịch dịch vụ web thì sẽ cần có nhiều mã hóa SSL (https) hơn.
Các máy chủ đơn thuần xử lý tất cả các kết nối SSL, nhưng thông thường,
việc CPU quá tải xử lý cùng với việc mã hóa/giải mã và tiến hành những
giao dịch SSL quan trọng khác gây ra tác động tiêu cực đối với việc sử
dụng CPU, ảnh hưởng tới hiệu năng và tính khả mở. Các thiết bị phân tải
SSL như DX của Juniper có thể giải quyết các vấn đề về tính khả mở và
cung cấp mã hóa cho toàn bộ các giao dịch ứng dụng. Với những môi trường
cần mã hóa tổng thể, các thiết bị SSL có thể mã hóa/giải mã các kết nối
từ máy khách, nhưng cũng có thể tái mã hóa các kết nối tới các máy chủ
cuối, những máy chủ quan trọng đối với các dịch vụ mạng khác, những dịch
vụ cần dữ liệu dạng text rõ ràng cho hoạt động như các bộ cân bằng tải
và các thiết bị thúc đẩy WAN.
Juniper Network
(theo Tạp chí Tin học Tài chính) |