[Question] giúp phân biệt 2 khái niệm web application và web service |
22/12/2006 02:49:43 (+0700) | #1 | 31875 |
|
enn3exlibs
Elite Member
|
0 |
|
|
Joined: 10/12/2006 16:54:02
Messages: 243
Location: bluesun
Offline
|
|
vui lòng phân biệt giùm mình 2 khái niệm : web application và web service? thanks.
from a newbie.
--------------------------
********************
|
|
|
|
|
[Question] phân biệt 2 khái niệm web application và web service |
22/12/2006 03:16:02 (+0700) | #2 | 31884 |
|
SuperChicken
Elite Member
|
0 |
|
|
Joined: 11/07/2006 18:31:27
Messages: 635
Location: bottom of hell
Offline
|
|
Theo kiến thức của tui thì web application thì phải cùng ngôn ngữ thì mới giao tiếp đc, còn web service thì thông thường sẽ chỉ có các functions, sau đó dùng các phương thức truyền & nhận parameter chuẩn (như SOAP) để giao tiếp nên sẽ ko phụ thuộc vào ngôn ngữ của server và client. |
|
|
|
|
[Question] giúp phân biệt 2 khái niệm web application và web service |
23/12/2006 07:30:04 (+0700) | #3 | 32257 |
|
enn3exlibs
Elite Member
|
0 |
|
|
Joined: 10/12/2006 16:54:02
Messages: 243
Location: bluesun
Offline
|
|
bạn giải thích rõ thêm nhé, ví dụ khi ta xây dựng 1 website thì đó là web application phải không? còn web service ? |
|
|
|
|
[Question] Re: giúp phân biệt 2 khái niệm web application và web service |
23/12/2006 08:09:29 (+0700) | #4 | 32264 |
|
BíchNgọc
Elite Member
|
0 |
|
|
Joined: 09/12/2004 18:51:50
Messages: 651
Location: GEMADEPT CORPORATION
Offline
|
|
Bạn xem bài này nè.
Web services
I.Tổng quan web service
1. Vai trò của web service:
Web service ra đời đã mở ra một hướng mới cho việc phát triển các ứng dụng trên Internet .Web services tạm dịch là các dịch vụ trên web .Công nghệ web services ra đời là một cuộc cách mạng hóa cách thức hoạt động của các dịch vụ B2B và B2C .Web services kết hợp sử dụng nhiều công nghệ khác nhau cho phép hai ứng dụng cùng ngôn ngữ , độc lập hệ điều hành trao đổi được với nhau thông qua môi trường mạng Internet.Tuy nhiên những công nghệ sử dụng ở đây không nhất thiết phải là những công nghệ mới .Đây là điểm khác biệt của web services so với các công nghệ khác , đó chính là khả năng kết hợp các công nghệ đã có như là XML,SOAP,WSDL,UDDI để tạo ra các service, đặc điểm này làm nổi bật vai trò của web services.
2.Đặc điểm web service
-Web service cho phép client và server tương tác được với nhau mặc dù trong những môi trường khác nhau.
-Web service thì có dạng mở và dựa vào các tiêu chuẩn.XML và HTTP là nền tảng kỹ thuật cho web service.Phần lớn kỹ thuật của web service được xây dựng là những dự án nguồn mở. Bởi vậy, chúng độc lập và vận hành được với nhau.
- Web service thì rất linh động : Vì với UDDI và WSDL, thì việc mô tả và phát triển web service có thể được tự động hóa.
-Web service được xây dựng trên nền tảng những công nghệ đã được chấp nhận
-Web service có dạng mô đun
- Web service có thể công bố (publish) và gọi thực hiện qua mạng.
-…
Ngày nay web services được sử dụng rất nhiều trong những lĩnh vực khác nhau của cuộc sống , như :
ü Dịch vụ chọn lọc và phân loại tin tức : là những hệ thống thư viện kết nối đến các web portal để tìm kiếm các thông tin từ các nhà xuất bản có chứa những từ khóa muốn tìm.
ü Dịch vụ hiển thị danh sách đĩa nhạc dành cho các công ty thu thanh.
ü Ứng dụng đại lý du lịch có nhiều giá vé đi du lịch khác nhau do có chọn lựa phục vụ của nhiều hãng hàng không.
ü Bảng tính toán chính sách bảo hiểm dùng công nghệ Excel/COM với giao diện web
ü Thông tin thương mại bao gồm nhiều nội dung, nhiều mục tin như: dự báo thời tiết, thông tin sức khoẻ, lịch bay, tỷ giá cổ phiếu,…
ü Những giao dịch trực tuyến cho cả B2B và B2C như: đặt vé máy bay, làm giao kèo thuê xe.
ü Hệ thống thông tin dùng Java để tính toán tỷ giá chuyển đổi giữa các loại tiền tệ. Hệ thống này sẽ được các ứng dụng khác dùng như một web service
ü …..
3. Kiến trúc web service
Kiến trúc của web service bao gồm các tầng như sau :
Hình 1 Kiến trúc web service
Trong đó bao gồm các tầng :
- Tầng vận chuyển với những công nghệ chuẩn là HTTP , SMTP và JMS
- Tầng giao thức tương tác dịch vụ ( Service Communication Protocol) với công nghệ chuẩn là SOAP . SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ, SOAP cho phép người dùng triệu gọi một service từ xa thông qua một message XML.
- Tầng mô tả dịch vụ (Service Description) với công nghệ chuẩn là WSDL và XML . WSDL là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Web service sử dụng ngôn ngữ WSDL để truyền các tham số và các loại dữ liệu cho các thao tác , các chức năng mà web service cung cấp.
- Tầng dịch vụ ( Service) :cung cấp các chức năng của service.
- Tầng đăng ký dịch vụ (Service Registry) với công nghệ chuẩn là UDDI .UDDI dùng cho cả người dùng và ̣ SOAP server, nó cho phép đăng ký dịch vụ để người dùng có thể gọi thực hiện service từ xa qua mạng , hay nói cách khác một service cần phải được đăng ký để cho phép các client có thể gọi thực hiện
- Bên cạnh đó để cho các service có tính an toàn , toàn vẹn và bảo mật thông tin trong kiến trúc web service chúng ta có thêm các tầng Policy , Security , Transaction , Management giúp tăng cường tính bảo mật , an toàn và toàn vẹn thông tin khi sử dụng service.
II. Các thành phần trong web service
1.XML– Extensible Markup Language
XML do W3C đề ra và được phát triển từ SGML .XML là một ngôn ngữ mô tả văn bản với cấu trúc do người sử dụng định nghĩa .Về hình thức XML có ký pháp tựa như HTML nhưng không tuân theo một đặc tả quy ước như HTML.Người sử dụng hay các chương trình có thể quy ước định dạng các tag XML để giao tiếp với nhau.Thông tin cần truyền tải được chứa trong các tag XML,ngoài ra không chứa bất cứ thông tin nào khác về cách sử dụng hay hiển thị những thông tin ấy.
Do web service là sự kết hợp của nhiều thành phần khác nhau , do đó web services sử dụng các tính năng và đặc trưng của các thành phần này để giao tiếp với nhau.Vì vậy XML là một công cụ chính yếu để giải quyết vấn đề này .Từ kết qủa này , các ứng dụng tích hợp vĩ mô tăng cường sử dụng XML.Nhờ có khả năng tổng hợp này mà XML đã trở thành kiến trúc nền tảng cho việc xạy dựng web service.
Web services tận dụng khả năng giải quyết vấn đề của các ứng dụng lớn trên các hệ điều hành khác nhau cho chúng giao tiếp với nhau .Yêu cầu này được đáp ứng với lập trình với Java , một ngôn ngữ viết một lần sử dụng mọi nơi là một chọn lựa thích hợp cho phát triển web services .
2.WSDL -Web Services Description Language :
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
- 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: những thao tác, những tham số, và những kiểu dữ liệu gồm có giao diện của web service, cộng với tên cho giao diện này.
Một WSDL hợp lệ gồm có hai phần :
1. Phần giao diện mô tả giao diện và giao thức kết nối.
2. Phần thi hành mô tả thông tin để truy xuất service
Cả 2 phần trên sẽ được lưu trong 2 tập tin XML , bao gồm:
- Tập tin giao diện service (cho phần 1).
- Tập tin thi hành service (cho phần 2).
Hình 2 Cấu trúc WSDL
2.1 Tập tin giao diện - Service Interface
WSDL mô tả 5 loại thông tin chính bao gồm : import , types , message , portType , binding.
a. Types :WSDL định nghĩa các kiểu dữ liệu của thông điệp gửi .
<definitions .... >
<types>
<xsd:schema .... />*
</types>
</definitions>
b.Thông điệp (message) : mô tả thông điệp được gửi giữa client và server.
<definitions .... >
<message name="nmtoken"> *
<part name="nmtoken" element="qname"? type="qname"?/> *
</message>
</definitions>
Những định nghĩa message được sử dụng bởi phần tử thi hành service . Nhiều thao tác có thể tham chiếu tới cùng định nghĩa message.
Thao tác và những message được mô hình riêng rẽ để hỗ trợ tính linh hoạt và đơn giản hóa việc tái sử dụng lại. Chẳng hạn, hai thao tác với cùng tham số có thể chia sẻ một định nghĩa message.
c.Kiểu cổng (port type):WSDL mô tả cách gửi và nhận thông điệp.
<wsdl:definitions .... >
<wsdl:portType name="nmtoken">
<wsdl:operation name="nmtoken" .... /> *
</wsdl:portType>
</wsdl:definitions>
WSDL định nghĩa bốn kiểu thao tác mà một cổng có thể hỗ trợ :
- One-way : cổng nhận một message, message đó là message nhập.
- Request-response : cổng nhận một message và gửi một message phản hồi
- Solicit-response: cổng gửi một message và nhận về một message
- Notification: cổng gửi một message, message đó là message xuất.
Mỗi kiểu thao tác có cú pháp biến đổi tùy theo: thứ tự của các message nhập, xuất và lỗi.
Ví dụ :
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name="nmtoken" parameterOrder="nmtokens">
<wsdl:input name="nmtoken"? message="qname"/>
<wsdl:output name="nmtoken"? message="qname"/>
<wsdl:fault name="nmtoken" message="qname"/>*
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
d.Kết hợp (Binding) :định nghĩa cách các web services kết hợp với nhau.
Một kết hợp bao gồm :
- Những giao thức mở rộng cho những giao tác và những message bao gồm thông tin URN và mã hóa cho SOAP.
- Mỗi một kết hợp tham chiếu đến một loại cổng; một kiểu cổng (portType) có thể được sử dụng trong nhiều mối kết hợp. Tất cả các thao tác định nghĩa bên trong kiểu cổng phải nằm trong phạm vi mối kết hợp.
2.3 Tập tin thi hành - Service Implementation
WSDL mô tả 2 loại thông tin chính bao gồm : service và port .
a.Dịch vụ (Service) : Nó sẽ thực hiện những gì đã được định nghĩa trong tập tin giao diện và cách gọi web services theo thủ tục và phương thức nào :
<wsdl:definitions .... >
<wsdl:service name="nmtoken"> *
<wsdl:port .... />*
</wsdl:service>
</wsdl:definitions>
b. Port là một cổng đầu cuối, nó định nghĩa như một tập hợp của binding và một địa chỉ mạng.
<wsdl:definitions .... >
<wsdl:service .... > *
<wsdl:port name="nmtoken" binding="qname"> *
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Ở đây chúng ta thấy rằng thuộc tính kết hợp tên là qname. Nó tham chiếu tới một mối kết hợp. Một cổng chứa đựng chính xác một địa chỉ mạng; Bất kỳ cổng nào trong phần thi hành phải tương ứng chính xác với một tham chiếu trong phần giao diện.
2.4 WSDL API
WSDL4J là một dự án nguồn mở , hiện tại có một WSDL Java API được gọi là WSDL4J. Bộ WSDL4J cung cấp cho chúng ta các hàm API để thực hiện việc tạo WSDL dễ dàng hơn so với cách sử dụng trực tiếp cú pháp theo dạng tag như trên.Tên gói chứa các API này là javax.wsdl.
3.UDDI - Universal Description , Discovery and Intergration
Để có thể sữ dụng các dịch vụ , trước tiên client phải tìm dịch vụ , ghi nhận thông tin về cách sử dụng dịch vụ và biết được đối tượng cung cấp dịch vụ .UDDI định nghĩa một số thành phần cho biết trước các thông tin này để cho phép các client truy tìm và nhận lại những thông tin yêu cầu sử dụng web services.
Cấu trúc UDDI :
Cấu trúc UDDI gồm các thành phần :
ü Trang trắng -White pages : chứa thông tin liên hệ và các định dạng chính yếu của web services , chẳng hạn tên giao dịch , địa chỉ ,… Những thông tin này cho phép các đối tượng khác xác định được service .
ü Trang vàng -Yellow pages : chứa thông tin mô tả web services theo những chủng loại khác nhau .Những thông tin này cho phép các đối tượng thấy web services theo từng chủng loại của nó.
ü Trang xanh -Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức năng của web services .Các đối tượng dựa vào đặc điểm của web services để tìm kiếm.
ü Loại dịch vụ - tModel : chứa các thông tin về loại dịch vụ sử dụng.
Những UDDI registry hiện có :
- UDDI Business Registry: bộ đăng ký được bảo trì bởi Microsoft, IBM đặc điểm của bộ đăng ký này là nó phân tán về mặt vật lý.
- IBM Test Registry: bộ đăng ký cho những người phát triển để thử nghiệm công nghệ và kiểm tra những service của họ.
- Private registries IBM ships: bộ đăng ký UDDI cá nhân.
4.SOAP - Simple Object Accesss Protocol
Đến đây chúng ta đã hiểu được web services là như thế nào , nó được công bố và truy xuất ở đâu.Nhưng chúng ta vẫn còn một vấn đề khá quan trọng đó là : làm thế nào chúng ta truy xuất dịch vụ khi tìm thấy ? Câu trả lời là web servicves có thể truy xuất bằng một giao thức là Simple Object Access Protocol – SOAP . Nói cách khác chúng ta có thể truy xuất đến UDDI registry bằng các lệnh gọi hoàn toàn theo kiểu SOAP.
SOAP là một giao thức giao tiếp có cấu trúc như XML và mã hóa thành định dạng chung cho các ứng dụng trao đổi với nhau .Ý tưởng bắt đầu từ Microsoft và phần mềm Userland , trải qua nhiều lần thay đổi , hiện tại là phiên bản SOAP 1.2 với nhiều ưu điểm vuợt trội hơn bản SOAP 1.1. SOAP được xem như là cấu trúc xương sống của các ứng dụng phân tán xây dựng từ nhiều ngôn ngữ , hệ điều hành khác nhau.
4.1 Đặc trưng SOAP
SOAP có những đặc trưng sau :
- 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.
- Không có garbage collection phân tán , và cũng không có cơ chế tham chiếu.Vì thế SOAP client không giữ bất kỳ một tham chiếu đầy đủ nào về các đối tượng ở xa.
- SOAP không bị ràng buộc bởi bất kỳ ngôn ngữ lập trình nào 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. Tương tự, service có thể được thực hiện trong bất kỳ ngôn ngữ nào, miễn là nó có thể xử lý được những message theo định dạng XML.
4.2 Cấu trúc một message theo dạng SOAP
Cấu trúc một message theo dạng SOAP được mô tả như hình dưới đây:
Hình 3 Cấu trúc message SOAP
Message theo dạng SOAP là một văn bản XML bình thường bao gồm các phần tử sau:
- Phần tử gốc - envelop : phần từ bao trùm nội dung message , khai báo văn bản XML như là một thông điệp SOAP.
- Phần tử đầu trang – header : chứa các thông tin tiêu đề cho trang , phần tử này không bắt buộc khai báo trong văn bản .Những đầu mục còn có thể mang những dữ liệu chứng thực, những chữ ký số hóa, và thông tin mã hóa, hoặc những cài đặt cho giao tác.
- Phần tử khai báo nội dung chính trong thông điệp - body , chứa các thông tin yêu cầu và phản hồi.
- Phần tử phát sinh lỗi (Fault) cung cấp thông tin lỗi xảy ra trong qúa trình xử lý thông điệp.
Trong trường hợp đơn giản nhất, phần thân của SOAP message gồm có:
- Tên của message
- Một tham khảo tới một thể hiện service.
- Một hoặc nhiều tham số mang các giá trị và mang các tham chiếu. Có 3 kiểu thông báo
Request messages : với các tham số gọi thực thi một service
Response messages với các tham số trả về, được sử dụng khi đáp ứng yêu cầu.
Fault messages báo tình trạng lỗi.
4.3 Những kiểu truyền thông
SOAP hỗ trợ hai kiểu truyền thông khác nhau :
- Remote procedure call (RPC): cho phép gọi hàm hoặc thủ tục qua mạng. Kiểu này được khai thác bởi nhiều web service và có nhiều trợ giúp.
- Document: được biết như kiểu hướng message : kiểu này cung cấp một lớp thấp của sự trừu tượng hóa, và yêu cầu người lập trình nhiều hơn khi làm việc.
Các định dạng message, tham số, và lời gọi đến các API thì tương ứng trong RPC và document là khác nhau. Nên việc quyết định chọn cái nào tùy thuộc vào thời gian xây dựng và sự phù hợp của service cần xây dựng.
4.4 Mô hình dữ liệu
Mục đích của mô hình dữ liệu SOAP là cung cấp những một sự trừu tượng hóa độc lập ngôn ngữ cho kiểu ngôn ngữ lập trình chung. Nó gồm có :
§ Những kiểu XSD đơn giản như những kiểu dữ liệu cơ bản trong đa số các ngôn ngữ lập trình như int, string, date, …
§ Những kiểu phức tạp, có hai loại là struct và array.
Tất cả các phần tử và những định danh có trong mô hình dữ liệu SOAP thì được định nghĩa bằng namespace SOAP-ENC
4.5 Mã hóa
Trong những môi trường tính toán phân tán, mã hóa định nghĩa làm sao giá trị của dữ liệu trong ứng dụng có thể được dịch từ khuôn dạng nghi thức. Khuôn dạng nghi thức cho những web service là XML, giả sử ở đây chúng ta giả thiết rằng service requestor và service provider phát triển trong Java. Vì vậy, mã hóa SOAP là trong môi trường thực thi để làm thế nào chuyển đổi từ cấu trúc dữ liệu Java sang SOAP XML và ngược lại. Một ánh xạ định nghĩa là mối quan hệ giữa một phần tử XML, một lớp Java, và một trong những loại mã hóa giới thiệu ở trên.
Một ánh xạ chỉ rõ làm cách nào, để khi đã mã hóa mà một phần tử XML đầu vào vẫn chuyển đổi được tới một lớp Java và ngược lại.Chúng ta quan tâm tới hai phương hướng ánh xạ là XML tới Java và Java tới XML. Bất kỳ môi trường thực thi SOAP nào cũng phải có một bảng chứa những mục ánh xạ, gọi là SOAPMappingRegistry.
Nếu một kiểu dữ liệu được giả thiết sẽ được sử dụng dưới một loại mã hóa nhất định, thì một ánh xạ tương ứng phải tồn tại trong bộ đăng ký (registry) của môi trường thực thi SOAP đó. Đa số các kiểu Java chuẩn cũng như JavaBeans đều mặc định là được hỗ trợ.
Những kiểu dữ liệu không chuẩn (do tự định nghĩa) thì cần ánh xạ trên cả server và client.
III. Kết luận :
Để tạo một web service chúng ta cần xây dựng các tầng cần thiết trong kiến trúc web service hay nói cách khác là xây dựng và thiết lập các thành phần trong các tầng đó , cụ thể là các thành phần SOAP , WSDL , UDDI , XML , trong đó :
- SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ, SOAP cho phép người dùng triệu gọi một service từ xa thông qua một message XML.
- WSDL là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Web service sử dụng ngôn ngữ WSDL để truyền các tham số và các loại dữ liệu cho các thao tác , các chức năng mà web service cung cấp.
- UDDI dùng cho cả người dùng và ̣ SOAP server, nó cho phép đăng ký dịch vụ để người dùng có thể gọi thực thi các hàm , các chức năng của web service hay nói cách khác một service cần phải được đăng ký để cho phép các client có thể gọi thực hiện
- Bên cạnh đó chúng ta cũng phải quan tâm đến việc làm sao để cho các service có tính an toàn , toàn vẹn và bảo mật thông tin trong web services nhất là các service liên quan đến giao dịch thương mại và tài chính.Chúng ta sẽ tìm hiểu nội dung này trong các phần tiếp theo.
Sơ đồ dưới đây cho chúng ta thấy rõ hơn về các thành phần cần thiết trong một web service và mối quan hệ giữa các thành phần
Hình 4 Các thành phần cần thiết trong một web service
và mối quan hệ giữa các thành phần
(sưu tầm)
Thân
|
|
|
|
|
[Question] giúp phân biệt 2 khái niệm web application và web service |
23/12/2006 11:48:53 (+0700) | #5 | 32291 |
|
kdot
Member
|
0 |
|
|
Joined: 28/10/2005 10:53:37
Messages: 84
Offline
|
|
Theo tôi hiểu nôm na thì là thế này.
-Web Application (Ứng dụng Web): là các ứng dụng viết cho môi trường web (internet). Đối ngược với nó sẽ là Desktop Application - ứng dụng chạy trên Desktop.
-Web Service (Dịch vụ Web): có thể bao gồm nhiều ứng dụng web (có thể có cả Desktop Application) để tạo nên một Dịch vụ nào đó. |
|
|
|