Friday, November 14, 2008

SOA Quality and Performance

Will add later

Challenges in SOA & WOA their trade-offs

The SOA (Service Oriented Architecture) and Web technologies are evolving like anything before. These technologies gave us new full blown paradigm shift from objects to services. In simple terms SOA is a theory of converting existing applications into services and integrating them to build composite applications, WOA is theory of sharing the application pieces as web services in a cloud (internet). In SOA, services mainly exist in an enterprise and some may consumed from partner services over the cloud. In contrast, in WOA all the applications are mainly integrated over the web .WOA gave us new trends in technology such as Web2.0, cloud computing, cloud sourcing, enterprise mash-ups, RSS feeds, blogs, Ajax scripts, social networking, SaaS (software as service), Platform as service(PAS) etc along with new protocols such as REST and WADL . The combination of both SOA and WOA gives more business flexibility and agility along with combination of best of breed features to establish larger business opportunities.
Recently many vendors started providing softwares, platforms and infrastructures as services over the cloud and thus coined the new word “cloud computing”. This will reduce the IT maintenance headaches, startup costs and quickly enable “on demand business” for the companies. Software oriented architecture could be an acronym for building architectures around cloud computing. Henceforth the new enterprise solutions can contain mix of SOA services+ SaaS services + Web2.0 + cloud computing . Web is becoming new middleware platform for application hosting and deployment. As you find there are many uses of these emerging technologies there are greater challenges and trade offs for implementing these. This article will discuss some of the important challenges that could become the major barriers for adopting these technologies.

Business Challenges :
Some questions that may arise during building such architectures:
· How do a we align actual business needs to these new technologies, how would these address an existing pain points, what could be the cost of ownership of such web services in long term (though the SaaS works on pay and use model the long term implications are unknown), how can these technologies bring in value to the end customers.
· Does exposing old legacy and modernization will suffice for business flexibility and innovation?What are the security threats and implications of using WOA since many applications are exposed in web. How to visualize overall enterprise IT roadmaps and implementations.
The applications will start evolving as composite services and there will be number of atomic services to support them and hence the cost of maintaining these services will also increase .With whom shall I partner for service offerings( IBM,google, Salesforce, Amazon, SAP, Microsoft..) ?
· What will be the business impact of these dependencies? What if the partner undergoes
financial crunch? Is there regulatory body to certify these service vendors over the web? Is there global services repositories or consortium (like Gs1 or 1sync)? .What about data quality, service versioning and support. How much do I spend on evaluating services over the web? What is the cost for setting up testing infrastructure? We confine our thoughts here as the list can grow further



IT Challenges :
· Although one of the major principle SOA is asset re-use many organizations don’t have
common asset repositories to be used across organizations and there is no governing bodies established to manage such assets. Re-usable asset identification is one of the bottle necks during SOA lifecycles.
· Though SOA and WOA complement each other the challenge lies in identifying which theory to adopt first or to start with .
· Standards are still evolving for webservices (WS-*) on security, inter-operability, messaging etc and building IT for changing standards is a very tedious chunk. There are no well established standards and patterns for maintaining the common methodology for WOA and SOA. Each vendor will have his own way of implemented SOA. Hence developers will face challenge while adapting to different vendor implementations.
· There are challenges in testing due to abstraction and heterogeneity of systems and services. Different levels of testing requirements like interoperability, security ,process flows, policy influencing, service provisioning and performance needs robust infrastructure setup, along with tools.
· Service compositions come in many flavors, orchestrated flows, flexible choreographies, data Virtualizations, mash-ups, cloud services and various combinations thereof. String several services together where the output of one contributes to the input of the next and if one Service in the chain is too slow or goes down, the entire composition suffers
Analysis of the performance pitfalls in new technologies like Virtualization, cloud computing, WOA etc will become more complex.



Compatibility and Interoperability:
Web services have become de facto standard for integration between heterogeneous IT processes and systems. The key for these services to be interoperable is adopting open standards. Though by nature webservices claim a common mechanism for interoperable integration among disparate systems .there is no formal standardization of protocols, data exchanges ,messages from bodies such as W3C,OASIS and WS-I .
Challenges lies in adopting and integrating REST (Representational State Transfer) style service which may use WADL(Web Application Description Language) for interfacing rather than WSDL 2.0 . Same complexity exists for SOAP vs. REST, UDDI vs. IBM WSRR for service discovery, also there are industry standards like Acord, Rosannet, Hippa,SWIFT etc which have not regulated webservice message structures . May be WS-I profiles could ease some pain, there is large requirements of such standards and law for regulating them as web is evolving as new ESB platform.



Trade offs:
More flexibility (or say loose coupling) will reduce reusability as you end up in creating more and more atomic services which are for specific usage rather than common usage. Performance is highly affected due to distributed services and network dependency.
Security standards are still evolving and the security threats are still unknown for services over the web. The standardization involves more transformation logic code and hence performance degrades. The business and services will become more interdependent and also risky as service consumers and provides start increasing.