Lập trình chuyên nâng cao. Lập trình phân tán (Distributed computing

Similar documents
Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Bộ môn MMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM DIỆT VIRUS AVIRA

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

Cài đặt và cấu hình StarWind iscsi trên Windows. iscsi SAN là gì?

HƯỚNG DẪN SỬ DỤNG PLESK PANEL

Tài liệu hướng dẫn: Stored Procedure

Kích hoạt phương thức xa (RMI- Remote Method Invocation )

BÀI TẬP THỰC HÀNH LẬP TRÌNH WINDOWS C#

Chương 5. Network Layer. Phần 1 - Địa chỉ IPv4. Tài liệu : Forouzan, Data Communication and Networking

Nội dung chính của chương. Các công nghệ đĩa cứng Cấu tạo vật lý của đĩa cứng Cấu tạo logic của đĩa cứng Cài đặt đĩa cứng như thế nào?

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG CẬP NHẬT CHỨNG THƯ SỐ HOTLINE:

Internet Protocol. Bởi: Phạm Nguyễn Bảo Nguyên

Tình huống 1: PPPoE với Username và Password

CẤU TRÚC DỮ LIỆU NÂNG CAO

TÀI LIỆU THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

Chương 6. Transport Layer. Tài liệu : Forouzan, Data Communication and Networking

Chương 7. Application Layer. Tài liệu : Forouzan, Data Communication and Networking

Chương 5. Network Layer 19/09/2016 1

Entity Framework (EF)

STACK và QUEUE. Lấy STACK

GV: Phạm Đình Sắc or

PHÁT TRIỂN ỨNG DỤNG WEB

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

Giáo trình này được biên dịch theo sách hướng dẫn của Sun Light. Vì là hướng dẫn kỹ thuật, trong này những thuật ngữ kỹ thuật bằng tiếng Anh tôi chỉ

Bài Thực hành Asp.Net - Buổi 1 - Trang: 1

Hướng dẫn cài đặt FPT

TỔNG QUAN VỀ.NET VÀ C#

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

BÀI 1: VBA LÀ GÌ? TẠO MACRO, ỨNG DỤNG CÁC HÀM TỰ TẠO (UDF), CÀI ĐẶT ADD-INS VBA là gì?

GIẢI THUẬT ĐỊNH TUYẾN (ROUTING ALGORITHM)

I. Hướng Dẫn Đăng Nhập:

Cụ thể những công việc mà AndroidManifest.xml thực hiện: - Đặt tên cho Java package của ứng dụng.

Ôn tập Thiết bị mạng và truyền thông DH07TT - Lưu hành nội bộ (không sao chép dưới mọi hình thức)

Khoa KH & KTMT Bộ môn Kỹ Thuật Máy Tính

Mạng máy tính - Computer Network: Hệ. Giao thức - Protocol:

SIEMENS INDUSTRIAL NETWORKS

CHƯƠNG 2: CÁC ĐẶC ĐIỂM VỀ MÔI TRƯỜNG PHÁT TRIỂN (IDE)

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG HOSTING PLESK PANEL

LẬP TRÌNH WINDOWS FORM VỚI CÁC CONTROL NÂNG CAO (Các control trình bày dữ liệu dưới dạng danh sách)

KIẾN TRÚC MÁY TÍNH. Giảng viên: ThS. Phan Thanh Toàn. v

Phần 2. SỬ DỤNG POWERPOINT ĐỂ CHUẨN BỊ NỘI DUNG TRÌNH BÀY

Tạo Project với MPLAB

ĐỌC, GHI XML VỚI C# TRONG ADO.NET --- SỬ DỤNG VISUAL STUDIO

HƢỚNG DẪN TRIỂN KHAI KASPERSKY - MOBILE DEVICE MANAGEMENT

HỢP ĐỒNG MUA BÁN HÀNG HÓA QUỐC TẾ GV: NGUYỄN THỊ BÍCH PHƯỢNG

Bài 10: Cấu trúc dữ liệu

LÂ P TRI NH WEB ASP.NET

SIMULATE AND CONTROL ROBOT

Môn Học: Cơ Sở Dữ Liệu 2. Chương 3 LẤY DỮ LIỆU TỪ NHIỀU NGUỒN

BÀI 6 LÀM VIỆC VỚI THÀNH PHẦN MỞ RỘNG CỦA CSS3

Parallels Cloud Server 6.0

Bài tập lớn số 1. Giả lập bộ định thời

Online Appointment System will work better with below conditions/ Hệ thống đặt hẹn online sẽ hoạt động tốt hơn với điều kiện sau đây:

BELGIUM ONLINE APPOINTMENT

Mô hình dữ liệu quan hệ (Relational data model)

HƯỚNG DẪN SỬ DỤNG ĐẦU GHI H.264 DVR VISION VS (4CH - 8CH - 16CH)

Bài 10. Cấu trúc liên nối. khác nhau được gọi là cấu trúc liên nối. nhu cầu trao đổi giữa các module.

Lecture 12. Trees (1/2) Nội dung bài học:

PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG NÂNG CAO

BẢO MẬT TRONG SQL SERVER

MA NG MA Y TI NH (Computer Networks)

BÀI GIẢNG CHƯƠNG 3 GIAO TIẾP KẾT NỐI SỐ LIỆU

Nhấn nút New để tạo 1 biến mới Trang 17

Tìm hiểu Group Policy Object và các ví dụ

Exceptions. Outline 7/31/2012. Exceptions. Exception handling is an important aspect of objectoriented. Chapter 10 focuses on:

NHẬP MÔN LẬP TRÌNH KHOA HỌC DỮ LIỆU. Bài 10: Thư viện Pandas (2)

Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MINICHAT. Bài giảng 3. Trang1. Khoa Khoa Học Và Kỹ Thuật Máy Tính

Đa ngôn ngữ (Internationalization) trong Servlet

ĐỀ CƯƠNG BÀI GIẢNG HỌC PHẦN: AN NINH MẠNG

Lab01: M V C Lưu ý: Để thực hành, các bạn phải cài Visual Studio 2013 trở lên mới hỗ trợ MVC5.

dụng một chính sách, điều này giúp dễ dàng quản lý và cung cấp tính năng Load Balancing (cân bằng tải) phục vụ tốt hơn các yêu cầu của tổ chức.

HƯỚNG DẪN CÁCH SỬ DỤNG WINDOWS MOVIE MAKER

MỤC LỤC. Giáo trình Thiết kế web Trang 1

ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN

1 Bước 1: Test thử kit LaunchPad.

B5: Time to coding. Tới thư mục src/example.java và thay đổi nội dung file như sau: Mã: package at.exam;

FCAPS. nhìn từ quan điểm ITIL. Công cụ ManageEngine và ứng dụng khung ITIL trong các tổ chức, doanh

NHÚNG. Vi ñiều khiển BM Kỹ Thuật ðiện Tử - ðh Bách Khoa TP.HCM 2

BÀI THỰC HÀNH SỐ 1. Quản trị tập tin: 1/ Tạo các thư mục sau: Bài tập thực hành linux Linuxlab. bt1 bt11 bt111. bt121. bt12. bh1 bh11 bh111.

Bài 13: C++11. EE3490: Kỹ thuật lập trình HK1 2017/2018 TS. Đào Trung Kiên ĐH Bách khoa Hà Nội

Quản trị Linux nâng cao. Tháng 9/2013

BÀI LAB ĐỔI TÊN DOMAIN

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

Khoa Công Nghệ Thông Tin Trường Đại Học Cần Thơ. Những hỗ trợ tiên tiến khác của SQL. Đỗ Thanh Nghị

Qu n ả tr h ố g t p ậ tin

Chủ đề 7: Triển khai và Bảo trì. COMP1026 Introduction to Software Engneering CH7-1 HIENLTH

Dọn "rác" Windows 7 vào dịp cuối năm

Kỹ thuật thu nhỏ đối tượng trong Design (Layout)

Tạo repository mới. The working tree. The staging index. Lệnh git init tạo một repository loại git. tại thư mục hiện tại: $ git init

LAB IP SLA Bài 1. Bùi Quốc Kỳ ***

Bài tập căn bản Visual Basic.Net Vòng lặp. txtn. txtketqua. btntinh. txtn. txtketqua. btntinh. Trang 1

LINQ TO SQL & ASP.NET

BÀI 6a LẬP TRÌNH ĐA TUYẾN (MULTI THREAD)

Các kiểu định địa chỉ họ MSC-51

Google Search Engine. 12/24/2014 Google Search Engine 1

Nội dung. Thêm về Java 2. Nguyễn Việt Hà

Cập nhật ResultSet trong JDBC

Cấu hình Router FTTH ---X---

HƯỚNG DẪN QUẢN TRỊ HỆ THỐNG

Transcription:

Mục tiêu Lập trình chuyên nâng cao Chương V Lập trình phân tán RMI Biên soạn: ThS Nguyễn Văn Lành Hoàn thành chương nầy, sinh viên phải đạt được những điểm sau: Nhận thức được các thách thức và giải pháp của lập trình phân tán. Hiểu kiến trúc và cơ chế hoạt động RMI Áp dụng thành thạo các bước lập trình, triển khai ứng dụng RMI Hiểu và vận dụng tốt cơ chế truyền đối số RMI 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 2 Tổng quan về Lập trình phân tán Lập trình phân tán (Distributed computing Phát triển ứng dụng trong đó mã chương trình, dữ liệu & các tác vụ được phân tán trên nhiều máy Hai lớp bài toán của lập trình mạng: Truyền dữ liệu Gọi thi hành một chương trình từ xa Cơ chế lập trình phân tán hướng đối tượng cho phép Đóng gói và kế thừa các dịch vụ kết nối mạng phức tạp. Tạo ra các đối tượng phân tán giao tiếp lẫn nhau trên các máy tính nối mạng tương tự như trên máy cục bộ. Tổng quan Các thách thức của lập trình ứng dụng phân tán Đa môi trường phức hợp. Đa ngôn ngữ Triển khai & cài đặt ứng dụng Quản lý bộ nhớ Giao tiếp mạng Chuẩn hóa. 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 3 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 4

Tổng quan Các công nghệ phân tán chọn lựa giải pháp phát triển gồm các thành phần sau: Cơ chế xử lý truyền thông dựa trên chuẩn giao thức TCP/IP Lược đồ triển khai các remote objects Cơ chế gởi và nhận (marshaling and unmarshaling) các đối tượng dữ liệu từ xa Cơ chế tạo interface cho các đối tượng từ xa trên không gian nhớ cục bộ của chương trình Cơ chế lưu vết của các tham chiếu hợp lệ đến đối tượng từ xa. 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 5 Tổng quan về Distributed Objects Các công nghệ lập trình đối tượng phân tán Common Object Request Broker Architecture (CORBA) phát triển bởi Object Management Group (OMG). Distributed Component Object Model (DCOM) của Microsoft. Remote Method Invocation (RMI) giải pháp Java của Sun. The developer is completely insulated from the network issues. 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 6 CORBA Tổng quan về RMI Kiến trúc CORBA Object Request Broker(ORB) 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 7 RMI (Remote Method Invocation) là cơ chế cho phép object trên một JVM(Java virtual machine) gọi thi hành phương thức trên object bố trí ở JVM khác. Quan hệ giữa 2 objects được xác định bởi 1 interface kế thừa Remote interface. Trên máy client, sử dụng 1 thành phần đại diện(proxy) gọi là stub để truyền các thông điệp từ máy cục bộ đến remote object. Stub chuyển lời gọi hàm,bao gồm cả đối số đến remote object. 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 8

Tổng quan về RMI.. Trên máy server, dịch vụ RMI nhận message và chuyển đến đối tượng liên quan được triệu gọi Trong JDK 1.1, dịch vụ này thực hiện bởi skeleton. Quá trình đóng gói lời gọi hàm cùng với đối số trong giao tiếp RMI gọi là marshalling. Tại remote server, quá trình phân rã gói tin và chuyển thành lời gọi hàm trên remote object gọi là unmarshalled Kiến trúc RMI Kiến trúc RMI 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 9 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 10 Kiến trúc RMI Gồm 3 layer: stub/skeleton layer: xử lý truyền thông với remote objects, đóng vai trò như 1 người trung gian đại diện remote reference layer: xử lý các vấn đề kết nối, nhân bản remote object.. transport layer. Hạ tầng RMI Gồm 5 packages và 3 chương trình tiện ích. java.rmi: client-side RMI classes, interfaces. java.rmi.server : server-side RMI classes, interfaces. java.rmi.registry: classes quản lý RMI naming java.rmi.dgc: garbage collection phân tán. java.rmi.activation: các class dùng cho activate-ondemand RMI services. Rmic: trình biên dịch stubs and skeletons. Rmiregistry: Tiện ích server cung cấp dịch vụ naming RMI: liên kết remote object với 1 định danh. Rmid: Tiện ích server hổ trợ RMI activation framework. 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 11 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 12

Phát triển ứng dụng RMI Các thành phần của 1 ứng dụng RMI: Remote interface: định nghĩa các hàm các tác vụ cung cấp bởi remote object public interface Verifyer extends java.rmi.remote Lớp thực thi remote interface public class VerifyerImpl extends UnicastRemoteObject implements Verifyer rmiregistry quản lý việc đăng ký tên các objects. VerifyerImpl ccv = new VerifyerImpl(); Naming.bind("rmi://myserver/creditcard", ccv; Ứng dụng client: tìm kiếm và gọi hàm remote Ứng dụng server: cài đặt & triển khai R.O 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 13 Remote Interfaces Cú pháp : remote interface kế thừa interface java.rmi.remote. Mỗi phương thức remote phải khai báo throws java.rmi.remoteexception cùng với các application-specific exceptions khác Một lớp Java trở thành 1 remote object (đối tượng có thể triệu gọi từ xa) khi khai báo kế thừa Remote interface Cơ chế truyền thông RMI dành cho remote object được áp dụng. 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 14 Lớp thực thi remote objects Lớp thực thi để khởi tạo remote object phải thực thi 1 hoặc nhiều remote interfaces. Lớp thực thi thể hiện các hành vi triệu gọi từ xa theo 1 trong 2 cách Khai báo kế thừa RemoteObject, thường là UnicastRemoteObject Liên kết object với 1 kết nối mạng thông qua triệu gọi hàm exportobject(): public static RemoteStub exportobject(remote obj) throws RemoteException Stub & skeleton Giao tiếp giữa client và remote object (server) thực hiện qua trung gian stub & skeleton Được tạo ra khi biên dịch lớp thực thi sử dụng tiện ích rmic RMI compiler. Từ phiên bản Java 2 không cần sử dụng skeleton Biên dịch với đối số rmic V1.2 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 15 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 16

Cài đặt phía server của RMI Ứng dụng phía server Khởi tạo và cài đặt remote objects.. Khởi tạo và cài đặt security manager Đăng ký tên remote objects với RMI registry Phương thức rebind() liên kết R.O với 1 tên hoặc thay thế định danh đã có Trong quá trình khởi tạo server, UnicastRemoteObject khởi tạo cổng kết nối (exporting), sẵn sàng tiếp nhận các yêu cầu kết nối từ client tại cổng mặc định 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 17 Ứng dụng phía client của RMI Gọi hàm java.rmi.naming.lookup() để tìm kiếm remote objects theo tên đã đăng ký. Sử dụng định dạng URL rmi://host:port/name để tham chiếu đến 1 remote object rmi://192.168.0.172:8099/blaster liên kết đến remote object đặt tên là blaster cài đặt tại địa chỉ 192.168.0.172 ở cổng 8099. - cổng mặc định là 1099 Phương thức lookup trả về 1 tham chiêú đến stub 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 18 RMIRegistry RMIregistry là dịch vụ danh bạ, dùng cho đăng ký và tìm kiếm remote objects. Lớp LocateRegistry được sử dụng để tìm kiếm tham chiếu đến remote object registry hoặc để tạo remote object registry. java.rmi.naming được sử dụng để đăng ký (binding, registering) tên, và tìm kiếm(looking up) RO trên danh bạ registry. 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 19 Security manager Chức năng: Bảo vệ hệ thống từ các truy xuất tài nguyên trái phép Xác định liệu mã nguồn download có thực hiện đúng các quyền được qui định. Các ứng dụng RMI phải cài đặt security manager khi thực hiện các triệu gọi từ xa, System.setSecurityManager(new RMISecurityManager()); policy file được sử dụng để qui định quyền truy xuất hệ thống của application/applet 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 20

Biên dịch ứng dụng RMI Biên dịch các remote imterface và lớp thực thi dùng javac Tạo stub và skeleton bằng trình biên dịch rmic từ các lớp thực thi. Biên dịch chương trình client và server Đóng gói các client class thành file.jar phục vụ download từ xa.. Cài đặt ứng dụng RMI Phía Server Remote interface Lớp thực thi Stub & Skeleton class Ứng dụng Server Phía Client Remote interface Stub class Ứng dụng Client 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 21 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 22 Chạy chương trình RMI Truyền đối số trong RMI Khởi động rmiregistry trên server. Nên bố trí và khởi động rmiregistry trên thư mục chứa ứng dụng server - nếu classpath dành cho ứng dụng server chưa khai báo Nên khởi động rmiregistry từ bên trong ứng dụng phía server HIGHLY RECOMMENDED. Chạy chương trình server. Chạy chương trình client. Network services & TCP/IP must be installed and running 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 23 Primitive parameters Cơ chế truyền giá trị: sao chép bản sao của biến được truyền Object Parameters Truyền object không phải là địa chỉ tham chiếu đến object Tất cả đối số truyền kiểu tham chiếu (objects) trong RMI phải thực thi Serializable, (so that it can transfer into a linear format that can be sent over the network) 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 24

Truyền đối số trong RMI.. Remote parameter Khi truyền đối số là remote object từ server đến client, client sẽ nhận được stub tương ứng với remote object trên server. RMI kiểm tra các remote parameters thông qua khai báo thực thi Remote interface của đối số. Remote Object Activation Activation: Cơ chế kích hoạt remote object khi có triệu gọi từ client thay vì nạp sẵn trong bộ nhớ trên server Được thực hiện bởi tiện ích rmid chạy trên phía server. Activatable server object phải kế thừa java.rmi.activation.activatable hoặc gọi hàm Activatable.exportObject(). 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 25 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 26 Giải pháp thiết kế RMI Các vấn đề cần xem xét Tranh chấp đa người dùng trên RMI server Các hàm remote có trạng thái - lời gọi hàm và thực thi có xem xét định danh user Performance và scalability: tốc độ và qui mô mở rộng ứng dụng Giải pháp thiết kế RMI.. OO Design Strategy Dữ liệu của ứng dụng nên được thiết kế theo Object-Oriented Model. Các giải pháp đa người dùng có trạng thái Sử dụng synchronized methods Sử dụng logon remote object, yêu cầu người dùng đăng nhập trước khi được cấp quyền truy xuất một thread object với remote object dành riêng cho mỗi user. 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 27 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 28

Giải pháp thiết kế RMI.. Tạo thread pool dùng cho đăng nhập nhằm hạn chế quá tải khi đa người dùng đăng nhập đồng thời. Tạo remote object pool: Tạo multi- thread logon remote object pool và remote object pool Tóm tắt Các vấn đề của 1 ứng dụng phân tán Kiến trúc và nguyên lý hoạt động của ứng dụng RMI Các vấn đề kỹ thuật lập trình RMI Các thành phần Biên dịch và cài đặt Truyền đối số Các giải pháp thiết kế ứng dụng RMI 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 29 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 30 Tài liệu tham khảo Ebook : Addison Wesley - Java Network Programming and Distributed Co.pdf Chương 11 Google search: RMI tutorial RMI là nền tảng cho công nghệ lập trình ứng dụng phân tán đa tầng - giải pháp công nghệ J2EE của Java Bài tập thực hành So sánh ưu nhược điểm của lập trình RMI so với lập trình Socket Mô tả vai trò của stub và skeleton trong thành phần của ứng dụng RMI Cơ chế truyền đối số trong RMI Chạy các ví dụ Chat & Messages Phát triển ứng dụng Ebank theo RMI: KTGK Cơ sở dữ liệu SQL Server Cung cấp các tác vụ đăng nhập, giao dịch Giao diện Swing 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 31 30/03/14 Bài giảng dành cho sinh viên ngành Công nghệ Thông tin 32