جریان‌داده

**جریان‌داده** () اصطلاحی در رایانش است، که بسته به کاربرد و زمینه‌ای که در آن استفاده می‌شود، معانی مختلفی را در بر می‌گیرد. در زمینه معماری نرم‌افزار، جریان داده‌ها، به پردازش جریان یا برنامه‌نویسی واکنش‌پذیر اشاره دارد. در حوزه نرم‌افزار، جریان‌داده یک الگوی نرم‌افزاری است، که مبتنی بر ایده جدا کردن عمل‌گرهای کامپیوتری، به مراحل مجزا (خطوط لوله) با هدف اجرای همزمان آنها می‌باشد. در زمینه سخت‌افزار، جریان داده یکی از عمده‌ترین مسائل تحقیقاتی در حوزه معماری رایانه در دهه ۱۹۷۰ و اوایل دهه ۱۹۸۰ میلادی محسوب می‌شد.

## معماری نرم افزار
محاسبات جریان داده یک نمونه نرم افزاری بر اساس نمایش محاسبات به عنوان یک گراف جهت دار است که در آن راس ها همان محاسبات هستند و داده ها در امتداد یال ها جریان دارند. جریان داده را می توان پردازش جریانی یا برنامه نویسی واکنش گرا نیز نامید.
چندین زبان پردازش جریان داده با اشکال مختلف وجود داشته است (به پردازش جریان مراجعه کنید). سخت افزار جریان داده (به معماری جریان داده مراجعه کنید) جایگزینی برای معماری کلاسیک ون نیومن است. بارزترین مثال برنامه نویسی جریان-داده، برنامه نویسی واکنش گرا با صفحات گسترده می باشد. هنگامی که کاربر مقادیر جدیدی را وارد می کند، آنها فوراً به عملگر منطقی یا فرمول برای محاسبه منتقل می شوند.
جریان های داده های توزیع شده نیز به عنوان یک مفهوم برنامه نویسی که پویایی پروتکل های چندگانه توزیع شده را نشان می دهد نیز پیشنهاد شده است. ویژگی داده محور بودن برنامه نویسی جریان داده، مشخصات عملکردی در سطح بالا را ارتقا می دهد و استدلال رسمی در مورد اجزای سیستم را ساده می کند.

## معماری سخت افزار
معماری‌های سخت‌افزاری جهت جریان داده، یک موضوع اصلی در تحقیقات معماری کامپیوتر در دهه‌ 1970 و اوایل دهه 1980 بود. جک دنیس از موسسه فناوری ماساچوست جزو استادان پیشرو در حوزه ی معماری‌های جریان داده استاتیک بود. معماری‌های طراحی شده‌ای که از مسیرهای متداول حافظه، به عنوان علامت وابستگی به داده ها استفاده می کنند، ماشین‌های جریان داده استاتیک نامیده می‌شوند. این ماشین‌ها اجازه ی اجرای چندین مورد از مسیرهای مشابه به طور همزمان را نمی دادند، زیرا لیبل‌ گذاری های ساده نمی‌توانستند بین آنها تفاوت ایجاد کنند. معماری هایی که از حافظه قابل آدرس دهی با محتوا استفاده می‌کنند توسط ارویند ماشین‌های جریان داده پویا نامیده شدند. آنها از لیبل‌های موجود در حافظه برای ایجاد موازی‌سازی بهره می برند. داده‌‍‌ها از طریق اجزای رایانه در محیط رایانه جریان پیدا می‌کنند. به وسیله ی دستگاه‌های ورودی وارد می‌شوند و از طریق دستگاه‌های خروجی (پرینتر و غیره) می توانند خارج شوند.

## همزمانی
شبکه جریان داده شبکه‌ای از فرآیندهای اجرایی است که همزمان اجرا می‌شوند و می‌توانند با ارسال داده از طریق کانال‌ها ارتباط برقرار کنند (به ارسال پیام مراجعه کنید.)
در شبکه‌های فرآیند کان که به نام ژیل کان نامگذاری شده‌اند، فرآیندها مشخص هستند. این به این معنی است که هر فرآیند معین یک تابع پیوسته از جریان‌های ورودی به جریان‌های خروجی را محاسبه می‌کند، و آن فرآیند خود شبکه‌ای از فرآیندهای مشخص است، بنابراین یک عمل پیوسته را محاسبه می‌کند. این موضوع حاکی از این است که رفتار چنین شبکه‌هایی را می‌توان با مجموعه‌ای از معادلات بازگشتی توصیف کرد که با استفاده از قضیه ی نقطه ثابت قابل حل است. جریان و تبدیل داده ها توسط یک سری شکل و خطوط نشان داده می‌شود.

## معانی دیگر
جریان داده همچنین می تواند اشاره داشته باشد :
*Power Bl Dataflow، یک پیاده‌سازی Power Query در فضای ابری است که توسط توسعه دهندگان برای تبدیل داده‌های پایگاه داده به مجموعه داده‌های پاک سازی شده در Power BI در گزارش ها از طریق Microsoft Dataverse  (که قبلاً سرویس داده مشترک مایکروسافت نامیده می‌شد) استفاده می شود.
*Google Cloud Dataflow، یک سرویس کاملاً مدیریت شده برای اجرای پایپلاین Apache Beam در اکوسیستم Google Cloud Platform

## جستارهای وابسته
* جریان داده
* برنامه‌نویسی تابعی واکنشی
* ارزیابی کندرو
* Oz
* جریان ترافیک
* خط لوله
* تنسورفلو
* ثینو

## منابع

* 

رده:داده‌های رایانه‌ای
رده:مدل‌های محاسباتی
رده:معماری رایانه