حسین طالبی*
*مدیر سابق فناوری اطلاعات صنعت نفت و مدرس دانشگاه
با ورود به سال ۱۴۰۰ شمسی بسیاری از سیستمهای مکانیزه کلیدی و فراگیر در کشور دچار چالشها و خطرات جدی خواهد شد. این خطرات ناشی از عدم همخوانی تاریخهای دو رقمی (برای سال) تعریف شده در هزاران برنامه در سیستمها ونرمافزارهای کاربردی است که در بسیاری از وزارتخانهها وسازمانها و بانکها ایجاد خواهد شد.
این چالشها و مشکلات همانند و شبیه اتفاقات و جنجالهایی است که به علت ورود به سال ۲۰۰۰ میلادی تحت عنوان Y2K بهوقوع پیوست که تقریبا تمام کشورها و سازمانها در دنیا با آن روبهرو بودند و اکثر سازمانها در جهان از پنج سال قبل از سال 2000 طبق برنامهریزی دقیق با میلیاردها دلار هزینه نسبت به اصلاح تمامی برنامهها و سیستمها اقدام کردند.
بدون شک در ایران نیز در آغاز سال ۱۴۰۰ شمسی چنین رویداد چالشبرانگیز و خطرآفرینی که اجازه دهید از این به بعد به اختصار آن را Y14H Year Fourteen Hundred = بنامیم بهوقوع خواهد پیوست.
بدیهی است اگر مدیران فناوری اطلاعات تمامی سازمانها طبق یک برنامهریزی صحیح و سیستماتیک نسبت به بازنگری و اصلاح تاریخ برنامهها و سیستمهای کاربردی بهموقع اقدام نکنند ناگهان در آغاز سال ۱۴۰۰ شمسی اکثر سیستمهایی که از تاریخ با فرمت تعریف شده دورقمی برای سال YY/MM/DD در برنامهها استفاده کردهاند دچار خطای محاسباتی شده یا متوقف شده و بحران بزرگی درآن سازمان ایجاد خواهد کرد.
با توجه به اهمیت و حساسیت این رویداد مشکلآفرین در این گزارش ابتدا علت بهوجود آمدن این مشکل را بیان خواهم کرد و سپس به برخی توصیههای مفید که به اصلاح بهموقع و مطمئن سیستمها و برنامههای کاربردی کمک میکنند، خواهم پرداخت.
علت بروز مشکل چیست؟
عزیزان سیستمساز و برنامهنویسان استحضار دارند که در اکثر نرمافزارهای کاربردی برای نشان دادن و محاسبه زمان از تعریف تاریخ در نرمافزارها با فرمت YYYY/MM/DD و یا YY/MM/DD استفاده میکنند. برای آن دسته از نرمافزارهایی که در تعریف فرمت تاریخ سال با چهار رقم معرفی شدهاند با ورود به سال 1400 هیچ مشکلی پیش نخواهد آمد. ولی برای حالتی که در برنامهها از سال با فرمت دورقمیYY استفاده کردهاند بروز مشکل با ورود به سال 1400 شمسی حتمی خواهد بود. دلیل آن این است که در مثلا آخرین روز سال 1399 شمسی تاریخ 30/12/99 را نشان میدهد و یک روز بعد از آن در آغازین روز سال 1400 شمسی تاریخ بهصورت 01/01/00 نشان داده میشود یعنی کامپیوتر تفاوت زمان یک روز را با اشتباه 99 سال و یک روز محاسبه میکند و از این به بعد تمام محاسبات با 99 سال اشتباه مبنای محاسبات قرار میگیرد. (به همین سادگی) در حالی که اگر فرمت سال درتاریخ با 4 رقم YYYY تعریف شده بود تفاوت 1399 با 1400 همان یک روز بود و هیچ اشکالی ایجاد نمیشد.
از آنجا که در بسیاری از نرمافزارهای کاربردی در محیطهای تجاری و یا صنعتی بهویژه نرمافزارهای قدیمی اعم از نرمافزارهای: بانکی و بیمه، مالی، حقوق، نیروی انسانی، تدارکات، امور مشترکین: آب، برق، گاز، تامین اجتماعی، بیمارستانی اتوماسیون اداری و غیره و حتی نرمافزارهای کاربردی در سامانههایی نظیر: اتوماسیون صنعتی و تولیدی، فیلد سال در تاریخ بهصورت دو رقمی تعریف شده باشد حتما وحتما چنین مشکلات بزرگی ایجاد خواهد شد. بهخصوص در نرمافزارهای اتوماسیون صنعتی ممکن است مشکلات فاجعهبار ناشی از افزایش فشار، حرارت و جریان مواد و انفجار مخازن و دیگ بخار و مدیریت توزیع، دیسپچینگ، اسکادا و..... ایجاد شود.
بنابراین ضروری است هرچه سریعتر مدیران ارشد بهویژه مدیران فناوری اطلاعات سازمانها نسبت به برنامهریزی و تعریف پروژههایی جهت بازنگری و اصلاح تمامی سیستمها و برنامههای کاربردی در همه سازمانها اقدام کنند.
در زیر توصیههای لازم برای حسن اجرای طرح و پروژه بازنگری و اصلاح سیستمها و برنامهها ارایه میشود.
توصیهها:
* تاآغاز سال 1400 حدود 5/2 سال باقی مانده است این مدت زمان زیادی نیست، زمان در ایران مثل باد میگذرد یکمرتبه به صرافت میافتید که کار از کار گذشته است.
· سازمانهای بزرگ که سرویسهای فراگیر مکانیزه ارایه میدهند نظیر صنعت نفت، وزارت کار وتامین اجتماعی، تمام بانکها و ارایهدهنده سرویسهای فناوری اطلاعات به آنها نظیر خدمات انفورماتیک و شرکتهای بیمه، اپراتورهای موبایل و وزارتخانهها و شرکتهای دولتی وخصوصی و خصولتی همه و همه در معرض خطر Y14H هستند.
· اغلب نرمافزارهای بکآفیس درسازمانهای بزرگ قدیمی و پیچیده و با زبانهای تکنولوژی آن زمان نوشته شدهاند و اغلب طراحان و برنامهنویسان آنها که اشراف کامل به سورس برنامهها دارند بهعلت بازنشستگی یا خروج از سازمان، در دسترس نیستند. حتی سورس اصلی برخی از نرمافزارها و پکیجها در دسترس نیست حتی گاهی از ماجولها و سابروتینهای خاص نظیر Date conversion در برنامهها CALL میشود که بهصورت exe. بوده و اصلاح آنها مشکل است.
· نه تنها برنامهها ونرمافزارهای کاربردی باید اصلاح شود بلکه پایگاههای داده وحتی فایلهای معمولی نیز باید بهعلت تغییر فیلدهای مرتبط با تاریخ تغییر یابد، بنابراین علاوه برتغییر نرمافزارهاData conversion نیز برای دادههای جاری وحتی دادههای قبلی نیز انجام شود.
· ممکن است تاریخ در برخی از سازمانها و نهادها نه تنها در نرمافزارها در سیستمهای کاربردی تجاری کاربرد داشته باشند بلکه در سامانههای اتوماسیون صنعتی مثلا در پالایشگاهها و تاسیسات پتروشیمی و مدیریت تولید وتوزیع برق وگاز نظیر دیسپچینگ و اسکادا وحتی تجهیزات دفاعی و BMSها..... نیز بهکار برده شده باشد.
· ممکن است در برخی از سازمانها از ابزارهای توسعهدهنده نرمافزار خاص و نایاب در کشور استفاده کرده باشند، نظیر: Ad/advantage , MANTIS , MARK-IV, SUPRA , ADABAS , Oracle , application tools هر یک از سیستمهای تولید شده با این ابزارها شامل هزاران برنامه و میلیونها دستورالعمل است که بازنگری هرکدام و اصلاح و تست آنها چند سال بهطول خواهد انجامید.
· بنابراین به شدت توصیه میشود که از همین امروز بهفکر سازماندهی و برنامهریزی جهت شناسایی بررسی و اصلاح و تست و استقرار سامانههای اصلاحشده باشید. نگویید چیزی نیست، ساده است! خیر ساده نیست تشخیص فیلدهای تاریخ کاربرد آنها در محاسبات و ایجاد فیلدهای واسط برای تجمیع و محاسبات چاپ بهصورت تاریخ تولید وانقضاء و.........
· ممکن است برخی یا تمام افراد طراح وتولیدکنندگان این سیستمها ونرمافزارها هماکنون بازنشسته و در دسترس نباشند، اگر افراد مسلط به برنامهها را در اختیار ندارید مجددا از آنها خواهش کنید که در اصلاح برنامهها با شما همکاری کنند.
· بگونهای برنامهریزی کنید که حداقل 6 ماه قبل از ورود به سال 1400 شمسی حصول اطمینان کنید که تمامی سیستمها اصلاح شدهاند و آنگاه با خیال راحت سر بر بالین گذارید.
دیدگاهها