Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
1,01 MB
Nội dung
Học Viện Cơng Nghệ Bưu Chính Viễn Thơng Cơ sở Thành phố Hồ Chí Minh Xây dựng hệ thống kiểm tra kết xổ số Java Corba Middleware Giảng viên : TS Tân Hạnh Sinh viên : Trần Tuấn Vũ Lớp : D07THM1 MSSV : 407170078 Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware Chương I : TĨM TẮT VÀ GIỚI THIỆU I Tóm tắt: Nếu bạn lập trình viên, bạn hiểu công việc nặng nhọc phải viết mã lệnh cho chương trình Cách thiết kế chương trình theo mơ hình thủ tục ( topdown procedural hay thủ tục trên-xuống) thay mơ hình hướng đối tượng khoa học hiệu Lập trình hướng đối tượng chứng minh tính đắn sức mạnh việc thiết kế hệ thống lớn dễ dàng việc nâng cấp bảo trì mã lệnh Ngày nay, ngơn ngữ lập trình hỗ trợ thấm nhuần tư tưởng đối tượng Mở đầu Smalltalk, C++, Object Pascal, Delphi, Visual Basic tiếp đến hệ quản trị sở liệu Visual Foxpro, Access, SQLserver, Oracle… bạn thấy Java ngôn ngữ đời sau lại đối tượng Trong Java thứ, nơi, khái niệm qui đối tượng Tuy nhiên lại nảy sinh bất đồng lớn ngơn ngữ lập trình Đó đối tượng thiết kế ngơn ngữ sau biên dịch mã nhị phân (binary) có mã lệnh tương ứng ngơn ngữ có khả truy xuất đối tượng Đối tượng viết C++ không dễ dàng truy xuất từ mã lệnh Delphi hay Visual Basic cách tự nhiên Ngay đối tượng viết Java khó lịng gọi từ ngơn ngữ lập trình khác (mặc dù có số kỹ thuật sử dụng thư viện liên kết động DLL, gọi hàm thư viện native… khơng phải giải pháp tồn vẹn) Java đời với mong muốn ứng dụng hay đối tượng viết Java chạy lúc nơi hệ điều hành (và nói Sun Microsystem thực mong ước với tiếng Java) Tuy nhiên, Java thay ngơn ngữ lập trình khác Khơng thể bắt lập trình viên giới chuyển sang viết Java có hàng trăm triệu dịng mã lệnh chương trình thư viện thiết kế xây dựng từ ngôn ngữ “tiền bối” khác (điển hình C/C++ hay Pascal) hoạt động hiệu Tuy nhiên nhà lập trình ln mong muốn tìm tiếng nói chung cho tất ngơn ngữ lập trình có Và Corba đời Corba coi “quốc tế ngữ” giới ngơn ngữ lập trình Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware II Giới thiệu: Chuẩn CORBA tổ chức OMG (Object Management Group) quản lý phát triển Đây hiệp hội lớn nhà phát triển, sản xuất ứng dụng phần mềm giới, có gần 1.000 thành viên Chuẩn CORBA đưa kiến trúc đối tượng phân tán với đặc tả ứng dụng cho nhiều lĩnh vực khác nhau, nhiều khác nhiều ngôn ngữ lập trình khác Vì tính trung lập nó, CORBA hỗ trợ rộng rãi, đặc biệt hệ thống thông tin thương mại, phần mềm giao dịch kinh doanh dịch vụ viễn thông Tuy nhiên, tính độc lập dẫn đến nhiều lý mà CORBA không thực mạnh hệ thống ứng qui mô vừa nhỏ CORBA (Common Object Request Broker Architecture) (tạm dịch Kiến trúc môi giới gọi đối tượng thông dụng) kiến trúc chuẩn cho hệ đối tượng phân tán Nó cho phép tập đối tượng hỗn hợp, phân tán siêu tương tác với chuẩn quan trọng nhằm cho phép thực kiến trúc "client – sever" theo phương pháp tiếp cận hướng vật, hệ thống máy khác phân tán, phép nhiều nhóm sản xuất phần mềm khác cộng tác Chuẩn CORBA đầu quan niệm với phần mềm 'cố định' hoạt động phân tán mạng cục Chuẩn vừa đời lúc xuất ngôn ngữ Java công nghệ tác tử, cho phép cần dùng thân trạm phục vụ thông qua mạng nạp xuống vào máy khách tác tử ‘Client’, việc chuẩn hố giao diện "client-sever" mức độ ứng dụng trở nên đơn giản Thêm nữa, với bùng nổ Internet mở rộng CORBA để xử lý phân tán mạng tầm rộng qua Internet trở thành quan trọng, phải kết hợp CORBA với ngơn ngữ giao diện XML Internet, XML triển khai để mở rộng HTML mà quen thuộc, áo HTML chật Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware Hình 1: Cấu trúc mơ hình Corba Hình minh họa cấu trúc mơ hình CORBA, phận trừu tượng trung gian mang tên Object Request Broker (ORB) giữ vai trò quan trọng (broker) ORB cho phép khách hàng (client) sử dụng dịch vụ đối tượng phục vụ (server) mà không cần biết cụ thể dạng thực hiện, triển khai vị trí cài đặt đối tượng phục vụ Kiến trúc thực theo mẫu thiết kế trình bày phần trước Ưu nhược điểm CORBA lập trình viên chọn ngơn ngữ, tảng phần cứng, giao tiếp mạng công nghệ để phát triển mà thỏa mãn tính chất CORBA Tuy nhiên, CORBA có số nhược điểm là: ngơn ngữ lập trình bậc thấp, phức tạp, khó học, cần đội ngũ phát triển có kinh nghiệm Ngồi đối tượng CORBA khó tái sử dụng Báo cáo đề tài mơn Hệ Thống Phân Tán – Java Corba Middleware Chương II : CORBA I Mục tiêu, đặc trưng thiết kế CORBA Các mục tiêu CORBA: Khi xây dựng kiến trúc Corba, nhà thiết kể mong đáp ứng số đặc điểm sau: Khả độc lập về: - Nền phần cứng (hardware platform) - Ngơn ngữ lập trình - Hệ điều hành - Mơi giới yêu cầu đối tượng cụ thể - Thứ bậc phân tán đối tượng Tính suốt liên kết Corba: - Định vị đối tượng suốt - Cho phép đối tượng tạo lời triệu gọi nhận kết trả lại cách suốt - Tương tác với đối tượng từ xa giống đối tượng cục bộ: Giữa host khác + Các môi trường phân tán không đồng - Corba sử dụng chế môi giới yêu cầu đối tượng ORB để định vị đối tượng Corba kiến trúc mở: Tại sao? - IDL – Ngôn ngữ định nghĩa giao diện hạt nhân ngôn ngữ CORBA - Định nghĩa giao diện IDL ngôn ngữ phát triển ứng dụng C++, Java,… sử dụng để triệu gọi đối tượng từ xa ngôn ngữ, – platform suốt định vị đối tượng ( Các ngôn ngữ từ xa khơng cài đặt ngơn ngữ giống đối tượng cục bộ) Tính đồng nhất: Các đối tượng Corba có tính đồng nhất: - Server Corba chứa nhiều giao diện với nhiều trường hợp - Tham chiếu đối tượng xác định trường hợp cụ Tham chiếu đối tượng Corba thực liên tục: Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware - Một số đối tượng Corba tồn thời sử dụng Client - Một số đối tượng Corba chia sẻ tồn lâu dài theo quy trình nghiệp vụ sách định đóng gói “destroy” đối tượng Các đối tượng Corba định vị (cấp phát) lại: - Tham chiếu đối tượng không quan tâm đến vị trí đối tượng - Đối tượng Corba định vị lại Amid chạy lại chương trình - Thực thi Corba hỗ trợ giao dịch định vị lại Corba hỗ trợ để đối tượng phục hồi, chép lại tham chiếu đối tượng giống vùng nhớ khác Đặc trưng thiết kế CORBA: IDL-interface Object CORBA làm việc với giao diện: - Tất đối tượng Client truy cập đối tượng CORBA thông qua giao diện - Sự phân chia Interface implementation cho phép tạo đa thực thi –implementations cho giao diện Đặc trưng Server CORBA: - Khi nói đến server ta phải nói đến quy trình server máy server - Một nhiều q trình server CORBA chạy máy - Mỗi trình server CORBA chứa nhiều trường hợp đối tượng CORBA, nhiều giao diện CORBA Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware Process A Process B Machine X Process C Machine Y Đối tượng Corba định vị đến q trình, trình khác máy trình khác máy khác II Kiến trúc CORBA: Mơ hình kiến trúc CORBA CORBA cịn gọi ngôn ngữ đặc tả giao tiếp (IDL – Interface Description Language) Mô tả chức đối tượng thơng qua hàm, phương thức, thuộc tính… Khơng chứa cài đặt mã lệnh Đặc tả đối tượng dựa khái niệm interface Java Trong kiến trúc chung Corba ORB (Object Request Broker) thành phần trọng tâm hạt nhân ORB coi highway ( xa lộ hay cịn gọi băng thơng) thực thi tất vấn đề truyền thông CORBA Khi ứng dụng Client muốn sử dụng dịch vụ Server cung cấp cần: Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware - Thứ nhất: thực tham chiếu đến đối tượng Server cung cấp - Thứ hai: xử lý yêu cầu tham chiếu đối tượng, cho phép thành phần ứng dụng kết nối lẫn Nói chung nhiệm vụ ORB là: - Sắp xếp thứ tự liệu - Quản lý định vị đối tượng - Truyền tải yêu cầu đến đối tượng Server - Trả lại kết cho Client Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware Hình biểu diễn yêu cầu Một client giữ tham chiếu đối tượng đến đối tượng phân tán Tham chiếu đối tượng định kiểu giao tiếp Trong hình tham chiếu đối tượng định kiểu giao tiếp Rabbit Object Request Broker (ORB), đưa yêu cầu đến đối tượng trả số kết cho client Trong hình yêu cầu jump trả tham chiếu đối tượng định kiểu giao tiếp AnotherObject III IDL(Interface definition language - Ngôn ngữ định nghĩa giao diện) Sơ lược IDL : + IDL(Interface Definition Language) ngôn ngữ đặc tả interface IDL khơng có lệnh, có mơ tả hàm, kiểu liệu, khai báo để đặc tả đối tượng CORBA dùng IDL để cài đặt client/server ngơn ngữ khác có hỗ trợ CORBA C, C++, COBOL, Ada, Java Mỗi ngơn ngữ hỗ trợ CORBA có trình chuyển đổi IDL sang ngơn ngữ + CORBA dùng IDL để viết Interface, sau dùng trình biên dịch để dịch sang ngôn ngữ cụ thể, đồng thời tạo lớp stub, skel số lớp hỗ trợ CORBA Chúng ta xem xét ví dụ sử dụng CORBA Đầu tiên định nghĩa IDL cho đối tượng từ xa: interface ExampleCORBA { attribute string s; }; Bây biên dịch IDL dùng lệnh idlj Tham số -fall phát sinh mã phía máy client server idlj -fall ExampleCORBA.idl Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware Sau biên dịch IDL, phát sinh số tập tin sau: - ExampleCORBAStub.java mã stub - ExampleCORBA.java giao diện từ xa - ExampleCORBAHolder.java mã hỗ trợ - ExampleCORBAHelper.java mã hỗ trợ - ExampleCORBAOperations.java mã hỗ trợ - ExampleCORBAPOA.java mã skeleton lớp cha thừa kế cài đặt mã bến phía máy chủ Một ví dụ khác IDL: Đặc tả đối tượng Calculator ngôn ngữ IDL CORBA Tạo file Calculator.idl interface Calculator { long addNumber ( in long x, in long y ); }; Để chuyển file đặc tả sang ngôn ngữ lập trình khác dùng sau: idl2cpp Calculator.idl // chuyển sang C++ idlj Calculator.idl // chuyển sang java Kết có tập tin CalculatorOperations.java sau: public interface CalculatorOperations { int addNumber(int x, int y); } // interface CalculatorOperations Bước cài đặt hàm addNumber() lập trình viên thực CORBA giúp triệu gọi hàm addNumber() từ đối tượng CalculatorOperations Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware 1.Tính mở Khả bổ sung, mở rộng phần cứng, chức không ảnh hưởng tới phần khác hệ thống cũ 2.Tính tương tranh Nhiều tính trình tồn máy tính đơn gọi tính tương tranh Ở hệ phân tán dễ xảy xử lý song song do: - Nhiều người sử dụng đồng thời gọi lệnh, tương tác với chương trình ứng dụng - Nhiều tiến trình chạy server tiến trình xử lý yêu cầu Các truy cập, cập nhật tương tranh phải thống 3.Khả mở rộng Khả mở rộng quy mô hệ thống cách dễ dàng mà phải thay đổi hệ thống cũ cách Đây đặc tính quan trọng q trình phát triển nhanh mạng interNetwork 4.Tính chịu lỗi Các hệ thống bị lỗi, lỗi xảy phần cứng hay phần mềm dẫn đến chương trình chạy sai dừng trước hồn thành u cầu Tính chịu lỗi cho phép phần hoạt động xảy lỗi nhỏ, tính chịu lỗi ln kèm với phục hồi liệu yêu cầu phục hồi liệu thời gian sơm Thiết kế hệ thống mày tính có khả chịu lỗi có hai cách tiếp cận: - Tăng độ dư thừa nguyên: Giải pháp tăng độ đề phòng hệ thống xảy lỗi - Giải pháp phần mềm: Phầm mềm có khả lưu cách thường xuyên, có khả phát lỗi sửa lỗi sớm Hệ phân tán cung cấp mức độ cao tính thường trực khả chịu lỗi phần cứng Khi trạm bị hỏng người sử dụng di chuyển tới trạm khác để làm việc 5.Tính suốt(Transparency) Khả che dấu rời rạc hệ thống Hệ thống ISO có loại suốt: - Trong suốt lỗi (Failure Transparency) - Trong suốt vị trí (Location transparency) - Trong suốt truy cập (Access Transparency) - Trong suốt chia sẻ tài nguyên (Concurency transparency) - Trong suốt dịnh vị lại ( Relocation transparency) 15 Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware - Trong suốt nhân (Replication Transparency) - Trong suốt di trú (Migration Transparency) - Trong suốt khả di chuyển tài nguyên (Persistence Transparency) Nhược điểm hệ phân tán Tính phức tạp: Hệ phân tán phức tạp hệ tập trung Tính bảo mật: Hệ phân tán dễ bị công từ bên ngồi Khả quản lý: Hệ phân tán địi hỏi hệ quản lý hiệu Khơng dự đốn trước: Không thể biết phản hồi tổ chức hệ thống mạng trả II CORBA mô hình phân tán: Chương trình mơi giới trung gian ORB( Object Request Broker) Java dựa vào máy ảo để tạo nên tiếng nói chung tất ứng dụng viết ngôn ngữ Java Tương tự Corba cần có tảng để liên kết đối tượng Các đối tượng sau xây dựng ngơn ngữ lập trình khác muốn triệu gọi phải thơng qua trình mơi giới trung gian Corba gọi ORB (Object request broker : Trình mơi giới yêu cầu đối tượng) ORB dịch vụ phân tán thực thi yêu cầu đến đối tượng xa Nó định vị đối tượng xa mạng, gửi yêu cầu đến đối tượng, chờ kết sẵn sằng gửi kết trở lại cho client ORB thực thi vị trí suốt Chính xác chế yêu cầu giống sử dụng client đối tượng CORBA mà khơng quan tâm đến vị trí đối tượng Nó nằm xử lí với client, nơi ORB thực thi ngơn ngữ lập trình độc lập với yêu cầu Client đưa yêu cầu viết ngơn ngữ lập trình khác với ngơn ngữ lập trình viết đối tượng CORBA ORB thực việc dịch cần thiết ngôn ngữ lập trình Các liên kết ngơn ngữ định nghĩa cho tất ngơn ngữ lập trình thơng dụng Như cụ thể ORB gọi phương thức đối tượng cài đặt ngôn ngữ khác nào? Đó nhờ ngơn ngữ đặc tả IDL mà ta tìm hiểu Các đối tượng cho dù cài đặt ngơn ngữ tn thủ theo đặc tả IDL xem đối tượng CORBA Tuy không cài đặt thân đối tượng dựa vào đặc tả IDL ORB biết tên phương thức cần gọi, kiểu đối số truyền cho phương thức, trị trả phương thức gọi Với thông tin này, ORB triệu gọi phương thức mà đối tượng cài đặt (Hình 4) ORB hồn 16 Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware tồn suốt (transparent) với lập trình viên (hay người sử dụng đối tượng) Bạn gọi đối tượng Java C++ hay Delphi hoàn toàn theo cách tự nhiên bạn gọi đối tượng xây dựng từ ngơn ngữ gốc Triệu gọi đối tượng CORBA thơng qua trình trung gian ORB Khả “trong suốt” không giới hạn đối tượng máy mà mở rộng đối tượng nằm đâu giới thông qua kết nối mạng Đối tượng bạn viết Java đặt máy Việt Nam gọi đối tượng Châu Mỹ (“bên đại dương”) cài đặt C++ Với khả trên, CORBA mang lại điều kỳ diệu cho giới lập trình CORBA mở cửa để lập trình viên xích lại gần hơn, tạo nên thể thống mơ hình lập trình hướng đối tượng ORB giao tiếp với đối tượng thông qua thông tin đặc tả IDL Cơ chế làm việc ORB: ORB dùng khái niệm lớp trung gian _Stub _Skel tương tự cách làm việc đối tượng RMI Thật _Stub _Skel hai lớp trung gian sinh từ trình biên dịch dựa vào đặc tả IDL Bạn khơng cần phải viết mã lệnh cho lớp _Stub _Skel Đây công việc nhà cung cấp thiết kế ORB Hình hoạt động trình mơi giới ORB liên lạc trình khách đối tượng CORBA 17 Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware máy chủ Thường việc cài đặt đối tượng CORBA máy chủ triệu gọi đối tượng từ trình khách thực sau: Phần cài đặt đối tượng CORBA máy chủ Đặc tả đối tượng X ngôn ngữ IDL CORBA Chuyển đặc tả X thành mô tả ngôn ngữ cụ thể (chẳng hạn dùng trình biên dịch idlj.exe để chuyển đặc tả đối tượng X sang ngôn ngữ Java) Dựa vào đặc tả IDL yêu cầu trình biên dịch tạo lớp trung gian _Skel Cài đặt đối tượng X Java Phần kết nối với đối tượng từ máy khách Sử dụng đặc tả IDL đối tượng X yêu cầu trình biên dịch tạo lớp trung gian _Stub Tuỳ theo ngôn ngữ muốn viết máy khách mà ta sử dụng trình biên dịch thích hợp Ví dụ bạn muốn viết trình khách ngơn ngữ C++ bạn dùng trình biên dịch idl2cpp.exe để tạo lớp _Stub dành cho chương trình C++ triệu gọi đối tượng CORBA Khi trình khách triệu gọi đối tượng chủ, thực tế lời gọi chuyển qua lớp _Stub máy khách, gửi đến trình mơi giới ORB Trình ORB máy khách kết nối với trình ORB máy chủ (theo giao thức IIOP) Trình ORB máy chủ chuyển lời gọi cho lớp trung gian _Skel máy chủ Cuối đối tượng đối tượng CORBA máy chủ thực thi phương thức Giao tiếp trình khách đối tượng CORBA máy chủ Giao thức IIOP 18 Báo cáo đề tài môn Hệ Thống Phân Tán – Java Corba Middleware Giao tiếp ORB máy khách ORB máy chủ xây dựng dựa giao thức mang tên IIOP (Interoperate Internet Object Protocol) Giao thức tổ chức Corba đề xướng Nó làm cho tất đối tượng trò chuyện với mạng Internet cách dễ dàng Hiện giao thức IIOP dùng phổ biến chí cịn vượt trội giao thức triệu gọi từ xa RMI Java (Java gọi giao thức RMI mà máy ảo dùng trò chuyện với đối tượng xa JRMP- Java Remote Method Protocol) Truy cập Internet CORBA thông qua IIOP Quá trình phát triển ứng dụng sử dụng Corba : - Cài đặt interface (các đối tượng server) dựa việc kế thừa khung (skeleton) sinh dịch IDL - Việc phát triển phía client bắt đầu dựa tham chiếu (reference) đến đối tượng Việc gọi method đối tượng từ xa giống gọi phương thức cục Tuy nhiên cần ý số điểm gọi phương thức từ xa : - Thời gian gọi ( tính theo ms, 1000 lần chậm gọi cục bộ) - Việc giao tiếp client server phải tính đến exception ( Các exception phải phía client chấp nhận xử lý) 19