سه نوع سیستم عامل که در اینترنت ملاقات می کنید
نوشته شده توسط : Mihayloo

AMarkets

یکی از داغترین موضوعات داغ این روزها موضوع سیستم عامل های اینترنتی یا سیستم عامل های موجود در اینترنت است. API های خدمات وب (رابط های برنامه نویسی برنامه) ، پروتکل های خدمات وب مانند REST و SOAP ، پلت فرم جدید فیس بوک ، تلاش های خدمات وب آمازون از جمله EC2 و S3 ، بسیاری از سیستم عامل های جدید Talking (از جمله شرکت شخصی من ، Ning). خوب ، "پلتفرم" به یک موضوع اصلی صنعت ما تبدیل می شود و بسیاری از مردم می خواهند درباره آنها فکر کنند و در مورد آنها صحبت کنند.

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

این پست تلاش من برای تفکیک و بررسی موضوع "بستر اینترنتی" با جزئیات است. من با شناسایی سه رویکرد مجزا برای ارائه یک بستر اینترنتی به آن می روم و در جایی که فکر می کنم هر یک از این سه رویکرد پیش می رود ، به جلو می پردازم. در بهترین حالت ، من ممکن است بتوانم به یک منظره جدید کمک کنم. در بدترین حالت ، امیدوارم حداقل بتوانم یک چارچوب برای بحث در آینده ارائه دهم.

بیایید با یک تعریف اساسی شروع کنیم. از یک پست قبلی:

"پلتفرم" سیستمی است که می تواند برنامه ریزی شود و بنابراین توسط توسعه دهندگان خارجی - کاربران - و از این طریق ، با نیازها و سوله های بی شماری سازگار است که توسعه دهندگان اصلی این پلتفرم نمی توانستند در نظر بگیرند ، بسیار کمتر وقت خود را برای اسکان داشتند.

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

اصطلاح کلیدی در تعریف پلتفرم "برنامه ریزی شده" است. اگر می توانید آن را برنامه ریزی کنید ، این یک بستر است. اگر نمی توانید ، پس اینطور نیست.

بنابراین ، اگر به فکر محاسبات در اینترنت هستید ، هر زمان که کسی از کلمه "پلتفرم" استفاده کند ، بپرسید: "آیا می توان آن را برنامه ریزی کرد؟"به طور خاص ، با کد نرم افزاری ارائه شده توسط کاربر؟اگر اینطور نیست ، این یک سکوی نیست ، و شما می توانید با خیال راحت هر کسی را که صحبت می کند نادیده بگیرید - این بدان معنی است که شما می توانید با اطمینان از 80 ٪+ مردم جهان که امروزه از اصطلاح "پلتفرم" استفاده می کنند ، نادیده بگیرید و نمی دانید معنی آن چیست.(بله ، سیستم عامل های سخت افزاری نیز وجود دارد! اما اینها متفاوت هستند و من در مورد آنها صحبت نمی کنم.)

اکنون ، به طور سنتی در زمینه محاسبات ، یک روش اصلی برای ارائه یک سکوی وجود داشته است. شما یک سیستم رایانه ای - یک فریم اصلی ، یک سیستم عامل رایانه ای ، یک پایگاه داده یا حتی یک سیستم ERP یا یک بازی ارائه داده اید - این شامل یک محیط برنامه نویسی است که به افراد اجازه می دهد کد را ایجاد و اجرا کنند ، به علاوه یک API که به آنها اجازه می دهد تا به سیستم اصلی بپیوندندبه طرق مختلف و کارها را انجام دهید.

به نقل از تونی استارک ، "اینگونه است که پدر این کار را کرد ، اینگونه است که آمریکا این کار را انجام می دهد ، و تاکنون بسیار خوب کار کرده است."

اینترنت - به عنوان یک سیستم توزیع گسترده بسیاری از میلیون ها رایانه اینترنتی که انواع مختلفی از نرم افزار را اجرا می کنند - چیزها را در بر می گیرد و سه مدل جدید از سکوی را ایجاد می کند که امروز در صنعت اینترنت بازی می کنید.

من این مدل های بسترهای نرم افزاری اینترنتی را "سطح" می نامم ، زیرا شما از سطح 1 به سطح 2 به سطح 3 می روید ، همانطور که توضیح می دهم ، ساخت هر نوع پلتفرم سخت تر است ، اما برای توسعه دهنده بسیار بهتر است. علاوه بر این ، همانطور که من نیز توضیح خواهم داد ، هر سطح به طور معمول سطح زیر را ابر می کند.

همانطور که این سه سطح از بستر اینترنتی را توصیف می کنم ، همانطور که می بینم ، جوانب مثبت و منفی هر سطح را طی می کنم. اما بگذارید جلوی خود را بگویم - همه آنها خوب هستند. به هیچ وجه قصد ندارم به آنچه در مورد هر کسی که درباره آن صحبت می کنم ، آرزو کنم. داشتن یک سکوی همیشه بهتر از نداشتن سکو ، دوره است. سیستم عامل ها خوب هستند ، دوره.

بنابراین ، بیایید در سه سطح سیستم عامل اینترنتی قدم بزنیم.

سطح 1 همان چیزی است که من آن را "API دسترسی" می نامم.

این نوع بستر اینترنتی است که امروزه بیشتر رایج است. این به طور معمول یک بستر ارائه شده در قالب API خدمات وب است که به طور معمول با استفاده از یک پروتکل دسترسی مانند استراحت یا صابون قابل دسترسی خواهد بود.

از نظر معماری، نکته کلیدی برای درک این نوع پلت فرم این است که کد برنامه توسعه دهنده در خارج از پلتفرم زندگی می کند - کد در جای دیگری اجرا می شود، روی سروری در جای دیگری در اینترنت که توسط توسعه دهنده ارائه شده است. برنامه برای دسترسی به داده ها و خدمات ارائه شده توسط پلتفرم - توسط سیستم اصلی - سرویس های وب API را از طریق اینترنت فراخوانی می کند و سپس برنامه به تنهایی کار خود را انجام می دهد. به همین دلیل است که من آن را "Access API" می نامم - نکته کلیدی این است که API از خارج از سیستم اصلی قابل دسترسی است.

البته این رویکردی است که توسط eBay، Paypal، API جستجوی Google (قبل از کشتن آن)، Flickr، Delicious و غیره اتخاذ شده است. Maps mashup، آنها از یک پلت فرم اینترنت سطح 1 استفاده می کنند.

این بدون شک یک چیز بسیار مفید است و اکنون به طور گسترده مؤثر است. با این حال، این واقعیت که اکثر مردم هنگام فکر کردن به "پلتفرم اینترنت" به آن فکر می کنند نیز به طور جدی گیج کننده بوده است، زیرا این یک رویکرد به شدت محدود برای ایده ارائه یک پلت فرم است.

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

در نتیجه، نمی‌بینید که بسیاری از برنامه‌ها نسبت به آنچه که فکر می‌کنید با این APIها امکان‌پذیر است ساخته می‌شوند - در واقع، جذب APIهای سرویس‌های وب چیزی نزدیک به آنچه در پلتفرم‌های گسترده قبلی دیده‌اید، نبوده است. ویندوز یا مک

با این حال، این ساده ترین نوع پلت فرم اینترنتی برای ایجاد است. به عنوان مالک پلتفرم، لازم نیست نگران اجرای کد توسعه دهنده در داخل سیستم خود باشید یا عملکرد توسعه دهنده خود را به سیستم شما تزریق کند. شما کنترل کامل بر رابط کاربری خود را حفظ می کنید. و می‌توانید تأثیر باری که اشخاص ثالث می‌توانند بر روی سیستم‌های شما داشته باشند را به شدت محدود کنید - به عنوان مثال، throttling ساده است.

به همین دلیل و از آنجا که سیستم عامل های سطح 1 هنوز هم بسیار مفید هستند ، با وجود محدودیت های آنها ، من معتقدم که ما در آینده تعداد بیشتری از آنها را خواهیم دید - که عالی است. و در واقع ، همانطور که خواهیم دید ، سیستم عامل های سطح 2 و سطح 3 به طور معمول یک API دسترسی 1 به سبک 1 را نیز در بر می گیرند.

سطح 2 همان چیزی است که من آن را "API افزونه" می نامم.

این نوع رویکرد پلتفرم است که از نظر تاریخی در برنامه های کاربردی نهایی استفاده شده است تا به توسعه دهندگان اجازه دهد عملکردهای جدیدی را ایجاد کنند که می توانند به سیستم اصلی و رابط کاربری آن تزریق یا "وصل شوند".

به عنوان مثال ، Photoshop مدت طولانی است که API پلاگین گسترده و بسیار موفق داشته است. بسیاری از افراد از API Photoshop Plup-in API برای ایجاد تن از قابلیت های جدید برای فتوشاپ اعم از پشتیبانی از قالب های پرونده جدید گرفته تا روش های جدید برای روتوش تصاویر به جلوه های ویژه جدید برای استفاده از تصاویر استفاده کرده اند.

اخیراً ، Firefox به دلیل داشتن یک افزونه عالی یا پسوند بسیار مشهور است که به اشخاص ثالث اجازه می دهد طیف گسترده ای از افزونه های Firefox را بسازند. این پلاگین ها از وبلاگ نویسی گرفته تا Dowloading تا جستجو به ترجمه زبان.

در قلمرو اینترنت ، پلت فرم اول سطح 2 که من از آن آگاه هستم پلت فرم فیس بوک است.

هنگامی که یک برنامه Facebook را تهیه می کنید ، در حال تهیه برنامه ای نیستید که به سادگی داده ها یا خدمات را از فیس بوک ترسیم کند ، همانطور که با یک پلت فرم سطح 1 می خواهید. درعوض ، شما در حال ساخت برنامه ای هستید که مانند "افزونه" به فیس بوک عمل می کند-برنامه شما به معنای واقعی کلمه در تجربه کاربر فیس بوک نشان می دهد ، غالباً به عنوان جعبه ای در وسط صفحه ای که فیس بوک در غیر این صورت تعریف می کند ، مانند نمایه کاربرصفحه

برنامه Facebook شما البته می تواند از API دسترسی 1 به سبک 1 به سبک Facebook-API خدمات وب-برای بیرون کشیدن داده ها یا خدمات از سیستم های اصلی فیس بوک استفاده کند-و در واقع این دو رویکرد به طور مرتب یکدیگر را مکمل می کنند ، زیرا بدون دسترسی API Facebook تعبیه شده شمابرنامه چیزی در مورد سیستمی که در آن تعبیه شده است نمی داند و خیلی مفید نخواهد بود.

من فکر می کنم که رویکرد پلتفرم فیس بوک ، تعداد زیادی از API های جدید افزونه اینترنتی جدید است که از اینجا به بعد برای بسیاری از خدمات اینترنتی دیگر ایجاد می شود. این عالی است: توسعه دهندگان قادر خواهند بود در آینده عملکردهای جدیدی را به بسیاری از خدمات اینترنتی دیگر تزریق کنند ، دقیقاً مانند امروز با فیس بوک.

به عنوان یک یادداشت جانبی تاریخی ، در گذشته نگر ، این همان کاری است که AOL باید در اواسط دهه 1990 انجام می داد که اولین بار وب ظاهر شد. در آن مرحله ، AOL یک پایگاه کاربر عظیم نسبت به اینترنت مصرف کننده داشت. با این حال ، AOL کاملاً بسته بود - احزاب سوم نمی توانند توابع یا برنامه های جدیدی بسازند که می توانند به AOL وصل شوند و توسط کاربران AOL مورد استفاده قرار گیرند. در نتیجه ، تمام خلاقیت و تلاش های شخص ثالث که AOL ممکن است از آن استفاده کند ، اگر آنها یک API افزونه را فراهم کرده اند-راهی برای اشخاص ثالث برای ساختن برنامه هایی که می توانند عملکردهای جدیدی را به تجربه کاربر AOL تزریق کنند-به وب تبدیل شده است. بجای. چند سال بعد ، برای کاربران AOL مشخص شد که وب جایی است که همه چیزهای جالب در آن قرار داشت ، و بعد از آنکه باند پهن به وجود آمد و مردم مجبور شدند ISP ها را به هر حال تغییر دهند ، کاربران در AOL وثیقه می کردند.

از طریق این لنز ، فیس بوک - و منظور من این به بهترین وجه ممکن است - AOL جدید است ، اما با داشتن یک سکوی ، اجرای صحیح این فرصت را نیز انجام می دهد.

از نظر فنی ، با یک رویکرد API افزونه اینترنتی مانند فیس بوک ، برنامه شخص ثالث خود در خارج از سیستم عامل زندگی می کند-از سیستم اصلی-دقیقاً همانطور که برای سیستم عامل های سطح 1 توضیح دادم. کد برنامه در جایی دیگر اجرا می شود. این بدان معناست که دقیقاً مانند سیستم عامل های سطح 1 ، کل بار ساخت و اجرای یک برنامه مبتنی بر پلت فرم سطح 2 کاملاً برای توسعه دهنده باقی مانده است-که هنوز هم نیاز به ارائه سیستم زمان اجرا ، زبان برنامه نویسی ، بانک اطلاعاتی ، سرورها ، ذخیره سازی ،شبکه ، پهنای باند و امنیت ، و چه کسی هنوز هم باید مسئولیت اجرای همه موارد فوق را به عهده بگیرد.

در نتیجه ، تخصص فنی و منابع مالی مورد نیاز توسعه دهنده پلت فرم سطح 2 - اگر او قصد ایجاد یک برنامه معنی دار را داشته باشد - بسیار بالا است.

تخصص فنی: توسعه دهنده باید یک متخصص در سطح جهانی در ساخت و استقرار برنامه های اینترنتی باشد که قطعات متحرک زیادی دارند.

منابع مالی: توسعه دهنده باید برای سرورها ، ذخیره سازی ، تجهیزات شبکه ، پهنای باند و غیره صورتحساب را پشت سر بگذارد ، که می تواند برای برنامه های معنی دار قابل توجه باشد - به خصوص اگر آنها موفق شوند.

در حقیقت ، اگر یک برنامه بر روی یک بستر سطح 2 موفق شود ، بارهای فنی و مالی بر توسعه دهنده می تواند به سرعت بسیار زیاد شود - من را به طور خلاصه با عبارت "موفقیت می کشد".

مهمتر از آن ، مشکلی برای ارائه دهنده پلتفرم نیز وجود دارد. هنگامی که یک برنامه شخص ثالث که در یک پلت فرم سطح 2 تعبیه شده است ، کاهش می یابد ، زیرا توسعه دهنده نمی داند چگونه مقیاس یا پول لازم برای انجام این کار را ندارد ، خطا به عنوان خطایی در سیستم اصلی نشان می دهد. به عنوان مثال ، هر زمان که یک برنامه فیس بوک فردی در حال کاهش باشد ، کاربران خطایی را در صفحات فیس بوک خود مشاهده می کنند - حتی اگر خود فیس بوک مسئول قطع برنامه نیست ، و حتی اگر بخواهند فیس بوک نمی تواند کاری در مورد آن خاموشی انجام دهد. کاربران عادی متوجه نخواهند شد که چه کسی مقصر است و تمایل به سرزنش سیستم اصلی - در این مورد ، فیس بوک.

به همین دلایل ، من فکر می کنم که در حالی که سیستم عامل های سطح 2 به وضوح بسیار قدرتمند هستند و برای کاربران فوق العاده هستند ، این مسائل به شدت تعداد توسعه دهندگان را که می توانند برنامه هایی را برای کسانی که توانایی فنی و منابع مالی برای ساخت اینترنت اصلی خود دارند ، محدود می کنند. به هر حال سیستم - این بخش کوچکی از افرادی است که در نهایت می خواهند در سیستم عامل های اینترنتی محبوب توسعه دهنده باشند.

خبر جالب این است که برخلاف یک بستر سطح 1 که در آن بار قرار گرفتن در معرض برنامه برای کاربران نیز در توسعه دهنده قرار می گیرد ، سیستم عامل های اینترنتی سطح 2 - همانطور که توسط فیس بوک نشان داده شده است - می توانند به طور مستقیم به توسعه دهندگان خود کمک کنند تا کاربران را برای آنها دریافت کنندبرنامه های آنهااین یکی از دلایلی است که من بستر فیس بوک را به عنوان یک موفقیت آمیز خوانده ام-Facebook مجموعه ای از مکانیسم های کاملی را ارائه می دهد که کاربران فیس بوک فقط با استفاده از فیس بوک به طور خودکار در معرض برنامه های شخص ثالث قرار می گیرند. این برای توسعه دهندگان بسیار عالی است ، و امیدوارم سیستم عامل های اینترنتی جدید سطح 2 در پای فیس بوک دنبال شوند-و نه در MySpace ، که می توانست یک بستر اینترنتی سطح 2 قبل از فیس بوک باشد اما در عوض موضع بسیار خصمانه ای نسبت به توسعه دهندگان شخص ثالث گرفت.

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

سطح 3 همان چیزی است که من آن را "محیط زمان اجرا" می نامم.

در یک بستر سطح 3 ، تفاوت عظیمی در این است که کد برنامه شخص ثالث در واقع در داخل سیستم عامل اجرا می شود-کد توسعه دهنده بارگذاری شده و بصورت آنلاین و در داخل سیستم اصلی اجرا می شود. به همین دلیل ، در مکالمه گاه به گاه من به سیستم عامل های سطح 3 به عنوان "سیستم عامل های آنلاین" مراجعه می کنم. بگذار توضیح بدهم.

علاوه بر این ، بسیار محتمل است که یک بستر سطح 3 همچنین Superset Level 2 و Level 1-یعنی یک پلت فرم سطح 3 نیز به طور معمول دارای نوعی API افزونه و نوعی API دسترسی باشد.

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

بدیهی است که این یک تفاوت بزرگ از سطح 2 است. و این تفاوت - و آنچه ممکن است ممکن شود - به همین دلیل فکر می کنم سیستم عامل های سطح 3 آینده هستند.

بیایید با یک مسئله بزرگ درست از جلو شروع کنیم: سیستم عامل های سطح 3 ساخت آن بسیار سخت تر از سیستم عامل های سطح 2 هستند.

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

برنامه های پلتفرم سطح 2 کد خود را در جای دیگر اجرا می کنند - در پایان روز ، کد در حال اجرا مشکل شخص دیگری است. با داشتن یک بستر سطح 3 ، تمام کد در حال اجرا برای همه برنامه ها مشکل شماست.

برخی از این مسائل چیست؟برای لیست چند مورد: شما باید یک محیط زمان اجرا را ارائه دهید که بتواند کد برنامه کاربردی شخص ثالث دلخواه را اجرا کند. شما باید سیستمی را برای پذیرش و مدیریت آن کد بسازید. شما باید ابزارهای توسعه یکپارچه را در رابط خود بسازید تا به افراد اجازه دهید این کد را توسعه دهند. شما باید یک محیط پایگاه داده یکپارچه مناسب برای برنامه های کاربردی برای ذخیره و پردازش داده های آنها ارائه دهید. شما باید از بسیاری جهات مختلف با امنیت برخورد کنید تا از ورود برنامه ها بر روی یکدیگر یا سیستم خود جلوگیری کنید - برای مثال ، ماسهبازی. شما باید عواقبی را که یک برنامه موفقیت آمیز و نیاز به مقیاس خودکار دارد ، پیش بینی کنید. و شما باید یک سیستم خودکار را در زیر تمام آن بسازید تا سرورها ، ذخیره سازی و قابلیت های شبکه مورد نیاز برای اجرای همه برنامه های شخص ثالث را تهیه کنید.

و احتمالاً شما همچنین باید عملکرد سطح 2-یک API پلاگین و عملکرد سطح 1 را ارائه دهید-یک API دسترسی-به طوری که برنامه های شخص ثالث پس از کار در سیستم شما می توانند کارهای مفیدی انجام دهند.

خبر بد این است که این یک تعهد فنی و تجاری واقعاً شدید است و نه برای ضعف قلب.

خبر خوب این است که آنچه ممکن است جادویی باشد.

در اینجا جادویی است: سطح تخصص فنی مورد نیاز کسی برای توسعه روی سکو شما حداقل 90 ٪ کاهش می یابد و سطح پول مورد نیاز آنها به 0 دلار کاهش می یابد. که توسعه را به جهانی از افرادی که برای آنها در یک سکوی سطح 2 یا سطح 1 توسعه می یابد ، باز می کند ، بسیار دشوار یا گران است.

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

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

رویکرد سطح 3 اینترنت اینترنت بسیار بیشتر شبیه به مدل پلت فرم معمولی صنعت کامپیوتر از سطح 2 یا 1 است.

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

من می گویم این طعنه آمیز است زیرا من کاملاً مطمئن نیستم که این ایده از کجا آمده است که برنامه ای برای اجرای روی یک پلت فرم اینترنتی به طور منطقی از سیستم عامل خارج شود ، مانند سطح 1 (سبک فلیکر) یا سطح 2 (سبک فیس بوک) سیستم عامل های اینترنتی. یعنی من مطمئن نیستم که چرا مردم در حال ساختن سیستم عامل های اینترنتی سطح 3 نیستند - از پیچیدگی فناوری درگیر.

با این حال ، من فکر می کنم این تغییر خواهد کرد ، زیرا مزایای داشتن یک پلت فرم سطح 3 - به ویژه مزایای توسعه دهنده ، و از این طریق برای این سکو - بسیار زیاد است.

پس چه کسی در حال ساخت سیستم عامل های اینترنتی سطح 3 است؟

اول ، من - از ابتدا ساخته شده است تا یک سکوی سطح 3 باشد.

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

نزدیک به 100000 برنامه کاربردی در حال حاضر روی سکوی NING وجود دارد - می توانید آنها را در Ning به شکل همه شبکه های اجتماعی و برنامه های مختلف در سیستم مشاهده کنید - و این تعداد خیلی سریع در حال رشد است.

دوم ، در یک دامنه کاملاً متفاوت ، Salesforce. com همچنین در حال استفاده از رویکرد پلتفرم سطح 3 است - Salesforce اکنون روش های کاملاً پیشرفته ای را برای کاربران و توسعه دهندگان فراهم می کند تا بتوانند کد را ایجاد و بارگذاری کنند و از پلت فرم Salesforce از یک مرورگر استفاده کنند.

Salesforce یک بستر سطح 3 را فراهم می کند زیرا به کاربران امکان می دهد Salesforce را به راحتی سفارشی کنند تا هر کاری را که لازم دارند انجام دهند ، و همچنین به دلیل قطعاً انتقاداتی را که از نظر تاریخی از فروشندگان نرم افزاری بسته بندی شده مانند Siebel دریافت کرده است ، که Salesforce را متهم می کنند به اندازه یک قطعه نرم افزار سازگار نیستندشما روی سرورهای خود نصب می کنید.

شما احتمالاً این کار را در عمل زیاد مشاهده نمی کنید - مگر اینکه شما یک کاربر Salesforce باشید - اما آنها در این زمینه کارهای بسیار جالبی انجام می دهند و نتایج خوبی کسب می کنند.

سوم ، و دوباره در یک دامنه کاملاً متفاوت ، Second Life یک سکوی سطح 3 است.

این کمی متفاوت است که زندگی دوم مشتری خود را برای دنیای سه بعدی همهجانبه خود فراهم می کند ، اما می توانید مشتری Second Life را به عنوان یک مرورگر فکر کنید ، زیرا این یک مشتری اینترنتی است که محتوا را از سرورهای Second Life ارسال می کندواد

سپس ، در Second Life ، یک محیط کامل اجرا برای اجرای کد ارائه شده توسط هر کاربر وجود دارد - می توانید مواردی را در Life Second ایجاد کنید و آنها را برای انجام هر کاری و رفتار به هر روشی که احتمالاً تصور کنید ، برنامه ریزی کنید. و می توانید با اجازه ، به کد مورد کاربر دیگر نگاه کنید و سپس یک کپی کنید یا آن را اصلاح کنید تا هر کاری را که می خواهید انجام دهید. و تمام این کد روی سرورهای Second Life اجرا می شود.

این یک بستر فوق العاده پویا است که به کاربران امکان می دهد مجموعه ای از جهان ها و اشیاء را که همه به طور کامل سفارشی شده اند ، ایجاد کنند.

چهارم ، آمازون است - من می گویم - "نوع" ساخت یک بستر اینترنتی سطح 3 با EC2 و S3. من می گویم "نوع" زیرا EC2 بیشتر از آنچه برای ایجاد هر نوع برنامه خاص برای ایجاد هر نوع کد ، بیشتر در تهیه یک محیط اجرا عمومی متمرکز است - و به همین دلیل ، هیچ API واقعی در EC2 وجود ندارد که شما نمی خواهیدفقط رایانه شخصی یا سرور خود را داشته باشید.

منظور من این است که: ning در داخل سکوی ما مجموعه کاملی از API ها را برای ساختن برنامه های شبکه های اجتماعی به راحتی فراهم می کند. Salesforce در سیستم عامل خود مجموعه کاملی از API ها را برای ساخت برنامه های کاربردی به راحتی فراهم می کند. زندگی دوم در سکوی خود مجموعه ای از API ها را برای اشیاء آسان ساخت و ساز که در زندگی دوم زندگی می کنند و در تعامل هستند فراهم می کند. EC2 ، حداقل در حال حاضر ، چنین جاه طلبی هایی ندارد و راضی است که بیشتر از یک محیط میزبانی عمومی باشد.

با این حال ، S3 و برخی از تلاش های دیگر خدمات وب آمازون را به این ترکیب اضافه کنید ، و شما به وضوح حداقل پایه و اساس یک بستر اینترنتی سطح 3 را دارید.

جالب اینجاست که ، FPS آمازون - سرویس پرداخت قابل انعطاف - خود یک بستر اینترنتی سطح 3 است. شما در واقع کدی را که به زبان برنامه نویسی تخصصی نوشته شده است - که آنها GK نامیده اند ، برای "کد دروازه بان" بارگذاری می کنید. این کد در سیستم های آنلاین آمازون اجرا می شود. این یک روش واقعاً خلاقانه برای ارائه یک سرویس عمودی بسیار انعطاف پذیر است - و دیدن آنها بسیار عالی است!

پنجمین و آخرین، Akamai، از زاویه‌ای کاملاً متفاوت، در حال رسیدگی به بسیاری از الزامات فنی یک پلت‌فرم اینترنتی سطح 3 در سرویس EdgeComputing خود است - که به مشتریان خود اجازه می‌دهد کد جاوا را در سیستم‌های Akamai آپلود کنند. کد جاوا سپس در "لبه" شبکه در سرورهای Akamai اجرا می‌شود و توزیع، مدیریت و ایمن می‌شود تا در مقیاس و بدون وارد شدن به برنامه‌های دیگر مشتریان اجرا شود.

این یک پلت فرم کامل اینترنت سطح 3 نیست و فکر نمی‌کنم Akamai استدلال کند که چنین است، اما شباهت‌های قابل‌توجهی در چالش‌های فنی وجود دارد، و مطمئناً ارزش تماشای آنچه را که آنها با رویکرد خود در طول زمان انجام می‌دهند، دارد.

این مثال‌ها یک نکته نهایی را در مورد پلتفرم‌های سطح 3 نشان می‌دهند: شما باید متعهد شوید که هرگز پلتفرم خود را نکشید. این یک تفاوت شدید است.

در مورد آن فکر کنید: برای پلتفرم سطح 1 یا سطح 2، اگر پلتفرم را بکشید، همچنان یک سیستم کارآمد و مفید دارید. اگر Google Search API از بین برود—و اینطور شد— شما همچنان جستجوی Google را دارید که هنوز برای کاربرانش مفید است. اگر پلتفرم فیس بوک کشته شود - که احتمالاً اینطور نخواهد شد - شما هنوز فیس بوک را دارید که هنوز هم به عنوان یک سرویس شبکه اجتماعی برای کاربران مفید است دقیقاً به همان روشی که قبل از معرفی پلت فرم خود بود.

از سوی دیگر، اگر پلتفرم سطح 3 را بکشید، دلیل اصلی استفاده مردم از سیستم شما یعنی توسعه و اجرای کدهای سفارشی را از بین می برید. اگر پلتفرم را از Ning حذف کنید، Ning بی فایده است—برنامه ها اجرا نمی شوند و کاربران نمی توانند کاری انجام دهند. اگر پلتفرم را از Salesforce حذف کنید، همه کاربرانی که از برنامه های سفارشی شده استفاده می کنند دیگر نمی توانند از Salesforce استفاده کنند. اگر پلتفرم را از Second Life حذف کنید، هیچ یک از اشیا یا تجربیات در دنیای مجازی دیگر کار نمی کند و کل تجربه کاربری از بین می رود.

همانطور که رئیس قدیمی من جیم بارکسدیل می گفت، این تفاوت بین مرغ و خوک در صبحانه ژامبون و تخم مرغ است. مرغ درگیر است اما خوک متعهد است.

من معتقدم که در دراز مدت، همه شرکت های معتبر اینترنتی در مقیاس بزرگ، بسترهای سطح 3 را ارائه خواهند کرد. آنهایی که این کار را نمی کنند با آنهایی که این کار را انجام می دهند قابل رقابت نخواهند بود، زیرا آنهایی که این کار را انجام می دهند به کاربران خود این توانایی را می دهند که به راحتی سفارشی سازی و برنامه ریزی کنند تا ابرنواخترهای خلاقیت را آزاد کنند.

من فکر می کنم در اینجا یک تغییر نسلی نیز وجود خواهد داشت. سیستم عامل های سطح 3 "در مرورگر توسعه می یابند" - به درستی ، "در ابر توسعه می یابد". درست مانند برنامه های اینترنتی "در مرورگر اجرا می شوند" - به درستی ، "در ابر اجرا می شوند". سرویس اینترنتی در مقیاس بزرگ به نمایندگی از کاربران توسط شرکتهای بزرگ اینترنتی و سایر نهادها اجرا می شود. من فکر می کنم بچه هایی که طی چند سال آینده از دانشگاه بیرون می آیند ، تعجب می کنند که چرا کسی تا به حال برنامه هایی را برای هر چیز دیگری غیر از "ابر" - اینترنت - ساخته است و در نهایت ، چرا آنها این کار را با هر کاری غیر از انواع سطح انجام دادند3 سیستم عامل که ما به عنوان یک صنعت در طی چند سال آینده می خواهیم بسازیم - درست مثل اینکه آنها از قبل تعجب می کنند که چرا کسی نرم افزاری را که شما نمی توانید از طریق مرورگر به آن دسترسی پیدا کنید ، اجرا می کند. اعطا می شود ، من این نکته را بیش از حد بیش از حد انجام می دهم ، اما من این کار را برای وضوح انجام می دهم ، و من کاملاً اطمینان دارم که این نکته را حفظ خواهد کرد.

سه یادداشت پایانی!

اول ، چگونه سیستم عامل های جدید آینده را خواهیم دید؟

ما عادت داریم که سیستم عامل ها را به عنوان محصولات کشتی ببینیم - شما یک رایانه یا سرور را خریداری و نصب می کنید و برنامه ای را می سازید که روی آن اجرا می شود ، یا به طور معادل آن را بارگیری و نصب یک بستر منبع باز مانند Perl یا Ruby می کنید و برنامه ای را ایجاد می کنید که آن را ایجاد می کنیدروی آن اجرا می شود.

سیستم عامل های آینده اینگونه نخواهد بود. سیستم عامل های آینده خدمات آنلاین خواهد بود که شما از طریق اینترنت به آن ضربه می زنید ، شاید با هیچ چیز بیشتر در محلی از مرورگر اجرا شود. آنها چیزی را که بارگیری می کنید ، یا حتی SDK ندارند. آنها بیشتر از نرم افزار شبیه خدمات خواهند بود. برای بیان کتاب متیو ، "شما آنها را با URL های آنها می شناسید".

دوم ، هنگام فکر کردن در مورد سیستم عامل های آینده ، بر روی برنامه های گذشته تمرکز کنید.

بسیاری از مردم از ایده برنامه هایی که در مرورگر اجرا می شوند اشتباه گرفتند زیرا وقتی به برنامه ها فکر می کردند ، به برنامه هایی که قبلاً در رایانه های شخصی خود استفاده می کردند - کلمه ، اکسل ، پاورپوینت - و نه برنامه هایی که در وب ساخته می شوند فکر می کنند—ebay ، آمازون ، salesforce. com. اکنون ، به طور کامل به نظر می رسد که پردازش کلمات ، صفحات گسترده و برنامه های ارائه نیز به وب در حال حرکت هستند - همانطور که Google نشان می دهد. اما راه قبل از این اتفاق افتاد ، وب باعث شد تا مردم انواع جدیدی از برنامه های کاربردی را ایجاد کنند که در رایانه شخصی امکان پذیر نبودند.

یک بستر جدید به طور معمول مجموعه جدیدی از برنامه ها را امکان پذیر می کند که قبلاً امکان پذیر نبودند. چرا دیگر نیاز به یک سکوی جدید وجود دارد؟

اما: این را در خاطر داشته باشید ؛به دنبال برنامه های جدید باشید که یک بستر جدید امکان پذیر است ، بر خلاف ارزیابی پلت فرم جدید بر اساس این که آیا شما می بینید کلاس های قدیمی تر برنامه ها بلافاصله روی آن ظاهر می شوند یا خیر.

سوم ، تعداد زیادی از افراد در مورد سیستم عامل ها نظر دارند ، اما افرادی که نظرات آنها مهم برنامه نویسان هستند ، و افرادی که می توانند درباره برنامه نویسان تصمیم گیری کنند.

این به نظر می رسد فوق العاده نخبه گرا است ، که من می گویم: اول ، کل سیستم عامل این است که آنها به مردم اجازه می دهند روی آنها برنامه ریزی کنند. بنابراین افرادی که برنامه نویسی نمی کنند ، یا تصمیم می گیرند در مورد برنامه نویسان برنامه نویسان بر روی آنها تصمیم بگیرند ، ارتباط زیادی با آنها ندارند و اغلب نمی دانند در مورد چه چیزی صحبت می کنند. دوم ، یادگیری نحوه برنامه ریزی بسیار آسان است - در حقیقت ، هرگز آسان تر نبوده است. بنابراین واقعاً هیچ بهانه ای برای هر کسی که می خواهد نظر داشته باشد وجود ندارد که برنامه را یاد بگیرد - در واقع ، این یک بهانه عالی برای یادگیری نحوه برنامه ریزی است!

و در این یادداشت ، من اکنون می خواهم به خواب بروم و در مورد حلقه های "برای" و اظهارات "if/سپس" آرزو کنم.

این مقاله توسط مارک آندرسن نوشته شده است و در ابتدا در وبلاگ وی ، blog. pmarca. com منتشر شده است. این مقالات احتمالاً برخی از بهترین نوشته های مربوط به مشاغل و استارتاپ ها در هر نقطه هستند اما سالها پیش از آنها خارج شده اند. آنها اکنون در این بایگانی استاتیک در اینجا زندگی می کنند.




:: بازدید از این مطلب : 30
|
امتیاز مطلب : 0
|
تعداد امتیازدهندگان : 0
|
مجموع امتیاز : 0
تاریخ انتشار : چهار شنبه 26 بهمن 1401 | نظرات ()
مطالب مرتبط با این پست
لیست
می توانید دیدگاه خود را بنویسید


نام
آدرس ایمیل
وب سایت/بلاگ
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

آپلود عکس دلخواه: