Thứ Bảy, 23 tháng 8, 2014

Build Restful Webservice

Đề bài: Create an restful webservice to bring weather information to your customers.

Describe overview of Rest & Restful

I.REST
REST

1.Khái niệm.

- Là một tập những hướng dẫn và nguyên lý được áp dụng cho kiến trúc trên mạng.
- Là phong cách kiến trúc trên mạng hệ thống được thiết kế.
- Có giao thức,thành phần dữ liệu,hyperlinks,và client như là một phần của hệ thống.
- Ví dụ WWW là kiến trúc REST điển hình.

2.Đặc điểm.

- Là client-server:client gửi request lên server ,server trả kết quả về cho client- Stateless: Client gửi toàn bộ thông tin lên server để server có thể nhận biết client là ai để trả về toàn bộ thông tin cần thiết. Sau khi xử lý xong, server sẽ quên ngay lập tức.
- Client có thể giữ lại thông tin mà server trả về,giúp cho ứng dụng nhẹ và chạy mượt hơn.
- Code on demand: Server sẽ chuyển code về client.
- Có phân tầng.

II.RESTfull Webservice

1.Đặc điểm

- Dưa trên kiến trúc của REST
- Truy vấn sử dụng HTTP.
- Nền tảng và ngôn ngữ độc lập
- Nhẹ hơn so với  sử dụng SOAP.
- Sử dụng Uniform Resource để gửi dữ liệu, Client gửi thông tin lên server thông qua HTTP request và server trả kết quả về dựa trên HTTP response.Thông tin trả về có thể là JSON,XML..

2.Các phương thức của HTTP

- POST:gửi thông tin lên server.
- GET:lấy thông tin từ server về.
- PUT: cập nhật thông tin.
- DELETE:xóa thông tin trên server.

3.Bộ thư viện JAX-RS

- Là bộ thư viện chính thông trong Java EE ,xây dựng dựa trên annotation.
- Nguồn có 2 dạng:
       + Root resource class.
       + Sub resource.


Nhận xét: 

- RESTfull Webservice đang được sử dụng thay thế cho SOAP nhờ vào những ưu điểm của nó mang lại trong việc xây dựng ứng dụng
- Nó giúp cho ứng dụng nhẹ và chạy mượt hơn.

Describe Java API for Webservice

 I.Thư viện
J2EE cung cấp 4 thư viện Web Service APIs để làm việc với Web Service:
       + Java API for XML-based RPC (JAX-RPC).
       + SOAP with Attachments API for Java (SAAJ).
       + Java API for XML Registries (JAXR).
       + Java API for XML Processing (JAXP).

II.Web Service sử dụng XML

XML on WebServices

- Các thao tác làm việc với web service đều thông qua xml sử dụng giao thức HTTP, XML, SOAP, TCP/IP
- Đặc điểm: + Không phụ thuộc vào nền tảng cũng như ngôn ngữ
                   + Cấu trúc phi trạng thái.
                   + Kiến trúc không đồng bộ.
   
III. Thư viện JAXP


Thư viện JAXP

- Tac có SAX2 để đọc file XML nhưng nó lại không thể thao thác với dữ liệu.
- Và như vậy ta có DOM2 dùng để thao tác dũ liệu của file XML và
 thư viện Transformer để transform các thông tin.

IV. Thư viện JAX-RPC

Thư viện JAX-RPC

Hoạt động : - Server-Side RPC Runtime là nơi cung cấp các dịch vụ web service
 - Client gửi thông tin đến server dưới dạng SOAP trên giao thức HTTP và ngược lại
 - Client và server làm việc với nhau thông qua WSDL
 - Ưu điểm:
      + Sử dụng môi trường SOAP là chuẩn duy nhất trên web service.      
      + Code rất đơn giản.
  - Cung cấp ba phương thức làm việc
      + Synchonorous request- response mode: Client phải đợi server hoàn thành
      + One way RPC mode: Không nhận thông tin trả về
      + Non-blocking RPC invocation mode: Client vẫn có thẻ làm những công việc khác

V. Thư viện JAXR

JAXR


- AXR cho phép các lập trình viên Java sử dụng duy nhất, dễ sử dụng API để truy cập vào các cơ quan đăng ký XML. Một mô hình thông tin thống nhất JAXR mô tả nội dung và siêu dữ liệu trong đăng ký XML. 
JAXR cung cấp cho các nhà phát triển khả năng viết các chương trình khách hàng registry bị di động trên đăng ký mục tiêu khác nhau. JAXR cũng cho phép khả năng giá trị gia tăng vượt ra ngoài các văn phòng đăng ký bên dưới.

VI. Thư viện SAAJ


  - Cho phép người sử dụng tạo và gửi thông điệp SOAP với đính kèm thông qua package javax.xml.soap
  - SOAP cung cấp định dạng tin nhắn cơ bản cho Web services. Nó cho phép người dùng tạo và đọc tin nhắn theo chuẩn SOAP 1.1 và SOAP với đính kèm.

VII. Thư viện JAXB

JAXB

  - Cung cấp các class Java sinh ra từ XML schemas có tác dụng giúp thao tác với file XML dễ dàng hơn.
  - Nhược điểm của JAXB là:
        + Yêu cầu DTD và XML Schemas.      
        + Không hỗ trợ tạo DTD pháp lý như Notation, Entity hay Entities.

Nhận xét
- Web Service cung cấp rất nhiều bộ thư viện để thao tác với XML dễ dàng hơn.
- Mỗi bộ thư viện có cách làm việc và chức năng khác nhau.

Use JAX - WS to develop SOA application

Đề bài : Happy Consumer International Bank (HCIB), a leading multinational organization having established branches all over the world is now starting its banking services in India. The Bank has employed you as a full time System Consultant with them. It wants to deploy a Web Service that will offer credit card validation and online banking facilities that are typically offered by all the multinational banks. The main priorities for the online banking system are reliability, availability and serviceability of the application. Additionally, the system should be highly scalable and secure as the bank expects substantial growth in the future. Consider yourself to be a part of the team that implements the credit card validation module. Develop a JAX_RPC based Web Service that exposes the boolean validateCreditCard(cardNumber) method. This method implements the logic for credit card number validation, and returns a boolean value indicating whether the card number is valid or not.
Bước 1: Tạo new project JavaWeb

Tạo một Web Application làm Servies
Tạo Web Servies.


Xử lý code cho file Web Services.

Test thử Web Services


Tạo new project Java Application là Client.
Tạo Web Services Client
Copy WSDL vừa test thử vào WSDL URL



Kéo thả validateCart vào file main trong Client.

Bước 8: Viết code cho main.

Kết quả sau khi Test.
Nhận xét:
- Code dễ dàng sử dụng mà sửa lỗi.

- Code gọn gàng và đơn giản.
- Web service sử dụng giao thức chuẩn mở nên có thể dùng cho nhiều client.
- Ứng dụng chạy Service khá chậm.

Describe overview of webservice

I. Khái niệm Webservice

Mô hình Webservice

- Web Services là một thành phần trong Application có tác dụng hiển thị dữ liệu và cung cấp các dịch vụ trong web.  
- Mỗi service là một thành phần của ứng dụng. Nó chứa các nhiệm vụ riêng 

- Web Sercive cho phép client và server tương tác trong các môi trường khác nhau. Có thể triển khai bởi một phần mềm ứng dụng phía server (như PHP, Oracle Application server, Microsoft.NET).

II. Đặc điểm
- Web Services dựa trên xml và các giao thức chuẩn như: HTTP,SOAP 
- Không phụ thuộc vào ngôn ngữ.

III. Tác dụng



Sử dụng Webservice.
 - Dùng để kết nối tất cả các dịch vụ khác nhau .
 - Cung cấp các dịch vụ một cách dễ dàng .
 - Kết nối các business với nhau.

IV. Hoạt động 

Cách Web Service hoạt động.
- Đầu tiên Client sẽ gọi đến web service trên môi trường internet, sử dụng ngôn ngữ SOAP trên phương thức HTTP.
- Tiếp theo web service sẽ xử lý dữ liệu của client để biết client muốn gì 
- Cuối cùng web service sau đó sẽ trả lại dữ liệu dưới dạng xml.


Trong web service có các thành phần :
- SOAP : dùng để truyền tải dữ liệu.
- WSDL : dùng để mô tả cấu trúc dữ liệu.
- UDDI : dùng để kết nối, liên lạc giữa server và client.

V.Nhận xét:
- Ưu điểm :
 + Như ở trên ta đã biết web service không phụ thuộc vào nền tảng nên có khả năng sử dụng rộng với các phần mềm khác nhau.
 + Sử dụng giao thức chuẩn mở.
 + Tái sử dụng một cách dễ dàng.
 + Phù hợp phát triển các phần mềm, ứng dụng rộng.

- Nhược điểm:
 + Nếu dịch vụ web chết có thể gây ra thiệt hại lớn.
 + Vấn đề an toàn và bảo mật chưa cao.