با ورود به سال ۱۴۰۰ شمسی بسیاری از سیستمهای مکانیزه کلیدی و فراگیر در کشوردچار چالشها و خطرات جدی خواهد شد.
این خطرات ناشی از عدم همخوانی تاریخهای دو رقمی(برای سال) تعریف شده در هزاران برنامه در سیستمها ونرمافزارهای کاربردی است که در بسیاری از وزارتخانه ها وسازمانها وبانک ها ایجاد خواهد شد.این چالشها و مشکلات همانند وشبیه اتفاقات و جنجالهایی است که به علت ورود به سال ۲۰۰۰ میلادی تحت عنوان Y2K به وقوع پیوست که تقریبا تمام کشورها و سازمانها در دنیا با آن روبهرو بودند و اکثر سازمانها در جهان از ۵ سال قبل از سال ۲۰۰۰ طبق برنامهریزی دقیق با میلیاردها دلار هزینه نسبت به اصلاح تمامی برنامهها و سیستمها اقدام کردند.
اینک در ایران نیز در آغاز سال ۱۴۰۰ شمسی چنین رویداد چالش برانگیز و خطرآفرینی که اجازه دهید از این به بعد به اختصار آن را Y14H = Year Fourteen Hundred بنامیم به وقوع خواهد پیوست
بدیهی است اگر مدیران فناوری اطلاعات تمامی سازمانها برطبق یک برنامهریزی صحیح و سیستماتیک نسبت به بازنگری واصلاح تاریخ برنامهها و سیستمهای کاربردی بهموقع اقدام نکنند ناگهان در آغاز سال ۱۴۰۰ شمسی اکثر سیستمهایی که از تاریخ با فرمت تعریف شده دورقمی برای سال YY/MM/DD در برنامهها استفاده کردهاند دچار خطای محاسباتی و یا متوقف شده و بحران بزرگی را در آن سازمان ایجادخواهد کرد.با توجه به اهمیت وحساسیت این رویداد مشکلآفرین، در این گزارش ابتدا علت به وجود آمدن این مشکل را بیان خواهیم کرد و سپس به برخی توصیههای مفید که به اصلاح بهموقع ومطمئن سیستمها وبرنامههای کاربردی کمک میکند، اشاره خواهیم کرد.
*علت بروز مشکل چیست؟
سیستمسازان و برنامهنویسان محترم به خوبی آگاه هستند که در اکثر نرمافزارهای کاربردی برای نشان دادن ومحاسبه زمان از تعریف تاریخ در نرمافزارها با فرمت YYYY/MM/DD ویا YY/MM/DD استفاده میکنند. برای آن دسته از نرمافزارهایی که در تعریف فرمت تاریخ، فیلد سال با ۴ رقم معرفی شدهاند با ورود به سال ۱۴۰۰ هیچ مشکلی پیش نخواهد آمد ولی در صورتی که از فرمت دورقمی YY استفاده کرده باشند با ورود به سال ۱۴۰۰ شمسی بروز مشکل حتمی خواهد بود. دلیل آن هم این است که آخرین روز سال ۱۳۹۹ شمسی تاریخ ۳۰/۱۲/۹۹ را نشان میدهد و یک روز پس از آن درآغازین روز سال ۱۴۰۰ شمسی تاریخ بهصورت ۰۱/۰۱/۰۰ نشان داده میشود یعنی کامپیوتر تفاوت زمان یک روز را با اشتباه ۹۹ سال و یک روز محاسبه میکند و از این به بعد تمام محاسبات با ۹۹ سال اشتباه مبنای محاسبات قرار میگیرد.(به همین سادگی) در حالی که اگر فرمت سال درتاریخ با ۴ رقم YYYY تعریف شده بود تفاوت ۱۳۹۹ با ۱۴۰۰ همان یک روز بود وهیچ اشکالی ایجاد نمیشد.
از آنجا که در بسیاری از نرمافزارهای کاربردی در محیطهای تجاری یا صنعتی بهویژه نرمافزارهای قدیمی اعم از نرمافزارهای بانکی، بیمه، مالی، حقوق، نیروی انسانی، تدارکات، امور مشترکین: آب، برق، گاز، تامین اجتماعی، بیمارستانی اتوماسیون اداری و حتی نرمافزارهای کاربردی در سامانههایی نظیر اتوماسیون صنعتی و تولیدی که فیلد سال در تاریخ بهصورت دو رقمی تعریف شده است حتما چنین مشکلات بزرگی ایجاد خواهد شد. بهخصوص در نرمافزارهای اتوماسیون صنعتی ممکن است مشکلات فاجعهباری ناشی از افزایش فشار، حرارت و جریان مواد و انفجار مخازن و دیگ بخار در سامانههای مدیریت توزیع، دیسپچینگ، اسکادا و غیره ایجاد شود.
بنابراین ضروری است هرچه سریعتر مدیران ارشد بهویژه مدیران فناوری اطلاعات سازمانها و نیز مدیران شرکتهای رایانهای که تولیدکننده و پشتیبانیکننده نرمافزارهای کاربردی هستند نسبت به برنامهریزی و تعریف پروژههایی برای بازنگری و اصلاح تمام سیستمها وبرنامههای کاربردی در تمام سازمانها اقدام کنند.
در این مقاله، توصیههای لازم به منظور حسن اجرای طرحها و پروژهها برای بازنگری و اصلاح سیستمها وبرنامهها ارایه میشود.
هشدارها:
تا آغاز سال ۱۴۰۰ حدود سه ماه باقی مانده است اینجانب دو سال قبل درتاریخ ۱/۶/۱۳۹۷ طی مقالهای ضمن تشریح چنین رویدادی هشدارها و راهکارهای اساسی برای اصلاح سیستمها و مقابله با این چالشها را ارایه داده بودم، ظاهرا اما نهادها و سازمانها و شرکتهای سرویسدهنده و سرویسگیرنده و متولیان فناوری اطلاعات در کشور اقدامات جدی به منظور اصلاح سیستمها بهعمل نیاوردهاند. علیرغم فرصتها بسیاری که از دست رفته، در این سه ماه باقی مانده تمام ذینفعان و بازیگران باید در این حوزه هرچه سریعتر نسبت به بازنگری و اصلاح نرمافزارهایی که در آنها تاریخ با فرمت سال دورقمی بهکار رفته اقدام و حصول اطمینان کنند که با ورود به سال ۱۴۰۰ شمسی هیچ گونه اختلالی در اجرای نرمافزارها اعم از کاربرد در امور تجاری و اتوماسیون صنعتی ایجاد نخواهد شد. قبلا عرض کرده بودم که این مدت زمان دو سال نیز زمان زیادی برای سیستمها نیست زمان در ایران مثل باد میگذرد یکباره به صرافت میافتید که کار از کار گذشته است. و دیدیم که زمان دو سال مثل باد گذشت وفقط ۳ ماه تا آغاز سال ۱۴۰۰ باقی مانده است.
با توجه به اهمیت موضوع در ادامه سعی میشود به برخی سکتورها و بخشها و حوزههای مهم تاثیرپذیر و در معرض خطر در کشور و سپس به راهکارهای عملی برای اصلاح سیستمها اشاره شود.
– سازمانهای بزرگ که سرویسهای فراگیر مکانیزه ارایه میدهند نظیر صنعت نفت، وزارت کار، تامین اجتماعی، تمام بانکها و ارایهدهندگان سرویسهای فناوری اطلاعات نظیر خدمات انفورماتیک، توسن و فناب، شرکتهای بیمه، اپراتورهای موبایل و وزارتخانهها وشرکتهای دولتی وخصوصی و خصولتی همه و همه در معرض خطر Y14H هستند.
– اغلب نرمافزارهای اصلی بکآفیس درسازمانهای بزرگ قدیمی و پیچیده بهخصوص کاربرانی که از سیستمهای Main frameاستفاده میکنند یا از زبانهای برنامهنویسی تکنولوژی قدیمیتر برای تولید نرمافزارها استفاده کردهاند. سازمانهایی که اغلب طراحان و برنامهنویسان آنها که اشراف کامل به سورس برنامهها دارند به علت بازنشستگی یا خروج از سازمان در دسترس نیستند و این گونه سازمانها در معرض خطر بیشتری قرار دارند و گاهی حتی سورس اصلی برخی از نرمافزارها و پکیجها در دسترس نیست و گاهی از ماژولها و سابروتینهای خاص نظیر Date conversion در برنامهها استفاده میشود که بهصورت exe.بوده و اصلاح آنها کار سادهای نیست.
-اختلالات در اتوماسیون صنعتی
از آنجا که بسیاری از عملیات در فرایند تولید واحدهای بزرگ صنعتی نظیر پالایشگاهها و پتروشیمیها و خطوط انتقال مواد و شبکههای انتقال و ذخیرهسازی برق و آب وغیره میزان و زمان فشار، حرارت و جریان و فلوی مواد در صنایع به صورت اتوماتیک با استفاده از برنامههای کنترلی PLC مدیریت و کنترل میشوند ممکن است مدیریت زمان در این گونه سیستمها از طریق تاریخ صورت پذیرد بنابراین باید مسوولان ذیربط تا قبل از سال ۱۴۰۰ اطمینان حاصل کنند که هیچ گونه اختلالی در سامانههای کنترل اتوماسیون صنعتی مربوطه ایجاد نخواهد شد. همچنین سامانههای مرتبط با مدیریت تاسیسات ساختمانها و مجتمعهای بزرگ BMS و مدیریت آسانسورها ممکن است نیاز به اصلاح داشته باشند.
الف: برای اصلاح سامانههاچه باید کرد:
به علل بروز اختلالات در نرمافزارها و سامانههای رایانهای هنگام ورود به سال ۱۴۰۰ شمسی اشاره شد همچنین به نوع سازمانها و نهادها و کاربردهایی که بیشتر در معرض خطر هستند نیز اشاره شد.
اینک به راهکارها و پیشنهادهای لازم به منظور شناسایی و اصلاح نرمافزارها و سیستمهای تاثیرپذیر از Y14H خواهیم پرداخت.
طراحی، تولید، راهبری ونگهداری سامانهها ونرم افزارهای رایانهای به روشهای زیر انجام میشود؛
۱٫ نرافزارهای عمومی؛
این نرمافزارها در بسیاری از سازمانها کاربرد عمومی داشته و توسط یک شرکت به صورت پکیج طراحی و تولید شده سپس در تعداد زیادی از سازمانها پیادهسازی راهبری، نگهداری و پشتیبانی میشوند.
۲. نرمافزارهای خاص منظوره؛
این نرمافزارها تنها در یک سازمان خاص مورد استفاده قرار میگیرند و به دو شیوه زیر تولید و پشتیبانی میشوند؛
۲-۱ -توسط واحد فناوری اطلاعات خود سازمان تولید و پشتیبانی میشود.
۲-۲ -توسط یک شرکت رایانهای خارج سازمان تولید و پشتیبانی میشود.
با توجه به موارد فوق، مسوولیت شناسایی و اصلاح اختلالات ناشی از Y14H به عهده نهاد تولیدکننده و پشتیبانیکننده نرمافزار خواهد بود بنابراین؛
نخست؛ تمام شرکتهای رایانهای مکلفند نسبت به اصلاح همه نرم افزارهایی که خود تولید و پشتیبانی کرده اعم از نرمافزارهای عمومی یا خاص منظوره اقدام کرده و حصول اطمینان کنند که هیچ مشکلی ناشی از Y14H برای کاربران ایجاد نخواهد شد.
البته در این گونه موارد نیز مدیران و بالاترین مقام سازمانهای استفادهکننده از نرمافزار نیز مکلفند قبل از Y14H اطمینان حاصل کنند که هیچ گونه اختلالی در استفاده از این نرمافزارها برای آنها درسال ۱۴۰۰ ایجاد نخواهد شد و توصیه میشود مدیران قبل از ۱۴۰۰ تضمین لازم را از شرکتهای پشتیبانیکننده دریافت کنند.
دوم: تمام واحدهای فناوری اطلاعات دستگاههای اجرایی که خود نسبت به طراحی و ساخت نرمافزارهای خاص منظوره اقدام کردهاند مکلف به شناسایی و اصلاح اینگونه نرمافزارها تحت نظارت بالاترین مقام دستگاه هستند.
ب: اقدامات فنی و اجرایی برای اصلاح سیستمها؛
در زیر اهم اقداماتی که برای شناسایی و اصلاح نرمافزارها و سامانههای رایانهای قبل از ورود به سال ۱۴۰۰ شمسی باید انجام بگیرد آمده است؛
– اصلاح فرمت تاریخ در ورودیهای به سیستم
– اصلاح فرمت تاریخ در فیلدهای واسط و محاسباتی
– اصلاح فرمت فیلدهای تاریخ در فایلها و پایگاههای دادهها
– اصلاح فرمت تاریخ در فایلها و گزارشهای خروجی
– اصلاح فرمهای جمعآوری دادهها
– تست سیستم با دادههای آزمایشی
– اجرای موازی سیستم اصلاحشده با سیستم موجود قبل از ورود به Y14H و حصول اطمینان از عملکرد صحیح سیستم
– اصلاح مستندات سیستمها
– جایگزین کردن سیستم موجود با سیستم اصلاحشده
ج: سایر پیشنهادات اجرایی؛
با توجه به اندک زمان باقی مانده برای شناسایی و اصلاح سیستمها و نرمافزارها اعم از نرمافزارهای عمومی و خاص منظوره و نرمافزارهای کنترلی اتوماسیون صنعتی پیشنهادات زیر به شدت توصیه میشود؛
– حمایت بالاترین مقام اجرایی دستگاهها اعم از وزارتخانهها بهویژه وزارتخانههای مهم نظیر وزارتهای نفت، دارایی، صمت، کشور و بانکها از شناسایی و اصلاح سامانههای تحت پوشش آن دستگاه و حصول اطمینان از عدم بروز هرگونه اختلال در عملکرد آنها در ورود به سال ۱۴۰۰ شمسی.
– اقدام فوری مدیران فناوری اطلاعات تمامی دستگاههای اجرایی در برنامهریزی و اجرای عملیات شناسایی و اصلاح سامانههای تحت پوشش.
– اقدام فوری شرکتهای رایانهای که متولی تولید و پشتیبانی از سامانهها اعم از سامانههای عمومی و خاص منظوره برای دستگاههای اجرایی هستند.
– نظارت متولیان فناوری اطلاعات درسطح ملی بهمنظور حمایت و حصول اطمینان ازانجام تمام اقدامات برای ورود سلامت به سال ۱۴۰۰ شمسی.
این متولیان عبارتند از؛
– شورای عالی فضای مجازی
– سازمان فناوری اطلاعات
– نظام صنفی رایانهای استانها
– شورای عالی بانکها با توجه به اهمیت بانکها
تهیه وابلاغ بخشنامههای لازم به دستگاهها و نهادهای ذیربط توسط نهادهای فوق بهمنظور حمایت و نظارت و اطمینان از انجام تمام اقدامات پیشگیرانه و اصلاحی از وظایف نهادهای ملی فوق است.
توضیح؛
با توجه به اینکه این گونه اختلالات بیشتر در سامانههای قدیمی و ابزارها و زبانهای برنامهنویسی قدیمی رخ خواهد داد و تولید کنندگان این نرمافزارها بعضا بازنشسته شدهاند، باید به دستگاههای اجرایی اجازه جذب موقت اینگونه نیروها داده شود.