Tính toán phân tán với web serviceS ThS. TRần ngọc linh Bộ môn Tự động hoá thiết kế cầu đờng TS. ngô đăng quang Viện KH & CN xây dựng Trờng Đại học Giao thông Vận tải Tóm tắt: Ra đời sau các công nghệ tính toán phân tán nh DCOM, CORBA v RMI, Web services (dịch vụ web) thể hiện nhiều u điểm bao gồm: khả năng liên vận hnh, tính khả dụng, tính tái sử dụng, v tính phân tán. Công nghệ ny không bị hạn chế bởi hệ điều hnh cũng nh ngôn ngữ lập trình v tờng lửa. Sự tiện lợi ny lm cho công nghệ tính toán phân tán Web services đợc ứng dụng rộng rãi trong nhiều lĩnh vực m một trong số đó l dịch vụ thơng mại điện tử. Bi báo ny trình by tổng quan về những khái niệm cơ bản của Web services v minh họa cách ứng dụng của chúng qua một mô hình hệ thống tính toán phần tử hữu hạn trên mạng. Summary: Born after the distributed computing technologies such as DCOM, CORBA and RMI, Web services offer many benefits including: interoperability, usability, reusability, and deployability, this technology is not restricted by operating systems, programming languages or the fire wall. These advantages make Web services be widely applied in many fields, one of which is e-ecomonic or e-business. This paper presents a general view of fundamental concepts of Web services and illustrates the way to apply them through a model of finite element analysis system on the Internet. CT 2 i. Giới thiệu chung Tính toán phân tán là phơng pháp tính toán phân quyền và song song, sử dụng hai hay nhiều máy tính đợc nối mạng với nhau (mạng Intranet, Internet) để thực hiện một nhiệm vụ chung. Nh vậy, khi sử dụng phơng pháp tính toán phân tán, các ứng dụng và logic nghiệp vụ sẽ đợc phân bố trên nhiều nền tảng khác nhau. Nói cách khác, việc xử lý đợc phân bố trên một hay nhiều máy mà ở đó mỗi quá trình chỉ thực hiện một phần của ứng dụng theo một trình tự nhất định. Công nghệ tính toán phân tán cho phép thực hiện các tơng tác giữa các máy tính/ngời và máy tính/máy tính trên cơ sở lập trình phân tán. Rất nhiều bài toán trong ngành xây dựng có thể đợc phân chia thành nhiều bài toán nhỏ, độc lập với nhau. Với những dạng bài toán này, tính toán phân tán sẽ mang lại hiệu quả cao. Ngoài ra, việc sử dụng công nghệ tính toán phân tán sẽ còn cho phép xây dựng các trung tâm tính toán mà ở đó, các khối lợng tính toán lớn sẽ đợc thực hiện trên các máy tính có sức mạnh xử lý lớn. Các bộ phận nhập và xử lý dữ liệu có thể đợc thực hiện trên các hệ thống rẻ tiền hơn. Điều này cho phép giảm đáng kể đầu t cho phần mềm và phần cứng. Web là một thành công tuyệt vời về việc cho phép thực hiện các tơng tác ngời/máy tính một cách đơn giản trong thế giới Internet. Giao thức HTTP và ngôn ngữ HTML ngày nay đợc sử dụng trong các trình duyệt Web đã đợc chứng minh là một giải pháp hiệu quả và kinh tế trong việc đa các giao tiếp ngời dùng lên một diện lớn các thiết bị. Một nhân tố quan trọng trong sự thành công của HTTP và HTML là sự đơn giản tơng đối của chúng cả HTTP và HTML đều dựa trên định dạng văn bản và có thể đợc cài đặt qua việc sử dụng rất nhiều hệ điều hành và môi trờng lập trình. Khái niệm Web services mô tả một cách chuẩn tắc về việc tích hợp các ứng dụng dựa trên Web sử dụng các chuẩn mở XML, SOAP, WSDL và UDDI trên nền tảng giao thức mạng. XML đợc sử dụng để mô tả dữ liệu, SOAP đợc dùng để chuyển đổi dữ liệu, WSDL dùng cho việc mô tả các dịch vụ và UDDI dùng cho việc liệt kê những dịch vụ nào hiện hữu. Đợc sử dụng nh là phơng tiện cơ bản để các nhà kinh doanh giao tiếp với nhau và với các khách hàng, Web services cho phép các tổ chức trao đổi dữ liệu mà không bị hạn chế bởi hệ thống các tờng lửa. Web services cho phép các ứng dụng khác nhau từ các nguồn khác nhau giao tiếp với nhau mà không mất thời gian chuyển đổi mã lệnh, và bởi vì tất cả các giao tiếp đều trong XML, Web services không bị ràng buộc bởi bất kỳ hệ điều hành hay ngôn ngữ lập trình nào. Ví dụ, Java có thể nói chuyện với Perl, các ứng dụng Windows có thể nói chuyện với các ứng dụng UNIX. Web services không đòi hỏi phải sử dụng trình duyệt hay ngôn ngữ HTML. ii. Kiến trúc của Web services Trong thế giới khách/chủ truyền thống, chúng ta có trình chủ cung cấp một số chức năng đợc sử dụng hoặc gọi từ trình khách. Một số kiểu tra cứu dịch vụ đóng vai trò nh là môi giới giữa khách và chủ. Môi g iới dịch vụ Yêu cầu dịch vụ Cun g cấp dịch vụ Internet Hình 1. Thnh phần của Webservices y êu cầu công bố kết nối CT 2 Web services thể hiện nh là một mẫu khác cho các ứng dụng phân tán, chúng gồm có ba thành phần sau: - Một dịch vụ môi giới đóng vai trò dịch vụ tra cứu giữa nhà cung cấp dịch vụ và yêu cầu dịch vụ. - Một nhà cung cấp dịch vụ triển khai các dịch vụ của nó tới môi giới dịch vụ - Một yêu cầu dịch vụ hỏi môi giới nơi có thể tìm thấy nhà cung cấp thích hợp và tự liên kết với nhà cung cấp. Quan hệ giữa các thành phần của Web services đợc mô tả trên hình 1. [1] CT 2 XML, ngôn ngữ định dạng mở rộng, là một định dạng đợc chấp nhận rộng rãi cho việc chuyển đổi dữ liệu và các ngữ nghĩa tơng ứng. Nó là một khối xây dựng cơ bản cho gần nh tất cả các lớp đợc sử dụng trong Web services. Những lớp này cùng nhau xây dựng một ngăn xếp giao thức Web services nh hình 2, bao gồm các phần sau [2]: TCP/IP (giao thức liên lạc) HTTP (giao thức ứng dụng liên lạc) SOAP (lời gọi dịch vụ từ xa) UDDI (tìm kiếm) WSDL (mô tả) WEB SERVICES Hình 2. Ngăn xếp giao thức của Web services - SOAP, giao thức truy xuất đối tợng đơn giản - WSDL, ngôn ngữ mô tả Web services - UDDI, tích hợp mô tả và tìm kiếm toàn bộ Các lớp này mô tả nền tảng phát triển Web services gồm 3 thành phần dịch vụ và định nghĩa Web services chính tắc. Dới đây sẽ giải thích chi tiết các lớp SOAP, WSDL và UDDI trên nền XML. SOAP Vì Webservice chạy trong một môi trờng hỗn hợp, các giao thức đợc sử dụng để chuyển đổi dữ liệu giữa các hàm phải độc lập với bất kỳ môi trờng thực thi nào. SOAP là một giao thức có những đặc tính này. Bản thân SOAP không định nghĩa bất kỳ ngữ nghĩa ứng dụng nào nh mô hình lập trình hay việc cài đặt chuyên cho các ngữ nghĩa. Nó chỉ định nghĩa kỹ thuật đơn giản cho việc biểu thị các ngữ nghĩa ứng dụng bằng cách cung cấp một mô hình gói dạng mô đun và kỹ thuật mã hóa cho dữ liệu trong các mô đun. Tất cả các gói tin SOAP đều đợc định dạng theo XML. Các thông điệp của SOAP chứa thẻ th hay gói bao (ENVELOPE) là phần tử gốc. Thẻ th này gồm có hai phần: - Tiêu đề (header), không bắt buộc - Thân (body) Phần tiêu đề có thể chứa một tập hợp các mục tiêu đề có thể đợc sử dụng để cung cấp thông tin nh sự xác thực hay mã hóa của dữ liệu. Thêm nữa, hai thuộc tính của tiêu đề tồn tại để cung cấp thông tin về cách tiếp nhận một thông điệp SOAP nh sau: - Thuộc tính tác tử (actor), thuộc tính này có thể đợc dùng để chỉ định việc nhận tin của một mục tiêu đề nhất định. - Thuộc tính phải hiểu đợc (mustUnderstand), bằng cách thêm thuộc tính này vào mục tiêu đề một giá trị 1, để ép buộc sự tiếp nhận mục tiêu đề và chắc chắn rằng mục tiêu đề này sẽ không bị bỏ qua. Nếu không chỉ định, thuộc tính này có cùng ngữ nghĩa với trờng hợp giá trị của nó là 0. Tất cả các mục tiêu đề phải có không gian tên (namespace). Các không gian tên của gói bao và kiểu mã hóa đợc định nghĩa trong tiêu chuẩn kỹ thuật của SOAP. Phần thân chứa các thông tin về việc tiếp nhận theo thứ tự của các tiếp nhận. Thông tin này đợc đóng kín trong các mục body. Nếu gói bao chứa một tiêu đề, phần thân không đợc là phần tử đầu tiên trong gói bao. Các mục body có thể đợc đặt tên. Tiêu chuẩn qui định một mục body đợc dùng để chứa các thông tin trạng thái hay lỗi liên quan đến thông điệp. Nó có thể chỉ xuất hiện một lần trong thông điệp SOAP. Để hiểu rõ hơn về SOAP, ta hãy xem một hàm nh sau dùng để lấy tỷ giá cổ phiếu của công ty IBM viết bằng ngôn ngữ Delphi. function GetStockQuote( Symbol : string ) : double; Lời gọi của SOAP sẽ là: Thẻ đầu tiên chúng ta thấy ở đây là <SOAP-ENV:Envelope >. Thẻ này là một vỏ bọc cho gói tin SOAP, cho phép khai báo nhiều không gian tên tùy nhu cầu. Các không gian tên đợc định nghĩa sao cho các tiền tố với các thẻ ví dụ nh SOAP-ENV: hoặc xsd: để dễ dàng cho phân tích. CT 2 Thẻ tiếp theo là <SOAP:ENV:Body>. (Chúng ta bỏ qua thẻ SOAP-ENV:Header). Thẻ này chứ đựng lời gọi thực sự của SOAP. Tiếp theo là thẻ <ns1:GetStockQuote>. Nh tên gọi, thẻ này là chính hàm đợc gọi. Trong ngôn ngữ của SOAP, đây đợc gọi là toán tử. Vì thế GetStockQuote là toán tử cần đợc thực thi. ns1 là một không gian tên, chỉ định urn:xmethods-quotes trong trờng hợp này. Thuộc tính kiểu mã hóa, encodingStyle, chỉ định cách một lời gọi của SOAP đợc nhận dạng. Trong thẻ <GetStockQuote> có các tham số. Trờng hợp này ta chỉ có một tham số, đó là thẻ <symbol> và kiểu dữ liệu đợc XML mô tả qua dòng thông tin xsi:type=xsd:string Kiểu dữ liệu sẽ đợc trả về dạng chuỗi. Trong thẻ <symbol> có nội dung là IBM, đó là giá trị của tham số symbol cho hàm GetStockQuote. Đó là tất cả về một lời gọi đến trình chủ SOAP. Sau khi trình chủ phân tích, nó nhanh chóng gửi lại một gói tin về tỷ giá cổ phiếu nh sau: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/> <SOAP-ENV:Body> <SOAP-ENV:Envelope xmlns:SOAP- ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema" > <SOAP-ENV:Body> <ns1:GetStockQuote xmlns:ns1="urn:xmethods-quotes"> <SOAP-NV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <symbol xsi:type="xsd:string">IBM</symbol> </ns1:GetStockQuote> </SOAP-ENV:Body> </SOAP-ENV:Envelope> <m:GetStockQuoteResponse xmlns:m="urn:xmethods-quotes"> <Price>34.5</Price> </m:GetStockQuoteResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Sau khi bỏ tất cả các bao bì, gói tin này cho chúng ta thấy giá cổ phiếu của IBM là 34.5. Hình 3 mô tả cách thức SOAP đợc dùng trong Web services. Với cách biểu thị gói tin theo chuẩn XML, rõ ràng SOAP đã cho thấy sự đơn giản trong việc thể hiện và chuyển đổi thông tin. Môi giới dịch vụ Yêu cầu dịch vụ Cung cấp dịch vụ Internet Hình 3. Thnh phần của Webservices với SOAP y êu cầu d ị ch v ụ sử dụng SOAP côn g bố d ị ch v ụ sử dụng SOAP kết nối d ị ch v ụ sử dụng SOAP WSDL CT 2 <definitions> <import/> WSDL là một tài liệu đợc viết bằng XML. Mục đích chính của nó là mô tả dịch vụ web. Nó nắm giữ các thông tin sau về Web service: - Địa chỉ của dịch vụ hay URL <types> </types> <messages> - Các phơng thức mà nó dùng và các tham số đi kèm - Các kết quả của phơng thức và kiểu (nh chuỗi, số,) Cấu trúc tài liệu: </messages> <portType> Phần tử cơ bản của bất kỳ một tài liệu WSDL là phần tử <definitions>. Nó gồm sáu phần tử con và có thể chia thành hai nhóm: định nghĩa tóm lợc và định nghĩa chi tiết. </portType> <biding> </biding> Các phần tử định nghĩa tóm lợc: 1. Các kiểu, cung cấp các định nghĩa về kiểu dữ liệu đợc dùng để mô tả các thông điệp đợc trao đổi. <service> </service> </definitions> 2. Thông điệp, biểu thị một định nghĩa tóm lợc về dữ liệu đợc chuyển đổi. Một thông điệp gồm có các phần logic, mỗi phần đợc liên kết với một định nghĩa trong một số hệ thống kiểu 3. Kiểu cổng giao tiếp, là một tập hợp các toán tử tóm lợc. Mỗi toán tử tham khảo tới một thông điệp gọi và các thông điệp kết quả. CT 2 y đủ và các chuẩn định dạng dữ liệu cho các toán tử và th o tiếp nhất định. cổng liên quan. ực hiện của dịch vụ web. Nó đ ột kỹ thuật chuẩn cho việc xuất bản và tìm kiếm các mô tả dịch vụ Web. Nó cung cấp hân loại hay các tiêu chí khác. UDDI sau đó cung cấp các con trỏ trỏ đến các tài liệu WSD PI vấn iếm một tModel và trỏ về tài liệu ầu SOAP sẽ đợc gửi đến nhà cung cấp dịch vụ, và phản hồi sẽ đợc thực hiện. iii. X g nghệ Web services phải phát triển một hệ thống phân tích phần tử hữu hạn trên mạng. Yêu ửi từ máy trạm đến máy chủ, sau khi hoàn thành việc phân tích, máy Các phần tử định nghĩa chi tiết: 1. Các liên kết, chỉ định giao thức đầ ông điệp theo một kiểu cổng gia 2. Cổng, chỉ định một địa chỉ cho một kết nối, định nghĩa một điểm cuối giao tiếp một chiều. 3. Dịch vụ, đợc sử dụng để tạo một tập hợp các UDDI UDDI là một công trình phát triển khả năng liên vận hành và sự th a ra m một thông tin lớn cần thiết để quyết định dịch vụ nào mà một ứng dụng sẽ dùng và tìm nó ở đâu. Trình khách có thể truy vấn một đăng ký UDDI dựa trên tên công ty, danh mục công tác, kiểu p L mô tả các dịch vụ và một hay nhiều các cài đặt mà trình khách có thể chọn để truy cập. Nếu các địa chỉ dịch vụ và các cài đặt cần thay đổi theo thời gian do các vấn đề nh sự ổn định, duy trì và phiên bản, thì UDDI là một cách tuyệt vời để quản lý các dịch vụ một cách trực tiếp. Để truy xuất các dịch vụ UDDI, th mục UDDI bày ra một tập hợp các hàm API theo định dạng của một Web Service trên cơ sở SOAP. API đợc chi thành hai phần logic. Chúng là A tin (Inquiry API) và API tạo tin (Publishers API). API vấn tin gồm có hai phần nhỏ-một phần đợc sử dụng cho việc xây dựng chơng trình để có thể tìm kiếm và duyệt thông tin đợc tìm thấy trong một đăng ký UDDI, một phần còn lại đợc sử dụng trong trờng hợp có lỗi xảy ra. Sau khi đã mô tả các công nghệ chính, chúng ta có thể đa ra một bức tranh đầy đủ về các ứng dụng phân tán cũng nh những ứng dụng của SOAP, WSDL và UDDI: 1. Nhà cung cấp dịch vụ Web mô tả dịch vụ web trong một tài liệu WSDL và xuất bản nó thành một đăng ký UDDI sử dụng hàm tạo tin API dựa trên SOAP. 2. Một yêu cầu dịch vụ sử dụng vấn tin API của UDDI tìm kiếm đăng ký UDDI của nhà cung cấp dịch vụ thích hợp. Nếu có một đăng ký tìm thấy, nó có thể tìm k WSDL. 3. Một yêu cầu SOAP sẽ đợc tạo lập theo tài liệu WSDL 4. Yêu c ây dựng hệ thống phân tích phần tử hữu hạn trên mạng sử dụng côn 3.1. Mô hình hệ thống Giả sử, chúng ta cần cầu tính toán sẽ đợc g chủ sẽ trả về kết quả và kết quả đợc biểu thị trên máy trạm. Rõ ràng đây là một hệ thống tính toán phân tán, chúng ta sẽ dùng Web services để minh họa cho khả năng ứng dụng trong lĩnh vực này. Mô hình hệ thống đợc biểu diễn trên hình 4. FEMClient (Trình khách) FEMServer (Trình chủ) FEMInterface Mạn g má y tính FEMImplement FEA CT 2 Hình 4. Mô hình hệ thống phân tích FEM 3.2. Cài đặt phơng thức RunCommand với các tham số đợc định nghĩa trớc để gọi điều khiển toàn bộ hệ thống. Mục đích tạo ra tính giản ơng tác giữa các máy tính. A10-44F3-A750- BA0E3B4D2176}'] procedure RunCommand(cmd:string); stdc end; stdcall; end; hân tích phần tử hữu hạn đầy đủ với các thu và phơng thức nh sau. c of TNode; :array of TElement; : (_Cholesky,_BandCholesky,_Gauss,_Skyline); ; {Vector Displace and Load} nt; array of TMaterial; Các phần FEMInterface và FEMImplement ở đây chỉ dùng một gọn của sự t a. FEMInterface IFEM = interface(IInvokable) b. FEMImplement TFEM = class(TInvokableClass, IFEM) ['{7AABCCDA-3 all; public procedure RunCommand(cmd:string); Lõi p ộc tính . FEA TFEA = class public NODE:array ELEM Support:TSupport; FEMResults:TFEMResult; nN1:integer; nE1:integer; SolveMethod VNLoad:arrnR SMatrix:TSparseMatrix; private DataXML: TXMLDocume MAT: SEC:array of TSection; CT 2 trix} nteger;X,Y,Z:double); re Add_ teger;aPIndex:arrnI); AL(Index:integer;MType,Name:string;E,m,at,g:double); de; terial; hickness; ,T:arrnnR); ctor(Obj:TElement;L:arrnR;T:arrnnR); rtex(aNIndex:arrnI;n:integer;var VN:arrnR); cementResult; ype:integer); DispResult; Client vừa gửi thông điệp yêu cầu tính toán đến FEMServer và nhận thông điệp kết quả từ FEMS chất mỗi hệ thống Client và Server vừa đóng vai trò là chủ và GM1:arrnnR; {Stiff_Ma published procedure Add_NODE(Index:i procedu ELEMENT(Index:integer;EType:string;IMat,ISecThick:in procedure Add_MATERI procedure Add_THICKNESS(Index:integer;Name:string;T:double); procedure Add_SECTION(Index:integer;Name:string;F,Jx,Jy,Jz,Fx,Fy:double); procedure AddElement(Obj:TElement); procedure AddNODE(Obj:TNode); procedure AddMaterial(Obj:TMaterial); procedure AddSection(Obj:TSection); function Get_NODE(Index:integer):TNo function Get_MAT(Index:integer):TMa function Get_THICKNESS(Index:integer):TT procedure ReadDataFromFile(fn:string); procedure SetIndexNode; procedure AddStiffMatrix(Obj:TElement;K procedure AddNodeLoadVe procedure AddNodeLoad(NL:arr6r;Index:integer); procedure BuildVNodeLoad; procedure BuildBoundary; procedure BuildStiffMatrix; procedure SolveEquation; procedure GetEDeformedVe procedure Add_NodeDispla procedure AnalyseAllElement; procedure Init; procedure WriteData(fn:string;ft procedure Write procedure WriteToMtxfile(fn:string); end; d. FEMServer v FEMClient Vì FEM erver trở về nên thực khác Sau thực hiện tính toán một ví dụ phân tích cục bộ trụ thân cột với hệ thống phân tích vừa tạo l các kết quả đợc thể hiện trên hình 5. Mô hình kết c h. Những tác vụ này có thể đợc cài đặt đồng thời trong một mô đun hoặc với 2 mô đun tác biệt hoạt động trên từng máy tính. 3.3. Một số hình ảnh về kết quả ập trên mạng 2 máy tính (1 Laptop và 1 PC), ấu đợc hiển thị trên FEMServer (bên trái) và kết quả biểu diễn ở FEMClient (bên phải). CT 2 Hình 5. Các giao diện mô đun hoạt động của FEMServer v FEMClient iv. Kết luận Trong tính toán phân tán, các công nghệ DCOM, CORBA và RMI tập trung ứng dụng chủ ng dụng intranet bởi hạn chế về vấn đề vợt qua tờng lửa cũng nh sự khác biệt ành xây dựng và đã có một số kết quả bớc [1]. Hartwig Gunzer, Sales Engineer, Introduce to Web services, Borland, March 2002. rs.com/topic/web-service. with a DB2 Backend, http://delphi.about.com, 5 Dec 2002. ces, Annual Borland Conference, 2003. yếu trong các ứ giao thức làm cho không đảm bảo tính đồng bộ giữa các ứng dụng chủ và khách. Công nghệ Web services khắc phục đợc những hạn chế trên nhờ tính mềm dẻo của các chuẩn XML, SOAP, WSDL và UDDI cấu thành hệ thống tính toán phân tán. Nhờ tính u việt này mà rất nhiều ứng dụng tính toán phân tán đợc phát triển, là cơ sở quan trọng để xây dựng hệ thống thơng mại điện tử và các hệ thống dịch vụ mạng khác. Hệ thống phân tích phần tử hữu hạn trên mạng đợc phát triển với công nghệ tính toán phân tán Webservice là một ứng dụng điển hình trong ng đầu. Trong thời gian tới, các tác giả sẽ tiếp tục hoàn thiện để có đợc một ứng dụng đầy đủ hơn và có thể áp dụng vào thực tế. Tài liệu tham khảo [2]. http://www.answe [3]. http://www.w3.org/TR/wsdl#_service. [4]. Maco Cantu, Building a Web Service in Delphi [5]. Deepak Shenoy, Advanced Web Servi [6]. http://www.systinet.com/doc/ssc-65/primer/html/using.web.services.html. [7]. http://www.perfectxml.com/WebSvc3.asp. [8]. http://www.idealliance.org/papers/xml2001/papers/html/03-02-03.html Ă . chia thành nhiều bài toán nhỏ, độc lập với nhau. Với những dạng bài toán này, tính toán phân tán sẽ mang lại hiệu quả cao. Ngoài ra, việc sử dụng công nghệ tính toán phân tán sẽ còn cho phép. nghệ tính toán phân tán cho phép thực hiện các tơng tác giữa các máy tính/ngời và máy tính/máy tính trên cơ sở lập trình phân tán. Rất nhiều bài toán trong ngành xây dựng có thể đợc phân chia. công nghệ tính toán phân tán nh DCOM, CORBA v RMI, Web services (dịch vụ web) thể hiện nhiều u điểm bao gồm: khả năng liên vận hnh, tính khả dụng, tính tái sử dụng, v tính phân tán. Công nghệ