Saturday, June 14, 2008

Weblogic - Aqualogic Service Bus - EAI - Part 2

I hope you are familiar with ALSB Admin console. If you don't have Weblogic ALSB please visit my previous blog for seeting up ALSB on your window machine.

I assume that you have WL server running and you can open Admin console of ALSB (http://localhost:7001/sbconsole/) in a web browser. Please note, if you are installing WL10.0 bundle, the port number for ALSB may be 7021.

How ALSB works:

In a nutshell, ALSB acts as a proxy between client and service (any service lives in server). The proxying is done by creating a Proxy Service and Business Service in ALSB. I hope the below diagram could help you understand the "request" and "respose" flow.



As diagram illustrates, ALSB stands between client and service / server to route the requests and responses. Here, I have shown 2 proxy service and 2 business service. However, a project could have 'n' number of proxy services and business services. If you happen to have more proxy and business services, you may want to touch base with customer support folks regaring performs impact. I would suggest to have more than one ALSB instances to avoid any performance bottle necks. Few jargons definitions are below.

Project in ALSB.

A project is nothing but a group of proxy and business services. You may like to group proxy and business services of billing services in one project and a separate group for order management services.


Proxy Service:


You have guessed it! Proxy service is contacted by the client to eventually get response from target service. ALSB allows developer or ALSB administrator to modify any request data and metadata through Admin console configuration. For example, consider a case, where you have web service, is contacted by two different vendors (clients) with two different XML requests. You don't need to write code to understand both request formats. Instead, ALSB Proxy service could be configured using XQuery to convert the request XML to desirable / server understandable format. This means easy addition of new clients with any changes to Target service, which evetually facilitate easy integration of systems.

Using XQuery programming, literally, all request data or parameters could be modified. If also allows to write logics to decide which business services to contact in runtime. This is one of the key feature of an ESB.

Business Service:

Business service represents target service's URL. Business services are contacted by proxy service to route the requests to target service. If there are more than one target service (multiple instances of same service for scalability), all the URL can be added to single business service. ALSB also provides features for load-balancing of services. Business service also helps to fail-over services. Meaning, if one target service is down, Business service routes the requests to another service when there is an outage encountered by ALSB. It means high availability of your services.

Setting up ALSB:

As mentioned earlier, business services (BS) and proxy services(PS) are grouped under ALSB projects. So, before we create PS, BS, lets create a new project.

1. Open Admin console of ALSB. http://localhost:7001 or http://localhost:7021

2. Go to "Project Explorer" on left panel.

3. Once the Enter project name in text box in "Enter New Project Name:" and click on "Add Project". If the text box is not enabled, please click on "Edit" on top left panel.

4. Project entry is added to the projects table just below that. Click on your project.

5. Select a "Resource" type from drop down options. First we create PS, So, select Proxy service from the option. On selecting PS option, next page should be automatically loaded.

6. Provide, proxy name and make sure you select "Any XML service option. Click on Next>>. As you can see, here, ALSB can support other services like Messaging, WSDL and SOAP services.

7. Select protocol as "http" and leave rest of the options with default values. Click on Next>> to save the settings for proxy service.

Now, you can new proxy serive is added to "Resources" table.

8. Next, create a business service by selecting "Business Service" in the drop down options.

9. Follow the setting wizard. Provide BS name and type. Please make sure you select same type as PS. Click on Next>>.

10. on next page, we have to some important configuration for BS. Select protocol as http and Load balancing Algorithm as round-robin. Provide End point URL of Target service. In our case any website url. Since other options are not much important at this level, please go with default values and click on Next>>.

11. Since, we are dealing with website, select HTTP request as "GET" and leave rest of the options with default values. Go to next page to save the settings.

Now that we have created both proxy service and business service, you might be wondering! "Wait a second, are we not supposed to hook up proxy service with business service???" Yes!! We should!. That's next.

I would recommend to save the configurations so far that we have done by hitting "Activate" button on left top panel. Please note, in ASLB console each time as you modify setting, they are created as sessions. Later, if you find that one of the setting needs to be reverted back to original setting. You can go to "View All Sessions" and clicking on appropriate icon under Options.

if you clicked on Activate button, Click on "Create" again to create a new session.

Configure Proxy Service:

1. Click on your project under project explorer section. In Resources section, click on "Edit Message Flow" icon ( the one is activated) under "Actions" column.

2. On the next page right click on proxy service cover and select "Add Route". Here, as you can see, you can "Add pipeline pair" to add request and response pipelines. Under request and response pipelines, you could "Add Stage" to perform logic operations.

3. So, we have added new Route, Right click on RouteNode1 to select "Edit Route" to modify setting. You can also modify the name of this node to a meaning ful name by selecting "Edit name and Comments".

4. On Edit Route page, click on "Add an Action" --> Communication --> Routing
5. Now, you get new node added to this page. Click on "*" to select which business service should be contacted by this PS. You can also add other Request and Response Actions like modifying header or to perform some logic operations or Log the event to server log file for reporting purposes.

6. "Save All" this settings and Activate the session to be effective.

Here, PS is hooked up with BS. You can contact PS through your browser by typing http://localhost:7001/proxyServiceName
The response should be eventually from the target website URL. Hope you are getting a proper response. You can further explorer to add stage (as mentioned in step 2) and modify request data and headers.

You can also refer below reference documents from BEA site for more information.

References:

1. ALSB tutorial from BEA site.

2. User guide for developer and users from BEA.

3. Overview and ALSB architecture.

4. BEA forum for ALSB.

3 comments:

Funny said...

A very helpful information in brief

John Alert said...

I have read your blog its very attractive and impressive. I like it your blog.

Java Training in Chennai Core Java Training in Chennai Core Java Training in Chennai

Java Online Training Java Online Training Core Java 8 Training in Chennai Java 8 Training in Chennai JavaEE Training in Chennai Java EE Training in Chennai

Priya Gupta said...

Very informative post for me as I am always looking for new content that can help me and my knowledge grow better. Gr8…Keep it up!!!! computer courses in punjab