همانطور که میدانیم، هر سیستم کاربردی از مجموعهای از فناوریها و سکوهای نرمافزاری و زیرساختی تشکیل شده است. در این مقاله سعی داریم در سطح بسیار کلان به معرفی اجزای معماری odoo بپردازیم.
معرفی بانک اطلاعاتی PostgreSQL به عنوان پایگاه داده odoo
مانند هر سیستم ERP، اودوو (odoo) هم نیازمندیهای بانک اطلاعاتی خاص خودش را دارد. odoo در این میان بانک اطلاعاتی PostgreSQL را انتخاب کرده است. PostgreSQL یک سیستم مدیریت بانک اطلاعاتی رابطهای شیئگرای (Object Relational Database Management System (ORDMS متن باز و مستقل از سکو میباشد. البته این پایگاه داده به دلیل اینکه یک سرور پایگاه داده enterprise-class و دارای قابلیتهای پیشرفته است، مانند MySQL همگانی نیست. در واقع PostgreSQL در حال رقابت با بانکهای اطلاعاتی گران قیمتی همچون اوراکل (Oracle) و SQL Server است.
این بانک اطلاعاتی بر روی انواع سیستم عاملهای معروف و مهم مانند نسخههای مختلف لینوکس، ویندوز و Mac OS X قابل اجرا میباشد. برای کسب اطلاعات بیشتر میتوانید به سایت رسمی PostgreSQL ، این سیستم پایگاه داده قدرتمند مراجه نمایید.
پایتون به عنوان زبان برنامهنویسی سیستم
زبان برنامهنویسی اصلی استفاده شده در odoo زبان پایتون میباشد. مانند سایر فناوریهای استفاده شده در اودوو (odoo)، این زبان برنامهنویسی نیز متن باز یا منبع باز بوده و بر روی تمام سیستمعامل های معروف و مهم قابل اجرا میباشد. زبان پایتون در دنیا بسیار محبوب بوده و این کار پیدا کردن منابع مورد نیاز برای کسانی که میخواهند تازه شروع کنند را بسیار آسان مینماید. شما میتوانید اطلاعات بسیار مفیدی در مورد این زبان برنامهنویسی پیشرفته در سایت رسمی پایتون پیدا کنید.
جاوااسکریپت به عنوان زبان برنامهنویسی واسط کاربری پیشرفته اودوو (odoo)
جاوااسکریپت (JavaScript) زبان برنامهنویسی اسکریپت مبتنی بر اشیاء است که توسط Netscape تولید شدهاست. جاوااسکریپت، یک زبان برنامهنویس شیءگرا[۱] و سطح بالا است که بر اساس استاندارد ECMA-262 Edition 3 نوشته شدهاست.
علیرغم اشتباه عمومی، زبان جاوااسکریپت با زبان جاوا ارتباطی ندارد، اگر چه ساختار این زبان به سی پلاس پلاس(++C) و جاوا شباهت دارد؛ که این امر برای یادگیری آسان در نظر گرفته شدهاست. از همین رو دستورهای متداول مانند if,for, try..catch ,"while" و… در این زبان هم یافت میگردند.
این زبان میتواند هم به صورت ساخت یافته و هم به صورت شی گرا مورد استفاده قرار گیرد. در این زبان اشیاء با اضافه شدن متدها و خصوصیات پویا به اشیاء خالی ساخته میشوند، بر خلاف جاوا. بعد از ساخته شدن یک شی به روش فوق، این شی میتواند به عنوان نمونهای برای ساخته شدن اشیاء مشابه مورد استفاده قرار گیرد.
کاربرد گسترده این زبان در سایتها و صفحات اینترنتی میباشد و به کمک این زبان میتوان به اشیاء داخل صفحات HTML دسترسی پیدا کرد و آنها را تغییر داد. به همین علت برای پویا نمایی در سمت کاربر، از این زبان بسیار استفاده میشود. البته برای تولید سیستم و نگهداری آن به دانستن این زبان نیاز نخواهید داشت ولی اگر بخواهید واسط کاربری خاص منظوره تولید کرده و یا قابلیتهایی به زیر ساخت واسط کاربری اودوو اضافه نمائید، آنگاه دانستن این زبان بسیار مفید است. مستندات این زبان متن باز و قدرتمند را میتوانید در سایت شرکت موزیلاجستجو نمائید.
استفاده از الگوی طراحی مدرن MVC یا ( Model-View-Controller)
odoo بر پایه معماری MVC طراحی شده است. یکی از اصلیترین اهداف این معماری جداسازی نمایش بصری اطلاعات از قوانین کسب و کار و مدیرت لایههای پائینی داده میباشد. این تفکیک، نگهداری سیستمها را بسیار کمهزینهتر مینماید. امروزه این معماری بسیار پر کاربرد بوده و باعث شده سیستمهای مختلف نمایشهای متفاوتی از اطلاعات یکسان داشته باشند بتوان نماهای مختلفی را بدون تغییر روی ساختار داده ایجاد نمود، همچنین بدون تغییر در مدل داده یا نماها قوانین کسب وکار را تغییر داد.
مدلها (Models)
مدلها در اودوو (odoo) محل نگهداری اطلاعات بوده و در بانک اطلاعاتی PostgreSQL ساخته میشوند. اودوو برای این منظور چارچوب بسیار قدرتمندی دارد. توسط این چارچوب نرمافزاری هنگام نصب هر زیرسیستم ساختار بانک اطلاعاتی آن در PostgreSQL به صورت خودکار ساخته میشود. در اودوو (odoo) میتوان از طریق یک واسط کاربر تحت وب مدل داده سیستم را بدون تغییر کد منبع برنامه (Source) توسعه داده و یا اصلاح نمود. همچنین با استفاده از ابزار odoo studio نیز میتوان اینکار را به راحتی به صورت بصری (visualize with drag and drop) نیز انجام داد.
نماها (Views)
هر نمایی در اودوو (odoo) به وسیله یک سند XML تعریف میشود. چارچوب نرمافزاری اودوو (odoo framework) مسئول نمایش این نما در مرورگر میباشد. این قابلیت امکان ایجاد تغییرات با حداقل زمان و فعالیت در نماها را به کاربر داده و واسط کاربری را یکپارچه مینماید.
کنترلکنندهها (Controllers)
کنترلکنندهها بخشی از معماری اودوو (odoo) هستند که منطق کسب و کار، گردشکارها و قوانین کسب و کار برنامهها در آن اعمال میشود. کنترلکنندهها در اودوو (odoo) به زبان پایتون (Python) نوشته شده و در قالب اشیائ در هر ماژول ذخیره میشوند.