Don Box defined service in a PDC session “as a program you communicate using messages. No more, no less”. He also said that “service doesn't have to be implemented as a 'message' end-point” i.e. a service end point should be decoupled from implementation business logic. How and why? Jeffrey Hasan elaborated this in his last Tuesday’s presentation in UCLA Dodd Hall at LA dot net group. The topic of his presentation was “Building Message based web services for service oriented architecture” which is a fancy name for web services based architectures with further enhancements.
W3C defines SOA as “A set of components which can be invoked, and whose interface descriptions can be published and discovered.” however, David Sprott and Lawrence Wilkes of CDBi, a independent software development analysis group beg to differ with this definition. “CBDI defines SOA as a style resulting from the use of particular policies, practices and frameworks that deliver services that conform to certain norms. Examples include certain granularity, independence from the implementation, and standards compliance. What these definitions highlight is that any form of service can be exposed with a Web services interface. However higher order qualities such as reusability and independence from implementation, will only be achieved by employing some science in a design and building process that is explicitly directed at incremental objectives beyond the basic interoperability enabled by use of Web services.”
Another good and concise definition on looselycopuled.com states ”A system for linking resources on demand. In an SOA, resources are made available to other participants in the network as independent services that are accessed in a standardized way. This provides for more flexible loose coupling of resources than in traditional systems architectures.”
Jeffrey is author of various articles and books; his book on Expert Service Oriented Architecture in C#, is due to release soon. His presentation was mainly a premier to SOA with examples to equip audience exploring on their own. He discussed WSE (Web Services enhancements toolkit) and upcoming changes in WSE 2.0 (for instance In-process model – specific optimization for services running on same application domain). He emphasized on importance of indigo’s plumbing in SOA scenario beside what measures are required to implement Pre Indigo SOA. Jeffrey regarded web services based service exposure as excellent because it’s qualified, validating and serves as a distributed component that provides a well-defined interface for processing and delivering XML messages. These are the basic building block of a loosely coupled distributed application.
He defined services as
While explaining Services vs. OO Components, he elaborated the differences as follows.
Service based messaging addresses reliable messaging for instance XML message preserve the integrity of requests and a record of communication. He defined creation of an XML web service, the foundation of SOA in the following steps.
Jeffrey supports automated code generation and believes that it gives you qualified schema power. He thinks that having central control on XSD schema provides control on various aspects of application. Publishing the XSD makes it more exposed. On the end point perspective he answered:
Why web services should not implement business logic directly in their methods?
Web Services should delegate this processing to dedicated business assemblies. This is because you can’t assume that the business logic will always be accessed through a web service but can be accessed by various other means. Web Services and their associated WSDL documents should not be the original reference points for interface definitions. This information belongs in a dedicated reference assembly and should be stored as an interface definition that can be implemented in different kinds of components.
In the revised architecture, he defined the steps of revision and how to embed dedicated assembly:
Step 1: Create a dedicated type definition assembly
Step 2: Create a dedicated business assembly (non web interoperability)
Step 3: Create a web service based on the type definition assembly
Step 4: Implement the interface + Import the business assembly
Step 5: Create a tightly coupled client
Jeffrey said he’ll upload the presentation on his website or LA dot NET group’s website but I couldn’t find it on both. I’ll post a link here as soon as I get hold of it. Our next month’s speaker is Chris Rolon of Neudesic, an excellent speaker as I know from DevDays; he is a C++ person and speaks on security & development, an intelligent & excellent speaker; can’t wait to hear him!
DevDays 2004 participants received a free copy of Test Driven Development in .Net; since I didn’t win any raffles, it was some consolation for me beside this book was already in my Amazon.com wishlist .
References