AcronymFinder defines service-oriented architecture as "software-Oriented architecture (systems development)".
Service-oriented architecture supports service orientation.It is applied in the field of software design where services are provided to the other components through a communication protocol over a network.A service is a unit of function that can be accessed remotely and updated independently, such as retrieving a credit card statement online.Vendors, products and technologies are not intended to be independent of SOA.[3]
Service orientation is a way of thinking about services and service-based development.[2]
Different services can be used in conjunction with a service mesh to provide a large software application.Service-oriented architecture has separate maintained and deployed software components.It is enabled by technologies and standards that allow components to communicate and cooperate over a network.
The idea of an application programming interface (API), an interface or communication protocol between different parts of a computer program intended to simplify the implementation and maintenance of software is related to SOA.The service can be thought of as an application programming interface, or an architecture that allows the service to operate.
Services use protocols to describe how they send and receive messages.The quality-of-service characteristics and the functional characteristics of the service are described.Service-oriented architecture aims to allow users to combine large chunks of functionality to form applications which are built purely from existing services and combining them in an ad hoc manner.A simple interface to the requester is presented by a service.Users can also access these services without being aware of their implementation.[6]
The serviceorientation promotes loosecoupling between services.In order to allow users to combine and reuse functions in the production of applications, a service oriented architecture separates functions into distinct units.These services and their corresponding consumers communicate with each other by passing data in a well-defined, shared format or by coordinating an activity between two or more services.[8]
In October of 2009, a manifesto was published for service-oriented architecture.This came up with six core values.
The older concept of distributed computing and modular programming can be seen as part of the continuum.[2]
Many industry sources have published their own principles, but there are no industry standards for the exact composition of a service-oriented architecture.The following are included in some of these.
The service consumer–provider relationship is governed by a standardized service contract which has a business part, a functional part and a technical part.
Service composition patterns have two different architectural styles.Lower level enterprise integration patterns that are not bound to a particular architectural style continue to be relevant.[20][21]
Micro services can be implemented with service-oriented architecture.It is done to make the functional building-blocks accessible over standard Internet protocols that are independent of platforms and programming languages.These services can be used to represent new applications or to make existing systems network-enabled.[23]
Web services standards are used to build SOAs.The W3C recommended Version 1.2 of SOAP in 2003 and it gained broad industry acceptance.Some protection from lock-in to proprietary vendor software is provided by these standards.One can use any other service-based technology, such as Jini.
The architecture can be implemented using a wide range of technologies.
Implementations can use one or more of these protocols and, for example, might use a file system mechanism to communicate data following a defined interface specification.Independent services with defined interfaces that can be called to perform their tasks in a standard way, without a service having foreknowledge of the calling application, and without the application having or needing knowledge of how the service actually performs its tasks are the key.The development of applications can be done by combining services.
The services work based on a formal definition that is independent of the underlying platform and programming language.The implementation of the language-specific service is hidden by the interface definition.The systems can function independently of development technologies and platforms.Services written in C# and Java can both be consumed by a common application.Applications running on either platform can consume services on the other platform.COBOL legacy systems can be presented as software services in managed environments.
The service concept can be extended by using high-level programming languages such as BPEL and specifications to define and support more coarse-grained business services.
Service-oriented modeling identifies the various disciplines that guide the creation, analysis, design, and architect of service oriented assets.The Service-oriented modeling framework offers a modeling language and a work structure depicting the various components that contribute to a successful service oriented modeling approach.It shows the "what to do" aspects of a service development scheme.The model allows practitioners to craft a project plan.A common modeling notation is provided to address alignment between business and IT organizations.
Some enterprise architects think that service oriented architecture can help businesses respond more quickly and cost-effectively to changing market conditions.The style of architecture promotes reuse at the macro level rather than the micro level.It can make it easier to use existing IT assets.
The idea is that an organization can look at more than one problem.Overall control is what a business has.There wouldn't be a lot of developers using tool sets that would please them.They would be coding to a standard within the business.They can develop an enterprise-wide service-oriented architecture.The highway system provided efficiency for car drivers.If everyone had a car, things would be limited and disorganized in any attempt to get anywhere quickly or efficiently.Michael Liebow is the Vice President of Web Services at IBM.[28]
It could be seen as an architectural evolution rather than a revolution.Many of the best practices of previous software architectures are captured.Development of solutions that use static binding to talk to other equipment in the network has not taken place.It is possible for systems to stress the importance of well-defined, highly inter-operable interface by embracing a SOA approach.Component-based software engineering and Object-Oriented Analysis and Design (OOAD) of remote objects are some of the predecessors of SOA.
A service consists of a stand-alone unit of function.Services are easy to produce and improve.Mega-corporations can be created as the coordinated work of the other services.
There are reasons for treating the implementation of services as separate projects.
Testing will be simplified indirectly.Services are stateless and separate from the implementation concerns.A corresponding stub is built when a service is being built if the organization has appropriately defined test data.A full set of regression tests is captured for the service.Existing stubs can be used to test the service as a 'black box'.Test environments can be constructed where the primitive and out-of-scope services are, while the rest of the mesh is test deployment of full services.It is easy to identify problems in test services when each interface has its own full set of regression test documentation.Testing can be used to find gaps in documentation and test cases of services within the environment.There is only one complexity to managing the data state of idempotent services.
Examples can help in documenting a service to the level where it becomes useful.Good examples can be found in the documentation of the Java Community Process.Staff would use only important subsets.The file 'ossjsa.pdf' is an example of such a file.30
Web services are only one option to implement the patterns that comprise the SOA style.In the absence of native forms of remote procedure call, applications could run more slowly and require more processing power.These overheads can be avoided by using technologies such as Java Business Integration, Windows Communication Foundation and data distribution service that do not depend on remote procedure calls.At the same time, there are emerging open-source technologies that promise to significantly improve the performance of the service-oriented architecture.[32]
Stateful services require both the consumer and provider to share the same consumer-specific context, which is either included in or referenced by messages exchanged between the provider and consumer.If the service-provider needs to retain the shared context for each consumer, this constraint could be a problem.It makes it more difficult to switch service providers.Some critics feel that the services are too constrained by applications.36
There is a challenge faced by service-oriented architecture.Many services communicate with each other to perform tasks.An Application may generate millions of messages due to the fact that the design may involve multiple services working together.A huge trust issue may be created by further services belonging to different organizations.The scheme of things involves governance.[37]
There is a lack of a uniform testing framework.There is no way to test these services in a service oriented architecture.There are some major causes of difficulty.
The framework through which developers can interact with a web application is called an application programming interface.
"Web 2.0" is a term used by Tim O'Reilly to describe a set of web-based applications.There has been extensive coverage of the relationship between Web 2.0 and service-oriented architectures.
The philosophy of service oriented architecture (SOA) is to make application logic publicly available via discovery mechanisms.The idea of complexity-hiding and reuse has inspired researchers to elaborate on similarities between the two philosophies, as well as their respective applications.Some argue that Web 2.0 can't be considered a "parallel philosophy" because it has significantly different elements, while others consider the two concepts to be one and the same.40