...
- A programming model based on Service Component Architecture (SCA) that is specifically designed for building and integrating loosely-coupled systems.
- The ability to use a variety of remote communication protocols in a unified, consistent manner without tying application logic to specific transport APIs.
...
In this chapter, we cover the basics of setting up and deploying an application using Fabric3. Subsequent chapters will cover developing loosely-coupled services, runtime configuration and topics such as integration with Java Persistence Architecture (JPA).
This manual
The documentation assumes a basic understanding of SCA concepts. Before proceeding, if you have not done so, we recommend familiarizing yourself with SCA. The specifications themselves (downloadable from {+}http://www.oasis-opencsa.org/+) are generally not the most accessible source of introductory information. We recommend instead the paper by :
- David Chappell, "Introducing SCA" ({+}http://www.davidchappell.com/articles/Introducing_SCA.pdf+), which presents a balanced and accurate overview of SCA.
...
- Jim Marino and Michael Rowley, Understanding SCA (Addison-Wesley), which provides an in-depth treatment
...
- The Standalone Server: Fabric3 includes a server that can be run in a single VM or in a distributed environment with multiple runtime clusters.
- The Fabric3 Tomcat Runtime: This runtime is hosted in a Tomcat server. The Fabric3 Tomcat Runtime is integrated with Tomcat facilities including JMX and logging. This runtime provides additional services including support for service clustering, JTA transactions, and datasource pooling.
- The Fabric3 WebLogic Runtime: This runtime is hosted in a WebLogic server. The Fabric3 WebLogic Runtime is integrated with WebLogic facilities including clustering, transactions, datasources, JMX and logging.
- The iTest Runtime: The iTest runtime allows applications to be tested as part of a Maven project build. Fabric3 provides facilities for writing automated tests and mock services that can used to verify a complete application or individual subsystems in an automated fashion.
- The Ant Runtime: The Ant runtime allows applications to be tested as part of a Ant project build. Similar to the Maven runtime, this distribution provides facilities for writing automated tests and mock services that can used to verify a complete application or individual subsystems in an automated fashion.
...
/bin |
|
|
|
| Startup modules |
|
/lib |
|
|
|
| Modules required to start the runtime host |
|
/boot |
|
|
|
| Modules required for the runtime bootstrap and primordial system services |
|
/host |
|
|
|
| Libraries shared between the runtime and application (e.g. web services annotations) |
|
/extensions |
|
|
|
| Extension modules that are able to be loaded by all runtime instances |
|
/runtimes |
|
|
|
| Specific runtime instance configuration is hosted by default under this directory |
|
| <runtime-name> |
|
| top level directory for a runtime configuration |
| |
|
| /config |
|
| Contains systemConfig.xml for configuring the runtime and extensions |
|
|
| /deploy |
|
| File system deploy directory for the controller and single-VM runtimes |
|
|
| /repository |
|
|
|
|
|
|
| /runtime |
| Extensions only loaded for the runtime image |
|
|
|
| /user |
| User contributions (only populated on the controller and single-VM runtimes) |
|
|
| /data |
|
| Persistent data directory for a runtime instance (e.g. transaction log) |
|
|
| /tmp |
|
| Temporary data and artifact cache for a runtime instance |
|
...
java -jar server.jar controller | launches a runtime using the runtimes/controller image |
java -jar server.jar vm | launches a runtime using the runtimes/vm image |
java -jar server.jar participant | launches a runtime using the runtimes/participant image |
java -jar server.jar foo | launches a custom runtime using the runtimes/foo image |
...
- of SCA using Fabric3.
The Samples
The samples are intended to demonstrate the capabilities of Fabric3 using the standalone or Tomcat distributions. The samples contain individual applications designed to showcase specific features and are organized as follows:
...
For projects that intend to use Spring, Fabric3 also ships with a set of dedicated Spring samples. These samples are ports of the SCA Java samples described in this chapter, with SCA Java components replaced by Spring beans. Basic layout, configuration and deployment remain the same across both sets of samples.
...
Prerequisites
The samples may be downloaded from {+}http://www.fabric3.org/downloads+ and require the following software:
...
Note that it is not necessary to download the Fabric3 runtime distribution in addition to the samples as the sample build process will automatically download a distribution and configure a Fabric3 runtime cluster.
...
Building and Deploying The Starter Applications
The starter calculator applications are the recommended way to get familiar with Fabric3. To build and deploy the calculator applications, do the following:
...
- The web calculator UI can be accessed at:at http://localhost:8181/ calculator/entry.html.
- The REST calculator resource can be accessed using a GET with the formula to calculate included in the URI as in: http://localhost:8181/calculator/1+1
- The web services calculator can be accessed at:at http://localhost:8181/calculator
...
- and its WSDL
...
The samples also contain a separate client for the web services calculator. The client module is located at /samples/wscalc-client. The WSCalcClient class can be executed using the Java command line or via an IDE.
...
Building and Deploying BigBank
To build and deploy BigBank, do the following:
...
BigBank includes a web application front-end and loan officer web application. Note both web applications currently do not support Internet Explorer. Please use FireFox, Chrome, or Safari.
Copy bigbank-web-1.7.jar and bigbank-backoffice-1.7.jar to the runtimes/vm/deploy directory.
...
Deploying BigBank to a Distributed Domain
The samples distribution also contains an automated build process for producing a set of clustered servers. To create the clustered servers, execute the following from the servers/cluster directory:
mvn clean install
...