معماری و مستندات
معرفی
در این قسمت معماری مورد نظر بطور مختصر بیان میشود. در مواردی که احتیاج به توضیح و یا آموزش باشد، باید به مراجع دیگری مراجعه نماییم.
نشانها:
{} حالات یا روشهای بعدی.
[] توصیه نمیشود.
کلیات
کلیات معماری ما برای کر بانکینگ به شرح زیر است:
کر بانکینگ یا بانکداری متمرکز به صورت بدون هسته و به عبارت دیگر با چندین هسته (Coreless).
سرویس محور.
بدون الزام به میکرو سرویس در موارد لازم.
صرف وقت برای کدنویسی با اجرای سریع و کم مصرف، در مقابلِ بدست آوردن سخت افزار و مصرف برق کمتر.
تشکیل گروههای کوچکِ خود گردان برای طراحی و تولید هر قلمرو سرویس یا حتی شرکتهای مستقل.
بانکداری متمرکز اما بدون هسته یا Coreless Core Banking Systems
یکی از اصول معماری ما بدون هسته مرکزی بودن یا Coreless است. اما این نامگذاری تا حدی گمراه کننده شده و معنای دقیقتر آن دارا بودن هستهی توزیع شده است.
متمرکز اما بدون هسته، موضوع جدیدی نیست. بسیاری از شرکتهای فروشنده محصولات نرمافزاری بانکی، ماجولهای مجزا و مستقل میفروختند و هنوز هم کارشان ادامه دارد. اما از چند سال قبل و در زمان سرویس محور نمودن سامانههای نرمافزاری، مباحث بدون هستهی مرکزی بودن هم شکل گرفت و پررنگ گردید. اما بسیار مدون و با اصول جاافتاده و استاندارد سازی اولیه.
در این روش، ابتدا قلمرو یا گروه خدمات یا سرویسها یا محصولات را مشخص مینمایند و سپس آنها را تفکیک کرده و هر یک را به صورت مستقل از هم اما هوادار یکدیگر طراحی و تولید مینمایند. نکته مهم این است که این محصولات سرویس محور بوده و تا حد امکان سوکتهای تماس با آنها یا نحوه فراخوانی آنها استاندارد باشد. واژه سوکت انسان را به یاد Plug & Play میاندازد که کاملا درست است و سعی میشود شرکتها محصولاتشان به همین صورت به نحو نرمافزاری به هم متصل شوند. در بهترین حالت،یک سامانه کامل میتواند تجمیعی از تعدادی محصول از تعدادی شرکت با برند مستقل از هم باشد. برای توضیحات بیشتر لطفا به سایت بایان مراجعه فرمایید.
انتشارات اصلی
انتشارات اصلی به شرح زیر خواهد بود:
اقلام اطلاعاتی، در این مستنداقلام اطلاعاتی ذکر میشود و در صورت نیاز، شرح مختصری از آنها بیان میشود.
دیتا مدل و بانک اطلاعاتی، بانک اطلاعاتی و جداول و ایندکسهای مناسب و سایر موارد مورد نیاز برای دیتا مدل بیان میشود.
سرویسها به تفکیک قلمرو، در این قسمت سرویسهای لازم برای عملیات لازم بیان میشود.
شبکه مناسب، در این قسمت شبکه مناسب برای منطقه امن و نا امن پیشنهاد میشود.
موارد امنیتی، در این قسمت بعضی از موارد امنیتی بیان میشود.
پیکربندیهای سختافزاری مناسب، در این قسمت پیشنهادهایی برای سخت افزار مناسب ارایه میشود. آزمون سرعت و تراکنش بر ثانیه نیز برای سختافزارهای نمونه ذکر میشود.
رابط کاربری با ابزارهای اساسی، در این قسمت رابط کاربری با ابزارهای اساسی ارایه میشود که برای نمونه بوده و هم ممکن است مورد استفاده قرار گیرد یا جایگزین شود.
بنیان کار ما با تعیین اقلام اطلاعاتی شروع میشود. سپس بانک اطلاعاتی ارایه شده و بر اساس این دو، سرویسهای هر قلمرو ارایه میشود. در مراحل بعدی، سایر مواردِ ذکر شده در بالا ارایه میشوند.
ابزارهای ما
ابزارهای ما به تفکیک هر لایهی فنی به شرح زیر است :
اقلام اطلاعاتی: از اکسل استفاده میشود. زیرا ما فقط به چند ستون ساده برای نام، شرح، زبان دیگر و مشخصات نیاز داریم و نیازی به ابزار کمکی یا مدل سازی نداریم.
دیتابیس و دیتامدل: از ماریا دی بی یا MariaDB که معادل مای اسکیوال است استفاده میکنیم. در مواقع لازم، توسط ابزار میتوان دیتابیس اوراکل، دیبی2 و سایرین را تولید کرد. برای مقایسه آن با اراکل به سایت آن مراجعه فرمایید. با این دیتابیس میتوان به تراکنشهای بالای ۵۰۰۰ در ثانیه رسید.
زبان لایه کاربردی یا بک اند یا سرور اپلیکیشن: از زبان پی اچ پی استفاده میشود. برای سرعت اجرای برنامهها از امکانات زیادی میتوان بهره برد. سرعت اجرای آن بیش از جاوا و نظایر آن است.
ادیتور زبانی یا IDE: از برنامه NetBeans استفاده میشود. اما ابزارهای زیادی برای جایگزینی آن وجود دارد.
بسته مناسبی که تجمیع ابزارهای لازم است: از بسته XAMPP استفاده میگردد. تمام تولیدیهای این بسته و ابزارهای ذکر شده، به سادگی قابل انتقال به یک سرور لینوکس هستند که میتوان از شرکتهای هاستینگ به قیمت نازل تهیه کرد و بر روی سرورهای اختصاصی آنها را نصب و استفاده کرد. قابل توجه است که این ابزار نقش Pseudocode نویسی را هم بازی میکنند و باید ابزاری باشند که همه بتوانند به راحتی به آن دست پیدا کنند و رایگان هم باشند. حتی در زمانی که تحریم نباشیم. تهیه سندباکس و سایت اجرایی و نمونه با این ابزار به راحتی و ارزان انجام میشود.
تعریف سرویس: از Open API استفاده میشود. در موارد ساده، ممکن است از تعاریف انشایی استفاده شود.
هوش مصنوعی: برای تحلیل، تعریف، طراحی و تولید، در هر موردی که امکان پذیر باشد از هوش مصنوعی استفاده میگردد. ابزارهایی وجود دارند یا بوجود خواهند آمد که یک طراح ساده بتواند گام به گام به هوش مصنوعی دستور دهد که یک سامانه را طراحی و تولید کند. این تولید میتواند شامل رابط کاربری، امنیت، سرویسها، طراحی شبکه، دیتابیس و هر مورد دیگری باشد.
هوش مصنوعی
سرعت پیشرفت این فناوری به حدی شده است که تقریبا تمام مراحل و چرخه حیاط تولید نرم افزار از جمله شناخت، تحلیل، طراحی تجاری، شغلی و رایانهای، اقلام اطلاعاتی، سرویسهای شغلی و نرمافزاری، طراحی و تولید دیتابیس، شبکه، امنیت، بهسازی، تولید رابط کاربری، سرویسهای فیزیکی در سمت سرورهای میانی و نهایی و هر چه که فکرش را بکنیم، در بر میگیرد. در نهایت به مرحلهای میرسیم که فقط با زبان طبیعی با هوش مصنوعی صحبت میکنیم و اوست که سایر کارها را انجام میدهد. شاید مرحله بعدی، خواندن فکر انسان باشد!
در حال حاضر برای تولید یک کربانکینگ کامل با تمام سامانههای پیرامونی یا بدون آنها، یک بسته کامل و قابل اجرا نداریم. تا آن روز که شاید فقط دو تا سه سال باقی مانده باشد، ما سعی داریم که یکی از بانیان منبع باز آن باشیم. زیرا که رشد فناوری اطلاعات کشور و هوش مصنوعی، بدون منابع باز مقدور نیست. چیزی که هوش مصنوعی تا این لحظه هنوز به خوبی انجام نمیدهد، محتوای دستورات و مشخصات سطح بالا و میانی است (پرامپت نویسی) که مورد نیاز یک انسان یا شرکت است. تسهیل این کار ممکن است توسط هوش مصنوعی و پرسشهای او و پاسخهای ما انجام شود.
بنابراین، با آنچه داریم، کار را شروع میکنیم و با تمام ابزارهای ممکن، سامانههای مورد نیاز کشور و جهان را به صورت منبع باز تولید میکنیم. تغییر و توسعه، بر مبنای داشتههای بعدی و آینده، ناگزیر انجام خواهد شد.منابع و داشتههای ما میتواند از منابع مورد نیاز هوش مصنوعی باشد و برای تولید کربانکینگ و لوازم آن بکار رود.
خلاصه ابزارهای ما
Excel, Power Point, Word, Visio (Microsoft)
MariaDB or MySQL {Oracle, DB2, ...}
PHP {Go Lang, C, C++, ...}, [java]
Apache HTTP Server {nginx, ...}
NetBeans {...}
XAMPP
Open API + JSON/YAML, Code First
HTML,CSS,JS {...}
EA (Enterprise Architect)
AI
کپی، تکثیر، و هر گونه استفاده مجاز است. No Rights Reserved