گسترش پذیری، امنیت و متدولوژی های نرم افزار در اوراکل اپکس

گسترش پذیری، امنیت و متدولوژی های نرم افزار در اوراکل اپکس

اوراکل اپکس یکی از ملحقات پایگاه داده Oracle و ابزار اصلی تولید برنامه های وب با استفاده از SQL و PL/SQL است. افراد تیم های برنامه نویسی می توانند برنامه هایی کاملا امن و گسترش پذیر را بر روی بستر اوراکل تولید کنند که پیش از این، کاری بس دشوار بود.

اپکس با معماری گسترش پذیر خود، دارای ویژگی های فراوانی برای تولید برنامه های تحت وب است. همچنین استقرار برنامه ها که یکی از چالش برانگیزترین مراحل توسعه نرم افزارهای وب است با استفاده از مکانیزم ساده و قدرتمند موجود در اپکس بسیار سهل و آسان شده است. یادگیری اوراکل اپکس کاملا سرراست است، به این معنی که اگر پیش زمینه ای از برنامه نویسی اوراکل با استفاده از PL/SQL داشته باشید می توانید به راحتی پیشرفت کنید.

در ابتدای مطلب صحبت ازگسترش پذیری اپکس به میان آمد، حال ببینیم اوراکل اپکس تا چه میزان گسترش پذیر است؟ پاسخ ساده این خواهد بود: اپکس می تواند بسیار گسترش پذیر باشد و نمونه عینی آن نیز Database Cloud Service شرکت Oracle است که در خود APEX را به عنوان محیط توسعه در بر دارد. یکی از دلایلی که باعث می شود اپکس تا این اندازه گسترش پذیر باشد، عدم نیاز به یک Session اختصاصی پایگاه داده برای هر کابر است، به این معنی که تنها یک Database Session برای پاسخ گویی و پردازش درخواست های کاربر مورد استفاده قرار می گیرد. اوراکل همچنین یک Instance از اپکس به آدرس apex.oracle.com فراهم کرده است که می توان از آن به منظور سنجش و ارزیابی برنامه ها و نیز فراگیری اپکس استفاده کرد. مدیر تیم اوراکل اپکس آقای Joel Kallman آمار و ارقام جالبی را ارائه داده است که حجم فعالیت هایی که این Instance از APEX با آن سر و کار دارد، را به خوبی نشان می دهد:

در ۷ روز گذشته بر روی هاست apex.oracle.com :

Total Page Views: ۴,۸۷۵,۱۷۳
Distinct Applications Used: ۵,۸۴۲
Distinct Users: ۹,۰۴۸
Total Number of Workspaces: ۲۰,۹۷۴
Total Number of Applications: ۷۷,۴۷۸
New Workspaces Approved: ۹۰۴
(Statistics 6th May 2014)

Joel همچنین اطلاعات بسیار جالبی را در خصوص یک Instance از APEX که در خود شرکت Oracle پیاده و استفاده می شود، ارائه کرده است. این Instance برای هر فردی که می خواهد اقدام به ساخت برنامه  کند در دسترس است و آن فرد برای استفاده از آن نیاز به چیزی جز مرورگر ندارد. این Instance تقریبا توسط هر کسب و کاری استفاده می شود (یعنی EMEA HR, Database QA, Fusion Applications development, Marketing, North American Sales, India Development Centre Facilities, and Manufacturing & Distribution). در مقایسه با apex.oracle.com که در وب برای ارزیابی و سنجش نسخه ها و برنامه های اپکس و فراگیری استفاده می شود، این Instance شامل برنامه هایی کاملا واقعی و کاربردی است که کسب و کاری را هدایت می کنند:

Total Page Views: ۲,۳۸۹,۵۹۳
Distinct Applications Used: ۲,۰۲۳
Distinct Users: ۱۸,۲۰۳
Total Number of Workspaces: ۲,۷۵۹
Total Number of Applications: ۴,۵۹۲
(Statistics 6th May 2014)

همچنین شرکت Oracle یک Application اپکسی داخلی دارد با نام Aria People که در واقع یک دایرکتوری از کارمندان آن شرکت است. این برنامه تقریبا توسط تمامی کارکنان در Oracle استفاده می شود و به طور میانگین بین ۱٫۴ تا ۱٫۵ میلیون بازدید صفحه در روز دارد. بر طبق آمار ارائه شده توسط آقای Kallman، در یک روز خاص یعنی ۱۸ مارس ۲۰۱۴ حدود ۳٫۱۳۲٫۵۷۳ صفحه از ۴۵٫۷۶۷ آدرس IP یکتا مورد بازدید قرار گرفته است. میانگین زمان اجرا شدن هر صفحه حدود ۰٫۰۳ ثانیه بود. در همین Application ، در ۱۱ مارس ۲۰۱۴ فقط در یک ساعت بیش از ۱۷۱,۱۵۶ بازدید از ۶,۲۵۴ آدرس IP یکتا اتفاق افتاده است.

در کنار این که APEX محیط توسعه داخلی  Oracle Database Cloud Service است، محصولات دیگری نیز مانند  Audit Vault ، Database Firewall و ۱۲c Multi-tenant Self Service provisioning نیز همه و همه از APEX استفاده می کنند.

سرباری که خود موتور APEX خواهد داشت نسبتاً ثابت است و این یعنی اگر شما یک SQL Query می نویسید که ۳۰ ثانیه اجرایش طول می کشد و آن Query را در یک گزارش در برنامه APEX قرار دهید، می توانید انتظار داشته باشید که اجرای آن صفحه نیز ۳۰ ثانیه زمان ببرد. کلید نوشتن برنامه های APEX با کارایی بالا در واقع نوشتن SQL Query های کارا و کارآمد است.

از دیدگاه امنیت، برنامه های APEX با همان آسیب پذیری هایی که دیگر برنامه های وب – که بر اساس تکنولوژی های دیگر همچون PHP، ASP.NET و Java نوشته می شوند – مواجه است. حملات Cross Site Scripting به همراه SQL injection جزو شایعترین این آسیب پذیری ها محسوب می شوند: این حملات که مختص APEX نیستند، با کد نویسی صحیح و امن جلوگیری می شوند. دیگر آسیب پذیری های محتمل مانند Access Control و Item Protection در خود اپکس می توانند به راحتی از طریق تعریف و اجرای ساختار های استاندارد APEX کاملا محافظت شده و آسیب پذیری ها را به راحتی جبران کرد. بنابراین امنیت برنامه های APEX به هیچ عنوان از امنیت برنامه های .NET و Java کمتر نیست و پیاده سازی امنیت در آن ساده تر نیز می باشد، چراکه معماری آن از پیچیدگی کمتری بهره می برد.

آنچه مشتری در قالب نیازمندی های کسب و کار می خواهد و User Interface ای که مد نظر اوست را می توان به راحتی در اپکس پیاده کرد و در این مورد هیچ محدودیتی نخواهید داشت. در واقع اپکس مسیر توسعه و نحوه کار کردن مشتری را به شما دیکته نخواهد کرد. مسلما این امر برای کسانی که در اپکس تازه کار هستند، خیلی آشکار نیست اما به مرور زمان و با کسب تجربه و مهارت، توسعه دهندگان خواهند دانست که اپکس برای توسعه و پیاده سازی آنچه می خواهند، کاملا تواناست. برای تطبیق با نیازهای متدولوژی طراحی و ساخت بر اساس آنچه مطلوب مشتری است، امنیت، پیگیری دسترسی ها و نحوه پیاده سازی آن، احراز هویت و پیاده سازی استانداردهای تجاری همواره راهی مناسب در اپکس خواهید یافت. APEX کاملا قدرتمند است و باید به طور جدی توسط افرادی که به هزینه پایین توسعه و سرعت بالای استقرار ارزش قائل هستند، مورد توجه و بررسی قرار گیرد.

همچنین APEX می تواند با روش ها و متدولوژی های متفاوت پروژه – نه فقط چرخه حیات توسعه نرم افزار سنتی – به صورتی کاملا موفقیت آمیز استفاده شود. از آنجا که اپکس کاملا با پایگاه داده اوراکل یکپارچه است، برخی پیچیدگی های فریم ورک آن همچون Session Management و Security به صورت خودکار انجام می شود و این به برنامه نویس اجازه می دهد تا تمرکز خود را بر پیاده سازی قابلیت های بیشتر در برنامه ، که مرتبط با نیازمندی های کسب و کار است، معطوف دارد و این بدین معنی است که برنامه ها می توانند در زمان کمتری به سرانجام برسند. برای همین، APEX کاملا برای متدولوژی هایی که بر نمونه سازی سریع و تکرار شونده تاکید دارند همچون Rapid Application Development (RAD) عالی است، درست همانطور که برای متدولویی هایی که توجه بیشتری بر به ثمر نشستن سریع و ساخت سریع نرم افزار های کاربردی تاکید دارند مانند Agile مناسب است.

آخرین نسخه APEX دستاوردهای بیشتری را معرفی می کند که می توان ویژگی های جدید را از طریق  Oracle REST Data Services، Tablet Interface، یک قالب کاملا واکنش گرا و توسعه هایی در برنامه نویسی برای موبایل و Mobile UI کسب نمود. شرکت Oracle از سال ۲۰۰۴ تاکنون، به صورت پیوسته نسخه های جدیدی از اپکس منتشر کرده است و این باعث اعتماد بیشتر مشتریان در پشتیبانی اپکس می شود. Application Express اینجاست تا بماند، APEX جزئی از پایگاه داده Oracle است و Oracle نیز همواره از پایگاه داده خود پشتیبانی می کند! انجمن اوراکل اپکس به سرعت رشد کرده است و افراد بسیاری زمان می گذارند و برای حل مشکلات دیگر برنامه نویسان و ارائه مطالب در وبلاگ هایشان تلاش می کنند. اعضای تیم اوراکل اپکس جزو فعالترین گروهی هستند که همواره در شبکه های اجتماعی یا از طریق وبلاگ ها یا فروم اوراکل اپکس در دسترس و پاسخگوی مشکلات هستند. مسیر اپکس کاملا روشن است، روز به روز توسعه می یابد و بهتر می شود و این ما را قادر می سازد تا با اطمینان هرچه بیشتر، پروژه های خود را با هر پیچیدگی که دارند، بدون شکست به ثمر رسانیم.

پس چرا مهارت های برنامه نویسی خود در PL/SQL را به محیط جدید که آینده برنامه نویسان PL/SQL بر آن استوار است، توسعه ندهیم؟ محیط توسعه ای که در دل پایگاه داده Oracle قرار دارد و انس با آن به زمان زیادی احتیاج نداشته و مهاجرت به استفاده از آن، نیازمند صرف زمان زیاد برای یادگیری زبان جدید و مهارت های برنامه نویسی نیست.