lunes, 20 de septiembre de 2010

What is "SOA"? let me explain you

The good news is, you probably already know. The bad news is, you probably know too much. This article describes Service Oriented Architecture in a simple and easy to understand way that is devoid of buzzwords and vendor spin. It’s the introduction to SOA that you haven’t been able to find anywhere else.

There are things in a business that don’t change very often. Gas stations in the U.S., for example, still sell gasoline by the gallon. Restaurants still sell meals from a menu. Dentists still sell cleanings every 6 months. Every business has these aspects that don’t change very frequently. They often represent a huge part of the business. We’ll call these things the _core business functions.

There are other things in a business that change very frequently. Prices, tax rates, catalogs, new products, new marketing campaigns, advertising, new business areas, new customer areas, etc. Indeed, businesses must be able to change, and change quickly, in order to survive. And yet, it is vital that those changes do not adversely affect the core business functions.

Software developers have known for years that software that changes frequently should be decoupled from software that changes infrequently. When applied to individual programs and systems this principle is sometimes called The Common Closure Principle. When it is applied to the information management of an enterprise, it is called SOA.

SOA is the practice of sequestering the core business functions into independent services that don’t change frequently. These services are glorified functions that are called by one or more presentation programs. The presentation programs are volatile bits of software that present data to, and accept data from, various users.

To make this clear, imagine an internet store-front. Customers use a browser to talk to the presentation software that displays the store’s website. The presentation software interprets the gestures of the customer and invokes services that do things like acquiring the data for the current catalog, or registering the customer’s order. Note that the services have no idea they are talking to a website. They could just as well be talking to a thick client, or a 3270 green screen. They simply accept and return data in a standard format that the web system happens to be able to use.

That’s really all there is to it. The rest of SOA is just a matter of details. At the highest level, SOA is nothing more (and nothing less) than separating changeable elements from unchangeable elements. But why is this important?

Consider that internet store-front again. It presents the user with a catalog, allows the user to move items into, and out of a shopping cart, and accepts the eventual order. The presentation of these concepts is very volatile. Marketing people are likely to want to change it frequently. For example, they might want to change from a shopping cart metaphor to scrollable receipt on the sidebar. They may wish to present more or less descriptive data in the product list. They may want to experiment with different colors, font-faces, and layouts. Indeed, it’s feasible that they’ll want to try applets, JStart clients, Ajax, and a myriad of other presentation options. But none of this has anything to do with the core business functions encapsulated by the services. Those services that acquire catalogs and register orders remain unchanged despite all the presentation thrashing. That’s why the separation is important. It protects the information processing assets of the business from the constant jitter and spin of the presentation.

But presentation is not the only thing that jitters and spins. So do the business processes. Again, consider our store-front. Perhaps our business has decided to offer fine wines as one of the products it sells. Selling alcohol requires that the age of the customer be verified. Let us say that we have a service that provides this verification. This service must be called for any order that contains alcohol products. The decision to call this service is neither a presentation decision, nor a service decision. Rather it is part of the business process for a particular kind of order. Business processes are volatile and they breed like rabbits. As businesses evolve they add more and more steps and forks to their business processes. The services being used by those processes don’t change much; but the pathways through the processes do. Therefore we want to separate the business process from the services and from the presentation. Smalltalkers had a name for this separation when it appeared in a single program. They called it Model-View-Controller.

Notice that we have yet to mention even one of the plethora of technologies that are so commonly associated with SOA. That’s because SOA is not about any particular technology. Rather it is a design philosophy that decouples well heeled business functions from volatile processes and presentations. It is the MVC of enterprise software.

In my next blog on this topic, we’ll look at the next level of detail in an attempt to understand HOW services can be constructed, and how the decoupling of presentation, process, and functions can be achieved.


text by blog.objectmentor.com

miércoles, 8 de septiembre de 2010

Service Architecture; something you do - not something that gets done to you...

We believe in providing visibility and control to the Services life cycle - all the way from business requirements and architecture through to implementation of the solution.

MooD SOA is award wining software that means you own the business strategy & requirements, the architecture, the solution design, the monitoring and realisation of benefits achieved. From this powerful position, it is then you who chooses how to implement.

MooD SOA is designed for Enterprise, Information and Service Architects to accelerate the creation of Service Architecture.

by The Salamander Organization Ltd. All Rights Reserved.

viernes, 3 de septiembre de 2010

Service-oriented architecture

SOA implementations rely on a mesh of software services. Services comprise unassociated, loosely coupled units of functionality that have no calls to each other embedded in them. Each service implements one action, such as filling out an online application for an account, or viewing an online bank-statement, or placing an online booking or airline ticket order. Instead of services embedding calls to each other in their source code they use defined protocols that describe how services pass and parse messages, using description metadata.

SOA developers associate individual SOA objects by using orchestration. In the process of orchestration the developer associates software functionality (the services) in a non-hierarchical arrangement using a software tool that contains a complete list of all available services, their characteristics, and the means to build an application utilizing these sources.

Underlying and enabling all of this requires metadata in sufficient detail to describe not only the characteristics of these services, but also the data that drives them. Programmers have made extensive use of XML in SOA to structure data that they wrap in a nearly exhaustive description-container. Analogously, the Web Services Description Language (WSDL) typically describes the services themselves, while the SOAP protocol describes the communications protocols.Whether these description languages are the best possible for the job, and whether they will become/remain the favorites in the future, remain open questions. As of 2008 SOA depends on data and services that are described by metadata that should meet the following two criteria:

  1. The metadata should come in a form that software systems can use to configure dynamically by discovery and incorporation of defined services, and also to maintain coherence and integrity. For example, metadata could be used by other applications, like a catalogue, to perform autodiscovery of services without modifying the functional contract of a service.
  2. The metadata should come in a form that system designers can understand and manage with a reasonable expenditure of cost and effort.

SOA aims to allow users to string together fairly large chunks of functionality to form ad hoc applications that are built almost entirely from existing software services. The larger the chunks, the fewer the interface points required to implement any given set of functionality; however, very large chunks of functionality may not prove sufficiently granular for easy reuse. Each interface brings with it some amount of processing overhead, so there is a performance consideration in choosing the granularity of services. The great promise of SOA suggests that the marginal cost of creating the n-th application is low, as all of the software required already exists to satisfy the requirements of other applications. Ideally, one requires only orchestration to produce a new application.

For this to operate, no interactions must exist between the chunks specified or within the chunks themselves. Instead, humans specify the interaction of services (all of them unassociated peers) in a relatively ad hoc way with the intent driven by newly emergent requirements. Thus the need for services as much larger units of functionality than traditional functions or classes, lest the sheer complexity of thousands of such granular objects overwhelm the application designer. Programmers develop the services themselves using traditional languages like Java, C, C++, C#, Visual Basic, COBOL, or PHP.

SOA services feature loose coupling, in contrast to the functions that a linker binds together to form an executable, to a dynamically linked library or to an assembly. SOA services also run in "safe" wrappers (such as Java or .NET) and in other programming languages that manage memory allocation and reclamation, allow ad hoc and late binding, and provide some degree of indeterminate data typing.

As of 2008, increasing numbers of third-party software companies offer software services for a fee. In the future, SOA systems may[original research?] consist of such third-party services combined with others created in-house. This has the potential to spread costs over many customers and customer uses, and promotes standardization both in and across industries. In particular, the travel industry now has a well-defined and documented set of both services and data, sufficient to allow any reasonably competent software engineer to create travel-agency software using entirely off-the-shelf software services.[3]

Other industries, such as the finance industry, have also started making significant progress in this direction.

SOA as an architecture relies on service-orientation as its fundamental design principle[4]. If a service presents a simple interface that abstracts away its underlying complexity, users can access independent services without knowledge of the service's platform implementation[5].

SOA relies on services exposing their functionality via interfaces that other applications and services can read to understand how to utilize those services.

From Wikipedia, the free encyclopedia

miércoles, 1 de septiembre de 2010

Product Overview - Comprehensive SOA Infrastructure - IT

SOA Software’s Portfolio Manager™, Repository Manager™, Policy Manager™, and Service Manager™ combine to form a comprehensive Integrated SOA Governance Automation solution, with SOLA™ providing a governable Mainframe SOA platform.

Portfolio Manager™ is an innovative Planning Governance product that helps ensure the alignment of SOA Programs with strategic IT investment and business objectives and makes sure that enterprises build the right services at the right time. It helps customers identify candidate services and build an SOA roadmap through SOA Modeling, Asset Identification, and a Portfolio Management process. To achieve these goals Portfolio Manager functions as part of a unified SOA Governance automation suite with seamless integration with Repository Manager™ and Policy Manager™.

Repository Manager™ provides an advanced software development asset (SDA) repository, lifecycle management, and metadata federation solution. It governs leading development platforms, ensuring consistent definition and management of services and other assets across all development environments. Repository Manager supports advanced SDA repository and governance capabilities including the ability to define and manage custom asset and artifact types, asset relationship management, integrated development environment (IDE) integration, and comprehensive asset federation. It integrates seamlessly with Policy Manager where policy decisions are required in the Development Governance process, as well as provisions service consumption agreements made by developers to Policy Manager for further governance. Repository Manager supports application development and architecture teams, providing a comprehensive Development Governance solution.

Service Manager™ automatically implements and enforces policies from Policy Manager. It generates usage, performance and policy compliance metrics that it reports to Policy Manager so that it can audit that policies are being enforced in a closed-loop process. Service Manager support SOA and enterprise operational management functions, ensuring that services are security, reliable, and meet the performance goals for each consumer.

Policy Manager™ provides an SOA Registry/Repository and comprehensive SOA Policy Governance solution, with powerful governance automation capabilities. Governance automation minimizes the overhead associated with governance processes, and turns governance from a painful workload, into a productivity tool. Policy Manager includes a built-in policy and service metadata repository supporting its policy governance processes. Policy Manager supports enterprise and SOA architecture functions, ensuring consistent application of policies throughout an enterprise SOA program. Using this solution architects, developers, security administrators, and operations managers can define and govern policies that are applied to services throughout the appropriate stages of their lifecycle.

We also recently announced SOLA™ 6.0 which provides mainframe programmers with an intuitive portal for readily exposing and consuming Web services from CICS applications. SOLA’s runtime is entirely host-based and is optimized to deliver exceptional performance to minimize the cost of leveraging Web services on the mainframe. For more information please see the press release.

Repository Manager, Policy Manager, and Service Manager together deliver an Integrated SOA Governance automation solution that ensures that companies build the right services, build services right, and run services right.

text by http://www.soa.com

domingo, 29 de agosto de 2010

About Corda's Executive Dashboard Professional Services

Corda recognizes that award winning graphics software is only part of the solution, so we provide Professional Services to help our customers be more successful. Our deep knowledge about data visualization, our expertise in data acquisition, together with our understanding of Industry Solutions and Dashboard Best Practices are available to our customers via our Professional Services organization. Our focus on quality and results gives our customers confidence to realize the value of Corda software and will help increase the performance of your data visualization projects.

Complete Dashboard Life Cycle Services


Dashboard Solution needs assessment and Enterprise fit consultation

Is a dashboard right for your company? Can a dashboard be leveraged to improve and enhance business process and information communication? Working in conjunction with your existing enterprise application stack, can a dashboard extend and improve your decision-making ability? What strategies should you employ to create high value ROI for a dashboard solution within your company? Expert consultants can help you answer these questions.

Dashboard Solution product evaluation and selection consultation

Finding the right product to support your dashboard efforts is crucial. Determining which products can work well with your existing infrastructure is key because a dashboard project should not be considered a replacement technology, but an enhancing technology. Evaluation should closely consider the breadth of the dashboard needs including: data source integration with all needed sources, ability to leverage existing systems and investment, ability to integrate in portal and other mash-up type deployment scenarios, supportability within your infrastructure, ability to meet future goals and deliver ROI.

Project Definition and Key Performance Indicator (KPI) Selection

Key to any dashboard project is a determination of what things should be monitored by the dashboard, and what action can be taken directly from the dashboard. An effective method that can facilitate this is a KPI Design Workshop which will cover the following items: Consultation in Best Practices KPI selection, Information flow design, KPI and Dashboard blueprint creation, Dashboard "best fit" type selection, Dashboard project caveats, catches, solutions.

text by www.corda.com

sábado, 21 de agosto de 2010

Service-Oriented Architecture (SOA) and Web Services: The Road to Enterprise Application Integration (EAI)



by Qusay H. Mahmoud, April 2010

Most enterprises have made extensive investments in system resources over the course of many years. Such enterprises have an enormous amount of data stored in legacy enterprise information systems (EIS), so it's not practical to discard existing systems. It's more cost-effective to evolve and enhance EIS. But how can this be done? Service Oriented Architecture (SOA) provides a cost-effective solution.

SOA is not a new concept. Sun defined SOA in the late 1990's to describe Jini, which is an environment for dynamic discovery and use of services over a network. Web services have taken the concept of services introduced by Jini technology and implemented it as services delivered over the web using technologies such as XML, Web Services Description Language (WSDL), Simple Object Access Protocol (SOAP), and Universal Description, Discovery, and Integration(UDDI). SOA is emerging as the premier integration and architecture framework in today's complex and heterogeneous computing environment. Previous attempts didn't enable open interoperable solutions, but relied on proprietary APIs and required a high degree of coordination between groups. SOA can help organizations streamline processes so that they can do business more efficiently, and adapt to changing needs and competition, enabling thesoftware as a service concept. eBay for example, is opening up its web services API for its online auction. The goal is to drive developers to make money around the eBay platform. Through the new APIs, developers can build custom applications that link to the online auction site and allow applications to submit items for sale. Such applications are typically aimed at sellers, since buyers must still head to ebay.com to bid on items. This type of strategy, however, will increase the customer base for eBay.

SOA and web services are two different things, but web services are the preferred standards-based way to realize SOA. This article provides an overview of SOA and the role of web services in realizing it. The article provides:

  • An overview of software as a service
  • A tutorial on SOA
  • An overview of Sun's platforms for building web services
  • Guidelines for designing interoperable web services
  • Challenges in moving to SOA
  • An overview of Java Business Integration (JSR 208)
  • A discussion of web services for enterprise application integration
Service-Oriented Architecture

SOA is an architectural style for building software applications that use services available in a network such as the web. It promotes loose coupling between software components so that they can be reused. Applications in SOA are built based on services. A service is an implementation of a well-defined business functionality, and such services can then be consumed by clients in different applications or business processes.

SOA allows for the reuse of existing assets where new services can be created from an existing IT infrastructure of systems. In other words, it enables businesses to leverage existing investments by allowing them to reuse existing applications, and promises interoperability between heterogeneous applications and technologies. SOA provides a level of flexibility that wasn't possible before in the sense that:

  • Services are software components with well-defined interfaces that are implementation-independent. An important aspect of SOA is the separation of the service interface (the what) from its implementation (the how). Such services are consumed by clients that are not concerned with how these services will execute their requests.
  • Services are self-contained (perform predetermined tasks) and loosely coupled (for independence)
  • Services can be dynamically discovered
  • Composite services can be built from aggregates of other services

SOA uses the find-bind-execute paradigm as shown in Figure 1. In this paradigm, service providers register their service in a public registry. This registry is used by consumers to find services that match certain criteria. If the registry has such a service, it provides the consumer with a contract and an endpoint address for that service.

Services as Web Services

It is very important to view and position SOA as an architectural model that is agnostic to any one technology platform. By doing so, an enterprise is given the freedom to continually pursue the strategic goals associated with service-oriented computing by leveraging future technology advancements. In the current marketplace, the technology platform most associated with the realization of SOA is Web services.

The popularity of Web services preceded that of service-oriented computing. As a result, their initial use was primarily within traditional distributed solutions wherein they were most commonly used to facilitate point-to-point integration channels. As the maturity and adoption of Web services standards increased, so did the scope of their utilization. With service-oriented computing comes a distinct architectural model that has been positioned by the vendor community as one that can fully leverage the open interoperability potential of Web services, especially when individual services are consistently shaped by service-orientation. For example, when exposing reusable logic as Web services, the reuse potential is significantly increased. Because service logic can now be accessed via a vendor-neutral communications framework, it becomes available to a wider range of service consumer programs. Additionally, the fact that Web services provide a communications framework based on physically decoupled service contracts allows a service contract to be fully standardized independently from its implementation. This facilitates a potentially high level of service abstraction while providing the opportunity to fully decouple the service from any proprietary implementation details. As explored at http://www.soaprinciples.com/, all of these characteristics are desirable when pursuing key principles, such as Standardized Service Contracts, Service Reusability, Service Loose Coupling, Service Abstraction, and Service Composability.