Ứng dụng BPEL trong việc kết hợp và thay thế
dịch vụ web
Hoàng Huy Tùng
Trường Đại học Công nghệ
Luận văn Thạc sĩ ngành: Công nghệ phần mềm; Mã số: 60 48 10
Người hướng dẫn: TS. Võ Đình Hiếu
Năm bảo vệ: 2012
Abstract: Tổng quan về dịch vụ Web: giới thiệu về XML, các khái niệm cơ bản về
dịch vụ Web bao gồm các chuẩn và các giao thức như SOAP, WSDL Trình bày ngôn
ngữ BPEL: nghiên cứu về ngôn ngữ định nghĩa hành vi các tiến trình nghiệp vụ WS-
BPEL. Giải thích các khái niệm cơ bản, cấu trúc của một tiến trình WS-BPEL và các
thành phần của ngôn ngữ. Tìm hiểu hệ thống đại lý phân phối: tập trung xây dựng hệ
thống đại lý phân phối kết hợp và thay thế các dịch vụ Web bằng cách định nghĩa và
xử lý các tiến trình nghiệp vụ thông qua ngôn ngữ WS-BPEL.
Keywords: Công nghệ thông tin; Công nghệ phần mềm; Dịch vụ Web
Content
MỞ ĐẦU
Lý do chọn đề tài
Ngày nay, cùng với sự phát triển không ngừng của khoa học kỹ thuật, hàng loạt công nghệ
mới ra đời phục vụ cho nhu cầu về cuộc sống của con người. Sự tiện lợi của Internet đã làm
cho các dịch vụ trực tuyến phát triển mạnh (dịch vụ web), có quá nhiều các nhà cung cấp,
cung cấp các dịch vụ khách hàng. Tuy nhiên việc tạo ra các dịch vụ web kết hợp cung cấp cho
khách hàng là khó khăn đặc biệt là việc kết hợp giữa các dịch vụ của các nhà cung cấp khác
nhau.
Độ ổn định của mỗi dịch vụ là không cao, trong khi có nhiều dịch vụ giống nhau được cung
cấp bởi nhiều nhà cung cấp dịch vụ và chất lượng của mỗi dịch vụ là không giống nhau, nẩy
sinh việc thay thế các nhà cung cấp dịch vụ khi các nhà cung cấp ngừng cung cấp các dịch vụ
hiện tại.
Đã có nhiều nhà cung cấp, cung cấp các dịch vụ web kết hợp tuy nhiên việc tạo ra các dịch vụ
như vậy là khó khăn đòi hỏi sự trao đổi giữa các nhà cung cấp.
Mục đích nghiên cứu
Đề tài tập trung nghiên cứu tổng quan về dịch vụ web, ngôn ngữ định nghĩa hành vi
của 1 tiến trình nghiệp vụ WS- BPEL, qua đó tác giả đã xây dựng hệ thống đại lý phân phối,
2
thực hiện trao đổi thông tin với các dịch vụ web của các nhà cung cấp dịch vụ cụ thể là kết
hợp và thay thế các dịch vụ web đó.
Ý nghĩa khoa học và thực tiễn của đề tài
Khi đề cập đến việc phát triển một dịch vụ Web(Web service), người ta thường
nghĩ đến việc phát triển từ các ngôn ngữ lập trình như Java, C#,…Tuy nhiên,
có một cách phát triển dịch vụ Web khác đó là dùng một ngôn ngữ định nghĩa
các công việc để kết hợp các dịch vụ Web có sẵn, ví dụ như ngôn thực thi tiến
trình nghiệp vụ (BPEL). Trong trường hợp này, dịch vụ Web tạo ra được gọi là
dịch vụ Web kết hợp (composite Web service), dịch vụ Web được dùng để tạo
ra dịch vụ Web kết hợp gọi là dịch vụ thành phần (composed service hay là
element service).
Kết quả nghiên cứu của đề tài luận văn này có thể được áp dụng cho các công
ty cung cấp các dịch vụ khách hàng.
Kết cấu của luận văn
Ngoài phần mở đầu, danh mục ký hiệu viết tắt, mục lục, danh mục tài liệu tham khảo,
phụ lục và phần kết luận, nội dung của luận văn gồm ba chương.
Chương 1: Tổng quan về Web Service.
Chương này giới thiệu về XML, các khái niệm cơ bản về dịch vụ web bao gồm các
chuẩn và các giao thức như SOAP, WSDL
Chương 2: Ngôn ngữ Bpel.
Trong chương này tập trung nghiên cứu về ngôn ngữ định nghĩa và xử lý các tiến trình
nghiệp vụ WS- BPEL . Giải thích các khái niệm cơ bản, các thành phần của ngôn ngữ.
Chương 3: Hệ thống đại lý phân phối
Trong chương này tập trung xây dựng hệ thống đại lý phân phối kết hợp và thay thế
các dịch vụ web bằng cách định nghĩa và xử lý các tiến trình nghiệp vụ thông qua ngôn ngữ
BPEL.
Chương 1: Tổng quan về Web Service
Mục đích của dịch vụ web là nỗ lực để đạt được khả năng tương tác giữa các ứng dụng bằng
việc sử dụng các chuẩn web. Dịch vụ web sử dụng 1 mô hình tích hợp lỏng để cho phép tích
hợp linh hoạt các hệ thống không đồng nhất trong đa dạng các lĩnh vực bao gồm kinh doanh
với người tiêu dùng, kinh doanh với kinh doanh và tích hợp ứng dụng doanh nghiệp.
1. XML
3
Theo W3C: XML (Extensible Markup Language) là 1 ngôn ngữ đơn giản, linh hoạt trong việc
định dạng văn bản, có nguồn gốc từ SGML (ISO 8879). Ban đầu được thiết kế để đáp ứng
những thách thức của sản xuất điện tử quy mô lớn, XML cũng đóng một vai trò ngày càng
quan trọng trong việc trao đổi đa dạng dữ liệu trên WEB.
1.1. Nguồn gốc và mục đích
Theo W3C: XML được phát triển bởi 1 nhóm làm việc XML được hình thành dưới sự bảo trợ
của W3C (World Wide Web Consortium) vào năm 1996 và được chủ trì bởi Jon Bosak của
Microsystems.
Mục đích của XML là:
- XML sẽ được sử dụng đơn giản thông qua Internet.
- XML sẽ hỗ trợ đa dạng các ứng dụng.
- XML sẽ tương thích với SGML.
- Nó sẽ dễ dàng để viết các chương trình xử lý tài liệu XML.
- Số lượng các chức năng tùy chọn trong XML được giữ ở mức tối thiểu, lý tưởng là
không có chức năng nào.
- Các tài liệu XML phải dễ đọc và hợp lý rõ ràng.
- Thiết kế XML phải được chuẩn bị nhanh chóng.
- Tài liệu XML sẽ dễ dàng được tạo ra.
1.2. Tài liệu XML
1 đối tượng dữ liệu là 1 tài liệu XML (XML Documents) nếu nó được hình thành, như được
định nghĩa trong đặc tả này. Ngoài ra, các tài liệu XML là hợp lệ nếu nó đáp ứng các ràng
buộc nhất định.
Mỗi tài liệu XML có cả cấu trúc logic và vật lý. Về vật lý, tài liệu bao gồm các đơn vị gọi là
thực thể. 1 thực thể có thể tham chiếu đến các thực thể khác trong tài liệu. Tài liệu bắt đầu
bằng “root” hoặc là 1 thực thể tài liệu (document entity). Về logic, tài liệu bao gồm các khai
báo, các thành phần, các chú thích, các ký tự tham chiếu và chỉ dẫn xử lý, tất cả các cái đó chỉ
ra trong tài liệu bằng cách đánh dấu rõ ràng. Cấu trúc logic và vật lý phải được tổ chức đúng
cách, giống như mô tả trong về hình thức của tài liệu XML (Well – Formed XML) bên dưới.
1.3. Cấu trúc Logic
Mỗi tài liệu XML chứa đựng 1 hay nhiều thành phần (element), ranh giới của các thành phần
đó được phân tách bới bắt đầu và kết thúc các thẻ (start and end Tags) hay là các thành phần
trống (empty – element tag). Mỗi thành phần có 1 kiểu, xác định bởi tên, 1 vài cái gọi là
“generic identifier” và có lẽ có 1 bộ các thuộc tính cụ thể. Mỗi thuộc tính xác định tên và giá
trị
1.4. Cấu trúc vật lý
1 tài liệu XML có thể chứa đựng 1 hay nhiều các đơn vị lưu trữ gọi là các thực thể (entities),
tất cả đều có nội dung và tất cả (ngoại trừ các thực thể tài liệu và tập con DTD bên ngoài)
được xác định bởi tên thực thể. Mỗi tài liệu XML có duy nhất 1 thực thể gọi là thực thể tài
liêu (document entity), phục vụ như là điểm khởi đầu cho bộ xử lý XMl và có thể chứa đựng
toàn bộ tài liệu.
2. Dịch vụ Web
Theo W3C định nghĩa: 1 dịch vụ web (Web Service) là một hệ thống phần mềm được thiết kế
để hỗ trợ tương tác giữa máy với máy thông qua mạng. Nó là một giao diện được mô tả trong
4
1 định dạng mà máy có thể hiểu được (cụ thể là wsdl). Các hệ thống khác nhau tương tác với
dịch vụ web trong một cách thức theo quy định bằng các mô tả sử dụng thông báo Soap,
thường truyền tải bằng cách sử dụng HTTP với 1 định dạng XML kết hợp với các chuẩn web
khác.
2.1. SOAP
Theo W3C: Soap (Simple Object Access Protocol) cung cấp một cơ chế đơn giản và gọn nhẹ
để trao đổi thông tin giữa các điểm trong môi trường phân cấp, phân tán sử dụng XML có cấu
trúc và kiểu. Soap không phải xác định bất kỳ ngữ nghĩa ứng dụng nào như là mô hình lập
trình hay ngữ nghĩa thực hiện cụ thể, nó định nghĩa 1 cơ chế đơn giản cho việc thể hiện ngữ
nghĩa của ứng dụng bằng cách cung cấp mô hình gói các module và cơ chế mã hóa cho việc
mã hóa dữ liệu trong các module. Điều đó cho phép Soap sử dụng trong đa dạng các hệ thống
khác nhau từ hệ thống nhắn tin tới RPC
2.2. WSDL
Theo W3C: wsdl là định dạng XML để mô tả dịch vụ mạng như là 1 tập hợp các thiết bị đầu
cuối hoạt động dựa trên các thông báo có chứa thông tin hướng tài liệu hoặc là hướng thủ tục.
Phương thức và thông báo được mô tả trừu tượng, bị ràng buộc vào 1 giao thức mạng cụ thể
và định dạng thông báo để định nghĩa 1 thiết bị đầu cuối. Các điểm cuối liên quan cụ thể được
kết hợp thành 1 điểm cuối trừu tượng (dịch vụ). WSDL được mở rộng để cho phép mô tả các
thiết bị đầu cuối và các thông báo của nó bất kể thông báo có định dạng gì hay giao thức
mạng nào được sử dụng để giao tiếp.
2.3. UDDI
Theo OASIS UDDI: Universal description, discovery and integration định nghĩa một đăng ký
dịch vụ cho dịch vụ web và các dịch vụ điện tử khác và các dịch vụ không phải điện tử. Một
đăng ký dịch vụ UDDI là 1 dịch vụ web quản lý các thông tin về nhà cung cấp dịch vụ, thực
thi dịch vụ và dữ liệu dịch vụ. Nhà cung cấp dịch vụ có thể sử dụng UDDI để quảng cáo các
dịch vụ mà họ cung cấp. Người sử dụng dịch vụ có thể sử dụng UDDI để khám phá các dịch
vụ phù hợp với yêu cầu của họ và để có được các dữ liệu thô cần thiết.
Theo W3c:
UDDI: Universal description, discovery and integration là 1 thư mục dịch vụ mà các nơi các
doạnh nghiệp có thể đăng ký và tìm kiếm các dịch vụ web.
UDDI là 1 khung nền tảng độc lập để mô tả dịch vụ, phát hiện các doanh nghiệp và tích hợp
các dịch vụ kinh doanh bằng cách sử dụng Internet.
Chương 2: Ngôn ngữ BPEL
1. Giới thiệu
Theo OASIS: Web Service Business Process Execution Language (viết tắt là WS-BPEL hay
được gọi là BPEL) là một ngôn ngữ xác định hành vi của tiến trình nghiệp vụ dựa trên dịch vụ
web. Tiến trình trong WS-Bpel xử lý các chức năng xuất và nhập bằng cách sử dụng độc
quyển dịch vụ web.
Tiến trình nghiệp vụ có thể được mô tả bằng 2 cách: các tiến trình nghiệp vụ thực thi
(Executable business processes) trong mô hình hành vi thực tế của 1 người tham gia trong 1
tương tác nghiệp vụ. 1 quá trình trừu tượng (Abstract Process) có thể ẩn một số các yêu cầu
chi tiết liên quan đến vận hành. Quá trình trừu tượng phục vụ vai trò mô tả, với nhiều hơn một
trường hợp có thể sử dụng, bao gồm cả hành vi quan sát và quá trình mẫu. WS-Bpel có nghĩa
là sử dụng để mô hình hành vị của cả tiến trình thực thi và trừu tượng.
5
WS-Bpel cung cấp 1 ngôn ngữ cho việc đặc tả tiến trình nghiệp vụ thực thi và trừu tượng.
Bằng cách đó, nó mở rộng mô hình tương tác dịch vụ web và cho phép hỗ trợ các giao dịch
kinh doanh. WS-Bpel định nghĩa 1 mô hình tích hợp tương thích cho phép mở rộng các tiến
trình 1 cách tự động ở cả trong nội bộ công ty và trong không gian kinh doanh với kinh
doanh.
2. Các khái niệm cơ bản
2.1. Cấu trúc của 1 tiến trình Bpel
1 tiến trình bpel chứa đựng các mối quan hệ với các đối tác bên ngoài, khai báo các xử lý dữ
liệu, xử lý các mục đích khác nhau và quan trọng nhất, các hành động được thực hiện. Khai
báo tên và namespace là bắt buộc
2.2. Partner link type
Đặc tả mối liên hệ giữa 2 dịch vụ web bằng cách định nghĩa vai trò của mỗi dịch vụ trong mối
liên hệ và quy định cụ thể porttype cung cấp cho mỗi dịch vụ bằng cách nhận các thông báo
bên trong mối liên hệ cụ thể. Mỗi vai trò đặc tả chính xác 1 wsdl porttype.
2.3. Porttype
Định nghĩa trừu tượng các chức năng bằng cách trừu tượng các thông báo
2.4. Port
Cung cấp thực tế thông tin truy cập bao gồm giao tiếp giữa các dịch vụ cuối
2.5. Partner link
Tương tác giữa các dịch vụ với tiến trình nghiệp vụ được mô hình hóa giống như 1 partner
links trong WS-Bpel. Mỗi partner link được cụ thể hóa bằng 1 partnerlink type. Nhiều hơn 1
partner link có thể được cụ thể hóa bằng cùng 1 partnerlink type.
2.6. Endpoint References
Cơ bản việc sử dụng Endpoint Reference là để phục vụ như là cơ chế giao tiếp động của các
cổng dữ liệu cụ thể cho các dịch vụ. Một Endpoint Reference tạo sự sẵn sàng trong WS –
BPEL để có thể tự động lựa chọn nhà cung cấp dịch vụ cho 1 loại hình cụ thể của dịch vụ và
gọi đến các sự vận hành của chúng. WS – BPEL cung cấp 1 cơ chế chung cho sự tương đồn
giữa các thông báo với các thể hiện an toàn của 1 dịch vụ thế cho nên Endpoint Reference
mang đến các cổng thông tin trung lập thông thường là đủ. Tuy nhiên, nói chung là cần thiết
có thêm các thẻ nhận dạng trong chính các Endpoint Reference.
2.7. Correlation
Correlation là một cơ chế theo dõi đa tiến trình, xuyên suốt quá trình trao đổi thông báo mà
thường diễn ra giưa một tiến trình Bpel và các dịch vụ đối tác. Cơ chế correlation giúp định
tuyến các thông báo đến những tiến trình thích hợp.
Một thông báo trong 1 cuộc hội thoại được kết nối với 1 giá trị tổng hợp của 1 hoặc nhiều các
thuộc tính được định nghĩa trong tệp WSDL. Một thuộc tính là 1 trường bên trong 1 thông
báo được xác định bởi 1 truy vấn. Các truy vấn được quy định bởi 1 cấu trúc đặc biệt gọi là
các thuộc tính bí danh (property aliases)
Tập các Correlation được sử dụng hỗ trợ các trạng thái hợp tác giữa các dịch vụ web dựa theo
chuẩn thực thi độc lập. Tập các Correlation dựa trên các thẻ dữ liệu Correlation được lưu trữ
trong vỏ của các thông báo, tiêu đề hay các tài liệu nghiệp vụ tương tự. Khai báo Correlation
dựa trên sự khai báo các thuộc tính của thông báo.
2.8. Các hành động cơ bản
6
Các hành động cơ bản thực hiện tiến trình logic. Các hoạt động được chia thành 2 lớp: cơ bản
và cấu trúc. Hoạt động cơ bản là những mô tả các bước thành phần của 1 tiến trình hành vi.
Hoạt động cấu trúc mã hóa điều khiển luồng logic.
2.8.1. Invoke
Invoke sử dụng để gọi các dịch vụ web được cung cấp bởi các nhà cung cấp dịch vụ. Điển
hình sử dụng để gọi 1 hoạt động cơ bản trên dịch vụ. Hành động invoke có thể kèm theo các
hành động khác như xử lý lỗi.
2.8.2. Receive
Hành động Receive xác định partnerLink có chứa myRole sử dụng để nhận thông báo.
2.8.3. Reply
Hành động Reply được sử dụng để gửi phản hồi đến một yêu cầu được chấp nhận trước đó
thông qua hành động gửi tin nhắn đến giống như hành động Receive. Những phản hồi này chỉ
có ý nghĩa cho các tương tác yêu cầu và phản hồi. Một cách khác “phản hồi” có thể được gửi
bằng cách gọi hoạt động tương ứng của partnerLink. Hành động Reply có thể chỉ ra thuộc tính
của biến tham chiếu đến biến chứa dữ liệu thông báo để gửi đi.
2.8.4. Assign
Hành động Assign được sử dụng để sao chép dữ liệu từ một biến đến một biến khác, cũng
như để xây dựng và chèn dữ liệu mới bằng cách sử dụng các biểu thức. Việc sử dụng các biểu
thức chủ yếu được thúc đẩy bởi sự cần thiết phải thực hiện các tính toán đơn giản (chẳng hạn
như tăng số thự tự). Biểu thức hoạt động dựa trên các biến, thuộc tính, các hằng số để tạo ra
một giá trị mới. Hành động Assign cũng có thể sử dụng để sao chép endpoint references từ
partnerLinks. Nó cũng có thể bao gồm các thao tác dữ liệu vận hành mở rộng định nghĩa
giống như các thành phần mở rộng dưới các không gian tên (namespace) khác từ không gian
tên của WS-Bpel (WS-Bpel namespace)
2.9. Các hành động cấu trúc
Hành động có cấu trúc quy định thứ tự trong tập hợp các hành động được thực thi. Chúng mô
tả làm thế nào một tiến trình nghiệp vụ được tạo ra; bằng cách soạn các hành động cơ bản
thực hiện thành cấu trúc thể hiện các mô hình điều khiển, xử lý lỗi và các sự kiện bên ngoài,
phối hợp trao đổi thông báo giữa các tiến trình tham gia trong một giao thức kinh doanh.
2.9.1. Sequence
Hành động Sequence chứa đựng 1 hoặc nhiều hành động thực hiện tuần tự, theo thứ tự xuất
hiện bên trong thành phần <Sequence>. Hành động Sequence hoàn thành khi hành động cuối
cùng trong Sequence hoàn thành.
2.9.2. If
Hành động If cung cấp điều kiện cho hành vi. Hành động này bao gồm một danh sách có thứ
tự của 1 hoặc nhiều các điều kiện nhánh được định bởi thành phần If và tùy chọn ElseIf, theo
sau là 1 tùy chọn Else. Các nhánh If và ElseIf được xem xét theo thứ tự mà chúng xuất hiện.
2.9.3. While
Hành động While cung cấp các thực hiện lặp đi lặp lại của các hành động bên trong nó. Các
hành động bên trong được thực hiện miễn là điều kiện để đánh giá là đúng vào lúc bắt đầu của
mỗi lần lặp.
2.9.4. Repeat Until
7
Hành động RepeatUntil cung cấp cho việc thực hiện lặp đi lặp lại của các hành động bên
trong nó. Các hành động bên trong được thực hiện cho đến khi điều kiện trở thành đúng. Điều
kiện được kiểm tra sau mỗi lần thực hiện trong vòng lặp. Ngược lại với hành động While,
RepeatUltil thực hiện lặp các hành động trong nó ít nhất 1 lần.
2.9.5. Pick
Hành động Pick đợi sự xuất hiện chính xác của 1 sự kiện từ 1 tập hợp các sự kiện, sau đó thực
hiện hành động liên quan với sự kiện đó. Sau khi sự kiện được lựa chọn, các sự kiện khác
không được chấp nhận bởi hành động Pick.
Chương 3 : Hệ thống Đại lý phân phối
1. Mô tả bài toán
Việc cung cấp các dịch vụ khách hàng là cần thiết trong xã hội hiện nay. Phần đông dân số sử
dụng điện thoại di động đê trao đổi, liên lạc. Ngoài ra nhu cầu về các dịch vụ, tiện ích trên
điện thoại di động ngày càng cao như: tải trò chơi về di động, nhận kết quả sổ xố hàng ngày,
kiểm tra tài khoản ngân hàng… Đã có rất nhiều dịch vụ và tiện ích khác nhau được cung cấp
bởi các nhà cung cấp dịch vụ khác nhau cung cấp cho khách hàng thông qua điện thoại di
động của họ. Tuy nhiên để cung cấp được cho khách hàng các dịch vụ tiện ích đáp ứng được
phần lớn nhu cầu của họ là rất khó. Nó đòi hỏi rất nhiều yếu tố trong đó có việc kết hợp các
dịch vụ của các nhà cung cấp khác nhau. Ví dụ như: ngân hàng có thể cung cấp dịch vụ kiểm
tra tài khoản ngân hàng, chuyển khoản trên di động. Nhà mạng có thể cung cấp dịch vụ tra
cước viễn thông, thanh toán cước viễn thông qua chuyển khoản. Nhưng nếu khách hàng muốn
thanh toán cước, họ có thể có nhiều cách thực hiện, thứ nhất: truy vấn cước viễn thông của họ,
tìm tài khoản ngân hàng của nhà mạng và chuyển khoản số tiền cần thanh toán, phương án
này tương đối lằng nhằng, khách hàng chỉ muốn 1 thao tác duy nhất để có thể thanh toán cước
trên điện thoai của họ là 1 vấn đề. Nó đòi hỏi phải có sự kết hợp giữa ngân hàng và nhà mạng.
Có thể là khách hàng sẽ nhắn 1 tin theo cú pháp nào đó để thực hiện việc thanh toán cước viễn
thông của họ. Nhà mạng sẽ có nhiệm vụ lấy ra số tiền mà khách hàng phải thanh toán và cung
cấp kết quả cho ngân hàng, ngân hàng có nhiệm vụ kiểm tra tài khoản khách hàn xem có đủ
số tiền cần thiết hay không nếu hợp lệ chuyển khoản số tiền đó sang tài khoản của nhà mạng.
Như vậy luôn phải có sự liên kết giữa các nhà cung cấp dịch vụ với nhau thì mới có thể đáp
ứng được các dịch vụ tiện ích nhất cho khách hàng. Sự liên kết giữa các nhà cung cấp dịch vụ
không thể lúc nào cũng có thể nhanh chóng hay ngay lập tức, nếu có sự thay đổi của 1 bên thì
phải có sự trao đổi giữa 2 bên để đi đến thống nhất.
Ta có thể có 1 giải pháp tốt hơn cho việc đó. Ví dụ trong cuộc sống ta có thể có nhu cầu về
các mặt hàng gia dụng lương thực, thực phẩm, ta có thể đến siêu thị để mua các mặt hàng này.
Siêu thị như 1 đại lý hay 1 nhà phân phối sản phẩm, họ nhận hay mua các mặt hàng này từ các
nhà cung cấp khác nhau để cung cấp cho khách hàng. Trên điện thoại di động cũng vậy, ta
cũng có thể có 1 đại lý phân phối các dịch vụ khách hàng như vậy. Việc làm đó giải quyết
được 2 vấn đề:
- Thứ nhất nó có thể đáp ứng được rất nhiều các dịch vụ được cung cấp bởi các nhà cung cấp
dịch vụ khác nhau.
- Thứ hai nó sẽ là cầu nối liên kết các dịch vụ mà không cần thông qua sự liên kết giữa các
nhà cung cấp dịch vụ.
Ví dụ ngân hàng có thể cung cấp dịch vụ chuyển khoản trên tài khoản khách hàng sử dụng
điện thoại di động, nhà mạng cung cấp dịch vụ tra cứu cước cần thanh toán, thanh toán cước
qua hình thức chuyển khoản trên di động. Lúc này đại lý phân phối phải trước hết phải cung
cấp các dịch vụ đơn lẻ như vậy, ngoài ra nó còn cung cấp các dịch vụ tổng hợp, như là: khách
8
hàng có thể thanh toán cước bằng cách soạn 1 tin nhắn theo cú pháp quy định, đại lý phân
phối có nhiệm vụ gọi đến dịch vụ truy vấn cước của nhà mạng để xác định cước cần thanh
toán của khách hàng. Với số tiền xác định được đại lý phân phối tiếp tục gọi đến dịch vụ
chuyển khoản của ngân hàng để thực hiện chuyển khoản số tiền thanh toán cho nhà mạng. Kết
quả của việc chuyển khoản sẽ được gửi vào điện thoại của khách hàng từ dịch vụ của ngân
hàng. Kết quả của việc thanh toán cước viễn thông cũng được gửi vào điện thoại của khách
hàng từ dịch vụ của nhà mạng. Việc khách hàng sử dụng dịch vụ thanh toán cước không cần
đến sự liên kết của các nhà cung cấp dịch vụ, các bên có sự thay đổi cũng không cần thông
qua bên còn lại trước khi đưa vào áp dụng.
Trong thực tế có nhiều, rất nhiều các dịch vụ như vậy nên việc xây dựng 1 đại lý phân phối
các dịch vụ trên điện thoại di động (Agent) là cần thiết và có thể đáp ứng được nhu cầu của
người dân trong xã hội hiện nay.
2. Tổng quan
2.1. Mục đích của phần mềm
Hệ thống Agent là 1 framework cho phép kết hợp các web service sử dụng ngôn ngữ Bpel.
Cho phép các đối tác khác nhau cung cấp các dịch vụ khác nhau cho khách hàng thông qua
web service. Có thể sử dụng kết quả sau khi gọi web service này cung cấp đầu vào và thực
hiện gọi tiếp đến 1 hay nhiều web service khác để lấy ra kết quả cung cấp cho khách hàng.
Đơn giản hóa việc trao đổi thông tin giữa các web service của các đối tác khác nhau thông
qua việc sử dụng Bpel.
Hệ thống giúp điều phối các yêu cầu về dịch vụ giá trị gia tăng trên điện thoại của khách hàng
đến các nhà cung cấp dịch vụ khác nhau.
2.2. Phạm vi bài toàn
Nhằm áp dụng cho các nhà cung cấp dịch vụ trên điện thoại điều phối tự động các yêu cầu về
dịch vụ giá trị gia tăng trên điện thoại di động của khách hàng, sau đó thực hiện nhận kết quả
trả về và gửi lại cho khách hàng thông qua hệ thống Gateway.
- Khách hàng (Customer): người sử dụng dịch vụ giá trị gia tăng trên điện thoại di động.
- Người dùng (User): người sử dụng hệ thống, tiếp nhận các dịch vụ của khách hàng, định
nghĩa các kịch bản sử dụng các dịch vụ đó.
2.3. Quy trình của hệ thống
Agents
Services
ServiceN
Customer
Agent2
AgentN
Gateway
Service1
Service3
Agent1
Service2
Hình 3.1 Biểu đồ Use Case quy trình nghiệp vụ của hệ thống
- Khách hàng (Customer) gửi tin nhắn đến hệ thống
- Gateway là 1 hệ thống kết nối với nhà mạng để nhận tin nhắn từ khách hàng và lựa
chọn Agent để gửi yêu cầu của khách hàng. Nếu tin nhắn của khách hàng không hợp
lệ thì gửi lại kết quả luôn cho khách hàng.
9
- Agent là 1 Composite webservice: nhận yêu cầu của khách hàng từ gateway và lựa
chọn service xử lý để gửi yêu cầu của khách hàng, có thể gọi 1 hoặc nhiều service.
- Service là các dịch vụ mà đối tác cung cấp: xử lý yêu cầu của khách hàng, sau đó trả
lại kết quả cho agent.
- Agent nhận được kết quả từ service gửi lại có thể tiếp tục sử dụng kết quả để gọi đến
service khác nếu cần. Sau khi nhận được kết quả cuối cùng từ service thì gửi lại kết
quả cho gateway.
- Gateway nhận được kết quả từ agent sẽ trả lại kết quả cho khách hàng.
2.4. Các chức năng chính
Agent
Gateway
Customer
Admin
ManageAgent
CreateServiceConnectAgent
ManageService
User
ManageKW_SC
Hình 3.2 Biểu đồ Use Case tổng quan của hệ thống đại lý phân phối
Trong biểu đồ use case tổng quan trên hệ thống có 4 use case chính sẽ được trình bày chi tiết
trong các phần tiếp theo:
- ManageAgent: quản lý hoạt động của các Agent bao gồm các trạng thái của hệ thống,
theo dõi lưu lượng, cho phép hoạt động hay ngừng.
- CreateServiceConnectAgent: tạo các kết nối từ các service của nhà cung cấp đến hệ
thống Agent.
- ManageService: quản lý các service của các nhà cung cấp dịch vụ cung cấp đăng ký
sử dụng hệ thống.
- ManageKW_SC: quản lý các từ khóa và các đầu số phục vụ cho việc định nghĩa kịch
bản khách hàng.
Hai hệ thống tác động lên hệ thống đó là:
- Admin: làm nhiệm vụ quản trị, cấp tài khoản đăng nhập.
- Gateway: làm nhiệm vụ kết nối với nhà mạng, thông qua nhà mạng giao tiếp với
khách hàng
Hai tác nhân ngoài: Người sử dụng (User) và khách hàng (Customer)
KẾT LUẬN
10
- Trong luận văn này, tác giả đã trình bày tổng quan về dịch vụ web bao gồm khái niệm
cơ bản về XML, dịch vụ web bao gồm các chuẩn và các giao thức.
- Luận văn cũng trình bày về ngôn ngữ định nghĩa và xử lý các tiền trình nghiệp vụ WS-
BPEL hay còn gọi là BPEL bao gồm các khái niệm và các thành phần của ngôn ngữ.
- Cuối cùng luận văn đề cập đến việc ứng dụng BPEL trong việc kết hợp và thay thế
dịch vụ web thông qua 1 ứng dụng cụ thể là hệ thống đại lý phân phối, làm cầu nối
giữa các nhà cung cấp dịch vụ để cung cấp các dịch vụ tổng hợp cho khách hàng.
- Những kết quả của luân văn chưa nhiều, nhưng nó cung cấp 1 phương pháp
mới trong việc kết hợp và thay thế các dịch vụ web, người sử dụng có thể thực hiện
việc này 1 cách đơn giản và nhanh chóng. Hướng phát triển tiếp theo của luận văn là
tìm cách phát triển ứng dụng hướng giao diện, giúp định nghĩa động trong việc kết
hợp và thay thế các dịch vụ và khi thực hiện các công việc này không làm ảnh hưởng
đến hoạt động của dịch vụ đang cung cấp cho khách hàng.
References
Tiếng Anh
1. OASIS, (2007), Web Services Business Process Execution Language Version 2.0 –
Primer.
2. OASIS, (2007), Web Services Business Process Execution Language Version 2.0 –
Standard.
3. W3C, (2008), Extensible Markup Language (XML) 1.0 (Fifth Edition). Địa chỉ:
4. W3C, (2000), Simple Object Access Protocol (SOAP) 1.1. Địa chỉ:
5. W3C, (2004), Web Service Architecture. Địa chỉ:
6. W3C, (2001), Web Services Description Language (WSDL) 1.1. Địa chỉ:
7.
8.
9.