در ZFrame، متادیتا تنها مجموعهای از تنظیمات یا اطلاعات توصیفی نیست؛ بلکه هسته تصمیمگیری و تولید نرمافزار است. ساختار سیستم، رفتار اجزا، قوانین کسبوکار، رابط کاربری و بسیاری از قابلیتهای اجرایی، به جای کدنویسی مستقیم، در قالب مدلها و متادیتا تعریف میشوند.
این رویکرد باعث میشود توسعه نرمافزار از پیادهسازی جزئیات فنی به سمت مدلسازی کسبوکار حرکت کند؛ جایی که تغییرات در ساختار، فرآیندها یا قوانین، بدون وابستگی گسترده به کد، قابل مدیریت و توسعه هستند.
متادیتا، موتور تولید نرمافزار
در معماری ZFrame، موتورهای مختلف سیستم، اطلاعات موردنیاز خود را از Metadata Layer دریافت میکنند.
به جای اینکه برای هر فرم، کنترل، منو یا فرآیند کد اختصاصی نوشته شود، موتورهای ZFrame متادیتا را تفسیر کرده و در زمان اجرا اجزای نرمافزار را تولید میکنند.
به همین دلیل، توسعه سیستم بیش از آنکه مبتنی بر کدنویسی باشد، بر پایه تعریف مدلها و قوانین انجام میشود.
اجزای Metadata Layer
Data Model Metadata
تعریف موجودیتهای سازمان، جداول، روابط، کلیدها و ساختار دادهها.
Form Metadata
توصیف کامل فرمهای سازمانی.
Control Metadata
تعریف رفتار کنترلهای رابط کاربری.
هر کنترل دارای مجموعهای از ویژگیها، اعتبارسنجیها، رویدادها و تنظیمات اختصاصی است که همگی از طریق متادیتا مدیریت میشوند.
Layout Metadata
مدیریت ساختار نمایش صفحات.
Business Metadata
تعریف قوانین اجرایی بدون وابستگی به رابط کاربری.
Event Metadata
مدیریت چرخه رویدادهای سیستم. نمونههایی از رویدادها:
Security Metadata
تعریف سیاستهای امنیتی.
Workflow Metadata
تعریف فرآیندهای سازمانی.
Reporting Metadata
تعریف گزارشها بدون وابستگی به پیادهسازی.
API Metadata
تعریف سرویسها و نقاط تبادل اطلاعات.
چرخه تولید نرمافزار
در ZFrame، متادیتا تنها ذخیره نمیشود؛ بلکه به موتورهای مختلف ارسال شده و آنها بر اساس آن نرمافزار را تولید میکنند.
به همین دلیل، یک تغییر در Metadata میتواند همزمان رفتار چندین بخش از سیستم را تغییر دهد، بدون اینکه نیاز به بازنویسی اجزای مختلف باشد.
مزایای Metadata Layer
- توسعه مبتنی بر مدل به جای توسعه مبتنی بر کد
- کاهش چشمگیر حجم کدنویسی
- توسعه سریعتر نرمافزارهای سازمانی
- استانداردسازی اجزای سیستم
- افزایش قابلیت نگهداری
- کاهش هزینه تغییرات
- استفاده مجدد از اجزای مشترک
- مدیریت متمرکز قوانین و تنظیمات
- توسعهپذیری بلندمدت
- سازگاری کامل با سایر لایههای معماری ZFrame
جایگاه Metadata در معماری ZFrame
Metadata Layer در مرکز معماری ZFrame قرار دارد و تقریباً تمام لایههای دیگر برای تولید یا اجرای قابلیتهای خود به آن وابسته هستند. Experience Layer برای تولید رابط کاربری، Application Engine برای ایجاد اجزای اجرایی، Business Engine برای اعمال قوانین، Workflow Engine برای اجرای فرآیندها و حتی سرویسهای امنیت، گزارشگیری و یکپارچهسازی، همگی اطلاعات خود را از این لایه دریافت میکنند.
به همین دلیل، Metadata Layer را میتوان مغز متفکر ZFrame دانست؛ لایهای که دانش کسبوکار، ساختار نرمافزار و قوانین اجرایی را در یک نقطه متمرکز میکند و آنها را به اجزای قابل اجرا در سراسر پلتفرم تبدیل میسازد. این معماری، توسعه نرمافزار را از تولید صفحات و کدنویسی تکراری، به سمت طراحی مدلهای پایدار، قابل توسعه و قابل نگهداری هدایت میکند.

