{"id":5650,"date":"2013-04-05T14:36:03","date_gmt":"2013-04-05T14:36:03","guid":{"rendered":"https:\/\/glocalthinking.com\/demystifying-multitenancy-2-configuration-and-maintenance\/"},"modified":"2021-08-31T10:40:51","modified_gmt":"2021-08-31T10:40:51","slug":"demystifying-multitenancy-2-configuration-and-maintenance","status":"publish","type":"post","link":"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/","title":{"rendered":"Demystifying multitenancy 2: configuration and maintenance"},"content":{"rendered":"<p><a href=\"http:\/\/www.glocalthinking.com\/en\/demystifying-multitenancy-introduction\/\" target=\"_blank\" rel=\"noopener\">&lt;&lt; Demystifying multitenancy: Introduction<\/a><\/p>\n<p><!--more--><\/p>\n<p><a href=\"http:\/\/www.glocalthinking.com\/en\/demystifying-multitenancy-i-the-technology-behind-a-multitenant-system\/\" target=\"_blank\" rel=\"noopener\">&lt;&lt; Demystifying multitenancy I: The technology behind a multitenant system<\/a><\/p>\n<p align=\"right\"><a href=\"http:\/\/www.glocalthinking.com\/en\/demystifying-multitenancy-iii-how-does-this-technology-contribute-to-the-hr-management-of-your-business\/\">Demystifying multitenancy III: How does this technology contribute to the HR management of your business &gt;&gt;<\/a><\/p>\n<p align=\"right\"><a href=\"http:\/\/www.glocalthinking.com\/en\/demystifying-multitenancy-4-keys-to-saving-time-and-money-2\/\">Demystifying multitenancy: 4 keys to saving time and money &gt;&gt;<\/a><\/p>\n<p><a href=\"http:\/\/www.glocalthinking.com\/en\/demystifying-multitenancy-4-keys-to-saving-time-and-money-2\/\"> <\/a> <\/p>\n<p><a href=\"http:\/\/www.glocalthinking.com\/en\/demystifying-multitenancy-4-keys-to-saving-time-and-money-2\/\"><\/a><\/p>\n<p style=\"text-align: justify\"><strong><span style=\"text-decoration: underline\">When the simplicity became complex<\/span><\/strong><\/p>\n<p style=\"text-align: justify\">After more than 15 years developing multitenant technologies I\u2019ve come across many situations where developing new technological features became complex due to the dependency of external technologies that lack a multitenant design. I think I can provide a good example that illustrates this situation. Some years ago I faced the problem of extending the Java runtime to support multitenant features.<\/p>\n<p style=\"text-align: justify\"><strong>Isolating collisions between different client instances<\/strong><\/p>\n<p style=\"text-align: justify\">Java is a powerful language and comes with a rich runtime library and a vast internet support. Nevertheless if you try to use java in a multitenant environment you\u2019ll face quickly some hard problems. One&nbsp;&nbsp; is the way&nbsp;&nbsp; Java handles the object instances. If you load an object (or a class) this object will be in the RAM memory forever. Now, let\u2019s imagine that a customer of the multitenant environment loads a class called &#8220;A&#8221; that conflict with the class &#8220;A&#8221; used by another customer. A good multitenant technology should isolate such collisions in a way that any resource defined or used by a client (Java or not) never conflict with that of another customer. So we\u2019ve had to expand the core loader of the Java runtime to support many classes loaded at a time, even with different versions of the same class. It was hard work, but the result has been very important to support many other new features based on Java technology.&nbsp; From the end user perspective, it seems very simple and we can implement many other new technologies based on the new multitenant Java runtime environment. The complexity was absorbed by the multitenant technology, working behind the scenes to&nbsp; simplify the end user tasks.<\/p>\n<p style=\"text-align: justify\"><strong>Managing evolution trough object inheritance<\/strong><\/p>\n<p style=\"text-align: justify\">To understand how this complexity works, let\u2019s imagine a global process implemented using an object called \u2018ParentObject\u2019. You can inherit this object and adjust it to create a slightly different, but new process. Let\u2019s call this new object \u2018ChildObject\u2019. The multitenant technology will replace for a particular customer any instance of the parent object to the child one. So the developer doesn\u2019t have to write a single line of code to replace and use the new&nbsp;behavior. It\u2019s a simple configuration.<\/p>\n<p style=\"text-align: justify\">Inheritance, in this context, means that if you don\u2019t change the new inherited or ChildObject it will behave exactly as the parent one. If you change a small piece in your new &#8220;ChildObject&#8221;, that small piece will be exclusive to the child but all the other features will be like the original one. This means that any change applied in a normal maintenance cycle will be merged into your child object in a transparent way. No manual merging, errors, etc. You could also think that you might have more than one level or inheritance. This mechanism saves time and money while maintaining the platform stability.<\/p>\n<p style=\"text-align: justify\">&nbsp;You can also apply the same concept to other elements of the architecture like data or security.<\/p>\n<p style=\"text-align: justify\"><strong>Easy configuration and maintenance from the multitenant platform &nbsp;<\/strong><\/p>\n<p style=\"text-align: justify\">Now suppose we\u2019d like to replace the ParentObjet with the new ChildObjet only for some of our customers, but we know that there are hundreds of other processes used by these customers that depend on the ParentObject. In theory, we should change all these processes to use the new ChildObject instead of pointing to the ParentObject. A first-class technology should come with a simple mechanism to handle this behaviour and be able of performing a rollback if required.<\/p>\n<p style=\"text-align: justify\">In a multitenant environment customers use processes to complete tasks. In our case we map one process to one \u2018Object\u2019. This has many advantages. Objects, from a computational point of view, aggregate several properties that are very convenient if applied in a multitenant environment. Maintenance is one.. If you use a standard process or object from the multitenant platform you know that any update from the core technology will be automatically available to you. But what if you have to \u2018tune\u2019 a bit this process to match a specific requirement in your company? You could, of course, copy &amp; paste the object and overwrite it. The problem is obvious: you will be alone to maintain it. However, as it is an object, you could <em>inherit<\/em> it from the original one.<\/p>\n<p style=\"text-align: justify\">&nbsp;Like I\u2019ve said, multitenant technology + object orientation saves time and money.<\/p>\n<p style=\"text-align: justify\">&nbsp;In the next article we will show all this working together from a HR System perspective and the direct impact it has in terms ofeffort and cost.<\/p>\n<h4 style=\"text-align: justify\"><strong>GLOSSARY<\/strong><\/h4>\n<p style=\"text-align: justify\"><a href=\"http:\/\/en.wikipedia.org\/wiki\/Multitenancy\"><strong>Multitenancy:<\/strong><\/a> <strong>Multitenancy<\/strong>&nbsp;refers to a principle in&nbsp;<a title=\"Software architecture\" href=\"http:\/\/en.wikipedia.org\/wiki\/Software_architecture\">software architecture<\/a>&nbsp;where a single instance of the&nbsp;<a title=\"Computer software\" href=\"http:\/\/en.wikipedia.org\/wiki\/Computer_software\">software<\/a>&nbsp;runs on a server, serving multiple client organizations (tenants). Multitenancy is contrasted with a multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations. With a multitenant architecture, a&nbsp;<a title=\"Application software\" href=\"http:\/\/en.wikipedia.org\/wiki\/Application_software\">software application<\/a>&nbsp;is designed to virtually&nbsp;<a title=\"Partition (mainframe)\" href=\"http:\/\/en.wikipedia.org\/wiki\/Partition_(mainframe)\">partition<\/a>&nbsp;its data and configuration, and each client organization works with a customized virtual application instance. (Wikipedia)<\/p>\n<p style=\"text-align: justify\"><a href=\"http:\/\/en.wikipedia.org\/wiki\/Java_(programming_language)\"><strong>Java:<\/strong><\/a> <strong>Java<\/strong>&nbsp;is a&nbsp;<a title=\"General purpose programming language\" href=\"http:\/\/en.wikipedia.org\/wiki\/General_purpose_programming_language\">general-purpose<\/a>,&nbsp;<a title=\"Concurrent computing\" href=\"http:\/\/en.wikipedia.org\/wiki\/Concurrent_computing\">concurrent<\/a>,&nbsp;<a title=\"Class-based\" href=\"http:\/\/en.wikipedia.org\/wiki\/Class-based\">class-based<\/a>,&nbsp;<a title=\"Object-oriented programming\" href=\"http:\/\/en.wikipedia.org\/wiki\/Object-oriented_programming\">object-oriented<\/a>&nbsp;<a title=\"Computer programming language\" href=\"http:\/\/en.wikipedia.org\/wiki\/Computer_programming_language\">computer programming language<\/a>&nbsp;that is specifically designed to have as few implementation dependencies as possible. It is intended to let application developers &#8220;write once, run anywhere&#8221; (WORA), meaning that code that runs on one platform does not need to be recompiled to run on another. (Wikipedia)<\/p>\n<p style=\"text-align: justify\"><strong><a href=\"http:\/\/www.techopedia.com\/definition\/5442\/java-runtime-environment-jre\">Java Runtime Library<\/a>:<\/strong> The Java Runtime Environment (JRE) is a set of software tools for development of Java applications. It combines the Java Virtual Machine (JVM), platform core classes and supporting libraries. JRE is part of the Java Development Kit (JDK), but can be downloaded separately. JRE was originally developed by Sun Microsystems Inc., a wholly-owned subsidiary of Oracle Corporation. (Technopedia)<\/p>\n<p style=\"text-align: justify\"><a href=\"http:\/\/en.wikipedia.org\/wiki\/Object_(computer_science)\"><strong>Objects:<\/strong><\/a> Objects in &#8220;<strong>object-oriented programming<\/strong>&#8221; are essentially data structures together with their associated processing routines. For instance, a file is an object: a collection of data and the associated read and write routines. Objects are considered instances of&nbsp;<strong><em>classes<\/em><\/strong>. In common speech one refers to&nbsp;<em>a<\/em>&nbsp;file as a class, while&nbsp;<em>the<\/em>&nbsp;file is the object. A class defines properties and behaviour once, usually for multiple instantiations. This distinction has its counterparts in other disciplines, for example in biology and evolution&nbsp;<a href=\"http:\/\/en.wikipedia.org\/wiki\/Object_(computer_science)#cite_note-1\"><sup>[1]<\/sup><\/a>&nbsp;and is known as the&nbsp;<em>genus\/species dichotomy<\/em>. (Wikipedia)<\/p>\n<p style=\"text-align: justify\"><a href=\"http:\/\/java.about.com\/od\/c\/g\/Class.htm\"><strong>Classes:<\/strong><\/a> A class specifies the design of an&nbsp;<a href=\"http:\/\/java.about.com\/od\/o\/g\/Object.htm\">object<\/a>. It states what data an object can hold and the way it can behave when using the data. Java.about.com<\/p>\n<p style=\"text-align: justify\"><a href=\"http:\/\/wiki.answers.com\/Q\/What_is_the_meaning_of_instance_in_java\"><strong>Instance:<\/strong><\/a>&nbsp;An instance method defines behaviors of objects.&nbsp;A static method does not define object behavior, but is defined inside a class. (Wikipedia)<\/p>\n<p style=\"text-align: justify\"><strong>Parent Object:<\/strong> An object in which another object resides. For example, a folder is a parent object in which a file, or child object, resides. An object can be both a parent and a child object. For example, a subfolder that contains files is both the child of the parent folder and the parent folder of the files.<\/p>\n<p style=\"text-align: justify\"><strong>Child Object:<\/strong> An object than resides in a Parent Object, and inherits some of its&nbsp;characteristics.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We isolate collisions between different client instances, manage evolution trough object inheritance, configure and maintain from a multitenant platform<\/p>\n","protected":false},"author":26,"featured_media":2481,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[345,347],"tags":[241,77,91],"class_list":["post-5650","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hr-technology","category-hr-trends","tag-hr-technology","tag-hr-trends","tag-software"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v17.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Demystifying multitenancy 2: configuration and maintenance - Glocalthinking<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Demystifying multitenancy 2: configuration and maintenance - Glocalthinking\" \/>\n<meta property=\"og:description\" content=\"We isolate collisions between different client instances, manage evolution trough object inheritance, configure and maintain from a multitenant platform\" \/>\n<meta property=\"og:url\" content=\"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/\" \/>\n<meta property=\"og:site_name\" content=\"Glocalthinking\" \/>\n<meta property=\"article:published_time\" content=\"2013-04-05T14:36:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-08-31T10:40:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/glocalthinking.com\/wp-content\/uploads\/2021\/08\/MULTIWINDOW1-300x116-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"116\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Edu Fernandes\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/glocalthinking.com\/#website\",\"url\":\"https:\/\/glocalthinking.com\/\",\"name\":\"Glocalthinking\",\"description\":\"Un espacio para los profesionales de RRHH\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/glocalthinking.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/#primaryimage\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/glocalthinking.com\/wp-content\/uploads\/2021\/08\/MULTIWINDOW1-300x116-1.jpg\",\"contentUrl\":\"https:\/\/glocalthinking.com\/wp-content\/uploads\/2021\/08\/MULTIWINDOW1-300x116-1.jpg\",\"width\":300,\"height\":116},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/#webpage\",\"url\":\"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/\",\"name\":\"Demystifying multitenancy 2: configuration and maintenance - Glocalthinking\",\"isPartOf\":{\"@id\":\"https:\/\/glocalthinking.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/#primaryimage\"},\"datePublished\":\"2013-04-05T14:36:03+00:00\",\"dateModified\":\"2021-08-31T10:40:51+00:00\",\"author\":{\"@id\":\"https:\/\/glocalthinking.com\/#\/schema\/person\/bdcd23521680fce12781bc14e1a652a8\"},\"breadcrumb\":{\"@id\":\"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/glocalthinking.com\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Demystifying multitenancy 2: configuration and maintenance\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/glocalthinking.com\/#\/schema\/person\/bdcd23521680fce12781bc14e1a652a8\",\"name\":\"Edu Fernandes\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/glocalthinking.com\/#personlogo\",\"inLanguage\":\"en-US\",\"url\":\"https:\/\/glocalthinking.com\/wp-content\/uploads\/2021\/08\/edufernandes-30-96x96.jpg\",\"contentUrl\":\"https:\/\/glocalthinking.com\/wp-content\/uploads\/2021\/08\/edufernandes-30-96x96.jpg\",\"caption\":\"Edu Fernandes\"},\"description\":\"Eduardo Fernandes recibi\\u00f3 su Ph.D en Ciencias F\\u00edsicas en la EuropeanSpace Agency (ESA) \/ Universidad Complutense de Madrid (1995). Actualmente es Jefe Tecnol\\u00f3gico de Producto en Meta4. En esta posici\\u00f3n es responsable de la definici\\u00f3n de las l\\u00edneas estrat\\u00e9gicas de la base tecnol\\u00f3gica de los productos de Meta4, como las soluciones KnowNet y PeopleNet. Su principal funci\\u00f3n es analizar el mercado en b\\u00fasqueda de nuevas corrientes tecnol\\u00f3gicas estudiando la posibilidad de integrarlas con el producto global. Anteriormente a su etapa en Meta4 fue responsable del departamento de software del Centro Cient\\u00edfico Operativo del Minisat-01 (ESA), el primer sat\\u00e9lite espa\\u00f1ol. Mientras realizaba sus estudios de postgrado, el Dr. Fernandes se encarg\\u00f3 de la construcci\\u00f3n tanto de software como de hardware para la automatizaci\\u00f3n del mayor telescopio brasile\\u00f1o (1992). Eduardo est\\u00e1 certificado como personal investigador por la Agencia de Acreditaci\\u00f3n en Investigaci\\u00f3n, Desarrollo e Innovaci\\u00f3n Tecnol\\u00f3gica (AIDIT).\",\"url\":\"https:\/\/glocalthinking.com\/en\/author\/edufernandes\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Demystifying multitenancy 2: configuration and maintenance - Glocalthinking","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:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/","og_locale":"en_US","og_type":"article","og_title":"Demystifying multitenancy 2: configuration and maintenance - Glocalthinking","og_description":"We isolate collisions between different client instances, manage evolution trough object inheritance, configure and maintain from a multitenant platform","og_url":"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/","og_site_name":"Glocalthinking","article_published_time":"2013-04-05T14:36:03+00:00","article_modified_time":"2021-08-31T10:40:51+00:00","og_image":[{"width":300,"height":116,"url":"https:\/\/glocalthinking.com\/wp-content\/uploads\/2021\/08\/MULTIWINDOW1-300x116-1.jpg","path":"\/var\/www\/vhosts\/glocalthinking.com\/httpdocs\/wp-content\/uploads\/2021\/08\/MULTIWINDOW1-300x116-1.jpg","size":"full","id":2481,"alt":"","pixels":34800,"type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Written by":"Edu Fernandes","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/glocalthinking.com\/#website","url":"https:\/\/glocalthinking.com\/","name":"Glocalthinking","description":"Un espacio para los profesionales de RRHH","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/glocalthinking.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/#primaryimage","inLanguage":"en-US","url":"https:\/\/glocalthinking.com\/wp-content\/uploads\/2021\/08\/MULTIWINDOW1-300x116-1.jpg","contentUrl":"https:\/\/glocalthinking.com\/wp-content\/uploads\/2021\/08\/MULTIWINDOW1-300x116-1.jpg","width":300,"height":116},{"@type":"WebPage","@id":"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/#webpage","url":"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/","name":"Demystifying multitenancy 2: configuration and maintenance - Glocalthinking","isPartOf":{"@id":"https:\/\/glocalthinking.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/#primaryimage"},"datePublished":"2013-04-05T14:36:03+00:00","dateModified":"2021-08-31T10:40:51+00:00","author":{"@id":"https:\/\/glocalthinking.com\/#\/schema\/person\/bdcd23521680fce12781bc14e1a652a8"},"breadcrumb":{"@id":"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/glocalthinking.com\/en\/demystifying-multitenancy-2-configuration-and-maintenance\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/glocalthinking.com\/en\/"},{"@type":"ListItem","position":2,"name":"Demystifying multitenancy 2: configuration and maintenance"}]},{"@type":"Person","@id":"https:\/\/glocalthinking.com\/#\/schema\/person\/bdcd23521680fce12781bc14e1a652a8","name":"Edu Fernandes","image":{"@type":"ImageObject","@id":"https:\/\/glocalthinking.com\/#personlogo","inLanguage":"en-US","url":"https:\/\/glocalthinking.com\/wp-content\/uploads\/2021\/08\/edufernandes-30-96x96.jpg","contentUrl":"https:\/\/glocalthinking.com\/wp-content\/uploads\/2021\/08\/edufernandes-30-96x96.jpg","caption":"Edu Fernandes"},"description":"Eduardo Fernandes recibi\u00f3 su Ph.D en Ciencias F\u00edsicas en la EuropeanSpace Agency (ESA) \/ Universidad Complutense de Madrid (1995). Actualmente es Jefe Tecnol\u00f3gico de Producto en Meta4. En esta posici\u00f3n es responsable de la definici\u00f3n de las l\u00edneas estrat\u00e9gicas de la base tecnol\u00f3gica de los productos de Meta4, como las soluciones KnowNet y PeopleNet. Su principal funci\u00f3n es analizar el mercado en b\u00fasqueda de nuevas corrientes tecnol\u00f3gicas estudiando la posibilidad de integrarlas con el producto global. Anteriormente a su etapa en Meta4 fue responsable del departamento de software del Centro Cient\u00edfico Operativo del Minisat-01 (ESA), el primer sat\u00e9lite espa\u00f1ol. Mientras realizaba sus estudios de postgrado, el Dr. Fernandes se encarg\u00f3 de la construcci\u00f3n tanto de software como de hardware para la automatizaci\u00f3n del mayor telescopio brasile\u00f1o (1992). Eduardo est\u00e1 certificado como personal investigador por la Agencia de Acreditaci\u00f3n en Investigaci\u00f3n, Desarrollo e Innovaci\u00f3n Tecnol\u00f3gica (AIDIT).","url":"https:\/\/glocalthinking.com\/en\/author\/edufernandes\/"}]}},"_links":{"self":[{"href":"https:\/\/glocalthinking.com\/en\/wp-json\/wp\/v2\/posts\/5650","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/glocalthinking.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/glocalthinking.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/glocalthinking.com\/en\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/glocalthinking.com\/en\/wp-json\/wp\/v2\/comments?post=5650"}],"version-history":[{"count":1,"href":"https:\/\/glocalthinking.com\/en\/wp-json\/wp\/v2\/posts\/5650\/revisions"}],"predecessor-version":[{"id":8034,"href":"https:\/\/glocalthinking.com\/en\/wp-json\/wp\/v2\/posts\/5650\/revisions\/8034"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/glocalthinking.com\/en\/wp-json\/wp\/v2\/media\/2481"}],"wp:attachment":[{"href":"https:\/\/glocalthinking.com\/en\/wp-json\/wp\/v2\/media?parent=5650"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/glocalthinking.com\/en\/wp-json\/wp\/v2\/categories?post=5650"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/glocalthinking.com\/en\/wp-json\/wp\/v2\/tags?post=5650"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}