نویسنده(های) اصلی | بنیاد نرمافزار آپاچی |
---|---|
توسعهدهنده(ها) | بنیاد نرمافزار آپاچی |
مخزن | |
سیستمعامل | لینوکس، ویندوز |
پلتفرم | سی++، جاوا |
مجوز | اجازهنامه آپاچی ۲٫۰ |
وبگاه |
آپاچی هارمونی یکی از محدود پیادهسازی آزاد جاوا است که متن باز است. این نرمافزار که از سوی بنیاد نرمافزار آپاچی ارائه شده، کارش را با انتشار سکوی جاوا، نسخه استاندارد ۵٫۰ آغاز نمود[۲] این نرمافزار تحت اجازهنامه آپاچی نسخهٔ دوم، منتشر شد. در اردیبهشت ۱۳۸۵ اعلام شد که هیئت مدیرهٔ آپاچی تصمیم گرفتهاست تا هارمونی را به یک پروژه سطح-بالا تبدیل نماید. هماکنون این پروژه (تا مرداد ۱۳۹۰) ۹۹٪ کیت توسعهٔ نسخهٔ استاندارد جاوا ۵ و ۹۷٪ نسخهٔ استاندارد ششم را بازنویسی نمودهاست.[۳] که تحت نسخهٔ دوم آپاچی منتشر خواهدشد.
هارمونی برای ایجاد یکپارچگی میان تمام توسعهگرانی که بر روی پیادهسازیهای آزاد جاوای موجود کار میکردند، ایجاد شد. بسیاری از توسعهدهندگان در مراحل مقدماتی انتظار داشتند تا این پروژه تحت گنو یا آپاچی باشد.[۴]
علیرغم بحثهای اولیه، تصمیم بر آن شد تا برنامه از کدهای کلاسپث گنو استفاده ننماید، که ممکن بود هارمونی را دچار اختلال در نوع اجازهنامه نماید. از این رو ارتباط میان پروژههای موجود و آزاد جاوا و هارمونی سدی حایل شد. توسعهدهندگان آپاچی مجبور بودن تا به بازنویسی کلاسهای که نیاز داشتند و از پایه بپردازند. این کار نیازمند کمک مالی بسیار زیادی از سوی شرکتهای نرمافزاری بود. البته حمایتهای شرکتهای چون ایبیام که منجر ره ایجاد بخش عظیمی از کدها شد شبهاتی را دربارهٔ هدف کار ایجاد نمود.[۵]
در ۲۱ فروردین ۱۳۸۶ بنیاد نرمافزار آپاچی نامهای را برای مدیر عامل شرکت سان میکروسیستمز، جاناتان شواترز ارسال نمود و طی آن اجازهنامهٔ کیت سازگاری فناوری سکوی جاوا، نسخه استاندارد نگارش ۵ را درخواست نمود. یک کیت آزمایشی برای تعیین سازگاری میان مشخصات جاوای استاندارد نگارش ۵ لازم بود. چراکه در مشخصات اعلامی از سوی سان این مورد ذکر شدهبود.[۶] سان بر روی وبلاگ شرکت [۱][۲] پاسخش را گذاشت؛ اجازه میدهد تا پیادهسازی آزادی از سکوی جاوا تحت اجازهنامهٔ جیپیال صورت پذیرد، به همراه کیت سازگاری آن؛ ولی همچنان اعلام نمود که این کار در اولویت کاری این شرکت قرار ندارد. این کار باعث واکنشهای به شرکت سان شد. آپاچی در سال ۱۸ آذر ۱۳۸۹ از کمیتهٔ اجرایی فرایند جمعیت جاوا کنار کشید و دلیل این کار را اعتراض نسبت به دریافت موافقت اجازهنامهٔ جاوا برای پروژهٔ هارمونی ذکر نمود.[۷][۸]
دالویک ماشینی مجازی است که توسط گوگل و برای پروژهٔ اندروید استفاده شدهاست. این ماشین، از زیر مجموعهای از کلاسهای کتابخانهٔ هارمونی آپاچی را استفاده مینماید.[۹] اگرچه دالوبک همان کلاسهای کتابخانهٔ جی۲اسایی و جی۲امایی نیست (مثلاً کلاسهای سوینگ و ایذدبیلوتی در جی۲امایی پشتیبانی نمیشود). به جای آن از کتابخانههای خود استفاده مینماید و زیر مجموعهای از هارمونی محسوب میشود[۱۰].
پروژه مزبور پیادهسازیِ قابلحملی دارد که در نتیجه توسعهٔ آن را برای بسیاری از سکوها و سیستمعامل راحتتر مینماید. تمرکز اصلی بر روی لینوکس و ویندوز است که مبتنی بر معماری ۳۲ بیتی و۶۴ بیتی است.[۱۱]
ویندوز ۲۰۰۰ | ویندوز، ایکسپی، ویندوز سرور ۲۰۰۳، ویندوز ویستا | لینوکس، سوزه، دبیان، جنتو، فدورا | فریبیاسدی | ایآیاکس | مک اواس اکس | |
---|---|---|---|---|---|---|
معماری ۳۲ (پنتیوم ۳ یا بهتر) | نه | آری | آری | نه | — | — |
معماری ۲۳-۶۴ بیتی (ایامدی ۶۴ یا اینتل ۶۴) | — | آری | آری | — | — | — |
ایتانیوم (۶۴ بیتی و ایپیاف) | — | نه | آری | — | — | — |
پاورپیسی ۳۲بیتی | — | — | نه | — | — | — |
پاورپیسی ۶۴بیتی | — | — | نه | — | نه | — |
ایبیام سری زد | — | — | نه | — | — | — |
ما با نسخهٔ استاندارد ۵ شروع کردیم، که اولین نسخهای از جاوا بود که تحت پروانهٔ متن باز قرار گرفته بود و اجازه میداد تا پیادهسازی متن بازداشتهباشد ولی این کار را با جاوای نگارش ۶ و تمام زیر مجموعههایش ادامه دادیم
«آپاچی طرح کاری برای پیادهسازی کامل جی۲ایایی را ارائه نمود؛ که نامش را هارمونی (هماهنگی) گذاشت. این کار (در این زمان) نه دربارهٔ کد نویسی که دربارهٔ شروع کاری بود. از دیابلود، تام، یاروئن و من برای همکاری دعوت به عمل آمد تا یک معماری مناسب ار ارائه نماییم»
«همهٔ این کارها، فارغ از این موضوع که اینتل با دادن برخی کدها حمایت نمود، در واقع هیچگونه همکاری مشترکی میان پروژههای نرمافزار آزاد اصلی و هارمونی اولیه وجود نداشت با چیزی که ما امروزه آن را آپاچی هارمونی میشناسیم. همه این کارهای باعث شد تا عدهای فکر کنند که هارمونی شرکتی به صورت کنسرسیوم و تحت لفافهٔ بنیاد آپاچی است نه یک کار گروهی.»
«به جای استفاده کامل از جاوا نگارش استاندارد یا موبایل، گوگل از این دو اشتقاقی ایجاد نمود. ابتدا زیر مجموعهای از بستههای جاوا را فراهم آورد. (...) مسیر اندروید حرکت در راه سایر پروژهای گوگل بود مه از جاوا استفاده میکردند، با این تفاوت که از کیت توسعهٔ جاوا بهطور کامل پشیبانی نمیکرد.»