1. Trang chủ
  2. » Giáo Dục - Đào Tạo

tiêu chuẩn xây dựng framework

24 127 0

Đ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

Nội dung

Đại học Cơng nghiệp Hà Nội BỘ CƠNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CNTT  BÀI TẬP LỚN MÔN HỌC: NHẬP MÔN CÔNG NGHỆ PHẦN MỀM ĐỀ TÀI: TIÊU CHUẨN XÂY DỰNG FRAMEWORK Nhập môn Công nghệ phần mềm Page Đại học Công nghiệp Hà Nội MỤC LỤC Nhập môn Công nghệ phần mềm Page Đại học Công nghiệp Hà Nội LỜI NÓI ĐẦU Tổng quan framework 1.1 Framework gì? Ngày nay, trình xây dựng ứng dụng có nhiều khung làm việc (framework) xây dựng sẵn nhằm phục vụ cho mục đích chung giúp cho người lập trình viên phát triển ứng dụng cách nhanh chóng hiệu Vậy, chất framework gì, có đặc tính ? Theo cộng đồng Wikepedia, framework khái niệm phát triển phần mềm dùng để “cấu trúc hỗ trợ định nghĩa”mà dự án phần mềm khác xếp vào phát triển Thơng thường, framework bao gồm chương trình hỗ trợ, thư viện lập trình ngơn ngữ scripting nằm phần mềm khác để giúp phát triển gắn thành phần khác dự án phần mềm lại với Một framework có đặc tính sau : Một framework xây dựng sẵn lớp (class) thành phần (component), loại cung cấp mức trừu tượng (abstraction) cho vài khái niệm riêng biệt Một framework định nghĩa tập hợp cách thức để mức trừu tượng giải vấn đề Các thành phần framework phải có tính sử dụng lại Nhập mơn Cơng nghệ phần mềm Page Phản ánh Đại học Công nghiệp Hà Nội Mối quan hệ thành phần khác framework mơ tả hình vẽ sau: k ển Tri i kh ển Tri Th a kế Các tài liệu thiết kế Các giao diện Các lớp trừ t Các thành phần phần Là Các lớp Nhập môn Công nghệ phần mềm Page Đại học Công nghiệp Hà Nội Các thành phần framework mô tả sau: Các tài liệu thiết kế: Thiết kế framework bao gồm lược đồ lớp, viết văn ý tưởng nhà phát triển Các giao diện :Miêu tả đáp ứng bên lớp Các giao diện sử dụng để mơ hình vai trò khác hệ thống, ví dụ vai trò mẫu thiết kế Một vai trò đại diện cho nhóm phương pháp giao diện mà liên quan tới phương pháp khác Các lớ trừ tượng: Một lớp trừu tượng thực chưa đầy đủ nhiều giao diện Nó sử dụng để định nghĩa cách đối xử mà chung cho nhóm thành phần thực nhóm giao diện Các thành phần: Giống lớp, thành phần tích hợp với lớp khác Nếu thân lớp có API định nghĩa đầy đủ tập kết lớp biểu tổ hợp thành phần Một thành phần định nghĩa sau:” Một thành phần phần mềm đơn vị kết cấu với giao diện ghi rõ theo hợp đồng phụ thuộc ngữ cảnh rõ ràng Một thành phần phần mềm triển khai không phụ thuộc tổ hợp hãng thứ ba” Các lớp: Mức thấp framework Các lớp khác thành phần thực tế, API công khaci khơng đưa giao diện framework Một điển hình khác lớ sử dụng bời thành phần để đại diện cho chức năng, ví dụ người dùng framework thường khơng nhìn thấy lớp trừ họ làm việc với thành phần 1.2 Cái nhìn sơ qua frameworks Các frameworks có vai trò lớn phát triển công nghệ phần mềm Chúng cung cấp cách giải vấn đề, nâng cao chất lượng sản phẩm phần mềm, đem lại lợi ích to lớn cho doanh nghiệp Sự phát triển hệ mã lập trình, khía cạnh đồng nghĩa với việc frameworks phát triển Một phần mềm xây dựng dựa framework bao gồm mẫu thiết kế thành phần dựa khung xương framework Một định nghĩa frameworks phát biểu sau: “Frameworks khơng bao gồm lớp Thay vào đó, frameworks kèm với chức phong phú mạnh mẽ, mối liên kết lớp đối tượng cung cấp sở hạ tầng cho phát triển.” Nhập môn Công nghệ phần mềm Page Đại học Cơng nghiệp Hà Nội Hình Mối quan hệ ứng dụng frameworks Khi định lựa chọn frameworks để phát triển ứng dụng lập trình viên bắt buộc phải tuân theo khung mà frameworks tạo Các thành phần sử dụng phải framework cung cấp Các mẫu thiết kế cố định, lập trình viên phát triển ứng dụng dựa mẫu 1.3 Một số frameworks phổ biến Dưới danh sách frameworks phổ biến giới phát triển phần mềm sau: Microsoft Foundation Classes - MFC Java's Abstract Window Tool-kit – AWT ACE, an OO framework Reusable Objects (ORO) is an open-source framework Webridge Private Exchange is a horizontal framework designed for building B2B applications Medical Business Object framework is a vertical framework designed for medical domain Cách thức làm việc framework Nhập môn Công nghệ phần mềm Page Đại học Công nghiệp Hà Nội Framework làm việc cách cung cấp đặc tả rõ ràng tương tác mong đợi thành phần Ví dụ, thành phần trơng chờ từ thành hần khác nên cung cấp tới chúng? Một framework định nghĩa dịch vụ lựa chọn, cung cấp giải thích cho việc định nghĩa thành phần thành phần cung cấp Như mootjj thành phần có khả mở rộng lớn thành phần tương tác mạnh mẽ với thành phần có Các thành phần cộng tác với chi tiết, khía cạnh cụ thể vấn đề cân nhắc framework Các thành phần ứng dụng chứng minh tính tương thích với vấn đề khác, ngữ nghĩa liệu mà chúng chuyển qua Các phận phụ thuộc giới thiệu thành phần framework Sự thi hành thành phần framework xác định dịch vụ cung cấp dịch vụ cho thành phần khác 1.4 Phân biệt framework với khái niệm khác Một mẫu thiết kế khác với framework ba điểm Thứ nhất, mẫu thiết kế trừu tượng framework, framework bao gồm mã, có ví dụ mẫu thiết kế mã hóa Các mẫu thiết kế chí mơ tả mục đích, việc cân yếu tố khác để đạt kết hợp tốt kết thiết kế Điều không trường hợp cho framework Thứ hai, mẫu thiết kế kiến trúc nhỏ so với framework Do vậy, framework chứa số mẫu thiết kế, điều ngược lại Do vậy, mẫu thiết kế khơng có ảnh hưởng lớn tới kiến trúc ứng dụng Cuối cùng, framework chun mơn hóa so với mẫu thiết kế Các framework luôn liên quan đến miền ứng dụng cụ thể, mẫu thiết kế chung ứng dụng miền ứng dụng Các ngôn ngữ mẫu khác với framework theo cách mà ngôn ngữ mẫu miêu tả: làm để tạo thiết kế Trong đó, framework hướng đối tượng thiết kế Các ngôn ngữ mẫu bổ sung cho framework, chúng hướng dẫn kỹ sư phần mềm sử dụng framework nào, mô tả lại thiết kế Một ứng dụng hướng đối tượng khác với framework chỗ, ứng dụng mơ tả chương trình thực phức tạp mà thỏa mãn yêu cầu cụ thể Framework đạt tính ứng dụng khơng thể thi hành khơng bao gồm tương tác trường hợp ứng dụng cụ thể Các framework khác với thư viện lớp chỗ: chúng nhắm tới miền ứng dụng cụ thể Trong đó, thư viện lớp cung cấp cho người sử dụng thực trước thuật toán Các thư viện lớp thụ động, người sử dụng gọi phương pháp thư viện lớp để thực số hoạt động Trong framework định nghĩa khung cho ứng dụng thực tế điều khiển luồng điều khiển ứng dụng Các framework khác so với thư Nhập mơn Công nghệ phần mềm Page Đại học Công nghiệp Hà Nội viện lớp, chúng sử dụng thư viện lớp có sẵn để thực thuật toán chung cấu trúc liệu Các thành phần phần mềm ban đầu dự định thành phần chức riêng lẻ mà đầu tư từ nhà cung cấp tích hợp vào ứng dụng Các framework dường thành phần mà đầu tư từ nhà cung cấp nhiều framework sử dụng ứng dụng Tuy nhiên, điểm khác dễ nhận thấy chúng framework cung cấp rộng dịch vụ so với thành phần phần mềm Chúng có khả tùy biến nhiều hơn, có giao diện phức tạp điều quan trọng chúng thực định nghĩa cho họ ứng dụng diện rộng ứng dụng Do vậy, framework khó học nhà phát triển, hiểu hết framework có linh động cao với framework thiết kế tốt giảm nỗ lực cần bỏ để xây dựng ứng dụng tùy biến rõ rệt Trong framework thành phần kỹ thuật khác nhau, chúng nên xem sử dụng kỹ thuật cộng tác với Với framework sử dụng thành phần ứng dụng phát triển sử dụng framework chí tiện dụng thành phần Ví dụ, ứng dụng Visual C++ tạo với MFC framework, chí sử dụng thành phần ActiveX giao diện giống việc trao đổi với thành phần ActiveX đóng gói MFC framework Một ví dụ khác cho phụ thuộc lẫn framework thành phần việc sử dụng framework để tạo thành phần mới, ví dụ, framework Active Template Library (ATL) Microsoft sử dụng rộng rãi việc tạo thành phần ActiveX 1.5 Đặc điểm framework Một framework hướng đối tượng có đặc điểm sau: Khả modun hóa Khả sử dụng lại Khả mở rộng Sự đổi chiều Khả modun hóa: Các framework tăng cường khả modun hóa cách đóng gói chi tiết thực khơng chắn đằng sau giao diện chắn Khả giúp cho việc tăng cường chất lượng phần mềm cách cục hóa tác động thay đổi kiến trúc thực Sự cục hóa giảm nỗ lực yêu cầu để hiểu trì phần mềm có Nhập môn Công nghệ phần mềm Page Đại học Công nghiệp Hà Nội Khả sử dụng lại: Các giao diện chắn cung cấp bời framework tăng khả sử dụng lại cách định nghĩa ccs thành phần chung mà áp dụng để tạo ứng dụng Khả sử dụng lại framework thúc đẩy kiến thức miền ứng dụng ưu tiên nỗ lực nhà phát triển kinh nghiệm để tránh việc tạo làm hợp lệ lại giải pháp chung cho yêu cầu ứng dụng lặp lại thách thức thiết kế phần mềm Việc sử dụng lại thành phần thiết kế cải tiến đáng kể sản xuất chương trình, tốt cho việc nâng cao chất lượng, tính hiệu quả, độ tin cậy tính sẵn sàng phần mềm Khả mở rộng: Một framework tăng cường khả mở rộng cách cung cấp điểm nóng tường minh mà cho phép ứng dụng mở rộng giao diện chắn cách ứng xử vùng ứng dụng với thay đổi yêu cầu trường hợp ứng dụng số ngữ cảnh cụ thể Khả mở rộng framework cần thiết để đảm bảo điều chỉnh có tính thời gian dịch vụ tính ứng dụng Sự đổi chiều: Là đặc điểm kiến trúc thời gian chạy môt framework, thường gọi “Nguyên tắc Hollywood” – Đừng gọi cho chúng tôi, gọi cho bạn Kiến trúc cho phép ứng dụng hợp với quy tắc tiêu chuẩn cách điều chỉnh bước xử lý, đối tượng quản lý sựu kiện mà viện dẫn thơng qua chế gửi kích hoạt lại framework Khi kiện xảy ra, framework gửi lại kích hoạt cách viện dẫn phương pháp móc nối dụng cụ thể kiện Đổi chiều điều khiển cho phép framework định nghĩa tập phương pháp ứng dung cụ thể để đáp ứng với kiện bên 1.6 Phân loại Có nhiều cách phân loại framework khác Cụ thể : Về mặt mục đích sử dụng phân loại Application-specific framework kiểu mơ hình component plugin Joomla, mơ hình module template overriden Drupal Chúng tạo mơ hình phát triển với số cấp độ hỗ trợ dùng lại code mức thư viện ứng dụng chủ General purpose framework: Như Symfony, Zend, SolarPHP, Cake, Fuse Nó khơng có ứng dụng chủ Chỉ tư thiết kế, quản lý chu kì sống cấu trúc ứng dụng mức file systetem hay naming convention tất nhiên số thư viện hỗ trợ phát triển ứng dụng phong phú Phân loại miền vấn đề ứng dụng Web framework: CakePHP, Fuse, SolarPHP (Zend lớn nên khó mà xếp vào dạng web gọi I/O, webservice ORM), Grails, RoR Nhập môn Công nghệ phần mềm Page Đại học Công nghiệp Hà Nội Full-fledged framework: NET, Java (vừa ngôn ngữ, đặc tả, framework platform), Zend (somewhat) Phân loại mức cách thức sử dụng Glue framework Zend Gói liên quan trực tiếp đến web MVC tách rời khỏi gói khác Các gói khác khơng can thiệp vào chu kì sống ứng dụng nên gọi Zend thư viện framework dùng MVC Application framework Cake, Akelos nơi có liên kết chặt lớp 1.7 Các tiêu chí đánh giá framework Khơng có tài liệu đề cập đến tiêu chuẩn để xây dựng framework Yếu tố định framework có tồn hay khơng chất lượng framework Một framework đánh giá tốt sử dụng phải đáp ứng 10 tiêu sau đây: Tính phổ biến cộng đồng: Một framework phải đảm tính phổ biến Một framework mà sử dụng số trường hợp không tổng qt khơng đánh giá cao Hơn nữa, framework nhiều người sử dụng dễ để phát triển hồn thiện Ngắn gọn dễ hiểu: Đây tiêu chí để đảm bảo đáp ứng nhu cầu người sử dụng nhà phát triển Một framework ngắn gọn, dễ hiểu coi framework tốt đơng đảo người dùng chấp nhận TÍnh bền vững: Framework phải phát triển theo kip thời đại, giúp đơn giản hóa bảo trì nâng cấp Hỗ trợ: Dễ dàng tìm kiếm câu trả lời từ câu hỏi người sử dụng Điều để đáp ứng nhu cầu người sử dụng Xác định hỗ trợ : từ nhà xuất Từ cộng đồng (danh sách gửi thư, IRC, )? Từ Công ty Dịch vụ (phát triển, hỗ trợ, đào tạo)? Kỹ thuật: Framework coi xương sống cho ứng dụng phải tuân theo quy tắc thiết kế chung Bảo mật: Nhập môn Công nghệ phần mềm Page 10 Đại học Công nghiệp Hà Nội Bất kỳ ứng dụng có khả bị cơng Để giảm thiếu rủi ro, framework có chức đảm bảo an ninh ưu tiên Tài liệu: Việc đánh giá tính chất, khối lượng chất lượng tài liệu có framework tuyệt đối cần thiết: công cụ tài liệu tốt hai dễ dàng để sử dụng nâng cấp Giấy phép: Các giấy phép quan trọng, đơn giản chúng có tác động đáng kể ứng dụng bạn Ví dụ, ứng dụng phát triển dựa framework sử dụng giấy phép GPL thiết phải phụ thuộc vào GPL Mặt khác, trường hợp cho framework MIT cấp phép Nguồn lực sẵn có thị trường: Có lẽ bạn muốn có đội ngũ kỹ thuật vây quanh bạn giai đoạn phát triển dài hạn, cho hai việc trì nâng cấp Nói cách khác, chắn kỹ cần thiết cho cơng cụ mà bạn sử dụng có sẵn thị trường mở Kiểm thử thực tế: Đây chìa khóa định Một framework tốt phải nhận đánh giá cao từ người sử dụng Với PHP framework Nhập môn Công nghệ phần mềm Page 11 Đại học Công nghiệp Hà Nội php framework Khi nhắc tới php khơng thể ko nhắc tới PHP framework mảnh ghép thiếu để giúp hồn thiện PHP, giúp PHP trở nên trơn tru cách cung cấp cấu trúc để xây dựng ứng dụng PHP Framework đầy đủ đáp ứng hầu hết điều kiện cần đủ cho việc xây dựng dự án Nói tới Framework bật là: Zend Framework, CodeiGniter Framework, CakePHP Framework,… Các framework phổ biến tính mà chúng mang lại lập trình viên ưa thích, thỏa mãn yêu cầu họ Dưới 10 lý chọn PHP framework Cách tổ chức file code Khi setup dùng PHP framework chưa cấu trúc định, giúp ta theo tiêu chuẩn giống giữ cho thứ tổ chức theo cách định Một quen với mơ hình này, ta không muốn quay trở lại cách viết code ban đầu Thật không may số người dùng command line, điều thách thức họ Họ cần làm quen với nhiều tập tin với kích thước nhỏ hơn, bạn sử dụng trình soạn thảo hay IDE, gió cho Nhập mơn Cơng nghệ phần mềm Page 12 Đại học Công nghiệp Hà Nội ứng dụng bạn bạn tìm thấy thứ cần cách nhanh chóng chúng tổ chức cách khoa học Thư viện tiện ích PHP ngơn ngữ tuyệt vời để phát triển web cung cấp vô số công cụ thư viện Tuy nhiên bạn cố gắng xây dựng trang web với PHP bạn thấy viết nhiều đoạn mã thư viện bên thứ viết Hầu hết PHP Framework hàng đầu chúng chứa thư viện có sẵn Helpers, chúng giúp cho bạn: Kiểm tra form ( Form Validation) Lọc liệu đầu đầu vào ( Input/Output Filtering) Lớp trừu tượng database ( Database Abstraction) Xử lý Session Cookie ( Session and Cookie Handling) Gởi mail, lịch biểu, phân trang v.v Bên cạnh có rấ nhiều plugin cung cấp cộng đồng mà bạn thêm vào framework bạn Mơ hình MVC (Pattern MVC Mơ hình View Controller Model ( MVC) tiếng từ năm 1979 trở lại đây, nhà khoa học người Na Uy tên Trygve Reenskaug lần miêu tả Mơ hình MVC hoạt động template engine, nhiên sử dụng cách vơ trách nhiệm, dẫn đến mã code xấu khó trì Cách mà mơ hình MVC áp dụng cho tất ứng dụng PHP bạn sau: Model: đại diện cho cấu trúc liệu bạn, thường giao tiếp với sở liệu View: chứa trang mẫu để hiển thị liệu cho người dùng Controller: nhiệm vụ điều hướng yêu cầu người dùng đến trang web Nhập môn Công nghệ phần mềm Page 13 Đại học Công nghiệp Hà Nội Kiểu tách theo phần làm cho mã code bạn hơn, trì dễ dàng Tính bảo mật Trong PHP bạn tìm thấy nhiều hàm lọc liệu đầu vào đầu để bảo vệ trang web bạn chống lại công người muốn phá bạn Tuy nhiên sử dụng cách thủ công hàm làm cho bạn cảm thấy mệt bạn quên sau khoảng thời gian định Với Framework hầu hết cơng việc thực cho bạn cách tự động, ví dụ Codeigniter, Zend frameword, Bất ký giá trị lưu xuống database chúng lọc qua hết để chống công SQL Injection Tất hàm tạo html form helpers url helpers giúp lọc giá trị output cách tự động Và chúng lọc liệu input người dùng để chống lại việc cơng XSS Bên cạnh chúng mã hóa cookie tự động cách thay đổi cấu hình thiết lập Viết mã phát triển nhanh Tất nhiên việc tiếp cận PHP Frameword dễ khơng khó bạn Nhưng bạn vượt qua, bạn học framework framework khác nhẹ nhàng cho bạn học, bạn tận hưởng lợi ích phát triển ứng dụng cách nhanh chóng Bạn viết mã hơn, có nghĩa đỡ tốn thời gian đánh máy Bạn không cần tích hợp thêm thư viện bên thứ cho dự án hầu hết số thư viện tích hợp Framework bạn Ngoài bạn dùng Framework cấu trúc bạn tổ chức hơn, trì thay đổi nhanh Hỗ trợ cộng đồng Tất PHP Framework phổ biển ln có cộng đồng sử dụng bạn liên hệ với nhà phát triển để nhận giúp đỡ, thơng tin phản hồi từ cộng đồng Bạn học nhiều cách duyệt qua diễn đàn chuyên Framework để xem người hỏi trả lời câu hỏi liên quan đến Framework Cơ hội việc làm Nhập môn Công nghệ phần mềm Page 14 Đại học Cơng nghiệp Hà Nội Bạn nhìn vào thông tin tuyển dụng gần đây, hầu hết số nhà tuyển dụng yêu cầu bạn phải biết dùng hai Framework hay CMS chúng Kinh nghiệm với PHP Frameworks làm tăng đáng kể trình độ cơng việc bạn nhà phát triển web - web developer Hiệu suất Một lý lẽ từ người phản đối kèm chủ đề hiệu suất bạn xây dựng ứng dụng "Hello World" với PHP Framework code PHP Tuy nhiên mặt xấu Trước hết bạn nên hiểu nhà phát triển có nhiều tốn máy chủ, tốn mặt thời gian phát triển bảo trì mã nguồn Framework đại tuyệt vời với khả load động load phần cần thiết, trang khác load phần khác thư viện code, thứ mà trang cần để hiển thị cho người dùng Thích hợp cho làm việc nhóm Cách tổ chức dự án PHP Framework giúp bạn tạo mơi trường thích hợp cho làm việc theo nhóm Bạn cho thiết kế làm việc Views, chuyên viên sở liệu làm việc Models tất nhiên lập trình viên xây dựng thư viện, plugin tái sử dụng Và… thú vị Điều thực điểm quan trọng tất Khi bạn vui vẻ làm việc bạn, bạn có suất cao hạnh phúc Nếu bạn code PHP nhiều năm cảm thấy buồn chán với nó, việc bắt đầu Framework cung cấp cho bạn khích lệ tinh thần Nó giống bạn nhận đồ chơi xây dựng thứ mẻ với Ít cho tơi cảm thấy điều mẻ lần tiếp xúc với Framework Tôi chắn nhiều người số nhà phát triển web trải qua tương tự Nhập môn Công nghệ phần mềm Page 15 Đại học Công nghiệp Hà Nội Hibernate framework 2.1 Tổng quan Hibernate 2.1.1 Persistence Layer - “Tier” “Layer” Kiến trúc ứng dụng dụng phần mềm có nhiều loại Có loại chạy máy đủ Có chương trình muốn chạy phải kết nối sang máy khác (client-server) Một máy đóng vai trò người u cầu (client) máy khác đóng vai trò kẻ phục vụ (server) Người ta sử dụng thuật ngữ "tier" để loại máy có vai trò khác “Tier” thường gắn với phần cứng máy tính (về mặt vật lý) "layer" gắn với vấn đề cách thức tổ chức bên ứng dụng Việc phân chia tier “trong suốt” (transparent) ứng dụng mặt luận lý (logical) Điều có nghĩa ta phát triển ứng dụng, không bận tâm đến thành phần (component) triển khai (deploy) mà ý tổ chức ứng dụng thành layer -Persistence layer Một ứng dụng chia làm phần sau: phần giao diện người dùng (UI layer) phần xử lý nghiệp vụ (business layer) phần chứa liệu (data layer) Cụ thể, business layer chia nhỏ thành layer là: business logic layer (chỉ quan tâm đến ý nghĩa nghiệp vụ, tính tốn mang nhằm thoả mãn u cầu người dùng) persitence layer chịu trách nhiệm giao tiếp với data layer (thường hệ quản trị sở liệu quan hệ - Relational DBMS) Persistence layer đảm nhiệm nhiệm vụ mở kết nối, truy xuất lưu trữ liệu vào Relational DBMS 2.1.2 Hibernate Nhập môn Công nghệ phần mềm Page 16 Đại học Công nghiệp Hà Nội Hibernate framework sinh viên nghĩ để đơn giản hóa , tự động hóa q trình kết nối thao tác CSDL ,dựa vào cấu trúc định nghĩa file xml để thực việc tạo CSDL, bảng, ràng buộc bảng, quan hệ tham chiếu Có nghĩa việc kết nối tới csdl dùng hibernate giúp người lập trình quan tâm tới việc thao tác liệu mà quan tâm tới ràng buộc liệu nhiều hơn, thông qua giải định nghĩa, làm cho việc thao tác CSDL hướng đối tượng hoàn toàn Hibernate cấp giấy phép theo LGPL (Lesser GNU Public License) Theo đó, sử dụng rộng rãi dự án thương mại dự án mã nguồn mở Đặc điểm : Hibernate: dịch vụ lưu trữ truy vấn liệu quan hệ mạnh mẽ nhanh Hibernate ORM Framework (Object Relational Mapping framewrok chế cho phép người lập trình thao tác với database cách hồn tồn tự nhiên thơng qua đối tượng Lập trình viên hồn tồn khơng quan tâm đến loại database sử dụng, SQL, …) Hibernate framework framework cho persistence layer nhờ có Hibernate framework nên phát triển ứng dụng ta cần tâm vào layer khác mà bận tâm nhiều persistence layer Hibernate giúp phát triển class dùng để lưu trữ liệu theo cách thức hướng đối tượng: association, inheritance, polymorphism, composition collections Hibernate cho phép thực câu truy vấn liệu cách sử dụng ngôn ngữ SQL mở rộng Hibernate (HQL) ngôn ngữ SQL nguyên thuỷ sử dụng API Hibernate đảm bảo cho người phát triền sử dụng sở liệu xác 2.2 Các tính Hibernate Hibernate 3.0 cung cấp ba đầy đủ tính tiện truy vấn: Hibernate Query Language, Hibernate Criteria Query API truy vấn tự nhiên Bộ lọc để làm việc với liệu tạm thời ,vùng liệu liệu phân quyền Nâng cao khả truy vấn với API: với hỗ trợ đầy đủ cho phép chiếu ,phép kết hợp phép chọn Nhập môn Công nghệ phần mềm Page 17 Đại học Công nghiệp Hà Nội Kiểm sốt thời gian chạy: thơng qua JMX Java API, bao gồm đệm trình duyệt mức thứ cấp Hỗ trợ IDE Eclipse, bao gồm Eclipse plug-in để làm việc với Hibernate 3.0, bao gồm biên tập liên kết, tương tác với mẫu truy vấn, công cụ nhận lại cấu trúc sở liệu Hibernate miễn phí theo LGPL: Hibernate dùng để phát triển phân phối ứng dụng miễn phí Hibernate mở rộng: Hibernate mang lại hiệu cao kiến trúc lớp sử dụng mơi trường tập trung Giảm thời gian phát triển ứng dụng: Hibernate làm giảm thời gian phát triển ứng dụng hỗ trợ thừa kế, đa hình, thành phần framework java Hibernate XML cho phép liên kết liệu biểu diễn XML POJOs thay cho Nhập môn Công nghệ phần mềm Page 18 Đại học Công nghiệp Hà Nội 2.3 Kiến trúc Hibernate Kiến trúc Hibernate Ứng dụng Đối tượng Persistence Hibernate Các thuộc tính Hibernate XML Mapping Cơ sở liệu Sơ đồ cho thấy Hibernate sử dụng sở liệu file cấu hình để cung cấp dịch vụ lâu dài cho ứng dụng Hibernate tạo đối tượng liên tục đồng hóa liệu ứng dụng sở liệu Nhập môn Công nghệ phần mềm Page 19 Đại học Công nghiệp Hà Nội Để sử dụng Hibernate, cần thiết phải tạo lớp Java biểu diễn cho bảng tương ứng sở liệu sau ánh xạ thuộc tính lớp với cột bảng sở liệu Sau đó, Hibernate sử dụng để thực thao tác sở liệu chèn, chọn, cập nhật xóa ghi bảng Hibernate tự động tạo truy vấn để thực thao tác Kiến trúc Hibernate có ba thành phần chính: Quản lý kết nối: Hibernate cung cấp dịch vụ quản lý kết nối sở liệu hiệu Kết nối sở liệu phần tốn tài nguyên hiệu việc tương tác với sở liệu đòi hỏi nhiều tài nguyên phải mở đóng kết nối sở liệu Quản lý giao dịch: Quản lý dịch vụ giao dịch cung cấp khả người sử dụng để thực nhiều câu lệnh thời điểm Đối tượng đồ quan hệ: Đối tượng đồ quan hệ kỹ thuật lập ánh xạ biểu diễn liệu từ mơ hình đối tượng mơ hình liệu quan hệ Đối tượng sử dụng đê thực thao tác truy vấn ,thêm mới, cập nhật xóa ghi dạng bảng bên dưới.Hibernate tốt công cụ xa đối tượng đồ quan hệ mối quan tâm, mặt quản lý kết nối quản lý giao dịch, thiếu hiệu khả Vì vậy, thường Hibernate sử dụng để quản lý Nhập môn Công nghệ phần mềm Page 20 Đại học Công nghiệp Hà Nội kết nối khác công cụ quản lý giao dịch Ví dụ apache DBCP sử dụng để kết nối tổng hợp với Hibernate Hibernate cung cấp nhiều tính linh hoạt sử dụng Nó gọi kiến trúc "Lite" sử dụng thành phần đối tượng đồ quan hệ Trong kiến trúc "Full Cream" tất ba thành phần đối tượng quan hệ lập đồ, quản lý kết nối Quản lý giao dịch sử dụng 2.4 Các thành phần ứng dụng Hibernate Các ORM framework mang đến cho developer tư khái niệm quan hệ làm việc với lớp Có nhiều framework mang mục đích Những làm cho Hibernate khác với framework khác tính đơn giản khả chuyển Để tạo nên ứng dụng Hibernate, có ba điều cần phải có, là: 2.4.1 Persistence Class Persistence class Plain Old Java Object hay POJO model Một POJO tương tự JavaBean, có getter setter để truy câp thuộc tính instance variable (biến thực thể) Persistence class có đặc điểm đây: Nó thay hướng đối tượng cho bảng sở liệu Các thuộc tính bảng trở thành instance variable persistence class Kiểu liệu instance variable domain thuộc tính Đối tượng persistence class thay hế cho hàng bảng 2.4.2 Mapping file Mapping file file XML chứa ánh xạ chi tiết persistence class bảng thay Các thành phần bắt buộc file XML là: Hibernate-mapping: Đây thành phần gốc bao tất thành phần khác Class: sử dụng để ánh xạ tên thành persistence class Tên thuộc tính sử dụng để xác định tên lớp, thuộc tính sử dụng để xác định bảng mà lớp thay Ví dụ để ánh xạ mang tên ORDERS thành persistence class với tên đầy đủ com.someorg.persist.Order đây: … Nhập môn Công nghệ phần mềm Page 21 Đại học Công nghiệp Hà Nội ID: Thành phần sử dụng để ánh xạ khóa chíh table thành instance variable class Thành phần cột id sử dụng để ánh xạ thành biến tương ứng Giá trị khóa tự động tạo cơng bố Thành phần generator sử dụng để nói cho Hibernate lớp sử dụng đâu để tự động tạo id, id gán ứng dụng Ví dụ nói cho Hibernate rằng, tên khóa id mà ánh xạ thành instance variable "id" Kiểu liệu "string" ánh xạ cho cột "id" có kiểu "char(32)" thay thuộc tính sql-type Thuộc ính lớp generator chứa giá trị "assigned" nghĩa ứng dụng thân cung cấp giá trị cho khóa Property: thành phần này, thuộc cột thành phần nó, ánh xạ thuộc tính khác (hoặc cơt thành instance variable persistence class Thuộc tính name property chứa tên biến giá trị Thuộc tính name thành phần column chứa tên cột mà instance variable ánh xạ Các thuộc tính length sql-type trỏ đến độ dài kiểu liệu cột 2.4.3 Hibernate Configuration file File gọi trỏ đến ứng dụng sử dụng Hibernate Ngun nhân chứa cấu hình điều khiển giao tiếp với database phía Ở đây, tất file mapping sử dụn ứng dụng công bố Địnn dạng thành phần hibernateconfiguration thành phần gốc Hầu hết thành phần thông dụng sử dụng file XML là: Property: Thuộc tính name thành phần property sử dụng để cấu hình tham số khác Trong cơng nghệ Hibernate, tham số biết tham số property Kiểu database server (MySQL, Oracle ), dialect class, URL database, username/password tham số property khác Để đặt chúng vào mã: Nhập môn Công nghệ phần mềm Page 22 Đại học Công nghiệp Hà Nội org.hsqldb.jdbcDriver jdbc:hsqldb:data/tutorial sa : : Mapping: Nó thành phần kết nối tất file mapping,, gọi file hbm, sử dụng ứng dụng cơng bố Thuộc tính resource cho giá trị đường dẫn file hbm 2.5 Đánh giá Hibernate framework Ưu điểm Hibernate - - - Ứng dụng sở liệu độc lập : Hibernate tốt đơn giản JDBC: Bạn sử dụng Hibernate tạo SQL bay sau tự động thực thi câu lệnh SQL cần thiết Điều giúp tiết kiệm nhiều thời gian phát triển gỡ lỗi nhà phát triển Sử dụng JDBC để diễn đạt, thiết lập thông số, thực truy vấn xử lý kết tay công việc vất vả Hibernate giải vấn đề nhanh chóng hiệu Hiệu suất cao, lập đổ định nghĩa: Hibernate lập đồ đối tượng tên miền với sở liệu quan hệ Nên tập trung vào business logic quản lý liệu sở liệu Lớp kiến trúc: Hibernate tn theo mơ hính MVC nên sử dụng thành phần theo nhu cầu ứng dụng Nhà cung cấp JPA: Hibernate làm việc nhà cung cấp dịch vụ JPA ứng dụng dựa JPA Tiêu chuẩn ORM: Hibernate giải pháp ORM tiêu chuẩn hỗ trợ JPA Cơ sở liệu độc lập: Hibernate sở liệu độc lập bạn sử dụng sở liệu lựa chọn bạn Bộ nhớ đệm Framework: Có nhiều nhớ đệm khuôn khổ làm việc với Hibernate Bạn sử dụng ứng dụng bạn để cải thiện hiệu suất ứng dụng bạn Nhược điểm Hibernate Nhập môn Công nghệ phần mềm Page 23 Đại học Công nghiệp Hà Nội - Rất nhiều API để tìm hiểu: Rất nhiều nỗ lực cần thiết để tìm hiểu Hibernate Vì vậy, khơng dễ dàng để tìm hiểu chế độ Hibernate Debugging: Đôi gỡ lỗi hiệu chỉnh trở nên khó khăn Chậm so với JDBC: Hibernate l chậm so với JDBC đơn ,nó tạo nhiều câu lệnh SQL thời gian chạy Không thích hợp để xử lý hàng loạt: khuyến khích sử dụng JDBC đơn cho hồng loạt q trình Nhập môn Công nghệ phần mềm Page 24 ... viện framework dùng MVC Application framework Cake, Akelos nơi có liên kết chặt lớp 1.7 Các tiêu chí đánh giá framework Khơng có tài liệu đề cập đến tiêu chuẩn để xây dựng framework Yếu tố định framework. .. đồng nghĩa với việc frameworks phát triển Một phần mềm xây dựng dựa framework bao gồm mẫu thiết kế thành phần dựa khung xương framework Một định nghĩa frameworks phát biểu sau: “Frameworks không... học Công nghiệp Hà Nội LỜI NÓI ĐẦU Tổng quan framework 1.1 Framework gì? Ngày nay, trình xây dựng ứng dụng có nhiều khung làm việc (framework) xây dựng sẵn nhằm phục vụ cho mục đích chung giúp

Ngày đăng: 19/11/2017, 19:57

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w