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ụ:
2
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ụ:
?
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ụ:
4
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
2.2.
móc nối sự phụ thuộc giữa các đối tượng trong file cấu hình.
Spring Context/Application Context.
Phía trên của Core package là Context package - cung cấp cách để truy
2.3.
Khái niệm cơ bản là BeanFactory - cài đặt factory pattern cho phép bạn
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,...
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
2.6.
transaction management.
Spring Web module.
Spring Web package cung cấp đặc tính của web như: chức năng fileupload, khởi tạo IoC container sử dụng trình lắng nghe serlvet và weboriented 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
2.7.
các tham số của request vào các đối tượng domain.
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
viewResolver 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()
11
trả 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
12
helloView.jsp
Chạy 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ư 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.
14
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.
-
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.
15
Tì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
Là một chuẩn mở
Độc lập với ngôn ngữ
DOM và SAX là tập các giao diện mở, độc lập với ngôn ngữ
Sử dụng cho web
Biểu diễn XML
XML gồm 3 thành phẩn là thẻ, phần tử và thuộc tính.
Thẻ gồm 3 loại là thẻ mở, thẻ đóng và thẻ chứa phần tử rỗng
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ả
16
o 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
Ví dụ :
NguyenThien VanD08CNPM119/02/1990
Xử lý
Hướng dẫn xử lí cung cấp 1 đường dẫn để hướng dẫn cho chương trình máy tính hoặc
ứng dụng . Chúng nằm trong tag “” và “?>”.
Ví dụ
Câu 2: Tìm hiểu về RDF
17
-
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ướng
củ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
Biểu diễn XML:
99
18
5555
Biểu diễn Graph
Họ tên
Trí tuệ nhân tạo
Công nghệ phần mêm
Linh
9
9
19
Hùng
5
5
Lan
5
5
Biểu diễn XML:
995555
20