Pavan Notes

86
 What is Integration? Integration is a process of combining. Integration in computer science System integration, the process by which smaller pieces of software are brought together to form a larger piece of software that was designed to solve a problem. Digital integration, in computer science, allows data from one device or software to be read or manipulated by another, resulting in ease of use. Enterprise application integration, is the process of linking disparate applications within a single organization together in order to simplify and automate business processes to the greatest extent possible. I integration, involving the Internet rotocol Introduction to EAI  ! oday information techn ology "I!# has become very critical for su ccessful functioning of any enterprise in this world. Every form of business thrives on some form of automation. Earlier, the automation had been custom developed, but now days everything seems to be through packaged application s, which in a way reduced the amount of software development signi$cantly. Why EAI? In the past, enterprise system architectures have been poorly planned. %any organizations built systems based on the cool te chnology of the day without realizing how these systems would somehow, someday, share information. !here are a number of organizations $tted with di&erent types of open and proprietary systems. Each with its own development, database, networking and operating system, thus resulted a heterogeneous environment. 'vercoming these ills a&ecting corporate, there came a number of ad(hoc technologies and methods. )ut nothing seemed to be a perfect solution considering the complexity associated with these systems. E*I has come as a boon for enterprise architects to set right everything, which today+s enterprises face. E*I has become a sophisticated set of procedures with newly re$ned technologies, such as

Transcript of Pavan Notes

Page 1: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 1/86

What is Integration?

Integration is a process of combining.Integration in computer scienceSystem integration, the process by which smaller pieces of software are broughttogether to form a larger piece of software that was designed to solve aproblem.Digital integration, in computer science, allows data from one device or softwareto be read or manipulated by another, resulting in ease of use.Enterprise application integration, is the process of linking disparate applicationswithin a single organization together in order to simplify and automate businessprocesses to the greatest extent possible.I integration, involving the Internet rotocol

Introduction to EAI

 !oday information technology "I!# has become very critical for successfulfunctioning of any enterprise in this world. Every form of business thrives on some form of automation. Earlier, the automation had been custom developed, but now dayseverything seems to be through packaged applications, which in a way reducedtheamount of software development signi$cantly.

Why EAI?

In the past, enterprise system architectures have been poorly planned. %anyorganizations built systems based on the cool technology of the day withoutrealizinghow these systems would somehow, someday, share information. !here are anumberof organizations $tted with di&erent types of open and proprietary systems.Each withits own development, database, networking and operating system, thus resultedaheterogeneous environment. 'vercoming these ills a&ecting corporate, therecame a

number of ad(hoc technologies and methods. )ut nothing seemed to be aperfectsolution considering the complexity associated with these systems. E*I hascome as aboon for enterprise architects to set right everything, which today+s enterprisesface. E*Ihas become a sophisticated set of procedures with newly re$ned technologies,such as

Page 2: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 2/86

System System

System

middleware and message brokers that allow users to tie systems together usingacommon glue code. !here are powerful tools and techniues to perform E*I

successfully.

  *s organizations begin to realize the necessity of interconnection ofdisparate systems inorder to meet the needs of the business, the signi$cance of integrationtechnology isbeing simultaneously felt. !hus it becomes a very important milestone for everyenterprise to e&ectively architect, design, and develops systems based on E*Itechnology. *s there are a number of excellent E*I technologies, it needs asteeplearning curve to acuire the knowledge and wisdom to identify when to applyE*Itechnology, selecting appropriate technology, architect a solution, and theyapplying it

successfully to the problem.

Pre EAI Implementations

Early software programs in areas such as inventory control, human resources,sales automation and database management were designed to runindependently, with no interaction between the systems. !hey were custom builtin the technology of the day for a speci$c need being addressed and were oftenproprietary systems.

*s enterprises grew it+s easy to see what happens when the connections are

established. *nd unfortunately, when the number of systems to be connected

goes up as the enterprise grows.

Page 3: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 3/86

So what you have is

•  !oo many interfaces

• -igh ost of maintenance

• /o 0lexibility of adding new systems

• *ll Systems interdependent

E*I1

E*I comprises the challenge of e2ciently linking together diverse systems andapplications across the enterprise, allowing the 'rganization to keep pace withand respond to market changes. hallenges of E*I include 3egacy systemscontaining mission critical applications, packaged application with proprietaryand open frameworks, multiple hardware and 'S platforms, multiplecommunication protocols, geographically distributed applications anddatabases.Scenario without E*I1

*s companies move in the direction of collaborative business(to(business e(commerce, they will $rst have to look inward to their own internal systems,applications and processes. Several business processes span across multipleinternal applications. !hese applications must be able to communicatedynamically in real(time before a company can e&ectively communicate with theoutside world.

Page 4: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 4/86

%ost companies have an environment of disparate legacy systems, applications,processes, and data sources, which typically interact by a maze ofinterconnections that are poorly documented and expensive to maintain.*dditional problems arise from market consolidation in the digital age, wheremergers and acuisitions of companies can increase the complexity of systemintegration exponentially.

 !he segmentation of information systems was exacerbated with the introduction

of commercial o&(the(shelf applications such as enterprise resource planning

"E4#, customer relationship management "4%#, supply chain management"S%#, and portals. Early on, these systems were designed as self(contained

5black(boxes5 with little or no means for accessing internal data or processes.

*lthough many of these applications now provide better access to their

underlying data and business logic, integrating them with other systems in the

enterprise is still a challenge.

Each node in the above diagram maintains its own data, which may be shared

among the nodes. Sharing of this data has been typically accomplished using

data transfer methods including batch processes and data import6export 7obs.

Since the data of one node is not available in real(time to other nodes, the latter

cannot analyze and make decisions while a transaction is being processed at the

former.

Page 5: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 5/86

/eed for E*I1

*s the need to meet increasing customer and business partner expectations for

real(time information continued to rise, companies were forced to link their

disparate systems to improve productivity, e2ciency, and, ultimately, customer

satisfaction. !he need for I! systems to communicate within an organization led

to the evolution of enterprise application integration "E*I#. E*I is the process of 

creating an integrated infrastructure for linking disparate systems, applications,

and data sources across the corporate enterprise. !he very origin of E*I

solutions can be linked to the need for providing a full duplex, bi(directional

solution to share seamlessly and exchange data between E4, 4%, S%,

databases, data warehouses, and other important internal systems within the

company.

E*I is not an out(of(the(box solution, but rather an ongoing process of creating a

8exible, standardized enterprise infrastructure that allows new I!(based

applications and business processes to be easily and e2ciently deployed. !henew infrastructure allows applications throughout an enterprise to seamlessly

communicate with one another in a real(time manner.

* successful Integration architecture would be

• Scalable

• 4eusable

Page 6: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 6/86

• -ighly *vailable

• %anageable

• 0lexible

• Secure

S'*

Service oriented architecture is approach to have software resources in anenterpriseavailable and discoverable on network as well de$ned services. Each servicewould achievea prede$ned business ob7ective and perform discrete units of work. !he servicesareindependent and do not depend on the context or state of the other services.

 !hey workwithin distributed systems architecture.

Earlier S'* used '% or '4) based on '4)* speci$cations and recent S'*stress on webservices using standard description "9SD3#, discovery ":DDI# and messaging"S'*#.Service oriented architecture may or may not use web services but yes webservices providea simple way towards service oriented architecture albeit with the age oldsecurity andreliability limitations.

; E*I

Enterprise application integration is a business need to make diverseapplications in anenterprise including partner systems to communicate to each other to achievea businessob7ective in a seamless reliable fashion irrespective of platform andgeographical location ofthese applications. It is a business need and business never dies it only evolves.I have seenpeople saying that E*I is a thing of past now S'* is here, it is 7ust like saying<transportation is a thing of past now road is here=.E*I comprises of message acceptance, transformation, translation, routing,

messagedelivery and business process management. :sually messages transportation isasynchronous but for a business need it can be synchronous as well. !here aretwo basicarchitectures to achieve this, bus and hub6spoke architecture. )oth of these canbe used todevelop services and then it also becomes service orientated architecture.

Page 7: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 7/86

Page 8: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 8/86

):S

)us architecture uses a central messaging backbone "bus# for messagepropagation.*pplications would publish messages to bus using adapters. !hese messageswould 8ow tosubscribing applications using message bus. Subscribing applications will haveadapterswhich would take message from bus and transform the message into a formatreuired for

the application. >ey di&erence between hub6spoke and bus topology is that forthe busarchitecture, the integration engine that performs message transformation androuting isdistributed in the application adapters and bus architecture reuires anapplication adapterto run on the same platform as the original applications.Since adapters have integration engine and run on same platform on whichsource andtarget applications run, this scales much better and is complex to maintaincompared tohub6spoke topology.

Page 9: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 9/86

EAI Technologies?

*s seen integration task can be accomplished successfully at di&erent levels ofanapplication. !hus there are di&erent compact and elegant technologies to ful$llthesegoals. ere are various middleware+s, 'b7ect 4euest )rokers, message brokers,9ebtechnology like ?%3 etc becomes mandatory for an architect to have a solidunderstanding of these technologies the merits and demerits of each technology, whereeach shines and 8exible and scalable before embarking on the grand task ofintegration.

 !here are point(to(point middleware, such as remote procedure calls "4s# and

message @ oriented middleware "%'%#, database(oriented middleware, andtransactional middleware including ! monitors and application servers. *lsodistributed ob7ect computing facilitated by 'b7ect 4euest )rokers and messagebrokersare available now for successful E*I.*lso, there is a big hype about the newly crowned 9eb technology ?%3 that candowonders as the standard integration mechanism.?%3 provides common dataexchangeformat, encapsulating both meta(data and data. !his permits applications anddatabases

to exchange information without having to understand anything about eachother. !heprimary factor in using ?%3 technology for E*I is that ?%3 is portable data.0inally the

 7ava factor in E*I is also making waves among the E*I architects. Aava, a revolutionary method for building 9eb(born applications, is nowmaturingenough to be of bene$t to the enterprise and to E*I. Aava has become a solidtechnologyfor coding enterprise(scale mission(critical applications, Aava 4%I is already the

 7avaversion of distributed ob7ect computing architecture and in the recent past, Sun

%icrosystems has come out with a enterprise component model, referred to asEA) andthere came a number of robust EA)(compliant application server. *s Aavaprovidesportable code, it is bound to play a very important role in uniting enterpriseapplications.

Page 10: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 10/86

 A%S for E*I @A%S facilities E*I. It makes two applications to work in concert inorder tocarry out some new form of transaction. %S and ?%3 combines well to supplanttherelatively brittle and arcane client6server technologies that had until recentlydominated the integration landscape, marking healthy trend toward open,8exibleinfrastructures as well as promoting reusable integration strategies that can beappliedto a idea variety of integration pro7ects. !oday+s integration products freuentlyemploysomething of a messaging infrastructure, along with data transformation andmigrationtools. Aava %essage Service "A%S# *Is provides implementation(independentinterfacesfor message(oriented middleware products, such as rogress Sonic%B and I)%%BSeries.!hese enterprise messaging systems allow stovepipe applications to

communicate events and to exchange data while remaining physicallyindependent.Data and events can be exchanged in the form of messages via topics orueues, whichprovide an abstraction that decouples participating applications, !hus there is agrowing number of activities in making Aava(based enterprise technologies andservicesas the able ally to E*I.

The Business Advantages of EAI !here are uite a number of distinct bene$ts being accrued by business houses

from E*I.-ere comes a brief of what a middleware(enabled E*I can to the 'rganizations.

%iddleware(enabled E*I @Enterprise *pplication Integration is the creation ofnewstrategic business solutions by combing the functionality of an enterprise+sexistingapplications, commercial packaged applications, and new code using a commonmiddleware. %iddleware refers to technology that provides application(independentservices that mediate between applications. %iddleware also represents the

softwareproducts that implement these middleware services. !here were mechanismsbefore thearrival of these middleware technologies, such as ')4*, for integratingapplicationsin enterprises. )ut these mechanisms were found in8exible, reuiring very highe&ortand highly complex.

Page 11: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 11/86

)ut middle has brought some spectacular bene$ts for enterprise to integratetheirapplications without much complexity. %iddleware is a software tool. %iddlewareprovides elegant and easy mechanisms by which applications can packagefunctionalityso that their capabilities are accessible as services to other applications.%iddleware isable to hide the complexities of the source and target systems, herby freeingdevelopersfrom focusing on low(level *Is and network protocols and allowing them toconcentrate on sharing information. Information in di&erent enterprise have notbeenorganized and formatted in the same manner. !hus the information to be sharedamongapplications in di&erent places has to go through some translations andconversions asit 8ows from one application to another.!hese capabilities are being provided by

present(day middleware technologies.0inally the %iddleware comes with mechanisms that help applications tocoordinatebusiness processes.

%iddleware%iddleware is a piece of software lying between the operating system and theapplication. %iddleware, essentially, is a tool to make a distributed systemdeveloperslife easier. It achieves this by hiding a number of the di2culties involved inbuildingsuch systems. Since distributed systems may consist of components written indi&erentlanguages and running on di&erent operating systems, it is often helpful to havea singlecommon development and runtime environment. !his is one of the mostsigni$cantadvantages of middleware systems and will make the development ofdistributed systemseasier. %any failures can be dealt with automatically by the middleware withoutany

work needing to be done by the programmer or application. %any types ofmiddlewarecan provide access transparency, making a remote operation look similar to alocal one.3ocation transparency is another important feature provided by middleware as itmeansthat components can be migrated between computers without any changesreuired to

Page 12: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 12/86

other components.

9hat is ES)C

*n ES) is a distributed infrastructure used for enterprise integration. It consistsof a set of service containers, which integrate various types of I! assets. !hecontainers are interconnected with a reliable messaging bus. Service containersadapt I! assets to a standard services model, based on ?%3 message exchangeusing standardized message exchange patterns. !he ES) provides services fortransforming, orchestrating, mediating and routing messages as well as theability to centrally administer the distributed system.

artner1 *n ES) is a new architecture that exploits web services, messagingmiddleware, intelligent routing and transformation. ES)+s act as a light,

ubiuitous integration backbone through which software services andapplication components 8ow.

ES) acts as communication bridge between lient *pplications and Serviceroviders.ES) completely decouples lient *pplication from the Service rovider

ES) *rchitecture ontext

Page 13: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 13/86

lient*pplicatio

ns

lient*pplicatio

nsEnterprise Service BusEnterprise Service Bus

 A* A*

SAPSAP JAX JAX

S'*S'*  A%S A%S

MainfraeMainfrae

In %emoryIn %emory

 Java Java

))))

Trading

artner

Trading

artner

ES) as a pattern to S'*

 !ransformation

4eliable %essageDelivery

ontent(based 4outing

ublish and Subscribe

Shares the servicesacross Enterprise

Service 3ocation

 !ransparency Inter Service

ommunication.

Page 14: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 14/86

Decouple the lient ,Service provider as )usiness services and Implementationservices.)usiness service FS Implementation service

ESB !ore !apa"ilities

4outing !he ability to channel a reuest to a particular service provider based ondeterministic or variable routing criteria

JAVA

rocess horeography

Service 'rchestration  !ransaction

%anagement

Security

Page 15: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 15/86

 !ypes 1 Static or Deterministic 4outing ontent )ased 4outing olicy )ased 4outing omplex 4ules )ased 4outing%essage !ransformation 1

 !he ability to convert the structure and format of the incoming business servicereuest to the structure and format expected by the service provider.Examples 1 ?%3 to ?%3 ?%3 to 'b7ect 'b7ect to ?%3

%essage Enhancement 1 !he ability to add or modify the information contained in the message asreuired by the service provider.

Examples 1 Date 0ormat onversion Supplement data not included in the original message Data onversionrotocol !ransformation

 !he ability to accept one type of protocol from the client as input andcommunicate to service provider through a di&erent protocol.Examples 1 S'*6-!! to 4%I6II' S'*6A%S to E'3ES'0!6%BService %apping1

 !he ability to translate a business service into the corresponding serviceimplementation and provide binding and location information.:sually done through 9SD3 in web services.ore Information1 Implementation Service /ame Service rotocol and )inding Information rotocol Speci$c Information Service Speci$c 4outing Information

rocess horeography !he ability to manage complex business processes that reuire the co(ordination

of multiple business services to ful$l a single business services reuest. :sually )E3 based

Page 16: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 16/86

House Loanrequestar 3oanreuest

heck %arket Interest 4ates

Service

et *ccountInfo Service

*ssess -ouseInsurance Details

Serviceerform reditheck Service

et Supervisor*pproval Service

alculated4epayment Details

Service

*ssess arInsurance Details

Service

Service 'rchestration1 !he ability to ful$ll a reuest by making services to interact with each other atthe message level and at the execution level, i.e. seuential, parallel,transactional, etc.:sually implemented through Inter(service communication.

 an be implemented through )E3. !ransaction %anagement 1 !he ability to provide a single unit of work for a business service reuest byproviding a framework for the coordination of multiple resources across multipledisparate services.Security1

 !he ability to protect enterprise services from unauthorized access.In S'* services become visible to the entire Enterprise through ES).ES) should ensure *uthentication, *uthorization.

#i$erent Types of EAI tools%Middle&are Technologies !here are so many types. Some of the following under below

I' TIB!(II' We" MethodsIII' SEEBE)(*#I+' *ET+IEWE,+' M-.Series+I' ME,/AT(,+II' Bi0Tal1 +III' W2P2IX' WBP.P2X' +IT,IA

Page 17: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 17/86

TIB!( . I*T,(#3!TI(*What is Ti"co?

 !I)' Software Inc. "/asda1!I)?# is a leading provider of total businessintegrationsolutions delivering infrastructure software that enables businesses toseamlesslyintegrate business systems in real(time. !I)'Gs products enable the real(timedistribution of information through patented technology called !he Information)us, or

 !I)H. !I)' technology was $rst used to digitize 9all Street and has since beenadopted in diverse industries including $nancial services, telecommunications,electronic commerce, transportation, logistics, manufacturing and energy.

 !I)'Gsglobal customer base includes more than ,JJ customers such as iscoSystems,

 KahooL, *riba, /E, Enron, Sun %icrosystems, E apital, !he 3imited, Delta *ir3ines, hilips, *!M! and irelli. !I)' is headuartered in alo *lto, alifornia.Ti"co #e4nition

 !ibco makes integration server software for enterprises. *n integration serverallows acompany to mix packaged applications, custom software, and legacy softwarefor useacross internal and external networks. !I)'+s patented approach is calledInformation)us "!I)# and !ibco says that it has been used in $nancial services,telecommunications,electronic commerce, transportation, manufacturing, and energy. !ibcocompetes withSee )eyond, Fitria, and web %ethods among others.*ctive Enterprise is !I)'+s integration server package that supports bothmessage(busand hub(and(spoke integration server models. !he message(bus model connectsthedi&erent applications to a common backbone using application adapters. !hehub(andspoke

model connects all applications to a central server. !I)'+s latest addition to*ctive Enterprise is )usiness 9orks, which uses 9eb services technology.

 !ibco is based in alo *lto, alifornia and is traded "!I)?# on the /*SD*B.• !I)' provides business process management and business integrationsoftware. !his software integrates, manages, and monitors enterpriseapplications and enables reliable and high(performance information delivery.• !heir software products include applications for coordinating business processand activities, securely exchanging information with trading partners, creating

Page 18: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 18/86

and maintaining ?%3 documents, and managing distributed systems.• !he companyGs ma7or competitors are web %ethods, I)%, %icrosoft, 'racleorporation, N9estArchitecture

 !I)'+s main architecture is based on an information(bus oriented systemconcept.9here as all the information that is used by the multiple systems pass throughoneinformation(bus. !ibco commonly refers to this information(bus as the <!I)=.Databases and applications interface the !I) through *I+s supplied from !ibco.

Types of Interaction

 !I) middleware software supports three distinct kinds of interaction amongapplications in distributed environments1

 O 4euest6reply interactions, such as ueries or transactions O )roadcast reuest6reply interactions, such as ueries that may result inseveral replies from one or more servers

 O ublish6subscribe interactions, such as general distribution of informationfrom many sources to many consumers

Architectural Bene4ts)ene$ts of a !I)(based architecture include15 Easy to create ne& su"systes @ !I) allows developers to create newsubsystems, modify existing subsystems, and add new services without havingtochange the :I or a subsystem+s code.5 Easy to ove su"systes @ * subsystem supplying data can be moved toothergeographic locations without changing the subsystems that consume theinformation itsupplies. !his is important for fault tolerant operation where new subsystemscan takeover immediately upon the failure of another subsystem.5 Easier to develop applications @ Saves development costs and timebecause thedevelopers can use a tested *I for communications rather than have to design,develop, implement, test, and maintain their own infrastructure code.5 6aster to develop @ Developers can concentrate on applications andbusiness

Page 19: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 19/86

reuirements and not have to write and test an infrastructure. *pplications willalso befaster to develop because they will be linked into existing and well(testedlibraries.Developers will not have to create code necessary for inter(subsystemconnectivity5 Easier to aintain @ ersonnel can concentrate on the application code. !hemiddleware layers are enhanced and maintained by professionals who arespecialists inthat type of software5 Easier to change @ hanges will be easier to make to subsystems becausetheywill be independent of their data sources and their data consumers5 7ighly scalea"le @ !he system will be far more scaleable becausesubsystems andhardware can be added easily and uickly to meet new user demands.5 2ocation transparency @ !he system cal exploit !I)+s sub7ect based

addressing toallow system components to be located dynamically, rather than being hard(coded.

 !his supports a range of system migration needs. O Easier to onitor @ !he system can use !I)6-awk for monitoring. O Error anageent @ !he system will be able to log and respond to systemandbusiness level errors by generating !I)(based noti$cations or advisories.

TIB!( solution !his is the only company every thing provided real(time business integration

and theprocess automation , work 8ow , )), application D) , enterprise portals , andhighlevelservices such as )*% "business access monitoring # and optimization

Products• !he current range of products includes a , 9ork8ow, )usiness IntelligenceSolutions, enterprise messaging backbone, )) integration and other software.

 !he companyGs best known products include !I)' )usiness9orks "E*I#,

 !I)' 4endezvous and !I)' Enterprise %essage Service "messaging#, and !I)' Sta&ware rocess Suite ")%#.• !I)' 4endezvous is perhaps the most important and well known product. It isan underlying messaging layer that provides publish(subscribe and reuest(replysemantics. !his %essage 'riented %iddleware was !I)'Gs original product,bringing the company a lot of early success in the pre(999 I! industry. artlyowing to this long track record, the !I)' 4endezvous platform is still verypopular within the $nance industry and has a large installation base. !he

Page 20: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 20/86

company was a key contributor to the Aava %essage Service speci$cation andsupports the standard in the product.• !he companyGs second best(known product is , which is a leading player in theE*I space. is a business integration and web services tool kit supporting thedevelopment, deployment and management of pro7ect(oriented businesssolutions. is based on the same core technology as !I)'+s *ctiveEnterpriseproduct suite.• !he company also played a role in the growth of the enterprise portal space. Inthe early NNJs, it invented a real(time, user(personalized, thick(client portalproduct called %arketSheet, which was used pervasively in securities tradingrooms in the $nancial industry. 9hen the web revolution arrived, this productprovided a vision that was subseuently implemented in the web world asusercon$gurableportals such as %y KahooL"!%#. !he company thinned down thefront end for its own portal products to applets and $nally to D-!%3. PQ is an*7ax toolkit for building and deploying 4ich Internet *pplications "4I*#,components and portlets that look similar to desktop software.

Which areas Ti"co Products used?Business (ptii0ation

 !his s6w that enables people to access, analyze ,and act on data ,participate inprocesses and analyze business performance. Business ProcessManageent

 !his s6w that helps companies coordinate the execution of the task, activitiesand transactions that make up their uniue way of doing business;. Business Integration

 !his s6w that gives companies the ability to connect and coordinateapplications throughout their organization across their extended enterprise andwith in

their customersR. Enterprise Bac1"one

 !his s6w helps companies establish and manage a highly e2cient and scalable8ow of information across their enterprise

TIB!( Products (vervie&Application Integration• !I)' *ctive%atrix )usiness9orks• !I)' *dapters• !I)' )usiness9orks Smart%apperB8B Integration• !I)' )usinessonnect

• !I)' )usinessonnect 4emote• !I)' )usinessonnect !rading ommunity %anagementBusiness Activity Monitoring• !I)' )usiness0actor• !I)' 'ps0actorBusiness Intelligence• !I)' Spot$re D? rofessional• !I)' Spot$re DecisionSite

Page 21: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 21/86

• !I)' Spot$re *nalytics Server

Business Process Manageent• !I)' irocess Suite!ople9 Event Processing• !I)' )usinessEvents#ata Integration• !I)' DataExchangeEnterprise Service Bus• !I)' *ctive%atrix Service )usMainfrae Integration• %ainframe *dapters• i6'S Integration• %ainframe %essaging• Substation ES• !I)' 'b7ect Srevice )rokerMaster #ata Manageent

• !I)' ollaborative Information %anagerMessaging• !I)' Enterprise %essage Service• !I)' 4endezvous• !I)' SmartSocketsPortal• !I)' ortal)uilder• 4ich Internet *pplication• !I)' eneral InterfaceS(A• !I)' *ctive%atrix )usiness9orks

• !I)' *ctive%atrix olicy %anager• !I)' *ctive%atrix 4egistry• !I)' *ctive%atrix Service )us• !I)' *ctive%atrix Service rid• !I)' *ctive%atrix Service erformance %anagerSyste Monitoring and Manageent• !I)' -awk• !I)' Enterprise %anagement *dvisor• !I)' Enterprise 4!Fiew

TIB!( BusinessWor1s

 !I)' )usiness9orks is a scalable, extensible, and easy to use integrationplatform that

Page 22: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 22/86

allows you to develop integration pro7ects. !I)' )usiness9orks includes agraphical user interface ":I# for de$ning business processes and an enginethat executes the process.

 !I)' )usiness9orks also works with !I)' *dministrator, a web(based :I formonitoring and managing run(time components.

TIB!(BusinessWor1s /ey!oponents

 !I)' )usiness9orks key components work together as follows1T !he TIB!( #esigner graphical user interface ":I# supports adaptercon$guration,process design, deployment con$guration, and deployment of the integrationpro7ect inone easy to use interface. Kou can use !I)' Designer in test mode toincrementallyverify your design during development. 4apid development and deployment aretheresults.T !he TIB!( BusinessWor1s engine runs the business processes in test modeand atruntime.T TIB!( Adinistrator supports security administration as well as monitoringandmanagement of processes and machines. !I)' *dministrator consists of the

 !I)'

*dministration Server and the web browser based !I)' *dministrator :I.T !he TIB!( ,untie Agent :T,A' runs on each machine and executesscripts, sendsalerts, and performs recovery as speci$ed.9hen you install a !I)' )usiness9orks component or a fully integrated !I)'*ctiveEnterprise adapter on a machine, a !I)' 4untime *gent "!4*# isautomaticallyinstalled. !he !4* has two main functions1T Supplies an agent that is running in the background on each machine.o  !he agent is responsible for starting and stopping processes that run on amachine according to the deployment information.o

 !he agent monitors the machine. !hat information is then visible via !I)' *dministrator.T Supplies the run(time environment, that is, all shared libraries includingthirdpartylibraries.T 'ptionally, !I)' )usiness9orks interacts with !I)' Inoncert in itsimplementation of %anual9ork activities.

 !I)' )usiness9orks was designed using a plug(in architecture. *s a result,plug(in

Page 23: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 23/86

modules can be added to !I)' )usiness9orks. !he illustration below showshow thecomponents work together.

 !4* is a prereuisite for !I)' )usiness9orks and must be installed andcon$guredbefore !I)' )usiness9orks is installed. !I)' *dministrator, !I)' *dapters,and

 !I)' Inoncert are separately purchased, installed, and con$gured. See thedocumentation for each of these products for more information.

 Figure4: TIBCO BusinessWorks components

TIB!( Adinistration #oain !he !I)' administration domain combines the bene$ts of a distributed run(time

Page 24: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 24/86

environment with centralized design(time deployment, and run(time monitoringandmanagement. !his section discusses the !I)' administration domain, theassociatedsecurity implementation, and how you monitor and manage the domain.

Administration Domain Overview

* TIBCO administration domain is a collection of users, machines, and !I)')usiness9orks components that a !I)' *dministration Server monitors andmanages. !here is only one *dministration Server for each administrationdomain.omponents within an administration domain can communicate with systemsoutsidethe domain, but the administration domain is the administrative boundary of anenterprise integration pro7ect./ote that when the *dministration Server goes down, all process engines andadapterscontinue to run.

0ollowing 0igure illustrates an administration domain and its contents.

 Figure 5: Components of a TIBCO administration domain

Page 25: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 25/86

* !I)' administration domain consists of these elements, numberedcorrespondinglyin above 0igure

;<TIB!( Adinistration Server=Each administration domain has one andonly one

 !I)' *dministration Server.. !oponentsUomponent software includes the !I)' )usiness9orksengine andadapters.;. MachinesUEach !I)' administration domain contains one or moremachines. *machine can be added to an administration domain when a !I)')usiness9orkscomponent or adapter is installed. )y default, all machines within anadministrationdomain are expected to be in the same network subnet. Kou can, however, set

up yoursystem to use !I)' 4endezvous rvrd and can then use !I)' )usiness9orksacrosssubnets.R. 3ser and Access InforationU:ser and authorization information isspeci$ed withthe !I)' *dministrator :I and stored in the domain data store. See Securitybelow.

Page 26: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 26/86

. Pro>ectsU* pro7ect is created and with the !I)' Designer :I. Kou createanEnterprise *rchive $le "E*4 $le# for the pro7ect with !I)' Designer, thensendthat $leto the machine where administration server resides. Kou can then deploy thepro7ectwith !I)' *dministrator. 'nce deployed, the pro7ect becomes visible in the

 !I)'*dministrator :I and its components can be started, stopped, and monitoredfromthere.

Security !he !I)' *dministration Server supports centralized authentication andauthorization. :sing the !I)' *dministrator :I, users with full administrativeprivileges can de$ne which users should have access to which part of thesystem.

T AuthenticationU !he veri$cation of the identity of a person or process.T Authori0ationUermission to view or execute. *n administrator gives usersaccessrights to the functionality of the product they need. 0or example, access rightsare givento view or to write to pro7ects at design time from !I)' Designer or to view ortomanage modules from the !I)' *dministrator console. !he !I)'*dministrationServer controls that access.

 !I)' )usiness9orks supports authentication and authorization for both datastores and components "process engines or adapters# in the administration

domain. 0orexample, only authorized users may start or stop process engines or adapters.

 !his $negraineduser authorization scheme allows you to customize the system to your

company+s needs.

Monitoring and Managing the #oain !he !I)' *dministrator :I allows you to monitor and manage the di&erentelements of the administration domain if you are authorized to do so.

T Fiew, add, and delete users and assign access privileges to each user.T %onitor and manage the machines in the administration domain.T %onitor deployments. !his includes viewing component status and throughputandlooking at traces, which can also be exported to a $le.T %anage deployments. !his includes stopping and starting process engines andadapters.Architecture

Page 27: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 27/86

 !his section explains the !I)' )usiness9orks architecture at design time andruntime. It discusses these topics1T 0undamentalsT Design(!ime *rchitecture

T 4un(!ime *rchitecture6undaentals

 !he !I)' )usiness9orks architecture is based on the following set of 

fundamentals1

T Support for StandardsT Integrated Development EnvironmentT Extensibility and Scalability

Support for Standards Kour integration platform must support standards for several reasons. *standardsbasedintegration platform supports you best as you add applications to yourenterpriseor need to communicate with new business partners. Standards are essential asyou areplanning for the future of the pro7ect because standards facilitate updates. Someof theapplications you use may already be using standards, and integrationdevelopment will

be faster and easier. Support for standards also removes dependency on onecompany+sservices and makes applications from di&erent companies interact more easily.

 !I)' )usiness9orks supports the most widely used standards for the di&erentaspects of an integration pro7ect1T J8EE !opliantUA%S, EA), A/DIT Protocols=9eb services "S'*, 9SD3#, -!!, -!!ST MessagingUA%S, !I)' 4endezvousT #ata #escriptionU/ative support for D!D, ?SD, and !I)' *E SchemaT #ata ,epresentation and E9pressionsU/ative support for ?%3, ?athT #ata TransforationU?S3!

 !I)' )usiness9orks also supports a plug(in for )) interactions.

Integrated #evelopent Environent Kour integration pro7ect must be supported by an integrated developmentenvironmentthat spans all phases of the pro7ect. 9ith !I)' )usiness9orks, the processdesign,deployment, and run(time environment are tightly integrated even though therun(time

Page 28: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 28/86

environment supports a distributed architecture.. *t design time, you use !I)' Designer to con$gure services, such asadapters, anddesign your business processes.. Kou can use the !I)' Designer in test mode to debug the process de$nitionsin yourintegration pro7ect.;. Kou can use !I)' *dministrator to deploy processes to process engines andtodeploy adapter services to adapters on the individual machines.R. 'ptionally, you can con$gure manual activities using !I)' Designer. 9henyoudeploy the pro7ect, that information is then used by Inoncert. !he usersauthorized tohandle the manual activities can be speci$ed in !I)' *dministrator, thenexported to

 !I)' Inoncert.

. Kou can start the processes using the !I)' *dministrator :I. Kou can thenmonitor and manage all processes using !I)' *dministrator.

E9tensi"ility and Scala"ility*s your enterprise grows, new applications are added and volume of dataincreases.Scalability to support higher volume and extensibility to support additionalapplicationsor a larger number of process engines or adapter instances become paramount.

 !I)' )usiness9orks has been designed to be extensible and scalable. 9orkingin adistributed fashion, you deploy the di&erent adapter services and businessprocesses ondi&erent machines in the administration domain. 9hen the business processapplications+ volume increases, you add machines to the domain. *s you acuirenewapplications for your enterprise, you install the appropriate adapters into thedomain.

 Kou con$gure the adapter, modify your process de$nition, then deploy theadapterservice on the machine of your choice.

#esignTie Architecture*t design time, you work with the !I)' Designer :I to con$gure adapterservicesand design business processes. Kou design a business process by draggingactivities"e.g. 4ead 0ile or Send %ail# into the design window and 7oining the activitiesusing

Page 29: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 29/86

transitions. !he !I)' Designer test mode allows you to debug the businessprocess.

 Kou can provide input, add breakpoints, supply values for variables, and so on.

TIB!( #esigner 2ayout !he !I)' Designer main window has three or four panels that contain thedesign(timecomponents of an integration pro7ect. Kou can con$gure the !I)' Designer :Itoeither display the pro7ect and palette panels separately or together.

Pro>ects* pro7ect consists of resources that contain the functionality needed for yourintegrationsystem. !his includes services "producers and consumers of information# andany

Page 30: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 30/86

business logic that may be applied to that information.In !I)' Designer, you click the pro7ect folder to display the pro7ect+s resources.

 !herocess/ewomputer pro7ect, shown in the pro7ect tree panel in 0igure V,consists of several components1T * A%S shared resource "A%S onnection#T !wo process de$nitions "rocess'rder and ShippingSchedule#T * shared resource used by the S'* activity "ShippingSchedule#T * Siebel adapter and a eopleSoft adapter "S)3*ccount and SoftO4e4ep#T *n Enterprise *rchive $le for the pro7ect "E*4 $le#

,esources4esources are the components of a pro7ect. * !I)' Designer resourcecorresponds toan ob7ect in a !I)' application, such as an 0! activity, a process de$nition, oraspeci$c adapter instance.

Page 31: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 31/86

Palettesontext(sensitive palettes organize resources into related groups. 9hich paletteisdisplayed depends on the currently opened resource and on your preferences.

 Kou dragand drop resources from the palette into the design panel to add them to your

pro7ect.

Enterprise Archive !he Enterprise *rchive resource allows you to create an Enterprise *rchive $le"E*4$le# that you can use to deploy the pro7ect. !he E*4 $le contains sharedarchives andprocess archives that you specify. !hese archives contain the adaptercon$gurations andprocess de$nitions you wish to deploy. *fter saving the Enterprise *rchive $le,you can

send it to the machine where the administration server resides. !I)'*dministratorcan use the E*4 $le to create a deployment con$guration.

,unTie Architecture9hen the integration pro7ect is deployed, the di&erent process engines andadapters areready to run on the machines in the administration domain.

 Kou start each component individually from the !I)' *dministrator :I. *fteralladapters and process engines have been started, process instances are createdby

process starters. * process starter could be, for example, a 0ile oller or an*dapterSubscriber activity waiting for incoming data. 9hen data arrives, the processstartercreates a process instance using the process de$nition to which it belongs, andtheactivities in the process are executed in seuence.In following 0igure, a A%S Bueue 4eceiver activity creates an instance of the

process de$nition to which it belongs each time it receives input.

Page 32: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 32/86

9hile di&erent process instances are running, any alerts that were scheduledduringdeployment con$guration are sent to the speci$ed recipient by the !I)'*dministration server. In addition, the !I)' *dministrator :I allowsmonitoring of the running pro7ect at di&erent levels of detail, and can collect tracinginformation forlater analysis.

0or the example discussed in this manual, the process engine could performthese tasks1T 4eceive data from an application server via A%S, data from a eopleSoft 'rder%anagement System via the appropriate adapter, and data from a shippingservice viaS'*.T Enter data into a eopleSoft 'rder %anagement system and data into a Siebelcustomer service system via the appropriate adapters.T Send certain orders out for credit approval and receive approval or refusal.*ll components are monitored and managed by way of !I)' *dministrator,whichalso provides security and repository management. :sers can access !I)'*dministrator using the !I)' *dministrator :I.

Page 33: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 33/86

TIB!( BusinessWor1s 6eatures !his section discusses some !I)' )usiness9orks features.T %essagingT *daptersT )usiness rocess %odellingT Schemas and Data %apping

Messaging !o support your integration pro7ect at runtime, you need a messaging systemthat canreliably handle the volume of messages that will be sent and received. !hesystemshould have these characteristics1T @uaranteed delivery and fault toleranceU%essage delivery must beguaranteed, and

the system must be fault tolerant. If a message cannot be delivered because therecipientwas unavailable, the messaging system must ueue that message and continuetooperate. !he ueued message must then be redelivered as appropriate.T #istri"uted architecture=* distributed, loosely coupled system is muchmore likely

Page 34: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 34/86

to support the fault(tolerance you reuire than a monolithic system thatdepends on onecentralized server.T 7igh throughputU-igh throughput without performance degradation isneeded.4euirements vary throughout the day and throughout the business year, andyoucannot a&ord performance degradation at the time when business increases.T Scala"ility=*s your business grows, you want to be able to update yourbusinessintegration in a simple and cohesive way. 0urthermore, you want to be able toconnectyour integration pro7ect with other departments using a similar system. !hemessagingsystem must support this scalability.

 !I)' )usiness9orks is based on messaging standards with proven trackrecords.

Supported protocols include !I)' 4endezvous, A%S, and -!!.Adapters)usiness information is distributed among di&erent business applications "suchas S*46; or eopleSoft# or available from databases or $les. *dapters help make thisinformation available to the business process by 5adapting5 the applications to acommon messaging system.What are Adapters?*dapters translate information into the appropriate format1T *dapters receive information from a source application and publish it to thebusiness

process in a shared format.T *dapters subscribe to information from a business process and translate it to aformatthe target application can understand.T *dapters can also be set up to work in a client6server mode "using remoteoperations.#

 !he illustration below shows how a Siebel customer service systemcommunicates withthe business process using an adapter publication service and the businessprocesscommunicates with the eopleSoft 'rder %anagement system using an adapter

subscription service.

Page 35: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 35/86

In !I)' )usiness9orks, adapters provide services to activities inside thebusinessprocess.Adapter 6eaturesompanies in a wide range of industries have successfully used !I)' adapterstointegrate di&erent packages and custom applications. !I)' )usiness9orksincludessecond(generation adapters that are based on the same technology but havethefollowing new features1

T Easy !on4guration With #esign.Tie AdapterU*ll adapters included with !I)')usiness9orks use a uni$ed :I that simpli$es adapter con$guration. * Design(

 !ime*dapter allows you to directly access the source application from the !I)'Designer:I and specify the data the business process needs.T Easy Inclusion in Business ProcessesU !he business process cancommunicate withadapters by using activities found in the adapter palette. !hese activitiesinteract witheach of the standard adapter services. 0or example, the ublish to *dapter

activitysends a message to an adapter subscription service.T Easy #eployent and MonitoringU9hen you are ready to deploy yourpro7ect, the

 !I)' Designer deployment palette allows you to assign each adapter to its ownmachine. *t runtime, the !I)' *dministrator :I monitors each adapter in itsown

Page 36: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 36/86

panel. Kou can therefore easily see if one of the adapters is a bottleneck in thebusinessprocess 8ow.TIB!( BusinessWor1s Adapters* fully integrated !I)' )usiness9orks adapter can be installed into a !I)'administration domain and later monitored and managed from the !I)'*dministrator :I. !I)' )usiness9orks fully integrates with the followingadapters1T Technology adaptersUIncludes adapters that access $les or databases.T Application adapters=Includes adapter for eopleSoft, S* 46;, Siebel, andothers.'ther !I)' *dapters can be loaded into !I)' Designer and con$gured usingtheeneric *dapter on$guration resources. !hese adapters can then be used inprocessdesign and run as part of the integration pro7ect. !hey cannot, however, beinstalled into

the administration domain or monitored and managed via !I)' *dministrator.Business Process Modelling

 !he business processes describe the actual 8ow of data inside the enterprise. It !I)')usiness9orks, you use the !I)' Designer :I to design and test yourprocesses.0eatures include1T on$guration of adapter services.T * complete set of commonly used activities such as 0ile 4ead, 0ile 9rite, and0ilereate, a set of email activities, timers, 0! activities, etc.

T * transformation tool that lets you map the output of one activity to the inputof subseuent activities.T onditional transitions supporting ?ath syntax.T rouping of activities.T *n easy(to(use design(time process debugger.Process Design Guide.

 !he illustration below shows a simple process that is part of the examplescenario in thedesign window.

Page 37: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 37/86

Scheas and #ata Mapping

Di&erent applications in your enterprise use di&erent data representations. 0orexample, a purchase order in a eopleSoft system di&ers from a purchase orderin aSiebel customer service system. !I)' )usiness9orks allows you to view andmanipulate the data coming from and going into each service or activity using?%3schemas.

 !his section $rst gives a brief introduction to schema ":nderstanding Schemas#,thendiscusses 5Schemas in !I)' )usiness9orks.53nderstanding Scheas

Page 38: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 38/86

 !he example below shows a simpli$ed ?SD "?%3 Schema De$nition# thatincludes an'rder ID element restricted to integer data. Incoming ?%3 documents that useintegers

for the 'rder ID are allowed, while an alphanumeric 'rder ID is re7ected.Schemas are especially useful if you are deploying a complex system. Schemasare usedby the running application but are not included in the code. !he use of schemasmakesit possible to enforce that outgoing and incoming data strictly comply with theprespeci$ed data description.Scheas in TIB!( BusinessWor1sIn the !I)' Designer :I, you can de$ne the schema for adapters and viewandmanipulate the schema for each activity in the business process.0or business process activities, you can view the available process data andde$ne theinput schema for each activity. !he process data is the list of available data forthatactivity. !he input schema "reuired or optional# de$nes input values for anactivity.

 Kou can map the process data to the input data using a drag and drop interface. Kou can specify conditional mapping using ?ath, and you do not need detailedknowledge of ?ath for simple conditions.

Page 39: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 39/86

+aria"les

 !here are several types of variables in !I)' )usiness 9orks, each with theirownpurpose and usage. !I)' )usiness 9orks provides the following types ofvariables1

T @lo"al +aria"les U these variables allow you to specify constants that can beused throughout the pro7ect. !he constants can be speci$ed and changed whiledesigning and testing your pro7ect.T Process +aria"les U these variables allow you to access various data in yourpro7ect.0or example, there are prede$ned process variables containing the process ID,pro7ect name, and other information. Kou can also create user(de$ned processvariables for containing process(speci$c data.T Shared +aria"les U these variables allow you to specify data for use acrossmultiple process instances. )ecause multiple process instances can access thesame variable, you can also synchronize access across processes when setting

orretrieving the shared variable.

@lo"al +aria"les1:se the global variables editor to create or modify global variables, markvariables assettable from !I)' *dministrator, and assign a type to a variable.The glo"al varia"le editor

Page 40: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 40/86

@lo"al +aria"le Attri"utes1 O *ae U rovide a name for the variable. O +alue U rovide a value for the variable, depending on the type you select. O #eployent U Select the deployment check box to make the variable visibleandsettable when deploying using !I)' *dministrator. If the check box is clear, thevariable is not visible in !I)' *dministrator. %ake certain that all variablesused in

 !I)' )usiness9orks process de$nition have this $eld checked. O Service U Indicates that the variable should be included when the Include allservicelevel global variables option is selected when building the enterprise archive $le.*variable that is settable on a per(service basis can be set for each adapterservice. !hisoption is used for !I)' adapter archives. !I)' )usiness9orks does not usethissetting.

Page 41: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 41/86

 O Type U lick in the $eld to select the variable type, String, Integer, )oolean,orassword. If assword is selected, the value you provide is obfuscated in therepository.

 O !onstraint U 0or String and Integer types, provide a range of allowed values. !heconstraint $eld for Strings is an enumeration, for example, one, two, three. !heconstraint $eld for Integers is for a range, for example, (JJ. /ote thatconstraints arecurrently not implemented in !I)' *dministrator.

 O #escription U rovide a description of the variable. To 4nd &here glo"al varia"les are usedlick Tools 6ind @lo"al +aria"le 3sages. !hanging @lo"al +aria"le +alues at ,untie

 Kou can change the value of a global variable when you deploy your pro7ectin !I)' *dministrator. hanging when starting a process engine on the command line.

Specify the following as a command line argument when starting theprocess engine1(tibco.clientFar.Wvariableath*nd/ameX WvalueXExample1 (tibco.clientFar.myroup6item JJ

Process +aria"lesrocess variables are data structures available to the activities in the process.

 !here are four types of process variables1T *ctivity 'utputT rede$ned rocess FariablesT Error rocess Fariables

T :ser(De$ned rocess FariablesActivity (utput*ctivities have access to any data that is output from previously executedactivities inthe process de$nition. *n activity+s output is placed into a process variable withthesame name as the activity "with a dollar sign placed in front of the name toindicate it isa process variable#.Prede4ned Process +aria"les

 !here are two process variables that are available to all activities that acceptinput1YOglobalFariables1. contains the list of global variables de$ned on the lobal Fariables tab of the pro7ect. 'nly global variables that have the Deployment option checked "on theadvanced editor dialog# are visible in the YOglobalFariables processvariable.YOprocessontext1YOprocessontext contains general information about the process, such as the

Page 42: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 42/86

processID, the pro7ect name, whether the process was restarted from a checkpoint,and so on.Error Process +aria"les9hen an error occurs in a process, the data pertaining to the error is placed intoprocess variables.. YOerror 1 contains general error information. YOerrorOWactivity/ameX1 the activity+s error variable is populated with theappropriate error schema.3ser#e4ned Process +aria"les

 Kou can de$ne your own process variables and assign values to them in yourprocessde$nition. rocess variables are de$ned on the rocess Fariables tab of the

rocess De$nition resource.

!reating a process varia"le

 !o assign a value to a user(de$ned process variable, use the *ssign activity.*ssignallows you to specify which process variable you wish to modify. 'nly user(de$nedprocess variables can be modi$ed. Kou can then specify a new value for theprocessvariable in the Input tab of the *ssign activity.

Page 43: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 43/86

Assigning a value to a userde4ned process varia"le

*ll process variables in a running process instance are stored in memory andthereforeconsume system resources.

Shared +aria"les* shared variable is a shared con$guration resource in the eneral *ctivitiespalette.

 !here are two types of shared variables1T Shared FariableT Aob Shared FariableShared +aria"le* Shared Fariable resource allows you to share data across process instances.*llprocess instances can read and update the data stored in a shared variable.

 !his type of shared variable is useful if you wish to pass data across processinstances orif you wish to make a common set of information available to all processinstances.

 Jo" Shared +aria"le

* Aob Shared Fariable resource is similar to a Shared Fariable, but its scope islimited to the current 7ob. * copy of the variable is created for each new processinstance. !his type of shared variable is useful for passing data to and fromsubprocesseswithout creating an input or output schema for the called process.

 Kou can use the et Shared Fariable and Set Shared Fariable activities to accessthe data instead of mapping data to a called process input or output schemas./ew

Page 44: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 44/86

process instances receive a copy of the Aob Shared Fariable, so data cannot be

shared across process instances.

XPath?ath "?%3 ath 3anguage# is an expression language developed by the 9orld9ide9eb onsortium "9;# for addressing parts of ?%3 documents. ?ath also hasbasicmanipulation functions for strings, numbers, and booleans.

 !I)' )usiness9orks uses ?ath as the language for de$ning conditions andtransformations. 0or a complete description of ?ath, refer to the ?athspeci$cationXPath Basics

 !I)' )usiness9orks uses ?ath "?%3 ath 3anguage# to specify and processelements of data schema. !hese data schema are either process variables orinputschema for an activity. Kou can also use ?ath to perform basic manipulationandcomparison of strings, numbers, and booleans. !o use ?ath in !I)')usiness9orks,you need only be familiar with the basic ?ath concepts, but you may wish tolearnmore about ?ath when building complex expressions. 0or a completedescription of ?ath, refer to the ?ath speci$cation

The XPath 6orula Builder !he ?ath formula builder can be used where ?ath expressions are allowed,such aswhen creating transformations on the Input tab of an activity. !he ?ath formulabuilder allows you to drag and drop schema elements and ?ath functions tocreate?ath expressions. !he schema elements, when dragged into the ?ath 0ormula$eld,automatically become valid ?ath location paths for the desired item. If afunction isdragged into the ?ath formula window, there are placeholders for each

parameter of the function. Kou can drag and drop schema elements over the parameterplaceholdersto replace each placeholder.0ollowing 0igure illustrates using the ?ath formula builder to drag and drop

schema

Page 45: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 45/86

0ollowing 0igure illustrates using the ?ath formula builder to create a validfunction.

 !he function concatenates the data elements YetustomerInformation6StreetandYetustomerInformation6ity and places a space between the two elements.

Figure Creating an XPath formula

Page 46: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 46/86

Addressing Schea Eleents*ll process data and activity input are represented as an ?%3 schema.4egardless of where the data comes from or its format, !I)' )usiness9orks represents thedata as a

schema tree. !he data can be simple "strings, numbers, booleans, and so on#, orit can bea complex element. omplex elements are structures that contain other schemaelements, either simple elements or other complex elements. )oth simple andcomplexelements can also repeat. !hat is, they can be lists that store more than oneelement of the given type.?ath is used to specify which schema element you would like to refer to. 0or

example, the following schema may be available for an activity+s input1

Page 47: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 47/86

 !he process data area of the example input tab illustrates the output schema of

theactivities in the process. !here are three output schema, each a root node in theprocessdata area1 etustomerInformation, et'rderInformation, and et'rderId. Eachof these schema has its own associated structure, for example,etustomerInformationhas a set of simple values and et'rderInformation has simple data and othercomplexdata.

 !o reference a particular data item in any of these schema, you start with theroot nodeand then use slashes "6# to indicate a path to the desired data element. 0orexample, if you wish to specify the Street attribute in the Ship/ame complex element that isin theet'rderInformation node, you would use the following syntax1Yet'rderInformation6Ship/ame6Street

 !he path starts with a dollar sign to indicate it begins with a root node, thencontinues

Page 48: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 48/86

with node names using slashes, like a $le or directory structure, until the desiredlocation is named.Evaluation !onte9t

?ath also has a method for referencing relative paths from a particular node. Ifyouhave an evaluation context , or a particular starting node in a schema tree, youcan specifythe relative path to other elements in the tree.0or example, if your evaluation context is Yet'rderInformation6Ship/ame, thenyoucan reference the sub(items of Ship/ame without specifying the entire path. Ifyou wishto reference Yet'rderInformation64euiredDate, the relative path would be..64euiredDate. !he path is relative to the evaluation context U 4euiredDate isonelevel higher in the schema tree than the elements of Ship/ame.

*aespacesSome schema elements must be pre$xed with their namespace. !he namespaceisautomatically added to elements that reuire this when creating mappings onthe Inputtab of an activity or when dragging and dropping data in the ?ath formulabuilder.Search Predicates*n ?ath expression can have a search predicate. !he search predicate is usedto locatea speci$c element of a repeating schema item. 0or example, the

Yet'rderInformation6'rderDetails6'rderItem item is a repeating element. Ifyouwish to select only the $rst item in the repeating element, you would specify thefollowing1Yet'rderInformation6'rderDetails6'rderItemPQ

 !he PQ speci$es the $rst element of a repeating item.Sub(items can also be examined and used in a search predicate. 0or example, toselectthe element whose roductId is eual to 5;*R5, you would specify thefollowing1Yet'rderInformation6'rderDetails6'rderItemProductIdZ5;*R5Q

 Kou can also use functions and expressions in the search predicate. 0or example,

if youwish to $nd all elements after the $rst, you would specify the following1Yet'rderInformation6'rderDetails6'rderItemPposition"#XQSee the online documentation available in the ?ath formula builder for a list oftheavailable operators and functions in ?ath.

 Kou can also build custom Aava functions and make them available in ?ath byusing

Page 49: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 49/86

the Aava ustom 0unction shared resource. See the description of the Aavaustom0unction shared con$guration resource in TIBCO BusinessWors Palette!eference formore information about creating custom functions and making them available in

?ath.

CONFIDENTIAL© Copyright Wipro Technologies

rocess %odeling

Process #e4nition

 !he rocess De$nition resource allows you to de$ne businessprocesses. Drag and drop the rocess De$nition resource into the design panelto createa new process de$nition.

Su"processes

 -elp in modular design of process de$nitions.

[ an reuse subprocesses across many process definitions.[ all rocess activity is used to call a subprocess.[ Input, output, and any error schemas of the subprocess are specified onthe Start and End activities within the subprocess.

Inter.Process !ounication

  !wo executing process instances can communicate

[ 9ait , /otify, 4eceive /otification activities are used[ * String key is used to correspond /otify activities with wait or 4eceive/oti$cation[ Data to be shared is defined by a \/otify onfiguration+ sharedcon$guration resource[ rocess engines are on different machines should use a database to

store process instance information[ Same \/otify onfiguration+ resource is used to configure the /otifyactivity as well as the 9ait activity and the 4eceive /oti$cation processstarter.

Steps to Design the rocess

Page 50: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 50/86

S!ES DES4I!I'/

lick on the Designer.exe to open 1 !I)' Designer :I !I)' Designer :I can be used to design and develop )usinessrocesses and con$gure the *dapters. 'nce the Designer :Iconsole is open you can drag and drop palettes to build the)usiness rocesses.

lick on the !ransition link to create links1Select the !ransition link and then drag drop the links between palettes to create the link. !his will de$ne your process 8ow.

9rite the rules and conditions using the ?*!-.lick on the !ransition line and select the Success with conditionoption and write all the ?*!- conditions to de$ne )usinessrocess rules.

'pen the !ester in the Designer mode and test end to end 8ow1

'n the Designer :I click the !est %ode and then select thecreated process to test the rocess 8ow. 'nce you will run theprocess in test mode you will see the green colored line as the8ow proceeds in success mode.

Testing Process Definitions

[ )9 provides a testing environment to test process definitions[ *ny process definition can be selected for testing[ )9 engine is started for testing e process definition[ )reak oints can be set which[ *llow to suspend a running process instance at a specified point to examinethe process data.[ an be set before or after an activity with conditions too[ persist even after closing the pro7ect

 !ransitions

 !ransitions describe the 8ow of processing in a process de$nition. * transition isrepresented by an arrow between two activities. !he arrows are unidirectional,and youcannot draw a transition to a previously executed activity. ontrol 8ow in aprocess

Page 51: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 51/86

de$nition must proceed seuentially beginning with the Start activity "or aprocess starter#and ending with the End activity.

* transition can optionally specify a condition. !he condition determinesif the transition is taken when an activity completes processing. *fter anactivity completes, all transitions whose conditions are met are taken.

 Kou can have transitions from one activity to many other activities.

[ Describe the flow of processing.[ Is represented by an arrow between two activities or groups of activities in a process de$nition.[ onditions can be specified on transitions to determine whether totake the transition to the next activity or not.[ ontrol cannot be transitioned to a previously executed activity.

 !ransition !ypes[ Success 1 !ake this transition unconditionally.[ Success with condition 1 !ransition is taken if the condition specifiedevaluates to true.[ Success if no matching condition 1 !ransition is taken if no othertransitions are taken .[ Error 1 !ransition is taken if there is an error during processing of theactivity.

roups

*ctivities can be grouped or ungrouped. *lso, groups can be maximized todisplay all activitiesin the group or minimized to show only a small icon for the whole group. !hisallows you tocollapse and expand groups in a process de$nition to better display the relevantportions of the process you wish to view. %aximized groups can also be resized.

roups are used to specify related sets of activities. !he main uses of groups are

thefollowing1

] ommon error handling] %ay be nested] %ay include sub(process call] rovides special processing1

Page 52: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 52/86

rouping *ctivities ( !ypes of roups

 /one 1 :sed for grouping without looping

 !ransaction roups 1 :sed to group activities that participate in a

transaction. Eg. AD) group activities

 Iterate 3oop 1 :sed to iterate a group once for every item in a list

 4epeat :ntil !rue 3oop 1 :sed to iterate a group until the speci$ed

condition is true

 4epeat 'n Error :ntil !rue 3oop 1 :sed to iterate a group when an error

occurs

 If roups1 !o conditionally execute business logic

rouping *ctivities ( !ypes of roups 9hile !rue roups1 4epeats the series of grouped activities as long asthe given condition evaluates as true. ritical Section 1 :sed to synchronize process instances so that onlyone process instance executes the grouped activities at any given time. ick 0irst 1 *llow process execution to wait for one or more events

ick 0irst @ before execution

ick $rst groups allow process execution to wait for one or more events. !he $rsteventthat completes determines which transition to take to continue processing.

ritical Section

rovides synchronized access to Shared Fariable.@ %ultiple 7obs, single process@ %ultiple 7obs, multiple processes "uses lock ob7ect#

Page 53: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 53/86

@ %ultiple 7obs, multiple processes, multi(engine.

 !ransaction support

^ Enabling transactions for AD), A%S and EA) activities[^ )oth ?* and A!* transaction models are supported[^ Supports multiple AD) and6or A%S operations atomically^ Extended roup activity to support transaction

6ile Pallete

0ile palette is used to read, write, delete, or create $les[ opy 0ile  !he opy 0ile activity allows you to copy $les and directories to a newlocation[ reate 0ile  !he reate 0ile activity creates a new $le or directory with the speci$ed

name[ 0ile oller  !he 0ile oller process starter polls for $les or directories with the givennameand starts a process when the speci$ed change "creation, modi$cation, deletion#is detected[ 3ist 0iles

Page 54: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 54/86

  !he 3ist 0iles activity returns information about $les or directories, or a listingof all the $les in the speci$ed directory.[ 4ead 0ile  !he 4ead 0ile activity is used to read a $le and place its contents into theactivity+s output.

0ile palette is used to read, write, delete, or create $les[ 4emove 0ile  !he 4emove 0ile activity removes the speci$ed $le. !his activity can alsoremoveempty directories. If a directory that is not empty is speci$ed, an exception isthrown.[ 4ename 0ile  !he 4ename 0ile activity is used to rename or move $les.[ 9ait for 0ile hange  !he 9ait for 0ile hange activity waits for a $le creation, modi$cation, or

deletionevent to occur during process execution[ 9rite 0ile  !he 9rite 0ile activity writes content to the speci$ed $le.

7TTP Pallete-!! onnection[ !he -!! onnection resource describes the characteristics of the connectionused to

receive incoming -!! reuests[ -!! 4eceiver  Starts a process based on the receipt of a -!! reuest.[ roxy onfiguration  :sed to specify a proxy -!! server when -!! reuests are sent outside ofa$rewall.[ Send -!! 4euest  Sends a -!! reuest to a web server[ Send -!! 4esponse  Sends a response to a previously received -!! reuest

[ 9ait for -!! 4euest

  Suspends the current process until the incoming reuest is received.

Parse Pallete !he arse palette provides shared con$guration resources and

Page 55: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 55/86

activities for parsing and rendering formatted text.[ Data 0ormat  !he Data 0ormat resource contains the speci$cation for parsing or rendering atext string[ arse Data  !akes a text string or input from a $le to schema[ 4ender Data  onverts data to text string

XM2 Tools Palleterovides a set of tools enabling the creation, management, andvalidation of ?%3 schemas "?%3 Schema or D!D# and ?%3instance documents.

[ Schema  !he Schema resource enables the creation of an ?%3 Schema $le[ D!D  !he D!D resource enables the creation of a D!D "Document !ype De$nition#[ Instance  ?%3 instance documents are ?%3 documents (( typically representing data(orientedbusiness documents, messages, and con$guration $les (( that conform to therules of an?%3 Schema or D!D

XM2 Activities Pallete

 !his palette provides activities for parsing ?%3 strings into schemasand rendering schemas into ?%3 strings[ arse ?%3  onverts and ?%3 string or $le to ?%3 schema[ 4ender ?%3  onverts ?%3 Schema to ?%3 string[ !ransform ?%3

  *llows to transform input ?%3 document into the output speci$ed by thegiven?S3! 0ile shared con$guration resource.

Error 7andling

Page 56: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 56/86

Exception handling is a programming language construct or computer

hardware mechanism designed to handle the occurrence ofexceptions, special

conditions that change the normal 8ow of program execution.

rogramming languages di&er considerably in their support for exceptionhandling "as distinct from error checking, which is normal program 8ow that

codes for responses to contingencies such as unsuccessful termination of

invoked operations#. In some programming languages there are functions which

cannot be safely called on invalid input data .

 !he degree to which such explicit validation and error checking is necessary is in

contrast to exception handling support provided by any given programmingenvironment. -ardware exception handling di&ers somewhat from the support

provided by software tools, but similar concepts and terminology are prevalent.

In general, an exception is handled "resolved# by saving the current state of

execution in a prede$ned place and switching the execution to a

speci$c subroutine known as an exception handler. Depending on the situation,

the handler may later resume the execution at the original location using the

saved information. 0or example, a page fault will usually allow the program to

be resumed, while a division by zero might not be resolvable transparently.

0rom the processing point of view, hardware interrupts are similar to resume(

able exceptions, though they are typically unrelated to the userGs program 8ow.

0rom the point of view of the author of a routine, raising an exception is a useful

way to signal that a routine could not execute normally. 0or example, when an

input argument is invalid "e.g. a zero denominator in division# or when a

resource it relies on is unavailable "like a missing $le, or a hard disk error#. In

systems without exceptions, routines would need to return some special error

code. In which users of the routine need to write extra code to distinguish

normal return values from erroneous ones.

'ne mechanism for raising an exception is known as a throw. !he exception is

said to be thrown. Execution is transferred to a 5catch5.

Page 57: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 57/86

ontemporary applications face many design challenges when considering

exception handling strategies. articularly in modern enterprise level

applications, exceptions must often cross process boundaries and machine

boundaries. art of designing a solid exception handling strategy is recognizing

when a process has failed to the point where it cannot be economically handled

by the software portion of the process.

Errors can occur during activity processing. 9e can specify that one transitionout of anactivity is to be taken in the case of an error. 9e have to specify activities to

execute inthe event of an error. !his allows us to create error(handling procedures fordealingwith potential runtime errors in process de$nitions.

0or example, the following illustrates a simple process that begins with an -!!reuest and updates a database based on the incoming reuest. If the update issuccessful, the process ends. If an error is encountered "for example, thedatabase isdown#, an email is sent to a system administrator, and then the process ends.0igillustrates this simple error(handling procedure. !he error transition is used tospecifythe activities to execute in case of an error.0ig * simple error(handling procedure

The Error Process +aria"les

Page 58: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 58/86

9hen an error transition is taken, error data is available to activities thatexecute afterthe error transition.

 !here are two types of process variables that contain error data,. C5error process varia"le and the activity error variables.. *ctivity error variables are named C5error5Dactivity*ae*ll activities that have an error transition are available in the rocess Data panelafter an error transition is taken. 9e can use the data in these process variablestoperform the desired processing, depending upon what error occurred.

 !he following sections describe the two kinds of error process variables.C5error Process +aria"le

 !he YOerror process variable contains general information about the process inwhichthe error occurred. !he schema of the YOerror variable is the following1

 !he contents of each schema item are dependent upon the activity that throwsthe error.

 !he Data schema item contains activity(speci$c error information.9hen we create an error(handling procedure, we may $nd the data in theYOerrorprocess variable useful. 9e can map data from this process variable into Inputitems foractivities in error(handling procedure.C5error5Dactivity *ae Process +aria"lesEach activity has one or more prede$ned error schemas. !he error schemas aredisplayed on the activity+s Error 'utput tab. !ypically, there are two or three

types of exceptions an activity can encounter, and these are represented as a choiceelement inthe error output schema. 0or example, the following illustrates the error outputschemaof the reate 0ile activity1

9hen an error is encountered, the C5error5Dactivity*ae process variableis created

Page 59: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 59/86

and populated with the error data. !he name of the process variable isdependent uponthe activity+s speci$ed name.

9e can obtain the error by examining the C5error5Dactivity*ae processvariable insubseuent activities after an error transition. !he following illustrates therocess Datapanel that is available after the activity named %yreate0ile encounters anerror1

9e can use the msgode element to determine the kind of error that occurred.TIBCOBusinessWors "rror Codes lists all error codes that activities can return.We should use the error code instead of the error essage te9t todetect and handleerrors< The error code should reain constant fro release to release"ut the te9t of the essage ay change<Error Propagation@roups and called processes de4ne the scope of an e9ception.

. *n exception that occurs within a group or a called process causes processingtohalt.. *ny unhandled exceptions are propagated to the next highest exceptionscope.;. :nhandled errors occur where there is no error transition or atch activitythatspeci$es the activities to execute in the case of an error.

Page 60: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 60/86

F< *lso, we can use the enerate Error activity to create an unhandled error.The@enerate Error activity does not perit any transitions to anotheractivity soany error created "y the @enerate Error activity is propagated to thene9thighest e9ception scope<

Process Error Scheas !he error process variables contain the default data returned in the event of anerror.9e can de$ne speci$c error schemas to hold error data when errors arepropagatedfrom a group or a called process. Each process can de$ne a number of errorschemas bycreating these schemas on the Error Schema tab of the process de$nition+s End*ctivity.Error schemas are created like any other schema. -owever, the Error Schematab of theEnd activity allows 9e to create more than one error schema.

0ig illustrates the Error

Schemas tab with two error schemas. !he left panel of the tab allows 9e tocreate ordelete schemas. !he middle portion allows 9e to modify the selected schema.

 !he right

Page 61: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 61/86

panel of the tab allows 9e to modify each schema item.

Error schemas are used by the enerate Error activity. 9hen the enerate Erroractivityis executed, the speci$ed error schema is propagated to the parent process.)elow 0igillustrates the on$guration tab of the enerate Error activity. !he Select ErrorSchema$eld contains a drop(down list of error schemas de$ned for the process.

If ( Default ( is chosen for the error schema, only the YOerror process variablecontainsthe propagated error data.If a process error schema is chosen, the schema appears in the Input tab for the

enerateError activity and 9e can map data to the speci$ed error schema. *t run time,theenerate Error propagates the speci$ed error schema to the parent process intheYOerrorOWactivity(nameX process variable.

 !he process variable is derived from the activity where the enerate Erroroccurred. If the enerate Error occurs in a called process, the Wactivity(nameX portion ofthe processvariable is the name of the all rocess activity. If the enerate Error occurred ina

group, the Wactivity(nameX portion is the name of the enerate Error activity inthegroup.

3sing the !atch and ,ethro& Activities9e can place a atch activity in our process de$nition to deal with unhandledexceptions. !he atch activity allows us to create a track that handles theexception and

Page 62: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 62/86

proceeds to the end of the current scope_ either the end of the process de$nitionor theend of a group. 9e can use the atch activity as an alternative to individuallyhandlingexceptions for each activity, or 9e can use error transitions to handle someexceptionsand the atch activity to handle others.0ig illustrates the atch activity. !he process waits for incoming orders sent byway of -!! reuests. 9hen an order arrives, each line item is checked for availabilityin the0orEvery3ineItem group. If an error occurs while checking the inventory,executiontransfers to the atchInventory activity. * log $le entry is written, and then thetransition is taken to the end of the group. If the inventory is available, the orderisprocessed, a con$rmation email is sent, and the response is sent back to the

-!! client.If the inventory is not available, a response is sent back to the -!! clientstating thatone or more items are not available. If an error occurs outside of the0orEach3ineItemgroup, execution transfers to the atch*ll'thers activity.

0ig Example of using the atch activity

 !he atch activity can specify the type of exception that should be caught. * listof 

Page 63: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 63/86

exceptions that can be raised in the current scope are available on theon$guration tabof the atch activity. 9e can have more than one atch activity in the currentscope, buteach one must handle a di&erent exception type. *ny exceptions that are notalreadyhandled by an error transition or atch activity can be handled by a atchactivity thatspeci$es the atch *ll option on the on$guration tab.

 !ransitions cannot be drawn to a atch activity. *lso, we cannot draw transitionsfromany activity on the path of the atch activity to any activity on the regularexecutionpath. *ctivities on a atch path can, however, have transitions to other activitiesonother atch paths. !he 4ethrow activity allows us to throw the exceptioncurrently

being handled by a atch path. !his is useful if we wish to perform some errorprocessing, but then propagate the error up to the next level.

3ogging"Tracing'

In software engineering, tracing is a specialized use of logging to record

information about a programGs execution. !his information is typically used

by programmers for debugging purposes, and additionally, depending on the

type and detail of information contained in a trace log, by experienced system

administrators or technical support personnel and software monitoring tools to

diagnose common problems with software.

3ogging provides developers with information useful for debugging. !hisinformation is used both during the development cycle and after the software isreleased.

Write To Log Activity 

Page 64: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 64/86

 !his activity writes a message to the log. !here is one log $le for each processengine.Depending upon whether you are using a process engine in testing mode or adeployed process engine, the logs are stored in di&erent locations. During testmode, the logs are stored in the !I)' *ctive%atrix )usiness9orks workingdirectory under the logs subdirectory.

Enterprise Message Service

:EMS'

EMS !oncepts• A%S• %essages• Destinations

• E%S Server M *dministrator• E%S on$g $les• 4outing and fault tolerance

 Java Message Service :JMS'• Aava %essage Service . "A%S# is a Aava framework speci$cation for messagingbetween applications. Sun %icrosystems developed this speci$cation, incon7unction with !I)' and others, to supply a uniform messaging interfaceamong enterprise applications.• !he A%S framework "an interface speci$cation, not an implementation# isdesigned to supply a basis for %'% development.• !I)' Enterprise %essage Service implements A%S and integrates support forconnecting other message services, such as !I)' 4endezvous and !I)'

SmartSockets.• !I)' Enterprise %essage Service R.R is compliant with the A%S .speci$cation.• A%S is based on creation and delivery of messages.• %essages are structured data that one application sends to another.• !he creator of the message is known as the #roducer and the receiver of themessage is known as the consumer .

Page 65: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 65/86

• !he !I)' E%S server acts as an intermediary for the message and managesitsdelivery to the correct destination.• A%S supports two messaging models1• oint(to(point "ueues#• ublish and subscribe "topics#PointtoPoint

• oint(to(point messaging has one producer and one consumer per message. It

uses a queue to store messages until they are received.

• !he message producer sends the message to the ueue_ the messageconsumerretrieves messages from the ueue and sends acknowledgement that themessagewas received.• %ore than one producer can send messages to the same ueue, and more thanone consumer can retrieve messages from the same ueue.• !he ueue can be con$gured to be exclusive. If the ueue is exclusive, then allueue messages can only be retrieved by the $rst consumer speci$ed for the

ueue.• 4egardless of whether the ueue is exclusive or not, only one consumer caneverconsume each message that is placed on the ueue.

Pu"lish and Su"scri"e

• In a publish and subscribe message system, producers address messages to a

Page 66: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 66/86

to#ic. In this model, the producer is known as a #u$lisher and the consumer isknown as a su$scri$er .• %any publishers can publish to the same topic, and a message from a singlepublisher can be received by many subscribers.• Subscribers subscribe to topics, and all messages published to the topic arereceived by all subscribers to the topic. 9hen a message is published to thattopic, all subscribed consumers receive the message.• !his type of message protocol is also known as $roadcast messaging becausemessages are sent over the network and received by all interested subscribers,#ura"le Su"scri"ers for Topics

• )y default, subscribers only receive messages when they are active. Ifmessagesarrive on the topic when the subscriber is not available, the subscriber does notreceive those messages.

• !he E%S *Is allow you to create durable subscribers to ensure that messagesare received, even if the message consumer is not currently running. %essagesfor durable subscriptions are stored on the server as long as durable subscribersexist for the topic, or until the message expiration time for the message hasbeenreached, or until the storage limit has been reached for the topic.• 9hen an application restarts and recreates a durable subscriber with the sameID, all messages stored on the server for that topic are published to the durablesubscriber.Messages• A%S messages have a standard structure. !his structure includes the followingsections1 – -eader "reuired# – roperties "optional# – )ody "optional#• %essage properties are provider(speci$c and can include information on

speci$cimplementations or enhancements to A%S functionality. i.e., E%S adds additionalproperties to A%S %essages and it has its own properties also.• E%S extensions to A%S message properties are1 – !he A%S standard speci$es two delivery modes for messages,E4SIS!E/! and /'/OE4SIS!E/!. E%S also includes a4E3I*)3EODE3IFE4K mode that eliminates some of the overheadassociated with the other delivery modes.

Page 67: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 67/86

 – 0or consumer sessions, you can specify a /'O*>/'93EDE mode sothat consumers do not need to acknowledge receipt of messages, if desired. E%S also provides an E?3II!O3IE/!O*>/'93EDE andE?3II!O3IE/!OD:SO'>O*>/'93EDE mode that restricts theacknowledgement to single messages. – E%S extends the %ap%essage and Stream%essage body types to allowE%S to exchange messages with !I)' 4endezvous and *ctiveEnterpriseformats that have certain features not available within the A%S%ap%essage and Stream%essage.• !hese are extensions and therefore not compliant with A%S speci$cations.Extended messages are tagged as extensions with the vendor property tag

 A%SO!I)'O%SOE?!.

 JMS Message 7eader 6ields• !he header contains ten prede$ned $elds that contain values used to route anddeliver messages.

. A%SDestination Destination to which message is sent. A%SDelivery%odeersistent or non(persistent message. !he default is persistent.E%S extends the delivery mode to include a4E3I*)3EODE3IFE4K mode.;.A%SExpiration 3ength of time that message will live beforeexpiration. If set to J, message does not expire.

 !he time(to(live is speci$ed in milliseconds.R. A%Sriority :ses a numerical ranking, between J and N, to de$ne messagepriority as normal or expedited. 3arger numbers representhigher priority.. A%S%essageID Falue uniuely identi$es each message sent by a provider.`. A%S!imestamp !imestamp of time when message was handed o& to aproviderto be sent. %essage may actually be sent later than thistimestamp.V. A%SorrelationID !his ID can be used to link messages, such aslinking a response message to a reuest message.Entering a value in this $eld is optional..A%S4eply!o * destination to which a message reply should be sent. Enteringa value for this $eld is optional.N.A%S!ype message type identi$erJ.A%S4edelivered If this $eld is set, it is possible that the message was

delivered tothe client earlier, but not acknowledged at that time.Message Body : JMS Message Types'%essage !his message type has no body. !his is useful for simple eventnoti$cation.

 !ext%essage * 7ava.lang.String.%ap%essage * set of name6value pairs. !he names are 7ava.lang.String ob7ects,and

Page 68: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 68/86

the values are Aava primitive value types or their wrappers. !he entriescan be accessed seuentially by enumeration or directly by name. !heorder of entries is unde$ned.)ytes%essage * stream of uninterrupted bytes. !he bytes are not typed_ that is,theyare not assigned to a primitive data type.Stream%essage * stream of primitive values in the Aava programming language.Eachset of values belongs to a primitive data type, and must be readseuentially.'b7ect%essage * serializable ob7ect constructed in the Aava programminglanguage.

Message #elivery Modes• PE,SISTE*T – 9hen a producer sends a E4SIS!E/! message, the producer must waitfor the server to reply with a con$rmation. !he message is persisted ondisk by the server. – !his delivery mode ensures delivery of messages to the destination on theserver in almost all circumstances. -owever, the cost is that this deliverymode incurs two(way network tra2c for each message or committedtransaction of a group of messages.

Message #elivery Modes• PE,SISTE*T – 9hen a producer sends a E4SIS!E/! message, the producer must waitfor the server to reply with a con$rmation. !he message is persisted on

disk by the server. – !his delivery mode ensures delivery of messages to the destination on theserver in almost all circumstances. -owever, the cost is that this deliverymode incurs two(way network tra2c for each message or committedtransaction of a group of messages.

• *(*5PE,SISTE*T – Sending a /'/OE4SIS!E/! message omits the overhead of persistingthe message on disk to improve performance. – If authorization is disabled on the server, the server does not send acon$rmation to the message producer. If authorization is enabled on theserver, the default condition is for the producer to wait for the server to

Page 69: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 69/86

reply with a con$rmation in the same manner as when using E4SIS!E/!mode. – 4egardless of whether authorization is enabled or disabled, you can usethe npsendOcheckOmode parameter in the tibemsd.conf $le to specify theconditions under which the server is to send con$rmation of /'/OE4SIS!E/! messages to the producer.

• ,E2IAB2E5#E2I+E,)  – E%S extends the A%S delivery modes to include reliable delivery. 9henusing 4E3I*)3EODE3IFE4K mode, the server never sends the producer areceipt con$rmation or access denial and the producer does not wait for it.4eliable mode decreases the volume of message tra2c. – 9hen you use the reliable delivery mode, the client application does notreceive any response from the server. !herefore, all publish calls willalways succeed "not throw an exception# unless the connection to theserver has been terminated.

 – In some cases a message published in reliable mode may be disuali$edand not handled by the server because the destination is not valid oraccess has been denied. In this case, the message is not sent to any

message consumer. -owever, unless the connection to the server has beenterminated, the publishing application will not receive any exceptions,despite the fact that no consumer received the message.

Persistent Messages in E%S• /'/OE4SIS!E/! and 4E3I*)3EODE3IFE4K messages are never written topersistent storage. E4SIS!E/! messages are written to persistent storagewhenthey are received by the E%S server. ersistent messages sent to a ueue arealways written to disk.

Page 70: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 70/86

• Should the server fail before sending persistent messages to subscribers, theserver can be restarted and the persistent messages will be sent to thesubscriberswhen they reconnect to the server.

• ersistent messages published to a topic are written to disk onl% if that topichasat least one durable subscriber or one subscriber with a fault(tolerantconnectionto the E%S server. In the absence of a durable subscriber or subscriber with afault(tolerant connection, there are no subscribers that need messages resent inthe event of a server failure. In this case, the server does not needlessly savepersistent messages.• Kou can set the failsafe property on a topic or ueue to specify that persistentmessages for the topic or ueue be synchronously written to disk. 9hen failsafeis set, the producer remains blocked until the server has completed the write(todiskoperation.

Page 71: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 71/86

Message Ac1no&ledgeent• !he following describes the steps in message delivery and acknowledgement1. * message is sent from the message producer to the machine on which theE%Sserver resides.. 0or persistent messages, the E%S server sends a con$rmation to theprocedure that

the message was received.;. !he server sends the message to the consumer.R. !he consumer sends an acknowledgement to the server that the messagewasreceived. * session can be con$gured with a speci$c acknowledge mode thatspeci$eshow the consumer(to(server acknowledgement is handled.. In many cases, the server then sends a con$rmation of the acknowledgementto theconsumer.

Page 72: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 72/86

• !he A%S speci$cation de$nes three levels of acknowledgement fornontransactedsessions1 – 3IE/!O*>/'93EDE speci$es that the consumer is to acknowledgeall messages that have been delivered so far by the session. 9hen usingthis mode, it is possible for a consumer to fall behind in its messageprocessing and build up a large number of unacknowledged messages.

 – *:!'O*>/'93EDE speci$es that the session is to automaticallyacknowledge consumer receipt of messages when message processing has$nished. – D:SO'>O*>/'93EDE speci$es that the session is to 5lazily5acknowledge the delivery of messages to the consumer. 53azy< means thatthe consumer can delay acknowledgement of messages to the server untila convenient time_ meanwhile the server might redeliver messages. !his

mode reduces session overhead. -owever, should A%S fail, the consumermay receive duplicate messages.• E%S extends the A%S acknowledge modes to include1 – /'O*>/'93EDE – E?3II!O3IE/!O*>/'93EDE – E?3II!O3IE/!OD:SO'>O*>/'93EDE – 

• *(5A!/*(W2E#@E – /'O*>/'93EDE mode suppresses the acknowledgement of received messages. *fter the server sends a message to the client, allinformation regarding that message for that consumer is eliminated fromthe server. !herefore, there is no need for the client application to send anacknowledgement to the server about the received message. /ot sendingacknowledgements decreases the message tra2c and saves time for thereceiver, therefore allowing better utilization of system resources.• EXP2I!IT5!2IE*T5A!/*(W2E#@E – E?3II!O3IE/!O*>/'93EDE is like 3IE/!O*>/'93EDEexcept it acknowledges only the individual message, rather than allmessages received so far on the session.• EXP2I!IT5!2IE*T5#3PS5(/5A!/*(W2E#@E – E?3II!O 3IE/!OD:SO'>O*>/'93EDE is likeD:SO'>O*>/'93EDE except it +lazily<acknowledges only theindividual message, rather than all messages received so far on the

session.• Synchronous and Asynchronous Message !onsuption – !he E%S *Is allow for both synchronous and asynchronous messageconsumption. 0or synchronous consumption, the message consumerexplicitly invokes a receive call on the topic or ueue. 9hensynchronously receiving messages, the consumer remains blocked until amessage arrives. – !he consumer can receive messages asynchronously by registering a

Page 73: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 73/86

message listener to receive the messages. 9hen a message arrives at thedestination, the message listener delivers the message to the messageconsumer. !he message consumer is free to do other operations betweenmessages.

#estinations

• Destinations for messages can be either Topics or -ueues. * destination canbecreated statically in the server con$guration $les, or dynaically by a clientapplication. Servers connected by routes exchange messages sent toteporarytopics.• Kou can create server(based bridges between destinations of the same ordi&erenttypes to create a hybrid messaging model for your application. !his allows allmessages delivered to one destination to also be delivered to the bridgeddestination. Kou can bridge between di&erent destination types, between thesame destination type, or to more than one destination.

• * destination name is a string divided into eleents, each elementseparated bythe period character ".#. !he period character allows you to create multi(partdestination names that categorize destinations.• Kou can set the properties for topics and Gueues directly in the topics.conforueues.conf $le or by means of the setprop topic or setprop ueue command inthe E%S *dministrator !ool.Static destinations• Static destinations let administrators con$gure E%S behavior at the enterpriselevel. *dministrators de$ne these administered ob7ects, and client programs use

themUrelieving program developers and end users of the responsibility forcorrect con$guration.• Static destinations support concurrent use. !hat is, several client processes"andin several threads within a process# can create local ob7ects denoting thedestination, and consume messages from it.• *dministrators create static destinations using E%S server administration toolsor *I.• lient programs lookup static destinations by name. Successful lookup returnsalocal ob7ect representation of the destination.• * static destination remains in the server until an administrator explicitlydeletesit.• on$guration information for static destinations is stored in con$guration $lesfor the E%S server.#ynaic destinations• Dynamic destinations give client programs the 8exibility to de$ne destinationsasneeded for short(term use.

Page 74: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 74/86

• Dynamic destinations support concurrent use. !hat is, several client processes"and in several threads within a process# can create local ob7ects denoting thedestination, and consume messages from it.• lient programs create dynamic destinations, if permitted by the servercon$guration.• lient programs lookup dynamic destinations by name. Successful lookupreturns a local ob7ect representation of the destination.• Dynamic destinations do not appear in the con$guration $les and exist as longasthere are messages or consumers on the destination.• * dynamic destination remains in the server as long as at least one clientactivelyuses it. !he server automatically deletes it "at a convenient time# when allapplicable conditions are true1 – Topic or -ueue all client programs that access the destination havedisconnected – Topic no oine durable subscribers exist for the topic

 – -ueue ueue, no messages are stored in the ueueTeporary destinations• !emporary destinations are ideal for limited(scope uses, such as reply sub7ects.• !emporary destinations support only local use. !hat is, only the clientconnectionthat created a temporary destination can consume messages from it. -owever,servers connected by routes do exchange messages sent to temporary topics.• lient programs create temporary destinations.• * temporary destination remains in the server either until the client thatcreatedit explicitly deletes it, or until the client disconnects from the server.

#estination properties. failsafe. secure;. maxbytesR. maxmsgs. over8owolicy. default. discard'ld;. re7ectIncoming`. lobalV. senderOname. senderOnameOenforcedN. 8owontrolJ. trace. import. export;. max4edeliveryR. exclusive. prefetch`. expiration

Page 75: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 75/86

Page 76: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 76/86

subscriber.• 0or ueues, discard(ld speci$es that, if messages on the ueue haveexceededthe maxbytes or maxmsgs value, the oldest messages are discarded from theueue and an error is returned to the message producer. – 0or topics, re>ectIncoing speci$es that, if an% of the subscribers have anoutstanding number of undelivered messages on the server that are overthe message limit, all new messages are re7ected and an error is returnedto the producer. – 0or ueues, re>ectIncoing speci$es that, if messages on the ueue haveexceeded the maxbytes or maxmsgs value, all new messages are re7ectedand an error is returned to the producer. – E9aples 1setprop ueue myBueue maxmsgsZJJJ,over8owolicyZdiscard'ldsetprop topic my!opic maxbytesZJJ>),over8owolicyZre7ectIncoming`. glo"al – %essages destined for a topic or ueue with the global property set are

routed to the other servers that are participating in routing with thisserver. – Kou can set global using the form1 glo"alN< sender5nae – !he senderOname property speci$es that the server may include thesender+s username for messages sent to this destination. – set senderOname using the form1 sender5naeO< sender5nae5enforced – !he senderOnameOenforced property speci$es that messages sent to thisdestination must include the sender+s user name. – set using the form1 sender5nae5enforced

 – If the senderOname property is also set on the destination, this propertyoverrides the senderOname property.< o&!ontrol – speci$es the target maximum size the server can use to store pendingmessages for the destination. If the number of messages exceed themaximum, the server will slow down the producers to the rate reuired bythe message consumers. – set 8owontrol using the form1 o&!ontrolHsize/BMB@BK – !he 8owOcontrol parameter in tibemsd.conf $le must be set to enablebefore the value in this property is enforced by the server.;Q< trace – Speci$es that tracing should be enabled for this destination. – set trace using the form1 traceH"odyK – Specifying trace "without Zbody#, generates trace messages that includeonly the message seuence and message ID. Specifying traceZbodygenerates trace messages that include the message body.. Iport – *llows messages published by an external system to be received by a E%Sdestination "a topic or a ueue#, as long as the transport to the externalsystem is con$gured.

Page 77: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 77/86

Page 78: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 78/86

value is J "that is, inherit the prefetch value#.;U< e9piration – If set for a destination, when the server delivers a message to thatdestination, the server overrides the A%SExpiration value set by theproducer in the message header with the time speci$ed by the expirationproperty. – set the expiration property for any ueue and any topic using the form1expirationZtimePmsecsecminhourdayQ9here time is the number of seconds. ero is a special value that indicatesmessages to the destination never expire. – 0or example1 expirationZJmin%eans J minutes. – 9hen a message expires it is either destroyed or, if the A%SO!I)'O4ESE4FEO:/DE3IFE4ED property on the message is setto true, the message is placed on the undelivered ueue so it can behandled by a special consumer.!reating V Modifying destinations

• create a ueue using the create Gueue command and a topic using thecreatetopic command.to create a new ueue named myBueue, enter1 create Gueue y-ueue

 !o create a topic named my!opic, enter 1 create topic yTopic• roperties can be speci$ed when creating or modifying an existing ueue ortopicusing the addprop Gueue addprop topic setprop Gueue setprop topicreoveprop Gueue and reoveprop topic commands.• !he setprop ueue and setprop topic commands remove properties that arenot

explicitly set by the command. 0or example, to change maxmsgs to JJ and toremove the over8owolicy parameter, enter1 setprop Gueue y-ueuea9sgsH;QQ• !o create a secure ueue, named myBueue, to which only users 57oe< and5eric5can send messages and 5sally5 can receive messages, in the E%S *dministration

 !ool, enter1 – set server authorizationZenabled – create ueue myBueue secure – grant ueue myBueue 7oe send – grant ueue myBueue eric send – grant ueue myBueue sally receive

Wildcards• Kou can use wildcards when specifying statically created destinations inueues.conf and topics.conf. !he use of wildcards in destination names can beused to de$ne 5parent5 and 5child5 destination relationships, where the childdestinations inherit the properties and permissions from its parents.• the use of the two wildcards, and X. – !he wildcard X by itself matches any destination name. 9hen X is mixedwith text, it matches one or more trailing elements. 0or example1 foo<

Page 79: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 79/86

%atches foo.bar, foo.boo, foo.boo.bar, and foo.bar.boo. – !he wildcard means that any token can be in the place of . 0or example1foo. %atches foo.bar and foo.boo, but not foo.bar.boo. foo<<"ar %atchesfoo.boo.bar, but not foo.bar.*ll destination properties are inheritable for both topics and ueues. !his meansthat aproperty set for a 5wildcarded5 destination is inherited by all destinations withmatching names.0or example, if you have the following in your topics.conf $le1foo. failsafefoo.barfoo.bob

 !opics foo.bar and foo.bob are failsafe topics because they inherit failsafe fromtheirparent, foo.. If your E%S server were to dynamically create a foo.new topic, ittoowould have the failsafe property.

!on4g 4les. tibemsd.conf . users.conf ;. groups.conf R. topics.conf . ueues.conf `. acl.conf V. bridges.conf . factories.conf N. transports.conf J. tibrvcm.conf 

. durables.conf . routes.conf ;< Ti"esd<con4g

 !he main con$guration $le controls the characteristics of the E%S server.It allows to set the following parameters for E%S server 1• lobal System arameters• Storage 0ile arameters• onnection and %emory arameters• Detecting /etwork onnection 0ailure arameters• 0ault !olerance arameters• %essage !racking arameters• !I)' 4endezvous arameters• !I)' SmartSockets arameters• !racing and 3og 0ile arameters• Statistic athering arameters• SS3 Server arameters• 3D* arameters• Detecting /etwork onnection0ailure arametersUDeprecated8< users<conf 

Page 80: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 80/86

 – !his $le de$nes all users. !he format of the $le is1username1 #ass)ord15descri#tion5 – E9aple – admin1 YYurm>FgV15*dministrator5 – )ob115)ob Smith5 – )ill115)ill Aones5< groups<conf  – !his $le de$nes all groups. !he format of the $le is1 grou#name*15descri#tion5 – user+name* – user+name, – grou#+name,15descri#tion5 – user+name* – user+name, – E9aple – administrators1 5!I)' Enterprise %essage Service administrators5 – admin

 – )obF< topics<conf 

 !his $le de$nes all topics. !he format of the $le is1 to#ic+name #ro#ert%*, #ro#ert%,,... – 0or example, you might enter1business.inventory global, importZ54FJ,4FJ5, exportZ54FJ;5,maxbytesZ%)L< Gueues<conf  – !his $le de$nes all ueues. – !he format of the $le is1 -ueue+name #ro#ert%*, #ro#ert%,, ... – example, you might enter1 test failsafe,secure,prefetchZ

U< acl<conf  – !his $le de$nes all permissions on topics and ueues for all users andgroups. – !he format of the $le is1 !'IZto#ic :SE4Zuser E4%Z #ermissions !'IZto#ic 4':Zgrou# E4%Z #ermissionsB:E:EZ-ueue :SE4Zuser E4%Z #ermissionsB:E:EZ-ueue 4':Zgrou# E4%Z #ermissions*D%I/ :SE4Zuser E4%Z #ermissions*D%I/ 4':Zgrou# E4%Z #ermissions – E9aple*D%I/ :SE4Zsys(admins E4%Zall

 !'IZfoo :SE4Zuser E4%Zpublish,subscribeN< "ridges<conf  – !his $le de$nes bridges between destinations. – !he format of the $le is1PdestinationT%#e1destination&ameQ mandatory (( include bracketsdestinationT%#eZdestinationToBridgeTo*PselectorZ5message+selector 5QdestinationT%#eZdestinationToBridgeTo,

Page 81: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 81/86

PselectorZ5message+selector 5Q<<<

 !he destination+name can be any speci$c destination or a wildcard pattern tomatch multiple destinations. – E9aplePtopic1my!opicQtopicZmy!opicueueZmyBueueO< routes<conf  – !his $le de$nes routes between this !I)' Enterprise %essage Serviceserver and other !I)' Enterprise %essage Service servers. – !he format of the $le is1Proute+nameQ mandatory (( suare brackets included.urlZurl+stringzoneOnameZ one/namezoneOtypeZ one/t%#ePselector Q

Pssl+#ro# Z valueQ – E9aplePtestOrouteOQurl Z tcp166server1VsslOverifyOhost Z disabled< factories<conf  – !his $le de$nes the connection factories for the internal A/DI names. – !he $le consists of factory de$nitions with this format1factory-nameK mandatory (( suare brackets includedtype Z genericxagenerictopicueuexatopicxaueueurl Z url+string

metric Z connections byteOrateclientID Z client+idPconnectOattemptOcountconnectOattemptOdelayconnectOattemptOtimeoutreconnectOattemptOcountreconnectOattemptOdelayreconnectOattemptOtimeout Z valueQPssl+#ro# Z valueQ – E9aplePnorthOamericaQtype Z topicurl Ztcp166localhost1V,tcp166server1VclientID Z 5Sample lient ID<sslOverifyOhost Z disabled;Q< transports<conf  – !his $le de$nes transports for importing messages from or exportingmessages to external message services, such as !I)' 4endezvous and

 !I)' SmartSockets. – !he format of the $le is1transport_nameK mandatory (( suare brackets includedtype Z tibrv tibrvcm tibss mandatoryPtopicOimportOdm Z !I)E%SOE4SIS!E/!

Page 82: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 82/86

 !I)E%SO/'/OE4SIS!E/!  !I)E%SO4E3I*)3EQPueueOimportOdm Z !I)E%SOE4SIS!E/!

 !I)E%SO/'/OE4SIS!E/!  !I)E%SO4E3I*)3EQPexportOheaders Z true falseQPexportOproperties Z true falseQtransport-specic-parametersIf type Z tibrv, the extended syntax is1Pservice Z serviceQPnetwork Z networkQPdaemon Z daemonQPtempOdestinationOtimeout Z secondsQIf type Z tibrvcm, the extended syntax is1rvOtport Z name mandatory

PcmOname Z nameQPledgerO$le Z $le(nameQPsyncOledger Z true falseQPreuestOold Z true falseQPexplicitOcon$gOonly Z true falseQPdefaultOttl Z secondsQIf type Z tibss, the extended syntax is1Pusername Z nameQPpassword Z passwordQPserverOnames Z singleOorOlistOofOserversQPpro7ect Z nameQ

PdeliveryOmode Z bestOe&ort gmdOall gmdOsome orderedQ PlbOmode Z none roundOrobin weighted sortedQPoverrideOlbOmode Z enable disableQPgmdO$leOdelete Z enable disableQPimportOssOheaders Z none typeOnum allQPsubscribeOmode Z all exactQPpreserveOgmd Z always receivers neverQ;;< ti"rvc<conf  – !his $le de$nes the !I)' 4endezvous certi$ed messaging "4F%#listeners for use by topics that export messages to a tibrvcm transport. – !he format of this $le istransport listener/ame sub7ect/ame – Example• 4F%J listener foo.bar• 4F%J listener foo.bar.bar;8< dura"les<conf  – !his $le de$nes static durable subscribers. – !he $le consists of lines with either of these formats1topic(name durable(nameProuteQ

Page 83: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 83/86

PclientidZidQPnolocalQPselectorZ5sel5Q – Exampletopic d/ametopic d/ame clientidZmyId,nonlocaltopic; d/ame; selectorZ5urgency in "+high,+medium+#5

6ault Tolerance• Kou can arrange !I)' Enterprise %essage Service servers for fault(tolerantoperation by con$guring a pair of serversUone primary and one backup.• !he primary server accepts client connections, and interacts with clients todeliver messages. If the primary server fails, the backup server resumesoperationin its place.

• fault(tolerant servers must have access to shared state, which consists of information about client connections and persistent messages. !his informationenables the backup server to properly assume responsibility for thoseconnections and messages.

• !o prevent the backup serverfrom assuming the role of theprimary server, theprimary server locks the sharedstate during normal operation.If the primaryserver fails, the lock is released,and the backup server canobtain the lock.

• 9hen a primary server fails, its backup server assumes the status of theprimaryserver and resumes operation. )efore becoming the new primary server, thebackup server re(reads all of its con$guration $les.• * backup server detects a failure of the primary in either of two ways1 – 0eart$eat Failure U !he primary server sends heartbeat messages to thebackup server to indicate that it is still operating. 9hen a network failurestops the servers from communicating with each other, the backup server

Page 84: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 84/86

detects the interruption in the steady stream of heartbeats. – Connection Failure U !he backup server can detect the failure of its !connection with the primary server. 9hen the primary process terminatesunexpectedly, the backup server detects the broken connection.• 9hen a backup server ")# detects the failure of the primary server "*#, then )attempts to assume the role of primary server. 0irst, ) obtains the lock on thecurrent shared state. 9hen ) can access this information, it becomes the newprimary server.• 9hen ) becomes the new primary server, * can restart as a backup server, sothat the two servers exchange roles.• lients of * that are con$gured to failover to backup server ) automaticallytransfer to ) when it becomes the new primary server. ) reads the client+scurrentstate from the shared storage to deliver any persistent messages to the client.• !o receive noti$cation, Aava client programs set the system propertytibco.tib7ms.ft.switch.exception to any value, and de$ne an Exception3istener tohandle failover noti$cation.

• 9hen the primary server heartbeat stops, the backup server waits for itsactivation interval "elapsed time since it detected the most recent heartbeat#_thenthe backup server retrieves information from shared storage and assumes therole of primary server.• !he default heartbeat interval is ; seconds, and the default activation intervalisJ seconds. !he activation interval must be at least twice the heartbeat interval.)oth intervals are speci$ed in seconds. Kou can set these intervals in the servercon$guration $les.

Share state• !he primary server and backup server must share the same state. Server stateincludes three categories of information1 – persistent message data "for ueues and topics# – client connections of the primary server – metadata about message delivery• During a failover, the backup server re(reads all shared state information• !he tibemsd server creates three $les to store shared state. – eta<d" !his $le records durable subscribers, fault(tolerant connections,and other metadata. – sync.sgs<d" 9hen a ueue or topic de$nition "in a con$guration $le#speci$es that the destination is failsafe, then the server stores its messagesin this $le "using synchronous I6' calls#. – async.sgs<d" 9hen a ueue or topic de$nition "in a con$guration $le#does not specify that the destination is failsafe, then the server stores itsmessages in this $le "using asynchronous I6' calls#.

!on4guring servers• !o con$gure an E%S server as a fault(tolerant backup, set these parameters inits

Page 85: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 85/86

main con$guration $le "or on the server command line#1 – server Set this parameter to the same server name in the con$guration$les of both the primary server and the backup server. – ft5active In the con$guration $le of the primary server, set thisparameter to the :43 of the backup server. In the con$guration $le of thebackup server, set this parameter to the :43 of the primary server.• 0or example, you have two E%S Servers "Server and Server # that arenamed5E%S(SE4FE45 and are to use a password of 5mySecret.5 !o set the user namesand passwords, start the E%S *dministration !ool on each server, and do thefollowing. – 0rom the active "Server #, enter1set server pass&ordHySecretcreate user EMS.SE,+E, pass&ordHySecret – 0rom the backup "Server #, enter1• set server pass&ordHySecret• create user EMS.SE,+E, pass&ordHySecret

 – 0rom the active "Server #, enter1set server authori0ationHena"led – 0rom the backup "Server #, enter1set server authori0ationHena"led

!on4guring clients• !o enable a client to reconnect, you must specify the :43s of both serverswhencreating a connection. Specify multiple servers as a comma(separated list of :43s. )oth :43s must use the same protocol "either tcp or ssl#.server:rl Z tcp166serverJ1V, tcp166server1V;RR• :se the !ib7msonnection0actory ob7ect+s

• set4econn*ttemptount"#, set4econn*ttemptDelay"#, and• set4econn*ttempt!imeout"# methods to establish new reconnection failureparameters1 – factory.set4econn*ttemptount"J#_ – factory.set4econn*ttemptDelay"JJJ#_ – factory.set4econn*ttempt!imeout"JJJ#_

,outes !I)' Enterprise %essage Service servers can route messages to other servers. – Topic messages can travel one hop or multiple hops "from the $rst server#. – -ueue messages can travel only one hop to the home ueue, and one hopfrom the home ueue.

• Each route connects two !I)' Enterprise %essage Service servers.• Each route forwards messages between corresponding destinations "that is,global topics with the same name, or explicitly routed ueues# on its twoservers.• 4outes are bidirectional_ that is, each server in the pair forwards messagesalongthe route to the other server.

Page 86: Pavan Notes

7/21/2019 Pavan Notes

http://slidepdf.com/reader/full/pavan-notes 86/86

Rendezvous

Original and proprietary MOM solution from TIBCO.

This is based on a software component called

!ende"#ous $aemon% or !&$. The !&$s are typically

deployed on each node of a networ' to form a peer to peer 

architecture. They communicate with each other using

($). This ma'es up the bus%.