{"id":8692,"date":"2024-02-28T09:29:42","date_gmt":"2024-02-28T08:29:42","guid":{"rendered":"https:\/\/medtech-ingenieur.de\/?p=8692"},"modified":"2024-06-03T10:46:18","modified_gmt":"2024-06-03T08:46:18","slug":"embedded-software-architektur-event-driven","status":"publish","type":"post","link":"https:\/\/medtech-ingenieur.de\/en\/embedded-software-architektur-event-driven\/","title":{"rendered":"Embedded Software Architecture in a celebratory mood: Event driven"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8728\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/Website-Banner.png\" alt=\"\" width=\"1366\" height=\"768\" \/><br \/>\nIn my previous <a href=\"https:\/\/medtech-ingenieur.de\/en\/anforderungen-software-architektur\/\" target=\"_blank\" rel=\"noopener\">Blog post<\/a> I&#039;ve discussed aspects that significantly influence the design of a good software architecture. Here are just a few things to mention:<\/p>\n<ul>\n<li>Simplicity: Simpler is usually better<\/li>\n<li>Maintainability and extensibility: Software is rarely not \u201cfinished\u201d even after the first delivery<\/li>\n<li>Testability: It goes without saying<\/li>\n<\/ul>\n<p>Alisa has already discussed the aspect of unit testing in detail in connection with C# tool development (\u2192 <a href=\"https:\/\/medtech-ingenieur.de\/en\/unit-testen-c\/\" target=\"_blank\" rel=\"noopener\">Unit testing in C#<\/a>).<br \/>\nBut do the rules for desktop development also apply to \u201chardcore\u201d embedded software?<\/p>\n<p>&nbsp;<\/p>\n<h3>Bad examples<\/h3>\n<p>Everyone has probably encountered the &quot;Kraut-und-R\u00fcben&quot; code at some point. Even if it was their own\u2014at least during their apprenticeship.<br \/>\nModule A calls functions from module B. Module B calls functions from C, \u2026 and from X it goes back into A. A dream!<br \/>\nWhy is that &quot;bad&quot;? So many projects do the same thing?<\/p>\n<figure id=\"attachment_8695\" aria-describedby=\"caption-attachment-8695\" style=\"width: 612px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8695 size-full\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b1.png\" alt=\"\" width=\"612\" height=\"450\" srcset=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b1.png 612w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b1-300x221.png 300w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b1-100x74.png 100w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b1-150x110.png 150w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b1-200x147.png 200w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b1-450x331.png 450w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b1-600x441.png 600w\" sizes=\"auto, (max-width: 612px) 100vw, 612px\" \/><figcaption id=\"caption-attachment-8695\" class=\"wp-caption-text\">Figure 1: Architecture with direct dependencies between components<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>Well, first of all, after a short time nobody can see through such a <strong>Confusion<\/strong>And when it comes to the maximum runtime of a function call, determining the <strong>maximum call chain<\/strong> (with all possible branches!) is no longer possible without tool support or a lot of effort. If there&#039;s also the risk of a watchdog triggering in the meantime, the watchdog is triggered at every possible and impossible point.<\/p>\n<p>The icing on the cake is this: Another module needs to be integrated. Now, function calls to this module (and from it to other modules) need to be added in numerous places. Anyone who can predict how many places need to be addressed and how this will affect the increase in complexity or runtime behavior will receive the fortune-telling prize from the boss.<\/p>\n<p>&nbsp;<\/p>\n<h3>Learn from the successful<\/h3>\n<p>Why are bus technologies such as CAN (Controller Area Network) so successful? Well, there&#039;s a master, a few cables, and all the participants listen. Those who are interested can either view a message\u2014or not. If, for example, a display module needs to be integrated, you simply connect it to the bus\u2014and that&#039;s it.<\/p>\n<p><strong>Ask<\/strong>: What prevents one from using such a simple concept as a model for software architectures?<\/p>\n<p><strong>Answer<\/strong>: Nothing :-)<\/p>\n<p>But what could something like that look like?<\/p>\n<h3>Sender \u2192 \u201cstuff\u201d \u2192 Receiver<\/h3>\n<p>Event-based architectures aren&#039;t rocket science and certainly nothing new. Among the more well-known examples are signal slot mechanisms (used in Qt). Under the hood, this can be quite complex and perhaps too powerful for hardcore embedded applications. Because we&#039;re dealing with tough constraints (although, that&#039;s precisely the appeal of embedded software development ;-)):<\/p>\n<ul>\n<li>We usually have to manage without dynamic memory allocations (\u2192 all data\/objects are static or allocated once at startup)<\/li>\n<li>Runtime: The overhead of such an architecture is low \u2013 but of course, nothing comes for free.<\/li>\n<li>Code size: We needed some administrative information under the hood here and there (e.g., for lists), but that shouldn&#039;t be a problem.<\/li>\n<li>\u2026<\/li>\n<\/ul>\n<p>But what do we need for a simple event-based solution?<\/p>\n<ul>\n<li><strong>Events<\/strong> \u2013 without them, nothing works. These messages can be simple enum values or structures\/classes with a payload.<\/li>\n<li><strong>Listener<\/strong>: Components that want to be informed about events implement a listener interface and implement a \u201chandleEvent\u201d function.<\/li>\n<li><strong>Event<\/strong>-Dispatcher: This component receives events and distributes them to all listeners that have registered with the dispatcher.<\/li>\n<li><strong>Sender<\/strong>: These are all components that have something to say.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_8696\" aria-describedby=\"caption-attachment-8696\" style=\"width: 603px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8696 size-full\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b2.png\" alt=\"\" width=\"603\" height=\"450\" srcset=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b2.png 603w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b2-300x224.png 300w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b2-100x75.png 100w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b2-150x112.png 150w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b2-200x149.png 200w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b2-450x336.png 450w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b2-600x448.png 600w\" sizes=\"auto, (max-width: 603px) 100vw, 603px\" \/><figcaption id=\"caption-attachment-8696\" class=\"wp-caption-text\">Figure 2: Event-based architecture<\/figcaption><\/figure>\n<p>Figure 3 uses a real-life example to show how event handling works in principle.<br \/>\nIt is certainly easy to see that it would not be rocket science to make other components react to the press of a button.<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_8718\" aria-describedby=\"caption-attachment-8718\" style=\"width: 1168px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8718 size-full\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b3-1.png\" alt=\"\" width=\"1168\" height=\"734\" srcset=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b3-1.png 1168w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b3-1-300x189.png 300w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b3-1-768x483.png 768w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b3-1-1024x644.png 1024w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b3-1-100x63.png 100w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b3-1-150x94.png 150w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b3-1-200x126.png 200w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b3-1-450x283.png 450w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b3-1-600x377.png 600w, https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/b3-1-900x566.png 900w\" sizes=\"auto, (max-width: 1168px) 100vw, 1168px\" \/><figcaption id=\"caption-attachment-8718\" class=\"wp-caption-text\">Figure 3: Example of handling a button press<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<h3>Finished? No, not yet<\/h3>\n<p>With the architectural principle presented, we have already come quite far and can achieve the initially formulated goals (simplicity, maintainability and extensibility, testability) in an elegant way.<\/p>\n<p>If you think that&#039;s it, I&#039;d like to put you off until the next blog posts. One topic hasn&#039;t been addressed yet: data storage.<br \/>\nSo there&#039;s still something to be done :-)<\/p>\n<p>Do you need support with designing a software architecture or developing embedded software? Then please contact us. Our experienced MEDtech engineers will be happy to help you develop your medical device or clarify any outstanding questions.<\/p>\n<p>Best regards<br \/>\nJ\u00fcrgen Welzenbach<\/p>","protected":false},"excerpt":{"rendered":"<p>In meinem vorangegangen Blogpost bin ich auf Aspekte eingegangen, die den Entwurf einer guten Softwarearchitektur ma\u00dfgeblich beeinflussen. Hier seien lediglich nochmal erw\u00e4hnt: Einfachheit: Einfacher ist in den meisten F\u00e4llen auch besser Wartbarkeit und Erweiterbarkeit: Software ist in den seltensten F\u00e4llen nicht mal nach der ersten Auslieferung &#8222;fertig&#8220; Testbarkeit: Versteht sich von selbst Alisa ist im [&hellip;]<\/p>\n","protected":false},"author":31,"featured_media":8774,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,6,468],"tags":[291,694,695,292],"class_list":["post-8692","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein","category-software","category-testen","tag-embedded-software","tag-event-driven","tag-eventbasierte-software","tag-software-architektur","post-wrapper","thrv_wrapper"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Embedded Software Architektur in Feierlaune: Event driven - MEDtech Ingenieur GmbH<\/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:\/\/medtech-ingenieur.de\/en\/embedded-software-architektur-event-driven\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Embedded Software Architektur in Feierlaune: Event driven - MEDtech Ingenieur GmbH\" \/>\n<meta property=\"og:description\" content=\"In meinem vorangegangen Blogpost bin ich auf Aspekte eingegangen, die den Entwurf einer guten Softwarearchitektur ma\u00dfgeblich beeinflussen. Hier seien lediglich nochmal erw\u00e4hnt: Einfachheit: Einfacher ist in den meisten F\u00e4llen auch besser Wartbarkeit und Erweiterbarkeit: Software ist in den seltensten F\u00e4llen nicht mal nach der ersten Auslieferung &#8222;fertig&#8220; Testbarkeit: Versteht sich von selbst Alisa ist im [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/medtech-ingenieur.de\/en\/embedded-software-architektur-event-driven\/\" \/>\n<meta property=\"og:site_name\" content=\"MEDtech Ingenieur GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/medtechIngenieur\" \/>\n<meta property=\"article:published_time\" content=\"2024-02-28T08:29:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-03T08:46:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/Website-Banner.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1366\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"J\u00fcrgen Welzenbach\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MedtechIng\" \/>\n<meta name=\"twitter:site\" content=\"@MedtechIng\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"J\u00fcrgen Welzenbach\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/\"},\"author\":{\"name\":\"J\u00fcrgen Welzenbach\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/person\\\/dd3cdc59cbb669fb0280a19479a5b1ab\"},\"headline\":\"Embedded Software Architektur in Feierlaune: Event driven\",\"datePublished\":\"2024-02-28T08:29:42+00:00\",\"dateModified\":\"2024-06-03T08:46:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/\"},\"wordCount\":765,\"publisher\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Website-Banner.png\",\"keywords\":[\"Embedded-Software\",\"Event driven\",\"Eventbasierte Software\",\"Software Architektur\"],\"articleSection\":[\"Allgemein\",\"Software\",\"Testen\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/\",\"name\":\"Embedded Software Architektur in Feierlaune: Event driven - MEDtech Ingenieur GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Website-Banner.png\",\"datePublished\":\"2024-02-28T08:29:42+00:00\",\"dateModified\":\"2024-06-03T08:46:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/#primaryimage\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Website-Banner.png\",\"contentUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/02\\\/Website-Banner.png\",\"width\":1366,\"height\":768},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/embedded-software-architektur-event-driven\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Embedded Software Architektur in Feierlaune: Event driven\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#website\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\",\"name\":\"MEDtech Ingenieur GmbH\",\"description\":\"Ingenieursdienstleister f\u00fcr Medizintechnik\",\"publisher\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\"},\"alternateName\":\"MEDtech\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/medtech-ingenieur.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\",\"name\":\"MEDtech Ingenieur\",\"alternateName\":\"MEDtech\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo-700x700-1.png\",\"contentUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo-700x700-1.png\",\"width\":700,\"height\":700,\"caption\":\"MEDtech Ingenieur\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/medtechIngenieur\",\"https:\\\/\\\/x.com\\\/MedtechIng\",\"https:\\\/\\\/www.instagram.com\\\/medtech.ingenieure\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/37871229\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/person\\\/dd3cdc59cbb669fb0280a19479a5b1ab\",\"name\":\"J\u00fcrgen Welzenbach\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/cropped-Med_Mit-013-scaled-1-96x96.jpg\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/cropped-Med_Mit-013-scaled-1-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/cropped-Med_Mit-013-scaled-1-96x96.jpg\",\"caption\":\"J\u00fcrgen Welzenbach\"},\"description\":\"J\u00fcrgen hat nach seinem Elektrotechnikstudium in Erlangen seine Diplomarbeit in Kooperation mit einem Hersteller von ophthalmologischen Ger\u00e4ten und der Universit\u00e4tsaugenklinik durchgef\u00fchrt. In zwei Erlanger Unternehmen fand er zur Embedded Software und hat vor allem HMIs f\u00fcr Baumaschinen und Laboranalyseger\u00e4te entwickelt.\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/en\\\/author\\\/jwelzenbach\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Embedded Software Architektur in Feierlaune: Event driven - MEDtech Ingenieur GmbH","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:\/\/medtech-ingenieur.de\/en\/embedded-software-architektur-event-driven\/","og_locale":"en_US","og_type":"article","og_title":"Embedded Software Architektur in Feierlaune: Event driven - MEDtech Ingenieur GmbH","og_description":"In meinem vorangegangen Blogpost bin ich auf Aspekte eingegangen, die den Entwurf einer guten Softwarearchitektur ma\u00dfgeblich beeinflussen. Hier seien lediglich nochmal erw\u00e4hnt: Einfachheit: Einfacher ist in den meisten F\u00e4llen auch besser Wartbarkeit und Erweiterbarkeit: Software ist in den seltensten F\u00e4llen nicht mal nach der ersten Auslieferung &#8222;fertig&#8220; Testbarkeit: Versteht sich von selbst Alisa ist im [&hellip;]","og_url":"https:\/\/medtech-ingenieur.de\/en\/embedded-software-architektur-event-driven\/","og_site_name":"MEDtech Ingenieur GmbH","article_publisher":"https:\/\/www.facebook.com\/medtechIngenieur","article_published_time":"2024-02-28T08:29:42+00:00","article_modified_time":"2024-06-03T08:46:18+00:00","og_image":[{"width":1366,"height":768,"url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/Website-Banner.png","type":"image\/png"}],"author":"J\u00fcrgen Welzenbach","twitter_card":"summary_large_image","twitter_creator":"@MedtechIng","twitter_site":"@MedtechIng","twitter_misc":{"Written by":"J\u00fcrgen Welzenbach","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/#article","isPartOf":{"@id":"https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/"},"author":{"name":"J\u00fcrgen Welzenbach","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/person\/dd3cdc59cbb669fb0280a19479a5b1ab"},"headline":"Embedded Software Architektur in Feierlaune: Event driven","datePublished":"2024-02-28T08:29:42+00:00","dateModified":"2024-06-03T08:46:18+00:00","mainEntityOfPage":{"@id":"https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/"},"wordCount":765,"publisher":{"@id":"https:\/\/medtech-ingenieur.de\/#organization"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/#primaryimage"},"thumbnailUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/Website-Banner.png","keywords":["Embedded-Software","Event driven","Eventbasierte Software","Software Architektur"],"articleSection":["Allgemein","Software","Testen"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/","url":"https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/","name":"Embedded Software Architektur in Feierlaune: Event driven - MEDtech Ingenieur GmbH","isPartOf":{"@id":"https:\/\/medtech-ingenieur.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/#primaryimage"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/#primaryimage"},"thumbnailUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/Website-Banner.png","datePublished":"2024-02-28T08:29:42+00:00","dateModified":"2024-06-03T08:46:18+00:00","breadcrumb":{"@id":"https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/#primaryimage","url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/Website-Banner.png","contentUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/02\/Website-Banner.png","width":1366,"height":768},{"@type":"BreadcrumbList","@id":"https:\/\/medtech-ingenieur.de\/embedded-software-architektur-event-driven\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/medtech-ingenieur.de\/"},{"@type":"ListItem","position":2,"name":"Embedded Software Architektur in Feierlaune: Event driven"}]},{"@type":"WebSite","@id":"https:\/\/medtech-ingenieur.de\/#website","url":"https:\/\/medtech-ingenieur.de\/","name":"MEDtech Ingenieur GmbH","description":"Engineering service provider for medical technology","publisher":{"@id":"https:\/\/medtech-ingenieur.de\/#organization"},"alternateName":"MEDtech","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/medtech-ingenieur.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/medtech-ingenieur.de\/#organization","name":"MEDtech Engineer","alternateName":"MEDtech","url":"https:\/\/medtech-ingenieur.de\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/logo\/image\/","url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/01\/logo-700x700-1.png","contentUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/01\/logo-700x700-1.png","width":700,"height":700,"caption":"MEDtech Ingenieur"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/medtechIngenieur","https:\/\/x.com\/MedtechIng","https:\/\/www.instagram.com\/medtech.ingenieure\/","https:\/\/www.linkedin.com\/company\/37871229\/"]},{"@type":"Person","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/person\/dd3cdc59cbb669fb0280a19479a5b1ab","name":"J\u00fcrgen Welzenbach","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2025\/04\/cropped-Med_Mit-013-scaled-1-96x96.jpg","url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2025\/04\/cropped-Med_Mit-013-scaled-1-96x96.jpg","contentUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2025\/04\/cropped-Med_Mit-013-scaled-1-96x96.jpg","caption":"J\u00fcrgen Welzenbach"},"description":"After completing his electrical engineering studies in Erlangen, J\u00fcrgen wrote his diploma thesis in cooperation with a manufacturer of ophthalmic devices and the university eye clinic. He then worked for two companies in Erlangen, where he discovered embedded software and primarily developed HMIs for construction machinery and laboratory analysis equipment.","url":"https:\/\/medtech-ingenieur.de\/en\/author\/jwelzenbach\/"}]}},"_links":{"self":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/8692","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/users\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/comments?post=8692"}],"version-history":[{"count":29,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/8692\/revisions"}],"predecessor-version":[{"id":8979,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/8692\/revisions\/8979"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/media\/8774"}],"wp:attachment":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/media?parent=8692"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/categories?post=8692"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/tags?post=8692"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}