فرض کنید که سیستم های مختلف نرم افزاری در یک سازمان وجود دارند که دارای پایگاه داده های مختلف ، سیستم های احراز هویت مختلف و بعضا زبان های برنامه نویسی مختلف هستند و شما قصد دارید که همگی آنها را یکپارچه کنید و حداقل از نظر احراز هویت یک سیستم مرکزی ایجاد کنید ، یکی از راهکارهای طراحی این راهکار Biztalk سرور است ، قبل از اینکه به سراغ نحوه کار BizTalk برویم بایستی بدانیم که BizTalk چیست وچه زمانی باید از آن استفاده شود.
BizTalk یک محصول مایکروسافتی است که به عنوان محصول Integration and Connectivity یا ارتباطات و یکپارچگی ارائه شده است ، به زبان ساده تر BizTalk توانایی برقراری ارتباط بین سیستم های متنوع را دارد. در واقع BizTalk می تواند راهکاری باشد برای اینکه شما بتوانید Application هایی از پلتفرم های مختلف را با هم مرتبط کنید و در نقش یک واسط عمل کنید و در این بین نیازمندی های خود را از داده های عبوری از داخل BizTalk نیز خارج کنید. مکانیزم کاری BizTalk را می توانید به شکل کامل در شکل زیر مشاهده کنید :
همانطور که در شکل بالا مشاهده می کنید اجزاء اصلی تشکیل دهنده BizTalk شامل Adapter ها ، Pipeline ها ، Map ها ، Schema ها ، Orchestration ها ، Port ها ، Message Box ها و Rule ها می باشند که در ادامه در خصوص هر یک از این اجزا صحبت خواهیم کرد :
- Adapter : طبیعی است که ورودی برنامه BizTalk از خروجی برنامه های دیگر گرفته می شود . ما از Adapter ها در BizTalk به عنوان Endpoint یا نقاط پایانی نام می بریم که قرار است ارتباط ما با نرم افزارها یا Application های خدمات دولتی را برقرار کنند. در واقع ما با استفاده از Adapter ها ارتباط بین BizTalk و نرم افزارهای ورودی و خروجی را ( سیستم های خارجی ) برقرار می کنیم. با توجه به تنوع Application هایی که قرار است در BizTalk قرار بگیرند ، این امکان وجود دارد که در صورت عدم وجود Adapter های پیشفرض برای اتصال به Application ها از Adapter های شخصی سازی شده نیز استفاده کنیم. Adapter ها در BizTalk قابلیت های اتصالی یا به زبان بهتر مکانیزم های ارتباطی متنوعی را ارائه می دهند برای مثال ما Adapter های تخصصی برای اتصال به پایگاه داده های SQL ، برای اتصال در قالب فایل و ... را در اختیار داریم و امکان تعریف ورودی هایی از نوع دیگر نیز وجود دارد.
- Pipeline : در این قسمت بعد از ورود داده ها از Adapter ها ، Pipeline ها وظیفه تبدیل کردن داده ها به اشکال مختلف را بر عهده دارند ، اکثرا این تبدیل به شکل داده هایی از نوع XML که برای کلیه پلتفرم ها قابل درک است انجام خواهد شد اما قابلیت تبدیل به فرمت های دیگر نیز وجود دارد. مشابه فرآیندی که در Adapter ها به عنوان ورودی و خروجی وجود دارد Pipeline ها هم داده ها را در هنگام ورود و خروج تبدیل می کنند ، این فرآیند تبدیل داده در این وسط به دلیل نیاز BizTalk برای درک ماهیت داده ها برای تجزیه و تحلیل آنها است و در واقع می توان اینطور گفت که Pipeline ها داده ها را به شکلی قابل فهم برای BizTalk تبدیل می کنند. برای مثال داده هایی از نوع فایل یا MSSQL در هنگام ورود به BizTalk بایستی بصورت XML تبدیل شوند تا تجزیه و تحلیل بر روی آنها انجام شود.
- Map : در واقع MAP یا نقشه تغییراتی که قرار است بر روی داده های ورودی و خروجی به BizTalk انجام شود را مدیریت می کند ، برای مثال فرآیند های محاسباتی و ریاضی ، اعمال کردن فیلترینگ و ... همگی با استفاده از MAP در BizTalk تعریف می شوند ، اگر در پروژه بخواهیم ورودی ها و خروجی های درخواست های خدمات را بررسی کنیم و گزارش گیری کنیم این MAP ها هستند که به ما کمک خواهند کرد.
- Schema: این قسمت همانطور که از نامش هم پیداست برای قالب بندی پیام ها یا Message هایی استفاده می شود که به BizTalk سرور وارد و از ان خارج می شود ، BizTalk از زبان XML Schema Definition یا XSD برای تعیین کردن قالب یا Structure پیام ها استفاده می کند.
- Orchestration: فرآیند های تصمیم گیری ( سناریوهای تصمیم گیری ) و شرط گذاری در این قسمت انجام می شوند. در این قسمت می تواند تعریفی از نحوه باز و بسته شدن خدمات برای هر یک از دفاتر با توجه به مجوزها و ... تعریف کرد.
- Port : پورت ها یا Ports در واقع محلی هستند که Adapter ها ، Pipeline ها و Map ها پیکربندی می شوند. به پورت هایی که در قسمت مبدا قرار می گیرند یا Source End هستند در اصطلاح Receive Ports و به پورت هایی که در قسمت مقصد یا خروجی قرار می گیرند Destination Ports یا Send Ports گفته می شوند. برخی اوقات ممکن است که در Port ها Map ها پیکربندی نشوند اما این بستگی به طراحی ما دارد ، به هر حال همیشه در Port ها Adapter ها و Pipeline ها پیکربندی می شوند.
- Message Box : بصورت خیلی ساده باید بدانیم که کلیه فرآیند کاری BizTalk بر اساس پیام یا Message هایی است که باید از جایی گرفته شود به جایی ارسال شود که این Message بر اساس پردازش هایی که روی داده های ورودی و خروجی انجام می شود و همچنین Rule ها یا قوانینی که ما تعیین می کنیم انجام می شود. Message Box محلی برای نگهداری و تصمیم گیری در خصوص Message ها در BizTalk است.
نویسنده : محمد نصیری
منبع : microsoft.tosinso.com
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
ممنون میشم علی جان در این خصوص هر چیزی که بدست میارید رو به اشتراک بگذارید و این لطف شماست ، ما در پروژه ای در سطح ملی قرار بود از این سیستم برای احراز هویت متمرکز و یکپارچه یا Single Sign On استفاده کنیم برای سرویس های متنوعی در شبکه هایی از مجموعه دولت که غیرمترکز کار می کردند و کاربر مجبور بود برای وارد شدن به هر سیستمی یک Token جداگونه به یک سیستم متصل کنه ، در نهایت بحث گزارش گیری از روند فعالیت و میزان فعالیت کاربران و سرویس دهنده ها رو هم از این سیستم خروجی میخواستند ، تا اینجا سواد بنده قد میداد که نوشتم ، زیاد خودم در این حوزه سررشته ای ندارم ولی میدونم برای این نیاز ما مورد استفاده میشد قرار بگیره
من در این زمینه یه R&D باید انجام بدم. تا حالا فیلم هایی که در این زمینه دیدم در واقع برداشت خودم از این مورد این بوده که کلیه ارتباطات از یه واسطی باید رد بشه که بتونن به فرمت های خاص خودشون و بر اساس Rule هاشون با هم دیگه در ارتباط باشن . و این که یه مورد دیگه ایی هم که بهش فعلا رسیدم بحث RFID ها تو Biztalk هست . البته به گفته یکی از متخصصین این حوزه که می گفت بیشتر اطلاعات شما از دیتاسورس های خارجی هست پس همچین ابزار هایی هم نیاز هست که بتونن یه نوع یکپارچه سازی رو در واقع برای این مورد انجام بدم . از طرفی مدیریت گزارشات هست که چون کلیه ارتباطات مجبورن از این واسطه استفاده می کنن برای تبادل اطلاعات با توجه به اون مواردی که گفتم به مراتب گرفتن گزارش ها راحت تر میشه
البته این برداشت فعلی من بوده تا اینجا حتما بعد از این که یه تحقیق کاملی در این مورد داشتم به اشتراک میزارم . شما هم اگه منابع منابع خوبی در این زمینه داشتید معرفی کنید ممنون میشم .مثلا همین در مورد احراز هویت مترکز که اشاره شد . این که چه مشکلاتی رو برطرف می کنه . قبلا چه طوری بوده و الان چه طوری هست و ... بیشتر هدف این R&D اینه که یه مدیر IT بدونه کجای سازمان قراره یه همچین موردی رو پیاده سازی کنه .
ببینید من تخصصم این حوزه نیست ، مقاله ای تحقیقاتی بود در مورد احراز هویت متمرکز یا Central Authentication Service که در نهایت به BizTalk رسیدیم و این مطلب رو نوشتیم ، قطعا در فاز توسعه پلتفرم افراد کمی هستند که می تونن در ایران توضیح بدن ، ولی میدونم که تقریبا با API هایی که ارائه میده با سیستم های مختلف ارتباط می تونه بگیره و گزارش گیری و تبدیل رو انجام بده
سلام جناب نصیری
بازنویسی این مقاله کی انجام میشه ؟
یه سوال هم دارم . الان از صحبت های شما این طوری برداشت میشه که این سبک طراحی سبک طراحی ماکروسرویس ها هست . که هر بخش به صورت مستقل توسعه پیدا کنه فارغ از هر گونه پلتفرم و دیتابیس و فقط کار انتقال اطلاعات انجام بشه بین سرویس ها . در این مورد شما چه قدر نظرتون موافق هست با این مسئله و این که چه طور میشه وارد فاز Develop تو این زمینه شد ؟ این که میشه همچین سرویس هایی رو که داریم از داده هاش برای منابع خارجی استفاده کنیم ؟ مثلا نحوه ارتباطش با sharepoint یا سرویس های دیگه .
اگه در رابطه با این موارد توضیح بدید ممنون میشم .
با تشکر از شما
مقاله آرشیوی بود باید بازنویسش کنم
سلام استاد نصیری
ممنون از مطالب جدیدی که در اختیار ما قرار می دهید
فقط یک موضوع
اگر امکان دارد با یک مثال موضوع را توضیح دهید یک مقدار گنگ و مبهم بود مقاله اصلا الان در شبکه اسفاده مشه یا نه؟
ممنون