Mục tiêu nghiên cứu của đề tài là đề xuất giải pháp chuyển đổi trạng thái tích hợp trong quá trình phát triển phần mềm. Giải pháp này bao gồm các mô hình chuyển đổi trạng thái áp dụng trong giai đoạn thiết kế. Mô hình đó sử dụng lại trong các giai đoạn tiếp theo của quá trình phát triển phần mềm hướng đến việc sinh tự động các module hỗ trợ cho việc chuyển đổi trạng thái khi thực hiện việc thay đổi cấu hình trong tương lai.
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG VIỆT - HÀN BÁO CÁO TĨM TẮT ĐỀ TÀI KHOA HỌC VÀ CÔNG NGHỆ CẤP ĐẠI HỌC ĐÀ NẴNG NGHIÊN CỨU GIẢI PHÁP CHUYỂN ĐỔI TRẠNG THÁI ÁP DỤNG TRONG QUY TRÌNH PHÁT TRIỂN PHẦN MỀM THÍCH NGHI Mã số: B2018-ĐN07-03 Chủ nhiệm đề tài: TS Huỳnh Ngọc Thọ Đà Nẵng, 09/2020 DAHOC IDÀ NÅNG TRUONG DAI HQC cÔNG NGH THÔNG TIN VÀ TRUYEN THÔNG VIET - HÀN BAO CÁO TÓM TÁT DE TAI KHOA HOC VÀ CÔNG NGH CÁP DAI HQC DÀ NÁNG NGHIÊN cÚU GIÅI PHÁP CHUYÉN ÖI TRANG THÁI ÁP DUNG TRONG QUY TR*NH PHÁT TRIÉN PHÀN MÈM THÍCH NGHI Ma so: B2018-DNO7-03 tóchúe b a cua HIEUTXUPNG TRUONG DAI HQC rONCHGHE THONG TINT VANALËHHu NGA VIETVIET HAN HOC DP PGS.TS Hujnh Cöng Pháp DàNang,09/2020 Chu nhiem dê tài Danh sách thành viên TT Họ tên Huỳnh Ngọc Thọ Nguyễn Văn Bình Nguyễn Anh Tuấn Đơn vị cơng tác Nội dung nghiên cứu lĩnh vực chuyên môn cụ thể giao Trường ĐH Công nghệ Thông tin Truyền thông Việt - Hàn, Chuyên Chủ nhiệm đề tài ngành Công nghệ Thông tin Trường ĐH Công nghệ Thông tin Truyền thông Việt - Hàn, Chuyên Tham gia nghiên cứu ngành Công nghệ Thông tin Khoa CNTT&TT – ĐH Đà Nẵng, Chuyên ngành Công nghệ Thông tin Thư ký khoa học ĐAI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT - HÀN THƠNG TIN KẾT QUẢ NGHIÊN CỨU Thơng tin chung: - Tên đề tài: NGHIÊN CỨU GIẢI PHÁP CHUYỂN ĐỔI TRẠNG THÁI ÁP DỤNG TRONG QUY TRÌNH PHÁT TRIỂN PHẦN MỀM THÍCH NGHI - Mã số: B2018-ĐN07-03 - Chủ nhiệm : TS Huỳnh Ngọc Thọ - Thành viên tham gia: ThS Nguyễn Văn Bình, ThS Nguyễn Anh Tuấn - Cơ quan chủ trì: Đại học Đà Nẵng - Thời gian thực hiện: 24 tháng Mục tiêu: Đề xuất giải pháp chuyển đổi trạng thái tích hợp trình phát triển phần mềm Giải pháp bao gồm mơ hình chuyển đổi trạng thái áp dụng giai đoạn thiết kế Mơ hình sử dụng lại giai đoạn trình phát triển phần mềm hướng đến việc sinh tự động module hỗ trợ cho việc chuyển đổi trạng thái thực việc thay đổi cấu hình tương lai Tính sáng tạo: Đề tài có số đóng góp lĩnh vực nghiên cứu chuyển đổi trạng thái áp dụng quy trình phát triển phần mềm thích nghi: - Đề xuất mơ hình đặc tả trạng thái để ứng dụng quy trình phát triển phần mềm thích nghi Mơ hình áp dụng giai đoạn thiết kế sử dụng trọng giai đoạn giai đoạn sau phần mềm - Đề xuất chế chuyển đổi trạng thái áp dụng mơ hình chuyển đổi q trình thích nghi hệ thống phần mềm Tóm tắt kết nghiên cứu: Kết đạt nghiên cứu vượt mức so với đăng ký nêu thuyết minh, cụ thể khuôn khổ nghiên cứu công bố 06 báo có 04 báo quốc tế 02 báo nước Trong số 04 báo quốc tế có 01 báo tạp chí xếp hạng Q2, 03 báo danh mục ISI/Scopus Tên sản phẩm: - Sản phẩm khoa học: Bài báo quốc tế: o Bài báo tạp chí Q2: Huynh Ngoc-Tho, Towards Automatically Generating Transfer Model Process Integrated in Intemational lournal Adaptive of Software State Development Applied Engineering Research Q2) Vohme 15 Number 02 2020 oBài báo chi måc ISI/Scopus Huynh Ngoc-Tho State Transfer Management in Adaptive Sofware: An Approach from Design to Runtime The 2019 IEEE-RIVF International Conference on Communication Technologies, 2019 Huynh Ngoc-Tho An Analysis View of Computing and Component-Based Software Architecture Reconfiguration The 2019 IEEE-RIVF Intemational Conference on and Computing Technologies, 2019 Ngoc-Tho Huynh Building Adaptive Communication Maria Teresa Segarra Antoine Beugnard Software Architectures with Useful and Available Elements for Adaptation, The 2018 10th International Conference on Knowledge and Systems Engineering (KSE), 2018 Bài báo o nuóe: Huynh Ngoc Tho, Duong Thi Mai Nga, and Huynh Cong Phap, Research Challenges for State Transfer in Adaptive Systems, HÙi thao Khoa hoe Quóc gia CITA2019 Ngoc-Tho Huynh, Anh-Tuan Nguyen, and Cong-Phap Huynh, Towards State Transfer Model Applied in Adaptive Software Development, a Hoi thào Khoa hÍc Qc gia CITA2018 - San phâm khác: M ô hinh thiêt kê quàn lý trang thái Báo cao tông kêt HiÇu qu£, phuong thúe chuyên giao dyng: kêt quä nghiên céu khà nng De tài có ý nghïa khoa hÍc có tính úng dång linh vuc mém thich nghi Kêt dê tài có thê làm nên táng cho nhïng nghièn chuyên doi trang thái rong phân mêm thich nghi Dà Nng, ouC GIAO DU VA Co quan TRUONG O \ DAI HOC chyUTRUÖNG coCONG NGHE HHONC H VA JRUYÈN THÖNG HT-HAN9 HOC D PS.TS Huynh Cöng Pháp NA éng phát trièn cuu sau hon vê ngày tháng nm Chù nhi_m dÁ tài phân 2020 DA NANG UNIVERSITY VIET-HAN UNIVERSITY OF INFORMATION AND COMMUNICATION TECHNOLOGY INFORMATIONS ON RESEARCH RESULTS General information - Project title: RESEARCH SOLUTIONS FOR STATE TRANSFER APPLIED IN ADAPTIVE SOFTWARE DEVELOPMENT PROCESS - Code number: B2018-ĐN07-03 - Project leader: Dr Huỳnh Ngọc Thọ - Coordinator: ThS Nguyễn Văn Bình, ThS Nguyễn Anh Tuấn - Implementing institution: Danang University - Duration: 24 months Objectives The objectives of this project is to propose a solution for state transfer applied in adaptive software development process This solution includes state transfer model applied in the design phase The model is reused in the next stages of the software development process towards the generation of modules that support state transfer in adaptive software Creativeness and innovativeness Some research results of this project contribute to the state transfer research domain with the creativeness and innovativeness as follows: - Proposing a state transfer model applied in adaptive software development process This model is used in the design phase and reused in the next phase of software development - Proposing a state transfer mechanism by using the state transfer model to realize adaptation actions during adaptation process Research results The obtained results well match the project proposal, namely the framework of this projectm there have been 06 articles published including 04 international articles (1 article in a journal Q2, 03 articles indexed in ISI /Scopus lists) and 02 national articles Research products - Research products International papers: o 01 paper in a journal Q2: Huynh Ngoc-Tho, Towards Automatically Generating State Transfer Model Integrated in Adaptive Software Development Process, International Journal of Applied Engineering Research (Q2), Volume 15, Number 02, 2020 o 03 papers indexed in ISI/Scopus list Huynh Ngoc-Tho, State Transfer Management in Adaptive Software: An Approach from Design to Runtime, The 2019 IEEE-RIVF International Conference on Computing and Communication Technologies, 2019 Huynh Ngoc-Tho, An Analysis View of Component-Based Software Architecture Reconfiguration, The 2019 IEEE-RIVF International Conference on Computing and Communication Technologies, 2019 Ngoc-Tho Huynh, Maria Teresa Segarra, Antoine Beugnard, Building Adaptive Software Architectures with Useful and Available Elements for Adaptation, The 2018 10th International Conference on Knowledge and Systems Engineering (KSE), 2018 National papers: o Huynh Ngoc Tho, Duong Thi Mai Nga, and Huynh Cong Phap, Research Challenges for State Transfer in Adaptive Systems, Hội thảo Khoa học Quốc gia CITA2019 o Ngoc-Tho Huynh, Anh-Tuan Nguyen, and Cong-Phap Huynh, Towards a State Transfer Model Applied in Adaptive Software Development, Hội thảo Khoa học Quốc gia CITA2018 - Other products: State transfer management model A final report Effects, transfer alternatives of research and applicability This research project has good scientific significant and applicabilities in adaptive software development Mở đầu Các hệ thống phần mềm ngày mở rộng “thông minh” với nhiều tính mới, khả thích nghi phần mềm tính quan trọng Tính thích nghi phần thể thông qua việc thay đổi cấu trúc hành vi phần mềm để thích ứng với thay đổi mơi trường hoạt động (như thay đổi băng thơng, chất lượng dịch vụ, vv) mà khơng dừng hoạt động tồn hệ thống phần mềm Trong công nghệ phần mềm hướng thành phần, việc thay đổi cấu trúc hành vi phần mềm thực cách thay đổi thành phần hệ thống phần mềm (một nhiều thành phần bị loại bỏ, nhiều thành phần thêm vào) Việc thay thành phần hệ thống thành phần khác phần lại hệ thống chạy phải đảm bảo tính tồn vẹn hệ thống, nghĩa việc thay đổi thành phần phần mềm không gây lỗi hệ thống, liệu Để làm điều đó, trạng thái thành phần bị loại bỏ phải di trú sang thành phần Các giải pháp tồn cung cấp số chế chuyển đổi trạng thái Tuy nhiên, chế thực giai đoạn cuối chu trình phát triển phần mềm không quan tâm đến giai đoạn sớm Điều gây khó khăn định phát triển phần mềm thích nghi Chính đề tài đề xuất giải pháp chuyển đổi trạng thái hệ thống phần mềm áp dụng quy trình phảt triển phần mềm từ thiết triển khai thực Mục tiêu đề tài đề xuất giải pháp chuyển đổi trạng thái tích hợp q trình phát triển phần mềm Giải pháp bao gồm mơ hình chuyển đổi trạng thái áp dụng giai đoạn thiết kế Mơ hình sử dụng lại giai đoạn trình phát triển phần mềm hướng đến việc sinh tự động module hỗ trợ cho việc chuyển đổi trạng thái thực việc thay đổi cấu hình tương lai Đề tài tập trung vào đối tượng gồm: Hệ thống phần mềm thích nghi, quy trình phát triển phần mềm thích nghi, chế chuyển đổi trạng thái Phạm vi nghiên cứu đề tài tập trung vào việc chuyển đổi trạng thái cục từ thành phần thay đến thành phần thay hệ thống phần mềm Cách tiếp cận chuyển đổi trạng thái quan tâm giai đoạn cuối chu trình phát triển phần mềm, chẳng hạn giai đoạn implementation, lập trình viên xây dựng module bổ sung cho phép đọc ghi trạng thái Một chế thay đổi cấu hình triển khai độc lập để điều khiển việc đọc/ghi trạng thái Chúng dựa cách tiếp cận này, đặt mối quan tâm giai đoạn sớm chu trình phát triển phần mềm, đề xuất mơ hình thiết kế hỗ trợ yêu cầu Quá trình nghiên cứu đề tài chia thành hai giai đoạn chính: 1) nghiên cứu tổng quan cơng việc liên quan đến đề tài, đánh giá, xác định vấn đề tồn tại; 2) Đề xuất giải pháp để giải vấn đề dựa ví dụ minh hoạ cụ thể Báo cáo tổng kết đề tài chia làm chương: Chương trình bày nghiên cứu tổng quan lĩnh vực liên quan đề tài; Chương trình bày mơ hình phát triển phần mềm thích nghi; Chương trình bày giải pháp chuyển đổi trạng thái áp dụng quy trình phát triển phần mềm thích nghi; Chương nêu kết luận hướng phát triển tương lai đề tài Chương Nghiên cứu tổng quan 1.1 Phát triển phần mềm Phần giới thiệu tóm tắt hai phương pháp phát triển phần mềm gồm Công nghệ phần mềm dựa mơ hình đặc tả (model) (Model-Driven Engineering MDE), cơng nghệ phần mềm hướng dịng sản phẩm (Software product line engineering – SPLE) Công nghệ phần mềm hướng mơ hình tập trung vào thiết kế mơ hình kiến trúc chung hệ thống (Model Driven Architecture - MDA) mơ hình đặc tả cụ thể (Domain Specific modeling – DSM) sản phẩm Trong đó, phương pháp phát triển hướng dòng sản phẩm tập trung vào tiến trình (đặc tả nhóm sản phẩm cấu hình sản phẩm cụ thể) kỹ thuật để quản lý đặc tính khác sản phẩm thuộc dòng sản phẩm Việc quản lý đặc tính khác cho phép dễ dàng cấu hình sản phẩm cụ thể 1.2 Đặc tả phần mềm CVL Trong phần này, giới thiệu định nghĩa CVL để đặc tả tính chung tính khác dịng sản phẩm CVL cung cấp ngơn ngữ đặc tả đồng thời cung cấp giải pháp để phát triển dịng sản phẩm Tơng quan CVL biểu diễn Error! Reference source not found Với cách tiếp cận CVL, ba mơ hình định nghĩa gồm: mơ hình sở (base model) sử dụng để mô tả thành phần kiến trúc hệ thống; mơ hình biến đổi (variability model) sử dụng để mô tả khả biến đổi mô hình sở, ví dụ phiên khác có thành phần mơ hình sở; mơ hình giải pháp (resolution model) biểu diễn cấu hình sản phẩm, có nghĩa từ mơ hình thành phần mơ hình biến đổi chọn Trong báo cáo chúng tơi dùng khái niệm mơ hình CVL để nói ba mơ hình: mơ hình sở, mơ hình biến đổi mơ hình giải pháp 1.3 Kiến trúc phần mềm Khơng có định nghĩa chung kiến trúc phần mềm công nhận cộng đồng nhà nghiên cứu phát triển Như định nghĩa: Software architecture = {Elements, Form, Rationale} Điều có nghĩa kiến trúc phần mềm tập hợp thành phần mà có dạng (form) riêng Những thành phần phân thành loại: thành phần xử lý, thành phần liệu thành phần kết nối Thành phần xử lý liệu gọi chung thành phần kiến trúc (component) Rationale biểu diễn nguyên nhân hay lý chọn thành phần cấu hình hệ thống Trong nghiên cứu xem xét, kiến trúc hệ thống gồm: thành phần (component) kết nối (connector) 1.4 Phần mềm thích nghi Phần mềm thích nghi khả thích ứng với thay đổi mơi trường hoạt động Môi trường hoạt động bao gồm tât thứ xung quanh phần mềm người dùng cuối, thiết bị, phần cứng, vv Khi môi trường hoạt động thay đổi, hệ thống cần điều chỉnh để đáp ứng yêu cầu Quá trình điều chỉnh phần mềm chuyển từ phiên sang phiên Đặc trưng q trình thích nghi thời điểm thực việc thay đổi Dựa vào thời điểm thay đổi trình phát triển, hai kiểu thích nghi xác định: thích nghi tĩnh thích nghi động Thích nghi tĩnh trình thay đổi hệ thống trình thiết kế thời gian phát triển Thích nghi động trình làm thay đổi ứng dụng trình thực thi nhằm giảm thời gian ngắt quảng trình hoạt động hệ thống Trong nghiên cứu này, chúng tơi tập trung vào nghiên cứu việc thích nghi động phần mềm Một vấn đề thích nghi động đảm bảo hoạt động thơng suốt hệ thống tính xác trước sau trình thực việc thay đổi Trạng thái, liệu trước sau trình thay đổi bảo toàn Vấn đề liên quan đến việc chuyển đổi trạng thái phần mềm trình thực việc thay đổi 1.5 Tổng quan chuyển đổi trạng thái phần mềm thích nghi Phần lớn cách tiếp cập chuyển đổi trạng thái phần mềm thích nghi dựa vào tính tương đồng trạng thái thành phần thay bị thay sử dụng chế đọc/ghi để chuyển đổi liệu hai thành phần Nhiều nghiên cứu định nghĩa hàm chuyển đổi trạng thái thành phần thay bị thay Hàm ánh xạ trạng thái hai thành phần Tuy nhiên hàm kỹ sư định nghĩa cụ thể trước áp dụng vào quy trình thay đổi thành phần Để truy cập đến trạng thái thành phần chạy, hệ thống phải cung cấp chức (interface) setVar() getVar() để lấy thiết lập liệu Chuyển đổi trạng thái đóng vai trị quan trọng q trình thay đổi cấu hình hệ thống để thích nghi với môi trường Việc chuyển đổi trạng thái giúp hệ thống hoạt động xác tin cậy trước sau khi thay đổi cấu hình Nhiều tiếp cận khác quan tâm đến vấn đề Giải pháp đơn giản nhiều tác giả quan tâm xem xét tính tương đồng trạng thái hai thành phần từ xây dựng chức cho phép đọc ghi thông tin trạng thái Trong trường hợp khơng có đồng cấu hình việc chuyển đổi gây lỗi liệu, Chính giải pháp khác đề nghị sử dụng đơn vị chuyển đổi trung gian mạng chuyển đổi trạng thái hàm chuyển đổi trạng thái để ánh xạ trạng thái thành phần Tuy nhiên cơng việc phức tạp thành phần đích khơng có khơng gian để lưu trữ trạng thái khơng gian lưu trữ hạn chế Chương Quy trình phát triển phần mềm thích nghi 2.1 Tổng quan quy trình phát triển Runtime Design Time Application Engineering Domain Engineering Chươ Variability and Component-Based ng trình Commonality Architecture bày quy CVL Metamodel ACME Metamodel trình phát conforms to conforms to triển phần Variability Model Base Model mềm thích nghi Quy New Resolution Configuration State Transfer trình Model Model Extended CVL bao gồm refers to Metamodel nhiều bước conforms to AdapSwAG tool khác Resolution Model Planning từ việc đặc Adaptive Software tả phần Architecture Model mềm mức Reconfiguration Plan cao (highGeneration tool level specificatio Applying n) đến việc Implementation skeletons chuyển thành mã Adaptive Software Adaptive Product thực thi Architecture Implementation artifacts (code) Manual programing phần mềm and Composing Quy trình AdapSwAG tool: Adaptive Software Architecture Generation tool dựa cơng nghệ phát triển dịng sản phẩm phần mềm (software product line engineering) Như đề cập chương trước, công nghệ phân biệt rõ phần khác gồm: công nghệ hướng miền ứng dụng công nghệ hướng ứng dụng 2.2 Công nghệ hướng miền ứng dụng (domain engineering) Các kỹ thuật áp dụng giai đoạn tập trung vào việc đặc tả mơ hình biến đổi mơ hình sở Một yêu cầu quan trọng giai đoạn xác định đặc trưng chung riêng sản phẩm dòng Để làm điều này, vai trò thành viên tham gia q trình phát triển thể Thơng tin dòng sản phẩm phải tập hợp, phân tích mơ hình hóa Chúng tơi đề xuất kịch khác để phân tích đặc tả mơ hình 2.3 Cơng nghệ ứng dụng (application engineering) Phần giới thiệu bước để xây dựng sản phẩm cụ thể từ thông tin đặc tả mơ hình cơng nghệ miền Trong cơng nghệ dịng sản phẩm, sản phẩm tạo khơng có tính biến đổi, nghĩa có khơng có khả thích nghi (thay đổi cấu hình) lúc hệ thống chạy Chương Quản lý chuyển đổi trạng thái phần mềm thích nghi 3.1 Trạng thái trường hợp chuyển đổi trạng thái Trạng thái hệ thống định nghĩa gồm trạng thái cục lưu trữ thành phần khác hệ thống tất thông điệp truyền qua mạng1 Trạng thái cục thành phần phần mềm gồm thuộc tính thành phần phần mềm, liệu lưu trữ thành phần Theo định nghĩa Grondin, trạng thái hệ thống định nghĩa tập giá trị lưu trữ biến tất cấu hình phần mềm Trong nghiên cứu này, nghiên cứu trạng thái kiến trúc phần mềm dựa thành phần Hình 3-1 biểu diễn hai thành phần gồm, client server, server cung cấp dịch vụ (providing a service) client yêu cầu dịch vụ (requiring a service) Mỗi thành phần cung cấp dịch vụ điều khiển (control service) cho phép kích hoạt hủy kích hoạt component, đọc ghi trạng thái vào component, vv Hình 3-1 Mơ hình client-server Việc chuyển đổi trạng thái vấn đề quan trọng tái cấu hình hệ thống Nó xem q trình ghi lại trạng thái thành phần nhóm thành phần hệ thống sử dụng trạng thái để khởi tạo cho thành phần X Ma, L Baresi, C Ghezzi, V Panzica, L Manna, and J Lu, “Version-consistent Dynamic Reconfiguration of Component-based Distributed Systems,” pp 245–255, 2011 10 Quá trình xem trình chuyển đổi trạng thái từ thành phần bị thay sang thành phần thay Hình 3-2 Các trường hợp chuyển đổi trạng thái Như đề cập phần trên, trạng thái bao gồm tất thông tin thành phần Trong báo này, quan tâm đến trạng thái lưu trữ biến thành phần Giả sử, thành phần có biến x, trường hợp chuyển đổi trạng thái biểu diễn Hình 3-2 Trường hợp đầu tiên, giá trị biến lưu trữ thành phần thay chuyển sang biến lưu trữ tương ứng thành phần thay Cấu trúc trạng thái trì từ thành phần bị thay sang thành phần thay Trong trường hợp thứ 2, biến thành phần bị thay bị thay đổi lưu hai biến khác hai thành phần Trong trường hợp này, hàm chuyển đổi, f1 f2, sử dụng để thay đổi trạng thái từ thành phần bị thay đến thành phần thay lưu hai biến x1 x2 Cuối cùng, nhiều biến thành phần bị thay thế, x1,x2 bị chuyển đổi lưu trữ biến thànhh phần thay Trường hợp này, hàm f sử dụng nhận x1,x2 đầu vào Kết đầu hàm f gán cho biến x thành phần thay Ánh xạ biến thành phần bị thay (biến nguồn) thành phần thay (biến đích) xem điểm biến đổi trạng thái q trình thích nghi phần mềm Trong công nghệ phần mềm hướng mơ hình, mơ hình sử dụng để đặt tả ánh xạ trình chuyển đổi trạng thái thành phần bị thay thành phần thay Phần trình bày mơ hình đề xuất đặc tả ánhh xạ 3.2 Đặc tả mơ hình quản lý trạng thái Hình 3-3 định nghĩa mơ hình chuyển đổi trạng thái Mơ hình xem xét nhiều điểm chuyển đổi trạng thái q trình thích nghi phần mềm Mỗi điểm chuyển đổi ánh xạ đến biến đích thành phần thay thế, có khơng biến nguồn Nếu khơng có biến nguồn, giá trị đích gán số đặc tả mơ hình chuyển đổi trạng thái Mỗi điểm chuyển đổi có hàm để thay đổi giá trị biến nguồn chuyền vào biến đích Trường hợp (như đề cập hình Hình 3-2) không sử dụng 11 hàm để thay đổi giá trị biến nguồn biến đích Điều có nghĩa rằng, biến đích gán trực tiếp biến nguồn Những trường hợp lại, nhiều hàm sử dụng để thay đổi trạng thái từ biến nguồn sang biến đích Hàm biểu diễn biểu thức gồm tốn tử, hằng, biến nguồn Toán tử bao gồm toán tử số học, cộng, trừ, nhân, chia toán tử định nghĩa người dùng Biến tham gia điểm chuyển đổi trạng thái đặc tả với tên biến (variable name), kiểu liệu (datatype) Kiểu liệu kiểu nguyên thủy kiểu đối tượng Kiểu liệu phải đặc tả xác để đảm bảo tính xác liệu trình chuyển đổi trạng thái Trước gán liệu đến biến đích, liệu biến nguồn lưu trữ biến tạm thành phần tạm Ví dụn thành phần cung cấp dịch vụ nhận yêu cầu từ thành phần yêu cầu dịch vụ Để thay thành phần cung cấp dịch vụ thành phần khác dịch vụ cung cấp phải chặn lại Chính vậy, để không yêu cầu từ thành phần yêu cầu dịch vụ, thành phần tạm sử dụng để lưu trữ yêu cầu tạm Hình 3-3 Mô hình đặc tả chuyển đổi trạng thái 3.3 Cơ chế chuyển đổi trạng thái Để thực việc chuyển đổi trạng thái q trình thích nghi phần mềm, mơ hình chuyển đổi trạng thái sử dụng Mơ hình đặc tả ánh xạ trạng thái biến thành phần thay bị thay Thơng tin đặc tả mơ hình khai thác thông qua chế chuyển đổi trạng thái để 12 thực việc chuyển đổi trạng thái q trình thích nghi phần mềm Một thành phần chế điều khiển tái cấu hình (reconfigurator) Bộ điều khiển điều khiển q trình thích nghi phần mềm bao gồm hoạt động dừng thành phần, xóa bỏ thành phần, thêm khởi động thành phần mới, thay đổi kết nối thành phần, đọc ghi trạng thái, vv Trong nghiên cứu này, tập trung vào chế để đọc ghi trạng thái thơng qua mơ hình chuyển đổi trạng thái Hình 3-4 biễu diển chế chuyển đổi trạng thái sử dụng mơ hình chuyển đổi trạng thái đề cập Cơ chế dựa thành phần bị thay thành phần thay Các thành phần xác định cách tính tốn khác hai cấu hình trước sau thực q trình thích nghi (current configuration new configuration) Kết q trình tính tồn cho phép xác định thành phần bị loại bỏ khỏi hệ thống (placement componens), thành phần thêm vào (replacement components) Dựa tập thành phần bị thay thay mơ hình chuyển đổi trạng thái đặc tả, hoạt động chuyển đổi trạng thái xác định Các hoạt động mô tả kịch chuyển đổi trạng thái Kịch chuyển đổi trạng thái sinh tự động mơ đun sinh kịch Mô đun xây dựng dựa tảng Xpand2 Hình 3-4 Cơ chế chuyển đổi trạng thái http://wiki.eclipse.org/Xpand 13 Để thực thi kịch chuyển đổi trạng thái hệ thống chạy, điều khiển tái cấu hình cần có số chức cho phép đọc ghi trạng thái Những chức can thiệp vào biến bên thành phần thay bị thay Như đề cập trên, trước ghi trạng thái thành phần mới, trạng thái biến đổi theo hàm định nghĩa mơ hình chuyển đổi trạng thái 3.4 Ứng dụng thử nghiệm giải pháp chuyển đổi trạng thái Để thử nghiệm cho giải pháp đề xuất, chúng tơi kế thừa ví dụ thực q trình thích nghi3 Ví dụ đề cập dịch vụ web với kiến trúc mơ tả hình Hình 3-5 Giả sử, thành phần helloServer bị loại bỏ khỏi hệ thống thông qua q trình thích nghi thành phần dynEngine dynHello thêm vào hệ thống Dịch vụ web khởi tạo với bốn thành phần gồm: receiver, dispatcher, fileServer helloServer Thành phần receiver nhận giải mã yêu cầu Thành phần dispatcher điều hướng yêu cầu phù hợp đến dịch vụ khác fileServer helloServer Thành phần fileServer xác định tên tập tin yêu cầu gửi trả lời tương ứng Thành phần helloServer phản hồi thông điệp với thông tin dạng văn Mỗi thành phần cung cấp dịch vụ với giao diện nó, chẳng hạn fileServer cung cấp giao diện với tên serve cho phép nhận yêu cầu Hình 3-5 Dịch vụ web Chúng xây dựng ứng dụng tảng mơ hình thành phần OSGi/iPOJO Mơ hình cho phép xây dựng ứng dụng động nghĩa hỗ trợ thêm loại bỏ thành phần lúc hệ thống chạy Ngồi mơ hình cung cấp dịch vụ cho phép đọc ghi trạng thái thành phần độc lập Ngoài ra, sử dụng CXF framework để kết nối thành phần trên4 Kịch thích nghi ví dụ việc thay helloServer hai thành phần dynEngine dynHello Thành phần fileServer không bị ảnh hưởng q trình thích nghi nên nhận xử lý u cầu suốt q trình thích nghi hệ thống J Buisson, E Leroux, F Dagnat, and E Leroux, “Safe reconfiguration of Coqcots and Pycots components,” J Syst Softw., 2015 https://github.com/nthohuynh/project_dn2018 14 Quá trình thích nghi để thực việc thay đổi bao gồm bước sau: 1) tách thành phần helloServer chặn tất yêu cầu mới, 2) thêm kích hoạt thành phần mới, dynEngine dynHello, 3) thay đổi kết nối từ thành phần dispacher tơi thành phần dynEngine, 4) chuyển đổi yêu cầu bị chặn helloServer sang thành phần dynEngine, 5)Kích hoạt xử lý yêu cầu dynEngine, 6) xóa bỏ helloServer Trong nghiên cứu quan tâm bước thứ tư liên quan đến việc chuyển đổi yêu cầu sang thành phần Để xác định bước thứ tư q trình thích nghi, điều khiển thích nghi (reconfigurator) cần vài thông tin liên quan đến việc ánh xạ trạng thái helloServer dynEngine Thông tin đặt tả mơ hình chuyển đổi trạng thái dạng XML sau: Trong mơ hình đặc tả trên, biến buffer thành phần helloServer chứa yêu cầu nhận từ thành phần dispatcher Một biến tên newBufffer dynEngine thể không gian lưu trữ yêu cầu chuyển từ buffer sang Cả hai thành phần helloServer dynEngine cung cấp dịch vụ với giao diện HelloServer/serve Dựa vào mô hình chuyển đơi trạng thái, thành phần điều khiển xác định trạng thái chuyển đổi 3.5 Kết luận chương Chương trình bày mơ hình chuyển đổi trạng thái áp dụng trình phát triển phần mềm thích nghi để đặc tả ánh xạ trạng thái thành phần thay đổi Mơ hình cho phép xác định hoạt động chuyển đổi trạng thái tương ứng thành phần thông qua hàm chuyển đổi kiểu liệu đặc tả Mơ hình định nghĩa EMF framework tích hợp Eclipse Dựa vào tập API sinh từ tảng cho phép xây dựng chế chuyển đổi trạng thái phù hợp Mơ hình thiết kế q trình phát triển sử dụng lúc hệ thống chạy để xác định hoạt động chuyển đổi trạng thái Các 15 hoạt động chuyển đổi thực thơng qua điều khiển q trình thích nghi để thực việc chuyển đổi tương ứng Kết luận Nghiên cứu đề xuất giải pháp chuyển đổi trạng thái q trình phát triển phần mềm thích nghi Giải pháp đề xuất mơ hình đặc tả ánh xạ chuyển đổi trạng thái thành phần phần mềm thời điểm thiết kế Mơ hình đặc tả sử dụng phần mềm chạy để xác định hoạt động chuyển đổi trạng thái cụ thể Bên cạnh đề tài đề xuất chế sử dụng mơ hình chuyển đổi trạng thái để hỗ trợ thực việc chuyển đổi trạng thái q trình thích nghi hệ thống Mơ hình chuyển đổi trạng thái cho phép xác định ánh xạ trạng thái thành phần bị thay thành phần thay phần mềm thích nghi Bên cạnh đó, mơ hình hình cho phép đặc tả hàm biến đổi trạng thái thành phần bị thay thành phần thay Nhờ vào mơ hình này, phần điều khiển q trình thích nghi đọc trạng thái cụ thể thành phần bị thay thế, biến đổi (nếu có) ghi lại thành phần thay thông qua hoạt động đọc ghi Bên cạnh đó, đề tài đề xuất chế thực việc chuyển đổi trạng thái cách sử dụng mơ hình chuyển đổi trạng thái đầu vào bên cạnh hai cấu hình hệ thống: hệ thống chạy hệ thống sau thích nghi Cơ chế cho phép sinh kịch thích nghi (adaptation script) Kịch thực điều khiển q trình thích nghi áp dụng hoạt động đọc/ghi trạng thái, thêm/bớt thành phần lên hệ thống chạy Chúng áp dụng giải pháp đề xuất lên ví dụ cụ thể (một dịch vụ web đơn giản) thực việc chuyển đổi trạng thái lưu trữ thành phần phần mềm Nghiên cứu chưa quan tâm đến trạng thái truyền qua mạng Đây xem hướng phát triển để hoàn thiện chế chuyển đổi trạng thái q trình thích nghi Bên cạnh đó, cách tiếp cận chưa quan tâm đến việc phục hồi lại trạng thái trước q trình thích nghi bị lỗi khơng hồn thành Mặc dù nghiên cứu quan tâm đến trường hợp chuyển đổi trạng thái nhiên cịn số khía cạnh cần hoàn thiện Cụ thể, đề cập trên, nghiên cứu quan tậm việc chuyển đổi trạng thái biến lưu trữ thành phần mà chưa quan tâm đến liệu truyền mạng Bên cạnh trạng thái tiến trình thực thi thành phần chưa quan tâm Việc chuyển đổi trạng thái tiến trình phụ thuộc vào tảng hỗ trợ chuyển đổi trạng thái riêng phạm vi nghiên cứu đề tài Ngoài ra, việc quan tâm đến ràng buộc trạng thái vấn đề cần nghiên cứu, có nghĩa trạng thái chuyển trước, trạng thái chuyển sau Ví dụ, hệ thống client-server bị thay đổi hai phía client server Trong trường hợp để đảm bảo hệ thống hoạt động thông suốt, trạng thái 16 server phải thực trước sẵn sàng phục vụ trước chuyển đổi trạng thái client 17 ... vực nghi? ?n cứu chuyển đổi trạng thái áp dụng quy trình phát triển phần mềm thích nghi: - Đề xuất mơ hình đặc tả trạng thái để ứng dụng quy trình phát triển phần mềm thích nghi Mơ hình áp dụng. .. ứng Kết luận Nghi? ?n cứu đề xuất giải pháp chuyển đổi trạng thái trình phát triển phần mềm thích nghi Giải pháp đề xuất mơ hình đặc tả ánh xạ chuyển đổi trạng thái thành phần phần mềm thời điểm... Đề tài tập trung vào đối tượng gồm: Hệ thống phần mềm thích nghi, quy trình phát triển phần mềm thích nghi, chế chuyển đổi trạng thái Phạm vi nghi? ?n cứu đề tài tập trung vào việc chuyển đổi trạng