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
Ứ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ỉ: 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.