{"id":61767,"date":"2016-11-14T13:00:54","date_gmt":"2016-11-14T11:00:54","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/?p=61767"},"modified":"2016-11-13T13:24:22","modified_gmt":"2016-11-13T11:24:22","slug":"microservices-vs-soa","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html","title":{"rendered":"Microservices vs. SOA"},"content":{"rendered":"<p>These days, there are a lot of discussions about Microservices at the workplace or in tech talks. And if you have worked with SOA before, you might wonder what is the difference between SOA and Microservices. Here is a comparison of both architectures in details.<\/p>\n<h2>SOA<\/h2>\n<p>A\u00a0<strong>Service Oriented Architecture<\/strong>\u00a0is a software architecture pattern, which application components provide services to other components via a communications protocol over a\u00a0network. The communication can involve either simple data passing or it could involve two or more services coordinating connecting services to each other. Services (such as RESTful Web services) carry out some small functions, such as validating an order, activating account, or providing shopping cart services.<\/p>\n<p>There are 2 main roles in SOA, a service-provider and a service-consumer. A software agent may play both roles. The Consumer Layer is the point where consumers\u00a0(human users, other services or third parties)\u00a0interact with the SOA and Provider Layer consists of all the services defined within the SOA. The following figure shows a quick view of an SOA architecture.<\/p>\n<p><figure id=\"attachment_61768\" aria-describedby=\"caption-attachment-61768\" style=\"width: 400px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-11-33-12-am.png\"><img decoding=\"async\" class=\"size-full wp-image-61768\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-11-33-12-am.png\" alt=\"Figure 1: SOA architecture\" width=\"400\" height=\"309\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-11-33-12-am.png 400w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-11-33-12-am-300x232.png 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><figcaption id=\"caption-attachment-61768\" class=\"wp-caption-text\">Figure 1: SOA architecture<\/figcaption><\/figure><\/p>\n<p>Enterprise Service Bus (ESB) is a style of the integration architecture that allows communication via a common communication bus that consists of a variety of point-to-point connections between providers and consumers. In addition to above, the data storage is shared within all services in SOA.<\/p>\n<p>Now, let\u2019s take a look at Microservices architecture, then compare both together.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<h2>Microservices Architecture<\/h2>\n<p>Microservices is a software architecture pattern in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs.<\/p>\n<p>Microservices must be a real need in the system architecture as it could be designed wrongly. It means a service should be independently deployable, or be able to shut-down a service when is not required in the system and that should not have any impact on other services. The following figure shows a quick view of a Microservices architecture.<\/p>\n<p><figure id=\"attachment_61769\" aria-describedby=\"caption-attachment-61769\" style=\"width: 400px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-11-33-39-am.png\"><img decoding=\"async\" class=\"size-full wp-image-61769\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-11-33-39-am.png\" alt=\"Figure 2: Microservice architecture\" width=\"400\" height=\"270\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-11-33-39-am.png 400w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-11-33-39-am-300x203.png 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><figcaption id=\"caption-attachment-61769\" class=\"wp-caption-text\">Figure 2: Microservice architecture<\/figcaption><\/figure><\/p>\n<p>As shown above, each service\u00a0has its own database or a database is shared between a few of microservices.<\/p>\n<h2>Microservices Architecture vs. SOA<\/h2>\n<p>As discussed above, both architectures\u00a0have similar pros and cons and some differences. In both architectures, each service \u2013 unlike a monolithic architecture \u2013 has a certain responsibility. Thus,\u00a0services can be developed in various technology stacks which bring\u00a0technology diversity into the development team.\u00a0The development of services can be\u00a0organized\u00a0within\u00a0multiple teams, however, each team needs to know about the common communication mechanism in SOA.<\/p>\n<p>In microservices,\u00a0services can operate and be deployed independently\u00a0of other services, unlike SOA. So, it is easier to deploy new versions of services frequently\u00a0or\u00a0scale a\u00a0service independently.<\/p>\n<p>In SOA, ESB could become a single point of failure which impacts the entire application. Since every service is communicating through ESB, if one of the\u00a0services slow down,\u00a0could cause the ESB to be clogged up with requests for that service.\u00a0On the other hand, microservices are much better in fault tolerance.\u00a0For example, if there is a memory leak in one microservice then only that microservice will be affected. The other microservices will continue to handle requests.<\/p>\n<p>In both architectures, developers must deal with the complexity of architecture and a distributed system.\u00a0Developers must implement the inter-service communication mechanism between microservices (if the\u00a0message queue is used in Microservice architectures) or within ESB and services.<\/p>\n<p>Unit Testing<strong>\u00a0<\/strong>is more difficult as developers must mock the communication mechanism in tests.\u00a0Due to many different service types,\u00a0deployment and operational complexity\u00a0are\u00a0a concern in both architectures.<\/p>\n<p>In SOA, services share the data storage (as shown in Figure 1) while each service can have an independent data storage in microservices. Sharing data storage has its pros and cons. for example, the data can be re-used by between all services while it brings dependency and tightly coupling within services.<\/p>\n<p>Last but not least, the main difference between SOA and microservices lies in the size and scope. Microservice has to be significantly smaller than what SOA tends to be and mainly is a small(er) independently deployable service. On the other hand, an SOA can be either a monolith or it can be comprised of multiple microservices.<\/p>\n<p><figure id=\"attachment_61770\" aria-describedby=\"caption-attachment-61770\" style=\"width: 400px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-12-36-46-pm.png\"><img decoding=\"async\" class=\"size-full wp-image-61770\" src=\"http:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-12-36-46-pm.png\" alt=\"Figure 3: SOA and Microservices\" width=\"400\" height=\"276\" srcset=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-12-36-46-pm.png 400w, https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2016\/11\/screen-shot-2016-05-29-at-12-36-46-pm-300x207.png 300w\" sizes=\"(max-width: 400px) 100vw, 400px\" \/><\/a><figcaption id=\"caption-attachment-61770\" class=\"wp-caption-text\">Figure 3: SOA and Microservices<\/figcaption><\/figure><\/p>\n<p>It is also important that SOA has been designed and implemented in various styles which could be different with what it is described here,\u00a0usually due to a focus on ESBs which is used to integrate monolithic applications.<\/p>\n<div class=\"attribution\">\n<table>\n<tbody>\n<tr>\n<td><span class=\"reference\">Reference: <\/span><\/td>\n<td><a href=\"https:\/\/imamiri.com\/2016\/10\/31\/microservices-vs-soa-2\/\">Microservices vs. SOA<\/a> from our <a href=\"http:\/\/www.javacodegeeks.com\/join-us\/jcg\/\">JCG partner<\/a>\u00a0Ima Miri\u00a0at the <a href=\"https:\/\/imamiri.com\/\">Technology. Career<\/a> blog.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>These days, there are a lot of discussions about Microservices at the workplace or in tech talks. And if you have worked with SOA before, you might wonder what is the difference between SOA and Microservices. Here is a comparison of both architectures in details. SOA A\u00a0Service Oriented Architecture\u00a0is a software architecture pattern, which application &hellip;<\/p>\n","protected":false},"author":1111,"featured_media":2386,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[15],"tags":[],"class_list":["post-61767","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Microservices vs. SOA - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"These days, there are a lot of discussions about Microservices at the workplace or in tech talks. And if you have worked with SOA before, you might wonder\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Microservices vs. SOA - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"These days, there are a lot of discussions about Microservices at the workplace or in tech talks. And if you have worked with SOA before, you might wonder\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2016-11-14T11:00:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ima Miri\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ima Miri\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html\"},\"author\":{\"name\":\"Ima Miri\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/8d026faaa28764217f72361a838946d2\"},\"headline\":\"Microservices vs. SOA\",\"datePublished\":\"2016-11-14T11:00:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html\"},\"wordCount\":777,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/software-development-2-logo.jpg\",\"articleSection\":[\"Software Development\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html\",\"name\":\"Microservices vs. SOA - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/software-development-2-logo.jpg\",\"datePublished\":\"2016-11-14T11:00:54+00:00\",\"description\":\"These days, there are a lot of discussions about Microservices at the workplace or in tech talks. And if you have worked with SOA before, you might wonder\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/software-development-2-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/software-development-2-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2016\\\/11\\\/microservices-vs-soa.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software Development\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/software-development\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Microservices vs. SOA\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/8d026faaa28764217f72361a838946d2\",\"name\":\"Ima Miri\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9e999b16bfbba3b242717f4838555c170b441dadb5ad71ff71b4b5e49c2f608b?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9e999b16bfbba3b242717f4838555c170b441dadb5ad71ff71b4b5e49c2f608b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9e999b16bfbba3b242717f4838555c170b441dadb5ad71ff71b4b5e49c2f608b?s=96&d=mm&r=g\",\"caption\":\"Ima Miri\"},\"description\":\"Ima is a Senior Software Developer in enterprise application design and development. She is experienced in high traffic websites for e-commerce, media and financial services. She is interested in new technologies and innovation area along with technical writing. Her main focus is on web architecture, web technologies, java\\\/j2ee, Open source and mobile development for android.\",\"sameAs\":[\"https:\\\/\\\/imamiri.com\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/imamiri\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/ima-miri\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Microservices vs. SOA - Java Code Geeks","description":"These days, there are a lot of discussions about Microservices at the workplace or in tech talks. And if you have worked with SOA before, you might wonder","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html","og_locale":"en_US","og_type":"article","og_title":"Microservices vs. SOA - Java Code Geeks","og_description":"These days, there are a lot of discussions about Microservices at the workplace or in tech talks. And if you have worked with SOA before, you might wonder","og_url":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2016-11-14T11:00:54+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg","type":"image\/jpeg"}],"author":"Ima Miri","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Ima Miri","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html"},"author":{"name":"Ima Miri","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/8d026faaa28764217f72361a838946d2"},"headline":"Microservices vs. SOA","datePublished":"2016-11-14T11:00:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html"},"wordCount":777,"commentCount":2,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg","articleSection":["Software Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html","url":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html","name":"Microservices vs. SOA - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg","datePublished":"2016-11-14T11:00:54+00:00","description":"These days, there are a lot of discussions about Microservices at the workplace or in tech talks. And if you have worked with SOA before, you might wonder","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/software-development-2-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2016\/11\/microservices-vs-soa.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Software Development","item":"https:\/\/www.javacodegeeks.com\/category\/software-development"},{"@type":"ListItem","position":3,"name":"Microservices vs. SOA"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/8d026faaa28764217f72361a838946d2","name":"Ima Miri","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9e999b16bfbba3b242717f4838555c170b441dadb5ad71ff71b4b5e49c2f608b?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9e999b16bfbba3b242717f4838555c170b441dadb5ad71ff71b4b5e49c2f608b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9e999b16bfbba3b242717f4838555c170b441dadb5ad71ff71b4b5e49c2f608b?s=96&d=mm&r=g","caption":"Ima Miri"},"description":"Ima is a Senior Software Developer in enterprise application design and development. She is experienced in high traffic websites for e-commerce, media and financial services. She is interested in new technologies and innovation area along with technical writing. Her main focus is on web architecture, web technologies, java\/j2ee, Open source and mobile development for android.","sameAs":["https:\/\/imamiri.com\/","https:\/\/www.linkedin.com\/in\/imamiri"],"url":"https:\/\/www.javacodegeeks.com\/author\/ima-miri"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/61767","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/1111"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=61767"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/61767\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/2386"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=61767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=61767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=61767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}