Wednesday, August 27, 2014

Introduction to Java EE & EJB

Trong bộ môn Developing Enterprise Applications with EJB (DEAE) (Phát triển ứng dụng doanh nghiệp), điều quan trọng đó là phải hiểu và sử dụng khi có JavaEE phiên bản 5 và EJB (Enterprise JavaBeans)


1. Java Beans.

   a. Giới thiệu:

Java Bean là một nơi đóng gói và lưu trữ lại các hành động trong Java, hãy coi nó như một class Java nhưng có thể giúp bạn rút ngắn và tiết kiệm dòng code.


Cấu trúc Java Bean


    b. Thành phần:

      * Thuộc tính của Java Bean:

        * Đóng gói và lưu trữ lại các dữ liệu và chức năng.
        * Cung cấp các dịch vụ liên quan dựa trên các đặc điểm kĩ thuật.
        * Giấu việc thực hiện trong ứng dụng, đóng gói dữ liệu và thiết kế lại giao diện để tái sử dụng.

      * Cấu trúc của Java Bean:

        * Nó nằm trong một Package, được xác định với java.bean.
        * Bean-class có thể sở hữu một constructor không có đối số.
        * Có hai phương thức trong đó: Set và Get. Getter được sử dụng để lấy các thuộc tính trong một Bean-class. Setter được sử dụng để có được những đặc tính của Bean-class.

Mình đã từng hướng dẫn làm một demo về Java Beans ở kì trước trong bài viết: Standard Actions và Java Beans




  2. Enterprise JavaBeans (EJB):

     a. Giới thiệu:

          Là hình thức mở rộng hơn so với JavaBeans, Enterprise JavaBeans giúp các bạn làm ứng dụng lớn để hướng tới các doanh nghiệp.

          Enterprise JavaBeans thường sử dụng Java làm ngôn ngữ chính, bao gồm nghiệp vụ và không phụ thuộc vào nền tảng. Hơn nữa nó có thể dễ dàng tái sử dụng và hỗ trợ cho phần lớn người dùng.

Minh họa cho sơ đồ hoạt động của EJB


     b. Ưu điểm:

       * Ưu điểm chính để bạn ưu tiên sử dụng EJB:
 
              - Đơn giản.
              - Tái sử dụng.
              - Khả năng mở rộng.
              - Có thể giao dịch (tương tác).


       * Đồng nghĩa với đó là nhược điểm:

                EJB không nên sử dụng nhiều nơi bạn cần vì nó khá nặng, thích hợp làm các ứng dụng lớn và không nên áp dụng nó vào ứng dụng nhỏ.


      c. EJB Container:

                Mô hình EJB giữa Client và Server, Container là nơi chứa EJB và vòng đời của nó. Chúng ta không thể gọi trực tiếp được ngay EJB mà phải thực hiện điều này qua Container

Sơ đồ minh họa cho EJB Container

 
* Ưu điểm: 

         - Quản lí vòng đời cho ứng dụng.
         - Quản lí trạng thái cho EJB.
         - Bảo mật cao.

Introduction and Install Glassfish to Windows Service Applications

Trong bài viết ngày hôm nay, chúng ta sẽ được hướng dẫn cách cài đặt Glassfish vào Microsoft Windows services, nó sẽ giúp ích rất tốt cho bạn để phát triển ứng dụng cho các doanh nghiệp.

* Hướng dẫn cài đặt Glassfish:

   Để cài Glassfish thì yêu cầu đầu tiên bạn phải có đó là NetBeans JDK 7 (bạn có thể tải JDK nếu như chưa có TẠI ĐÂY


Đây là phần mềm NetBeans mình đã cài sẵn Glassfish 4.0



Vào trang Glassfish để tải về phiên bản 4.0 như trong hình dưới




Giải nén Glassfish 4.0 khi tải về




Tiếp theo vào trong đường dẫn C:\Program Files\glassfish-4.0\glassfish\bin và click vào startserv.bat như trong hình dưới (Lưu ý: chạy bằng Run as Admin)





Copy sẵn đường dẫn C:\Program Files\glassfish-4.0\glassfish\bin và vào System của Windows, làm theo các bước dưới





Sau khi bấm vào Environment Variables nó sẽ hiện bảng trên, tìm PATHEXT, nhấn vào đó





Dán đường dẫn C:\Program Files\glassfish-4.0\glassfish\bin vào đó như hình minh họa





Tiếp tục mở cmd trong máy và Run as Admin rồi gõ các dòng lệnh trên





Mở localhost:4848 (mặc định) được cài đặt để chạy Service





Glassfish Service đã sẵn sàng bắt đầu được sử dụng



* Nhận xét: 


Như đã nói ở trên Glassfish là một phần quan trọng trong môn học này, bạn cần phải cài đặt nó để sử dụng trước khi bắt đầu các ứng dụng lớn liên quan đến Java EE & EJB.

















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."

Describe technologies to apply xml into web application

1. Generating XML Data from Databases



-Chúng ta có thể dùng rất nhiều các kỹ thuật khác nhau
+Dùng SQL để lấy dữ liệu từ database
+Sau đó dung Xpath, XQuery, DOM, SAX

2.Transforming Data into HTML



-Có 3 cách để transform dữ liệu sang dạng HTML
+Client-Side Transformation: Chuyển dữ liệu có dạng XML hoặc HTML đến client. Sau đó, client sẽ dùng XSLT để biến đổi sang dạng tương ứng
+Server-Side Transformation: Ngay trên server đẽ biến đổi sang dạng tương ứng rồi chuyển đến client
+External Transformation: Chúng ta sẽ có một ứng dụng khác để làm việc biến đổi dữ liệu

3. Transforming Data into PDF



-Nguồn dữ liệu đầu vào là duy nhất XML, sau đó có thể involves ra các định dạng khác nhau
-Cụ thể, trong PDF, chúng ta có thể dùng XSL-FO

4. Importing\Exporting XML Data


-Chúng ta hoàn toàn có thể dùng các bộ công cụ khác nhau để import hoắc export dữ liệu vào database và ngược lại

5.Validating Well-Formdness
-Chúng ta phải kiểm tra xem XML có đúng định dạng hay không
-Các bước để kiểm tra
 + Kết nối , phân tích dữ liệu XML
 + Tạo SchemaFactory
 + Nạp W3C XML schema
 + Phê chuẩn DOM tree
 + Kiểm tra lỗi

Nhận xét:
-Hiện nay, XML rất phổ biến và quen thuộc
-Chúng ta có thể dễ dàng biến đồi XML sang các định dạng khác như HTML để phục vụ cho công việc của chúng ta
-Code làm việc trong XML sử dụng như database cũng rất đơn giản và gọn gàng
-Chúng ta cũng có nhiều cách để kiểm tra tính hợp lệ của XML

Use validator to validate xml against a shema

Demo: Create a program that accepts two command line parameters. The first parameter must specify the name of an XML document and the second parameter must specify the name of a schema. The program should validate the XML document against the specified schema by creating a DOM source on the
document.
Bước 1: Tạo new project



Bước 2: Tạo file shiporder.xml


Bước 3: Tạo file shiporder.xsd


Bước 4: Viết code cho file main


kết quả


Demo: ValidatorDOMDemo

Demo :Create a program that accepts two command line parameters. The first parameter must specify the name of an XML document and the second  parameter must specify the name of Schema. The program must also validate the XML document against the specified schema by creating a SAX source on the 
document.

Bước 1: Tạo new project



Bước 2: Tạo file shiporder.xml


Bước 3: Tạo file shiporder.xsd

 
Bước 4: Viết code cho file main
code DefaultHandler


code chạy chương trình


kết quả


Demo:ValidatorSAXDemo

Nhận xét:
- Validator là một cách cao hơn để kiểm soát lỗi của một file xml
- Nó không chỉ check xem một file xml có thực sự chuẩn theo quy tắc hay không, nó còn kiểm tra một file xml có thỏa mãn một schema nào đó hay không
- Chương trình được an toàn hơn