ỨngdụngBPELtrongviệckếthợpvàthaythế
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ịchvụ Web: giới thiệu về XML, các khái niệm cơ bản về
dịch vụWebbao 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ếthợpvàthaythế các dịchvụ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ịchvụ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ịchvụ 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ịchvụ khách hàng. Tuy nhiên việc tạo ra các dịchvụwebkếthợp cung cấp cho
khách hàng là khó khăn đặc biệt là việckếthợp giữa các dịchvụ của các nhà cung cấp khác
nhau.
Độ ổn định của mỗi dịchvụ là không cao, trong khi có nhiều dịchvụ giống nhau được cung
cấp bởi nhiều nhà cung cấp dịchvụvà chất lượng của mỗi dịchvụ là không giống nhau, nẩy
sinh việcthaythế các nhà cung cấp dịchvụ khi các nhà cung cấp ngừng cung cấp các dịchvụ
hiện tại.
Đã có nhiều nhà cung cấp, cung cấp các dịchvụwebkếthợp tuy nhiên việc tạo ra các dịchvụ
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ịchvụ 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ịchvụweb của các nhà cung cấp dịchvụ cụ thể là kết
hợp vàthaythế các dịchvụ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ịchvụ 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ịchvụWeb khác đó là dùng một ngôn ngữ định nghĩa
các công việc để kếthợp các dịchvụ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ịchvụWeb tạo ra được gọi là
dịch vụWebkếthợp (composite Web service), dịchvụWeb được dùng để tạo
ra dịchvụWebkếthợp gọi là dịchvụ 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ịchvụ 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àiliệ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ịchvụwebbao 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ếthợpvàthaythế
các dịchvụ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ịchvụweb là nỗ lực để đạt được khả năng tương tác giữa các ứngdụng bằng
việc sử dụng các chuẩn web. Dịchvụ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ứngdụng doanh nghiệp.
1. XML
3
Theo W3C: XML (Extensible Markup Language) là 1 ngôn ngữ đơn giản, linh hoạt trongviệ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ọngtrongviệ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àiliệ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àiliệ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àiliệu XML sẽ dễ dàng được tạo ra.
1.2. Tàiliệu XML
1 đối tượng dữ liệu là 1 tàiliệ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àiliệu XML là hợp lệ nếu nó đáp ứng các ràng
buộc nhất định.
Mỗi tàiliệu XML có cả cấu trúc logic và vật lý. Về vật lý, tàiliệubao 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 trongtài liệu. Tàiliệu bắt đầu
bằng “root” hoặc là 1 thực thểtàiliệu (document entity). Về logic, tàiliệubao 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 trongtàiliệ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àiliệu XML (Well – Formed XML) bên dưới.
1.3. Cấu trúc Logic
Mỗi tàiliệ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àiliệ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 dungvà tất cả (ngoại trừ các thực thểtàiliệuvà tập con DTD bên ngoài)
được xác định bởi tên thực thể. Mỗi tàiliệ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ịchvụWeb
Theo W3C định nghĩa: 1 dịchvụ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ụwebtrong 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ếthợ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 ứngdụ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ệcthể hiện ngữ
nghĩa của ứngdụ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ệutrong các module. Điều đó cho phép Soap sử dụngtrong đ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ịchvụ 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àiliệ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ịchvụwebvà các dịchvụ điện tử khác và các dịchvụ không phải điện tử. Một
đăng ký dịchvụ UDDI là 1 dịchvụweb quản lý các thông tin về nhà cung cấp dịch vụ, thực
thi dịchvụvà dữ liệudịch vụ. Nhà cung cấp dịchvụ có thể sử dụng UDDI để quảng cáo các
dịch vụ mà họ cung cấp. Người sử dụngdịchvụ 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ịchvụ mà các nơi các
doạnh nghiệp có thể đăng ký và tìm kiếm các dịchvụ 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ịchvụ 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ịchvụ
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ịchvụ 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ịchvụwebvà 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ịchvụweb bằng cách định nghĩa vai trò của mỗi dịchvụtrong mối
liên hệ và quy định cụ thể porttype cung cấp cho mỗi dịchvụ 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ịchvụ cuối
2.5. Partner link
Tương tác giữa các dịchvụ 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ịchvụ cho 1 loại hình cụ thể của dịchvụ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ịchvụ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 Bpelvà các dịchvụ đố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áotrong 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ịchvụ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àiliệ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ịchvụ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ựngvà 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ịchvụ 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ịchvụvà tiện ích khác nhau được cung cấp
bởi các nhà cung cấp dịchvụ 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ịchvụ 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ệckếthợ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ịchvụ 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ịchvụ 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ếthợ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ịchvụ với nhau thì mới có thể đáp
ứng được các dịchvụ tiện ích nhất cho khách hàng. Sự liên kết giữa các nhà cung cấp dịchvụ
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ịchvụ 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ịchvụ đượ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ịchvụ 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ịchvụ 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ịchvụ 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ịchvụ đơn lẻ như vậy, ngoài ra nó còn cung cấp các dịchvụ 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ịchvụ 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ịchvụ
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ịchvụ 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ịchvụ của nhà mạng. Việc khách hàng sử dụngdịchvụ 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ịchvụ như vậy nên việc xây dựng 1 đại lý phân phối
các dịchvụ 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ếthợ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ịchvụ khác nhau cho khách hàng thông qua
web service. Có thể sử dụngkế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ịchvụ 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ịchvụ 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ịchvụ 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ụngdịchvụ 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ịchvụ của khách hàng, định
nghĩa các kịch bản sử dụng các dịchvụ đó.
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ịchvụ 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ụngkế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ịchvụ 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ịchvụwebbao gồm khái niệm
cơ bản về XML, dịchvụwebbao 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à BPELbao 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ứngdụngBPELtrongviệckếthợpvàthaythế
dịch vụweb thông qua 1 ứngdụ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ịchvụ để cung cấp các dịchvụ 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 trongviệckếthợpvàthaythế các dịchvụ 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 ứngdụng hướng giao diện, giúp định nghĩa động trongviệckết
hợp vàthaythế các dịchvụ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ịchvụ đ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ỉ:
http://www.w3.org/TR/2004/REC-xml-20040204/.
4. W3C, (2000), Simple Object Access Protocol (SOAP) 1.1. Địa chỉ:
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/.
5. W3C, (2004), Web Service Architecture. Địa chỉ: http://www.w3.org/TR/ws-arch/.
6. W3C, (2001), Web Services Description Language (WSDL) 1.1. Địa chỉ:
http://www.w3.org/TR/wsdl.
7. http://soa.netbeans.org/.
8. https://www.oasis-open.org/committees/uddi-spec/faq.php.
9. http://uddi.org/pubs/ProgrammersAPI-V2.04-Published-20020719.htm.
. (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.
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