<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5816485381467598829</id><updated>2024-11-10T00:32:17.328+02:00</updated><category term="soa"/><category term="architecture"/><category term="integration"/><category term="bpm"/><category term="ibm"/><category term="business drivers"/><category term="datapower"/><category term="esb"/><category term="legacy"/><category term="reliability"/><category term="security"/><category term="agility"/><category term="api"/><category term="cloud computing"/><category term="economy"/><category term="mainframe"/><category term="risk"/><category term="standards"/><category term="downturn"/><category term="fault tolerance"/><category term="governance"/><category term="interface spaghetti"/><category term="interfacing"/><category term="methodology"/><category term="project management"/><category term="roi"/><category term="software ag"/><category term="software architecture"/><category term="xml"/><category term="COBOL"/><category term="batch"/><category term="conferences"/><category term="data"/><category term="motivation"/><category term="other"/><category term="saas"/><category term="staffing"/><category term="suites"/><category term="vendors"/><category term="IT management"/><category term="bam"/><category term="component"/><category term="google"/><category term="international connectivity"/><category term="metadata"/><category term="microsoft"/><category term="mq"/><category term="mqsi"/><category term="networking"/><category term="news"/><category term="oracle"/><category term="see"/><category term="uml"/><category term="webmethods"/><category term="websphere"/><title type='text'>Making the Cloud, Microservices, and Enterprise IT work!</title><subtitle type='html'>Enough hype! Real ROI - Let&#39;s put these technologies to work!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://makingsoawork.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>107</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-6588012570754568711</id><published>2021-03-25T10:30:00.000+02:00</published><updated>2021-03-25T10:30:20.929+02:00</updated><title type='text'>Data Gravity and Cloud Uplift Woes</title><content type='html'>&lt;p&gt;When I originally learned about Data Gravity via David Linthicum’s excellent podcasts, a key architecture point that stuck in my mind was: your application needs to be close to its (interactive) data sources.&amp;nbsp; (Data Gravity has since picked up a wider yet less useful definition as more applications cluster together in a “data galaxy” to be close enough for large amounts of data to be able to interact.)&lt;/p&gt;&lt;p&gt;Why?&amp;nbsp; Every interaction with a database has communication (network time) overhead.&amp;nbsp; Most applications are built with their servers and database on the same LAN / subnet / vnet – usually in close physical proximity, specifically so that time is minimized.&amp;nbsp; Every hub/switch/router adds time to the request, so while a request may pay 10ms when it’s local, add time per “hop”.&lt;/p&gt;&lt;p&gt;Application performance and tolerances are implicitly built around that response overhead.&amp;nbsp; If data takes too long to return, the developers will likely adjust their code to do bigger queries, wider joins, etc.&amp;nbsp; But what’s “too long”?&amp;nbsp; If a user is waiting for an application response, “too long” is whatever the user tolerance is.&amp;nbsp; If it’s a background process, the tolerance is likely much higher as long as the process can complete within its time window the overhead may not even be noticed.&lt;/p&gt;&lt;p&gt;In the early discussions of Data Gravity, the questions were often around “can I move my expensive database cluster to the Public Cloud while leaving my application on premises?”&amp;nbsp; And the answer was “no – it would add too much communication overhead, damaging the applications’ response time.”&lt;/p&gt;&lt;p&gt;Years later we’re in a different position.&amp;nbsp; Enterprises are mass uplifting applications.&amp;nbsp; Some are up in the cloud, some left behind in the data center.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;And suddenly many applications are encountering data latency.&amp;nbsp;&amp;nbsp;&lt;/p&gt;&lt;p&gt;When applications are interacting by direct database access to other applications, particularly interactive interactions (many queries as opposed to bulk queries), essentially they are tightly coupled.&amp;nbsp; And if one is in the cloud and another left behind in the data center, they’re subject to all the network overhead as well as any bandwidth limitations that may exist between the data center and cloud.&amp;nbsp; (Azure mitigates the bandwidth issue somewhat with “Express Route”, AWS with “Direct Connect.)&lt;/p&gt;&lt;p&gt;The bad news is that if the application has a frequent interaction pattern with the remote databases, there may be no good solution other than refactoring the application (and it’s often mature applications that may be in maintenance mode that are being uplifted – meaning it’s a problem) – particularly if the latency is causing unacceptable user impact.&amp;nbsp; If the problem is bandwidth, it will be time to invoke the network team to assure the traffic is following the optimum path, getting prioritized, and that sufficient bandwidth is available to meet the demand.&lt;/p&gt;&lt;p&gt;The summary is, before uplifting an application that uses direct database access to other applications/databases (whether code based, remote SQL, or something like SSIS), OR if the application is accessed via direct database access by other applications, check the interaction pattern to determine if additional latency is going to unacceptably impact performance.&lt;/p&gt;&lt;p&gt;[ There&#39;s another whole solution direction I&#39;m avoiding that only applies to large enterprises, namely AWS Outposts and Azure Stack, bringing the edge of the Public Cloud into physical proximity with the enterprise data center by placing a rack of AWS/Azure equipment into the data center.&amp;nbsp; With close local routing, both bandwidth and latency issues are avoided.&amp;nbsp; At the time I&#39;m writing this, AWS is creating mini-outposts, which may make it a viable option for smaller enterprises.&amp;nbsp; HOWEVER, this also assumes that organizations are going to be comfortable directly connecting AWS or Azure managed equipment (and networked back to them) into their data center. I can see the cyber-security team heads exploding from here. ]&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/6588012570754568711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/6588012570754568711'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2021/03/data-gravity-and-cloud-uplift-woes.html' title='Data Gravity and Cloud Uplift Woes'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-4950954065101739621</id><published>2021-01-06T20:26:00.003+02:00</published><updated>2021-01-07T10:27:14.799+02:00</updated><title type='text'>Serverless - Unintentional Granularity Problems</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ3bru15rzMDozvjm534jJcrzQry8u9zpp4k0hSI_oAKhsjAFqX3AbO-lncYBynA2Jos-3xcgZnSvx2FSXZt2ZKMl7Q9VCapNpN3q2zRkJeOYi2pUrTZ5jCubORhPnHPVunzqFvIiejg6U/&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;604&quot; data-original-width=&quot;1940&quot; height=&quot;162&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ3bru15rzMDozvjm534jJcrzQry8u9zpp4k0hSI_oAKhsjAFqX3AbO-lncYBynA2Jos-3xcgZnSvx2FSXZt2ZKMl7Q9VCapNpN3q2zRkJeOYi2pUrTZ5jCubORhPnHPVunzqFvIiejg6U/w518-h162/Screen+Shot+2021-01-06+at+19.51.05.png&quot; width=&quot;518&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Serverless is great, but serverless functions rarely run by themselves... they&#39;re usually connected to data sources - and frequently that means SQL databases.&lt;p&gt;&lt;/p&gt;&lt;p&gt;In the graphic attached, my cloud SQL database is collapsing under assault by a serverless function that&#39;s scaling up instances to meet demand. &amp;nbsp;Here&#39;s how we unintentionally created this problem:&lt;/p&gt;&lt;p&gt;To allow for parallel processing to speed processing, we&#39;ve taken a transactional billing file, broken it into groups of 30 transactions, loaded those into messages and queued them. &amp;nbsp;We then have a serverless function that&#39;s listening for these events, and if messages are still waiting after a certain amount of time, another instance is spawned to begin handling the waiting messages and processing.&lt;/p&gt;&lt;p&gt;When it was sent thousands of transactions, this worked great and the business users were suitably impressed with the processing speed (which dropped from many hours to a few minutes). &amp;nbsp;When they began sending larger transaction sets, tens of thousands, the processing speed remained great but the single instance database CPU began spiking. &amp;nbsp;No problem - it&#39;s cloud so size up the database instance (though don&#39;t ignore the very significant cost jump of moving from small instances to medium or large ones).&lt;/p&gt;&lt;p&gt;But when it was sent hundreds of thousands of transactions, the single instance database hit capacity. &amp;nbsp;&lt;i&gt;[ This is a common traditional relational database problem -- you hit capacity of CPU, Memory or IOPS - even if you size up your database you can only push so much volume through it. &amp;nbsp;This can be stretched with sizing up CPU and Memory if it&#39;s complicated or non-optimized SQL&#39;s, and with cloud databasing provisioning more IOPS if it&#39;s poorly indexed or doing huge reads and writes, but quickly gets very expensive and still has it&#39;s &#39;not too big&#39; limits. There are some tricks such as creating read replicas that can extend the ability to use a traditional SQL DB model. But that&#39;s not the focus of this article.]&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Serverless functions are &quot;throttle&quot;-able (in AWS this is called concurrency), and concurrency is set-able per serverless function, and this is the traditional way to handle this sort of problem. (This limits the performance, but there&#39;s always trade off&#39;s). &amp;nbsp;But this comes to the point of this article...&lt;/p&gt;&lt;p&gt;Concurrency is AT THE LEVEL of the (serverless) function. &amp;nbsp;If, for example, your function contains the code that handles many different processing situations or transaction types, because they are combined in the single deployed function, they can only be throttled at the level of the combined functionality. (If you wanted to allow up to 100 instances for transaction type one, but limit to 10 for a less time sensitive transaction type two, you can&#39;t segment it because the control is at the overall deployed function.)&lt;/p&gt;&lt;p&gt;Meaning part of the consideration for how to break down and deploy serverless functions needs to include at what level of granularity is needed to apply the levers of control (settings such as concurrency and function resource sizing) and monitoring.&lt;/p&gt;&lt;p&gt;In the graphic above, the team is using a serverless application framework (Laravel Vapor) that deploys the &lt;b&gt;full&lt;/b&gt; application into 3 separate functions: one responds to user interaction, one to messages, and one to command line interaction. &amp;nbsp;So it is impossible to throttle without providing the same limit, a combined limit, across a processing mode. &amp;nbsp;This team has some refactoring to do.&lt;/p&gt;&lt;p&gt;The granularity of the function deployment affects your ability to resource manage (and therefore the cost), as well as control and monitor of your functions. &amp;nbsp;&lt;/p&gt;&lt;p&gt;Architect and developer beware.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4950954065101739621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4950954065101739621'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2021/01/serverless-unintentional-granularity.html' title='Serverless - Unintentional Granularity Problems'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ3bru15rzMDozvjm534jJcrzQry8u9zpp4k0hSI_oAKhsjAFqX3AbO-lncYBynA2Jos-3xcgZnSvx2FSXZt2ZKMl7Q9VCapNpN3q2zRkJeOYi2pUrTZ5jCubORhPnHPVunzqFvIiejg6U/s72-w518-h162-c/Screen+Shot+2021-01-06+at+19.51.05.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-6711393763584198455</id><published>2019-05-02T14:31:00.004+03:00</published><updated>2019-05-02T14:52:34.519+03:00</updated><title type='text'>Cloud Native is already Yesterday</title><content type='html'>&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Cloud hosting, de-coupling (server) virtualization from the supporting hardware and moving it to a Public Cloud (letting the physical tier and network tier be someone else’s problem)&amp;nbsp;&lt;i&gt;is old news&lt;/i&gt;.&amp;nbsp;&amp;nbsp;Plenty of IT shops are still struggling with what to move, when or if to shut down their data centers, and the issues of data gravity… regardless, Cloud hosting has passed mainstream adoption and moved far into the Late Majority.&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: center; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8FQliA4f1lOAhw8NhRqNXY-PU8GVqqgtjScIj0H-sGIT0fvCxodSAx9S4ox8gXwqnhv-XD4XC0jM2GGM0NyQsIctRWfxYIKYVK8DQN7ZELrYmFz2_Pk7HefE2EA0w0-VP5p77gmuR9Wcr/s1600/techcycle.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;389&quot; data-original-width=&quot;693&quot; height=&quot;358&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8FQliA4f1lOAhw8NhRqNXY-PU8GVqqgtjScIj0H-sGIT0fvCxodSAx9S4ox8gXwqnhv-XD4XC0jM2GGM0NyQsIctRWfxYIKYVK8DQN7ZELrYmFz2_Pk7HefE2EA0w0-VP5p77gmuR9Wcr/s640/techcycle.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
The surprise is, Cloud Native, replacing ‘virtual machines’ and the implementation of application server (software), database server (software) and the like with “As A Service” Public Cloud services is also far along.&amp;nbsp;&amp;nbsp;And&amp;nbsp;&lt;b&gt;regardless of how far in the adoption cycle it is, it is far along in technology maturity. Far enough that the Public Cloud vendors have already built the next generation upon it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: center; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiorvz6J0vDUb_BsT2nq0fDlUtNtmGf0INldpTxkOmpE1-irOy1l2OnwLhfGIpVChT1UVW0ZjKZVo62J179Q7hAYqxNK61ZuSMavbs67_kLUlOHE44duiXYXsz3UMK4OOUFEl3hrQjRLwLn/s1600/techcycle2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;387&quot; data-original-width=&quot;581&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiorvz6J0vDUb_BsT2nq0fDlUtNtmGf0INldpTxkOmpE1-irOy1l2OnwLhfGIpVChT1UVW0ZjKZVo62J179Q7hAYqxNK61ZuSMavbs67_kLUlOHE44duiXYXsz3UMK4OOUFEl3hrQjRLwLn/s1600/techcycle2.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;b&gt;The next generation and next cycle, Cloud as the Application Service Layer, is already here, already market viable, and already becoming the base for the next generation of applications.&amp;nbsp;&amp;nbsp;&lt;/b&gt;And leveraging Cloud Native and Cloud Application Services, the pace of the change has significantly accelerated.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Technology &amp;amp; software changing at pace is nothing new.&amp;nbsp;&amp;nbsp;Every mid to large IT enterprise struggles with a tech portfolio and its associated life cycle.&amp;nbsp;&amp;nbsp;And almost no organization can afford to refresh its full tech portfolio and ends up managing generations of software and technology.&amp;nbsp;&amp;nbsp;The shift to Cloud is not only a technology shift,&amp;nbsp;&lt;b&gt;it’s also creating increased pace of the change cycle.&amp;nbsp;&amp;nbsp;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
The shift to Cloud started straightforward… once virtualization became the data center tech stack, the deployment of virtual machines and their resources (memory, disk, cpu) was already disassociated from the physical platforms.&amp;nbsp;&amp;nbsp;There were (and still are in many a private data center) system and resource admins to manage and plan the resource allocations and supporting equipment purchases, and deployments, and configurations, and patching, and maintenance, and and and…&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
The move to the Public Cloud moved the management from those system and resource admins to the Public Cloud provider.&amp;nbsp;&amp;nbsp;The management and maintenance of those resources, the planning, ordering, and installation, patching, and and and… became someone else’s problem.&amp;nbsp;&amp;nbsp;The IT organization could focus on the control and cost, but no longer has to be concerned with the management and operation of the underlying equipment, network, infrastructure, etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Which is awesome.&amp;nbsp;Jump to the Public Cloud, effectively outsource control of the lowest level of IT infrastructure – and retire the majority of the physical data center… let Amazon or Microsoft or Google build and maintain it.&amp;nbsp;&amp;nbsp;For IT enterprises, that’s the initial migration to the Cloud.&amp;nbsp;&amp;nbsp;&lt;i&gt;(This was initially referred to as IaaS, Infrastructure as a Service, when vendors and architects were trying to categorize cloud capabilities.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;b&gt;And then came Cloud Native.&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
The Public Cloud vendors began providing database services, queue services, storage services and more.&amp;nbsp;If an IT organization needs a database, it could have a system admin spin up a virtual machine, a database admin install the database software, set up backups, cluster it, set up monitoring, and it’s ready to be used… then bring in a DBA to tune, optimize, periodically patch, yearly version upgrade – cost cost time cost, all overhead (no direct business value).&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Or use a Cloud “database as a service”, pick the type of database needed and have a Cloud database at the ready.&amp;nbsp;&amp;nbsp;The Cloud provider spins up the capacity, the database instance, offers a selection backup options, clustering options, and keeps it patched and version upgraded.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Take the underlying infrastructure components and use Cloud “as a service” offerings, and be Cloud Native.&amp;nbsp;&lt;i&gt;(Is this advanced IaaS or moved up to Platform as a Service, the formal industry answer is “yes”.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;b&gt;But now the Cloud Providers have moved both up and down the stack – offering more Cloud Native capabilities and offering&amp;nbsp;&lt;u&gt;Cloud as the Application Service Layer&lt;/u&gt;built on their own Cloud Native stack.&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;u&gt;Down the stack&lt;/u&gt;:&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Build, install and manage a container manager (aka Docker and/or Kubernetes),&amp;nbsp;&lt;b&gt;or use one of various “Containers and Kubernetes as a Service” options&lt;/b&gt;(for example AWS Fargate which auto-manages most aspects of the container environment – at an additional cost, but significantly reducing the need for expertise and operations staff).&amp;nbsp;This effectively lets a team use “containers” as if they were serverless (but allows for long running processes).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Serverless takes this to a greater extend, allowing teams to deploy and run code without any infrastructure setup – virtual or otherwise.&amp;nbsp;&amp;nbsp;(But has limitations on running time, making a place for both containers and serverless depending on the business and programming approach used to meet it.)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;u&gt;Up the stack&lt;/u&gt;:&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Code and security validate an application security structure (with supporting LDAP database)&amp;nbsp;&lt;b&gt;or use “User Management as a Service”&lt;/b&gt;(such as AWS Cognito).&amp;nbsp;&amp;nbsp;Instead of weeks to months to build user management (and it would be wise to have it security tested), have a fully capable service added that is security certified completed in days to weeks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;u&gt;On top of the stack&lt;/u&gt;:&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
Take services being offered, such as AI services (built using cloud native database services built using basic cloud virtualization services), build up the model and offer business capabilities…as a service.&amp;nbsp;&amp;nbsp;Examples such as AWS Comprehend (OCR interpretation of scanned documents) or AWS Comprehend Medical (OCR specifically focused on medical documents), or AWS Lex (voice to text – voice enable an application).&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;b&gt;Cloud as an Application Service Layer means moving from building with legos to building with lego kits.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: center; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHt_RbXoZ9nuWKXdfYDzPCsI7m0fRmUChVpZByQSZ_AkYKOF-fdML4_-lGEKMvE8jeArCBdzwFBg4ZsRmdWLA5UBJ3zXRJBToUBNCMt5DnFFcUz1va40B-YhnLAYYuEFpmjsGmQ19LsHq_/s1600/lego.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;487&quot; data-original-width=&quot;585&quot; height=&quot;332&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHt_RbXoZ9nuWKXdfYDzPCsI7m0fRmUChVpZByQSZ_AkYKOF-fdML4_-lGEKMvE8jeArCBdzwFBg4ZsRmdWLA5UBJ3zXRJBToUBNCMt5DnFFcUz1va40B-YhnLAYYuEFpmjsGmQ19LsHq_/s400/lego.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
What’s the impact to the IT enterprise?&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;!--[if !supportLists]--&gt;&lt;span style=&quot;mso-list: Ignore;&quot;&gt;-&lt;span style=&quot;font: 7.0pt &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir=&quot;LTR&quot;&gt;&lt;/span&gt;Much faster application development, with supporting capabilities being used (as a service) rather than developed.&amp;nbsp;&amp;nbsp;This is a boon to the business, but will pose challenges for IT to adjust processes to accommodate the pace (CI/CD, continuous and automated QA, and user training).&lt;br /&gt;
&lt;a href=&quot;https://www.blogger.com/u/1/blogger.g?blogID=5816485381467598829&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/u/1/blogger.g?blogID=5816485381467598829&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/u/1/blogger.g?blogID=5816485381467598829&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/u/1/blogger.g?blogID=5816485381467598829&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/u/1/blogger.g?blogID=5816485381467598829&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://www.blogger.com/u/1/blogger.g?blogID=5816485381467598829&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;-&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Decrease in operations costs (though a significant portion of that will transfer to the bill for the cloud vendor services) through eliminating equipment, data centers, and lower level operations personnel.&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;This may mean repurposing staff, retiring vendor relationships, and figuring out how to manage software licensing in a dynamic environment (with each software vendor having different approaches).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;-&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;A need to build up management capabilities around the services being used.&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;While cloud resources are easy to activate, they are tricky to track and de-activate.&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Bills can grow and unused resources not be released if it’s not tracked and managed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;-&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;; font-size: 7pt; font-stretch: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span dir=&quot;LTR&quot; style=&quot;text-indent: -0.25in;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Change change and more change.&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;While IT has been trying to manage operations and security on the existing tech portfolio, the cloud vendors have pretty much had an open field with no legacy portfolio to support.&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;They’ve applied their full capabilities to creating new features, and are bootstrapping – showing how fast tech can move based on Cloud Native.&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;AWS Comprehend Medical shows an example of veering directly into business features.&lt;/span&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;br /&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt 0.5in; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt 0.5in; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
The use of Public Cloud is only going to accelerate, and their Application Server Layer capabilities plus AI and Machine Learning capabilities are quickly moving software into new capabilities.&amp;nbsp;&amp;nbsp;Is your organization Cloud Native+ ready?&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;-webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; caret-color: rgb(0, 0, 0); color: black; font-family: &amp;quot;Times New Roman&amp;quot;, serif; font-size: medium; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; margin: 0in 0in 0.0001pt; orphans: auto; text-align: start; text-decoration: none; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;style class=&quot;WebKit-mso-list-quirks-style&quot;&gt;
&lt;!--
/* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
 {mso-style-unhide:no;
 mso-style-qformat:yes;
 mso-style-parent:&quot;&quot;;
 margin:0in;
 margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;,serif;
 mso-fareast-font-family:&quot;Times New Roman&quot;;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
 {mso-style-priority:34;
 mso-style-unhide:no;
 mso-style-qformat:yes;
 margin-top:0in;
 margin-right:0in;
 margin-bottom:0in;
 margin-left:.5in;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;,serif;
 mso-fareast-font-family:&quot;Times New Roman&quot;;}
p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst
 {mso-style-priority:34;
 mso-style-unhide:no;
 mso-style-qformat:yes;
 mso-style-type:export-only;
 margin-top:0in;
 margin-right:0in;
 margin-bottom:0in;
 margin-left:.5in;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;,serif;
 mso-fareast-font-family:&quot;Times New Roman&quot;;}
p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle
 {mso-style-priority:34;
 mso-style-unhide:no;
 mso-style-qformat:yes;
 mso-style-type:export-only;
 margin-top:0in;
 margin-right:0in;
 margin-bottom:0in;
 margin-left:.5in;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;,serif;
 mso-fareast-font-family:&quot;Times New Roman&quot;;}
p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast
 {mso-style-priority:34;
 mso-style-unhide:no;
 mso-style-qformat:yes;
 mso-style-type:export-only;
 margin-top:0in;
 margin-right:0in;
 margin-bottom:0in;
 margin-left:.5in;
 margin-bottom:.0001pt;
 mso-add-space:auto;
 mso-pagination:widow-orphan;
 font-size:12.0pt;
 font-family:&quot;Times New Roman&quot;,serif;
 mso-fareast-font-family:&quot;Times New Roman&quot;;}
.MsoChpDefault
 {mso-style-type:export-only;
 mso-default-props:yes;
 font-family:&quot;Calibri&quot;,sans-serif;
 mso-ascii-font-family:Calibri;
 mso-ascii-theme-font:minor-latin;
 mso-fareast-font-family:Calibri;
 mso-fareast-theme-font:minor-latin;
 mso-hansi-font-family:Calibri;
 mso-hansi-theme-font:minor-latin;
 mso-bidi-font-family:Arial;
 mso-bidi-theme-font:minor-bidi;}
@page WordSection1
 {size:8.5in 11.0in;
 margin:1.0in 1.0in 1.0in 1.0in;
 mso-header-margin:.5in;
 mso-footer-margin:.5in;
 mso-paper-source:0;}
div.WordSection1
 {page:WordSection1;}
 /* List Definitions */
 @list l0
 {mso-list-id:1162618922;
 mso-list-type:hybrid;
 mso-list-template-ids:224722930 569159984 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
 {mso-level-start-at:0;
 mso-level-number-format:bullet;
 mso-level-text:-;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-.25in;
 font-family:&quot;Times New Roman&quot;,serif;
 mso-fareast-font-family:&quot;Times New Roman&quot;;}
@list l0:level2
 {mso-level-number-format:bullet;
 mso-level-text:o;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-.25in;
 font-family:&quot;Courier New&quot;;}
@list l0:level3
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-.25in;
 font-family:Wingdings;}
@list l0:level4
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-.25in;
 font-family:Symbol;}
@list l0:level5
 {mso-level-number-format:bullet;
 mso-level-text:o;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-.25in;
 font-family:&quot;Courier New&quot;;}
@list l0:level6
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-.25in;
 font-family:Wingdings;}
@list l0:level7
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-.25in;
 font-family:Symbol;}
@list l0:level8
 {mso-level-number-format:bullet;
 mso-level-text:o;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-.25in;
 font-family:&quot;Courier New&quot;;}
@list l0:level9
 {mso-level-number-format:bullet;
 mso-level-text:;
 mso-level-tab-stop:none;
 mso-level-number-position:left;
 text-indent:-.25in;
 font-family:Wingdings;}

--&gt;
&lt;/style&gt;&lt;br /&gt;
&lt;div align=&quot;center&quot; class=&quot;MsoNormal&quot; style=&quot;font-size: medium; text-align: center;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/6711393763584198455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/6711393763584198455'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2019/05/cloud-native-is-already-yesterday.html' title='Cloud Native is already Yesterday'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8FQliA4f1lOAhw8NhRqNXY-PU8GVqqgtjScIj0H-sGIT0fvCxodSAx9S4ox8gXwqnhv-XD4XC0jM2GGM0NyQsIctRWfxYIKYVK8DQN7ZELrYmFz2_Pk7HefE2EA0w0-VP5p77gmuR9Wcr/s72-c/techcycle.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-5695993565055982408</id><published>2018-08-13T22:34:00.001+03:00</published><updated>2018-08-13T22:34:23.474+03:00</updated><title type='text'>Enterprise Strength Integration - as of 2011</title><content type='html'>&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;Time for another historical integration presentation.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;From 2011 to a major corporate client,&amp;nbsp;visually&amp;nbsp;less&amp;nbsp;pleasing (and I had to reformat it off the customer’s corporate template), but the information value is high.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;Every presentation is contextual, but I think this one&#39;s got some pretty strong hints.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;Ongoing credit to @&lt;/span&gt;&lt;a href=&quot;https://www.linkedin.com/in/ACoAAAFSZwgBRjdwCwKlI18Yi3x5OvW0y6XZxzI/&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: #665ed0; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline; word-wrap: break-word;&quot; target=&quot;_blank&quot;&gt;Hillel Fuld&lt;/a&gt;&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;&amp;nbsp;for inspiring me to contribute, and congrats on his new&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.hillelfuld.com/&quot; rel=&quot;nofollow noopener&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: #665ed0; font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; font-size: 20px; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline; word-wrap: break-word;&quot; target=&quot;_blank&quot;&gt;https://www.hillelfuld.com&lt;/a&gt;&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;. While I&#39;ve seen the value of sharing and contributing in private live and community, Hillel demonstrates the strong value of sharing in the business world and being a mench.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;While these presentations are dated, I think they offer value understanding where the tech world was, how it has built up to where it is, and some key ideas that can make a difference in projects today.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;355&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;//www.slideshare.net/slideshow/embed_code/key/oXJwTklhmXYYj3&quot; style=&quot;border-width: 1px; border: 1px solid #ccc; margin-bottom: 5px; max-width: 100%;&quot; width=&quot;425&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
&lt;strong&gt; &lt;a href=&quot;https://www.slideshare.net/akivam/enterprise-strength-integration-as-of-2011&quot; target=&quot;_blank&quot; title=&quot;Enterprise Strength Integration (as of 2011)&quot;&gt;Enterprise Strength Integration (as of 2011)&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/akivam&quot; target=&quot;_blank&quot;&gt;Akiva Marks&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: rgba(0 , 0 , 0 , 0.74902); font-family: &amp;quot;source serif pro&amp;quot; , serif; font-size: 20px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div id=&quot;UMS_TOOLTIP&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; cursor: pointer; left: -100000px; position: absolute; top: -100000px; z-index: 2147483647;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5695993565055982408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5695993565055982408'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2018/08/enterprise-strength-integration-as-of.html' title='Enterprise Strength Integration - as of 2011'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-5163042236434882803</id><published>2018-08-12T21:05:00.001+03:00</published><updated>2018-08-13T22:34:41.441+03:00</updated><title type='text'>No SOA ROI - SOA is Dead? Getting real ROI from Integration - as of 2009</title><content type='html'>&lt;span class=&quot;ember-view&quot; id=&quot;ember8151&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: rgba(0 , 0 , 0 , 0.74902); font-family: , , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;roboto&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;fira sans&amp;quot; , &amp;quot;ubuntu&amp;quot; , &amp;quot;oxygen&amp;quot; , &amp;quot;oxygen sans&amp;quot; , &amp;quot;cantarell&amp;quot; , &amp;quot;droid sans&amp;quot; , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Continuing sharing of my historical enterprise architecture presentations, with a strong focus on enterprise systems integration. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;ember-view&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: rgba(0 , 0 , 0 , 0.74902); font-family: , , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;roboto&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;fira sans&amp;quot; , &amp;quot;ubuntu&amp;quot; , &amp;quot;oxygen&amp;quot; , &amp;quot;oxygen sans&amp;quot; , &amp;quot;cantarell&amp;quot; , &amp;quot;droid sans&amp;quot; , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;ember-view&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: rgba(0 , 0 , 0 , 0.74902); font-family: , , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;roboto&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;fira sans&amp;quot; , &amp;quot;ubuntu&amp;quot; , &amp;quot;oxygen&amp;quot; , &amp;quot;oxygen sans&amp;quot; , &amp;quot;cantarell&amp;quot; , &amp;quot;droid sans&amp;quot; , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Ongoing credit to @&lt;/span&gt;&lt;a class=&quot;tap-target feed-shared-text-view__mention ember-view&quot; href=&quot;https://www.linkedin.com/in/ACoAAAFSZwgBRjdwCwKlI18Yi3x5OvW0y6XZxzI/&quot; id=&quot;ember8155&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: #0084bf; font-family: -apple-system, system-ui, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, &amp;quot;Helvetica Neue&amp;quot;, &amp;quot;Fira Sans&amp;quot;, Ubuntu, Oxygen, &amp;quot;Oxygen Sans&amp;quot;, Cantarell, &amp;quot;Droid Sans&amp;quot;, &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;, &amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Lucida Grande&amp;quot;, Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 700; margin: 0px; padding: 0px; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot; target=&quot;_self&quot;&gt;Hillel Fuld&lt;/a&gt;&lt;span class=&quot;ember-view&quot; id=&quot;ember8159&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: rgba(0 , 0 , 0 , 0.74902); font-family: , , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;roboto&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;fira sans&amp;quot; , &amp;quot;ubuntu&amp;quot; , &amp;quot;oxygen&amp;quot; , &amp;quot;oxygen sans&amp;quot; , &amp;quot;cantarell&amp;quot; , &amp;quot;droid sans&amp;quot; , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&amp;nbsp;for inspiring me to contribute. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;ember-view&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: rgba(0 , 0 , 0 , 0.74902); font-family: , , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;roboto&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;fira sans&amp;quot; , &amp;quot;ubuntu&amp;quot; , &amp;quot;oxygen&amp;quot; , &amp;quot;oxygen sans&amp;quot; , &amp;quot;cantarell&amp;quot; , &amp;quot;droid sans&amp;quot; , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;ember-view&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: rgba(0 , 0 , 0 , 0.74902); font-family: , , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;roboto&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;fira sans&amp;quot; , &amp;quot;ubuntu&amp;quot; , &amp;quot;oxygen&amp;quot; , &amp;quot;oxygen sans&amp;quot; , &amp;quot;cantarell&amp;quot; , &amp;quot;droid sans&amp;quot; , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;While dated I hope they offer value understanding where the tech world was and how it has built up to where it is. &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;ember-view&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: rgba(0 , 0 , 0 , 0.74902); font-family: , , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;roboto&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;fira sans&amp;quot; , &amp;quot;ubuntu&amp;quot; , &amp;quot;oxygen&amp;quot; , &amp;quot;oxygen sans&amp;quot; , &amp;quot;cantarell&amp;quot; , &amp;quot;droid sans&amp;quot; , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span class=&quot;ember-view&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: rgba(0 , 0 , 0 , 0.74902); font-family: , , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;roboto&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;fira sans&amp;quot; , &amp;quot;ubuntu&amp;quot; , &amp;quot;oxygen&amp;quot; , &amp;quot;oxygen sans&amp;quot; , &amp;quot;cantarell&amp;quot; , &amp;quot;droid sans&amp;quot; , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;This presentation is older, 2009, less flashy and more wordy. &amp;nbsp;But may actually take you deeper through enterprise integration concepts. &amp;nbsp;Please comment if there are any points you&#39;d like to discuss.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;ember-view&quot; style=&quot;background-position: 0px 0px; border: 0px; box-sizing: inherit; color: rgba(0 , 0 , 0 , 0.74902); font-family: , , &amp;quot;blinkmacsystemfont&amp;quot; , &amp;quot;segoe ui&amp;quot; , &amp;quot;roboto&amp;quot; , &amp;quot;helvetica neue&amp;quot; , &amp;quot;fira sans&amp;quot; , &amp;quot;ubuntu&amp;quot; , &amp;quot;oxygen&amp;quot; , &amp;quot;oxygen sans&amp;quot; , &amp;quot;cantarell&amp;quot; , &amp;quot;droid sans&amp;quot; , &amp;quot;apple color emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui emoji&amp;quot; , &amp;quot;segoe ui symbol&amp;quot; , &amp;quot;lucida grande&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 14px; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;355&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;//www.slideshare.net/slideshow/embed_code/key/97lg4cl2bVuSu0&quot; style=&quot;border-width: 1px; border: 1px solid #ccc; margin-bottom: 5px; max-width: 100%;&quot; width=&quot;425&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
&lt;strong&gt; &lt;a href=&quot;https://www.slideshare.net/akivam/no-soa-roi-soa-is-dead-getting-soa-value&quot; target=&quot;_blank&quot; title=&quot;No SOA ROI - SOA is Dead? Getting SOA Value&quot;&gt;No SOA ROI - SOA is Dead? Getting SOA Value&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/akivam&quot; target=&quot;_blank&quot;&gt;Akiva Marks&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;div id=&quot;UMS_TOOLTIP&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; cursor: pointer; left: -100000px; position: absolute; top: -100000px; z-index: 2147483647;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5163042236434882803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5163042236434882803'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2018/08/no-soa-roi-soa-is-dead-getting-real-roi.html' title='No SOA ROI - SOA is Dead? Getting real ROI from Integration - as of 2009'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-7781426123062181678</id><published>2018-08-10T17:24:00.002+03:00</published><updated>2018-08-13T22:34:51.931+03:00</updated><title type='text'>SOA Methodology &amp; Strategy - as of 2010</title><content type='html'>I&#39;ve decided to share my library of presentations focused across my years in enterprise architecture in a US Fortune 50 corporation and my years as an enterprise architecture &amp;amp; integration consultant and IT management consultant in Israel.  I hope you enjoy.&lt;br /&gt;
&lt;br /&gt;
While they may be dated they may be of value to understand where some of our technologies and software catalogs of today are at, and where there can be some improvement.&lt;br /&gt;
&lt;br /&gt;
Here&#39;s the first... SOA (Service Oriented Architecture) Methodology circa 2010.&lt;br /&gt;
I credit &lt;a href=&quot;https://www.linkedin.com/in/ACoAAAFSZwgBRjdwCwKlI18Yi3x5OvW0y6XZxzI/?lipi=urn%3Ali%3Apage%3Ad_flagship3_profile_view_base_recent_activity_details_all%3BEpUNXdzBRgatVV2RIfj4pw%3D%3D&quot;&gt;Hillel Fuld&#39;s recent interview &lt;/a&gt;for the inspiration to share.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;355&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;//www.slideshare.net/slideshow/embed_code/key/e4zoXvwIand77B&quot; style=&quot;border-width: 1px; border: 1px solid #ccc; margin-bottom: 5px; max-width: 100%;&quot; width=&quot;425&quot;&gt; &lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;margin-bottom: 5px;&quot;&gt;
&lt;strong&gt; &lt;a href=&quot;https://www.slideshare.net/akivam/soa-methodology-strategy-as-of-2010&quot; target=&quot;_blank&quot; title=&quot;SOA Methodology - Strategy (as of 2010)&quot;&gt;SOA Methodology - Strategy (as of 2010)&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href=&quot;https://www.slideshare.net/akivam&quot; target=&quot;_blank&quot;&gt;Akiva Marks&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;div id=&quot;UMS_TOOLTIP&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; cursor: pointer; left: -100000px; position: absolute; top: -100000px; z-index: 2147483647;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/7781426123062181678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/7781426123062181678'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2018/08/soa-methodology-strategy.html' title='SOA Methodology &amp; Strategy - as of 2010'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-5041388462115817642</id><published>2016-07-11T17:14:00.001+03:00</published><updated>2016-07-11T17:14:16.258+03:00</updated><title type='text'>Amazon S3 Easy Scripted Backup from Windows for the Enterprise</title><content type='html'>&lt;p&gt;   &lt;br /&gt;I don’t normally post code, nor am I normally implementing scripts myself.&amp;#160; But sometimes to learn the ins and outs of a capability, you have to dive in and try it out.&amp;#160; Since I’ve been working with Amazon Web Services (AWS) via Windows, I’ve found a remarkable lack of sample scripts for using it, so I’m posing my little project here.&lt;/p&gt;  &lt;p&gt;For me, with heavy Unix scripting experience in my distant background, using Powershell and the &lt;a href=&quot;https://aws.amazon.com/powershell/&quot;&gt;AWS Powershell add-in&lt;/a&gt; was a no brainer.&amp;#160; While the syntax of Powershell is significantly different from Unix Bourne shell, the capabilities are practically identical, including piping.&lt;/p&gt;  &lt;p&gt;Now for the requirements: &lt;/p&gt;  &lt;p&gt;- I needed to backup to the Cloud for an offsite backup.   &lt;br /&gt;- The data needed to be encrypted with a client-managed key, but I had neither the tools nor onsite CPU or extra storage for client-site encrypting.    &lt;br /&gt;- The backed-up data needed to track changes or access.    &lt;br /&gt;- To show any modifications, the backed-up files needed to manage versions – so no changed version would overwrite a previous version.&lt;/p&gt;  &lt;p&gt;Here’s what I did…&lt;/p&gt;  &lt;p&gt;1. Set up a specific IAM user with permissions only for S3 by:   &lt;br /&gt;    &lt;br /&gt;- Created an AWS group titled “backup_group”.    &lt;br /&gt;- Attached the policy “AmazonS3FullAccess” and no others.    &lt;br /&gt;- Created users “backup_user1” &amp;amp; “backup_user2”.    &lt;br /&gt;- Stored these user’s REST access keys in a secure encrypted local location.    &lt;br /&gt;- Added both users to “backup_group”.&lt;/p&gt;  &lt;p&gt;2. Create a specific S3 bucket(s) for these backups, accessible only by the Backup user (and administrative user), with logging.   &lt;br /&gt;    &lt;br /&gt;- Created S3 bucket backup-logs with lifecycle setting, &lt;b&gt;DELETE&lt;/b&gt; all content 2 years old or older – meaning logs have a 2 year life. (If you don’t give log directories a lifecycle rule, they’ll accumulate forever with ever increasing storage costs.&amp;#160; Since this “disk” never “fills”, you won’t get any kind of log error that would force rotation, just an ever growing cost.)    &lt;br /&gt;    &lt;br /&gt;- Created S3 bucket “backup-for-bi”, enabled logging to “backup-logs” with subdirectory logs-bi/    &lt;br /&gt;- Created S3 bucket “backup-for-DB”, enabled logging to “backup-logs” to subdirectory logs-db/&lt;/p&gt;  &lt;p&gt;3. Enable versioning to preserve each copy and prevent hidden changes. – &lt;i&gt;enabled on both buckets.&lt;/i&gt;&lt;/p&gt;  &lt;p&gt;6. Utilize an upload command setting that requires encryption of the uploaded data with an client managed key, which will prevent any unencrypted download of the content even by Amazon.&amp;#160; Key will be stored locally.&lt;/p&gt;  &lt;p&gt;- Now this was particularly tricky and confusing, encryption keys not being my specialty.&amp;#160; AWS’s data encryption is AES 256, but generating an AES 256 key was rejected.&amp;#160; The command spec says it should be Base64 encoded, which I did but it was still rejected.&amp;#160; In the end I was able to generate an AES-128-cbc encrypt key from a passcode, and then Base64 encode that key which generated a 44 byte string (ending with =) that AWS accepted.&amp;#160; In essence, that Base64 string is, as far as we are concerned, the key – though I’m storing that key, the original password, and the 128 bit key and salt.&lt;/p&gt;  &lt;p&gt;With all that prep ready, here’s the Powershell to upload a list of directories, the list being embedded in the shell.&amp;#160; $accesskey equals the AWS IAM user access key shown by AWS on creation of the user.&amp;#160; $secretkey is also shown by AWS on creation of the user.&lt;/p&gt;  &lt;pre class=&quot;brush: powershell&quot;&gt;&amp;lt;#
.DESCRIPTION
    Upload Listed Directories to Amazon AWS S3
    
.NOTES
    PREREQUISITES:
    1) AWS Tools for PowerShell from http://console.aws.amazon.com/powershell/

.EXAMPLE
    powershell.exe .\AWS_Backup_Dirs.ps1  
#&amp;gt;

$bucket          = &amp;quot;nameofbackupbucket&amp;quot;
$backup_list     = &amp;quot;E:\Prod&amp;quot;, &amp;quot;E:\PreProd&amp;quot;
$AES256_key      = &amp;quot;AAAABBBBCCCCDDDDEEEE99991111222233334444777=&amp;quot;
$accesskey       = &amp;quot;ASDKLJASDFJKLASDF&amp;quot;
$secretkey       = &amp;quot;ASDLFJKWEIOPUQWERASDFJ/LASDFASDFASDFASDF&amp;quot;

try
{
    import-module &amp;quot;C:\Program Files (x86)\AWS Tools\PowerShell\AWSPowerShell\AWSPowerShell.psd1&amp;quot;
}
catch [system.exception] 
{
    $error_fail = &amp;quot;Error: AWS Powershell Extensions not installed or missing from expected location... &amp;quot; + $_.Exception.Message
    Write-Host $error_fail
    throw $error_fail
}

foreach ($backme in $backup_list)
{
    $bucket_subdir = Split-Path -Path $backme -Leaf
    try
    {
        Write-S3Object -BucketName $bucket -Folder $backme -Recurse -KeyPrefix $bucket_subdir -AccessKey $accesskey -SecretKey $secretkey -ServerSideEncryptionCustomerProvidedKey $AES256_key -ServerSideEncryptionCustomerMethod AES256
    }
    catch [system.exception] 
    {
        Write-Host  &amp;quot;Error: &amp;quot; $_.Exception.Message
    }
} &lt;/pre&gt;

&lt;p&gt;Notes:&lt;/p&gt;

&lt;p&gt;The –KeyPrefix specifies that the data will be written into subdirectories matching the last name of the directory path.&amp;#160; So if the path is D:\dog\cat, it will be stored on S3 in the subdir “cat”.&lt;/p&gt;

&lt;p&gt;This script can be set up as a scheduled task and run daily or weekly.&amp;#160; BUT, as written it will send up the whole directory, which can bear the cost of the full data transfer even if nothing has changed.&amp;#160; If you want incremental backups, you have to adjust the script to only find newer files, and loop to send them up one at a time (rather than the whole directory in this script).&lt;/p&gt;

&lt;p&gt;Hope this helps!&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5041388462115817642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5041388462115817642'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2016/07/amazon-s3-easy-scripted-backup-from.html' title='Amazon S3 Easy Scripted Backup from Windows for the Enterprise'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-8918314413016386574</id><published>2016-06-06T17:24:00.001+03:00</published><updated>2016-06-06T17:24:10.071+03:00</updated><title type='text'>Cloud Flexibility encounters IT Procurement Inflexibility</title><content type='html'>&lt;p&gt;   &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2ns9uLEXlFOh6kZwgBx3rfhfq0bba-EkU5Wsjvil7mtl2LkSunn7PlaYEoRlgSizRF-NinlCAA_dBlkT5Y84MG5Ca4CATIAuFjQLotiuHbYEQbTFIfzqYLDDn320b96OaR5PdfpKTLIKK/s1600-h/image%25255B3%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU5WiTFdvjkidDHwtEVN1Lbg9KU8teY9FzchpjR3Nq5fk6w5upt4xnXVC9NmJiamugz3cg1jV49um28pUbTGTiTLCtYsohFHcj28NnDeX_wljC0Nzpp2AenvE-Jqq161kza5t4ZaOT69D2/?imgmax=800&quot; width=&quot;304&quot; align=&quot;left&quot; height=&quot;176&quot; /&gt;&lt;/a&gt;The Cloud.&amp;#160; Whether it’s a mega-cloud provider in the public clouds, a private or managed cloud, on premises or off prem, cloud is all about flexibility.&amp;#160; Add an instance, add a service, it’s just a click.&lt;/p&gt;  &lt;p&gt;(Note the dynamic cloud, the ability of an app to dynamically expand it’s resources as load increases, remains mostly hype.&amp;#160; While this was one of the first great promises of the cloud-o-sphere, it has not translated into reality.&amp;#160; Even further, just shutting down non-production environments during the night or on a schedule can be a significant cost saver – but is not offered by the mega-providers.&amp;#160; At least in this area 3rd party cloud support vendors have stepped in – but many are not aware of this and end up with lots of idle time on compute nodes.)&lt;/p&gt;  &lt;p&gt;While the cloud providers offer that wonderful relatively instant service with a click, each one of those clicks carry a cost.&amp;#160; And cost means…IT procurement, the department focused on getting the best deal for their IT dollar and making those long term contracts that keep us operational.&amp;#160; And they have a process, a long process, for each item to be purchased.&lt;/p&gt;  &lt;p&gt;Cloud flexibility means I can just add a node or VM, and add a backup or DB or firewall.&amp;#160; IT procurement means forms and weeks and reviews.&lt;/p&gt;  &lt;p&gt;When we were purchasing compute capacity for the project for the year, which consisted of a series of servers and expensive software licenses, this made sense.&amp;#160; My purchase had significant cost and long term implications.&lt;/p&gt;  &lt;p&gt;With Cloud accounts, my “purchase” can be “unpurchased” at any time (at least in the public clouds – private clouds often require some time commitment), and it can start small and grow as the capacity need grows.&amp;#160; (In traditional IT, “new projects” often purchased their first 2 years of servers in their initial purchase – that’s how it was done, nobody wanted their project to be in trouble due to insufficient resources, which often meant over purchasing, and until the project was in production under actual production load they were often unclear of the actual server capacity that would be needed beyond a high level guesstimate…that could easily be 50% off.)&amp;#160; With Cloud, we can start small and increase capacity with ease as the actual usage grows.&lt;/p&gt;  &lt;p&gt;Obviously a significant positive NOT to have to buy capacity we’re not using today and may not use for 18 months.&amp;#160; AND we can increase to the ACTUAL need rather than a predicted need 2 years ago.&amp;#160; BUT…if we have to go through a full IT procurement process as we make those Cloud changes, we’re hobbled and unable to gain that value.&lt;/p&gt;  &lt;p&gt;This is not theoretical.&amp;#160; Try having a cloud vendor procedure a Purchase Order and Statement of Work for “Add Managed Backup to Node, $129.95 per month” and “Storage Encryption Service, $39.95 per month” – the experience isn’t pleasant for anyone and makes Cloud use somewhat impractical UNLESS we return to the old approach of over-estimate everything we need and buy (allocate all those high volume nodes and services) up front.&lt;/p&gt;  &lt;p&gt;It’s easy to overuse, over allocate, and not manage the cloud resources (not release resources and services no longer in active use), and IT procurement can provide necessary oversight and management of cloud resources.&amp;#160; But they have to come with new cloud flexible procedures to do so.&lt;/p&gt;  &lt;p&gt;Otherwise, the value of cloud services is lost.&lt;/p&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/8918314413016386574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/8918314413016386574'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2016/06/cloud-flexibility-encounters-it.html' title='Cloud Flexibility encounters IT Procurement Inflexibility'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgU5WiTFdvjkidDHwtEVN1Lbg9KU8teY9FzchpjR3Nq5fk6w5upt4xnXVC9NmJiamugz3cg1jV49um28pUbTGTiTLCtYsohFHcj28NnDeX_wljC0Nzpp2AenvE-Jqq161kza5t4ZaOT69D2/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-6341225465750394949</id><published>2015-11-25T18:49:00.001+02:00</published><updated>2015-11-25T18:49:44.581+02:00</updated><title type='text'>Continuous Integration vs. Micro-Services</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I was reading Mike Kavis’s &lt;a href=&quot;http://www.cloudtp.com/2015/11/20/not-7-ways-think-different-cloud/?utm_campaign=doppler-report&amp;amp;utm_source=hs_email&amp;amp;utm_medium=email&amp;amp;utm_content=23933140&amp;amp;_hsenc=p2ANqtz-9cfL9AFSVsmlonPyeiUEE0zR7-0qOEA7zaXA4bbcW3iJ_Ktm4e_PwdHU7jSFjr2SNILbWnOvYImcSR632gU2fI7EyZtw&amp;amp;_hsmi=23933140&quot;&gt;Do This, Not That: 7 Ways to Think Different in the Cloud&lt;/a&gt; and encountered what initially sounds like reasonable advice…but becomes absolutely unrealistic.&amp;#160; I’ll explain why at the end.&amp;#160; Mike writes…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Think Empower, Not Control&lt;/p&gt;    &lt;p&gt;The first thing many companies do when they start their cloud initiative is figure out how to lock it down. Too often, the people who own security and governance spend months (sometimes years) trying to figure out how to apply controls necessary to meet their security and regulatory requirements. Meanwhile, developers are not allowed to use the platform or worse yet, they whip out their credit card and build unsecured and ungoverned solutions in shadow clouds.&lt;/p&gt;    &lt;p&gt;We need to shift our thinking from “how can we prevent developers from screwing up” to “how can we empower developers” by providing security and governance services that are inherited as cloud resources are consumed. To do this, we need to get out of our silos and work collaboratively. Instead of enforcing security and governance controls by requiring rigorous reviews, we need to bake policies and best practices into the SDLC.     &lt;br /&gt;      &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Start with continuous integration (CI). Automate the build process and insert code scans that enforce coding best practices, security policies, and cloud architecture best practices. Fail the build if the code does not meet the appropriate policy requirements. Let the developers police themselves by using automation that relies on policies established by the security, governance and architecture teams. Set the policies and then get out of the way, letting the build process do the enforcement. Developers will get fast feedback from the CI process and quickly fix any compliance issues – they need to or the build will never get to production.&lt;/p&gt;    &lt;p&gt;Once applications are deployed, run continuous monitoring tools that look for violations or vulnerabilities. Here’s a novel idea: Replace meetings with tools that provide real time feedback.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Ahh, the magic of the perfect Software Development Life Cycle empowered by the perfect DevOps continuous integration.&amp;#160; That will surely solve the problems of breaking down silos and collaborative working, right?&lt;/p&gt;  &lt;p&gt;Sadly I’ve yet to encounter a technology or methodology that magically restructures the IT organization.&amp;#160; The IT organization structure has come into place due to business, IT management, and cultural drivers of the organization.&amp;#160; There are technology changes that have forced restructuring, but it’s always painful and time consuming.&amp;#160; Breaking silos is one of the hardest (as this usually challenges political control and authority structures – and people are loath to give up control / authority / influence.)&lt;/p&gt;  &lt;p&gt;Mike focuses on the second part and skips a key idea he presents in the first part.&amp;#160; Namely, give the developers the environment that’s the target.&amp;#160; Or, expanding on this idea… ARCHITECT your systems for their target environment.&amp;#160; Systems architected for cloud or hybrid scenarios (should it matter to the application if it’s deployed locally, locally on dedicated servers, VM’s, soft partitions, private cloud, public cloud…&lt;strong&gt;or a mix of all the above?)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Systems can easily be architected for distributed deployment…IF that thought goes into the requirements early on.&amp;#160; This may mean messaging and/or event driven architecture instead of real-time web services, even layering internal components to pass events instead of locally calling or instantiating.&amp;#160; By doing so the architecture becomes micro-service oriented, which at the macro level means component groups can be bundled into deployment packs and deployed across the various server / resource models as needed.&lt;/p&gt;  &lt;p&gt;It’s not can we break down the silos between people and teams – which may be appropriate but long and painful and STILL result in unwieldy systems.&amp;#160; It’s how we model the interaction between and within the silos that will give the flexibility to deploy anywhere and coordinate/communicate/integrate practically automatically.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/6341225465750394949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/6341225465750394949'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2015/11/continuous-integration-vs-micro-services.html' title='Continuous Integration vs. Micro-Services'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-3281787471768107645</id><published>2015-09-16T12:27:00.001+03:00</published><updated>2015-09-16T12:27:31.289+03:00</updated><title type='text'>Micro-Services vs. Business Service Granularity</title><content type='html'>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In the many discussions and architecture approaches I’m reading about Micro-Services, a key point seems to elude the conversation.&amp;#160; Namely, “What’s a Micro-Service?”&amp;#160; Not what are the technical properties of a micro-service, but rather what level of BUSINESS functionality should be encapsulated in a single service, a single “micro” service?&lt;/p&gt;  &lt;p&gt;One “formal” definition that’s floating around is this…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;...an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. There is a bare minimum of centralized management of these services, which may be written in different programming languages and use different data storage technologies. - &lt;em&gt;James Lewis and Martin Fowler via &lt;/em&gt;&lt;a title=&quot;http://techbeacon.com/&quot; href=&quot;http://techbeacon.com/&quot;&gt;&lt;em&gt;http://techbeacon.com/&lt;/em&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p align=&quot;left&quot;&gt;From the SOA (service oriented architecture) perspective, decomposing an application into it’s composite transactions and business objects, and wrapping them in accessible services, has been the trend for the past 15 years or so.&amp;#160; Applications have been turning into business engines, and in some cases the interface layer itself has been successfully moved from having low level interaction with the business code to using transaction / object / service layers.&amp;#160; Seeing an application or platform or suite that offers a full catalog of accessible transactions and objects (wrapped in services) has become the norm (and even at the code level, structuring the classes in a similar way).&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Example – Oracle e-Business Suite service catalog…&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcTL5Rfq9DwZ5D18_IIDPjPuEfxLmg-jAkJvLndcQaVRK4Mm7z9Q0y1MqQmUB2E2sPQfG8KKvkaGKgwzICuI-F6y1R-w4XvDrGnK5mRztort7pBcnVqrcpXzdw-F0p_4dEptmvr-uOE4-R/s1600-h/clip_image001%25255B1%25255D.jpg&quot;&gt;&lt;img title=&quot;clip_image001&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPRBf0OoJtt9beq6mfKLJ3I1MkphqNNo8EUECjAqb5FdTcdGbWXeLY2C22i7uah81KYSiau7P4nlwiheiDQ2HXB934bWgD5W7KTeIA7ut7z4f1RZrbQLLpvigH9Co9OZMYlmqdr73OZ8J1/?imgmax=800&quot; width=&quot;544&quot; height=&quot;537&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The micro-services architecture concept comes along and says “no no no, services should stand on their own”, to the technical point of being divorced from their implementation platform and container.&amp;#160; But at what level of granularity should BUSINESS SERVICES be implemented?&amp;#160; Can we build “virtual” applications that are logical composites of many “business micro services”, or do business transactions remain grouped as the combined code we refer to as “applications” and/or rolled up into “suites”?&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibmcwA5_mOudE5rcNZvi1HHrLY9XZ3GvGW_Y0SIfd36ps50GnyvVBIkkuZPjY5zEFEtRG40ARJbrRoTfGgjpR94dRhryFqD2SPZA6KupQWRdOxxFnKomYsKonjwuXh3xKqOE0wZehchUQa/s1600-h/image%25255B1%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: none; padding-top: 0px; padding-left: 0px; margin-left: auto; border-left: 0px; display: block; padding-right: 0px; margin-right: auto&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRI31mn5F_u034Muey4Og5HYinlXG-Q4sMLi3SuCiEsXyec2u7quPi48xSMSCX6bbkNRXCON2nb4OXZLxv1xmKaITNANCJir0aZ3M4WmFjgdES_MbUO7XjZNhq13Af3Ad8rEygFNTncPdo/?imgmax=800&quot; width=&quot;691&quot; height=&quot;528&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Years ago I was giving a presentation describing how applications are decomposing, as they become integrated with and real-time linked to other applications and thereby becoming distributed applications – with a follow up discussion of integration reliability, monitoring, control, security, etc.&amp;#160; The primary change of that generation was the application no longer standing on it’s own, even though that “it’s own” may have been data being imported or updated from other systems regularly.&amp;#160; The distributed application moved data out of it’s own system and onto an integration connection point, with the advantage of making the data (or transaction) much more up-to-date – (semi) real time data and transaction movement.&lt;/p&gt;  &lt;p&gt;But, my customers asked me, what if we are development NEW applications?&amp;#160; My answer - we would want to bundle the functionality differently, to allow more flexible combinations.&lt;/p&gt;  &lt;p&gt;• Break our “Application” model into…&lt;/p&gt;  &lt;p&gt;− Transaction Components&lt;/p&gt;  &lt;p&gt;− Process Components&lt;/p&gt;  &lt;p&gt;− Entities&lt;/p&gt;  &lt;p&gt;− all exposed as Services&lt;/p&gt;  &lt;p&gt;• Compose, Coordinate, Combine them into…&lt;/p&gt;  &lt;p&gt;− Business Processes&lt;/p&gt;  &lt;p&gt;− User Presentations &lt;/p&gt;  &lt;p&gt;− meaning “Applications”&lt;/p&gt;  &lt;p&gt;At the time, this still presented signification issues of managing, controlling, tracking, and securing.&amp;#160; API Management and Micro Services would seem (in theory, it’s early days) to resolve these issues.&amp;#160; Which means we can get to a direct discussion of granularity of BUSINESS SERVICES, allowing for BUSINESS ORIENTED MICRO SERVICES.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCdChTUcJ7CqKbvJUCnvwh4OE0P2uypEL0R6nfQK8yiGAqHd70o5sEZ-qbo3XHIUJvY6iXr6A_QTjYZk9Mv8kKCzdXdV1GupLcPVZdjEY0MHwKGdMwLoVQfcSnAesYZzCdnFQzaEuLNsJs/s1600-h/image8.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgejUSyWEeErNo5mfde_GKnY4gxCSvaB89hgOyEvLZXKLQTVIXolSQiKFGM1tKPY84nGNdQ6wSEQRmrJyUsZxAZiDSVMAd5lpi7dKspq_7MiE7m1T9zlXDsqHtjrtzAbooacRG8hmea2vFW/?imgmax=800&quot; width=&quot;404&quot; height=&quot;559&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A Business Unit has one or many Business Capabilities.&amp;#160; A Business Capability is a series of one or many Business Processes.&amp;#160; And a Business Process has one or many steps, each being a Business Service.&amp;#160; From the IT perspective…&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHd2oWEGEz6xa7Ah3Yy6W7Ec06w6f76jDfukgzdvquZGg8IhlZbzlquK27VTnfSA-S0s_rPT9kiAMV6zlK8-eOG6e8yDrGPUjaHoWvbkJoLSV3Cn6vxf4-TCf83Yj1G81-icoEtaNyqOmo/s1600-h/image12.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO-XU23oyxtmsd6AS7VA8GgqozMpBhHajWuaqUqR0cybnlRyUquaTFjksGYCTUGxL9WrqgcYlf1QsVo-uMJfkaTLmwcE9xifYflqAFzG7NK9wHaMWy2RGn2AX-WbvT7KL8n6EyeU38BW_e/?imgmax=800&quot; width=&quot;454&quot; height=&quot;472&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The Businesses processes map to Workflows or Business Process Automation’s from the IT implementation perspective.&amp;#160; In older applications workflow was encoded in the application itself.&amp;#160; Nowadays if the Business Services are encapsulated and exposed, they can be orchestrated externally via BPM (business process management), BPA (business process automation) or other integration layer controllers.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOyrYR6TIVZe6Ez8cZX5I1s8YnUKMqfgTrKF2wmiUAZBbRIwf6FQNRq2yKTpQQiXuiXBA4vtIfCIOr1fVCx900pZpTLRlM5GI6BIEkNmEa40RrYwx2DhHje9m_xqFxaFmH02htMwMOPm_n/s1600-h/image17.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Ov-SvVLDm1BIA42PAC909Zi31nQvATomTRXTufX2nlnHpFuGpylVOiWxeSbnsFQIbjFcRPxguBp8JZ2RJYWxbUq4E3HfpA9SSLq5zCxWDaaWE9AtsqAEueju2yQbEtQRd5d5DL4FpNvA/?imgmax=800&quot; width=&quot;604&quot; height=&quot;462&quot; /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The question is, of what granularity should those Business Services be, and therefore the corresponding IT Services?&amp;#160; How “micro” should a “micro-service” be?&amp;#160; Is “Invoice Management” with “Create Invoice / Query Invoice / Update Invoice / Pay Invoice” a (large) micro-service, or is “Invoice Object” a micro-service encapsulating only the persistence and structure of the invoice, and Create / Query / Update / Pay Invoice each being a separate micro-service?&amp;#160; (With the connectivity overhead and external orchestration overhead).&amp;#160; And would breaking the functionality down to that level of granularity offer a sufficient value to compensate for the added overhead?&lt;/p&gt;  &lt;p&gt;The answer is unclear.&amp;#160; The pure technology proponents would tell us to go full granularity, and not concern ourselves with the connectivity overhead – as that’s a container and implementation level problem – nor concern ourselves with the orchestration overhead, as that’s an analysis and mapping problem (with it’s own implementation overhead).&amp;#160; The deploying, hosting, and tracking of all those services should also be “easily” handled and managed by the environment.&amp;#160; We’ll see.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://techbeacon.com/why-your-project-may-not-be-ready-microservices#sthash.JtMpOI14.dpuf&quot; target=&quot;_blank&quot;&gt;Martin Heller at TechBeacon&lt;/a&gt; writes, “If a service looks cohesive and deals only with a single concern, then it&#39;s probably small enough. If, on the other hand, you look at a service interface and see a number of different concerns being combined, perhaps it&#39;s a candidate for further decomposition. At the other end of the spectrum, if the service doesn&#39;t do enough to feel useful, perhaps you overdid the decomposition and need to combine it with a related service. It&#39;s very much like the game of &amp;quot;find the objects&amp;quot; that people played when designing object-oriented software 25 years ago, but now the objects are services, not classes.”&lt;/p&gt;  &lt;p&gt;I believe this ties it nicely with the picture above.&amp;#160; A “business service”, such as Invoice Management, with it’s functions of create / query / update / pay, composes nicely into an IT service…and therefore (in the new terminology) a “micro-service”.&amp;#160; The only reason to decompose further would be IF there was a desire or ability to substitute the granular functionality from other developers / development teams / or application vendors.&amp;#160; And while that’s conceptually feasible, managing service catalogs at that level is simply not (yet) reasonably viable.&lt;/p&gt;  &lt;p&gt;What this says to me is that the ONLY difference between Micro-Services and the SOA Services of last year is the expectation that the corresponding code is sufficiently encapsulated to be independently deployable.&amp;#160; And while that independent deployability offers some interesting theoretical advantages, those advantages bring major management and control issues that have not been doing so well in practice.&amp;#160; Example – managing the service catalog.&amp;#160; SOA Governance, particularly design time governance, has not been successful in the field.&amp;#160; Few IT enterprises have gotten the ROI from the vendor offerings in this space.&amp;#160; API Management seems to be changing that, but still the point is managing and coordinating hundreds to thousands of coordinating services is a daunting task.&amp;#160; &lt;/p&gt;  &lt;p&gt;I would advise stepping carefully into Micro-Services.&amp;#160; Try a few small projects to understand the dynamics of the use pattern AND the management pattern.&amp;#160; There are advantages to be had, but risks as well.&amp;#160; It’s likely we’re seeing the future of software development.&amp;#160; But the control structures and supporting architecture patterns are not yet in place.&amp;#160; Tread carefully.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/3281787471768107645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/3281787471768107645'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2015/09/micro-services-vs-business-service.html' title='Micro-Services vs. Business Service Granularity'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPRBf0OoJtt9beq6mfKLJ3I1MkphqNNo8EUECjAqb5FdTcdGbWXeLY2C22i7uah81KYSiau7P4nlwiheiDQ2HXB934bWgD5W7KTeIA7ut7z4f1RZrbQLLpvigH9Co9OZMYlmqdr73OZ8J1/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-1340690661347169657</id><published>2014-12-31T14:51:00.001+02:00</published><updated>2014-12-31T14:51:05.442+02:00</updated><title type='text'>Big Ball of Mud Software</title><content type='html'>&lt;p&gt;&lt;em&gt;In the space of Software Architecture, the “Big Ball of Mud” represents “natural growth” – or the system that just adds and changes without ANY &lt;strong&gt;planned&lt;/strong&gt; architecture.&amp;#160; (&lt;/em&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Big_ball_of_mud&quot;&gt;&lt;em&gt;More on the Big Ball of Mud here&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.)&amp;#160; While we hear about it, and sometimes run into it as we have to solve project problems, how do you spot a software product in that mode?&lt;/em&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Side note… while traditionally a Big Ball of Mud is discussing gradual changes to a system or program, we also see a Big Ball of Mud in enterprise architecture in unplanned natural growth of the addition of various systems and technologies, and interfaces and interconnections between them.&amp;#160; While dealing with spaghetti code is tough, dealing with spaghetti connections and systems is extremely expensive and risky – but is all too frequent.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;em&gt;&lt;u&gt;Here’s a software product conversation I had this week&lt;/u&gt;…&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Please wait for a site operator to respond.&amp;#160;&amp;#160; You are now chatting with &#39;Randy&#39;.&amp;#160;&amp;#160; Your Issue ID for this chat is LTK1219208815693X&lt;/p&gt;  &lt;p&gt;Randy: Welcome to Unnamed Product Corporation Sales Support. My name is Randy, how may I help you today?&lt;/p&gt;  &lt;p&gt;Akiva: Hello Randy. I wish to sync Outlook between my Outlook, which is on my office network and exchange service, and an Outlook that&#39;s on an isolated (no internet connection) secure network. So my questions are:&lt;/p&gt;  &lt;p&gt;1 – is Product the tool for this (I actually only need to sync calendar)?&lt;/p&gt;  &lt;p&gt;2 - will I be able to install it without an internet connection (since the sync computer is on a non-internet-connected network)?&lt;/p&gt;  &lt;p&gt;(isolated computer does have a normal USB)&lt;/p&gt;  &lt;p&gt;Randy: Product has a feature to synchronize Outlook with a USB stick.&amp;#160; But to install Product Internet connection is necessary.&lt;/p&gt;  &lt;p&gt;Akiva: would seem to reduce the value of a USB sync.&amp;#160; (In other words, WHY IN THE WORLD would you sync by USB stick if you have an Internet connection?)&lt;/p&gt;  &lt;p&gt;Randy: Could you please clarify your two computers are connected to the same network?&lt;/p&gt;  &lt;p&gt;Akiva: no they are not.&amp;#160; Computer 1 is a normal internet connected laptop, connecting to an exchange server in office 1.&amp;#160; Computer 2 is on a disconnected private network with a private exchange server, with no external network connections.&lt;/p&gt;  &lt;p&gt;Randy: In this case the only option to synchronize your Outlooks is USB stick profile (great, this is what I want to do), but to install Product is necessary Internet connection.&lt;/p&gt;  &lt;p&gt;Akiva: Can you please confirm that? Your download page as a link that says &amp;quot;Full Standalone Installation* *Internet connection is not required during installation&amp;quot;&lt;/p&gt;  &lt;p&gt;Randy: Just a second.&amp;#160; I just talked with our technician, he confirmed that you are able to install Product without an Internet connection, sorry for the mistake.&lt;/p&gt;  &lt;p&gt;Akiva: It&#39;s ok. However, I’m trying it – it says it requires a particular KB patch to .Net 4.0 as a supporting component - which it tries to download. and of course fails - the computer has no internet. I&#39;m now trying to download and pre-install that component. (So tell your tech you were 1/2 right.)&lt;/p&gt;  &lt;p&gt;Randy: You are able to download Product trial version which has 14 days trial period and try it.&lt;/p&gt;  &lt;p&gt;Akiva: Ok, important question for the tech. When I buy it, does it require an internet connection to verify/certify/check the license id you provide?&lt;/p&gt;  &lt;p&gt;Randy: Internet connection is required to activate your license.&amp;#160; Also to renew it.&lt;/p&gt;  &lt;p&gt;Akiva: So, to confirm, you can install it stand alone but not buy it and use it that way. You have a stand alone install, but it requires an internet component to download. So... the product CANNOT be used on a stand-alone computer for sync.&lt;/p&gt;  &lt;p&gt;Randy: Yes, you are right.&amp;#160; May you have more questions for now?&lt;/p&gt;  &lt;p&gt;Akiva: Well that&#39;s just frustrating. Kind of makes the USB sync feature useless. Oh well, thanks anyway.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;So what happened here?&amp;#160; This company developed a non-network based sync option, then later developed an internet based licensing requirement that invalidates the non-network based sync option – basically making the product useless.&amp;#160; I wonder if they actually sell any of these, or sell them and have people demand refunds since it effectively is useless now.&amp;#160; Bad planning, no overall architecture to understand the impact of one feature set on the rest of the system. &lt;/em&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/1340690661347169657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/1340690661347169657'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2014/12/big-ball-of-mud-software.html' title='Big Ball of Mud Software'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-5486008356099703779</id><published>2014-12-25T17:22:00.001+02:00</published><updated>2014-12-25T17:22:34.843+02:00</updated><title type='text'>Bad Integration by Design or How to Make a Horrible Web Service</title><content type='html'>&lt;p&gt;To understand what makes easy integration or a “good web service”, it’s worth taking a glance at the historical methods of I.T. systems integration.&amp;#160; After all, business systems have been passing data around and/or activating each other, aka integrating, for almost as long as there has been commercial I.T. business systems (approximately since 1960).&amp;#160; &lt;/p&gt;  &lt;p&gt;The first major “interface” method between systems was throwing sequential fixed-length record files at each other.&amp;#160; This was pretty much the only method for 20 years and still remains in widespread use, though mostly around mainframe and legacy systems.&amp;#160; The system providing the interface, either outputting the data or providing a format for which to send it data, defines a field by field interface record, along with header and footer records.&amp;#160; Because these are fixed length records, the descriptive definition (the human readable documentation) must include the format and length of each field, along with any specialized logic interpretation or encoding.&amp;#160; For example, if a record represents a person, which includes their gender, it might specify a 1 byte single digit field, with a 0 representing male and a 1 representing female.&amp;#160; (Given that this appropriate started in the early days of computing, there is also a strong tendency to minimize data size – save the bytes! – leading to additional encoding logic within the definition.)&amp;#160; Because the definition is fixed length records, no data typing can be enforced within the data format, only at time of programmatic interpretation.&lt;/p&gt;  &lt;p&gt;So how did this approach work?&amp;#160; It worked great.&amp;#160; This is the base approach of generations of systems, especially financial and business systems.&amp;#160; &lt;/p&gt;  &lt;p&gt;If it worked great, why don’t we do this anymore?&lt;/p&gt;  &lt;p&gt;Answer: Because of the data typing (no enforcement in the format), the encoding (no enforcement in the format and not understandable without documentation), and other dependent logic (such as cross field validation instructions, example “if field 2 is female, then you may fill out the field 9 for number of pregnancies”), getting an interface build and correct would take 2-6 &lt;strong&gt;weeks &lt;/strong&gt;per connection.&amp;#160; So while this method worked, it was time consuming to successfully implement.&lt;/p&gt;  &lt;p&gt;API’s came along to allow direct activation, and defined a fixed set of data types required to activate.&amp;#160; This solved the problem of the first model’s data typing without enforcement, and part of the documentation problem (the data &lt;em&gt;types&lt;/em&gt; became self explanatory).&amp;#160; Further, the API’s could define descriptive names for the data fields, thereby providing some self-documenting ability within the API.&amp;#160; A major improvement.&lt;/p&gt;  &lt;p&gt;API’s, however, added a new problem: they were technology, and often version, dependent.&amp;#160; Meaning an API exposed on one system in one language in one release was compatible only with another system in a matching system / language / and version.&amp;#160; &lt;/p&gt;  &lt;p&gt;Regardless, integration via APIs was easier and faster.&amp;#160; And it became the base technology that allowed Windows, Unix and other modern operating systems to move from being simply an execution starter and hardware interface to being a facilitator of interaction between applications.&amp;#160; It further allowed a real-time interaction that was not possible previously.&amp;#160; That said, figuring out and correctly using an API could still take days to weeks.&amp;#160; Embedded cross field validation and logic would often slow down the process.&lt;/p&gt;  &lt;p&gt;API’s evolved in the next generation with REMOTE APIs.&amp;#160; Remote APIs moved the cross-application interaction to cross-system cross-environment interaction.&amp;#160; The original remote API technology with commercial success included DCOM, CORBA, and RMI.&amp;#160; All of these commercial implementations worked, but were very complicated and highly sensitive to perfect conditions.&amp;#160; And, for the most part, they were TECHNOLOGY specific (as well as being version specific).&amp;#160; So while they began to offer the new ability of remote invocation and/or coordinated system interaction, the environment had to be perfectly configured and matching technology and version.&lt;/p&gt;  &lt;p&gt;Each one of these generations of integration technology worked within it’s context and solved problems not previously solvable – offering new abilities and new opportunities.&amp;#160; Yet their limitations meant they remained niche solutions for specific narrow problems.&amp;#160; &lt;/p&gt;  &lt;p&gt;With the arrival of web services, a new integration level was reached.&amp;#160; Web Services offered all the previous abilities while adding key points:&lt;/p&gt;  &lt;p&gt;- The data format is XML, and therefore self descriptive.&lt;/p&gt;  &lt;p&gt;- The service and data format is defined with an XSD, and therefore is self validating.&lt;/p&gt;  &lt;p&gt;- The communication protocol is firewall and technology neutral and friendly.&lt;/p&gt;  &lt;p&gt;- The data format is technology neutral and supported by all development tools.&lt;/p&gt;  &lt;p&gt;With these abilities added to the historical ones, integration moved from a major project effort to…simple, trivial, fast.&amp;#160; And with that change web services and integration became more than just commonplace, it became the way to do things.&amp;#160; (This brings some new problems, such as integration spaghetti and interconnection dependencies, but that’s a different discussion.)&lt;/p&gt;  &lt;p&gt;So how do you make a horrible web service?&amp;#160; Simply strip away one more more of the primary advantages it offers.&amp;#160; Examples:&lt;/p&gt;  &lt;p&gt;-- Serialize language specific objects into your web service as one or more data items.&amp;#160; For example, serialize a .NET object into your web service.&amp;#160; The result, a web service that can only work with .NET (and of the appropriate version).&amp;#160; Yes, I’ve seen this done.&lt;/p&gt;  &lt;p&gt;-- Place “codes” in data fields in the web service.&amp;#160; For example, make a field &amp;lt;Gender&amp;gt; where “3” = Male and “1” = Female.&amp;#160; Then explain to the user of the web service that they must download your table of codes / values to insert the correct values or interpret the values.&amp;#160; This, sadly, is a not-uncommon error.&lt;/p&gt;  &lt;p&gt;-- Structure the XML as just a flat list of fields even though it could be placed in a hierarchy, or is in a hierarchy in the objects or database tables.&amp;#160; The corollary of this error is to expose multiple services for each level of a hierarchy rather than one service with a hierarchy.&amp;#160; This is the error of sharing data and not the business function / transaction.&amp;#160; All too common.&lt;/p&gt;  &lt;p&gt;In general, by stripping a web service approach to an earlier generation by stripping an ability, the result is a service of limited use, difficult re-use, and challenging to understand.&amp;#160; Each of these problems turns into extra time and complexity, the exact opposite of what services come to solve.&lt;/p&gt;  &lt;p&gt;I recommend avoiding these errors.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5486008356099703779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5486008356099703779'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2014/12/bad-integration-by-design-or-how-to.html' title='Bad Integration by Design or How to Make a Horrible Web Service'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-2952484052419486394</id><published>2014-10-21T18:02:00.001+03:00</published><updated>2014-10-21T18:02:14.772+03:00</updated><title type='text'>CIO Interview–Integration (SOA / SOAP / Web Services) Impact</title><content type='html'>&lt;p&gt;&lt;em&gt;Some years ago I interviewed a CIO of a Fortune 500 IT vendor as part of an Integration Improvement project. His responses helped shape the goals and roadmap of the project, as business drivers and goals should always be taken into account in how one models the architecture and integration space.&amp;#160;&amp;#160; The interview gives a great view of IT management business drivers in the integration space.&amp;#160; Company identifying information has been removed.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Question: How is integration?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;-- Almost everyone at our company is an expert on Information Systems.&lt;/p&gt;  &lt;p&gt;-- Our culture - everyone (department/division) believes their own numbers and requirements and doesn&#39;t believe anyone else&#39;s. Words like &amp;quot;mutual understanding&amp;quot; or &amp;quot;common terminology&amp;quot; didn&#39;t exist in the past.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The reason there is no real enterprise integration because of how the company is running. Each unit built their own systems.&lt;/li&gt;    &lt;li&gt;The other units came to IT and said &amp;quot;buy this for us or build this for us, exactly per our requirements&amp;quot;.&lt;/li&gt;    &lt;li&gt;Result, we have a large number of systems, majority home grown because building to our own specs was (considered) easier (in the past.)&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Today we want to do the opposite. We want to create best practices and show to our customers &amp;quot;this is the best way to manage your business&amp;quot;. To implement the best practice by picking the best packages (vendor software) that does those processes. (Best of breed approach - but the business idea behind it is best-of-breed to implement specific target business processes, some of which may be offered as solutions to customers.)&lt;/p&gt;  &lt;p&gt;Now we are not &amp;quot;developing&amp;quot; but coming with a solution. But there is no one company that can bring the best solutions across all the lines of business. Therefore we understand that we&#39;ll need multiple vendors to provide all the needs.&lt;/p&gt;  &lt;p&gt;We have a variety of lines of business. And there are different requirements in the different lines. So we have to come up with the best practices for each business unit...and they don&#39;t want to bother with integration (they don&#39;t see integration are part of their business goals - interoperating with other business units is not a focus for them). But they want us (IT) to build them one integrated view (across business units) of what&#39;s going on.&lt;/p&gt;  &lt;p&gt;The result - different packages (that we didn’t build), each from a different vendor. Some according to standards, some not [because sometimes the best solutions aren&#39;t standards compliant) and sometimes even different solutions from the same vendor are operating per different standards (a result of many vendor portfolios being built via acquisition).&lt;/p&gt;  &lt;p&gt;The expectation is to build a common integration layer that can integrate the various tools from the different vendors….AND provide a common process view and data view that we can analyze.&lt;/p&gt;  &lt;p&gt;...and the cost of maintaining this should go down (in comparison to today) and should continue to decrease.&lt;/p&gt;  &lt;p&gt;So adding new systems shouldn&#39;t create a linear growth in the cost. The company wants to measure IT...what is the cost according to what it should have been by adding more and more systems? And how does it compare to the current cost of today. They want us to reduce the real maintenance cost of today even though we&#39;re adding systems and capabilities.&lt;/p&gt;  &lt;p&gt;They want IT costs NOT TO GROW but provide additional capabilities (do more, spend the same).&lt;/p&gt;  &lt;p&gt;How to do it? Some kind of miracle (we have to find).   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Question: What&#39;s the time frame to meet these goals.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Answer: No one expects us to come up with all of this, this year. But what they do expect is new systems work should be meeting the new goals.&lt;/p&gt;  &lt;p&gt;ROI - people have to commit to improved project impact by showing over 5 years how costs in particular areas (for example integration support) will be reduced.&amp;#160; In order to make decisions we need to quantify everything as best as possible...even knowing some are assumptions that you can&#39;t really quantify at this stage. So we need to build a strict ROI but we can, for example, quantify values of agility &lt;em&gt;(an example I provided).&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Because we&#39;re in the process of replacing many older systems, we can easily quantify major ROI returns much faster. (Meaning switching old systems to a new method might have a very long ROI period, but incorporating the new method with the implementation of a new system eliminates a &amp;quot;change over&amp;quot; cost as that&#39;s already part of the old system replacement cost.)&lt;/p&gt;  &lt;p&gt;After we make a decision on best internal practices, the cost of new projects will automatically include the overhead of doing the interface according to the right method/pattern/etc. And it&#39;s our job to convince the managers that it has the long term value in reducing the maintenance costs.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Question: Cultural drivers?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Answer: Our main driver, being able to respond to customers needs and changing business. As a company operating in technology fields, the technology is constantly changing as is the business environment.&lt;/p&gt;  &lt;p&gt;We must be able to integrate new things very fast, and do so without destabilizing existing systems or significantly increasing support costs.&lt;/p&gt;  &lt;p&gt;Today the capabilities we (IT) give to the company are very low. We&#39;re not meeting the business requirements of new functionality the business demands. There is a long back log of features the business has requested that we can&#39;t provide within our available budget and resources. We need to be able to delivery fast and agile.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/2952484052419486394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/2952484052419486394'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2014/10/cio-interviewintegration-soa-soap-web.html' title='CIO Interview–Integration (SOA / SOAP / Web Services) Impact'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-8941120505820898117</id><published>2014-08-20T19:21:00.001+03:00</published><updated>2014-08-20T19:21:23.422+03:00</updated><title type='text'>How an Open Data Feed changed Israel’s Civil Defense</title><content type='html'>&lt;p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9ZrLU9nkgkXQq_tQdzL_p3CMxkn9yn4Aj99mNuImGO5U6r1kli4SLeAFjRCa_eQPcrG5XDdzGQSDPn_vjU8qsvWIlHdbYoFCb98a-cJLUtJvlwCQ-5FCwiBfgLn5yqjSlWXVQMtPkX9OG/s1600-h/image%25255B3%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 10px 0px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj76FID3tUT3jpTpSaPEaXVraTKvqtiyceTc99Y-mVDaaAcWk7SMHURGsK9kxCAIz3qxb6TRIBxRRQpd-Hp7IOZR88OLObZiRyC9S20HC_B3HkVUBJAGwC5KJ_8aSXwLKBL1pqRZZHrO9mK/?imgmax=800&quot; width=&quot;354&quot; align=&quot;left&quot; height=&quot;448&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Israel is under frequent, as frequent as every 10 minutes, rocket attack from Gaza.&amp;#160; While the Iron Dome rocket interception system has become famous as a technological marvel in the defense of the country, there are other technological marvels of note as well.&lt;/p&gt;  &lt;p&gt;The first step of any civil defense system is getting the civilians out of the way or under cover.&amp;#160; Israel has a network of neighborhood bomb shelters, building bomb shelters, and (in new construction) a “hardened room” in every private residence and on every floor of every office building.&amp;#160; When air raids were measured in hours or tens of minutes, all of these were adequate together with a nationwide network of air raid sirens.&lt;/p&gt;  &lt;p&gt;But modern circumstances have brought two new problems:&lt;/p&gt;  &lt;p&gt;- Rocket attack warnings are measured in SECONDS.&amp;#160; Fifteen seconds in towns near border regions, and 90-120 seconds in the center of the country.&lt;/p&gt;  &lt;p&gt;- As the country has suffered suburban sprawl, built malls and cinema mega-plexes, modern skyscrapers, joined the problems of traffic jams, and built it all with modern climate control (meaning sealed or closed windows and A/C), HEARING alarm sirens has become a problem.&lt;/p&gt;  &lt;p&gt;Like any government agency, the Israeli Civil Defense department – a division of the Israeli army – has implemented big project approaches to these problems.&amp;#160; A radio based pager like messaging device… too expensive except for large businesses or office buildings (which can then manually alert tenants).&amp;#160; A cell based pager messaging device with digital output… with reception problems and a complicated interface requiring special software – again making it of limited use.&amp;#160; The newest addition, SMS messages to all cell phones from cell towers in an alert area, a massive project that required integration with all the cell phone providers but only results in a regular SMS “ding” – making it useless.&lt;/p&gt;  &lt;p&gt;A lot of effort and a lot of money with the problem continuing to grow and the current solutions offering only limited impact.&lt;/p&gt;  &lt;p&gt;But then something amazing happened.&amp;#160; The Civil Defense department public web site integrated a real time alert box onto the site.&amp;#160; It was unnoticed by almost everybody except for a young man in southern Israel in a community frequently targeted.&amp;#160; Since a web page is, by nature, open source, he looked into the page to determine where they were getting their data – their real time data of civil defense alerts for Israel.&lt;/p&gt;  &lt;p&gt;He took the data feed, a nicely formed JSON data URL, set up a server polling it, and built an Android client.&amp;#160; This became the first “Code Red Israel” alert app.&amp;#160; Someone else contacted him and asked to use his server, and built an iPhone edition.&amp;#160; This was 2 years ago.&lt;/p&gt;  &lt;p&gt;With the current conflict and the terrorists expanding their targeting to civilian cities and towns across Israel, the apps gained notoriety.&amp;#160; But so did the people interested in creating additional abilities, options, and clients.&amp;#160; And an explosion in apps and abilities has been created over the past two months.&lt;/p&gt;  &lt;p&gt;Examples include: real time alert monitoring web pages (in Hebrew and English), extensions for Chrome, iPhone and iPad apps that offer various sounds, filtering by city, maps of alert locations, commenting to share thoughts of being targeted, Android apps to do all of the same – in Hebrew, English, or Russian (major languages used by segments of the population in Israel).&amp;#160; And like any app category, there’s become a competition between apps on offering the most useful features – even though most of the apps / pages / extensions do not charge or even offer ads (meaning they’re covering their development and server costs out of pocket).&lt;/p&gt;  &lt;p&gt;Today while waiting in line at a grocery store or sitting in an office, almost everyone’s phone will go off if there’s an alert – some for only the local area, some for the whole country (as each person prefers).&lt;/p&gt;  &lt;p&gt;There’s a key additional point.&amp;#160; The data feed seems to be providing the alert data seconds before the actual sirens go off.&amp;#160; So it is possible to get the alert up to ten seconds before the sirens actually go off!&amp;#160; (Depending on the speed of the monitoring service.)&lt;/p&gt;  &lt;p&gt;So while the Civil Defense department spent years and millions on building up a technological infrastructure, their biggest success was by accidentally offering an open JSON data feed.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;My personal alert project is a web 2.0 site at &lt;a href=&quot;http://IsraelSirens.com&quot;&gt;http://IsraelSirens.com&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/8941120505820898117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/8941120505820898117'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2014/08/how-open-data-feed-changed-israels.html' title='How an Open Data Feed changed Israel’s Civil Defense'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj76FID3tUT3jpTpSaPEaXVraTKvqtiyceTc99Y-mVDaaAcWk7SMHURGsK9kxCAIz3qxb6TRIBxRRQpd-Hp7IOZR88OLObZiRyC9S20HC_B3HkVUBJAGwC5KJ_8aSXwLKBL1pqRZZHrO9mK/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-4084376694759233035</id><published>2014-07-18T01:50:00.005+03:00</published><updated>2014-07-18T01:50:39.634+03:00</updated><title type='text'>MDM &amp; SOA - Layer, Repurpose or Replace?</title><content type='html'>&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;HE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;
   &lt;m:brkBin m:val=&quot;before&quot;/&gt;
   &lt;m:brkBinSub m:val=&quot;&amp;#45;-&quot;/&gt;
   &lt;m:smallFrac m:val=&quot;off&quot;/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val=&quot;0&quot;/&gt;
   &lt;m:rMargin m:val=&quot;0&quot;/&gt;
   &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;
   &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;
   &lt;m:intLim m:val=&quot;subSup&quot;/&gt;
   &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;br /&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;false&quot;
  DefSemiHidden=&quot;false&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;371&quot;&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Normal Indent&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;footnote text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;annotation text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;header&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;footer&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;table of figures&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;envelope address&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;envelope return&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;footnote reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;annotation reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;line number&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;page number&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;endnote reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;endnote text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;table of authorities&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;macro&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;toa heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Closing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Signature&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;Default Paragraph Font&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text Indent&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Message Header&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Salutation&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Date&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text First Indent&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text First Indent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Note Heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text Indent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text Indent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Block Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Hyperlink&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;FollowedHyperlink&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Document Map&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Plain Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;E-mail Signature&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Top of Form&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Bottom of Form&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Normal (Web)&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Acronym&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Address&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Cite&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Code&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Definition&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Keyboard&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Preformatted&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Sample&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Typewriter&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Variable&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Normal Table&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;annotation subject&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;No List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Outline List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Outline List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Outline List 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Simple 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Simple 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Simple 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Colorful 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Colorful 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Colorful 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table 3D effects 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table 3D effects 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table 3D effects 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Contemporary&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Elegant&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Professional&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Subtle 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Subtle 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Web 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Web 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Web 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Balloon Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;Table Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Theme&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; Name=&quot;Placeholder Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; Name=&quot;Revision&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; QFormat=&quot;true&quot;
   Name=&quot;List Paragraph&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; QFormat=&quot;true&quot;
   Name=&quot;Intense Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; QFormat=&quot;true&quot;
   Name=&quot;Subtle Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; QFormat=&quot;true&quot;
   Name=&quot;Intense Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; QFormat=&quot;true&quot;
   Name=&quot;Subtle Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; QFormat=&quot;true&quot;
   Name=&quot;Intense Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;Bibliography&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;41&quot; Name=&quot;Plain Table 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;42&quot; Name=&quot;Plain Table 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;43&quot; Name=&quot;Plain Table 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;44&quot; Name=&quot;Plain Table 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;45&quot; Name=&quot;Plain Table 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;40&quot; Name=&quot;Grid Table Light&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot; Name=&quot;Grid Table 1 Light&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot; Name=&quot;Grid Table 6 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot; Name=&quot;Grid Table 7 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot; Name=&quot;List Table 1 Light&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot; Name=&quot;List Table 6 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot; Name=&quot;List Table 7 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 6&quot;/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
 {mso-style-name:&quot;Table Normal&quot;;
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-parent:&quot;&quot;;
 mso-padding-alt:0in 5.4pt 0in 5.4pt;
 mso-para-margin:0in;
 mso-para-margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:10.0pt;
 font-family:&quot;Times New Roman&quot;,&quot;serif&quot;;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;i&gt;An Architect Friend sent me this extended architecture question...&lt;/i&gt; &lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;I recently joined a company that provides business
     consulting (via many MBAs) services related to sales and marketing&lt;/span&gt;.&amp;nbsp; &lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Most clients are large pharma companies&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;In addition to consultants, there are business process
     outsourcing teams (offshore) that do operations (like incentive plan
     management, report distribution, etc.)&lt;/span&gt;&amp;nbsp; &lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;There is also BI/reporting group that creates BI/DW
     solutions (custom ones using template approach) for large clients&lt;/span&gt;.&amp;nbsp; &lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Plus there is an Software Development group (SD)&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Over the years the Software Development group of the
     company created various (10+) browser-based (.NET/SQL)
     point-solutions/tools to help consultants (and eventually some
     head-quarters users) perform specific tasks. For example:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;- Designing sales
      territories and managing the alignment of reps to territories&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;- Custom ETL-based tools
      to perform incentive calculation&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;- Some Salesforce-like
      platform for creating custom form-based apps&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The applications are architected as single-tenant –
     with some deployment tricks to be able to deploy an “instance per client”
     on the web servers. The databases are isolated per client/instance.&lt;/span&gt;&amp;nbsp; &lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The tools are sold as if they are part of an integrated
     suite, but they aren’t natively integrated and require custom integration&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;There is a custom grown ETL-like tool for
     interconnecting the tools to each other (but not standard connections
     since the data models are all “flexible” and not well defined) plus
     Informatica and Boomi to get data from clients.&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Some clients use one tool, some use 2, some use 3, etc.&lt;/span&gt;&amp;nbsp; &lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Some tools are used directly by the client, but most
     are used by the consulting teams on behalf of the client.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Lately, there is desire to make it all “integrated”
     across the company (SD + BI + all else)&lt;/span&gt;.&amp;nbsp; &lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;Two main themes are emerging (even prior to me
     joining): “common data model” and “SOA”.&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;There is also the question of letting existing
     applications function as-is and developing new ones on a more proper
     architecture versus trying to evolve the existing apps.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;However, the understanding of how this applies to an
     Enterprise looking inward on its own systems and trying to align them,
     versus Independent Software Vendor (ISV) looking to build software for
     other Enterprises did not yet sink in… and concepts are being confused…&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;;&quot;&gt;The tension between a standardized productized software
     versus customized (consulting company) software solution is not yet
     resolved.&lt;/span&gt;&lt;br /&gt;

&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
I
wanted to ask if you had experience in environments were an ISV was trying to
define the enterprise architecture of their solutions for customers versus
their own internal architecture.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
Are
there any case-studies or resources you could point me to get some reference
architecture examples?&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
I
usually do not like “next gen” approaches, but I am not seeing much potential
in evolution of existing assets into an integrated state (they have a lot of
“baggage” and features that were there but don’t play nicely with “integrated”
world-view).&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
=============&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;b&gt;Here&#39;s my answer:&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:WordDocument&gt;
  &lt;w:View&gt;Normal&lt;/w:View&gt;
  &lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
  &lt;w:TrackMoves/&gt;
  &lt;w:TrackFormatting/&gt;
  &lt;w:PunctuationKerning/&gt;
  &lt;w:ValidateAgainstSchemas/&gt;
  &lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
  &lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
  &lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
  &lt;w:DoNotPromoteQF/&gt;
  &lt;w:LidThemeOther&gt;EN-US&lt;/w:LidThemeOther&gt;
  &lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
  &lt;w:LidThemeComplexScript&gt;HE&lt;/w:LidThemeComplexScript&gt;
  &lt;w:Compatibility&gt;
   &lt;w:BreakWrappedTables/&gt;
   &lt;w:SnapToGridInCell/&gt;
   &lt;w:WrapTextWithPunct/&gt;
   &lt;w:UseAsianBreakRules/&gt;
   &lt;w:DontGrowAutofit/&gt;
   &lt;w:SplitPgBreakAndParaMark/&gt;
   &lt;w:EnableOpenTypeKerning/&gt;
   &lt;w:DontFlipMirrorIndents/&gt;
   &lt;w:OverrideTableStyleHps/&gt;
  &lt;/w:Compatibility&gt;
  &lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
  &lt;m:mathPr&gt;
   &lt;m:mathFont m:val=&quot;Cambria Math&quot;/&gt;
   &lt;m:brkBin m:val=&quot;before&quot;/&gt;
   &lt;m:brkBinSub m:val=&quot;&amp;#45;-&quot;/&gt;
   &lt;m:smallFrac m:val=&quot;off&quot;/&gt;
   &lt;m:dispDef/&gt;
   &lt;m:lMargin m:val=&quot;0&quot;/&gt;
   &lt;m:rMargin m:val=&quot;0&quot;/&gt;
   &lt;m:defJc m:val=&quot;centerGroup&quot;/&gt;
   &lt;m:wrapIndent m:val=&quot;1440&quot;/&gt;
   &lt;m:intLim m:val=&quot;subSup&quot;/&gt;
   &lt;m:naryLim m:val=&quot;undOvr&quot;/&gt;
  &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;w:LatentStyles DefLockedState=&quot;false&quot; DefUnhideWhenUsed=&quot;false&quot;
  DefSemiHidden=&quot;false&quot; DefQFormat=&quot;false&quot; DefPriority=&quot;99&quot;
  LatentStyleCount=&quot;371&quot;&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;0&quot; QFormat=&quot;true&quot; Name=&quot;Normal&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; QFormat=&quot;true&quot; Name=&quot;heading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;9&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;heading 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;toc 9&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Normal Indent&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;footnote text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;annotation text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;header&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;footer&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;index heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;35&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;caption&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;table of figures&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;envelope address&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;envelope return&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;footnote reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;annotation reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;line number&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;page number&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;endnote reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;endnote text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;table of authorities&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;macro&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;toa heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Bullet 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Number 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;10&quot; QFormat=&quot;true&quot; Name=&quot;Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Closing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Signature&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;Default Paragraph Font&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text Indent&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;List Continue 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Message Header&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;11&quot; QFormat=&quot;true&quot; Name=&quot;Subtitle&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Salutation&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Date&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text First Indent&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text First Indent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Note Heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text Indent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Body Text Indent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Block Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Hyperlink&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;FollowedHyperlink&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;22&quot; QFormat=&quot;true&quot; Name=&quot;Strong&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;20&quot; QFormat=&quot;true&quot; Name=&quot;Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Document Map&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Plain Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;E-mail Signature&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Top of Form&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Bottom of Form&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Normal (Web)&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Acronym&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Address&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Cite&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Code&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Definition&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Keyboard&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Preformatted&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Sample&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Typewriter&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;HTML Variable&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Normal Table&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;annotation subject&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;No List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Outline List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Outline List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Outline List 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Simple 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Simple 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Simple 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Classic 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Colorful 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Colorful 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Colorful 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Columns 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Grid 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 7&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table List 8&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table 3D effects 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table 3D effects 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table 3D effects 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Contemporary&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Elegant&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Professional&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Subtle 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Subtle 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Web 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Web 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Web 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Balloon Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; Name=&quot;Table Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; UnhideWhenUsed=&quot;true&quot;
   Name=&quot;Table Theme&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; Name=&quot;Placeholder Text&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;1&quot; QFormat=&quot;true&quot; Name=&quot;No Spacing&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; SemiHidden=&quot;true&quot; Name=&quot;Revision&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;34&quot; QFormat=&quot;true&quot;
   Name=&quot;List Paragraph&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;29&quot; QFormat=&quot;true&quot; Name=&quot;Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;30&quot; QFormat=&quot;true&quot;
   Name=&quot;Intense Quote&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;60&quot; Name=&quot;Light Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;61&quot; Name=&quot;Light List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;62&quot; Name=&quot;Light Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;63&quot; Name=&quot;Medium Shading 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;64&quot; Name=&quot;Medium Shading 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;65&quot; Name=&quot;Medium List 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;66&quot; Name=&quot;Medium List 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;67&quot; Name=&quot;Medium Grid 1 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;68&quot; Name=&quot;Medium Grid 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;69&quot; Name=&quot;Medium Grid 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;70&quot; Name=&quot;Dark List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;71&quot; Name=&quot;Colorful Shading Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;72&quot; Name=&quot;Colorful List Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;73&quot; Name=&quot;Colorful Grid Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;19&quot; QFormat=&quot;true&quot;
   Name=&quot;Subtle Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;21&quot; QFormat=&quot;true&quot;
   Name=&quot;Intense Emphasis&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;31&quot; QFormat=&quot;true&quot;
   Name=&quot;Subtle Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;32&quot; QFormat=&quot;true&quot;
   Name=&quot;Intense Reference&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;33&quot; QFormat=&quot;true&quot; Name=&quot;Book Title&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;37&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; Name=&quot;Bibliography&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;39&quot; SemiHidden=&quot;true&quot;
   UnhideWhenUsed=&quot;true&quot; QFormat=&quot;true&quot; Name=&quot;TOC Heading&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;41&quot; Name=&quot;Plain Table 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;42&quot; Name=&quot;Plain Table 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;43&quot; Name=&quot;Plain Table 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;44&quot; Name=&quot;Plain Table 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;45&quot; Name=&quot;Plain Table 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;40&quot; Name=&quot;Grid Table Light&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot; Name=&quot;Grid Table 1 Light&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot; Name=&quot;Grid Table 6 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot; Name=&quot;Grid Table 7 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;Grid Table 1 Light Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;Grid Table 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;Grid Table 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;Grid Table 4 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;Grid Table 5 Dark Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;Grid Table 6 Colorful Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;Grid Table 7 Colorful Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot; Name=&quot;List Table 1 Light&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot; Name=&quot;List Table 6 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot; Name=&quot;List Table 7 Colorful&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 1&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 2&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 3&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 4&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 5&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;46&quot;
   Name=&quot;List Table 1 Light Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;47&quot; Name=&quot;List Table 2 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;48&quot; Name=&quot;List Table 3 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;49&quot; Name=&quot;List Table 4 Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;50&quot; Name=&quot;List Table 5 Dark Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;51&quot;
   Name=&quot;List Table 6 Colorful Accent 6&quot;/&gt;
  &lt;w:LsdException Locked=&quot;false&quot; Priority=&quot;52&quot;
   Name=&quot;List Table 7 Colorful Accent 6&quot;/&gt;
 &lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
 /* Style Definitions */
 table.MsoNormalTable
 {mso-style-name:&quot;Table Normal&quot;;
 mso-tstyle-rowband-size:0;
 mso-tstyle-colband-size:0;
 mso-style-noshow:yes;
 mso-style-priority:99;
 mso-style-parent:&quot;&quot;;
 mso-padding-alt:0in 5.4pt 0in 5.4pt;
 mso-para-margin:0in;
 mso-para-margin-bottom:.0001pt;
 mso-pagination:widow-orphan;
 font-size:10.0pt;
 font-family:&quot;Times New Roman&quot;,&quot;serif&quot;;}
&lt;/style&gt;
&lt;![endif]--&gt;

&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
I
wanted to ask if you had experience in environments were an ISV was trying to
define the enterprise architecture of their solutions for customers versus
their own internal architecture.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
-&lt;span style=&quot;font-size: 7.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;No,
though I have built integration competency centers and projects that were
providing service environments across very large scale enterprises of disparate
divisions. &lt;br /&gt;


&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
Are
there any case-studies or resources you could point me to get some reference
architecture examples?&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
-&lt;span style=&quot;font-size: 7.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;Not
that I know of.&amp;nbsp; I&#39;m not much of a fan of such studies, mostly because the
requirements and details are always highly complex, and those details directly
affect the approaches taken.&amp;nbsp; Studies and reference architectures provide
a nice high level structure – but the more you try to keep to them in the
details the less effective they are (as they are mismatched to the exact
situation).&amp;nbsp; I use bits of Togaf-9 from &lt;a href=&quot;http://opengroup.org/&quot; target=&quot;_blank&quot;&gt;opengroup.org&lt;/a&gt;, bits of CBDI from Everware &lt;a href=&quot;http://www.everware-cbdi.com/&quot; target=&quot;_blank&quot;&gt;http://www.everware-cbdi.com/&lt;/a&gt;,
and various tidbits picked up from Zapthink (though every few years they
discuss the benefits of yet another framework).&lt;br /&gt;
&lt;br /&gt;


&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
I
usually do not like “next gen” approaches, but I am not seeing much potential in
evolution of existing assets into an integrated state (they have a lot of
“baggage” and features that were there but don’t play nicely with “integrated”
world-view).&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
-&lt;span style=&quot;font-size: 7.0pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;It&#39;s
a pretty standard problem: how to balance between what is, how it can be
extended / expanded / reused, and what should be replaced / redeveloped / moved
up to a new generation of technology, pattern and features. &lt;br /&gt;
&lt;br /&gt;
- The problem you describe sounds like it crosses between SOA / integration and
MDM (master data management). &amp;nbsp;Sometimes a SOA façade can provide an MDM
operational model, with composite services doing multi-system queries,
combining or rationalizing the result, and presenting single meaningful
&quot;views&quot;.&amp;nbsp; In other cases it&#39;s the SOA abilities enabling MDM to
do it&#39;s job, which often involves signification bi-directional synchronization.&lt;br /&gt;
&lt;br /&gt;- The MDM tools tend to be heavy, and the business and systems analysis work
(which system wins when data is in conflict, for example) is a major portion of
the success or failure.&lt;br /&gt;
&lt;br /&gt;
- That said, IF you are only trying to get views of the data, I am hearing
reports of good success with some of the easier BigData tools (such as
MongoDB).&amp;nbsp; Success meaning they are able to develop and deploy meaningful
business results in months, whereas MDM and big integration SOA projects
almost always take over a year. &lt;br /&gt;
&amp;nbsp;

&lt;br /&gt;&lt;br /&gt;


&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4084376694759233035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4084376694759233035'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2014/07/mdm-soa-layer-repurpose-or-replace.html' title='MDM &amp; SOA - Layer, Repurpose or Replace?'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-1253104289808055767</id><published>2013-08-26T20:53:00.001+03:00</published><updated>2013-08-26T20:53:13.466+03:00</updated><title type='text'>NSA Tapping and Cloud Computing</title><content type='html'>&lt;p&gt;   &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEfKoS8HIKBGgXPGqyClCxbyHBQlVRPoOyza31l4Yj-hqBVnmVg4qrlPnzAJNPoflBZbR2UEr535B_2OuvfxkrxDfB188S800L3EQX1Clddw_wuyHLbTez-CBQqOOnXRbjwvwt6x4kWg_t/s1600-h/th%252520%2525284%252529%25255B3%25255D.jpg&quot;&gt;&lt;img title=&quot;th (4)&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; float: left; padding-top: 0px; padding-left: 0px; margin: 0px 12px 0px 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;th (4)&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGoj-OWQM0elC6t-cjWGy5eUxK6GEEIgrO_IMJ_pqUlFXSpcfNdh-Qw6A4HKMsBVm665fQZp-dRiAWx94Ufs3Q68FMoJ_V2TRAR49rzxsuVGcF0hul2sBPckKCRX7yi63I4UUvyzLdY7jC/?imgmax=800&quot; width=&quot;324&quot; height=&quot;217&quot; /&gt;&lt;/a&gt;Recent revelations from the U.S. have informed the public that conspiracy theorist fantasy&#39;s are all too real, the U.S. National Security Agency (NSA) has been installing taps at key Internet points to absorb vast quantities of email and Internet traffic.&lt;/p&gt;  &lt;p&gt;As IT professionals, publically available information (no inside information or secret information is utilized in the preparation of this article) and an understanding of the Internet as a series of routers and servers, we understand that “taping key Internet points” means copying streams of Internet traffic via router configurations &lt;strong&gt;and having monitoring software installed on email servers and the like (directing copies to the government monitoring servers).&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The NSA isn’t secretly tapping into some sort of vast Internet cable bundles.&amp;#160; Rather they’re walking into AT&amp;amp;T, Google, Yahoo, Microsoft, Internet backbone and primary service providers, and &lt;strong&gt;installing software on their routers and servers as well as installing NSA receiving servers on their networks and premises.&lt;/strong&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;A few months ago ZapThink published an article questioning why the move into Cloud Computing via Public Cloud Vendors has been relatively slow…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;Cloud Computing: Rethinking Control of IT : &lt;/b&gt;&lt;i&gt;Jason Bloomberg, &lt;/i&gt;&lt;i&gt;April 24, 2013&lt;/i&gt;&lt;/p&gt;    &lt;p&gt;In my role as a globetrotting Cloud consultant, I continue to be amazed at how many executives, both in IT and in the lines of business, still favor Private Clouds over Public. These managers are perfectly happy to pour money into newfangled data centers (sorry, “Private Clouds”), even though Amazon Web Services (AWS) and its brethren are reinventing the entire world of IT. &lt;/p&gt;    &lt;p&gt;Their reason? Sometimes they believe Private Clouds will save them money over the Public Cloud option. No such luck: Private Clouds are dreadfully expensive to build, staff, and manage, while Public Cloud services continue to fall in price. Others point to security as the problem. &lt;a href=&quot;http://t.ymlp266.net/eeybjafaqqjyadauqwalahqsqe/click.php&quot;&gt;No again&lt;/a&gt;. OK, maybe Private Clouds will give us sufficient elasticity? &lt;a href=&quot;http://t.ymlp266.net/eeybbaaaqqjyatauqwaiahqsqe/click.php&quot;&gt;Probably not&lt;/a&gt;. Go through all the arguments, however, and they’re still dead set on building that Private Cloud. What gives?&lt;/p&gt;    &lt;p&gt;The true reason for this stubbornness, of course, is the battle over &lt;em&gt;control…&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;Why do (IT) executives crave control so badly? Two reasons: &lt;em&gt;risk mitigation&lt;/em&gt; and &lt;em&gt;differentiation&lt;/em&gt;. If that piece of technology is outside your control, then perhaps bad things will happen: security breaches, regulatory compliance violations, or performance issues, to name the scariest. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;(The article continues why this isn’t really true and mitigated through SLA agreements and gives you the advantage of separating the responsibility and control.)&lt;/p&gt;  &lt;p&gt;ZapThink misses the major point in my mind.&amp;#160; &lt;/p&gt;  &lt;p&gt;There’s been a variety of Cloud Computing articles superficially discussing potential legal complications of a corporation having some of their business data in a different legal or national jurisdictions from their business.&amp;#160; And we’ve seen some practical challenges of major US service providers being hit with EU privacy standards violations (for example).&amp;#160; What, for example, would happen if a customer sued the Cloud Vendor for “deletion rights” (an EU data right) for a EU customer who had signed up with a US Internet service provider that happened to use an EU based Cloud Resource Vendor for their storage?&amp;#160; IT executives naturally shudder at the business / legal complexity of data crossing state / national / international borders.&lt;/p&gt;  &lt;p&gt;With the NSA monitoring revelations, we see much worse concerns.&lt;/p&gt;  &lt;p&gt;In the case above, I could end up in a lawsuit outside my jurisdiction.&amp;#160; If I’m a small company, this could be catastrophic (if I’m a large corporation, only ridiculously expensive).&amp;#160; But at least all I have is a legal risk.&amp;#160; As long as the Cloud Resource or Platform Vendor is living up to their contractual responsibilities and technical features, my data and computing results remain private and controlled – though now I have the additional party of the Cloud Vendor in the mix.&lt;/p&gt;  &lt;p&gt;With NSA monitoring, the Cloud Vendor may be forced (or coerced or tempted with financial payments) to provide monitoring access&lt;strong&gt; without being &lt;em&gt;permitted&lt;/em&gt; to notify me (fully legal).&lt;/strong&gt;&amp;#160; My company would thereby have no legal recourse to attempt to protect our data because we wouldn’t even know such monitoring is occurring.&amp;#160; (In instances of the monitoring revelations, it’s also become clear that the NSA is doing so with “secret court” orders which prevent the service providers / vendors from letting anyone know such monitoring is being requested or occurring.)&lt;/p&gt;  &lt;p&gt;Suddenly the controlling or paranoid IT executive is looking smart.&amp;#160; &lt;/p&gt;  &lt;p&gt;We now have established the fact that if your data leaves your premises, it may be secretly tapped / copied / monitored, and you’ll likely never know (thereby offering no legal recourse to challenge it).&amp;#160; And while we certainly want our national security resources to be able to do their jobs and provide national safety, we also know that such authority is subject to misuse – and misuse of key company data could cost millions or even billions, or put a company out of business.&lt;/p&gt;  &lt;p&gt;When police or investigative authorities arrive with a court order, we may legally challenge it as well as trying to keep the access as narrow as possible.&amp;#160; Even further, it may be our IT people providing the data (so we know exactly what’s leaving and what the potential business impact is).&amp;#160; If the NSA is monitoring or accessing Cloud Vendors, our data is leaving without any control or even knowledge on our part.&amp;#160; Our business risk is potentially unlimited.&lt;/p&gt;  &lt;p&gt;The advantages of the Cloud now carry a real risk.&lt;/p&gt;  &lt;p&gt;For personal use, cloud services now carry the same risk.&amp;#160; If you’re tying your Android phone to Google account sync or your iPhone to the iCloud, your contacts are now (probably) being monitored.&amp;#160; How about if you’re using a Cloud backup service or online file storage (Googe Drive, Microsoft SkyDrive, etc)?&amp;#160; We don’t know, but with recent revelations, we’d be foolish to assume the data is being kept private from national security authorities – which included revelations that &lt;a href=&quot;http://www.bizjournals.com/sanjose/news/2013/08/26/nsa-eavesdropping-spawns-hilarious.html&quot;&gt;NSA employees used the service to spy on personal love interests&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;If it leaves your premises and it’s not encrypted and kept encrypted at the destination, it’s only appropriate nowadays to assume it’s being monitored.&amp;#160; And if it is encrypted, you may warrant special attention.&lt;/p&gt;  &lt;p&gt;Welcome to the digital age.&amp;#160; Your government is now online.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/1253104289808055767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/1253104289808055767'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2013/08/nsa-tapping-and-cloud-computing.html' title='NSA Tapping and Cloud Computing'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGoj-OWQM0elC6t-cjWGy5eUxK6GEEIgrO_IMJ_pqUlFXSpcfNdh-Qw6A4HKMsBVm665fQZp-dRiAWx94Ufs3Q68FMoJ_V2TRAR49rzxsuVGcF0hul2sBPckKCRX7yi63I4UUvyzLdY7jC/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-4369444459083694912</id><published>2013-08-20T15:02:00.001+03:00</published><updated>2013-08-20T15:02:25.297+03:00</updated><title type='text'>The Reality - Email Privacy or the Lack Therefore</title><content type='html'>&lt;p&gt;Today &lt;a href=&quot;http://www.groklaw.net/article.php?story=20130818120421175&quot;&gt;a top law blogger freaked out&lt;/a&gt; after realizing that their emails can be read and monitored...&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&amp;quot;The owner of (a encrypted protected email service that just shut down) tells us that he&#39;s stopped using email and if we knew what he knew, we&#39;d stop too.&amp;#160; There is no way to (blog) without email. Therein lies the conundrum.&amp;#160; What to do?&lt;/p&gt;    &lt;p&gt;...the simple truth is, no matter how good the motives might be for collecting and screening everything we say to one another, and no matter how &amp;quot;clean&amp;quot; we all are ourselves from the standpoint of the screeners, I don&#39;t know how to function in such an atmosphere. &lt;/p&gt;    &lt;p&gt;I feel (unclean), knowing that persons I don&#39;t know can paw through all my thoughts and hopes and plans in my emails...&amp;#160; They tell us that if you send or receive an email from outside the US, it will be read.&amp;#160; (And many emails inside the US are accidentally picked up by those capture engines.)&amp;#160; If it&#39;s encrypted, they keep it for five years, presumably in the hopes of tech advancing to be able to decrypt it against your will and without your knowledge.&lt;/p&gt;    &lt;p&gt;I hope that makes it clear why I can&#39;t continue. There is now no shield from forced exposure. …no one can feel protected enough from forced exposure any more to say anything the least bit (controversial or security related) to anyone in an email, particularly from the US out or to the US in, but really anywhere. You don&#39;t expect a stranger to read your private communications to a friend. And once you know they can, what is there to say?&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Much of the Internet and the abilities we take for granted today were never conceived to be the large world-wide network they have become today.&amp;#160; Email, as used today, and it’s base protocol (SMTP) are not encrypted and follow the normal network routes to get where they are going.&amp;#160; The term “email” is a mistake, because it’s NOT a sealed letter – it’s a open postcard (an open sheet of paper with an address on it).&lt;/p&gt;  &lt;p&gt;This means: &lt;/p&gt;  &lt;p&gt;- The sending post office and receiving post office can and do read the sending and received address AND the full content.&lt;/p&gt;  &lt;p&gt;- Every network it passes through along the way (remember, the “Internet” is all cross connected networks”) can also capture and read the sending and receiving addresses AND the full content.&amp;#160; (Today the average number of networks things pass through are 8-16.)&lt;/p&gt;  &lt;p&gt;- All the little people along the way that operate all the stuff that makes this happen, such as system administrators, database administrators, network administrators, have all the tools in front of them every day as part of their jobs to read any of this stuff they want to.&lt;/p&gt;  &lt;p&gt;That’s been the case from day 1 with Internet email.&amp;#160; NO public free email service NOR any service offered by any Internet ISP encrypts email traffic or storage.&amp;#160; It’s all traveling and sitting on open unprotected readable pieces of paper (so to speak).&amp;#160; The ONLY protection has been “privacy policies” of the companies and them being shamed (and losing customers) if they didn’t provide a reasonable &lt;strong&gt;semblance&lt;/strong&gt; of isolation of your emails.&lt;/p&gt;  &lt;p&gt;Even so, YOU have voluntarily given them the right to “paw through your data” since day one, and much worse!&lt;/p&gt;  &lt;p&gt;- Your emails are being automatically scanned by Google / Yahoo / Microsoft Hotmail-Outlook.com, &amp;quot;to serve you ads and understand their customers.&amp;quot;&amp;#160; Note the ads displayed on the email pages are context sensitive to the email being read, this doesn’t happen by magic but by your email being auto-scanned for keywords.&lt;/p&gt;  &lt;p&gt;- Your phone location (meaning your body’s location) is being sent to Google and Apple, &amp;quot;to provide better mapping services and location based app responses (letting an app know where you are to tell you about something near by).&amp;quot;&amp;#160; You can’t turn on GPS / Location Services without giving them permission to track you moment by moment.&amp;#160; &lt;/p&gt;  &lt;p&gt;- If that’s not enough, the cellphone service provider logs every call, who you called or who called you (number on both ends – which you see on your phone bill) AND the approximate location of your phone when the call began (tracked by which cell tower you connected to and the strength of your signal, meaning how far from the tower you are – combined with where the other towers are near that one this can be used to narrow your location to within 1/10 of a mile).&lt;/p&gt;  &lt;p&gt;- Of course, every SMS is logged (source and destination) as well.&lt;/p&gt;  &lt;p&gt;- Your office computer is tracking what web sites you browse, in some cases what programs you are running, in some cases even how fast and what you are typing, and reporting it to your IT department and/or your boss.&amp;#160; If you are visiting whatever your office considers improper sites, the IT department and boss are being alerted.&lt;/p&gt;  &lt;p&gt;- Your office emails are being scanned for improper words and phrases (sexual, harassing, racist, violent, threatening), alerting the IT department and your boss if there&#39;s a hit.&amp;#160; They may also be scanned to see if you are sending out company proprietary information.&lt;/p&gt;  &lt;p&gt;- Anytime you access any Google or Yahoo or Microsoft service, or for that matter any web site that chooses to collect the data, they know from where you did it (by IP address – which if correlated with the ISP will give a physical location down to where the connecting router is or actual cell location) and from what type of equipment you did it.&amp;#160; Are you at home or in the office, on a desktop workstation, laptop, iPad or Galaxy phone, running Windows or a Mac or iOS or Android, which browser, and what size screen.&amp;#160; This information can be obscured (with special fully legal utilities) except for the IP address, which can be via a VPN or anonymous service (also fully legal).&amp;#160; But few people do so (and because few people do so, there’s a suspicion about people who do.)&lt;/p&gt;  &lt;p&gt;Nothing is new with any of this.&amp;#160; These are all a basic part of the operating model of all of these services from day one.&amp;#160; If you wish to avoid it, you have to avoid using these services.&amp;#160; (There are a few alternatives that theoretically offer protection, privacy or lack of logging – naturally such services are costly.)&lt;/p&gt;  &lt;p&gt;However, there has been a FAÇADE of privacy and protection.&amp;#160; And there has been a general thought that given the huge amount of such data, there may be anonymity and protection through obscurity.&amp;#160; The façade has always been false – the data has always been easily accessible.&amp;#160; And if it exists, police or courts or other authorities will go after it if it’s in their interest to do so.&amp;#160; (There are companies who intentionally limit their logs of such things to 2 weeks or 3 months, to prevent them being called into any court case.)&lt;/p&gt;  &lt;p&gt;The big deal now is that the U.S. government has joined the game and is, via various means, grabbing or monitoring some of the data above.&amp;#160; And with new levels of computer processing power and “BigData” huge data set analysis techniques, Big Brother isn’t occasionally poking in to take a look – he’s constantly monitoring.&lt;/p&gt;  &lt;p&gt;Given that the companies involved have basically being doing the same since day one, the primary change is that the façade has been blow away.&lt;/p&gt;  &lt;p&gt;There are ways to reduce exposure without completely eliminating use of such services.&amp;#160; But if you’re using Google or Microsoft or Facebook (or other such web sites or phone services), assume EVERYTHING you do is completely 100% public.&amp;#160; Email, chat, SMS, sites you browse, pictures you share – it’s all being tracked … correlated, profiled.&lt;/p&gt;  &lt;p&gt;Being we talk of BigData capabilities and BAM – Business Activity Monitoring, we in the IT industry shouldn’t be surprised.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4369444459083694912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4369444459083694912'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2013/08/the-reality-email-privacy-or-lack.html' title='The Reality - Email Privacy or the Lack Therefore'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-4703336109334927249</id><published>2013-07-02T12:27:00.000+03:00</published><updated>2013-07-02T12:27:00.501+03:00</updated><title type='text'>How Granular? Or, What’s a Business Service?</title><content type='html'>&lt;p&gt;   &lt;br /&gt;What is a Service or Component?&amp;#160; It sounds like a simple question.&amp;#160; But I was approached by an organization that had done no component or service oriented or even object oriented development.&amp;#160; So the question was much more complicated…&lt;/p&gt;  &lt;p&gt;What should a service / component / object be?&amp;#160; What amount of business functionality should it include?&amp;#160; Or, in technical terms, what granularity to your business services or components?&lt;/p&gt;  &lt;p&gt;This question came up again for me, as I’m now dealing with the same question relative to Business Processes (BPM or BPA workflows).&amp;#160; That will be a future post.&lt;/p&gt;  &lt;p&gt;But for how granular should a service or component be?&amp;#160; Here’s my presentation on the topic…&lt;/p&gt;  &lt;p&gt;&lt;iframe style=&quot;border-bottom: #ccc 0px solid; border-left: #ccc 1px solid; margin-bottom: 5px; border-top: #ccc 1px solid; border-right: #ccc 1px solid&quot; height=&quot;356&quot; marginheight=&quot;0&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/4736328&quot; frameborder=&quot;0&quot; width=&quot;427&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; mozallowfullscreen=&quot;mozallowfullscreen&quot; webkitallowfullscreen=&quot;webkitallowfullscreen&quot; allowfullscreen=&quot;allowfullscreen&quot;&gt; &lt;/iframe&gt;&lt;/p&gt;  &lt;div style=&quot;margin-bottom: 5px&quot;&gt;&lt;strong&gt;&lt;a title=&quot;What is a SOA Service - from the Business Perspective? How detailed, what level of functionality does it expose?&quot; href=&quot;http://www.slideshare.net/akivam/what-is-a-soa-service-from-the-business-perspective-how-detailed-what-level-of-functionality-does-it-expose&quot; target=&quot;_blank&quot;&gt;What is a SOA Service - from the Business Perspective? How detailed, what level of functionality does it expose?&lt;/a&gt; &lt;/strong&gt;from &lt;strong&gt;&lt;a href=&quot;http://www.slideshare.net/akivam&quot; target=&quot;_blank&quot;&gt;Akiva Marks&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4703336109334927249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4703336109334927249'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2013/07/how-granular-or-whats-business-service.html' title='How Granular? Or, What’s a Business Service?'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-4738595201571611837</id><published>2013-06-24T13:22:00.001+03:00</published><updated>2013-06-24T13:22:22.210+03:00</updated><title type='text'>Batch in the age of Java, SOA and Event Driven Business</title><content type='html'>&lt;p&gt;   &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEixOCU2Z6Akx4DtR71YoPUEiVzWt4y3s3CHU4eNZb_EStInYs-knN4GMnNcPWRTNnKYqKdzJTS7_IEfPYwXhgDEnmMpuyRSpIvAIk-6XxGh30s-Y1hkBKXQOTdEU___j49M0lPbxkv4f7jM/s1600-h/image%25255B3%25255D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZy9RkYaP0o7VcfYjgidGuAWU7nl47yBLKUrlcB8JXaye9Ttc_cS0n_hpgW6wNEBQfvAUf5UiRTdwfaJ8RsK1e1HfOh8le-_DrM-TNILJF4NsfGeiu4hQ3z5sN1P4AQ7FwaEqhiVH9b4q9/?imgmax=800&quot; width=&quot;364&quot; height=&quot;122&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;My customer presented me with a major enterprise architecture task.&amp;#160; “We’re building new systems in a new environment, it’s time to modernize our batch processing.&amp;#160; Please recommend a toolset and processing model to move our legacy batches to our new environment.”&amp;#160; I didn’t realize it at the time, but this was a trick question.&lt;/p&gt;  &lt;p&gt;I spent an extensive amount of time investigating modern batch tools as well as Java development and batch.&amp;#160; What I found was a very limited set of such tools, but more important as I consulted various architects I know around the world, the question of “why are you trying to modernize batch?” kept arising.&lt;/p&gt;  &lt;p&gt;The question is less straightforward than it sounds.&amp;#160; SOA, a component orientation, real time business and event driven business make batch exceptionally challenging, but more importantly much less relevant.&lt;/p&gt;  &lt;p&gt;Attached is the result of my research, a whitepaper on a modern approach to batch in light of Service Oriented Architecture, Real Time processing, and a more Event Driven business approach.&lt;/p&gt;  &lt;p style=&quot;margin: 12px auto 6px; display: block; font: 14px helvetica,arial,sans-serif; font-size-adjust: none; font-stretch: normal; -x-system-font: none&quot;&gt;&lt;a style=&quot;text-decoration: underline&quot; title=&quot;View Modern Batch Directions - Moving from Legacy Batch to Service Oriented - Component Modeled - Event Driven Batch Modernizations - Whitepaper, on Scribd&quot; href=&quot;http://www.scribd.com/doc/149658029/Modern-Batch-DirectionMoving-from-Legacy-Batch-to-Service-Oriented-Component-Modeled-Event-Driven-Batch-Modernizations-Whitepaper&quot;&gt;Modern Batch Directions - Moving from Legacy Batch to Service Oriented - Component Modeled - Event Driven Batch...&lt;/a&gt;&lt;/p&gt; &lt;iframe id=&quot;doc_19332&quot; class=&quot;scribd_iframe_embed&quot; height=&quot;600&quot; src=&quot;http://www.scribd.com/embeds/149658029/content?start_page=1&amp;amp;view_mode=scroll&amp;amp;show_recommendations=true&quot; frameborder=&quot;0&quot; width=&quot;100%&quot; scrolling=&quot;no&quot; data-aspect-ratio=&quot;undefined&quot; data-auto-height=&quot;false&quot;&gt;&lt;/iframe&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4738595201571611837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4738595201571611837'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2013/06/batch-in-age-of-java-soa-and-event.html' title='Batch in the age of Java, SOA and Event Driven Business'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZy9RkYaP0o7VcfYjgidGuAWU7nl47yBLKUrlcB8JXaye9Ttc_cS0n_hpgW6wNEBQfvAUf5UiRTdwfaJ8RsK1e1HfOh8le-_DrM-TNILJF4NsfGeiu4hQ3z5sN1P4AQ7FwaEqhiVH9b4q9/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-4544899175999115261</id><published>2013-02-05T08:45:00.000+02:00</published><updated>2013-02-05T08:45:00.198+02:00</updated><title type='text'>Is the Change the Project?</title><content type='html'>&lt;p&gt;   &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgfN-s3_fgQKktvdaaVgCJv1U5PbL92YJh5V07QBnf_iy4_PTaAkcsucWN_CM4VXVOnO62OkFe1wqLkntqrxNO-65U-UMZFk333Y4-464tMaZ42kU4BIpi7kMZNwaMXwvySpv3A-9k7Hqzr/s1600-h/th%252520%2525286%252529%25255B2%25255D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;th (6)&quot; border=&quot;0&quot; alt=&quot;th (6)&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjG6BVpuF9SyqsB6PbrCzbUGmsTTj4HRR_NH4dsq4_AuYbgSFrwQkV4Q63z0XuVvlP7JyV0Q7Y4AmvgaC9_uqJOJTSqcLKrUQOgxPEDirk5XTme_eOzCx_2ZAiX8b8niyYAMux_1oC5JDZ/?imgmax=800&quot; width=&quot;244&quot; height=&quot;229&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(Large Government Agency) has begun one of the largest government IT projects in (Country). &lt;/p&gt;  &lt;p&gt;(Large Government Agency) has a strong desire to move into the future, provide more efficient and user friendly systems with web and mobile interfaces, and move from 2&lt;sup&gt;nd&lt;/sup&gt; generation code based systems (requiring over 150 maintenance programmers) to a 5&lt;sup&gt;th&lt;/sup&gt; generation rules and workflow based system.&lt;/p&gt;  &lt;p&gt;Unfortunately failure to upgrade their software environment and &lt;b&gt;approach&lt;/b&gt; in the past left them with not only 2&lt;sup&gt;nd&lt;/sup&gt; generation code and user interface (NATURAL by Software AG and 3270 green screens running in an IBM Mainframe environment) but with a 2&lt;sup&gt;nd&lt;/sup&gt; generation &lt;b&gt;architecture&lt;/b&gt;. The mixed screen &amp;amp; processing logic, pure mainframe batch processing model and narrowly specialized data model was judged unable to be extended for use as a transaction engine or even be service enabled. Certainly no part of a 3270 green screen 80x25 character based user interface can carry forward into a web model.&lt;/p&gt;  &lt;p&gt;As a result (Large Government Agency) made the radical decision to THROW AWAY their complete existing application set and REBUILD THEIR FULL APPLICATION ENVIRONMENT. Project (Rebuild) at (Large Government Agency) is a 10 year project to replace each (Large Government Agency) business application set with a newly analyzed, architected, and developed application. The first application set is scheduled to go live in January, 2014, and will replace the Customer Data Management system, the (Main Business Process A) system, the Payment Processing System, and will create new systems for (previously non-automated high-personnel-overhead business process), Electronic Document Management (moving (Large Government Agency) from paper and file driven processes to fully electronic processes), and a new (customer submission process) Website.&lt;/p&gt;  &lt;p&gt;The project involves over 120 consultants working in the (nice new) Technology Park in (major city) near the (Large Government Agency) headquarters but purposefully not in it. The project is not just creating new software but working on modernizing and streaming business processes, where possible given the complex laws, regulations, court decisions and labor union limitations.&lt;/p&gt;  &lt;p&gt;Building a modern application from scratch, the project management has decided to go with a totally modern approach, meaning: True Service Oriented Architecture (not just web services, modular self-contained business step components), Rules Based (FICO Blaze rules engine), Event Driven, Workflow Process Controlled (Software AG Webmethods BPM engine), Java and IBM Websphere Application Server Java Enterprise Environment development environment, and DB/2 10 with a Hybrid-XML Data Model for complex yet easily adjustable data structures designed for fast reading of full data sets for rules processing.&lt;/p&gt;  &lt;p&gt;~5% of the citizens of (country) interact with (Large Government Agency) on a regular basis. Today it takes an average of 142 days and 5 visits to (Large Government Agency) offices for those citizens to complete their interaction. This project will make the process both easier, faster and less expensive for (Large Government Agency) and for the citizens.&lt;/p&gt;  &lt;p&gt;Of course, projects of this scope have great risks and a history of failure. A constant customer feedback process, agile development with independent modular deliverables attempts to minimize the risk. A rigorous testing, stress testing, and user testing schedule will further reduce the risk.&lt;/p&gt;  &lt;p&gt;Yet, even with these project steps to reduce risk, an organization that has avoided any major systems or application changes in a human generation faces enormous cultural challenges in accepting such an upgrade. Cooperation between the business and IT has been focused around providing service (as a utility), not around explaining and automating processes. The IT infrastructure teams are used to managing equipment capacities several factors behind the current generation. Managing the cultural challenges within the organization and within the IT organization may be even higher risk than the large development scope of the project.&lt;/p&gt;  &lt;p&gt;That said, (Large Government Agency) has hired teams of top tier consultants and given the project a realistic time frame and sufficient budget to make it happen. And perhaps most importantly, management has realistic expectations.&lt;/p&gt;  &lt;p&gt;(Large Government Agency) has a reasonable likelihood of step by step success.&amp;#160; If dealing with change is difficult in most organizations, dealing with change IS the real project in this organization.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4544899175999115261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4544899175999115261'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2013/02/is-change-project.html' title='Is the Change the Project?'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjjG6BVpuF9SyqsB6PbrCzbUGmsTTj4HRR_NH4dsq4_AuYbgSFrwQkV4Q63z0XuVvlP7JyV0Q7Y4AmvgaC9_uqJOJTSqcLKrUQOgxPEDirk5XTme_eOzCx_2ZAiX8b8niyYAMux_1oC5JDZ/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-8517385871616639886</id><published>2013-01-29T17:48:00.001+02:00</published><updated>2013-01-29T17:48:56.733+02:00</updated><title type='text'>My Internet’s Too Fast</title><content type='html'>&lt;p&gt;   &lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIBCfzqNYK_jQsKr-KyIKDn-f3Vr3FReZA-620OzWzCIM1ROT7Gca9bFe1w5bbNVccYt4hyphenhyphenR2jqYN3EgzBwkxSey1i2nP4oKZVl7ApTQxeeeYw8mmyuSQb0on984Q4YZcw1HFfsYnmgtLI/s1600-h/th%252520%2525285%252529%25255B3%25255D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;th (5)&quot; border=&quot;0&quot; alt=&quot;th (5)&quot; align=&quot;left&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij5_M76P4cRXC_UVopCmX6pD2wq83vOBY-wNEjQUNUhQIEQe5pcRZPfUZDuz-q5JjP17VRa2Y_UKgBP0La9lmrzFAhJWjn_-mMxX2LiFfonYnjceL-hIuj0Cv9MDdXUeOtGhkeylmaAKNh/?imgmax=800&quot; width=&quot;324&quot; height=&quot;231&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Whether we’re integrating systems or building new SOA architected applications (with heavy cross-component communication that may be flowing between physical machines or across virtual machine clusters – which again drop down to separate physical machines), the network backbone makes a significant difference.&lt;/p&gt;  &lt;p&gt;A good enterprise data center is running at least a 1gbit backbone, with portions or major interconnects at 10gbit.&amp;#160; Further, those good network engineers are properly segmenting the network, which makes sure the heavy traffic patterns have maximum capability (and aren’t going to be slowed down by users streaming internet radio).&lt;/p&gt;  &lt;p&gt;Between applications in the core of the data center, we rarely run into network capacity or network speed as our major performance problem.&amp;#160; (Credit those network engineers.)&amp;#160; This doesn’t mean the issue should be ignored, if some applications are integrated in a high speed query or transactional pattern, there can definitely be a major performance benefit of making sure their connection moves up from 100mbit to 1gbit or from 1gbit to 10gbit.&amp;#160; &lt;strong&gt;Poorly architected SOA services and application integrations that have many granular transactions and/or heavy crosstalk can see a surprising performance benefit from a network speed upgrade&lt;/strong&gt; or even just creating separate or multiple network channels (spreading the communications between them across multiple physical network ports).&lt;/p&gt;  &lt;p&gt;Somewhat surprisingly, those easier options and solutions are becoming LESS viable with the move to virtual machine environments (and for mainframe integration), where one or a small number of physical network ports is shared among a large number of virtual machines or LPARs.&amp;#160; In these cases, increased network speed (with associated faster ports) is the only option.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;This is a lower level physical problem&lt;/strong&gt; that many an integration or SOA team will miss in trying to diagnose integration performance problems.&lt;/p&gt;  &lt;p&gt;Interestingly, I was brought to this topic by a recent Internet upgrade at home.&amp;#160; The cost of high speed has become reasonable and it’s availability spread across wide areas.&amp;#160; I upgrade mine in the past week &lt;strong&gt;and was surprisingly disappointed.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Doing a number of checks with &lt;a href=&quot;http://speedtest.net&quot;&gt;SpeedTest.net&lt;/a&gt;, I found I could get from 50% - 90% of my purchased speed to test points in my nearby area.&amp;#160; Outside my area the numbers are all over the place…&lt;/p&gt;  &lt;p&gt;New York – 70%   &lt;br /&gt;Paris – 10%    &lt;br /&gt;London – 40%&lt;/p&gt;  &lt;p&gt;What’s going on?&amp;#160; First is a basic problem… how’s my router performance?&amp;#160; When we were working with 2mbit and 5mbit Internet, putting a slow cheap processor in the home routers was sufficient.&amp;#160; Working with 10mbit, 30mbit or 50mbit Internet needs a LOT more router CPU power.&lt;/p&gt;  &lt;p&gt;Second, just like in the data center example above, IF the routers or network paths I’m going through to get to the destination are over 50% of their capacity, my performance is going to suffer.&amp;#160; And having some Internet hosting accounts for private and family use, I can certainly note that my hosting providers have NOT upgraded the capacity of those servers.&amp;#160; (They may even have only 100mbit network ports.)&lt;/p&gt;  &lt;p&gt;What does it mean when the default “low” speed for home users is becoming 10-20mbit, with low cost options of 20-100mbit INTERNET, yet the servers were built to serve 100 users at 1mbit each?&lt;/p&gt;  &lt;p&gt;It means I’m not going to get 100% of my purchased speed because the sites I visit can’t deliver it.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;My Internet is too fast.&lt;/strong&gt;&amp;#160; &lt;img style=&quot;border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none&quot; class=&quot;wlEmoticon wlEmoticon-sadsmile&quot; alt=&quot;Sad smile&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLcaSZWXA47qZWOu20WiTLQU4CxupwTvdpIdXRMiG27wq_D4Vb-7l55y41-gSYjbeBZwcb3fyUYmJFkKq0pIDikv3zVP0g0rUxWI8IIK8Dc0u9PLW8LpYL683kDsSv-selHem-Ykp4uSGu/?imgmax=800&quot; /&gt;&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/8517385871616639886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/8517385871616639886'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2013/01/my-internets-too-fast.html' title='My Internet’s Too Fast'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEij5_M76P4cRXC_UVopCmX6pD2wq83vOBY-wNEjQUNUhQIEQe5pcRZPfUZDuz-q5JjP17VRa2Y_UKgBP0La9lmrzFAhJWjn_-mMxX2LiFfonYnjceL-hIuj0Cv9MDdXUeOtGhkeylmaAKNh/s72-c?imgmax=800" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-5992537032323829862</id><published>2012-09-24T17:00:00.001+02:00</published><updated>2012-09-24T17:00:06.989+02:00</updated><title type='text'>Query Service or Synchronized Data?</title><content type='html'>&lt;p&gt;   &lt;br /&gt;- When linking two systems, with one system providing data to another system, the providing system&#39;s physical environment must be sized for the &lt;b&gt;capacity&lt;/b&gt; of the requesting system and the &lt;b&gt;reliability&lt;/b&gt; of the requesting system. Another way of saying this is that the providing system must &lt;b&gt;meet or exceed&lt;/b&gt; the &lt;b&gt;quality of service &lt;/b&gt;or &lt;b&gt;SLA &lt;/b&gt;of the requesting system.&lt;/p&gt;  &lt;p&gt;- In the example I was reviewing, the HR system was the base for the desired information and was sized for the user capacity of the HR department and the reliability impact of an outage of the HR department. If it is to be used as a real-time providing system for Department B, it&#39;s capacity must be increased from the HR department (10 users) to the capacity of the Department B user base, the main business area (3,000 users). It must also have it&#39;s redundancy increased to provide no outages.&lt;/p&gt;  &lt;p&gt;- Alternatively, when there is a mismatch between capacity and reliability of the providing system and requesting system, the data may be effectively de-normalized by building a copy or synchronization mechanism between the systems – the providing system sending a copy of the needed data set into the requesting system for local use. This may also be appropriate if the systems operate in different security domains, in different networks or network segments where bridging is a problem, or where the systems are separate by geographic areas where network performance [speed or capacity] are an issue. It&#39;s also frequently required where a packaged application is the requesting system, as most packaged applications will only query the data in their expected local format and cannot be redirected to a web service or other remote query.&lt;/p&gt;  &lt;p&gt;- One other concern in such integrations is the lifecycle of the information. Is it static, reference information, infrequently updated, frequently updated or transactional or computed? Frequently updated information has dangers of synchronization problems or being out of date, and transactional or computed items can only be queried from their source system.&lt;/p&gt;  &lt;p&gt;We generally hear that de-normalizing, whether in the database itself or across systems, is a crime (across systems would make it an integration crime?)&amp;#160; Yet the circumstances above can make it preferred or even necessary.&amp;#160; This is not a bad thing when done for the right reasons. and in a reasonably reliable way.&amp;#160; (Noting that every synchronization operation should have a full re-sync option that should be run periodically [monthly or yearly or as appropriate].)&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5992537032323829862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5992537032323829862'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2012/09/query-service-or-synchronized-data.html' title='Query Service or Synchronized Data?'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-5476212720510423549</id><published>2012-09-20T17:46:00.001+03:00</published><updated>2012-09-20T17:46:00.966+03:00</updated><title type='text'>Categorize or Search?</title><content type='html'>&lt;p&gt;   &lt;br /&gt;SOA design time governance products come with a variety of methods to categorize the services or assets.&amp;#160; Interestingly I’m currently working on a project involving a document management system, and the select document management tools comes with almost an identical selection of categorization methods.&amp;#160; These include trees, taxonomies, and domains among others. &lt;/p&gt;  &lt;p&gt;In some of the earlier SOA design time governance implementations I performed, we spent significant time working on the categorizations – trying to make the catalog and information easy to traverse for the various user categories that would encounter in.&amp;#160; (In the case of design time governance, this might be analysts, architects, developers, QA, and IT management.)&lt;/p&gt;  &lt;p&gt;We invariably found designing the categories and approaches took a tremendous amount of time, with every constituency having different ideas and requesting various adjustments to the approach.&amp;#160; To some extent it became the never ending quest for the perfect structure, never to be found.&lt;/p&gt;  &lt;p&gt;We saw this same pattern emerge and fail among the World Wide Web.&amp;#160; For those with a little Internet history behind them, they may remember the early Internet Indexing + Search Sites, such as Lycos, AltaVista, Netscape and Yahoo.&amp;#160; Each presented various approaches to indexing, categorizing and presenting the Internet in various taxonomies.&lt;/p&gt;  &lt;p&gt;One day a newcomer arrived named Google who presented one simple function…search.&amp;#160; Within a short time all the indexing and taxonomy sites were dead.&lt;/p&gt;  &lt;p&gt;The way we do things is limited by our technology.&amp;#160; When we’re doing things manually, our technology may be bookshelves or filing cabinets, paper index cards and human retrieval methods – or even human memory capacity.&amp;#160; As we automate processes with newer technology, it’s perfectly normal to take the previous process and “enhance” it with the new technology – but the previous process still exists.&lt;/p&gt;  &lt;p&gt;Once we truly understand the possibilities and capabilities of the new technology, we often supersede the previous process.&amp;#160; In the case of cataloging our information, our models came from books, libraries, index cards, filing cabinets, etc.&amp;#160; &lt;strong&gt;Even if we were storing our information in high speed relational databases, &lt;/strong&gt;our access models were based on our previous process – catalogs, sorted indexes, grouped information.&lt;/p&gt;  &lt;p&gt;Yet Google has shown us that model is significantly less efficient and of less value that a capable search.&amp;#160; &lt;/p&gt;  &lt;p&gt;When we’re modeling today’s software abilities, user interfaces and data organization approaches, search should be the first and primary approach.&amp;#160; Categorization is just pushing the old much less efficient approach forward.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5476212720510423549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/5476212720510423549'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2012/09/categorize-or-search.html' title='Categorize or Search?'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-4514039760868234192</id><published>2012-09-20T16:49:00.001+03:00</published><updated>2013-06-25T12:15:17.783+03:00</updated><title type='text'>Mainframe Integration–NATURAL Web Services</title><content type='html'>&lt;p&gt;   &lt;br /&gt;Software AG’s Natural language and development environment for the mainframe (IBM z/OS and CICS) offered many nice improvements over COBOL for mainframe software development.&amp;#160; Software AG developed a nice market niche in the mainframe development tools market, and millions of lines of code were developed and continue to run till today.&lt;/p&gt;  &lt;p&gt;Like IBM’s version of COBOL, the vendor has struggled to extend Natural’s lifespan and the life of the code written in it.&amp;#160; Initially Software AG created a communication bridging tool (called EntireX), allowing bi-direction communication between the Natural environment and Web Services or MQ or Java or .Net.&amp;#160; &lt;/p&gt;  &lt;p&gt;But like IBM came out with “native” web services as part of CICS 3 and Enterprise COBOL, Software AG has web service enabled Natural.&amp;#160; And web service enablement includes the handling of (simplified) XML.&amp;#160; &lt;/p&gt;  &lt;p&gt;From the code sample I was able to find, it appears that Natural IS NOT handling the building of the HTTP headers, requiring them to be manually added to the top of the XML document – a rather odd lack, but use of direct web services significantly simplifies integration into the environment.&lt;/p&gt;  &lt;p&gt;Here’s the code sample I found, which was used as a base to build some internal test services by a Natural programmer I know…&lt;/p&gt;  &lt;table border=&quot;3&quot; cellspacing=&quot;0&quot; cellpadding=&quot;2&quot; width=&quot;400&quot;&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign=&quot;top&quot; width=&quot;400&quot;&gt;         &lt;p&gt;Description :           &lt;br /&gt;&amp;#160; &lt;br /&gt;This example demonstrates how to call a SOAP service from Natural, using the REQUEST DOCUMENT statement, it then parses the output with the PARSE XML statement and presents a formatted view of the response.            &lt;br /&gt;&amp;#160; &lt;br /&gt;The code is cross-platform, it works on both mainframe Natural as well as OpenSystems / LUW Natural alike.            &lt;br /&gt;&amp;#160; &lt;br /&gt;Service used:&amp;#160; &lt;a href=&quot;http://www.webservicex.net/globalweather.asmx&quot;&gt;http://www.webservicex.net/globalweather.asmx&lt;/a&gt;            &lt;br /&gt;Input asked for by the Natural program: City, Country            &lt;br /&gt;Output: weather details for the selected City + Country, or an error response&lt;/p&gt;          &lt;p&gt;==============================================&lt;/p&gt;          &lt;p&gt;*           &lt;br /&gt;* more info about the services to call: www.webservicex.net.            &lt;br /&gt;*            &lt;br /&gt;* better cross platform solution            &lt;br /&gt;*            &lt;br /&gt;DEFINE DATA LOCAL            &lt;br /&gt;1 #REQUEST&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A) DYNAMIC            &lt;br /&gt;1 #RESPONSE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (B) DYNAMIC            &lt;br /&gt;1 #RC&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (I4)            &lt;br /&gt;*            &lt;br /&gt;1 #PATH&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A) DYNAMIC            &lt;br /&gt;1 #NAME&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A) DYNAMIC            &lt;br /&gt;1 #VALUE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A) DYNAMIC            &lt;br /&gt;*            &lt;br /&gt;1 HTTP-STATUS-TEXT&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A60)            &lt;br /&gt;*            &lt;br /&gt;1 #ACTIVE_NAME&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A16)            &lt;br /&gt;1 #REPLY            &lt;br /&gt;&amp;#160; 2 CITYNAME&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A50)            &lt;br /&gt;&amp;#160; 2 COUNTRYNAME&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A50)            &lt;br /&gt;&amp;#160; 2 LOCATION&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A50)            &lt;br /&gt;&amp;#160; 2 TIME&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A50)            &lt;br /&gt;&amp;#160; 2 WIND&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A50)            &lt;br /&gt;&amp;#160; 2 VISIBILITY&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A50)            &lt;br /&gt;&amp;#160; 2 SKYCONDITIONS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A50)            &lt;br /&gt;&amp;#160; 2 TEMPERATURE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A50)            &lt;br /&gt;&amp;#160; 2 DEWPOINT&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A50)            &lt;br /&gt;&amp;#160; 2 RELATIVEHUMIDITY&amp;#160;&amp;#160;&amp;#160; (A50)            &lt;br /&gt;&amp;#160; 2 PRESSURE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A50)            &lt;br /&gt;&amp;#160; 2 STATUS&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A50)&lt;/p&gt;          &lt;p&gt;* ---------------------------------------------------------- XML-COPY-OF           &lt;br /&gt;1 #XML-COPY-OF&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A) DYNAMIC            &lt;br /&gt;1 #FIND-TAG&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A) DYNAMIC            &lt;br /&gt;1 #TAG-FROM&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A) DYNAMIC            &lt;br /&gt;1 #TAG-TO&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A) DYNAMIC            &lt;br /&gt;1 #TAG-END&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A) DYNAMIC            &lt;br /&gt;1 #AT_SIGN&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A1)            &lt;br /&gt;1 #EXCLAMATION_MARK&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A1)            &lt;br /&gt;1 #APOSTROPHE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A1)            &lt;br /&gt;1 #QUOTATION_MARK&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (A1)            &lt;br /&gt;* ---------------------------------------------------------- XML-COPY-OF            &lt;br /&gt;END-DEFINE            &lt;br /&gt;*            &lt;br /&gt;INPUT // &#39;CityName...:&#39; CITYNAME            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; / &#39;CountryName:&#39; COUNTRYNAME            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // &#39;Example: Tokyo, Japan; Heidelberg, Germany&#39;            &lt;br /&gt;*            &lt;br /&gt;COMPRESS            &lt;br /&gt;&amp;#160; &#39;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&#39; -            &lt;br /&gt;&amp;#160; &#39;&amp;lt;SOAP-ENV:Envelope &#39; -            &lt;br /&gt;&amp;#160; &#39;xmlns:SOAP-ENV=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&quot;&gt;http://schemas.xmlsoap.org/soap/envelope/&amp;quot;&lt;/a&gt; &#39; -            &lt;br /&gt;&amp;#160; &#39;xmlns:SOAP-ENC=&amp;quot;&lt;a href=&quot;http://schemas.xmlsoap.org/soap/encoding/&amp;quot;&quot;&gt;http://schemas.xmlsoap.org/soap/encoding/&amp;quot;&lt;/a&gt; &#39; -            &lt;br /&gt;&amp;#160; &#39;xmlns:xsi=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&quot;&gt;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/a&gt; &#39; -            &lt;br /&gt;&amp;#160; &#39;xmlns:xsd=&amp;quot;&lt;a href=&quot;http://www.w3.org/2001/XMLSchema&amp;quot;&quot;&gt;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;/a&gt;&amp;gt;&#39; -            &lt;br /&gt;&amp;#160; &#39;&amp;lt;SOAP-ENV:Body&amp;gt;&#39; -            &lt;br /&gt;&amp;#160; &#39;&amp;lt;m:GetWeather xmlns:m=&amp;quot;&lt;a href=&quot;http://www.webserviceX.NET&amp;quot;&quot;&gt;http://www.webserviceX.NET&amp;quot;&lt;/a&gt;&amp;gt;&#39; -            &lt;br /&gt;&amp;#160; &#39;&amp;lt;m:CityName&amp;gt;&#39; CITYNAME &#39;&amp;lt;/m:CityName&amp;gt;&#39; -            &lt;br /&gt;&amp;#160; &#39;&amp;lt;m:CountryName&amp;gt;&#39; COUNTRYNAME &#39;&amp;lt;/m:CountryName&amp;gt;&#39; -            &lt;br /&gt;&amp;#160; &#39;&amp;lt;/m:GetWeather&amp;gt;&#39; -            &lt;br /&gt;&amp;#160; &#39;&amp;lt;/SOAP-ENV:Body&amp;gt;&#39; -            &lt;br /&gt;&amp;#160; &#39;&amp;lt;/SOAP-ENV:Envelope&amp;gt;&#39; INTO            &lt;br /&gt;&amp;#160; #REQUEST LEAVING NO            &lt;br /&gt;*            &lt;br /&gt;* For more information about the service have a look at:            &lt;br /&gt;* &lt;a href=&quot;http://www.webservicex.net&quot;&gt;http://www.webservicex.net&lt;/a&gt;.            &lt;br /&gt;*            &lt;br /&gt;REQUEST DOCUMENT FROM &#39;&lt;a href=&quot;http://www.webservicex.net/globalweather.asmx&#39;&quot;&gt;http://www.webservicex.net/globalweather.asmx&#39;&lt;/a&gt;            &lt;br /&gt;&amp;#160; WITH            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; HEADER            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NAME &#39;Request-Method&#39; VALUE &#39;POST&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NAME &#39;Content-Type&#39; VALUE &#39;text/xml; encoding=utf-8&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NAME &#39;SOAPAction&#39; VALUE &#39;&lt;a href=&quot;http://www.webserviceX.NET/GetWeather&#39;&quot;&gt;http://www.webserviceX.NET/GetWeather&#39;&lt;/a&gt;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DATA ALL #REQUEST ENCODED CODEPAGE &#39;utf-8&#39;            &lt;br /&gt;&amp;#160; RETURN            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; HEADER NAME &#39; &#39; VALUE HTTP-STATUS-TEXT            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; PAGE #RESPONSE            &lt;br /&gt;RESPONSE #RC            &lt;br /&gt;*            &lt;br /&gt;IF #RC = 200            &lt;br /&gt;*            &lt;br /&gt;* cut out the response            &lt;br /&gt;&amp;#160; #FIND-TAG := &#39;soap:Envelope/soap:Body/GetWeatherResponse/GetWeatherResult&#39;            &lt;br /&gt;&amp;#160; PERFORM XML-COPY-OF            &lt;br /&gt;*            &lt;br /&gt;* parse the response            &lt;br /&gt;&amp;#160; PARSE XML #XML-COPY-OF INTO PATH #PATH VALUE #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DECIDE ON FIRST VALUE OF #PATH            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &#39;CurrentWeather/Location/$&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #REPLY.LOCATION := #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &#39;CurrentWeather/Time/$&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #REPLY.TIME := #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &#39;CurrentWeather/Wind/$&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #REPLY.WIND := #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &#39;CurrentWeather/Visibility/$&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #REPLY.VISIBILITY := #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &#39;CurrentWeather/SkyConditions/$&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #REPLY.SKYCONDITIONS := #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &#39;CurrentWeather/Temperature/$&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #REPLY.TEMPERATURE := #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &#39;CurrentWeather/DewPointh/$&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #REPLY.DEWPOINT := #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &#39;CurrentWeather/RelativeHumidity/$&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #REPLY.RELATIVEHUMIDITY := #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &#39;CurrentWeather/Pressure/$&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #REPLY.PRESSURE := #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &#39;CurrentWeather/Status/$&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #REPLY.STATUS := #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NONE VALUE IGNORE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; END-DECIDE&lt;/p&gt;          &lt;p&gt;&amp;#160; END-PARSE           &lt;br /&gt;*            &lt;br /&gt;&amp;#160; WRITE #REPLY.CITYNAME &#39;-&#39; #REPLY.COUNTRYNAME&amp;#160; //            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &#39;Location ............&#39; #REPLY.LOCATION /            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &#39;Time ................&#39; #REPLY.TIME /            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &#39;Wind ................&#39; #REPLY.WIND /            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &#39;Visibility ..........&#39; #REPLY.VISIBILITY /            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &#39;Sky Conditions ......&#39; #REPLY.SKYCONDITIONS /            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &#39;Temperature .........&#39; #REPLY.TEMPERATURE /            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &#39;Dew Point ...........&#39; #REPLY.DEWPOINT /            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &#39;Relative Humidity ...&#39; #REPLY.RELATIVEHUMIDITY /            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &#39;Pressure ............&#39; #REPLY.PRESSURE /            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &#39;Status ..............&#39; #REPLY.STATUS /            &lt;br /&gt;*            &lt;br /&gt;ELSE            &lt;br /&gt;&amp;#160; WRITE // &#39;HTTP-Status:&#39; HTTP-STATUS-TEXT&amp;#160; //            &lt;br /&gt;END-IF            &lt;br /&gt;*            &lt;br /&gt;* copy the content of a xml element            &lt;br /&gt;* works equal to a XSL copy-of            &lt;br /&gt;*            &lt;br /&gt;DEFINE SUBROUTINE XML-COPY-OF            &lt;br /&gt;* for the mainframe            &lt;br /&gt;IF H&#39;41&#39; EQ &amp;quot;A&amp;quot; THEN            &lt;br /&gt;&amp;#160; #AT_SIGN := &#39;@&#39;            &lt;br /&gt;&amp;#160; #EXCLAMATION_MARK := &#39;!&#39;            &lt;br /&gt;&amp;#160; #APOSTROPHE := H&#39;27&#39;            &lt;br /&gt;&amp;#160; #QUOTATION_MARK := H&#39;22&#39;            &lt;br /&gt;ELSE            &lt;br /&gt;&amp;#160; #AT_SIGN := &#39;?‚?§&#39;            &lt;br /&gt;&amp;#160; #EXCLAMATION_MARK := UH&#39;0021&#39;            &lt;br /&gt;&amp;#160; #APOSTROPHE := H&#39;7D&#39;            &lt;br /&gt;&amp;#160; #QUOTATION_MARK := H&#39;7F&#39;            &lt;br /&gt;END-IF            &lt;br /&gt;*            &lt;br /&gt;COMPRESS #FIND-TAG&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO #FIND-TAG LEAVING NO            &lt;br /&gt;COMPRESS #FIND-TAG &#39;/&#39;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO #TAG-FROM LEAVING NO            &lt;br /&gt;COMPRESS #FIND-TAG &#39;/&#39;-H&#39;FF&#39;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO #TAG-TO&amp;#160;&amp;#160; LEAVING NO            &lt;br /&gt;COMPRESS #FIND-TAG &#39;//&#39;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO #TAG-END&amp;#160; LEAVING NO            &lt;br /&gt;*            &lt;br /&gt;RESET INITIAL #XML-COPY-OF            &lt;br /&gt;*            &lt;br /&gt;PARSE XML #RESPONSE INTO PATH #PATH NAME #NAME VALUE #VALUE            &lt;br /&gt;&amp;#160; DECIDE ON FIRST #PATH            &lt;br /&gt;/*( end tag            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; VALUE #TAG-END            &lt;br /&gt;*            &lt;br /&gt;*&amp;#160;&amp;#160;&amp;#160;&amp;#160; remove false xml header            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; EXAMINE #XML-COPY-OF FOR PATTERN &#39;&amp;lt;?xml*?&amp;gt;&#39; DELETE            &lt;br /&gt;*            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; COMPRESS &#39;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #XML-COPY-OF INTO #XML-COPY-OF LEAVING NO            &lt;br /&gt;*            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ESCAPE BOTTOM            &lt;br /&gt;/*)            &lt;br /&gt;/*( start tag            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; VALUE #FIND-TAG            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IGNORE            &lt;br /&gt;*            &lt;br /&gt;/*( content            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; VALUE #TAG-FROM : #TAG-TO            &lt;br /&gt;*            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DECIDE ON FIRST *PARSE-TYPE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &amp;quot;?&amp;quot;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; COMPRESS FULL #XML-COPY-OF &#39;&amp;lt;?&#39; #NAME &#39; &#39; #VALUE &#39;?&amp;gt;&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO #XML-COPY-OF LEAVING NO            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE #EXCLAMATION_MARK /* Comment.            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IGNORE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &amp;quot;C&amp;quot; /* CDATA section.            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IGNORE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &amp;quot;T&amp;quot; /* Starting tag.            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; COMPRESS FULL #XML-COPY-OF &#39;&amp;lt;&#39; #NAME            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO #XML-COPY-OF LEAVING NO            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE #AT_SIGN /* Attribute (or ?‚?§ on mainframes).            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IF #VALUE = SCAN(#APOSTROPHE) /* APOSTROPHE or QUOTATION_MARK            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; COMPRESS FULL #XML-COPY-OF&amp;#160; &#39; &#39; #NAME &#39;=&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #QUOTATION_MARK #VALUE #QUOTATION_MARK            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO #XML-COPY-OF LEAVING NO            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ELSE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; COMPRESS FULL #XML-COPY-OF&amp;#160; &#39; &#39; #NAME &#39;=&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #APOSTROPHE #VALUE #APOSTROPHE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO #XML-COPY-OF LEAVING NO            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; END-IF            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUE &amp;quot;/&amp;quot; /* Closing tag.            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; COMPRESS FULL #XML-COPY-OF &#39;&amp;lt;/&#39; #NAME &#39;&amp;gt;&#39;            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO #XML-COPY-OF LEAVING NO            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; NONE VALUE&amp;#160; /* $ Parsed data.            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; COMPRESS FULL #XML-COPY-OF #VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; INTO #XML-COPY-OF LEAVING NO            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; END-DECIDE            &lt;br /&gt;/*)            &lt;br /&gt;/*( none            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; NONE VALUE            &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IGNORE            &lt;br /&gt;/*)            &lt;br /&gt;&amp;#160; END-DECIDE            &lt;br /&gt;END-PARSE            &lt;br /&gt;END-SUBROUTINE            &lt;br /&gt;END&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4514039760868234192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/4514039760868234192'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2012/09/mainframe-integrationnatural-web.html' title='Mainframe Integration–NATURAL Web Services'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-5816485381467598829.post-3693461713039760806</id><published>2012-06-27T21:56:00.001+03:00</published><updated>2012-06-27T21:56:42.618+03:00</updated><title type='text'>Hints from the Grey Haired Programmers</title><content type='html'>&lt;p&gt;   &lt;br /&gt;I attended a major vendor conference this week.&amp;#160; This particular vendor has a a modern line of current modern products, and also a set of 2nd generation mainframe products.&amp;#160; They’ve wisely bought a series of smaller product companies over the past decade to ensure their future.&lt;/p&gt;  &lt;p&gt;But the old product set continues to live on as well.&amp;#160; Yes they’re offering modern interfaces, web service enabling abilities and so forth.&amp;#160; And naturally they’re still investing in the original product set, as a cash cow should be milked as long as possible.&lt;/p&gt;  &lt;p&gt;One of the speakers I wanted to hear was speaking in the older product set track, so I made my way to that conference area.&amp;#160; As I entered it a generational change occurred.&amp;#160; EVERYONE, and I mean everyone, was 55 years old or older – with the majority seemingly very very close to retirement.&lt;/p&gt;  &lt;p&gt;There’s a clear hint from this sight for those using this product set.&amp;#160; We normally think of end of life for a technology as when either support ends or the supporting platform is discontinued.&amp;#160; But clearly there are a variety of applications and tools that are tremendously outdated but still in operation.&lt;/p&gt;  &lt;p&gt;These products continue as companies have millions invested in their use, customizations, development of code, and all the factors that go into making a system of value to a business.&lt;/p&gt;  &lt;p&gt;But while these products may continue to live, there does come a true end of life stage.&amp;#160; In the case I’m describing, it clearly seems the knowledge set of this product is literally leaving the industry as the people retire.&lt;/p&gt;  &lt;p&gt;While many vendors are quite happy to extend the life of their older and even oldest products forever (for a high support fee), customers would be wise to look that the availability of skilled knowledgeable people to work with them.&amp;#160; When the skilled people are reaching the end of their working life, clearly the products have to be replaced.&amp;#160; Hopefully before skills availability diminishes to a severe level.&lt;/p&gt;  &lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;p&gt;&lt;font color=&quot;red&quot;&gt;&lt;i&gt;From &lt;a href=&quot;http://makingsoawork.blogspot.com&quot;&gt;Making SOA Work, stop by and read it at the source!&lt;/a&gt;&lt;/i&gt;&lt;/font&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/3693461713039760806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5816485381467598829/posts/default/3693461713039760806'/><link rel='alternate' type='text/html' href='http://makingsoawork.blogspot.com/2012/06/hints-from-grey-haired-programmers.html' title='Hints from the Grey Haired Programmers'/><author><name>Akiva</name><uri>http://www.blogger.com/profile/13042484533217272945</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-T0sY9iJKqpmKKwDSgyNiSEX4rwEOZ2E9inLr2t5gNCHY2jazglMW_1EXcRLBs5hyRxIzdTiZzMXEk_IzhrGACcsGHMbh_CLrUYnJ1q33rIg2EPzIyuTfiG8Z4Y7GyA/s1600-r/987888_06c113b3c9_t.jpg'/></author></entry></feed>