Jeff Davis M A N N I N G Open Source SOA Licensed to Hemant Bedekar ( which are min- imal) are described within the instructions PDF. A survival guide in the complex landscape of open source SOA. However, that has now changed, and a compelling open source SOA platform can be implemented exclusively with open . eBook $ pdf + ePub + kindle + liveBook. technology infrastructure quickly is imperative. Many businesses are turning to a Service Oriented Architecture (SOA) to create a flexible infrastructure. SOA.
|Language:||English, Indonesian, Arabic|
|Genre:||Health & Fitness|
|ePub File Size:||16.55 MB|
|PDF File Size:||20.20 MB|
|Distribution:||Free* [*Registration Required]|
PDF | Over the last decade, we have witnessed rapid evolution in the This paper explains how it could be helpful to use the open source SOA tools and. Open Source SOA with Service Component. Architecture Open Source SCA – Apache Tuscany .. kaz-news.info Service Oriented Architecture (SOA) is an architectural paradigm that allows building of solutions provided by Red Hat's JBoss Open Source SOA Platform kaz-news.info
In order to achieve this goal, model-driven software design techniques are used to generate code segments that accessing existing services, combined with a dedicated framework used to design new SOA services. Technical Considerations As mentioned above, the main project goal consists in working out a practical approach to modernising the IT environments of SMOs by migrating to a standards-based service-oriented architecture that relies on open-source technology.
In order to achieve this goal and after comparing several solutions, ServiceMix, an open-source service bus based on Java Business Integration JBI was selected and systematically extended see Figure 1. This technology represents the technical back-end of the SOA solution and is enhanced by a Java-based component framework. This is accessible through a dedicated Eclipse plug-in used by the development teams while creating and deploying new JBI components or while integrating additional applications with the SOA.
Practical Use Cases and Perspectives Integration projects must prove their worth in practice.
Initial results involving the integration of mainframe applications, WinDev proprietary software and Java subsystems are very promising. A first application relying on the new SOA will automatically handle the family allowances for French border commuters and is scheduled to be released in May Through its agile, reusable framework, customers can minimize the cost and complexity of their web infrastructures.
Its use of open standards mitigates the risk of vendor lock-in, ensuring compatibility. It can incorporate components into the portal as standardized and reusable portlets. So it meets the needs of business to employee, business to customer, or business to business portals.
It provides personalization, single sign on, content aggregation, and other enterprise services. The specification does not specify which services must be implemented by the portal.
This decision is left up to the discretion of the portal vendor. Java Portlets provide content from disparate sources. This content is aggregated into a single presentation by the portal. The Pluto Portlet Container manages the lifecycle and invocation of specification compliant portlets. The current version is Pluto 2. The rendering of the portal to the needed format is done through stylesheets and is therefore very flexible. The portal engine of Cocoon provides the required functionality to display user dependent content with a user definable layout.
A portal definition can be configured for all users, for groups of users and for the individual user. The portal administrator can use the provided tools to configure every aspect of the portal. It is an approach for automating and improving the decisions a business makes on a day-to-day basis. EDM  is about extracting the decisions and rules that are today embedded into applications or people and systematically exposing them as rule assets that can be centrally managed and authored.
Central to the concept of EDM is a repository that enables rules to be classified, managed, and versioned. This should include the ability to add custom metadata and properties to each rule and ruleset.
Though commercial business rule solutions have been around for a decade or more, the open source started its presence in last five years as described below.
Favorable license modified Mozilla. Includes a polished management interface and repository. Can create rules through a web-based interface. DSL support is somewhat limited. Domain-specific language DSL support is limited but useful. Highly efficient rules engine and decent Eclipse-based authoring environment.
Lightweight and embeddable. Thus, an ebXML registry- repository can be used for governance of any type of service artifacts throughout their life cycles. An ebXML registry makes the standard harder to understand and deploy because of its generic and extensible nature, which can addressed by the use case-specific profiles of ebXML Registry that define precisely how to make use of its generic and extensible features in a standard, interoperable manner within a particular domain.
It is platform independent, UDDI version 2.
An Open Source Monitoring Framework for Enterprise SOA
It can be deployable on any Java application server that supports the Servlet 2. It is easy to integrate with existing authentication systems and supports a clustered deployment configuration.
It provides features like, including artifact, lifecycle and dependency management, along with the ability to enforce governance policies, collaborate on and discover services. The open source SOA stack includes business process orchestration, a business rules engine, an enterprise service bus, integrated security, portals and more.
You can mix and match tools from different open source communities or you could standardize on one community We have tested some of the above mentioned open source SOA products, downloading the trail versions and found the following stacks to be very useful and tightly integrated. It is developed based on the OSGI technology , which allows users to get only the desired components to their requirements and implement their SOA infrastructure. It allows starting from one of component and then mix and match among these components until you get the desired features.
WSO2 Mashup Server provides a unique and powerful platform for consuming information in a variety of forms including Web services, HTML, and feeds, processing and aggregating that information, and publishing the result as a new Web service. Each piece of the stack is designed to work with outside sources of data and with existing SOA infrastructure from other open or proprietary SOA companies. Mule manages all the interactions between applications and components transparently, regardless of whether they exist in the same virtual machine or over the Internet, and regardless of the underlying transport protocol used.
Mule is vendor-neutral, so different vendor implementations can plug in to it. This way we can mix different available open source product to the benefit of SOA. For implementing SOA for e-Governance with proprietary products would cost more  than that. In addition, it would involve extra cost for training the developers. Therefore, adoption of open-source SOA can substantially reduce the cost factor.
Contemporary SOA represents an open, agile extensible, federated, composable architecture comprised of autonomous, QoS-capable, vendor diverse, interoperable, discoverable, and potentially reusable services, implemented as Web services.
As you learned earlier, however, many past component-based frameworks attempted similar objectives. What distinguishes these approaches from the newer SOA?
In many ways, this is the exact opposite of SOA, since it introduces highly cou- pled solutions by way of using distributed objects and remote functions. SOA-based web services were designed with interoperability in mind. SOA can be introduced using a multitude of off-the-shelf, open source technologies. Another distinction between a SOA and earlier RPC-based component technologies is that a SOA is more than technology per se, but has grown to embrace the best prac- tices and standards that are rooted in the lessons found through decades of tradi- tional software development.
This includes notions such as governance, service-level agreements, metadata definitions, and registries. These topics will be addressed in greater detail in the sections that follow. So what does a SOA resemble conceptually? Figure 1. These components allow the layers above to interact with these systems. The composite services layer represents more coarse-grained services that consist of two or more individual components. For example, a createPO composite service may include integrating finer-grained services Figure 1.
Notice the relationships between services and business processes. The composite services, in turn, can then be called by higher-level orchestrations, such as one for processing orders placed through a website.
What is interesting is that, in many respects, SOA is a significant departure from older distributed computing models, which centered around the exchange of distrib- uted objects and remote functions. SOA instead emphasizes a loosely coupled affilia- tion of services that are largely autonomous in nature.
The benefits achieved from embracing SOA are now being realized by the early adopters. When monolithic applications are replaced by discrete services, software can be updated and replaced on a piece-by-piece basis, without requiring wholesale changes to entire systems. This strategy improves flexibility and efficiency. An often- overlooked benefit is that this then enables a company to selectively outsource nonpri- mary activities to specialists who can perform the function more efficiently and at the lowest cost.
Thanks to the advances in connectivity, where a service is housed can be largely transparent to the enterprise. However, SOA is clearly no silver bullet. In 30 percent of those projects, the costs were more than anticipated.
Companies began to eagerly undertake proof-of-concept initiatives to scope out the level of effort required to participate in this new paradigm. Software as a Service SaaS vendors such as Salesforce emerged that greatly leveraged on the promise of web services.
Indeed, Salesforce became the epitome of what the next generation of software was touted to become.
Within organizations, the challenge of exposing core business functionality as web services turned out to be daunting. Simply exposing existing objects and methods as web services often proved ill advised—to do so simply embraces the RPC model of dis- tributed computing, not the SOA principles of loosely coupled, autonomous services. This approach often entailed writing significant amounts of new code, which contrasted with the heady promises made by vendors.
In the Java world alone, there were a bewildering number of choices for creating web services: Knowing which technology to use alone required significant investment. Other factors also served to dampen the interest in SOAP web services. The nomenclature found in the WSDL specification, such as port types and bindings, is alien to many developers and strikes them as overly convoluted, especially for simple services in the WSDL 2.
The char- acteristics of SOA transcend a particular technology. A contract is the complete spec- ification of a service between a service provider and a specific consumer. This contract should identify what operations are available through the service, define the data requirements for any exchanged information, and detail how the service can be invoked. A good example of how such a contract can be crafted can be found in a WSDL.
While the WSDL nomenclature can be confusing particularly the 1. Commercial vendors, in particular, have created advanced tool- ing within their platforms that can parse and introspect WSDLs for code generation and service mapping. The WSDL 2. This limitation was largely addressed in the WS-Addressing standard, which has achieved widespread adoption.
The endpoint reference contained with the WS-Addressing block could also be a logical network location, not a physical one. This enables more complex load-bal- ancing and clustering topologies to be supported. The perils of using direct physical endpoints can be found in recent history. Nearly all enterprise systems began offering significant API support for their products by the mids. This trend allowed clients to begin tapping into the functionality and business rules of the systems relatively easily.
One of the most immediate, and undesirable, consequences of doing this was the introduc- tion of point-to-point interfaces. Before long, you began seeing connectivity maps that resemble figure 1. An environment punctuated by such point-to-point connections quickly becomes untenable to maintain and extremely brittle. By making a change in something as sim- ple as the endpoint connection string or URI, you can break a number of applications, Figure 1.
For example, in figure 1. An enterprise service bus ESB is often touted as the savior for avoiding the prolif- eration of such point-to-point connections, since its messaging bus can act as a con- duit for channeling messages to the appropriate endpoint location.
It no doubt performs such functionality admirably, but the same thing can be accomplished through a simple service mediator or proxy. The scenario depicted in figure 1. Obviously, figure 1. No longer does the client application or API user have to explicitly identify the specific endpoint location for a given service call. Instead, all service calls are directed to the proxy or gateway, which, in turn, forwards the message to the appropriate endpoint destination.
If an endpoint address then changes, only the proxy configuration will be required to be changed. WS-Addressing supports the use of logical message destinations, which would leave the actual physical destination to be determined by a service mediator to learn more about WS-Addressing, see the [WSAddressing] reference in the Resources section at the end of this book.
Until fairly recently, no true open source web service proxy solution was available. However, Apache Synapse, although sometimes positioned as an ESB, is designed largely with this capability in mind. It supports outstanding proxy capabilities and can also serve as a protocol switcher.
Synapse will be covered in depth in upcoming chapters. A key consideration is also whether the service is sufficiently self-contained so that it could be considered stand-alone. If in order to use the service you must include CRM-specific identifiers such as Orga- nizationId, you have now predicated the use of that service on having a prior under- standing of the internals of the CRM. This can greatly complicate the use of the service by potential consumers and may limit its audience potential.
In this case, it would be preferable to create a composite service that performs the OrganizationId lookup first, and then performs the call to insert the new customer. Related to this issue is granularity, which refers to the scope of functionality addressed by the service. For instance, a fine-grained service may resemble something like addCustomerAddress, whereas a coarse-grained service is more akin to addCustomer.
The preponderance of literature advocates the use of coarse-grained services, in part for performance reasons as well as convenience.
If the objective is to add a new cus- tomer to your CRM system, calling a single service with a large XML payload is obvi- ously preferable to having to chain together a multitude of lower-level service calls.
That said, maximizing reusability may sometimes warrant the construction of finer- grained services. In our example, having the ability to addCustomerAddress can be used in a variety of cases, not limited to just creating a new customer. Indeed, composite services that are coarser grained in function can then be crafted based on the lower- level services.
Finally, if possible, a service should be stateless. What would be an example of a stateful service? Imagine a service that includes a validation operation that first must Figure 1. If successful, the validation call would return a unique identifier.
The action operation would then require that validation ID as its input. In this scenario, the data input from the validation call would be stored in a session state awaiting a subsequent call to perform the desired activity. While this solution avoids forcing the client user to resubmit the complete data set twice one for the operation, the other for the action , it introduces additional com- plexity for the service designer though various service implementations, both open source and proprietary, do attempt to simplify building stateful services.
In particu- lar, scalability can be adversely impacted, as the application server must preserve ses- sion state and manage the expiration of unused sessions. Performance management is complicated if appliance-based load balancing is being used, as it must pin the ses- sion calls to specific application servers software clustering can overcome this, but it introduces its own challenges.
In the previous scenario, statefulness can be avoided by requiring the client to again send all relevant data when making the action call, along with the validation ID retrieved from the validation call.
The validation ID would be persisted in a database and provided a timestamp. The action call would have to take place within a given number of minutes before the validation ID became invalidated. A composable service is largely a function of how well it is designed to participate in such a role. As was illus- trated in figure 1. The first type, which could be classified as simple or primitive, simply wraps one or more lower-level services together into a more coarse-grained operation.
This process can usually be accomplished by defining a simple data flow that stitches together services and then exposes the new functionality as a new service. Another goal may be to simply impose a new service contract for an existing service while leaving the underlying target end- point unchanged. They include a well-defined service contract; stateless in design, loosely coupled, and offer high availability.
A composite service should be no different, and should be treated like any other service, as shown in figure 1. The second type of composite services is the complex or workflow-type business pro- cesses, often referred to as business process management BPM. These processes are generally multistep creations that may optionally include long-running transactions. Within a process definition, a rich set of nodes can be used for routing, event handling, excep- tion management compensation , and flow control.
This can be either a blessing or a curse, depending on whether SOAP services are a standard within your environment. How does a composite service author have visibility into which services are avail- able for use when constructing such processes?
This is the role of the service registry, which we'll cover next. Not only that, services must include a specification or contract that clearly identifies input, outputs, faults, and available operations. The web services WSDL specification is the closest and most well-adopted solution for service reflection. UDDI can be used as both a private or public registry.
Unfortunately, UDDI suffered from an arcane and complex nomenclature, and its dynamic discovery features were myopic and predicated on naive assumptions.
Today, relatively few enterprise customers are using UDDI and fewer still public registries. In practice, UDDI is rarely used today, except behind the scenes in a handful of commercial products where its complexity can be shielded from the user.
Unfortunately, no standards-based alternative to UDDI is in sight.
It can list all the available services and opera- tions. Simply storing a catalog of services and their descriptions and endpoints in a wiki may suffice for many companies. Recently, there has also been an emergence of new open source registry Figure 1. Issues like governance, quality of service, and so forth are all major contribu- tors to crafting a complete SOA. That said, our intention is to focus on the technical aspects, as the other areas largely fall outside the scope of this book.
We'll explore each in greater detail along with an explanation of how the technologies tie together. In the past, such systems were less elegantly referred to as workflow processing engines. In chapter 2, we begin identifying applicable technologies for many of these areas. This is because business applications, in this historical context, create stovepipes that are separated by function, time, and the data they use.
The process in BPM refers to a holistic view of the enterprise, which incorpo- rates employees, partners, customers, systems, applications, and databases.
This also serves to extract the full value of these existing assets in ways never before possible. To be competitive in a dynamic marketplace, business processes must change at a rapid pace, and this can only be achieved through BPM systems that enable defining, visualizing, and deploying such processes.
For a system to participate in a BPM process, services or functionality must be made externally accessible.
For this reason, SOA is often considered a prerequisite for BPM, since SOA is fundamentally about exposing services in a way that enables them to par- ticipate in higher-level collaborations. Theoretically at least, BPM allows business users to design applications using a Lego-like approach, piecing together software services one-upon-another to build a new higher-level solution.
These design primitives can also be highly effective at con- veying system requirements. The fundamental impetus behind BPM is cost savings and improved business agility. Integrating many disparate sys- tems and linking individuals across organizational boundaries into coherent processes can naturally result in significant return on investment ROI.
A useful byproduct of such efforts is improved reporting and management visibility. Agility, or the ability of a company to quickly react to changes in the marketplace, is improved by enabling new business processes to be created quickly, using existing investments in technology.
In looking at figure 1. What exactly is a business rule? It is a state- ment, written in a manner easily digestible by those within the business, which makes an assertion about some aspect of how the business should function. Such rules permeate most historical applications, where literally thousands of them may be defined within the application code.
Unfortunately, when they are within application code, modifying the rules to reflect changing business requirements is costly and time consuming. A rules-based system, or BRMS, attempts to cleanly separate such rules from pro- gram code. The rules can then be expressed in a language the business user can understand and easily modify without having to resort to application development changes.
One of the biggest challenges when building applications is bridging the knowl- edge gap that exists between the subject matter experts SMEs who have an intimate understanding of the business, and the developers who often possess only a cursory awareness and sometimes desire no more than that.
Developers are faced with trans- lating business requirements into abstract representations in code. This gap is often responsible for the disappointing results that too often surround the rollout of new applications.
Part I History and principles
Although this can all be done manually, an ESB offers out-of-the-box adapters for such processing, and most commonly, event-flow visual modeling tools to generate chained microflows. The cost savings over conventional code techniques is often substantial.
How does such a microflow or what could be alternatively called a real-time data flow differ from a BPM-type application?
After all, at first glance they may appear sim- ilar.The first imple- mentations appeared in What it was, exactly, remained somewhat difficult to quantify. While some might claim that service-ori- ented architecture SOA is just the latest fad in this illusive quest, tangible results have been achieved by those able to successfully implement its principles.
DSL support is somewhat limited. Therefore, adoption of open-source SOA can substantially reduce the cost factor. Their sug- gestions and ideas, while not always welcome by me at the time, helped make the book tighter in messaging and improved its content. Within organizations, the challenge of exposing core business functionality as web services turned out to be daunting. At the same time, the potential business benefits resulting from scientific exploitation of the heterogeneous data available throughout the new architecture identify the SOA project as a good starting point for subsequent Business Intelligence BI projects.
We might need to download several products within the SOA stack like an enterprise service bus ESB , a business process modeling BPM tool, a portal, a rules engine and a data services tool.