<?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-15521527</id><updated>2011-12-14T21:51:56.608-05:00</updated><title type='text'>Service-Oriented Architecture "defined and explained by Samih Fadli"</title><subtitle type='html'>The goal for SOA is a world-wide mesh of collaborating services that are published and available for invocation on a Service Bus. Adopting SOA is essential to delivering the business agility and IT flexibility promised by Web Services. These benefits are delivered not just by viewing service architecture from a technology perspective or by adopting Web Service protocols, but also by requiring the creation of a Service Oriented Environment that is based on specific key principles.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://soaspace.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://soaspace.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Samih Fadli</name><uri>http://www.blogger.com/profile/13988419277007403133</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>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15521527.post-112785495577989441</id><published>2005-09-27T16:56:00.000-04:00</published><updated>2005-09-27T17:02:35.786-04:00</updated><title type='text'>The Role of an SOA Governance</title><content type='html'>&lt;p align="justify"&gt;Over the past two decades, applications and their supporting infrastructures have become exceedingly complex, with many points of failure due to brittle architectures and tightly-coupled integrations.&lt;br /&gt;&lt;br /&gt;“SOA” is arguably the most recognizable acronym in IT these days. This is because SOA has the potential to enable a much higher degree of business agility by transforming enterprise IT based on a service-driven delivery model.Unlike traditional application architectures, SOA is designed for change. Applications and systems based on SOA become flexible “plug-and-play” IT assets that can be quickly and easily re-purposed as the demands of the business evolve.&lt;br /&gt;&lt;br /&gt;The definition of the word governance implies the action or manner of governing.SOA governance, introduces the notion of domain ownership, where domains are managed sets of Services sharing some common business context. In many cases these sets of Services are business Services, such as customer information, order processing, or product analysis. Each domain is responsible for maintaining the applications that support its Services and for maintaining the interfaces to its Services for other domains.&lt;br /&gt;&lt;br /&gt;SOA governance is the set of solutions, policies and practices which enable companies to implement and manage an enterprise SOA. SOA governance addresses many challenges and makes it possible to realize ROI and the business benefits of loosely coupled services..&lt;p&gt;&lt;br /&gt;The main areas of governance include the following:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Strategic alignment&lt;/strong&gt; focuses on the imperative to align the business vision, goals and needs with the IT efforts. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Value delivery&lt;/strong&gt; focuses on how the value of IT can be proved through results like profitability, expense reduction, error reduction, improved company image, branding, and so on.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Risk management&lt;/strong&gt; focuses on business continuity and measures to be taken to protect the IT assets. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Resource management&lt;/strong&gt; focuses on optimizing infrastructure services that are a part of the On Demand Operating Environment (ODOE -- see Resources) or other environment supporting the application services. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Performance management&lt;/strong&gt; focuses mainly on monitoring the services that run in a enterprise's ODOE or other environment. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Any implementation of governance should be centered on the four pillars of an enterprise architecture: people, processes, technology, and services. One mechanism to implement an enterprise IT and SOA governance is by establishing a center of excellence (CoE) for IT and SOA governance that would enable a shared resource and capability center to function as a resource pool as new business application needs arise. A governance implementation needs to be supported by a hierarchical organizational reporting structure.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Service-Orient... Architecture "defined and explained by Samih Fadli" &lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15521527-112785495577989441?l=soaspace.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112785495577989441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112785495577989441'/><link rel='alternate' type='text/html' href='http://soaspace.blogspot.com/2005/09/role-of-soa-governance.html' title='The Role of an SOA Governance'/><author><name>Samih Fadli</name><uri>http://www.blogger.com/profile/13988419277007403133</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></entry><entry><id>tag:blogger.com,1999:blog-15521527.post-112753549723677507</id><published>2005-09-24T00:15:00.000-04:00</published><updated>2005-09-24T00:18:17.243-04:00</updated><title type='text'>SOA Implementation Requirements</title><content type='html'>An Service-oriented architecture provides the implementation patterns required to construct applications from loosely coupled services. In order to build such applications, an implementation environment should provide the following capabilities:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Definition of services independent of their implementation&lt;/li&gt;&lt;li&gt;Implementation and hosting of services as a provider&lt;/li&gt;&lt;li&gt;Location and usage of services as a consumer&lt;/li&gt;&lt;li&gt;Assembly of services from other services and business rules&lt;/li&gt;&lt;li&gt;Support for synchronous, asynchronous and conversational services&lt;/li&gt;&lt;li&gt;Orchestration of application presentation built on services and rules&lt;/li&gt;&lt;li&gt;Support for multiple forms of human interaction &lt;/li&gt;&lt;li&gt;Automated data transformation between disparate data structures&lt;/li&gt;&lt;li&gt;Provisioning of local and remote servicesSupport for simulating, testing and debugging of services&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;Service-Orient... Architecture "defined and explained by Samih Fadli" &lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15521527-112753549723677507?l=soaspace.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112753549723677507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112753549723677507'/><link rel='alternate' type='text/html' href='http://soaspace.blogspot.com/2005/09/soa-implementation-requirements.html' title='SOA Implementation Requirements'/><author><name>Samih Fadli</name><uri>http://www.blogger.com/profile/13988419277007403133</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></entry><entry><id>tag:blogger.com,1999:blog-15521527.post-112735825457389184</id><published>2005-09-21T22:44:00.000-04:00</published><updated>2005-09-24T00:34:02.350-04:00</updated><title type='text'>Top 10 SOA Considerations</title><content type='html'>&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Interoperability&lt;br /&gt;&lt;/strong&gt;With Web Service protocols evolving rapidly their implementation across the diverse infrastructure is likely to raise issues of interoperability due to different versions and inconsistent implementations by vendors. I recommended that Infrastructure elements will need to be upgraded in parallel to avoid interoperability issues. &lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Performance&lt;/strong&gt;&lt;br /&gt;Web Service infrastructure will at least in the near term often constitute an additional layer of infrastructure, as opposed to replacement, impacting performance. However, this should only affect the Web Services themselves, not other messages and transactions passing through the same infrastructure element. I recommended to introduce a parallel infrastructure elements dedicated to Web Services to ensure existing operations are not affected. &lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Granularity of Service&lt;br /&gt;&lt;/strong&gt;It is important to design the service interface with the proper level of granularity. Because you want your application to perform well, you should design Web services to be coarse-grained than individual session beans. A good way to achieve a coarse-grained interface is to design the Web service around the documents it handles, since documents are naturally coarse grained. You can apply these principles by exposing Web services that primarily exchange well-defined documents "eg.: purchase orders or invoices". These Web services may call multiple session bean methods to implement the services’ business logic.. &lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Passing Parameters as XML Documents or Java Objects&lt;br /&gt;&lt;/strong&gt;A SOAP client invokes a service’s functionality by calling the appropriate WebMethod on the service interface and passing the expected parameters. Parameters may be passed as either XML documents, which are represented as SOAPElement objects in the service interface. &lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Layering the Service&lt;/strong&gt;&lt;br /&gt;Normally, it’s best when designing a service to separate the service’s interaction layer from the business logic processing layer. This is especially true when an incoming request uses a different data model than the data model used by the business logic. Recall that a service may divide its processing into layers if it handles requests that require significant pre-processing or when there is extensive mapping between the internal data model and the incoming data. &lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Delegating to Business Logic&lt;br /&gt;&lt;/strong&gt;After receiving and pre-processing a request, the endpoint must next map the request to the appropriate business logic and delegate it for processing. &lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Publishing Web Service Details&lt;/strong&gt;&lt;br /&gt;A Web service endpoint is described by its WSDL file, and clients of the service need access to the WSDL to obtain basic information about the service. One way to disseminate this information to clients is to publish the WSDL files in a Web Services Registry (WSR/UDDI), if the service is open to the general public. &lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Managing Complex Web Service Interactions&lt;/strong&gt;&lt;br /&gt;An application may have multiple interactions with the same Web service, it may access different Web services, or it may expose many Web service endpoints. There may be different types of interactions. An application may be both a service and a client. A service endpoint may receive documents of multiple types and hence needs to handle them accordingly. All this makes for complexity in managing Web service interactions. Message-level metadata and a canonical data model are common helper strategies that support complex interactions, and they are good building blocks for adding functionality to a Web service message exchange. By consolidating Web service endpoints, wean make an application’s Web service interactions more manageable. &lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Consolidating Web Service Interactions&lt;/strong&gt;&lt;br /&gt;Consolidating Web service interactions is a good way to simplify the complexity of a Web service application. What starts as a straightforward Web service application with basic interactions between a client and a single service often grows into an application that exposes more endpoints and may itself act as a client to other services. The application communication becomes more complicated, and the business logic often becomes closely tied to a particular service. When the number of Web service interactions grows beyond a certain point, you may want to factor out common code for reuse. &lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Building More Robust Web Services&lt;/strong&gt;&lt;br /&gt;Both .NET and J2EE platforms conform to the WS-I Basic Profile standards. Conforming to these standards means that the platform uses HTTP as the underlying transport for Web service calls. Unfortunately, from a business communication point of view, the HTTP protocol provides only a low-level degree of robustness. To illustrate, HTTP has no automatic retries to re-establish a connection that disconnects. If the receiving end fails, the entire HTTP call fails and there is no attempt to connect later. This low-level degree of robustness is not necessarily bad, since it means that HTTP can accommodate the participation of all kinds of systems and networks in a distributed Internet environment. HTTP is also a fairly simple protocol that any system can implement with a reasonable amount of effort. Despite using more reliable hardware and software systems and communication links, enterprises have no guarantee against failures. Failures may occur during a Web service request between a SOAP client and a Web service that may leave an application in an ambiguous state. &lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;Service-Orient... Architecture "defined and explained by Samih Fadli" &lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15521527-112735825457389184?l=soaspace.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112735825457389184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112735825457389184'/><link rel='alternate' type='text/html' href='http://soaspace.blogspot.com/2005/09/top-10-soa-considerations.html' title='Top 10 SOA Considerations'/><author><name>Samih Fadli</name><uri>http://www.blogger.com/profile/13988419277007403133</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></entry><entry><id>tag:blogger.com,1999:blog-15521527.post-112446761468931353</id><published>2005-08-19T12:00:00.000-04:00</published><updated>2005-08-19T15:12:36.333-04:00</updated><title type='text'>The key pillars of an SOA’s success</title><content type='html'>&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Although a wide variety of factors determines the success of enterprise’s SOA strategy, four (4) pillars for success can be underlined and highlighted.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;1. Organizational Alignment&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;The extent to which an organization has aligned their business and technology strategies is a key determinant of SOA readiness. It is important to evaluate the business strategy for well-defined business services and processes, and it is also critical for the success of an enterprise’s SOA strategy to secure a budget and to have an organizational alignment with respect to a funding model. Organizations with funding models that facilitates cross-unit cost sharing are typically much more successful in migrating to SOA enabled space than those with more inflexible funding models.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;A flexible funding model is required and needed to compensate for initial overheads caused by applying SOA principals. Overheads are caused by different factors. The project team members have to familiarize themselves with new SOA standards, patterns and processes. However, the initial overhead is caused by the efforts required to increase reusability.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;In addition, the choice of a suitable project piloting the implementation of the enterprise SOA is a critical factor for the success of an enterprise’s SOA strategy. It is very important that chosen project should be as visible as possible. However, this does not necessarily mean that it has to be prestigious. Ideally, the SOA projects should run no longer than one or two years, with a first delivery after six months.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;2. Setting Up a SOA Swat Team&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Such a team should focus exclusively on how best support and establish the SOA in the organization. The SOA Team will therefore have to contain evangelists whose task it is to explain the benefits of an SOA to the different departments and this initiative includes helping target audiences to gain an understanding of key SOA architectural principles, concepts, best practices, and technologies as well as the support in the actual implementation of these principals.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;3. Methodology and Process&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Adoption of an iterative methodology is critical to support quick, efficient, service-oriented analysis and to design lifecycle activities that complement SOA. Also, formal governance and operations&lt;br /&gt;procedures make an organization more likely to adapt to SOA. New techniques for model-driven architecture (MDA) that heavily involve visual business process and service interaction modeling approaches are beginning to emerge, and are also important to evaluate. Examples of SOA success factors pertinent to methodology and process include:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Governance Model&lt;/strong&gt;&lt;/em&gt; — Policies and procedures for the identification of necessary services,&lt;br /&gt;coordination of complementary or conflicting service development efforts, and full lifecycle management of services from proposal to support&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Model-Driven Architecture (MDA)&lt;/strong&gt;&lt;/em&gt; — Familiarity and/or usage of emerging approaches and technologies that enable development of service-oriented models to facilitate interaction and communication of requirements and logic between business analysts, architects, developers, and testers.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;4. Technology and Tools&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;SOA success is highly correlated to the choice of technology and tools utilized in both design-time and run-time environments, as well as the way in which those technologies and tools are designed to interplay to deliver a true service-oriented solution.&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;In the &lt;em&gt;&lt;strong&gt;design-time environment&lt;/strong&gt;&lt;/em&gt;, SOA readiness is impacted by how well the integrated development environment (IDE) extends to support rapidly emerging SOA implementation standards, especially Web services protocols. Design, development, testing, and deployment tools must support unique protocols and attributes of SOA, and critical infrastructure is necessary to support publication and discovery of new and existing services.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;In the &lt;strong&gt;&lt;em&gt;run-time environment&lt;/em&gt;&lt;/strong&gt;, SOA readiness demands an infrastructure that supports secure, interoperable, and reliable messaging between services, and is capable of orchestrating service interactions to support business process demands. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Choosing the appropriate tools and technologies is not sufficient to achieving SOA success alone. The use of appropriate design and message exchange patterns is critically important. These enabling patterns allow organizations to deliver and utilize services in a repeatable manner to ensure consistency and adherence to best practices necessary to scaling SOA across the organization.&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Recommended approach&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Any organization’s strategy for moving to SOA should involve the following four (4) major activities:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Education&lt;/strong&gt;&lt;/em&gt; — Gain an understanding of key SOA architectural principles, concepts, best practices, and technologies.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Assessment&lt;/strong&gt;&lt;/em&gt; — Determine the current state of your organization’s readiness for moving to SOA by identifying existing best practices and gaps, as well as major opportunities for realization of benefits from SOA.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Planning &lt;/strong&gt;&lt;/em&gt;— Develop a phased SOA migration plan that makes sense for the organization, mitigating business and architectural risks while measuring and delivering significant return on investment (ROI) through increased flexibility and responsiveness to changing market demands, as well as decreased design, development, integration, and support costs.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Execution&lt;/strong&gt;&lt;/em&gt; — Deliver prototypes, pilots, infrastructure, and services consistent with the phased SOA migration plan, seeding and embedding SOA perspective and best practices&lt;br /&gt;throughout the business and technology groups within the organization as well as among key customers, partners and suppliers.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;Service-Orient... Architecture "defined and explained by Samih Fadli" &lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15521527-112446761468931353?l=soaspace.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112446761468931353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112446761468931353'/><link rel='alternate' type='text/html' href='http://soaspace.blogspot.com/2005/08/key-pillars-of-soas-success.html' title='&lt;font face=arial&gt;The key pillars of an SOA’s success&lt;/font&gt;'/><author><name>Samih Fadli</name><uri>http://www.blogger.com/profile/13988419277007403133</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></entry><entry><id>tag:blogger.com,1999:blog-15521527.post-112440701651344508</id><published>2005-08-18T19:09:00.000-04:00</published><updated>2005-08-19T14:46:27.356-04:00</updated><title type='text'>Hidden SOA Challenges</title><content type='html'>&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;The service-oriented architecture (SOA) is not new, but it is rapidly emerging as the premier integration and architecture framework in today’s complex, heterogeneous computing environments. While the concept of SOA has existed for years, there were few standards that enabled open, interoperable, non-proprietary integration solutions.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Today, many software vendors are moving at a frenetic pace to support SOA. Web services and SOA are not equivalent; however, SOA realized using Web services is generating new found excitement in the integration world. Additionally, organizations must understand that SOA is not realized by merely flipping a switch or porting your existing services to some vendors software platform. For long-term success, companies must put SOA in their IT “DNA” and develop an overall SOA strategy that aligns their IT and business goals.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Since SOA is based on open standards and is frequently realized using Web services making sense of the WS-Specifications, which may add to the confusion of how to best utilize SOA to solve business problems. Additionally, many companies face the challenge of how to best utilize SOA to solve their business problems.&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:Arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Organizations should be aware of several important SOA realities to dispel any myths or misunderstandings regarding the best approach to a smooth transition to SOA, including:&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;SOA is an architectural approach that has been around for years (eg: JINI, DCOM). While there are new ways to realize SOA, including the use of Web services technologies, leveraging the experience of a services organization well-versed in SOA is essential to understanding technologies and techniques necessary to gaining the business benefits of SOA.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;SOA is more than just developing and deploying software. Organizations must evaluate their funding and governance models, analysis and design techniques, development methodology, deployment and support plans.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Web Services (XML/SOAP) are the preferred way to realize SOA.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Moving to an SOA enabled infrastructure should be done incrementally, but requires a shift in how we architect and compose services-based applications while maximizing existing technology investments and this requires a shift in how we compose service-based applications while maximizing existing IT investments. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Software Vendors have recognized the challenges customers face in moving to SOA and have developed several SOA service offering that leverages years of experience in delivering enabling technology solutions that met the unique needs of each customer.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;Recommended Approach&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Any organization’s strategy for moving to SOA should involve the following fourmajor activities:&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;em&gt;Education&lt;/em&gt;&lt;/strong&gt; — Gain an understanding of key SOA architectural principles, concepts, best practices, and technologies&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;em&gt;Assessment&lt;/em&gt;&lt;/strong&gt; — Determine the current state of your organization’s readiness for moving to SOA by identifying existing best practices and gaps, as well as major opportunities for realization of benefits from SOA&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Planning&lt;/strong&gt; &lt;/em&gt;— Develop a phased SOA migration plan that makes sense for the organization, mitigating business and architectural risks while measuring and delivering significant return on investment (ROI) through increased flexibility and responsiveness to changing market demands, as well as decreased design, development, integration and support costs.&lt;/span&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;em&gt;Execution&lt;/em&gt;&lt;/strong&gt; — Deliver prototypes, pilots, infrastructure, and services consistent with the phased SOA migration plan, seeding and embedding SOA perspective and best practices throughout the business and technology groups within the organization as well as among key customers, partners and suppliers&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;Service-Orient... Architecture "defined and explained by Samih Fadli" &lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15521527-112440701651344508?l=soaspace.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112440701651344508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112440701651344508'/><link rel='alternate' type='text/html' href='http://soaspace.blogspot.com/2005/08/hidden-soa-challenges.html' title='&lt;font face=arial&gt;Hidden SOA Challenges&lt;/font&gt;'/><author><name>Samih Fadli</name><uri>http://www.blogger.com/profile/13988419277007403133</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></entry><entry><id>tag:blogger.com,1999:blog-15521527.post-112430748566360556</id><published>2005-08-17T15:23:00.000-04:00</published><updated>2005-08-19T14:45:39.643-04:00</updated><title type='text'>Understanding SOA</title><content type='html'>&lt;a href="http://photos1.blogger.com/img/49/7415/640/whysoa.jpg"&gt;&lt;img style="CURSOR: hand" alt="" src="http://photos1.blogger.com/img/49/7415/640/whysoa.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/img/49/7415/640/whysoa.jpg"&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;Looking around we see the term or acronym &lt;strong&gt;SOA&lt;/strong&gt; becoming widely used, but there's not a lot of precision in the way that it's used. The World Wide Web Consortium (W3C) for example refers to SOA as 'A set of components which can be invoked, and whose interface descriptions can be published and discovered'. We see similar definitions being used elsewhere; it's a very technical perspective in which architecture is considered a technical implementation. Although the concepts behind SOA have been around for over a decade now, SOA has gained extreme popularity of late due to web services. &lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;A &lt;em&gt;service-oriented architecture&lt;/em&gt; is an information technology approach or strategy in which applications make use of (perhaps more accurately, rely on) services available in a network such as the World Wide Web. Implementing a service-oriented architecture can involve developing applications that use services, making applications available as services so that other applications can use those services, or both. &lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;span style="color:coral;"&gt;The components of a Service-Oriented Architecture include:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;em&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;em&gt;Service providers.&lt;/em&gt;&lt;/strong&gt; A service provider is a component or set of components that execute a business function in a stateless fashion, accepting predefined inputs and outputs. &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/span&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Service consumers&lt;/strong&gt;.&lt;/em&gt; A service consumer is a set of components interested in using one or more of the services provided by service providers. &lt;/span&gt;&lt;/div&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Service repository&lt;/strong&gt;.&lt;/em&gt; A service repository contains the descriptions of the services. Service providers register their services in this repository and service consumers access the repository to discover the services being provided.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://photos1.blogger.com/blogger/7974/1439/320/SOA_components.jpg" border="0" /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;strong&gt;&lt;span style="font-family:arial;"&gt;Figure 1. Service-oriented architectural components&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="left"&gt;&lt;strong&gt;&lt;span style="font-family:arial;color:coral;"&gt;What are the implementation Challenges of SOA?&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;While designing and implementing a service-oriented architecture, a company faces up to eight key challenges. These challenges align to the steps in a typical project deployment plan: &lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Service identification.&lt;/strong&gt;&lt;/em&gt; What is a service? What is the business functionality to be provided by a given service? What is the optimal granularity of the service? &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Service location.&lt;/strong&gt;&lt;/em&gt; Where should a service be located within the enterprise?&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Service domain definition.&lt;/strong&gt;&lt;/em&gt; How should services be grouped together into logical domains? &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Service packaging.&lt;/strong&gt;&lt;/em&gt; How is existing functionality within legacy mainframe systems to be re-engineered or wrapped into reusable services? &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Service orchestration.&lt;/strong&gt;&lt;/em&gt; How are composite services to be orchestrated? &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;em&gt;Service routing.&lt;/em&gt;&lt;/strong&gt; How are requests from service consumers to be routed to the appropriate service and/or service domain? &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;em&gt;Service governance.&lt;/em&gt;&lt;/strong&gt; How will the enterprise exercise governance processes to administer and maintain services? &lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;em&gt;Service messaging standards adoption.&lt;/em&gt;&lt;/strong&gt; How will the enterprise adopt a given standard consistently?&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;color:coral;"&gt;&lt;strong&gt;Why SOA? &lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;span style="font-family:arial;"&gt;There are many reasons for an enterprise to take an SOA approach, and more specifically, a web services-based SOA approach. Some of the primary reasons in my opinion are:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;strong&gt;&lt;em&gt;Interoperability&lt;/em&gt;.&lt;/strong&gt; The SOA vision of interaction between clients and loosely-coupled services means widespread interoperability. In other words, the objective is for clients and services to communicate and understand each other no matter what platform they run on. This objective can be met only if clients and services have a standard way of communicating with each other -- a way that's consistent across platforms, systems, and languages. In fact, web services provide exactly that. Web services comprise a maturing set of protocols and technologies that are widely accepted and used, and that are platform, system, and language&lt;br /&gt;independent. In addition, these protocols and technologies work across firewalls, making it easier for business partners to share vital services.&lt;/span&gt;&lt;/div&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Scalability.&lt;/strong&gt;&lt;/em&gt; Because services in an SOA are loosely coupled, applications that use these services tend to scale easily -- certainly more easily than applications in a more tightly-coupled environment. That's because there are few dependencies between the requesting application and the services it uses. The dependencies&lt;br /&gt;between client and service in a tightly-coupled environment are compounded (and the development effort made significantly more complex) as an application that uses these services scales up to handle more users. Services in a web services-based SOA tend to be coarse-grained, document-oriented, and asynchronous.&lt;/span&gt;&lt;/div&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Flexibility.&lt;/strong&gt;&lt;/em&gt; Loosely-coupled services are typically more flexible than more tightly-coupled applications. In a tightly-coupled architecture, the different components of an application are tightly bound to each other, sharing semantics, libraries, and often sharing state. This makes it difficult to evolve the application to keep up with changing business requirements. The loosely-coupled, document-based, asynchronous nature of services in an SOA allows applications to be flexible, and easy to evolve with changing requirements. &lt;/span&gt;&lt;/div&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-family:arial;"&gt;&lt;em&gt;&lt;strong&gt;Cost Efficiency.&lt;/strong&gt;&lt;/em&gt; Other approaches that integrate disparate business resources such as legacy systems, business partner applications, and department-specific solutions are expensive because they tend to tie these&lt;br /&gt;components together in a customized way. Customized solutions are costly to build because they require extensive analysis, development time, and effort. They're also costly to maintain and extend because they're typically tightly-coupled, so that changes in one component of the integrated solution require changes in other components. A standards-based approach such as a web services-based SOA should result in less costly solutions because the integration of clients and services doesn't require the in-depth analysis and unique code of customized solutions. Also, because services in an SOA are loosely-coupled, applications that use these services should be less costly to maintain and easier to extend than customized solutions.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;span style="font-family:arial;"&gt;Service-oriented architectures are rapidly being accepted by the IT world as a sound, modularized approach for building and deploying services across the extended enterprise. However, practical implementation of these architectures requires careful planning. Interested enterprises must first make sure that they're geared up to implement and support them in the long-term.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;Service-Orient... Architecture "defined and explained by Samih Fadli" &lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15521527-112430748566360556?l=soaspace.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112430748566360556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15521527/posts/default/112430748566360556'/><link rel='alternate' type='text/html' href='http://soaspace.blogspot.com/2005/08/understanding-soa.html' title='&lt;font face=arial&gt;Understanding SOA&lt;/font&gt;'/><author><name>Samih Fadli</name><uri>http://www.blogger.com/profile/13988419277007403133</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></entry></feed>
