نیوی (نرم‌افزار) کیست؟ توضیح بده.
نیوی (به انگلیسی: Newi) سرواژهٔ "NEw World Infrastructure" است. این اصطلاح به یک معماری نرم‌افزاری برای مؤلفه‌های نرم‌افزاری اشاره دارد که عمدتاً با نام «اشیای تجاری نیوی» (Newi Business Objects) شناخته می‌شود و نخستین بار اصطلاح شیء تجاری (business object) را معرفی کرد.نیوی توسط الیور سیمز در شرکت مهندسی نرم‌افزار Integrated Object Systems در انگلستان توسعه داده شد و یکی از نخستین معماری‌های پیاده‌سازی‌شده برای مؤلفه‌های نرم‌افزاری به‌شمار می‌رود.مروری بر نیوی.نیوی چیزی بود که امروزه به آن «مخزن مؤلفه» (component container) گفته می‌شود. مفاهیم مربوط به میان‌افزار نیوی را می‌توان در کتاب الیور سیمز با عنوان «اشیاء تجاری» (Business Objects)، انتشارات مک‌گرو-هیل (۱۹۹۴) یافت. با وجود عنوان کتاب، محتوای آن درباره مؤلفه‌های نرم‌افزاری بود.&lt;br&gt;جزای نیوی نسبت به زبان برنامه‌نویسی بی‌طرف بودند؛ به این معنا که یک مؤلفه نیوی می‌توانست با هر یک از زبان‌های مختلفی که توسط نیوی پشتیبانی می‌شد نوشته شود. در اوج توسعه، نیوی از مؤلفه‌های نرم‌افزاری نوشته‌شده به زبان‌های کوبول، آدا، سی، سی‌پلاس‌پلاس، رکس و جاوا پشتیبانی می‌کرد.سیستم‌عامل‌های پشتیبانی‌شده شامل Windows 3.1، ویندوز ۹۵، ویندوز NT، سه گونه مختلف از یونیکس و همچنین یک نمونه اولیه برای پشتیبانی از مؤلفه‌های نوشته‌شده با زبان RPG بود که روی AS400 اجرا می‌شد.&lt;br&gt;مؤلفه‌های نیوی با هدف قرار گرفتن به عنوان «اشیاء در مقیاس وسیع» طراحی شده بودند. نوعی زیرنوع‌سازی و فرانوع‌سازی در زیرساخت آن وجود داشت که با مکانیزم تفویض هوشمندانه پیاده‌سازی می‌شد؛ به عنوان مثال، یک مؤلفه نوشته‌شده با زبان C می‌توانست توسط یک مؤلفه نوشته‌شده با زبان Cobol زیرنوع‌سازی شود. نام (یا نوع) مؤلفه‌ها از ماژول پیاده‌سازی کد جدا بود. پیام‌ها (هم همگام و هم غیرهمگام) با استفاده از شکل خاصی از «داده‌های برچسب‌گذاری‌شده» منتقل می‌شدند (مفهمومی مشابه XML امروزی).همچنین یک سرویس اطلاع‌رسانی نیز وجود داشت. خدمات مختلف سیستمی (از جمله چهارچوب گرافیکی و زیرسیستم‌های ارتباطی) به‌صورت مؤلفه‌های نیوی پیاده‌سازی شده بودند. در سراسر این فرایند، توجه زیادی به ساده‌سازی برنامه‌نویسی مؤلفه‌های کاربردی شده بود و نیوی بسیاری از جنبه‌های فنی را برای برنامه‌نویس شفاف و آسان می‌کرد.از همان ابتدا، نیوی هم برای سامانه‌های رابط کاربری گرافیکی (GUI) در لایه کاربری و هم برای سامانه‌های سرور در لایه پشتی هدف‌گذاری شده بود. نسخه سمت کاربر دارای چهارچوب اجرایی GUI بود که به‌صورت مؤلفه‌هایی پیاده‌سازی می‌شد. مفهوم مؤلفه به‌خوبی با رابط کاربری مبتنی بر اشیا که ارائه شده بود، همخوانی داشت. به همین دلیل، طراح یا برنامه‌نویس می‌توانست از همان ساختار فنی کد برای پیاده‌سازی هر دو عملکرد تجاری در لایه کاربری و سرور استفاده کند.تاریخچه.مفهوم اولیه نیوی در سال ۱۹۸۹ شکل گرفت، زمانی که الیور سیمز، که در آن زمان برای شرکت IBM کار می‌کرد، نیاز به زیرساختی را دید که در آن بتوان یک مفهوم تجاری واقعی (فرآیند یا موجودیت) را به‌صورت یک ماژول نرم‌افزاری پیاده‌سازی کرد که بتوان آن را به یک سامانه در حال اجرا اضافه کرد. برنامه‌های کاربردی از طریق ترکیب مجموعه‌ای مناسب از ماژول‌ها ساخته می‌شدند. توسعه این مفهوم توسط IBM بریتانیا و با همکاری شرکت Softwright (یک شرکت نرم‌افزاری سفارشی‌ساز در بریتانیا) تامین مالی شد.&lt;br&gt;پس از چند نمونهٔ اولیه موفق و یک نسخهٔ تولیدی اولیه برای AS400، یک سرمایه‌گذاری مشترک با نام «سامانه‌های شیء یکپارچه» (Integrated Object Systems یا به اختصار IOS) در سال ۱۹۹۳ برای بهره‌برداری از این مفهوم تأسیس شد. نخستین نسخهٔ نیوی در سال ۱۹۹۴ معرفی و عرضه گردید.&lt;br&gt;در اوایل سال ۱۹۹۶، شرکت «سامانه‌های شیء یکپارچه» (IOS) توسط شرکت SSA ‏(System Software Associates, Inc) خریداری شد که پتانسیل چشمگیری در نیوی می‌دید. این نرم‌افزار درون SSA به‌ویژه از لحاظ قابلیت‌های پشتیبان (back-end) توسعهٔ قابل توجهی یافت و همچنین عملکرد ارتباطی آن به یک محصول Corba تجاری (COTS) منتقل شد که امکان ارتباط «wet string» را در حالی که مدل برنامه‌نویسی نیوی و تعامل اجزای به‌هم‌پیوسته را حفظ می‌کرد، فراهم می‌ساخت. ابزارها نیز به طور قابل توجهی گسترش یافتند. علاوه بر این، SSA یک شکل اولیه و اختصاصی از خدمات وب، مبتنی بر نیوی بازتوسعه‌شده را معرفی کرد که «درگاه‌های معنایی پیام» (Semantic Message Gateways یا SMG) نام داشت.&lt;br&gt;در سال ۱۹۹۸، به دلایلی غیر از پایهٔ فناوری، شرکت SSA ناچار به تعدیل گستردهٔ نیرو شد؛ توسعهٔ نیوی متوقف و سپس رها شد و تیم توسعه (حدود ۴۰ نفر در آمریکا و بریتانیا) پراکنده گردید.