Professional Documents
Culture Documents
Citanje Esb
Citanje Esb
Chapter 2
Prica oko stvari kojima je potrebna integracija ili oni koji su to lose uradili:
The accidental architecture - nastaje kao rezultat nepostojanja integracijske
strategije na nivou koorpooracije. Svako vodi svoju politiku. Stvara se krhka i
rigidna invrastruktura, koja nije kohezivna i tesko podnosi promjene.
Sometimes the application is considered a legacy system in which you are unwilling
or unable to make changes simply beacuse it has been put into maintenance mode.
Na 31. stranici ima fina lista stvari koje ne valjaju na ovim arhitekturama.
Ovaj dio oko slucajne arhitekture predstavlja fin dio za zavrsni, jer legacy
aplikacija nije ocekivala integraciju sa sistemom novim, treba je osmisliti bla
bla.
*Prihvatanje XMLa
*Adopt Web Services and implement SOA
Razmisljanje i planiranje u pogledu SOA je osnovni korak u
u refaktorisanju ka ESBu. Service-level interfejsi pruzaju zajednicki
sloj apstrakcije koji stvara granicu/razdvojenost izmedju interfejsa i
implementaciju.
-Refactoring to ESB-
Prvi korak bi bio uvodjenje ESB-a na jednom projektu.
Service containers?? (Chapter 6) - Sluzi za konektovanje na ESB (valjda)
Za konektovanje starih aplikacija, moguce je koristiti mostove, tako da se na
starim aplikacijama koje jos nisu usle u koristenje busa direktno, ne moraju
praviti nikakve izmjene.
Sljdeci korak (nakon sto je citav interni sistem presao na ESB) je ukljucivanje
partera.
or it could involve installing an ESB node at the partner site as well. The
decision of which approach to use could depend entirely on how close a relationship
your organization has with the partner, whether the partner would allow you to
install software at their site, or whether they already have an ESB that can link
with yours.
---Chapter 3---
ESB je arhitektura.
Tehnologije koje su katalizirale kreaciju ESBa su Java message service, Applicatoin
servers, EAI...
Slika historje ESBa i tehnologija koje su joj prethodile. (mogla bi biti dobar
materijal).
---Chapter 4---
Applying the canonical XML data exchange technique on a larger scale yields the
following benefits:
Each application needs to focus on only one type of transformation to and from a
common format. This illustrates an important philosophy of the bus that will be
reinforced throughout the book. If you are the owner of an individual application,
your only concern is that you plug into the bus, you post data to the bus, and you
receive data from the bus. The bus is responsible for getting the data where it
needs to go, in the target data formats that it needs to be in, and using the
protocols, adapters, and transformations necessary to get there.
New applications being written to plug into the bus can use the canonical XML
format directly. And multiple applications not anticipated today can tap into the
flow of messages on the bus to create heretofore unimagined uses.
ESB services such as the CBR and the splitter can be written to use the canonical
XML format. As we will see in Chapter 7, a service type can be written once and
then customized on a per-instance basis by supplying different XSLT stylesheets,
endpoint definitions, and routing rules. Having an agreed-upon format for common
things such as address tags and purchase order numbers can be a tremendous
advantage here.
Standard stylesheet templates and libraries can be created and reused throughout
the organization.
applications are abstractly decoupled; senders and receivers are never aware of
each other.Instead, they send and receive messages to and from the messaging
system. It is the responsibility of the messaging system (MOM) to get the messages
to their intended destinations. (pogledaj sliku)The messaging system is usually
implemented as a software process, which is commonly known as a message server or a
MESSAGE BROKER. - OVO JE BITNO!!!! Serveri se mogu grupisati u klastere kako bi se
radile razlicite karafeke (load balancing, fault tolerance, sofisticirano
rutiranje...)
Svaka aplikacija se samo mora brinuti oko stvari koje salje i da ih je poslala
MOMu, response ce primiti naknadno. Cononical data format smanjuje broj
transformacija.
If you are the owner of a service or an application domain, you need only be
concerned with three operations: plugging into the bus, posting data to the bus,
and receiving data from the bus.
-MOM concepts-
Producent ne mora znati kome salje poruku, niti koliko ljudi slusa poruku, kao sto
ni konzument ne mora znati od koga prima poruku. Ukoliko postoji potreba za
odgovorom na poruku, poruka zadrzi "ReplyTo" atribut, putem kojeg aplikacija zna
kome da odgovori tj. na koji kanal.
Messaging models:
*Publish-subscribe - namjenjeno za 1-to-many komunikaciju - ukoliko niko ne
primi poruku ona moze biti odbacena
*Point to point - namjenjeno za jedng primaoca - Moze vise aplikacija slusati
(npr. u cilju load balancinga), ali ce samo jedna ili nijedna aplikacija primiti
poruku. Poruka ostaje u redu dok je neko ne pokupi.
(ima fina slika pogledaj)
ACL - access control list - mogu se kreirati prava pristupa za razlicite korisnike.
A message is typically composed of three basic parts: the headers, the properties,
and the message payload or body (Figure 5-9). The headers are used by both the
messaging system and the application developer to provide information about things
such as the destination, the reply-to destination, the message type, and the
message expiration time.The format of the message payload can vary across messaging
implementations. Most common formats are plain text, a raw stream of bytes for
holding any type of binary data, or a special XML message type that allow the
message payload to be accessed using any number of common XML parsing technologies.
-Asynchronous Reliability-
Tri su djela pouzdanog asihronog komuniciranja:
*Message autonomy -poruke su self-contained, autonomni entiteti koji predstavljaju
biznis transakciju. Kada producent posalje poruku, njegov posao je gotov. Na ESBu
je da tu porukusigurno posalje do primaoca.
*Message Acknowledgments - izvrsava se na "wire protocol level" TCP UDC? ili sta je
vec u pitanju? Ovo je kljucni faktor kako bi Messaging sistem znao u kojem su
stadiju poruke.
Reliable Publish-and-Subscribe
When an application registers its interest in receiving messages on a
particular topic, it can specify that the subscription is durable. A durable
subscription will survive the failure of the subscribing client. This means that if
the intended receiver of a message becomes unavailable for any reason, the message
server will continue to store messages on behalf of the receiver until the receiver
becomes available again. Ima fina slikica.
Neka prica o store and forward...kako se poruka moze kretati kroz vise messaging
servera.
-Transacted Messages-
Local transaction - Moguce je napraviti slanje vise poruka koje se salju kroz jednu
transakciju, pa da se onda radi commit, kako bi se mogao raditi callback.
-Messaging Standards-
Many things contribute to making the ESB highly distributed, but the three
components that stand out the most are the use of abstract endpoints for
representing remote services, Internet-capable MOM, and a distributed lightweight
service container.
The service endpoint provides an abstraction away from the underlying protocol (or
MOM channel). The ESB allows the underlying protocol to vary depending on the
deployment situation and the QoS requirements.
Diversity in connectivity is a core capability that is fundamental to making the
ESB a realistic approach across a global enterprise.
Because the ESB can support multiple ways of connecting into it, applications don't
require any drastic changes to "get on the bus."
This means that applications should be able to connect into the bus with as little
modification as possible. It is the bus, not the applications, that provides the
flexibility in connection technologies.
Ovaj servis ima i endpoint za konfiguraciju kroz koju se namjestaju svi parametri
koji su potrebni za rad ESBa.
Ima slika sta sve objedinjava esb container, ne znam da li ima ista interesatno?
Quality of Protection (QoP) and security, Quality of Service (QoS), and transaction
services are also provided to the service via the ESB container. The method of
administration of ESB facilities can range from a full-blown GUI to a command-line
interface to an administrative API, depending on the implementation.
Malo treba razjasniti sta je container, sta servis, gdje je ustvari ESB? U svakoj
aplikaciji je sta? Gdje je ESB?
-Service Reusability-
ESB servisi su reusable. Instancira se vise instanci ESB servisa (istog tipa)
kojima se postavljaju razlicite konfiguracije.
The MOM, along with the ESB containers, is deployed in as many places as you have
control over. This is because the MOM provides scalability through clustering of
message servers, a unified view of security, and asynchronous reliable delivery of
messages using the store-and-forward capabilities discussed in Chapter 5.
-MOM interoperability-
When using a MOM, the sender and receiver need a piece of client software supplied
by the MOM vendor in order to participate in a messaging conversation.
Prica oko JMS standarda i da svi MOMovi koji implementiraju ovaj standard pruzaju
mogucnost da se poruke sa jednom MOMa mogu slati na drugi MOM. Cesto se spominje
JMS standard...mozda ga jos istraziti?
Bridging is one way to attach a legacy protocol such as FTP or SMTP (email) into an
ESB. As illustrated in Figure 8-5, an FTP or SMTP bridge is implemented as a
specialized messaging client, which converts data from one protocol to and from the
MOM channel.
An ESB also provides a bridge across MOM implementations.
One form of integrating an ESB MOM core with another protocol is through direct
support for that protocol within the MOM's message broker. In this scenario, the
message broker itself provides the bridging, or mapping, between the external
protocol and the internal MOM channe
The ability to process HTTP requests, both inbound and outbound, is a critical
component that enables two of the four basic parts of an ESB as described by
Gartner: MOM and web services.
This introduces the concept of an HTTP protocol handler, which allows an ESB
message broker to listen for inbound HTTP or SOAP requests, much like a web server
or application server would. The protocol handler performs a mapping of the HTTP
content into a JMS message and places the JMS message into a queue or a pub/sub
topic destination. In an asynchronous messaging environment, a request/reply is
accomplished by setting up two messaging channels: one for the request and one for
the reply.
Sihroni HTTP vrati timeout error (potencijalno) prije vracanja responsa. Asihroni
odmah vrati 200 kao da je primio poruku, i naknadno posalje odgovor HTTPom.
SOAP handler.
-VETO pattern-
validate, Enrich, Transform, Operate
Bilo bi pozeljno da je validacija prvi korak i centralizovan, tako da svaki naredni
korak ne mora razmisljati o tome.
The Enrich step involves adding additional data to a message to make it more
meaningful and useful to a target service or application.
The Transform step converts the message to a target format.
The Operate step invokes the target service or interacts in some way with the
target application.
Moguce je dodati i routing step.