Đây là đồ án thực tập của mình và một người bạn làm về Webservice Link tải phần code Java. http://123link.pw/p2k7Yo File pdf là file hướng dẫn chi tiết về web service. Các bạn tải về và làm theo hướng dẫn là sẽ thành công nha.
MỤC LỤC MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ KIẾN TRÚC HƯỚNG DỊCH VỤ (SERVICEORIENTED-ARCHITECTURE) 1.1 Kiến trúc phần mềm 1.1.1 Một số kiến trúc phần mềm phân tán 1.1.2 Vấn đề phát sinh, nguyên nhân giải pháp 1.2 Kiến trúc hướng dịch vụ -SOA 1.2.1 Khái niệm .5 1.2.2 Nguyên lý SOA 1.2.3 Tính chất SOA 1.2.4 Lợi ích SOA 10 1.2.5 Ưu nhược điểm SOA 11 CHƯƠNG 2: PHÁT TRIỂN PHẦN MỀM DỰA VÀO SOA……… 12 2.1 Mơ hình hoạt động kiến trúc chi tiết hệ thống 13 2.1.1 Mô hình tổng thể SOA 12 2.1.2 Mơ hình giao tiếp thông điệp (message) SOA 13 2.1.3 Kiến trúc phân tầng chi tiết 14 2.2 SOA ứng dụng Web Service .15 2.2.1 Giới thiệu Web service .15 2.2.2 SOA Web service vấn đề tíchhợp hệ thống 16 2.2.3 Cấu trúc chi tiết thành phần Web service 18 2.3 Qui trình xây dựng hệ thống SOA 25 2.3.1 Thách thức xây dựng hệ thống 25 2.3.2 Vòng đời hệ thống 27 2.3.3 Các pha xây dựng hệthống SOA .28 2.3.4 Các chiến lượcxây dựng hệ thống 29 CHƯƠNG 3: Demo xay dung Webservice .34 3.1 Công cụ sử dụng vấn đề tích hợp cơng nghệ 34 3.2 Xây dựng ứng dụng trả thông tin đơn giản 36 LỜI KẾT 46 TÀI LIỆU THAM KHẢO 47 MỞ ĐẦU Sự phát triển Internet thúc đẩy nhu cầu cộng tác, làm việc qua mạng sử dụng dịch vụ trực tuyến dần trở thành nhu cầu thiết yếu sống Điều đòi hỏi ứng dụng khơng hệ thống hoạt động đơn lẻ máy trạm (máy client) chịu phụ thuộc vào tảng cố định nữa, mà chúng phải hệ thống linh động giúp người dùng làm việc “mọi lúc, nơi” Điều làm nhà phát triển phải đối mặt với hàng loạt vấn đề tích hợp thành phần phân tán lại với nhau; hay tái sử dụng thành phần có sẵn; vấn đề triển khai bảo trì… vấn đề làm điên đầu nhà phát triển Tuy nhiên, thực tế phần mềm ngày trở nên phức tạp mức dường vượt khỏi khả kiểm sốt mơ hình phát triển có Nguyên nhân khiến cho hệ thống có độ phức tạp tăng cao xuất nhiều công nghệmới tạo nên môi trường không đồng nhất,trong nhu cầu trao đổi, chia sẻ, tương tác hệ thốngngày tăng đáp ứng mơi trường Cùng với vấn đề lập trình dư thừa khơng thể tái sử dụng gây tốn nhiều giai đoạn phát triển hệ thống mà vận hành bảo trì phần mềm Giải pháp cho vấn đề gì? “SOA” hay “Kiến trúc Hướng dịch vụ” mơ hình phần mềm khơng phải mới, song phát triển Đây coi giải pháp ưu việt cho vấn đề đề cập Kiến trúc phát triển từ đầu năm 2000 đầu IBM Hiện SOA ứng dụng rộng rãi với đầu tư nghiên cứu rấtcác tập đoàn lớn IBM, Oracle, SAP, Microsoft… Vậy thật SOA ? Nó có thật hồn hảo? Làm để triển khai SOA? Các vấn đề hệ thống SOA ? Đó câu hỏi mà đề tài nghiên cứu trả lời CHƯƠNG 1: TỔNG QUAN VỀ KIẾN TRÚC HƯỚNG DỊCH VỤ (SERVICE-ORIENTED-ARCHITECTURE) 1.1 Kiến trúc phần mềm 1.1.1 Một số kiến trúc phần mềm phân tánhiện Một số mơ hình kiến trúc phân tán sử dụng phổ biến là: CORBA, RMI, DCOM, EJB Các kiến trúc mở rộng hệ thống hướng đối tượng cách cho phép phân tán đối tượng mạng Đối tượng có khơng gian địa bên ngồi ứng dụng, máy khác so với máy chứa ứng dụng tham chiếu sử dụng phần ứng dụng RMI (Remote Method Invocation): RMI phần J2SDK (Java Platform Standard Development Kit) Sun hàm thư viện hỗ trợ cho lời triệu gọi phương thức từ xa trả giá trị cho ứng dụng tính toán phân tán RMI cho phép chạy đối tượng môi trường JVM (Java Virtual Machine) triệu gọi với đối trượng chạy JVM khác thông qua việc sử dụng giao diện chung phương thức client server RMI cung cấp cho việc trao đổi truyền thơng chương trình viết ngơn ngữ lập trình Java Hình 1.1: Phương thức hoạt động RMI Ưu điểm kiến trúc đối tượng phân tán RMI người lập trình cần lập trình lời gọi phương thức đối tượng gọi diện máy ảo Nhưng nhược điểm RMI thích hợp cho ứng dụng viết ngôn ngữ Java CORBA (Common Object Request Broker Architecture) Là chuẩn công nghiệp đưa OMG (Object Management Group), cho phép gọi phương thức từ xa nhận kết trả về, khơng giống RMI, sử dụng bên phía gọi bên phía phương thức gọi sử dụng ngơn ngữ lập trình khác nhau, bao gồm trường hợp bên không sửdụng ngôn ngữ Java CORBA định nghĩa từ thứ: • Thực thể mà cho phép liên lạc tiến trình gọi mơ giới u cầu đối tượng (Object Request Broker -ORB) • Một giao thức ORB dùng để liên lạc nhiều tiến trình,được gọi IIOP (Internet Interoperability Protocol) Hình 1.2: Mơ hình mơ tả hoạt động CORBA Ưu điểm CORBA: lập trình viên tùy chọn ngơn ngữ lập trình, tảng phần cứng, giao thức mạng công nghệ để phát triển mà thỏa mãn tính chất CORBA Tuy nhiên CORBA có nhược điểm ngơn ngữ lập trình cấp thấp, phức tạp, khó học cần đội ngũ phát triển có kinh nghiệm Ngồi đối tượng CORBA khó tái sử dụng Các ứng dụng dựa CORBA dần vào thoái trào DCOM (Distributed Component Object Model) DCOM công nghệ độc quyền Microsoft, định nghĩa thành phần phần mềm phân tán qua mạng máy tính để truyền thông với thành phần khác DCOM hỗ trợ kết nối đối tượng kết nối có thểđược thay đổi lúc chạy Các đối tượng DCOM triển khai bên gói nhị phân chứa mã lệnh quản lý vòng đời đối tượng việc đăng ký đối tượng Hình 1.3: Mơ hình tương tác đối tượng DCOM DCOM mang đến nhiều ưu điểm như: dễ triển khai, chi phí thấp, tính ổn định, khơng phụ thuộc vào địa lý, quản lý kết nối hiệu dễ mở rộng Tuy nhiên, cơng nghệ Microsoft có nhược điểm lớn bị giới hạn hệ Windows chiến lược độc quyền Microsoft 1.1.2 Vấn đề phát sinh, nguyên nhân giải pháp Hiện áp lực đặt lên doanh nghiệp ngày lớn như: giảm chi phí đầu tư sở hạ tầng, khai thác có hiệu cơng nghệ có sẵn, phục vụ yêu cầu khách hàng tốt hơn, đáp ứng tốt thay đổi thường xuyên nghiệp vụ, khả tích hợp cao với hệ thống bên ngồi… Xây dựng hệ thống đáp ứng tất nhu cầu vấn đề vơ khó khăn Bởi hướng cho doanh nghiệp tìm kiếm giải pháp tích hợp ứng dụng có sẵn kết hợp với ứng dụng doanh nghiệp khác cho thỏa mãn nhu cầu Trong trình kết hợp chắn gặp khó khăn: - Khơng đủ khảnăng quản lý quy trình nghiệp vụ - Tốn chi phí tích hợp - Quá nhiều định dạng liệu - Nhu cầu yêu cầu khách hàng thường xuyên thay đổi nhanh chóng nhằm tạo tính cạnh tranh liên tục -Vấn đề an ninh bảo mật Đa phần khó khăn bắt nguồn từ nguyên nhân sau: - Phức tạp: Ngày doanh nghiệp công nghệ thơng tin có nhiều hệ thống tảng khác nhau, hoạt động nghiệp vụ khác Các công ty phát triển phần mềm phải thuê nhóm nhân viên giàu kinh nghiệm, có khảnăng lĩnh vực khác để phát triển, triển khai quản lý ứng dụng hệ thống mà thân chúng khơng đồng Thêm việc nâng cấp khó khăn, tích hợp với nhau, bảo mật ngày cao làm gia tăng tính phức tạp cho hệ thống - Không linh hoạt: Cùng với phức tạp chiến lược phát triển, sở hạ tầng công ty Hầu cơng ty có ứng dụng có sẵn khó nâng cấp, khó kết hợp hoạt động, mà khơng thể thay Vấn đề tích hợp trở nên khó khăn tốn - Khơng bền vững: Tiếp khơng bên vững hệ thống Các phương pháp tiếp cận truyền thống việc xây dựng hệ thống phần mềm thương dẫn đến nhiều giải pháp khác lắp ghép, tích hợp Kết thay đổi quy trình nghiệp vụ hay yêu cầu công ty phải chấp nhận phát triển dự án tốn thay công nghệ không phù hợp Chính mà doanh nghiệp cần phải có hướng tiếp cận để giải vấn đề mơi trường khơng đồng tốc độ chóng mặt thay đổi công nghệ nguồn ngân sách bị hạn hẹp May mắn thay, có giải pháp để giải tồn diện mặt khó khăn triển triển khai thực tế “Kiến trúc hướng dịch vụ” (Service Oriented Architecture - SOA) cách tiếp cận để xây dựng hệ thống công nghệ thông tin cho phép doanh nghiệp tận dụng có dễ dàng thay đổi theo yêu cầu đểhỗ trợ cho doanh nghiệp => SOA xem bước phát triển nghành công nghệ phần mềm 1.2 Kiến trúc hướng dịch vụ - SOA 1.2.1 Khái niệm ❖ SOA (Service Oriented Architecture) – Kiến trúc Định hướng Dịch vụ cách tiếp cận hay phương pháp luận để thiết kế tích hợp thành phần khác nhau, bao gồm phần mềm chức riêng lẻ lại thành hệ thống hoàn chỉnh Kiến trúc SOA giống với cấu trúc phần mềm hướng đối tượng gồm nhiều module Tuy nhiên khái niệm module SOA không đơn gói phần mềm, hay thư viện Thay vào đó, module ứng dụng SOA dịch vụ cung cấp rải rác nhiều nơi khác truy cập thơng qua mơi trường mạng Nói cách ngắn gọn, hệ thống SOA tập hợp nhiều dịch vụ cung cấp mạng, tích hợp lại với để cộng tác thực tác vụ theo yêu cầu khác hàng Một cách hiểu sai lầm SOA coi SOA công nghệ Mặc dù SOA hoạt động nhờ công nghệ, khách hàng cần phải chuyển đổi từ chỗ việc tích hợp công nghệ SOA sang việc phải điều chỉnh phương pháp thực dự án, sách bảo trì thay đổi để đạt lợi ích khả trưởng thành đáp ứng Hình 1.4 Mơ hình lập trình SOA để triển khai thực dịch vụ Web ❖ Dịch vụ (service) yếu tố then chốt SOA Có thể hiểu dịch vụ loại module thực mộtquytrình nghiệp vụ Một mục đích SOA giúp ứng dụng “giao tiếp” với mà không cần biết chi tiết kỹ thuật bên Để thực điều SOA định chuẩn giao tiếp (dùng để gọi hàm dịch vụ) định nghĩa rõ ràng độc lập với tảng hệ thống, tái sử dụng Như vậy, SOA cấp độ cao phát triển ứng dụng, trọng đến quy trình nghiệp vụ dùng giao tiếp chuẩn để giúp che phức tạp kỹthuật bên Sự trừu tượng cốt lõi khái niệm dịch vụ, giúp cho doanh nghiệp tích hợp thành phần có vào ứng dụng thành phần nàycó thểđược chia sẻ tái sử dụng nhiều lĩnh vực khác cơng ty mà khơng cần phải chỉnh sửa mã nguồn hay phảitái cấu trúc lại hệ thống Tóm lại, dịch vụ có đặc điểm sau: ▪ Có ranh giới rõ ràng (Boundaries Are Explicit): Mỗi service xây dựng dựa giao chuẩn hóa sử dụng rộng rãi Chi tiết thực service bên ngồi Mỗi service cơng bố số giao cho người sử dụng dùng để gởi yêu cầu nhận kết trả ▪ Tính tự trị (Autonomous): Về mặt lý thuyết, service có tính độc lập cao, xây dựng đưa vào sử dụng mà không phụ thuộc vào service khác ▪ Share the Schema and Contract, Not the Class: Về mặt trao đổi liệu, service không truyền class type Thay vào đó, class type đặc tả hình thức (data đặc tả schema, behavior đặc tả thành contract) ▪ Service Compatibility Is Based on Policy: Sự tương thích service vào policy(chính sách) Tương thích mặt cấu trúc dựa đặc tả hình thức bao gồm contract (dựa Web Service Description Language (WSDL) Business Process Execution Language for Web Services (BPEL4WS)) schema (XSD) Sự tương thích dựa policy cung cấp khả phân tích đảm bảo tương thích service Có nhiều cách khác để kết nối dịch vụ, chẳng hạn dùng giao thức mạng có sẵn, tạo giao thức riêng Nhưng từ năm 2001, dịch vụ web (Web service) xây dựng dựa tảng web toàn cầu, nơi có, trở thành phương pháp phổ biến cho việc kết nối thành phần hệ thống SOA với Thoạt nhìn SOA Web Service trơng giống chúng khơng phải Chúng ta tìm hiểu rõ Web Service phần 1.2.2 Nguyên lý SOA SOA tìm cách giải số vấn đề theo cách nhìn lấy ứng dụng làm trung tâm.Có thể tóm gọn phát biểu theo nguyên lý sau: - Ứng dụng phải mở khả cho phép ứng dụng ứng dụng tồn sử dụng Nó phải có khả kết nối tới dịch vụ đưa ứng dụng khác để tạo thành dịch vụ cao cấp hay gọi ứng dụngtổ hợp CHƯƠNG 3: DEMO XÂY DỰNG WEBSERVICE 3.1 Cơng cụ sử dụng vấn đề tích hợp công nghệ Sử dụng công cụ Eclipse, Netbeans, tảng công nghệ Axis2, với server Tomcat v7.0 Hệ quản trị CSDL MySQL Tích hợp cơng nghệ Các bạn phải chuẩn bị trước gói Axis2, cài server Tomcat để tích hợp vào eclipse Vào Windows->Preferences 34 Chọn Service -> Axis2 Preferences Chọn đường dẫn tới thư mục chứa Axis2 Sau load thành công báo Axis2 runtime loaded successfully Cấu hình server Tomcat tương tự gói Axis2 35 3.2 Xây dựng ứng dụng trả thông tin đơn giản Tạo Project Web Vào menu File->New->Project, Chọn Dynamic Web Project Điền đầy dử thơng tin cấu phía 36 Kích vào Modify để tích hợp Axis2 37 Click vào gói Axis2 Web Service Tạo file java XinChao (trong packet dungptit.server) 38 Gõ code sau (đơn giản phương thức trả chuỗi Phạm Cơng Dũng) Như có web project * Tạo Web Services 39 Trong Project Explorer, nhấn chuột phải lên lớp XinChao vừa tạo, chọn New->Others, chọn đến Web Service hình sau nhấn nút Next Chọn đầy đủ thơng tin hình, nhấn Finish 40 Eclipse tự động tạo web service đồng thời start Tomcat web server deploy web service vừa tạo lên Thử nghiệm webservice Chạy project dạng server Nhấn chọn link Services ta danh sách dịch vụ hỗ trợ Nhấn chọn XinChao ta xem file WSDL hình sau 41 Copy đường link WSDL để sử dụng bên Client Tạo Web Service client Tạo Project JavaAplication Tạo package dungptit class XinChao 42 Từ project click chuột phải chọn New -> Web Service Client Paste đường link WSDL vừa copy từ server chọn Finish: 43 Sau trình cài đặt diễn xong, project tự tạo thư mục cấu hình mặc định Nhấn tổ hợp phím Alt + Insert để gọi dịch vụ bên server cung cấp 44 TÀI LIỆU THAM KHẢO Các giáo trình: + SERVICE-ORIENTED COMPUTING Semantics, Processes, Agents (Munindar P Singh North Carolina State University, USA Michael N Huhns University of South Carolina, USA) + Axis2 Web Services and Security Cookbook Implementing WSSecurity with Apache Axis2, Rampart and Tomcat (Hugo Gabignon & Thibaut Probst) + Apache Axis2 Web Services 2nd Edition (Deepal Jayasinghe & Afkham Azeez) + Ths Nguyễn Trọng Dũng Trường ĐHSP Hà Nội, Phát triển Web Service với công nghệ chuẩn java + Hồ Bảo Thanh & Nguyễn Hoàng Long (2005)- Luận văn cử nhân tin học khoa CNTT– ĐH KHTN Tp.HCM, Nghiên cứu kiến trúc hướng dịch vụ ứng dụng Các link tham khảo: Loạt bài: https://www.ibm.com/developerworks/vn/library/ws-soa-progmodel/ http://www.ibm.com/developerworks/vn/edu/ws-understand-web-services2/ http://en.wikipedia.org/wiki/Service-oriented_architecture http://www.ibm.com/developerworks/vn/library/j-jws8/j-jws8.pdf http://www.ibm.com/developerworks/vn/library/ws-soa-progmodel/ http://vovanhai.wordpress.com/web-services/java-webservices/t%E1%BA%A1o-web-service-s%E1%BB%AD-d%E1%BB%A5ngeclipse/ http://www.networkworld.com/news/2009/031209-soa-security-the.html http://www.ibm.com/developerworks/vn/edu/ws-understand-web-services2/section4.html http://docs.oracle.com/cd/E14571_01/doc.1111/e15867/uddi.htm 47 48 ... nguyên lý sau: - Ứng dụng phải mở khả cho phép ứng dụng ứng dụng tồn sử dụng Nó phải có khả kết nối tới dịch vụ đưa ứng dụng khác để tạo thành dịch vụ cao cấp hay gọi ứng dụngtổ hợp - Sự khác biệt... thống SOA phải gặp số vấn đề trở ngại: - Xác định dịch vụ • Dịch vụ gì?chức nghiệp vụ cần cung cấp dịch vụ? Độ mịn(granularity) dịch vụ tốt? • Việc xác định dịch vụ định đối tượng cung cấp dịch vụ. .. thành phần đóng vai trò vừa dịch vụ sử dụng vừa dịch vụ cung cấp Những dịch vụ sử dụng dịch vụ tầng kết nối dịch vụ orchestration khác để kết hợp chức cấp thấp thành dịch vụ hoạt động cấp cao hơn,