Tải bản đầy đủ (.pdf) (41 trang)

NGHIÊN CỨU KIẾN TRÚC HƯỚNG DỊCH VỤ (SERVICE-ORIENTED ARCHITECTURE) VÀ GIẢI PHÁP CỦA ORACLE

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (486.89 KB, 41 trang )

Kin trỳc SOA v gii phỏp ca Oracle
Khoỏ lun tt nghip Phựng Th Thao-K54A-CNTT-HSPHN
1
TRNG I HC S PHM H NI
KHOA CễNG NGH THễNG TIN




BO CO NCKH
TI:
NGHIấN CU KIN TRC HNG DCH V
(SERVICE-ORIENTED ARCHITECTURE)
V GII PHP CA ORACLE




GIO VIấN HNG DN: NGUYN MNH HNG
SINH VIấN THC HIN: PHNG TH THAO

K54A-CNTT-HSPHN




H NI, THNG 4 2008
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
Kiến trúc SOA và giải pháp của Oracle
Khố luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-ĐHSPHN
2


Lời cảm ơn
Em xin chân thành cảm ơn khoa CNTT trường ĐHSPHN đã tạo điều kiện giúp em
hồn thành khố luận này.
Em xin gửi lời biết ơn sâu sắc đến Tiến sĩ Nguyễn Mạnh Hùng. Thầy đã tận tình
hướng dẫn và chỉ bảo cho em trong suốt q trình học tập và nghiên cứu thực hiện đề
tài
Em xin chân thành cảm ơn tới các q thầy cơ trong khoa CNTT đã tận tình giảng
dạy và trang bị kiến thức cho em và các bạn sinh viên khác trong suốt thời gian học tập
tại khoa.
Xin chân thành cảm ơn bạn bè và gia đình đã ủng hộ rất lớn về mặt tinh thần để em
có thêm quyết tâm hồn thành đề tài này.
Mặc dù đã cố gắng hồn thành luận văn trong phạm vi cho phép, nhưng do kiến thức
và thời gian còn thiếu nên đề tài chắc chắn sẽ còn nhiều thiếu sót. Vì vậy kính mong các
thầy cơ và các bạn tận tình đóng góp và chỉ bảo để em hồn thiện đề tài hơn nữa
Một lần nữa em xin chân thành cảm ơn và mong ln nhận được tình cảm chân
thành của tất cả mọi người.

Hà Nội, tháng 4 năm 2008
Sinh viên
Phùng Thị Thao
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Kin trỳc SOA v gii phỏp ca Oracle
Khoỏ lun tt nghip Phựng Th Thao-K54A-CNTT-HSPHN
3
MC LC

Chng 1: Tng quan v SOA
1.1. Thc trng hin ti v mt s mụ hỡnh trong h thng phõn tỏn
1.1.1. Thc trng
1.1.2. Mt s mụ hỡnh trong h thng phõn tỏn

1.2. Gii thiu kin trỳc hng dich v SOA
1.2.1. Kin trỳc hng dch v l gỡ?
1.2.2. Cỏc nguyờn tc chớnh ca h thng SOA
1.2.3. Cỏc tớnh cht ca h thng SOA
1.2.4. Li ớch ca SOA
1.2.5. Kin trỳc phõn tng chi tit ca SOA
1.2.6. Mt s mụ hỡnh trin khai SOA
1.3. Xõy dng mt h thng SOA
1.3.1. Chu trỡnh phỏt trin ca mt h thng SOA
1.3.2. Cỏc k thut h tr
1.3.3. Dch v v nguyờn tc thit k mt dch v
1.4. Vn bo mt trong SOA
1.4.1. t vn
1.4.2. Gii thiu mt s kin trỳc hng dch v
1.4.3. Gii thiu mt s chun trong XML
1.5. Vn tớch hp trong SOA
1.6. Qun lý tin trỡnh nghip v
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
Kin trỳc SOA v gii phỏp ca Oracle
Khoỏ lun tt nghip Phựng Th Thao-K54A-CNTT-HSPHN
4
1.7. Kt lun
Chng 2: B gii phỏp v SOA ca Oracle
2.1. Oracle SOA Suite hin thc Web service vi Jdeveloper
2.2. Gii thiu v SOA Suite
2.2.1. ng dng ca SOA Suite
2.2.2. Service Bus
2.2.3. BPEL engine
2.2.4. BPEL Designer
2.3. Kt lun

Chng 3: Th nghim thc t phn mm BPEL ca Oracle
Th nghim phn mm SOA suite
Xõy dng mt s service trong website bỏn hng cho mt book_cafe.
Chng 4. Kt lun chung
4.1. Kt qu t c
4.2. Hng phỏt trin

Ph lc tham kho
Danh sỏch hỡnh
Danh sỏch cỏc thut ng v khỏi nim

THệ VIEN ẹIEN Tệ TRệẽC TUYEN
Kiến trúc SOA và giải pháp của Oracle
Khố luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-ĐHSPHN
5
Lời mở đầu

Ngày nay, cơng nghệ thơng tin đang ngày càng phát triển, trở thành ngành mũi nhọn
trong chiến lược phát triển kinh tế của mỗi quốc gia. Đối tượng phục vụ chủ yếu hiện
nay của CNTT là các tổ chức, các cơ sở doanh nghiệp. Với sự phát triển của Internet và
với xu thế hội nhập chung của tồn thế giới, các tổ chức, doanh nghiệp cần bắt tay, phối
hợp hoạt động và chia sẻ tài ngun với nhau để nâng cao hiệu quả hoạt động. Khi đó
các sản phẩm sẽ ngày càng phức tạp, kéo theo chi phí sản xuất, quản lý và bảo trì. Đặc
biệt, ngành cơng nghệ phần mềm còn đối mặt với vấn đề hóc búa là bảo mật, và tái sử
dụng lại các hệ thống sẵn có, vấn đề khơng tương thích về hệ thống giữa các tổ chức
hợp tác với nhau.
Để giải quyết vấn đề trên người ta đã đưa ra nhiều giải pháp và hiện nay, một giải
pháp đang được quan tâm là kiến trúc hướng dịch vụ (Service Oriented Architecture –
SOA).
Các ứng dụng khi sử dụng dịch vụ này chỉ cần gửi thơng điệp u cầu đến một dịch

vụ (service) khác và chờ nhận kết quả từ dịch vụ đó và dịch vụ này khơng phụ thuộc
vào mơi trường hệ điều hành, ví dụ như các dịch vụ WEB hiện nay chẳng hạn, nó thể
hiện rất rõ ý tưởng này. Cơng nghệ SOA giúp chúng ta trong việc phát triển các
services này rất hiệu quả. Hiện nay nhiều cơng ty phần mềm lớn trên thế giới đều quan
tâm phát triển hệ thống này ví dụ như Oracle, IBM, Microsoft,… Mong muốn tìm hiểu
một cách khái qt về cơng nghệ SOA và những lợi ích đạt được của kiến trúc này
chính là lý do em thực hiện đề tài:

Kiến trúc hướng dịch vụ
(Service Oriented Architecture - SOA)
và giải pháp của Oracle.
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Kin trỳc SOA v gii phỏp ca Oracle
Khoỏ lun tt nghip Phựng Th Thao-K54A-CNTT-HSPHN
6

Mc tiờu ca ti:
Gm nhng vn sau:
1. ti tp trung vo vic nghiờn cu mt cỏch tng quan v SOA
- Nghiờn cu c s lý thuyt ca kin trỳc SOA, cỏc tớnh cht v li ớch ca kin
trỳc ny.
- Tỡm hiu nhng vn liờn quan n xõy dng h thng SOA v cỏc nguyờn tc
thit k h thng ny.
- ng dng vn bo mt trong kin trỳc hng dch v. Tỡm hiu mt s chun
bo mt trong XML v Web Service
- Kh nng tớch hp h thng v qun lý cỏc quy trỡnh nghip v

2. Gii phỏp ca Oracle, c th vi phn mm SOA Suite
- Tỡm hiu thc t phn mm SOA Suite v cỏc thnh phn liờn quan.
- Mụi trng phỏt trin v cỏch thit k, xõy dng ng dng, thc thi v qun lý cỏc

tin trỡnh nghip v

3. Vit mt vi servies s dng cụng ngh SOA trờn ngụn ng BPEL ca Oracle,
bng phn mm SOA Suite
- Xõy dng mt ng dng nh dựng phn mm SOA Suite
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
Kin trỳc SOA v gii phỏp ca Oracle
Khoỏ lun tt nghip Phựng Th Thao-K54A-CNTT-HSPHN
7
2. Chng 1: Tng quan v SOA

1.1 Thc trng hin ti v mt s mụ hỡnh trong h thng phõn tỏn.
1.1.1. Thc trng
Phn mm ngy nay ang dn tr nờn phc tp v dng nh ang vt quỏ s
kim soỏt ca cỏc mụ hỡnh hin cú. Theo Albert Einstein: Mi vic nờn thc hin theo
cỏch n gin n mc cú th . Hin nay, cú nhiu h thng phn mm ang c
xõy dng vi kin trỳc khỏ phc tp vi chi phớ phỏt trin v bo trỡ cao, c bit l
nhng phn mm cao cp. phc tp ca cỏc h thng kin trỳc phn mm ngy mt
tng do mt s nguyờn nhõn sau:
S xut hin ca nhiu cụng ngh mi to nờn mụi trng khụng ng nht trong
khi nhu cu chia s, tng tỏc, trao i ca cỏc h thng khụng th tin hnh trong mụi
trng nh th. Gii quyt vn ny ngha l cỏc doanh nghip cn phi thay i h
thng theo mt chun thng nht chung no ú. iu ch yu l h thng c cn c
s dng li ch khụng phi l g b thay mi bi vn chi phớ cho thit lp mt h
thng qun lý mi tn kộm hn nhiu so vi chuyn i cỏi c. Vn ny a n
mt khỏi nim l Tớch hp h thng (Enterprise Architecture Intergration - EAI)
ang c nhiu t chc quan tõm u t vi mc chi phớ cao dn u hin nay cho cỏc
d ỏn dng ny.
Vn lp trỡnh d tha v tỏi s dng. Chng hn, mt doanh nghip cú nhiu chi
nhỏnh khỏc nhau, mi chi nhỏnh li cú mt h thng tỏch bit v xõy dng nhng thi

im khỏc nhau v cn kt ni li vi nhau s khụng trỏnh khi vic s dng d tha ti
nguyờn, d liu khụng ng nht
Hu nh mi t chc u phi i mt vi vn tớch hp vỡ nhiu lớ do nh m
rng thờm chi nhỏnh, thờm h thng bn hng mi, hoc l cn kt ni cỏc h thng cú
sn Vn kộo theo l chi phớ thay i mó ngun c, kim th, bo trỡ
Thc trng ny to thờm mt ỏp lc nng n vi cỏc doanh nghip v t chc, cỏc
nh phỏt trin phn mm.
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
Kin trỳc SOA v gii phỏp ca Oracle
Khoỏ lun tt nghip Phựng Th Thao-K54A-CNTT-HSPHN
8

1.1.2. Mt s mụ hỡnh trong h thng phõn tỏn
Ba kin trỳc phõn tỏn ph bin nht hin nay l DCOM, CORBA v EJB.
Cỏc kin trỳc ny l s m rng ca h thng hng i tng bng cỏch cho phộp
phõn tỏn cỏc i tng trờn mng. i tng ú cú th khụng nm trong vựng khụng
gian ng dng, hoc nm trờn mt mỏy khỏc khụng cha ng dng nhng vn c
tham chiu s dng nh mt phn ng dng.
CORBA - Common Object Request Broker Architecture
CORBA c nh ngha bi Object Managerment Group (OMG), l mt kin
trỳc phõn tỏn m, c lp nn tng v c lp ngụn ng.
CORBA Common Model (CCM) nh ngha ra qui trỡnh thit k, phỏt trin,
úng gúi, trin khai v thc thi cỏc thnh phn phõn tỏn. CCM nh ngha khỏi
nim Ports cho cỏc thnh t. Cỏc Ports ny c dựng kt ni cỏc thnh phn
cú sn vi nhau, to cỏc h thng phõn tỏn phc tp hn.
u im ca CORBA: cú th tho món mi ngụn ng, nn tng phn cng,
giao thc mng v cụng ngh phỏt trin CORBA.
Nhc im: l ngụn ng lp trỡnh cp thp, khú hc v cn i ng phỏt trin
cú kinh nghim. Cỏc i tng CORBA khú cú th tỏi s dng.
DCOM Distributed Component Object Model

DCOM l mụ hỡnh phõn tỏn d dng trin khai vi chi phớ thp, h tr tigh
coupling gia cỏc ng dng v h iu hnh. Mụ hỡnh Component Object
Model (COM) nh ngha cỏch thc cỏc thnh phn clien liờn lc v trao i vi
nhau trờn mt mỏy. DCOM m rng COM bng cỏch s dng cỏc giao thc
mng chun khi cn trao i d liu vi cỏc mỏy khỏc trong mng.
u im: tớnh n nh, khụng ph thuc v trớ a lý, qun lý kt ni hiu qu v
d dng m rng. Thun li cho cỏc doanh nghip s dng cỏc ng dng cựng
chy trờn nn Windows.
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
Kin trỳc SOA v gii phỏp ca Oracle
Khoỏ lun tt nghip Phựng Th Thao-K54A-CNTT-HSPHN
9
Nhc im: tt nhiờn cỏc cụng ngh ny ch chy c trờn nn windows

Hỡnh 1: Mụ hỡnh tng tỏc ca cỏc i tng trong kin trỳc DCOM

EJB Enterprise Java Bean
L kin trỳc dựng bờn phớa mỏy ch dựng cho vic trin khai cỏc ng dng
phõn tỏn hng i tng c va v ln
Kin trỳc EJB cú 3 tng vi tng u l tng trỡnh din, tng th hai l tng x
lý nghip v, tng th 3 l cỏc ti nguyờn nh c s d liu mỏy ch.
EJB l mt kin trỳc tt cho tớch hp h thng vỡ nú c lp trờn nn tng,
nhng nú khụng phi l mt chun m v kh nng giao tip vi cỏc chun
khỏc cũn hn ch.


THệ VIEN ẹIEN Tệ TRệẽC TUYEN
Kin trỳc SOA v gii phỏp ca Oracle
Khoỏ lun tt nghip Phựng Th Thao-K54A-CNTT-HSPHN
10



Hỡnh 2: Mụ hỡnh tng tỏc ca cỏc i tng trong kin trỳc EJB

Túm li, cỏc kin trỳc trờn u hng n vn xõy dng kin trỳc hng dch v
nhng chỳng cũn gp phi mt s vn nh:
Tigh coupling: kin trỳc trin khai ci t phớa nh cung cp v phớa s dng dch v
phi ging nhau.
Nhng chun trờn a phn l nhng chun úng. Vớ d: i tng java trong mụ
hỡnh EJB ch trao i c vi cỏc i tng cựng mụ hỡnh v khụng th trao i c
vi cỏc i tng DCOM.
Lng thụng tin trong mi ln giao dch l ớt, c thc hin nhiu ln vỡ vy dn
n chim dng bng thụng s dng v thi gian ỏp tr d liu nhanh.
Mt vn t ra l lm th no cỏc h thng phõn tỏn phỏt trin trờn cỏc cụng
ngh khỏc nhau cú th giao tip c vi nhau? Cỏch tip cn mi ny ỏp ng c
yờu cu ú. ú l cỏch tip cn theo kiu kin trỳc hng dch v.
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
Kin trỳc SOA v gii phỏp ca Oracle
Khoỏ lun tt nghip Phựng Th Thao-K54A-CNTT-HSPHN
11
1.2. Gii thiu kin trỳc hng dich v SOA
1.2.1. Kin trỳc hng dch v l gỡ
Kin trỳc hng dch v (Service Oriented Architecture) l mt hng tip cn vi
vic thit k v tớch hp cỏc phn mm, chc nng h thng theo dng module, trong ú
mi module úng vai trũ l mt dch v cú tớnh loose coupling v cú kh nng truy
cp thụng qua mụi trng mng. Mt cỏch n gin thỡ mt h thng SOA l tp hp
cỏc dch v c chun hoỏ trờn mng, trao i vi nhau trong ng cnh mt tin trỡnh
nghip v.
SOA cú ba i tng chớnh minh ho trong hỡnh sau:


2. Hỡnh 3: S cng tỏc trong SOA hin nay
Nh cung cp dch v (Service Provider) cn cung cp thụng tin v nhng dch v
ca mỡnh trong mt dch v lu tr thụng tin dch v (Service Registry). Ngi s dng
(Service Consumer) tỡm kim thụng tin v dch v cn thit trong Service Regisstry sau
ú xõy dng kờnh giao tip vi nh cung cp.
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
Kiến trúc SOA và giải pháp của Oracle
Khố luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-ĐHSPHN
12
SOA cung cấp các giải pháp để giải quyết các vấn đề tồn tại của các hệ thống hiện
nay như: phức tạp, khơng linh hoạt và khơng ổn định. Một hệ thống triến khai theo mơ
hình SOA có khả năng dễ mở rộng, liên kết tốt. Đây chính là điều kiện cơ sở, nền tảng
để tích hợp, tái sử dụng những tài ngun hiện có.
Thật ra, tư tưởng về một kiến trúc hướng dịch vụ khơng phải là mới mà CORBA,
DCOM (mơ hình của Microsoft), EJB (mơ hình của java) đã thực hiện từ lâu, tuy nhiên
cách tiếp cận này còn gặp nhiều hạn chế (như đã nói ở trên). SOA khơng chỉ cải tiến
đáng kể mà còn đem đến nhiều ưu điểm nổi trội hơn
1.2.2. Các ngun tắc chính của hệ thống SOA
Một hệ thống SOA phải đảm bảo đủ 4 ngun tắc chính sau:
• Sự phân định rạch ròi giữa các dịch vụ
Do có sự tách biệt giữa thành phần giao tiếp và thành phần thực hiện dịch vụ
trong kiến trúc hướng dịch vụ.
Các dịch vụ này sẽ thực hiện q trình tương tác chủ yếu thơng qua thành phần
giao tiếp. Thành phần này sẽ quy định những dạng thơng điệp trong q trình trao đổi:
thơng điệp nào sẽ được chấp nhận và thơng điệp nào sẽ khơng được xử lý. Và đây chính
là cách duy nhất để các đối tượng bên ngồi có thể truy cập vào thơng tin và chức năng
của dịch vụ. ta chỉ cần gửi thơng điệp được định dạng đến trước để u cầu dịch vụ mà
khơng cần biết thơng điệp đó sẽ được xử lý như thế nào.
• Các dịch vụ tự hoạt động
Các dịch vụ cần được triển khai và hoạt động như một thực thể độc lập mà khơng

phụ thuộc vào các dịch vụ khác.
Dịch vụ phải có tính bền vững cao, nghĩa là nó khơng bị sụp đổ khi có sự cố.
Để thực hiện điều này, các dịch vụ cần duy trì đầy đủ thơng tin cần thiết cho q
trình hoạt động của mình để có thể tiếp tục hoạt động trong trường hợp dịch vụ cộng tác
của nó bị hỏng, đồng thời sử dụng các biện pháp bảo mật để tránh các cuộc tấn cơng ồ
ạt từ bên ngồi vào như gửi thơng điệp lỗi hoặc thơng điệp ồ ạt.
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Kiến trúc SOA và giải pháp của Oracle
Khố luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-ĐHSPHN
13
Đây chính là ý nghĩa của khái niệm Loose coupling
• Các dịch vụ chia sẻ lược đồ
Các dịch vụ nên cung cấp thành phần giao tiếp (Interface) của nó ra bên ngồi và
hỗ trợ chia sẻ các cấu trúc thơng tin, các ràng buộc dữ liệu thơng qua các lược đồ dữ
liệu (Schema) chuẩn. Như thế hệ thống sẽ có tính dễ liên kết và dễ dàng mở rộng
• Tính tương thích của các dịch vụ dựa trên chính sách
Một dịch vụ muốn tương tác với các dịch vụ khác thì phải thoả mãn các chính
sách (Policy), các u cầu (Requirements) của dịch vụ đó như: mã hố, bảo mật. Mỗi
dịch vụ phải cung cấp cơng khai các chính sách và các u cầu bảo mật của mình.
1.2.3. Các tính chất của hệ thống SOA
• Loose coupling
Vấn đề kết nối ám chỉ các ràng buộc giữa một số module với nhau. Có hai loại kết
nối là rời (loose) và chặt (tigh). Các module có tính loose coupling có một số ràng buộc
được mơ tả rõ ràng, trong khi các module có tính tigh coupling thì lại có một số ràng
buộc khơng được biết trước. Hầu hết các phần mềm đều hướng đến tính loose coupling.
SOA sử dụng loose coupling thơng qua việc sử dụng hợp đồng và liên kết
(contract and binding). Một người sử dụng truy vấn đến nơi lưu trữ và cung cấp thơng
tin dịch vụ (Registry) để lấy thơng tin về loại dịch vụ cần sử dụng. Registry sẽ trả về
mọi dịch vụ thoả mãn tiêu chuẩn tìm kiếm. Từ đó người dùng chỉ việc chọn dịch vụ
mình cần, thực thi phương thức trên đó theo mơ tả để nhận dịch vụ từ Registry. Bên sử

dụng dịch vụ khơng cần phụ thuộc trực tiếp vào tin cài đặt của dịch vụ mà chỉ dựa trên
hợp đồng dịch vụ đó hỗ trợ.
Tính loose coupling giúp gỡ bỏ những ràng buộc điều khiển giữa những hệ thống
đầu cuối. Mỗi hệ thống có thể tự quản lý độc lập làm tăng hiệu suất, khả năng mở rộng
và khả năng đáp ứng cao. Loose coupling làm tách biệt giữa bên cung cấp và bên sử
dụng, nhưng nó đòi hỏi các interface phải theo một chuẩn và cần một thành phần trung
gian quản lý để trung chuyển u cầu giữa các hệ thống đầu cuối
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Kiến trúc SOA và giải pháp của Oracle
Khố luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-ĐHSPHN
14
• Tái sử dụng dịch vụ
Những dịch vụ được dùng chung bởi tất cả các ứng dụng của một hệ thống SOA
gọi là shared infrastructure service. Tái sử dụng dịch vụ loại bỏ thành phần trùng lặp,
tăng độ vững chắc trong cài đặt và đơn giản hố việc quản trị
• Sử dụng dịch vụ bất đồng bộ
Phương thức triệu gọi bất đồng bộ như sau: bên gọi gửi một thơng điệp với đầy
đủ thơng tin ngữ cảnh tới bên nhận. Bên nhận xử lý thơng tin và trả về kết quả cho bên
gọi thơng qua một kênh thơng điệp. Bên gọi khơng phải chờ cho đến khi thơng điệp
được xử lý xong.
Phương thức đồng bộ:
Trên lý thuyết, SOA có thể sử dụng cả phương thức đồng bộ và bất đồng bộ.
• Quản lý các Policy
Khi sử dụng các dịch vụ trên mạng, tuỳ theo mỗi ứng dụng sẽ có một luật kết hợp
riêng gọi là các Policy. Việc quản lý các Policy tăng khả năng tạo ra các đặc tính tái sử
dụng dịch vụ vì các Policy được thiết kế tách biệt và tuỳ vào mỗi ứng dụng nên giảm tối
đa các thay đổi phần mềm đồng thời có thể chia các nhóm làm việc mà khơng cần phụ
thuộc vào nhau (nhóm phát triển phần mềm và nhóm điều hành,nhóm hỗ trợ).
• Coarse granularity
Khái niệm Granularity trong dịch vụ có thể hiểu theo 2 cách: trong phạm vi tồn

bộ kiến trúc của dịch vụ hoặc trong phạm vi từng phương thức của từng interface triển
khai. Mức độ granularity cũng có hai loại: coarse – grained (ví dụ dịch vụ cài đặt tất cả
các chức năng của một ngân hàng) và fined – grained (ví dụ dịch vụ chỉ hỗ trợ chức
năng rút tiền tự động…). Một hệ thống có chứa các đối tượng fined – grained thì phức
tạp hơn là hệ thống coarse – grained.
• Khả năng cộng tác
SOA nhấn mạnh đến khả năng cộng tác (interoperability), khả năng mà các hệ
thống khác nhau có thể giao tiếp trên nhiều nền tảng ngơng ngữ khác nhau. Mỗi dịch vụ
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN
Kin trỳc SOA v gii phỏp ca Oracle
Khoỏ lun tt nghip Phựng Th Thao-K54A-CNTT-HSPHN
15
cung cp mt interface cú th c triu gi thụng qua mt dng kt ni. Mt kt ni
gi l interoperable cha trong nú mt giao thc v mt nh dng d liu m mi
client kt ni n nú u hiu. Interoperability t c bng cỏch h tr cỏc giao thc
v nh dng d liu chun ca dch v v client H thng ỏnh x mi tớnh cht v ngụn
ng qua mt c t trung gian. c t ny s chu trỏch nhim ỏnh x gia nh dng d
liu kh kt (interoperable) n nh dng ca d liu tu thuc vo h thng. Vớ d
Wrb Service l mt c t trung gian cho giao tip gia cỏc h thng JAX-RPC, JAXM
chuyn cỏc i tng dng Java thnh SOAP.
T ng dũ tỡm v rng buc ng
SOA h tr khỏi nim dũ tỡm dch v (Service discovery). Mt ngi s dng
cn mt dch v no ú cú th tỡm kim dch v theo nhng tiờu chun khi cn. Ngi
s dng dch v ch cn hi mt Registry v dch v tho món yờu cu ca h.
Vớ d, mt h thng chuyn khon (Consumer) yờu cu Registry tỡm kim tt c
cỏc dch v cú kh nng kim tra th tớn dng. Registry tr v mt tp cỏc thụng tin tho
món yờu cu. Cỏc entry cha thụng tin v dch v bao gm c phớ dch v. Bờn s dng
s chn mt dch v cú chi phớ thp nht v kt ni n nh cung cp dch v ú da
trờn thụng tin ca entry m registry tỡm c yờu cu s dng dch v kim tra th
tớn dng. Trong phn mụ t dch v kốm theo ó cú tt c cỏc tham s cn thit thc

thi dch v. Bờn s dng ch cn nh dng d liu cn thit theo mụ t ca nh cung
cp dch v v gi i. Nh cung cp s thc thi kim tra th tớn dng v tr v kt qu l
mt thụng ip theo ỳng nh dng nh trong phn mụ t dch v. Mi rng buc duy
nht gia nh cung cp v ngi s dng l bn hp ng c cung cp bi Registry
trung gian. Mi rng buc ny l rng buc trong thi gian chy ch khụng phi l rng
buc trong thi gian biờn dch. Tt c cỏc thụng tin cn thit v dch v c ly v v
s dng trong khi chy.
Vi SOA, bờn s dng khụng cn bit nh dng ca thụng ip yờu cu cng
nh thụng ip tr v, hay a ch dch v khi gi n. Bờn s dng triu gi mt cỏch
ng.
T hi phc
THệ VIEN ẹIEN Tệ TRệẽC TUYEN
Kiến trúc SOA và giải pháp của Oracle
Khố luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-ĐHSPHN
16
Một hệ thống tự hồi phục (Self - healing) là một hệ thống có khả năng tự hồi
phục sau khi bị lỗi mà khơng cần đến sự can thiệp của con người. Đây là một yếu tố
quan trọng trong các ứng dụng hệ thống phân tán.
Độ tin cậy (reliability) là mức độ đo khả năng một hệ thống xử lý tốt như thế nào
trong tình trạng hỗn loạn. Trong SOA, mỗi dịch vụ có khả năng hoạt động hoặc ngừng
bất cứ lúc nào, nhất là những ứng dụng tổ hợp của nhiều dịch vụ thuộc nhiều tổ chức
khác nhau. Độ tin cậy phụ thuộc vào khả năng phục hồi của phần cứng sau khi gặp lỗi.
Hạ tầng mạng phải cho phép các kết nối động từ nhiều hệ thống khác nhau kết nối đến
trong khi chạy. Một kiến trúc hỗ trợ kết nối và thực thi động như thế sẽ có khả năng tự
phục hồi cao hơn kiến trúc khơng hỗ trợ tính năng này.
Một tính chất cơ bản khác của hệ thống hướng dịch vụ là: có sự tách biệt giữa
interface và cài đặt, nên có thể có nhiều cài đặt khác nhau cho một interface. Nếu một
thể hiện dịch vụ nào đó khơng hoạt động thì một thể hiện khác vẫn có thể hồn tất giao
dịch cho khách hàng mà khơng bị ảnh hưởng gì. Khả năng này có được nghĩa là client
chỉ tương tác với interface của dịch vụ chứ khơng tương tác trực tiếp tới cài đặt của dịch

vụ.
1.2.4. Lợi ích của SOA
(a) SOA là một giải pháp hiệu quả và tiết kiệm chi phí
• Sử dụng lại những thành phần có sẵn
Một trong những lợi ích rõ ràng nhất của SOA là giúp cơng ty sử dụng lại được
những tài ngun có sẵn, kết quả là giảm chi phí cho phần kiến trúc và tích hợp. Ngồi
ra nó còn giúp giảm chi phí mua phần mềm mới.
Việc tái sử dụng có lợi ích to lớn, thứ nhất là giảm tính dư thừa, thứ hai là sử
dụng lại được những thành phần sẵn có để thiết kế phần mềm mới, giảm chi phí phát
triển cho từng phần độc lập của mỗi tính năng mới chưa có. Với SOA, thay vì phải
“thay đổi”, chúng ta chỉ cần tạo các cầu nối liên hệ giữa các ứng dụng và hệ thống trên
mơi trường khác nhau.
• Giải pháp ứng dụng tổ hợp cho doanh nghiệp
THƯ VIỆN ĐIỆN TỬ TRỰC TUYẾN

×