Showing posts with label Developing Web Services with Java (DWSJ). Show all posts
Showing posts with label Developing Web Services with Java (DWSJ). Show all posts

Saturday, August 23, 2014

Build restful Web Service

Các bài tập và lí thuyết về Web Service chúng ta đã được học rất nhiều từ bài trước. Ngày hôm nay chúng ta sẽ bắt đầu làm một demo nhỏ để áp dụng RESTful vào Web Service.

Về RESTful, mình đã nhắc đến nó qua bài viết này: Overview of Rest Architecture & Restful Webservice

* ĐỀ BÀI: 
"Create an restful web services to bring weather information to your customer. Tạo một Web Service có RESTful để lấy thông tin về thời tiết tới thiết bị của bạn."


Đầu tiên mở Net Beans rồi sau đó bạn hãy tạp một ứng dụng Web và đặt tên cho nó





Sau khi tạo, hãy test trước RESTful Web Service để chạy ứng dụng



Khai báo các biến có trong yêu cầu đề bài



Thông tin bên Client với localhost lấy từ lúc test




Khi tạo một Client, hãy chú ý add thêm các Libraries 



* Nhận xét:

  "Sử dụng RESTful một phần nào đó khó khăn hơn so với thông thường là SOAP, nhưng về sau này tính khả dụng của ứng dụng sẽ tốt hơn rất nhiều."





Tuesday, August 19, 2014

Overview of Rest Architecture & Restful Webservice

Trong bài viết trước viết chi tiết để giới thiệu với các bạn về Web Service trên Java, bạn có thể tìm đọc lại qua đây Describe of Web Service in Java (Mô tả về Web Service).

Như tiêu đề, ở bài này mình sẽ giới thiệu những phần còn lại hoạt động trong Web Service mà lần trước chưa giới thiệu hết, về REST và RESTful Web Service.

1. Giới thiệu:

  Trên giao diện Web, chúng ta thường dùng giao thức HTTP để làm việc, trao đổi thông tin giữa Client và Server.

Và để tiếp cận với Web Service chúng ta cần tới hai cách tiếp cận, đó là dựa vào giao thức thông qua SOAP và thông qua REST với HTTP là tài nguyên chính.

2. Đặc điểm:

    a. Thành phần của REST:

Khác với SOAP, bạn nên chú ý REST không phải là một giao thức đúng nghĩa.

So sánh cách làm việc của SOAP và REST trong Web Service


                  - Client, Server : Chắc chắn có rồi, thành phần chính để nhận và trả dữ liệu.
                  - Stateless: Để nhận diện thông tin từ Server và Client.
                  - Cache: Dùng để lưu trữ.
                  - Code on demand.

        Ngoài ra World Wide Web (WWW) cũng là một ví dụ về cấu trúc của REST.

    b. Thành phần của RESTful web service:

               RESTful làm việc dựa trên REST cũng như HTTP, chúng hoạt động dựa trên vòng lặp



Cách làm việc của RESTful đơn giản là Client gửi thông tin tới Server thông qua HTTP và sau đó chờ kết quả sẽ trở về. Trong quá trình hoạt động, thông tin sẽ được xử lí qua REST Web Server Client

Saturday, August 16, 2014

Describe Java API for Webservice (Mô tả các API trong Web Service)

1. Giới thiệu:

   J2EE sẽ cung cấp 4 bộ thư viện APIs để chúng ta có thể dễ dàng làm việc với Web Service:

            - Java API for XML Processing (JAXP).
            - Java API for XML-based RPC (JAX-RPC).
            - Java API for XML Registries (JAXR).
            - SOAP with Attachments API for Java (SAAJ).



Minh hoạ cho các thư viện trong một dự án thực nghiệm bán Coffee


2. Thành phần:

     Để có cách nhìn khái quát hơn, chúng ta sẽ tiến hành đánh giá bốn thư viện chính và các thành phần khác đóng góp quan trọng trong Web Service.

            
        a. XML Web Service:
                
                 Các công việc làm việc của XML trên Web Service đều sẽ dựa trên các giao thức HTTP, XML, SOAP, TCP/IP.

                  * Đặc điểm:

                        - Cấu trúc phi trạng thái .
                        - Cấu trúc không đồng bộ 
                        - Nền tảng và ngôn ngữ hoạt động độc lập.


XML Web Services sẽ giúp Clients và Servers kết nối dễ dàng hơn.


         b. Java API for XML Processing (JAXP):

            Java API for XML Processing có khả năng cung cấp các chứng thực cũng như phân tích các tài liệu XML để viết các ngôn ngữ JAVA. Để phục vụ việc cung cấp chúng cần các thư viện con khác như:

                   - Thư viện Simple API for XML (SAX2) để đọc file XML dù nhiệm vụ của nó là không thể thực hiện được trên dữ liệu.
                   - Thư viện Document Object Model (DOM2) để chỉnh sửa XML.
                   - Thư viện Transformer để chuyển đổi các thông tin (như minh họa ở dưới).


Minh họa Transformer trong JAXP

Về JAXP, mình từng có bài viết minh họa bộ thư viện này qua bài viết: Introduction to JAXP (Giới thiệu về JAXP)


       c. Java API for XML-based RPC (JAX-RPC):

               Server-Side RPC (Remote Procedure Calls) Runtime là nơi cung cấp các dịch vụ dành cho Web Service. Trong khi đó Client-Side RPC Runtime là nơi cần dịch vụ.



         * Lợi ích mà nó mang lại:

               - Môi trường SOAP là chuẩn được sử dụng trên Web Service
               - Sử dụng 2 quá trình marshalling and unmarshalling. (Được hiểu là quá trình chuyển đổi bộ nhớ một Object)

         * Cách làm việc (nhìn sơ đồ minh họa ở trên):

               - Synchronous request- response mode.
               - One way RPC mode
               - Non-blocking RPC invocation mode.


     d. Java API for XML Registries (JAXR):
         
            JAXR có mối quan hệ với ba thành phần chính đó là:

                             - ebXML Registry.
                             - UDDI Registry.
                             - Other: Là các thành phần khác phục vụ cho Web Service Provider.

Minh họa cho JAXR


         e. SOAP with Attachments API for Java (SAAJ):

                    SAAJ được hiểu cho phép người dùng (rộng hơn là Client) gửi thông tin SOAP với đính kèm có sẵn trong Web Service.


Minh họa mô hình hoạt động của SAAJ


3. Nhận xét:


 "Bài viết ngày hôm nay không mục đích gì khác ngoài việc giới thiệu qua cho các bạn về những thư viện quan trọng trong Web Service.


Hi vọng nó sẽ là tiền đề tốt cho các bạn hiểu hơn và bắt tay vào những công việc đòi hỏi yêu cầu cao hơn trong Web Service."

Friday, August 15, 2014

Use JAX - WS to develop SOA application (Sử dụng JAX và WS)

Ở bài viết trước, chúng ta đã được học về khái niệm về Web Service, nếu bạn chưa xem thì có thể xem lại bài này: Describe of Web Service in Java (Mô tả về Web Service).

Để hiểu được rõ hơn, trong bài viết này mình sẽ hướng dẫn tạo một demo nhỏ về Web Service trên nền Net Beans bằng cách sử dụng JAX - WS.

1. Giới thiệu:


2. Thực hành:

   Web Service có hai phần quan trọng đó là CLIENT SERVER

    a. Tạo Server:

Đầu tiên mở Net Beans rồi sau đó bạn hãy tạp một ứng dụng Web và đặt tên cho nó




Khi tạo xong một Project, tiến đến Source Packages để tạo một class Web Service. Chọn Other như trong hình




Tìm và chọn mục Web Service như hình dưới, đặt tên cho file.





Sau khi tạo, mở file Web Service và có thể dễ dàng nhận thấy nó có phần thiết kế giao diện




Trong file Web Service tiến hành khai báo các biến




Tiếp theo làm như hướng dẫn để test local host cho Server





Khởi chạy trên Web sẽ hiện đường link cho local host, copy đường dẫn đó về





Trang home JSP, tiến hành chỉnh sửa thông tin trên trang chủ và dán đường link trên vào




Chạy thử trang home để thấy kết quả tạm thời




    b. Tạo Client

Chúng ta sẽ tạo một Project mặc định là Client để nhận thông tin của Server. Tiến hành tạo và đặt tên




Trong Source Packages của Client, tạo một class mới (Web Services Client như hình minh họa). Nếu không thấy thì vào Other - Web Service





Trong Web Service Client, dán đường dẫn của WSDL từ local host vào




Kết quả sau khi add local host vào Web Service




Tiến hành khai báo xác nhận thông tin từ Client qua Server





Chạy kết quả thử, nếu đúng thì quá trình trả về kết quả Đúng




Còn nếu sai mã lệnh trong quá trình làm thì kết quả sẽ trả về là Sai



3. Nhận xét:

"Với demo nhỏ ở trên, chúng ta đã hiểu rõ hơn về cách làm một Web Service, tạo một Server và tạo một Client đơn giản. Hi vọng với bài tập trên bạn đã có thể làm một Web Service một cách tốt nhất, chúc bạn thành công."








Thursday, August 14, 2014

Describe of Web Service in Java (Mô tả về Web Service)

Ở kì trước làm việc trên Microsoft Visual Studio chúng ta đã được học và thực hành với Web Service. Còn giờ bài viết này sẽ giới thiệu về Web Service trên nền Java với Net Beans.


1. Giới thiệu:

 Web Services (được hiểu là Dịch vụ Web) là một thành phần ứng dụng giúp liên kết người dùng và Server thông qua World Wide Web (WWW).  Trong đó chúng sử dụng với XML, hoặc HTTPSOAP là cơ sở dữ liệu chính.


Mô tả hoạt động của Web Service


 Web Services có khả năng cho phép hiển thị và cung cấp dữ liệu tới các Client (Người dùng). Client ở đây rất đa dạng mà không bó buộc một phạm vi nhất định, vì Web Services không yêu cầu một ngôn ngữ nhất định.


2. Đặc điểm:

       * Web Service có ba thành phần chính:




                  - SOAP (Simple Object Access Protocol): Giao thức truyền thông giữa nền tảng (platforms) khác nhau và ngôn ngữ lập trình thông qua Internet.

                  - WSDL (Web Services Description Language): Là ngôn ngữ mô tả dựa trên nền XML để truy cập.

                  - UDDI (Universal Description, Discovery and Integration): Có khả năng cho phép lưu trữ lại thông tin.


    * Cách làm việc:

            Phương thức làm việc của Web Service đơn giản là nhận và trả yêu cầu giữa Client và Web Service



                 Điểm đáng chú ý là trao đổi từ Client tới Web sẽ sử dụng ngôn ngữ SOAP trên nền HTTP. Tại đây Web Service sẽ phân tích và trả về Client SOAP dưới dạng XML.



3. Nhận xét:

       " Web Service áp dụng thực nghiệm rất tốt, bản thân nó phục vụ cho nhiều dịch vụ liên quan tới máy chủ hay khách hàng. Chăm sóc bán hàng, tài chính, quản lí tài khoản cần phải thông qua Web Service, nó sẽ kết nối lại tất cả thành một để quản lí dễ dàng hơn."