Thứ Ba, 9 tháng 9, 2014

Java EE Security

MDB

JMS

Architecting assignment using jpa, ejb & jsf

Bước 1 : Tạo new Web Application

B2 : Tạo 1 entity class from database để liên kết database với server  


ở mục Data Source ta chọn New Data Source để thêm connection 
 Sau đó chọn Database Conection và thêm new connection :

B3 : Chuột phải source code /new /Persistence/JPA Controller

Chọn Add All

Sau đó netbean sẽ tự sinh ra code.Ở mục PostJpaController ta code như sau : 

B4 : Chuột phải source code /new /Enterprise JavaBean/Session Bean 

Nhận xét:
 -EJB giúp đơn giản hóa các ứng dụng có tính chất phân tán, ứng dụng giao dịch dựa trên công nghệ Java.
 -Tính bảo mật rất cao.
 -Người lập trình không phải tập trung vào quản lý hay truy xuất CSDL , mà chỉ tập trung vào vấn đề giải thuật
 -Có thể tái sử dụng các gói EJB trong nhiều ứng dụng khác nhau.

Create & Use Session Bean

Bước 1 :Tạo New Web Application sau đó thêm thư viện JDBC

Bước 2 : Tạo class Account.java

Bước 3: Tạo class ConnectionUtil.java để kết nối với database

Bước4:Tạo class AccountDataAccess.java để viết code login

Bước 5 :Tạo 1 SessionBean


Bước 6 :Tạo 1 JSF Managed Bean

Bước 7: Add SessionBean vừa tạo vào trang JSF Managed Bean

Bước 8 : Viết code cho trang index.xhtml
Demo tại đây.

Nhận xét :
-Có 2 loại session bean phổ biến là stateless và stateful.
-Stateless bean không lưu trạng thái giao tiếp của client.
-Bạn có thể sử dùng stateless bean để thực hiện bất cứ action nào trong ứng dụng.
-Stateful bean có khả năng giữ lưu trữ trạng thái giao tiếp của client.

Create & Use Session Bean

Describe overview of technologies of Java EE & EJBc

I.Java EE :


1.Thế nào là Java EE :
  -Là nền tảng (còn gọi tắt là J2EE) mở, chuẩn để phát triển, triển khai, và quản lý các ứng dụng doanh nghiệp hướng thành phần , ứng dụng Web, Server.

2.Tại sao lại dùng Java EE :
     -Với developers
          +có thể sử dụng bất kỳ J2EE implementation để phát triển .
          +có rất nhiều tài nguyên trong cộng đồng J2EE.
          + Sử dụng các thành phần có sẵn của bên thứ 3.
     -Với Vendors
          +tự do sáng tạo trong cài đặt mà vẫn đảm bảo tính phổ biến của ứng dụng
          +không cần create/maintain các APIs cho riêng mình
     -Với Business Customer
          +đảm bảo tính phổ biến của ứng dụng
          +có nhiều thực thi để lựa chọn
          +rất nhiều công cụ để phát triển

3.J2EE APIs :
     -Java 2 Standard Edition (J2SE)
     -Java Database Connectivity (JDBC)
     -RMI-JRMP – Remote Method Invocation (RMI)
     -Java Interface Definition Language (Java IDL)
     -Remote Method Invocation – Internet Inter- ORB Protocol (RMI-IIOP)
     -Enterprise JavaBean (EJB)
     -Servlet
     -Java Server Page (JSP)
     -Java Message Service (JMS)
     -Java Naming and Directory Interface (JNDI)
     -Java Transaction API (JTA)
     -JavaMail
     -JavaBean Activation Framework (JAF)

 4.Các thành phần của J2EE :
-J2EE được xây dụng trên một mô hình container component. Bốn container component cốt lõi  liên quan đến bốn kiểu container được hỗ trợ trong J2EE bao gồm, Application Client, Applet, Web và EJB:
-Java Application – là 1 chương trình chạy bên trong Application Client container. Application Client container cung cấp những APIs hỗ trợ cho messaging, remote invocation, database connectivity và lookup service.
-Applet – Applet component là java applet chạy bên trong Applet container, chính là web browser có hỗ trợ công nghệ Java.
-Servlet và JSP(đây là Web-based component chạy ở bên trong Web container). Web container là một môi trường run-time cho servlet và jsp để cung cấp một cơ chế cho việc chuẩn bị, xử lý, định dạng nội dung động.
- Enterprise JavaBean (EJB) – EJB component là business component chạy bên trong EJB container. EJB component là phần nhân, cốt lõi của ứng dụng J2EE. EJB container cung cấp các dịch vụ quản lý transaction, bảo mật, quản lý trạng thái, quay vòng tài nguyên (resource pooling).

5.Vai trò của J2EE
     -J2EE cung cấp các dịch vụ, các hàm giao tiếp(API) và các giao thức để triển khai các ứng dụng đa tầng.
     -J2EE Framework cho phép phát triển những ứng dụng distributed bằng cách cung cấp 1 tập các dịch vụ cơ bản như quản lý transaction, kiểm tra security, quản lý trạng thái, quản lý tài nguyên.

Nhận xét :

-Java EE là cho phép chúng ta xây dựng ứng dụng tốn rất ít công sức.
-Java EEcó  rất nhiều các công cụ mã nguồn mở hữu ích cho phép mở rộng nền tảng hay đơn giản hóa quá trình phát triển ứng dụng
-Tuy nhiên, người ta không dùng Java EE để lập trình ứng dụng game

Install glassfish 4 as a windows service

I. Cài đặt GlassFish :
Bước 1: Tải glassfish server 4.0

Bước 2 : Giải nén , vào file bin và copy đường dẫn , sau đó run CMD và gõ câu lệnh

Bước 3 : Được kết quả hiện trên Task Manager

Bước 4 : Hoàn thành và kết quả thu được.

II.Windows Service Applications 

1. Giới thiệu chung
  - Dịch vụ của Microsoft Windows, cho phép bạn tạo các ứng dụng thực thi chạy trong Windows của mình.
  - Những dịch vụ này có thể được tự động bắt đầu khi máy tính khởi động, có thể được tạm dừng và khởi động lại, và không hiển thị trên giao diện người dùng.

 2. Cách khởi tạo
 -Sau khi bạn tạo và xây dựng các ứng dụng, bạn có thể cài đặt nó bằng cách chạy dòng lệnh InstallUtil.exe và đi qua các đường dẫn đến tập tin thực thi của server.
  - Bạn cũng có thể thực hiện rất nhiều các nhiệm vụ tương tự bằng nút Services trong Server Explorer hoặc bằng cách sử dụng các lớp ServiceController.

3: So sánh với Visual Studio Applications
  - Các tập tin thực thi của một dự án ứng dụng service phải được cài đặt trên máy chủ trước khi dự án có thể hoạt động một cách có ý nghĩa. Bạn không thể gỡ rối hoặc chạy một ứng dụng service bằng cách nhấn F5 hoặc F11.
  - Bạn phải tạo các thành phần cài đặt cho các ứng dụng service.
  - Các ứng dụng Windows service được chạy trong bối cảnh an ninh riêng và được bắt đầu trước khi người dùng đăng nhập vào máy tính Windows mà chúng được cài đặt.

4:Vòng đời của Service
  - Đầu tiên, các service được cài đặt vào hệ thống mà nó sẽ chạy
  - Sau khi dịch vụ đã được tải, bạn có thể bắt đầu một service từ các  Services Control Manager, từ Server Explorer, hoặc từ mã bằng cách gọi phương thức Star
  - Một dịch vụ đang chạy có thể tồn tại trong trạng thái này vô thời hạn cho đến khi dừng lại hoặc tạm dừng hoặc cho đến khi tắt máy tính. Một dịch vụ có thể tồn tại ở một trong ba trạng thái cơ bản: Chạy, Tạm dừng hoặc dừng.
  - Bạn có thể tạm dừng, dừng lại, hoặc tiếp tục một service từ các Services Control Manager, từ Server Explorer, hoặc bằng cách gọi phương pháp trong mã

5: Các loại Service
  -Có hai loại hình dịch vụ, bạn có thể tạo ra trong Visual Studio bằng cách sử dụng NET Framework.          + Service sử dụng Win32OwnProcess.
+ Service sử dụngWin32ShareProcess.

Nhận xét :
-Các bước cài đặt của glassfish dễ dàng và ngắn gọn hơn so với TomCat.
-Windows server rất thuận tiện, dễ dàng triển khai, quản lý và sử dụng.
-Hạ tầng bảo mật càng được quan tâm và nâng cao.
-Tính ổn định cao, luôn luôn sẵn sàng, khả năng mở rộng tốt và hiệu năng đạt cấp độ doanh nghiệp.

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

Rest Architecture & Restful Webservice

1.Giới thiệu :

- Trên giao diện web thường dùng phương thức HTTP để làm việc. HTTP dùng để trao đổi thông tin giữa client và server.
- Những công nghệ web chuẩn: SOAP, WSDL, XML, URL.
- Để phát triển web service có 2 cách tiếp cận:
     + Standards-based: dựa trên SOAP
     + REST-based : đơn giản hơn SOAP, coi web service là tài nguyên trên HTTP.

2.REST :

-Là 1 bộ những hướng dẫn và áp dụng trong việc thiết kế trên môi trường mạng.
-REST không phải là giao thức chuẩn.

3.Đặc điểm: 

-Có client, server : Client sẽ gửi thông tin lên server, và server sẽ trả kết quả về cho client.
-Có 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.
-Có cache :Client có thể giữ lại thông tin mà server trả về.
-Code on demand: Server sẽ chuyển code về client.
-Có phân tầng.

4.RESTful web service :

-Dựa trên Rest
-Dựa trên giao thức HTTP
-Không phụ thuộc vào nền tảng và ngôn ngữ
-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


5.Bộ thư viện JAX-RS :

-Là 1 bộ thư viện chính trong Java EE
-Dựa trên annotation

Nhận xét:

-Giúp giảm tải công việc và chạy ứng dụng nhanh.
-Dễ quản lí và đảm bảo an toàn cho tài nguyên.
-Nhẹ hơn SOAP
-SOAP là chuẩn nhưng càng ngày, những ứng dụng lớn đều chuyển sang dùng REST vì những ưu điểm của nó.

Thứ Sáu, 22 tháng 8, 2014

Java API for Webservice

1.Các bộ thư viện : 

       + 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).

2.XML Web Service :

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

3.JAXP :

-Thư viện SAX2 để đọc file XML nhưng không thể can thiệp được vào dữ liệu.
-Thư viện DOM2 dùng để thao tác dữ liệu của file XML.
-Bộ thư viện Transformer để transform các thông tin.

4.JAX-RPC :

-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.
      + Sử dụng 2 quá trình marshalling and unmarshalling.
      +Code trên java 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.

5.JAXR :

-Làm việc với UDDI và ebXML Registry.
-UDDI Registry : Giúp cho Web Service Provider làm việc dễ dàng hơn.
-ebXML Registry :
     +Hỗ trợ validate dữ liệu
     +Hỗ trợ việc đóng gói object
     +Hỗ trợ giao tiếp
     +Hỗ trợ phân quyền dữ liệu

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

7.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.
- Một số hạn chế của JAXB
        +Yêu cầu DTD và XML Schemas.
        +Khi tạo dữ liệu phải chỉ định JAXB biết cấu trúc cây.
        +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 để hỗ trợ thao tác dữ liệu XML dễ dàng và đơn giản hơn.
 -Mỗi một bộ thư việc lại có đặc điểm và công dụng riêng vì vậy cần thời gian để thao tác được thuần thục.

Developing web service using JAX-WS

Demo : 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. Logic for credit card number validation:
Step 1: Multiply the alternate digits of the credit card number by 2 starting with the second digit from the right (the first right--hand digit is the check digit).
Step 2: Add the individual digits comprising the products obtained in Step 1 to each of the unaffected digits in the original number.
Step 3: The sum of all digits obtained after Step 2 as well as unaffected digits must be a number which is a multiple of 10 (30, 40, 50, etc.) for the credit card number to be valid.

Chúng ta sẽ thực hiện như sau :
Tạo Java Web Application và tạo webservice
Code trong web service như trên
Test thử web service vừa tạo
Sau bước này chúng ta sẽ tạo một client , ở đây tôi chọn new Java Application :
Tạo Web Service Client
Copy đường dẫn WSDL khi tạo Web Service Client
Để kết nối được với nhau ta kéo method validateCart vào trong main class.
viết code trong main
Kết quả thu được
DEMO tại đây.

NHẬN XÉT :
-Có thể thực hiện edit web service mà không lo ảnh hưởng tới client.
-Có thể sử dụng cho nhiều client

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

Describe overview of webservice

I.Khái niệm WebService :
-Web Services là thành phần trong Application mà nó expose dữ liệu , cung cấp dịch vụ trong thế giới Web. -Nó là thành phần trong phần mềm.
-Nó chưa nghiệp vụ riêng của nó.

II.Các đặc điểm của WebServices :

-WebServices được xây dựng dựa trên xml và giao thức chuẩn : HTTP , SOAP..
-WebServices không phụ thuộc vào nền tảng và ngôn ngữ.

III.Tại sao cần WebServices :
-Là công cụ để kết nối các ứng dụng khác nhau (Application to Application )

IV. WebServices hoạt động như thế nào :
-Client sẽ gọi WebServices đến Server sử dụng SOAP trên giao thức HTTP.
-Server sẽ phân tích và trả về dữ liệu dạng XML.

V.Các component chính của WebService :
-Simple Object Access Protocol (Soap) : 1 Standard duy nhất của WebService để chuyển đổi dữ liệu.
-WebServices Description Language (WSD): để mô tả WebService.
-Universal Description, Discovery and Integration (UDDI): dùng mô ta phát hiện tìm kiếm và tích hợp.


Cụ thể ở đây : 
A.Soap
-Được dùng để trao đổi dữ liệu.
-Dựa trên giao thức HTTP
-Soap có nhiều phần :
B.UDDI 
-Là một Platform độc lập
-Sử dụng để mô tả WebService.

NHẬN XÉT :
a) Ưu điểm :
-Nó cung cấp khả năng hoạt động lớn với các 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 chuẩn. Giao thức và định dạng dữ liệu dựa trên văn bản (text).
-Nâng cao khả năng tái sử dụng.
-Tạo mối quan hệ tương tác lẫn nhau giữa các thành phần trong hệ thống.
b) Nhược điểm :
-Xảy ra thiệt hại trong quá trình chết WebServices.
-Quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt.
-Cần quan tâm tới bảo mật.

Chủ Nhật, 10 tháng 8, 2014

Describe technologies to apply xml into web application

I. Generating XML Data from Databases :


Như hình trên ta thấy rằng chúng ta có thể dùng nhiều kĩ thuật khác nhau như SQL  , Xquery , Dom , SAX.

II.Transforming Data into HTML

-Client-Side Transformation: Chuyển dữ liệu có dạng XML hoặc HTML đến client và client sẽ dùng XSLT để biến đổi sang dạng tương ứng.
-Server-Side Transformation: 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 bên ngoài để làm việc biến đổi dữ liệu.


III. Transforming Data into PDF


-Nguồn dữ liệu đầu vào là  XML, sau đó có thể involves ra các định dạng khác nhau.
-Chúng ta có thể dùng XSL-FO trong trường hợp chuyển đổi sang các file PDF.

IV. Importing\Exporting XML Data

-Chúng ta 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.

V.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 :
-XML rất phổ biến và quen thuộc.
-Dễ dàng biến đổi sang các định dạng khác nhau.
-Code đơn giản dễ hiểu
-Nhiều cách kiểm tra.