MÔ HÌNH TÍNH TOÁN HƯỚNG DỊCH VỤ TIỂU LUẬN ĐỀ TÀI: MÔ HÌNH TÍNH TOÁN HƯỚNG DỊCH VỤ (SERVICEORIENTED COMPUTING Công nghệ thông tin đang ngày càng phát triển, trở thành ngành mũi nhọn trong chiến lược phát triển kinh tế của mỗi quốc gia. Đối tượng phục vụ chủ yếu hiện nay của CNTT là các tổ chức, các cơ sở doanh nghiệp.
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Phạm Thị NhungNguyễn Thị Thi
Hà Nội, tháng 1/2013
Trang 2MỤC LỤC
1 Tổng quan mô hình tính toán hướng dịch vụ 1
1.1 Các khái niệm và đặc trưng 1
1.1.1 Khái niệm 1
1.1.2 Đặc trưng và lợi ích 2
1.2 Các nguyên lý của mô hình tính toán hướng dịch vụ 3
1.2.1 Tình huống sử dụng (Use Cases) 3
1.2.2 Mô hình kiến trúc hướng dịch vụ (SOA) 4
2 Lộ trình nghiên cứu mô hình tính toán hướng dịch vụ 5
2.1 Tổng quan về lộ trình nghiên cứu mô hình tính toán hướng dịch vụ 5
2.2 Các hướng cụ thể trên lộ trình nghiên cứu mô hình tính toán hướng dịch vụ 6
2.2.1 Thiết lập dịch vụ 6
2.2.2 Tích hợp dịch vụ 7
2.2.3 Quản lý và giám sát dịch vụ 8
2.2.4Thiết kế và phát triển dịch vụ 9
3 Xây dựng ứng dụng mô hình tính toán hướng dịch vụ 9
3.1 Vấn đề khi xây dựng mô hình tính toán hướng dịch vụ 9
3.1.1 Các yếu tố khi thiết kế SOC 9
3.1.2 Chất lượng dịch vụ 10
3.1.3 Xây dựng Ontology 11
3.1.4 Xây dựng các quy trình 12
3.1.5 Thiết kế và xây dựng Agent-Based 12
3.1.6 Làm thế nào để thiết lập dịch vụ 13
3.1.7 Xử lý ngoại lệ 13
3.2 Ứng dụng thương mại điện tử - eBusiness Applications 14
3.2.1 Mô hình cho ứng dụng thương mại điện tử 14
3.2.2 Các yêu cầu kiến trúc eMarketplace 15
3.3 Ứng dụng xây dựng hệ thống bán hàng tự động 15
Trang 31 Tổng quan mô hình tính toán hướng dịch vụ
1.1 Các khái niệm và đặc trưng
1.1.1 Khái niệm
Công nghệ thông tin đang ngày càng phát triển, trở thành ngành mũi nhọntrong chiến lược phát triển kinh tế của mỗi quốc gia Đối tượng phục vụ chủ yếuhiện nay của CNTT là các tổ chức, các cơ sở doanh nghiệp Với sự phát triểncủa Internet và với xu thế hội nhập chung của toàn thế giới, các tổ chức, doanhnghiệp cần bắt tay, phối hợp hoạt động và chia sẻ tài nguyên với nhau để nângcao hiệu quả hoạt động Khi đó các sản phẩm sẽ ngày càng phức tạp, kéo theochi phí sản xuất, quản lý và bảo trì Đặc biệt, ngành công nghệ phần mềm cònđối mặt với vấn đề hóc búa là bảo mật, và tái sử dụng lại các hệ thống sẵn có,vấn đề không tương thích về hệ thống giữa các tổ chức hợp tác với nhau
Để giải quyết vấn đề trên người ta đã đưa ra nhiều giải pháp và hiện nay, mộtgiải pháp đang được quan tâm là kiến trúc hướng dịch vụ (Service OrientedArchitecture – SOA)
Tính toán hướng dịch vụ (SOC) dùng để chỉ tập hợp các khái niệm, nguyên
lý và các phương thức dùng để tính toán trong mô hình kiến trúc hướng dịch vụ(SOA) với các phần mềm ứng dụng được xây dựng dựa trên các thành phần độclập với một chuẩn giao diện
SOC phát triển phần mềm thành 3 phần độc lập: người xây dựng ứng dụng(Service providers), người cung cấp ứng dụng (Application builders), kết nốiứng dụng (Service brokers)
Người cung cấp ứng dụng: Họ sử dụng các ngôn ngữ lập trình như Java, C#,
… để viết chương trình Các thành phần sẽ được tính hợp với nhau theo mộtgiao diện chuẩn, gọi là dịch vụ hay mạng dịch vụ nếu các dịch vụ sử dụng trêninternet
Kết nối ứng dụng: các dịch vụ có thể đăng ký và công bố cho việc truy nhậpchung, giúp người xây dựng ứng dụng tìm hiểu các dịch vụ mà họ cần
Người xây dựng ứng dụng: thay vì xây dựng phần mềm từ đầu bởi các ngônngữ lập trình cơ bản, người xây dựng ứng dụng đại diện cho người sử dụng cuối
để xác định ứng dụng logic của ứng dụng, sử dụng các dịch vụ chuẩn như là cácthành phần
Trang 41.1.2 Đặc trưng và lợi ích
SOC được sử dụng bởi những người dùng lớn như ngân hàng (web dịch vụcủa ngân hàng) Hàng không (web dịch vụ của hàng không), cơ quan du lịch(web dịch vụ hỗn hợp liên kết với dịch vụ hàng không, khách sạn, tàu xe…)SOC tạo điều kiện cho các doanh nghiệp làm việc cùng nhau: các công việctrong quá trình kinh doanh hoặc cung cấp sản phẩm sẽ dễ dàng hơn với các nhàcung cấp ở bên ngoài
Mục tiêu hàng đầu của SOC là tạo sự liên kết của việc truy nhập dịch vụphần mềm thông qua giao thức chuẩn, các chức năng có thể tự động cập nhật vàtích hợp vào ứng dụng hoặc được tích hợp vào các dịch vụ phức tạp hơn
Lợi ích của việc sử dụng tính toán hướng dịch vụ với mô hình tính toán đốitượng
Tính năng Object-Oriented
Computing
Service-Oriented Computing
bởi các lớp, kiến trúc ứngdụng là sự phân cấp và sự
kế thừa
Ứng dụng được xây dựngbởi các dịch vụ lỏng lẻo vàtạo thành các ứng dụng thựcthi
Trừu tượng hóa
và liên kết
Việc phát triển ứng dụng làmột đội chịu trách nhiệmcho toàn bộ vòng đời củaứng dụng các nhà pháttriển phải có kiến thức vềcác lĩnh vực ứng dụng vàlập trình
Việc phát triển ứng dụngđược chia ra làm 3 phần độclập: người xây dựng ứngdụng, nhà cung cấp dịch vụ,kết nối ứng dụng Ngườixây dựng ứng dụng phải hiểubiết về ứng dụng và khôngcần biết các dịch vụ sẽ đượcthực hiện như thế nào Cácnhà cung cấp dịch vụ có thểlập trình nhưng không cầnhiểu rõ về ứng dụng sẽ sửdụng dịch vụ nào
Trang 5được cập nhập lại trong quátrình biên dịch và có nềntảng phụ thuộc
internet Đó là các nên tảngđộc lập có thể được tìm kiếm
và truy nhập từ xa Các dịch
vụ môi giới cho phép chia sẻ
hệ thống dịch vụLiên kết động
và tái cấu hình
Ta phải gắn tên cho mộtphương thức trong quátrình chạy các phươngthức phải liên kết đến mãthực thi trước khi ứng dụngđược tích hợp
Liên kết một dịch vụ là yêucầu dịch vụ đó trong thờigian chạy Các dịch vụ cóthể được tìm thấy sau khiứng dụng đã được tích hợp.tính này cho phép một ứngdụng có thể được tích hợp lạitrong thời gian chạy
Bảo trì hệ thống Người dùng phải thường
xuyên nâng cấp phần mềm
ứng dụng phải dừng khi tatiến hành nâng cấp
Các mã dịch vụ ở thuộc tínhdịch vụ của các nhà cungcấp Dịch vụ có thể được cậpnhật mà không cần sự thamgia của người sử dụng
1.2 Các nguyên lý của mô hình tính toán hướng dịch vụ
1.2.1 Tình huống sử dụng (Use Cases)
Tính toán hướng dịch vụ cung cấp các công cụ để mô hình hóa thông tin và
sự liên hệ giữa các mô hình, xây dựng quy trình hệ thống, bảo đảm các giaodịch, thêm các quyết định hỗ trợ, quan hệ giữa các chức năng của thành phầnphần mềm đến các tổ chức mà họ đại diện
Tính toán theo định hướng dịch vụ cho phép chỉnh sửa các ứng dụng mớibằng cách cung cấp một giao diện dịch vụ Web loại bỏ vấn đề tin nhắn và cungcấp một cơ sở ngữ nghĩa để tùy chỉnh các chức năng của ứng dụng
Tính toán hướng dịch vụ có thể cho phép tự do lựa chọn các đối tác kinhdoanh dưa trên các tiêu chi chuẩn chất lượng của mỗi dịch vụ mà mỗi bên có thểtùy chỉnh nó
Tính toán theo định hướng dịch vụ cung cấp hỗ trợ lựa chọn động của các đốitác như trừu tượng hóa, các trạng thái giao dịch sẽ được ghi và thao tác linh
Trang 6hoạt, theo cách này, lựa chọn động được khai thác để mang lại khả năng chịu lỗicấp ứng dụng
Tính toán theo định hướng dịch vụ cho phép sử dụng hiệu quả các nguồn tàinguyên lưới
Tính toán theo hướng dịch vụ tạo điều kiện cho Utility Computing, đặc biệtserver dự phòng được sử dụng để đạt được khả năng chịu lỗi
Tính toán hướng dịch vụ cung cấp một mô hình ngữ nghĩa phong phú và linhhoạt tính toán đơn giản hoá việc phát triển phần mềm
1.2.2 Mô hình kiến trúc hướng dịch vụ (SOA)
Kiến trúc hướng dịch vụ (Service Oriented Architecture) là một hướng tiếpcậ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ạngmodule, trong đó mỗi module đóng vai trò là một “dịch vụ có tính loosecoupling” và có khả năng truy cập thông qua môi trường mạng Một cách đơngiản thì một hệ thống SOA là 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ụ
SOA có ba đối tượng chính minh hoạ trong hình sau:
Hình 1: Sơ đồ cộng tác trong SOA hiện nay
Nhà cung cấp dịch vụ (Service Provider) cần cung cấp thông tin về nhữngdịch vụ của mình trong một dịch vụ lưu trữ thông tin dịch vụ (Service Registry).Người sử dụng (Service Consumer) tìm kiếm thông tin về dịch vụ cần thiết trongService Regisstry sau đó xây dựng kênh giao tiếp với nhà cung cấp
Trang 7SOA cung cấp các giải pháp để giải quyết các vấn đề tồn tại của các hệ thốnghiện nay như: phức tạp, không linh hoạt và không ổn định Một hệ thống triếnkhai theo mô hình SOA có khả năng dễ mở rộng, liên kết tốt Đây chính là điềukiện cơ sở, nền tảng để tích hợp, tái sử dụng những tài nguyên hiện có.
Thật ra, tư tưởng về một kiến trúc hướng dịch vụ không phải là mới màCORBA, DCOM (mô hình của Microsoft), EJB (mô hình của java) đã thực hiện
từ lâu, tuy nhiên cách tiếp cận này còn gặp nhiều hạn chế (như đã nói ở trên).SOA không chỉ cải tiến đáng kể mà còn đem đến nhiều ưu điểm nổi trội hơn
2 Lộ trình nghiên cứu mô hình tính toán hướng dịch vụ
2.1 Tổng quan về lộ trình nghiên cứu mô hình tính toán hướng dịch vụ
Lộ trình nghiên cứu mô hình tính toán hướng dịch vụ đưa ra một kiến trúcdựa trên dịch vụ được phân tầng logic, để tạo ra một môi trường IT có khả năngtương tác và thích nghi Môi trường này có khả năng biểu diễn các chính sáchnghiệp vụ được chi tiết hóa và các luật trừu tượng hóa Mục đích của nó là cungcấp tính năng để bảo đảm tính nhất quán trong tổ chức, tính sẵn sàng cao củadịch vụ, bảo mật các dịch vụ và thông tin không công khai, kết hợp nhiều dịch
vụ như là một phần của ứng dụng phức hợp
Sơ đồ trong hình dưới đây chỉ ra các hướng nghiên cứu SOC
Hình 2: Các hướng nghiên cứu SOC
Trang 8Về cơ bản, lộ trình nghiên cứu được chỉ ra trên 3 mức:
- Thiết lập dịch vụ (service foundation): là mức thấp nhất sử dụng các servicemiddleware cơ bản và thành phần kiến trúc (architectural constructs andfunctionality) để mô tả, xuất bản, và khám phá (discover) dịch vụ
- Tích hợp dịch vụ (service composition): tích hợp nhiều service nhỏ riêng lẻ đểxây dựng service phức hợp Các service phức hợp này lại có thể được sử dụngnhư một ứng dụng hoàn thiện, hay góp phần xây dựng nên các service phức hợpmức cao hơn
- Quản lý và giám sát dịch vụ (service management and monitoring): quản lý vàgiám sát ứng dụng SOA trong suốt vòng đời của nó, bao gồm từ cài đặt, cấuhình, cho tới thu thập thông tin hoạt động và tối ưu hóa dịch vụ
- Thiết kế và phát triển dịch vụ (service-oriented engineering): quá trình thiết kế
và phát triển ứng dụng SOC
2.2 Các hướng cụ thể trên lộ trình nghiên cứu mô hình tính toán hướng dịch vụ
2.2.1 Thiết lập dịch vụ
Lớp dưới cùng của mô hình phát triển ứng dụng SOC là bước thiết lập dịch
vụ (service foundation) nhằm cung cấp hạ tầng middleware hướng dịch vụ cókhả năng kết nối các thành phần và hệ thống không đồng nhất, đồng thời chophép cung cấp dịch vụ trên nhiều kênh truy nhập như thiết bị di động, thiết bịcầm tay, qua mạng Internet, mạng di động, và các hạ tầng mạng khác
Kết quả nghiên cứu hiện tại
Hạ tầng cho Web service và SOC được xây dựng dựa trên khái niệmEnterprise Service Bus (ESB) với hai ý tưởng chính: kết nối lỏng lẻo (looselycouple) các hệ thống tham gia cung cấp dịch vụ, và phân rã hệ thống thành cácthành phần đơn lập dễ quản trị
Trang 9Hình 3: Enterprise Service Bus kết nối nhiều ứng dụng và công nghệ khác nhau
ESB là một mạng trao đổi thông điệp (message backbone) được thiết kế dựatrên các chuẩn mở nhằm cho phép cài đặt, triển khai, và quản trị các hệ thống
SOA Một mô hình khá thích hợp và thành công cho ESB là mô hình container Với mô hình này, việc cài đặt dịch vụ được thực hiện dựa trên các container
đảm nhận:
- Tạo kết nối và quy cách trao đổi thông điệp (Message Exchange Patterns)
- Hỗ trợ quản lý giao dịch, bảo mật, đo lường hiệu năng
- Hỗ trợ cấu hình động
- Giám sát hoạt động và trạng thái bên trong của hệ thống
- Thực hiện chuyển đổi giao thức và dữ liệu
- Hỗ trợ khai phá dịch vụ
Các thách thức và vấn đề cần nghiên cứu
o Cấu hình động cho kiến trúc thực thi (run-time architecture)
o Khả năng kết nối động
o Định tuyến dựa trên chủ đề và nội dung
o Giải pháp bảo mật end-to-end
o Hỗ trợ tích hợp tiến trình, thông tin, và ứng dụng
o Cơ chế khai phá dịch vụ
2.2.2 Tích hợp dịch vụ
Lớp tích hợp dịch vụ là lớp đảm nhận việc tích hợp nhiều dịch vụ riêng rẽthành một dịch vụ phức hợp Thành phần thực hiện công việc này gọi là bộ tíchhợp dịch vụ Một mặt nó hấp thụ, sử dụng các dịch vụ đã được phát triển vàcung cấp sẵn Mặt khác, nó cũng trở thành thành phần cung cấp dịch vụ bằngcách xuất bản mô tả dịch vụ của các dịch vụ phức hợp nó tạo ra
Trang 10Kết quả nghiên cứu hiện tại
Hiện đã có một số dự án xây dựng đặc tả cho việc mô tả tiến trình nghiệp vụ,nhằm định nghĩa và quản lý các tiến trình và tương tác nghiệp vụ, còn được gọi
là “orchestration” Orchestration mô tả các thức các dịch vụ tương tác với nhau
ở mức thông điệp và thứ tự thực hiện tương tác dưới các góc nhìn khác nhau
Các thách thức và vấn đề cần nghiên cứu
- Phân tích khả năng có thể phối hợp của các service
- Khả năng tự phối hợp các dịch vụ
- Phối hợp dịch vụ có quan tâm tới QoS
- Phối hợp dịch vụ hướng nghiệp vụ
- Phối hợp tài nguyên, nhân lực, và tổ chức dưới dạng dịch vụ
2.2.3 Quản lý và giám sát dịch vụ
Quản lý các dịch vụ được liên kết lỏng lẻo với nhau trong SOA là một yêucầu rất quan trọng Quá trình phát triển các dịch vụ phức hợp yêu cầu cho phéptheo dõi “sức khỏe” của các dịch vụ thành phần, tránh trường hợp một thànhphần bị lối hoặc thay đổi dẫn đến gián đoạn hoạt động của một loạt dịch vụ liênquan
Quản lý và giám sát dịch vụ SOA bao gồm một loạt hoạt động như cài đặt vàcấu hình dịch vụ, cho tới thu thập các tham số đánh giá hiệu năng và tối ưu hóa
hệ thống để đảm bảo cung cấp dịch vụ với tốc độ đáp ứng yêu cầu
Kết quả nghiên cứu hiện tại
Hình 4 mô tả một mô hình kiến trúc quản lý, kết hợp quản lý dịch vụ với mộtkênh ứng dụng theo SOA Kiến trúc này cung cấp kết nối liên tục giữa kênh ứngdụng Web service và chuyển hướng nó tới kênh quản lý Ví dụ về ứng dụngquản lý bao gồm quản lý tính sẵn sàng và hiệu năng, quản lý cấu hình, lập kếhoạch dung lượng, quản lý job, phát hiện lỗi
Trang 11Hình 4: Kiến trúc quản lý Web service
Trên hình 4, các tài nguyên có thể quản lý bao gồm phần mềm và phần cứng,như phần mềm ứng dụng, thiết bị phần cứng, server,… cài đặt các giao diệnquản lý và được mô tả bằng đặc tả Web Service Distributed Management(WSDM)
đã định mà không làm gián đoạn dịch vụ
- Khả năng tự tối ưu hóa: dịch vụ có thể tự giám sát và tối ưu hóa việc sửdụng tài nguyên hệ thống
- Khả năng tự bảo vệ: dịch vụ có thể tự phát hiện, tìm kiếm, và bảo vệ trướccác nguy cơ tiềm tàng
2.2.4 Thiết kế và phát triển dịch vụ
Phương pháp luận thiết kế dịch vụ SOA là rất cần thiết để thiết kế ứng dụngSOA phù hợp với nghiệp vụ của doanh nghiệp
Nghiên cứu hiện tại
- Một cách tiếp cận trực quan là porting các component đã có bằng cách sửdụng wrapper để tạo ra SOA component
- Phát triển hướng thành phần (component-based development)
Trang 12Các thách thức và vấn đề cần nghiên cứu
- Thách thức
o nguyên lý thiết kế ứng dụng hướng dịch vụ
o các phương pháp gap analysis linh hoạt
o cơ chế quản lý (governance) dịch vụ
o nguyên lý thiết kế cho thích ứng hóa dịch vụ
3 Xây dựng ứng dụng mô hình tính toán hướng dịch vụ
3.1 Vấn đề khi xây dựng mô hình tính toán hướng dịch vụ
3.1.1 Các yếu tố khi thiết kế SOC
Có sáu nguyên tắc thiết kế quan trọng khi hệ thống hướng dịch vụ được xâydựng và triển khai
- Vai trò: Mỗi dịch vụ phải tương ứng với một vai trò thương mại và phảigói gọn các khả năng của vai trò đó
- Khả năng: Các chức năng được hỗ trợ bởi các dịch vụ phải tương ứng vớikhả năng của các vai trò mà nó thực hiện
- Tương tác: nó là tương tác giữa dịch vụ và người sử dụng, tương tácthẳng có tác dụng:
+ Tránh các khớp nối không cần thiết để dễ dàng phát triển một trong cácbên mà không ảnh hưởng đến bên kia
+ Cải thiện hiệu suất của toàn hệ thống
- Cấu hình lại: khi thiết kế phải chú ý đến việc phân bổ tài nguyên để khi
di dời 1 dịch vụ thì không phải cấu hình lại hệ thống đảm bảo tính trongsuốt về vị trí
- Chú ý: Dịch vụ được triển khai trong mô trường mở nên phải đối phó vớinhiều mối đe dọa Điều này đỏi hỏi khi thiết kế SOC phải chú ý đến vấn đề
an toàn Để thực hiện được điều đó cần phải:
+ Sử dụng kỹ thuật của phần mềm như kiểm tra đầu vào trước khi bắt đầu
xử lý hay xác thực hoặc ủy quyền
+ Giữa các bên tương tác phải có niềm tin lẫn nhau