Tim Hieu Web Service 3784

19
Tiểu Luận Tìm hiểu công nghệ Web Service

Transcript of Tim Hieu Web Service 3784

Page 1: Tim Hieu Web Service 3784

Tiểu LuậnTìm hiểu công nghệ Web

Service

Page 2: Tim Hieu Web Service 3784

Mục LụcMở đầu...........................................................................................................................................................2

Chương 1. Giới thiệu về ứng dụng phân tán..................................................................................................3

Giới thiệu về ứng dụng phân tán....................................................................................................................3

Khái niệm Hệ phân tán..................................................................................................................................3

Mô hình hệ thống phân tán............................................................................................................................4

Các vấn đề nảy sinh trong hệ thống phân tán................................................................................................5

Các hệ thống phân tán....................................................................................................................................5

RMI (Remote Mothod Invocation)................................................................................................................5

DCOM (Distribited Component Object Model)............................................................................................5

CORBA (Common Object Request Broker Architecture)............................................................................6

Hạn chế các hệ thống phân tán trên...............................................................................................................6

Chương 2: Web Service.................................................................................................................................6

Giới thiệu Web Service..................................................................................................................................6

Khái niệm web service...................................................................................................................................6

Hoạt động của Web Service...........................................................................................................................7

Sinh viên thực hiện: Phạm Ngọc Hoàng

49k-Fit-Vinh university

M đ uở ầ Ngày nay cùng với sự phát triển mạnh mẽ của môi trường Internet, các ứng dụng

triển khai trên nền Web ngày càng được phát triển rộng rãi và phong phú. Trong nền kinh

tế thị trường hiện nay, chuyển đổi dữ liệu, thông tin đang là một nhu cầu thiết yếu cho sự

phát triển và tồn tại của các doanh nghiệp. Web Service được coi là một công nghệ mang

đến cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B (Business to

Business) và B2C (Business to Customer). Giá trị cơ bản của Web Service dựa trên việc

cung cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và

hệ thống kế thừa. Web Service ra đời đã mở ra một hướng mới cho việc phát triển các

Page 3: Tim Hieu Web Service 3784

ứng dụng trên Internet giải quyết vấn đề chuyển đổi dữ liệu trong quy trình thương mại

của các doanh nghiệp. Web Service kết hợp sử dụng nhiều công nghệ khác nhau cho

phép các ứng dụng được viết bằng các ngôn ngữ khác nhau, chạy trên các nền tảng khác

nhau có chuyển đổi dữ liệu thông qua môi trường mạng Internet. Các công nghệ mà web

Service sử dụng như XML, SOAP,WSDL,UDDI

Ch ng 1. Gi i thi u v ng d ng phân tánươ ớ ệ ề ứ ụCông nghệ Web Service đã thay đổi diện mạo và cách thức hoạt động của Ứng dụng

phân tán cũng như giải quyết khó khăn của ứng ụng phân tán trước đây là vấn đề với

Firewall và Proxy Server. Chúng ta sẽ tìm hiểu khái quát ứng dụng phân tán để hiểu hơn

về web service.

Gi i thi u v ng d ng phân tánớ ệ ề ứ ụ

Khái ni m H phân tánệ ệ- Hệ phân tán là một hệ thống các thành phần (máy tính) xử lý phân tán và giao tiếp

nhau qua một cơ sở hạ tầng truyền thông chung

- Phân loại Hệ phân tán bao gồm:

Hệ phân tán mang tính hệ thống: hệ điều hành phân tán

Hệ phân tán mang tính ứng dụng: các hệ thống truyền tin phân tán

- Mục tiêu của hệ phân tán

Giảm rủi ro và chi phí phát triển:

Chi phí phát triển những hệ thống xử lý lớn là rất tốn kém và có thể vượt

quá khả năng của nhiều tổ chức.

Việc tập trung tất cả thông tin tại một nơi là nguy cơ tiềm tàng về mất mát

dữ liệu khi có sự cố xảy ra.

Sở hữu thông tin: Thông tin có thể ở nhiều dạng, nhiều nguồn, và thuộc sở hữu

của nhiều tổ chức khác nhau. Việc gom hết tất cả thông tin về một nơi là bất khả

thi. Do đó việc phân tán thông tin là cần thiết

Độ an toàn: đối với những dữ liệu quan trọng và nhạy cảm. nhu cầu bảo mật

thông tin được đưa lên hàng đầu. đồng thời dữ liệu phải được truy xuất dễ dàng.

Bởi vậy, việc dữ liệu được chia nhỏ thành nhiều phần và phân tán nhiều nơi đáp

ứng vấn đề bảo mật và truy xuất dễ dàng.

Page 4: Tim Hieu Web Service 3784

- Đặc trưng cơ bản của hệ phân tán:

Kết nối người sử dụng vào chia sẻ tài nguyên: giải quyết bài toán chia sẻ tài

nguyên trong hệ thống

Tính trong suốt: ẩn dấu sự rời rạc và nhược điểm nếu có của hệ thống với người sử

dụng và nhà lập trình ứng dụng

Tính nhất quán: Hệ phân tán cho phép chạy những ứng dụng khác nhau trên nhiều

máy khác nhau thành một hệ thống duy nhất

Tính mở: hệ phân tán nhằm cung cấp các dịch vụ theo quy tắc chuẩn mô tả cú

pháp và ngữ nghĩa.

Tính uyển chuyển: Khả năng thay đổi tùy theo quy mô hệ thống cao.

Tính chịu lỗi.

Mô hình h th ng phân tánệ ố

Hình 1. Mô hình ứng dụng phân tán

Máy tính

Máy tính

Dữ liệu

Ứng dụngphân tánỨng dụngphân tán

Dữ liệu

Page 5: Tim Hieu Web Service 3784

Các v n đ n y sinh trong h th ng phân tánấ ề ả ệ ố- Các hệ điều hành khác nhau sẽ hỗ trợ những kiểu dữ liệu khác nhau. Đôi khi các kiểu

dữ liệu không tương thích 100% trên các nền tảng hệ điều hành khác nhau. Khi phát

triển ứng dụng phân tán chúng ta cần chú ý đến việc hòa hợp dữ liệu trên các môi

trường

- Các thành phần của một ứng dụng phân tán thường ở nhiều nơi khác nhau trên mạng

do đó khả năng phát sinh lỗi cao hơn bình thường.

- Nếu server lưu trạng thái của client, khi client bị ngừng đột ngột, hệ thống cần có biện

pháp thông báo cho server và thu hồi tài nguyên bị chiếm giữ cũng như dữ liệu đang

gửi đi

- Dữ liệu hệ phân tán thường được gửi qua lại nhiều node trên mạng, do đo bảo mật là

vấn đề quan trọng cần giải quyết.

- Vấn đề đồng bộ thời gian của client và server cũng rất quan trọng.

Các h th ng phân tánệ ố

RMI (Remote Mothod Invocation)- Được Sun đưa ra

- Là một cơ chế cho phép một đối tượng đang chạy trên máy ảo java này triệu gọi các

phương thức tồn tại trên máy ảo java khác.

- Cơ chế hoạt động: Thiết lập kết nối Client – Server

Server: cung cấp dịch vụ RMI

Client: triệu gọi các phương thức trên đối tượng của dịch vụ do server cung cấp

- Được tích hợp sẵn trong java

DCOM (Distribited Component Object Model)- Được Microsoft đưa ra

- Hoạt động dựa trên giao thức TCP-IP, thông qua việc gửi thông tin dưới dạng nhị

phân (binary).

- Giao tiếp thông qua việc thiết lập Client-Server

Page 6: Tim Hieu Web Service 3784

CORBA (Common Object Request Broker Architecture)- Được OMG (Object Management Group) đưa ra nhằm tạo nên một hệ phân tán vượt

qua nhiều vấn đề về tính tương kết (interoperabiity) với việc tích hợp các ứng dụng

mạng

- CORBA là một hệ phân tán mở, độc lập nền tảng và độc lập ngôn ngữ

H n ch các h th ng phân tán trênạ ế ệ ố- Firewalls: các hệ thống trên khi hoạt động ở những mạng được che chắn bởi firewall

đều phải được sự cho phép của những người quản trị firewall để được ra ngoài. Đây là

một lỗ hổng bảo mật tiềm tàng và khó chấp nhận bởi nhiều tổ chức

- Sự phối hợp các giao thức: các mô hình trên đều có đặc điểm và dựa trên các giao

thức tầng dưới khác nhau. Việc xây dựng chương trình chuyển đổi qua lại giữa các

tầng với nhau dẫn đến việc mất mát thông tin và các tầng khác nhau có thể không thể

cùng làm việc được với nhau.

Ch ng 2: Web Serviceươ

Gi i thi u Web Serviceớ ệ

Khái ni m web serviceệTheo định nghĩa của W3C (World Wide Web Consortium), Web Service là một hệ

thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các

máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết của nó được

mô tả bằng XML.

Web Service là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các

chức năng và đưa ra các thông tin người dùng yêu cầu. Một dịch vụ Web được tạo nên

bằng cách lấy các chức năng và đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn

thấy và có thể truy cập đến những dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu

thông tin từ dịch vụ Web khác. Nó bao gồm các mô đun độc lập cho hoạt động của khách

hàng và doanh nghiệp và bản thân nó được thực thi trên server.

Web Service mô tả một cách thức chuẩn để tích hợp các ứng dụng dựa trên nền tảng

Web, sử dụng các chuẩn mở XML (Extensible Markup Language), SOAP (Simple Object

Page 7: Tim Hieu Web Service 3784

Access Protocol), WSDL (Web Services Description Language) và UDDI (Universal

Description Discovery and Integration) thông qua giao thức Internet. 

Hình 2. Mô hình ứng dụng của Web Service

Ho t đ ng c a Web Serviceạ ộ ủMột ứng dụng web Service bao gồm 2 phần: Client và Server giao tiếp với nhau qua giao

thức HTTP.

- Client gửi yêu cầu qua các lời gọi hàm thông qua HTTP Request đến Server

- Server gửi các kết quả được thực thi các ở các hàm thông qua HTTP Response

Mô hình hoạt động của ứng dụng Web Service gồm 3 thành phần chính:

- UDDI register: Công cụ giúp nhà phát triển Web Service công bố những thông tin về

Web Service của mình cho cộng đồng các nhà phát triển ứng dụng. Người dùng sẽ

dựa vào các thông tin này để sử dụng Web Service trong ứng dụng riêng của mình tạo

thành một hệ phân tán.

- Web Service: chứa giao thức SOAP định dạng dữ liệu, tài liệu WSDL định nghĩa các

hàm trong Web Service, XML để xây dựng ứng dụng phân tán.

InternetInternet

Firewall

Firewall

Firewall

Web ServiceWeb Service

Web ServiceWeb Service

Web ServiceWeb ServiceClientClient

Page 8: Tim Hieu Web Service 3784

- Application Client: ứng dụng phía Client sử dụng web Service xây dựng ứng dụng

riêng cho mình

Hình 3. Mô hình hoạt động của Web Service

Cách thức hoạt động của ứng dụng Web Service có thể được mô tả như sau:

Đầu tiên, Application Client cần truy vấn đến các mẫu tin UDDI theo một thông tin nào

đó( chẳng hạn tên, loại ) để xác định Web Service cần tìm. Khi đã xác định được Web

Service cần cho ứng dụng, Client có thể lấy thông tin về địa chỉ của tài liệu WSDL của

web Service này dựa trên mẫu tin UDDI. Tài liệu WSDL sẽ mô tả cách thức liên lạc với

Web Service, định dạng của gói tin truy vấn và phản hồi. Dựa vào những thông tin này,

Client có thể tạo những gói tin SOAP tương ứng để liên lạc với Server.

2.1 Đặc điểm của Web Service

2.1.1 Đặc điểm

- Web Service cho phép client và server tương tác được với nhau ngay cả trong những

môi trường khác nhau.

Application

SOAP Client

UDDI registry

SOAP processor

WSDL

Discrete business

logic

HTTP request

HTTP response

Web Service

Page 9: Tim Hieu Web Service 3784

- Web Services liên lạc với thế giới bên ngoài dùng thông điệp XML gửi trực tiếp qua

Web protocols

- Một Web Service bao gồm có nhiều mô-đun và có thể công bố lên mạng Internet.

- Một ứng dụng Web Service khi được triển khai sẽ hoạt động theo mô hình client-

server. Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như

J2EE, Microsoft.Net…

2.1.2Ưu và nhược điểm của Web Service

a. Ưu điểm:

- Khả năng vượt firewall: Web Service hoạt động trên nên HTTP nên sử dụng port 80,

là port mà firewall cho phép

- Hoạt động trên đa môi trường: Web Service dựa trên công nghệ XML được hỗ trợ

bởi tất cả các hệ điều hành kể cả môi trường di động

- Tính linh hoạt, dễ chuyển đổi: Web Service chỉ bao gồm các hàm nên việc thay đổi dễ

dàng và giảm chi phí đường truyền do truyền dữ liệu không kèm định dạng HTML

- Web Service cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm

khác nhau chạy trên những nền tảng khác nhau.

- Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên văn bản

(text), giúp các lập trình viên dễ dàng hiểu được.

- Nâng cao khả năng tái sử dụng.

- Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến

trình/chức năng nghiệp vụ đóng gói trong giao diện Web Service.

- Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống,

dễ dàng cho việc phát triển các ứng dụng phân tán.

- Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động,

phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp

khác.

b. Nhược điểm

-  Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Web Service, giao diện

không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao

thức cho việc vận hành.

- Có quá nhiều chuẩn cho Web Service khiến người dùng khó nắm bắt.

- Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật của Web Service.

Page 10: Tim Hieu Web Service 3784

2.2 Các thành phần của web Service

Web Service được các thành phần cấu thành nên : XML, SOAP, WSDL.

2.2.1 XML ( eXtensible Markup Language)

Web Service là sự kết hợp của nhiều thành phần khác nhau và dùng các đặc trưng của

các thành phần này để giao tiếp với nhau. Để giải quyết vấn đề giao tiếp các thành phần,

web service sử dụng XML là thành phần chính để giao tiếp giữa các thành phần với nhau

và là kiến trúc nền tảng để xây dựng web service.

a. Khái niệm XML

- Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu

- Là một ngôn ngữ mô tả văn bản với cấu trúc do người dùng định nghĩa.

b. Đặc điểm

- XML là một ngôn ngữ đánh dấu độc lập với phần mềm, phần cứng và platform

- Cho phép các máy tính truyền cấu trúc dữ liệu giữa hệ thống không đồng nhất

- Về hình thức: XML có cấu trúc giống HTML nhưng không tuân theo một đặc tả quy

ước như HTML. HTML định nghĩa các thành phần được hiển thị như thế nào, còn

XML lại định nghĩa các thành phần chứa cái gì.

- Các thẻ XML không được định nghĩa trước mà do người lập trình tự định nghĩa

c. Cấu trúc XML

Một tài liệu XML bao gồm 2 phần:

Cấu trúc logic: định nghĩa các phần tử, các thuộc tính, các kiểu dữ liệu…

Cấu trúc vật lý: chứa dữ liệu và các phần tử chứa dữ liệu như text, image, media…

d. Ví dụ về XML

<?xml version="1.0" encoding="UTF-8" ?>

<Employer>

<name>trần văn An</name>

<old>25</old>

</Employer>

2.2.2 WSDL ( Web Service Desctiption Language)

a. Khái niệm:

- WSDL là một ngôn ngữ dựa trên XML để định nghĩa Web Service

- WSDL định nghĩa cách mô tả web service theo cú pháp tổng quát XML bao gồm các

thông tin:

Page 11: Tim Hieu Web Service 3784

Tên service

Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của web service

Loại thông tin bao gồm thao tác, tham số, những kiểu dữ liệu.

b. Thành phần

Một WSDL bao gồm 2 thành phần chính:

- Phần giao diện: mô tả giao diện và giao thức kết nối.

- Phần thi hành: mô tả thông tin để truy xuất web service

c. Cấu trúc của WSDL

- WSDL định nghĩa các phần tử cơ bản như sau:

Phần tử types: định nghĩa kiểu dữ liệu cơ bản cho thông điệp trao đổi giữa Client-

Server.

<definitions targetNamespace="… " name="… ">

<types>

<xsd:schema >

</types>

</definitions>

Phần tử Message: định nghĩa thông điệp được gửi đi và hồi đáp. Mỗi thông điệp

có thể bao gồm một hoặc nhiều phần. <wsdl:message name="…">

<wsdl:documentation .... />?

Service implementation

Service interface

import

Service

Port

import

types

messages

PortTypes

binding

Page 12: Tim Hieu Web Service 3784

<part name="…" element="…"? type="…"?/>

</wsdl:message>

Phần tử portTypes: định nghĩa cách mà thông điệp được gửi và nhận như thế nào.

<wsdl:definitions …. >

<wsdl: portType name=”…”>

<wsdl: operation name=”…” …. /> *

</wsdl: portType>

</wsdl: definitions>

Phần tử binding: Định nghĩa cách thức truy cập web Service thông qua các giao

thức bên dưới. Mỗi phần tử binding sẽ mô tả cách thức liên kết một portType vào

1 protocol nhất định. Web Service hỗ trợ bao nhiêu protocol thì phải xây dựng bấy

nhiêu phần tử binding.

<binding name="… " type="…">

<soap:binding transport=http://schemas.xmlsoap.org/soap/http tyle="…"/>

<operation name="…">

<soap:operation soapAction=""/>

<input>

<soap:body use="literal"/>

</input>

<output>

<soap:body use="literal"/>

</output>

</operation>

</binding>

2.2.3 SOAP (Simple Object Access Protocol)

a. Khái niệm

- SOAP là giao thức được dùng để truyền dữ liệu qua Internet trong môi trường phân

tán.

Page 13: Tim Hieu Web Service 3784

- SOAP có thể được sử dụng cùng các giao thức khác như HTTP/HTTPS, FTP,…

b. Đặc trưng của SOAP

- SOAP được thiết kế đơn giản và dễ mở rộng

- Tất cả các message SOAP đều được mã hóa sử dụng XML

- SOAP sử dụng giao thức truyền dữ liệu riêng.

- SOAP Client không giữ bất kì một tham chiếu nào đầy đủ về đối tượng ở xa

- SOAP không bị ràng buộc bởi bất kì ngôn ngữ lập trình hoặc công nghệ nào

Vì những đặc trưng này, nó không quan tâm đến công nghệ gì được sử dụng để thực hiện

miễn là người dùng sử dụng các message theo định dạng XML.

c. Kiến trúc của SOAP

- Thành phần Headers: chỉ ra địa chỉ web service, host, content-Type, content-Length

tương tự như một thông điệp HTTP

- Thành phần SOAP Envelope: bao trùm toàn bộ nội dung thông điệp SOAP

SOAP header: phần thường được dùng để thêm các thông tin bổ sung phục vụ cho

mục đích riêng của chương trình. Các thông tin được thêm vào header là

authentication, quản lý transaction… phần haeder không bắt buộc phải có trong

mọi gói tin SOAP.

SOAP Body: phần chứa các thông tin về lời gọi hàm ( tên hàm, tham số đầu vào,

giá trị trả về,…) để phục vụ cho việc gọi hàm từ xa.

SOAP Message

Headers

SOAP Envelope

SOAP Header

SOAP Body

Headers

Message Name and Data

Page 14: Tim Hieu Web Service 3784

Ví dụ về SOAP: giả sử có 1 Web Service hỗ trợ phương thức cộng 2 số. khi đó

SOAP Request và SOAP Response sẽ như sau:

- SOAP Requsest

<?xml version="1.0" encoding="UTF-8"?>

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">

<S:Header/>

<S:Body>

<ns2:Add2Number xmlns:ns2="http://phamhoang/">

<a>34.0</a>

<b>45.0</b>

</ns2:Add2Number>

</S:Body>

</S:Envelope>

- SOAP Response

<?xml version="1.0" encoding="UTF-8"?>

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">

<S:Body>

<ns2:Add2NumberResponse xmlns:ns2="http://phamhoang/">

<return>79.0</return>

</ns2:Add2NumberResponse>

</S:Body>

</S:Envelope>