Академический Документы
Профессиональный Документы
Культура Документы
systems and applications communicate with each other by exposing and using
services. Services are defined using open standards, making intercommunication much easier to implement, and less dependent on proprietary
communication protocols.
Instead larger grained less mobile services have been introduced - SOA.
Service can move, but they typically do not move as dynamically as people
imagined distributed objects would. Additionally, when you call a service you
are typically aware that you are calling a remote entity. This means that you
have better control of both complexity and performance.
Some people sarcastically say that SOA stands for "Same Old Architecture" which is actually not that far from the truth. Todays services are strikingly alike
yesterdays remote procedure call protocols. The main difference is that today
services are more and more communicating via open standards, like SOAP,
Service Transactions
Service Repositories
Service Orchestration
Services
Applications
Services often target smaller and more isolated problems than applications.
Applications often expose and call services, sometimes services in other
applications. It's hard to get more concrete than this. Here is an example of
why:
A mail server (as software) can be thought of as both a service and an
application. It runs on some server (hardware) somewhere on the network. It
exposes 2-3 primary services: An SMTP service used to send email, and a
POP3 and an IMAP service to read email via. The mail server may not have a
user GUI that the users can interact with. They might just use some standard
email clients.
The mail server may had an administrator GUI though. But there is no
guarantee. The mail server could also just be configured via configuration
files.
The reason I would still call a mail server an application is that it exposes 2-3
services, is intended to be used by end users (though via some client
applications), and it targets a whole problem domain. But really, you might as
well call it a "mail service". The border between services and applications is
unclear.
Here is an illustration of the mail server example:
ESB Basics
ESB Disadvantages
ESB Basics
The term "bus" is an analogy to the internal bus of a computer onto which the
CPU, RAM and other chips are connected. An enterprise service bus is
typically implemented as a server or a set of servers, and is thus more than
just a "network".
authentication and authorization, the enterprise service bus can require this in
the service interface it exposes to potential clients.
Such a proxy service does not have to be a built-in capability of an ESB. It can
also just be deployed as a separate service, made available via the ESB.
ESB Disadvantages
Connecting your services via an ESB also has a few disadvantages. First of
all the ESB may become a single point of failure. If the ESB is down, no
communication between clients and services can take place. Second, the
extra level of indirection may result in decreased performance of client-service
communication.