بانک شهر از شما خواسته است بخشی از سوییچ بانکی را بنویسید.
برای نوشتن این بخش که با نام Gateway شناخته میشود لازم است مواردی را بدانید:
شما همواره باید پورت خاصی را جهت دریافت و ارسال اطلاعات باز نگه دارید.
شبکه شتاب اطلاعات لازم را از طریق این سوکت به شما ارسال و پاسخ شما را در زمان مقتضی دریافت خواهد کرد.
پیام های دریافتی از طریق سوکت به دو نوع تقسیم میشوند. پیام های “تراکنش” و پیام های “لغو تراکنش”
پیام های لغو تراکنش پیام هایی هستند که تراکنش قبلی انجام شده را لغو می کنند.
پیام های تراکنش کد پیگیری یکتایی دارند.
پیام های لغو تراکنش کد پیگیر یکسان با پیام تراکنش مربوط به خود دارند.
اگر نوع پیام تراکنش بود، لازم است آن به یکی از سرویس های ثبت تراکنش ارسال شده و مراحل پردازش آن صورت گرفته و پاسخ برگشتی از طریق سوکت به اطلاع شبکه شتاب برسد.
اگر نوع پیام لغو تراکنش بود، لازم است آن به یکی از سرویس های پردازش لغو تراکنش ارسال شده و مراحل پردازش آن صورت گرفته و پاسخ برگشتی از طریق سوکت به اطلاع شبکه شتاب برسد.
اگر پیامهای دریافتی، از هر نوع، در مدت زمان 15 پاسخ داده نشود و یا پاسخ را شبکه شتاب دریافت نکند، پیام لغو تراکنشی برای این تراکنش یا لغو تراکنش از دست رفته ارسال میکند.
اگر پیام لغو تراکنشی به Gateway ارسال شود که قبل از آن تراکنش مربوطه ارسال نشده باشد، این پیام با پیغام “نادرست” پاسخ داده خواهد شد.
پیام های لغو تراکنشی که اعمال شده اند، اگر مجددا دریافت شوند، لازم است فقط پیغام “تکراری” برای آنها به شبکه شتاب ارسال شود.
نمیتوانیم تضمین کنیم که همواره سامانه Gateway در دسترس است. ممکن است به دلیل اختلال لحظه ای، برای مدتی پیامها دریافت نشده باشند و بدین دلیل بعضی از تراکنش ها چندین لغو تراکنش تکراری و پردازش نشده داشتهباشند. که به محض در دسترس قرار گرفتن سوییچ همه آنها با هم دریافت میشود. راهکاری برای تضمین پردازش فقط و فقط یکی از لغو تراکنش های تکراری بیاندیشید و برای بقیه پیام “تکراری” صادر نمایید.
پیشنهاد میشود Gateway را به روش (Thread Pool) Concurrent Programming پیاده سازی کنید.
تعداد سرویس های پردازش کننده تراکنش و لغو تراکنش بیش از یک مورد است. بنابراین شما در معماری خود باید به Load Balancing فکر کنید.
توجه داشته باشید
لازم است شبیه سازی سرویس های پردازش تراکنش، سرویس های پردازش لغو تراکنش، سامانه ارسال پیام و در نهایت Gateway را پیاده سازی کنید و داکیومنت آن را در قالب pdf تحویل دهید.
در هنگام ارائه کد در git، لطفا Readme مناسب و حرفه ای که شرح روند کار شما، انتخاب های شما از لحاظ تکنولوژی و ابزار و همچنین چگونگی اجرای پروژه میباشد را بارگزاری فرمایید.
پیاده سازی نا کامل و عدم پیاده سازی تمام بخشها، با نظر داوران به نسبت امتیاز تعلق میگیرد.
لطفا از صحت پاسخ مطمئن شده و سپس اقدام به ارسال پاسخ نمایید.



































































