TIB Bwce 2.7.1 Concepts
TIB Bwce 2.7.1 Concepts
Container Edition
Concepts
Version 2.7.1
February 2022
Contents
Contents 2
Overview 4
Key Concepts 5
Flexibility 6
Openness and Extensibility 6
Modularity 6
Standards-based 7
Layout of the Concepts Guide 7
General Concepts 9
Applications 9
Modules 10
Application Modules 11
Shared Modules 13
Binary Shared Modules 15
Processes 16
Activities 19
Palettes 20
Transitions 21
Shared Resources 22
Shared Variables 23
Shared Variables 28
Module Shared Variables 29
Job Shared Variables 30
Shared Variable Synchronization 30
Fault Handlers 31
Module Property 32
Components 33
Component Services 34
Component References 34
Services 35
Operations 36
SOAP Services 36
REST Services 36
Policies 37
Policy Definitions and Concepts 38
Design-time Concepts 45
Runtime Concepts 49
Overview
TIBCO BusinessWorks™ Container Edition is an integration product suite for enterprise,
web, and mobile applications.
With this software you can create services and integrate applications using a visual, model-
driven development environment, and then deploy them in the TIBCO BusinessWorks
Container Edition run time environment.
It uses the Eclipse graphical user interface (GUI) provided by TIBCO Business Studio™ for
BusinessWorks™ to define business processes and generate deployable artifacts in the form
of archive files.
With TIBCO Business Studio for BusinessWorks, you can model integration processes of
varying complexity using any of the following integration styles:
l Batch-oriented - provides non real-time integration for endpoints such as databases
or files, and uses records for data abstraction.
l Process-oriented - provides real-time integration for endpoints such as application
APIs and adapters, and uses APIs, objects, and messages for data abstraction.
l Service-oriented - provides real-time integration for endpoints such as web services
and APIs, and uses services and messages for data abstraction.
l Resource-oriented - provides real-time integration for endpoints such as mobile or
web applications and APIs, and uses resources for data abstraction.
Key Concepts
The following image provides an overview of the key concepts that you encounter when
working with the product. Some of these concepts are applicable exclusively to design
perspective or runtime perspective, while some are applicable to both perspectives. TIBCO
BusinessWorks Container Edition consists of a design-time where you can develop
applications that implement business logic and the runtime environment where you
execute the applications.
TIBCO BusinessWorks Container Edition consists of a design-time where you can develop
applications that implement business logic, the runtime where you execute the
applications, and the administration component where you deploy and manage
applications in the runtime. The runtime is an ecosystem of entities that can be co-located
or distributed. You can deploy, monitor, and manage the applications by using the bwadmin
utility and TIBCO® Enterprise Administrator.
Flexibility
TIBCO Business Studio for BusinessWorks is designed to make adding, upgrading, and
swapping of business components easy.
The flexible architecture is demonstrated by:
l A zero coding model with which you can select and drop activities onto the Process
Editor and configure the activities in the UI.
l Ability to build tightly coupled as well as loosely coupled services.
l Ability to build strongly typed as well as loosely typed service implementations.
l Ability to specify application configuration to be either hard-coded or late-bound.
l Ability to manage the process state that is maintained across invocations either by
the run time container (process engine) or by the process implementation.
l Encapsulation of configuration data, thus minimizing the configuration properties
exposed by the application.
Modularity
Modularity of the product supports:
l Large teams and distributed development through modular constructs.
Standards-based
Supported standards include:
l Protocols and API: SOAP, JSON and REST, WSDL, HTTP, HTTPS, JMS, JDBC
l Data representation and transformation: Native support for XML, XSD, XPath, JSON,
XSLT
l TIBCO Products: TIBCO Rendezvous™, TIBCO Enterprise Message Service™ (EMS),
TIBCO AE Schema
l Others: FTP, JNDI, SMTP, TCP
l Others: JNDI
This guide presents the design-time, runtime, and administration concepts that are useful
to developers and administrators. These concepts are described in the following sections:
l General Concepts: Explains the essential concepts such as applications, application
modules, shared modules, processes, activities, transitions, and shared resources.
l Additional General Concepts: Explains additional concepts that can be used when
developing applications such as groups, properties, services, components, and event
handlers.
l Design-time Concepts: Introduces the design-time environment, TIBCO Business
Studio for BusinessWorks.
l Runtime Concepts: Explains the runtime concepts such as process instances and
jobs.
Sections that map concepts to bundled samples aim to enhance your understanding of the
concepts by mapping them to ready samples that can be viewed and executed.
General Concepts
TIBCO BusinessWorks Container Edition applications developed to solve business
problems can range from simple to very complex solutions. These applications are
packaged in deployable artifacts in the form of archive files. Understanding these general
concepts is essential to both developers and administrators.
TIBCO BusinessWorks Container Edition applications developed to solve business
problems can range from simple to very complex solutions. These applications are
packaged in deployable artifacts in the form of archive files. An application contains one
application module which consists of one or more processes. Understanding the general
concepts is essential to both developers and administrators.
Applications
An application is a collection of one or more modules and can be executed in the runtime.
Applications are developed using TIBCO Business Studio for BusinessWorks.
An application contains one application module, which in turn consists of one or more
business processes. It can be executed in the runtime. Applications are developed using
TIBCO Business Studio for BusinessWorks
Applications are developed using features available in the product and can range from
simple to very complex. An TIBCO BusinessWorks Container Edition application contains
one application module (see Application Modules), which in turn consists of one or more
processes that define the business logic, and zero or more shared modules (see Shared
Modules). A process that is responsible for initiating the business logic at runtime is used to
implement a component in an application module.
Applications can also contain OSGi bundles that do not contain application artifacts. For
example, you can create an application that contains a Java OSGi bundle, which is also
referred to as a Java module.
Elements of an application
Once an application is developed, you can either run or debug directly in TIBCO Business
Studio for BusinessWorks, or generate a deployable artifact (an archive file) that can be
deployed later in the runtime environment. The deployment artifact is the only artifact that
is handed over from the design-time to the runtime environment.
Modules
A module is an Eclipse project that is configured for TIBCO BusinessWorks Container
Edition.
Two types of modules are supported:
l Application modules: The smallest resource that is named, versioned, and packaged
as part of an application and is executed in the TIBCO BusinessWorks Container
Edition runtime. An application module cannot be deployed by itself in the TIBCO
An Application module is the smallest unit of resources that is named, versioned, and
packaged as part of an application and is executed in the TIBCO BusinessWorks Container
Edition runtime. An application module cannot be deployed by itself in the TIBCO
BusinessWorks Container Edition runtime; it must be packaged as part of an application.
Application Modules
The smallest resource that is named, versioned, and packaged as part of an application
and is executed in the TIBCO BusinessWorks Container Edition runtime. An application
module cannot be deployed by itself in the TIBCO BusinessWorks Container Edition
runtime; it must be packaged as part of an application.
An application module typically contains one or more processes. An application module is
configured and represented in TIBCO Business Studio for BusinessWorks, and can be used
by multiple applications. Each application module contains metadata that is associated
with it, such as name, version, dependencies, and so on.
An application module can include the following resources:
l Processes: Processes capture and represent the flow of business information
between different data sources and destinations. Processes are contained within a
process package. An application module can contain one or more process packages,
and each of the process packages can contain one or more processes.
l Service descriptors: Service descriptors consist of Swagger files and WSDL files that
provide the name of the service, interface, list of operations offered by the service,
the parameters expected by the operations, and the return types.
l Resources: Resources are reusable configuration data that can be shared within an
application. For example, Shared Resources.
l Schemas: Schemas define elements and attributes which can be used to define
structured data.
l Components: The main process that is responsible for initiating the execution of the
Note: Use the Component section under the Module Descriptor node to
configure the components for this specific application module.
l src: Default source directory created when the project is Java enabled. A project can
contain multiple source directories which are used to contain the Java classes and
packages.
l JRE System Library: If your project is Java enabled, TIBCO Business Studio for
BusinessWorks includes the required JAR files in this folder.
Application modules can depend on shared modules, which can contain processes,
schemas, JSON, and WSDL files that can be used by a process in the application module.
Shared Modules
The smallest resource that is named, versioned, and packaged as part of an application
and can be used by other modules that are part of the same application.
Shared modules export their functionality (processes, shared resources, and schema
namespaces) to application modules or to other shared modules. This means there is a
possibility that other modules in the system depend on a shared module for this
information.
Shared modules can depend only on other shared modules and cannot depend on
application modules.
At the module level, a process can reference another process in a different module.
A process can also reference a WSDL or a schema defined in a different shared module.
Schemas that are intended to be exported from a shared module must be contained in the
Schemas special folder.
Note: Two modules with the same package names cannot be used in the same
application. Package names must remain unique across multiple shared
modules and application modules within an application. If an application
contains two packages with the same name, rename of the packages, or remove
a package from an application.
For information on shared modules that can be exported for the purpose of sharing them
with other users, see "Binary Shared Modules" in TIBCO BusinessWorks™ Container Edition
Concepts.
For more information on creating and using a binary shared module, see "Creating a Binary
Shared Module", and "Using a Binary Shared Module" in TIBCO BusinessWorks™ Container
Edition Application Development.
Processes
Processes capture and describe the flow of business information in an enterprise between
different data sources and destinations.
Processes comprise of activities that accomplish tasks. The flow of data between activities
in a process is represented using transitions, conditions, and mappings. TIBCO Business
Studio for BusinessWorks provides design palettes containing activities and transitions that
can be used to develop business processes.
Parent Process
A process can call another process, or a subprocess. The process that is making the call
is referred to as a caller process or a parent process.
Subprocess
A subprocess can be called by a parent process, or another subprocess. In the case
where a subprocess is calling another subprocess, the subprocess that is making the call
is the parent process. The called process is referred to as a subprocess or a child process.
At runtime, inline subprocesses are executed on the same engine thread as the caller
process while the non-inline subprocesses use different engine threads and are executed
on the new threads.
Component Process
The execution of a process is triggered by various events. Often the business logic that is
designed to react to a particular event is spread across multiple processes. One of the
processes is special and it reacts to the original event and triggers the execution of the
other processes. This special process is referred to as the component process or main
process. A component process is responsible for initiating the job at run time.
A component process is designed to react to various events and these events are
triggered by Process Starters, Signal-Ins, and Processes and Bindings.
Stateful Process
A process that relies on the TIBCO BusinessWorks Container Edition engine to maintain
its state across invocations is called a stateful process. As the engine maintains its state,
a stateful process does not require an external persistence store.
Process Services
A process can provide services to other processes. A process service exposes the
operations provided by the process and is implemented using a WSDL or a JSON file.
When the process is implemented by a component, the process services are exposed as
component services, which then need to be configured using bindings.
Process References
A process can consume services provided by other processes or by external service
providers. A process reference exposes the operations consumed by the process and is
Activator Process
An activator process is a special process that can be used to perform pre-processing and
post-processing tasks when the application is started and stopped respectively. The
activator process contains a process service with two operations: OnStartup and
OnShutDown.
The OnStartup operation is called when an application is started, but before executing
any other processes in the application. The OnStartup operation can be used to
implement any pre-processing tasks that must be performed for the application before
the regular processing starts. For example, the OnStartup operation can be used to
check if the database tables required by an application exist, and create them if they do
not exist. If this process instance faults due to an unhandled exception, the application
does not start.
The OnShutDown operation is called when an application is stopped, but after stopping
and completing all other processes in the application. The OnShutDown operation can
be used to implement any post-processing tasks that must be performed for the
application after the regular processing is complete. For example, the OnShutDown
operation can be used to send an email to administrators notifying them that the
application is being stopped.
The activator process can only be configured for an application module. There can be
only one activator process for an application module. However, the activator process
can invoke one or more sub-processes.
Note: For details about the TIBCO Business Studio for BusinessWorks
development environment, see Design-time Concepts.
Activities
Activities are the individual units of work in a process.
Activities generally interact with an external system and perform a task. Activities that
perform similar tasks are grouped in an entity called a palette. TIBCO Business Studio for
BusinessWorks provides various technology-specific palettes using which you can build a
business process.
Each activity in a palette is represented by an icon. For example, the activity is
represented by the icon. For example, the database update activity is represented
by the icon. Often an activity icon is also decorated with an additional symbol such
as a green or a yellow pause sign to indicate the activity waits for an event, an arrow to
indicate the direction of the data flow, and so on. For example, the arrow sign in the
JMS Send Message icon indicates data is being sent by this activity.
Note: For details about the TIBCO Business Studio for BusinessWorks
development environment, see the Concepts Guide.Design-time Concepts
Palettes
Palettes group activities that perform similar tasks. TIBCO Business Studio for
BusinessWorks provides various technology specific palettes that provide quick access to
activities when building a process.
Palettes are typically located to the right of the Process Editor in TIBCO Business Studio
for BusinessWorks. Depending on the process being designed and the stage of process
development, you can focus on the activities available under appropriate palettes.
In TIBCO Business Studio for BusinessWorks, the Palette views displays the list of activities
contained in a palette and allows you to perform the following actions:
l Search for activities in palettes.
l Use multiple palettes and save them as grouped palette sets.
l Save palettes, or the grouped palette sets, as favorites.
l View recently used palettes.
l Create virtual palettes, which means that some activities can be taken from unrelated
palettes. This activity is called a custom shortcut.
Note: For more information about the TIBCO Business Studio for BusinessWorks
development environment, see Design-time Concepts.
Transitions
Transitions can be added to activities and groups in a process. They represent the flow of
execution from one activity or group to another.
In TIBCO Business Studio for BusinessWorks, transitions are displayed as an arrow between
two resources in a process. Transitions are unidirectional and cannot connect to a
previously executed activity or group. The control flow in a process must proceed
sequentially, beginning with the starting activity or group and ending with the last activity
or group in the process.
Transitions can have a one-to-many relationship with the activities. In a process, one
activity can simultaneously transition to multiple activities or groups. For example, if the
shipping schedule indicates a delay in shipping an order, you want to notify the customer
and enter the information into the customer service system. However, if there is no delay,
you want to enter the information into the customer service system without notifying the
customer.
Transitions can fall into one of the following categories:
l Transitions Without Conditions: Control automatically flows from one activity or
Shared Resources
Shared resources are resources that contain common configuration data that can be
referenced from multiple places.
You can define a shared resource and then reference it from multiple activities in the same
or different process. For example, you can define a JDBC Connection resource and then
use it in any of the JDBC activities in your process to connect to the database.
Shared resources such as JDBC Connection, JMS Connection, HTTP Connection, are
available at design-time. At runtime, the referencing activities and event sources have full
access to their instances and configuration.
Shared resources can be grouped in packages, similar to the way process packages and
Java packages are presented in the file system.
When defined in an application module, shared resources are not visible to processes
outside the application module. However, when defined in a shared module, they are
visible to processes outside the shared module.
Shared Variables
Shared variables are used to define data for modules and jobs. There are two types of
shared variables: job shared variables and module shared variables. They are stored
separately.
Groups
Groups consist of one or more activities that are assembled together and executed
according to their type.
Groups enable you to put one or more activities together and configure the group as
needed. For example, defining a single error condition for the group, or creating a group as
a transaction that commits to a database only when all the activities in the group are
completed.
Every group contains a GroupStart element on the left and a GroupEnd element
on the right.
Groups can be classified into two categories: groups with conditions (repetitive groups) and
groups without conditions (non-repetitive groups).
l Repeat on Error : This loop involves a retry mechanism: if any activity in the loop
displays a fault, the condition expression is evaluated to determine if the loop should
be repeated. An index allows the condition to be based on the number of previous
attempts, but any condition expression may be used.
l While : This loop has a simple index variable that can be used to count each
iteration and has a conditional expression to determine when to stop. The condition
for the While loop is tested at the beginning of each iteration and the loop may never
be executed if the condition is initially false. The While loop and continues to execute
as long as the condition holds true and stops when the condition evaluates to false.
Note: For more information about the TIBCO Business Studio for BusinessWorks
development environment, see Design-time Concepts.
Properties
Properties are used to define configuration. Depending on where and how they are defined
and qualified, properties can be classified into application properties, module properties,
shared module properties, and process properties. The values for all three kinds of
properties can be of one of the six primitive types (Boolean, Integer, DateTime, Long,
Password, or String) or one of the available default shared resource type. These values are
static and cannot be changed once an application has started execution. These values can
only be changed at design time or deployment time.
The three levels of properties are hierarchical: application properties are in the outer most
scope, followed by module properties, followed by process properties.
Properties defined in the inner layer can reference a property defined at its parent layer.
For example, a process property can reference a module property instead of providing a
literal value. Similarly, a module property value can be defined by literal values or source
from its parent scope application property. Private properties are not visible to the
encapsulating layers.
Any process property or module property that you define is available both in the activity
configuration page and is also available to use as an input to an activity (from the Data
Source tab of the Input tab for the activity).
The following diagram illustrates the relationship between the different types of properties:
Relationship Between Properties
Note: For more information about the TIBCO Business Studio for BusinessWorks
development environment, see Design-time Concepts.
Shared Variables
Shared variables are used to save the state, either at the module level or for the duration
of a job.
Using shared variables, you can share data across process instances associated with a
module or a job. A process instance can read or update the data stored in a shared
variable. The shared variable data updated by one process instance is accessible to other
process instances of a Module or Job.
There are two types of shared variables: module shared variables and job shared variables.
Both module and job shared variables are defined at the module level and can be accessed
in a process using the activities Set Shared Variable and Get Shared Variable.
For more information on how to define and use shared variables, see "Using Shared
Variables" in TIBCO BusinessWorks™ Container Edition Application Development.
Using the persistence option, the same TIBCO BusinessWorks Container Edition
applications running in multiple engines (AppNodes) that are part of the same engine
group can read or update the module shared variable state. Once the value is updated, the
new value is available to all engines (AppNodes) which are running the same application.
other concurrently running process instances that are associated with that Critical Section
group wait at the start of the group until the currently running process instance exits the
critical section group. This ensures that the value of the shared variable is not modified
while another process instance is accessing it. To synchronize multiple critical section
groups, use a shared lock. The shared lock can be defined using a module or a job shared
variable.
Fault Handlers
Errors (or faults) can occur when executing a process. Fault handlers allow you to catch
faults or exceptions and create fault-handling procedures to deal with potential runtime
errors in your process definitions.
Fault handlers are the recommended way to catch faults or exceptions in a process. Two
types of fault handlers are available: Catch Specific Fault and Catch All Faults.
Fault handlers can be defined at two different levels:
l Process level - When defined at the process level, allows you to catch fault in a
process.
l Scope level - When defined at the scope level, allows you to catch fault within a
scope.
Fault handlers when defined at the scope level, allows you to catch faults or exceptions
thrown by activities within a scope. To catch faults or exceptions specific to an individual
activity, you need to define a new scope for that individual activity and attach a fault
handler to the new scope.
At runtime, once a fault handler is executed, the associated scope is not completed due to
the error thrown. If a fault is not thrown in the fault handler, the process execution
continues with the first activity that follows the scope. If a fault is thrown in the fault
handler, then the engine looks for an enclosing scope that is designed to handle the fault.
If one is found, the engine executes it. Once the enclosing fault handler finishes its
execution, the engine executes the next activity following the scope. If no fault handlers are
found in the enclosing scopes, then the job terminates with a fault.
Consider the fault handlers defined in the sample process.
If an exception is caught in the inner scope, the exception is logged to a file and the scope
is completed. The process execution then continues to the Write File activity, which is the
next activity in the process. If an exception is caught in the outer scope, the exception is
logged and the scope is completed. The process execution completes successfully as there
are no following activities to be processed. An Exit activity inside the fault handler returns
the control out of the scope and the process.
Error Transitions can also be used to handle error conditions by using them to specify
transition to take in case of an error. For more information, see Error Transitions.
Module Property
Module property provides the default value for a module. Multiple process properties can
source their value from a single module property.
Module properties are defined at the module level and can be referenced by various
resources that are defined as a part of the module. Their values can also be sourced from
application properties at deployment time.
The Module Properties editor can be used to create and manage module properties. You
can add a new property or logical groups which you can use to organize module
properties.
Components
Components implement a process and provide information to the runtime on how to
instantiate the process.
Components are generated only for main processes and each main process initialized by
the engine must have a component associated with it. Components are required only by
main processes that are responsible to initiate the business logic. Subprocesses do not
require components as they are called by another parent process.
Component Services
Component services describe the binding information to receive an invocation from an
external consumer.
When a component implements a process that has a service, that process service is
exposed as a component service. The component service then must be configured using
bindings such as SOAP and REST.
The service-centric architecture supports self-contained services. Each service is configured
separately and can be deployed on a different machine. If one machine goes down, all
other parts of the process can continue to run. This loosely-coupled architecture makes it
easy to change individual components as needed.
Component References
Component references describe the binding information required to invoke an external
service.
When the component implements a process that has a reference, then the process
reference is exposed as a component reference. When configuring to invoke an external
service, the binding information that contains protocol details is not part of the process.
The service consumer needs to create a component that is an implementation of that
process and configure the binding along with protocol details. The Invoke operation
activity or a reference can be used to invoke a service.
References have the following characteristics:
l They can be public or private. Public references are visible from outside of the
process.
l They always reference one interface or port type.
Based on the availability of the target service name at design-time, you can use either
static references or dynamic references. Static references can be used when the target
service name is available at design-time and dynamic references are available when the
target service name is not available at design-time. This applies to target services
developed as a part of TIBCO BusinessWorks Container Edition as well as external target
services.
Services
TIBCO BusinessWorks Container Edition can function both as a server and a client in a web
services interaction. Services and references are defined at the process level while the
bindings are created at the component level.
The supported service classes are:
l REST (Representational State Transfer)- compliant services, where the primary
purpose of the service is to manipulate XML representations of web resources using a
uniform set of stateless operations. When using a stateless operation, the state is
managed by the job itself instead of by the engine.
l SOAP services, which are used for exchanging information in the implementation of
web services relying on XML message format sent over HTTP and JMS.
Operations
Operations define the action that can be performed by the process. Multiple operations are
supported in a process with multiple inputs, outputs, and faults.
There are two types of message exchange operations: one-way operations and request-
response operations.
SOAP Services
SOAP services are web services that use SOAP as the standard communication protocol for
XML-based message exchanges.
The standard HTTP protocol makes it easier for SOAP model to tunnel across firewalls and
proxies without any modifications to the SOAP protocol.
l The Web Services Description Language (WSDL) contains and describes the common
set of rules to define the messages, bindings, operations and location of the Web
service. A WSDL file is a formal contract to define the interface that the Web service
offers.
l SOAP services require less coding than when designing REST services. For example,
transactions, security, coordination, addressing, and trust are defined by the WSDL
specification. Most real-world applications are not simple and support complex
operations, which require conversational state and contextual information to be
maintained. Application developers do not need to worry about writing this code into
the application layer themselves.
l SOAP supports several technologies, including WSDL and XSD.
REST Services
Representational State Transfer (REST) is an architectural style of the World Wide Web that
is used in building services for distributed systems and networked applications. RESTful
APIs are increasingly preferred for enterprise, web and mobile integration use cases.
The key abstraction of information in REST is a resource, with focus on components, the
constraints upon their interaction with other components, and their interpretation of
significant data elements. REST ignores the details of component implementation and
protocol syntax.
The supported features of REST architectural style are:
l Client-server architecture: Provides a separation of implementation details between
clients and servers.
l Stateless communication: Ensures that each request contains all of the information
required to understand it independently of any stored context on the server.
l Cacheability: Provides an option to the client to cache response data and reuse it
later for equivalent requests, thus partially eliminating some client-server
interactions. This results in improved scalability and performance.
TIBCO BusinessWorks Container Edition currently allows the following HTTP operations to
be performed on resources: GET, PUT, DELETE, and POST. Both XML and JSON are
supported as data serialization formats along with support for definition of custom status
codes, key-value parameters, and query parameters.
TIBCO BusinessWorks Container Edition currently, the following HTTP operations can be
performed on resources: GET, PUT, DELETE, and POST. Both XML and JSON are supported
as data serialization formats along with support for definition of custom status codes, key-
value parameters, and query parameters
Policies
A policy is a set of constraints that you can define and apply in TIBCO Business Studio for
BusinessWorks to manage and enforce cross-functional requirements within your TIBCO
BusinessWorks Container Edition application such as security, monitoring, and compliance.
You can add policies to activities and bindings in a process to influence or alter actions in
the process flow. For example, you can add a policy on an existing HTTP Receiver activity
in your application to ensure that user credentials are authenticated, or verified as correct,
before the message can continue moving through the process flow. Any request messages
that cannot be authenticated are rejected, redirected, or handled in accordance to policy
details.
The following policies are examples of policies provided in TIBCO BusinessWorks Container
Edition:
Basic Authentication
Validates the user name and password credentials stored in the HTTP header of REST,
SOAP, or pure HTTP request messages.
Policy
A policy is set of constraints that you can define and apply in TIBCO Business Studio for
BusinessWorks to manage and enforce cross-functional requirements within your
application such as security, monitoring, and compliance. You can add policies to activities
and bindings in a process to influence or alter actions in the process flow.
Policy Types
Policies that are related or perform similar functions are categorized under policy types.
Policies that can be applied to the HTTP layer of SOAP, REST, and pure HTTP services are
categorized under the HTTP Security policy type. Policies that can be applied to the SOAP
layer are categorized under the SOAP Security policy type.
Activities
An activity is the individual unit of work in a process. You can add policies to activities to
influence or alter actions in a process flow.
For more information about activities, see "Application Development" in TIBCO
BusinessWorks™ Container Edition Getting Started.
Bindings
A binding is used to establish a connection between SOA Services and their consumers.
There are two types of binding components:
l Service Binding, which is used to create and expose a service to the external world.
The service can contain one or more operations. Once exposed, the service can be
consumed by its clients.
l Reference Binding, which is used to create a client that can connect and
communicate to an external service.
You can add policies to bindings to manage, modify and secure message exchanges on the
consumer side and provider side.
For more information about the types of bindings offered in the workspace, see "Binding"
in TIBCO BusinessWorks™ Container Edition Concepts.
Policy Association
When you add a policy on an activity or a binding, the relationship you create between the
resources is called a policy association. At runtime, policies are enforced on the activities
and their associated bindings.
Shared Resources
Policies reference shared resources. You can manage and configure shared resources in
your workspace. The following table describes shared resources that each policy might
reference.
Note: You can define a shared resource and then reference it from a single
policy or multiple policies. For example, you could use a single Keystore
resource in the WSS Provider policy and the WSS Consumer policy.
Governance Agent
The governance agent is a TIBCO BusinessWorks Container Edition run time component
that dynamically enforces policies during runtime. A governance agent must be enabled on
an appnode to enforce policies applied to TIBCO BusinessWorks Container Edition
applications.
For instructions on enabling the governance agent, see "Enabling the Governance Agent" in
TIBCO BusinessWorks™ Container Edition Administration.
Pre-requisites
The Mortgage Broker Service Client sample demonstrates the concepts introduced in the
following sections:
l General Concepts
l Groups
l Conversations
l Services
l SOAP Services
After reading these sections, you should be able to understand and execute a service-
oriented sample such as the Mortgage Broker Service Client.
After completing this section, you should be able to design service-oriented processes with
minimal assistance.
Pre-requisites
The Bookstore sample requires the concepts introduced in the following sections:
l General Concepts
l Additional General Concepts
After going through these sections, you should be able to understand and execute a
resource-oriented solution such as the sample to manage books for a bookstore.
Bookstore Sample
The bookstore sample uses a RESTful service to add, delete, update, and retrieve books
from bookstore. The following REST methods are used:
l POST - Posts books to the bookstore
l GET - Get books from the bookstore
l PUT - Updates books to the bookstore
l DELETE - Deletes books from the bookstore
The Bookstore sample project is shipped with the product and can be accessed in TIBCO
Business Studio for BusinessWorks from Help > BusinessWorks Samples.
Next Steps
After completing this section, you should be able to design resource-oriented processes
with minimal assistance.
Design-time Concepts
Design-time concepts introduces TIBCO Business Studio for BusinessWorks, an Eclipse-
based integration development environment that is used to design, test, and deploy
applications.
TIBCO Business Studio for BusinessWorks provides Eclipse extensions such as editors,
palettes, and so on.
Development Environment
TIBCO Business Studio for BusinessWorks provides a workbench that can be used to
create, manage, and navigate resources in your workspace. A workspace is the central
location on your machine where all the data files are stored.
Explorers
TIBCO Business Studio for BusinessWorks consists of the following tabs in its left pane:
l Project Explorer: Displays the logical view of your entire workspace with all the
projects and the processes, service descriptors, resources, schemas, and module
descriptors for each project
l API Explorer: You can also view the APIs residing locally on your machine from the
API Explorer. Use the Settings dialog in the API Explorer to filter the APIs you want to
access
l File Explorer: Displays a view of selected folders in your local file system
l Outline tab: Displays a tree structure of the details of a selected artifacts in an editor
l Module tab: Displays the module properties and shared variables used in the module
The menu option Run > Debug or the icon on the tool bar enable you to debug an
application. The menu option Run > Run or the icon on the tool bar enable you to run
an application.
Run configurations specify information such as:
l Bundles to be executed.
l Arguments such as the target operating system, target architecture, target web
services, and so on.
l Settings that define the Java Runtime Environment including the Java executable,
runtime JRE, configuration area and so on.
l Tracing criteria for the OSGi JAR file, if needed.
l Common options such as choosing to save the results either as local files or as
shared files, and also to display them in the menus (Debug and/or Run). It also
Runtime Concepts
Runtime refers to the Appnode and the TIBCO BusinessWorks Container Edition engine that
hosts and executes the TIBCO BusinessWorks Container Edition applications.
AppNode
An AppNode (also called bwappnode) is an operating system process (JVM) that hosts and
executes TIBCO BusinessWorks Container Edition applications. An AppNode consists of two
key layers: the OSGI Framework and TIBCO BusinessWorks Container Edition Engine. The
high-level architecture of an AppNode is shown in the following figure:
The framework layer performs application life cycle operations, ensures that dependencies
required by the application are satisfied. The engine layer is responsible for executing the
application. The engine is multi-threaded and can execute multiple jobs for the same or
different applications concurrently.
At runtime, an AppNode launches the framework to validate and identify dependencies.
After the framework validates the modules and the application is deployed, the TIBCO
BusinessWorks Container Edition engine starts the underlying processes.
The binary file named bwappnode is packaged under the directory.
Process Instance
Execution of any process creates an execution scope for the activities that are a part of the
process and this scope is called a process instance. Each process instance has a unique id
which is referred to as "ProcessInstanceId".
The execution of a process is triggered by various events. For example, events can be
generated by a Timer that is scheduled to trigger at specific time intervals, or by changes
that occur in the file system, or by messages that are sent by a client over a specific
protocol (for example, HTTP, JMS, and so on), or simply by messages sent by other
processes.
The TIBCO BusinessWorks Container Edition engine is a multi-threaded engine capable of
triggering the execution of the same process multiple times, concurrently, once for each
event. When the events that trigger the execution of a process occur concurrently, the
engine executes the same process multiple times, concurrently, once for each event. And
for each execution, the engine creates a process instance that provides an execution scope
for the activities that are a part of the process.
Job
Execution of a component process is called a job. Each job has a unique id referred to as
JobId.
When the business logic is spread across multiple processes, multiple process instances are
created and executed in conjunction with a particular event. Even though these are
separate process instances they are work together and can be executed as part of the
same job. A job can spawn multiple process instances and can provide the execution
context for activities that are part of multiple processes. The engine always executes a job
in one engine thread.
All the process instances that are part of the same job have the same JobId. A component
process instance and all of its in-line subprocess instances are also considered to be a part
of the same job. Non in-line subprocesses spawn a new engine thread and are executed on
a different job.
Product-Specific Documentation
The following documentation for this product is available on the TIBCO BusinessWorks™
Container Edition page:
l TIBCO BusinessWorks™ Container Edition Release Notes
l TIBCO BusinessWorks™ Container Edition Installation
l TIBCO BusinessWorks™ Container Edition Application Development
l TIBCO BusinessWorks™ Container Edition Application Monitoring and Troubleshooting
l TIBCO BusinessWorks™ Container Edition Bindings and Palettes Reference
l TIBCO BusinessWorks™ Container Edition Concepts
l TIBCO BusinessWorks™ Container Edition Error Codes
l TIBCO BusinessWorks™ Container Edition Getting Started
l TIBCO BusinessWorks™ Container Edition Migration
l TIBCO BusinessWorks™ Container Edition Performance Benchmarking and Tuning
l TIBCO BusinessWorks™ Container Edition REST Implementation
l TIBCO BusinessWorks™ Container Edition Refactoring Best Practices
USE OF TIBCO SOFTWARE AND THIS DOCUMENT IS SUBJECT TO THE TERMS AND CONDITIONS OF A
LICENSE AGREEMENT FOUND IN EITHER A SEPARATELY EXECUTED SOFTWARE LICENSE AGREEMENT,
OR, IF THERE IS NO SUCH SEPARATE AGREEMENT, THE CLICKWRAP END USER LICENSE AGREEMENT
WHICH IS DISPLAYED DURING DOWNLOAD OR INSTALLATION OF THE SOFTWARE (AND WHICH IS
DUPLICATED IN THE LICENSE FILE) OR IF THERE IS NO SUCH SOFTWARE LICENSE AGREEMENT OR
CLICKWRAP END USER LICENSE AGREEMENT, THE LICENSE(S) LOCATED IN THE “LICENSE” FILE(S) OF
THE SOFTWARE. USE OF THIS DOCUMENT IS SUBJECT TO THOSE TERMS AND CONDITIONS, AND
YOUR USE HEREOF SHALL CONSTITUTE ACCEPTANCE OF AND AN AGREEMENT TO BE BOUND BY THE
SAME.
This document is subject to U.S. and international copyright laws and treaties. No part of this
document may be reproduced in any form without the written authorization of TIBCO Software Inc.
TIBCO, the TIBCO logo, the TIBCO O logo, ActiveMatrix BusinessWorks, ActiveSpaces, Business Studio,
TIBCO Business Studio, TIBCO Designer, Enterprise Message Service, Hawk, Rendezvous, and TIBCO
Runtime Agent are either registered trademarks or trademarks of TIBCO Software Inc. in the United
States and/or other countries.
Java and all Java based trademarks and logos are trademarks or registered trademarks of Oracle
and/or its affiliates.
This document includes fonts that are licensed under the SIL Open Font License, Version 1.1, which is
available at: https://scripts.sil.org/OFL
Copyright (c) Paul D. Hunt, with Reserved Font Name Source Sans Pro and Source Code Pro.
All other product and company names and marks mentioned in this document are the property of
their respective owners and are mentioned for identification purposes only.
This software may be available on multiple operating systems. However, not all operating system
platforms for a specific software version are released at the same time. See the readme file for the
availability of this software version on a specific operating system platform.
THIS DOCUMENT IS PROVIDED “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
This and other products of TIBCO Software Inc. may be covered by registered patents. Please refer to
TIBCO's Virtual Patent Marking document (https://www.tibco.com/patents) for details.