Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 42 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
42
Dung lượng
580,5 KB
Nội dung
Kiến trúc SOA và giảiphápcủa Oracle
KHOA CÔNGNGHỆ THÔNG TIN
…………… ……………
BÁO CÁO NCKH
ĐỀ TÀI:
NGHIÊN CỨU KIẾN TRÚC HƯỚNG DỊCH VỤ
(SERVICE-ORIENTED ARCHITECTURE)
VÀ GIẢIPHÁPCỦA ORACLE
GIÁO VIÊN HƯỚNG DẪN:
SINH VIÊN THỰC HIỆN:
HÀ NỘI, THÁNG 4 – 2014
Khoá luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-
ĐHSPHN
1
Kiến trúc SOA và giảiphápcủa Oracle
Lời cảm ơn
Em xin chân thành cảm ơn khoa CNTT trường ĐHHN đã tạo điều kiện giúp em
hoàn thành khoá luận này.
Em xin gửi lời biết ơn sâu sắc đến. Thầy đã tận tình hướng dẫn và chỉ bảo cho em
trong suốt quá 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 quý 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 hoàn thành đề tài này.
Mặc dù đã cố gắng hoà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 hoà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 luôn 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 2014
Sinh viên
Khoá luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-
ĐHSPHN
2
Kiến trúc SOA và giảiphápcủa Oracle
MỤC LỤC
Chương 1: Tổng quan về SOA
1.1.Thực trạng hiện tại và một số mô hình trong hệ thống phân tán
1.1.1. Thực trạng
1.1.2. Một số mô hình trong hệ thống phân tán
1.2.Giới thiệu kiến trúc hướng dich vụ SOA
1.2.1. Kiến trúc hướng dịch vụ là gì?
1.2.2. Các nguyên tắc chính của hệ thống SOA
1.2.3. Các tính chất của hệ thống SOA
Khoá luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-
ĐHSPHN
3
Kiến trúc SOA và giảiphápcủa Oracle
1.2.4. Lợi ích của SOA
1.2.5. Kiến trúc phân tầng chi tiết của SOA
1.2.6. Một số mô hình triển khai SOA
1.3.Xây dựng một hệ thống SOA
4.1. Chu trình phát triển của một hệ thống SOA
4.2. Các kỹ thuật hỗ trợ
4.3. Dịch vụ và nguyên tắc thiết kế một dịch vụ
1.4.Vấn đề bảo mật trong SOA
4.1. Đặt vấn đề
4.2. Giới thiệu một số kiến trúc hướng dịch vụ
4.3. Giới thiệu một số chuẩn trong XML
1.5.Vấn đề tích hợp trong SOA
1.6.Quản lý tiến trình nghiệp vụ
1.7.Kết luận
Chương 2: Bộ giảipháp về SOA của Oracle
2.1.Oracle SOA Suite hiện thực Web service với Jdeveloper
2.2.Giới thiệu về SOA Suite
2.2.1. Ứng dụng của SOA Suite
2.2.2. Service Bus
2.2.3. BPEL engine
2.2.4. BPEL Designer
2.3.Kết luận
Chương 3: Thử nghiệm thực tế phần mềm BPEL của Oracle
Thử nghiệm phần mềm SOA suite
Khoá luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-
ĐHSPHN
4
Kiến trúc SOA và giảiphápcủa Oracle
Xây dựng một số service trong website bán hàng cho một book_cafe.
Chương 4. Kết luận chung
4.1.Kết quả đạt được
4.2.Hướng phát triển
Phụ lục tham khảo
Danh sách hình
Danh sách các thuật ngữ và khái niệm
Khoá luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-
ĐHSPHN
5
Kiến trúc SOA và giảiphápcủa Oracle
Lời mở đầu
Ngày nay, côngnghệ 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 toà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 nguyên 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ôngnghệ 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ảiphá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 OrientedArchitecture –
SOA).
Các ứng dụng khi sử dụng dịch vụ này chỉ cần gửi thông điệp yê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ôngnghệ 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 quát về côngnghệ 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 OrientedArchitecture - SOA)
và giảiphápcủa Oracle.
Khoá luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-
ĐHSPHN
6
Kiến trúc SOA và giảiphápcủa Oracle
Mục tiêu của đề tài:
Gồm những vấn đề sau:
1. Đề tài tập trung vào việc nghiên cứu một cách tổng quan về SOA
- Nghiên cứu cơ sở lý thuyết của kiến trúc SOA, các tính chất và lợi ích của kiến
trúc này.
- Tìm hiểu những vấn đề liên quan đến xây dựng hệ thống SOA và các nguyên tắc
thiết kế hệ thống này.
- Ứng dụng vấn đề bảo mật trong kiến trúc hướng dịch vụ. Tìm hiểu một số chuẩn
bảo mật trong XML và Web Service
- Khả năng tích hợp hệ thống và quản lý các quy trình nghiệp vụ
2. Giảiphápcủa Oracle, cụ thể với phần mềm SOA Suite
- Tìm hiểu thực tế phần mềm SOA Suite và các thành phần liên quan.
- Môi trường phát triển và cách thiết kế, xây dựng ứng dụng, thực thi và quản lý các
tiến trình nghiệp vụ
3. Viết một vài servies sử dụng côngnghệ SOA trên ngôn ngữ BPEL của Oracle,
bằng phần mềm SOA Suite
- Xây dựng một ứng dụng nhỏ dùng phần mềm SOA Suite
Khoá luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-
ĐHSPHN
7
Kiến trúc SOA và giảiphápcủa Oracle
2. Chương 1: Tổng quan về SOA
1.1 Thực trạng hiện tại và một số mô hình trong hệ thống phân tán.
1.1.1. Thực trạng
Phần mềm ngày nay đang dần trở nên phức tạp và dường như đang vượt quá sự
kiểm soát của các mô hình hiện có. Theo Albert Einstein: “Mọi việc nên thực hiện theo
cách đơn giản đến mức có thể… ”. Hiện nay, có nhiều hệ thống phần mềm đang được
xây dựng với kiến trúc khá phức tạp với chi phí phát triển và bảo trì cao, đặc biệt là
những phần mềm cao cấp. Độ phức tạp của các hệ thống kiến trúc phần mềm ngày một
tăng do một số nguyên nhân sau:
Sự xuất hiện của nhiều côngnghệ mới tạo nên môi trường không đồng nhất trong
khi nhu cầu chia sẻ, tương tác, trao đổi của các hệ thống không thể tiến hành trong môi
trường như thế. Giải quyết vấn đề này nghĩa là các doanh nghiệp cần phải thay đổi hệ
thống theo một chuẩn thống nhất chung nào đó. Điều chủ yếu là hệ thống cũ cần được
sử dụng lại chứ không phải là gỡ bỏ thay mới bởi vấn đề chi phí cho thiết lập một hệ
thống quản lý mới tốn kém hơn nhiều so với chuyển đổi cái cũ. Vấn đề này đưa đến
một khái niệm là “Tích hợp hệ thống ” (Enterprise Architecture Intergration - EAI) –
đang được nhiều tổ chức quan tâm đầu tư với mức chi phí cao dẫn đầu hiện nay cho các
dự án dạng này.
Vấn đề lập trình dư thừa và tái sử dụng. Chẳng hạn, một doanh nghiệp có nhiều chi
nhánh khác nhau, mỗi chi nhánh lại có một hệ thống tách biệt và xây dựng ở những thời
điểm khác nhau và cần kết nối lại với nhau sẽ không tránh khỏi việc sử dụng dư thừa tài
nguyên, dữ liệu không đồng nhất…
Hầu như mọi tổ chức đều phải đối mặt với vấn đề tích hợp vì nhiều lí do như mở
rộng thêm chi nhánh, thêm hệ thống bạn hàng mới, hoặc là cần kết nối các hệ thống có
sẵn… Vấn đề kéo theo là chi phí thay đổi mã nguồn cũ, kiểm thử, bảo trì…
Thực trạng này tạo thêm một áp lực nặng nề với các doanh nghiệp và tổ chức, các
nhà phát triển phần mềm.
Khoá luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-
ĐHSPHN
8
Kiến trúc SOA và giảiphápcủa Oracle
1.1.2. Một số mô hình trong hệ thống phân tán
Ba kiến trúc phân tán phổ biến nhất hiện nay là DCOM, CORBA và EJB.
Các kiến trúc này là sự mở rộng của hệ thống hướng đối tượng bằng cách cho phép
phân tán các đối tượng trên mạng. Đối tượng đó có thể không nằm trong vùng không
gian ứng dụng, hoặc nằm trên một máy khác không chứa ứng dụng nhưng vẫn được
tham chiếu sử dụng như một phần ứng dụng.
• CORBA - Common Object Request Broker Architecture
CORBA được định nghĩa bởi Object Managerment Group (OMG), là một
kiến trúc phân tán mở, độc lập nền tảng và độc lập ngôn ngữ.
CORBA Common Model (CCM) định nghĩa ra qui trình thiết kế, phát
triển, đóng gói, triển khai và thực thi các thành phần phân tán. CCM định nghĩa
khái niệm Ports cho các thành tố. Các Ports này được dùng để kết nối các thành
phần có sẵn với nhau, tạo các hệ thống phân tán phức tạp hơn.
Ưu điểm của CORBA: có thể thoả mãn mọi ngôn ngữ, nền tảng phần cứng,
giao thức mạng và côngnghệ để phát triển CORBA.
Nhược điểm: là ngôn ngữ lập trình cấp thấp, khó học và cần đội ngũ phát
triển có kinh nghiệm. Các đối tượng CORBA khó có thể tái sử dụng.
• DCOM – Distributed Component Object Model
DCOM là mô hình phân tán dễ dàng triển khai với chi phí thấp, hỗ trợ tigh
coupling giữa các ứng dụng và hệ điều hành. Mô hình Component Object
Model (COM) định nghĩa cách thức các thành phần clien liên lạc và trao đổi với
nhau trên một máy. DCOM mở rộng COM bằng cách sử dụng các giao thức
mạng chuẩn khi cần trao đổi dữ liệu với các máy khác trong mạng.
Ưu điểm: tính ổn định, không phụ thuộc vị trí địa lý, quản lý kết nối hiệu
quả và dễ dàng mở rộng. Thuận lợi cho các doanh nghiệp sử dụng các ứng dụng
cùng chạy trên nền Windows.
Khoá luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-
ĐHSPHN
9
Kiến trúc SOA và giảiphápcủa Oracle
Nhược điểm: tất nhiên các côngnghệ này chỉ chạy được trên nền windows
Hình 1: Mô hình tương tác của các đối tượng trong kiến trúc DCOM
• EJB – Enterprise Java Bean
Là kiến trúc dùng bên phía máy chủ dùng cho việc triển khai các ứng dụng
phân tán hướng đối tượng cỡ vừa và lớn
Kiến trúc EJB có 3 tầng với tầng đầu là tầng trình diễn, tầng thứ hai là tầng
xử lý nghiệp vụ, tầng thứ 3 là các tài nguyên như cơ sở dữ liệu máy chủ.
EJB là một kiến trúc tốt cho tích hợp hệ thống vì nó độc lập trên nền tảng,
nhưng nó không phải là một chuẩn mở và khả năng giao tiếp với các chuẩn
khác còn hạn chế.
Khoá luận tốt nghiệp Phùng Thị Thao-K54A-CNTT-
ĐHSPHN
10
[...]... hoặc sử dụng lại các service Khi có đầy đủ các service thì chúng ta phải tích hợp lại Công việc tích hợp này chúng ta dùng ngôn ngữ BPEL để tích hợp các service Bạn có thể sử dụng BPEL của IBM hoặc củaOracle Với bộ design của BPEL chúng ta có thể tích hợp các service 1 cách nhanh chóng và dễ dàng Khoá luận tốt nghiệp ĐHSPHN 23 Phùng Thị Thao-K54A-CNTT- Kiến trúc SOA và giảiphápcủaOracle Business process... (Service Provider) cần cung cấp thông tin về những dịch vụ của mình trong một dịch vụ lưu trữ thông tin dịch vụ (Service Registry) Người sử dụng (Service Consumer) tìm kiếm thông tin về dịch vụ cần thiết trong Service Regisstry sau đó xây dựng kênh giao tiếp với nhà cung cấp Khoá luận tốt nghiệp ĐHSPHN 12 Phùng Thị Thao-K54A-CNTT- Kiến trúc SOA và giảiphápcủaOracle SOA cung cấp các giảipháp để giải. .. trúc SOA và giảiphápcủaOracle 9 Document services with metadata Khi thiết kế một document cho server theo kiểu metadata nghĩa là khi có một request đến sẽ trả về cho requestor tất cả những thông tin củaservice provider Thông tin trả về bao gồm: file WSDL, file XSD schema, và địa chỉ của policies 1.4 Vấn đề bảo mật trong SOA 1.4.1 Đặt vấn đề Với việc phát triển không ngừng củacôngnghệ web service. .. rằng Cả hai phía đều sử dụng cùng một công nghệ, một kỹ thuật bảo mật; cả hai phía đều tin tưởng vào cùng một domain Điều này có nghĩa là vấn đề sẽ phát sinh khi các bên tương tác thuộc Khoá luận tốt nghiệp ĐHSPHN 33 Phùng Thị Thao-K54A-CNTT- Kiến trúc SOA và giảiphápcủaOracle những domain khác nhau, sử dụng công nghệ mã hoá khác nhau Giải quyết vấn đề này là nhiệm vụ của tầng Trusted Managerment... Browser, thiết bị di động như điện thoại, pager, PDA… sử dụng cùng một chức năng mà vẫn có thông tin trả về tuỳ theo dạng thiết bị Tính chất độc lập về công nghệ này của SOA tiết kiệm rất nhiều Khoá luận tốt nghiệp ĐHSPHN 18 Phùng Thị Thao-K54A-CNTT- Kiến trúc SOA và giảiphápcủaOracle cho các công ty về mặt chi phí, đặc biệt là giai đoạn các công nghệ phát triển đa dạng như hiện nay • Tăng khả năng mở... vụ này còn gọi là những dịch vụ tổng hợp (Composite service) Tầng trên cùngcủaservice orchestrstion là tầng ứng dụng tổng hợp sử dụng các service và cung cấp giao diện cụ thể cho người sử dụng Khoá luận tốt nghiệp ĐHSPHN 19 Phùng Thị Thao-K54A-CNTT- Kiến trúc SOA và giảiphápcủaOracle Hình 3 Kiến trúc phân tầng của SOA • Tầng kết nối Mục đích của tầng kết nối là kết nối các ứng dụng enterprise... dưới được cung cấp ra ngoài dưới dạng các web service Các kiến trúc công nghệ giải pháp bảo mật hiện có được tái sử dụng lại thông qua tầng Integration backplane Cấu trúc phân tầng của Standard-based Security Info Exchange Platform Khoá luận tốt nghiệp ĐHSPHN 31 Phùng Thị Thao-K54A-CNTT- Kiến trúc SOA và giảiphápcủaOracle Hình 4: Cấu trúc phân tầng của Standard-based Security Info Exchange Platform... SOA và giảiphápcủaOracle Bottom-up: dựa trên phân tích tình trạng các tài nguyên của hệ thống hiện có và sẽ tái sử dụng các tài nguyên này trong việc xây dựng các dịch vụ mới 1.3.1 Chu trình phát triển của SOA: develop >integrate >orchestrate >deploy >manage >secure >access 1 Develop Giai đoạn này ta tập trung phát triển các service và tạo web service Mô hình: webservicemyservice - web service: ... đối tượng DOA (Distributed Object Architecture) sử dụng các côngnghệ như là CORBA, DCOM, DCE và Java RMI đang nhanh chóng chuyển sang các kiến trúc hướng dịch vụ (SOA) với những côngnghệ mới như SOAP, HTTP, XML Việc thay đổi kiến trúc hệ thống như thế đã dẫn đến những thay đổi nhất định trong việc đưa ra các giảipháp cho vấn đề bảo mật của hệ thống Hầu hết các giảipháp bảo mật hiện nay đều dựa trên... cần thiết cho quá 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 ngoài vào như gửi thông điệp lỗi hoặc thông điệp ồ ạt Khoá luận tốt nghiệp ĐHSPHN 13 Phùng Thị Thao-K54A-CNTT- Kiến trúc SOA và giảiphápcủaOracle Đây chính là ý nghĩa của khái niệm Loose coupling • Các . trúc SOA và giải pháp của Oracle KHOA CÔNG NGHỆ THÔNG TIN …………… …………… BÁO CÁO NCKH ĐỀ TÀI: NGHIÊN CỨU KIẾN TRÚC HƯỚNG DỊCH VỤ (SERVICE- ORIENTED ARCHITECTURE) VÀ GIẢI PHÁP CỦA ORACLE GIÁO. quát 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. Khoá. vụ 1.7.Kết luận Chương 2: Bộ giải pháp về SOA của Oracle 2.1 .Oracle SOA Suite hiện thực Web service với Jdeveloper 2.2.Giới thiệu về SOA Suite 2.2.1. Ứng dụng của SOA Suite 2.2.2. Service Bus 2.2.3. BPEL