baru "dhong" what OSGi is all about

Amsterdam servercluster in its own rack
Image via Wikipedia

OSGi…. comparison-nya dengan WebSphere , Tomcat, JBoss

Mereka mengepak sebuah "Application Server " beserta libraries-nya yang versinya udah ditentuin. Mulai dari servlet, JSP, JSF, ESB, JMS, JMX, dll.

Dengan begitu, file WAR "harusnya" sih kecil (dan pada kasus2 simple tetep kecil). Kenyataannya file WAR tetep banyak yang gede2, karena banyak library yang dibutuhkan yang belum tentu ada di paket AppServer yang awal, atau ada versi baru. Ato bahkan bisa konflik.

OSGi development on the other hand, membebaskan kita untuk menentukan "platform" sendiri. Mau pake CXF, Spring, JSF dll. versi berapa aja terserah. Deploynya bukan dalam bentuk 1 WAR gede, tapi dalam bentuk beberapa war+jar+cfg kecil2. JAR untuk library. WAR untuk webapp (dalam sebuah aplikasi OSGi bisa ada banyak WAR, masing2 WAR bisa punya servlet sendiri2, namun antar WAR bisa berkomunikasi via OSGi). Dan CFG untuk mengkonfigurasi service2 di dalam WAR/JAR tsb.

Kalo deploy di Application Server tradisionil tinggal copy ke "deploy"…. di OSGi pun sama persis. Baik menggunakan superlightweight (Pax-Runner + DirInstaller, ini cara yang dipakai ModuleFusion), moderately lightweight (Apache ServiceMix Kernel), maupun full-fledged (SpringSource dm Server).

Bedanya adalah berapa banyak library yang di-bootstrap oleh "underlying platform" sebelum "platform kita sendiri".

Misalnya kalo kita hanya mengandalkan Pax-Runner + DirInstaller, maka loggingnya harus di-specify sendiri, terus Spring, dan lain-lain kudu di-setting juga. Bukan setting sih, lebih tepatnya drag&drop JAR-JAR untuk library2 tersebut.

Kalo pake OSGi container yang agak lengkap, misalnya Apache ServiceMix Kernel. Ini sebenarnya konfigurasinya nyaris sama dengan yang barusan tadi, karena platform dasarnya tetap Apache Felix + "DirInstaller" bawaan ServiceMix (bertugas untuk autodeploy dan auto-undeploy). Bedanya adalah ServiceMix ini sudah punya bawaan logging, administration console, dan juga Spring dll. ServiceMix Kernel sudah cukup lengkap dengan size hanya 5,3 MB (ServiceMix Kernel lho, bukan paket lengkap yang beserta NMR untuk support JBI). Kecil sekali bukan untuk sebuah application server??

Yang lebih luengkap lagi adalah SpringSource dm Server. Ini bisa dibilang isinya adalah semacam ServiceMix Kernel plus web-based admin interface, web support/WAR built-in (JSP, JSF, dll.). Makanya ukurannya juga rada gede (32.4 MB).

Similar Posts