7
An Enterprise Service Bus (ESB) is used to provision or mediate services in a corporate network. It acts as middleware, handling the flow of data between applications. With an ESB, therefore, there is no need to define dedicated communication interfaces between individual applications. Instead, all applications communicate with the bus, which means they have a common, standardized data exchange hub. An ESB is usually deployed within a modular Service Oriented Architecture (SOA). In this type of environment, it can handle data communication between a variety of systems such as the customer relationship management, accounting and supply chain management modules. It processes queries from a number of different sources, including business applications, mobile devices, partners and Web browsers. For this, it utilizes a wide array of different services, such as Web portals, Web services or file servers. An ESB makes light work of system integration since there is no need to create custom scripts. So more time is spent making decisions instead of integrating systems. ESBs have been around for a number of years now. Solutions like IBM WebSphere, Oracle Fusion and webMethods from Software AG all deliver ESB functionality. These products are highly complex, however, and are best suited to largescale IT infrastructures. Up to now, ESBs have rarely been deployed in small to mediumsized networks. This is where Talend’s ESB offering comes in. As mentioned above, the product is based on open source solutions, making it both highly scalable and relatively uncomplicated. As such, it is a viable option for environments that would previously have been considered too small for an ESB. We tested: Talend ESB 5.2.1 Enterprise Service Bus Dr. Götz Güttich Talend Enterprise Service Bus 5.2.1 is an open source, modular solution that allows enterprises to integrate existing or new applications into their IT environment. In our test lab, we installed, configured and worked with ESB to see how it performed in real time. 1

Enterprise Service Bus · An Enterprise Service Bus (ESB) is used to provision or mediate services in a corporate network. It acts as middleware, handling the flow of data between

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

An Enterprise Service Bus (ESB)is used to provision or mediateservices in a corporate network.It acts as middleware, handlingthe flow of data betweenapplications. With an ESB,therefore, there is no need todefine dedicated communicationinterfaces between individualapplications. Instead, allapplications communicate withthe bus, which means they have acommon, standardized dataexchange hub.An ESB is usually deployedwithin a modular ServiceOriented Architecture (SOA). Inthis type of environment, it canhandle data communicationbetween a variety of systemssuch as the customer relationshipmanagement, accounting andsupply chain managementmodules. It processes queriesfrom a number of differentsources, including businessapplications, mobile devices,partners and Web browsers. Forthis, it utilizes a wide array ofdifferent services, such as Webportals, Web services or fileservers. An ESB makes lightwork of system integration sincethere is no need to create customscripts. So more time is spentmaking decisions instead ofintegrating systems. ESBs havebeen around for a number of

years now. Solutions like IBMWebSphere, Oracle Fusion andwebMethods from Software AGall deliver ESB functionality.These products are highlycomplex, however, and are bestsuited to large­scale ITinfrastructures. Up to now, ESBshave rarely been deployed insmall­ to medium­sized

networks. This is where Talend’sESB offering comes in. Asmentioned above, the product isbased on open source solutions,making it both highly scalableand relatively uncomplicated. Assuch, it is a viable option forenvironments that wouldpreviously have been consideredtoo small for an ESB.

We tested: Talend ESB 5.2.1

Enterprise Service BusDr. Götz Güttich

Talend Enterprise Service Bus 5.2.1 is an open source, modular solution that allowsenterprises to integrate existing or new applications into their IT environment.In our test lab, we installed, configured and worked with ESBto see how it performed in real time.

1

Closer look at Talend ESBTalend ESB combines anEclipse­based toolingenvironment with messaging,Web services, intelligent routingand data transformation. Talendenables developers to easily build

Web and data services to quicklyintegrate heterogeneous ITenvironments, both on premises,across companies and in thecloud. The services can also bere­used across multipleapplications for maximumefficiency. On top of this, TalendESB comes with failover andload balancing functions.The Eclipse­based toolingenvironment allows developersto build, compile, test and deployJava Web services, RESTapplications, data services andmessaging routes from a singleinterface. In addition, developerscan design integration solutionsbased on Enterprise Integration

Patterns (EIPs). EIPs are standardtemplates used to addresscommon integration needs.Talend’s developmentenvironment provides graphicalpalettes of component and

connector icons. To create newsoftware, all developers have todo is drag the palette icons theyrequire to their workspace andthen define the associatedparameters. In all, the Talendlibrary has over 450 connectorssupporting practically all types ofsources and targets for dataintegration, data migration anddata synchronization. Theseinclude files, databases, big datasolutions and more. It is evenpossible to insert custom code, ifrequired. We will describe ourexperience of creating softwarecomponents later on.Talend ESB has a centralizeddeployment console called the

Talend Administration Center. Itspeeds deployments andupgrades, allowingadministrators to rapidly respondto integration requests.Application and data serviceevents are easily monitored withdrill­down capabilities intoindividual service statistics forin­depth analysis of inter­processservice activity.Talend ESB is available in threedifferent versions. The StandardEdition is an open source version,the capabilities of which arelimited to creating and usingservices. Talend Open Studio forESB includes the Eclipse­baseddevelopment environment.Talend Enterprise ESB – thesolution we used in our test –also has various managementfunctions like a developmentenvironment for multiple users. Acomparison of the differentversions can be found athttp://talend.com/products/esb.Technical backgroundinformationCertain Talend ESB componentsare built on Apache. Webservices, for instance, are basedon the Apache CXF framework,which can be used to createSOAP and REST Web services.For service integration, however,Apache Camel is used. This rule­based routing and conversionengine uses the EIPs mentionedabove and is programmed withJava. The runtime container isbased on Apache Karaf.The testFor the test, we installed TalendESB 5.2.1 on a Windows 8 testPC with 8 GByte RAM, 750GByte hard disk and an IntelCore Quad processor with 2.4

2

The Talend Administration Center is a centralized deployment console tomanage the ESB solution

GHz clock speed. The Javaenvironment used was Version 7Update 17 – the most recent oneavailable at the time of the test.Following installation, wecreated a simple “Hello” programwith Talend’s Eclipse­baseddevelopment tool. When users

send their name to this programvia the ESB, it returns the string“Hello “{Name of user}”!”. Wethen made the program availablevia the bus.After that, we submitted adatabase query via the ESB –again using the developmentenvironment. Finally, weintegrated an existing applicationwith the ESB. For this, we usedTalend’s free demo car rentalapplication supportingreservation and customermanagement functionality. It canbe used for all test scenarios oncethe ESB has been installed.InstallationTalend ESB 5.2.1 is supplied inthe form of an installation fileand a depot file, which containsall the necessary components. Toinstall the software, you simplysave both files to the samedirectory, set the JAVA_HOME

variable so that the installer canfind the Java environmentinstalled on the system, and startthe setup routine. You will thensee a wizard displaying thelicense information. It will firstask for the license file, and thenyou have to specify the

components you wish to installand their target location. Forclient configurations, forexample, it often makes sense toinstall just the developmentenvironment. For our test,however, we decided to install allthe components. Administratorsalso have the option of setting upthe server components(Administration Center,Command Line, Job Server andRuntime) as system services or asproducts to be started manually.To complete the setup wizard,you are asked to configure thedatabase for the TalendAdministration Center and definethe SVN server and similarsettings.Getting startedOnce installation was complete,we started the Web servermanually using Tomcat and theAdministration Center plus Karafas the container. We did this

because we had not set these upas system services in our testenvironment. Then, with ourbrowser, we went to the pagehttp://localhost:8080/org.talend.administrator/. We logged in hereusing the default login [email protected]/admin.For security reasons, the defaultaccount only gives youauthorization to manage useraccounts. This is how Talendensures that no standard logindata can be used during day­to­day use of the system, and wefound this a very sensibleprecaution. We completed thefirst step of creating anadministrator account, logged outof the system and then logged inagain as administrator.The administration toolThe Talend AdministrationCenter uses a transparent treestructure to give users fast accessto the configuration items theyare looking for. Theadministration tool allows you todefine settings for projects andusers, view the Dashboard withconnections and job analyses,monitor services and manage theservers. As we first needed aserver for our test, we createdone at this point. To do this, wedefined the communication ports,gave the server a name, specifiedthe host and the timeout, etc. Asan option, communication withthe server can also be secured viaSSL. Once we had defined theserver, it appeared on screen,immediately displaying its statusand the current configurationdetails. Administrators have theoption of switching to the ApacheKaraf Web Console by clickingthe Admin Server button if theyneed to. Talend ESB uses ApacheArchiva as its repositorymanagement software. When we

3

Our Hello program and the icons we used

tried it out, we noticed that theinstallation routine read the pathto the Java environment duringsetup and then entered it in theArchiva file wrapper.conf. If youupdate your Java installation andthe path changes (for example, ifyou update from Java 7 Update15 to Java 7 Update 17), it is notenough to reset theJAVA_HOME variable becausethe wrapper.conf entry will stillbe there. If you then try to startArchiva, the system will respondwith an error message. The onlyway to get the system up andrunning again is to manuallychange the path in thewrapper.conf file. A workaroundsolution for this problem wouldbe to always use the same fixedpath to the Java environment.Talend intends to fix thisproblem in one of its upcomingsoftware releases.The Hello applicationFor the next part of our test, wecreated the Hello application. Westarted by opening the Talenddevelopment environment andcreated a new project.We used the icons mentionedearlier to set up the Helloprogram. Specific functions arerepresented by icons in thedevelopment studio. They aregrouped in a palette on the right­hand side under categories suchas Big Data, BusinessIntelligence, Cloud, File,Databases, ESB, Custom Code,and so on. When the developerdrags an icon from one of thesegroups and drops it on theirworkspace, the TalendDevelopment Studio generatesthe code automatically in thebackground, so all the user has todo is define the parameters forthe icons.

Let us assume that a user wantsto define an Access database asthe data source. All they have todo is go to the folderDatabases/Access in the paletteand drag the AccessInputcomponent to the workspace.Then it’s just a matter of enteringdetails like the Access version,the path to the database, the user

name, etc. in the component’sconfiguration dialog boxes. Thiscompletes the configurationprocess for the data source andthe database is now ready to beused. In the next step, the usercan for example select or re­arrange particular databaseentries using a mapping function.To do this, they just have to draga mapping icon to the workspace,define the mapping function andcreate a link between the datasource and the mapping icon (bydrawing a line between the twoicons with the right mousebutton).To finish off, the user just needsto generate a data output (againusing an icon) to enable datatransformation. Since many ofthe functions are pre­defined,

nearly every task can beaccomplished using icons. Thisreduces manual programming tozero in most cases. As such, evenusers with little or outdatedprogramming expertise will findthe solution easy to use.For our Hello program, we used asimilar approach to that described

for the data transformation demoprogram. Our objective was notjust to transform data, but tocommunicate with the ESB. Theprogram setup was similar,however. First of all, we created anew service called Hello andimported the WDSL schema.This ensured that the servicemetadata was available in ourrepository so we could reuse it inother components. We then addeda new job to the service. Thisopened the workspace, whichalready contained two icons. Thefirst was an ESBProviderRequesticon. This receives servicerequests from the bus andforwards them as appropriate.The second icon was anESBProviderResponsecomponent, which sends theresponse to the bus. Next, we

4

Once a service has been compiled and made available, the development studiodisplays the URL of the service in the workspace (here:http://localhost:8090/services/Hello.World)

dragged an XMLMap icon fromthe XML folder in the palette andadded it to our project. We addeda schema for the transferred data(using the WDSL schema datawe had previously saved in ourrepository) and modified the dataflow via the mapping function sothat every user who sends theirname to the Hello service via theESB receives the response “Hello“{Name of user}”!”. All we hadto do was establish a linkbetween the request and responsecomponents with the mouse andedit the response text so that“Hello “ is inserted before theinput and a “!” string after theinput. By now we had completedour program, and so were able tocompile it and make it availableusing the Execute command inthe configuration toolbar beneaththe workspace.To use the Hello service, we hadto create software that wouldsend the relevant names to theESB. We did this by creating anew job and adding aFixedFlowInput icon from thepalette. We again added anXMLMap component, plus oneESBConsumer and two LogRowcomponents. TheFixedFlowInput routinegenerated the input. We couldinstead have taken a database orsimilar, but to keep the demoprogram simple, we decided todefine a static table with threenames which we created directlyduring the input iconconfiguration process.The XMLMap component hadthe job of forwarding the input ofthe input routine to the service.We imported the serviceinformation within the mappingfunction from the repository – ithad been saved there when the

service was defined – and linkedit with the input from the namestable using drag­and­drop.The ESBConsumer function thencalled the service and deliveredthe response. We had to enter theURL of the service address of ourpreviously created Hello programin the configuration options. Thestudio provides this as outputafter compiling the software andmaking it available in theworkspace. So that we could seesomething on the screen, we usedthe two LogRow componentsmentioned earlier. One of themaccepted the response and the

second was used as thedestination for any errormessages.Once we had started the job, thethree names we had entered inthe table and the associated Hellomessages appeared in the outputspace of the developmentenvironment. The programtherefore worked as expected.Based on our previousexperiences, we concluded thatthe software development withTalend ESB is a smooth and easyprocess for IT professionals inenterprise networks.

Deploying Hello program in aTalend runtime containerOnce we had verified that oursoftware worked correctly, we setabout exporting the program tothe Talend runtime container sowe could use it independently ofthe development studio. Weright­clicked our Hello serviceand selected the command ExportService.A Save as dialog then appeared.We saved the software directly tothe Deploy subdirectory of theTalend runtime container(directory \esb\container\deploy)to make it available for

immediate deployment. When theexport was completed, our Helloservice was available in thecontainer.To test its functionality again, weused the same demo program asbefore. All we had to do waschange the port in the serviceURL from the test port of thestudio (8090) to the default portof the Talend container (8040) inthe configuration dialog of theESBConsumer function. We didthis to make sure that the systemcommunicated with the rightservice. We started the program

5

Service for checking book titles

again and everything worked justlike before, except now we couldalso view the software output inthe output window of thecontainer.RoutingAs mentioned earlier, TalendESB includes a powerful routingfunction. This can be used to

distribute inputs to variousinstances of a service, generate avariety of outputs or filter outduplicate data.It also supports different softwareversions used by various partnersto send data specifically adaptedto the version in question.However, a detailed descriptionof this functionality would gobeyond the scope of this test. Wewill just mention that routes canbe created using the mediationcapability of the developmentstudio and they can beconfigured using icons like in thesoftware development process.Routes can also be exported anddeployed in exactly the sameway as services. Routing isdescribed in great detail in thecomprehensive and helpfuldocumentation found on Talend’swebsite. This can be downloadedfor free, as can the two open

source versions of the ESBsoftware.Data queriesAfter completing the Hellosoftware test, we turned ourattention to the data query job.Here the user is free to chooseany data source – from adatabase to a small file. For ourtest program, we used a CSV filecontaining a number of booktitles and the names of theauthors.For communication with the bus,we again used a job with theESBProviderRequest andESBProviderResponse icons.Mapping was again handled byan XMLMap component. For thisjob, we also added our datasource to the program, andconnected it to the software usinga File/Output FileInputDelimitedicon. We then configured themapping function so that theprogram compared a book titlequery received from the bus withthe title column in the CSV fileand returned the title to the bus ifa hit was found. This completedthe program so it was ready fornetwork access. Incidentally, theprogram we used to send thetitles to the bus in the test was aspecially adapted version of theprogram we had previously usedto send the names to our Helloservice.Rent­a­Car demoTalend provides a car rentaldemo application for the ESB.This software is programmed tomanage customers and vehiclesand make reservations forspecific dates. The code for theapplication is available in thedevelopment studio, but there isalso the option of integrating thesoftware as a complete

application in the runtimeenvironment of the ESB. In thistest, we chose the latter optionsince we had already testedservice provisioning via thestudio.The data for the demo applicationis located in the Talendinstallation folder underesb\examples\talend\tesb\rent­a­car. Apache Maven must beinstalled on the computer usedfor the software build process. Ifthis is the case, the program canbe installed by executing the mvnclean install command in theRent­a­Car directory.When we had completed thisstep, we set about deploying thedemo services in the Talendruntime container. This step isexecuted via the OSGi commandline and is completed afterentering two commands. Thesame applies to deployment ofthe demo client application. Weencountered no hitcheswhatsoever when testing theintegration of an application inTalend ESB.Testing the Rent­a­Car demoOnce we had installed the Rent­a­Car demo, we launched thegraphical user interface and usedit to simulate a customercompleting a rental transaction.To do this, we selected acustomer account from thecustomer database when the toolbooted and entered the rental dateand return date. When we clickedFind, the application calledCRMService via the ESB to findthe customer data and customerstatus information. The softwarethen displayed a list of availablevehicles to choose from. Afterthat, we clicked Reserve. Theapplication then invoked

6

The graphical user interface of theRent­a­Car demo

ReservationService to forwardthe query. Simultaneously, the

program showed us aconfirmation message with thereservation details.In addition to a graphicalapplication, the demo alsoincludes a command lineapplication, allowing the user tosearch the databases and makereservations. What’s more, thedemo can be extended with aService Locator component and aService Activity Monitoring(SAM) function.The Service Locator publiclyregisters the service endpoints.This means that serviceconsumers are able to locateendpoints during runtime,without having to know whereexactly the endpoint is running.In addition, the Service Locatorcomponent allows serviceproviders to register or deregistertheir endpoints automatically andthus make them available tousers on demand.The function of the SAM,however, is to monitor servicecalls. The data collected can beused to compile usage statisticsand pinpoint faults. Users canalso run the demo in two

different containers and simulateserver failover. In addition, thedemo shows how the Webservices security feature (WSSecurity) protects Web servicesand how repository managementsoftware works with the demo.All of these functions go beyondthe scope of this test. They can,however, be tried out with thefree versions of the software,which are available to downloadfrom the Talend website. Theyare also comprehensivelydescribed in the ESB GettingStarted Guide. We wouldtherefore recommend that youinstall ESB and explore itsperformance and functionality foryourself.SummaryTalend ESB 5.2.1 is relativelyeasy to get up and running and tomanage. We installed thesoftware in a matter of minutes,

and were instantly impressedwith both the clear layout andrange of capabilities of thegraphical administration console.

The system can therefore beconfigured and managed withease. But the main highlight ofESB has to be its developmentenvironment and icons, allowingusers with little or even noprogramming expertise to easilycreate data services and routes.The Talend ESB developmentenvironment does more than justfacilitate software development,however. It also provides userswith solution integration, testingand deployment support. Theother components of the ESBsolution, like the Web servicesstack, load balancing and highavailability features, containersand a repository, are equallyimpressive. All of this makesTalend ESB an excellent choicefor enterprises of all sizesthinking about introducing aservice bus, but reluctant to gowith a product from one of thebig players such as IBM or

Oracle. This mid­sized segmentopens up a completely newmarket for Enterprise ServiceBuses.

The list of available rental cars

The repository with Archiva

7