Báo cáo kết thúc Dịch vụ web
Học viện công nghệ bưu chính viễn thông Khoa công nghệ thông tin Báo cáo kết thúc: Dịch vụ web GVDH: Trần Đình Quế 1 Bài tập môn hướng dịch vụ (V1) Câu 1: Lí do phát triển dịch vụ WEB : - Dịch vụ Web cho chúng ta phương pháp tiếp cận để xây dựng và triển khai việc tính toán phân tán nhằm tăng hiệu quả làm việc của lập trình viên, quản trị viên và người sử dụng - Hầu hết các nhà nghiên cứu và các nhà chuyên môn cho rằng web hiện nay, ngoài những thành công ra còn có 1 số hạn chế : thông tin trên web ko được tổ chức, có thể ko chính xác và ko phù hợp, tồi tệ hơn là ko thể hiểu đc. Công nghệ hiện tại khó xác định được vị trí thông tin,(bao gồm cả những kết quả ko liên quan) và sự trả về kém( thiếu thông tin liên quan). Thông tin là tĩnh và web thường ko có các hành động kết nối chương trình tốt. Chỉ có hành động lập trình khi 1 form gửi tới 1 kịch bản đang chạy, được định vị bởi URL, nhưng hành động và giao diện của kịch bản là cứng nhắc, và công việc xây dựng và duy trì các ứng dụng phân tán là phức tạp. Câu 2: Các công nghệ dịch vụ web : 1. XML (eXtensible Markup Language) Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử dụng để định nghĩa các thành phần dữ liệu trên trang web và cho những tài liệu B2B. Về hình thức, XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTML nhưng HTML định nghĩa thành phần được hiển thị như thế nào thì XML lại định nghĩa những thành phần đó chứa cái gì. Với XML, các thẻ có thể được lập trình viên tự tạo ra trên mỗi trang web và được chọn là định dạng thông điệp chuẩn bởi tính phổ biến và hiệu quả mã nguồn mở. Do dịch vụ Web là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng các tính năng và đặc trưng của các thành phần đó để giao tiếp. XML là công cụ chính để giải quyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một dịch vụ Web, tất cả dữ liệu sẽ được chuyển sang định dạng thẻ XML. Khi đó, các thông tin mã hóa sẽ hoàn toàn phù hợp với các thông tin theo chuẩn của SOAP hoặc XML-RPC và có thể tương tác với nhau trong một thể thống nhất. Đã trở thành chuẩn cho việc mô tả dữ liệu được trao đổi trên nền web. Là ngôn ngữ đánh dấu, sử dụng các thẻ (tag) để đánh dấu nội dung của văn bản và định nghĩa cấu trúc của thông tin. Ví dụ: <element name="locateCustomer"> <complexType> <sequence> <element name="FirstName" type="xs:string"/> <element name="LastName" type="xs:string"/> 2 <element name="Address" type="VNAddress"/> </sequence> </complexType> </element> <element name="locateCustomerResponse"> <complexType> <sequence> <element name="CustomerRecord" type="CustomerRecord"/> </sequence> </complexType> </element> Tài liệu XML phải tuân theo một cấu trúc chuẩn (Well-formed). Tài liệu XML thường được kết hợp với lược đồ XML (XML Schema) để quy định cú pháp và cấu trúc các thẻ được sử dụng trong tài liệu XML. Do có các tính chất trên nên tài liệu XML có thể dễ dàng được xử lý bởi các ứng dụng và XML là ngôn ngữ dữ liệu cho Web Service. 2. SOAP (Simple Object Access Protocol) Là giao thức cấp cao dựa vào XML để trao đổi thông tin trong các hệ thống phân tán. SOAP cung cấp một định dạng chung cho các dữ liệu được trao đổi giữa client và server. Đơn vị trao đổi thông tin cơ bản của SOAP là 1 SOAP message. SOAP Message chính là một SOAP Envelope trong đó chứa SOAP Body và có thể chứa SOAP Header. SOAP Envelope xác định XML Namespace và loại encoding được sử dụng trong SOAP message. SOAP header được sử dụng để cho các ứng dụng quyết định việc xử lý SOAP message như thế nào. Ví dụ: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:end="http://endpoint.helloservice/"> <soapenv:Body> <end:getUserBean> <! Optional: > <arg0>?</arg0> </end:getUserBean> </soapenv:Body> </soapenv:Envelope> 3. WSDL (Web Service Definition Language) Client và server giao tiếp với nhau thông qua việc gửi các SOAP message. WSDL định nghĩa ra nội dung và câu trúc của SOAP message đó. WSDL là tài liệu XML đùng để mô tả interface của Web service. Tài liệu WSDL định nghĩa một lược đồ XML cho việc mô tả web service. Ví dụ: <definitions targetNamespace="http://endpoint.helloservice/" name="HelloService" xmlns:tns="http://endpoint.helloservice/" xmlns:xsd="http://www.w3.org/2001/XMLSchema " xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap /" 3 xmlns=" http://schemas.xmlsoap.org/wsdl /"> <types> <xsd:schema> <xsd:import namespace=" http://endpoint.helloservice /" schemaLocation=" http://localhost:8080/hello/hello?xsd=1 "/> </xsd:schema> </types> <message name="sayHello"> <part element="tns:sayHello" name="parameters"/> </message> <message name="sayHelloResponse"> <part element="tns:sayHelloResponse" name="parameters"/> </message> <message name="getUserBean"> <part element="tns:getUserBean" name="parameters"/> </message> <message name="getUserBeanResponse"> <part element="tns:getUserBeanResponse" name="parameters"/> </message> <message name="Exception"> <part element="tns:Exception" name="Exception"/> </message> <portType name="Hello"> <operation name="sayHello"> <input message="tns:sayHello"/> <output message="tns:sayHelloResponse"/> </operation> <operation name="getUserBean"> <input message="tns:getUserBean"/> <output message="tns:getUserBeanResponse"/> <fault message="tns:Exception" name="Exception"/> </operation> </portType> <binding type="tns:Hello" name="HelloPortBinding"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="sayHello"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> <operation name="getUserBean"> <soap:operation soapAction=""/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> <fault name="Exception"> <soap:fault use="literal" name="Exception"/> </fault> 4 </operation> </binding> <service name="HelloService"> <port binding="tns:HelloPortBinding" name="HelloPort"> <soap:address location="http://localhost:8080/hello/hello"/> </port> </service> </definitions> 4. UDDI Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thông tin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ. UDDI định nghĩa một số thành phần cho biết các thông tin này, cho phép các client truy tìm và nhận những thông tin được yêu cầu khi sử dụng dịch vụ Web. Cấu trúc UDDI : • Trang trắng - White pages: chứa thông tin liên hệ và các định dạng chính yếu của dịch vụ Web, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng… Những thông tin này cho phép các đối tượng khác xác định được dịch vụ. • Trang vàng - Yellow pages: chứa thông tin mô tả dịch vụ Web theo những loại khác nhau. Những thông tin này cho phép các đối tượng thấy được dịch vụ Web theo từng loại với nó. • Trang xanh - Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức năng của dịch vụ Web. • Loại dịch vụ - tModel: chứa các thông tin về loại dịch vụ được sử dụng. Những thông tin về dịch vụ Web được sử dụng và công bố lên mạng sử dụng giao thức này. Nó sẽ kích hoạt các ứng dụng để tìm kiếm thông tin của dịch vụ Web khác nhằm xác định xem dịch vụ nào sẽ cần đến nó. Câu 3: Tìm hiểu về Spring 1. Giới thiệu. • Spring Framework, hay ngắn hơn là Spring, là một framework mã nguồn mở được viết bằng Java. Nó được xem như là một giải pháp kiến trúc tốt nhất của Java EE hiện nay. • Theo thiết kế, bộ khung hình này giải phóng lập trình viên dùng Java, cho phép họ nhiều quyền tự do hơn. • Đồng thời cung cấp một giải pháp tiện lợi, đầy đủ dẫn chứng bằng tài liệu, dễ dàng sử dụng, phù hợp với những thực hành thông dụng trong công nghệ phần mềm. 2. Các module chính. − Spring đóng vai trò là tầng business. 5 − Spring được tổ chức thành 7 modules : 2.1. Core Container. • Core package là phần cơ bản nhất của framework, cung cấp những đặc tính IoC (Inversion of Control: Khung chứa đảo ngược khống chế) và Dependency Injection. 6 • Khái niệm cơ bản là BeanFactory - cài đặt factory pattern cho phép bạn móc nối sự phụ thuộc giữa các đối tượng trong file cấu hình. 2.2. Spring Context/Application Context. • Phía trên của Core package là Context package - cung cấp cách để truy cập đối tượng. • Context package kết thừa các đặc tính từ bean package và thêm vào chức năng đa ngôn ngữ (I18N), truyền sự kiện, resource-loading, 2.3. Spring AOP (Aspect Oriented Programming). • Spring AOP module tích hợp chức năng lập trình hướng khía cạnh vào Spring framework thông qua cấu hình của nó. Spring AOP module cung cấp các dịch vụ quản lý giao dịch cho các đối tượng trong bất kỳ ứng dụng nào sử dụng Spring. Với Spring AOP chúng ta có thể tích hợp declarative transaction management vào trong ứng dụng mà không cần dựa vào EJB component. • Spring AOP module cũng đưa lập trình metadata vào trong Spring. Sử dụng cái này chúng ta có thể thêm annotation (chú thích) vào source code để hướng dẫn Spring và làm thế nào để liên hệ với aspect (Khía cạnh khác). 2.4. Spring DAO. • DAO package cung cấp cho tầng JDBC, bỏ bớt những coding dài dòng của JDBC và chuyển đổi mã lỗi được xác định bởi database vendor. JDBC package cung cấp cách lập trình tốt như declarative transaction management. • Tầng JDBC và DAO đưa ra một cây phân cấp exception để quản lý kết nối đến database, điều khiển exception và thông báo lỗi được ném bởi vendor của database. Tầng exception đơn giản điều khiển lỗi và giảm khối lượng code mà chúng ta cần viết như mở và đóng kết nối. Module này cũng cung cấp các dịch vụ quản lý giao dịch cho các đối tượng trong ứng dụng Spring. 2.5. Spring ORM. • ORM package cung cấp tầng tích hợp với object-relational mapping API bao gồm: JDO, Hibernate, iBatis. 7 • Sử dụng ORM package bạn có thể sử dụng tất cả các object-relational mapping đó kết hợp với tất cả các đặc tính của Spring như declarative transaction management. 2.6. Spring Web module. • Spring Web package cung cấp đặc tính của web như: chức năng file- upload, khởi tạo IoC container sử dụng trình lắng nghe serlvet và web- oriented application context. • Nằm trên application context module, cung cấp context cho các ứng dụng web. Spring cũng hỗ trợ tích hợp với Struts, JSF và Webwork. Web module cũng làm giảm bớt các công việc điều khiển nhiều request và gắn các tham số của request vào các đối tượng domain. 2.7. Spring MVC Framework. • Spring Framework là một ứng dụng mã nguồn mở phổ biến cho Java EE phát triển dễ dàng hơn. Nó bao gồm một container, một framework cho các thành phần quản lý, và một bộ các snap-in dịch vụ cho các giao diện người dùng web, giao dịch,…. Một phần của Spring Framework là Spring Web MVC, một mô hình MVC mở rộng để tạo các ứng dụng web. • MVC Framework thì cài đặt đầy đủ đặc tính của MVC pattern để xây dựng các ứng dụng Web. MVC framework thì cấu hình thông qua giao diện và chứa được một số kỹ thuật view bao gồm: JSP, Velocity, Tiles và generation of PDF và Excel file. . Spring MVC framework cung cấp sự phân biệt rõ ràng giữa domain model và web form. \Câu 5: Ví dụ về Spring 8 -Project được tạo Các file trong project -Trong file web.xml, ta thấy có dòng thiết lập chỉ trang chủ của ứng dụng là redirect.jsp như sau ở cuối file : 9 -Trong file redirect.jsp chỉ làm duy nhất một việc đó là redirect tất cả những request gởi đến tới index.htm : -Cũng trong file web.xml ta thấy dòng khai báo và ánh xạ sau : Servlet dispatcher là lớp kế thừa từ “org.springframework.web.servlet.DispatcherServlet” Ánh xạ tất cả requests có mẫu URL khớp *.htm cho lớp DispatcherServlet của Spring này -Trong file dispatcher-servlet.xml : Khi DispatcherServlet nhận một request khớp *.htm như là index.htm nó sẽ tìm bên trong urlMapping này một controller cung cấp cho request đó. 10 [...]... có số điểm 9 Bài tập kết thúc môn học 26 Câu 1: Lý do phát triển dịch vụ Lý do phát triển web ngữ nghĩa Lý do phát triển dịch vụ web ngữ nghĩa Trả lời 1 Lý do phát triển dịch vụ web Dịch vụ Web (Web Service) được coi là một công nghệ mang đến cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B (Business to Business) và B2C (Business to Customer) Giá trị cơ bản của dịch vụ Web dựa trên việc cung... Lý do phát triển dịch vụ web ngữ nghĩa Do dịch vụ web thiếu biểu diễn ngữ nghĩa và cần sự hỗ trợ từ phía con người Một Semantic web Service bao gồm 3 phần : Thứ nhất là ServiceProfile phục vụ cho việc quảng cáo và phát hiện dịch vụ; Thứ hai là ServiceModel chịu trách nhiệm mô tả hoạt động của dịch vụ và thứ ba là ServiceGrounding chịu trách nhiệm cung 30 cấp cách tương tác với dịch vụ Service Profile... khoảng thời gian chết của Dịch vụ Web, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành • Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt • Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật Kiến trúc cơ bản của dịch vụ web : 27 2 Lý do phát triển web ngữ nghĩa: Web ngữ nghĩa là một thế hệ Web mới, đang được phát triển... trên những nền tảng khác nhau có thể sử dụng dịch vụ Web để chuyển đổi dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính Tuy nhiên, công nghệ xây dựng dịch vụ Web không nhất thiết phải là các công nghệ mới, nó có thể kết hợp với các công nghệ đã có như XML, SOAP, WSDL, UDDI… Với sự phát triển và lớn mạnh của Internet, dịch vụ Web thật sự là một công nghệ đáng được quan... sẽ xem xét các dịch vụ Web từ mức khái niệm đến cách thức xây dựng Ưu điểm của dịch vụ web : • Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau • Sử dụng các giao thức và chuẩn mở Giao thức và định dạng dữ liệu dựa trên văn bản (text), giúp các lập trình viên dễ dàng hiểu được • Nâng cao khả năng tái sử dụng • Thúc đẩy đầu tư... chương trình 13 Kết quả : Câu 6: Những ưu điểm, nhược điểm WebService : Ưu điểm của dịch vụ web - Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau - Sử dụng các giao thức và chuẩn mở Giao thức và định dạng dữ liệu dựa trên văn bản (text), giúp các lập trình viên dễ dàng hiểu được - Nâng cao khả năng tái sử dụng - Thúc đẩy đầu tư... trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web - Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán - Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác 14 Nhược điểm của dịch vụ web - Những thiệt... triển và sẽ xuất hiện trong tương lai gần Hệ thống Web mới này sẽ thay thế hệ thống Web hiện tại song không có nghĩa là một hệ thống hoàn toàn khác hệ thống Web hiện tại Web ngữ nghĩa được phát triển trên hệ thống Web hiện tại bằng cách bổ sung thêm ngữ nghĩa cho các tài nguyên Web mà máy có thể hiểu và tăng khả năng xử lý tự động World Wide Web (gọi tắt là Web) đã trở thành một kho tàng thông tin khổng... theo chủ đề mà chỉ là vấn đề tìm thoả theo từ khoá đơn thuần, kết quả tìm kiếm phải do con người chọn lại theo chủ đề mong muốn Chính những vấn đề này đã thúc đẩy sự ra đời của ý tưởng Web ngữ nghĩa (Semantic Web) , một thế hệ mới của Web, mà chính cha đẻ của World Wide Web là Tim BernersLee đề xuất vào năm 1998 Web ngữ nghĩa là sự mở rộng của Web hiện tại mà trong đó thông tin được định nghĩa rõ ràng... trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web • Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán • Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác Nhược điểm của dịch vụ web : • Những thiệt . thông Khoa công nghệ thông tin Báo cáo kết thúc: Dịch vụ web GVDH: Trần Đình Quế 1 Bài tập môn hướng dịch vụ (V1) Câu 1: Lí do phát triển dịch vụ WEB : - Dịch vụ Web cho chúng ta phương pháp tiếp. mô tả các hành vi và các chức năng của dịch vụ Web. • Loại dịch vụ - tModel: chứa các thông tin về loại dịch vụ được sử dụng. Những thông tin về dịch vụ Web được sử dụng và công bố lên mạng sử. khác xác định được dịch vụ. • Trang vàng - Yellow pages: chứa thông tin mô tả dịch vụ Web theo những loại khác nhau. Những thông tin này cho phép các đối tượng thấy được dịch vụ Web theo từng loại