Turning Software into a Service – The Critique Paul Kopacz Brian Moore
Dynamic Composition Heavy emphasis “...we seek to devise a suitable mechanism for creating new forms of service on demand” “...lets the set of services a business uses evolve without any user interaction as the business and it's context change” The most interesting idea in their paper
Is Dynamic Composition Possible? They hope so No references to studies No limits imposed on composition No details on what composition will do No Silver Bullet by Fred Brooks "I believe the hard part of building software to be the specification, design, and testing of this conceptual construct” How much of this work can be done automatically?
What is Composition Based on? Possible standards DAML-S Not complete BPEL4WS Not dynamic “Providing this capability will require support from high-bandwidth information networking” They expect it will be provided
Composition – The Question Can you propose an approach based on unfinished standards? What if the standards never work? Unproven and untested with real applications
Adoption of Technology Widely used standards inadequate The most complete stack is based on ebXML e.g. Contract negotiation Semantic Web technology DAML-S (now OWL-S) Describe semantics of services, “what they actually do” Even these are lacking
Adoption of Technology Semantic Web and ebXML based technology not widely used in industry They are highly complex The authors need them to be more complex Can regular developers use these technologies? “Small-scale specialist-services providers” Will smaller development firms have the resources?
Online Service Vendors “Such a model would open up new markets” Assume functionally identical services from multiple providers Various choices for services to compose from Vendors differentiate based on non-functional terms (price, reliability, speed, etc.)
Online Services Today Internet enables worldwide competition Mature markets contain small numbers of players Most successful remain Smaller companies differentiate based on functionality Big market examples Search has three dominant companies Online auctions has one
Finding Online Services As markets mature, number of choices decrease Will automatic binding still work with services differentiated based on functionality? Does it even make sense to do this? Is their complex model necessary?
Security and Reliability “...because it concentrates instead on other areas, our current model does not include security” Design with security in mind Little discussion of possible failure Only transactions are mentioned Other types of failure are not mentioned
Failure You are providing a service with other peoples' code Why should you trust it? How do you make sure it behaves as advertised? This is all done dynamically Dynamic error checking? Who do you trust?
Programming and the Web “...the basic paradigm for constructing and maintaining software has altered little since the 1960s.” Edit-compile-link procedural source code into a binary “...the practices used to develop and implement a Web site differ little from those traditionally employed for constructing software and are just as error prone.”
Programming and the Web Web programming is where the departure is most evident J2EE containers Scripting/Interpreted languages Composition and pipelining Ignoring what is currently being done