وبلاگ پرنیان پردازش پارس

مقالات آموزش اتوماسیون اداری و شیرپوینت، فیلم های آموزشی، آخرین اخبار و دیگر مطالب مرتبط با دنیای نرم افزارهای سازمانی

اطلاعات بیشتر »

پتروشیمی مارون عضو جدید خانواده پرنیان

سیستم اتوماسیون اداری پرنیان مبتنی بر outlook و سیستم فرآیند ساز (BPMS) پرنیان در پتروشیمی مارون با موفقیت نصب و راه اندازی شد.
 
مجموعه های پیشرو در استفاده از فناوری اطلاعات عمدتا به این نتیجه رسیده اند که روشهای کلاسیک گرته برداری شده از نظام های کاغذی دیگر جوابگو نبوده و نه تنها باعث ایجاد چابکی در سازمان نمی شود. بلکه مانعی نیز بر سر راه می باشد. از این رو است که استقبال از محصولات خلاقانه پرنیان در حوزه های مختلف اعم از اتوماسیون اداری، پورتال، فرآیند ساز، هوش تجاری و .... رو به افزایش است.
 

فرآیند ساز در شیرپوینت

فرآیند ساز در شیرپوینت
به مجمع الجزائرBPMS خوش آمدید!
بخش های گوناگون سازمان های بزرگ را همچون جزایری در نظر بگیرید که برای ارتباط بین آنها نیاز به یک سرویس حمل و نقل جامع و پر هزینه است. سرویسی که به طور مستمر و زمانبری ا``فراد گوناگون سازمان از مدیریت گرفته تا درجات پایین تر را درگیر خود کرده و در آخر هم ممکن است هر شخصی سر از جزیره اشتباهی در آورد!
امروزه دو مبحث مهم و حیاتی سازمانی، یعنی مدیریت فرآیند کسب و کار و مدیریت اسناد چگونه در سازمان پایه ریزی می شود؟
نخبگان امروزه ایده های سازمانی زیادی دارند و از گفتن این ایده ها تا زمان پیاده سازی هراسی ندارند. اما مشکل بزرگ آنجایی جلوه می کند که تعریف جامعی برای گردش کار متناسب فرآیندهای مد نظر خود را نمی توانند ارائه دهند و حتی در صورت ارائه، در پیاده سازی آن با مشکلات عدیده ای مواجه می شوند. اینجاست که نیاز به یک موتور قدرتمند که در عین سادگی جامع ترین پاسخگوی نیاز شخص باشد، خود را نشان می دهد.
فرآیندساز شیرپوینت
امکان مدیریت مستندات و پیوست ها در چرخه انجام یک درخواست، از یک طرف با توجه به حجم داده و از طرف دیگر اهمیت بالایی که در تعریف سطوح دسترسی به هر کدام از این مدارک وجود دارد، می بایستی از طریقی امکان پذیر باشد. چرخش های پیچیده و طولانی فرآیندها با گام های متغیر که بر اساس ورودی های گوناگون جهت حرکت فرآیند تغییر می کند، همه و همه نیاز به طراحی سیستمی دارد که بتواند همه این مراحل را در عین سادگی با حداکثر یکپارچگی مجتمع نماید.
اهمیت گزارش گیری در یک سازمان به عقیده برخی کارشناسان به مراتب بالاتر از پروسه های پیش از آن است. چرا که مبنای پیشرفت یک سازمان بر اساس گزارشات زمانبندی شده و اعداد و ارقامی است که نتیجه آنها، معیاری بسیار حیاتی در تصمیم گیری ها و برنامه ریزی های یک سازمان است.
آیا به این نکته فکر کرده اید که می توانید بخش اعظمی از طراحی خود را در محیط ویندوز انجام دهید. طراحی ساده و در عین حال با امکانات بالای فرم های پایه در محیط ویندوز به جای طراحی در محیط وب که کمک زیادی به افزایش سرعت طراحی می کند. همه اینها از طریق ابزار بسیار قدرتمند اینفوپس (InfoPath 2010) فراهم شده، ابزاری بسیار قوی که ارتباط با بخش های گوناگون سیستم را حتی بدون نیاز به کد نویسی خاصی (در عین داشتن بستر مناسب کدنویسی و ارتباطات وب سرویسی قوی و در عین حال امن) میسر می سازد.
نگاهی کوتاه به برخی از مواردی که برای نخستین بار در شیرپوینت 2010 آمده است :
  1. گردش کارهای شیرپوینت 2010 بر پایه موتور گردش کاری که .Net Framework 3.5 فراهم می کند، پایه ریزی شده است.
  2. لیست و گردش کارهای سایت؛ علاوه بر لیست های شیرپوینت در حال حاضر می توانیم به خوبی برای سایت های شیرپوینتی گردش کار ایجاد کنیم. اینها به عنوان "Site Workflows" گردش کارهای سایت معرفی می شوند.
  3. SharePoint Designer 2010تغییر کرده است. مایکروسافت در نسخه 2010 خود محیط گرافیکی جذاب و جامعی جهت طراحی گردش کارها برای این ابزار فراهم کرده است. این گردش کارها می توانند مستقیما از طریق همین ابزار در سرور شیرپوینت مستقر شوند.
  4. طراحی گردش کارهای Out-of-Box(خارج از قالب) : یکی دیگر از مزایای گردش کار SharePoint Designer 2010 این است که به شما اجازه ویرایش گردش کار های خارج از قالبی را که در خلال شیرپوینت می آید را می دهد.
  5. User profile (پروفایل کاربر) در شیرپوینت: داده های پروفایل کاربر می تواند به مشخصه های شیرپوینت متصل شود. این امکان ما را قادر می سازد تا دسترسی مستقیم و بی واسطه ای به اطلاعات مربوط به پروفایل کاربر در گردش کار داشته باشیم.
  6. تغییر در رویدادهای لیست : شیر پوینت 2010 چهار Event Receiverجدید برای لیست های بر مبنای گردش کار اضافه کرده است. این چهار Event Receiver گردش کاری جدید شامل Starting ،Started ، Postponed و Completed می باشد. این موارد شبیه سایر Event Receiver های موجود در لیستها/کتابخانه ها کدهایی را بر روی سرور در پاسخ به یک رویداد اجرا می کنند.
  7. قالب های گردش کار : برای آسان سازی طراحی و پیاده سازی، Visual Studio 2010 شامل نوع پروژه ای از نوع Event Receivers شده است تا استفاده از گردش کار و رویداد ها را به طرز چشمگیری ساده تر نماید.
فرآیندساز شیرپوینت
اما بلوک های سازنده برای ساخت یک گردش کار چیست ؟ چه قوانین امنیتی روی گردش کار اعمال شود؟
Workflow Security Model (مدل امنیتی گردش کار)
از آنجایی که شیرپوینت 2010 یک سیستم مشترک رده سازمانی (enterprise-class collaborative system) است، امنیت و محتوای کاربر بخش هایی حیاتی از هر سلوشن هستند و گردش کارها نیز از این قاعده مستثنی نیستند. موارد زیر برخی از قواعد امنیتی در شیرپوینت 2010 هستند :
  1. گردش کارها به عنوان یک آغازگر اجرا می شوند : در حالت کلی محتوای امنیتی که یک گردش کار دارد، مربوط به شروع آن است، زمانی که یک گردش کاری با راه اندازی دستی آن یا اجرای عملیاتی که رویداد آن موجب آغاز گردش کاری می شود، آغاز می شود.
  2. گاهی اوقات شروع یک عملیات توسط شما نمی تواند وظیفه مورد نظر در یک گردش کار را اجرا نماید، چرا که آنها دسترسی به وظیفه مورد نظر را ندارند و یا اینکه شما نمی خواهید که آنها بر روی وظیفه کاری را انجام دهند. در اینگونه موارد شما می توانید وظیفه را در یک مرحله واسط قرار دهید که موجب می شود وظیفه شبیه کاربری که گردش کار را ایجاد کرده اجرا شود.
  3. گردش کارها سایت محور هستند : بدون استفاده از سفارشی سازی بیشتر، شما می توانید به آیتم ها (مانند لیستها و کتابخانه ها) تنها در سایتی که گردش کار در آن در حال اجراست، دسترسی داشته باشید.
مي توانيد به اين شکل تصور کنيد که Workflow، Step يا مجموعه ای از مراحل يک رویداد است که شامل مجموعه اي از اعمال (Action) و شروط (Conditions) مي باشد. زماني که يک گردش کار آغاز مي شود.
براي هر مرحله شروطي که ايجاد شده است، ارزيابي مي شود و سپس اعمالي که در نظر گرفته ايد، انجام مي شود. يک مرحله در گردش کار، مي تواند شامل هر تعداد از عملیاتی که شما در نظر گرفته ايد، باشد. از فرستادن ايميل گرفته تا ايجاد،کپي و يا حذف کردن آيتم هاي ليست و در واقع هیچ محدوديتي در اين مورد وجود ندارد.
توجه داشته باشيد که شرايط و قوانيني که در يک مرحله مشخص کرده ايد، قبل از رفتن به مرحله بعد پردازش مي شوند. پس دقت داشته باشيد که شرايطي (Condition) را که مي خواهيد در نظر بگيريد تا بر اساس آن در مرحله بعد انجام شود، حتماً در يک مرحله قرار دهيد.
نکته: گردش کار هميشه به يک ليست يا سند در شيرپوينت اختصاص داده مي شود. بنابراين قبل از ايجاد گردش کار، سايت شما بايد حتماً ليست يا سندي را در بر داشته باشد که بتوانيد گردش کار را به آن اختصاص دهيد.
اجزاء کلیدی گردش کار چه مواردی هستند ؟
چهار جزء کلیدی در یک گردش کار دیده می شود:
Event (رویداد):
چیزی که با روی دادن آن عملیاتی از نوع گردش کار آغاز می شود. چندین روش وجود دارد که گردش کارها آغاز شوند؛
هنگامی که یک کاربر یک درخواست دستی ایجاد می کند.(مانند کلیک بر روی شروع گردش کار)، هنگامی که یک آیتم (مانند آیتم لیست یا یک سایت) ایجاد می شود، یا هنگامی که یک آیتم تغییر می کند. هنگامی که یک گردش کار آغاز می شود، شما می توانید به کاربر فرمی را بدهید که داده ها را برای اجرای گردش کار جمع آوری کند.
Steps (مراحل):
Step ها مفاهیمی اساسی در ساختار و سازماندهی در داخل یک گردش کار هستند. یک مرحله شامل یک یا بیش از یک عملیات و به طور اختیاری یک یا چند شرط است. هر دو گزینه ساختار و تعداد مراحل کاملا وابسته به انتخاب شما خواهد بود. شما می توانید یک گردش کار One-Step(تک مرحله ای) بسازید که در آن یک مرحله شامل لیست بزرگی از عملیات خواهد بود. اگرچه، از دیدگاه سازمانی بهتر است مراحل اضافی به طور مجزا تعریف شوند.
Conditions (شرایط):
همانطور که در مورد گردش کارها فکر میکنید، شما با دو راهی ها و موارد زیادی که نیاز به تصمیم گیری درست از میان چندین هدف دارد، مواجه می شوید.همه اینها وابسته به چگونگی پردازش گردش اطلاعات توسط شیرپوینت خواهد بود. برای پیاده سازی منطق "if-then-else" در گردش کار خود، شما Condition(شروط) را به برنامه اضافه می کنید. یک شرط عبارتی است که اگر درست باشد، به موتور گردش کار می گوید تا یک وظیفه مرتبط یا گروهی از وظائف را اجرا نماید.
Actions (عملیات):
اگر مراحل در جایگاه Where (کجا؟) و شرایط در جایگاه When (چه هنگام؟) هستند، Action ها در حکم What (کدام؟) هستند. در واقع معرف قسمتی کلیدی و عملیاتی از داستان یک گردش کار هستند. یک عملیات می تواند هر چیزی باشد، اعم از کار با یک آیتم منصوب به گردش کار تا ارسال ایمیل به یک شخص خاص و یا ویرایش یک منبع داده دیگر
چگونه فرآیند ساز پرنیان خود را با امکانات جدید هماهنگ کرده است؟
فرآیند ساز پرنیان (Parnian Process Maker) با بکارگیری حداکثری از ویژگی های کلیدی عنوان شده در SharePoint2010 سعی کرده تا مجموعه واحدی را با حداکثر امکانات اساسی پایه ریزی کند. بکار گیری منطقی 4 جزء کلیدی گردش کار که در بالا عنوان شد، در عین سادگی، انعطاف پذیری بالایی را در طراحی فرم های گردش کار به طراحان و کاربران ارائه می دهد.
سیستمی مبتنی بر موتور قدرتمند و سریع Windows Workflow Foundation با انعطاف پذیری بالا در تعیین مسیر گردش کار که در هر زمان به شما امکان بازگشت به مراحل قبلی را داده و تفویض اختیار به سایر افراد در سازمان را برای شما به راحتی میسر می سازد.
طراحی و پیاده سازی ارتباطات متقابل بین واحدهای مختلف سازمان با قابلیت سازش پذیری با بسیاری از نرم افرارهای درون سازمانی که با بکارگیری وب سرویس های قدرتمند امکان ارتباط بین این واحد ها را مقدور می سازد.
سیستم گزارش گیری و اطلاع رسانی با ویژگی هایی چون ارسال ایمیل های اطلاع رسانی در خلال پروسه گردش فرم در کنار امکان ثبت پاراف و پیوست وجود دارد که کلیه مرحل در قالب بخشی به نام تاریخچه گردش کار جمع آوری شده و روال چرخش فرم تا لحظه جاری را با جزئیات در یک نمای درختی نمایش می دهد.
فرآیند ساز پرنیان به شما این امکان را می دهد که حتی بدون نیاز به تعریف دستی یک گردش کار و صرفا با تعیین یک بازه زمانی خاص، یک گردش به طور خودکار شروع به کار کرده و طی فواصل زمانی گوناگون در صورت نیاز، ادامه روند کار خود را نیز به صورت خودکار ادامه دهد. در همین راستا زمینه راحتی را برای اجرای گردش کار فرزند به معنای گردشی خاص که در خلال گردش اصلی استارت زده می شود، با امکان تعیین آیتم هایی که لازم است از هر سطح به دیگری منتقل شود را فراهم می کند.
 

پرنیان در مسابقه بین المللی شیرپوینت 2013

بعد از ارایه نسخه Preview آفیس و شیرپوینت 2013 و با توجه به گستردگی بازار استفاده از این محصولات و امکان توسعه Add-on و Web Part و... برای آنها، مایکروسافت نیز مانند اپل تصمیم گرفته است فروشگاهی جهت عرضه App (اپ)های مربوط به این محصولات آماده نماید. برای شروع با برگزاری مسابقه ای در این خصوص از همه توسعه دهندگان دعوت شده است تا ایده های خود را به صورت App عرضه نمایند.
 
برای شرکت در این مسابقه باید app مورد نظر را تا 20 نوامبر 2012 در سایت sellerdashboard.microsoft.com بارگذاری نمود. جوایز این مسابقه برای نفر اول 10 هزار دلار جایزه نقدی به علاوه امکان ملاقات با یکی از مدیران مایکروسافت و گرفتن مشاوره از یکی از مدیران تیم برنامه نویسی مایکروسافت است.
پرنیان نیز به عنوان برترین ارایه کننده محصولات فارسی مبتنی بر شیرپوینت در این مسابقه شرکت می نماید.
 

خبرهای خوش شیرپوینت 2013 برای برنامه نویسان – قسمت دوم

خبرهای خوش شیرپوینت 2013 برای برنامه نویسان – قسمت دوم

تیم فنی پرنیان پردازش پارس
 
در قسمت قبل این مقاله در خصوص برخی قابلیت هایی که در شیرپوینت 2013 ایجاد شده یا بهبود یافته اند صحبت کردیم. در این قسمت به صورت مشخص در خصوص دو بخش Business Connectivity Service و Business Intelligence و بهبودها و امکانات جدید این دو بخش در شیرپوینت 2013 صحبت خواهیم کرد.
امکانات جدید برنامه نویسی برای Business Connectivity Service
در تمام سازمان ها، داده ها بر روی منابع اطلاعاتی مختلفی ذخیره می شوند. یکی از کارکردهای پورتالهای سازمانی، یکپارچه سازی دسترسی به داده ها و گزارشات و آمارهای مختلف روی آنهاست.
شیرپوینت از سالیان دور امکاناتی را برای کار با داده های خارجی در اختیار کاربران و برنامه نویسان قرار داده، BDC ها در شیرپوینت 2007 و سرویس Business Connectivity در شیرپوینت 2010 هر دو هدف مشترکی را دنبال می کنند.
در شیرپوینت 2010 برای اتصال به یک منبع داده خارجی، 3 گزینه وجود داشت: WCF، SQL Server و .NET Assembly . اما در شیرپوینت 2013 گزینه OData نیز به این مجموعه اضافه شده است.
OData یا Open Data Protocol یک پروتکل برای کوئری زدن و به روز رسانی داده هاست که به شکل های مختلف از جمله از طریق Http یا JSON می توان از آن استفاده کرد. شیرپوینت 2013 علاوه بر پشتیبانی از OData، روش های مختلفی برای احراز هویت (Authentication) در آن را نیز پشتیبانی می کند از جمله احراز هویت کاربر ناشناس (Anonymous)، احراز هویت Basic و Windows Authentication و احراز هویت سفارشی (Custom Authentication)
social broadcasting
در تکمیل پشتیبانی از OData، شیرپوینت 2013 همچنین به صورت خودکار توانایی ایجاد BDC Model ها بر اساس OData را دارد، در این حالت شما نیاز نیست نگران نوع منبع داده، نحوه احراز هویت و نحوه تعامل با منبع داده خارجی باشید. همچنین به منظور تنوع در استفاده از قابلیت های OData دستوراتی نیز به powershell شیرپوینت در این خصوص افزوده شده است که مدیران سیستم می توانند از آن ها برای کار با OData استفاده کنند.
علاوه بر OData، یکی از قابلیت های جدید و بسیار جالب شیرپوینت 2013 در مبحث Business Connectivity، قابلیت Event Listener است که به کمک آن شیرپوینت می تواند رویدادهایی که منجر به تغییر بر روی داده های منبع داده خارجی می شود را برای برنامه نویسان قابل دسترس کند تا برای این رویدادها کدهای سفارشی تهیه کنند. این قابلیت به توسعه بیشتر و استفاده منعطف از قابلیت های منبع داده خارجی کمک بسیار زیادی می کند.
علاوه بر برنامه نویسان، در شیرپوینت 2013 کاربران عادی نیز می توانند از قابلیت مربوط به رویدادها بر روی منبع داده خارجی استفاده کنند و برای خود هشدارهای سفارشی روی External List ها تعریف کنند. این نخستین بار در شیرپوینت است که چنین امکانی برای کاربران نهایی فراهم می شود. به این ترتیب می توان از قدرت alert های شیرپوینت برای دریافت notification بر روی منابع داده غیرشیرپوینتی نیز استفاده کرد.
حالا که صحبت از External List ها شد، خوب است بدانید که مایکروسافت در شیرپوینت 2013 بهبودهایی نیز در performance لیست های خارجی ایجاد کرده است. بیشتر این بهبودها، از طریق افزودن امکان صفحه بندی، فیلتر کردن داده ها و مرتب کردن اطلاعات خارجی در سمت داده خارجی و قبل از ارسال اطلاعات به شیرپوینت است، به این ترتیب وقتی شما در حال مشاهده صفحه ای از داده ها در شیرپوینت هستید، داده ها به شکل بهینه ای از منبع داده خارجی به شیرپوینت منتقل می شوند.
علاوه بر بهبودهای اشاره شده، با مشخص کردن حد رکوردها در BDC، کاربر امکان مشخص کردن تعداد رکوردهایی که در هر صفحه از لیست خارجی نمایش داده می شود را نیز دارا خواهد بود.
یکی دیگر از قابلیت هایی که به لیست های خارجی در شیرپوینت 2013 اضافه شده و جزء تفاوتهای لیست های عادی و لیست های خارجی در شیرپونت 2010 محسوب می شد قابلیت export کردن داده های لیست خارجی به اکسل است. البته این export یک طرفه است و هنوز قابلیت import از اکسل به یک لیست خارجی اضافه نشده است (قابلیت import از اکسل در لیست های معمولی در شیرپونت 2010 نیز وجود داشت). همچنین وقتی اطلاعات به اکسل ارسال می شوند در واقع نمایی از داده هایی که در حال مشاهده آنها بر روی مرورگر هستیم به اکسل فرستاده می شود با همان ترتیب و با همان فیلترها و روال کار در شیرپوینت 2013 مانند ارسال به اکسل قدیمی که همه داده ها را ارسال می کرد نیست.
امکانات جدید Business Intelligence در شیرپوینت 2013
شیرپوینت، حوزه هوش سازمانی را از طریق چند سرویس به کاربران خود ارائه می کند. در حوزه هوش سازمانی اکسل یا Excel BI با چند ویژگی جدید روبرو هستیم. In-Memory BI Engine که قابلیت آنالیز میلیون ها ردیف را می دهد و به صورت کامل با نرم افزار کلاینتی اکسل نیز سازگار و یکپارچه است. Power View Add-in برای اکسل و گزارشات PivotTable از جمله دیگر بهبودهای Excel BI در شیرپوینت 2013 هستند.
در حوزه اکسل سرویس، که یکی از بخش های مهم شیرپوینت بوده و هست نیز قابلیت هایی جدیدی اضافه شده که به کاربران و برنامه نویسان در استفاده بهتر و سریعتر از قابلیت های هوش سازمانی مایکروسافت کمک می کند. از جمله این قابلیت های جدید می توان به بهبودهایی در مشاهده داده ها، تعیین SQL Server Analysis Service مورد نظر از سوی مدیر سیستم، به روز رسانی در الگوی سایت مرکز هوش سازمانی (BI Center) در مجموعه الگوهای سایت شیرپوینت اشاره کرد.
اما یکی از بیشترین به روز رسانی ها در حوزه BI در بخش PerformancePoint Service صورت گرفته است. در ادامه کارهایی که مایکروسافت در حوزه یکپارچگی و آسان کردن دسترسی به داده های شیرپوینت از طریق برنامه های موبایل انجام داده، نمایش کامل و بدون نقص داده های داشبوردهای مدیریتی بر روی iPad یکی از جدیدترین امکاناتی است که مایکروسافت به مجموعه PerformancePoint افزوده است. همچنین در این حوزه، یک قابلیت بسیار کاربردی به نام Dashboard Migration اضافه شده که به کاربران این امکان را می دهد که تمام یک داشبورد مدیریتی از جمله صفحات aspx آن را به یک کاربر یا سرور یا مجموعه سایت دیگر منتقل کنند، علاوه بر این امکان، با استفاده از قابلیت هایی که به powershell افزوده شده امکان انتقال داده ها بین داشبوردها نیز به وجود آمده است.
در حوزه هوش سازمانی، یکی از جدیدترین دستاوردهای مایکروسافت که در شیرپونت 2010 معرفی شد، Visio Service بود. در شیرپوینت 2013 نیز بهبودهایی هر چند اندک در حوزه Visio Service اتفاق افتاده از جمله افزایش حجم کش که به صورت یک تنظیم در Central Administration درآمده است، اضافه کردن دستورات جدید مختص Visio به powershell و پشتیبانی از توضیحات (comment) بر روی اشکال visio.
امکانات بیشتر و راه توسعه در شیرپوینت 2013
در مقالات دیگری، به زوایای دیگری از حوزه برنامه نویسی در شیرپوینت 2013 خواهیم پرداخت. با وجود اینکه شیرپوینت 2013 هنوز به نسخه نهایی نرسیده، اما پرنیان پردازش پارس به عنوان برترین ارائه کننده راهکارهای مبتنی بر شیرپوینت در ایران، به سرعت در حالت مطالعه بر روی به روز رسانی برنامه ها برای ارائه در شیرپوینت 2013 است.
 

روزهای پر کار پرنیان

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

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

 

مهندسي امنيت در web application(قسمت اول)

 
به کارگيري ملاحضات امنيتي در طي چرخه زندگي نرم افزار مي تواند امنيت نهايي نرم افزار وب را افزايش دهد . در اين بخش مراحل فعاليتهاي مربوط به امنيت بيان شده و يک روش کارا و موثر در طراحي ، پياده سازي و تست ارائه گرديده است . در اين بخش روشي ارائه مي گردد که امنيت برنامه هاي کاربردي تحت وب را با يکپارچه کردن امنيت و چرخه زندگي نرم افزار بهبود بخشد . ايده اي که در اين بخش ارائه مي گردد بر مبناي صدها سناريوي مشتريان در دنياي واقعي با محدوديت ها و ملاحضات امنيتي دنياي واقعي مي باشد .
مسير اثبات
سوالاتي که در امنيت نرم افزار تحت وب مطرح مي شود عبارتند از
  • آيا راهي وجود دارد که امنيت web application را از يک روش قابل تکرار افزايش دهيم ؟
  • آيا راهي وجود دارد که شاغلين را به مهارت هاي اثبات شده امنيت نرم افزار متصل کنيم ؟
  • آيا شيوه اي وجود دارد که بتواند بر اساس پروژه يا تيم scale up يا scale down شود ؟
  • آيا روشي وجود دارد که به صورت افزايشي قابل تطبيق باشد ؟
براي اينکه بتوان به درستي به موفقيت رسيد بايد ابتدا روشهاي خطا را شناخت . در اين مقاله ابتدا يک مجموعه از شيوه هايي که به درستي عمل نمي کند بررسي خواهد شد . سپس يک شيوه موفق تر معرفي مي گردد . اين شيوه مي تواند به سادگي براي سناريوهاي مختلف مناسب سازي شده و بسط داده شود . شيوه هايي که درست کار نمي کند در صورتي که چيزي شکسته نشده است آن را تعمير نکن . مساله اين است که ممکن است چيزهايي وجود داشته باشد که کار نمي کنند و يا اينکه کارايي لازم را ندارند ولي شما از آن اطلاع نداريد .اجازه دهيد که نگاهي به برخي از شيوه هاي شکست خورده و علت شکست آنها را بررسي کنيم .
شيوه Bolt-on
فلسفه اين شيوه اين است که ابتدا چيزي را بساز که کار کند و سپس آن را اصلاح کن . اين روش احتمالا معمول ترين روش براي امنيت مي باشد و تقريبا هميشه منجر به شکست يا عدم کارايي مي شود .
نتيجه اين روش اين است که در طي چرخه توليد نرم افزار از امنيت تا پايان که معمولا فاز تست مي باشد صرف نظر کن و سپس سعي کن که اشتباهات امنيتي را که قبلا در چرخه توليد رخ داده است برطرف کن . در اين شيوه فرض بر اين است که شما امنيت کافي مورد نياز را در پايان کار مي توانيد به دست آوريد .
عيب اصلي روش blot-on اين است که برخي از تصميمات بسيار مهم طراحي که بر روي امنيت تاثير گذار مي باشد در بقيه طراحي نرم افزار اثر آبشاري دارد . در صورتي که شما تصميمات ضعيف در ابتداي طراحي بگيرد شما در آينده مجبور به انتخاب هاي ناخواسته در آينده خواهيد شد . يا مجبور مي شويد که سطح امنيت نرم افزار را تنزل دهيد و يا اينکه deadline هاي پروژه را زير پا بگذاريد . در صورتي که شما تصميمات مهم امنيتي را در پايان توليد نرم افزار بگيريد چگونه مي توانيد مطمئن شويد که شما يک نرم افزار منطبق با اهداف خود پياده سازي و تست نموده ايد ؟
شيوه Do-it-all-up-front
عکس شيوه bolt-on شيوه do-it-all-upfront مي باشد . در اين شيوه شما سعي مي کنيد با همه نگراني هاي بالقوه امنيتي را در ابتدا برخورد کنيد .
اين شيوه ممکن است در دو سناريوي مختلف دچار شکست شود . نتوانيد اين کار را در ابتدا انجام دهيد و نا اميد شده و آن را رها کنيد .
فکر کنيد که همه موارد را تحت پوشش قرار داده ايد و ديگر سراغ امنيت نرويد تا زماني که يک آسيب پذيري را در يک محصول release شده مشاهده کنيد .
با وجود اينکه انجام ملاحظات امنيتي در ابتدا يک روش عاقلانه است اما نبايد انتظار داشت که همه چيز را پوشش دهد . زيرا اولا شما همه چيز را در ابتدا نمي دانيد . مهمتر از آن اين شيوه نمي تواند تصميماتي را که شما در طي چرخه زندگي نرم افزار مي گيريد و بر روي امنيت تاثير گذار مي باشد پيش بيني کند .
شيوه Big-bang
شبيه شيوه do-it-all-in front شيوه big-bang به شيوه اي گفته مي شود که شما در يک زمان تلاش و فعاليت زيادي را براي رسيدن به همه اهداف امنيتي خود انجام مي دهيد . بسته به اينکه شما در چه زماني اين تلاش را انجام مي دهيد شما قطعا مي توانيد به يک سري اهداف امنيتي برسيد .
يک سناريوي ممکن اين است که شما امنيت را تا فاز تست به تاخير بيندازيد و در اين فاز تلاش وسيعي را جهت ايجاد امنيت بر روي زير ساختي که ملاحضات امنيتي در آن لحاظ نشده است انجام دهيد .
روش buckshot
در اين روش شما سعي مي کنيد که خوشه اي از تکنيک هاي امنيتي را در برنامه کاربردي خود به کار بريد ، با اميد به اينکه به گونه اي مديريت را انجام دهيد که به بک هدف درست برسيد . در اين روش معمولا شما مواردي مانند اينکه کجا امن مي باشد ، کجا firewall داريم ، کجا از SSL استفاده مي کنيم را مي شنويد . در اين شيوه نشان دار کردن شما نمي دانيد هدفتان چيست و تلاش ها معمولا در يک مسير اشتباه و يا بدن سود انجام مي گيرد . مواظب افرادي که در زمينه امنيت تعصب دارند و همه کار را به سرعت بر روي ابزارهاي خود به کار مي برند بدون تهديدات واقعي که بايستي با آن مقابله کنند را بدانند . امنيت بيشتر لزوما به معني امنيت خوب نمي باشد . در واقع شما ممکن است يک trade off بين قابليت استفاده ، قابليت نگهداري ، performance و امنيت داشته باشيد .
ضرورتا شما نمي توانيد به امنيتي که مي خواهيد برسيد بدون اينکه يک هدف امنيتي خاص داشته باشيد . آتش گشودن دائم (حتي با اسلحه مناسب) موجب نمي شود که شما به هدفتان برسيد . شما چيزها را خواهيد کشت ولي چه کسي مي داند آنها چه چيزي هستند
شيوه all–or–nothing
در اين شيوه ممکن است شما هيچ کاري براي رسيدن به امنيت انجام نداده باشيد و حالا بخواهيد همه کار انجام دهيد . رسيدن به يک خرابي ممکن است دليلي باشد که شما بين اين دو شيوه سويچ کنيد .
روش هايي که کار مي کنند در صورتي که گذاشتن امنيت در بالاي برنامه کاربردي که در شيوه buckshot انجام شد نتايج موثري را ايجاد نمي کند چه شيوه اي کار مي کند ؟ پاسخ شيوه چرخه زندگي يا پختن امنيت در چرخه زندگي application مي باشد . با استفاده از اين روش شما امنيت را در چرخه توسعه نرم افزار به کار مي بريد به جاي آنکه آن را در در ابتدا ، بعد از يک اتفاق و يا به صورت تصادفي به کار ببريد . پختن امنيت در چرخه زندگي همچنين راهي براي ايجاد تعادل آن با ساير ويژگيها نظير performance ، flexibility و يا usability مي باشد .
چگونه مي توان اين کار را انجام داد . پاسخ اين سوال به اين صورت است که کدام يک از فعاليت هاي توسعه موثر ترين نتايج را در بر خواهد داشت .
بالاترين برگشت سرمايه
چگونه شما مي فهميد که از چه تکنينکي براي شکل دادن به نرم افزار در طي چرخه توليد استفاده کنيد ؟ با بالاترين نرخ بازگشت سرمايه به عنوان يک Baseline شروع مي کنيم . هر يک از شرکت هاي توسعه نرم افزار نوعي از اينگونه فعاليت ها را مستقل از تمرکز بر روي امنيت دارند .
  • راهبردهاي طراحي
  • مرور زيرساخت و طراحي
  • مرور کد
  • تست
  • مرور استقرار
راهبردهاي طراحي شامل توصيه هايي براي تيم توسعه مي باشد . اين توصيه ها تصميمات مهندسي کليدي را در بردارد (مانند مديريت استثنائات) و شامل توصيه هايي از فروشنده نرم افزار ، سياست هاي سازمان ، تجربيات صنعتي ، الگوها و ... مي باشد . اين يک فعاليت مهم در ROI مي باشد . زيرا چهارچوب نرم افزار را مشخص مي کند .
بررسي تحليل و طراحي کاري است که شامل طراحي براي نيازمنديهاي عملياتي ، نيازمنديهاي غيرعملياتي ، نيازمنديهاي تکنيکي و محدوديتها مي باشد که مي تواند به سادگي طرح کلي بر روي white board و يا شامل چندين مستند ، دياگرام و يا ارائه باشد . يک مرور تحليل و طراحي زماني مي تواند مفيد باشد که به اندازه کافي زود انجام شود تا بتواند به برنامه کاربردي شما شکل دهد .
مرور کد يک روش کاربردي و موثر براي پيدا کردن جنبه هاي کيفيت مي باشد . با وجود اينکه در برخي از زمينه ها شما مي توانيد ابزارهاي مرور کد پيدا کنيد مزيت مرور کد دستي بررسي مفهومي کد مي باشد .
تست يک فيدبک از نرم افزار قابل اجرا مي باشد . نرم افزار يا کار مي کند و يا کار نمي کند . فهميدن اينکه آيا نرم افزار درست کار مي کند مشکل تر است . حالت ايده آل اين است که شما يک قرارداد قابل اجرا بين کد و انواع مختلف نيازمندي ها و محدوديتها داشته باشيد .
اين مي تواند به شما کمک کند که شما به دنبال چه چيزي هستيد تا بتوانيد آن را تست کنيد .
رور استقرار ارزيابي برنامه کاربردي که بر روي زيرساخت مستقر گرديده است – جايي که لاستيک بر روي جاده قرار دارد آنجا جايي است که شما تاثير تنظيمات پيکربندي در برابر رفتار در حال اجرا را مي توانيد ارزيابي کنيد . مرور استقرار آخرين نقطه بررسي محصول مي باشد .
اين فعاليتها يک نرخ بازگشت سرمايه بالا را پيشنهاد مي کند که در صورتي که به درستي انجام گيرد در طي فرايند شکل نرم افزار را تحت تاثير قرار مي دهد .
مهندسي امنيت در فعاليت هاي baseline
شما مي توانيد يک سري فعالتيهاي موثر امنيت بر مبناي نرخ بالاي ROI ايجاد نمائيد . ولي به جاي اينکه امنيت را در فعاليتهاي موجود پراکنده کنيد آن را در فعاليتهاي خود ضرب کنيد . اين کار کمک مي کند که تلاشهاي امنيتي خود را بهينه نموده و يک چهارچوب لاغر براي بهبود مهندسي خود ايجاد نمائيد . با اثر گذاري امنيت در طي چرخه توسعه شما مي توانيد مجموعه اي از فعاليتهاي مرتبط با توسعه را پوشش دهيد .
جدول 1 فعاليتهاي کليدي امنيتي را در رابطه با فعاليتهاي استاندارد توسعه نشان مي دهد .
در بخش زير يک مجموعه از فعاليتهاي اصلي براي مهندسي امنيت آمده است :
  • اهداف
  • مدل سازي تهديد
  • راهبردهاي طراحي
  • مرور زيرساخت و طراحي
  • مرور کد
  • تست
  • مرور استقرار
اين فعاليتها يکديگر را تکميل نموده و اثر هم افزايي در امنيت نرم افزار دارند .
 
 

ارتقا سرویس هاستینگ شیرپوینت فارسی

شرکت پرنیان به منظور ارائه بهتر خدمات در حوزه هاستینگ شیرپوینت فارسی، با همکاری شرکت آفتاب، اقدام به ارتقا سرورهای هاستینگ شیرپوینت فارسی نمود. این ارتقا باعث افزایش سرعت بارگزاری سایت های زون هاستینگ (هاستینگ شیرپوینت فارسی) شده است. 
 
  در بررسی های صورت گرفته توسط متخصصان پرنیان مشخص شده است که سرویس های زون دارای کیفیت و پایداری بسیار بالایی هستند و با توجه به میزبانی این سرورها در داخل کشور بستر امن و قدرتمندی برای سازمان ها فراهم نموده اند.
برخی از مشتریان زون به شرح زیر می باشند:​
 
 
 
 
 
 
 
 
 
 
 
 

3pco.org و 3pco.ir و parnianportal.com

پرنیان که تاسیس شد ما هم مثل دیگران دامنه ثبت کردیم و خوب سعی کردیم دامنه ای ثبت کنیم که هم کوتاه باشد و هم نشان دهنده نام شرکت. لذا دامنه های 3pco.org و 3pco.ir را ثبت کردیم.

Parnian Pardazesh Pars Corporation à PPP Corporation à 3P Corporation à 3PCo

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

فرض کنید شما از کسی بپرسید آدرس سایتتون؟ و در پاسخ بشنوید "تری پی کو" !!!

خلاصه تصمیم دوستان بر این شد که یک دامنه دیگر نیز ثبت کنیم که هر چند طولانی باشد ولی اعلام آن ساده باشد. و چنین شد که parnianportal.com برگزیده شد که هم  تلفظ آن ساده تر است و هم متفاوت، تفاوت هم در ظاهر و هم در نوع خدمات انشالله.

امروز دو دامنه 3pco.ir و 3pco.org را redirect کردیم  روی parnianportal.com، البته هنوز مواردی در این سایتها هست که به پورتال پرنیان منتقل نشده، که آن انجام خواهد شد به لطف دوستان.

 

راه اندازي سيستم گزارشگيري از ترافيک زون (هاستينگ شيرپوينت فارسي)

همانطور که در پست راه اندازی پورتال مشتریان پيش از اين وعده داده بوديم، سيستم گزارشگيري از ترافيک زون براي مشتريان زون (هاستينگ شيرپوينت فارسي)​ راه اندازي شد.

 مشتريان محترم زون(هاستينگ شيرپوينت فارسي)، مي‌توانند از اين پس از طريق پورتال مشتريان، از ميزان مصرف ترافيک روزانه خود آگاه شوند

 

خبرهای خوش شیرپوینت 2013 برای برنامه نویسان – قسمت اول




عنوان یک توسعه دهنده نرم افزار یکی از جنبه هایی که همیشه در نسخه جدید نرم افزارها و تکنولوژی های مرتبط با حوزه نرم افزار برایم مهم بوده، امکاناتی است که برای برنامه نویسان در نظر گرفته می شود. سالهاست که شرکت های نرم افزاری به تولید محصولاتی با قابلیت توسعه توسط برنامه نویسان مشغولند و همواره API های نرم افزاری خود را در این جهت بهبود می بخشند.
در این جنبه از محصولات نرم افزاری، فرقی نمی کند که از یک مرورگر و Add one ها و Extension هایش صحبت می کنیم یا یک پلتفرم موبایل و App های آن. در هر حال گسترش بازار و تجارت و کسب و کار شرکت های بزرگ با کیفیت و کمیت برنامه هایی که توسط برنامه نویسان خارج از این شرکت ها نوشته می شود ارتباط مستقیم دارد.
مایکروسافت همواره یکی از پیشروترین شرکت های نرم افزاری در این خصوص بوده است. اغلب محصولات مهم و اصلی مایکروسافت از سیستم عامل گرفته تا IDE تولید نرم افزار، از Mail Server گرفته تا خانواده آفیس و ... SDK های مربوط به خود را دارند که همواره با مجموعه بی نظیری از مستندات فنی شامل راهنماها و نمونه کدها برای ارائه یک پکیج کامل برای برنامه نویسان ارائه می شوند. شیرپوینت نیز به عنوان یکی از محصولات راهبردی مایکروسافت از نخستین نسخه های خود API های مختلفی جهت کار به برنامه نویسان عرضه کرده است.
اهمیت API شیرپوینت به گونه ای است که اغلب در نزد برنامه نویسان از شیرپوینت به اینگونه یاد می شود: شیرپوینت یک محصول Open Source نیست اما همه کارهایی که مایکروسافت در آن انجام می دهد از طریق یک مجموعه API قدرتمند در اختیار همه قرار گرفته است!
جالب است بدانید مجموعه DLLهایی که Object Model شیرپوینت را تشکیل می دهند، دارای توابع و کلاس هایی هستند که برنامه نویسان را قادر می سازند تا کارهایی انجام دهند که در حالت عادی و از طریق خود User Interface شیرپوینت قابل انجام نیست.
امکانات برنامه نویسی شیرپوینت 2013
در مقاله قبلی به برخی از امکانات جدیدی که در شیرپوینت 2013 اضافه شده است اشاره کردیم. در این مقاله می خواهیم در خصوص امکانات که مایکروسافت در شیرپوینت 2013 در اختیار برنامه نویسان قرار داده است صحبت کنیم.
پیش از شروع این مبحث، خوب است بدانید که به روز رسانی صورت گرفته در شیرپوینت در Object Model آن نیز اعمال می شود. به عنوان مثال هنگامی که سرویس پکی برای شیرپوینت ارائه می شود، این سرویس پک DLL های اصلی شیرپوینت نظیر Microsoft.SharePoint.dll را نیز تحت تاثیر قرار می دهد که به شکل مستقیم باعث بهبود یا افزایش توان عملکرد برای برنامه نویسان می شود. در شیرپوینت 2013 نیز مایکروسافت گام بسیار بزرگی برای هماهنگ کردن API های ارائه شده برای شیرپوینت با استانداردها و فناوری های روز برداشته که در این مقاله به آن ها اشاره کوتاهی خواهیم داشت.
برنامه نویسی ابری
در مقاله پیشین از یکی از امکانات معرفی شده برای شیرپوینت 2013 یعنی فروشگاه برنامه یا App Store برای شیرپوینت صحبت کردیم. مایکروسافت امکانات خوبی برای توسعه برنامه های مختلف ابری در شیرپوینت ایجاد کرده است. مفاهیم قدیمی و پایه ای شیرپوینت نظیر لیست ها نیز به گونه ای از App ها تبدیل شده اند. همانطور که در تصویر زیر پیداست مایکروسافت راه های مختلفی برای host کردن این برنامه ها ایجاد کرده است.
social broadcasting
ارائه و پشتیبانی از REST
شیرپوینت 2013 بخشی از قابلیت های خود را در قالب سرویس های REST ارائه داده است. به کمک این سرویس شما می توانید با فراخوانی url هایی به شکل REST، عملیاتی نظیر مشاهده، انجام عملیات CRUD (افزودن، خواندن، به روز رسانی و حذف)، همگام سازی برنامه های کلاینت با سرور شیرپوینت، نسخه بندی و ... برای برنامه نویسان ممکن می سازد.
API جدید برای Client و Server
اینکه از کدامیک از روش های ارائه شده مایکروسافت برای کار با API های شیرپوینت استفاده می کنید به سه فاکتور اساسی زیر مرتبط است:
  1. نوع برنامه
  2. مهارت های برنامه نویسی شما
  3. نوع دستگاهی که برنامه شما روی آن اجرا خواهد شد
شکل زیر API های مایکروسافت را به صورت طبقه بندی شده بر اساس نوع راهکار نمایش می دهد، همانطور که از شکل پیداست برای کار با شیرپوینت و داده های آن روش های زیر وجود دارد:
  1. Server Side Object Model: شامل DLL های سروری شیرپوینت نظیر Microsoft.SharePoint.dll است که در گذشته نیز بیشترین حجم برنامه ها با استفاده از این API ها تولید می شده است
  2. Client Object Model: شامل DLL هایی است که برای استفاده در برنامه های کلاینتی (مانند برنامه های ویندوزی یا کنسول که در کامپیوتری غیر از سرور شیرپوینت اجرا می شوند و باید با شیرپوینت و داده های آن تعامل داشته باشند) مورد استفاده قرار می گیرند.
  3. Silverlight Client Object Model: همانطور که از نامش پیداست Object Model مخصوص استفاده در برنامه های توسعه داده شده با Silverlight است. این نوع Object Model که برای اولین بار در شیرپوینت 2010 معرفی شد، در نسخه 2013 شیرپوینت بهبودهای قابل ملاحظه ای داشته است.
  4. JavaScript Object Model: مایکروسافت در شیرپوینت 2010 جاوااسکریپت های مورد استفاده در شیرپوینت را نیز به صورت دسته بندی و کلاسه شده در اختیار برنامه نویسان قرار داد تا از طریق این Object Model بتوانند با کمک کدهای جاوا اسکریپتی که در صفحات شیرپوینتی قرار می دهند با شیرپوینت و داده هایش ارتباط برقرار کنند، همانطور که در تصویر زیر پیداست از این روش برای تولید App ها برای شیرپوینت و Office می توان استفاده کرد.
  5. REST/OData Endpoints همانطور که به صورت مختصر در بخش REST توضیح داده شد در این روش با استفاده از فراخوانی url های عملیات های مختلف را در ارتباط با شیرپوینت می توان انجام داد. از این نوع API برای تولید برنامه های موبایلی در پلتفرم هایی نظیر Android و iOS می توان استفاده نمود
  6. Mobile Silverlight API : این API نیز که در شیرپوینت 2013 معرفی شده است مخصوص تولید برنامه هایی با استفاده از Silverlight برای Windows Phone پلتفرم موبایل مایکروسافت می باشد.
social broadcasting
Remote Event Receiver
یکی از راهکارهای قدیمی در مجموعه راهکارهای شیرپوینت Event Handler یا Event Receiver ها هستند. به کمک Event Handler ها می توانید رویدادهای مختلفی که در سطح لیست، آیتم های لیست یا سایت شما واقع می شوند را مدیریت کرده و برای آن ها کد بنویسید.
در شیرپوینت 2013، یک مفهوم گسترش یافته از Event Handler ها به نام Remote Event Receiver معرفی شده است که به کمک آن می توان رویدادهای مختلف در شیرپوینت را مدیریت کرد. تفاوت عمده این Event Receiver ها در این است که می توانند با component های ریموت شیرپوینت نیز کار کنند.
امکانات اجتماعی
همانطور که در مقاله "شیرپوینت 2013: نسخه جدید محصول قدرتمند مایکروسافت برای سازمان ها" که در شماره 115 زمان تحول به چاپ رسیده است اشاره شد، یکی از ویژگی هایی که به واسطه خریداری شرکت yammer (از شرکت های پیشرو در عرضه امکانات اجتماعی برای سازمان ها) در شیرپوینت 2013 دیده می شود، بهبود ویژگی های اجتماعی شیرپوینت است.
social broadcasting
سایر امکانات
مجموعه امکاناتی که در شیرپوینت 2013 برای برنامه نویسان فراهم شده است آن قدر متنوع هستند که پرداختن به آن ها و معرفی این امکانات در یک مقاله امکان پذیر نیست. در مقاله بعدی به بخش دیگری از امکانات مربوط به برنامه نویسی در شیرپوینت 2013 می پردازیم از جمله امکانات برنامه نویسی موبایل که برای اولین بار در شیرپوینت 2013 معرفی شده اند. همچنین به معرفی ابزارهای مختلف برای کار توسعه شیرپوینت و بهبودهایی که در آن ها ایجاد شده است خواهیم پرداخت.
 

آخرین نظرات

Comment RSS