I have played around with TIBCO BusinessWorks version 6 (BW6) for some time since I was interested in the changes to previous versions. My conclusion is that it should be considered as a complete rewrite of BW5. I’m basing my conclusion on the following aspects: Architecture, Design, Development and Administration.
Architecture
BW6 differs from previous versions of BW as this new version is specifically targeted at creating services supporting web and mobile applications.
When building an application using BW6, architects should pay attention to the nature of BW6.
To understand what an enterprise application will look like when migrating to BW6 we need to understand the new terminology of BW6.
Domain is the first logical group which will provide the isolation of environments. One domain can be distributed over different machines and may contain one or more AppSpaces.
In the previous version of BW, the domain concept as a logical grouping was there, but it was managed differently as it was part of TIBCO administrator which is not there anymore.
AppSpace is a logical group of applications. AppSpaces can span multiple physical machines and should contain AppNode(s). When deploying an application to an AppSpace it will be deployed to all AppNodes which are part of that AppSpace.
In previous versions of BW this did not exist; the only logical grouping of applications was the domain.
AppNode is the actual JVM which is equivalent to what was called BWEngine in previous BW versions. AppNode is manageable and all applications deployed in an AppNode can be managed (start, stop, redeploy …) from the node itself or, in some cases, independently at application level. AppNodes will be used for scaling up and down the application.
BWAgent is a daemon process that exists in each installation. This process is responsible for provisioning the AppNodes and enabling the communication agents that are located in different machines. These agents between machines can be configured to use a common datastore and then they will form a BWAgent network. This is equivalent to the domain transport in the previous BW: RendezVous (RV) or EMS.
Design
When designing a new BW6 application the technical designer should consider the differences between different modules in BW6:
Application Module: The main part of the BW6 project, it consists of all resources and processes.
One application can consist of one or more application modules. All application modules should be packaged as part of an application. The application module is an executable part of the application in the ActiveMatrix BusinessWorks runtime.
Application modules can depend on shared modules, consist of one or more processes and can include:
- Processes: represent the flow of business information.
- Service descriptors: WSDL files which describe the service name, interface, operations and IN/OUT messages.
- Resources: reusable resources which can be shared between processes and modules in application like connections (JDBC, JMS, HTTP …) and shared variables (JobSharedVariables and ModuleSharedVariables).
- Schemas: defining the structure data.
- Components: the main process which is responsible for initiating the execution of an application. One application can contain more than one component.
- Module Descriptors: the part of an application module which provides the information about the module, overview, properties, dependencies, components and shared variables.
- src: only when the project is Java enabled this will contain the source code.
- JRE System Library: only when the project is Java enabled, TIBCO Business Studio includes the required JAR files in this folder.
Shared Modules are the same as Application Modules with the exception that they are not independently executable. They should be included and packaged as part of an application. In previous versions of BW it was called “design time library”. This type of module can depend on another shared module but it cannot depend on application modules.
The technical designer should also consider the state management of the process and differentiate between stateful and stateless. With BW6 both are available, but a technical designer should consider the nature of the service (e.g. REST services are always stateless).
Development
For development I consider BW6 to be a complete change from the previous BW version; the classic BW Designer is gone and Eclipse is taking over as the development tool.
Note that BW6 is not another plug-in which can be used with any Eclipse, but it is a full Eclipse runtime which comes as a part of the installation package.
One of the features that TIBCO worked hard to complete and I personally noticed as one of the major changes in the BW6 development tool, is the continuous development-testing feature. This feature gives the developers the flexibility to change their processes during testing without stopping and starting. You can now simply add a new activity to an already running service in design mode and it will take effect immediately.
Testing and deployment
Testing is not changed from the previous BW version as services are still discoverable and testing tool friendly. For example: when testing a SOAP WebService you can provide the testing team with the concreate WSDL as a link or a file to be communicated and this can then be used to do the testing.
Deployment is different from the previous version of BW as there is no TIBCO administrator anymore, but TIBCO did introduce TIBCO Enterprise Administrator (TEA).
TEA is an independent tool which will be used widely by TIBCO. However TEA is not mandatory to deploy the produced services by BW6 as you can use the command line tool (provided as part of BW6 installation package) to create or manage the Domains, AppSpaces, AppNodes and applications.
With each installation of BW6 a BWAgent will be installed and will facilitate the use of the installation instance.
Working with BW6 I realize that TIBCO did not ignore ease of use with cloud enabled setups. BW6 should support the cloud APIs to be able to scale up the hardware easily. However, I still have not seen any running environment where a new machine with BW6 was added to a server farm and started to function immediately. A BWAgent could be used with auto registration option to make this possible, but I need to get more experience with this new tool to test this!
Devoteam: the #1 partner when it comes to Tibco BusinessWorks
Due to our background in Integration and DevOps, we are the #1 partner for well-known Dutch organizations when it comes to Tibco BusinessWorks. Curious to learn more? Read all of our success stories, use cases, and technical blog-posts.