Technical Overview
From Kb
Contact Article Author | Blog of Article Author | FirstPartners.net Home | LinkedIn profile of Author
Chapter 4 describes the functionality and design of the available RP components and suggests how they can be integrated with other open frameworks to extend the frameworks functionality.
Contents |
Chapter 4 – Functional and Technical Design
Chap introduction
1. Refer to previous chapter for reasons
2. Refer to next Chapter for business guide and users
Downloads
Where to get main download from
Other downloads available through RP
Drools Sample
Java.net Sample
Downloading and installing RP
- where to find open components (source forge)
- where to find open support
|
- mailing lists
- wiki
- blog
- enterprise level support
- Download from sourceforge
- Getting the latest version from CVS
- Want to contibute – putting your changes back into CVS
- building from source
- building samples from source
- Downloading binarys
Things you will need
- Java
Things that you may need
- Tomcat , Jboss
- IDE such as Eclipse , Netbeans , Oracle Jdeveloper or IBM Websphere
SPREAD THE WORD
If you’re using Red-Piranha , the let us know. Even better, tell your friends. Email everybody you know. Put it on your website (feel free to link to http://red-piranha.sourceforge.net/). Include it in your latest blogs. Anything that you do to spread the word will help us (a lot). Thanks.
Either way (good or bad) , drop us a line on the users mailing list.
MAKE IT BETTER
Already , you can do a lot with Red-Piranha. We would like your help to make it do a lot more. You can help a little , or you can help a lot - it’s your choice. Some things that we would find very useful:
- Bug reports and fixes
- Documentation (your experience of using Red-Piranha)
- Integrations (how you linked Red-Piranha to your systems)
- Extensions (how you got Red-Piranha to do new things)
- Improved Learning Abilities (how you made Red-Piranha smarter)
- Performance and Security (how you made Red-Piranha faster , and more secure)
For more information , send an email to either the project admins or the developer mailing list.
For more information on the structure of Red-Piranha , what it does , and how it does it , a useful point to start is the Specification / Architecture Document.
Technology Setup
How to :
- Setup Jboss IDE
- How to use Hibernate Console
- Oracle drivers (better to use latest)
- Screenshots
- Link to more information
Getting and building RP
3. Download
GETTING STARTED
First of all download Red-Piranha from here. If you’re not sure which one you want, download the ready-to-deploy (bin) file. The other files contain either the ready-to-deploy plus full source (bin_src_lib) or the source only (src).
If you have not already installed Java and Tomcat , you can get them from the Sun Java and Apache Tomcat websites. Red-Piranha should work with Java 1.3 and Tomcat 3 , although we recommend Java 1.4 or higher and Tomcat 4/5.
Unzip the file you have downloaded - there should be a file called RP.war. Copy this file into the the ’webapps’ folder of your tomcat. Within a number of seconds you should see a new folder called ’RP’ created.
Congratulations - your copy of Red-Piranha has now deployed and is ready to use
4. CVS Checkout
1. Skip this step if required
5. Setup project in Eclipse
6. Build
7. Configure
Deployment
1. Locally
2. To Server
3. As part of another application
Project Overview
Technologies we use and why
8. Technologies used and how
9. List from <<PROJECT_ROOT>>common\lib\_readme.txt
Libs used in this application
The libs used are subject to various licences (as per the common folder).
Please check the respective web sites for more details
| Library | How Red-Piranha uses it |
| antlr | "ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, compilers, and translators". Used by Jbsos rules |
| apache-commons | |
| apache-xml | |
| axis | Apache Web Service Toolkit |
| dom4j | |
| fit | libs for the fit / fitness User Acceptance Testing Suite |
| hibernate | |
| hypersonic | |
| j2ee | |
| jakarta-taglibs | |
| jboss | |
| jboss-rules | The Drools rule engine and dependencies Janino - Embedded Java compiler from JBoss poi - Apache Excel Manipulation Library Core - Eclipse Embeddable Java compiler |
| jbpm | Workflow libs from JBoss (but can be deployed anywhere) |
| jena | RDF / XML - Jena , to store all our information in RDF (aka the Semantic Web) |
| junit | |
| log4j | |
| lucene | Apache project search and indexing engine. |
| oracle | Drivers for accessing Oracle Databases |
| pdfbox | For reading and manipulating PDF documents. |
| quartz | Java Job Scheduling Framework |
| Spring | Framework that gives us all the functionality (and more) of Enterprise Java, without the heavyweight container. |
| Struts | Apache Web Framework |
| Xerces, jdom | for XML manipulation |
Folder Structure
| Directory | Comment |
| +---common | |
| | \---lib | Libraries that are common to the core and samples |
| +---core | Red-Piranha core. Used by All the samples. |
| | +---build | Where Java files will be compiled. |
| | +---distrib | Jar and War files for distribution |
| | +---logs | Any Log files generated during the during the running of (core) Unit tests |
| | +---src | Java Source files |
| | | \---net | |
| | | \---fp | |
| | | \---rp | |
| | | +---axis | Axis (Web Service) Related Code - Server |
| | | | \---client | Axis (Web Service) Related Code - Client |
| | | +---common | |
| | | | \---exception | Exception Wrappers used by Red-Piranha |
| | | +---drools | Code to interface with the Jboss Rules (Drools) Libraries – give business rule functionality |
| | | +---hibernate | Code to interface with the Hibernate (Java Object to Relational Database mapping) Libraries. |
| | | +---hypersonic | Code to interface with Hypersonic (Lightweight Java Database, in memory or file based) |
| | | +---jbpm | Code to interface with Jboss Workflow (JBPM – Java Business Process Management) libraries |
| | | +---jms | Code to interface with the Java Messaging Service |
| | | +---search | Code to interface with the Apache Lucene Search and Indexing Engine, provies a lot of extra ’Adaptive Search’ capability |
| | | | +---back | Interfaces with other Systems |
| | | | | +---datastore | Classes that Store of Search Meta Data |
| | | | | | \---vocabulary | Semantic information |
| | | | | +---extractor | Classes to extract data from various souces |
| | | | | +---index | Extensions to the Lucence Indexing Engine |
| | | | | +---search | Extensions to the Lucene Search Engine |
| | | | | \---struct | |
| | | | +---common | Common Search Classes |
| | | | | \---util | |
| | | | +---mid | Classes to implement the Business logic in the application |
| | | | | +---category | - divide searches into different categories |
| | | | | +---feedback | - process feedback events from the user |
| | | | | +---global | - global searches |
| | | | | +---intelligence | Business Logic |
| | | | | \---loader | Loads the various plugins |
| | | | \---plugins | Plugin points for the application |
| | | +---spring | Interfaces to the Standard Spring Framework Libraries |
| | \---test | Junit Tests. The folder structure mirrors that of src. |
| +---doc | Javadocs for RP-Core and the various samples. |
| +---red-adaptive-search | Red Adaptive Search Sample |
| | +---distrib | Where the built war / jar file will be available. |
| | +---lib | Libs specific to this sample |
| | +---src | Java source code specific to this sample |
| | | \---net | |
| | | \---fp | |
| | | \---rp | |
| | | \---search | |
| | | +---simple | Simple Search (no adaptive functionality )interface. |
| | | \---ui | |
| | | +---command | Command line interface |
| | | \---web | Web Interface (adaptive Search) |
| | +---test | Junit tests for the sample Source. Mirrors the folder structure of source. |
| | \---war | Folders and files that are needed to create the deployment (war) file. |
| | +---adaptive | Adaptive Search specific War files |
| | | +---category | Creates a folder that search meta data will be stored in at runtime |
| | | \---plugins | Plugins to extend the search engine |
| | \---simple | Simple Search Specific war files |
| +---red-financial-calculator | Red Financial Rules Engine Sample |
| | | +---dwr | Dwr libs |
| | +---logs | Logs when the sample is run via test scipts |
| | +---src | |
| | | \---net | |
| | | \---fp | |
| | | \---rp | |
| | | \---drools | Tie the Servlet / Web application to the Servlet based rule engine |
| | +---test | unit tests for the sample Source. Mirrors the folder structure of source. |
| | \---war | Folders and files that are needed to create the deployment (war) file. |
| +---red-financial-workflow | Red Work Flow sample (update) |
| \---snippets | Useful bits of code that are not (quite) full samples. |
Samples
1. Make a note of samples – to be review in depth next chapter
2. Standard Sample Structure (folder setup / build files)
3. Go through how to build samples ??? (at high level)
Core Components
10. List what they do
11. Reference
12. Update Javadoc
| 13. List from Javadoc | Refernence to Javadoc online |
Components in Samples
Go through and list
Conclusion
Write conclusion and tie into next section (the three samples)
DEPLOYMENT OPTIONS
Very high level take on how to deploy RP with ....
(do quick google, then plugin)
- Oracle Database
- Oracle Applcaiton Server
- PHP
- Web Logic
- Websphere
- Websphere MQ
- Sun One Applicaiton Server
- Apache Tomcat
- Jboss Application Server
- Ruby / Ruby
- .Net
- IKVM
- Call via Websever
- SAP

