Kien Truc 3 Tang Trong Java

59
Nguyễn Hoàng Anh [email protected] KIẾN TRÚC 3 TẦNG THE THREE-LAYER ARCHITECTURE

Transcript of Kien Truc 3 Tang Trong Java

Page 1: Kien Truc 3 Tang Trong Java

Nguyễn Hoàng Anh [email protected]

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

Page 2: Kien Truc 3 Tang Trong Java

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

Generics1

Kiến trúc 3 tầng2

Demo3

Page 3: Kien Truc 3 Tang Trong Java

Generics

Page 4: Kien Truc 3 Tang Trong Java

None GenericsNone Generics

??

Page 5: Kien Truc 3 Tang Trong Java

None GenericsNone Generics

??

Page 6: Kien Truc 3 Tang Trong Java

None GenericsNone Generics

Compile Time:BUILD SUCCESSFUL Compile Time:BUILD SUCCESSFUL

Runtime: Error Runtime: Error

Page 7: Kien Truc 3 Tang Trong Java

GenericsGenerics

Page 8: Kien Truc 3 Tang Trong Java

GenericsGenerics

Page 9: Kien Truc 3 Tang Trong Java

GenericsGenerics

Compile Time: BUILD FAILEDCompile Time: BUILD FAILED

Runtime: SAFE Runtime: SAFE

Page 10: Kien Truc 3 Tang Trong Java

Generics – Collection InterfacesGenerics – Collection Interfaces

CollectionCollectionCollectionCollection

SetSetSetSet ListListListList QueueQueueQueueQueue

SortedSetSortedSetSortedSetSortedSet

Page 11: Kien Truc 3 Tang Trong Java

Generics – ArrayList, LinkedListGenerics – ArrayList, LinkedList

ListListListList

ArrayListArrayListArrayListArrayList LinkedListLinkedListLinkedListLinkedList

Page 12: Kien Truc 3 Tang Trong Java

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

Page 13: Kien Truc 3 Tang Trong Java

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

Page 14: Kien Truc 3 Tang Trong Java

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

Page 15: Kien Truc 3 Tang Trong Java

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

Page 16: Kien Truc 3 Tang Trong Java

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

Page 17: Kien Truc 3 Tang Trong Java

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)

Page 18: Kien Truc 3 Tang Trong Java

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)

Page 19: Kien Truc 3 Tang Trong Java

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

Page 20: Kien Truc 3 Tang Trong Java

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

Page 21: Kien Truc 3 Tang Trong Java

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

Page 22: Kien Truc 3 Tang Trong Java

Đố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

Page 23: Kien Truc 3 Tang Trong Java

HRMHRM

Page 24: Kien Truc 3 Tang Trong Java

Đố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

Page 25: Kien Truc 3 Tang Trong Java

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

Page 26: Kien Truc 3 Tang Trong Java

Tầng dữ liệu – Data Layer

Page 27: Kien Truc 3 Tang Trong Java

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)

Page 28: Kien Truc 3 Tang Trong Java

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

Page 29: Kien Truc 3 Tang Trong Java

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.

Page 30: Kien Truc 3 Tang Trong Java

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

Page 31: Kien Truc 3 Tang Trong Java

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

Page 32: Kien Truc 3 Tang Trong Java

Đố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

Page 33: Kien Truc 3 Tang Trong Java

Data Layer – HRMData Layer – HRM

Page 34: Kien Truc 3 Tang Trong Java

Data Layer – HRM - JavaData Layer – HRM - Java

EmployeeDAOEmployeeDAO

EmployeeStyleEmployeeStyle

TableTable

EmployeeStyleDAOEmployeeStyleDAO

EmployeeEmployee

TableTable

Page 35: Kien Truc 3 Tang Trong Java

Data Layer – HRM - JavaData Layer – HRM - Java

Page 36: Kien Truc 3 Tang Trong Java

Data Layer – HRM - JavaData Layer – HRM - Java

Page 37: Kien Truc 3 Tang Trong Java

Data TierData Tier

Data LayerData Layer

ServicesServices

Web ServicesWeb Services

ImplementationsImplementations

Page 38: Kien Truc 3 Tang Trong Java

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

Page 39: Kien Truc 3 Tang Trong Java

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

Page 40: Kien Truc 3 Tang Trong Java

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.

Page 41: Kien Truc 3 Tang Trong Java

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

……

Page 42: Kien Truc 3 Tang Trong Java

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.

Page 43: Kien Truc 3 Tang Trong Java

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

Page 44: Kien Truc 3 Tang Trong Java

Business Layer – HRM - JavaBusiness Layer – HRM - Java

EmployeeDAOEmployeeDAO

EmployeeStyleEmployeeStyle

TableTable

EmployeeStyleDAOEmployeeStyleDAO

EmployeeEmployee

TableTable

EmployeeBUSEmployeeBUS EmployeeStyleBUSEmployeeStyleBUS

Page 45: Kien Truc 3 Tang Trong Java

Business Layer – HRM - JavaBusiness Layer – HRM - Java

Page 46: Kien Truc 3 Tang Trong Java

Business Layer – HRM - JavaBusiness Layer – HRM - Java

Page 47: Kien Truc 3 Tang Trong Java

Business TierBusiness Tier

ServicesServices

Web ServicesWeb Services

ImplementationsImplementations

Business LayerBusiness Layer

Page 48: Kien Truc 3 Tang Trong Java

Tầng giao diện – Presentation Layer

Page 49: Kien Truc 3 Tang Trong Java

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

Page 50: Kien Truc 3 Tang Trong Java

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.

Page 51: Kien Truc 3 Tang Trong Java

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

Windows FormsWindows Forms

Web FormsWeb Forms

Mobile FormsMobile Forms

Page 52: Kien Truc 3 Tang Trong Java

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

Page 53: Kien Truc 3 Tang Trong Java

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

Page 54: Kien Truc 3 Tang Trong Java

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

Page 55: Kien Truc 3 Tang Trong Java

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

Page 56: Kien Truc 3 Tang Trong Java

Three TierThree Tier

Presentation LayerPresentation Layer

Business LayerBusiness Layer

Data LayerData Layer

WS clientsWS clients Web ServicesWeb Services

WS clientsWS clients Web ServicesWeb Services

Page 57: Kien Truc 3 Tang Trong Java

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

Page 58: Kien Truc 3 Tang Trong Java

The Three-Layer ArchitectureThe Three-Layer Architecture

Page 59: Kien Truc 3 Tang Trong Java

Software EngineeringSoftware Engineering