Kĩ thuật lập trình - Tổng quan lập trình phân tán

Khái niệm lập trình phân tán

Khái niệm hệ phân tán

Các mô hình ứng dụng

Lợi ích của các ứng dụng phân tán

Giới thiệu một số ngôn ngữ lập trình phân tán

Bài tập và thực hành

 

ppt31 trang | Chia sẻ: Mr Hưng | Lượt xem: 2346 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Kĩ thuật lập trình - Tổng quan lập trình phân tán, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 1TỔNG QUAN LẬP TRÌNH PHÂN TÁNNội dungKhái niệm lập trình phân tánKhái niệm hệ phân tánCác mô hình ứng dụngLợi ích của các ứng dụng phân tánGiới thiệu một số ngôn ngữ lập trình phân tánBài tập và thực hành1. Khái niệm lập trình phân tánLập trình phân tán là lập trình trên các hệ thống phân tánLập trình CSDL phân tánLập trình Client-serverLập trình Peer to peer2. Khái niệm hệ phân tánTheo Andrew S.Tanenbaum:Hệ phân tán là một tổ hợp các máy tính độc lập mà đối với người dùng nó có vẻ như một hệ thống đơn nhất quán.=> không tồn tại một hệ thống lý tưởng như vậy trong thực tế.Định nghĩa “yếu hơn” về hệ phân tán:Hệ phân tán là một tổ hợp các máy tính độc lập được sử dụng kết hợp để thực hiện một tác vụ hoặc để cung cấp một dịch vụ.Ví dụ về hệ phân tánVD1: World-Wide-Web - tổ hợp các Web server – các máy cài giao thức HTTP, FTP, đang cùng nhau cung cấp cơ sở dữ liệu phân tán gồm các tài liệu siêu văn bản và tài liệu đa phương tiện.VD2: Các máy tính của một mạng LAN cung cấp một hình ảnh đồng nhất về một hệ thống tệp phân tán.Tap hop cac may tinh trong mang internet co chay dich vu ten mien DNSKiến trúc hệ phân tánClient – serverPeer – to – peer (P2P)3. Các mô hình ứng dụngHệ tính toán phân tánHệ thông tin phân tánHệ thông tin di độnga. Hệ tính toán phân tánNhiều hệ thống phân tán được cấu hình cho tính toán hiệu năng cao:Cluster Computing: trong LAN, dùng để chạy các thuật toán song songGrid Computing: trong WAN, tổ chức ảob. Hệ thông tin phân tánVD: Các hệ giao tác (transaction)Các hệ này phải thỏa mãn các tính chất sau (ACID):Atomicity (tính nguyên tử): trạng thái của đối tượng không bị ảnh hưởng bởi thao tác thành công hay thất bại.Consistency (tính nhất quán): một giao tác phải là hợp lệ.Isolation (tính cô lập): các giao tác tương tranh không dính líu tới nhau.Durability (tính bền vững): giao tác được đảm bảo cho dù hệ thống có gặp sự cố.c. Hệ thông tin di độngGồm các thiết bị tính toán nhúng và di động. Trong đó, tính không bền vững là mặc định, cấu tạo ad-hoc (mỗi nút phải đơn giản và dễ cấu hình)4. Lợi ích của các ứng dụng phân tánCho phép truy nhập tài nguyênTính trong suốtKhả năng mở rộngĐảm bảo độ tin cậy và nhất quánHiệu năngTính mềm dẻo(Tham khảo file CSDL_2/trg 5, 6)5.Giới thiệu một số ngôn ngữ lập trình phân tánLập trình phân tán với COM+/MTSLập trình phân tán đối tượng với RMILập trình phân tán đối tượng với CorbaLập trình phân tán REMOTING trong .NETLập trình phân tán với Web Servicea. Lập trình với COM+/MTSCOM (Component Object Model) là một cách thức để viết các thành phần phần mềm (software componet) cung cấp các chức năng phục vụ cho các ứng dụng, các thành phần khác. Viết một thành phần COM cũng như viết một hàm API động, hướng đối tượng. Các thành phần COM có thể được nối kết với các ứng dụng cũng như các thành phần COM khác.Thành phần COM là những đoạn mã hiện thực các hàm, các chức năng được chứa trong file .DLL hoặc .EXE. Lập trình với COM+/MTSThành phần COM cần phải thỏa mãn được những “chuẩn” của COM. Các thành phần COM có thể được liên kết động. Các thành phần COM có thể được “bao gói” lại vì nó thỏa mãn các ràng buộc:Thành phần COM hoàn toàn độc lập với ngôn ngữ hiện thực nó. được thực hiện bằng nhiều ngôn ngữ như Visual C++, Visual Basic, Java ..Thành phần COM được sử dụng dưới dạng mã nhị phân.Thành phần COM có thể dễ ràng nâng cấp Thành phần COM trong suốt về vị trí.Lập trình với COM+/MTSTầng trung gian của các ứng dụng thường là các thành phần COM được viết bằng các ngôn ngữ lập trình hỗ trợ giao thức COM (như Visual Basic, Visual C++,...) và được quản lý bởi Micrsoft Transaction Server (MTS). Khi tầng trung gian là các thành phần COM và được quản lý bởi MTS thì chúng được gọi là COM+/MTS. COM+/MTS có nhiệm vụ quản lý tất cả các component, điều khiển, giám sát mọi tác vụ như: tạo mới một thành phần, quản lý các hàng đợi, giao dịch... COM+/MTS luôn lắng nghe các kết nối từ máy khách, khi các yêu cầu chấm dứt (không còn sử dụng đến nữa) thì nó giải phóng tài nguyên và kết nối đó.Lập trình với RMIRMI (Remote Method Invocation) là một công nghệ phân tán cho phép các phương thức trên các máy ảo Java được gọi từ xa. Là cách đơn giản để truyền tin giữa một ứng dụng này với ứng dụng khác so với truyền tin trực tiếp dùng TCP socket (cách truyền tin này đòi hỏi cả hai phía đều sử dụng cùng một giao thức). Thay vì viết các chương trình cài đặt giao thức, những người phát triển có thể tương tác với các phương thức đối tượng được định nghĩa bởi một giao tiếp dịch vụ RMI. Mỗi khi có được một tham chiếu tới đối tượng từ xa, tham chiếu này có thể được xem như là một đối tượng cục bộ, đây là cách trực quan để phát triển các ứng dụng mạng.Lập trình với CORBACORBA (Common Object Request Broker Architecture) định nghĩa nhiều dịch vụ, một trong những dịch vụ đó thực hiện chức năng tương tự như RMICORBA họat động với nhiều ngôn ngữ lập trình khác nhauCORBA được định nghĩa bởi một liên kết bao gồm 800 công ty thành viên, được gọi là Nhóm Quản Lý Đối Tượng (Object Management Group - OMG) CORBA định nghĩa 2 thành phần:Một thực thể cho phép liên lạc giữa 2 tiến trình (hay còn gọi là 1 môi giới yêu cầu đối tượng (Object Request Broker - ORB))Một giao thức được ORB dùng để liên lạc giữa nhiều tiến trình, được gọi là IIOP (Internet Interoperability Protocol)Sự khác nhau giữa RMI và CORBARMI là một phần của bộ J2SDK và là các hàm thư viện hỗ trợ các lời gọi phương thức từ xa và trả về giá trị cho các ứng dụng tính toán phân tán. CORBA là một chuẩn công nghiệp cho phép gọi các phương thức từ xa và nhận kết quả trả về, nhưng không giống như RMI, nó có thể được sử dụng khi bên phía gọi và bên phía phương thức được gọi có thể sử dụng các ngôn ngữ lập trình khác nhau.RMI là một tập các hàm thư viện đơn giản vì cả 2 bên đều sử dụng cùng môt ngôn ngữ lập trình và kiến trúc máy. Điều này sẽ làm cho việc gọi phương thức từ xa dễ giải quyết hơn.Bộ phát triển J2SDK cũng hỗ trợ RMI-CORBA, cho phép một đối tượng Java gọi một đối tượng CORBA sử dụng hai cách tiếp cận khác nhau..NET RemotingNET Remoting là một kĩ thuật .NET được giới thiệu từ .NET framework 1.1. Cùng với .NET Webservice, .NET remoting là lựa chọn cho giải pháp xử lý tính toán từ xa..NET Remoting là một kĩ thuật cho phép một đối tượng này truy xuất đến một đối tượng khác.Có thể sử dụng .NET Remoting để gọi một chương trình hoặc một service chạy trên một máy tính khác để xử lý một vấn đề và trả lại kết quả tính toán.Khác biệt giữa .NET Remoting và COMViệc giao tiếp giữa các tiến trình thường được thực hiện bằng cách sử dụng Distributed COM hay còn gọi là DCOM.DCOM đã rất hữu ích cho những chương trình chạy trên các máy tính cùng loại và nằm trong cùng một mạng. Tuy nhiên, DCOM trở nên lỗi thời vì nó không thể chạy trên Internet.DCOM dựa trên một tập giao thức mà không phải đối tượng nào cũng hỗ trợ và điều này khiến DCOM không chạy được trên những platform khác nhau. Ngoài ra, DCOM sử dụng nhiều port trong khi các port ấy thường bị chặn bởi firewall. (Tất nhiên mở những port đó để nó hoạt động được không khó nhưng đó là một trong những phiền phức)..NET Remoting khắc phục những yếu kém của DCOM bằng cách hỗ trợ nhiều giao thức khác nhau.Web ServiceWeb Serivce là một công nghệ cho phép client truy xuất để thực hiện mọi tác vụ như một Web Application. Về bản chất, Web service dựa trên XML và HTTP, trong đó XML làm nhiệm vụ mã hóa và giải mã dữ liệu và dùng SOAP để truyền tải. Web Service không phụ thuộc vào platform nào, do đó có thể dùng Web Service để truyền tải dữ liệu giữa các ứng dụng hay giữa các platform.Khác biệt giữa Web Services và .NET RemotingVề khía cạnh xử lý từ xa thì Web Services hoàn toàn tương tự như .NET Remoting. ASP.NET Web Services chỉ có thể được truy xuất qua HTTP còn .NET Remoting có thể được dùng trên nhiều giao thức khác nhau như TCP, HTTP.Web Services là một môi trường stateless. Khi có một request từ phía client, sẽ có một object mới được tạo ra để thực hiện request đó trên server. Còn .NET Remoting lại hỗ trợ nhiều lựa chọn state management và có thể thực hiện nhiều request từ một client, đồng thời có hỗ trợ callbacks.Web Services serialize các đối tượng thành XML bên trong SOAP message và vì thế có thể truyền tải thông tin của bất cứ thành phần nào miễn có thể chuyển thành XML. Còn đối với .NET Remoting thì tùy giao thức và định dạng message mà nó có thể truyền đi thông tin như thế nào..NET Remoting cho phép đối tượng được truyền vào theo cả kiểu tham chiếu(reference) và tham trị (value).Web services có thể hoạt động trên các platform môi trường khác nhau trong khi .NET Remoting yêu cầu phía clients phải là .NET application.Bài tập và thực hànhCài đặt Oracle (bản Express)CHƯƠNG 2: CƠ SỞ DỮ LIỆU PHÂN TÁN (10 tiết)2.1. Định nghĩa CSDL phân tán2.2. Các đặc điểm chính của cơ sở dữ liệu phân tán2.3. Mục đích của việc sử dụng cơ sở dữ liệu phân tán2.4. Kiến trúc cơ bản của CSDL phân tán2.5. Hệ quản trị CSDL phân tán2.6. Hệ quản trị cơ sở dữ liệu Oracle2.6.1. Cài đặt Oracle2.6.2. Hiển thị dữ liệu2.6.3. Cập nhật dữ liệu2.6.4. Xóa, sửa dữ liệuBài tập và thực hành DOC 1.1.3 VA 4.25 TRONG FLIE hdsd2.1. Định nghĩa CSDL phân tán Một CSDL phân tán là một tập hợp nhiều CSDL có quan hệ với nhau về mặt logi và được phân bố trên một mạng máy tínhTính chất phân tán: Toàn bộ dữ liệu của CSDL phân tán không được cư trú ở một nơi mà cư trú ra trên nhiều trạm thuộc mạng máy tínhTương quan logic: Toàn bộ dữ liệu của CSDL phân tán có một số các thuộc tính ràng buộc chúng với nhau2.2. Các đặc điểm của cơ sở dữ liệu phân tán a. Chia sẻ tài nguyên:Được thực hiện thông qua mạng truyền thông, mỗi tài nguyên cần được quản lý bởi một chương trình có giao diện truyền thông, có khả năng truy cập, cập nhật tin cậyb. Tính mở: Tính mở của hệ phân tán được xem như là mức độ bổ sung các dịch vụ dùng chung tài nguyên mà không phá hỏng hay nhân đôi các dịch vụ đang tồn tại, nó được hoàn thiện bằng cách xác định hay phân định rõ các giao diện chính của một hệ.2.2. Các đặc điểm của cơ sở dữ liệu phân tán c. Khả năng song song:Hệ phân tán hoạt động trên mạng truyền thông có nhiều máy tính, mỗi máy có thể có 1 hay nhiều CPU. Tại một thời điểm nếu có N tiến trình cùng tồn tại, ta nói chúng thực hiện đồng thời. Việc thực hiện tiến trình theo cơ chế phân chia thời gian (một CPU) hay song song (nhiều CPU) d. Khả năng mở rộngKhả năng mở rộng được đặc trưng bởi tính không thay đổi phần mềm hệ thống và phần mềm ứng dụng khi hệ được mở rộng. Điều này chỉ đạt được mức độ nào đó với hệ phân tán hiện tại. Yêu cầu mở rộng không chỉ là sự mở rộng về

Các file đính kèm theo tài liệu này:

  • pptattachment_933_54ad1b34b09ef_54ad1b02b47f2_bai_1ltpt_989.ppt
Tài liệu liên quan