• No results found

Enterprise Service Bus

N/A
N/A
Protected

Academic year: 2021

Share "Enterprise Service Bus"

Copied!
7
0
0

Loading.... (view fulltext now)

Full text

(1)

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 large­scale IT

infrastructures. Up to now, ESBs have rarely been deployed in small­ to medium­sized

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.

(2)

Closer look at Talend ESB Talend ESB combines an Eclipse­based tooling

environment with messaging, Web services, intelligent routing and data transformation. Talend enables developers to easily build

Web and data services to quickly integrate heterogeneous IT environments, both on premises, across companies and in the cloud. The services can also be re­used across multiple

applications for maximum efficiency. On top of this, Talend ESB comes with failover and load balancing functions.

The Eclipse­based tooling environment allows developers to build, compile, test and deploy Java Web services, REST

applications, data services and messaging routes from a single interface. In addition, developers can design integration solutions based on Enterprise Integration

Patterns (EIPs). EIPs are standard templates used to address

common integration needs.

Talend’s development

environment provides graphical palettes of component and

connector icons. To create new software, all developers have to do is drag the palette icons they require to their workspace and then define the associated parameters. In all, the Talend library has over 450 connectors supporting practically all types of sources and targets for data integration, data migration and data synchronization. These include files, databases, big data solutions and more. It is even possible to insert custom code, if required. We will describe our experience of creating software components later on.

Talend ESB has a centralized deployment console called the

Talend Administration Center. It speeds deployments and

upgrades, allowing

administrators to rapidly respond to integration requests.

Application and data service events are easily monitored with drill­down capabilities into individual service statistics for in­depth analysis of inter­process service activity.

Talend ESB is available in three different versions. The Standard Edition is an open source version, the capabilities of which are limited to creating and using services. Talend Open Studio for ESB includes the Eclipse­based development environment.

Talend Enterprise ESB – the solution we used in our test – also has various management functions like a development environment for multiple users. A comparison of the different versions can be found at http://talend.com/products/esb.

Technical background information

Certain Talend ESB components are built on Apache. Web

services, for instance, are based on the Apache CXF framework, which can be used to create SOAP and REST Web services.

For service integration, however, Apache Camel is used. This rule­

based routing and conversion engine uses the EIPs mentioned above and is programmed with Java. The runtime container is based on Apache Karaf.

The test

For the test, we installed Talend ESB 5.2.1 on a Windows 8 test PC with 8 GByte RAM, 750 GByte hard disk and an Intel Core Quad processor with 2.4

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

(3)

GHz clock speed. The Java environment used was Version 7 Update 17 – the most recent one available at the time of the test.

Following installation, we

created a simple “Hello” program with Talend’s Eclipse­based development tool. When users

send their name to this program via the ESB, it returns the string

“Hello “{Name of user}”!”. We then made the program available via the bus.

After that, we submitted a database query via the ESB – again using the development environment. Finally, we

integrated an existing application with the ESB. For this, we used Talend’s free demo car rental application supporting reservation and customer

management functionality. It can be used for all test scenarios once the ESB has been installed.

Installation

Talend ESB 5.2.1 is supplied in the form of an installation file and a depot file, which contains all the necessary components. To install the software, you simply save both files to the same directory, set the JAVA_HOME

variable so that the installer can find the Java environment installed on the system, and start the setup routine. You will then see a wizard displaying the license information. It will first ask for the license file, and then you have to specify the

components you wish to install and their target location. For client configurations, for

example, it often makes sense to install just the development environment. For our test,

however, we decided to install all the components. Administrators also have the option of setting up the server components

(Administration Center,

Command Line, Job Server and Runtime) as system services or as products to be started manually.

To complete the setup wizard, you are asked to configure the database for the Talend

Administration Center and define the SVN server and similar settings.

Getting started

Once installation was complete, we started the Web server manually using Tomcat and the Administration Center plus Karaf as the container. We did this

because we had not set these up as system services in our test environment. Then, with our browser, we went to the page http://localhost:8080/org.talend.a dministrator/. We logged in here using the default login data [email protected]/admin.

For security reasons, the default account only gives you

authorization to manage user accounts. This is how Talend ensures that no standard login data can be used during day­to­

day use of the system, and we found this a very sensible precaution. We completed the first step of creating an

administrator account, logged out of the system and then logged in again as administrator.

The administration tool The Talend Administration Center uses a transparent tree structure to give users fast access to the configuration items they are looking for. The

administration tool allows you to define settings for projects and users, view the Dashboard with connections and job analyses, monitor services and manage the servers. As we first needed a server for our test, we created one at this point. To do this, we defined the communication ports, gave the server a name, specified the host and the timeout, etc. As an option, communication with the server can also be secured via SSL. Once we had defined the server, it appeared on screen, immediately displaying its status and the current configuration details. Administrators have the option of switching to the Apache Karaf Web Console by clicking the Admin Server button if they need to. Talend ESB uses Apache Archiva as its repository

management software. When we

Our Hello program and the icons we used

(4)

tried it out, we noticed that the installation routine read the path to the Java environment during setup and then entered it in the Archiva file wrapper.conf. If you update your Java installation and the path changes (for example, if you update from Java 7 Update 15 to Java 7 Update 17), it is not enough to reset the

JAVA_HOME variable because the wrapper.conf entry will still be there. If you then try to start Archiva, the system will respond with an error message. The only way to get the system up and running again is to manually change the path in the

wrapper.conf file. A workaround solution for this problem would be to always use the same fixed path to the Java environment.

Talend intends to fix this problem in one of its upcoming software releases.

The Hello application

For the next part of our test, we created the Hello application. We started by opening the Talend development environment and created a new project.

We used the icons mentioned earlier to set up the Hello program. Specific functions are represented by icons in the development studio. They are grouped in a palette on the right­

hand side under categories such as Big Data, Business

Intelligence, Cloud, File, Databases, ESB, Custom Code, and so on. When the developer drags an icon from one of these groups and drops it on their workspace, the Talend

Development Studio generates the code automatically in the background, so all the user has to do is define the parameters for the icons.

Let us assume that a user wants to define an Access database as the data source. All they have to do is go to the folder

Databases/Access in the palette and drag the AccessInput component to the workspace.

Then it’s just a matter of entering details like the Access version, the path to the database, the user

name, etc. in the component’s configuration dialog boxes. This completes the configuration process for the data source and the database is now ready to be used. In the next step, the user can for example select or re­

arrange particular database entries using a mapping function.

To do this, they just have to drag a mapping icon to the workspace, define the mapping function and create a link between the data source and the mapping icon (by drawing a line between the two icons with the right mouse button).

To finish off, the user just needs to generate a data output (again using an icon) to enable data transformation. Since many of the functions are pre­defined,

nearly every task can be

accomplished using icons. This reduces manual programming to zero in most cases. As such, even users with little or outdated programming expertise will find the solution easy to use.

For our Hello program, we used a similar approach to that described

for the data transformation demo program. Our objective was not just to transform data, but to communicate with the ESB. The program setup was similar, however. First of all, we created a new service called Hello and imported the WDSL schema.

This ensured that the service metadata was available in our repository so we could reuse it in other components. We then added a new job to the service. This opened the workspace, which already contained two icons. The first was an ESBProviderRequest icon. This receives service requests from the bus and forwards them as appropriate.

The second icon was an ESBProviderResponse component, which sends the response to the bus. Next, we

Once a service has been compiled and made available, the development studio displays the URL of the service in the workspace (here:

http://localhost:8090/services/Hello.World)

(5)

dragged an XMLMap icon from the XML folder in the palette and added it to our project. We added a schema for the transferred data (using the WDSL schema data we had previously saved in our repository) and modified the data flow via the mapping function so that every user who sends their name to the Hello service via the ESB receives the response “Hello

“{Name of user}”!”. All we had to do was establish a link

between the request and response components with the mouse and edit the response text so that

“Hello “ is inserted before the input and a “!” string after the input. By now we had completed our program, and so were able to compile it and make it available using the Execute command in the configuration toolbar beneath the workspace.

To use the Hello service, we had to create software that would send the relevant names to the ESB. We did this by creating a new job and adding a

FixedFlowInput icon from the palette. We again added an XMLMap component, plus one ESBConsumer and two LogRow components. The

FixedFlowInput routine generated the input. We could instead have taken a database or similar, but to keep the demo program simple, we decided to define a static table with three names which we created directly during the input icon

configuration process.

The XMLMap component had the job of forwarding the input of the input routine to the service.

We imported the service

information within the mapping function from the repository – it had been saved there when the

service was defined – and linked it with the input from the names table using drag­and­drop.

The ESBConsumer function then called the service and delivered the response. We had to enter the URL of the service address of our previously created Hello program in the configuration options. The studio provides this as output after compiling the software and making it available in the

workspace. So that we could see something on the screen, we used the two LogRow components mentioned earlier. One of them accepted the response and the

second was used as the destination for any error messages.

Once we had started the job, the three names we had entered in the table and the associated Hello messages appeared in the output space of the development environment. The program therefore worked as expected.

Based on our previous

experiences, we concluded that the software development with Talend ESB is a smooth and easy process for IT professionals in enterprise networks.

Deploying Hello program in a Talend runtime container Once we had verified that our software worked correctly, we set about exporting the program to the Talend runtime container so we could use it independently of the development studio. We right­clicked our Hello service and selected the command Export Service.

A Save as dialog then appeared.

We saved the software directly to the Deploy subdirectory of the Talend runtime container

(directory \esb\container\deploy) to make it available for

immediate deployment. When the export was completed, our Hello service was available in the container.

To test its functionality again, we used the same demo program as before. All we had to do was change the port in the service URL from the test port of the studio (8090) to the default port of the Talend container (8040) in the configuration dialog of the ESBConsumer function. We did this to make sure that the system communicated with the right service. We started the program

Service for checking book titles

(6)

again and everything worked just like before, except now we could also view the software output in the output window of the container.

Routing

As mentioned earlier, Talend ESB includes a powerful routing function. This can be used to

distribute inputs to various instances of a service, generate a variety of outputs or filter out duplicate data.

It also supports different software versions used by various partners to send data specifically adapted to the version in question.

However, a detailed description of this functionality would go beyond the scope of this test. We will just mention that routes can be created using the mediation capability of the development studio and they can be

configured using icons like in the software development process.

Routes can also be exported and deployed in exactly the same way as services. Routing is described in great detail in the comprehensive and helpful documentation found on Talend’s website. This can be downloaded for free, as can the two open

source versions of the ESB software.

Data queries

After completing the Hello software test, we turned our attention to the data query job.

Here the user is free to choose any data source – from a database to a small file. For our test program, we used a CSV file containing a number of book titles and the names of the authors.

For communication with the bus, we again used a job with the ESBProviderRequest and ESBProviderResponse icons.

Mapping was again handled by an XMLMap component. For this job, we also added our data source to the program, and connected it to the software using a File/Output FileInputDelimited icon. We then configured the mapping function so that the program compared a book title query received from the bus with the title column in the CSV file and returned the title to the bus if a hit was found. This completed the program so it was ready for network access. Incidentally, the program we used to send the titles to the bus in the test was a specially adapted version of the program we had previously used to send the names to our Hello service.

Rent­a­Car demo

Talend provides a car rental demo application for the ESB.

This software is programmed to manage customers and vehicles and make reservations for specific dates. The code for the application is available in the development studio, but there is also the option of integrating the software as a complete

application in the runtime environment of the ESB. In this test, we chose the latter option since we had already tested service provisioning via the studio.

The data for the demo application is located in the Talend

installation folder under

esb\examples\talend\tesb\rent­a­

car. Apache Maven must be installed on the computer used for the software build process. If this is the case, the program can be installed by executing the mvn clean install command in the Rent­a­Car directory.

When we had completed this step, we set about deploying the demo services in the Talend runtime container. This step is executed via the OSGi command line and is completed after entering two commands. The same applies to deployment of the demo client application. We encountered no hitches

whatsoever when testing the integration of an application in Talend ESB.

Testing the Rent­a­Car demo Once we had installed the Rent­

a­Car demo, we launched the graphical user interface and used it to simulate a customer

completing a rental transaction.

To do this, we selected a customer account from the customer database when the tool booted and entered the rental date and return date. When we clicked Find, the application called CRMService via the ESB to find the customer data and customer status information. The software then displayed a list of available vehicles to choose from. After that, we clicked Reserve. The application then invoked

The graphical user interface of the Rent­a­Car demo

(7)

ReservationService to forward the query. Simultaneously, the

program showed us a

confirmation message with the reservation details.

In addition to a graphical application, the demo also includes a command line

application, allowing the user to search the databases and make reservations. What’s more, the demo can be extended with a Service Locator component and a Service Activity Monitoring (SAM) function.

The Service Locator publicly registers the service endpoints.

This means that service consumers are able to locate endpoints during runtime, without having to know where exactly the endpoint is running.

In addition, the Service Locator component allows service

providers to register or deregister their endpoints automatically and thus make them available to users on demand.

The function of the SAM, however, is to monitor service calls. The data collected can be used to compile usage statistics and pinpoint faults. Users can also run the demo in two

different containers and simulate server failover. In addition, the demo shows how the Web services security feature (WS Security) protects Web services and how repository management software works with the demo.

All of these functions go beyond the scope of this test. They can, however, be tried out with the free versions of the software, which are available to download from the Talend website. They are also comprehensively described in the ESB Getting Started Guide. We would therefore recommend that you install ESB and explore its

performance and functionality for yourself.

Summary

Talend ESB 5.2.1 is relatively easy to get up and running and to manage. We installed the

software in a matter of minutes,

and were instantly impressed with both the clear layout and range of capabilities of the graphical administration console.

The system can therefore be configured and managed with ease. But the main highlight of ESB has to be its development environment and icons, allowing users with little or even no programming expertise to easily create data services and routes.

The Talend ESB development environment does more than just facilitate software development, however. It also provides users with solution integration, testing and deployment support. The other components of the ESB solution, like the Web services stack, load balancing and high availability features, containers and a repository, are equally impressive. All of this makes Talend ESB an excellent choice for enterprises of all sizes thinking about introducing a service bus, but reluctant to go with a product from one of the big players such as IBM or

Oracle. This mid­sized segment opens up a completely new market for Enterprise Service Buses.

The list of available rental cars

The repository with Archiva

References

Related documents

okortex meghatározott területeire hatnak. Ha folytatódnak a jelenlegi tendenciák, akkor.. az emberek a kormányzatok biztatása nélkül is elõ fognak állítani ilyen

This window appears only if you selected at least one set of members for design in the 1.1 General Data window (see Figure 2.2 , page 44 ) and selected the Equivalent Member Method

The JBoss Enterprise SOA Platform includes service- oriented architecture (SOA) open source middleware such as JBoss Enterprise Service Bus (ESB), JBoss jBPM, JBoss Rules and

Simulation models classified in the first two classes are used in our research on sport science simulations as well as in software components of the FootballAvatar project.. In the

Therefore, a classification of sellers, based on the total number of unique feedbacks (a surrogate measure for certainty regarding repetition of past behaviors), negative

Later i create multiple google all in the output folder, rename the very easy to drive account and we may not list?. Potential pdfs and your drive print all documents in folder you

flexible exchange rate system which does not need high international reserve accumulation and 141. economic crisis which causes perpetual domestic currency

** If a plan requires an individual to spend more than this amount on the deductible and other out-of-pocket expenses for covered medical expenses, it is not an HSA-qualified