JobServer SOA and Mule Integration

JobServer comes with built in support for Mule. JobServer can serve as your hub for accessing SOA services all across your network and the internet. JobServer can be used to both host Mule services or as a client to access Mule and other SOA services. For example, use JobServer to build a GWT rich client that can access Mule and other SOA services directly from the GWT GUI - no server side code needed! Also use JobServer as a Mule server instance from which to host Mule service implementations.

Support for Mule is option with JobServer, but JobServer is designed very Mule friendly and provides you with all the tools you need to run and manage a Mule environment. Specifically, JobServer supports Mule in serveral ways, including the following:

  1. GWT UniversalClient API - Web GUI client with access to Mule and SOA Services
  2. Using MuleClient API with Tasklets
  3. Deploy Mule Services in JobServer's workflow container
  4. Deploy Mule Services in JobServer's webserver

GWT UniversalClient API

GWT client applications can invoke Mule service endpoints using the SOAFaces UniversalClient API. This allows a GWT Weblet client application, deployed in JobServer, to request Mule services and pass/return POJO and JSON objects via a MuleClient like API. Behind the scense the GWT UniversalClient requests are proxed through an actual MuleClient API implemented in JobServer's WebServer. This allows GWT clients to directly request and communicate with Mule based SOA services. You can read more about UniversalClient here.

Using the UniversalClient allows you to build rich GWT clients in a Weblet that can access SOA services all across your network and the internet. It makes building rich GUI applications easy without the need to write any backend code. Using the UniversalClient you can invoke any SOA services that you could normally invoke with the MuleClient interface and pass and return POJO and JSON objects to and from your GWT client. You also have the option of implemeting POJO backend services and invoking those as well from the UniversalClient. Bottom line is that the GWT UniversalClient API makes building SOA apps (called Weblets) very convenient.

Using MuleClient API with Tasklets

Directly access the MuleClient API from the Tasklet interface when you implement Jobs/Tasklets for workflow and backend Java processing. This allows a Tasklet direct access to the native server-side MuleClient API to invoke SOA service endpoints (e.g. JMS, SOAP ...etc).

When you run a Tasklet in a Job, the Tasklet can use the org.soafaces.bundle.workflow.WorkflowContainer API to get access to a MuleClient interface and access any Mule and SOA services available in your network or on the internet. From this interface, JobServer makes a MuleClient object available to your Tasklet to access when a job is run. This gives your Tasklet access to the full SOA client services of Mule and allows you to integrate SOA services easly using the very flexable MuleClient API.

Note that you do NOT need to have a Mule server instance running to use the MuleClient interface from your Tasklets. You only need to have a JobServer environment with Mule included with it and with Mule enabled. Check the installation documentation on how to enable Mule in your installation. For externally run JVM jobs, you also have the option to enable/disable the availability of the MuleClient. This enabled/disabled when you create/edit a job from the Job Designer tool. Check help documentation for more details.

Deploy Mule Services in JobServer's workflow container

With JobServer's support for Mule, you can implement and deploy Mule services directly in JobServer workflow container. To do this, place your Mule related java implementations in a JAR file and deploy in the jobserver/mule/my-mule-jars directory. Then place the corresponding the XML Mule service configuration file in the directory jobserver/mule/my-mule-conf.

The next time you stop and start the JobServer Container/Engine, the new Mule services will be avaialble. You can access these sercices just like you access any other Mule services available anywhere else using the VM transport from the Tasklet API.

This means that JobServer can host Mule services directly in its server container. And it means that JobServer can have a Mule server instance running within it. The JobServer Workflow Engine is started from the System Administration UI and you can choose to start it with or without a Mule server instance running.

Deploy Mule Services in JobServer's webserver

You can implement and deploy Mule services directly in the JobServer webserver. To do this place your java classes in a JAR file and deploy in the jobserver/mule/my-webmule-jars directory. Then place the corresponding the XML Mule service configuration file in the directory jobserver/mule/my-webmule-conf.

The next time you stop and start the JobServer webserver the new Mule services will be avaialble. You can access them just like you access any other Mule services available anywhere else using the VM transport using the Weblet API.

Note that you will need to have Mule installed and activated with your JobServer environment for these Mule features to be available. By defaul a Mule server instance is not run in the web server. You can activity this by setting the MuleServerWSEnabled=true in the product-config.properties file. This will allow you to run a Mule server in each web server that is running as part of JobServer and allow your Weblet/UniversalClients to access these services usingn the VM transport.

Go here for more information on Mule related properties that can be set within JobServer.





Copyright © Grand Logic, Inc. All Rights Reserved.