Xây dựng ứng dụng kiến trúc hướng dịch vụ web trên nền tảng WCF.DOC

19 1K 13
Xây dựng ứng dụng kiến trúc hướng dịch vụ web trên nền tảng WCF.DOC

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Xây dựng ứng dụng kiến trúc hướng dịch vụ web trên nền tảng WCF.

Trang 1

MỤC LỤC

LỜI MỞ ĐẦU 2

CHƯƠNG I: TỔNG QUAN 3

I 1 Giới thiệu đơn vị thực tập 3

I.1.1 Giới thiệu chung 3

I.1.2 Sản phẩm & Dịch vụ & Giải pháp 4

I.1.3 Kinh nghiệm 6

I.1.4 Các đối tác chiến lược 7

I.2.2 Ngôn ngữ triển khai 7

CHƯƠNG II: KIẾN TRÚC HƯỚNG DỊCH VỤ - SOA 9

II.1 Tổng quan 9

II.2 Các yêu cầu 9

II.3 Các yếu tố cơ bản 10

II.4 Cách tiếp cận các dịch vụ Web 11

II.4.2 Người yêu cầu dịch vụ 12

II.5 Kiến trúc hướng dịch vụ và Lập trình hướng đối tượng (SOA và OOP) 12

II.6 Kiến trúc hướng dịch vụ và các dịch vụ Web (SOA và Web Service) 13

II.7 Hợp đồng dịch vụ 14

II.8 SOA và các kiến trúc cũ 16

II.8.1 SOA và kiến trúc kinh doanh 16

II.8.2 SOA và kiến trúc quản lý mạng 16

TÀI LIỆU THAM KHẢO 18

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

WCF Windows Communication Foundation SOA Service Oriented Architecture

SOAP Simple Object Access Protocol OOP Object Oriented Programming HTTP Hypertext Transfer Protocol XML eXtensible Markup Language

API Application Programming Interface

UDDI Universal Description Discovery and Integration

WMI Windows Management Instrumentation WSDL Web Services Description Language

Trang 2

CLIs Command Line Interfaces JMX Java Management Extensions

LỜI MỞ ĐẦU

Ngày nay, công nghệ thông tin đã và đang đóng vai trò quan trọng trong đời sống kinh tế, xã hội của nhiều quốc gia trên thế giới, là một phần không thể thiếu trong một xã hội ngày càng hiện đại hóa Nói đến công nghệ thông tin, chúng ta không thể không nhắc đến công nghệ phần mềm, phần mềm đóng một vai trò cực kỳ quan trọng trong lĩnh vực công nghệ thông tin

Giờ đây, công nghệ phần mềm đã và đang tiến bộ từng ngày, hàng loạt những kỹ thuật, những công nghệ mới ra đời giúp cho việc phát triển các hệ thống phần mềm ngày càng đơn giản hơn Và việc lựa chọn một công nghệ mới có hiệu quả và phù hợp với việc phát triển phần mềm của một công ty đóng vai trò rất quan trọng Khi mà khối lượng thông tin ngày càng lớn cần sự lưu trữ tập chung và chia sẻ có hiệu quả giữa các máy tính với nhau; có thể cập nhật tình trạng và chia sẻ một cách dễ dàng do đó việc dùng các đối tượng từ xa là một cách tuyệt vời để dùng lại mã nguồn ở mức ứng dụng trên một máy cục bộ Ta cần xây dựng các ứng dụng kiến trúc hướng dịch vụ Web cung cấp các dịch vụ truy cập các đối tượng từ xa có hiệu quả và cập nhật một cách đơn giản nhanh chóng Tuy nhiên các công nghệ trước đây như COM+ và CORBA rất khó cài đặt mà chi phí bảo trì lại cao Hơn thế nữa, đối với trường hợp của CORBA thì giá rất cao để mua bản quyền hoạt động Web Services được đưa ra là làm cho việc tạo các đối tượng từ xa trở thành hiện thực Và hiện nay, Microsoft cho ra đời công nghệ mới WCF được phát triển trên nền tảng NET Framework 3.x, một tiện ích trong Visual studio 2008 cho phép xây dựng các

Trang 3

ứng dụng kiến trúc hướng dịch vụ Web một cách dễ dàng và hiệu quả Do vậy, em nghiên cứu về đề tài: “Xây dựng ứng dụng kiến trúc hướng dịch vụ web trên nền tảng WCF”.

CHƯƠNG I: TỔNG QUAN

I 1 Giới thiệu đơn vị thực tập

I.1.1 Giới thiệu chung

Tên giao dịch: Công ty cổ phần phần mềm Quản lý Hiện Đại

Tên viết tắt: HIENDAI SOFTWARE COMPANY

Địa chỉ trụ sở chính: Phòng 901, nhà CT1-2, KĐT Mễ Trì Hạ, Từ Liêm, HN.Ngày thành lập: 08/09/2004, giấy phép đăng ký kinh doanh số: 0103005227Loại hình công ty: Công ty cổ phần.

Vốn điều lệ: 1 000 000 000VNĐGiám đốc: Nguyễn Hồng Vinh

Người liên lạc: Nguyễn Hồng Vinh – CEOHomepage: http://www.hiendai.com.vn

Email: contact@hiendai.com.vn; hiendaijsc@yahoo.comĐiện thoại: +84–(0)4–3787 5266; 04 2210 7136

Fax: +84–(0)4–3787 5266

Công ty Cổ phần Phần mềm Quản lý Hiện Đại phát triển các giải pháp dựa trên công nghệ của Microsoft ngay từ khi mới thành lập Sự sáng tạo của công ty bắt nguồn từ tinh thần ham học hỏi, luôn chào đón những ý tưởng mới, công nghệ mới và con người mới Khách hàng của công ty thu được lợi ích từ những giải pháp chuyên nghiệp về công nghệ và nghiệp vụ, có được từ kinh nghiệm mà công ty đã trải qua

Trang 4

Công ty có hai bộ phận chính: Phòng Giải pháp Thư viện, chuyên nghiệp trong việc phát triển và cung cấp các sản phẩm phần mềm và dịch vụ hỗ trợ cho vấn đề quản lý thông tin tư liệu thư viện ngày nay; phòng Giải pháp Doanh nghiệp tập trung phát triển các sản phẩm phần mềm và dịch vụ hỗ trợ cho các doanh nghiệp.

I.1.2 Sản phẩm & Dịch vụ & Giải pháp

• Thiết kế xây dựng các giải pháp phần mềm quản lý thông tin và quản lý doanh nghiệp

• Thiết kế và xây dựng Website cho các doanh nghiệp và cơ quan Nhà nước • Dịch vụ xử lý dữ liệu

• Các hoạt động liên quan đến cơ sở dữ liệu

SchoolLib – Phần mềm tự động hóa thư viện và quản lý giáo cụ trường phổ

VILAS – Giải pháp thư viện điện tử thư viện số với nhiều cấp độ khác nhau

theo nhu cầu của thư viện

o Small version (phiên bản nhỏ) – Giải quyết cơ bản các vấn đề tự động

hóa thư viện Biên mục, Tra cứu, Quản lý lưu thông với việc tích hợp công nghệ mã vạch, thẻ từ, hỗ trợ Unicode tiếng Việt.

o Standard version (phiên bản chuẩn) – Giải quyết hầu hết các vấn đề tự

động hóa trong các khâu nghiệp vụ của thư viện: Biên mục, Tra cứu, Quản lý lưu thông, Quản lý bổ sung, Quản lý ấn phẩm định kỳ, cung cấp khả năng truy cập và tương tác với các thư viện khác Hỗ trợ Unicode cho hầu hết các ngôn ngữ Việt, Anh, Nga, Nhật, Trung Quốc, Hàn Quốc Giao diện đa ngôn ngữ Hỗ trợ công nghệ mã vạch thẻ từ o Advanced version (phiên bản cao cấp) – Hỗ trợ đầy đủ vấn đề tự động

hóa các khâu nghiệp vụ trong thư viện với các tính năng của phiên bản Standard, ngoài ra còn có các module hỗ trợ công nghệ nhận dạng sóng radio(RFID) Module máy tìm kiếm cung cấp khả năng tìm kiếm toàn văn các tệp tin đính kèm có khả năng thu hồi văn bản, cho phép chỉ mục và tìm kiếm toàn văn cho website mục tiêu.

Trang 5

EASYNOTES – Giải pháp quản lý thông tin nội bộ cho các doanh nghiệp và

các tổ chức.Thông qua việc hỗ trợ thu thập, tổ chức lưu trữ và chia sẻ thông minh các bộ sưu tập thông tin, EASYNOTES hỗ trợ đắc lực trong việc phối hợp làm việc nhóm, quản lý công việc, quản lý quan hệ khách hàng EASYNOTES được thiết kế đặc biệt theo phương thức điều khiển hướng sự kiện, giúp cho việc sử dụng dễ dàng và thuận tiện hơn EASYNOTES được tích hợp nhiều module giúp bạn có thể tối đa hóa giá trị của thông tin.

JetPotal – Công nghệ cổng thư viện: Ứng dụng công nghệ AJAX và công

nghệ tìm kiếm đa tiến trình tốt nhất Việt nam hiện nay, JetPortal là giải pháp tổ chức thông tin phân tán cho các thư viện lớn với các bộ sưu tập lên đến hàng chục triệu biểu ghi.

PowerCat 2.0 - Công cụ thu hồi biểu ghi thư mục tốt nhất Việt Nam, tìm

kiếm trên gần 1000 CSDL thư viện trên thế giới, hiệu chỉnh biểu ghi bằng Marc Editor, Tra giá sách từ Amazon Công cụ tốt nhất hỗ trợ làm hồi cố sách cho thư viện.

CDROM Publishing – Công nghệ xuất bản các CSDL thư mục và toàn văn

trên CDROM Ứng dụng các công nghệ nền tảng, giải pháp chất lượng cao với giá hợp lý.

KIPOS là một giải pháp tổng thể cho thư viện thế hệ mới

o Chức năng bao trùm các hoạt động của thư viện hiện đại:  Tự động hóa các khâu nghiệp vụ của thư viện  Cung cấp dịch vụ thư viện số

 Các công cụ xuất bản thông tin o Các nguyên tắc phát triển chính:

 Hướng bạn đọc (Patron Oriented Architechture): Xuất phát thiết kế trên quan điểm tối đa hóa dịch vụ cho bạn đọc.

 Tiêu chuẩn hóa: Tiếp tục ứng dụng những tiêu chuẩn nghiệp vụ mới nhất vào việc xây dựng hệ thống để tăng cường tối đa khả năng tương tác với các hệ thống khác trên toàn thế giới.

Trang 6

 Kiến trúc công nghệ hướng dịch vụ (Service Oriented Architechture) - kiến trúc công nghệ tốt nhất cho hệ thống phần mềm lớn hiện nay, đem lại khả năng dễ dàng tích hợp phát triển mở rộng.

Collab ERP là một trong những giải pháp tốt nhất hỗ trợ những yêu cầu kinh

doanh nền tảng, cho phép thích ứng với những thay đổi, tích hợp hoàn chỉnh, và dễ dàng phối hợp thông qua Internet Với Collab ERP, công ty đã đưa vào tầm nhìn về vấn đề tự động hóa các quá trình kinh doanh và lợi ích mà nó đem lại cho một doanh nghiệp bằng việc phối kết hợp chặt chẽ khách hàng, đối tác, và các nhà cung cấp Điều này thúc đẩy sự sáng tạo và hỗ trợ sự lớn mạnh trong tương lai công việc kinh doanh của bạn.

GIATỘC - Trợ giúp các gia đình, dòng họ xây dựng, lưu trữ và truyền bá

thông tin về quá trình phát triển giống nòi của dòng tộc cho muôn đời sau Để cho anh em trong họ gần gũi nhau hơn, con cháu mỗi nhà tự hào về tổ tông, để cho sự hiện đại không làm mất đi văn hóa hướng cội nguồn của nhân dân ta.

I.1.3 Kinh nghiệm

Library Automation, Digital Library: Vilas, SchoolLib, KIPOS

C++, C#, VB.NET Z39.50 protocol

My SQL 200X

Enterprise Resource Planning: Collab ERP

C++, C#, VB.NET MS SQL 2005

Networking Application: Easy Notes Webmail Client.JetPortal, PowerCat

Trang 7

I.1.4 Các đối tác chiến lược

Tập đoàn IGroup (www.igroupnet.com): Công ty cung cấp dịch vụ kỹ thuật

hỗ trợ triển khai và bảo hành bảo trì cho nhiều sản phẩm của IGroup tại Việt nam: ELIB, VIRTUA Ngoài ra chúng tôi thực hiện một số các hợp đồng phát triển phần mềm theo yêu cầu cho tập đoàn này.

Công ty TNHH Nam Hoàng (www.namhoang.com.vn): Công ty cung cấp

nhiều giải pháp xuất bản điện tử, dịch vụ phát triển phần mềm và hỗ trợ kỹ thuật cho Công ty Nam Hoàng.

Công ty I&COM Hàn Quốc (www.nuv.co.kr): Công ty cung cấp dịch vụ gia

công phần mềm cho khách hàng của I&COM với các sản phẩm chủ yếu là các giải pháp ERP (Enterprise Resource Planning – Quản lý doanh nghiệp tổng thế) và KM (Knowledge Management – Quản lý tri thức).

Công ty Phần mềm Trí tuệ ISoftCo (www.isoftco.com): Là đối tác với Công

ty, cùng nhau chia sẻ tài nguyên

I.2 Tổng quan đề tài

I.2.1 Mục tiêu của đề tài

• Nghiên cứu tổng quan về WCF đưa ra được cách thức ứng dụng WCF để xây dựng ứng dụng hướng dịnh vụ SOA

• Phân tích được lợi ích của kiến trúc hướng dịch vụ so với các kiến trúc cũ.

I.2.2 Ngôn ngữ triển khai

_ Ngôn ngữ lập trình hướng đối tượng trong môi trường NET : C# _ Tính hướng đối tượng của C#

• Cú pháp thừa kế trong C#, các chức năng ảo, và các tính năng liên quan

• Những phương thức nạp chồng: C# cho phép bạn định nghĩa những dạng khác nhau của một phương thức trong một lớp Trình biên dịch sẽ tự động chọn phương thức nào thích hợp nhất dựa vào tham số truyền vào của nó

• Construction và Destruction: Nó chỉ rõ cách mà một đối tượng khởi tạo sẽ có một số hành động tự động kèm theo và tự động giải phóng khi kết thúc

Trang 8

• Struct: là những kiểu giá trị mà cung cấp những tiện nghi khi bạn cần một số tính năng của một lớp mà không cần phải vất vả tạo ra một thực thể lớp cho phức tạp

• Nạp chồng toán hạng: sẽ kiểm tra cách để định nghĩa những toán hạng cho lớp của bạn

• Indexers: Cho phép một lớp được xử lý chỉ mục khi nó là một mảng và có thể đơn giản hoá cách sử dụng những lớp chứa các tập đối tượng

• Giao diện : C# hỗ trợ thừa kế giao diện tốt như thừa kế thực thi, bạn sẽ được biết rõ hơn ở phần sau

Trang 9

CHƯƠNG II: KIẾN TRÚC HƯỚNG DỊCH VỤ - SOA

II.1 Tổng quan

SOA - Service Oriented Architecture (Kiến trúc hướng Dịch vụ), theo định nghĩa của DotNetGuru, là 'Khái niệm về hệ thống trong đó mỗi ứng dụng được xem như một nguồn cung cấp dịch vụ'

Dịch vụ là yếu tố then chốt trong SOA Có thể hiểu dịch vụ như là hàm chức năng (mô-đun phần mềm) thực hiện qui trình nghiệp vụ nào đó Một cách cơ bản, SOA là tập hợp các dịch vụ kết nối 'mềm dẻo' với nhau (nghĩa là một ứng dụng có thể 'nói chuyện' với một ứng dụng khác mà không cần biết các chi tiết kỹ thuật bên trong), có giao tiếp (dùng để gọi hàm dịch vụ) được định nghĩa rõ ràng và độc lập với nền tảng hệ thống, và có thể tái sử dụng SOA là cấp độ cao hơn của phát triển ứng dụng, chú trọng đến qui trình nghiệp vụ và dùng giao tiếp chuẩn để giúp che đi sự phức tạp kỹ thuật bên dưới

Thiết kế SOA tách riêng phần thực hiện dịch vụ (phần mềm) với giao tiếp gọi dịch vụ Điều này tạo nên một giao tiếp nhất quán cho ứng dụng khách (client) sử dụng dịch vụ bất chấp công nghệ thực hiện dịch vụ Thay vì xây dựng các ứng dụng đơn lẻ và đồ sộ, nhà phát triển sẽ xây dựng các dịch vụ tinh gọn có thể triển khai và tái sử dụng trong toàn bộ quy trình nghiệp vụ Điều này cho phép tái sử dụng phần mềm tốt hơn, cũng như tăng sự linh hoạt vì nhà phát triển có thể cải tiến dịch vụ mà không làm ảnh hưởng đến ứng dụng client sử dụng dịch vụ.

SOA dựa trên 2 nguyên tắc thiết kế quan trọng:

Mô-đun: Tách vấn đề lớn thành nhiều vấn đề nhỏ

Đóng gói: Che đi dữ liệu và lô-gic trong từng mô-dun (hay 'hộp đen') đối với

truy cập từ ngoài

II.2 Các yêu cầu

Để sử dụng hiệu quả kiến trúc hướng dịch vụ, điều đầu tiên phải phù hợp các yêu cầu sau đây:

• Thao tác giữa các hệ thống khác nhau và các ngôn ngữ lập trình cung cấp cơ sở cho sự tích hợp giữa các ứng dụng trong các nền tảng khác nhau thông qua

Trang 10

một giao thức giao tiếp Một ví vụ về sự giao tiếp là dựa trên khái niệm chung của thông điệp Sử dụng thông tiệp được định nghĩa qua các kênh thông điệp làm giảm độ phức tạp của các ứng dụng cuối do đó cho phép người phát triển ứng dụng tập trung chức năng thiết thực của ứng dụng thay vì sự phức tạp cần thiết của một giao thức giao tiếp.

• Mong muốn tạo ra một tài nguyên liên hợp Thiết lập và duy trì luồng dữ liệu vào một liên hợp kho dữ liệu Điều này cho phép chức năng mới được phát triển để tham chiếu đến một quy cách kinh doanh chung đối với mỗi yêu tố dữ liệu.

II.3 Các yếu tố cơ bản

Nguyên tắc định nghĩa nguyên lý làm nền tảng cơ bản cho sự phát triển, duy trì và sử dụng kiến trúc hướng dịch vụ (SOA).

• Dùng lại, tính có nhân, môđun, tính sáng tạo, tính hợp thành, tính di chuyển được, và thao tác các phần.

• Tiêu chuẩn hoá lệnh (đồng thời cả công nghệ chung và riêng)

• Xác minh và phân loại các dịch vụ, cung cấp và phân phát, kiểm tra và theo dõi.

Các yếu tố kiến trúc cơ bản cho thiết kế và tập trung định nghĩa dịch vụ trong chủ đề cụ thể ảnh hưởng cách xử lý bên trong của một hệ thống và kiểu dáng thiết kế của nó:

• Đóng gói dịch vụ - Rất nhiều dịch vụ web được hợp nhất để sử dụng dưới kiến trúc hướng dịch vụ Thường là các dịch vụ không có kế hoạch để sự dụng bên dưới kiến trúc hướng dịch vụ (SOA).

• Sự kết nối lỏng lẻo dịch vụ - Các dịch vụ duy trì mỗi quan hệ phụ thuộc nhỏ nhất và chỉ phụ thuộc vào cái họ duy trì sự nhận biết qua lại với nhau.

• Hợp đồng dịch vụ - Các dịch vụ tham gia để thoả thuận các kết nối, như là nói chung được định nghĩa bằng một hay nhiều hơn các văn bản mô tả dịch vụ.

• Khái niệm dịch vụ: Ngoài ra hợp đồng dịch vụ được miêu tả là gì, các dịch vụ ẩn những nguyên lý thiết kế máy tính đối với thế giới bên ngoài.

GVHD: Ths Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47

Lớp logic nghiệp vụ

Trang 11

• Service reusability – các thiết kế máy tính được chia ra trong các dịch vụ với mục đích tăng cấp có thể dùng lại.

• Service composability – Tập hợp các dịch vụ có thể coordinates và thu thập lại từ các dịch vụ ghép lại.

• Quyền tự trị của dịch vụ – Các dịch vụ có quyền điều khiển trên toàn bộ các nguyên lý thiết kế máy tính họ tóm lược.

• Sự tối ưu các dịch vụ - Tất cả ngang bằng nhau, các dịch vụ chất lượng cao thông thường thích hợp với một dịch vụ chất lượng thấp.

• Service discoverability – Các dịch vụ được thiết kế để miêu tả hướng ra bên ngoài vì vậy chúng có thể được tìm thấy và được truy cập qua cơ chế tìm kiếm sẵn có.

• Dịch vụ liên quan – Chức năng hiện diện tại granularity được chấp nhận bởi người sử dụng như là một dịch vụ có ý nghĩa.

II.4 Cách tiếp cận các dịch vụ Web

Dịch vụ Web có thể thực thi một kiến trúc hướng dịch vụ Dịch vụ Web là chức năng khối làm sẵn để xây dựng có thể sử dụng được trên toàn bộ các giao thức Internet chuẩn không phụ thuộc vào các nền tảng và các ngôn ngữ lập trình Các dịch vụ có thể là các ứng dụng mới hoặc chỉ là các hệ thống kế thừa bên trong để làm cho chúng có khả năng mạng.

Mỗi SOA xây dựng một khối có thể phát một hoặc đồng thời hai vai trò:

II.4.1 Người cung cấp dịch vụ

Người cung cấp dịch vụ tạo một dịch vụ Web, có thể công bố giao diện của nó và truy cập thông tin để đăng ký dịch vụ Mỗi người cung cấp phải lựa chọn dịch vụ để đưa ra, thoả hiệp giữa bảo mật và tính sẵn có thoải mái như thế nào, giá dịch vụ như thế nào, hoặc (nếu không áp dụng trách nhiệm) khai thác chúng với giá trị khác nhau như thế nào Người cung cấp cũng có quyền quyết định loại dịch vụ gì nên được liệt kê cho dịch vụ môi giới được đưa ra và sắp xếp các thoả thuận đối tác kinh doanh được yêu cầu sử dụng dịch vụ là gì Nó đăng ký dịch vụ gì là sẵn có bên trong nó, và danh sách tất cả những người tiếp nhận dịch vụ tiềm năng Công cụ của người

GVHD: Ths Nguyễn Thanh Hương SVTH: Lê Thị Hạnh My – Lớp CNTT47

Ngày đăng: 03/09/2012, 09:38

Hình ảnh liên quan

Hình II.5.1: Kiến trúc ba cấp tiêu biểu của mô hình đối tượng - Xây dựng ứng dụng kiến trúc hướng dịch vụ web trên nền tảng WCF.DOC

nh.

II.5.1: Kiến trúc ba cấp tiêu biểu của mô hình đối tượng Xem tại trang 12 của tài liệu.
Hình II.5.2: Mô hình SOA phát triển lên từ mô hình đối tượng - Xây dựng ứng dụng kiến trúc hướng dịch vụ web trên nền tảng WCF.DOC

nh.

II.5.2: Mô hình SOA phát triển lên từ mô hình đối tượng Xem tại trang 13 của tài liệu.

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan