Software Architecture PDF
Document Details
Uploaded by ComfyHawkSEye779
Faculty of Commerce and Business Administration – BIS
2023
Ian Summerfield
Tags
Summary
This document provides an introduction to software architecture, covering different interpretations of the term. It emphasizes the importance of architectural design in creating reliable, secure, and effective software products. The document discusses components, their relationships, and the principles that guide their design and development. It also examines the factors that influence architectural decisions, such as maintainability and performance. The document provides a discussion on why architecture is important, and how it affects important software features such as security, usability and maintainability. It also includes various concepts such as a central security architecture, distributed architecture, and examples of architectural practices.
Full Transcript
ﻣﺘﺮﺟﻢ ﻣﻦ ﺍﻹﻧﺠﻠﻴﺰﻳﺔ ﺇﻟﻰ ﺍﻟﻌﺮﺑﻴﺔ www.onlinedoctranslator.com - ﺑﻰﺍﻯ ﺍﺱ 301 ﺃﻣﺬﻫﻞﻣﻘﺪﻣﺔ ﻓﻲ ﺗﺤﻠﻴﻞ ﻭﺗﺼﻤﻴﻢ ﺍﻟﻨﻈﻢ ﺑﻌﺾﻣﺤﺘﻮﻳﺎﺕ ﻣﺬﻛﺮﺍﺕ ﺍﻟﻤﺤﺎﺿﺮﺓ ﺗﺆﺧﺬﻣﻦ ﺇﻳﺎﻥﺳﻮﻣﺮﻓﻴﻞ © BIS3012023...
ﻣﺘﺮﺟﻢ ﻣﻦ ﺍﻹﻧﺠﻠﻴﺰﻳﺔ ﺇﻟﻰ ﺍﻟﻌﺮﺑﻴﺔ www.onlinedoctranslator.com - ﺑﻰﺍﻯ ﺍﺱ 301 ﺃﻣﺬﻫﻞﻣﻘﺪﻣﺔ ﻓﻲ ﺗﺤﻠﻴﻞ ﻭﺗﺼﻤﻴﻢ ﺍﻟﻨﻈﻢ ﺑﻌﺾﻣﺤﺘﻮﻳﺎﺕ ﻣﺬﻛﺮﺍﺕ ﺍﻟﻤﺤﺎﺿﺮﺓ ﺗﺆﺧﺬﻣﻦ ﺇﻳﺎﻥﺳﻮﻣﺮﻓﻴﻞ © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻹﻧﺸﺎءﻣﻨﺘﺞ ﻣﻮﺛﻮﻕ ﻭﺁﻣﻦ ﻭﻓﻌﺎﻝ ،ﻳﺠﺐ ﻋﻠﻴﻚ ﺍﻻﻫﺘﻤﺎﻡ ﺑﺎﻟﺘﺼﻤﻴﻢ ﺍﻟﻤﻌﻤﺎﺭﻱ ﺍﻟﺬﻱ ﻳﺸﻤﻞ: ﺗﻨﻈﻴﻤﻬﺎﺍﻟﻌﺎﻡ، ﻛﻴﻒﻳﺘﻢ ﺗﺤﻠﻴﻞ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺇﻟﻰ ﻣﻜﻮﻧﺎﺗﻪ، ﺗﻨﻈﻴﻢﺍﻟﺨﺎﺩﻡ ﺍﻟﺘﻘﻨﻴﺎﺕﺍﻟﺘﻲ ﺗﺴﺘﺨﺪﻣﻬﺎ ﻟﺒﻨﺎء ﺍﻟﺒﺮﻧﺎﻣﺞ.ﺗﺆﺛﺮ ﺑﻨﻴﺔ ﺍﻟﻤﻨﺘﺞ ﺍﻟﺒﺮﻣﺠﻲ ﻋﻠﻰ ﺃﺩﺍﺉﻪ ﻭﻗﺎﺑﻠﻴﺘﻪ ﻟﻼﺳﺘﺨﺪﺍﻡ ﻭﺃﻣﺎﻧﻪﻭﻣﻮﺛﻮﻗﻴﺘﻪ ﻭﺇﻣﻜﺎﻧﻴﺔ ﺻﻴﺎﻧﺘﻪ. ﻫﻨﺎﻙﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﺘﻔﺴﻴﺮﺍﺕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻟﻤﺼﻄﻠﺢ "ﻫﻨﺪﺳﺔ ﺍﻟﺒﺮﻣﺠﻴﺎﺕ". ﻳﺮﻛﺰﺍﻟﺒﻌﺾ ﻋﻠﻰ "ﺍﻟﻬﻨﺪﺳﺔ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ" ﺑﺎﻋﺘﺒﺎﺭﻫﺎ ﺍﺳﻤﺎً -ﺑﻨﻴﺔ ﺍﻟﻨﻈﺎﻡ ،ﺑﻴﻨﻤﺎ ﻳﻌﺘﺒﺮ ﺍﻟﺒﻌﺾ ﺍﻵﺧﺮ ﺃﻥ"ﺍﻟﻬﻨﺪﺳﺔ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ" ﻫﻲ ﻓﻌﻞ -ﻋﻤﻠﻴﺔ ﺗﻌﺮﻳﻒ ﻫﺬﻩ ﺍﻟﻬﻴﺎﻛﻞ. 3 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺠﺪﻭﻝ 4.1ﺗﻌﺮﻳﻒ ﻣﻌﻬﺪ ﻣﻬﻨﺪﺳﻲ ﺍﻟﻜﻬﺮﺑﺎء ﻭﺍﻹﻟﻜﺘﺮﻭﻧﻴﺎﺕ ﻟﻠﻬﻨﺪﺳﺔ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻟﻠﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﻬﻨﺪﺳﺔﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻫﻲ ﺍﻟﺘﻨﻈﻴﻢ ﺍﻷﺳﺎﺳﻲ ﻟﻨﻈﺎﻡ ﺑﺮﻣﺠﻲ ﻳﺘﺠﺴﺪ ﻓﻲ ﻣﻜﻮﻧﺎﺗﻪ ،ﻭﻋﻼﻗﺎﺗﻬﺎ ﻣﻊ ﺑﻌﻀﻬﺎ ﺍﻟﺒﻌﺾﻭﻣﻊ ﺍﻟﺒﻴﺉﺔ ،ﻭﺍﻟﻤﺒﺎﺩﺉ ﺍﻟﺘﻲ ﺗﻮﺟﻪ ﺗﺼﻤﻴﻤﻪ ﻭﺗﻄﻮﺭﻩ. 4 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻭﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﻤﻜﻮﻥﻫﻮ ﻋﻨﺼﺮ ﻳﻨﻔﺬ ﻣﺠﻤﻮﻋﺔ ﻣﺘﻤﺎﺳﻜﺔ ﻣﻦ ﺍﻟﻮﻇﺎﺉﻒ ﺃﻭ ﺍﻟﻤﻴﺰﺍﺕ. ﻳﻤﻜﻦﺍﻋﺘﺒﺎﺭ ﻣﻜﻮﻥ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺑﻤﺜﺎﺑﺔ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺧﺪﻣﺔ ﻭﺍﺣﺪﺓ ﺃﻭ ﺃﻛﺜﺮ ﻳﻤﻜﻦ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﺑﻮﺍﺳﻄﺔﻣﻜﻮﻧﺎﺕ ﺃﺧﺮﻯ. ﻋﻨﺪﺗﺼﻤﻴﻢ ﺑﻨﻴﺔ ﺍﻟﺒﺮﻧﺎﻣﺞ ،ﻟﻴﺲ ﻋﻠﻴﻚ ﺃﻥ ﺗﻘﺮﺭ ﻛﻴﻔﻴﺔ ﺗﻨﻔﻴﺬ ﻋﻨﺼﺮ ﺃﻭ ﻣﻜﻮﻥ ﻣﻌﻤﺎﺭﻱ. ﻭﺑﺪﻻ ًﻣﻦ ﺫﻟﻚ ،ﻳﻤﻜﻨﻚ ﺗﺼﻤﻴﻢ ﻭﺍﺟﻬﺔ ﺍﻟﻤﻜﻮﻧﺎﺕ ﻭﺗﺮﻙ ﺗﻨﻔﻴﺬ ﺗﻠﻚ ﺍﻟﻮﺍﺟﻬﺔ ﺇﻟﻰ ﻣﺮﺣﻠﺔﻻﺣﻘﺔ ﻣﻦ ﻋﻤﻠﻴﺔ ﺍﻟﺘﻄﻮﻳﺮ. 5 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.1ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﺨﺪﻣﺎﺕ ﺍﻟﺘﻲ ﺗﻮﻓﺮﻫﺎ ﻣﻜﻮﻧﺎﺕ ﺍﻟﺒﺮﺍﻣﺞ ﺍﻟﺨﺪﻣﺎﺕﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻴﻬﺎ ﻣﻦ ﺧﻼﻝ ﻣﻜﻮﻥAPI ﺍﻟﺨﺪﻣﺎﺕﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻴﻬﺎ ﻣﺒﺎﺷﺮﺓ ﺑﻮﺍﺳﻄﺔﻣﻜﻮﻧﺎﺕ ﺃﺧﺮﻯ ﻭﺍﺟﻬﺔﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺱ6 ﺱ5 ﺱ4 ﺱ3 ﺱ2 ﺱ1 ﺍﻟﻤﻜﻮﻥ2 ﺍﻟﻤﻜﻮﻥ1 6 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻟﻤﺎﺫﺍﺗﻌﺘﺒﺮ ﺍﻟﻬﻨﺪﺳﺔ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻣﻬﻤﺔ؟ ﺗﻌﺘﺒﺮﺍﻟﻬﻨﺪﺳﺔ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻣﻬﻤﺔ ﻷﻥ ﻫﻨﺪﺳﺔ ﺍﻟﻨﻈﺎﻡ ﻟﻬﺎ ﺗﺄﺛﻴﺮ ﺃﺳﺎﺳﻲ ﻋﻠﻰ ﺧﺼﺎﺉﺺ ﺍﻟﻨﻈﺎﻡ ﻏﻴﺮﺍﻟﻮﻇﻴﻔﻴﺔ ،ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ ﺍﻟﺠﺪﻭﻝ .4.2 ﻳﺘﻀﻤﻦﺍﻟﺘﺼﻤﻴﻢ ﺍﻟﻤﻌﻤﺎﺭﻱ ﻓﻬﻢ ﺍﻟﻘﻀﺎﻳﺎ ﺍﻟﺘﻲ ﺗﺆﺛﺮ ﻋﻠﻰ ﻫﻨﺪﺳﺔ ﻣﻨﺘﺠﻚ ﻭﺇﻧﺸﺎء ﻭﺻﻒ ﻣﻌﻤﺎﺭﻱﻳﻮﺿﺢ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻷﺳﺎﺳﻴﺔ ﻭﻋﻼﻗﺎﺗﻬﺎ. ﻳﺠﺐﺃﻥ ﻳﻜﻮﻥ ﺗﻘﻠﻴﻞ ﺍﻟﺘﻌﻘﻴﺪ ﻫﺪﻓﺎً ﻣﻬﻤﺎً ﻟﻤﺼﻤﻤﻲ ﺍﻟﻌﻤﺎﺭﺓ. ﻛﻠﻤﺎﻛﺎﻥ ﺍﻟﻨﻈﺎﻡ ﻣﻌﻘﺪﺍً ،ﻛﻠﻤﺎ ﻛﺎﻥ ﻓﻬﻤﻪ ﻭﺗﻐﻴﻴﺮﻩ ﺃﻛﺜﺮ ﺻﻌﻮﺑﺔ ﻭﺗﻜﻠﻔﺔ. ﻣﻦﺍﻟﻤﺮﺟﺢ ﺃﻥ ﻳﺮﺗﻜﺐ ﺍﻟﻤﺒﺮﻣﺠﻮﻥ ﺍﻷﺧﻄﺎء ﻭﻳﻘﺪﻣﻮﻥ ﺍﻷﺧﻄﺎء ﻭﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﻋﻨﺪﻣﺎ ﻳﻘﻮﻣﻮﻥ ﺑﺘﻌﺪﻳﻞﺃﻭ ﺗﻮﺳﻴﻊ ﻧﻈﺎﻡ ﻣﻌﻘﺪ. 7 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺠﺪﻭﻝ 4.2ﺳﻤﺎﺕ ﺟﻮﺩﺓ ﺍﻟﻨﻈﺎﻡ ﻏﻴﺮ ﺍﻟﻮﻇﻴﻔﻲ ﺍﻻﺳﺘﺠﺎﺑﺔ ﻫﻞﻳﻘﻮﻡ ﺍﻟﻨﻈﺎﻡ ﺑﺈﺭﺟﺎﻉ ﺍﻟﻨﺘﺎﺉﺞ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﻓﻲ ﻭﻗﺖ ﻣﻌﻘﻮﻝ؟ ﻣﺼﺪﺍﻗﻴﺔ ﻫﻞﺗﻌﻤﻞ ﻣﻴﺰﺍﺕ ﺍﻟﻨﻈﺎﻡ ﻛﻤﺎ ﻫﻮ ﻣﺘﻮﻗﻊ ﻣﻦ ﻗﺒﻞ ﺍﻟﻤﻄﻮﺭﻳﻦ ﻭﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ؟ ﺍﻟﺘﻮﻓﺮ ﻫﻞﻳﺴﺘﻄﻴﻊ ﺍﻟﻨﻈﺎﻡ ﺗﻘﺪﻳﻢ ﺧﺪﻣﺎﺗﻪ ﻋﻨﺪ ﻃﻠﺒﻬﺎ ﻣﻦ ﻗﺒﻞ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ؟ ﺣﻤﺎﻳﺔ ﻫﻞﻳﻘﻮﻡ ﺍﻟﻨﻈﺎﻡ ﺑﺤﻤﺎﻳﺔ ﻧﻔﺴﻪ ﻭﺑﻴﺎﻧﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﻭﺍﻻﺧﺘﺮﺍﻗﺎﺕ ﻏﻴﺮ ﺍﻟﻤﺼﺮﺡ ﺑﻬﺎ؟ ﻗﺎﺑﻠﻴﺔﺍﻻﺳﺘﺨﺪﺍﻡ ﻫﻞﻳﻤﻜﻦ ﻟﻤﺴﺘﺨﺪﻣﻲ ﺍﻟﻨﻈﺎﻡ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﻤﻴﺰﺍﺕ ﺍﻟﺘﻲ ﻳﺤﺘﺎﺟﻮﻧﻬﺎ ﻭﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﺑﺴﺮﻋﺔ ﻭﺑﺪﻭﻥ ﺃﺧﻄﺎء؟ ﻗﺎﺑﻠﻴﺔﺍﻟﺼﻴﺎﻧﺔ ﻫﻞﻳﻤﻜﻦ ﺗﺤﺪﻳﺚ ﺍﻟﻨﻈﺎﻡ ﺑﺴﻬﻮﻟﺔ ﻭﺇﺿﺎﻓﺔ ﻣﻴﺰﺍﺕ ﺟﺪﻳﺪﺓ ﺩﻭﻥ ﺗﻜﺎﻟﻴﻒ ﻏﻴﺮ ﺿﺮﻭﺭﻳﺔ؟ ﺻﻤﻮﺩ ﻫﻞﻳﻤﻜﻦ ﻟﻠﻨﻈﺎﻡ ﺍﻻﺳﺘﻤﺮﺍﺭ ﻓﻲ ﺗﻘﺪﻳﻢ ﺍﻟﺨﺪﻣﺎﺕ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﻓﻲ ﺣﺎﻟﺔ ﺍﻟﻔﺸﻞ ﺍﻟﺠﺰﺉﻲ ﺃﻭ ﺍﻟﻬﺠﻮﻡ ﺍﻟﺨﺎﺭﺟﻲ؟ 8 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺠﺪﻭﻝ 4.3ﺗﺄﺛﻴﺮ ﺃﻣﻦ ﺍﻟﻨﻈﺎﻡ ﻋﻠﻰ ﺑﻨﻴﺔ ﺍﻟﻨﻈﺎﻡ ﻫﻨﺪﺳﺔﺃﻣﻨﻴﺔ ﻣﺮﻛﺰﻳﺔ ﻓﻲﻓﻴﻠﻢ ( Rogue One )https://en.wikipedia.org/wiki/Rogue_Oneﺍﻟﺬﻱ ﺳﺒﻖ ﺳﻠﺴﻠﺔ ﺃﻓﻼﻡ ،Star Warsﺧﺰﻧّﺖ ﺍﻹﻣﺒﺮﺍﻃﻮﺭﻳﺔ ﺍﻟﺸﺮﻳﺮﺓ ﺧﻄﻂ ﺟﻤﻴﻊ ﻣﻌﺪﺍﺗﻬﺎ ﻓﻲ ﻣﻜﺎﻥ ﻭﺍﺣﺪ ﺑﻌﻴﺪ ﺷﺪﻳﺪ ﺍﻟﺤﺮﺍﺳﺔﻭﺷﺪﻳﺪ ﺍﻷﻣﺎﻥ.ﻭﻳﻄُﻠﻖ ﻋﻠﻰ ﻫﺬﺍ ﺍﺳﻢ ﺑﻨﻴﺔ ﺍﻷﻣﺎﻥ ﺍﻟﻤﺮﻛﺰﻳﺔ.ﻭﻫﻲ ﺗﺴﺘﻨﺪ ﺇﻟﻰ ﺍﻟﻤﺒﺪﺃ ﺍﻟﻘﺎﺉﻞ ﺑﺄﻧﻪﺇﺫﺍ ﺍﺣﺘﻔﻈﺖ ﺑﺠﻤﻴﻊ ﻣﻌﻠﻮﻣﺎﺗﻚ ﻓﻲ ﻣﻜﺎﻥ ﻭﺍﺣﺪ ،ﻓﻴﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻜﺜﻴﺮ ﻣﻦ ﺍﻟﻤﻮﺍﺭﺩ ﻟﺤﻤﺎﻳﺔ ﺗﻠﻚ ﺍﻟﻤﻌﻠﻮﻣﺎﺕﻭﺿﻤﺎﻥ ﻋﺪﻡ ﺗﻤﻜﻦ ﺍﻟﻤﺘﺴﻠﻠﻴﻦ ﻣﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻴﻬﺎ. ﻟﺴﻮءﺍﻟﺤﻆ )ﺑﺎﻟﻨﺴﺒﺔ ﻟﻺﻣﺒﺮﺍﻃﻮﺭﻳﺔ( ،ﺗﻤﻜﻦ ﺍﻟﻤﺘﻤﺮﺩﻭﻥ ﻣﻦ ﺍﺧﺘﺮﺍﻕ ﺃﻣﻨﻬﻢ.ﻟﻘﺪ ﺳﺮﻗﻮﺍ ﻣﺨﻄﻄﺎﺕ ﻧﺠﻤﺔ ﺍﻟﻤﻮﺕ،ﻭﻫﻮ ﺍﻟﺤﺪﺙ ﺍﻟﺬﻱ ﻳﺪﻋﻢ ﻣﻠﺤﻤﺔ ﺣﺮﺏ ﺍﻟﻨﺠﻮﻡ ﺑﺄﻛﻤﻠﻬﺎ.ﻭﻓﻲ ﻣﺤﺎﻭﻟﺔ ﻟﻤﻨﻌﻬﻢ ،ﺩﻣﺮﺕ ﺍﻹﻣﺒﺮﺍﻃﻮﺭﻳﺔﺃﺭﺷﻴﻔﻬﺎ ﺑﺎﻟﻜﺎﻣﻞ ﻣﻦ ﻭﺛﺎﺉﻖ ﺍﻟﻨﻈﺎﻡ ،ﻭﻻ ﺃﺣﺪ ﻳﻌﺮﻑ ﻣﺎ ﻫﻲ ﺍﻟﺘﻜﺎﻟﻴﻒ ﺍﻟﻨﺎﺗﺠﺔ ﻋﻦ ﺫﻟﻚ.ﻟﻮ ﺍﺧﺘﺎﺭﺕﺍﻹﻣﺒﺮﺍﻃﻮﺭﻳﺔ ﺑﻨﻴﺔ ﺃﻣﺎﻥ ﻣﻮﺯﻋﺔ ،ﻣﻊ ﺗﺨﺰﻳﻦ ﺃﺟﺰﺍء ﻣﺨﺘﻠﻔﺔ ﻣﻦ ﻣﺨﻄﻄﺎﺕ ﻧﺠﻤﺔ ﺍﻟﻤﻮﺕ ﻓﻲ ﻣﻮﺍﻗﻊﻣﺨﺘﻠﻔﺔ ،ﻓﺈﻥ ﺳﺮﻗﺔ ﺍﻟﻤﺨﻄﻄﺎﺕ ﻛﺎﻧﺖ ﻟﺘﻜﻮﻥ ﺃﻛﺜﺮ ﺻﻌﻮﺑﺔ.ﻛﺎﻥ ﻋﻠﻰ ﺍﻟﻤﺘﻤﺮﺩﻳﻦ ﺍﺧﺘﺮﺍﻕ ﺍﻷﻣﻦ ﻓﻲﺟﻤﻴﻊ ﺍﻟﻤﻮﺍﻗﻊ ﻟﺴﺮﻗﺔ ﻣﺨﻄﻄﺎﺕ ﻧﺠﻤﺔ ﺍﻟﻤﻮﺕ ﺍﻟﻜﺎﻣﻠﺔ. 9 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻫﻨﺪﺳﺔﺍﻷﻣﻦ ﺍﻟﻤﺮﻛﺰﻳﺔ ﺗﺘﻤﺜﻞﻓﻮﺍﺉﺪ ﺑﻨﻴﺔ ﺍﻷﻣﺎﻥ ﺍﻟﻤﺮﻛﺰﻳﺔ ﻓﻲ ﺗﺴﻬﻴﻞ ﺗﺼﻤﻴﻢ ﻭﺑﻨﺎء ﺍﻟﺤﻤﺎﻳﺔ ﻭﺇﻣﻜﺎﻧﻴﺔ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﺤﻤﻴﺔ ﺑﻜﻔﺎءﺓ ﺃﻛﺒﺮ. ﻭﻣﻊﺫﻟﻚ ،ﺇﺫﺍ ﺗﻢ ﺍﺧﺘﺮﺍﻕ ﺃﻣﻨﻚ ،ﻓﺈﻧﻚ ﺗﻔﻘﺪ ﻛﻞ ﺷﻲء. ﺇﺫﺍﻗﻤﺖ ﺑﺘﻮﺯﻳﻊ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ،ﻓﺈﻥ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻛﺎﻓﺔ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﻳﺴﺘﻐﺮﻕ ﻭﻗﺘﺎًﺃﻃﻮﻝ ﻭﻳﻜﻠﻒ ﺍﻟﻤﺰﻳﺪ ﻟﺤﻤﺎﻳﺘﻬﺎ. ﺇﺫﺍﺗﻢ ﺍﺧﺘﺮﺍﻕ ﺍﻷﻣﺎﻥ ﻓﻲ ﻣﻜﺎﻥ ﻭﺍﺣﺪ ،ﻓﻠﻦ ﺗﻔﻘﺪ ﺳﻮﻯ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﺘﻲ ﻗﻤﺖ ﺑﺘﺨﺰﻳﻨﻬﺎ ﻫﻨﺎﻙ. 10 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺇﻣﻜﺎﻧﻴﺔﺍﻟﺼﻴﺎﻧﺔ ﻭﺍﻷﺩﺍء ﻳﻮﺿﺢﺍﻟﺸﻜﻞ 4.2ﻧﻈﺎﻣﺎً ﻳﺘﻜﻮﻥ ﻣﻦ ﻣﻜﻮﻧﻴﻦ ) C1ﻭ (C2ﻳﺸﺘﺮﻛﺎﻥ ﻓﻲ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﻣﺸﺘﺮﻛﺔ. ﺍﻓﺘﺮﺽﺃﻥ C1ﻳﻌﻤﻞ ﺑﺒﻂء ﻷﻧﻪ ﻳﺘﻌﻴﻦ ﻋﻠﻴﻪ ﺇﻋﺎﺩﺓ ﺗﻨﻈﻴﻢ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﻓﻲ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻗﺒﻞ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ. ﺭﺑﻤﺎﺗﻜﻮﻥ ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﻮﺣﻴﺪﺓ ﻟﺠﻌﻞ C1ﺃﺳﺮﻉ ﻫﻲ ﺗﻐﻴﻴﺮ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ.ﻭﻫﺬﺍ ﻳﻌﻨﻲ ﺃﻧﻪ ﻳﺠﺐ ﺃﻳﻀﺎً ﺗﻐﻴﻴﺮ ،C2ﻭﻫﻮ ﻣﺎ ﻗﺪ ﻳﺆﺛﺮ ﻋﻠﻰ ﻭﻗﺖ ﺍﻻﺳﺘﺠﺎﺑﺔ. ﻓﻲﺍﻟﺸﻜﻞ ،4.3ﺗﻢ ﺍﺳﺘﺨﺪﺍﻡ ﺑﻨﻴﺔ ﻣﺨﺘﻠﻔﺔ ﺣﻴﺚ ﻳﺤﺘﻮﻱ ﻛﻞ ﻣﻜﻮﻥ ﻋﻠﻰ ﻧﺴﺨﺘﻪ ﺍﻟﺨﺎﺻﺔ ﻣﻦﺃﺟﺰﺍء ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﻳﺤﺘﺎﺟﻬﺎ. ﺇﺫﺍﺍﺣﺘﺎﺝ ﺃﺣﺪ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺇﻟﻰ ﺗﻐﻴﻴﺮ ﺗﻨﻈﻴﻢ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ،ﻓﻠﻦ ﻳﺆﺛﺮ ﻫﺬﺍ ﻋﻠﻰ ﺍﻟﻤﻜﻮﻥ ﺍﻵﺧﺮ. ﻭﻣﻊﺫﻟﻚ ،ﻓﺈﻥ ﺑﻨﻴﺔ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺘﻌﺪﺩﺓ ﻗﺪ ﺗﻌﻤﻞ ﺑﺸﻜﻞ ﺃﺑﻄﺄ ﻭﻗﺪ ﺗﻜﻠﻒ ﺃﻛﺜﺮ ﻓﻲ ﺍﻟﺘﻨﻔﻴﺬﻭﺍﻟﺘﻐﻴﻴﺮ. ﺗﺤﺘﺎﺝﺑﻨﻴﺔ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺘﻌﺪﺩﺓ ﺇﻟﻰ ﺁﻟﻴﺔ )ﺍﻟﻤﻜﻮﻥ (C3ﻟﻀﻤﺎﻥ ﺍﺗﺴﺎﻕ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺸﺘﺮﻛﺔ ﺑﻴﻦ C1ﻭ C2ﻋﻨﺪ ﺗﻐﻴﻴﺮﻫﺎ. 11 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.2ﺑﻨﻴﺔ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺸﺘﺮﻛﺔ ﻭﺍﺟﻬﺔﺍﻟﻤﺴﺘﺨﺪﻡ ﺳﻲ 2 ﺝ1 ﻗﺎﻋﺪﺓﺑﻴﺎﻧﺎﺕ ﻣﺸﺘﺮﻛﺔ 12 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ.4.3ﺑﻨﻴﺔ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺘﻌﺪﺩﺓ ﻭﺍﺟﻬﺔﺍﻟﻤﺴﺘﺨﺪﻡ ﺳﻲ 2 ﺝ1 ﻗﺎﻋﺪﺓﺑﻴﺎﻧﺎﺕ C2 ﻗﺎﻋﺪﺓﺑﻴﺎﻧﺎﺕ C1 ﺳﻲ 3 ﺍﻟﺘﻮﻓﻴﻖﺑﻴﻦ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ 13 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.4ﺍﻟﻘﻀﺎﻳﺎ ﺍﻟﺘﻲ ﺗﺆﺛﺮ ﻋﻠﻰ ﺍﻟﻘﺮﺍﺭﺍﺕ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻏﻴﺮﻭﻇﻴﻔﻲ ﺧﺼﺎﺉﺺﺍﻟﻤﻨﺘﺞ ﻣﻨﺘﺞ ﺑﺮﻣﺠﺔ ﺣﻴﺎﺓ ﺍﻟﺘﻮﺍﻓﻖ ﻣﻌﻤﺎﺭﻱ ﺍﻟﺘﺄﺛﻴﺮﺍﺕ ﺑﺮﻣﺠﺔ ﻋﺪﺩﻣﻦ ﺇﻋﺎﺩﺓﺍﻻﺳﺘﺨﺪﺍﻡ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ 14 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺠﺪﻭﻝ 4.4ﺃﻫﻤﻴﺔ ﻗﻀﺎﻳﺎ ﺍﻟﺘﺼﻤﻴﻢ ﺍﻟﻤﻌﻤﺎﺭﻱ ﺧﺼﺎﺉﺺﺍﻟﻤﻨﺘﺞ ﻏﻴﺮ ﺍﻟﻮﻇﻴﻔﻴﺔ ﺗﺆﺛﺮﺧﺼﺎﺉﺺ ﺍﻟﻤﻨﺘﺞ ﻏﻴﺮ ﺍﻟﻮﻇﻴﻔﻴﺔ ﻣﺜﻞ ﺍﻷﻣﺎﻥ ﻭﺍﻷﺩﺍء ﻋﻠﻰ ﺟﻤﻴﻊ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ.ﺇﺫﺍ ﺃﺧﻄﺄﺕ ﻓﻲ ﻫﺬﻩ ﺍﻟﺨﺼﺎﺉﺺ،ﻓﻤﻦ ﻏﻴﺮ ﺍﻟﻤﺮﺟﺢ ﺃﻥ ﻳﺤﻘﻖ ﻣﻨﺘﺠﻚ ﻧﺠﺎﺣﺎً ﺗﺠﺎﺭﻳﺎً.ﻟﺴﻮء ﺍﻟﺤﻆ ،ﺑﻌﺾ ﺍﻟﺨﺼﺎﺉﺺ ﻣﺘﻌﺎﺭﺿﺔ ،ﻟﺬﺍ ﻻ ﻳﻤﻜﻨﻚﺗﺤﺴﻴﻦ ﺳﻮﻯ ﺍﻟﺨﺼﺎﺉﺺ ﺍﻷﻛﺜﺮ ﺃﻫﻤﻴﺔ. ﻋﻤﺮﺍﻟﻤﻨﺘﺞ ﺇﺫﺍﻛﻨﺖ ﺗﺘﻮﻗﻊ ﻋﻤﺮﺍً ﺍﻓﺘﺮﺍﺿﻴﺎً ﻃﻮﻳﻼً ﻟﻠﻤﻨﺘﺞ ،ﻓﺴﻮﻑ ﺗﺤﺘﺎﺝ ﺇﻟﻰ ﺇﻧﺸﺎء ﻣﺮﺍﺟﻌﺎﺕ ﻣﻨﺘﻈﻤﺔ ﻟﻠﻤﻨﺘﺞ.ﻟﺬﻟﻚ ،ﻓﺄﻧﺖ ﺑﺤﺎﺟﺔﺇﻟﻰ ﺑﻨﻴﺔ ﻗﺎﺑﻠﺔ ﻟﻠﺘﻄﻮﺭ ،ﺑﺤﻴﺚ ﻳﻤﻜﻦ ﺗﻜﻴﻴﻔﻬﺎ ﻻﺳﺘﻴﻌﺎﺏ ﺍﻟﻤﻴﺰﺍﺕ ﻭﺍﻟﺘﻜﻨﻮﻟﻮﺟﻴﺎ ﺍﻟﺠﺪﻳﺪﺓ. ﺇﻋﺎﺩﺓﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻳﻤﻜﻨﻚﺗﻮﻓﻴﺮ ﺍﻟﻜﺜﻴﺮ ﻣﻦ ﺍﻟﻮﻗﺖ ﻭﺍﻟﺠﻬﺪ ﺇﺫﺍ ﻛﺎﻥ ﺑﺈﻣﻜﺎﻧﻚ ﺇﻋﺎﺩﺓ ﺍﺳﺘﺨﺪﺍﻡ ﻣﻜﻮﻧﺎﺕ ﻛﺒﻴﺮﺓ ﻣﻦ ﻣﻨﺘﺠﺎﺕ ﺃﺧﺮﻯ ﺃﻭ ﺑﺮﺍﻣﺞﻣﻔﺘﻮﺣﺔ ﺍﻟﻤﺼﺪﺭ.ﻭﻣﻊ ﺫﻟﻚ ،ﻓﺈﻥ ﻫﺬﺍ ﻳﻘﻴﺪ ﺍﺧﺘﻴﺎﺭﺍﺗﻚ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻷﻧﻚ ﻳﺠﺐ ﺃﻥ ﺗﺘﻨﺎﺳﺐ ﻣﻊ ﺗﺼﻤﻴﻤﻚ ﺣﻮﻝﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﺬﻱ ﻳﺘﻢ ﺇﻋﺎﺩﺓ ﺍﺳﺘﺨﺪﺍﻣﻪ. ﻋﺪﺩﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺇﺫﺍﻛﻨﺖ ﺗﻘﻮﻡ ﺑﺘﻄﻮﻳﺮ ﺑﺮﺍﻣﺞ ﻟﻠﻤﺴﺘﻬﻠﻜﻴﻦ ﻳﺘﻢ ﺗﺴﻠﻴﻤﻬﺎ ﻋﺒﺮ ﺍﻹﻧﺘﺮﻧﺖ ،ﻓﻘﺪ ﻳﺘﻐﻴﺮ ﻋﺪﺩ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺑﺴﺮﻋﺔ ﻛﺒﻴﺮﺓ. ﻭﻗﺪﻳﺆﺩﻱ ﻫﺬﺍ ﺇﻟﻰ ﺗﺪﻫﻮﺭ ﺧﻄﻴﺮ ﻓﻲ ﺍﻷﺩﺍء ﻣﺎ ﻟﻢ ﺗﻘﻢ ﺑﺘﺼﻤﻴﻢ ﺑﻨﻴﺘﻚ ﺑﺤﻴﺚ ﻳﻤﻜﻦ ﺗﻮﺳﻴﻊ ﻧﻄﺎﻕ ﻧﻈﺎﻣﻚ ﻭﺗﻘﻠﻴﺼﻪ ﺑﺴﺮﻋﺔ. ﺗﻮﺍﻓﻖﺍﻟﺒﺮﺍﻣﺞ ﺑﺎﻟﻨﺴﺒﺔﻟﺒﻌﺾ ﺍﻟﻤﻨﺘﺠﺎﺕ ،ﻣﻦ ﺍﻟﻤﻬﻢ ﺍﻟﺤﻔﺎﻅ ﻋﻠﻰ ﺍﻟﺘﻮﺍﻓﻖ ﻣﻊ ﺑﺮﺍﻣﺞ ﺃﺧﺮﻯ ﺣﺘﻰ ﻳﺘﻤﻜﻦ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥ ﻣﻦ ﺗﺒﻨﻲ ﻣﻨﺘﺠﻚﻭﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻌﺪﺓ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻧﻈﺎﻡ ﻣﺨﺘﻠﻒ.ﻗﺪ ﻳﺤﺪ ﻫﺬﺍ ﻣﻦ ﺍﻟﺨﻴﺎﺭﺍﺕ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ،ﻣﺜﻞ ﺑﺮﻧﺎﻣﺞ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕﺍﻟﺬﻱ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻣﻪ. 15 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﻤﻘﺎﻳﻀﺔ:ﺇﻣﻜﺎﻧﻴﺔ ﺍﻟﺼﻴﺎﻧﺔ ﻣﻘﺎﺑﻞ ﺍﻷﺩﺍء ﺇﻣﻜﺎﻧﻴﺔﺻﻴﺎﻧﺔ ﺍﻟﻨﻈﺎﻡ ﻫﻲ ﺳﻤﺔ ﺗﻌﻜﺲ ﻣﺪﻯ ﺻﻌﻮﺑﺔ ﻭﺗﻜﻠﻔﺔ ﺇﺟﺮﺍء ﺗﻐﻴﻴﺮﺍﺕ ﻋﻠﻰ ﺍﻟﻨﻈﺎﻡ ﺑﻌﺪ ﺇﺻﺪﺍﺭﻩﻟﻠﻌﻤﻼء. ﻳﻤﻜﻨﻚﺗﺤﺴﻴﻦ ﺇﻣﻜﺎﻧﻴﺔ ﺍﻟﺼﻴﺎﻧﺔ ﻋﻦ ﻃﺮﻳﻖ ﺑﻨﺎء ﻧﻈﺎﻡ ﻣﻦ ﺃﺟﺰﺍء ﺻﻐﻴﺮﺓ ﻣﺴﺘﻘﻠﺔ ،ﻳﻤﻜﻦ ﺍﺳﺘﺒﺪﺍﻝﻛﻞ ﻣﻨﻬﺎ ﺃﻭ ﺗﺤﺴﻴﻨﻬﺎ ﺇﺫﺍ ﻛﺎﻧﺖ ﻫﻨﺎﻙ ﺣﺎﺟﺔ ﺇﻟﻰ ﺇﺟﺮﺍء ﺗﻐﻴﻴﺮﺍﺕ. ﻣﻦﺍﻟﻨﺎﺣﻴﺔ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ،ﻫﺬﺍ ﻳﻌﻨﻲ ﺃﻥ ﺍﻟﻨﻈﺎﻡ ﻳﺠﺐ ﺃﻥ ﻳﻨﻘﺴﻢ ﺇﻟﻰ ﻣﻜﻮﻧﺎﺕ ﺩﻗﻴﻘﺔ ،ﻛﻞ ﻣﻨﻬﺎ ﻳﻘﻮﻡﺑﺸﻲء ﻭﺍﺣﺪ ﻓﻘﻂ. ﻭﻣﻊﺫﻟﻚ ،ﻳﺴﺘﻐﺮﻕ ﺍﻷﻣﺮ ﺑﻌﺾ ﺍﻟﻮﻗﺖ ﺣﺘﻰ ﺗﺘﻮﺍﺻﻞ ﺍﻟﻤﻜﻮﻧﺎﺕ ﻣﻊ ﺑﻌﻀﻬﺎ ﺍﻟﺒﻌﺾ.ﻭﺑﺎﻟﺘﺎﻟﻲ، ﺇﺫﺍﻛﺎﻧﺖ ﻫﻨﺎﻙ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﻤﺸﺎﺭﻛﺔ ﻓﻲ ﺗﻨﻔﻴﺬ ﻣﻴﺰﺓ ﺍﻟﻤﻨﺘﺞ ،ﻓﺴﻮﻑ ﻳﻜﻮﻥ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺃﺑﻄﺄ. 16 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﻤﻘﺎﻳﻀﺔ:ﺍﻷﻣﺎﻥ ﻣﻘﺎﺑﻞ ﻗﺎﺑﻠﻴﺔ ﺍﻻﺳﺘﺨﺪﺍﻡ ﻳﻤﻜﻨﻚﺗﺤﻘﻴﻖ ﺍﻷﻣﺎﻥ ﻣﻦ ﺧﻼﻝ ﺗﺼﻤﻴﻢ ﺣﻤﺎﻳﺔ ﺍﻟﻨﻈﺎﻡ ﻋﻠﻰ ﺷﻜﻞ ﺳﻠﺴﻠﺔ ﻣﻦ ﺍﻟﻄﺒﻘﺎﺕ ) ﺍﻟﺸﻜﻞ.(4.5 ﻳﺘﻌﻴﻦﻋﻠﻰ ﺍﻟﻤﻬﺎﺟﻢ ﺍﺧﺘﺮﺍﻕ ﻛﻞ ﻫﺬﻩ ﺍﻟﻄﺒﻘﺎﺕ ﻗﺒﻞ ﺍﺧﺘﺮﺍﻕ ﺍﻟﻨﻈﺎﻡ. ﻗﺪﺗﺘﻀﻤﻦ ﺍﻟﻄﺒﻘﺎﺕ ﻃﺒﻘﺎﺕ ﻣﺼﺎﺩﻗﺔ ﺍﻟﻨﻈﺎﻡ ،ﻭﻃﺒﻘﺔ ﻣﺼﺎﺩﻗﺔ ﻣﻴﺰﺓ ﺣﺮﺟﺔ ﻣﻨﻔﺼﻠﺔ، ﻭﻃﺒﻘﺔﺗﺸﻔﻴﺮ ﻭﻣﺎ ﺇﻟﻰ ﺫﻟﻚ. ﻣﻦﺍﻟﻨﺎﺣﻴﺔ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ،ﻳﻤﻜﻨﻚ ﺗﻨﻔﻴﺬ ﻛﻞ ﻣﻦ ﻫﺬﻩ ﺍﻟﻄﺒﻘﺎﺕ ﻛﻤﻜﻮﻧﺎﺕ ﻣﻨﻔﺼﻠﺔ ﺑﺤﻴﺚ ﺇﺫﺍﺗﻢ ﺍﺧﺘﺮﺍﻕ ﺃﺣﺪ ﻫﺬﻩ ﺍﻟﻤﻜﻮﻧﺎﺕ ﻣﻦ ﻗﺒﻞ ﺃﺣﺪ ﺍﻟﻤﻬﺎﺟﻤﻴﻦ ،ﻓﺈﻥ ﺍﻟﻄﺒﻘﺎﺕ ﺍﻷﺧﺮﻯ ﺗﻈﻞ ﺳﻠﻴﻤﺔ. 17 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.5ﻃﺒﻘﺎﺕ ﺍﻟﻤﺼﺎﺩﻗﺔ ﻣﺼﺎﺩﻗﺔIP ﻣﺼﺎﺩﻗﺔﺍﻟﺘﻄﺒﻴﻖ ﻣﺼﺎﺩﻗﺔﺍﻟﻤﻴﺰﺓ ﺍﻟﺘﺸﻔﻴﺮ ﺍﻷﺻﻮﻝﺍﻟﻤﺤﻤﻴﺔ ﻣﺜﻞ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﺑﻄﺎﻗﺎﺕﺍﻻﺉﺘﻤﺎﻥ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ 18 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻗﻀﺎﻳﺎﻗﺎﺑﻠﻴﺔ ﺍﻻﺳﺘﺨﺪﺍﻡ ﻳﺆﺛﺮﺍﻟﻨﻬﺞ ﺍﻟﻄﺒﻘﻲ ﻟﻸﻣﺎﻥ ﻋﻠﻰ ﻗﺎﺑﻠﻴﺔ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺒﺮﻧﺎﻣﺞ. ﻳﺘﻌﻴﻦﻋﻠﻰ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺗﺬﻛﺮ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ،ﻣﺜﻞ ﻛﻠﻤﺎﺕ ﺍﻟﻤﺮﻭﺭ ،ﺍﻟﻼﺯﻣﺔ ﻻﺧﺘﺮﺍﻕ ﻃﺒﻘﺔ ﺍﻷﻣﺎﻥ.ﻭﻣﻦ ﺍﻟﻤﺆﻛﺪﺃﻥ ﺗﻔﺎﻋﻠﻬﻢ ﻣﻊ ﺍﻟﻨﻈﺎﻡ ﻳﺘﺒﺎﻃﺄ ﺑﺴﺒﺐ ﻣﻴﺰﺍﺕ ﺍﻷﻣﺎﻥ ﺍﻟﺘﻲ ﻳﺘﻤﺘﻊ ﺑﻬﺎ. ﻳﺠﺪﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﻫﺬﺍ ﺍﻷﻣﺮ ﻣﺰﻋﺠﺎً ﻭﻏﺎﻟﺒﺎً ﻣﺎ ﻳﺒﺤﺜﻮﻥ ﻋﻦ ﺣﻠﻮﻝ ﺑﺪﻳﻠﺔ ﺣﺘﻰ ﻻ ﻳﻀﻄﺮﻭﺍﺇﻟﻰ ﺇﻋﺎﺩﺓ ﺍﻟﻤﺼﺎﺩﻗﺔ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﻣﻴﺰﺍﺕ ﺍﻟﻨﻈﺎﻡ ﺃﻭ ﺍﻟﺒﻴﺎﻧﺎﺕ. ﻟﺘﺠﻨﺐﺫﻟﻚ ،ﺗﺤﺘﺎﺝ ﺇﻟﻰ ﻫﻨﺪﺳﺔ ﻣﻌﻤﺎﺭﻳﺔ: ﺍﻟﺘﻲﻻ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻃﺒﻘﺎﺕ ﺃﻣﺎﻥ ﻛﺜﻴﺮﺓ، ﺍﻟﺘﻲﻻ ﺗﻔﺮﺽ ﺇﺟﺮﺍءﺍﺕ ﺃﻣﻨﻴﺔ ﻏﻴﺮ ﺿﺮﻭﺭﻳﺔ، ﺍﻟﺬﻱﻳﻮﻓﺮ ﻣﻜﻮﻧﺎﺕ ﻣﺴﺎﻋﺪﺓ ﺗﻌﻤﻞ ﻋﻠﻰ ﺗﻘﻠﻴﻞ ﺍﻟﺤﻤﻞ ﻋﻠﻰ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ. 19 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﻤﻘﺎﻳﻀﺔ:ﺍﻟﺘﻮﺍﻓﺮ ﻣﻘﺎﺑﻞ ﺍﻟﻮﻗﺖ ﺍﻟﻤﺴﺘﻐﺮﻕ ﻟﻄﺮﺡ ﺍﻟﻤﻨﺘﺞ ﻓﻲ ﺍﻟﺴﻮﻕ ﻳﻌﺪﺍﻟﺘﻮﻓﺮ ﻣﻬﻤﺎً ﺑﺸﻜﻞ ﺧﺎﺹ ﻓﻲ ﻣﻨﺘﺠﺎﺕ ﺍﻟﻤﺆﺳﺴﺎﺕ ،ﻣﺜﻞ ﺍﻟﻤﻨﺘﺠﺎﺕ ﺍﻟﻤﺨﺼﺼﺔ ﻟﺼﻨﺎﻋﺔﺍﻟﺘﻤﻮﻳﻞ ،ﺣﻴﺚ ﻣﻦ ﺍﻟﻤﺘﻮﻗﻊ ﺃﻥ ﺗﻌﻤﻞ ﻋﻠﻰ ﻣﺪﺍﺭ ﺍﻟﺴﺎﻋﺔ ﻃﻮﺍﻝ ﺃﻳﺎﻡ ﺍﻷﺳﺒﻮﻉ. ﺇﻥﺗﻮﻓﺮ ﺍﻟﻨﻈﺎﻡ ﻫﻮ ﻣﻘﻴﺎﺱ ﻟﻤﺪﻯ "ﻭﻗﺖ ﺍﻟﺘﺸﻐﻴﻞ" ﻟﻬﺬﺍ ﺍﻟﻨﻈﺎﻡ. ﻳﺘﻢﺍﻟﺘﻌﺒﻴﺮ ﻋﻦ ﺍﻟﺘﻮﻓﺮ ﻋﺎﺩﺓ ًﻛﻨﺴﺒﺔ ﻣﺉﻮﻳﺔ ﻣﻦ ﺍﻟﻮﻗﺖ ﺍﻟﺬﻱ ﻳﻜﻮﻥ ﻓﻴﻪ ﺍﻟﻨﻈﺎﻡ ﻣﺘﺎﺣﺎً ﻟﺘﻘﺪﻳﻢ ﺍﻟﺨﺪﻣﺎﺕﻟﻠﻤﺴﺘﺨﺪﻡ. ﻣﻦﺍﻟﻨﺎﺣﻴﺔ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ،ﻳﻤﻜﻨﻚ ﺗﺤﻘﻴﻖ ﺍﻟﺘﻮﺍﻓﺮ ﻣﻦ ﺧﻼﻝ ﻭﺟﻮﺩ ﻣﻜﻮﻧﺎﺕ ﺯﺍﺉﺪﺓ ﻓﻲ ﺍﻟﻨﻈﺎﻡ. ﻟﻼﺳﺘﻔﺎﺩﺓﻣﻦ ﺍﻟﺘﻜﺮﺍﺭ ،ﻗﻢ ﺑﺘﻀﻤﻴﻦ ﻣﻜﻮﻧﺎﺕ ﺍﻟﻤﺴﺘﺸﻌﺮ ﺍﻟﺘﻲ ﺗﻜﺸﻒ ﻋﻦ ﺍﻟﻔﺸﻞ ،ﻭﻣﻜﻮﻧﺎﺕ ﺍﻟﺘﺒﺪﻳﻞ ﺍﻟﺘﻲﺗﻘﻮﻡ ﺑﺘﺒﺪﻳﻞ ﺍﻟﺘﺸﻐﻴﻞ ﺇﻟﻰ ﻣﻜﻮﻥ ﺯﺍﺉﺪ ﻋﻦ ﺍﻟﺤﺎﺟﺔ ﻋﻨﺪ ﺍﻛﺘﺸﺎﻑ ﺍﻟﻔﺸﻞ. ﺇﻥﺗﻨﻔﻴﺬ ﻣﻜﻮﻧﺎﺕ ﺇﺿﺎﻓﻴﺔ ﻳﺴﺘﻐﺮﻕ ﻭﻗﺘﺎً ﻭﻳﺰﻳﺪ ﻣﻦ ﺗﻜﻠﻔﺔ ﺗﻄﻮﻳﺮ ﺍﻟﻨﻈﺎﻡ.ﻛﻤﺎ ﺃﻧﻪ ﻳﻀﻴﻒﺗﻌﻘﻴﺪﺍً ﺇﻟﻰ ﺍﻟﻨﻈﺎﻡ ﻭﺑﺎﻟﺘﺎﻟﻲ ﻳﺰﻳﺪ ﻣﻦ ﻓﺮﺹ ﻇﻬﻮﺭ ﺍﻷﺧﻄﺎء ﻭﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ. 20 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺃﺳﺉﻠﺔﺍﻟﺘﺼﻤﻴﻢ ﺍﻟﻤﻌﻤﺎﺭﻱ ﻛﻴﻒﻳﻤﻜﻦ ﺗﻨﻈﻴﻢ ﺍﻟﻨﻈﺎﻡ ﻛﻤﺠﻤﻮﻋﺔ ﻣﻦ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ،ﺣﻴﺚ ﻳﻮﻓﺮ ﻛﻞ ﻣﻜﻮﻥ ﻣﻦ ﻫﺬﻩﺍﻟﻤﻜﻮﻧﺎﺕ ﻣﺠﻤﻮﻋﺔ ﻓﺮﻋﻴﺔ ﻣﻦ ﻭﻇﺎﺉﻒ ﺍﻟﻨﻈﺎﻡ ﺍﻟﺸﺎﻣﻠﺔ؟ ﻳﻨﺒﻐﻲﻟﻠﻤﻨﻈﻤﺔ ﺃﻥ ﺗﻮﻓﺮ ﻟﻚ ﻧﻈﺎﻡ ﺍﻷﻣﺎﻥ ﻭﺍﻟﻤﻮﺛﻮﻗﻴﺔ ﻭﺍﻷﺩﺍء ﺍﻟﺬﻱ ﺗﺤﺘﺎﺟﻪ. ﻛﻴﻒﻳﻨﺒﻐﻲ ﺗﻮﺯﻳﻊ ﻫﺬﻩ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻭﺍﻟﺘﻮﺍﺻﻞ ﻣﻊ ﺑﻌﻀﻬﺎ ﺍﻟﺒﻌﺾ؟ ﻣﺎﻫﻲ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻟﺘﻲ ﻳﺠﺐ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻓﻲ ﺑﻨﺎء ﺍﻟﻨﻈﺎﻡ ﻭﻣﺎ ﻫﻲ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﺘﻲ ﻳﺠﺐﺇﻋﺎﺩﺓ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ؟ 21 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺗﻨﻈﻴﻢﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﺘﺠﺮﻳﺪﻓﻲ ﺗﺼﻤﻴﻢ ﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻳﻌﻨﻲ ﺃﻧﻚ ﺗﺮﻛﺰ ﻋﻠﻰ ﺍﻟﻌﻨﺎﺻﺮ ﺍﻷﺳﺎﺳﻴﺔ ﻟﻠﻨﻈﺎﻡ ﺃﻭ ﻣﻜﻮﻥﺍﻟﺒﺮﻧﺎﻣﺞ ﺩﻭﻥ ﺍﻻﻫﺘﻤﺎﻡ ﺑﺘﻔﺎﺻﻴﻠﻪ. ﻋﻠﻰﺍﻟﻤﺴﺘﻮﻯ ﺍﻟﻤﻌﻤﺎﺭﻱ ،ﻳﺠﺐ ﺃﻥ ﻳﻨﺼﺐ ﺍﻫﺘﻤﺎﻣﻚ ﻋﻠﻰ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻭﺍﺳﻌﺔﺍﻟﻨﻄﺎﻕ. ﻳﺘﻀﻤﻦﺍﻟﺘﺤﻠﻞ ﺗﺤﻠﻴﻞ ﻫﺬﻩ ﺍﻟﻤﻜﻮﻧﺎﺕ ﻭﺍﺳﻌﺔ ﺍﻟﻨﻄﺎﻕ ﻭﺗﻤﺜﻴﻠﻬﺎ ﻛﻤﺠﻤﻮﻋﺔ ﻣﻦ ﺍﻟﻤﻜﻮﻧﺎﺕﺫﺍﺕ ﺍﻟﺤﺒﻴﺒﺎﺕ ﺍﻟﺪﻗﻴﻘﺔ. ﻏﺎﻟﺒﺎًﻣﺎ ﻳﺘﻢ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻨﻤﺎﺫﺝ ﺍﻟﻄﺒﻘﻴﺔ ﻟﺘﻮﺿﻴﺢ ﻛﻴﻔﻴﺔ ﺗﻜﻮﻳﻦ ﺍﻟﻨﻈﺎﻡ ﻣﻦ ﺍﻟﻤﻜﻮﻧﺎﺕ. 22 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.6ﻧﻤﻮﺫﺝ ﻣﻌﻤﺎﺭﻱ ﻟﻨﻈﺎﻡ ﺍﺳﺘﺮﺟﺎﻉ ﺍﻟﻤﺴﺘﻨﺪﺍﺕ ﻣﺘﺼﻔﺢﺍﻟﻮﻳﺐ ﺍﻟﻤﺪﺧﻼﺕﺍﻟﻤﺤﻠﻴﺔ ﺍﻟﻄﺒﺎﻋﺔﺍﻟﻤﺤﻠﻴﺔ ﺗﻔﺎﻋﻞﺍﻟﻤﺴﺘﺨﺪﻡ ﺗﺼﺪﻳﻖ ﺇﺩﺍﺭﺓﻭﺍﺟﻬﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺻﻔﺤﺔﻋﻠﻰ ﺍﻹﻧﺘﺮﻧﺖ ﺍﻟﻨﻤﻮﺫﺝﻭﺍﻻﺳﺘﻔﺴﺎﺭ ﺍﻟﻤﺼﺎﺩﻗﺔﻭ ﺟﻴﻞ ﻣﺪﻳﺮ ﺗﻔﻮﻳﺾ ﺍﺳﺘﺮﺟﺎﻉﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺣﻘﻮﻕ ﻭﺛﻴﻘﺔ ﻣﺤﺎﺳﺒﺔ ﺍﻟﻤﺪﻓﻮﻋﺎﺕ ﻳﺒﺤﺚ ﺇﺩﺍﺭﺓ ﺍﺳﺘﺮﺟﺎﻉ ﻓﻬﺮﺱﺍﻟﻤﺴﺘﻨﺪﺍﺕ ﻓﻬِﺮﺱِ ﻓﻬِﺮﺱِ ﺍﺳﺘﻌﻼﻡﺍﻟﻔﻬﺮﺱ ﺍﻟﺨﻠﻖ ﺇﺩﺍﺭﺓ ﺍﻟﺨﺪﻣﺎﺕﺍﻷﺳﺎﺳﻴﺔ ﺣﺴﺎﺏﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﺳﺘﻔﺴﺎﺭ ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﺴﺠﻴﻞ ﺇﺩﺍﺭﺓ ﺗﺼﺪﻳﻖ ﺍﺳﺘﻔﺴﺎﺭ ﻗﻮﺍﻋﺪﺍﻟﺒﻴﺎﻧﺎﺕ ﺩﻱﺑﻲ 5 ﺩﻱﺑﻲ 4 ﻗﺎﻋﺪﺓﺑﻴﺎﻧﺎﺕ DB3 ﻗﺎﻋﺪﺓﺑﻴﺎﻧﺎﺕ DB2 ﻗﺎﻋﺪﺓﺑﻴﺎﻧﺎﺕ 1 23 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺘﻌﻘﻴﺪﺍﻟﻤﻌﻤﺎﺭﻱ ﺗﻨﺸﺄﺍﻟﺘﻌﻘﻴﺪﺍﺕ ﻓﻲ ﺑﻨﻴﺔ ﺍﻟﻨﻈﺎﻡ ﺑﺴﺒﺐ ﻋﺪﺩ ﻭﻃﺒﻴﻌﺔ ﺍﻟﻌﻼﻗﺎﺕ ﺑﻴﻦ ﺍﻟﻤﻜﻮﻧﺎﺕ ﻓﻲ ﻫﺬﺍ ﺍﻟﻨﻈﺎﻡ. ﻋﻨﺪﺗﺤﻠﻴﻞ ﻧﻈﺎﻡ ﺇﻟﻰ ﻣﻜﻮﻧﺎﺗﻪ ،ﻳﺠﺐ ﻋﻠﻴﻚ ﻣﺤﺎﻭﻟﺔ ﺗﺠﻨﺐ ﺍﻟﺘﻌﻘﻴﺪﺍﺕ ﺍﻟﺒﺮﻣﺠﻴﺔ ﻏﻴﺮ ﺍﻟﻀﺮﻭﺭﻳﺔ. ﺗﺤﺪﻳﺪﺍﻟﻌﻼﻗﺎﺕ ﺇﺫﺍﻛﺎﻧﺖ ﻫﻨﺎﻙ ﻋﻼﻗﺎﺕ ﺑﻴﻦ ﺍﻟﻤﻜﻮﻧﺎﺕ Aﻭ ،Bﻓﺴﻴﻜﻮﻥ ﻣﻦ ﺍﻷﺳﻬﻞ ﻓﻬﻤﻬﺎ ﺇﺫﺍ ﺗﻢ ﺗﻌﺮﻳﻒ AﻭB ﻓﻲﻧﻔﺲ ﺍﻟﻮﺣﺪﺓ. ﺗﻘﻠﻴﻞﺍﻟﺘﺒﻌﻴﺎﺕ ﺍﻟﻤﺸﺘﺮﻛﺔ ﻋﻨﺪﻣﺎﻳﻌﺘﻤﺪ ﺍﻟﻤﻜﻮﻧﺎﻥ Aﻭ Bﻋﻠﻰ ﺑﻌﺾ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺃﻭ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻷﺧﺮﻯ ،ﺗﺰﺩﺍﺩ ﺍﻟﺘﻌﻘﻴﺪﺍﺕ ﻷﻥ ﺍﻟﺘﻐﻴﻴﺮﺍﺕﻓﻲ ﺍﻟﻤﻜﻮﻥ ﺍﻟﻤﺸﺘﺮﻙ ﺗﻌﻨﻲ ﺃﻧﻪ ﻳﺘﻌﻴﻦ ﻋﻠﻴﻚ ﻓﻬﻢ ﻛﻴﻔﻴﺔ ﺗﺄﺛﻴﺮ ﻫﺬﻩ ﺍﻟﺘﻐﻴﻴﺮﺍﺕ ﻋﻠﻰ ﻛﻞﻣﻦ Aﻭ.B ﻣﻦﺍﻷﻓﻀﻞ ﺩﺍﺉﻤﺎً ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺤﻠﻴﺔ ﺃﻳﻨﻤﺎ ﻛﺎﻥ ﺫﻟﻚ ﻣﻤﻜﻨﺎً ﻭﺗﺠﻨﺐ ﻣﺸﺎﺭﻛﺔ ﺍﻟﺒﻴﺎﻧﺎﺕﺇﺫﺍ ﻛﺎﻥ ﺫﻟﻚ ﻣﻤﻜﻨﺎً. 24 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.7ﺃﻣﺜﻠﺔ ﻋﻠﻰ ﺍﻟﻌﻼﻗﺎﺕ ﺑﻴﻦ ﺍﻟﻤﻜﻮﻧﺎﺕ C2ﻳﻘﻊ ﻣﻊ C1 C2ﻳﺴﺘﺨﺪﻡ C1 C2ﻫﻮ ﺟﺰء ﻣﻦ C1 ﺝ1 ﺳﻲ 2 ﺳﻲ 2 ﺝ1 ﺳﻲﺳﻲ 11 ﻣﻜﺎﻟﻤﺎﺕ ﺳﻲ 2 C2ﺗﺸﺎﺭﻙ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﻊ C1 ﺳﻲ 2 ﺑﻴﺎﻧﺎﺕ ﺝ1 25 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.8ﺇﺭﺷﺎﺩﺍﺕ ﺍﻟﺘﺼﻤﻴﻢ ﺍﻟﻤﻌﻤﺎﺭﻱ ﻓﺼﻞﺍﻻﻫﺘﻤﺎﻣﺎﺕ ﻗﻢﺑﺘﻨﻈﻴﻢ ﻫﻨﺪﺳﺘﻚ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﺇﻟﻰ ﻣﻜﻮﻧﺎﺕﺗﺮﻛﺰ ﻋﻠﻰ ﺍﻫﺘﻤﺎﻡﻭﺍﺣﺪ ﺗﺼﻤﻴﻢ ﺍﻟﻤﺒﺎﺩﺉﺍﻟﺘﻮﺟﻴﻬﻴﺔ ﺗﻨﻔﻴﺬﻣﺮﺓ ﻭﺍﺣﺪﺓ ﻭﺍﺟﻬﺎﺕﻣﺴﺘﻘﺮﺓ ﺗﺠﻨﺐﺍﻟﺘﻜﺮﺍﺭ ﻣﻜﻮﻥﺍﻟﺘﺼﻤﻴﻢ ﺍﻟﻮﻇﺎﺉﻒﻓﻲ ﺃﻣﺎﻛﻦ ﻣﺨﺘﻠﻔﺔ ﻓﻲ ﻭﺍﺟﻬﺎﺕﻣﺘﻤﺎﺳﻜﺔ ﺍﻟﻬﻨﺪﺳﺔﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﺍﻟﺨﺎﺻﺔ ﺑﻚ ﻭﻫﺬﺍﺍﻟﺘﻐﻴﻴﺮ ﺑﻄﻲء 26 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺇﺭﺷﺎﺩﺍﺕﺍﻟﺘﺼﻤﻴﻢ ﻭﺍﻟﻬﻨﺪﺳﺔ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﺍﻟﻄﺒﻘﻴﺔ ﻛﻞﻃﺒﻘﺔ ﻫﻲ ﻣﻨﻄﻘﺔ ﻣﺜﻴﺮﺓ ﻟﻠﻘﻠﻖ ﻭﻳﺘﻢ ﺍﻟﻨﻈﺮ ﺇﻟﻴﻬﺎ ﺑﺸﻜﻞ ﻣﻨﻔﺼﻞ ﻋﻦ ﺍﻟﻄﺒﻘﺎﺕ ﺍﻷﺧﺮﻯ. ﺗﻬﺘﻢﺍﻟﻄﺒﻘﺔ ﺍﻟﻌﻠﻴﺎ ﺑﺘﻔﺎﻋﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﻭﺍﻟﻄﺒﻘﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺑﺈﺩﺍﺭﺓ ﻭﺍﺟﻬﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ،ﻭﺍﻟﻄﺒﻘﺔ ﺍﻟﺜﺎﻟﺜﺔ ﺑﺎﺳﺘﺮﺟﺎﻉﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﻭﻫﻜﺬﺍ. ﺩﺍﺧﻞﻛﻞ ﻃﺒﻘﺔ ،ﺗﻜﻮﻥ ﺍﻟﻤﻜﻮﻧﺎﺕ ﻣﺴﺘﻘﻠﺔ ﻭﻻ ﺗﺘﺪﺍﺧﻞ ﻓﻲ ﺍﻟﻮﻇﺎﺉﻒ. ﺗﺘﻀﻤﻦﺍﻟﻄﺒﻘﺎﺕ ﺍﻟﺴﻔﻠﻴﺔ ﻣﻜﻮﻧﺎﺕ ﺗﻮﻓﺮ ﻭﻇﺎﺉﻒ ﻋﺎﻣﺔ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﻟﻴﺴﺖ ﻫﻨﺎﻙ ﺣﺎﺟﺔ ﻟﺘﻜﺮﺍﺭ ﺫﻟﻚ ﻓﻲﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﻣﺴﺘﻮﻯ ﺃﻋﻠﻰ. ﺍﻟﻨﻤﻮﺫﺝﺍﻟﻤﻌﻤﺎﺭﻱ ﻫﻮ ﻧﻤﻮﺫﺝ ﻋﺎﻟﻲ ﺍﻟﻤﺴﺘﻮﻯ ﻻ ﻳﺘﻀﻤﻦ ﻣﻌﻠﻮﻣﺎﺕ ﺍﻟﺘﻨﻔﻴﺬ. ﻣﻦﺍﻟﻨﺎﺣﻴﺔ ﺍﻟﻤﺜﺎﻟﻴﺔ ،ﻳﺠﺐ ﺃﻥ ﺗﺘﻔﺎﻋﻞ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻟﻤﺴﺘﻮﻯ ) Xﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ( ﻓﻘﻂ ﻣﻊ ﻭﺍﺟﻬﺎﺕ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕﺍﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻟﻤﺴﺘﻮﻯ .X-1ﺃﻱ ﺃﻥ ﺍﻟﺘﻔﺎﻋﻼﺕ ﻳﺠﺐ ﺃﻥ ﺗﻜﻮﻥ ﺑﻴﻦ ﺍﻟﻄﺒﻘﺎﺕ ﻭﻟﻴﺲ ﻋﺒﺮ ﺍﻟﻄﺒﻘﺎﺕ. 27 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﻤﺨﺎﻭﻑﺍﻟﻤﺘﻘﺎﻃﻌﺔ ﺇﻥﺍﻟﻤﺨﺎﻭﻑ ﺍﻟﻤﺘﻘﺎﻃﻌﺔ ﻫﻲ ﻣﺨﺎﻭﻑ ﻧﻈﺎﻣﻴﺔ ،ﺃﻱ ﺃﻧﻬﺎ ﺗﺆﺛﺮ ﻋﻠﻰ ﺍﻟﻨﻈﺎﻡ ﺑﺄﻛﻤﻠﻪ. ﻓﻲﺍﻟﻬﻨﺪﺳﺔ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻄﺒﻘﺎﺕ ،ﺗﺆﺛﺮ ﺍﻟﻤﺨﺎﻭﻑ ﺍﻟﻤﺘﻘﺎﻃﻌﺔ ﻋﻠﻰ ﺟﻤﻴﻊ ﺍﻟﻄﺒﻘﺎﺕ ﻓﻲﺍﻟﻨﻈﺎﻡ ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺘﻲ ﻳﺴﺘﺨﺪﻡ ﺑﻬﺎ ﺍﻷﺷﺨﺎﺹ ﺍﻟﻨﻈﺎﻡ. ﺇﻥﺍﻻﻫﺘﻤﺎﻣﺎﺕ ﺍﻟﻤﺘﻘﺎﻃﻌﺔ ﺗﺨﺘﻠﻒ ﺗﻤﺎﻣﺎً ﻋﻦ ﺍﻻﻫﺘﻤﺎﻣﺎﺕ ﺍﻟﻮﻇﻴﻔﻴﺔ ﺍﻟﺘﻲ ﺗﻤﺜﻠﻬﺎ ﺍﻟﻄﺒﻘﺎﺕﻓﻲ ﺑﻨﻴﺔ ﺍﻟﺒﺮﻧﺎﻣﺞ. ﻳﺠﺐﻋﻠﻰ ﻛﻞ ﻃﺒﻘﺔ ﺃﻥ ﺗﺄﺧﺬ ﻫﺬﻩ ﺍﻟﻤﺨﺎﻭﻑ ﻓﻲ ﺍﻻﻋﺘﺒﺎﺭ ،ﻭﻣﻦ ﺍﻟﻤﺤﺘﻢ ﺃﻥ ﺗﺤﺪﺙ ﺗﻔﺎﻋﻼﺕﺑﻴﻦ ﺍﻟﻄﺒﻘﺎﺕ ﺑﺴﺒﺐ ﻫﺬﻩ ﺍﻟﻤﺨﺎﻭﻑ. ﺇﻥﻭﺟﻮﺩ ﺍﻟﻤﺨﺎﻭﻑ ﺍﻟﻤﺘﻘﺎﻃﻌﺔ ﻫﻮ ﺍﻟﺴﺒﺐ ﻓﻲ ﺃﻥ ﺗﻌﺪﻳﻞ ﺍﻟﻨﻈﺎﻡ ﺑﻌﺪ ﺗﺼﻤﻴﻤﻪ ﻟﺘﺤﺴﻴﻦ ﺃﻣﻨﻪﻏﺎﻟﺒﺎ ًﻣﺎ ﻳﻜﻮﻥ ﺻﻌﺒﺎً. 28 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.9ﺍﻟﻤﺨﺎﻭﻑ ﺍﻟﻤﺘﻘﺎﻃﻌﺔ ﻣﺼﺪﺍﻗﻴﺔ ﺃﺩﺍء ﺣﻤﺎﻳﺔ ﻭﺍﺟﻬﺔﺍﻟﻤﺴﺘﺨﺪﻡ ﻃﻠﺐ ﺑﻨﻴﺔﺗﺤﺘﻴﺔ ﻧﻈﺎﻡﺍﻟﺘﺸﻐﻴﻞ ﺍﻷﺟﻬﺰﺓ 29 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺠﺪﻭﻝ 4.5ﺍﻷﻣﻦ ﺑﺎﻋﺘﺒﺎﺭﻩ ﻣﺼﺪﺭ ﻗﻠﻖ ﻣﺸﺘﺮﻙ ﻫﻨﺪﺳﺔﺍﻷﻣﻦ ﻳﺘﻢﺍﺳﺘﺨﺪﺍﻡ ﺗﻘﻨﻴﺎﺕ ﻣﺨﺘﻠﻔﺔ ﻓﻲ ﻃﺒﻘﺎﺕ ﻣﺨﺘﻠﻔﺔ ،ﻣﺜﻞ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ SQLﺃﻭ ﻣﺘﺼﻔﺢ .Firefox ﻳﻤﻜﻦﻟﻠﻤﻬﺎﺟﻤﻴﻦ ﻣﺤﺎﻭﻟﺔ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺜﻐﺮﺍﺕ ﺍﻷﻣﻨﻴﺔ ﻓﻲ ﻫﺬﻩ ﺍﻟﺘﻘﻨﻴﺎﺕ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﺒﻴﺎﻧﺎﺕ. ﻭﺑﺎﻟﺘﺎﻟﻲ،ﻓﺄﻧﺖ ﺑﺤﺎﺟﺔ ﺇﻟﻰ ﺍﻟﺤﻤﺎﻳﺔ ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﻓﻲ ﻛﻞ ﻃﺒﻘﺔ ،ﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﺍﻟﺤﻤﺎﻳﺔ ﻓﻲ ﺍﻟﻄﺒﻘﺎﺕﺍﻷﺩﻧﻰ ﻓﻲ ﺍﻟﻨﻈﺎﻡ ،ﻣﻦ ﺍﻟﻬﺠﻤﺎﺕ ﺍﻟﻨﺎﺟﺤﺔ ﺍﻟﺘﻲ ﺣﺪﺛﺖ ﻓﻲ ﻃﺒﻘﺎﺕ ﺍﻟﻤﺴﺘﻮﻯ ﺍﻷﻋﻠﻰ. ﺇﺫﺍﻛﺎﻥ ﻫﻨﺎﻙ ﻣﻜﻮﻥ ﺃﻣﺎﻥ ﻭﺍﺣﺪ ﻓﻘﻂ ﻓﻲ ﺍﻟﻨﻈﺎﻡ ،ﻓﻬﺬﺍ ﻳﻤﺜﻞ ﺛﻐﺮﺓ ﺃﻣﻨﻴﺔ ﺧﻄﻴﺮﺓ ﻓﻲ ﺍﻟﻨﻈﺎﻡ.ﺇﺫﺍ ﻣﺮﺕ ﺟﻤﻴﻊﻋﻤﻠﻴﺎﺕ ﻓﺤﺺ ﺍﻷﻣﺎﻥ ﻋﺒﺮ ﻫﺬﺍ ﺍﻟﻤﻜﻮﻥ ﻭﺗﻮﻗﻒ ﻋﻦ ﺍﻟﻌﻤﻞ ﺑﺸﻜﻞ ﺻﺤﻴﺢ ﺃﻭ ﺗﻌﺮﺽ ﻟﻠﺨﻄﺮ ﻓﻲ ﻫﺠﻮﻡ،ﻓﻬﺬﺍ ﻳﻌﻨﻲ ﺃﻧﻪ ﻻ ﻳﻮﺟﺪ ﺃﻣﺎﻥ ﻣﻮﺛﻮﻕ ﺑﻪ ﻓﻲ ﻧﻈﺎﻣﻚ. ﻣﻦﺧﻼﻝ ﺗﻮﺯﻳﻊ ﺍﻷﻣﺎﻥ ﻋﺒﺮ ﺍﻟﻄﺒﻘﺎﺕ ،ﻳﺼﺒﺢ ﻧﻈﺎﻣﻚ ﺃﻛﺜﺮ ﻣﺮﻭﻧﺔ ﻓﻲ ﻣﻮﺍﺟﻬﺔ ﺍﻟﻬﺠﻤﺎﺕ ﻭﻓﺸﻞ ﺍﻟﺒﺮﺍﻣﺞ ) ﺗﺬﻛﺮﻣﺜﺎﻝ Rogue Oneﻓﻲ ﻭﻗﺖ ﺳﺎﺑﻖ ﻣﻦ ﺍﻟﻔﺼﻞ(. 30 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.10ﺑﻨﻴﺔ ﻃﺒﻘﻴﺔ ﻋﺎﻣﺔ ﻟﺘﻄﺒﻴﻖ ﻗﺎﺉﻢ ﻋﻠﻰ ﺍﻟﻮﻳﺐ ﻭﺍﺟﻬﺔﻣﺴﺘﺨﺪﻡ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﺍﻟﻤﺘﺼﻔﺢ ﺃﻭ ﺍﻟﻬﺎﺗﻒ ﺍﻟﻤﺤﻤﻮﻝ ﺇﺩﺍﺭﺓﺍﻟﻤﺼﺎﺩﻗﺔ ﻭﺗﻔﺎﻋﻞ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﻇﺎﺉﻒﺧﺎﺻﺔ ﺑﺎﻟﺘﻄﺒﻴﻖ ﺍﻟﺨﺪﻣﺎﺕﺍﻟﻤﺸﺘﺮﻛﺔ ﺍﻷﺳﺎﺳﻴﺔ ﺇﺩﺍﺭﺓﺍﻟﻤﻌﺎﻣﻼﺕ ﻭﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ 31 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺠﺪﻭﻝ 4.6ﻭﻇﻴﻔﺔ ﺍﻟﻄﺒﻘﺔ ﻓﻲ ﺗﻄﺒﻴﻖ ﻗﺎﺉﻢ ﻋﻠﻰ ﺍﻟﻮﻳﺐ ﻭﺍﺟﻬﺔﻣﺴﺘﺨﺪﻡ ﺗﻌﺘﻤﺪ ﻋﻠﻰ ﺍﻟﻤﺘﺼﻔﺢ ﺃﻭ ﺍﻟﻬﺎﺗﻒ ﺍﻟﻤﺤﻤﻮﻝ ﻭﺍﺟﻬﺔﻧﻈﺎﻡ ﻣﺘﺼﻔﺢ ﻭﻳﺐ ﺗﺴُﺘﺨﺪﻡ ﻓﻴﻬﺎ ﻧﻤﺎﺫﺝ HTMLﻏﺎﻟﺒﺎً ﻟﺠﻤﻊ ﻣﺪﺧﻼﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ.ﻳﺠﺐ ﺃﻳﻀ ًﺎ ﺗﻀﻤﻴﻦﻣﻜﻮﻧﺎﺕ Javascriptﻟﻺﺟﺮﺍءﺍﺕ ﺍﻟﻤﺤﻠﻴﺔ ،ﻣﺜﻞ ﺍﻟﺘﺤﻘﻖ ﻣﻦ ﺻﺤﺔ ﺍﻟﻤﺪﺧﻼﺕ ،ﻋﻠﻰ ﻫﺬﺍ ﺍﻟﻤﺴﺘﻮﻯ. ﺑﺪﻻ ًﻣﻦ ﺫﻟﻚ ،ﻳﻤﻜﻦ ﺗﻨﻔﻴﺬ ﻭﺍﺟﻬﺔ ﺍﻟﻬﺎﺗﻒ ﺍﻟﻤﺤﻤﻮﻝ ﻛﺘﻄﺒﻴﻖ. ﺍﻟﻤﺼﺎﺩﻗﺔﻭﺇﺩﺍﺭﺓ ﻭﺍﺟﻬﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻃﺒﻘﺔﺇﺩﺍﺭﺓ ﻭﺍﺟﻬﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺘﻲ ﻗﺪ ﺗﺘﻀﻤﻦ ﻣﻜﻮﻧﺎﺕ ﻟﻤﺼﺎﺩﻗﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻭﺇﻧﺸﺎء ﺻﻔﺤﺔ ﺍﻟﻮﻳﺐ. ﻭﻇﺎﺉﻒﺧﺎﺻﺔ ﺑﺎﻟﺘﻄﺒﻴﻖ ﻃﺒﻘﺔ"ﺗﻄﺒﻴﻖ" ﺗﻮﻓﺮ ﻭﻇﺎﺉﻒ ﺍﻟﺘﻄﺒﻴﻖ.ﻭﻓﻲ ﺑﻌﺾ ﺍﻷﺣﻴﺎﻥ ،ﻗﺪ ﻳﺘﻢ ﺗﻮﺳﻴﻌﻬﺎ ﺇﻟﻰ ﺃﻛﺜﺮ ﻣﻦ ﻃﺒﻘﺔ. ﺍﻟﺨﺪﻣﺎﺕﺍﻟﻤﺸﺘﺮﻛﺔ ﺍﻷﺳﺎﺳﻴﺔ ﻃﺒﻘﺔﺧﺪﻣﺎﺕ ﻣﺸﺘﺮﻛﺔ ،ﺗﺘﻀﻤﻦ ﻣﻜﻮﻧﺎﺕ ﺗﻮﻓﺮ ﺍﻟﺨﺪﻣﺎﺕ ﺍﻟﺘﻲ ﺗﺴﺘﺨﺪﻣﻬﺎ ﻣﻜﻮﻧﺎﺕ ﻃﺒﻘﺔ ﺍﻟﺘﻄﺒﻴﻖ. ﺇﺩﺍﺭﺓﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺍﻟﻤﻌﺎﻣﻼﺕ ﻃﺒﻘﺔﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﺗﻮﻓﺮ ﺧﺪﻣﺎﺕ ﻣﺜﻞ ﺇﺩﺍﺭﺓ ﺍﻟﻤﻌﺎﻣﻼﺕ ﻭﺍﻻﺳﺘﺮﺩﺍﺩ.ﺇﺫﺍ ﻛﺎﻥ ﺗﻄﺒﻴﻘﻚ ﻻ ﻳﺴﺘﺨﺪﻡ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ،ﻓﻘﺪ ﻻ ﻳﻜﻮﻥ ﺫﻟﻚ ﺿﺮﻭﺭﻳﺎً. 32 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺠﺪﻭﻝ 4.7ﻣﺒﺎﺩﺉ ﺍﻟﺘﺼﻤﻴﻢ ﺍﻟﻤﻌﻤﺎﺭﻱ iLearn ﻗﺎﺑﻠﻴﺔﺍﻻﺳﺘﺒﺪﺍﻝ ﻳﺠﺐﺃﻥ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﺳﺘﺒﺪﺍﻝ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻟﻨﻈﺎﻡ ﺑﺒﺪﺍﺉﻞ ﻭﺇﺿﺎﻓﺔﺗﻄﺒﻴﻘﺎﺕ ﺟﺪﻳﺪﺓ.ﻭﺑﺎﻟﺘﺎﻟﻲ ،ﻻ ﻳﻨﺒﻐﻲ ﺃﻥ ﺗﻜﻮﻥ ﻗﺎﺉﻤﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﻤﻀﻤﻨﺔ ﻣﺪﻣﺠﺔ ﻓﻲ ﺍﻟﻨﻈﺎﻡ. ﻗﺎﺑﻠﻴﺔﺍﻟﺘﻮﺳﻌﺔ ﻳﺠﺐﺃﻥ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﺃﻭ ﻣﺴﺆﻭﻟﻲ ﺍﻟﻨﻈﺎﻡ ﺇﻧﺸﺎء ﺇﺻﺪﺍﺭﺍﺗﻬﻢ ﺍﻟﺨﺎﺻﺔ ﻣﻦ ﺍﻟﻨﻈﺎﻡ،ﻭﺍﻟﺘﻲ ﻗﺪ ﺗﻌﻤﻞ ﻋﻠﻰ ﺗﻮﺳﻴﻊ ﺃﻭ ﺗﻘﻴﻴﺪ ﺍﻟﻨﻈﺎﻡ "ﺍﻟﻘﻴﺎﺳﻲ". ﻣﻨﺎﺳﺐﻟﻠﻌﻤﺮ ﻳﻨﺒﻐﻲﺩﻋﻢ ﻭﺍﺟﻬﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺒﺪﻳﻠﺔ ﺑﺤﻴﺚ ﻳﻤﻜﻦ ﺇﻧﺸﺎء ﻭﺍﺟﻬﺎﺕ ﻣﻨﺎﺳﺒﺔ ﻷﻋﻤﺎﺭ ﺍﻟﻄﻼﺏﻋﻠﻰ ﻣﺴﺘﻮﻳﺎﺕ ﻣﺨﺘﻠﻔﺔ. ﻗﺎﺑﻠﻴﺔﺍﻟﺒﺮﻣﺠﺔ ﻳﺠﺐﺃﻥ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﺴﻬﻞ ﻋﻠﻰ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺇﻧﺸﺎء ﺗﻄﺒﻴﻘﺎﺗﻬﻢ ﺍﻟﺨﺎﺻﺔ ﻋﻦ ﻃﺮﻳﻖ ﺭﺑﻂ ﺍﻟﺘﻄﺒﻴﻘﺎﺕﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻟﻨﻈﺎﻡ. ﺍﻟﺤﺪﺍﻷﺩﻧﻰ ﻣﻦ ﺍﻟﻌﻤﻞ ﻻﻳﻨﺒﻐﻲ ﻟﻠﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﺬﻳﻦ ﻻ ﻳﺮﻏﺒﻮﻥ ﻓﻲ ﺗﻐﻴﻴﺮ ﺍﻟﻨﻈﺎﻡ ﺍﻟﻘﻴﺎﻡ ﺑﻌﻤﻞ ﺇﺿﺎﻓﻲ ﺣﺘﻰ ﻳﺘﻤﻜﻦ ﺍﻟﻤﺴﺘﺨﺪﻣﻮﻥﺍﻵﺧﺮﻭﻥ ﻣﻦ ﺇﺟﺮﺍء ﺍﻟﺘﻐﻴﻴﺮﺍﺕ. 33 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻣﺒﺎﺩﺉﺗﺼﻤﻴﻢ iLearn ﻛﺎﻥﻫﺪﻓﻨﺎ ﻓﻲ ﺗﺼﻤﻴﻢ ﻧﻈﺎﻡ iLearnﻫﻮ ﺇﻧﺸﺎء ﻧﻈﺎﻡ ﻋﺎﻟﻤﻲ ﻗﺎﺑﻞ ﻟﻠﺘﻜﻴﻒ ﻳﻤﻜﻦ ﺗﺤﺪﻳﺜﻪﺑﺴﻬﻮﻟﺔ ﻣﻊ ﺗﻮﻓﺮ ﺃﺩﻭﺍﺕ ﺗﻌﻠﻴﻤﻴﺔ ﺟﺪﻳﺪﺓ. ﻭﻫﺬﺍﻳﻌﻨﻲ ﺃﻧﻪ ﻳﺠﺐ ﺃﻥ ﻳﻜﻮﻥ ﻣﻦ ﺍﻟﻤﻤﻜﻦ ﺗﻐﻴﻴﺮ ﻭﺍﺳﺘﺒﺪﺍﻝ ﺍﻟﻤﻜﻮﻧﺎﺕ ﻭﺍﻟﺨﺪﻣﺎﺕ ﻓﻲ ﺍﻟﻨﻈﺎﻡ ) ﺍﻟﻤﺒﺪﺃﺍﻥ) (1ﻭ).((2 ﻧﻈﺮﺍًﻷﻥ ﻣﺴﺘﺨﺪﻣﻲ ﺍﻟﻨﻈﺎﻡ ﺍﻟﻤﺤﺘﻤﻠﻴﻦ ﺗﺮﺍﻭﺣﺖ ﺃﻋﻤﺎﺭﻫﻢ ﺑﻴﻦ 3ﺇﻟﻰ 18ﻋﺎﻣﺎً ،ﻓﻘﺪ ﺍﺣﺘﺠﻨﺎ ﺇﻟﻰ ﺗﻮﻓﻴﺮ ﻭﺍﺟﻬﺎﺕﻣﺴﺘﺨﺪﻡ ﻣﻨﺎﺳﺒﺔ ﻟﻠﻌﻤﺮ ﻭﺗﺴﻬﻴﻞ ﺍﺧﺘﻴﺎﺭ ﺍﻟﻮﺍﺟﻬﺔ )ﺍﻟﻤﺒﺪﺃ ).((3 ﻳﺴﺎﻫﻢﺍﻟﻤﺒﺪﺃ ) (4ﺃﻳﻀﺎً ﻓﻲ ﻗﺪﺭﺓ ﺍﻟﻨﻈﺎﻡ ﻋﻠﻰ ﺍﻟﺘﻜﻴﻒ ،ﻭﺗﻢ ﺗﻀﻤﻴﻦ ﺍﻟﻤﺒﺪﺃ ) (5ﻟﻀﻤﺎﻥ ﻋﺪﻡ ﺗﺄﺛﻴﺮ ﻫﺬﻩ ﺍﻟﻘﺪﺭﺓﻋﻠﻰ ﺍﻟﺘﻜﻴﻒ ﺳﻠﺒﺎً ﻋﻠﻰ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺍﻟﺬﻳﻦ ﻟﻢ ﻳﺤﺘﺎﺟﻮﺍ ﺇﻟﻴﻬﺎ. 34 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺗﺼﻤﻴﻢ iLearnﻛﻨﻈﺎﻡ ﻣﻮﺟﻪ ﻧﺤﻮ ﺍﻟﺨﺪﻣﺔ ﻟﻘﺪﻗﺎﺩﺗﻨﺎ ﻫﺬﻩ ﺍﻟﻤﺒﺎﺩﺉ ﺇﻟﻰ ﻗﺮﺍﺭ ﺍﻟﺘﺼﻤﻴﻢ ﺍﻟﻤﻌﻤﺎﺭﻱ ﺍﻟﺬﻱ ﻳﻨﺺ ﻋﻠﻰ ﺃﻥ ﻧﻈﺎﻡ iLearn ﻳﺠﺐﺃﻥ ﻳﻜﻮﻥ ﻣﻮﺟﻬﺎً ﻧﺤﻮ ﺍﻟﺨﺪﻣﺔ. ﻛﻞﻣﻜﻮﻥ ﻓﻲ ﺍﻟﻨﻈﺎﻡ ﻋﺒﺎﺭﺓ ﻋﻦ ﺧﺪﻣﺔ.ﻭﺃﻱ ﺧﺪﻣﺔ ﻗﺎﺑﻠﺔ ﻟﻼﺳﺘﺒﺪﺍﻝ ﻭﻳﻤﻜﻦ ﺇﻧﺸﺎء ﺧﺪﻣﺎﺕ ﺟﺪﻳﺪﺓﻣﻦ ﺧﻼﻝ ﺍﻟﺠﻤﻊ ﺑﻴﻦ ﺍﻟﺨﺪﻣﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ.ﻭﻳﻤﻜﻦ ﺗﻮﻓﻴﺮ ﺧﺪﻣﺎﺕ ﻣﺨﺘﻠﻔﺔ ﺗﻘﺪﻡ ﻭﻇﺎﺉﻒ ﻣﻤﺎﺛﻠﺔﻟﻠﻄﻼﺏ ﻣﻦ ﻣﺨﺘﻠﻒ ﺍﻷﻋﻤﺎﺭ. ﺗﻜﺎﻣﻞﺍﻟﺨﺪﻣﺔ ﺍﻟﺘﻜﺎﻣﻞﺍﻟﻜﺎﻣﻞﺗﻜﻮﻥ ﺍﻟﺨﺪﻣﺎﺕ ﻋﻠﻰ ﺩﺭﺍﻳﺔ ﺑﺎﻟﺨﺪﻣﺎﺕ ﺍﻷﺧﺮﻯ ﻭﻳﻤﻜﻨﻬﺎ ﺍﻟﺘﻮﺍﺻﻞ ﻣﻌﻬﺎ ﻣﻦ ﺧﻼﻝ ﻭﺍﺟﻬﺎﺕ ﺑﺮﻣﺠﺔ ﺍﻟﺘﻄﺒﻴﻘﺎﺕﺍﻟﺨﺎﺻﺔ ﺑﻬﺎ. ﺍﻟﺘﻜﺎﻣﻞﺍﻟﺠﺰﺉﻲﻗﺪ ﺗﺘﺸﺎﺭﻙ ﺍﻟﺨﺪﻣﺎﺕ ﻓﻲ ﻣﻜﻮﻧﺎﺕ ﺍﻟﺨﺪﻣﺔ ﻭﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﻟﻜﻨﻬﺎ ﻻ ﺗﺪﺭﻙ ﺫﻟﻚ ﻭﻻ ﺗﺴﺘﻄﻴﻊﺍﻟﺘﻮﺍﺻﻞ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ ﻣﻊ ﺧﺪﻣﺎﺕ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻷﺧﺮﻯ. ﻣﺴﺘﻘﻞﻻ ﺗﺴﺘﺨﺪﻡ ﻫﺬﻩ ﺍﻟﺨﺪﻣﺎﺕ ﺃﻱ ﺧﺪﻣﺎﺕ ﻣﺸﺘﺮﻛﺔ ﻟﻠﻨﻈﺎﻡ ﺃﻭ ﻗﻮﺍﻋﺪ ﺑﻴﺎﻧﺎﺕ ﻭﻻ ﺗﺪﺭﻙ ﻭﺟﻮﺩ ﺃﻱ ﺧﺪﻣﺎﺕﺃﺧﺮﻯ ﻓﻲ ﺍﻟﻨﻈﺎﻡ.ﻭﻳﻤﻜﻦ ﺍﺳﺘﺒﺪﺍﻟﻬﺎ ﺑﺄﻱ ﺧﺪﻣﺔ ﻣﻤﺎﺛﻠﺔ ﺃﺧﺮﻯ. 35 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ.4.11ﻧﻤﻮﺫﺝ ﻣﻌﻤﺎﺭﻱ ﻣﺘﻌﺪﺩ ﺍﻟﻄﺒﻘﺎﺕ ﻟﻨﻈﺎﻡ iLearn ﻭﺍﺟﻬﺔﺍﻟﻤﺴﺘﺨﺪﻡ ﺗﻄﺒﻴﻖiLearn ﻣﺘﺼﻔﺢﺍﻟﻮﻳﺐ ﺇﺩﺍﺭﺓﻭﺍﺟﻬﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺗﺴﺠﻴﻞﺍﻟﺪﺧﻮﻝ ﺗﺴﻠﻴﻢﺍﻟﻮﺍﺟﻬﺔ ﺇﺩﺍﺭﺓﺍﻟﻨﻤﺎﺫﺝ ﺇﻧﺸﺎءﺍﻟﻮﺍﺟﻬﺔ ﺧﺪﻣﺎﺕﺍﻟﺘﻜﻮﻳﻦ ﻳﺜﺒﺖ ﻭﺍﺟﻬﺔﺍﻟﻤﺴﺘﺨﺪﻡ ﺣﻤﺎﻳﺔ ﻃﻠﺐ ﻣﺠﻤﻮﻋﺔ ﺧﺪﻣﺔ ﺇﻋﺪﺍﺩﺍﺕ ﺇﻋﺪﺍﺩﺍﺕ ﺗﻜﻮﻳﻦﺍﻟﺘﻜﻮﻳﻦ ﺧﺪﻣﺎﺕﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺗﻢﺗﺜﺒﻴﺖ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﺒﺮﻳﺪﺍﻹﻟﻜﺘﺮﻭﻧﻲ ﻭ ﻓﻴﺪﻳﻮﺛﺎﺑﺖ ﻣﻌﺎﻟﺞﺍﻟﻜﻠﻤﺎﺕ ﺍﻟﻮﺻﻮﻝﺇﻟﻰ ﺍﻷﺭﺷﻴﻒ ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺮﺳﺎﺉﻞ ﻣﺪﻭﻧﺔﻭﻳﻜﻲ ﺟﺪﻭﻝ ﺑﻴﺎﻧﺎﺕ ﻋﺮﺽ ﺗﻘﺪﻳﻤﻲ ﺭﺳﻢ ﺍﻟﺨﺪﻣﺎﺕﺍﻟﻤﺘﻜﺎﻣﻠﺔ ﺍﻟﻤﺼﺎﺩﻗﺔﻭ ﺍﻟﺘﻌﻠﻢﺍﻻﻓﺘﺮﺍﺿﻲ ﺗﻔﻮﻳﺾ ﺑﻴﺉﺔ ﺗﺤﻠﻴﻼﺕﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻛﺘﺸﺎﻑﺍﻟﻤﻮﺍﺭﺩ ﺧﺪﻣﺎﺕﺍﻟﺒﻨﻴﺔ ﺍﻟﺘﺤﺘﻴﺔ ﺍﻟﻤﺸﺘﺮﻛﺔ ﻭﺍﺟﻬﺔﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺘﺴﺠﻴﻞﻭﺍﻟﻤﺮﺍﻗﺒﺔ ﺍﻟﻤﺼﺎﺩﻗﺔ ﻳﺒﺤﺚ ﺗﺨﺰﻳﻦﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺗﺨﺰﻳﻦﺍﻟﻤﺴﺘﺨﺪﻡ 36 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻫﻨﺪﺳﺔﺍﻟﺘﻮﺯﻳﻊ ﻳﺤﺪﺩﻫﻨﺪﺳﺔ ﺗﻮﺯﻳﻊ ﻧﻈﺎﻡ ﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺨﻮﺍﺩﻡ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻟﻨﻈﺎﻡ ﻭﺗﺨﺼﻴﺺ ﺍﻟﻤﻜﻮﻧﺎﺕ ﻟﻬﺬﻩﺍﻟﺨﻮﺍﺩﻡ. ﺗﻌُﺪﻫﻨﺪﺳﺔ ﺍﻟﻌﻤﻴﻞ ﻭﺍﻟﺨﺎﺩﻡ ﻧﻮﻋﺎً ﻣﻦ ﻫﻨﺪﺳﺔ ﺍﻟﺘﻮﺯﻳﻊ ﺍﻟﻤﻨﺎﺳﺒﺔ ﻟﻠﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﺘﻲ ﻳﺘﻤﻜﻦ ﻓﻴﻬﺎﺍﻟﻌﻤﻼء ﻣﻦ ﺍﻟﻮﺻﻮﻝ ﺇﻟﻰ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﻣﺸﺘﺮﻛﺔ ﻭﻋﻤﻠﻴﺎﺕ ﻣﻨﻄﻖ ﺍﻷﻋﻤﺎﻝ ﻋﻠﻰ ﺗﻠﻚ ﺍﻟﺒﻴﺎﻧﺎﺕ. ﻓﻲﻫﺬﺍ ﺍﻟﺒﻨﺎء ،ﻳﺘﻢ ﺗﻨﻔﻴﺬ ﻭﺍﺟﻬﺔ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻋﻠﻰ ﺟﻬﺎﺯ ﺍﻟﻜﻤﺒﻴﻮﺗﺮ ﺃﻭ ﺍﻟﺠﻬﺎﺯ ﺍﻟﻤﺤﻤﻮﻝ ﺍﻟﺨﺎﺹﺑﺎﻟﻤﺴﺘﺨﺪﻡ. ﺗﺘﻢﺗﻮﺯﻳﻊ ﺍﻟﻮﻇﺎﺉﻒ ﺑﻴﻦ ﺍﻟﻌﻤﻴﻞ ﻭﺟﻬﺎﺯ ﻛﻤﺒﻴﻮﺗﺮ ﺧﺎﺩﻡ ﻭﺍﺣﺪ ﺃﻭ ﺃﻛﺜﺮ. 37 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.12ﺑﻨﻴﺔ ﺍﻟﻌﻤﻴﻞ ﻭﺍﻟﺨﺎﺩﻡ ﺍﻟﻌﻤﻴﻞ1 ﻃﻠﺐ ﺇﺟﺎﺑﺔ ﻃﻠﺐ ﺍﻟﻌﻤﻴﻞ2 ﺇﺟﺎﺑﺔ ﻃﻠﺐ ﺍﻟﻌﻤﻴﻞ3 ﺍﻟﺨﻮﺍﺩﻡ ﻃﻠﺐ ﺇﺟﺎﺑﺔ ﺣﻤﻮﻟﺔ ﻋﻤﻴﻞ ... ﺍﻟﻤﻮﺍﺯﻥ ﺇﺟﺎﺑﺔ 38 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ.4.13ﻧﻤﻂ ﻧﻤﻮﺫﺝ-ﻋﺮﺽ-ﻭﺣﺪﺓ ﺗﺤﻜﻢ ﻋﻤﻴﻞ ﺍﻟﻤﺘﺼﻔﺢ ﺍﻟﺼﻔﺤﺔﺍﻟﻤﺮﺍﺩ ﻋﺮﺿﻬﺎ ﻣﺪﺧﻼﺕﺍﻟﻤﺴﺘﺨﺪﻡ ﺗﻐﻴﻴﺮﺍﺕﺍﻟﻤﺴﺘﺨﺪﻡ ﻣﻨﻈﺮ ﻭﺣﺪﺓﺍﻟﺘﺤﻜﻢ ﻋﺮﺽﺍﻟﺘﺤﺪﻳﺚ ﻳﺘﻐﻴﺮ ﻋﺮﺽﺍﻟﺘﺤﺪﻳﺚ ﻃﻠﺐ ﺇﺷﻌﺎﺭ ﻃﻠﺐ ﻧﻤﻮﺫﺝ ﺍﻟﺨﺎﺩﻡ 39 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻻﺗﺼﺎﻝﺑﻴﻦ ﺍﻟﻌﻤﻴﻞ ﻭﺍﻟﺨﺎﺩﻡ ﺗﺴﺘﺨﺪﻡﺍﻻﺗﺼﺎﻻﺕ ﺑﻴﻦ ﺍﻟﻌﻤﻴﻞ ﻭﺍﻟﺨﺎﺩﻡ ﻋﺎﺩﺓ ًﺑﺮﻭﺗﻮﻛﻮﻝ .HTTP ﻳﺮﺳﻞﺍﻟﻌﻤﻴﻞ ﺭﺳﺎﻟﺔ ﺇﻟﻰ ﺍﻟﺨﺎﺩﻡ ﺗﺘﻀﻤﻦ ﺗﻌﻠﻴﻤﺎﺕ ﻣﺜﻞ GETﺃﻭ POSTﺑﺎﻹﺿﺎﻓﺔ ﺇﻟﻰ ﻣﻌﺮﻑ ﺍﻟﻤﻮﺭﺩ)ﻋﺎﺩﺓ ًﻋﻨﻮﺍﻥ (URLﺍﻟﺬﻱ ﻳﺠﺐ ﺃﻥ ﺗﻌﻤﻞ ﻋﻠﻴﻪ ﻫﺬﻩ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ.ﻗﺪ ﺗﺘﻀﻤﻦ ﺍﻟﺮﺳﺎﻟﺔ ﺃﻳﻀﺎً ﻣﻌﻠﻮﻣﺎﺕﺇﺿﺎﻓﻴﺔ ،ﻣﺜﻞ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﺘﻲ ﺗﻢ ﺟﻤﻌﻬﺎ ﻣﻦ ﻧﻤﻮﺫﺝ. JSON.ﻭ XMLﻫﻮ ﺑﺮﻭﺗﻮﻛﻮﻝ ﻧﺼﻲ ﻓﻘﻂ ،ﻟﺬﺍ ﻳﺠﺐ ﺗﻤﺜﻴﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻨﻈﻤﺔ ﻛﻨﺺ.ﻫﻨﺎﻙ ﻃﺮﻳﻘﺘﺎﻥﻟﺘﻤﺜﻴﻞ ﻫﺬﻩ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﺴﺘﺨﺪﻣﺘﺎﻥ ﻋﻠﻰ ﻧﻄﺎﻕ ﻭﺍﺳﻊ ،ﻭﻫﻤﺎ HTTP .ﻫﻲﻟﻐﺔ ﺗﺮﻣﻴﺰ ﺗﺴﺘﺨﺪﻡ ﺍﻟﻌﻼﻣﺎﺕ ﻟﺘﺤﺪﻳﺪ ﻛﻞ ﻋﻨﺼﺮ ﻣﻦ ﻋﻨﺎﺻﺮ ﺍﻟﺒﻴﺎﻧﺎﺕ XML Javascript.ﻫﻮ ﺗﻤﺜﻴﻞ ﺃﺑﺴﻂ ﻳﻌﺘﻤﺪ ﻋﻠﻰ ﺗﻤﺜﻴﻞ ﺍﻟﻜﺎﺉﻨﺎﺕ ﻓﻲ ﻟﻐﺔ JSON 40 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.14ﺑﻨﻴﺔ ﺧﺎﺩﻡ ﺍﻟﻌﻤﻴﻞ ﻣﺘﻌﺪﺩ ﺍﻟﻄﺒﻘﺎﺕ ﺍﻟﻌﻤﻴﻞ1 ﺍﻟﻌﻤﻴﻞ2 ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ ﻃﻠﺐ ﺧﺎﺩﻡﺍﻟﻮﻳﺐ ﺍﻟﺨﺎﺩﻡ ﺍﻟﺨﺎﺩﻡ ﺍﻟﻌﻤﻴﻞ3 ﻋﻤﻴﻞ ... 41 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻫﻨﺪﺳﺔﻣﻮﺟﻬﺔ ﻧﺤﻮ ﺍﻟﺨﺪﻣﺔ ﺍﻟﺨﺪﻣﺎﺕﻓﻲ ﺍﻟﺒﻨﻴﺔ ﺍﻟﻤﻮﺟﻬﺔ ﻧﺤﻮ ﺍﻟﺨﺪﻣﺔ ﻋﺒﺎﺭﺓ ﻋﻦ ﻣﻜﻮﻧﺎﺕ ﻋﺪﻳﻤﺔ ﺍﻟﺠﻨﺴﻴﺔ ،ﻣﻤﺎ ﻳﻌﻨﻲﺃﻧﻪ ﻳﻤﻜﻦ ﺗﻜﺮﺍﺭﻫﺎ ﻭﻳﻤﻜﻦ ﻧﻘﻠﻬﺎ ﻣﻦ ﺟﻬﺎﺯ ﻛﻤﺒﻴﻮﺗﺮ ﺇﻟﻰ ﺁﺧﺮ. ﻗﺪﺗﺸﺎﺭﻙ ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺍﻟﺨﻮﺍﺩﻡ ﻓﻲ ﺗﻘﺪﻳﻢ ﺍﻟﺨﺪﻣﺎﺕ ﻋﺎﺩﺓ ًﻣﺎ ﻳﻜﻮﻥ ﻣﻦ ﺍﻷﺳﻬﻞ ﺗﻮﺳﻴﻊ ﻧﻄﺎﻕ ﺍﻟﻬﻨﺪﺳﺔ ﺍﻟﻤﻮﺟﻬﺔ ﻧﺤﻮ ﺍﻟﺨﺪﻣﺔ ﻣﻊ ﺯﻳﺎﺩﺓ ﺍﻟﻄﻠﺐﻭﺗﻜﻮﻥ ﻣﺮﻧﺔ ﻓﻲ ﻣﻮﺍﺟﻬﺔ ﺍﻟﻔﺸﻞ. 42 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺸﻜﻞ 4.15ﻫﻨﺪﺳﺔ ﻣﻮﺟﻬﺔ ﻧﺤﻮ ﺍﻟﺨﺪﻣﺔ ﺱ1 ﺍﻟﻌﻤﻴﻞ1 ﺱ2 ﺱ3 ﺍﻟﻌﻤﻴﻞ2 ﺧﺪﻣﺔ ﺑﻮﺍﺑﺔ ﺧﺎﺩﻡﺍﻟﻮﻳﺐ ﺱ4 ﺍﻟﻌﻤﻴﻞ3 ﺱ5 ﺱ6 ﻋﻤﻴﻞ ... ﺧﺪﻣﺎﺕ 43 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﻘﻀﺎﻳﺎﻓﻲ ﺍﻻﺧﺘﻴﺎﺭ ﺍﻟﻤﻌﻤﺎﺭﻱ ﻧﻮﻉﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺗﺤﺪﻳﺜﺎﺕ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺇﺫﺍﻛﻨﺖ ﺗﺴﺘﺨﺪﻡ ﻓﻲ ﺍﻟﻐﺎﻟﺐ ﺑﻴﺎﻧﺎﺕ ﻣﻨﻈﻤﺔ ﻳﻤﻜﻦ ﺗﺤﺪﻳﺜﻬﺎ ﻣﻦ ﺧﻼﻝ ﻣﻴﺰﺍﺕ ﻣﺨﺘﻠﻔﺔ ﻟﻠﻨﻈﺎﻡ ،ﻓﻤﻦ ﺍﻷﻓﻀﻞﻋﺎﺩﺓ ًﺃﻥ ﻳﻜﻮﻥ ﻟﺪﻳﻚ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﻣﺸﺘﺮﻛﺔ ﻭﺍﺣﺪﺓ ﺗﻮﻓﺮ ﺍﻟﻘﻔﻞ ﻭﺇﺩﺍﺭﺓ ﺍﻟﻤﻌﺎﻣﻼﺕ.ﺇﺫﺍ ﺗﻢ ﺗﻮﺯﻳﻊﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﺒﺮ ﺍﻟﺨﺪﻣﺎﺕ ،ﻓﺴﺘﺤﺘﺎﺝ ﺇﻟﻰ ﻃﺮﻳﻘﺔ ﻟﻠﺤﻔﺎﻅ ﻋﻠﻰ ﺍﺗﺴﺎﻗﻬﺎ ،ﻭﻫﺬﺍ ﻳﻀﻴﻒ ﺗﻜﻠﻔﺔ ﺇﺿﺎﻓﻴﺔﺇﻟﻰ ﻧﻈﺎﻣﻚ. ﺗﻐﻴﻴﺮﺍﻟﺘﺮﺩﺩ ﺇﺫﺍﻛﻨﺖ ﺗﺘﻮﻗﻊ ﺃﻥ ﻣﻜﻮﻧﺎﺕ ﺍﻟﻨﻈﺎﻡ ﺳﻮﻑ ﻳﺘﻢ ﺗﻐﻴﻴﺮﻫﺎ ﺃﻭ ﺍﺳﺘﺒﺪﺍﻟﻬﺎ ﺑﺸﻜﻞ ﻣﻨﺘﻈﻢ ،ﻓﺈﻥ ﻋﺰﻝ ﻫﺬﻩ ﺍﻟﻤﻜﻮﻧﺎﺕﻛﺨﺪﻣﺎﺕ ﻣﻨﻔﺼﻠﺔ ﻳﺒﺴﻂ ﻫﺬﻩ ﺍﻟﺘﻐﻴﻴﺮﺍﺕ. ﻣﻨﺼﺔﺗﻨﻔﻴﺬ ﺍﻟﻨﻈﺎﻡ ﺇﺫﺍﻛﻨﺖ ﺗﺨﻄﻂ ﻟﺘﺸﻐﻴﻞ ﻧﻈﺎﻣﻚ ﻋﻠﻰ ﺍﻟﺴﺤﺎﺑﺔ ﻣﻊ ﻭﺻﻮﻝ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺇﻟﻴﻪ ﻋﺒﺮ ﺍﻹﻧﺘﺮﻧﺖ، ﻓﻤﻦﺍﻷﻓﻀﻞ ﻋﺎﺩﺓ ًﺗﻨﻔﻴﺬﻩ ﻛﻬﻨﺪﺳﺔ ﻣﻮﺟﻬﺔ ﻧﺤﻮ ﺍﻟﺨﺪﻣﺔ ﻷﻥ ﺗﻮﺳﻴﻊ ﻧﻄﺎﻕ ﺍﻟﻨﻈﺎﻡ ﺃﺳﻬﻞ. ﺇﺫﺍﻛﺎﻥ ﻣﻨﺘﺠﻚ ﻋﺒﺎﺭﺓ ﻋﻦ ﻧﻈﺎﻡ ﺃﻋﻤﺎﻝ ﻳﻌﻤﻞ ﻋﻠﻰ ﺧﻮﺍﺩﻡ ﻣﺤﻠﻴﺔ ،ﻓﻘﺪ ﺗﻜﻮﻥ ﺍﻟﻬﻨﺪﺳﺔ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻄﺒﻘﺎﺕﺃﻛﺜﺮ ﻣﻼءﻣﺔ. 44 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺠﺪﻭﻝ 4.8ﺧﻴﺎﺭﺍﺕ ﺍﻟﺘﻜﻨﻮﻟﻮﺟﻴﺎ ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ ﻫﻞﻳﺠﺐ ﻋﻠﻴﻚ ﺍﺳﺘﺨﺪﺍﻡ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ SQLﻋﻼﺉﻘﻴﺔ ﺃﻭ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ NOSQLﻏﻴﺮ ﻣﻨﻈﻤﺔ؟ ﻣﻨﺼﺔ ﻫﻞﻳﺠﺐ ﻋﻠﻴﻚ ﺗﺴﻠﻴﻢ ﻣﻨﺘﺠﻚ ﻋﺒﺮ ﺗﻄﺒﻴﻖ ﺟﻮﺍﻝ ﻭ/ﺃﻭ ﻣﻨﺼﺔ ﻭﻳﺐ؟ ﺍﻟﺨﺎﺩﻡ ﻫﻞﻳﻨﺒﻐﻲ ﻟﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺧﻮﺍﺩﻡ ﺩﺍﺧﻠﻴﺔ ﻣﺨﺼﺼﺔ ﺃﻡ ﺗﺼﻤﻴﻢ ﻧﻈﺎﻣﻚ ﻟﻠﻌﻤﻞ ﻋﻠﻰ ﺳﺤﺎﺑﺔ ﻋﺎﻣﺔ؟ ﺇﺫﺍ ﻛﺎﻧﺖﺍﻟﺴﺤﺎﺑﺔ ﻋﺎﻣﺔ ،ﻓﻬﻞ ﻳﻨﺒﻐﻲ ﻟﻚ ﺍﺳﺘﺨﺪﺍﻡ Amazonﺃﻭ Googleﺃﻭ Microsoftﺃﻭ ﺃﻱ ﺧﻴﺎﺭ ﺁﺧﺮ؟ ﺍﻟﻤﺼﺪﺭﺍﻟﻤﻔﺘﻮﺡ ﻫﻞﻫﻨﺎﻙ ﻣﻜﻮﻧﺎﺕ ﻣﻔﺘﻮﺣﺔ ﺍﻟﻤﺼﺪﺭ ﻣﻨﺎﺳﺒﺔ ﻳﻤﻜﻨﻚ ﺩﻣﺠﻬﺎ ﻓﻲ ﻣﻨﺘﺠﺎﺗﻚ؟ ﺃﺩﻭﺍﺕﺍﻟﺘﻄﻮﻳﺮ ﻫﻞﺗﺘﻀﻤﻦ ﺃﺩﻭﺍﺕ ﺍﻟﺘﻄﻮﻳﺮ ﺍﻟﺨﺎﺻﺔ ﺑﻚ ﺍﻓﺘﺮﺍﺿﺎﺕ ﻣﻌﻤﺎﺭﻳﺔ ﺣﻮﻝ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﺬﻱ ﻳﺘﻢ ﺗﻄﻮﻳﺮﻩ ﻭﺍﻟﺘﻲ ﺗﺤﺪﻣﻦ ﺍﺧﺘﻴﺎﺭﺍﺗﻚ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ؟ 45 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻗﺎﻋﺪﺓﺍﻟﺒﻴﺎﻧﺎﺕ ﻫﻨﺎﻙﻧﻮﻋﺎﻥ ﻣﻦ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﻳﺘﻢ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﺑﺸﻜﻞ ﺷﺎﺉﻊ ﺍﻵﻥ: ﻗﻮﺍﻋﺪﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻌﻼﺉﻘﻴﺔ ،ﺣﻴﺚ ﻳﺘﻢ ﺗﻨﻈﻴﻢ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻓﻲ ﺟﺪﺍﻭﻝ ﻣﻨﻈﻤﺔ ﻗﻮﺍﻋﺪﺑﻴﺎﻧﺎﺕ ،NoSQLﺣﻴﺚ ﺗﻜﻮﻥ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﻨﻈﻤﺔ ﺑﺸﻜﻞ ﺃﻛﺜﺮ ﻣﺮﻭﻧﺔ ﻭﻣﺤﺪﺩﺓ ﻣﻦ ﻗﺒﻞﺍﻟﻤﺴﺘﺨﺪﻡ. ﺗﻌﺘﺒﺮﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻌﻼﺉﻘﻴﺔ ،ﻣﺜﻞ ،MySQLﻣﻨﺎﺳﺒﺔ ﺑﺸﻜﻞ ﺧﺎﺹ ﻟﻠﻤﻮﺍﻗﻒ ﺍﻟﺘﻲﺗﺤﺘﺎﺝ ﻓﻴﻬﺎ ﺇﻟﻰ ﺇﺩﺍﺭﺓ ﺍﻟﻤﻌﺎﻣﻼﺕ ﻭﺗﻜﻮﻥ ﻫﻴﺎﻛﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﺘﻮﻗﻌﺔ ﻭﺑﺴﻴﻄﺔ ﺇﻟﻰ ﺣﺪﻣﺎ. ﺗﻌﺘﺒﺮﻗﻮﺍﻋﺪ ﺑﻴﺎﻧﺎﺕ ،NoSQLﻣﺜﻞ ،MongoDBﺃﻛﺜﺮ ﻣﺮﻭﻧﺔ ﻭﺃﻛﺜﺮ ﻛﻔﺎءﺓ ﻣﻦ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕﺍﻟﻌﻼﺉﻘﻴﺔ ﻟﺘﺤﻠﻴﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ. ﺗﺴﻤﺢﻗﻮﺍﻋﺪ ﺑﻴﺎﻧﺎﺕ NoSQLﺑﺘﻨﻈﻴﻢ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺑﺸﻜﻞ ﻫﺮﻣﻲ ﺑﺪﻻ ًﻣﻦ ﺍﻟﺠﺪﺍﻭﻝ ﺍﻟﻤﺴﻄﺤﺔ ،ﻭﻫﺬﺍ ﻳﺴﻤﺢﺑﻤﻌﺎﻟﺠﺔ ﻣﺘﺰﺍﻣﻨﺔ ﺃﻛﺜﺮ ﻛﻔﺎءﺓ ﻟﻠﺒﻴﺎﻧﺎﺕ ﺍﻟﻀﺨﻤﺔ. 46 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻣﻨﺼﺔﺍﻟﺘﻮﺻﻴﻞ ﻳﻤﻜﻦﺃﻥ ﻳﻜﻮﻥ ﺍﻟﺘﺴﻠﻴﻢ ﻋﻠﻰ ﺷﻜﻞ ﻣﻨﺘﺞ ﻗﺎﺉﻢ ﻋﻠﻰ ﺍﻟﻮﻳﺐ ﺃﻭ ﻣﻨﺘﺞ ﻣﺤﻤﻮﻝ ﺃﻭ ﻛﻠﻴﻬﻤﺎ ﻣﺸﺎﻛﻞﺍﻟﻬﺎﺗﻒ ﺍﻟﻤﺤﻤﻮﻝ: ﺍﺗﺼﺎﻝﻣﺘﻘﻄﻊﻳﺠﺐ ﺃﻥ ﺗﻜﻮﻥ ﻗﺎﺩﺭﺍً ﻋﻠﻰ ﺗﻘﺪﻳﻢ ﺧﺪﻣﺔ ﻣﺤﺪﻭﺩﺓ ﺩﻭﻥ ﺍﻻﺗﺼﺎﻝ ﺑﺎﻟﺸﺒﻜﺔ. ﻗﻮﺓﺍﻟﻤﻌﺎﻟﺞﺗﺘﻤﺘﻊ ﺍﻷﺟﻬﺰﺓ ﺍﻟﻤﺤﻤﻮﻟﺔ ﺑﻤﻌﺎﻟﺠﺎﺕ ﺃﻗﻞ ﻗﻮﺓ ،ﻟﺬﺍ ﻳﺘﻌﻴﻦ ﻋﻠﻴﻚ ﺗﻘﻠﻴﻞ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺑﻴﺔﺍﻟﻤﻜﺜﻔﺔ. ﺇﺩﺍﺭﺓﺍﻟﻄﺎﻗﺔﻋﻤﺮ ﺑﻄﺎﺭﻳﺔ ﺍﻟﻬﺎﺗﻒ ﺍﻟﻤﺤﻤﻮﻝ ﻣﺤﺪﻭﺩ ﻟﺬﺍ ﻳﺠﺐ ﻋﻠﻴﻚ ﻣﺤﺎﻭﻟﺔ ﺗﻘﻠﻴﻞ ﺍﻟﻄﺎﻗﺔ ﺍﻟﺘﻲ ﻳﺴﺘﺨﺪﻣﻬﺎﺗﻄﺒﻴﻘﻚ. ﻟﻮﺣﺔﺍﻟﻤﻔﺎﺗﻴﺢ ﻋﻠﻰ ﺍﻟﺸﺎﺷﺔﻟﻮﺣﺎﺕ ﺍﻟﻤﻔﺎﺗﻴﺢ ﺍﻟﺘﻲ ﺗﻈﻬﺮ ﻋﻠﻰ ﺍﻟﺸﺎﺷﺔ ﺑﻄﻴﺉﺔ ﻭﻣﻌﺮﺿﺔ ﻟﻸﺧﻄﺎء. ﻳﺠﺐﻋﻠﻴﻚ ﺗﻘﻠﻴﻞ ﺍﻹﺩﺧﺎﻝ ﺑﺎﺳﺘﺨﺪﺍﻡ ﻟﻮﺣﺔ ﻣﻔﺎﺗﻴﺢ ﺍﻟﺸﺎﺷﺔ ﻟﺘﻘﻠﻴﻞ ﺇﺣﺒﺎﻁ ﺍﻟﻤﺴﺘﺨﺪﻡ. ﻟﻠﺘﻌﺎﻣﻞﻣﻊ ﻫﺬﻩ ﺍﻻﺧﺘﻼﻓﺎﺕ ،ﻓﺄﻧﺖ ﺗﺤﺘﺎﺝ ﻋﺎﺩﺓ ًﺇﻟﻰ ﺇﺻﺪﺍﺭﺍﺕ ﻣﻨﻔﺼﻠﺔ ﻟﻠﻤﺘﺼﻔﺢ ﻭﺍﻟﻬﺎﺗﻒ ﺍﻟﻤﺤﻤﻮﻝﻣﻦ ﺍﻟﻮﺍﺟﻬﺔ ﺍﻷﻣﺎﻣﻴﺔ ﻟﻤﻨﺘﺠﻚ. ﻗﺪﺗﺤﺘﺎﺝ ﺇﻟﻰ ﺑﻨﻴﺔ ﺗﺤﻠﻞ ﻣﺨﺘﻠﻔﺔ ﺗﻤﺎﻣﺎً ﻓﻲ ﻫﺬﻩ ﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻟﻀﻤﺎﻥ ﺍﻟﺤﻔﺎﻅ ﻋﻠﻰ ﺍﻷﺩﺍءﻭﺍﻟﺨﺼﺎﺉﺺ ﺍﻷﺧﺮﻯ. 47 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺨﺎﺩﻡ ﺃﺣﺪﺍﻟﻘﺮﺍﺭﺍﺕ ﺍﻟﺮﺉﻴﺴﻴﺔ ﺍﻟﺘﻲ ﻳﺠﺐ ﻋﻠﻴﻚ ﺍﺗﺨﺎﺫﻫﺎ ﻫﻮ ﻣﺎ ﺇﺫﺍ ﻛﻨﺖ ﺗﺮﻳﺪ ﺗﺼﻤﻴﻢ ﻧﻈﺎﻣﻚ ﻟﻴﻌﻤﻞﻋﻠﻰ ﺧﻮﺍﺩﻡ ﺍﻟﻌﻤﻼء ﺃﻭ ﻟﻴﻌﻤﻞ ﻋﻠﻰ ﺍﻟﺴﺤﺎﺑﺔ. ﺑﺎﻟﻨﺴﺒﺔﻟﻠﻤﻨﺘﺠﺎﺕ ﺍﻻﺳﺘﻬﻼﻛﻴﺔ ﺍﻟﺘﻲ ﻟﻴﺴﺖ ﻣﺠﺮﺩ ﺗﻄﺒﻴﻘﺎﺕ ﺟﻮﺍﻝ ،ﺃﻋﺘﻘﺪ ﺃﻧﻪ ﻣﻦ ﺍﻟﻤﻨﻄﻘﻲﺩﺍﺉﻤﺎً ﺗﻄﻮﻳﺮﻫﺎ ﻟﻠﺴﺤﺎﺑﺔ. ﺑﺎﻟﻨﺴﺒﺔﻟﻠﻤﻨﺘﺠﺎﺕ ﺍﻟﺘﺠﺎﺭﻳﺔ ،ﻳﻌﺪ ﻫﺬﺍ ﺍﻟﻘﺮﺍﺭ ﺃﻛﺜﺮ ﺻﻌﻮﺑﺔ. ﺗﻬﺘﻢﺑﻌﺾ ﺍﻟﺸﺮﻛﺎﺕ ﺑﺄﻣﻦ ﺍﻟﺴﺤﺎﺑﺔ ﻭﺗﻔﻀﻞ ﺗﺸﻐﻴﻞ ﺃﻧﻈﻤﺘﻬﺎ ﻋﻠﻰ ﺧﻮﺍﺩﻡ ﺩﺍﺧﻠﻴﺔ.ﻗﺪ ﻳﻜﻮﻥ ﻟﺪﻳﻬﺎ ﻧﻤﻂﻣﺘﻮﻗﻊ ﻻﺳﺘﺨﺪﺍﻡ ﺍﻟﻨﻈﺎﻡ ،ﻭﺑﺎﻟﺘﺎﻟﻲ ﺗﻘﻞ ﺍﻟﺤﺎﺟﺔ ﺇﻟﻰ ﺗﺼﻤﻴﻢ ﻧﻈﺎﻣﻚ ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﺘﻐﻴﻴﺮﺍﺕ ﺍﻟﻜﺒﻴﺮﺓﻓﻲ ﺍﻟﻄﻠﺐ. ﺃﺣﺪﺍﻟﺨﻴﺎﺭﺍﺕ ﺍﻟﻤﻬﻤﺔ ﺍﻟﺘﻲ ﻳﺠﺐ ﻋﻠﻴﻚ ﺍﺗﺨﺎﺫﻫﺎ ﺇﺫﺍ ﻛﻨﺖ ﺗﻘﻮﻡ ﺑﺘﺸﻐﻴﻞ ﺑﺮﻧﺎﻣﺠﻚ ﻋﻠﻰ ﺍﻟﺴﺤﺎﺑﺔﻫﻮ ﺍﺧﺘﻴﺎﺭ ﻣﻮﻓﺮ ﺍﻟﺴﺤﺎﺑﺔ ﺍﻟﺬﻱ ﺳﺘﺴﺘﺨﺪﻣﻪ. 48 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﻤﺼﺪﺭﺍﻟﻤﻔﺘﻮﺡ ﺍﻟﺒﺮﻣﺠﻴﺎﺕﻣﻔﺘﻮﺣﺔ ﺍﻟﻤﺼﺪﺭ ﻫﻲ ﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺘﻲ ﺗﺘﻮﻓﺮ ﻣﺠﺎﻧﺎً ،ﻭﺍﻟﺘﻲ ﻳﻤﻜﻨﻚ ﺗﻐﻴﻴﺮﻫﺎ ﻭﺗﻌﺪﻳﻠﻬﺎﻛﻤﺎ ﻳﺤﻠﻮ ﻟﻚ. ﺍﻟﻤﻴﺰﺓﻫﻲ ﺃﻧﻪ ﻳﻤﻜﻨﻚ ﺇﻋﺎﺩﺓ ﺍﺳﺘﺨﺪﺍﻡ ﺑﺮﺍﻣﺞ ﺟﺪﻳﺪﺓ ﺑﺪﻻ ًﻣﻦ ﺗﻨﻔﻴﺬﻫﺎ ،ﻣﻤﺎ ﻳﻘﻠﻞ ﻣﻦ ﺗﻜﺎﻟﻴﻒ ﺍﻟﺘﻄﻮﻳﺮ ﻭﺍﻟﻮﻗﺖﺍﻟﻤﺴﺘﻐﺮﻕ ﻟﻠﻮﺻﻮﻝ ﺇﻟﻰ ﺍﻟﺴﻮﻕ. ﺇﻥﻣﻦ ﻋﻴﻮﺏ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻣﻔﺘﻮﺣﺔ ﺍﻟﻤﺼﺪﺭ ﻫﻮ ﺃﻧﻚ ﻣﻘﻴﺪ ﺑﻬﺬﺍ ﺍﻟﺒﺮﻧﺎﻣﺞ ﻭﻟﻴﺲ ﻟﺪﻳﻚ ﺃﻱ ﺳﻴﻄﺮﺓﻋﻠﻰ ﺗﻄﻮﺭﻩ. ﻭﻳﻌﺘﻤﺪﺍﻟﻘﺮﺍﺭ ﺑﺸﺄﻥ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻣﻔﺘﻮﺣﺔ ﺍﻟﻤﺼﺪﺭ ﺃﻳﻀﺎً ﻋﻠﻰ ﻣﺪﻯ ﺗﻮﻓﺮ ﻣﻜﻮﻧﺎﺗﻬﺎ ﻣﻔﺘﻮﺣﺔﺍﻟﻤﺼﺪﺭ ﻭﻧﻀﺠﻬﺎ ﻭﺩﻋﻤﻬﺎ ﺍﻟﻤﺴﺘﻤﺮ. ﻗﺪﺗﻔﺮﺽ ﻣﺸﻜﻼﺕ ﺗﺮﺧﻴﺺ ﺍﻟﻤﺼﺪﺭ ﺍﻟﻤﻔﺘﻮﺡ ﻗﻴﻮﺩﺍً ﻋﻠﻰ ﻛﻴﻔﻴﺔ ﺍﺳﺘﺨﺪﺍﻣﻚ ﻟﻠﺒﺮﻧﺎﻣﺞ. ﻳﺠﺐﺃﻥ ﻳﻌﺘﻤﺪ ﺍﺧﺘﻴﺎﺭﻙ ﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﻤﺼﺪﺭ ﺍﻟﻤﻔﺘﻮﺡ ﻋﻠﻰ ﻧﻮﻉ ﺍﻟﻤﻨﺘﺞ ﺍﻟﺬﻱ ﺗﻘﻮﻡ ﺑﺘﻄﻮﻳﺮﻩ،ﻭﺳﻮﻗﻚ ﺍﻟﻤﺴﺘﻬﺪﻑ ،ﻭﺧﺒﺮﺓ ﻓﺮﻳﻖ ﺍﻟﺘﻄﻮﻳﺮ ﺍﻟﺨﺎﺹ ﺑﻚ. 49 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺃﺩﻭﺍﺕﺍﻟﺘﻄﻮﻳﺮ ﺗﺆﺛﺮﺗﻘﻨﻴﺎﺕ ﺍﻟﺘﻄﻮﻳﺮ ،ﻣﺜﻞ ﻣﺠﻤﻮﻋﺔ ﺃﺩﻭﺍﺕ ﺗﻄﻮﻳﺮ ﺍﻷﺟﻬﺰﺓ ﺍﻟﻤﺤﻤﻮﻟﺔ ﺃﻭ ﺇﻃﺎﺭ ﻋﻤﻞ ﺗﻄﺒﻴﻘﺎﺕﺍﻟﻮﻳﺐ ،ﻋﻠﻰ ﺑﻨﻴﺔ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﺨﺎﺹ ﺑﻚ. ﺗﺘﻀﻤﻦﻫﺬﻩ ﺍﻟﺘﻘﻨﻴﺎﺕ ﺍﻓﺘﺮﺍﺿﺎﺕ ﻣﺪﻣﺠﺔ ﺣﻮﻝ ﺑﻨﻴﺔ ﺍﻟﻨﻈﺎﻡ ﻭﻳﺠﺐ ﻋﻠﻴﻚ ﺍﻻﻟﺘﺰﺍﻡ ﺑﻬﺬﻩ ﺍﻻﻓﺘﺮﺍﺿﺎﺕﻻﺳﺘﺨﺪﺍﻡ ﻧﻈﺎﻡ ﺍﻟﺘﻄﻮﻳﺮ. ﻗﺪﻳﻜﻮﻥ ﻟﺘﻜﻨﻮﻟﻮﺟﻴﺎ ﺍﻟﺘﻄﻮﻳﺮ ﺍﻟﺘﻲ ﺗﺴﺘﺨﺪﻣﻬﺎ ﺃﻳﻀﺎً ﺗﺄﺛﻴﺮ ﻏﻴﺮ ﻣﺒﺎﺷﺮ ﻋﻠﻰ ﺑﻨﻴﺔ ﺍﻟﻨﻈﺎﻡ. ﻋﺎﺩﺓ ًﻣﺎ ﻳﻔﻀﻞ ﺍﻟﻤﻄﻮﺭﻭﻥ ﺍﻟﺨﻴﺎﺭﺍﺕ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﺍﻟﺘﻲ ﺗﺴﺘﺨﺪﻡ ﺗﻘﻨﻴﺎﺕ ﻣﺄﻟﻮﻓﺔ ﻳﻔﻬﻤﻮﻧﻬﺎ.ﻋﻠﻰ ﺳﺒﻴﻞﺍﻟﻤﺜﺎﻝ ،ﺇﺫﺍ ﻛﺎﻥ ﻓﺮﻳﻘﻚ ﻳﺘﻤﺘﻊ ﺑﺨﺒﺮﺓ ﻛﺒﻴﺮﺓ ﻓﻲ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻌﻼﺉﻘﻴﺔ ،ﻓﻘﺪ ﻳﺠﺎﺩﻟﻮﻥ ﻓﻲﻫﺬﺍ ﺍﻷﻣﺮ ﺑﺪﻻ ًﻣﻦ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ .NoSQL 50 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﻨﻘﺎﻁﺍﻟﺮﺉﻴﺴﻴﺔ 1 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻫﻲ ﺍﻟﺘﻨﻈﻴﻢ ﺍﻷﺳﺎﺳﻲ ﻟﻠﻨﻈﺎﻡ ﺍﻟﻤﺘﺠﺴﺪ ﻓﻲ ﻣﻜﻮﻧﺎﺗﻪ ،ﻭﻋﻼﻗﺎﺗﻬﺎ ﻣﻊ ﺑﻌﻀﻬﺎﺍﻟﺒﻌﺾ ،ﻭﻣﻊ ﺍﻟﺒﻴﺉﺔ ،ﻭﺍﻟﻤﺒﺎﺩﺉ ﺍﻟﺘﻲ ﺗﻮﺟﻪ ﺗﺼﻤﻴﻤﻪ ﻭﺗﻄﻮﺭﻩ. ﺇﻥﻫﻨﺪﺳﺔ ﻧﻈﺎﻡ ﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻟﻬﺎ ﺗﺄﺛﻴﺮ ﻛﺒﻴﺮ ﻋﻠﻰ ﺧﺼﺎﺉﺺ ﺍﻟﻨﻈﺎﻡ ﻏﻴﺮ ﺍﻟﻮﻇﻴﻔﻴﺔ ﻣﺜﻞ ﺍﻟﻤﻮﺛﻮﻗﻴﺔﻭﺍﻟﻜﻔﺎءﺓ ﻭﺍﻷﻣﺎﻥ. ﻳﺘﻀﻤﻦﺍﻟﺘﺼﻤﻴﻢ ﺍﻟﻤﻌﻤﺎﺭﻱ ﻓﻬﻢ ﺍﻟﻘﻀﺎﻳﺎ ﺍﻟﻤﻬﻤﺔ ﻟﻤﻨﺘﺠﻚ ﻭﺇﻧﺸﺎء ﺃﻭﺻﺎﻑ ﻟﻠﻨﻈﺎﻡ ﺗﻮﺿﺢ ﺍﻟﻤﻜﻮﻧﺎﺕﻭﻋﻼﻗﺎﺗﻬﺎ. ﺍﻟﺪﻭﺭﺍﻟﺮﺉﻴﺴﻲ ﻟﻸﻭﺻﺎﻑ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻫﻮ ﺗﻮﻓﻴﺮ ﺍﻷﺳﺎﺱ ﻟﻔﺮﻳﻖ ﺍﻟﺘﻄﻮﻳﺮ ﻟﻤﻨﺎﻗﺸﺔ ﺗﻨﻈﻴﻢ ﺍﻟﻨﻈﺎﻡ.ﺗﻌﺘﺒﺮ ﺍﻟﻤﺨﻄﻄﺎﺕ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻏﻴﺮ ﺍﻟﺮﺳﻤﻴﺔ ﻓﻌﺎﻟﺔ ﻓﻲ ﺍﻟﻮﺻﻒ ﺍﻟﻤﻌﻤﺎﺭﻱ ﻷﻧﻬﺎ ﺳﺮﻳﻌﺔ ﻭﺳﻬﻠﺔﺍﻟﺮﺳﻢ ﻭﺍﻟﻤﺸﺎﺭﻛﺔ. ﻳﺘﻀﻤﻦﺗﺤﻠﻞ ﺍﻟﻨﻈﺎﻡ ﺗﺤﻠﻴﻞ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﻭﺗﻤﺜﻴﻠﻬﺎ ﻛﻤﺠﻤﻮﻋﺔ ﻣﻦ ﺍﻟﻤﻜﻮﻧﺎﺕ ﺍﻟﺪﻗﻴﻘﺔ. 51 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﻨﻘﺎﻁﺍﻟﺮﺉﻴﺴﻴﺔ 2 ﻟﺘﻘﻠﻴﻞﺍﻟﺘﻌﻘﻴﺪ ،ﻳﺠﺐ ﻋﻠﻴﻚ ﻓﺼﻞ ﺍﻻﻫﺘﻤﺎﻣﺎﺕ ﻭﺗﺠﻨﺐ ﺍﻟﺘﻜﺮﺍﺭ ﺍﻟﻮﻇﻴﻔﻲ ﻭﺍﻟﺘﺮﻛﻴﺰ ﻋﻠﻰ ﻭﺍﺟﻬﺎﺕﺍﻟﻤﻜﻮﻧﺎﺕ. ﻏﺎﻟﺒﺎًﻣﺎ ﺗﺤﺘﻮﻱ ﺍﻷﻧﻈﻤﺔ ﺍﻟﻤﺴﺘﻨﺪﺓ ﺇﻟﻰ ﺍﻟﻮﻳﺐ ﻋﻠﻰ ﺑﻨﻴﺔ ﻃﺒﻘﻴﺔ ﻣﺸﺘﺮﻛﺔ ﺗﺘﻀﻤﻦ ﻃﺒﻘﺎﺕ ﻭﺍﺟﻬﺔﺍﻟﻤﺴﺘﺨﺪﻡ ،ﻭﻃﺒﻘﺎﺕ ﺧﺎﺻﺔ ﺑﺎﻟﺘﻄﺒﻴﻖ ،ﻭﻃﺒﻘﺔ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ. ﻳﺤﺪﺩﻫﻨﺪﺳﺔ ﺍﻟﺘﻮﺯﻳﻊ ﻓﻲ ﻧﻈﺎﻡ ﻣﺎ ﺗﻨﻈﻴﻢ ﺍﻟﺨﻮﺍﺩﻡ ﻓﻲ ﻫﺬﺍ ﺍﻟﻨﻈﺎﻡ ﻭﺗﺨﺼﻴﺺ ﺍﻟﻤﻜﻮﻧﺎﺕ ﻟﻬﺬﻩ ﺍﻟﺨﻮﺍﺩﻡ. ﺗﻌﺪﺃﻧﻈﻤﺔ ﺍﻟﻌﻤﻴﻞ ﻭﺍﻟﺨﺎﺩﻡ ﻣﺘﻌﺪﺩﺓ ﺍﻟﻄﺒﻘﺎﺕ ﻭﺍﻟﻬﻨﺪﺳﺔ ﺍﻟﻤﻮﺟﻬﺔ ﻟﻠﺨﺪﻣﺔ ﻫﻲ ﺃﻛﺜﺮ ﺍﻟﻬﻨﺪﺳﺔﺍﻟﻤﻌﻤﺎﺭﻳﺔ ﺍﺳﺘﺨﺪﺍﻣﺎً ﻓﻲ ﺍﻷﻧﻈﻤﺔ ﺍﻟﻤﺴﺘﻨﺪﺓ ﺇﻟﻰ ﺍﻟﻮﻳﺐ. ﻳﻌﺪﺍﺗﺨﺎﺫ ﺍﻟﻘﺮﺍﺭﺍﺕ ﺑﺸﺄﻥ ﺍﻟﺘﻘﻨﻴﺎﺕ ﻣﺜﻞ ﺗﻘﻨﻴﺎﺕ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺍﻟﺴﺤﺎﺑﺔ ﺟﺰءﺍً ﻣﻬﻤﺎً ﻣﻦﻋﻤﻠﻴﺔ ﺍﻟﺘﺼﻤﻴﻢ ﺍﻟﻤﻌﻤﺎﺭﻱ. 52 © BIS3012023 ﻫﻨﺪﺳﺔﺍﻟﺒﺮﻣﺠﻴﺎﺕ