<?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: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-6930169</id><updated>2011-10-13T18:53:56.259-07:00</updated><title type='text'>Hal 9000</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://halpierson.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://halpierson.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Hal</name><uri>http://www.blogger.com/profile/14666511758945402997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6930169.post-112154412577936716</id><published>2005-07-16T12:12:00.000-07:00</published><updated>2005-07-16T13:02:05.833-07:00</updated><title type='text'>Thinking out of the Box</title><content type='html'>&lt;span style=""&gt;&lt;a href="http://pluralsight.com/blogs/dbox/archive/2005/07/15/13358.aspx"&gt;Don Box&lt;/a&gt; has apparently taken the high ground on the BOA acronym.&lt;span style=""&gt;  &lt;/span&gt;How could I have forgotten Business Oriented Agents?&lt;span style=""&gt;  &lt;/span&gt;I just hope my previous post on &lt;a href="http://halpierson.blogspot.com/2004/11/documents-vs-parameters.html"&gt;Document Oriented Architectures&lt;/a&gt;, doesn't violate any of Don's Other Acronyms (DOAs). Also my apologies to the CORBA crowd, where BOA means Base Object Adapter.  I guess there are just not enough TLAs to go around! &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6930169-112154412577936716?l=halpierson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://halpierson.blogspot.com/feeds/112154412577936716/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6930169&amp;postID=112154412577936716' title='24 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/112154412577936716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/112154412577936716'/><link rel='alternate' type='text/html' href='http://halpierson.blogspot.com/2005/07/thinking-out-of-box.html' title='Thinking out of the Box'/><author><name>Hal</name><uri>http://www.blogger.com/profile/14666511758945402997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6930169.post-112057386961868118</id><published>2005-07-05T07:22:00.000-07:00</published><updated>2005-07-05T07:31:09.626-07:00</updated><title type='text'>SOA is a design philosophy</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;i&gt;SOA is a design philosophy, not a technology or a methodology&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;br /&gt;&lt;/div&gt; &lt;p class="MsoNormal" style="text-align: right;" align="right"&gt;&lt;b&gt;&lt;u&gt;&lt;a href="http://blogs.msdn.com/jevdemon/archive/2004/12/17/323889.aspx"&gt;&lt;u&gt;&lt;span style="color: windowtext;"&gt;John Evdemon&lt;/span&gt;&lt;/u&gt;&lt;/a&gt;&lt;span class="MsoHyperlink"&gt;&lt;u&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;   &lt;p class="doc-name" style="margin: 0in 0in 0.0001pt;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Arial Unicode MS&amp;quot;;"&gt;A service oriented design philosophy views an application as a collaboration of more basic core services.&lt;span style=""&gt;  &lt;/span&gt;A Service Oriented Architecture (SOA) is an ensemble of such services.&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Arial Unicode MS&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="doc-name" style="margin: 0in 0in 0.0001pt;"&gt;Services are best explained as centers of value. (a’la Christopher Alexander).&lt;span style=""&gt;  &lt;/span&gt;Paraphrasing Alexander, services are building blocks of business capability, not truly bounded entities but are in fact non-bounded centers&lt;b&gt;.&lt;span style=""&gt;  &lt;/span&gt;&lt;/b&gt;Here, “non-bounded” refers to their implementation.&lt;span style=""&gt;  &lt;/span&gt;From outside its interface, a service is a black box of unknown scope and complexity.&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Arial Unicode MS&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Arial Unicode MS&amp;quot;;"&gt;Service interfaces are bound by a platform independent contract.&lt;span style=""&gt;  &lt;/span&gt;Services protect information and form trust boundaries within an Enterprise Architecture.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Arial Unicode MS&amp;quot;;"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="doc-name" style="margin: 0in 0in 0.0001pt;"&gt;&lt;span style=""&gt;I agree with Martin Fowler that Service Oriented design philosophy is often confused with service interface implementations (&lt;u&gt;&lt;a href="http://martinfowler.com/bliki/ServiceOrientedAmbiguity.html"&gt;&lt;b&gt;&lt;u&gt;Martin Fowler&lt;/u&gt;&lt;/b&gt;&lt;/a&gt;&lt;/u&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p class="doc-name" style="margin: 0in 0in 0.0001pt;"&gt;&lt;span style=""&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;     &lt;p class="MsoNormal"&gt;&lt;i&gt;A service is a program.&lt;br /&gt;A web service is a communication tool.&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/p&gt;   &lt;p class="MsoNormal" style="text-align: right;" align="right"&gt;&lt;a href="http://staff.newtelligence.net/clemensv/PermaLink,guid,0339fe35-2328-44be-93e6-f004bd869a84.aspx"&gt;&lt;b&gt;Clemens Vasters&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6930169-112057386961868118?l=halpierson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://halpierson.blogspot.com/feeds/112057386961868118/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6930169&amp;postID=112057386961868118' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/112057386961868118'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/112057386961868118'/><link rel='alternate' type='text/html' href='http://halpierson.blogspot.com/2005/07/soa-is-design-philosophy.html' title='SOA is a design philosophy'/><author><name>Hal</name><uri>http://www.blogger.com/profile/14666511758945402997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6930169.post-111961782545073284</id><published>2005-06-24T05:32:00.000-07:00</published><updated>2005-06-24T05:57:05.470-07:00</updated><title type='text'>Business Orient Architecture (BOA?)</title><content type='html'>&lt;p class="MsoNormal"&gt;No one knows how to design Service Oriented Architectures from scratch.  But that's OK, since no one is really starting from scratch.  Perhaps, someday we will have Service Oriented Analysis and Design methodologies.&lt;span style=""&gt;  &lt;/span&gt;But for now we are all contemplating how to add services to existing legacy systems.&lt;/p&gt;     &lt;p class="MsoNormal"&gt;So the important question is how to design a good service.&lt;span style=""&gt;  &lt;/span&gt;I don’t know the answer to this.&lt;span style=""&gt;  &lt;/span&gt;But I do know that a good service will be understandable by a business person.&lt;span style=""&gt;  &lt;/span&gt;If you cannot explain a service to a manager than it is probably a poor choice.&lt;span style=""&gt;  &lt;/span&gt;That does not necessarily mean that it is a good service.&lt;span style=""&gt;  &lt;/span&gt;As the enterprise IT architecture evolves and more services are added there will certainly be service re-work and Refactoring&lt;/p&gt;     &lt;p class="MsoNormal"&gt;If I had to guess what a service oriented architecture will eventually look like, I would guess that it would reflect the business architecture – Business Oriented Architecture (BOA).&lt;span style=""&gt;  &lt;/span&gt;Business organizations have evolved over many centuries into a number of common “departments” – sales, accounting, personnel, etc.&lt;span style=""&gt;  &lt;/span&gt;Perhaps that is a good starting place for services.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6930169-111961782545073284?l=halpierson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://halpierson.blogspot.com/feeds/111961782545073284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6930169&amp;postID=111961782545073284' title='65 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/111961782545073284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/111961782545073284'/><link rel='alternate' type='text/html' href='http://halpierson.blogspot.com/2005/06/business-orient-architecture-boa.html' title='Business Orient Architecture (BOA?)'/><author><name>Hal</name><uri>http://www.blogger.com/profile/14666511758945402997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>65</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6930169.post-110268966274760981</id><published>2004-12-10T06:13:00.000-08:00</published><updated>2004-12-10T06:41:02.746-08:00</updated><title type='text'>Service Layers</title><content type='html'>Not all services are the same.  Like objects, I think of services being focused on particular concerns within the enterprise architecture.  Outer layers are primarily concerned with process and interacting with external actors.  Inner layers are concerned with entity management and coordination.&lt;br /&gt;&lt;br /&gt;At the innermost layers you have services that maintain what Pat Helland calls &lt;em&gt;resource data&lt;/em&gt;.  Resource data record the state of essential, long-term enterprise entities – like products, customers, employees, and money.  Ideally each entity would be guarded by one service.  And that service would support simple interfaces to create, retrieve, update and delete (CRUD) entities.  They “guard” the data by enforcing the appropriate security policy and business rules.&lt;br /&gt;&lt;br /&gt;Unfortunately, not all of the information about an entity is managed by single service, or located in a central place, or has identical business and security constraints.  So in real enterprises we find that data about a single entity is distributed.  Take employees, for example, some information about employees is manage by the HR department, and some by payroll department, and some by the security department.&lt;br /&gt;&lt;br /&gt;This creates the need for a service layer concerned with managing &lt;em&gt;aggregated entities&lt;/em&gt;.  These services provide a single interface to enterprise entities, hiding the partitioning from the outer layer of services.  They distribute updates and aggregate retrievals, creating the impression of a simple entity.   And they coordinate creation and deletion of entities among its partitions.  For example, hiring or firing an employee must be coordinated among the HR, payroll, and security departments.&lt;br /&gt;&lt;br /&gt;Above the &lt;em&gt;entity layers&lt;/em&gt;, we find the &lt;em&gt;workflow layer&lt;/em&gt;.  The services in this layer manage long-term enterprise processes, like order processing, loan approval, hiring or firing an employee, or month end closing of the accounts.  Like entity services, workflow services manage persistent data - the state of the process.  But, unlike entities, workflows are expected to terminate eventually.  With this layer we transition from the static to the dynamic.  It is here that many of the governance and compliance rules are enforced.&lt;br /&gt;&lt;br /&gt;If the entity layer dependencies are trees, the workflow layers are graphs.  An enterprise’s processes are typically highly interdependent.  And so are their services.  It may be difficult to manage these interdependencies.  If they become sufficiently complex, then some way must be found to layer the workflows between primitive processes and higher–level processes.&lt;br /&gt;&lt;br /&gt;Finally, there is the &lt;em&gt;interface layer&lt;/em&gt;.  This layer is focused on interacting with the outside world.  This includes interaction in the form of applications that interact with humans and choreographies that interact with the services in other organizations.  I think of these services as implementing “Use Cases” or sessions.  They serve as interfaces to the workflow and entity layers.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6930169-110268966274760981?l=halpierson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://halpierson.blogspot.com/feeds/110268966274760981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6930169&amp;postID=110268966274760981' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/110268966274760981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/110268966274760981'/><link rel='alternate' type='text/html' href='http://halpierson.blogspot.com/2004/12/service-layers.html' title='Service Layers'/><author><name>Hal</name><uri>http://www.blogger.com/profile/14666511758945402997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6930169.post-110173776068975586</id><published>2004-11-29T06:14:00.000-08:00</published><updated>2004-11-29T06:16:00.723-08:00</updated><title type='text'>Documents vs Parameters</title><content type='html'>In a Service Oriented Architecture I think of services as departments in an organization.  I don’t know how your organization works, but in mine you must fill out the proper form in order to get anything done.  Of course, the first step in the process is discovering which department and what form is required.  Once the form has been fill out and sent to the proper person, no additional information is necessary.  If you have not filled out the form properly, that person will tell you immediately.  But, if all goes well, sometime later a document arrives containing the information that you requested or notifying you that some action has been taken.&lt;br /&gt;&lt;br /&gt;I think of software services the same way.  First I locate the appropriate service.  I then determine the desired operation.  Each operation is characterized by a pair of documents that are sent to and received from the service.  I generate an instance of the first document, send it to the service location, and await a response in the form of the second document.  The response is often just an acknowledgement that a proper requesting document has been received.  The actual effect of the operation may not become known until a later event that is signaled by the arrival of a document from the service.&lt;br /&gt;&lt;br /&gt;That’s a little confusing.  So lets call the first document a request, the second an acknowledgement, and third a response.  If the service can respond immediately then the response serves as an acknowledgement.&lt;br /&gt;&lt;br /&gt;My main point is that I view service architectures as Document Oriented Architecture (DOA?).  The action is implicit in the kind-of document being sent.  To me this is a cleaner view that thinking of services as subroutines that take some set of parameters.  What I need to understand is how this view relates to the REST view.  Somehow they seem like similar or, at least, sympathetic views.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6930169-110173776068975586?l=halpierson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://halpierson.blogspot.com/feeds/110173776068975586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6930169&amp;postID=110173776068975586' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/110173776068975586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/110173776068975586'/><link rel='alternate' type='text/html' href='http://halpierson.blogspot.com/2004/11/documents-vs-parameters.html' title='Documents vs Parameters'/><author><name>Hal</name><uri>http://www.blogger.com/profile/14666511758945402997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6930169.post-108998340076848175</id><published>2004-07-16T06:03:00.000-07:00</published><updated>2004-07-16T06:10:00.770-07:00</updated><title type='text'>Server Load</title><content type='html'>Maybe I just don't visit enough sites, but I saw something I really appreciated while I was visiting &lt;a href="http://www.sxc.hu/index.phtml"&gt;Stock.XCHNG&lt;/a&gt;.&amp;nbsp; That was a "Server Load" indicator (progress bar).&amp;nbsp; It allows you the option of coming back later, rather then trying to load something and going away mad.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6930169-108998340076848175?l=halpierson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://halpierson.blogspot.com/feeds/108998340076848175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6930169&amp;postID=108998340076848175' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/108998340076848175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/108998340076848175'/><link rel='alternate' type='text/html' href='http://halpierson.blogspot.com/2004/07/server-load.html' title='Server Load'/><author><name>Hal</name><uri>http://www.blogger.com/profile/14666511758945402997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6930169.post-108660968103180598</id><published>2004-06-07T04:51:00.000-07:00</published><updated>2004-06-07T05:06:12.106-07:00</updated><title type='text'>I've Been Scobleized!</title><content type='html'>I’ve been &lt;a  href="http://radio.weblogs.com/0001011/2004/06/06.html#a7712"&gt; Scobleized&lt;/a&gt;! Immortalized! I’m immobilized!  Actually, I’m honored to be cited by the most famous blogger of them all.  Thanks for the kind words.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6930169-108660968103180598?l=halpierson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://halpierson.blogspot.com/feeds/108660968103180598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6930169&amp;postID=108660968103180598' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/108660968103180598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/108660968103180598'/><link rel='alternate' type='text/html' href='http://halpierson.blogspot.com/2004/06/ive-been-scobleized.html' title='I&apos;ve Been Scobleized!'/><author><name>Hal</name><uri>http://www.blogger.com/profile/14666511758945402997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6930169.post-108480131953913627</id><published>2004-05-17T06:40:00.000-07:00</published><updated>2004-05-17T06:41:59.540-07:00</updated><title type='text'>Models</title><content type='html'>&lt;em&gt;What is a model?&lt;/em&gt;  The dictionary defines a model to be a miniature representation of something; also: a pattern of something to be made.  It is common engineering practice to use models to facilitate the definition and design of a system being built.  Booch points out that; unlike theorems, models are neither right nor wrong.  Instead, models are judged to be more or less useful to the engineering process.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Why do we model?&lt;/em&gt;  Models allow us to focus on some aspects of a structure while ignoring others.  For example, a schematic lets us focus on the electronic properties of a circuit and ignore the physical layout of the components.  When modeling requirements we want to ignore the implementation – concentrate on the “what” and ignore the “how”.  In design we focus on the architecture, ignoring the yet to be implemented code.&lt;br /&gt;&lt;br /&gt;By suppressing unwanted details, models make a system easier to understand.  Because we are humans our models are often expressed in language or as drawings.  This facilitated communication and discussion of proposals, which is another reason that we model.  Diagrams, especially, make it possible to visualize a system.  Simulations and prototypes allow us to experience a system before we have created a complete construction.&lt;br /&gt;&lt;br /&gt;But models can do more than focus our attention or allowing us to visualize a system; in some cases the model provides a framework for thinking and reasoning about the system.  A heat flow model of an electronic circuit allows quantitative evaluation of the thermal parameters associated with the component.  UML Sequence Diagrams can be used to show precise timing among a set of system events.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Should we model the problem space or the solution space?&lt;/em&gt;  Up to now Computer Aided Software Engineering (CASE) has focused on modeling the solution space.  UML is used primarily to model software elements – classes, objects, interactions, states, etc.  Model Driven Architecture (MDA) emphasizes transformations from one model to the next, presumably eventually arriving at a source code model.  But it is unclear how (or even if) the MDA approach can cross that all-important chasm between models of the problem and models of the solution.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6930169-108480131953913627?l=halpierson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://halpierson.blogspot.com/feeds/108480131953913627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6930169&amp;postID=108480131953913627' title='44 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/108480131953913627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/108480131953913627'/><link rel='alternate' type='text/html' href='http://halpierson.blogspot.com/2004/05/models.html' title='Models'/><author><name>Hal</name><uri>http://www.blogger.com/profile/14666511758945402997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>44</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6930169.post-108421240951956463</id><published>2004-05-10T11:06:00.000-07:00</published><updated>2004-05-10T11:16:35.130-07:00</updated><title type='text'>Clemens Vasters: Indigo'ed - Lightweight Transactions - A puzzle (I mean, really..)</title><content type='html'>&lt;a href="http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=b598b91f-bb97-4aad-9404-bceb3aff08c9"&gt;Clemens Vasters: Indigo'ed - Lightweight Transactions - A puzzle (I mean, really..)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Despite the author's claim that writing resource managers is, &lt;em&gt;hey, it's really trivial&lt;/em&gt;, I find this code difficult to understand.  Though, it might be simple to write; understanding what's going on is hard.  Yet, something tells me that his view is profound, since it supports both pessimistic and optimistic locking - or even a mixture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6930169-108421240951956463?l=halpierson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://halpierson.blogspot.com/feeds/108421240951956463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6930169&amp;postID=108421240951956463' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/108421240951956463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/108421240951956463'/><link rel='alternate' type='text/html' href='http://halpierson.blogspot.com/2004/05/clemens-vasters-indigoed-lightweight.html' title='Clemens Vasters: Indigo&apos;ed - Lightweight Transactions - A puzzle (I mean, really..)'/><author><name>Hal</name><uri>http://www.blogger.com/profile/14666511758945402997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6930169.post-108420358992123471</id><published>2004-05-10T08:07:00.000-07:00</published><updated>2004-05-10T08:39:49.920-07:00</updated><title type='text'>Nag, nag, nag,...</title><content type='html'>Well, my son (&lt;em&gt;devhawk.net&lt;/em&gt;) has been nagging me forever to start my own blog.  With &lt;em&gt;bolg.com &lt;/em&gt;it seems so easy that I guess I had better try.  So, here goes...We'll see if I have enough to say to make it worth while.&lt;br /&gt;&lt;br /&gt;A little background:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;I've been around computing for a long time!  My first job after getting my doctorate was at Bell Labs.  In the Spring 1971 I installed my first Unix system - with Ken Thompson help.  Because my thesis delt with compiler theory I was interested in C from the beginning - static routines was my suggestion.&lt;br /&gt;&lt;br /&gt;Over the years I've worked on air traffice controls systems, case and office tools, handwriting recognition algorithms, to name a few.  I am one of the authors of the Systems Engineering CMM.&lt;br /&gt;&lt;br /&gt;Currently, I teach OO Programming, and OO Analysis &amp; Design at Johns Hopkins University (part-time engineering school)&lt;/blockquote&gt;&lt;br /&gt;My current interests include Security &amp; Enterprise Architectures for a large gov't agency; designing Service Orient Architectures; and software development tools. &lt;br /&gt;&lt;br /&gt;I guess that's a start...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6930169-108420358992123471?l=halpierson.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://halpierson.blogspot.com/feeds/108420358992123471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6930169&amp;postID=108420358992123471' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/108420358992123471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6930169/posts/default/108420358992123471'/><link rel='alternate' type='text/html' href='http://halpierson.blogspot.com/2004/05/nag-nag-nag.html' title='Nag, nag, nag,...'/><author><name>Hal</name><uri>http://www.blogger.com/profile/14666511758945402997</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry></feed>
