Đồ án Nghiên cứu bảo mật Web Service

BỘ GIÁO DỤC VÀ ĐÀO TẠO  
TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG  
-------o0o-------  
NGHIÊN CỨU BẢO MẬT WEB SERVICE  
ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY  
Ngành: Công nghệ Thông tin  
Sinh viên thực hiện: Đoàn Đức Trung  
Giáo viên hướng dẫn: Ths. Nguyễn Trịnh Đông  
Mã số sinh viên: 110655  
 
2
MỤC LỤC  
3
4
5
7
DANH MỤC HÌNH VẼ  
Tên hình  
Hình 2.1  
Hình 3.1  
Hình 3.2  
Hình 3.3  
Hình 3.4  
Hình 3.5  
Hình 3.6  
Hình 3.7  
Hình 3.8  
Hình 3.9  
Hình 4.1  
Hình 4.2  
Hình 4.3  
Hình 4.4  
Hình 4.5  
Hình 4.6  
Hình 4.7  
Hình 4.8  
Mô tả  
Hoạt động của SOA  
Mô hình kết nối CSDL của FAO  
Mô hình Web Service  
Các thành phần chính của dịch vụ WEB  
Simple SOAP messaging  
Quá trình xử lý thông điệp SOAP  
Service Interface và Service Implementation  
Luồng thông báo UDDI giữa Máy khách và Registry  
Cách thức làm việc của UDDI  
Minh hoạ mô hình Web Service với Service Proxy  
XACML Architecture  
Thành phần của XACML  
XACML Policy Language Model  
XACML Request  
XACML Response  
XKMS Services  
Cấu trúc của SSL và giao thức SSL  
 
8
Hình 4.9  
Các bước SSL Record Protocol  
Hình 4.10 Xác nhận một số thông điệp  
Hình 4.11 Mã hóa một thông điệp  
Hình 4.12 Điều phối thông điệp SOAP  
Hình 5.1  
Hình 5.2  
Hình 5.3  
Hình 5.4  
Hình 5.5  
Hình 5.6  
Hệ thống truyền dữ liệu cần xây dựng  
Cơ sở dữ liệu User trên máy DatabaseMáy chủ  
WebMáy chủ gọi tới Web Service để hiển thị dữ liệu  
Cấu hình WSE 3.0  
Triển khai WSE 3.0 cho chương trình hệ thống  
Tích hợp thẻ Security vào trong WebService  
9
DANH MỤC KÝ HIỆU VÀ TỪ VIẾT TẮT  
Tên viết tắt  
FTP  
Mô tả  
File Transfer Protocol  
HTTP  
HTML  
UDDI  
SOAP  
SOA  
Hypertext Transfer Protocol  
Hypertext Markup Language  
Universal Description Discovery and Integration  
Simple Object Access Protocol  
Service Oriented Architecture  
Service Oriented Security Architecture  
Security Sockets Layers  
SOSA  
SSL  
SAML  
TCP/IP  
XML  
Security Assertion Markup Language  
Transmission Control Protocol/ Internet Protocol  
eXtensible Markup Language  
eXtensible Access Control Markup Language  
XML Key Management Specification  
eXentisble Rights Markup Language  
Web Service Enhancement  
XACML  
XKMS  
XrML  
WSE  
WSDL  
WS  
Web Service Description Language  
Web Service  
 
10  
TÓM TẮT NỘI DUNG  
Ngày nay công nghệ thông tin đang là nền công nghệ mũi nhọn trong chiến lược  
phát triển kinh tế, xây dựng đất nước của hầu hết các quốc gia. Các sản phẩm công  
nghệ thông tin đã và đang được ứng dụng rộng rãi trong mọi lĩnh vực của đời sống  
kinh tế, xã hội và hầu hết đều đem đến những giá trị thiết thực. Đối tượng phục vụ chủ  
yếu của ngành công nghệ thông tin hiện nay chính là các tổ chức, các cơ sở doanh  
nghiệp…  
Bảo mật luôn luôn là một vấn đề hàng đầu cho tất cả các loại ứng dụng, đặc biệt  
là các ứng dụng web. Từ những ngày đầu của Internet người ta đã quan tâm đến tính an  
toàn trong trao đổi thông tin. Tuy không có sự an toàn tuyệt đối nhưng những phát triển  
trong lĩnh vực này thì rất nhanh và mang lại nhiều thành quả vì đây là vấn đề cấp bách  
của nhiều doanh nghiệp. Không có một mức an toàn thích hợp, sự khai thác thương  
mại của Internet thì không hoàn toàn an toàn. Do đó những giải thuật để kiểm chứng,  
sự mã hóa khóa thông tin, và chữ ký số hóa có thể là những giải pháp cung cấp một  
mức đủ an toàn.  
Chính vì thế sự an toàn của Web Service trên mạng cũng không thể nằm ngoài  
vấn đề này. Có thể nói ngày nay ngoài việc nghiên cứu làm sao để tạo ra một Web  
Service tốt mang lại nhiều lợi ích thì việc nghiên cứu để làm sao mang lại sự an toàn  
cho Web Service cũng là một trong những vấn đề quan trọng nhất. Thật khó tin tưởng  
để sử dụng một dịch như mua chứng khoán, chuyển tiền trực tuyến hoặc truyền cơ sở  
dữ liệu qua lại giữa hai máy tính mà lại không có sự an toàn cần thiết.  
Em đã chọn đề tài làm đồ án tốt nghiệp là “Nghiên cứu bảo mật Web Service”.  
Đồ án tập trung đi sâu vào tìm hiểu về công nghệ Web Service và các vấn đề bảo mật  
liên quan và sử dụng chúng để giải quyết bài toán đề ra.  
 
11  
CHƢƠNG 1: MỞ ĐẦU  
1.1. Đặt vấn đề  
Ngày nay, cùng với sự phát triển của Internet, Web Service cũng trở thành một  
kỹ thuật dùng để liên kết và tương tác giữa các ứng dụng trên các máy tính khác nhau  
thông qua môi trường Internet. Ngày càng có nhiều nhà cung cấp dịch vụ muốn đưa  
các dịch vụ ra công cộng vấn đề lớn nhất mà các nhà cung cấp đang phải đối mặt  
chính là bảo mật cho Web Service. Việc đảm bảo an toàn cho Web Service là một vấn  
đề đặc biệt quan trọng, nhất là đối với những dịch vụ liên quan tài chính, thị trường  
chứng khoán và thương mại điện tử. Vấn đề bài toán đặt ra là làm thế nào để những  
thông tin, dữ liệu được trao đổi một cách an toàn mà không bị tấn công.  
Để giải quyết vấn đề bảo mật trên đường truyền, có nhiều phương pháp, công cụ  
được xây dựng và một trong số đó là Web Service Enhancement 3.0. Bộ thư viện này  
cung cấp nhiều hình thức chứng thực và nhiều chuẩn đặc tả khác nhau về bảo mật cũng  
như phục vụ mục đích đa dạng của người sử dụng. Ngoài ra còn rất nhiều các kỹ thuật  
bảo mật khác đang được các doanh nghiệp nhỏ và vừa triển khai trên hệ thống mạng  
nhằm đảm bảo thật tốt vấn đề an ninh khi giao dịch trên Internet.  
1.2. Nội dung bài toán  
Với những yêu cầu mà thực tế đặt ra, đồ án này sẽ tìm hiểu và làm rõ các kỹ  
thuật bảo mật Web Service hiện có, cùng với đó sẽ tập trung đi sâu vào bộ công cụ  
Web Service Enhancement 3.0 nhằm giải quyết rõ hơn về vấn đề bảo mật. Cũng trong  
đồ án này sẽ thực hiện xây dựng một hệ thống đơn giản là thực hiện việc trao đổi dữ  
liệu giữa hai máy tính trong mạng cục bộ với nhau và bảo mật dữ liệu đó trên đường  
truyền. Quá trình thực hiện gọi tới Web Service và hiển thị dữ liệu sẽ được bảo mật  
bằng bộ thư viện Web Service Enhancement 3.0, nhằm bảo mật dịch vụ web cũng như  
phục vụ mục đích đa dạng của người dùng.  
Có rất nhiều công cụ bảo mật cho hệ thống thông tin như FireWall, công nghệ  
bảo mật SSL, hệ thống xác thực (CA) và đặc biệt ứng dụng trong Web Service là bộ  
thư viện Web Service Enhancement của .NET Framework Microsoft. Web Service  
giao tiếp thông qua các thông điệp SOAP. Web Service Enhancement cung cấp những  
mở rộng của giao thức SOAP và cho phép người dùng tự định nghĩa các chính  
sách,bảo mật phục vụ việc truyền thông điệp trở nên đáng tin cậy  
     
12  
1.3. Mục tiêu của đồ án  
Để thực hiện các vấn đề nêu ra như trên, đồ án sẽ lần lượt trình bày những kiến  
thức cần thiết để giải quyết yêu cầu của bài toán đặt ra. Đồ án sẽ tập trung vào một số  
các vấn đề sau:  
. Tìm hiểu khái quát về kiến trúc hướng dịch vụ SOA.  
. Tìm hiểu công nghệ Web Service, kiến trúc và các thành phần Web Service.  
. Tìm hiểu Service Proxy (dạng Web Service triển khai ở phía người dùng).  
. Tìm hiểu các kỹ thuật bảo mật Web Service.  
. Triển khai ứng dụng về bảo mật Web Service ứng dụng WSE 3.0.  
1.4. Cấu trúc của đồ án  
Đồ án bao gồm các chương như sau:  
. Chương 1: Giới thiệu về kiến trúc hướng dịch vụ.  
. Chương 2: Web Service  
. Chương 3: Kỹ thuật bảo mật Web Service  
. Chương 4: Các kỹ thuật bảo mật Web Service  
. Chương 5: Triển khai ứng dụng và đánh giá kết quả  
. Kết luận  
   
13  
CHƢƠNG 2: GIỚI THIỆU KIẾN TRÚC HƢỚNG DỊCH VỤ  
2.1.Thực trạng hiện tại  
Phần mềm ngày nay đang ngày càng trở nên phức tạp và dường như đang vượt  
khỏi khả năng kiểm soát của các mô hình phát triển phần mềm hiện có. Hàng chục năm  
qua,nhiều kiến trúc phần mềm đã được xây dựng và triển khai nhằm giải quyết các vấn  
đề này.Thế nhưng độ phức tạp phần mềm vẫn cứ tiếp tục tăng và dường như đã trở nên  
vượt quá khả năng xử lý của các kiến trúc truyền thống.  
Nguyên nhân khiến cho độ phức tạp của các hệ thống phần mềm không ngừng  
tăng cao như thế là do sự xuất hiện của nhiều công nghệ mới tạo nên môi trường không  
đồng nhất, trong khi nhu cầu về trao đổi, chia sẻ, tương tác giữa các hệ thống không thể  
đáp ứng được trong một môi trường như vậy.  
Một nguyên nhân khác cũng góp phần dẫn đến tình trạng khó khăn như thế  
chính là vấn đề lập trình dư thừa và không thể tái sử dụng.  
Những vấn đề trước chưa giải quyết, mà nay các tổ chức lại phải đối mặt với  
những thách thức mới: đáp ứng nhanh chóng các sự thay đổi về thiết bị, giảm chi phí  
phát triển, tăng tính tương thích và khả năng tái sử dụng,... Tất cả đã tạo nên một áp lực  
nặng nề đối với các nhà phát triển phần mềm.  
2.2. Phân tích, đánh giá một số mô hình kiến trúc phân tán hiện tại  
Ba kiến trúc phân tán phổ biến nhất hiện này là CORBA, DCOM và EJB. Các  
kiến trúc này là sự mở rộng của các hệ thống hướng đối tượng bằng cách cho phép  
phân tán các đối tượng trên mạng. Đối tượng đó có thể có không gian địa chỉ bên ngoài  
ứng dụng, hoăc ở một máy khác với máy chứa ứng dụng trong khi vẫn được tham  
chiếu sử dụng như một phần của ứng dụng.  
2.2.1. CORBA - Common Object Request Broker Architecture  
CORBA được định nghĩa bởi Object Management Group (OMG), là một kiến  
trúc phân tán mở, độc lập nền tảng và độc lập ngôn ngữ.[1]  
CORBA Component Model (CCM) là một cải tiến đáng kể nhằm định nghĩa các  
mô hình thành phần so với CORBA. Nó định nghĩa ra quy trình thiết kế,phát triển,  
đóng gói,triển khai và thực thi các thành phần phân tán.CCM định nghĩa khái niệm  
cổng cho các thành tố. Các cổng này được sử dụng để kết nối các thành phần có sẵn  
       
14  
với nhau, tạo các hệ thống phân tán phức tạp hơn. Mỗi thành phần CCM có một đối  
tượng Home chịu trách nhiệm quản lý chu kỳ sống của đối tượng và được triển khai  
bên trong một trình chứa.  
Ưu điểm của CORBA là các lập trình viên có thể chọn bất kỳ ngôn ngữ,nền tảng  
phần cứng, giao thức mạng và công nghệ để phát triển mà vẫn thỏa mãn các tính chất  
của CORBA. Tuy nhiên CORBA có 1 một số nhược điểm đó là ngôn ngữ lập trình cấp  
thấp, rất phức tạp, khó học và cần một đội ngũ phát triển có kinh nghiệm. Ngoài ra các  
đối tượng CORBA cũng khó có thể tái sử dụng.  
2.2.2. EJB - Enterprise Java Bean  
Kiến trúc EJB là một kiến trúc thành tố bên phía máy chủ dùng cho việc phát  
triển và triển khai các ứng dụng phân tán hướng đối tượng cỡ vừa và lớn.  
Kiến trúc EJB có ba tầng với tầng đầu tiên là tầng trình diễn, tầng thứ hai là tầng  
xử lý nghiệp vụ và tầng thứ ba là các tài nguyên như cơ sở dữ liệu máy chủ. Các đối  
tượng EJB giao tiếp qua Remote Method Invocation (RMI).Các Máy khách sẽ sử dụng  
phương thức được định nghĩa trong Giao diện kết nối từ xa. Mỗi bean bên trong trình  
chứa, chịu trách nhiệm việc tạo giao diện, lưu trữ dữ liệu.Trình chứa sẽ triệu gọi các  
phương thức callback của mỗi thể hiện bean khi có sự kiện tương ứng. Không giống  
như CORBA Component Model, EJB không định nghĩa các cổng kết nối trực tiếp giữa  
các thành phần liên quan bởi vì mỗi bean bên trong trình chứa là một thực thể độc lập  
không có bất kỳ ràng buộc bên ngoài nào.[1]  
EJB là một kiến trúc tốt cho việc tích hợp các hệ thống vì nó độc lập nền tảng  
nhưng nó cũng gặp vấn đề là không phải là một chuẩn mở, khả năng giao tiếp với các  
chuẩn khác vẫn còn hạn chế.  
2.2.3. DCOM - Distributed Component Object Model  
DCOM là một mô hình phân tán dễ triển khai với chi phí thấp, hỗ trợ việc ghép  
kín giữa các ứng dụng và hệ điều hành. Mô hình Component Object Model (COM)  
định nghĩa cách thức các thành phần và Máy khách liên lạc trao đổi với nhau trên cùng  
một máy. DCOM mở rộng COM bằng cách sử dụng các giao thức trên mạng chuẩn khi  
cần trao đổi dữ liệu với máy móc. DCOM hỗ trợ kết nối giữa các đối tượng và có thể  
được thay đổi lúc đang chạy. Các đối tượng DCOM được triển khai bên trong các gói  
nhị phân chứa các mã lệnh quản lý chu kỳ sống của đối tượng và việc đăng ký nó[1].  
   
15  
DCOM mang đến nhiều ưu điểm như tính ổn định, không phụ thuộc vị trí địa lý,  
quản lý kết nối hiệu quả và dễ dàng mở rộng, là một lựa chọn tốt cho các doanh nghiệp  
sử dụng công nghệ của Windows để chạy các ứng dụng có yêu cầu cao về chính xác và  
ổn định. Tuy nhiên, các công nghệ của Microsoft có một nhược điểm lớn là chúng bị  
giới hạn trên nền tảng Windows.  
Tóm lại:  
Các kiến trúc trên đều hướng đến việc xây dựng một hệ thống “hướng dịch vụ”  
tuy nhiên chúng vẫn còn gặp phải một số vấn đề sau:  
. Kiến trúc cài đặt bên phía nhà cung cấp và phía sử dụng phải giống nhau. Điều  
này đồng nghĩa với khó khăn mỗi khi có sự thay đổi từ một trong hai phía.  
. Các chuẩn trên đa phần là chuẩn đóng, chúng hầu như không thể kết hợp, hoạt  
động với chuẩn khác..  
2.3. Khái niệm SOA  
Theo định nghĩa của IBM: “SOA is an architecture style for creating an  
Enterprise IT Architecture that exploits the principle of máy chủ orientation to achieve  
a tiglter relationship between the business and the information systems that support the  
business…”[6].  
Theo đó SOA là phong cách kiến trúc để tạo ra một công trình kiến trúc IT, kiến  
trúc đó khai thác các nguyên tắc của hướng dịch vụ để đạt được các mối quan hệ chặt  
chẽ giữa doanh nghiệp và hệ thống thông tin nhằm hỗ trợ các doanh nghiệp.  
Kiến trúc hướng dịch vụ là một hướng tiếp cận với việc thiết kế và tích hợp các  
phần mềm, chức năng, hệ thống theo dạng mô đun, mỗi mô đun sẽ có một tính chất  
“kết nối lỏng” và có khả năng truy cập thông qua môi trường mạng. Hiểu một cách đơn  
giản thì một hệ thống SOA là một tập hợp các dịch vụ được chuẩn hoá trên mạng trao  
đổi với nhau trong ngữ cảnh một tiến trình nghiệp vụ [3].  
SOA đưa ra giải pháp để giải quyết các vấn đề tồn tại của các hệ thống hiện nay  
như: phức tạp, không linh hoạt và không ổn định. Một hệ thống triển khai theo mô hình  
SOA có khả năng dễ mở rộng, liên kết tốt. Đây chính là cơ sở và nền tảng cho việc tích  
hợp, tái sử dụng lại những tài nguyên hiện có. SOA cung cấp cơ chế cho phép các hệ  
thống hoạt động trên các platform khác nhau có thể giao tiếp với nhau.  
 
16  
Thiết kế SOA tách riêng phần thực hiện dịch vụ với giao tiếp gọi dịch vụ. Điều  
này tạo nên một giao tiếp nhất quán cho ứng dụng khách. Thay vì xây dựng các ứng  
dụng đơn lẻ và đồ sộ, nhà phát triển sẽ xây dựng các dịch vụ tinh gọn có thể triển khai  
và tái sử dụng trong toàn bộ quy trình nghiệp vụ. Điều này cho phép tái sử dụng phần  
mềm tốt hơn, cũng như tăng sự linh hoạt vì nhà phát triển có thể cải tiến dịch vụ mà  
không làm ảnh hưởng đến ứng dụng của máy khách.  
Thật ra, tư tưởng về một hệ thống SOA không phải là mới. Comnon Object  
Request Broker Architecture (CORBA) và mô hình Distributed Component Object  
Model (DCOM) của Microsoft hay như Enterprise Java Bean (EJB) của Java đã cung  
cấp tính năng này từ lâu. Tuy nhiên những cách tiếp cận này còn gặp phải những vấn  
đề khó khăn như trên và SOA không chỉ là một cải tiến đáng kể giúp giải quyết những  
yếu điểm của các công nghệ trước mà còn đem đến nhiều ưu điểm nổi trội hơn.  
2.4. Đối tƣợng trong hệ thống xây dựng theo SOA  
Service Provider: Cung cấp dịch vụ phục vụ cho một nhu cầu nào đó.  
Service Consumer: Người dùng sử dụng các dịch vụ của Servie Provider.  
Service Registry: Nơi lưu trữ thông tin về các dịch vụ khác nhau, Service  
Consumer dựa trên những thông tin này để tìm kiếm và lựa chọn Service Provider.  
Hình 2.1: Hoạt động của SOA  
2.5. Nguyên tắc chính của hệ thống SOA  
2.5.1. Sự phân định ranh giới rạch ròi giữa các dịch vụ  
Các dịch vụ thực hiện quá trình tương tác chủ yếu thông qua thành phần giao  
tiếp.Thành phần giao tiếp sẽ qui định về định dạng thông điệp nào sẽ được chấp nhận  
và thông điệp nào sẽ không được xử lý.Đây là cách duy nhất để các đối tượng bên  
ngoài có thể truy cập thông tin và chức năng của dịch vụ.Chỉ cần gửi các thông điệp  
theo các định dạng đã được định nghĩa mà không cần phải quan tâm đến cách xử lý của  
dịch vụ như thế nào.  
     
17  
2.5.2. Các dịch vụ tự hoạt động  
Các dịch vụ cần phải được triển khai và hoạt động như những thực thể độc lập  
mà không lệ thuộc vào một dịch vụ khác. Dịch vụ phải có tính bền vững cao, nghĩa là  
sẽ không bị sụp đổ khi có sự cố. Để thực hiện điều này, dịch vụ cần duy trì đầy đủ  
thông tin cần thiết cho quá trình hoạt động của mình để có thể tiếp tục hoạt động  
trong trường hợp một dịch vụ cộng tác bị hỏng và để tránh các cuộc tấn công từ bên  
ngoài (như gửi thông điệp lỗi, hay gửi thông điệp ồ ạt) bằng cách sử dụng các kỹ  
thuật về an toàn, bảo mật ...)  
2.5.3. Các dịch vụ chia sẻ lƣợc đồ  
Các dịch vụ nên cung cấp thành phần giao tiếp ra bên ngoài,và hỗ trợ chia sẻ  
cấu trúc thông tin,ràng buộc dữ liệu thông qua các lược đồ dữ liệu chuẩn (độc lập ngôn  
ngữ, độc lập hệ nền). Như thế hệ thống sẽ có tính liên kết và khả năng dễ mở rộng.  
2.5.4. Tính tƣơng thích của dịch vụ dựa trên chính sách  
Một dịch vụ khi muốn tương tác với một dịch vụ khác thì phải thỏa mãn các  
chính sách và yêu cầu của dịch vụ đó như là mã hóa, bảo mật... Để thực hiện điều này,  
mỗi dịch vụ cần phải cung cấp công khai các yêu cầu, chính sách đó.  
2.6. Các tính chất của một hệ thống SOA  
2.6.1. Loose coupling (kết nối “lỏng”)  
Vấn đề kết nối ám chỉ đến một số ràng buộc giữa các mô đun với nhau. Có hai  
loại kết nối là rời và chặt. Các mô đun kết nối lỏng có một số ràng buộc được mô tả  
trong khi các mô đun kết nối chặt lại có nhiều ràng buộc không thể biết trước. Hầu như  
mọi kiến trúc phần mềm đều hướng đến tính kết nối lỏng giữa các mô đun. Mức độ kết  
dính của mỗi hệ thống ảnh hưởng trực tiếp đến khả năng chỉnh sửa hệ thống của chính  
nó.Mức độ kết nối tăng dần khi bên sử dụng dịch vụ cần biết thông tin ngầm định của  
bên cung cấp dịch vụ được cung cấp.Ngược lại, nếu bên sử dụng dịch vụ không cần  
biết thông tin chi tiết trước khi triệu gọi thì quan hệ giữa hai bên càng có tính  
lỏng.SOA hỗ trợ kết nối lỏng thông qua việc sử dụng hợp đồng và liên kết.  
Kết nối lỏng hỗ trợ gỡ bỏ ràng buộc điều khiển giữa những hệ thống đầu cuối.  
Mỗi hệ thống có thể tự quản lý độc lập nhằm tăng hiệu suất, khả năng mở rộng và khả  
năng đáp ứng cao.Kết nối lỏng đem đến sự độc lập giữa bên cung cấp và bên sử dụng  
nhưng nó đòi hỏi các giáo diện phải theo chuẩn và một thành phần trung gian quản lý,  
trung chuyển yêu cầu giữa các hệ thống đầu cuối.  
         
18  
2.6.2. Sử dụng lại dịch vụ  
Bởi vì các dịch vụ được cung cấp lên trên mạng và được đăng ký ở một nơi nhất  
định nên chúng dễ dàng được tìm thấy và tái sử dụng.Các dịch vụ có thể được tái sử  
dụng lại bằng cách kết hợp lại với nhau theo nhiều mục đích khác nhau. Tái sử dụng lại  
các dịch vụ còn giúp loại bỏ những thành phần trùng lặp và tăng độ vững chắc trong  
cài đặt, nó còn giúp đơn giản hoá việc quản trị.  
2.6.3. Sử dụng dịch vụ bất đồng bộ  
Trong phương thức triệu gọi dịch vụ bất đồng bộ, bên gọi gửi một thông điệp  
với đầy đủ thông tin ngữ cảnh tới bên nhận. Bên nhận xử lý thông tin và trả kết quả về  
thông qua một “kênh thông điệp”, bên gọi không phải chờ cho đến khi thông điệp được  
xử lý xong.Do bên gọi không phải chờ cho đến khi yêu cầu được xử lý xong và trả về  
nên không bị ảnh hưởng bởi việc xử lý trễ và lỗi khi thực thi các dịch vụ bất đồng bộ.  
Trên lý thuyết hệ thống SOA có thể gửi và nhận cả thông điệp đồng bộ và bất đồng bộ.  
2.6.4. Quản lý các chính sách  
Khi sử dụng các dịch vụ chia sẻ trên mạng, tùy theo mỗi ứng dụng sẽ có một  
luật kết hợp riêng gọi là chính sách và thiết kế tách biệt. Nếu không sử dụng chính  
sách, nhân viên phát triển phần mềm, nhóm điều hành hỗ trợ phải làm việc với nhau  
trong thời gian để cài đặt và kiểm tra những chính sách. Ngược lại, nếu sử dụng chính  
sách, những nhân viên phát triển phần mềm giờ chỉ cần tập trung vào quy trình nghiệp  
vụ trong khi nhóm điều hành và nhóm hỗ trợ tập trung vào các luật kết hợp.  
2.6.5. Khả năng cộng tác  
SOA nhấn mạnh đến khả năng cộng tác giữa các hệ thống khác nhau. Mỗi dịch  
vụ cung cấp một giao diện có thể được triệu gọi thông qua một dạng kết nối.  
2.6.6. Tự động dò tìm và ràng buộc động  
SOA hỗ trợ khái niệm dò tìm dịch vụ. Người sử dụng cần đến một dịch vụ nào  
đó có thể tìm kiếm dịch vụ dựa trên một số tiêu chuẩn khi cần.Người sử dụng chỉ cần  
hỏi một registry về dịch vụ nào thoả yêu cầu tìm kiếm. Mối ràng buộc duy nhất giữa  
bên cung cấp và bên sử dụng là bản hợp đồng được cung cấp bởi registry trung gian.  
Mối ràng buộc này là ràng buộc trong thời gian chạy chứ không phải ràng buộc trong  
lúc biên dịch.Với SOA, bên sử dụng dịch vụ không cần biết định dạng của thông điệp  
yêu cầu và thông điệp trả về,cũng như địa chỉ dịch vụ cho đến khi cần  
         
19  
2.6.7. Tự hồi phục  
Với quy mô và độ phức tạp của những ứng dụng phân tán ngày nay, khả năng  
phục hồi của một hệ thống sau khi bị lỗi trở thành một yếu tố quan trọng. Một hệ thống  
có khả năng tự hồi phục sau khi bị lỗi mà không cần sự can thiệp của con người  
Độ tin cậy là mức độ đo khả năng một hệ thống xử lý tốt như thế nào trong tình  
trạng hỗn loạn. Trong kiến trúc hướng dịch vụ, các dịch vụ luôn có thể hoạt động hay  
ngừng bất kỳ lúc nào, nhất là đối với những ứng dụng tổng hợp từ những từ nhiều dịch  
vụ của nhiều tổ chức khác nhau. Độ tin cậy phụ thuộc vào khả năng phụ hồi của phần  
cứng sau khi bị lỗi. Một khía cạnh khác ảnh hưởng đến độ tin cậy là kiến trúc mà dựa  
trên đó ứng dụng được xây dựng. Một kiến trúc hỗ trợ kết nối và thực thi động khi  
chạy sẽ có khả năng tự phục hồi hơn một hệ thống không hỗ trợ những tính năng trên.  
2.7. Lợi ích khi sử dụng SOA  
Lợi ích kinh tế:  
. Doanh nghiệp có thể tập trung m kiếm các giải pháp cho bài toán liên quan  
đến kinh tế. Thúc đẩy sự phát triển của hệ thống và mở rộng trong tương lai  
Lợi ích kỹ thuật:  
. Hệ thống sẽ đảm bảo các dịch vụ có tính độc lập cao (độ kết dính thấp) .  
. Việc di dời các dịch vụ đến một máy tính khác không ảnh hưởng khả năng phục  
vụ yêu cầu khách hàng.  
. Tính kết nối lỏng giúp tăng tính linh hoạt và khả năng triển khai cài đặt.  
. Tăng khả năng mở rộng và khả năng sẵn sàng cung cấp bằng cách thêm nhiều  
thể hiện của một dịch vụ. Công nghệ chia tải sẽ tự động tìm và định tuyến yêu  
cầu đến dịch vụ thích hợp. SOA có thể chuyển tiếp nội dung yêu cầu đến một  
thể hiện khác khi cần, nhờ đó tăng khả năng sẵn sàng phục vụ  
. Hỗ trợ đa thiết bị và đa nền tảng  
   
20  
2.8. Một số mô hình triển khai SOA  
2.8.1. Service Registry  
Đây là mô hình truyền thống để định vị và liên kết các dịch vụ trong một hệ  
thống SOA. Mô hình này về cơ bản chỉ cần các chuẩn Web services thông thường là  
SOAP, WSD và UDDI. Các liên kết dịch vụ trong mô hình là kết nối tĩnh và phải định  
nghĩa trong thiết kế, điều này làm cho mô hình trở nên cứng nhắc. Có một cách cải tiến  
làm cho mô hình này linh hoạt hơn là tìm kiếm, định vị các dịch vụ khi chạy. UDDI hỗ  
trợ nhiều cấu hình khác nhau cho cùng một dịch vụ cung cấp bởi nhiều nhà cung cấp  
dịch vụ khác nhau.  
2.8.2. Service broker  
Trong mô hình cơ bản, tất cả những thông điệp đều được trung chuyển qua  
Service broker. Dịch vụ này có thể làm nhiều chức năng như định tuyến dựa trên dữ  
liệu thông điệp, xử lý lỗi, chuyển đổi thông điệp, chia tải và lọc thông tin. Nó cũng có  
thể cung cấp dịch vụ bảo mật, chuyển đổi giao thức, lưu vết .Tuy nhiên, Service broker  
có thể xảy ra hiện tượng nghẽn cổ chai và là điểm dễ bị hỏng hóc. Mô hình broker phân  
tán là một bước cải tiến mới, ở đó mỗi nền tảng dịch vụ có một Broker cục bộ cho phép  
giao tiếp với một Service broker trung tâm và giao tiếp trực tiếp với các Service broker  
cùng cấp ở các nền tảng dịch vụ khác  
2.8.3. Service bus  
Đây là mô hình ra đời sau nhất trong ba mô hình nhưng nó đã được sử dụng  
trong các sản phẩm thương mại lớn(như IBM, BEA). Service bus cũng là mô hình có  
tính kết nối lỏng nhất trong các mô hình, trong đó các dịch vụ không kết nối trực tiếp  
với nhau thành một mạng Service bus  
2.9. Kiến trúc phân tầng chi tiết của SOA  
2.9.1. Tầng kết nối  
Mục đích là kết nối đến các ứng dụng enterprise hoặc tài nguyên bên dưới và  
cung cấp chúng thành dạng những dịch vụ. Tầng này là tầng chuyên giao tiếp với các  
nhà cung cấp, hoạt động như một bộ chuyển đổi giữa các ứng dụng phi dịch vụ và  
mạng các dịch vụ khác.  
Tầng này thực hiện kết nối đến các hệ cơ sở dữ liệu.  
           
Tải về để xem bản đầy đủ
pdf 67 trang Thùy Anh 26/04/2022 6060
Bạn đang xem 20 trang mẫu của tài liệu "Đồ án Nghiên cứu bảo mật Web Service", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfdo_an_nghien_cuu_bao_mat_web_service.pdf