Chapter5-Solving Integration Problems Using Patterns

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 29

Solving Integration Problems using Patterns

Middleware - Recap
• Middleware is any type of software that facilitates
communication between two or more software
systems
• ‫تايجمربال ةمظنأ نم رثكأ وأ نينثا نيب لصاوتال لهست يتال تايجمربال نم عون يأ وه ةطيسوال‬
– Can be simple communication connection between applications
– ‫تاقيبطتال نيب طيسب الصتا الصتا نوكي نأ نكمي‬
– Can be as sophisticated as information sharing and logic
execution mechanisms‫ق طنمال ذيفنتال ت ايآلو ت امولعمال ل دابتل ثم ةروطتم ن وكتن أ ن كمي‬
• Middleware is a technology that allows us to move
information between multiple systems that may reside
within and outside an organization ‫دقي تال ةددعتمال ةمظنألا ن يبت امولعمال ل قنلانلحمستي تال ايجولونكتال‬
‫ي ه ة طيسوال‬
‫ةمظنمال جراخو لخاد ةدوجوم نوكت‬

• Message-Oriented Middleware (MOM) is queuing software


that uses is messages as a mechanism to move
information from point to point( ‫ةطيسوال ةهجومال ةالسر ةالسرال‬MOM) ‫ل قنلةيآلك ل ئاسر ي ه‬
‫مدختستي تال جماربال ن وفطصيو ةطقنى إل ةطقنن م ت امولعمال‬
,MOM uses the notion of messages to communicate between
Tight Coupling
• A great example of tight coupling is a local method invocation ‫ ي لحمال ب ولسألا ءاعدتسا وه ق يضن ارتقا ن م ريبك ال ثم ك انهو‬.
• Invoking a local method inside an application is based on a lot of assumptions between the
called and the calling routine‫ ةوعدال ن يتورالو ب الط ن يبت اضارتفالا ن م ريثكال ى لع دنتسيق يبطتل خاد ةيلحم ةليسو جاجتحالا‬.
– Both methods have to run in the same process (e.g. a virtual machine) and be written in the same language
(or at least use a common intermediate language or byte code ) ) ‫ف معتن أ ب جين يتقيرطال اتلك‬ ‫ي رهاظ زاهج ل ثم( ةيلمعال س فني ل‬
‫دوك ت يابدض ةكرتشم ةطيسو ةغلمادختسا ل قألا ى لع وأ( اهسفنة غلالبة بوتكم ن وكتو‬
– The calling method has to pass the exact number of expected parameters, each using the correct type .
‫عقوتمال ت املعمللق يقدال ددعال ريرمتلهيدلءاعدتسالا ةقيرط‬, ‫حيحصال عونال مادختسابل ك‬
• The call is immediate, i.e. the called method starts processing immediately after the calling
method makes the call ,‫ اروفةمالكمال‬.i.s. .‫ةمالكمال ل عجيةوعدال ةقيرط دعبةرشابم ةجالعم أدبيى مستةقيرط ى لع‬
• Meanwhile, the calling method will only resume processing when the called method completes
(meaning the invocation is synchronous ‫هسفنت قوال‬,‫ي ى مستةقيرط ال متكا دنع ةجالعم طقفف نأتستةوعدال ب ولسأ ن إف‬
( ‫جاجتحالا ي نع‬
‫ن مازتم ريغ‬ ). ‫ي فو‬
• The communication between the methods is immediate and instantaneous, so neither the caller nor
the called method have to worry about security in the form of eavesdropping 3rd parties . ‫ب يالسألا ن يبل صاوتال‬
‫ي روفالو رشابمال ريغ‬,‫ ل كشي فن مألا ل وح ق لقللي ع اد ب ولسأ ءاعدتسا ال و ل صتمال ال ك لذل‬3 rd‫ت صنتال ف ارطألا‬
• All these assumptions make it very easy to write well structured applications that break functionality into
individual methods to be called by other methods ‫ ي فف ئاظو رسك ن أ اديج اميظنتت اقيبطتال ةباتكلادج ل هسال ن م ل عجتت اضارتفالا هذه ل ك‬.
.‫ى رخأ ل ئاسو ل بقن م اهؤاعدتسا متيلةيدرفب يالسأ‬
Tight Coupling Example Problem
• Assume we are building an on-line banking system that
allows customers to deposit money into their account
from another bank‫رخآ ك نبن م هباسح ي فال ومألا عاديإ ءال معللحيتتت نرتنإلا ى لع ي فرصم ماظنءانببموقناننأ‬
‫ ض رتفن‬.
Let’s assume that the remote function that deposits money
into a person’s account takes only the person’s name and the
Dollar
.amount as arguments
‫طئاسوك رالودال رادقمو صخشال مسا ىوس قرغتسي صخشال باسح يف الومألا عئادو نأ دعب ةفيظو نأ‬
‫ضرتفنل‬

• To perform this function, the front-end Web application has to be


integrated with the back-end financial system that manages
fund transfers‫ةفيظوال هذه ءادأل‬, ‫ ةيالمال ت اليوحتال ريدتي تال ةيفلخال ةهجللي المال ماظنال عم ةيمامألا ب يو ق يبطتجمد ن م دبال‬.
• The easiest way to connect the two systems is through the
TCP/IP protocol ‫ةمهمال هذه‬, ‫ل يوحتريدتي تال ةيفلخال ةهجللي المال ماظنال عم ةلماكتم ن وكتن أ ي مامأ ب يو ق يبطتو‬
‫ ءادأل‬.
‫لوكوتورب لالخ نم نيماظنال طبرل ةقيرط لهسأ الومألا‬TCP / IP
– Operating system or programming library include a TCP/IP stack. TCP/IP is the
Tight Coupling Example Solution
Code to call such a function over TCP/IP:
String hostName = "www.boa.com
"; int port = ;80

IPHostEntry hostInfo = Dns.GetHostByName(hostName);


IPAddress address = hostInfo.AddressList[;]0

IPEndPoint endpoint = new IPEndPoint(address, port;)

Socket socket = new Socket(address.AddressFamily,


SocketType.Stream, ProtocolType.Tcp;)
socket.Connect(endpoint;)

byte[] amount = BitConverter.GetBytes(1000); byte[] name


= Encoding.ASCII.GetBytes("Joe;)"

int bytesSent =
socket.Send(amount); bytesSent +=
socket.Send(name;)
;)(socket.Close • Code opens a socket connection to the address
www.boa.com and sends two data items (the amount
and the customer’s name) across the network.
• When we run this code it tells us: “7 bytes sent ‫ الصتا حتفدوك‬.”
‫ناونع ىإل ذخأم‬www.boa.com ‫ةكبشال ربع )ليمعال مساو غلبمال( تانايبال رصانع نم نينثا لسريو‬.
." ‫انلل وقيوه زمرال اذه ل يغشتبموقنامدنع‬: "7‫ت لسرأ ت ياب‬
Tight Coupling Example Assumptions
• This minimalist integration solution is fast and cheap, but it results in a very brittle solution because the two
participating parties make the following assumptions about each other ‫ةصيخرو ة عيرس وه ى ندألا دحال ل ماكتال ل حال‬, ‫هنكلو‬
‫ض عبال اهضعبن ع ةيالتال ت اضارتفالا ل عجتةكراشمال ب ازحألا ن م ن ينثا ن أل ةياغللش ه ل ح ى إل ي دؤي‬ : ‫اذه‬
– Platform Technology – internal representations of numbers and objects ‫ ايجولونكتةصنم‬-‫ءايشألاو ماقرألا ن م ةيلخادال ل يثامت‬
• 32bit vs 64 bit internal representation32‫ ي لخادال ل يثمتال ل باقم ت ب‬64‫ت ب‬
• A system using 64 bits would be inclined to read 8 bytes off the network and would endup interpreting the whole
message (including the customername) as a single number ‫ مادختسابماظن‬64‫ ةءارقلل يمين وكيست ب‬8‫ةكبشال جراخ ت ياب‬, ‫ف وسو‬
‫ي‬
. ‫امب ةلماك ةالسرال ريسفتي هتن‬
( ‫دحاو مقرك )ل يمعال مسا ك لذ ي ف‬
– Location – hard-coded machine addresses ‫ عقوم‬- ‫اهنيولتت باثال زاهجال ن يوانع‬
• Remote functions and machine location are hard-coded. Any change in anything, we would have to change
code. If we use a lot of remote functions this could become very tedious‫دعب‬, ‫اهنيولت ت باثال ي ه ةآل ن اكمالو‬. ‫ي أ ي فرييغتي أ‬
‫ءي ش‬,‫زمرال رييغتلانيدلن وكيس‬. ‫ ادج ةلمم حبصتن أ ن كمياذه دعبن ع ف ئاظو ن م ريثكال مادختسا اندرأ اذإ‬. ‫ن ع ف ئاظو‬
– Time – all components have to be available at the same time ‫ ت قولا‬- ‫تقوال س فني فةحاتم ن وكتن أ ب جيت انوكمال ل ك‬
• Establishing a TCP connection requires that both machines and the network are all availableat the same time
‫ ال صتا‬.‫س يسأت‬TCP‫ت قوال س فني فحاتم وه ام ل ك ةكبشو ت الآ ن م ال ك ن أ ب لطتي‬
– Data Format – the list of parameters and their types must match‫ ت انايبال ق يسنت‬-‫ق باطتتن أ ب جياهع اونأو ت املعم ةمئاق‬
• If we want to insert a third parameter, e.g. the name of the currency, we would have to modify both sender and
receiver to use the new data format ‫ةثالثال ةملعمال جاردإ ن أ ديرنانك اذإ‬, ‫ال ثمال ل يبسى لع‬, ‫ةلمعال مسا‬, ‫ي قلتمالو ل سرمال ن م ل ك ل يدعتلانيدلن أ‬
.
.‫ةديدجال ت انايبال ق يسنتمادختسال‬

• Coupling is a measure of how many assumptions parties make about each other when they communicate. Our
simple solution requires the parties to make a lot of assumptions. Therefore, this solution is tightly coupled .
‫ل صاوتال امدنع ض عبال اهضعبن ع ف ارطألا ل عجت ت اضارتفالا ددعلس ايقم وه ن ارتقا‬. ‫ت اضارتفالا ن م ريثكال ل عجلن يفرطال ب لطتيطيسبل ح انيدل‬.‫ك لذل‬, ‫ل حال اذه ن رتقيو‬
Loosely coupled solution
• Instead, we can develop
loosely coupled solution by
using a message-oriented
middleware
(MOM) infrastructure ‫ك لذ ن م‬,‫ةدعابتمال ل ح عضو اننكمي‬
‫ةالسر ةهجومال ةطيسوال مادختساب( ال دب‬MOM) ‫ةيتحتال ةينبال‬

• MOM mechanisms provides services such as ‫ت ايآل‬MOM‫ل ثم ت امدخ مدقت‬


– a common data format and transformers ‫انايبل كش‬ ‫ت الوحمالو ةكرتشم ت‬
• Removes platform and data format dependencies as the sender no longer has
to depend on the receiver's internal data format ‫هيدل دعيمل ل سرمك ت ايعبتت انايبال ق يسنتو ةصنم‬
‫ل يزي ي قلتمال ةيلخادال ت انايبال ق يسنتى لع دمتعت‬
– queuing channels ‫ت اونقروباطال‬
• Removes location and time dependencies as we do not have to pay attention
to computer’s identity & location or whether the other computer is ready to
accept requests or not ‫اذإ ام وأ ن اكمالو رتويبمكال ةيوه ى إل هابتنالا عفدلك يدلن كيملن حنو ت ايعبتال ن امزالو ن اكمال‬
‫ ال مأ ت ابلط ل وبقلادعتسم رخآلا رتويبمكال ن اك‬.‫ل يزي‬

• Removing these dependencies between the systems makes the


overall solution more tolerant to change, the key benefit of
Things that make up Middleware
• Middleware – the things that sit between applications - ‫ءايشألا‬
‫ ةطيسوال‬.
‫تاقيبطتال نيب سلجت يتال‬

• In order to connect two systems via an integration solution,


a number of things have to happen ‫ل ماكتال ل ح ق يرط ن ع ن يماظنال طبر ل جأ‬, ‫رومألا ن م ددع‬
‫ ث دحين أ ب جي‬. ‫ن م‬

• Applications want to exchange data – Messages‫ل دابتي فب غ رتت اقيبطت‬


‫ تانايبال‬- ‫لئاسر‬
– Message: a snippet of data that has an agreed-upon meaning to
both applications that are to be integrated ‫ي تال ت اقيبطتال ل كلى نعم اهيلع ت قفاو ي تال ت انايبال ن م‬
‫ةالسر اهجمد متيس‬: ‫ف طتقم‬
– This piece of data can be very small, such as the phone number of a
single customer that has changed, or very large, such as the
complete list of all customers and their associated addresses ‫ن وكتن أ ن كمي‬
‫ادج‬, ‫ريغتي ذال دحاو ل يمع ف تاه مقر ل ثم‬, ‫ادج ةريبك وأ‬, ‫ اهبةطبترمال ن يوانعالو ءال معال عيمج ن م ةلماك ةمئاقل ثم‬. ‫ت انايبال ن م ةعطقهذه‬
‫ةريغص‬
Message Construction
• When two applications wish to exchange a piece of data, they do so by wrapping it in a message ‫ ب غ رتامدنع‬.
.‫ت انايبال ن م ةعطقل دابتلت اقيبطتال ن م ن ينثا‬,‫ةالسر ي فهيلع ف افتلالا ق يرط ن ع ك لذ ل عفتاهنإف‬
• Message intent‫ةالسر ةين‬
– Command Message: invoking a function or method on the receive r‫رمألا ةالسر‬: ‫ي قلتمال ى لع ب ولسألا وأ ةفيظو ءاعدتسا‬
– Document Message: enabling the sender to transmit one of its data structures ‫ةقيثوال‬:‫ت انايبال ل كايه ن م دحاو ل قنى إل ل سرمال ن يكمت‬
‫ةالسر‬
‫هب ةصاخال‬
– Event Message: notifying the receiver of a change in the sender‫ث دحال ةالسر‬: ‫ ل سرم ي فرييغتن م ي قلتمال راطخإ‬.
• Returning a response‫ة باجتسا ةداعإ‬
– Request-Reply: The request is usually a Command Message, and the reply is a Document Message containing
a result value or an exception‫ب لط‬-‫در‬: ‫ةدايقال ةالسر ن وكيام ةداعو ب لط‬, ‫ ءانثتسا وأ ةجيتنةميقى لع ي وتحتةقيثو ةالسر وه درالو‬.
– Return Address: The requestor specifies what channel to use to transmit the reply.‫ن اونعال‬:‫درال ل قنلاهمادختسال ةانقام ب لطال ددحي‬
‫ ةدوع‬.
– Correlation Identifier: Responder specifies which request this reply corresponds to ‫ف رعم طابترا‬:‫ درال اذه ب لط ي ذال ب يجتسمال ددحي‬.
‫لباقي‬
• Huge amounts of data ‫ت انايبال ن م ةلئاه ت ايمك‬
– Message Sequence: break the data into more manageable chunks and send them as a sequence of messages, so that
the receiver can reconstruct the original data structure ‫سلست‬
, ‫ل‬: ‫ل ئاسرال ن م ةلسلساهنأ ى لع اهالسرإو ةرادإل لةيلباقرثكأ ءازجأ ى إل ت انايبال رسك‬
‫ ةالسر‬.
.‫ةيلصألا ت انايبال ل كيه ءانبةداعإ ن كميي قلتمال ن أ ى تح‬
• Slow messages
– Message Expiration: the sender can specify an expiration date. If the messaging system cannot deliver
a message by its expiration, it should discard the message. If a receiver gets a message after its
expiration, it should discard the message ‫ةالسرال ةيحالصال ءاهتنا‬: ‫ةيحالصال ءاهتنا خيراتديدحتن كميل سرمال‬. ‫ ماظنن اك اذإ‬.
Things that make up Middleware: Channel

• Data needs to be transported, usually across a network‫ جاتحت‬.


‫ةكبشال ربع ةداع اهلقن متيل تانايبال‬

• We need a communications channel that can move


information from one application to the other. This channel
could be a series of TCP/IP connections, a shared file, or a
shared database ‫رخآ ى إل دحاو ق يبطتن م ت امولعمال ل قنن كميي تال ت الاصتالا ةانقى إل ةجاحبن حن‬. ‫ن كميةانقال هذه‬
.
‫تالاصتالا نم ةلسلس نوكي نأ‬TCP / IP‫كرتشم فلم‬, ‫ ةكرتشم تانايب ةدعاق وأ‬,

–A channel is a logical address that both sender and receiver can


agree on the same channel without being aware of each other’s
identity ‫ ةنيبى لع ن وكين أ ن ود ةانقال س فنى لع ق فتنن أ ن كميي قلتمالو ل سرمال ن م ال ك ن أ ي قطنمال ن اونعال ي ه ةانقال‬-
.
‫رخآلا ةيوه نم‬

• The application selects a particular channel to send the


data knowing that the receiver will be one that is looking for
that sort of data on that channel ‫ن وكتف وسي قلتمال ن أ ملعال عم ت انايبال ال سرإل ةنيعم ةانقراتخي‬
‫ ق يبطت‬.
‫ةانقال كلت ىلع تانايبال نم عونال اذه نع ثحبت نأ ةدحاو‬
Messaging Channels
• Point-to-Point Channel: To send the data to a single application (1-to-1 interaction )
)‫ةانقال ةطقنى إل ةطقن‬: ‫( دحاو ق يبطتى إل ت انايبال ال سرإل‬1 ‫ ى إل‬1 ‫ل ع افتال‬
• Publish-Subscribe Channel: When you send a piece of data this way, the channel
effectively copies the data for each of the receivers (One to many interaction :‫رشن‬-‫) ةانقال ك ارتشالا‬
)‫ةقيرطال هذهبت انايبال ن م ةعطقال سرإ دنع‬, ‫عف كشبةانقالو‬
‫ل ع افتال ن م ريثك ى إل دحاو( ال بقتسالا ةزهجأ ن م ل كلت انايبال خسنال ل‬
• Datatype Channel: all of the data on a channel has to be of the same type (many to one
interaction))‫ةانقال ت انايبعون‬: ‫افت عونال س فنن م ن وكين أ ب جيةانقى لع ت انايبال عيمج‬
( ‫دحاو ى إل ن يريثكال ل ع‬
• Invalid Message Channel: When receiver receives a message that doesn’t meet these
expectations‫حالصريغ ةالسرال ةانق‬: ‫ت اعقوتال هذه ي بلتال ي تال ةالسرال ي قلتمال ى قلتيامدنع‬
• Dead Letter Channel: for messages which are successfully sent but ultimately cannot be
successfully delivered‫ق‬. ‫ةالسر ت يمال ةان‬: ‫ حاجنبميلستمتين أ ن كميال ف اطمال ةياهني فن كلو حاجنباهالسرإ متيي تال ل ئاسرال‬.
• Guaranteed Delivery: makes channels persistent so that their messages are stored on
disk ‫ميلستال ن ومضم‬:‫ص رقال ى لع ل ئاسرال ن يزختمتيث يحبةرمتسمال ت اونقال ل عجي‬
• Channel Adapter: can be used to connect a channel (or set of channels) to the application
without having to modify the application ‫ةانق‬:‫ى إل ةجاحال ن ود ق يبطتال ى إل )ت اونقن م ةعومجم وأ( ةانقل يصوتلاهمادختسا ن كمي‬
‫ل وحم ق يبطتل يدعت‬
• Messaging Bridge: connecting two message systems, effectively connecting them into
one composite messaging system‫ل ئاسرال رسج‬: ‫ةالسر ن يماظنطبر‬, ‫ دحاو ب كرم ل ئاسرال ماظني فاهطبر ال عفوحنى لع‬.
• Message Bus: a backbone providing access to all of the enterprise’s various and ever-
changing applications and functionality ‫ةلفاح‬: ‫اقيبطتال رارمتسابةريغتمالو ةفلتخمال عيمج ى إل ل وصوال ةيناكمإ ريفوتي رقفال دومعال‬ ‫ت‬
‫ ةالسر‬.
‫فئاظو ةسسؤملل‬
Things that make up Middleware:
Translation
• Middleware needs to provide some mechanism to
convert one application’s data format in the
other’s
‫ي‬
. ‫رخآلا ي تالو دحاو ق يبطتال ت انايبل كشل يوحتلةيآل ريفوتلةطيسوال جاتح‬

– Internal data format of an application can often not


be changed‫اهرييغتن كميال ن ايحألا ن م ريثك ي فن كميو ق يبطتللةيلخادال ت انايبال ق يسنت‬
– For example, one data format may store the customer name in two
fields, called FIRST_NAME and LAST_NAME, while the other system
may use a single field called Customer_Name ‫ال ثمال ل يبسى لع‬, ‫متيدقةدحاو ت انايبل كش‬ .
‫نيلقح يف ليمعال مسا نيزخت‬, ‫اعدو‬FIRST_NAME ‫و‬LAST_NAME ‫ ىمسي دحاو لقح مدختست دق رخآ ماظن نأ نيح يف‬,
CUSTOMER_NAME
Message Transformation
• Envelope Wrapper: wrap message payload data into an envelope
that is compliant with the requirements of the messaging
infrastructure .
.‫ف افتال ف ورظم‬:‫ل ئاسرال ةيتحتال ةينبال ت ابلطتم عم ق فاوتم ريغ ف لغم ى إل ة لومح ف افتال ةالسرال ت انايب‬

• Content Enricher: when the target system requires data fields that
the originating system cannot supply. It has the ability to look up
missing information or compute it from the available data ‫ف دهال ماظنال ب لطتي‬
‫ى وتحمال ي رثمال‬: ‫ امدنع‬.
‫ضرعال نأ نكمي ال اهؤشنم ماظنال نأ تانايبال لوقح‬. ‫ةحاتمال تانايبال نم كلذ باسح وأ ةصقانال تامولعمال نع ثحبلل ةردقال هيدل نمف‬

• Content Filter: removes unwanted data from a message‫ى وتحمال ةيفصت‬:‫ ل يزي‬.
‫ةالسر نم اهيف بوغرمال ريغ تانايبال‬

• Claim Check: removes data from a message but stores it for


later retrieval ‫ق قحتةبالطم‬:‫ ق حال ت قو ي فاهع اجرتسال اهنزخين كلو ةالسرال ن م ت انايبال ل يزي‬.
• Normalizer: translates messages arriving in many different
formats into a common format ‫ةيعيبط‬:‫ى إل ةفلتخمال غيصال ن م ديدعال ى ال هلوصو ل ئاسر مجرتي‬
‫ ةالح‬.
‫ةكرتشم ةغيص‬

• Canonical Data Model: Design an independent data model from


Things that make up Middleware: Routing

• Middleware needs to take care of sending messages


to multiple systems‫ةددعتم ةمظنأ ى إل ل ئاسرال ال سرإ ن م ةياعرلجاتحتةطيسوال‬
– As the number of systems increases it becomes very
tedious and requires the sending system to have
knowledge about all other systems ‫ةياغللال مم حبصيديزيةمظنأ ن م ددع ن اك املو‬
.
.‫ى رخألا ةمظنألا عيمج ن ع ةفرعم مهيدلال سرإ ماظنب لطتيو‬
– For example, if the customer address changes in the customer care
system we could make that system responsible for sending the
data to all other systems that store copies of the customer address
‫ى لع‬.
‫الثمال ليبس‬, ‫ةمظنألا عيمج ىإل تانايبال السرإ نع لوؤسمال ماظنال اذه لعجن نأ نكمي ءالمعال ةمدخ ماظن يف ليمعال ناونع ريغت اذإ‬
‫ليمعال ناونع نم اخسن نزخت يتال ىرخألا‬
– We could expect each application to specify the target
system(s) for the data it is sending over the channel ‫عقوتنن أ اننكمي‬
‫ ةانقربع ل سرتي تال ت انايبال ل ف دهتسمال ماظنال ديدحتلق يبطتل ك‬.
Message
Routing
Things that make up Middleware:
Systems management
• Integration solutions can quickly become complex because
they deal with multiple applications, data formats, channels,
routing and transformation ‫ ت اقيبطتعم ل ماعتتاهنأل ةدقعم حبصتام ن اعرسل ماكتال ل ولحللن كمي‬.
‫ةددعتم‬, ‫تانايبال جذامن‬, ‫تاونقالو‬, ‫ليوحتالو هيجوتال‬
– All these elements may be spread across multiple operating
platforms and geographic locations ‫ةيفارغجال عقاومالو ةددعتمال ل يغشتال ت اصنم ربع رصانعال هذه‬
‫ عيمج ي فرشتنتدق‬.

• In order to have any idea what is going on inside the


system we need a systems management function ‫امع ةركفي أ ى لع‬
‫ ل وصحال ل جأ ن م‬.
‫ةمظنألا ةرادإ ةفيظو ىإل ةجاحب نحن ماظنال لخاد يرجي‬
– This subsystem monitors the flow of data, makes sure that
all applications and components are available and reports
error conditions to a central location ‫ت انايبال ق فدتب قاري‬,‫عيم ج ن أ ن م دكأتالب‬
‫ ي ع رفال ماظنال اذه‬.
‫يزكرم عقوم ىإل أطخال تالاح ريراقتو ةرفوتم تانوكمالو تاقيبطتال‬
System Management

• Control Bus: provides a single point of control to manage and monitor


a distributed solution‫ة لفاح ةرطيسال‬:‫ل حال عيزوتة بقارمو ةرادإ ى لع ةرطيسللةدحاو ة طقنرفوي‬
• Detour: route messages through additional steps, such as validation or
logging – with ability to switch on or off these additional steps ‫ل الخ ن م ل ئاسرال‬
‫ةيفاضإ ت اوطخ ذاختا‬, ‫ راجشألا عطقوأ ةحص ن م ق قحتال ل ثم‬- ‫ف افتال ةيفاضإ ت اوطخ هذه ف اقيإ وأ ل يغشتى لع ةردقال عم‬:‫هيجوت‬
• Wire Tap: inspect the contents of a message without affecting the
primary message flow‫ك لسةيفنحال‬:‫ ي ساسألا ةالسرال ق فدتى لع ريثأتال ن ود ةالسرال ت ايوتحم دقفت‬.
• Message History: great aid to know where a specific message has been : ‫خيراتال‬
‫ةالسر ةددحم ةالسر ت ناك ن يأ ف رعنلةريبك ت ادعاسم‬
• Message Store: can provide a complete account of every message that
traveled through the system‫رجتمال ةالسر‬:‫ماظنل الخ ن م رفاسي تال ةالسرال ل ك ن م ال ماك ادرسرفوتن أ ن كمي‬
• Smart Proxy: track messages sent to request-reply services ‫ةيكذ‬:‫ى إل ةلسرمال ل ئاسرال عبتت‬
‫ل يكو درللب لط ت امدخال‬
• Test Message: actively verifying that the running messaging system
is functioning properly‫ة السرال ص ن‬:‫حيحصل كشبل معيل يغشتل ئاسرال ماظنن أ طاشنبق قحتالب‬
Channel Purger: remove all remaining messages from a channel so thatthe
‫فظنمال ةانق‬: ‫لئاسرال ةفاك ةالزإ‬ ‫ةانقال نم ةيقبتمال‬ ‫ ثيحب‬.components under test do not receive 'leftover'

messages
."‫ال رابتخالا ت حتت انوكمال‬ ‫اياقب ل ئاسر ن وقلتي‬
"
Things that make up Middleware: Endpoint

• Most packaged and legacy applications and many custom


applications are not prepared to participate in an
integration solution‫ل ماكتال ل ح ي فةكراشمللدادعتسا ى لع اوسيلةصصخمال ت اقيبطتال ن م ديدعالو ةميدقال‬
‫ ت اقيبطتالو اهتئبعترثكألا‬.

– As they were designed to perform specific functionality with


specific input/output‫ ةددحم ت الخدم عم ةددحم ةفيظو ءادأل ةممصم اهنأ امك‬/ ‫جارخإلا‬
• We need a message endpoint to connect the
system explicitly to the integration solution ‫ةالسر ةياهنال ةطقن‬
‫ ى ال ةجاح ي ن‬.
‫ف حن‬
‫ل‬. ‫ل ماكتال ل ح ى إل ةحارصماظنطبر‬
– The endpoint can be a special piece of code or a Adapter provided
by an integration software vendor ‫ل وحم وأ ةيجمربال ت اميلعتال ن م ةصاخ ةعطقن وكتن أ ن كميةياهنال‬
‫ ةطقن‬.
‫لماكتال جمارب عئاب نم ةمدقمال‬
Messaging Endpoints
• Messaging Gateway: a class than wraps messaging-specific method calls and exposes domain-specific
methods to the application‫ة باوبل ئاسرال‬:‫ ق يبطتال ى إل ن يعم ال جم ب يالسأ حضفيو ةددحم ةلسارم ب ولسألا ت اءاعدتسا ف تلين م ةئف‬.
• Messaging Mapper: creates a mapping logic between the messaging infrastructure and the domain objects .
.‫ططخم ل ئاسرال‬:‫ال جمال ت انئاكو ل ئاسرال ةيتحتال ةينبال ن يبن ييعتال ق طنم ق لخي‬
• Transactional Client: make the client’s session with the messaging system transactional so that the client can
specify transaction boundaries.‫ت الماعمال ل يمعال‬:‫ ة لماعمال دودح ديدحتل يمعللن كميث يحبل ئاسرال ماظنت الماعمال عم ل يمعال ة سلجال ي رجت‬.
• Polling Consumer: explicitly makes a call when it wants to receive a message . ‫ك لهتسمال عارتقالا‬:‫ةمالكم ة حارصل عجي‬
‫ةالسرال ى لع ل وصحال ديرتامدنع‬
• Event-Driven Consumer: automatically handles messages as they’re delivered on the channel ‫ ث دحال‬.
‫ي‬
. ‫ك لهتسمال اهكرح‬:‫ةانقال ى لع اهميلستمهنا امك ايئاقلتل ئاسرال جالعي‬
• Competing Consumers: Create multiple consumers on a single channel so that multiple messages can be
processed concurrently.‫ةسفانتمال ن وكلهتسمال‬: ‫ دحاو ت قو ي فةددعتم ل ئاسر اهتجالعم ن كميث يحبةدحاو ةانقى لع ةددعتم ن يكلهتسمال ءاشنإ‬.
• Message Dispatcher: consume messages from a channel and distribute them to performers ‫ ل سرم‬.
‫ةالسرال‬: ‫ءادألا ينانف ىلع اهعيزوتو ةانق نم لئاسرال كلهتست‬
• Selective Consumer: filters messages delivered to a channel so that it only receives the ones that match
its criteria‫ي ئاقتنا ك لهتسمال‬: ‫ اهلريياعم ق باطتي تال ك لتطقفى قلتيث يحبةانقى إل اهميلستل ئاسرال ت احشرم‬.
• Durable Subscriber: to make the messaging system save messages published while the subscriber is
disconnected‫مئادال ك رتشمال‬:‫ ك رتشمال عطقمتين يح ي فةروشنمال ل ئاسرال ظفح ل ئاسرال ماظنل عجل‬.
• Idempotent Receiver: can safely receive the same message multiple times. Idempotent ‫ي قلتمال‬: ‫ن امأبل وصحال ن كميو‬
‫تارم ةدع ةالسرال سفن‬
• Service Activator: connects the messages on the channel to the service being accessed ‫ةمدخال‬:‫ل ئاسرال طبري‬
‫ اهيإل ل وصوال متيةمدخلةانقال ى لع‬. ‫طشنمال‬
)Widgets & Gadgets ‘R Us (WGRUS
• Widgets & Gadgets ‘R Us )WGRUS( an on-line retailer
that buys widgets and gadgets from manufacturers and
resells them to customers' ‫ ل يغشتةمظنأ و ت ايجاحال‬.R (‫انب‬WGRZ) ‫ت ايجاحال ي رتشتن أ ت نرتنالا‬
‫ى لع ةئزجتال رجاتمل ءال معللمهلاهعيبو ةعنصمال ت اكرشال ن م ت اودألاو‬
WGRUS IT Infrastructure
• Four different channels to interact with customers ‫ عبرأ‬.
‫ءالمعال عم لعافتلل ةفلتخم تاونق‬

• Six internal information systems‫ةيلخادال ت امولعمال مظن‬


‫ةتس مظنال هذه جمدلل ماكتال ل ح ميمصت‬

• Design an integration solution to integrated


these systems‫مظنال هذه جمدلل ماكتال ل ح ميمصت‬
Requirements – Business Processes
• Take Orders‫رماوأ ذخأ‬
– Customers can place orders via Web, phone or fax‫س كافال وأ ف تاهال وأ ت نرتنالا ق يرط ن ع رماوأ عضو ءال معللن كمي‬
• Process Orders‫ة يلمع رماوأ‬
– Processing an order involves multiple steps, including verifying inventory, shipping the goods and invoicing
the customer‫ةددعتم ت اوطخ ى لع ي وطنيرمأ ةجالعم‬,‫ن وزخمال ن م ق قحتال ك لذ ي فامب‬, ‫ل يمعال ريتاوفالو عئاضبال ن حشو‬
• Check Status‫ةالح ن م ق قحت‬
– Customers can check the order status‫ب لطال ةالح ن م ق قحتال ءال معللن كمي‬
• Change Address‫ن اونع رييغت‬
– Customers can use a Web front-end to change their billing and shipping address ‫ةيمامألا ة هجاوال مادختسا ءال معلل‬
‫ن كمي‬
‫مهب ةصاخال نحشالو ريتاوفال ناونع رييغتل بيو‬
• New Catalog ‫ديدج جوالتك‬
– The suppliers update their catalog periodically. WGRUS needs to update its pricing and availability based
in the new catalogs .‫ ي رود ل كشبي قيوستال ث يدحتن يدرومال‬.WGR .‫ةديدج ت اجوالتك ي فاهرقم رفاوتو راعسألا ث يدحتلة جاحبةدحتمال‬
‫ت ايالوال‬
• Announcements‫ت انالعإ‬
– Customers can subscribe to selective announcements from WGRUS ‫ت انالعإلا ي فك ارتشالا ءال معلل ن كميو‬ ‫ن م ة يئاقتنا‬
.
WGRZ
Take Orders and Process Orders
Take Orders

Identified
Requirements:
• Interactions between
– 1and 4
– 2and 5
– 3and 6
6 ,5 ,4 –and 7

.Identifying Integration Requirements: Look for change in Performers


‫ديدحت‬Performers are application that are supporting a specific activity within a
proces
. ‫ل ماكتال ت ابلطتم‬: ‫ءادألا ي فرييغتال ن ع ث حبا‬
‫ةيلمع ن مضن يعم طاشن مع دت ي تال ت اقيبطتال‬
First Requirement

Message

Channel

Router
Integration Solution – Set of Patterns for the
requirements:‫ ل حال ل ماكت‬- ‫ت ابلطتمللطامنأ ن م ةعومجم‬
• Message
– Document Message or Event Message‫ةالسر ث دح وأ ةقيث‬ Transformatio
‫ةالسر‬ n
– Document message would be best fit ‫ن وكيةقيثوال ةالسر ن ا‬
‫ب سنألا‬ Endpoint
– Point-to-Point
Channel
• Channel
System
Endpoint • Management
– Messaging
Second Requirement

Message

Channel

Router
Integration Solution – Set of Patterns for the
requirements:
• Message
– Document Message Transformatio
n
• Channel
– Point-to-Point Channel
– Channel Adapter Endpoint

System
Management
Third Requirement

Message

Channel

Router
Integration Solution – Set of Patterns for the
requirements:
• Message
– Document Message Transformatio
n
• Channel
– Point-to-Point Channel
Channel Adapter – Endpoint

System
Management
Fourth Requirement

Message

Channel

Router

Transformatio
n
Integration Solution – Set of Patterns for the
requirements:
• Message Endpoint
– Document Message
• Channel System
– Datatype Channel Management
Develop Integration Solutions for Process Orders

You might also like