System Integration Patterns

System Integration Patterns (ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ систСм) - это Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹Π΅ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΡ‹Π΅ способы взаимодСйствия ΠΈ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ ΠΈ систСмами Π² Ρ€Π°ΠΌΠΊΠ°Ρ… распрСдСлСнных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π­Ρ‚ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‚ стандартизированныС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ΠΎΠ±ΠΌΠ΅Π½ сообщСниями, синхронныС ΠΈ асинхронныС Π²Ρ‹Π·ΠΎΠ²Ρ‹, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ошибками ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

НиТС пСрСчислСны Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· распространСнных шаблонов ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ систСм:

  1. Publish-Subscribe (Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒ-ΠŸΠΎΠ΄ΠΏΠΈΡΡ‡ΠΈΠΊ): Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ позволяСт ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ (ΠΈΠ·Π΄Π°Ρ‚Π΅Π»ΡŽ) ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ сообщСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ мноТСством ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (подписчиков) Π±Π΅Π· прямого взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, заинтСрСсованныС Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… сообщСний, ΠΏΠΎΠ΄ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ Π½Π° Π½ΠΈΡ… ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ обновлСния, ΠΊΠΎΠ³Π΄Π° сообщСния ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ΡΡ.

  2. Message Queue (ΠžΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний): Π’ этом ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ сообщСниями Ρ‡Π΅Ρ€Π΅Π· посрСдника - ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ сообщСний. ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ сообщСниС Π² ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ Π΅Π³ΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎ обСспСчиваСт Π°ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΡŽ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ сообщСния ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² порядкС ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

  3. Request-Reply (Запрос-ΠžΡ‚Π²Π΅Ρ‚): Π’ этом ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой, отправляя запросы ΠΈ получая ΠΎΡ‚Π²Π΅Ρ‚Ρ‹. ΠžΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒ отправляСт запрос, Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ ΠΈ отправляСт ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² синхронных взаимодСйствиях ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.

  4. Event-Driven Architecture (АрхитСктура, основанная Π½Π° событиях): Π’ этом ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ связаны Ρ‡Π΅Ρ€Π΅Π· систСму событий. ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ события, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Ρ€Π΅Π°Π³ΠΈΡ€ΡƒΡŽΡ‚ Π½Π° эти события ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия. Π­Ρ‚ΠΎ позволяСт Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° измСнСния состояния ΠΈ события Π² систСмС.

  5. Data Transformation (ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…): Π’ этом ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° ΠΈΠ»ΠΈ структуры Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ для обСспСчСния совмСстимости ΠΈ согласованности ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ систСмами. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ, ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ, Π°Π³Ρ€Π΅Π³Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ расщСплСниС Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎ Π² зависимости ΠΎΡ‚ потрСбностСй ΠΈ характСристик систСмы.

  6. Point-to-Point Integration (Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ Ρ‚ΠΎΡ‡ΠΊΠ°-Ρ‚ΠΎΡ‡ΠΊΠ°): Π’ этом ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π΅ Π΄Π²Π΅ систСмы ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ взаимодСйствия. Один ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ отправляСт запрос ΠΈΠ»ΠΈ сообщСниС Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρƒ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ, Π±Π΅Π· посрСдников ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹Ρ… систСм. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ обСспСчиваСт прямоС ΠΈ быстроС взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ систСмами.

  7. Batch Processing (ΠŸΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°): Π’ этом ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя ΠΈΠ»ΠΈ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ. ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ систСмы Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ для ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ эффСктивСн для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ позволяСт ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСсурсы систСмы.

  8. Remote Procedure Invocation (Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€): Π’ этом ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹ ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… систСмах. ΠšΠ»ΠΈΠ΅Π½Ρ‚ отправляСт запрос Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° сСрвСр выполняСт эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΈ отправляСт Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ обСспСчиваСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ взаимодСйствия ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ.

Last updated