Báo cáo kết thúc Dịch vụ web
Trang 1Họ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ế
Trang 2Bà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àiliệ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ạngthô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ụngcá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ựngmộ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ẩncủa SOAP hoặc XML-RPC và có thể tương tác với nhau trong một thể thốngnhấ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ănbản và định nghĩa cấu trúc của thông tin
Trang 3<element name="Address" type="VNAddress"/>
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 ứngdụ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ântá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 trongSOAP message
SOAP header được sử dụng để cho các ứng dụng quyết định việc xử lý SOAPmessage như thế nào
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
Trang 5• Trang trắng - White pages: chứa thông tin liên hệ và các định dạng chính yếu củadịch vụ Web, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng… Nhữngthô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ạikhác nhau Những thông tin này cho phép các đối tượng thấy được dịch vụ Webtheo 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ứcnă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ápkiế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ùngJava, 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ằngtài liệu, dễ dàng sử dụng, phù hợp với những thực hành thông dụng
Trang 6− 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
Trang 7• Khái niệm cơ bản là BeanFactory - cài đặt factory pattern cho phép bạnmó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 để truycập đối tượng
• Context package kết thừa các đặc tính từ bean package và thêm vào chứcnă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àoSpring framework thông qua cấu hình của nó Spring AOP module cungcấp các dịch vụ quản lý giao dịch cho các đối tượng trong bất kỳ ứng dụngnào sử dụng Spring Với Spring AOP chúng ta có thể tích hợp declarativetransaction management vào trong ứng dụng mà không cần dựa vào EJBcomponent
• 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ạnhkhác)
2.4 Spring DAO
•DAO package cung cấp cho tầng JDBC, bỏ bớt những coding dài dòngcủa JDBC và chuyển đổi mã lỗi được xác định bởi database vendor JDBCpackage cung cấp cách lập trình tốt như declarative transactionmanagement
•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 vendorcủa database Tầng exception đơn giản điều khiển lỗi và giảm khối lượngcode mà chúng ta cần viết như mở và đóng kết nối Module này cũng cungcấp các dịch vụ quản lý giao dịch cho các đối tượng trong ứng dụng Spring
Trang 8•Sử dụng ORM package bạn có thể sử dụng tất cả các object-relationalmapping đó kết hợp với tất cả các đặc tính của Spring như declarativetransaction management.
2.6 Spring Web module
•Spring Web package cung cấp đặc tính của web như: chức năng upload, khởi tạo IoC container sử dụng trình lắng nghe serlvet và web-oriented application context
file-•Nằm trên application context module, cung cấp context cho các ứng dụngweb Spring cũng hỗ trợ tích hợp với Struts, JSF và Webwork Webmodule cũng làm giảm bớt các công việc điều khiển nhiều request và gắncá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 EEphát triển dễ dàng hơn Nó bao gồm một container, một framework chocác thành phần quản lý, và một bộ các snap-in dịch vụ cho các giao diệnngười dùng web, giao dịch,… Một phần của Spring Framework là SpringWeb 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âydựng các ứng dụng Web MVC framework thì cấu hình thông qua giaodiệ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
Trang 9-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 :
Trang 10-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ừ
Trang 11viewResolver nhận vào Logical view name từ indexController và tìm trong thư mục
“/WEB.INF/jsp/” trang jsp có tên tương ứng
indexController là lớp kế thừa
từ“org.springframework.web.servlet.mvc.ParameterizableViewController” đây là lớp được cung cấp bởi Spring và nó đơn giản sẽ trả về 1 view
Ứng dụng Hello sử dụng framework Spring
1 Tạo file java HelloService.java
Cài đặt phương thức sayHello
2 Tạo file Name.java
3 Tạo file HelloController.java
Cài đặt phương thức OnSubmit()
Trang 12trả về ModelAndView
4 Vào file applicationContext.xml để đăng ký HelloService Để đang ký ta thêm dòng code sau :
5 Đăng ký HelloController trong file dispatcher-servlet.xml :
6 Đặt tên view khi hiển thị và khi submit thành công trong file HelloController.java
7 Tạo 2 file JSP: nameView và helloView
nameview.jsp
Trang 13Chạy chương trình
Trang 14Kế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ềmkhá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ănbả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ư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiếntrì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 doanhnghiệp khác
Trang 15 Nhược điểm của dịch vụ web
- Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụ Web, giaodiệ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ếucá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
Trang 16Tìm hiểu về RDF, RDFs
Câu 1: Tìm hiểu về XML
- XML, hoặc Extensible Markup Language (ngôn ngữ đánh dấu mở rộng), là một ngôn ngữ đánh dấu mà bạn có thể sử dụng để tạo ra thẻ riêng của mình Nó được tạo nên bởi Liên minh mạng toàn cầu nhằm khắc phục những hạn chế của HTML - ngôn ngữ đánh dấu siêu văn bản, là cơ sở của mọi trang Web Giống như HTML, XML cũng được dựa trên SGML – Standard Generalized Markup Language
Tại sao chúng ta cần XML?
-Con người chúng ta đều có trí thông minh để hiểu được ý nghĩa và mục đích của hầu hết các văn bản Tuy nhiên một cỗ máy lại không như thế Khi các thẻ trong tài liệu này chỉ cho một trình duyệt cách thể hiện thông tin, thì bản thân các thẻ lại không chỉ cho trình
duyệt thông tin đó là gì Bạn và tôi đều biết đó là một địa chỉ, nhưng máy móc thì không
thế
-XML là ngôn ngữ có khả năng mở rộng khác với HTML: XML cho phép người sử dụng định nghĩa thẻ và cấu trúc trong dữ liệu của mình
XML mang lại lợi ích bởi những đặc điểm sau :
XML có cấu trúc nên dễ học, dễ dung
o Thẻ mở: Xác định các kiểu của 1 phần tử và thuộc tính đặc tả có thể
o Thẻ đóng : Xác định kiểu của 1 phần tử mà thẻ này là kết thúc Ko giống như thẻ mở, thẻ đóng ko chứa các thuộc tính đặc tả
Trang 17o Thẻ chứa phần tử rỗng: Giống như thẻ mở, nó chứa các thuộc tính đặc tả nhưng ko cần thẻ đóng Biểu thị phần tử là rỗng, chú ý là có tag “/” trước khi kết thúc
• Phần tử
o là thẻ mở, thẻ đóng và những gì giữa chúng
o Tên của 1 phần tử đc thể hiện bằng các kí tự nằm trong thẻ
o Thẻ bắt đầu và kết thúc miêu tả dữ liệu trong phạm vi của nó, gọi là dữ liệu của 1 phần tử
• Thuộc tính là một cặp giá trị tên trong thẻ bắt đầu của một phần tử
o Thường mô tả phần tử XML hoặc cung cấp thêm những thông tin về phần tử
o Một phần tử có thể có 1 hoặc nhiều thuộc tính Và 1 thuộc tính là 1 cặp tên – giá trị phân cách nhau bằng 1 dấu =
o Thường dữ liệu thuộc tính cần cho bộ phân tích XML hơn là cho người dùng
Trang 18- Khái niệm RDF(Resource Description Framework) và vai trò củ a RDF trong
kiến trúc của Semantic Web Có thể nói, RDF chính là nền tảng của Semantic Web, là linh h ồn củ a Semantic Web RDF mô tả siêu dữ liệu về các tài nguyên trên Web RDF dựa trên cú pháp XML tuy nhiên XML chỉ mô tả dữ liệu, RDF còn có khả năng biểu diễn ngữ nghĩa giữa chúng thông qua các tài nguyên được định danh bằng URI
- RDF triple:
Mỗi một phát biểu (subject, predicate, object) còn gọi là một bộ ba ( triple)
- Đồ thị RDF ( RDF Graph)
Tập các triple hợp lại tạo thành đồ thị RDF(RDF Graph) Các node trong đồ
thị có thể là các subject và object trong triple và các cung (arc)trong đồ thị là các predicate Cho nên một triple còn có thể được mô tả dưới dạng node-arc-node Hướngcủa đồ thị rất quan trọng Cung của đồ thị luôn bắt đầu từ subject đến object
Hình trên là mối quan hệ giữa các thành phần trong triple
Trang 19Biểu diễn Graph
Họ tên Trí tuệ nhân tạo Công nghệ phần mêm
Trang 22• B2: Tại tab OWLClasses Tạo các class và các subclass như hình :
• B3: Tại tab Property tạo các property
maSV : Datatype Property có Domain : SinhVien;Range: int
tenSV : Datatype Property có Domain:SinhVien; Range:string
soDiem1: Datatype Property có Domain : Diem;Range: int
Trang 23Tạo các Object property:
- coBangDiem: Domain: SinhVien Range: BangDiem
- cuaSinhVien: là property ngược của coBangDiem
- coDiem: Domain: BangDiem ; Range:Diem
- cuaBangDiem là property ngược của coDiem
- cuaMonHoc : Domain: Diem Range :MonHoc
- mhcoDiem là property ngược của cuaMonHoc
Trang 24• B4: Tạo các giới hạn
Tại tab OWLClasses tạo các giới hạn sau
coBangDiem: exactly 1 (1 SinhVien có 1 BangDiem )
Tại class Diem tạo giới hạn cho thuộc tính cuaMonHoc là exactly 1(Mỗi 1 điểm cho 1
Trang 26cuaMonHoc: CNPM_17
soDiem: 9
- ở thực thể CNPM_17 có
Như vậy, ta đã biểu diễn như sau :
SinhVien (có mã 9,tên Văn ) có BangDiem_21BangDiem_21 có Diem_18
Diem_18 của môn học CNPM_17 có số điểm 9
Bài tập kết thúc môn học
Trang 27Câ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 cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống kế thừa Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy 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 tâm để giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ thống Chúng ta 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ư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến 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 hại lớn sẽ xảy ra vào 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.