1. Trang chủ
  2. » Luận Văn - Báo Cáo

CÔNG NGHỆ DỊCH VỤ WEB

5 361 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 1,92 MB

Nội dung

Kiến trúc phần mềm của một hệ thống mô tả các thành phần của hệ thống và cách thức các thành phần này tương tác với nhau; tương tác giữa các thành phần được gọi là “liên kết” (connector).

Trang 1

MỤC LỤC

MỤC LỤC 1

KẾT LUẬN 83 1

MỞ ĐẦU 2

DANH MỤC CÁC TỪ VIẾT TẮT 4

DANH MỤC CÁC HÌNH VẼ 4

CHƯƠNG I LÝ THUYẾT KIẾN TRÚC HƯỚNG DỊCH VỤ 5

1 Kiến trúc hướng dịch vụ - xu hướng mới trong công nghệ thông tin 5

2 Kiến trúc hướng dịch vụ - một giải pháp 7

2.1 Sự tiến hóa của lý thuyết phát triển phần mềm 7

2.2 Kiến trúc hướng dịch vụ 10

2.3 Dịch vụ và thành phần 18

3 Thiết kế theo kiến trúc hướng dịch vụ 22

4 Các công nghệ hướng dịch vụ 35

4.1 Sun JINI 35

4.2 Openwings 36

4.3 Dịch vụ Web 39

4.4 Enterprise Service Bus (ESB) 39

5 Kết luận chương: 41

CHƯƠNG II CÔNG NGHỆ DỊCH VỤ WEB 43

1 Kiến trúc dịch vụ Web 44

2 Các chuẩn cho dịch vụ Web 45

2.1 Ngôn ngữ mô tả dịch vụ Web WSDL 45

2.2 Giao thức truy cập đối tượng đơn giản SOAP 48

2.3 Đặc tả mô tả và tích hợp tìm kiếm UDDI 53

3 Các kiểu liên kết trong dịch vụ Web 57

3.1 Liên kết tĩnh 57

3.2 Liên kết động trong thời gian xây dựng 58

3.3 Liên kết động trong thời gian chạy 60

5 Xây dựng dịch vụ Web 61

5.1 Vòng đời của dịch vụ Web 61

5.2 Bảo mật trong dịch vụ Web 62

5.3 Tính liên thông giữa các dịch vụ Web 67

6 Kết luận chương 68

CHƯƠNG III CÀI ĐẶT ỨNG DỤNG 69

KẾT LUẬN 83

Trang 2

MỞ ĐẦU

Kiến trúc phần mềm của một hệ thống mô tả các thành phần của hệ thống và cách thức các thành phần này tương tác với nhau; tương tác giữa các thành phần được gọi là “liên kết” (connector) Trong một hệ thống phần mềm có quy mô lớn và phức tạp thì kiến trúc của hệ thống giữ một vị trí quan trọng trong việc hiểu hệ thống, việc

tổ chức phát triển và tăng cường tái sử dụng

Ngày nay, khi mà độ phức tạp của phần mềm ngày càng tăng thì các kiến trúc phần mềm truyền thống dường như đang tiến tới giới hạn khả năng giải quyết vấn đề của chúng; trong khi đó, các tổ chức công nghệ thông tin vẫn phải đáp ứng được những yêu cầu đặt ra như: yêu cầu được đáp ứng nhanh, yêu cầu giảm giá thành, yêu cầu về khả năng thu hút và tích hợp với các đối tác mới v.v…, và đặc biệt là sự thay đổi nhanh chóng của các công nghệ

Trong suốt bốn thập kỷ qua, thực tế phát triển phần mềm đã trải qua nhiều phương pháp phát triển khác nhau Mỗi phương pháp mới xuất hiện đều hướng tới mục tiêu quản lý độ phức tạp ngày càng tăng của phần mềm bằng cách đưa ra các cấu

trúc có mức độ đóng gói tăng dần: từ hàm (function), lớp (class), tới thành phần (component); các cấu trúc này được xem như những phần mềm “hộp đen”, chúng che

giấu cài đặt nhờ việc kiểm soát việc truy cập tới hành vi và dữ liệu của mình thông qua một giao diện tường minh Ở mức độ đóng gói thấp, chúng ta sử dụng đối tượng

để che giấu dữ liệu, ở mức độ đóng gói cao hơn, chúng ta sử dụng các thành phần để thực hiện việc này Việc sử dụng đối tượng để che giấu thông tin hoạt động tốt với các hệ thống nhỏ, nó cho phép tạo ra các cấu trúc phần mềm phản ánh được các đối tượng trong thế giới thực Vấn đề nảy sinh khi chúng ta cố gắng nhóm một số lượng lớn các đối tượng cùng với nhau Mặc dù truy cập tới các đối tượng được điều khiển thông qua giao diện của chúng, mức độ đóng gói thấp của các đối tượng vẫn làm cho

sự phụ thuộc giữa chúng trở nên khó kiểm soát trong một hệ thống tương đối lớn Khái niệm thành phần được phát triển giúp quản lý các hệ thống lớn tốt hơn: một thành phần được định nghĩa là một nhóm các đối tượng hoạt động cùng nhau để thực

hiện một chức năng của hệ thống Các công nghệ như EJB (Enterprise Java Bean), NET, CORBA (Common Object Request Broker Architecture) tỏ ra rất hiệu

quả trong việc cài đặt các thành phần Phương pháp phát triển phần mềm dựa thành

phần (Component-based Development - CBD) cho phép những nhà phát triển tạo ra

các hệ thống phức tạp hơn, có chất lượng cao hơn và nhanh hơn bất kỳ phương pháp phát triển phần mềm nào khác trước đó Nhưng khi chúng ta xây dựng các thành phần trên các ngôn ngữ khác nhau, hay thậm chí là trên những nền tảng khác nhau (các thành phần không đồng nhất) cho một hệ thống thì cần có khả năng tích hợp chúng lại với nhau, nhưng một vấn đề nảy sinh: các thành phần dùng công nghệ EJB đòi hỏi

việc triệu gọi phương thức thông qua RMI (Remote Method Invocation – Triệu gọi

Trang 3

phương thức từ xa), trong khi đó, các thành phần dùng công nghệ CORBA thì lại

dùng IIOP (Internet Inter-ORB Protocol), hơn nữa, khi các thành phần được định vị

qua Internet, các thông điệp giữa chúng có thể bị chặn bởi tường lửa Ngay cả khi không gặp phải những vấn đề trên thì để sử dụng được thành phần, chúng ta vẫn cần phải biết vị trí chính xác và giao diện của thành phần để nếu giao diện thay đổi, chúng ta cũng phải thay đổi cách gọi đến chúng Vì số lượng người dùng thành phần

có thể rất lớn nên việc này sẽ tạo ra các phụ thuộc có quy mô lớn, rất khó kiểm soát Vậy làm thế nào chúng ta có thế giải quyết vấn đề này?

Kiến trúc hướng dịch vụ (Service-oriented architecture, viết tắt là SOA) đang

được phát triển và được xem như một bước đột phá tiếp theo trong kiến trúc phần mềm giúp giải quyết vấn đề “khủng hoảng” phần mềm Sự xuất hiện của công nghệ

dịch vụ Web (Web services) trong vài năm trở lại đây đã tạo ra sự quan tâm mạnh mẽ

tới kiến trúc này bởi Web service hiện thực hóa việc phát triển hệ thống theo kiến trúc hướng dịch vụ một cách tự nhiên và dễ dàng hơn Web service và kiến trúc hướng dịch vụ đang thay đổi một cách căn bản cách thức xây dựng các hệ thống nội

bộ (các hệ thống thông tin hỗ trợ trong các tổ chức) và cách các hệ thống nội bộ tương tác với các hệ thống bên ngoài mà chưa một kiến trúc nào trước đó có thể thực hiện được Thuật ngữ “dịch vụ” trong kiến trúc hướng dịch vụ cũng không phải là

khái niệm mới: các ứng dụng khách/chủ (client/server) trong những năm 90 đã sử

dụng “dịch vụ” để chỉ khả năng thực hiện lời gọi phương thức từ xa Kiến trúc hướng

dịch vụ đặc biệt đề cao tính liên thông (interoperability) và sự trong suốt về vị trí của

các dịch vụ, nói tới dịch vụ và kiến trúc hướng dịch vụ là nói về việc thiết kế và xây dựng các hệ thống sử dụng các thành phần phần mềm không đồng nhất

Sử dụng công nghệ dịch vụ Web và kiến trúc hướng dịch vụ đem lại các lợi ích sau:

• Mở rộng các lựa chọn về mặt công nghệ

• Các hệ thống được xây dựng linh hoạt và nhạy bén hơn

• Giảm thời gian phát triển

• Giảm chi phí bảo trì

Trong đồ án tốt nghiệp này, người viết luận văn (NVLV) sẽ trình bày về lý thuyết của kiến trúc hướng dịch vụ và công nghệ dịch vụ Web, tại sao những công nghệ này có thể xóa bỏ những rào cản công nghệ để tạo ra các hệ thống phần mềm có tính tích hợp cao, và tại sao lựa chọn công nghệ dịch vụ Web là thích hợp nhất cho việc cài đặt ứng dụng theo kiến trúc hướng dịch vụ cũng như lợi ích của những ứng dụng này khi xây dựng theo kiến trúc hướng dịch vụ

Trang 4

DANH MỤC CÁC TỪ VIẾT TẮT

DANH MỤC CÁC HÌNH VẼ

Trang 5

CHƯƠNG I LÝ THUYẾT KIẾN TRÚC HƯỚNG DỊCH VỤ

Chương này sẽ trình bày các khái niệm cơ bản về :

• Sự tiến hóa của kỹ thuật phát triển phần mềm

• Kiến trúc hướng dịch vụ và phát triển phần mềm theo kiến trúc hướng dịch vụ

• Các công nghệ giúp hiện thực hóa triết lý của kiến trúc hướng dịch vụ

1 Kiến trúc hướng dịch vụ - xu hướng mới trong công nghệ

thông tin.

Trong khi các nhà quản lý công nghệ thông tin đang phải đối đầu với việc giảm giá thành và tối đa lợi ích của các công nghệ hiện có, họ vẫn phải liên tục cố gắng để phục vụ khách hàng được tốt hơn, trở nên cạnh tranh hơn và phản ứng nhanh hơn với chiến lược của doanh nghiệp

Có hai yếu tố chính ẩn sau những áp lực này, đó là tính không đồng nhất của các hệ thống và sự thay đổi nhanh về mặt công nghệ Phần lớn các doanh nghiệp ngày nay đều gồm nhiều hệ thống, ứng dụng và kiến trúc khác nhau với thời gian tồn tại và công nghệ khác nhau Việc tích hợp các sản phẩm từ nhiều nhà cung cấp và nhiều nền tảng thực sự là điều khó khăn Nhưng chúng ta cũng không thể cố gắng tiếp cận theo kiểu một nhà cung cấp đối với công nghệ thông tin vì các bộ ứng dụng

và kiến trúc hỗ trợ rất không mềm dẻo

Sự thay đổi công nghệ là yếu tố thứ hai mà các nhà quản lý công nghệ thông tin phải đối mặt Sự toàn cầu hoá và kinh doanh điện tử đang làm tăng tốc sự thay đổi Sự toàn cầu hoá dẫn tới sự cạnh tranh gay gắt trong việc rút ngắn chu kỳ sản xuất

để có thể chiếm ưu thế đối với đối thủ cạnh tranh Các thay đổi về yêu cầu và nhu cầu của khách hàng nhanh chóng hơn do tác động của phân phối cạnh tranh và sự phong phú về thông tin sản phẩm trên Internet Do đó lại càng thúc đẩy việc cải tiến trong sản phẩm và dịch vụ diễn ra nhanh hơn

Các cải tiến trong công nghệ tiếp tục tăng, làm tăng sự thay đổi yêu cầu của khách hàng Doanh nghiệp phải nhanh chóng thích nghi để tồn tại, chưa kể đến việc phải thành công trong môi trường cạnh tranh động ngày nay, và hạ tầng công nghệ thông tin phải đem lại khả năng thích nghi cho các doanh nghiệp

Vì vậy, các tổ chức kinh doanh đang phát triển từ sự phân chia doanh nghiệp theo chiều thẳng dọc, cô lập của những năm 1980 về trước thành các cấu trúc chú trọng quy trình kinh doanh theo chiều ngang của những năm 1980, 1990, tới mô hình kinh doanh mới trong đó các doanh nghiệp có tác động lẫn nhau Các dịch vụ kinh

Ngày đăng: 25/04/2013, 10:03

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w