PDA

View Full Version : OSGi



saharjo0n
پنج شنبه 24 مرداد 1392, 09:46 صبح
سلام دوستان
میشه یکی راجع به OSGi توضیحی بده؟
کجاها ازش استفاده میشه؟ چطور پروژه هایی؟

javaphantom
پنج شنبه 24 مرداد 1392, 09:52 صبح
سلام دوستان
میشه یکی راجع به OSGi توضیحی بده؟
کجاها ازش استفاده میشه؟ چطور پروژه هایی؟

یک مثال می زنم که کلا کاربردش رو یاد بگیری.

دیدی توی windows می یایی yahoo messenger نصب می کنی باید یک بار reset کنی؟

خوب حالا اینکه رو در نظر بگیر. برنامه نوشتی دادی مشتری و مشتری داره باهاش کار می کنه حالا اومدی یک ورژن جدید می خوای بهش بدی باید چی کار کنی؟ خوب قبلی رو حذف باید بکنی و جدید رو جای گزین. یک جورایی مثل همون RESET کردن ویندوز بود دیگه.

حالا یکم بیا ریزتر نگاه کنیم. وقتی داره ورژن جدید می دی مشتری که کل برنامه رو از اول ننوشتی یک بخشهایی رو نوشتی یا تغییر دادی چه نیازی هست که کل برنامه STOP‌ بشه تا ورژن جدید نصب بشه.؟

ای کاش می شد حین اینکه برنامه داره کار می کنه و سرویس می ده تغییراتی که ما انجام دادیم بیاد و جای قدیمی ها بشینه و کسی هیچی نفهمه.

این آرزو رو برات OSGI برآورده کرده.

برای اینکه بشتر بریم جلو و بیشتر بشناسیمش در پست های بدی بهش می پردازیم اگر مشتری هم داشت :دی

cups_of_java
پنج شنبه 24 مرداد 1392, 10:12 صبح
سلام دوستان
میشه یکی راجع به OSGi توضیحی بده؟
کجاها ازش استفاده میشه؟ چطور پروژه هایی؟

OSGI یه چارچوبه که تعریفش کردن تا برنامه های جاوا رو بتونن در محیط اجرایی مدیریت و نگهداری کنن. بدون اینکه کل برنامه رو به روز کنن بتونن ماژول هایی (یا قسمت هایی) از اون رو کنترل کنن (مثلن stopاش کنن، به روزش کنن و ....) بنابراین میتونی اون رو مثل یه ظرف یا قالب تعریفش کنی که برنامه جاوات اگه اون قالب رو بگیره به خودش می تونه توی سروری قرار بگیره و به راحتی در محیط عملیاتی مدیریت و نگهداری بشه. این قالب شامل تعریف ماژول ها و بسته ها میشه و تعریف سرویس ها و رجیستر کردن هر کدوم از این سرویس ها و... توی برنامت!
OSGI بیشتر تو محیط هایی می تونه به کار بره که سطح استاندارد سازی بالایی هست و توی اون محیط اجرا شرکت های مختلفی برنامه هاشون رو به اجرا میزارن. ضمنن جاهایی که سرویس های cloud ارائه می کنن یا می خوان سرویس هاشون 24*7 در دسترس باشه هم ازش می تونن استفاده کنن.

sedaaghat
پنج شنبه 24 مرداد 1392, 11:35 صبح
با سلام و خسته نباشید
ما یک برنامه داریم که سیستم اتوماسیون اداری هست .کدش آماده شده .
میخاستم بپرسم میشه الان از osgi استفاده کنیم ؟ چطور؟
ممنون از توضیحاتتون!

javaphantom
پنج شنبه 24 مرداد 1392, 13:00 عصر
با سلام و خسته نباشید
ما یک برنامه داریم که سیستم اتوماسیون اداری هست .کدش آماده شده .
میخاستم بپرسم میشه الان از osgi استفاده کنیم ؟ چطور؟
ممنون از توضیحاتتون!


من می خواستم که بحث خیلی مفهومی تر بره جلو تا اینکه به پیاده سازی برسیم. اما از اونجایی که کلا همه به کد و پیاده سازی فکر می کنن بریم برای پیاده سازی کردن

قبل از همه چیز باید شما اینور به من جواب بدید که آیا اتوماسیون شما OSGI-based هست؟

راحتر بگم با تکنولوژی هایی نوشته شده است؟
آیا اتوماسیون شما ماژول بندی شده؟

برای اطلاعات بیشتر می تونید برید و فریم ورکهای معروفی که این قدرت رو به شما می دن که بتونید osgi رو وارد برنامه خودتون بکنید معروفهاشون spring dm هست و apache flex

که اولی رو من کار کردم ولی apache flex کسایی که با glassfish کار کرده باشند و توی پروژه هاشون osgi بوده باشه باید flex بدونن

sedaaghat
شنبه 26 مرداد 1392, 09:05 صبح
از توجهتون ممنونم::لبخندساده:
اگه ممکنه در مورد spring dm که گفتید در موردش کار کردید توضیح بدید، ممنون میشم!

cups_of_java
شنبه 26 مرداد 1392, 10:08 صبح
این مقاله دو قسمتی در مورد Spring DM‌ هستش
۱ (http://www.javaworld.com/javaworld/jw-03-2008/jw-03-osgi1.html)
۲ (http://www.javaworld.com/javaworld/jw-04-2008/jw-04-osgi2.html)
اما تقریبن ۴ ۵ سال پیش بود که اول استاندارد OSGI رو قسمتیش رو از روی Spring DM‌ دراوردن اما بعد کم کم کمرنگ شد اون پروژه الان اگه بگردید کمتر راجع بهش چیزی پیدا می کنید و تقریبن پروژه متوقف شده ای هستش. الان بهتره از Flix استفاده کنید.
http://felix.apache.org/
و به طور کلی در مورد WSGI:
http://www.vogella.com/articles/OSGi/article.html

نهایتن انتخاب فریم ورک WSGIتون بستگی می تونه به سروری که قراره روش کار کنید هم داشته باشه.

saharjo0n
شنبه 26 مرداد 1392, 12:27 عصر
من می خواستم که بحث خیلی مفهومی تر بره جلو تا اینکه به پیاده سازی برسیم. اما از اونجایی که کلا همه به کد و پیاده سازی فکر می کنن بریم برای پیاده سازی کردن

قبل از همه چیز باید شما اینور به من جواب بدید که آیا اتوماسیون شما OSGI-based هست؟

راحتر بگم با تکنولوژی هایی نوشته شده است؟
آیا اتوماسیون شما ماژول بندی شده؟

برای اطلاعات بیشتر می تونید برید و فریم ورکهای معروفی که این قدرت رو به شما می دن که بتونید osgi رو وارد برنامه خودتون بکنید معروفهاشون spring dm هست و apache flex

که اولی رو من کار کردم ولی apache flex کسایی که با glassfish کار کرده باشند و توی پروژه هاشون osgi بوده باشه باید flex بدونن

خب چطوری باید بفهمیم پروژمون OSGI-based هست یا نه؟
میشه راجع به ماژول بندی بیشتر توضیح بدین؟ منظورتون از ماژول بندی چیه؟

cups_of_java
شنبه 26 مرداد 1392, 19:14 عصر
پروژتون رو خودتون ننوشتین؟ خب کدش رو ببینید، مستنداتشو بخونید!
سرورتون باید OSGI پشتیبانی کنه که الان اکثرن می کنن.
اون مقاله ها رو بخونید متوجه میشید.

javaphantom
شنبه 26 مرداد 1392, 20:29 عصر
خب چطوری باید بفهمیم پروژمون OSGI-based هست یا نه؟
میشه راجع به ماژول بندی بیشتر توضیح بدین؟ منظورتون از ماژول بندی چیه؟

شما می تونید به کمک maven , spring , spring dm می تونید مطمعن باشید که می تونید osgi‌ داشته باشید.

saharjo0n
یک شنبه 27 مرداد 1392, 10:22 صبح
شما می تونید به کمک maven , spring , spring dm می تونید مطمعن باشید که می تونید osgi‌ داشته باشید.

خیلی ممنون از راهنماییتون! OSGI-based متوجه شدم
فقط هنوز نفهمیدم وقتی میگن ماژول بندی باشه یعنی چطوری باید باشه؟

javaphantom
یک شنبه 27 مرداد 1392, 10:39 صبح
خیلی ممنون از راهنماییتون! OSGI-based متوجه شدم
فقط هنوز نفهمیدم وقتی میگن ماژول بندی باشه یعنی چطوری باید باشه؟

کلی داستان می تونی در مورد modularity پیدا کنی ولی maven این امکان رو بهتون می ده توی دنیای واقعی که ماژول داشته باشید ربطی هم به osgi نداره.

در اصل maven یک project build manager i هست