Thứ Năm, 29 tháng 9, 2016

Bài mở đầu về java

Java là gì?

- Java là một Ngôn ngữ lập trình và là một Platform.
Ngôn ngữ lập trình: Java là một ngôn ngữ lập trình có tính bảo mật cao, hướng đối tượng, bậc cao và mạnh mẽ.
Platform: Bất cứ môi trường phần cứng hoặc phần mền nào mà trong đó một chương trình chạy, thì được biết đến như là một Platform. Với môi trường runtime riêng cho mình là JRE và API, Java được gọi là Platform.

Java EE là gì?

 -"Java EE" tên đầy đủ là "Java Enterprise Edition" dịch sang tiếng việt có nghĩa là là "Java Phiên Bản Doanh Nghiệp", nó là một nền tảng (platform) dành cho việc xây dựng các ứng dụng (application) cấp doanh nghiệp(không phải doanh nghiệp mà dùng để xây dựng những ứng dung nhỏ cũng ok ^_^).

-Java EE tập hợp nhiều công nghệ kỹ thuật và phối hợp chúng với nhau, việc này sẽ làm giảm đáng kể chi phí và độ phức tạp cho việc xây dựng, phát triển, triển khai, quản lý các tầng làm việc (managing multi-tier), cho các ứng dụng máy chủ trung tâm.

-Java EE được xây dựng dưa trên nền tảng Java SE và có thêm các tập APIs (application programming interfaces) để phát triển các ứng dựng phái máy chủ một cách nhanh chóng(running), linh động(portable), mạnh mẽ(rob), khả năng mở rộng cao, đáng tinh cậy và bảo mật (vãi cả đạn thằng lìn nào mô tả cái kiểu gì suy nghĩ nửa ngày trời mới viết ra được câu có vẻ hợp lý mà chả biết đúng ý nó không nữa).
Java EE đã ra rất nhiều phiên bản và có rất nhiều thành phần mới hoặc hỗ trợ mới khác nhau theo từng phiên bản tuy nhiên bài viết này chỉ nhắm vào mục đích là khái miện cơ bản về Java EE, nên mình chỉ nói tới hai phần chủ chốt nhất trong nền tảng Java EE là:




  • Enterprise Java Beans (EJB): một thành phần kiến trúc của các ứng dụng server được quản lý, sử dụng để đóng gói (encapsulate) các business logic (nghiệp vụ logic hay nghiệp vụ luận lý) của các ứng dụng. Kỹ thuật EJB cho phép nhanh chóng tạo ra các ứng dụng có các tính chất như là đơn giản hóa việc phân phối(simplified development of distributed: dạng như cài đặt hay trang bị cho nhân viên, khách hàng), dễ dàng tương tác (transactional), an toàn(secure) và linh hoạt(portable) dựa trên công nghệ Java.
  • Java Persistence API (JPA): một framework cho pháp nhà phát triển quản lý dữ liệu bằng cách sử dụng ánh xạ đối tượng quan hệ (Object Relational Mapping - ORM) trong các dứng dụng được xây dựng trên nền tảng Java.
  •  Rút ngắn thời gian đáp ứng thông qua hoạt động truyền thông hai chiều.
  •  Đơn giản hóa việc lọc và trao đổi dữ liệu.


Java EE 7 được đặc trưng bởi một cơ sở hạ tầng có thể hỗ trợ hoạt động phát triển các ứng dụng HTML5 với khả năng:


Kiến Trúc 3 Tầng
+ Client -Tier: Khách hàng tầng bao gồm các giao diện mà qua đó các ứng dụng được truy cập. Giao diện được phát triển để được sử dụng bởi khách hàng, nhân viên, nhà cung cấp của doanh nghiệp.
+ Mid -Tier: lớp giữa thực hiện logic kinh doanh của các ứng dụng thông qua các loại đậu và các tập tin lớp khác của ứng dụng.
+ Data -Tier: tầng dữ liệu bao gồm tất cả các dữ liệu doanh nghiệp mà được truy cập bởi các ứng dụng.
+ Java EE 7 cũng cung cấp dịch vụ khác nhau như an ninh, JDBC để truy cập cơ sở dữ liệu và như vậy, mà đơn giản hóa quá trình phát triển ứng dụng.
untitled1
Hình ảnh minh họa.
Ứng Dụng Đa Tầng
    • Bao gồm các thành phần:
      • Java EE clients.
      • Web components.
      • Java EE components.
      • Database components.
      • Security components.
untitled2

- Nói tóm lại bạn có thể hiểu đơn giản Java EE là một nền tảng cung cấp nhiều công nghệ, kỹ thuật, dịch vụ giúp ta có thể nhanh chóng tạo ra các ứng dụng ở cấp doanh nghiệp (enterprise), còn bạn muốn biết nó hỗ trợ như thế nào thì phải đi chi tiết vào thực tế mới có thể rõ được.
Một điều nữa khi nói tới ứng dụng doanh nghiệp thì sẽ liên quan tới dịch vụ(services) và khách hàng(client) chính vì thế Java EE thiên về hướng Server-Client.
MVC Pattern là gì?

MVC Pattern là viết tắt của Model-View-Controller. Mô hình này được sử dụng để thể hiện thành phần ứng dụng riêng biệt. 

  • Model - Model đại diện cho một đối tượng hoặc JAVA POJO mang dữ liệu. Nó cũng có thể có logic để cập nhật bộ điều khiển nếu thay đổi dữ liệu của nó.
  • View - View đại diện cho thành phần dữ liệu.
  • Controller - Điều khiển hoạt động trên cả hai Model & View. Nó kiểm soát các luồng dữ liệu vào mô hình đối tượng và cập nhật xem bất cứ khi nào thay đổi dữ liệu.


Sơ đồ hoạt động  của một ứng dụng:

Ví dụ về mvc:
Step 1
Create Model.
Student.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Student {
   private String rollNo;
   private String name;
   public String getRollNo() {
      return rollNo;
   }
   public void setRollNo(String rollNo) {
      this.rollNo = rollNo;
   }
   public String getName() {
      return name;
   }
   public void setName(String name) {
      this.name = name;
   }
}

Step 2
Create View.
StudentView.java

1
2
3
4
5
6
7
public class StudentView {
   public void printStudentDetails(String studentName, String studentRollNo){
      System.out.println("Student: ");
      System.out.println("Name: " + studentName);
      System.out.println("Roll No: " + studentRollNo);
   }
}

Step 3
Create Controller.
StudentController.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class StudentController {
   private Student model;
   private StudentView view;
   public StudentController(Student model, StudentView view){
      this.model = model;
      this.view = view;
   }
   public void setStudentName(String name){
      model.setName(name);       
   }
   public String getStudentName(){
      return model.getName();       
   }
   public void setStudentRollNo(String rollNo){
      model.setRollNo(rollNo);       
   }
   public String getStudentRollNo(){
      return model.getRollNo();       
   }
   public void updateView(){               
      view.printStudentDetails(model.getName(), model.getRollNo());
   }   
}

Step 4
Use the StudentController methods to demonstrate MVC design pattern usage.
MVCPatternDemo.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class MVCPatternDemo {
   public static void main(String[] args) {
      //fetch student record based on his roll no from the database
      Student model  = retriveStudentFromDatabase();
      //Create a view : to write student details on console
      StudentView view = new StudentView();
      StudentController controller = new StudentController(model, view);
      controller.updateView();
      //update model data
      controller.setStudentName("John");
      controller.updateView();
   }
   private static Student retriveStudentFromDatabase(){
      Student student = new Student();
      student.setName("Robert");
      student.setRollNo("10");
      return student;
   }
}

Step 5
 output.



1
2
3
4
5
6
Student:
Name: Robert
Roll No: 10
Student:
Name: John
Roll No: 10