You are on page 1of 40

Ki n trúc 3 t ng

GV: ThS. Tôn Quang To i


Gi i thi u

 Công vi c phát tri n ng d ng


• Thi t k /x lý giao di n – Presentation
– Hi n th d li u, nh n d li u t i dùng
• Ki m tra nghi p v – Business
– Tính toán, ki m tra theo các quy t c: t ng thu
nh p, chu k ti n m t, …
• Truy c p c s d li u – Data Access
– Th c hi n các thao tác: thêm, xóa, c p nh t,
tìm ki m d li u

• L u tr d li u – Database

2
Ki n trúc 1 t ng

 ng d ng và d li u n m trên cùng 1 máy

 Không h tr
• Tính toán phân tán
• Chia s d li u cho nhi u ng i dùng

3
Ki n trúc 2 t ng

 ng d ng và d li u n m riêng trên 2 máy


khác nhau

H tr
• Tính toán phân tán
• Chia s d li u cho nhi u ng i dùng

4
Ki n trúc 2 t ng – Client-Server

CLIENT SERVER
Application
Business Logic
Data

Presentation Logic

Tách biệt rõ ràng giữa Application và Data

Toàn bộ gánh nặng xử lý trên client Server hoạt ñộng như bộ ñiều khiển

5
Ki n trúc 2 t ng – Client-Server

B tl i

Business logic trên mỗi client

Client chờ phản hồi lâu hơn

Business logic + presentation logic trên 1 tầng  scalability bài toán

Gánh nặng trên server và network vì mọi clients gởi request ñến 1 server

Một thay ñổi nhỏ trên ứng dụng— toàn ứng dụng phải thay ñổi

6
Ki n trúc 3 t ng

MIDDLE TIER/
CLIENT TIER APPLICATION TIER DATA/EIS TIER

Presentation Business
Logic DATA
Logic

Nhận yêu cầu, nhận dữ


liệu và trả dữ liệu cho
client

7
Ki n trúc 3 t ng

8
Ki n trúc 3 t ng

 ng d ng 3 t ng (3-tier): là m t ng d ng
c t ch c thành 3 t ng riêng bi t
• T ng trình bày (Presentation tier – Front end)
• T ng Logic (Logical tier - Middleware)
• T ng d li u (Data tier – Backend)

 Các t ng có th tri n khai trên các máy tính


khác nhau trên m ng

9
Ki n trúc 3 t ng

 r ng và tính trong su t.
T ng Logic (Logical tier - ) c
chia thành
• T ng nghi p v (Business tier)
• T ng truy c p d li u (Data Access tier)

 Chú ý: các t ng ch giao ti p v i các t ng


hàng xóm li n k

10
Ki n trúc 3 t ng

 Thu n l i
• Tách r i
– Ch c n ng tách r i truy c p c s d li u và giao di n
– T p trung ch c n ng
• cl p
– Nâng c p b o trì d dàng
– D phân công công vi c  chuyên môn hóa  nhi u
ng i tham gia  th i gian phát tri n ng d ng nhanh
• Tái s d ng
– Các t ng là các module tách r i  có th dùng cho các
project khác
• Chuy n i h qu n tr d li u d dàng
• T n d ng s c m nh c a m ng máy tính

11
Ki n trúc 3 t ng

 Khuy n i m
• M t th i gian chuy n i d li u gi a các t ng
(chuy n i d li u sang các i t ng r i t
i t ng sang c s d li u)
• Giai o n m t nhi u th i gian nh t là vi t code
chuy n i d li u sang i t ng

12
M t s công ngh h tr ki n trúc 3 t ng

 WebServices
• Dùng cho c ng d ng web/win
• c l p ngu n d li u – dùng XML

Web Service
T ng 2 DB T ng 3
Data Access Layer

http

Business Rules

T ng 1
Presentation
Layer

13
M t s công ngh h tr ki n trúc 3 t ng

 Remoting
• Vi t các ng d ng phân tán
• Không c l p ngu n d li u
• T c
Remote Object
T ng 2 T ng 3
Data Access Layer DB

remoting

Business Rules
T ng 1
Presentation
Layer
14
M t s công ngh h tr ki n trúc 4 t ng

K t h p WebService và Remoting
• T n d ng s c m nh c a c hai công ngh

T ng 2 T ng 3

http Web Service


Business Rules
Data Access Layer DB

remoting
T ng 4

Presentation T ng 1
Layer

15
Ki n trúc 3 t ng lu n lý

 Gi thi t: ng d ng không ch y trên m ng

M i t ng là m t t p l p
• T ng trình bày
– WinForm/WebForm - GUI
• T ng nghi p v (Business tier)
– T p l p BAL
• T ng truy c p d li u (Data Access tier)
– T p l p DAL

16
Ki n trúc 3 t ng lu n lý

M i quan h gi a các t p l p
• DAL – dùng câu SQL thao tác trên Database
• BAL – không bi t b t k control trong GUI và
câu SQL. DAL s c dùng trong BAL
cung c p thông tin c n thi t.
• GUI – dùng BAL ph n h i các s ki n c a
user

17
Ki n trúc 3 t ng lu n lý

V n :
• C#: H ng i t ng
• Database: thông th ng là d li u
quan h
T ng
thích
 Gi i pháp
• T o các l p bao b c các b ng trong c s
d li u quan h - g i là các i t ng truy n
i d li u - Data Transfer Object (DTO)

18
Các b c th c hi n

B c 1: (DTO) T o t ng l p i di n cho
t ng b ng
• Các c t t ng ng các bi n trong l p
• Default constructor, constructor có tham s là
khóa chính
• Các Properties cho các bi n
• Quan h : 1(collection object) – n (1 object)

B c 2 (Option): T o stored procedure

19
Các b c th c hi n

B c 3: (DAL) T o các l p truy c p c s d


li u cho t ng b ng có các ph ng th c c s
(n u g p l i thì ném không b t)
1. M k t n i
• void Insert(DTOObject) 2. T o truy v n + Thi t
l p tham s
• void Update(DTOObject)
3. Th c thi truy v n
• void Delete(DTOObject) 4. óng k t n i
• DTOObject Find(object id) 5. Tr k t qu v
• List<DTOObject> FindAll()

20
Các b c th c hi n

B c 4: (BAL) T o các l p x lý nghi p v cho


t ng b ng và c ng th ng có các ph ng th c
c s ó thêm x lý nghi p v
• DALClass obj;
1. T o i t ng
DALClass
• void Insert(DTOObject) 2. G i ph ng th c
• void Update(DTOObject) 3. Áp d ng nghi p v
• void Delete(DTOObject) 4. Tr k t qu v

• DTOObject Find(object id)


• List<DTOObject> FindAll()

21
Các b c th c hi n

B c 5: (GUI) thi t k giao di n


• T o i t ng BAL, g i các ph ng th c và
b t ngo i l
– BALClass obj = new BALClass();
– try
{
obj.Method(…);
}
catch (Exception ex)
{…}

22
Các b c th c hi n

 T o các t ng thành các th vi n: 3 th vi n


• DTO
• DAL
• BAL

 u i m
• D chuy n i sang webservice/remoting

 Khuy t i m
• T c ch m

23
Ki n trúc 3 t ng v i
Web Service
Khái ni m

 Windows Form: Presentation + Business


 Web Service th ng c dùng làm t ng
truy c p d li u

Web Service
T ng 2 DB T ng 3
Data Access Layer

http

Business Rules

T ng 1
Presentation
Layer

25
Khái ni m

 Web Service là gì?


• Là m t thành ph n (component) ph n m m
c thi t k cho các máy tính t ng tác
v i nhau
Network

Web Service

Network có th là LAN,
WAN, MAN, hay Internet
26
Khái ni m

 c i m c a web service

Truy c p qua Web c ng ký

Có service interface H tr các ng d ng loosely


coupled
Web Services

Tích h p Just In Time


Dùng standard
Uses XML Web protocols
27
Các b c t o/dùng Web Service

6. G b Web service khi c n

5. G i Web service

4. Tìm Web service

3. Xu t b n Web service lên Internet hay intranet

2. nh ngh a service interface và g i các ph ng th c cho Web service

1. T o Web service
28
Các b c t o/dùng Web Service

T o Web Service
• B c 1: File  New  Web Site  ASP.NET
Web Service

• B c 2: Nh p tên project trong “Location”

29
Các b c t o/dùng Web Service

public class Service : System.Web.Services.WebService


{
public Service () {
}

[WebMethod]
public string HelloWorld() {
return "Hello World";
}
}

30
Các b c t o/dùng Web Service

 Xu t b n Web Service: F5
• Nh a ch s d ng
• Start – Stop Web Service

31
Các b c t o/dùng Web Service

S d ng Web Service
• T o ng d ng Windows Form/ASP.NET
• Click ph i References  Add Web Reference
• ánh a ch URL  Go

32
Các b c t o/dùng Web Service

33
Các b c t o/dùng Web Service

 Nh n “Add Reference”

34
Các b c t o/dùng Web Service

 T o i t ng t l p Web Service
 G i ph ng th c trong l p service
 Nh n k t qu và x lý k t qu tr v

35
Cách th c làm vi c c a Web Service

i nfo Service Description


ype ma)
et T Sche
G L
M
(X

Parameters
Soap Protocol
XML over HTTP

Return Value
Web Server
Client Application (With Web Service)
36
M t s Web Service

 Microsoft MapPoint Web Service


http://www.microsoft.com/mappoint/products/
webservice/downloads.mspx

 CityView
http://terraservice.net/terraservice.asmx

 Google Web Services


http://api.Google.com/GoogleSearch.wsdl

37
Google search

 Google SOAP Search API


http://code.google.com/apis/soapsearch/

38
Google search

T o Web Reference
• http://api.Google.com/GoogleSearch.wsdl
M t s class:
GoogleSearchService
GoogleSearchResult
ResultElement
 M ts c:
doGoogleSearch
doSpellingSuggestion

39
Demo

 Demo DAL v i Web Service


• B c 1: t o DTO
• B c 2: t o Stored Procedure
• B c 3: DAL (WebService)
• B c 4: BAL
• B c 5: GUI (Windows Form)

 Chú ý:
• DTO, DAL và BAL có th vi t d i d ng th vi n
• Các ph ng th c trong WebService tr v
(không c DataTable)
• M t table ã n m trong DataSet thì c thêm vào
DataSet khác

40

You might also like