Kien Truc 3 Tang Trong Java

Post on 28-Nov-2014

124 views 6 download

Tags:

Transcript of Kien Truc 3 Tang Trong Java

Nguyễn Hoàng Anh nhanh@fit.hcmuns.edu.vn

KIẾN TRÚC 3 TẦNGTHE THREE-LAYER ARCHITECTURE

Nội dung trình bàyNội dung trình bày

Generics1

Kiến trúc 3 tầng2

Demo3

Generics

None GenericsNone Generics

??

None GenericsNone Generics

??

None GenericsNone Generics

Compile Time:BUILD SUCCESSFUL Compile Time:BUILD SUCCESSFUL

Runtime: Error Runtime: Error

GenericsGenerics

GenericsGenerics

GenericsGenerics

Compile Time: BUILD FAILEDCompile Time: BUILD FAILED

Runtime: SAFE Runtime: SAFE

Generics – Collection InterfacesGenerics – Collection Interfaces

CollectionCollectionCollectionCollection

SetSetSetSet ListListListList QueueQueueQueueQueue

SortedSetSortedSetSortedSetSortedSet

Generics – ArrayList, LinkedListGenerics – ArrayList, LinkedList

ListListListList

ArrayListArrayListArrayListArrayList LinkedListLinkedListLinkedListLinkedList

Kiến trúc 3 tầng – The Three-Layer Architecture

Hướng tiếp cận phân tầng trong phần mềm Hướng tiếp cận phân tầng trong phần mềm

Chia phần mềm thành các tầng (layer)Chia phần mềm thành các tầng (layer)1

Mỗi tầng có vai trò đặc trưng riêngMỗi tầng có vai trò đặc trưng riêng2

Quyết định sự tương tác giữa các tầng như thế nào.3

Vai trò của hướng tiếp cận phân tầng trong phần mềmVai trò của hướng tiếp cận phân tầng trong phần mềm

Sẵn sàng cho việc mở rộng hệ thốngSẵn sàng cho việc mở rộng hệ thống1

Thuận tiện cho việc dùng lạiThuận tiện cho việc dùng lại2

Hệ thống dễ bảo trìHệ thống dễ bảo trì3

Dễ dàng phân chia công việcDễ dàng phân chia công việc4

Kiến trúc 3 tầng (The Three-Layer Architecture)Kiến trúc 3 tầng (The Three-Layer Architecture)

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

Data LayerData Layer

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

Xử lý dữ liệu(Data Handling)

Xử lý dữ liệu(Data Handling)

Data SourcesData Sources

Tầng dữ liệu – Data LayerTầng dữ liệu – Data Layer

Inserting DataInserting Data

Updating DataUpdating Data

Deleting DataDeleting Data

Retrieving DataRetrieving Data

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

Xử lý dữ liệu(Data Handling)

Xử lý dữ liệu(Data Handling)

Vai trò của Business LayerVai trò của Business Layer

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

Xử lý nghiệp vụ(Business Handling)

Xử lý nghiệp vụ(Business Handling)

Kiến trúc 3 tầng (The Three-Layer Architecture)Kiến trúc 3 tầng (The Three-Layer Architecture)

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

Input/outputHandling

Input/outputHandling

Kiến trúc 3 tầng (The Three-Layer Architecture)Kiến trúc 3 tầng (The Three-Layer Architecture)

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

Đối tượng trao đổi dữ liệu

Data Transfer Object

Đối tượng trao đổi dữ liệu

Data Transfer Object

Đối tượng trao đổi dữ liệu – Data Transfer Object

Đối tượng trao đổi dữ liệu – Data Transfer Object(DTO)Đối tượng trao đổi dữ liệu – Data Transfer Object(DTO)

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

Đối tượng trao đổi dữ liệu

Data Transfer Object

Đối tượng trao đổi dữ liệu

Data Transfer Object

HRMHRM

Đối tượng trao đổi dữ liệu với mẫu đơn giảnĐối tượng trao đổi dữ liệu với mẫu đơn giản

AtrributeAtrributeAtrributeAtrributeAtrributesAtrributes

PropertyPropertyPropertyPropertyPropertiesProperties

DTO

Các thuộc tính

Các thuộc tính

Các Port PropertyCác Port Property

Default ContructorDefault Contructor

Phương thức khởi tạo mặc định

Phương thức khởi tạo mặc định

Data Transfer Object – HRM - JavaData Transfer Object – HRM - Java

Tầng dữ liệu – Data Layer

Tầng dữ liệu – Data LayerTầng dữ liệu – Data Layer

Inserting DataInserting Data

Updating DataUpdating Data

Deleting DataDeleting Data

Retrieving DataRetrieving Data

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

Xử lý dữ liệu(Data Handling)

Xử lý dữ liệu(Data Handling)

Tầng dữ liệu – Data LayerTầng dữ liệu – Data Layer

Data SourcesData Sources ServicesServices

Data Access Components Data Access Components (DAC)(DAC)

Service Gateways Service Gateways (SG)(SG)

Data LayerData Layer

Tầng dữ liệu – Data LayerTầng dữ liệu – Data Layer

Data Access Components (DAC):Data Access Components (DAC): là thành phần chính chịu là thành phần chính chịu trách nhiệm lưu trữ và truy xuất từ các nguồn dữ liệu trách nhiệm lưu trữ và truy xuất từ các nguồn dữ liệu (Data Sources).(Data Sources).

Service Gateways (SG): Service Gateways (SG): là những thành phần trợ giúp việc là những thành phần trợ giúp việc truy xuất các dịch vụ bên ngoài một cách dễ dàng.truy xuất các dịch vụ bên ngoài một cách dễ dàng.

Tầng dữ liệu - Data LayerTầng dữ liệu - Data Layer

Data Access ObjectsData Access Objects

DAOsDAOs

Data Access Components (DAC)Data Access Components (DAC)

XML Access ObjectsXML Access Objects

XAOsXAOs

File Access ObjectsFile Access Objects

FAOsFAOs

DatabaseDatabase

XML filesXML filesXMLXML XML filesXML filesFilesFiles

Thiết kế Tầng dữ liệu với mẫu đơn giảnThiết kế Tầng dữ liệu với mẫu đơn giản

xxxDAOxxxDAO

yyy Tableyyy Table zzz Tablezzz Table

yyyDAOyyyDAO zzzDAOzzzDAO

xxx Tablexxx Table

Đối tượng kết xuất của Data LayerĐối tượng kết xuất của Data Layer

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

Đối tượng trao đổi dữ liệu

Data Transfer Object

Đối tượng trao đổi dữ liệu

Data Transfer Object

Data Layer – HRMData Layer – HRM

Data Layer – HRM - JavaData Layer – HRM - Java

EmployeeDAOEmployeeDAO

EmployeeStyleEmployeeStyle

TableTable

EmployeeStyleDAOEmployeeStyleDAO

EmployeeEmployee

TableTable

Data Layer – HRM - JavaData Layer – HRM - Java

Data Layer – HRM - JavaData Layer – HRM - Java

Data TierData Tier

Data LayerData Layer

ServicesServices

Web ServicesWeb Services

ImplementationsImplementations

Thiết kế tầng nghiệp vụ – Business Layer

Tầng nghiệp vụ - Business LayerTầng nghiệp vụ - Business Layer

Business LayerBusiness Layer

Data LayerData Layer

ServicesServices

Xử lý nghiệp vụBusiness Handling

Xử lý nghiệp vụBusiness Handling

Tầng nghiệp vụ - Business LayerTầng nghiệp vụ - Business Layer

Tầng này thực hiện các nghiệp vụ chính của hệ thống, Tầng này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do tầng Data cung cấp, và cung sử dụng các dịch vụ do tầng Data cung cấp, và cung cấp các dịch vụ cho tầng Presentation. cấp các dịch vụ cho tầng Presentation.

Tầng này có thể sử dụng các dịch vụ của các nhà Tầng này có thể sử dụng các dịch vụ của các nhà cung cấp thứ 3 để thực hiện công việc của mình. Ví cung cấp thứ 3 để thực hiện công việc của mình. Ví dụ: sử dụng dịch vụ của cổng thanh toán trực tuyến dụ: sử dụng dịch vụ của cổng thanh toán trực tuyến như Paypal. như Paypal.

Business Layer – Tầng nghiệp vụBusiness Layer – Tầng nghiệp vụ

Business LayerBusiness Layer

Business WorkflowsBusiness Workflows Business ComponentsBusiness Components

BPELBPELWCFWCF

Business ProcessBusiness Process

……

Business Layer – Tầng nghiệp vụBusiness Layer – Tầng nghiệp vụ

Business Components (BC): Business Components (BC): là những thành là những thành phần chính thực hiện các dịch vụ mà Service phần chính thực hiện các dịch vụ mà Service Interface cung cấp, chịu trách nhiệm kiểm tra Interface cung cấp, chịu trách nhiệm kiểm tra các ràng buộc logic (constraints), các quy tắc các ràng buộc logic (constraints), các quy tắc nghiệp vụ (business rules), sử dụng các dịch nghiệp vụ (business rules), sử dụng các dịch bên ngoài khác để thực hiện các yêu cầu của bên ngoài khác để thực hiện các yêu cầu của ứng dụng. ứng dụng.

Thiết kế Tầng nghiệp vụ với mẫu đơn giảnThiết kế Tầng nghiệp vụ với mẫu đơn giản

xxxDAOxxxDAO

yyy Tableyyy Table zzz Tablezzz Table

yyyDAOyyyDAO zzzDAOzzzDAO

xxx Tablexxx Table

xxxBUSxxxBUS yyyBUSyyyBUS zzzBUSzzzBUS

Business Layer – HRM - JavaBusiness Layer – HRM - Java

EmployeeDAOEmployeeDAO

EmployeeStyleEmployeeStyle

TableTable

EmployeeStyleDAOEmployeeStyleDAO

EmployeeEmployee

TableTable

EmployeeBUSEmployeeBUS EmployeeStyleBUSEmployeeStyleBUS

Business Layer – HRM - JavaBusiness Layer – HRM - Java

Business Layer – HRM - JavaBusiness Layer – HRM - Java

Business TierBusiness Tier

ServicesServices

Web ServicesWeb Services

ImplementationsImplementations

Business LayerBusiness Layer

Tầng giao diện – Presentation Layer

Tầng giao diện – Presentation LayerTầng giao diện – Presentation Layer

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

Input/outputHandling

Input/outputHandling

Tầng giao diện – Presentation LayerTầng giao diện – Presentation Layer

Tầng này làm nhiệm vụ giao tiếp với người Tầng này làm nhiệm vụ giao tiếp với người dùng để thu thập dữ liệu và hiển thị kết quả/ dùng để thu thập dữ liệu và hiển thị kết quả/ dữ liệu thông qua các thành phần trong giao dữ liệu thông qua các thành phần trong giao diện người dùng. Tầng này sử dụng các dịch diện người dùng. Tầng này sử dụng các dịch vụ do tầng Business cung cấp.vụ do tầng Business cung cấp.

Tầng giao diện – Presentation LayerTầng giao diện – Presentation Layer

Windows FormsWindows Forms

Web FormsWeb Forms

Mobile FormsMobile Forms

Tầng nghiệp giao diện – Presentation LayerTầng nghiệp giao diện – Presentation Layer

xxxDAOxxxDAO

yyy Tableyyy Table zzz Tablezzz Table

yyyDAOyyyDAO zzzDAOzzzDAO

xxx Tablexxx Table

xxxBUSxxxBUS yyyBUSyyyBUS zzzBUSzzzBUS

Tầng giao diện – HRM – Java SwingTầng giao diện – HRM – Java Swing

Tầng giao diện – HRM – Java SwingTầng giao diện – HRM – Java Swing

Kiến trúc 3 tầng (The Three-Layer Architecture)Kiến trúc 3 tầng (The Three-Layer Architecture)

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

Three TierThree Tier

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

WS clientsWS clients Web ServicesWeb Services

WS clientsWS clients Web ServicesWeb Services

Three Layer vs Three TiersThree Layer vs Three Tiers

Three Layer Three Layer là một thể hiện của kiến trúc phần mềm ở là một thể hiện của kiến trúc phần mềm ở dạng dạng logic.logic.

Three Tier Three Tier là một thể hiện của kiến trúc phần mềm ở là một thể hiện của kiến trúc phần mềm ở dạng dạng vật lý (physical)vật lý (physical)..

The Three-Layer ArchitectureThe Three-Layer Architecture

Software EngineeringSoftware Engineering