Giáo trình Java Ngô Lan

103 2.2K 2
Giáo trình Java Ngô Lan

Đ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

Giáo trình Java Ngô Lan

1 Java và xử lý phân tán (45 tiết) 1. Nội dung:  Giới thiệu những qui tắc và khái niệm liên quan đến thiết kế hệ thống phân tán.  Tổng quan về các vấn đề và công nghệ giải pháp trong xử lý phân tán  Giới thiệu về giao thức truyền thông trong xử lý phân tán  Hệ điều hành phân tán và chia sẻ dữ liệu  Các đối tượng xử lý phân tán  Java Network Programming, java RMI 2. Tài liệu tham khảo: Distributed Systems: Concepts and Design Distributed Programming - Gabriel Oteniya and Milton Chau Keng Fong – Macao Java Distributed computing Addison_Wesley, Java Network Programming and Distributed Computing 3. Yêu cầu: - Có kiến thức cơ bản về lập trình h ư ớng đối tượng và java cơ bản - Làm bài tập lớn. (Thiết kế và cài đặt một chương tr ình x ử lý phân tán sử dụng RMI) 4. Hình thức thi: Trắc nghiệm + Lập trình. 2 Chương 1 – Tổng quan về xử lý phân tán 1. HỆ PHÂN TÁN 1.1Định ngh ĩa h ệ phân tán Có nhiều định ngh ĩa khác nhau v ề hệ phân tán, dưới đây là ba định ngh ĩa được nhiều người chấp nhận nhất: Hệ thống phân tán là một hệ thống gồm các thành phần xử lý phân tán, giao tiếp với nhau qua một cơ sở hạ tầng truyền thông chung Định ngh ĩa 1: Hệ phân tán là một hệ thống có chức năng và dữ liệu phân tán trên các trạm (máy tính) được kết nối với nhau qua một mạng máy tính. Định ngh ĩa 2 : Hệ phân tán là một tập các máy tính tự trị được kết nối với nhau bởi một mạng máy tính và được cài đặt phần mềm hệ phân tán. Định ngh ĩa 3 : Hệ phân tán là một tập các máy tính độc lập giao tiếp với người sử dụng như một hệ thống thống nhất và toàn vẹn ( A single coherent system). Như vậy: Hệ phân tán = Mạng máy tính(+) Phần mềm hệ phân tán. ( Distributed System = Computer Network (+) Distributed System Software) Về cơ bản, định ngh ĩa 3 cũng tương đươ ng với định ngh ĩa 2. B ởi vì một tập hợp các máy tính độc lập muốn trở thành một hệ thống thống nhất và toàn vẹn thì nó phải được kết nối thành một mạng máy tính, trên đó cài đặt phần mềm hệ phân tán ( chẳng hạn hệ điều hành phân tán – Distributed Operating System) Bản thân một mạng máy tính c ũng l à m ột hệ phân tán. Bởi vì trên đó có các phần mềm cài đặt các giao thức truyền thông là các phần mềm hệ phân tán. Một số ví dụ khác về các hệ phân tán: + Mạng máy tính. Mạng là một tập các máy tính/thiết bị chuyển mạch được kết nối bởi các liên kết truyền thông nhằm chia sẻ thông tin và tài nguyên. Trong mạng này, các tài nguyên trở nên khả dụng đối với bất kỳ người sử dụng nào trên mạng. + Hệ thống thông tin có thể thực hiện tự động các lệnh trong việc sử lý ở văn phòng. Hệ thống đó được sử dụng từ nhiều văn ph òng khác nhau, t ừ nhiều địa điểm khác nhau. Mỗi trạm có thể tham gia vào một ứng dụng toàn cục trong hệ thống. Người sử dụng chỉ kết nối vào hệ thống và sử dụng dữ liệu mà không cần biết dữ liệu đó ở tại máy nào trong hệ thống. Người sử dụng luôn ngh ĩ r ằng 3 mình đang làm vi ệc một cách độc lập không hề liên quan đến các máy tính khác. + World Wide Web. Đó là một mô hình của tài liệu phân tán. Để tìm thấy tài liệu, người sử dụng chỉ chỉ ra được nội dung mà mình muốn tìm thì toàn bộ tài liệu sẽ xuất hiện trên màn hình. Bạn chỉ phải đưa ra một cái tên duy nhất trong khung URL (Uniform Resource Locator). Người sử dụng luôn biết được là tài liệu mà mình đang sử dụng có từ nhiều nơi khác nhau và được sử lý bởi các nhà phục vụ khác nhau. Các hệ điều hành phân tán : Dòng hệ điều hành phân tán xuất phát từ Unix là Unix Berkeley Software Distribution ( hay Unix BSD). Network File System (NFS) của Sun phát triển dựa vào dòng Unix BSD. Ngoài ra có các hệ điều hành phân tán như Amoeba, Chorus, Mach,…dành cho các công ti, các viện, trung tâm nghiên cứu. Các dịch vụ thông tin trên mạng như Email, E-commerce, E-learning, E-healt,… HDH phân tán, thì nó phải làm cho tính phân tán trở nên trong suốt đối với người dùng. Ngh ĩa l à nó s ẽ đem yêu cầu tính toán chia nhỏ ra, gửi đến các máy trạm, và yêu cầu thực hiện. Thực hiện xong sẽ tổ chức kết quả trả về đề đưa ra cho người dùng. Nghĩa là, nó là bước tiếp theo của hệ điều hành mạng. Hệ thống đặt vé máy bay: hình th ức đ ặt vé máy bay qua m ạng internet Vi ệc nâng cấp hoặc mở rộng các hệ phân tán tương đối dễ dàng. Đặc điểm này là do các máy tính đ ộc lập, nhưng đồng thời nó ẩn chứa khả năng tham gia vào h ệ thống như là một thực thể hoàn chỉnh. Một hệ phân tán thông thường không dược lưu trữ một cách liên tục. Đối với người sử dụng, hệ phân tán là trong suốt. Đ ể hỗ trợ các máy tính và mạng không đồng nhất trong khi nhìn nhận với quan đi ểm một hệ thống đơn, hệ phân tán thường được tổ chức bằng các phương tiện c ủa một tầng phần mềm m à nó được th ay th ế một cách logic giữa một tầng cao h ơn g ồm người sử dụng và các ứng dụng với tầng thấp hơn của hệ điều hành. Hệ phân tán đôi khi c òn được gọi là phần trung gian ( middleware). 1.2 Phân loại hệ phân tán: Trước đây, hệ phân tán được chia thành ba loại : hệ điều hành hệ phân tán, cơ sở dữ liệu hệ phân tán và các hệ thống tính toán hệ phân tán. Ngày nay, hệ phân tán được phân chia như sau: - 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. 1.3 Đặc Điểm của hệ phân tán: 4 Tính chia s ẻ tài nguyên: Gi ải quyết bài toán chia sẻ tài nguyên trong hệ th ống (resource sharing) Có 2 mô hình cho bài toán chia s ẻ tài nguyên: + Mô hình Client-Server + Mô hình h ướng đối tượng. Tính m ở: B ổ sung thêm d ịch vụ mới mà không ảnh hưởng tới các hoạt động đ ã có. Tính tương tranh: mang l ại những thuận lợi của việc thực thi cao hơn. Trong h ệ phân tán đa mục đích, chúng ta có thể khai thác tính t ương tranh giữa nh ững quá trình x ử lý ở máy khách và giữa các quá trình xử lý ở máy chủ, nhưng chúng ta không th ể khai thác tính tương tranh với những ứng dụng đơn trừ khi nh ững chương trình ứng dụng đã được tạo ra như là hệ thống của quá trình xử lý tương tranh. Có th ể áp dụn g phương th ức tuần tự thời gian hoặc phương pháp gán nhãn thời gian. Khả năng thay đổi quy mô: là một sự quan tâm lớn trong việc thiết kế hệ phân tán suốt một thập kỷ qua, và tầm quan trọng của nó vẫn còn tiếp tục. Bản sao dữ liệu và sự phân phối của việc nạp vào những máy chủ là những điểm mấu chốt của công nghệ mà được sử dụng để xác định địa chỉ của nó. Khả năng chịu lỗi: có thể được định địa chỉ một cách hiệu quả hơn trong hệ phân tán hơn những kiến trúc của những hệ thống máy tính trung tâm. Dư thừa phần cứng có thể được khai thác để chắc chắn rằng những tác vụ chính yếu được phân phối cho những máy tính khác khi nó bị lỗi. Nhưng khả năng phục hồi lỗi từ phần cứng và phần mềm mà không mất dữ liệu đ òi h ỏi việc thiết kế một cách cẩn thận. Tính co dãn: Kh ả năng tương thích của hệ thống. Tính trong su ốt: Ẩn giấu sự rời rạc v à những nhược điểm nếu có của hệ phân tán đ ối với ng ười sử dụng (end -user ) và nh ững nh à lập trình ứng dụng (application program mer). Theo tiêu chu ẩn ISO cho hệ phân tán ISO / IS / 10746 tên là " Open distributed processing reference model" 1995 đ ã cụ thể hóa tám d ạng trong suốt: a) Trong su ốt truy cập (Access transparency): che giấu sự khác biệt về cách bi ểu diễn và cách truy cập tài nguyên. 5 b) Trong su ốt về vị trí (Location tra nsparency): che gi ấu vị trí của tài nguyên. Hai d ạng trong suốt vừa trình bày được gọi chung là trong suốt mạng (network transparency). c) Trong su ốt di trú (Migration transparency): che giấu khả năng chuyển vị trí c ủa tài nguyên. d) Trong su ốt về việc định vị l ại (Relocation transparency): che giấu việc di chuy ển của tài nguyên khi đang được sử dụng. e) Trong su ốt nhân bản (Replication transparency): che giấu t ình trạng tình tr ạng sử dụng bản sao của tài nguyên. Che gi ấu sự che sẻ tài nguyên tương tranh (Concuren cy transparency). f) Trong su ốt sự cố (Failure transparency): che giấu lỗi hệ thống nếu có. g) Trong su ốt khả năng di chuyển t ài nguyên (Persistence transparency): che gi ấu việc di chuyển tài nguyên từ bộ nhớ ngoài vào bộ nhớ trong và ngược lại. 1.4 Khái niệm về phần cứng Hệ phân tán gồm nhiều bộ xử lý, có một vài cách khác nhau để tổ chức phần cứng liên kết và giao tiếp cùng nhau. Phân lo ại máy tính. Có hai lo ại máy tính: • Các lo ại máy tính có chia sẻ bộ nhớ (Shared memory): các loại máy đa x ử lý (multiproccessor). • Các máy tính không chia s ẻ bộ nhớ (Private memory): các hệ thống multicomputors Trong m ỗi loại lại chia tiếp theo mạng kết nối bus – based ch ỉ có một đư ờng kết nối v à switch – base có nhi ều d ùng k ết nối từ máy này sang máy khác 6 Hệ đa máy tính đồng nhất (homogeneous) : Trong đó chỉ có một mạng kết nối các máy sử dụng cùng kỹ thuật với nhau, tất cả các bộ xử lý cùng có một khối lượng bộ nhớ riêng giống nhau. Hệ đa máy tính không đồng nhất (heterogeneous): chứa nhiều loại máy tính độc lập, khác nhau kết nối vào mạng. 1.5 Khái niệm về Phần mềm :  DOS ( distributed operating system ) : • Là h ệ điều h ành cho các h ệ multiproccessor v à các h ệ homogenous multicomputer. • M ục ti êu là ẩn giấu v à cung c ấp các dịch vụ quản trị t ài nguyên. • Đ ặc điểm l à các d ịch vụ có thể đ ư ợc thực hiện bởi các lời tri ệu gọi từ xa. Cách tổ chức cơ bản khác nhau của các bộ xử lý và bộ nhớ trong hệ máy tính phân tán 7  NOS ( network operaring system) : • Là h ệ điều hành cho các hệ thống heterogenou s multicomputer (LAN, WAN). • M ục tiêu của NOS là cung cấp các dịch vụ từ xa  Middleware : Là t ầng phụ nằm giữa tầng dịch vụ của NOS và tầng ứng dụng phân tán. 8 Ở cấp mức độ ứng dụng: một ứng dụng phân tán có thể đ ược chia thành các phần sau đây: + Ti ến trình + Lu ồng + Đối tượng Chương trình viết bằng ngôn ngữ hướng đối tượng được tạo thành từ h ợp tác các đối tượng. M ột định nghĩa đơn giản của một đối tượng là một nhóm các d ữ liệu liên quan, với các phương pháp có sẵn để truy vấn hoặc làm thay đổi d ữ liệu ho ặc dùng một số hành động dựa trên các dữ liệu. quá trình có thể được t ạo thành từ một hoặc nhiều đối tượng, và các đối tượng này có thể được truy cập b ằng một hoặc nhiều luồng trong tiến trình. + Đại lý (agent) 9 M ột đại lý là một hệ thống cấp cao hơn thành ph ần, định nghĩa xung quanh m ột chức năng cụ thể, hữu ích, hoặc vai trò trong hệ thống tổng thể. M ột ứng dụng ngân h àng từ xa, ví dụ, có thể được chia thành một đại lý khách hàng, đ ại lý giao dịch, môi giới thông tin một đại lý. Đ ại lý có thể đượ c phân ph ối qua nhiều quy trình, và có thể được tạo thành từ nhiều đối tượng và lu ồng trong các quá trình này. Vì v ậy, một ứng dụng phân tán có thể được dùng như một nhóm phối hợp c ủa các đại lý làm việc để hoàn thành một số mục tiêu. M ỗi đại lý có thể đư ợc phân phối qua nhiều quy trình trên máy từ xa, và có thể bao gồm nhiều đ ối tượng hoặc chủ đề kiểm soát. Đ ại lý cũng có thể thuộc về nhiều ứng d ụng cùng một lúc. (ví d ụ máy ATM) . 2. VẤN ĐỀ CƠ BẢN CỦA HỆ PHÂN TÁN 2.1GIAO TIẾP  Truyền thông ở mức mạng máy tính  Truyền thông ở mức midleware  Gọi thủ tục từ xa (Remote Procedure Call)  Triệu gọi đối tượng từ xa (Remote Object Invocation)  Truyền thông hướng thông điệp (Message Oriented Communication)  Truyền thông hướng dòng (Stream Oriented Communication) 2.1.1 Truyền thông ở mức mạng máy tính Giao thức phân tầng: Mô hình OSI. Kết nối qua 2 giao thức khác nhau: giao thức hướng kết nối (Connection- Oriented protocol) và giao thức không kết nối (Connectionless-Oriented protocol). 10 Tầng vật lý (Physical layer): truyền dòng bit không có cấu trúc (dòng bit thô) đi qua đường truyền vật lý, truy nhập vào đường truyền vật lý nhờ các phương tiện cơ, điện, hàm, thủ tục. Tầng liên kết dữ liệu ( Data link): Cung cấp phương tiện để truyền thông tin qua liên kết vật lý đảm bảo tin cậy: gửi các khối dữ liệu với các cơ chế đồng bộ hóa, kiểm soát lỗi và kiểm soát luồng dữ liệu cần thiết. Tầng mạng ( Network): Thực hiện việc chọn đường và chuyển tiếp thông tin với công nghệ chuyển mạch thích hợp, thực hiện việc kiểm soát luồng dữ liệu và cắt/ hợp dữ liệu nếu cần. Tầng vận chuyển (Transport): thực hiện việc truyền dữ liệu giữa 2 đầu mút (end –to-end ); thực hiện cả việc kiểm soát lỗi và kiểm soát luồng dữ liệu giữa 2 đầu mút, thực hiện việc ghép kênh và cắt/ hợp dữ liệu nếu cần. Tầng phiên (Session): Cung cấp phương tiện quản lý truyền thông giữa các ứng dụng, thiết lập, duy trì, đ ồng bộ hóa và hủy bỏ các phiên truyền thông giữa các ứng dụng. Tầng trình diễn (Presentation): Chuyển đổi cú pháp dữ liệu để đáp ứng yêu cầu truyền dữ liệu của các ứng dụng qua môi trường OSI. Tầng ứng dụng (Application): Cung cấp các phương tiện để người sử dụng có thể truy cập vào môi trường OSI, cung cấp các dịch vụ thông tin phân tán. Kết nối qua 2 giao thức Các tầng, giao thức và các giao diện trong mô hình OSI [...]... song song khi thực thi một chương trình trên một hệ thống nhiều bộ xử lý Kỹ thuật đa luồng cũng có ích trong các ứng dụng lớn, như là các ứng dụng được phát triển trong một tập hợp các chương trình cùng h ợp tác với nhau, mỗi chương trình đư ợc thực thi bởi một tiến trình riêng biệt Phương pháp này thường được dùng trong môi trường UNIX Việc kết hợp giữa các chương trình được thực thi bởi một trong... giản nhất để tìm vết là bộ phận đánh dấu -và-quét Bộ phận này gồm có hai quá trình khác nhau:quá trình đánh dấu và quá trình quét.Trong suốt quá trình đánh dấu, các thực thể được tìm vết theo chuỗi các tham chiếu bắt đầu từ các thực thể trong tập hợp gốc Mỗi thực thể mà có thể tiến tới được theo cách này thì được đánh dấu.Qúa trình quét định vị các thực thể không được đánh dấu Các thực thể này được coi... nguyên những đối tượng trùng nhau trong cả hai quá trình Tìm vết trong các nhóm Khi một nhóm của tiến trình được thiết lập, thuật toán cơ sở để thu gom rác trong một nhóm bao gồm 5 bước sau:Khi bắt đầu việc đánh dấu, chỉ những sekeleton mới được đánh dấu.Tiến trình bên trong, sự lan truyền việc đánh dấu được bắt đầu từ seke leton đến các proxy.Tiến trình bên ngoài được đánh dấu từ các poxies đến các... âm thanh hoặc hình ảnh chẳng hạn Do đó cần phải có 1 cơ chế truyền thông hướng dòng 16 .2 TIẾN TRÌNH II.1 Luồng ( Threads) II.1.1 Giới thiệu về Thread Để thực thi một chương trình, hệ điều hành tạo ra một số các bộ xử lý ảo, mỗi bộ xử lý dành để chạy một chương trình khác nhau Hệ điều hành có một bảng tiến trình (process table), chứa đựng các mục nhập để lưu trữ các giá trị thanh ghi CPU, bản đồ bộ... thực thể cần được kiểm tra thì được tô màu trắng Cuối quá trình đánh dấu, tất cả các thực thể được tô màu đen là có thể đến được từ gốc, còn các thực thể không thể đến được từ tập gốc thì vẫn là màu trắng Màu xám thì được dùng để tô các thực thể đang được kiểm tra trong quá trình đánh dấu Sau quá trình đánh dấu những đối tượng màu trắng là rác Quá trình đánh dấu kết thúc khi tất cả các đối tượng, sek eleton,... tảng này, một tiến trình có thể chia làm 3 phần: đoạn mã, đoạn tài nguyên, đoạn thực thi Mô hình đầu tiên là Weak Mobility Trong mô hình này, chỉ chuyễn đổi đoạn mã Đặc điểm chủ yếu ở đây là sự chuyển đổi chương trình được bắt đầu ngay từ trạng thái bắt đầu Ví dụ là Java Applet.Mô hình Strong Mobility Trong mô hình này, chỉ chu yễn đổi đoạn thực thi Đặc điểm chủ yếu ở đây là các tiến trình đang hoạt... thanh ghi, bộ đếm chương trình, con tr ỏ stack,…), hệ điều hành cũng s ẽ phải thay đổi các thanh ghi của đơn vị quản lý bộ nhớ (MMU) & làm mất hiệu lực các bộ nhớ đệm thông dịch địa chỉ như là trong translation lookaside buffer (TLB) Thêm vào đó, bởi vì hệ điều hành hỗ trợ nhiều tiến trình hơn cả việc nó có thể tổ chức 1 cách đồng thời trong bộ nhớ chính, nó phải hoán đổi các tiến trình giữa bộ nhớ chính... (Agent) trong D’Agents là một chương trình có thể di chuyển qua nhiều máy khác nhau Chương trình có thể được viết bằng bất kì ngôn ngữ nào miễn là máy sử dụng nó có thể thực thi được mã di trú II.5 Tác tử mềm (Software agents) II.5.1 Tác tử mềm trong hệ phân tán Chúng ta có thể định nghĩa một tác tử mềm như một quy trình tự trị có khả năng tác động trở lại và thiết lập các thay đổi trong môi trường của... Nondistributed Systems: Trong tiến trình đơn lu ồng, bất cứ khi nào một lời gọi hệ thống ngăn chặn được thực thi, toàn bộ tiến trình sẽ bị chặn lại Ta xét trong hệ thống bảng tính, khi một ô tính được thay đổi giá trị thì các ô khác cũng ph ải tự động cập nhật để thay đổi giá trị tương ứng Nếu như chỉ có một điều khiển đơn luồng thì sự tính toán không thể thực hiện trong khi chương trình đang ch ờ nhập dữ liệu... Tại mỗi thời điểm một tiến trình được tạo ra, hệ điều hành phải tạo ra một không gian địa chỉ hoàn toàn độc lập Việc phân phối này nghĩa là khởi tạo các segment bộ nhớ, ví dụ như khởi tạo giá trị 0 cho một segment dữ liệu, sao chép chương trình k ết hợp vào một segment văn bản, và thiết lập một stack cho dữ liệu tạm thời Tương tự như vậy, việc chuyển đổi CPU giữa 2 tiến trình có thể khá tốn kém Ngoại . vụ thông tin phân tán. Kết nối qua 2 giao thức Các tầng, giao thức và các giao diện trong mô hình OSI 11 Giao thức TCP(Transmission Control Protocol) là giao thức truyền tin hướng liên kết có. (Stream Oriented Communication) Giao tiếp không đồng bộ liên tục Giao tiếp đồng bộ liên tục Giao tiếp không đồng bộ tạm thời Giao tiếp đồng bộ tạm thời dựa trên receipt Giao tiếp đồng bộ tạm thời. Truyền thông ở mức mạng máy tính Giao thức phân tầng: Mô hình OSI. Kết nối qua 2 giao thức khác nhau: giao thức hướng kết nối (Connection- Oriented protocol) và giao thức không kết nối (Connectionless-Oriented protocol). 10 Tầng

Ngày đăng: 18/05/2014, 17:25

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan