Thứ Ba, 27 tháng 12, 2016

"Integrating Session Beans, Entities, Message-Driven Beans, and Web Services(Chapter 7)"



I.EJBCấu trúc EJB

    - Session beans: quản lý các nhiệm vụ tác nghiệp của các client của ejb. Client gửi một message tới session beans thông qua môi trường mạng. Session bean có thể triệu gọi tới một entity bean hay một session bean khác để hoàn thành nhiệm vụ mà client yêu cầu. Session bean lại được chia làm hai loại:

  • + Stateless: trạng thái các giao dịch của client sẽ không được lưu lại cho những lần giao dịch sau. Những lần giao dịch khác nhau sẽ hoàn toàn động lập với nhau.
  • + Statefull: trạng thái các giao tác của client sẽ được lưu trữ lại phục vụ cho những lần giao dịch sau.
   - Entity beans: tương tự với các đối tượng thực thể (entity object) trong đặc tả UML [Jacobson/UML]. Entity bean chứa các thông tin tác vụ và các phương thức hoạt động của nó. Một entity beans có thể được lưu trữ và khôi phục lại một các tự động bởi trình quản lý ejb, với việc sử dụng cơ sở dữ liệu quan hệ hay một hệ thống lưu trữ nào đó do bạn chọn.

     + Java Persistence API (JPA)  là một đặc tả Java dùng cho việc truy xuất, lưu trữ/truy vấn và quản lý dữ liệu giữa các đối tượng Java/class với CSDL quan hệ. 

   - Message-driven beans: chịu trách nhiệm điều khiển các message giữa client và server. Message này sẽ được truyền theo hình thức P2P hay broadcast (quảng bá)….


* Ứng dụng EJB được chia thành nhiều tầng nhiều lớp

Đầu tiên là Client Tier là giao diện nó là ứng dụng bình thường nếu là ứng dụng hay trình duyệt bình thường có thể gọi đến ứng dụng web tầng web được phát triển bởi servlet cao cấp hơn là JSP JSF Sturts dưới tầng web là EJB xử lý nghiệp vụ tiếp đó là tầng làm việc với database đây là kiến thức chung kiến trúc nhiều tầng của EJB 

    *Server 


Nếu nó là trình duyệt hay bất kỳ đoạn code java nào phải gọi đến server, server nếu nó là trình duyệt hay web sẽ gọi đến web tier nếu không sẽ gọi đến business tier

Nếu nó là trình duyệt nó sẽ gọi đến tầng web (JSP Pages Servlet) và nó có thể gọi đến một EJB , EJB này có thể gọi đến một EJB và tầng business này sẽ tiếp tục gọi đến tầng database hoặc là hệ thống cung cấp thông tin ngoài khác 

    *Phát triển EJB 


EJB container được chạy trong các server là nơi quản lý EJB chúng ta không thể gọi trực tiếp đến EJB chúng ta phải thông qua các container và vòng đời

   * Lợi ích của EJB


- Nó quản lý toàn bộ vòng đời cho ứng dụng của chúng ta 
- Quản lý trạng thái cho EJB 
- Quản lý các giao dịch
- Bảo mật và lưu trữ dữ liệu đều được chuyển cho container 

  * Vai trò phát triển của EJB


- Người làm ra cái code Bean
- Người cung cấp container để quản lý cái bean đó
- Người cung cấp server do container phải chạy trong server
- Application assembler có nghĩa vụ đóng gói
- Deployer
- Admin để quản lý toàn bộ quá trình chạy



 Ưu điểm sử dụng EJB
EJB 3.0 đơn giản hoá quá trình phát triển của các lập trình viên bằng cách sử dụng các POJO (plain Old java Object – đối tượng thuần java) và POJI (Plain Old Java Interface – các giao diện thuần java). Điều này giúp cho các lập trình viên có thể viết các beans một cách dễ dàng và chẳng khác gì việc viết một class hay một interface đơn thuần.

- Thay vì sử dụng xml để miêu tả các bean như trong EJB 2.1, EJB 3.0 sử dụng các anotation để miêu tả về các bean. Các anotation là các siêu dữ liệu miêu tả về đối tượng (class) và được viết ngay trong mã nguồn java, được sử lý trong thời gian run-time.

- Khả năng phát triển EJB là đơn giản , nó là một lớp java bình thường

- Nó ở dưới dạng component nên có khả năng tái sử dụng rất là cao nó được nhúng được chạy trong server và các contetner và các contentner này có khả năng phát triển hỗ trợ ứng dụng lớn

- EJB không nên dùng cho tất cả mọi nơi vì nó phải chạy trong contentner nên nó có nhược điểm là rất là nặng khi ta phát triển các ứng dụng nhỏ và vừa không nên dùng EJB

- Khi chúng ta phát triển các ứng dụng không cần quản lý session hoặc nhiều đặc điểm security

II.Web Service

eb service (Web Service) được coi là một công nghệ mang đến cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B (Business to Business) và B2C (Business to Customer). Giá trị cơ bản của Web service dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống kế thừa.

Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên những nền tảng khác nhau có thể sử dụng Web service để chuyển đổi dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính. Tuy nhiên, công nghệ xây dựng Web service không nhất thiết phải là các công nghệ mới, nó có thể kết hợp với các công nghệ đã có như XML, SOAP, WSDL, UDDI… Với sự phát triển và lớn mạnh của Internet, Web service thật sự là một công nghệ đáng được quan tâm để giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ thống. Chúng ta sẽ xem xét các Web service từ mức khái niệm đến cách thức xây dựng.

1. Giới thiệu về Web service
Theo định nghĩa của W3C (World Wide Web Consortium), Web service là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML. Web service là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin người dùng yêu cầu. Một Web service được tạo nên bằng cách lấy các chức năng và đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và có thể truy cập đến những dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ Web service khác. Nó bao gồm các mô đun độc lập cho hoạt động của khách hàng và doanh nghiệp và bản thân nó được thực thi trên server.

Trước hết, có thể nói rằng ứng dụng cơ bản của Web service là tích hợp các hệ thống và là một trong những hoạt động chính khi phát triển hệ thống. Trong hệ thống này, các ứng dụng cần được tích hợp với cơ sở dữ liệu (CSDL) và các ứng dụng khác, người sử dụng sẽ giao tiếp với CSDL để tiến hành phân tích và lấy dữ liệu. Trong thời gian gần đây, việc phát triển mạnh mẽ của thương mại điện tử và B2B cũng đòi hỏi các hệ thống phải có khả năng tích hợp với CSDL của các đối tác kinh doanh (nghĩa là tương tác với hệ thống bên ngoài – bên cạnh tương tác với các thành phần bên trong của hệ thống trong doanh nghiệp).

Dưới đây, chúng ta sẽ xem qua những khái niệm và cách thức cơ bản nhất để xây dựng một Web service trong tích hợp và phát triển hệ thống.

2. Đặc điểm của Web service
a. Đặc điểm
- Web service cho phép client và server tương tác được với nhau ngay cả trong những môi trường khác nhau. Ví dụ, đặt Web server cho ứng dụng trên một máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm yêu cầu đặc biệt để tương thích giữa hai hệ điều hành này.
- Phần lớn kĩ thuật của Web service được xây dựng dựa trên mã nguồn mở và được phát triển từ các chuẩn đã được công nhận, ví dụ như XML.
- Một Web service bao gồm có nhiều mô-đun và có thể công bố lên mạng Internet.
- Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, khách hàng, những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet.
- Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client-server. Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP, Oracle Application server hay Microsoft.Net…
- Ngày nay Web service đang rất phát triển, những lĩnh vực trong cuộc sống có thể áp dụng và tích hợp Web service là khá rộng lớn như dịch vụ chọn lọc và phân loại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm các thông tin cần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối đoái, đấu giá qua mạng…hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C) như đặt vé máy bay, thông tin thuê xe…
- Các ứng dụng có tích hợp Web service đã không còn là xa lạ, đặc biệt trong điều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùng với sự lớn mạnh của Internet. Bất kì một lĩnh vực nào trong cuộc sống cũng có thể tích hợp với Web service, đây là cách thức kinh doanh và làm việc có hiệu quả bởi thời đại ngày nay là thời đại của truyền thông và trao đổi thông tin qua mạng. Do vậy, việc phát triển và tích hợp các ứng dụng với Web service đang được quan tâm phát triển là điều hoàn toàn dễ hiểu.

b. Ưu và nhược điểm

Ưu điểm:
+ Web service cung cấp khả năng hoạt động rộng lớn với các ứng dụng 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 và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên văn bản (text), giúp các lập trình viên dễ dàng hiểu được.
+ Nâng cao khả năng tái sử dụng.
+ Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện Web service.
+ Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán.
+ Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác.

Nhược điểm:
+ Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Web service, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành.
+ Có quá nhiều chuẩn cho Web service khiến người dùng khó nắm bắt.
+ Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật.

3. Kiến trúc của Web service
Web service gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language) và UDDI (Universal Description, Discovery, and Integration). Hình 1 mô tả chồng giao thức của Web service, trong đó UDDI được sử dụng để đăng ký và khám phá Web service đã được miêu tả cụ thể trong WSDL. Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server, sau đó các ứng dụng SOAP yêu cầu một Web service. Các thông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP.

Click image for larger version. 

Name: service-architecture1.jpg 
Views: 65 
Size: 19.6 KB 
ID: 292

Chồng giao thức Web service là tập hợp các giao thức mạng máy tính được sử dụng để định nghĩa, xác định vị trí, thi hành và tạo nên Web service tương tác với những ứng dụng hay dịch vụ khác. Chồng giao thức này có 4 thành phần chính:
- Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange Protocol- BEEP).
- Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng. Hiện tại, những giao thức thực hiện nhiệm vụ này là XML-RPC, SOAP và REST.
- Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một Web service cụ thể. WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Web service sẽ sử dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà Web service cung cấp.
- Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ đó giúp một Web service có thể dễ dàng khám phá ra những dịch vụ nào đã có trên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác. Một Web service cũng phải tiến hành đăng ký để các dịch vụ khác có thể truy cập và giao tiếp. Hiện tại, UDDI API thường được sử dụng để thực hiện công việc này.

Click image for larger version. 

Name: web-service-registry.jpg 
Views: 49 
Size: 17.7 KB 
ID: 293

Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol) với công nghệ chuẩn là SOAP. SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một dịch vụ từ xa thông qua một thông điệp XML. Ngoài ra, để các dịch vụ có tính an toàn, toàn vẹn và bảo mật thông tin, trong kiến trúc Web service, chúng ta có thêm các tầng Policy, Security, Transaction, Management.


Chủ Nhật, 25 tháng 12, 2016

Describe overview of technologies of Java EE & EJB

I: Java EE
  1: Thế nào là Java EE


     -Là nền tảng (platform , 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 và triển khai
          +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




Thứ Năm, 15 tháng 12, 2016

DOM 2


  1. DOM Level 2 (DOM 2) được phát triển từ DOM 1Nó được xây dựng dựa trên DOM 1 interfaces.
  2. Mô hình DOM2 có 6 chi tiết khác nhau.
  • Module này định nghĩa một tập các đối tượng  giao diện để truy cập  phân tích cú pháp XML content.
  • Core
  • Range
  • Module này là tùy chọn có tính chất và phụ thuộc vào Module Core để thực hiện chức năng của nó.
  • Các Event trên đạt được mục tiêu của event này có thể gặp bất kỳ của các quá trình sau:

           -Event Capture
           -Event Bubbling
           -Event Cancelation
  • Các Module Traversal cho phép đi qua cây DOM để truy cập nội dung trong đó.
  • Các Module chứa TreeWalker, Nodelterator, và giao diện NodeFilter để tạo điều kiện dễ dàng traversal thông qua các document content
  • Các Module CSS là một Module tùy chọn trong DOM.
  • Nó định nghĩa interface để cung cấp một cơ chế để truy cập và thao tác các document CSS động. Nó định nghĩa các giao diện sau:
          -CSSStyleSheet
          -CSSRuleList
          -CSSHediaRule
          -CSSStyleDeclaration

Viết reflection về AsyncTask, Volley, Retrofit.


1.AsyncTask
AsyncTask là gì?
AsyncTask là một lớp trừu tượng được cung cấp bởi Android, giúp chúng ta sử dụng các thread UI đúng. Lớp này cho phép chúng tôi thực hiện các hoạt động dài / nền và hiển thị kết quả của nó trên thread UI mà không cần phải thao tác đề.
Khi sử dụng AsyncTask?
Android thực hiện mô hình chủ đề duy nhất và bất cứ khi nào một ứng dụng Android được tung ra, một thread được tạo ra. Giả sử chúng ta đang làm mạng lưới hoạt động trên một nút bấm trong ứng dụng của chúng tôi. Mở nút bấm một yêu cầu sẽ được thực hiện cho các máy chủ và phản ứng sẽ được chờ đợi. Do mô hình chủ đề duy nhất của Android, cho đến khi thời gian đáp ứng được chờ đợi màn hình của chúng tôi là không đáp ứng. Vì vậy, chúng ta nên tránh thực hiện các hoạt động dài chạy trên thread UI. Điều này bao gồm tập tin và truy cập mạng.

Để khắc phục điều này chúng ta có thể tạo chủ đề mới và thực hiện các phương pháp chạy để thực hiện cuộc gọi mạng này, do đó, giao diện người dùng vẫn đáp ứng.

Nhưng kể từ khi Android theo mô hình chủ đề duy nhất và Android UI bộ công cụ không phải là thread an toàn, vì vậy nếu có một nhu cầu để thực hiện một số thay đổi về giao diện người dùng dựa trên các kết quả của các hoạt động biểu diễn, sau đó cách tiếp cận này có thể dẫn đến một số vấn đề.

Vì vậy, các khuôn khổ Android đã đưa ra một mô hình rất tốt được bao bọc vào AsyncTask.

Lưu ý: AsyncTask lý tưởng nên được sử dụng cho các hoạt động mà phải mất vài giây. Một số nhiệm vụ giữ cho thread chạy trong thời gian dài như vậy trong trường hợp đó nó được khuyến khích để sử dụng gói java.util.concurrent như Executor, ThreadPoolExecutor và FutureTask.

AsyncTask có bốn bước:
  • doInBackground: Mã thực hiện hoạt động dài chạy đi trong phương pháp này. Khi phương thức onClick được thực thi trên nhấp nút, nó gọi phương thức mà chấp nhận các thông số thực hiện và tự động gọi phương thức doInBackground với các thông số thông qua.
  • onPostExecute: Phương thức này được gọi là phương thức sau doInBackground hoàn thành xử lý. Kết quả từ doInBackground được truyền cho phương thức này.
  • onPreExecute: Phương thức này được gọi là trước khi phương thức doInBackground được gọi.
  • onProgressUpdate: Phương thức này được gọi bằng cách gọi publishProgress bất cứ lúc nào từ doInBackground gọi phương thức này.
  • Các nhiệm vụ có thể được hủy bỏ bằng cách gọi hủy bỏ (boolean) phương thức. Điều này sẽ gây ra các cuộc gọi tiếp theo để isCancelled () để trở về đúng.
  • Sau khi gọi phương pháp này, onCancelled (Object) phương thức được gọi là thay vì onPostExecute () sau khi doInBackground () trả về.
2. Volley 
  • Volley là một Networking Library được Google phát triển và công bố tại Google I/O 2013 để quản lý các request network và lưu trữ các kết quả trả về – response, nó giúp các nhà phát triển – developers không phải viết nhiều code như trước nữa.Các tính năng – features trong Volley cho phép cùng một lúc thực hiện nhiều request trên các tiến trình – threads khác nhau với các mức độ ưu tiên – priority. Tất cả các request được thực hiện và lưu trữ trong bộ nhớ cache – cache memories giúp cho việc reload lại dữ liệu nhanh hơn.Toàn bộ response được lưu trong memories vậy nên nó không tốt khi dùng để load các dữ liệu lớn như âm nhạc – music hoặc phim – movies.Nhưng nó thực sự tuyệt vời để load các dữ liệu dạng JSON, Image hay String.
  • Những class request có trong thư viện Volley này bao gồm : jsonObjectRequest, jsonArrayRequest, StringRequest, ImageLoader kết với các constructor đi kèm như : POST, GET, DELETE, PUT, COPY,…
3. Retrofit
Retrofit là một Rest Client (Tìm hiểu thêm về chuẩn RESTFul dưới link tham khảo) cho Android và Java và được tạo ra bởi Square. Họ làm cho việc nhận và tải lên JSON (hoặc dữ liệu khác) một cách khá dễ dàng tới một WebService dựa trên mô hình REST.
Các gói trang bị thêm cho phép sử dụng các bộ chuyển đổi sau đây:
  • Gson: com.squareup.retrofit:converter-gson
  • Jackson: com.squareup.retrofit:converter-jackson
  • Moshi: com.squareup.retrofit:converter-moshi
  • Protobuf: com.squareup.retrofit:converter-protobuf
  • Wire: com.squareup.retrofit:converter-wire
  • Simple XML: com.squareup.retrofit:converter-simplexml



Dưới đây là kết quả so sánh thời gian thực thi giữa Async Task thuần của Android, Volley Library của Google và Retrofit :
tIdZkl3

SAX(Event-Based), DOM(Object-based)

Định nghĩa : 
JAXP viết tắt của : Java API for XML Processing được coi là một API trong lập trình Java sử dụng XML. Nó có khả năng phân tích và sử dụng các dữ liệu dưới dạng XML.

Phân tích cú pháp XML : 
XML parsers là những chương trình mà có nhiệm vụ phân tích và sử dụng  dữ liệu trong trang XML.
Các đặc điểm nổi trội của XML parsers : 
              - Ngôn ngữ độc lập 
              - Mã độc lập 
              - Tính linh hoạt cao 
              - Phù hợp hơn với nhiều mục đích sử dụng 


JAXP chia XML prasers làm 2 loại là : 
  + Event-Based Parsers : Giao diện phân tích API đơn giản dành cho XML ( ví dụ như SAX)
  + Object-Based : Giao diện phân tích dạng Mô hình đối tượng tài liệu (ví dụ như DOM) 
Tìm hiểu thêm về giao diện DOM : là giao diện rất dễ hiểu , DOM phân tích toàn bộ tài liệu XML và kiến thiết một cấu trúc hoàn chỉnh đại diện cho bản tài liệu, trong bộ nhớ, bằng cách dùng các lớp để mô hình hóa các khái niệm
Tìm hiểu thêm về giao diện SAX : Bộ phân tích SAX được gọi là SAXParser và được tạo bằng javax.xml.parsers.SAXParserFactory. Khác với bộ phân tích DOM, bộ SAXParser không tạo ra một hình thức đại diện của tài liệu XML trong bộ nhớ và vì thế nó hoạt động nhanh hơn, ít tốn bộ nhớ hơn. Thay vào đó, bộ phân tích SAXParser thông báo cho các trình khách cấu trúc của tài liệu XML bằng cách gọi các hàm callbacks, nghĩa là, bằng cách gọi các phương pháp của trường hợp Bản mẫu:Javadoc:SE đã được cung cấp cho bộ phân tích.
Nếu muốn thêm thông tin bạn có thể tham khảo ở đây

So sánh về 2 giao diện : 
 + DOM chỉ tích hợp để dùng với các tài liệu nhỏ còn SAX có thể dùng để đọc các tài liệu lớn
 + DOM phù hợp cho việc đọc toàn bộ 1 trang XML còn SAX thì chia nhỏ nó ra
 + DOM thực hiển nhiệm vụ của mình khá chậm so với SAX