پلتفرم (Platform) چیست؟
سلام خدمت کاربران و همراهان وبسایت کراس اپ
با یک مقاله فوق العاده مهم، جذاب و کاربردی در خدمت شما عزیزان هستیم.
عنوان مقاله و اولین خط از این مقاله را خوب به خاطر بسپارید چرا که در آینده ای نه چندان دور این عبارت نقل محافل تمامی برنامه نویسان خواهد شد.
اما اجازه دهید کمی بیشتر در مورد برنامه نویسی چندسکویی با شما صحبت کنم و شما را با این عبارت شگفت انگیز آشنا کنم.
مثالی از یک کسب و کار بزرگ
به طور خلاصه بخواهم برنامه نویسی چندسکویی را برای شما توضیح دهم می توان گفت که برنامه نویسی چندسکویی به شما این قابلیت را می دهد.
که بتوانید فقط با یک بار کد نویسی در یک محیط و با یک زبان برنامه نویسی برای چندین پلفترم مختلف خروجی بگیرید.
اجازه بدهید برای شما مثالی بزنم، قطعا همه شما عزیزان فروشگاه بزرگ دیجی کالا را می شناسید و شاید تجربه خرید از آن را داشته باشید.
فرض کنید فروشگاه دیجی کالا قصد دارد برای کسب و کار خود یک وبسایت، اپلیکیشن موبایل اندروید و اپلیکیشن موبایل ios بسازد.
در حالت عادی دیجی کالا باید چندین برنامه نویس را در زمینه های مختلف پیدا کند و به هر کدام حقوقی مجزا پرداخت کند تا بتواند کسب و کار خود را در سه پلفترم فوق پیاده سازی کند.
اجازه دهید این موضوع را بیشتر برای شما باز کنم و هر کدام از این پلفترم ها را به صورت جداگانه مورد بررسی قرار دهیم.
ما با وبسایت شروع می کنیم دیجی کالا برای اینکه بتواند وبسایت کسب و کار خود را پیاده کند.
باید به دنبال یک متخصص در طراحی وبسایت باشد که به یکی از زبان های برنامه نویسی تحت وب ( php – asp – django – spring و …) و یکی از محیط های کدنویسی (IDE) برای طراحی وبسایت مثل vsCode، phpstorm،sublime،Atom و … مسلط باشد.
بعد از این که مبحث طراحی وبسایت را به پایان رساند حالا باید به دنبال یک برنامه نویس اندروید که به یکی از زبان های برنامه نویسی اندروید مثل Android(java)-b4a-kotlin و… که در یکی از محیط های برنامه نویسی مربوط به اندروید تسلط دارد باشد.
همین موضوع برای اپلیکیشن ios نیز صدق می کند که باید دنبال یک متخصص در زمینه Swift یا objective-C برای توسعه اپلیکیشن ios خود باشد.
اما سوال مهم اینجاست که آیا یک برنامه نویس به تنهایی می تواند نیاز دیجی کالا را برطرف کند؟
پاسخ این سوال بله است و یک برنامه نویس می تواند به تنهایی کسب کار دیجی کالا را بر این سه پلفترم پیاده سازی کند.
برنامه نویسی چندسکویی
و حالا پاسخ به این سوال که برنامه نویسی چند سکویی چیست؟
برنامه نویسی چند سکویی به یک برنامه نویس اجازه می دهد که بتواند کدنوشته شده خود را همزمان برای پلتفرم های مختلف به اشتراک بگذارد و عملا با یک بار کدنویسی بتواند چندین خروجی برای پلتفرم های مختلف داشته باشد.
مثال دیجی کالا بالا را در نظر بگیرید، کسب و کار دیجی کالا می توانست به دنبال یک برنامه نویس با تخصص به عنوان مثال pwa باشد که که با یک بار کدنویسی می توانست کسب و کار دیجی کالا را روی هر 3 پلتفرم خواسته شده پیاده سازی کند.
در ادامه این مقاله قصد داریم از مزایا و معایب برنامه نویسی چند سکویی با شما سخن بگوییم، پس همچنان به خواندن ادامه دهید تا مسیر آینده خود را به سمت درست تغییر دهید.
مزایای برنامه نویسی چندسکویی
برنامه نویسی چندسکویی می تواند فواید بسیاری برای برنامه نویسان و حتی کارفرماها داشته باشد که در ادامه می توانید آن ها را مطالعه کنید.
[su_list icon=”icon: check-circle-o” icon_color=”#27c8ed”]
- کد با قابلیت استفاده مجدد: با استفاده از این ویژگی شما قادر خواهید بود که کدی را که یک بار نوشته اید مجدد استفاده کنید و به کمک همان کد برای یک پلتفرم دیگر خروجی بگیرید.
- مقرون به صرفه بودن: این مقرون به صرفه بودن می تواند هم برای برنامه نویس و هم برای کارفرما باشد برنامه نویس می تواند با یک بار نوشتن کد هزینه ای برای چند پلفترم بگیرد و کارفرما می تواند با استخدام یک برنامه نویس و پرداخت هزینه کمتر برای چندین پلفترم کسب و کار خود را به اشتراک بگذارد.
- رابط کاربری سازگار: به شما این قول را می دهم که برنامه ای که تولید می کنید برای تمامی پلتفرم ها با ظاهری کاملا مناسب و سازگار نمایش داده می شود و نگران ظاهر نخواهید بود.
- مدیریت آسان: فرض کنید می خواهید یک آپدیت برای برنامه خود ارائه کنید این اپدیت هم فقط با یک بار نوشتن برای تمامی پلتفرم ها قابل استفاده خواهد بود و نیازی به نوشتن مجزا نیست.
- بازار هدف بزرگتر: اگر شما یک فریلنسر (فریلنسر کیست؟) هستید می توانید برای خود یک بازار هدف بزرگتر برای ارائه محصولات خود داشته باشید.
انواع برنامه نویسی چندسکویی
مشابه سایر زبان های برنامه نویسی در زمینه برنامه نویسی چند سکویی نیز انواع مختلفی وجود دارد که بحث در مورد آن می پردازیم.
یکی از انواع برنامه نویسی چندسکویی می توان به تولید اپلیکیشن های موبایل اشاره کرد. تکنولوژی هایی وجود دارد که برای شما این امکان را فراهم می کند.
با استفاده از تکنلوژی های برنامه نویسی چندسکویی برای موبایل شما قادر خواهید با یک بار کدنویسی برای هر دو پلفترم android و ios فقط با یکبار کدنویسی خروجی مناسبی داشته باشید.
در زمینه برنامه نویسی دسکتاپ نیز تکنولوژی های وجود دارد که این امکان را به شما می دهد که می توانید با یک بار کدنویسی پلفترم های مختلف دسکتاپ را تحت پوشش قرار دهید.
شما می توانید با استفاده از این تکنلوژی های برنامه نویسی چندسکویی برای دسکتاپ با یک بار کدنویسی برنامه خود را برای پلتفرم های ویندوز ، مک و لینوکس خروجی بگیرید، فوق العادست مگه نه.
و در پایان و نوع سوم از برنامه نویسی چندسکویی در زمینه وب هست که بخش عمده ای از کسب و کار را در بر می گیرد تکنولوژی هایی که با یادگیری آنها می توانید وبسایت نوشته شده خود را روی بستر سرورهای ویندوز یا لینوکس به راحتی اجرا کنید.
امیدوارم که این مقاله برای شما مفید بوده باشد منتظر نظرات دلگرم کننده شما هستیم.
از پلتفرم کسب و کار که میگوییم، منظور چیست؟
پلتفرم کسب و کار عبارتی است که این روز ها زیاد به کار ميرود، با این حال ممکن است عبارت جامع و حتی نامفهومی باشد. چه کسب و کاری یک پلتفرم است و چه پلتفرمی در تعریف یک کسب و کار میگنجد؟ با ساخت اپلیکیشن و داشتن یک وب سایت، آیا کسب و کار تبدیل به یک پلتفرم میشود؟
Forbes Insight در سال ۲۰۱۷، تحقیق آماری در حوزه پلتفرم های کسب و کار انجام داد. بر اساس نتیجه این تحقیق، حدود ۳۱٪ از سازمانها، تفکر سازمانی خود را مطابق با اصول پلتفرم های کسب و کار میدانستند. به این معنی که این سازمان ها به ذی نفعان داخلی و خارجی سازمان خود امکان تعامل مستقیم با تمام اجزای سازمان را می دادند و منابع دیجیتالی خود را در دسترس استفاده آنها میگذاشتند.
شاید خیلی کسب و کار ها خود را یک پلتفرم بدانند و بر آن اساس مدل کسب و کار خود را طراحی کرده باشند، ولی آیا این کسب و کار ها حقیقتا یک کسب و کار پلتفرمی (Business Platform) هستند؟
پلتفرم چیست؟
پلتفرم، اصطلاحی است که زیاد شنیده میشود و در مورد بیزینس های زیادی به کار میرود.
کلمه پلتفرم platform به معنی سکو است. به عبارتی، هرگاه فردی برای بهتر دیده شدن یا بهتر شنیده شدن روی یک سکو میرود، آن سکو را پلتفرم می نامند.
خیلی سادهتر، پلتفرم جایگاهی برای بهتر دیده شده، بهتر شنیده شدن و رسمی کسب و کار کردن است.
اصطلاح پلتفرم زمانی که در مورد یک کسب و کار به کار میرود به توانایی آن بیزینس در ایحاد تعامل و ارزش تعاملی اشاره دارد.
مفهومی که در فیلد های متفاوت به کار رفته است!
در فناوری اطلاعات(IT)، پلتفرم ها شامل نرم افزار ها و سخت افزار هایی است که وظیفه میزبانی (host) یک اپلیکیشن یا سرویس را دارد. در این تعریف ویندوز یا لینوکس یک پلتفرم محسوب میشوند.
در صنعت، پلتفرم، چارچوبی از فناوری است که به وسیله آن فناوری های مشابه به یکدیگر اجازه ارتباط، توسعه و اجرا را می دهند. به عنوان مثال، سمند خودرویی است که بر اساس پلتفرم پژو ساخته شده است.
در کسب و کار، پلتفرم ها مدلی هستند که با تسهیل ایجاد ارتباط بین گروه های وابسته، ایجاد ارزش افزوده برای کسب و کار میکنند. پلتفرم ها شبکه ای بزرگ (network) و مقیاس پذیر (Scalable) ایجاد میکنند.
در این تعریف کسب و کار هایی مانند فیس بوک، اوبر، علی بابا و تلگرام پلتفرم محسوب میشوند. که با استفاده از تعریف پلتفرم در صنعت به سادگی میتوان پیام رسان های داخلی را مدل تجاری خارجی تلگرام دانست و یا اسنپ و دیجی کالا را طراحی شده بر اساس مشابه خارجی یعنی علی بابا و اوبر، محسوب کرد.
پلتفرم کسب و کار چه ارزش افزوده ای برای سازمان یا کاربر ایجاد میکند؟
هر پلتفرم کسب و کار، توانایی ایجاد تعامل، داد و ستد و انتقال داده بین تولیدکنندگان، مصرف کنندگان و هر ذینفع دیگری در سیستم را دارد.
کسب و کار ها با ایجاد مدل کسب و کار پلتفرمی، زیرساختی برای ایجاد ارتباط مستقیم بین اجزای سیستم خود میسازند.
از طریق این زیرساخت، چارچوب و قواعدی پلتفرم (Platform) چیست؟ بین اجزای سیستم برقرار میشود. مدیریت صحیح و بهینه تعاملات، جریان درآمدی و فرایند های سازمان را تعیین میکنند.
واضح است که پلتفرم ها از فاکتور تولید فراتر رفته اند و فاکتور ارتباط را مطرح کرده اند. via edenmccallum.com
کسب و کار، پلتفرمی که دیجیتالی شده است!
پلتفرم کسب و کار یک کسب و کار دیجیتال یا آنلاین است که مجموعه ای از توسعه دهندگان و دنبال کنندگان ( کاربران) آن را پشتیبانی و هدایت میکنند.
یک بیزینس پلتفرم با زیرساخت قوی و بیزینس مدل بی نقص خود باید بتواند توسعه دهندگان در حوزه های متفاوت و مشتریانی با سلایق و نیاز های متفاوت را جذب خود کند.
با استفاده از امکانات چنین فناوری ، افراد و سیستم ها در پلتفرم با یکدیگر ارتباط دارند و در صورت مساعد بودن تمام شرایط، این ارتباط منجر به درآمد یا فروش میشود.
پلتفرم ها باید به سامانهی آنلاین کسب و کار، یک زیربنای دیجیتال بدهند. این زیربنا شامل چارچوبی برای اجرای سیستم های تحلیل دیتا، استفاده از امکانات کلان داده (Big Data)، مدلسازی، آنالیز رفتار مشتری، پیاده سازی عوامل پیشنهاد دهنده (Recommendation Agent) و اتوماسیون است.
بیزینس پلتفرم via sloanreview.mit.edu
ساخت اپلیکیشن مناسب، طراحی وب سایت و ایجاد ارتباط بین تمامی سامانه های آنلاین، آفلاین و افراد درگیر در سیستم، لازمهی یک پلتفرم قدرتمند است.
اگر یک کسب و کار پلتفرم نباشد، چیست؟
همه ی کسب و کارها یک پلتفرم کسب و کار نیستند، یا چنین امکانی را ندارند. کسب و کار هایی که تعریف پلتفرمی ندارند را کسب و کار خطی یا پایپلاین Pipeline مینامند.
در کسب و کار های خطی، یک جریان خطی مستقیم از تولید کننده به مصرف کننده وجود دارد. این زنحیره تامین خطی، زمانی ارزش اصلی کسب و کار بود. این کسب و کار ها محصول تولید میکردند و ارتباطات در آن ها نقشی نداشت.
در پلتفرم کسب و کار، ارزش دارایی های در مقابل اهمیت ارتباطاتاش به چشم نمیآیند. via Medium.com
ساخت اپلیکیشن و ساخت وب سایت قدمی در راه ساخت یک پلتفرم
طراحی پلتفرم فقط محدود به ایجاد تکنولوژی های اساسی نمیشود. کسب و کار باید کاملا آنالیز شود و نقاط ضعف و قوت آن سنجیده شود.
روش تولید ارزش کسب و کار باید مدل سازی شود. با فهم لایه ها و ارتباط های تعاملی یک بیزینس باید دید آن کسب و کار چگونه شبکه میسازد و چطور افراد را به هم متصل میکند.
بعد از پیدا کردن مدل دقیق کسب و کار، میتوان به تکنولوژی کسب و کار پرداخت.
ساخت وب سایت با طراحی UI و UX هدف مند و حرفه ای در مرحله اول برای جذب تعامل اولیه بین کاربران سیستم قدمی مهم است.
در مرحله اول باید سامانه ای برای اتصال اجزای متفاوت سیستم طراحی شود، این سامانه باید همیشه در دسترس باشد و افراد درگیر آن بخش از سیستم از مسئول انبار تا صندوقدار باید به آن دسترسی داشته باشند. ساخت اپلیکیشن در این مرحله باید برای تمام پلتفرم های موبایلی ( اندروید و iOS) انجام شود.
درست است که طراحی پلتفرم فقط محدود به ایجاد تکنولوژی های اساسی نمیشود، ولی تکنولوژی های درگیر در یک کسب و کار تعامل و هدف پلتفرم را ممکن میکنند. به همین دلیل انتخاب بهترین گزینه برای پیاده سازی و مدیریت چنین پروژه ای اهمیت بالایی دارد.
پلتفرم چیست؟
کلمه پلتفرم (Platform) به معنای سکو است. همچنین به قسمتهایی از سکوها و سالن ها که ارتفاعشان از بقیهی سالن بالاتر است، پلتفرم میگویند.
پلتفرم سخت افزار اساسی (رایانه) و نرم افزار (سیستم عامل) است که میتوان برنامه های نرم افزاری را بر روی آن اجرا کرد.
پلتفرم
پلتفرم به گروهی از فناوری ها گفته میشود که به عنوان پایه ای که سایر برنامه ها، فرآیندها یا فناوریها بر اساس آن توسعه مییابند، مورد استفاده قرار میگیرند.
بستر رایانه ای یا بستر دیجیتالی محیطی است که در آن یک نرم افزار اجرا میشود. این ممکن است سخت افزار یا سیستم عامل (سیستم عامل)، حتی یک مرورگر وب و رابط های برنامه نویسی برنامه مرتبط یا سایر نرم افزارهای اساسی باشد، به شرطی که کد برنامه با آن اجرا شود.
برنامه های نرمافزاری عبارتند از:
Chrome ،Microsoft Word و غیره
جستجوی Google ، Facebook ، Amazon Web Services ، Amazon Marketplace ، Android ، Uber ، AirBnB ، Waze ، WeWork ، Twilio و حتی بیت کوین همه این ها پلتفرم هستند.
آیا فیس بوک یک پلتفرم است؟
بستر های نرم افزاری فیس بوک مجموعه خدمات ، ابزارها و محصولات ارائه شده توسط سرویس شبکه اجتماعی فیس بوک برای توسعه دهندگان شخص ثالث است تا برنامه ها و سرویس های خود را که به داده ها در فیس بوک دسترسی دارند ، ایجاد کنند. … بستر فعلی فیس بوک در سال ۲۰۱۰ راه اندازی شد.
پلتفرم یک مدل تجاری است که با تسهیل مبادلات بین دو یا چند گروه وابسته به یکدیگر (معمولاً مصرف کنندگان و تولیدکنندگان) ، ارزش ایجاد می کند. به منظور تحقق این مبادلات ، سیستم عامل ها از شبکه ها و شبکه های وسیع و گسترده ای از کاربران و منابع استفاده می کنند که در صورت تقاضا قابل دسترسی است.
اصطلاح “پلتفرم آنلاین” برای توصیف طیف وسیعی از خدمات موجود در اینترنت از جمله بازارها ، موتورهای جستجو ، رسانه های اجتماعی ، رسانه های محتوای خلاق ، فروشگاه های برنامه ، خدمات ارتباطی ، سیستم های پرداخت ساخته شده اند.
«اسنپ» و «دیجیکالا» را مدلهای ایرانی از پلتفرمهای تجاری «اوبر» و «آمازون» میتوان به حساب آورد.
در پلتفرم های آنلاین که امروزه مورد استفاده زیادی قرار میگیرد مشتریان و سرمایه گذاران برایشان مهم نیست، چیزی که مهم است نحوه شبکه سازی و برداشت مالی است. مثلا دیجی کالا که الان فقط محصول نمیفروشد و امروزه به عنوان شریک تجاری فروشندگان میتوانند در آن کالاهای خود را بفروشند و درصد کمی از فروش محصول را به عنوان کارمزد به دیجی کالا بپردازند.
یک سیستم عامل در پنج زمینه اصلی فعالیت میکند: ابزارهای توسعه ، خدمات اجرایی، سرویس های داده، سیستم عامل و سرویس های ابری.
ابزارهای توسعه: انواع مختلفی از ابزارهای توسعه وجود دارد. هر کدام نیازهای خاص توسعه دهندگان را برآورده میکنند. به عنوان نمونه ، Appian توسعه کد همراه با مدیریت، فرآیند قوی را ارائه میدهد. Microsoft PowerApps ویژگی های مشابهی را به اشتراک می گذارد و خدمات بزرگی مانند Office 365 ، SQL Server ، Dropbox را با هم مرتبط می کند.
برخی از کارشناسان سیستم عامل های برنامه را به بخشهای خدماتی تقسیم می کنند، در مورد ابزارهای توسعه و سیستم عامل ها و همچنین خدمات اجرایی و داده ها صحبت می کنند. ابزارهای توسعه برای توسعه برنامه ها ضروری هستند، خدمات اجرایی اطمینان می دهند که برنامه ها می توانند به روش های خاصی استفاده شوند. سرویس های داده یا ماژول های ذخیره سازی اطلاعات مورد استفاده یک برنامه را ذخیره می کنند. سیستم عامل ها محیط را قادر می سازند تا از برنامه پشتیبانی کند.
استفاده از سیستم عامل های کاربردی منجر به صحبت های زیادی در مورد روش های جدید بسته بندی برنامه های نرم افزاری به طور کلی شده است. ابتدا مجازی کردن پلتفرم (Platform) چیست؟ کارها وجود داشت که در آن سیستم عامل های برنامه اغلب در ماشین های مجازی قرار میگرفتند. مدل جدیدی به نام مجازی سازی کانتینر محبوب شده است، جایی که سیستم عامل ها در سازه های دیجیتالی بنام کانتینر قرار دارند، بر خلاف ماشین های مجازی، کانتینرها از هسته سیستم عامل مشتری مشترک هستند. این اجازه میدهد تا برای اجاره چندگانه کارآمدتر در یک سرور.
کانتینرها در حال ایجاد نوآوری در روش های ساخت و استفاده از سیستم عامل های کاربردی ، ارتقا رویکرد طراحی نرم افزارهای چابک و حتی سرویس های خرد هستند ، جایی که قسمت های مختلف پلتفرم برنامه در ظروف مختلف قرار دارد. همه اینها به مهندسین و توسعه دهندگان امروزی این امکان را می دهد تا به بهترین روش مهندسی و پشتیبانی از برنامه های نرم افزاری فکر کنند.
خدمات داده: سرویس های داده به برنامه ها در پردازش و ذخیره اطلاعات کمک می کنند. سرویس های داده در کنار سرویس های اجرایی کار می کنند و اطلاعات را با داده های ارائه شده توسط ابزار توسعه یا از طریق ابر تفسیر می کنند. Storage Spaces مایکروسافت یکی از نمونه های سرویس داده است. به عنوان مثال ، Microsoft PowerApps می تواند با سرویس داده مشترک مایکروسافت همکاری کند تا یک بستر مشترک برای نمونه های داده سازمانی ارائه دهد.
سیستم عامل ها: سیستم عامل مانند لینوکس ، ویندوز ۱۰ و ویندوز سرور ۲۰۱۶ ، منابع مختلفی را برای اجرای برنامه ها از جمله سیستم فایل، مدیریت حافظه، رابط کاربر (برای راه اندازی و مدیریت برنامه ها)، پشتیبانی چند وظیفه ای و توانایی تعامل فراهم میکند.
خدمات رایانش ابری: سرویس های ابری توابع قابل دسترسی از راه دور را ارائه می دهند. برنامه ها می توانند در نمونه های ابری مانند ماشین مجازی و کانتینرها مستقر شوند ، اما ابر همچنین خدمات بسیاری را برای پشتیبانی از عملکرد برنامه ارائه می دهد. iCloud Drive اپل نمونه ای از فضای ذخیره سازی ابری است که عکس ها ، فیلم ها ، برنامه ها و سایر اسناد را برای کاربران ذخیره و پردازش میکند. OneDrive مایکروسافت نمونه دیگری از ذخیره سازی ابری به عنوان یک سرویس است. سرویس های ابری به دلیل افزایش کاربران موبایل ، به روشی برای سیستم عامل های برنامه ، سیستم عامل های برنامه سازمانی شرکت های همراه تبدیل شده اند. با استفاده از ابر ، برنامه نویسان می توانند برنامه هایی ایجاد کنند تا بتوان از آنها در چندین دستگاه با عملکردها و داده های یکسان در دسترس قرار داد.
همه این منابع یا خدمات برای هر برنامه ای مورد نیاز نیستند و هر بستر برنامه هر پنج منبع را ارائه نمی دهد. برنامه های پیچیده تر از برنامه های ساده تر ، به سیستم عامل های گسترده تر و غنی از ویژگی برای توسعه نیاز دارند. این بدان معنی است که یک توسعه دهنده ممکن است چندین سیستم عامل برنامه را برای پشتیبانی از یک برنامه پیچیده مستقر کند. سرویس های مورد نیاز یک برنامه نیز بسته به نوع سخت افزاری که در حال اجرا است می توانند تغییر کنند. به عنوان مثال ، یک کاربر برای باز کردن برنامه از طریق لپ تاپ خود ، با یک مرورگر وب و Microsoft SQL Server برای اجرای خدمات و داده ها ، به ویندوز ۱۰ اعتماد می کند. همان برنامه ای که از طریق Microsoft Azure باز شده است ممکن است از ویندوز به عنوان یک سیستم عامل و .NET و Azure SQL برای خدمات اجرا و داده استفاده کند.
نرم افزار تخصصی آکام، اولین پلتفرم آنلاین درب های اتوماتیک شیشه ای است و تمام کسانی که درب های اتوماتیک دارند میتوانند از اپلیکیشن آکام استفاده کنند و با استفاده از این اپلیکیشن سرویس های خرید، گارانتی و خدمات انواع درب های اتوماتیک را به صورت آنلاین و در سریعترین زمان ممکن دریافت کنند.
کم کد و بی کد چیست؟ پلتفرم های low-code و no-code
در چند وقت اخیر، فعالیتهای زیادی در مورد توسعه پلتفرم برای کاربرانی با تجربه کم در توسعه نرم افزار به وجود آمده است. به اصطلاح شهروند دولوپر. همچنین تلاش شده به نیازهای توسعه دهندگان حرفه ای برای ارائه برنامه ها سخت تر و پیچیده تر در چارچوب های زمانی بسیار فشرده، سیستم عامل ها و پلتفرم های کم کد و بدون کد پاسخ داده شود. این پلتفرم های نرم افزاری به گونه ای طراحی شده اند که طراحی، ساخت و راه اندازی سریع برنامه ها بدون نگرانی از تفاوت های ظریف سیستم عامل های اساسی یا مقیاس پذیری مورد نیاز را برای افراد نسبتاً آسان می کند. در ادامه به بررسی سوال “کم کد و بی کد چیست” پرداخته ایم.
کم کد و بی کد چیست؟ راهنمایی بر پلتفرمهای توسعه نرم افزاری low-code and no-code
نرم افزارهای بی کد یا کم کد ساخته شده در محیط مبتنی بر ابر و مبتنی بر بستر های نرم افزاری به عنوان سرویس (Platform-as-a-service) و سیستم عامل های کم کد و بدون کد معمولاً از رابط های برنامه نویسی بصری استفاده می کنند. این امر مشکلات کسب و کار در توسعه را سریعتر و کاملتر از آنچه با توسعه نرم افزار سنتی انجام می شود، حل کنند. در این فرآیند، بهره وری توسعه دهندگان حرفه ای نیز افزایش خواهد یافت زیرا نگرانی آنها بابت داشتن یک زیرساخت توسعه منعطف و قابل اطمینان رفع خواهد شد.
یک تحقیق که توسط KPMG انجام شده نشان می دهد پراکندگی گسترده سازمان ها در طی سال گذشته جنبش کم کد و بدون کد (low- and no-code) را تسریع کرده است. از زمان شروع بحران COVID-19 ، تعداد مدیرانی که از مهمترین سرمایه گذاری خود؛ توسعه سیستم عامل های کم کد و بدون کد را نام برده اند، تقریباً سه برابر شده است و از 10٪ به 26٪ رسیده است. علاوه بر این، KPMG دریافته است ، 100٪ از شرکتهایی که یک سیستم توسعه کم کد و بدون کد را اجرا کرده اند ، ROI بهینه را از طریق این ابتکارات تجربه کرده اند.
گارتنر پیش بینی کرده است که طی دو سال آینده بیش از نیمی از شرکت های متوسط و بزرگ سیستم عامل های کاربردی با کد پایین را مورد استفاده قرار دهند. یک نظرسنجی از 324 سازمان توسط Unisphere Research / Information Today ،Inc، نشان داد که حداقل 76٪ این سازمانها قبلاً حداقل بخشی از نرم افزارهای خود را خارج از رویکردهای سنتی IT توسعه داده اند. این سازمانها در عرض چند هفته قادر به تغییرات بنیادی توسط این پلتفرمها در تولید و توسعه نرم افزارهای کاربردی خود هستند. تنها 17٪ گزارش می دهند که زمان تحول برای این کار بیش از سه ماه است. نظرسنجی ها نشان داده است که توسعه دهندگان غیر IT از طیف وسیعی از زمینه ها و تجارت مختلف می آیند. اما در بیشتر موارد، کاربران و توسعه دهندگان مرتبط با حوزه آی تی هستند که در بخش های مختلف کسب و کار به فعالیت مشغول بوده اند. چالش های توسعه کد کم و بدون کد شامل امنیت داده ها و مشکل در یادگیری تکنیک های مناسب برنامه نویسی و بررسی و رسیدگی به داده ها است.
کم و بدون کد (Low- and no-code) اغلب به جای یکدیگر مورد استفاده قرار می گیرند. اما تفاوت زیادی بین این دو رویکرد وجود دارد. راه حل های کم کد، معمولاً کاربرانی با کمی تجربه توسعه نرم افزار یا توسعه دهندگانی را که نیاز به ساخت سریع برنامه ها دارند، با استفاده از محیط های توسعه بصری و پیوندهای خودکار با سیستم های back-end، پایگاه داده ها، وب سرویس ها یا API ها، هدف قرار می دهند. راه حل های بدون کد، این انتزاع را یک گام جلوتر می برند و راه حلهای بکش و رها کن (Drag and Drop) بصری را معرفی می کنند که به هیچ وجه نیاز به کد نویسی ندارند.
رویکردهای کم کد و بدون کد برای استارتاپ هایی که باید سریعا نرم افزارهای خود را به بازار عرضه کنند ایده آل بوده است. اما برای شرکت های بزرگتر و مستقر نیز به همان اندازه می تواند مفید باشد. بدون کد به شما امکان می دهد ایده خود را سریعا عملی کنید و با استفاده از میزان معقولی زمان و منابع راهکار خود را پیاده سازی کنید. این رویکرد یک گزینه کم هزینه تر برای ساختن تیم داخلی از طراحان و توسعه دهندگان و یا برون سپاری آن به یک شرکت ثالث است و ایده شما را به یک محصول زنده تبدیل می کند. استفاده از بدون کد به شما امکان می دهد یک مرحله جلوتر بروید، و از حداقل زمان و منابع استفاده کنید.
Capgemini کد کم و بدون کد را به عنوان اصلی ترین روند فناوری شرکت معرفی می کند. Desiree Fraser، طراح مقیم در گزارش Capgemini، می گوید: “توسعه و تحویل نرم افزار کلاسیک، متمرکز بر کد” مبتنی بر کار دستی، زبان های برنامه نویسی پیچیده و ماه های کار طولانی، شما را فقط درگیر خواهد کرد. به لطف سیستم عامل های کم کد و بدون کد، اکنون ساخت برنامه های کاربردی بدون تلاش گسترده توسط برنامه نویسان، آسان تر از همیشه است. راز این رویکرد در استفاده از ابزارهای قدرتمند و مجهز به هوش مصنوعی است که از لیست API ها، الگوهای پیش ساخته و اتوماسیون به نحو احسن و بهینه استفاده می کنند.
در انتخاب پلتفرمهای کم-کد و بدون کد باید موضوعات زیر را مد نظر قرار داد.
بازگشت سرمایه: سرمایه گذاری در راه حل ها و رویکردهای بدون کد و بدون کد نیاز به رویکردهای جدید برای بازگشت پول دارد. به گفته دانیل فیشر، مدیر اصلی KPMG US، مهمترین معیار “سرعت نسبت به ارزش” است. از آنجا که کد کم و بدون کد یک رویکرد بلوک ساختاری را ایجاد می کند، حتی پروژه های پیچیده را قادر می سازد تا به سرعت انجام شوند. گاهی اوقات در عرض چند هفته و اغلب به صورت مرحله ای پروژه به نتیجه میرسد. بر این اساس، کم کد امکان تحویل سریع ارزشهای نفهته در پروژه را دارد. زیرا این رویکرد باعث بهبود تجربه بهتر مشتری، فراهم آوردن توانایی راه اندازی سریعتر محصولات یا خدمات جدید و یا تقویت قابلیت انطباق می شود و برنامه تحول دیجیتال یک سازمان را تسریع می کند.
تناسب زیرساخت : کم کد و بدون کد ابزار جداگانه سمت کاربر نیستند که بعداً به زیرساخت اصلی وصل شوند. این یک استراتژی سازمانی واقعی است. فیشر می گوید کد کم، اتصال منابع نرم افزاری به یکدیگر را از سیستم های اصلی به فناوری های مدرن مانند هوش مصنوعی/یادگیری ماشینی و بلاکچین آسان می کند.
امنیت : وقتی صحبت از امنیت می شود، بخشهای فناوری اطلاعات همچنان باید بیشترین توجه را داشته باشند و حفاظت هایی را برای شبکه ایجاد کنند که امنیت اجرای رویکردهای کم کد و بدون کد را تضمین می کنند. این امر مستلزم این است که برنامه های ساخته شده توسط کاربران در چارچوبی مستقر شوند که از بهترین روش ها مانند مکانیزم های تأیید اعتبار و تأیید اعتبار دو مرحله ای و خدمات رمزگذاری داده پشتیبانی می کند.
در اینجا به برخی پلتفرمهایی که توسعه نرم افزاری Low-code and no-code را ممکن می کنند اشاره می کنیم.
Salesforce
Salesforce سابقه طولانی در معرفی سیستم عاملهایی دارد که منحصراً کاربران تجاری غیر فنی را هدف گرفته اند و پیشنهادات راه حل کم کد و بدون کد آن نیز از این قاعده مستثنی نیست. Platform Salesforce Lightning Platform ، که به همراه شرکت Heroku، بخشی از پلتفرم Sales Cloud App Cloud است، یک جز اساسی در محیط مشتری 360 آن است. Lightening از پلتفرم وندور Force.com استفاده می کند و اولین بار در سال 2008 برای فعال کردن برنامه های Salesforce توسط شخص ثالث راه اندازی شد. این وندور اخیراً دو محصول اصلی Lightning Flow Builder و Mobile Publisher را منتشر کرده است. Lightning Flow Builder توسعه دهندگان را قادر می سازد تا فرایند توسعه را مبتنی بر کامپوننتها پلتفرم (Platform) چیست؟ و موتور چرخه فرایندی آن به انجام برسانند. پابلیشر نسخه موبایل نرم افزار این شرکت توسعه دهندگان را قادر می سازد تا برنامه ها را در فروشگاه های نرم افزاری اپل و گوگل منتشر کنند.
ابزارهایی مانند Flow Builder به کاربران کمک می کند تا گردش کار دیجیتال را به صورت end-to-end انجام دهند. این ابزار همچنین فرآیندها و جریان ها را خودکار می کند. این ابزار دارای کامپاننتها و سرویسهایی است که توسط کاربران قابل انتخاب و استفاده مجدد است. این شرکت همچنین کامیونیتی نرم افزاری بزرگی را پشت سر خود دارد.
OutSystems
OutSystems در حال تلاش برای افزایش تقاضا برای فرایند تحویل مستمر است. این شرکت راه حلی را ارائه می دهد که هوش مصنوعی را برای کمک به توسعه دهندگان در ساخت برنامه ها از طریق یک محیط توسعه بصری و مدل محور به کار می گیرد. دسترسی کاربران persona-based است و امکان توسعه در comfort levels را برای کاربران فراهم می کند. تفاوتی نمی کند کاربر یک مهندس نرم افزار باشند یا یک کاربر معمولی. خدمات بستر های نرم افزاری این پلتفرم، همچنین توسط AI توسعه وسیع تری می یابد و اتوماسیون امور را برای بهبود چرخه عمر برنامه فراهم می کند. این راه حل از الگوها و همچنین برنامه های قابل تنظیم استفاده می کند.
این وندور دسترسی به کتابخانه ای از اجزای UX و رابط کاربری drag-and-drop، فرآیندهای تجاری، منطق و مدل داده را برای ایجاد برنامه های بین پلتفرمی ارائه می دهد. ویژگی TrueChange OutSystems به طور خودکار وابستگی ها را بررسی می کند و فرایندهای استقرار را کنترل می کند.
Microsoft Power Apps
Microsoft Power Apps، پلت فرم توسعه کم و بدون کد از غول نرم افزار یعنی مایکروسافت است که برای کمک به کاربران در ساخت برنامه های وب و موبایل طراحی شده است. این راه حل کاملاً متناسب با طیف وسیعی از محصولات مایکروسافت است که بر روی سرویس مشترک داده ساخته شده است. این پلتفرم به داده های تجاری ذخیره شده در سیستم عامل داده (Microsoft Dataverse) یا در منابع مختلف داده آنلاین و داخلی متصل می شود (شیرپوینت ، مایکروسافت 365) ، Dynamics 365 ، SQL Server. همچنین ابزاری برای فرایند طراحی ، Power Apps Studio، برای ساخت برنامه های بومی در دسترس است. هدف مایکروسافت از این ابزار این است که ایجاد برنامه ها بیشتر شبیه ساخت یک اسلاید در پاورپوینت باشد.
Power Apps همچنین برای توانمند سازی برنامه نویسان باتجربه جهت استفاده از کد برای ایجاد داده و فراداده، استفاده از منطق سمت سرور با استفاده از توابع Azure، افزونه ها و پسوندهای گردش کار طراحی شده است. این پلتفرم همچنین توسعه دهندگان را قادر می سازد تا منطق سمت مشتری را با استفاده از JavaScript، ادغام با داده های خارجی و استفاده از موجودیت های مجازی و وب بوک ها، ایجاد اتصالات سفارشی و تعبیه برنامه ها در تجربیات وب سایت یا برنامه کاربردی شما برای ایجاد راه حل های یکپارچه به انجام برساند.
Appian
پلتفرم اتوماسیون کد کم Appian یک محیط یکپارچه است که بر روی اتوماسیون برای مدیریت فرایندهای پیچیده از جمله اتوماسیون فرآیند رباتیک، مدیریت فرایندهای تجاری، مدیریت پرونده، هوش مصنوعی و قوانین تصمیم گیری تأکید دارد. برنامه های کاربردی توسعه یافته از طریق Appian به گونه ای طراحی شده اند که می توانند سازگار با ابر باشند. آنها قادر به تلفیق با هوش مصنوعی از AWS ، Azure و Google هستند. Appian با استفاده از هوش مصنوعی به عنوان یک شتاب دهنده توسعه با کد کم، راهنمای AI در زمان واقعی را در مدل سازی فرآیند خود ارائه می دهد. این پلتفرم از یادگیری ماشینی استفاده می کند تا با انجام توصیه های خودکار، تماس و درخواست کمک از شرکتهای ثالث third-party را حذف کند.
Appian همچنین دسترسی به مجموعه داده های اتوماسیون فرایند را ممکن می کند که بر اساس داده های ناشناس از داده ها تاریخی شرکت هایی که گردش های پیچیده کاری دارند، حاصل می شود.
ServiceNow
نرم افزارهای ServiceNow و همچنین زیرساخت های اختصاصی آن در پلتفرن مربوط به آن ساخته شده است که برای توسعه دهندگان در همه سطوح باز است. این سرویس که در ابتدا مدیریت و سرویس های فناوری اطلاعات را هدف قرار می داد، یک ساختار برنامه «کلید در دست» ایجاد می کند تا توسعه انواع عملکردهای تجاری را امکان پذیر سازد. این وندور همچنین با یک راهنمای توسعه نرم افزار برای کاربران تجاری غیر فنی، هدف خود را برای کمک به آنها در تنظیم برنامه ها در بستر نرم افزاری فراتر از مرکز داده گسترش داده است. این ابزار ساخت و تولید برنامه هایی را فراهم می کند که تجربه کاربر، تجربه کارمند یا نسخه موبایل را بهبود می دهند. IntegrationHub ServiceNow ، برای پشتیبانی از ارتباطات از پیش ساخته شده با سیستم های خارجی، یک محیط ادغام بدون کد است.
پلتفرم (Platform) چیست؟
- مدیر سایت
- آبان ۲۷, ۱۳۹۸
در این مطلب قصد داریم در مورد پلتفرم مدیریت API توضیح دهیم.
پلتفرم مدیریت API
APIها در واقع نرمافزاری سازی خدمت یا محتوای یک سازمان است به نحوی که آن خدمت به سادگی و به روشی استاندارد در دسترس توسعهدهندگان لایه کاربرد یا طرف سوم قرار گرفته و آنها بتوانند مبتنی بر سرویسپایه یا محتوای سازمان تامین کننده، سرویسی ارزش افزوده برای کاربر نهایی تولید و عرضه کنند. زنجیره ارزش API در شکل زیر آمده است:
اما مساله مهمی در اینجا وجود دارد این است که باید به نحوی از پایداری، امنیت و پشتیبانی فنی و تجاری APIها اطمینان حاصل شود زیرا دیگر همه خدمات در یک مجموعه مشخص متمرکز نیست بلکه سیستمی از تعهدات میان افراد مختلف ایجاد شده است. یعنی باید امکانی فراهم شود تا APIهای تامینکنندگان مختلف محتوا و سرویس در کنار هم قرار گرفته و شرکتهای طرف ثالث، همکاران، شرکاء و حتی توسعهدهندگان آزاد بتوانند با آسودگی خیال و اطمینان از هر کدام از آنها یا ترکیبی از آنها استفاده نموده و سرویس ارزش افزوده جدید خلق نمایند. به همین ترتیب باید به نحوی از مدلهای کسبوکار مختلفی که در این زنجیره وجود دارد حمایت شود به عبارتی باید بستری برای تبدیل و تبادل ارزش میان اعضای زنجیره فراهم گردد.
برای حل این دست چالشها به وجود پلتفرمی یکپارچه برای مدیریت API ها نیاز است که بتواند کل چرخه زندگی API را مدیریت نمایند. به طور کل کارکردهای مورد انتظار از این پلتفرم عبارتند از:
- قابلیت انتشار و عرضه انواع APIها (و استانداردسازی عرضه APIها و فراخوانی آنها)
- مدیریت سطح دسترسی: احراز هویت و مجوز دسترسی سیستمها به یکدیگر و کاربران به سرویسها
- مدیریت نرخ دسترسی و اعمال سیاستها و قوانین به کارگیری
- مدیریت سرویسها شامل: پایش و نظارت (monitoring)، ثبت حداکثری وقایع (Logging)، نسخهبندی و مدیریت ویرایش، مدیریت پشتیبانی، مدیریت کاربران (Accounting)
مدیریت و توزیع بار در جهت حفظ حداکثر گذردهی - اندازهگیری و تحلیل میزان مصرف هر کدام از ذینفعان (شرکاء/ توسعهدهندگان/ کاربر نهایی) و تولید قبض
- گردآوری و تحلیل دادههای آماری کلان سیستم
در ادامه در ابتدا مروری اجمالی از تعریف و کاربردهای API ارائه خواهد شد و سپس پلتفرم مدیریت API شرح داده میشود. پیش از این مستند دو مستند دیگر با عناوین «مروری بر مفاهیم پایه در توسعه API» و «ملاحظات مطرح در توسعه API» ارائه شده است که مستند اول به تفصیل مفاهیم مطرح در حوزه API را شرح میدهد و مورد دوم الزامات لازم در طراحی APIها را بررسی مینماید. در این گزارش به بررسی پلتفرم API، ابزارهای متنباز و نحوه کاربری آنها پرداخته خواهد شد.
تعریف API و کاربردهای آن
واسط برنامه کاربردی یا API، امکان به کارگیری دادهها یا کارکردمندیهای یک سیستم نرمافزاری را فراهم مینماید. API روشی پایدار، سازمانیافته و استاندارد برای دسترسی به منابع نرمافزاری و اتصال سیستمهای مختلف نرمافزاری به یکدیگر میباشد. برای طراحی سیستمهای با کیفیت بالا و امکان به اشتراک گذاری داده و کارکردمندیها به صورت کارا، وجود API ضروری میباشد. همچنین API راهحلی برای اتصال، یکپارچهسازی و توسعه سیستمهای نرمافزاری پیچیده و بزرگ مقیاس است میباشد.
امروزه بسیاری از کسب و کارها در حوزههای مختلف صنعتی، کشاوزی، تجاری، پزشکی و… بدون نرمافزارها عملاً کاربردی ندارند و حتی انواع وسایل مختلفی که در اطراف ما قرار دارند نظیر اتومبیلها، وسایل الکترونیکی و خانگی در برگیرنده نرمافزار هستند. در حقیقت دنیای امروز دنیای نرمافزار میباشد. اما مساله اینجا است که این سیستمهای نرمافزاری عموماً مستقل از یکدیگر بوده و از طریق یک سیستم نمیتوان به سایر سیستمها دسترسی داشت. APIها امکان اتصال این سیستمها به یکدیگر را فراهم میکنند، به نحوی که با اتصال سیستمها و زیرسرویسها به یگدیگر موجب خلق سرویسهای جامعتر و با کاربردهایی فراتر شده و در نهایت قابلیت اتصال کسب و کارها به یکدیگر را میسر میکند . برای مطالعه بیشتر در خصوص تعریف API و انواع آن به گزارش مراجعه شود.
پلتفرم مدیریت API
همان طور که پیشتر ذکر شد، API دریچهای به دادهها و کارکردهای مختلف یک سازمان/سرویسدهنده است و توسعهدهندگان را قادر میسازد تا برنامههایی مرتبط با سامانههای داخلی سازمان/سرویسدهنده طراحی و پیادهسازی نمایند. همچنین APIها در تکنولوژیهای مختلف نظیر اینترنت اشیا، رایانش ابری و دادههای حجیم نقشی کلیدی را ایفا مینماید. هر چند طراحی و ارائه APIها برای دسترسی به دادهها و کارکردهای داخلی یک سازمان مزایای فراوانی از جنبههای تجاری و فنی دارد اما ضروری است که این دست از APIها از پایداری، امنیت و پشتیبانی مناسبی برخوردار باشند تا شرکتهای طرف ثالث، همکاران، شرکا و حتی توسعهدهندگان آزاد بتوانند با آسودگی خیال و اطمینان از آنها استفاده نمایند. از سوی دیگر APIها سبب ایجاد مجموعه زیادی از وابستگیها و چالشها ما بین سیستمهای ارائه دهنده API و سیستمهایی که از این APIها استفاده میکنند، میشوند که نیاز است به روشی مناسب مدیریت و حل گردد. چند نمونه از این چالشها عبارتند از:
- تغییر API تاثیر مستقیم بر علمکرد برنامههای کاربردی یا سرویس ارزشافزوده مبتنی بر آن میشود.
- سطوح دسترسی به API ها بسیار متنوع و متغییر است.
- هماهنگی میان تامین کننده API و مصرفکننده آن بسیار حیاتی است و باید تغییرات در یک API موجود و یا تولید یک API جدید به نحوی روشن و به سرعت به توسعه دهندگان و به طور کل مصرفکنندگان API اطلاع رسانی شود.
- امنیت سرویسدهی APIها و مدیریت امنیت اطلاعات در میان APIها و سرویسهای ارزش افزوده مبتنی بر آنها فوقالعاده مهم است.
- و ….
برای حل این دست چالشها نیاز به وجود پلتفرمی یکپارچه برای مدیریت API ها است تا بتواند کل چرخه زندگی API را مدیریت نمایند.
به طور کل میتوان کارکردهای مورد انتظار از این پلتفرم را به دو بخش تجاری و فنی تقسیم نمود:
- مدیریت قابلیتها و کارکردمندیهای فنی: دربرگیرنده مجموعهای از ابزارها برای کنترل و در دسترس بودن کارکردهای فنی API نظیر امنیت، کنترل سطح دسترسی، احراز هویت، کنترل نرخ دسترسی، مدیریت و توزیع بار، کارایی، نظارت و …
- مدیریت قابلیتها و کارکردمندیهای تجاری: مجموعه ابزارهای لازم برای کنترل و نمایش اینکه چه کسی و چگونه به APIها دسترسی داشته باشد. مواردی نظیر: سطوح دسترسی، تحلیل میزان استفاده توسط شرکاء/ توسعه دهندگان/ برنامههای کاربردی، مدیریت قوانین و سطوح دسترسی مختلف برای مخاطبان مختلف، وجود جریان کاری برای ثبت APIهای جدید، پشتیبانی از API و …
با وجود این دو سطح در کنار یکدیگر صحت و امنیت کارکرد API تضمین خواهد شد. علاوه بر این شرکتهای طرف سوم (۳rd party) به شکل صحیح و مناسبی از API استفاده خواهند کرد.
برخی از مشخصات کلیدی پلتفرم مدیریت API به شرح زیر است:
- مدیریت سطح دسترسی: احراز هویت و مجوزهای دسترسی سیستمها
- مدیریت نرخ دسترسی و سیاست و قوانین به کارگیری
- تحلیل و دادههای آماری
- نظارت (monitoring)
- ثبت وقایع (Logging)
- قابلیت انتشار و عرضه APIها
- مدیریت کاربران (Accounting)
- نسخه بندی
- پشتیبانی
- قابلیت محاسبه میزان مصرف و تولید قبض
ذی نفعان
پلتفرم مدیریت API دارای سه گروه اصلی از ذینفعان میباشد:
- ارائه دهندگان API: شامل توسعه دهندگان آزاد، صاحبان کسب و کارها که سرویس یا داده خود را از طرق API در اختیار مشتریان خود قرار میدهند و سازمانهای بزرگ میشود. این گروه از ذینفعان به قابلیتهایی نظیر طراحی، پیاده سازی و مدیریت APIها نیاز دارند. آنها عملاً APIها را ساخته و در اختیار دیگران قرار میدهند. شرکتهایی نظیر فیسبوک یا تویتر از همان ابتدا بر پایه API راهاندازی شدهاند. این شرکتها از همان ابتدای طراحی هر مولفه یا سرویسی به طراحی و بهروز رسانی API آن نیز فکر خواهند کرد. بنابراین در این سازمانها هنوز سیستمهای قدیمی وجود ندارد. اما شرکتهایی نیز هستند که مدل کسب و کار آنها به شکل دیگری بوده است و در چند سال اخیر به ارائه سرویس به صورت API روی آوردهاند. در این شرکتها تعداد زیادی از سیستمهای قدیمی وجود دارد که برای ارائه سرویس به خارج از سازمان مناسب نیستند و باید انبوهی از تغییرات بر روی آنها صورت گیرد. وجود APIها و پلتفرم مدیریت API برای این گروه تا حدودی میتواند مفید باشد.
- مصرفکنندگان API : این گروه از ذینفعان با بکارگیری APIها، برنامهها و راهکارهای جدیدی نظیر برنامههای کاربردی موبایل، سرویسهای ابری، تجهیزات هوشمند مورد نیاز در حوزه اینترنت اشیا و… را ایجاد میکنند. این گروه از ذینفعان با بکارگیری APIها تا حدود زیادی زمان رسیدن به بازار را کاهش میدهند زیرا میتوانند از سرویسهای آماده موجود استفاده کنند و هزینه و زمان خود را صرف تمرکز بر روی ارزش افزوده اصلی خود نمایند. این گروه نیز میتواند شامل توسعه دهندگان آزاد، صاحبان کسب و کارها و حتی سازمانهای بزرگ باشد. برای استفاده از APIها در توسعه برنامه های جدی نیاز است تا توسعه دهندگان با نحوه فراخوانی و استفاده API آشنا باشند. در برخی موارد مصرف کنندگان باید به طریقی برای دسترسی به API مورد نیاز خود و مستندات مربوطه ثبت نام نموده و حتی هزینهای را به ازای فراخوانی APIها پرداخت نمایند.
- کاربران نهایی: کاربران نهایی به طور مستقیم APIها را فراخوانی نمیکنند. بلکه آنها از یک برنامه موبایل یا وب سایت استفاده میکنند و این برنامه با استفاده از APIها طراحی شده است. این برنامه APIها را فراخوانی میکند(شکل ۱). کاربران نهایی دغدغهای در مورد APIها ندارند و حتی از فراخوانی آنها نیز مطلع نمیشوند اما APIها به طور مستقیم بر روی کارایی برنامه تاثیر خواهند داشت.
سه مورد فوق از ذینفن اصلی اکوسیستم API هستند اما در صورتی که دقیقتر و جزئیتر به مساله نگاه شود، میتوان دو ذینفع ارائه دهنده و مصرف کننده API را نیز به گروههای کوچکتری تقسیم نمود. برای مثال در بخش ارائه دهندگان API نقش توسعه دهنده API با مدیر و صاحب کسب و کار دو نقش متفاوت است و نیازمندیهای متفاوتی را نیز دربرمیگیرد. به همین شکل در بخش مصرفکنندگان API.
معماری کلان
به منظور پوشش این مشخصات کلیدی و دو دید تجاری و فنی، دو مولفه اصلی نیاز است:
API Portal: به منظور پوشش کارکردهای تجاری. در این پرتال فراهم کنندگان API لاگین نموده و APIهای خود را ثبت مینمایند. مخاطب اصلی این پرتال مصرف کنندگان APIهستند که APIهای مورد نیاز خود را در این پرتال جستجو کرده و توضیحات مربوطه را مطالعه و با نحوه کارکرد آن آشنا میشوند. در این پرتال میتوان تحلیلهای آماری از میزان استفاده، توزیع جغرافیایی، میزان رخداد خطا و … نیز ارائه نمود.
API Gateway: با هدف پیادهسازی کارکردهای فنی. این پلتفرم واسط یکسانی برای تمامی APIها ارائه میدهند همچنین مواردی نظیر مدیریت دسترسی کاربران، caching، مدیریت APIها و … را نیز برعهده دارد.
API Gateway
همان طور که در شکل زیر نمایش داده شده است، این مولفه بین منابع اصلی ارائه دهنده سرویس و برنامههای کاربردی که در انتها از APIها استفاده خواهند کرد، قرار میگیرد و سبب افزایش امنیت و کارایی خواهد شد.
برخی از کارکردهایی این مولفه عبارتند از:
- امنیت: با توجه به اینکه این مولفه در جلوی سرویس اصلی(سرویس ارائه دهنده API ) قرار میگیرد، در صورتی که به خوبی پیکربندی شود میتواند به عنوان یک سد و لایه حفاظتی عمل نموده و در افزایش امنیت ارائه دهندگان API موثر باشد.
- کارایی: افزایش کارایی API و به تبع آن برنامه کاربردی که از API استفاده میکند و کاهش زمان downtime
- انتقال داده: این مولفه میتواند به صورت یک پروکسی عمل نموده و سرویس backend را به صورت یک API استاندارد و app-friendly عرضه نماید.
- لاگ نمودن : رصد و نگهداری تمامی رخدادهایی که در سیستم اتفاق میافتد به طور خاص فراخوانیهای خاص API ها که میتواند پایه خوبی برای تحلیلهای آتی باشد.
یکی از مهمترین مزایای این مولفه این است که ارتباط بین ارائه دهنده سرویس و برنامه کاربری را از حالت درهم تنیده و مستقیم خارج نموده و به روشی استاندارد تبدیل مینماید. که این امر علاوه بر افزایش امنیت، سبب سادگی فرایند طراحی، پیادهسازی و مدیریت API میشود. از دیگر مزایای این مولفه، این است که ارائهدهندگان APIهای قدیمی، نیازی نیست که APIهای خود را به روز نمایند یا حتما به ازای انواع برنامههای کاربردی و پروتکلهای ارتباطی APIهای مختلفی را طراحی و پیادهسازی نمایند. API Gateway به عنوان یک پروکسی عمل میکند و یک نقطه مرکزی تبدیل داده را فراهم مینماید که از طریق آن کل ترافیک میتواند به فرمت یا پروتکل صحیح تغییر نماید. این ویژگی، مزایای زیادی دارد که از آن جمله میتوان به موارد زیر اشاره نمود:
- وجود یک مولفه مرکزی سبب میشود که بتوان تمامی سیاستهای لازم را بر روی تمامی APIها اعمال نمود.
- کمینه سازی کدهای لازم در لایه زیرساخت که در دراز مدت سبب کاهش هزینه نگهداری و به روز رسانی خواهد شد.
البته لازم به ذکر است که وجود یک نقطه مرکزی، همواره این پتانسیل را خواهد داشت که به یک کلوگاه تبدیل شود. برای حل این مشکل میتوان با بکارگیری معماری توزیع شده و همچنین مکانیزمهای افزایش دسترس پذیری این ریسک را به مقدار زیادی کاهش داد.
API Portal
در حالی که API Gateway اکثر کارکردهای فنی مورد نیاز پلتفرم جهت طراحی، پیادهسازی و مدیریت API را فراهم میکند، اما تمامی نیازهای توسعه دهندگان را پوشش نخواهد داد. برای مثال:
- جستجو و یافتن API مورد نیاز: مصرف کنندگان API نیاز دارند تا بتوانند به درگاهی مراجعه کرده و از طریق آن API مورد نظر خود را جستجو و بیابند.
- مستندات و آموزش: نیاز است که به ازای هر API به روشی مناسب مستندات و مثالهای مختلف در اختیار توسعه دهندگان قرار گیرد تا بتوانند با نحوه بکارگیری API آشنا شوند.
- تحلیل: وجود تحلیلهایی از میزان مصرف، کارایی و نوع استفاده از APIها هم برای ارائه دهندان و هم برای مصرف کنندگان میتواند بسیار مفید باشد.
- جامعه: فراهم نمودن امکانی که توسعه دهندگان بتوانند تجربیات خود را با یکدیگر به اشتراک گذارند.
- صدور قبض و میزان مصرف: برخی از صاحبان کسب و کار از طریق فراخوانی APIها کسب درآمد مینمایند بنابراین ضروری است تا بتوان میزان مصرف هر کاربر را به طور جداگانه رصد نمود.
پرتال API که در برخی از متون به پرتال توسعه دهندگان معروف است،
معماری مرجع IBM
شکل انتهایی معماری مرجع IBM را نمایش میدهد. در این شکل سه بخش اصلی مشاهده میشود: قابلیتهای عرضه شده برای مصرف کنندگان API، کارکردهای مربوط به بازار و قابلیتهای عرضه شده برای ارائه دهندگان API.
دیدگاه شما