نرم افزار

در مجموعه آویهنگ همواره سعی شده است که بر اساس نیازهای موجود از بهترین و بروزترین تکنولوژی ها استفاده شود. ما از زبان برنامه نویسی JAVA جهت تولید نرم افزارها استفاده میکنیم. علت انتخاب این زبان برنامه نویسی قدرت بالا، قابلیت اجرا در هر محیط ، وجود api های بسیار و ... می باشد. در کنار استفاده از این زبان برنامه نویسی ما  از معماری micro service‌ در قالب سرویس های rest جهت تولید نرم افزارهای تحت وب استفاده می کنیم.

معماری micro service  به ما امکان تولید سرویس های کوچک  در مدت زمانی کوتاه  با سرعت پاسخ گویی بسیار سریع  را میدهد.در کنار این قابلیت با استفاده از این معماری میتوانیم در سطح شبکه از الگوی scale out  جهت گسترش و توسعه زیر ساخت استفاده کنیم که این کار به خودی خود به ما امکان توسعه زیر ساخت  با استفاده از حداقل  نیازهای سخت افزاری را برای ما فراهم می کند

 در کنار زبان برنامه نویسی JAVA برای تولید micro service  از ابزار vertX استفاده میکنیم. از مهمترین قابلیت vertx میتوانیم به امکان نوشتن کد به صورت Async را اشاره کنیم. استفاده از این الگوی برنامه نویسی این امکان را میدهد تا بتوانیم از حداکثر قابلیت های سخت افزاری موجود جهت هر چه سریع تر اجرا شدن برنامه های استفاده کنیم. به عنوان نمونه برای اجرای یک برنامه در حالت Sync که از 10 گام مستقل تشکیل شده است، مجبور به فراخوانی تک تک کار ها به صورت متوالی و  پشت سر هم می باشیم و اگر به طور میانگین مدت زمان انجام هر گام 100 میلی ثانیه باشد، مدت زمان تمام کارها برابر با 1000 میلی ثانیه خواهد بود. در حالی که با استفاده از روش Async تمام 10 گام به صورت موازی فراخوانی شده و مدت زمان نهایی انجام کار برابر با مدت زمان انجام طولانی ترین کار خواهد شد، که در این مثال مدت زمان نهایی برابر با 100 میلی ثانیه خواهد بود.

از ابتدای پایه گذاری شرکت ایده پردازان آویهنگ، این مجموعه همواره در حال اجرای پروژه های کلان و ملی بوده که در سطح کشور عملیاتی شده است. به طور خلاصه می توانیم به پروژه ثبت نام یارانه، پروژه هدفمندی معیشت، پروژه ثبت نام بیمه سلامت، پروژه فرایند های بیمه گری سازمان بیمه سلامت، پروژه فرایندهای شرکای سازمان بیمه سلامت، پروژه نسخه الکترونیک سازمان بیمه سلامت و ... اشاره کرد

 

جاوا زبانی است که با آن می توان یک بار برنامه ای را نوشت و در چندین پلتفرم آن را اجرا کرد. استفاده جاوا از JVM مخفف (Java Virtual Machine) سبب شده است که برنامه های نوشته شده در زبان برنامه نویسی جاوا این قابلیت را داشته باشند که در سیستم های عامل مختلف با استفاده از JVM متناسب با هر یک از آن ها به اجرا گذاشته شوند. همین ویژگی همچنین سبب شده است که برنامه های نوشته شده به زبان جاوا دارای سطح امنیتی بسیار بالاتری نسبت به برنامه های مشابه در زبان های دیگر مثل C++ باشند. چرا که JVM همانند یک سیستم عامل کرده و حیطه اثر و نفوذ برنامه های جاوا را در یک سطح قابل قبول محدود می نماید.


Reactive programming یک الگوی برنامه نویسی که در آن عملیات ها به صورت asynchronous انجام میشود وترتیب زمانی انجام کارها قابل تغییر می باشد

 

 

Eclipse Vert.x یک ابزار رویداد محور و غیر مسدود کننده است. این بدان معناست که برنامه شما می تواند با استفاده از تعداد کمی threads، درخواست های بسیاری را به صورت همزمان رسیدگی کند. همچنین Vert.x این امکان را می دهد که با حداقل سخت افزار موجود، مقیاس برنامه را تغییر دهید.


در دنیای داده ها 2 الگوی relational و non-relational وجود دارد. ما همواره بر اساس نیاز و ساختار پروژه از Oracle به عنوان یک پایگاه داده relational به همراه مجموعه ای از پایگاههای داده ای non-relational همانند Cassandra، Redis، Elasticsearch و ... استفاده کرده ایم.