Thứ Ba, 9 tháng 9, 2014

Java EE Security

Autthentication :

-là quá trình xác thực ,nhằm xác định một tài khoản đang vào hệ thống.Nếu không có quá trình xác thực này ,hệ thống của bạn sẽ không biết được tài khoản nào đang truy cập để có các phản hồi phù hợp.

-Cụ thể trong ứng dụng EJB,các server trong EJB sẽ xác thực tài khoản đang đăng nhập thuộc kiểu tài khoản nào và cấp các role cho tài khoản đó.

-Có 2 kiểu xác thực:
 +Digital certificates có thể được sử dụng để xác định người dùng cuối cùng, máy chủ, và các thành phần phần mềm khác.
   +Digital certificate-based authentication có thể được sử dụng trên các máy chủ, khách hàng, hoặc cả hai, tùy thuộc vào nhu cầu của ứng dụng

Thứ Hai, 8 tháng 9, 2014

JMS

Yêu cầu : 
 TechSchool Solutions designs software systems for schools. One of the problemsthat the schools face is teacher absenteeism or teachers taking leaves on a short  notice. The schools find it difficult to call substitute teachers in such a short time. TechSchool Solutions is planning to build a system which would enable the school teachers to request for leaves using the school portal. The system would then send an e-mail to all the substitute teachers that have been registered in the system. As a member of the development team, you are required to build the JMS-based module. Your tasks involve developing a session bean that acts as a message listener and receives a message from the JMS queue whenever a teacher puts in a leave request. The session bean, then calls other modules that handle rest of the processes.

Giải quyết vấn đề : 
Bước 1:Mở trình duyệt gõ localhost:4848



Chọn Destination Resource

Chọn New

Bước 2 : Tạo 1 web application  sau đó ta tạo  một Java Managed Bean. Ở đây ta gọi JMS bằng cách sau : 



Code tự sinh sẽ như sau : 
Sau đó ta khai báo các thông số : 

Ở trang index ta điền nội dung : 
Kết quả thu được : 

JPA, EJP & JSF

Yêu cầu đề bài Apply to your course assignment by get done 2 user stories

Giải quyết ván đề :
B1 : tạo 1 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 

Kết quả thu được : 
Nhận xét : 
- Lượng code phải làm khá ít phần lớn là code tự sinh do netbean
- 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.

Chủ Nhật, 7 tháng 9, 2014

Create & Use Session Bean

Yêu cầu : sử dụng session bean áp dụng vào asm để làm chức năng login.

Giải quyết vấn đề : 
B1 : tạo 1 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 AccountJpaController ta code như sau : 

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


Kết quả thu được : 





Nhận xét : 
- Gặp nhiều khó khăn với liên kết server
- Gặp lỗi rất khó sửa do không có kĩ năng đọc lỗi
- Code ít phần lớn là code tự sinh của netbean

install glassfish 4 as a windows service

Download server tại trang web : https://glassfish.java.net/download.html Sau khi download ta giải nén và copy vào thư mục C:\Program Files. bật CMD run as Administrator và pase đường dẫn vào đó.
chạy câu lệnh : asadmin create-service
sau đó máy sẽ cài đặt thư viện glassfish.
Chạy task manager chọn tab Services, run domain1

kết quả:

Thứ Bảy, 6 tháng 9, 2014

introduction to Java EE & EJB

Nội dung của bài học là giới thiệu về Java  Enterprise Edition và Enterprise Java Beans.




Định nghĩa : EJB(Enterprise Java Beans ) là 1 component của server.Nó là một thành phần chạy code bên phía server.Nó được dùng để xây dựng ứng dụng enterprise. Khi chúng ta muốn phát triển những ứng dụng enterprise lớn cho doanh nghiệp thi chúng ta mới cần sử dụng EJB.
Mỗi EJB bao gồm một cái business applications.

EJB được gọi là một component độc lập vì nó là một đoạn code đưa ra ngoài một behavior và chúng ta sẽ gọi ra khi cần sử dụng và được tái sử dụng ở rất nhiều ứng dụng khác nhau 
Tại sao nên sử dụng EJB :
-Vì dễ tạo ra.Nó là một lớp java bình thường chúng ta chỉ cần thêm một chút các nocation vào là có thể tạo ra một EJB.
-EJB có dạng component nên nó rất dễ tái sử dụng.
- EJB được nhúng trong các server contener mà các contener này có khả năng hỗ trợ cho việc phát triển ứng dụng lớn nên nó có tính scalable rất cao.
Tổng thể về EJB :  Là một ứng dụng cho người dùng , có cấu trúc nhiều tầng  , nhiều lớp. 
Tầng đầu tiên là : tần giao diện (tâng client) đó có thể là trình duyệt hay một ứng dụng bình thường.
Tầng tiếp theo là tầng web : tầng này được phát triển bằng servlet hoặc Jsp tầng này lấy các câu lệnh của tầng EJB để hiển thị lên tầng giao diện
Tầng EJB có nhiện vụ sử lý nghiệp vụ và tầng cuối cùng là tầng làm việc với database.


Nhận xét : 
Ưu điểm : chạy trên java nên không phụ thuộc vào nền tảng do được phát triển ở dạng component nên nó có tính tái sử dụng và được chạy trên server.
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.

Nhược điểm : rất nặng nên khi chúng ta mốn phát triển các ứng dụng vừa và nhỏ thì không nên sử dụng EJB.

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

Java API for Webservice

Nội dung bài học : giới thiệu các bộ thư viện mà java cung cấp để chúng ta có thể làm việc với webservice bao gồm :
 + 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).


1/ Web service dùng XML : 
-Tất cả 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ó cấu trúc phi trạng thái , kiến trúc không đồng bộ và không phụ thuộc vào bất cứ nền tảng cũng như ngôn ngữ nào 
2/ Bộ thư viện JAXP : 
bao gồm thư viện SAX2, DOM ,DOM2 : có chức năng quét file XML và thao tác trên nó.

3/ Bộ thư viện JAX-RPC 
Là bộ thư viện có trong java E 1.4 có chứa mô hình bao gồm :
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 trên web service
      + Sử dụng 2 quá trình marshalling and unmarshalling.


4/ Bộ thư viện JAXR : 
AXR cho phép các lập trình viên phần mềm Java để sử dụng duy nhất, dễ sử dụng trừu tượng API để truy cập vào một loạt 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.
5/ Bộ thư viện SAAJ : 
- 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
 - 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

6/ Bộ thư viện JAXB : 
- Không chỉ là bộ thư viện trên java làm việc với webservice mà nó được dùng trong rất nhiều các thư viện khác.Nó có nhiệm vụ convert các dữ liệu java sang XML và ngược lại.JAXB có cấu trúc như hình : 

   

Nhược điểm của JAXB

  • Cần XML phải có DTD hoặc Schame và thư viện này không thể sử dụng với XML nói chung được
  • Cần phải cho JAXB biết cây được tổ chức như thế nào để giúp ứng dụng đơn giản hơn
  • JAXB không hỗ trợ các cấu trúc của DTD như là Internal subsets, NOTATIONS, ENTITY và ENTITYS, Enumerated, NOTATION nó chỉ hỗ trợ cho Schame mà thôi

Overview of Rest Architecture & Restful Webservice

Mục tiêu bài học :
_ Diễn giải kiến trúc REST
_Các dàng buộc , đặc điểm của kiến trúc REST
_Giải thích về RESTful trong web service
_Những yêu cầu về việc phát triển RESTful webservice
_Bộ thư viện JAX-RS

1/ REST : là một tập hợp các hướng dẫn và nguyên lý áp dụng trong thiết kế môi trường web.(REST không phải là một giao thức cũng như là một chuẩn).

2/ Các dàng buộc của REST :
- Nguyên lý làm việc ở đây là trong một ứng dụng các client sẽ gửi thông tin lên server và các server sau khi nhận thông tin sẽ trả kết quả về với client.
- Giao thức Http là Stateless khi client gọi lên server thì client phải gửi toàn bộ các thông tin cần thiết để server có thể nhận biết client ấy và trả về.Khi xử lý xong thi server sẽ quên ngay lập tức 
- Cache : các client có thể giữ lại các thông tin mà server gửi trả về .
- Code on Demand : mỗi khi server cần một thông tin gì đó thì server sẽ chuyển code đó về.
- Tất cả các tài nguyên được quy về một chuẩn duy nhất.

3/ RESTful web service : 
_ Nó dựa trên REST và sử dụng Http
_ Không phụ thuộc vào một nền tảng ngôn ngữ nào.
_ Rất nhẹ so với  SOAP( chuẩn của web service ) do đó làm ứng dụng trở nên nhanh hơn.
_ Trên môi trương web nó sử dụng Uri.



4 / Những yêu cầu về việc phát triển RESTful webservice yêu cầu có đủ :

- Resoures
-Uri
-Http methods

5/ Bộ thư viện JAX-Rs :
- Là một bộ thư viện chính thống trong java EE và được dựa trên annotation.

Nhận xét :
- Có thể thấy rằng nhờ có REST việc quản lý tài nguyên an toàn và đơn giản hơn rất nhiều do Rest quy về một dang Uri.
- Rest nhẹ hơn Soap nhiều nên càng ngày càng được ưa chuộng

developing web service using JAX-WS

Yêu cầu đề 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. 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.

Giải quyết vấn đề :  Bài toán yêu cầu viết 1 chương trình có chức năng check credit Card hợp lệ.Đầu tiên ta tạo 1 java web application có chức năng như 1 server : Sau đó ta tạo 1 webservice bằng cách chọn new  > other > Web service > Web service


class web service này ta tạo lớp boolean validate để trả về giá trị đúng hoặc sai dựa theo thuật toán đề bài yêu cầu :


Sau đó ở thư mục web Service ta chọn Test WebService để hiển thị ra cấu hình và thu được kết quả :


Ở đây ta sẽ sử dụng đường dẫn WSDL để kết nối với client.
Tạo 1 java application làm client.Sau đó create 1 web service client trong mục web service như trong hình


Sau đó copy đường dẫn WSDL vừa có vào mục WSDL Url:


Netbean sẽ tự zen code ra cho chúng ta.Mở foder web service references rồi kéo mục creditCardValidator vào class main trong java application vừa tạo .rồi in ra credit card mà ta muốn check :
Ta chạy và thu về được kết quả.
Nếu credit card hợp lệ :
và nếu không :