Oracle BPEL Process Manager (viết tắt là OBPM) là công cụ để thực thi các tiến trình nghiệp vụ. Công cụ này cung cấp một giải pháp nâng cao, đƣợc chuẩn hóa và dễ dùng để tạo, triển khai và quản lý các tiến trình nghiệp vụ tự động theo kiến trúc hƣớng dịch vụ. Oracle BPEL Process Manager là công cụ tích hợp thích hợp cho các doanh nghiệp. Nó có khả năng kết nối với các hệ thống ngoài và các tiến trình, có nhiều công nghệ giao tiếp khác nhau giúp nó có thể dễ dàng xác định và thực thi các nghiệp vụ logic.Oracle BPEL Process Manager có thể đƣợc sử dụng để tích hợp các ứng dụng và các hệ thống theo chuẩn cũ, tạo nên các dịch vụ tổng hợp từ các dịch vụ đơn lẻ, xây dựng các ứng dụng phối hợp trung tâm, tự động hóa quy trình nghiệp vụ và các luồng công việc có cấu trúc phức tạp.
Oracle BPEL Process Manager cung cấp các tiêu chuẩn để lắp ghép một tập hợp các dịch vụ rời rạc thành một luồng công việc từ đầu đến cuối, giảm tối đa chi phí và độ phức tạp của việc tích hợp các tiến trình. Oracle BPEL Process Manager cho phép bạn kết hợp các dịch vụ đồng bộ và không đồng bộ vào luồng công việc. Trong hình 2.7 mô tả mối quan hệ của Oracle BPEL Process Manager với các thành phần và hệ thống khác: Oracle BPEL có thể làm việc với nhiều môi trƣờng, công nghệ khác nhau nhƣ J2EE, Portal, Web Service, CSDL, các ứng dụng ERP.
Hình 2.8Mối quan hệ của Oracle BPEL Process Manager với các thành phần khác Ngƣời dùng có thể tích hợp các quy trình BPEL với các dịch vụ bên ngoài (đƣợc gọi là các liên kết đối tác). Bạn cũng có tích hợp dịch vụ và các bộ chuyển đổi, chẳng hạn nhƣ công việc của con ngƣời, chuyển đổi, thông báo, và các quy tắc nghiệp vụ trong quy trình.
Oracle BPEL Process Manager dựa hoàn toàn trên ngôn ngữ BPEL. Thêm vào đó, nó đƣợc xây dựng dựa trên các chuẩn nhƣ XML, WSDL và Web Service, XSLT, XPATH, JMS và JCA giúp nó trở thành một giải pháp lý tƣởng để tạo các quy trình nghiệp vụ tích hợp có thể chạy trên các nền tảng. Nó cũng hỗ trợ các chuẩn tƣơng tác JCA và Web Service để giao tiếp với các tiến trình BPEL khác. Các hàm API cũng đƣợc cung cấp để hỗ trợ việc gọi từ các ứng dụng và hệ thống có sẵn.
Tổng quan và kiến trúc
Oracle BPEL Process Manager là trình xử lý để thực thi các tiến trình mô hình hóa bằng ngôn ngữ BPEL với cả 2 phiên bản là WS-BPEL 2.0 và BPEL 1.1, đồng thời cũng cung cấp các công cụ đi kèm để triển khai, giám sát và quản lý tiến trình BPEL. BPEL Process Manager đƣợc phát triển trên nền công nghệ Java EE, tƣơng thích với các máy chủ ứng dụng nhƣ Jboss, Weblogic, IBM. Kiến trúc của Oracle BPEL Process Manager đƣợc thể hiện trong hình dƣới đâỵ Trong hình 2.9, Oracle BPEL Process Manager bao gồm 4 thành phần: Trình xử lý, trình điều khiển, trình thiết kế (JDeveloper or Eclipse) và CSDL. Trình xử lý BPEL là thành phần quan trọng nhất trong kiến trúc của Oracle BPEL Process Manager, bao gồm các thành phần sau: Trình xử lý lõi BPEL, kết nối WSDL và các dịch vụ tích hợp khác.
Hình 2.9Kiến trúc của Oracle BPEL Process Manager
Trình xử lý lõi BPEL
Trình xử lý lõi BPEL là môi trƣờng mà các tiến trình BPEL đƣợc triển khai và thực thị Trình xử lý này hỗ trợ đầy đủ các công nghệ kết hợp dịch vụ Web quan trọng nhƣ: WS-Ađressing, WS Reliable Messaging, WS-Security, và mô hình cân bằng giao dịch BPEL. Trình xử lý BPEL cũng hỗ trợ việc quản lý phiên bản, giúp ngƣời quản trị có thể triển khai nhiều phiên bản của tiến trình nghiệp vụ liên tiếp nhaụ Đây là đặc tính quan trọng trong thực tế bởi vì các tiến trình nghiệp vụ luôn thay đổi không ngừng.Một đặc tính quan trọng khác của trình xử lý Oracle BPEL Process Manager là “tự phục hồi”. Khi thực hiện tiến trình, có một số tiến trình nghiệp vụ chạy mất nhiều thời gian, nhƣ trong trƣờng hợp các dịch vụ ngoài đƣợc gọi mà không thể phản hồi ngay (trƣờng hợp của tác vụ <invoke>, <receive> và <pick>). Trong khi đợi phản hồi, trình xử lý Oracle có thể lƣu trạng thái của tiến trình vào trong CSDL, theo đó sẽ giải phóng tài nguyên cho máy chủ. Đó đƣợc gọi là tính năng “tự phục hồi”. Khi trình xử lý nhận đƣợc phản hồi, trƣớc hết nó sẽ khôi phục lại tiến trình ở trạng thái đã lƣu trƣớc đó (khi bị hủy) và tiếp tục thực thi tiến trình đó. Trong thực tế, khi có nhiều tiến trình nghiệp vụ chạy song song với nhau, tính năng tự phục hồi này sẽ giúp giảm nhu cầu tài nguyên phần cứng của máy chủ.
Trình xử lý BPEL cũng hỗ trợ tính năng máy chủ cụm. Máy chủ cụm sẽ tăng độ tin cậy của các máy chủ vì có thể cấu hình chuyển qua lại giữa các máy chủ trong trƣờng
hợp một máy chủ bị lỗị Tính năng cụm cũng tăng độ mở rộng với khẳ năng cân bằng tải khi số lƣợng ngƣời dùng cũng nhƣ số lƣợng ứng dụng tăng lên.
Hỗ trợ kết nối WSDL
Nền tảng kết nối WSDL có nhiệm vụ thực hiện giao tiếp với các tiến trình BPEL đƣợc triển khai trên máy chủ. Nó bao gồm việc ngƣời dùng truy cập vào tiến trình BPEL và tiến trình BPEL giao tiếp với các dịch vụ Web khác. Mặc dù đặc tả BPEL chỉ nói chuyện thông qua các dịch vụ Web, Oracle BPEL Process Manager – OBMP- còn cho phép kết nối sử dụng các giao thức khác nhƣ SOAP khi kết nối với các ứng dụng hoặc hệ thống có sẵn. Sử dụng nền tảng kết nối WSDL, trình xử lý BPEL đƣợc mở rộng tới các hệ thống khác mà không cần phải chuyển hóa chúng sang dịch vụ Web (chủ yếu là SOAP).
OBPM hỗ trợ kết nối tới các ứng dụng Java EE nhƣ EJB, RMI, JMS, JCA và các giao thức Web nhƣ HTTP Get và Post, hay sockets. Việc tích hợp này đƣợc thực hiện thông qua nền tảng gọi dịch vụ Web (Web Services Invocation Framework). Khả năng tích hợp này giúp cho trình xử lý BPEL có thể tích hợp với các hệ thống có sẵn hoặc các hệ thống cũ, mà không thể đƣa ra giao tiếp dạng dịch vụ Web.
Tích hợp dịch vụ
Tiến trình nghiệp vụ mô tả trong giao tiếp BPEL với các dịch vụ Web và trao đổi thông điệp XML. Các dịch vụ tích hợp cung cấp khả năng chuyển đổi (theo định dạng XML) theo chuẩn hỗ trợ Xpath. Trình xử lý BPEL hỗ trợ ngôn ngữ chuyển XSLT (Extensible Stylesheet Language for Transformation) và XSQL. XSLT có khả năng thực hiện những chuyển đổi phức tạp dạng XML và thƣờng đƣợc sử dụng để chuyển đổi từ XML sang các ngôn ngữ đánh dấu khác nhƣ HTML, WML, VoiceXML. XSQL, Xquery là những ngôn ngữ truy vấn XML với chức năng hỗ trợ các truy vấn Xpath cơ bản.
Mặc dù trình xử lý BPEL hỗ trợ con ngƣời tƣơng tác với tiến trình BPEL nhƣng các tƣơng tác vẫn yêu cầu có trong các tiến trình, ví dụ nhƣ các bƣớc theo dõi, xác nhận hay quyết định. Việc tƣơng tác thực hiện qua giao tiếp WSDL trong đó tƣơng tác con ngƣời đƣợc coi nhƣ dịch vụ ngoàịDịch vụ Thông báo cung cấp giao tiếp dễ dùng để các tiến trình BEPL có thể gửi thông điệp đến ngƣời dùng (sử dụng cơ chế đồng bộ) theo các kênh khác nhau nhƣ email, tin nhắn SMS, tin nhắn thoạị Dịch vụ định danh xác thực việc truy cập vào trình xử lý BPEL thông qua một tầng dịch vụ Web, cho phép kiểm tra user, mật khẩu, quyền truy cập và các chính sách bảo mật khác. Các dịch vụ cảnh báo, luồng công việc và định danh thƣờng đƣợc sử dụng cùng với nhaụĐể tích hợp tiến trình BPEL truy cập vào các file, máy chủ FTP, CSDL, JMS, hay cácứng dụng khác, trình xử lý BPEL đƣa ra các bộ chuyển đổi (adapter), hoạt động trên nền tảng WSDL.
Trình điều khiển BPEL hỗ trợ triển khai, giám sát, quản trị và gỡ lỗi tiến trình BPEL. Trình điều khiển cung cấp những tính năng quan trọng nhƣ: mô tả luồng tiến trình trực tiếp, kiểm soát log, gỡ lỗi tiến trình, lịch sử của tiến trình, quản lý cấu hình. Trình điều khiển BPEL sử dụng giao diện Web, trên nền công nghệ JSP và Serverlet, và giao tiếp với các tiến trình thông qua APỊ Thông qua API, ngƣời quản trị có thể mở rộng chức năng của trình điều khiển hoặc có thể tự phát triển các mô đun riêng.
Trình thiết kế Oracle BPEL Process Degigner cung cấp một công cụ đồ họa với giao diện thân thiện để xây dựng các tiến trình BPEL. Trình thiết kế BPEL cho phép phát triển các tiến trình BPEL qua giao diện đồ họa mà không cần phải viết từng dòng mã nguồn. Thay vì phải viết mã nguồn, ngƣời thiết kế chỉ cần kéo thả các tác vụ vào vùng thiết kế. Ngƣời dùng có thể thêm các liên kết ngoài (partner link) và định nghĩa các dịch vụ. Trình thiết kế BPEL cũng hỗ trợ các thủ thuật cho các chức năng sao chép và các hàm chức năng để xây dựng các biểu thức Xpath hay các ánh xạ XSDL. Trình thiết kế BPEL có thể triển khai các tiến trình trực tiếp lên trình xử lý BPEL, giúp cho việc phát triển và bảo trì thuận lợi hơn. Trình thiết kế BPEL hỗ trợ đầy đủ trên ngôn ngữ WS-BPEL 2.0, do đó mã nguồn thiết kế có thể chạy hay thừa kế trên bất cứ sản phẩm nào mà vẫn đảm bảo nghiệp vụ đúng. Có 2 phiên bản trình thiết kế: một đƣợc tích hợp với công cụ Oracle Jdeveloper và một tích hợp với nền tảng Eclipsẹ Cả 2 phiên bản trên đều khá giống nhau về mặt hỗ trợ đầy đủ ngôn ngữ BPEL chuẩn, tuy nhiên trình thiết kế Jdeveloper có thêm các bộ chuyển đổi để tiến trình BPEL có thể tích hợp với các ứng dụng và hệ thống cũ.
Cơ sở dữ liệu
Trình xử lý BPEL sử dụng CSDL để lƣu các thông tin về các cấu hình của hệ thống, trạng thái của tiến trình, qua đó hỗ trợ tính năng tự phục hồị BPEL Process Manager hỗ trợ nhiều sản phẩm CSDL khác nhau nhƣ DB2, Oracle, SQL Server. Trong phiên bản BPEL 11.1.6 hiện tại, CSDL Oracle Database XE đƣợc sử dụng nhƣ là cấu hình cài đặt mặc định của hệ thống.
Tổng kết chương
Có thể thấy mỗi công ty đều có những giải pháp và công nghệ BPEL riêng tuy nhiên đều đáp ứng đƣợc bài toán tích hợp dịch vụ theo kiến trúc BPEL. So sánh kiến trúc giữa Apache ODE và ActiveVOS ta thấy chúng có nhiều điểm chung khi cả 2 đều chạy trên máy chủ ứng dụng Tomcat và trình thiết kế dựa trên nền tảng Eclipsẹ Tuy nhiên, kiến trúc của ActiveVOS có nhiều thành phần hơn và phức tạp hơn so với Apache ODẸ Điều này có thể giải thích đƣợc khi trƣớc đây cả Apache ODE và ActiveVOS đều là sản phẩm mã nguồn mở nên kiến trúc có điểm giống nhau, tuy nhiên phiên bản hiện tại của ActiveVOS phục vụ cho mục đích thƣơng mại đã đƣợc cải tiến hơn rất nhiềụ Trình xử lý Oracle BPEL Process Manager đƣợc phát triển cho các hệ thống lớn của các doanh nghiệp nên có độ hoàn thiện cao, đƣợc tích hợp từ các sản phẩm nổi tiếng khác của Oracle trên thị trƣờng nhƣ Oracle Database, Oracle SOA, Jdeveloper, Oracle WebLogic. Để đánh giá đƣợc hiệu năng của từng trình xử lý và so sánh với nhau, chúng ta sẽ tiến hành đo đạc thực nghiệm trong chƣơng tiếp theo để phân tích và đƣa ra kết luận.
Chương 3: ĐÁNH GIÁ HIỆU NĂNG CỦA MỘT SỐ TRÌNH XỬ LÝ BPEL
Trong chƣơng này, tác giả luận văn tập trung vào việc đo đạc thời gian phản hồi của các trình xử lý khi có yêu cầu gửi đến các dịch vụ Web chạy trên các trình xử lý đó. Kết quả đo đạc sẽ đƣợc biểu diễn trực quan qua đồ thị và đƣợc phân tích, đánh giá hiệu năng cho từng trình xử lý cũng nhƣ so sánh giữa các trình xử lý với nhaụ
3.1 Mô hình đo hiệu năng cho trình xử lý BPEL
Hiệu năng của một hệ thống đƣợc đánh giá bằng khả năng mà hệ thống đó xử lý các yêu cầu và trả về kết quả cho ngƣời dùng. Một hệ thống có hiệu năng đƣợc đánh giá là tốt nếu nhƣ yêu cầu của ngƣời dùng đƣợc xử lý và trả về đúng kết quả, với thời gian chấp nhận đƣợc, đồng thời có khả năng xử lý cùng lúc nhiều yêu cầu nhƣ vậỵ Ngƣợc lại, một hệ thống xử lý yêu cầu quá chậm hoặc có hiện tƣợng nghẽn, treo khi phục vụ nhiều yêu cầu đồng thời sẽ đƣợc đánh giá là không tốt.
Để đánh giá một hiệu năng của một hệ thống là tốt hay không, ngƣời ta thƣờng sử dụng các phép đo hiệu năng, trong đó mô phỏng quá trình xử lý yêu cầu của hệ thống, thu thập các dữ liệu đo dựa trên một số tiêu chí và cuối cùng tiến hành phân tích, đánh giá các dữ liệu đọ Để mô phỏng quá trình xử lý yêu cầu, ngƣời ta sẽ giả lập các yêu cầu giống với môi trƣờng thật và gửi tới hệ thống. Theo lý thuyết đo về hiệu năng phần mềm của Henry H.Liu [11], ngƣời ta sử dụng phƣơng pháp đo dựa trên 2 tiêu chí là throughput và responsetime để đánh giá hiệu năng các hệ thống. Throughput đƣợc định nghĩa là số lƣợng các đối tƣợng (objects) đƣợc xử lý trong một giây (Throughput=objects/second), còn response time là thời gian phản hồi từ hệ thống, tính từ sau khi ngƣời dùng gửi đi một yêu cầu đến khi nhận đƣợc kết quả trả về. Trong các hệ thống xử lý giao dịch trực tuyến (OLTP), response time là tiêu chí quan trọng để đánh giá hiệu năng của hệ thống, còn throughput thƣờng đƣợc sử dụng với các hệ thống xử lý giao dịch dài và lớn (ví dụ các hệ thống chạybatch job).
Để đo hiệu năng của một trình xử lý BPEL, chúng ta cũng sử dụng phƣơng pháp trên để đo các tiêu chí dựa trên các yêu cầu gửi đến hệ thống. Tuy nhiên, bản thân trình xử lý BPEL không trực tiếp đón nhận yêu cầu từ phía ngƣời dùng cũng nhƣ trả về kết quả. Việc đón nhận yêu cầu và trả kết quả đƣợc thực hiện bởi ứng dụng dịch vụ Web chạy trên trình xử lý BPEL, mặc dù trình xử lý này trực tiếp thực hiện các tác vụ của ứng dụng dịch vụ Web. Nhƣ vậy để đo hiệu năng của một trình xử lý BPEL, chúng ta sẽ thực hiện các phép đo tác động đến ứng dụng dịch vụ Web chạy trên trình xử lý đó.
Hình 3.1Mô hình đo hiệu năng trình xử lý BPEL
Trong mô hình 3.1 trên, ngƣời dùng ảo sẽ mô phỏng gửi các yêu cầu đến dịch vụ Web (Web Service), dịch vụ Web sẽ nhận yêu cầu và thực hiện các nghiệp vụ, các thao tác trực tiếp sẽ đƣợc gửi xuống trình xử lý BPEL để thực hiện, sau đó trả về kết quả cho dịch vụ Web. Dịch vụ Web sẽ tạo ra kết quả cuối cùng và trả về kết quả cho ngƣời dùng ảọ Ngƣời dùng ảo đƣợc tạo ra bởi các công cụ đo, đƣợc phép tùy biến tạo ra số lƣợng ngƣời dùng ảo cũng nhƣ tạo sẵn các phép thử (test case). Công cụ đo này giúp tự động hóa việc đo đạc, tiết kiệm công sức bằng việc lƣu lại cấu hình các phép thử cho những lần sau, đồng thời cho kết quả chính xác, khách quan.
3.2 Xây dựng hệ thống đo đạc
3.2.1 Bài toán đo hiệu năng các trình xử lý BPEL
Dựa trên mô hình đo hiệu năng ở trên, chúng ta xác định các thành phần trong mô hình bao gồm:
Các trình xử lý BPEL: Chúng ta sẽ đo đạc trên 03 trình xử lý Apache ODE, ActiveVOS và Oracle BPEL Process Manager. Về bản chất, các trình xử lý BPEL này không chạy độc lập mà nó liên kết với các mô đun SOA khác. Ngoài ra các trình xử lý BPEL này cũng chạy trên các thành phần khác nhƣ Web Server hay CSDL. Trong phạm vi luận văn này, ta sẽ cài đặt các trình xử lý theo mặc định của chúng, là một sản phẩm bao gồm các thành phần: Web Server + CSDL + trình xử lý BPEL. Ta sẽ đo hiệu năng của các sản phẩm nàỵ Các dịch vụ Web: Mỗi dịch vụ Web thể hiện đặc trƣng cho một trong các tác vụ