{"id":7648,"date":"2020-03-05T16:43:35","date_gmt":"2020-03-05T11:13:35","guid":{"rendered":"https:\/\/www.argildx.us\/?p=7648"},"modified":"2021-06-15T12:13:02","modified_gmt":"2021-06-15T06:43:02","slug":"microservices-architecture-with-osgi-framework-modularization-aem","status":"publish","type":"post","link":"https:\/\/www.argildx.us\/technology\/microservices-architecture-with-osgi-framework-modularization-aem\/","title":{"rendered":"AEM Welcomes the Mighty Microservices"},"content":{"rendered":"\n

The idea of programmers aiming at designing applications that are modular in concept has been around the corner since the inception of application development. The concept of modularization has however evolved over decades only to deliver superior inventions.

When we talk about Adobe Experience Manager (AEM), it is also equipped to serve modular applications (meaning that it is capable of supporting a microservices architecture), thanks to OSGI (Open Source Gateway Initiative). OSGi \u201cprovides the standardized primitives that allow applications to be constructed from small, reusable and collaborative components. These components can be composed into an application and\u00a0deployed<\/em>.\u00a0This\u00a0allows easy management of bundles as they can be stopped, installed, started individually. The interdependencies are handled automatically.<\/em>\u201d (Read more<\/a>) All these work well, in fact very well.

AEM based applications are often complex, consisting multiple complex bundles that individually connect to cumbersome APIs and what not. Such architectures\u00a0seem\u00a0quite natural and obvious in AEM-based systems\u200a\u2014\u200aeverything is deployed on a single instance and as and when you want to scale horizontally, you add another instance. Simple and it works, at least in theory.

In practice, some parts of an application are used far more extensively than others and hold far more resources. Adding an entire AEM instance to scale a particular module doesn\u2019t make sense when the TCO for one instance is already high. In totality, traditional AEM applications end up being a monolith.

Comes microservices to the rescue. You scale a module stored on a different server. Where is AEM Server? Well,\u00a0it\u2019s\u00a0still there, acting as another service.

Argil DX has developed F-AI-shion Police with the above approach.

F-AI-shion Police<\/a>\u00a0<\/p>\n\n\n\n

\"F-Ai-shion
Fig: High-level architecture of F-AI-shion Police<\/figcaption><\/figure><\/div>\n\n\n\n

Here, we\u2019re invoking \u201cObject Detection Service\u201d from UI (JavaScript) of our page component.\u00a0
<\/p>\n\n\n\n

<\/p>\n\n\n\n

The\u00a0Object Detection Service in this tool reside on a server of their own. You scale according to your needs making cost-effective decisions. These architectural decisions are of great business value.<\/p>\n\n\n\n

What are your opinions on microservices for AEM? Do let us know. <\/p>\n","protected":false},"excerpt":{"rendered":"

The idea of programmers aiming at designing applications that are modular in concept has been around the corner since the inception of application development. The concept of modularization has however evolved over decades only to deliver superior inventions. When we talk about Adobe Experience Manager (AEM), it is also equipped to serve modular applications (meaning … Read more<\/a><\/p>\n","protected":false},"author":29,"featured_media":7698,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","content-type":"","footnotes":""},"categories":[66],"tags":[25,2152,2153,99],"yst_prominent_words":[534,2100,2098,2154,1300,865,2155,2101,2108,724,708,2156,2099,2158,2157,1284,725,1856,1348,884],"acf":[],"yoast_head":"\nMicroservices architecture with OSGI | Modular Applications in AEM<\/title>\n<meta name=\"description\" content=\"Microservices architecture can be easily set up in Adobe Experience Manager with the help of OSGI framework, which is part of its core.\" \/>\n<meta name=\"robots\" content=\"index, follow\" \/>\n<meta name=\"googlebot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta name=\"bingbot\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.argildx.us\/technology\/microservices-architecture-with-osgi-framework-modularization-aem\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Microservices architecture with OSGI | Modular Applications in AEM\" \/>\n<meta property=\"og:description\" content=\"Microservices architecture can be easily set up in Adobe Experience Manager with the help of OSGI framework, which is part of its core.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.argildx.us\/technology\/microservices-architecture-with-osgi-framework-modularization-aem\/\" \/>\n<meta property=\"og:site_name\" content=\"Argil DX\" \/>\n<meta property=\"article:published_time\" content=\"2020-03-05T11:13:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-06-15T06:43:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.argildx.us\/wp-content\/uploads\/2020\/03\/Optimized-hero3_2_20.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"542\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.argildx.us\/#website\",\"url\":\"https:\/\/www.argildx.us\/\",\"name\":\"Argil DX\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/www.argildx.us\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.argildx.us\/technology\/microservices-architecture-with-osgi-framework-modularization-aem\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/www.argildx.us\/wp-content\/uploads\/2020\/03\/Optimized-hero3_2_20.jpg\",\"width\":1440,\"height\":542,\"caption\":\"lit rooms in towers seen through a magnifying lens\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.argildx.us\/technology\/microservices-architecture-with-osgi-framework-modularization-aem\/#webpage\",\"url\":\"https:\/\/www.argildx.us\/technology\/microservices-architecture-with-osgi-framework-modularization-aem\/\",\"name\":\"Microservices architecture with OSGI | Modular Applications in AEM\",\"isPartOf\":{\"@id\":\"https:\/\/www.argildx.us\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.argildx.us\/technology\/microservices-architecture-with-osgi-framework-modularization-aem\/#primaryimage\"},\"datePublished\":\"2020-03-05T11:13:35+00:00\",\"dateModified\":\"2021-06-15T06:43:02+00:00\",\"author\":{\"@id\":\"https:\/\/www.argildx.us\/#\/schema\/person\/1c5b6f3f2f7218d9acb851588b98551f\"},\"description\":\"Microservices architecture can be easily set up in Adobe Experience Manager with the help of OSGI framework, which is part of its core.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.argildx.us\/technology\/microservices-architecture-with-osgi-framework-modularization-aem\/\"]}]},{\"@type\":[\"Person\"],\"@id\":\"https:\/\/www.argildx.us\/#\/schema\/person\/1c5b6f3f2f7218d9acb851588b98551f\",\"name\":\"Argil DX Media\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/www.argildx.us\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0ccbc04705942d1269cdf9f789e58484?s=96&d=mm&r=g\",\"caption\":\"Argil DX Media\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/www.argildx.us\/wp-json\/wp\/v2\/posts\/7648"}],"collection":[{"href":"https:\/\/www.argildx.us\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.argildx.us\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.argildx.us\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.argildx.us\/wp-json\/wp\/v2\/comments?post=7648"}],"version-history":[{"count":0,"href":"https:\/\/www.argildx.us\/wp-json\/wp\/v2\/posts\/7648\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.argildx.us\/wp-json\/wp\/v2\/media\/7698"}],"wp:attachment":[{"href":"https:\/\/www.argildx.us\/wp-json\/wp\/v2\/media?parent=7648"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.argildx.us\/wp-json\/wp\/v2\/categories?post=7648"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.argildx.us\/wp-json\/wp\/v2\/tags?post=7648"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.argildx.us\/wp-json\/wp\/v2\/yst_prominent_words?post=7648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}