Sunday, October 30, 2011

Tip2. Web Service Performance Tool

When you test web service server in tools such as SOAP UI, XML Spy, etc, let's see what you did.
You provides WSDL and the tool retrieves SOAP message structure, EndPointURL, soapAction, etc.
Likewise, if you know EndPointURL, soapAction, and SOAP request message formation, that's it.
Through this Web Service Performance tool, you just configure these information without having specific WSDL file.
It will return response SOAP message. And also you can concurrently invoke Web Service with multi-threads and it will show you the total and average elapsed times.

Tip2_WebService_Performance_Tool_For_JCAF.doc
Tip2_WebService_Performance_Tool.zip

Ex8. Dynamic Web Service Server Examples

In this article, it will show how to invoke Dynamic Web Service Server in JCAF with two examples.
And also show you how to create WSDL files for this dynamic web service server.

Refer to the below article for Generic Web Service Server Examples.
Example8_RealTime_WebServiceServerRR_For_JCAF.doc
Example8_RealTime(WebServiceServerRR).zip

Thursday, October 27, 2011

Ex7. Dynamic Web Service Client Examples

Batch RealTimeTransaction Type with Generic/Dynamic Web Service Client For JCAF
In this article, I will cover three different examples regarding Generic Web Service Clients.
1. Generic Web Service Client Collaborations over HTTP with HTTP Adapter
- Example shows how to invoke Generic Web Service Server though Generic Web Service Client.
2. Java API for Generic Web Service Client over HTTP

With this API, we will create two different SOAP messages and directly invoke Generic Web Service Server.
- One has 6 records in SOAP message and the other has 50,000 records in SOAP message.
3. Batch Script Utility with Java API for Generic Web Service Client over HTTP
-In general, to handle Big SOAP message for Web Service, it recommends MTOM (Message Transmission Optimization Mechanism) standard. Repository-Based JCAPS doesn’t support this standard. If you use MTOM, the soap message will be encoded based on BASE64 and will be attached over HTTP. BASE64 encoding always increases message by a third. So if you send 116 MB SOAP message through MTOM, actual message size will be 154 MB.
-Through this example, we will test 116 MB SOAP Message through Web Service Utility script without using MTOM.

Refer to the below article for Generic Web Service Client Examples.

CMAF5. Dynamic Web Service Client

In the previous article, I covered how to make generic Web Service Server. Now let’s move on to Generic Web Service Client over HTTP/HTTPS. In this article, I will cover two different kinds of Generic Web Service Clients. 
·   With HTTP Client Adapter (e*Way)
·   Java API for Generic Web Service Client

1. Generic Web Service Clients with HTTP Adapter 
  • svcWebServiceClient : Multithread Supports
  • svcWebServiceClientSequence : Single Thread to support sequential message orders
  • svcWebServiceClientSSL : Supports HTTPS protocol
2. Java API for Generic Web Service Client over HTTP - com.wwlee.jcaps.cs.webservice.WebServiceClient
- WebServiceClient API is Java API to invoke any kind of Web Service Server.
- This API also supports SAAJ (SOAP with Attachments API for Java) in order to download and upload file(s) through Web Service.
- Example
private void invokeDirectWebService( com.stc.connectors.jms.Message input, com.wwlee.jcaps.otd.common.eaicommonheader.ServiceInterface otdEAICommonHeaderIn, com.wwlee.jcaps.soap.envelope.Envelope_ otdSOAPEnvelope ) throws Exception{
 com.wwlee.jcaps.otd.common.eaisoapcommonbody.SOAPCommonBody otdSOAPCommonBody = new com.wwlee.jcaps.otd.common.eaisoapcommonbody.SOAPCommonBody();
 WebServiceClient webService = new WebServiceClient();
 String soapAction = otdEAICommonHeaderIn.getWebService().getWebServiceOutbound().getSOAPAction();
 webService.setRequestSOAPMessage( otdSOAPEnvelope, soapAction );
 String endpointURL = otdEAICommonHeaderIn.getWebService().getWebServiceOutbound().getEndPointLocation();
 String timeOutSeconds = StringUtil.setDefaultStringValue( otdEAICommonHeaderIn.getWebService().getWebServiceOutbound().getEndPointTimeoutSeconds(), "10" );
 webService.invoke( endpointURL, Integer.parseInt( timeOutSeconds ) );
 byte[] soapEnvelopeMessageBytes = webService.getResponseBytesSOAPMessage();
 otdSOAPEnvelope = (Envelope_) webService.getResponseOTDSOAPMessage();
 webService.getElapsedInvokingTime();
 /* Set Invoking Time */
otdEAICommonHeaderIn.getTimeTrackingsHeader().getComponentTimeTracking( countComponentTimeTracking ).setStartInvokingTime( webService.getStartInvokingTime() ); otdEAICommonHeaderIn.getTimeTrackingsHeader().getComponentTimeTracking( countComponentTimeTracking ).setEndInvokingTime( webService.getEndInvokingTime() ); otdEAICommonHeaderIn.getTimeTrackingsHeader().getComponentTimeTracking( countComponentTimeTracking ).setElapsedInvokingTime( webService.getElapsedInvokingTime() );
 if (webService.hasFault()) {
     logger.error( "+++++ Received Fault Message from WebService : " + otdSOAPEnvelope.getBody().getX__AnyText__( 0 ) + " +++++" );
     setEAPReprocess( input, otdEAICommonHeaderIn, "Fault Response Message", "Refer to Fault Message in CMSF" );
     logger.warn( "+++++ It will be sent to Common EAIReprocess Project in CMSF +++++" );
 } else {
     otdSOAPCommonBody.unmarshalFromString( otdSOAPEnvelope.getBody().getX__AnyText__( 0 ) );
     String status = otdSOAPCommonBody.getStatus();
     if (status.equalsIgnoreCase( "ERROR" )) {
         setEAPReprocess( input, otdEAICommonHeaderIn, "ERROR Response", otdSOAPCommonBody.getExceptionInfo().getExceptionMessage() );
         logger.warn( "+++++ It will be sent to Common EAIReprocess Project in CMSF +++++" );
     }
 }
}
Refer to the below article for Generic Web Service Client
CMAF5_Generic_Web_Service_Client_For_JCAF.doc

Sunday, October 23, 2011

Ex6. True Dynamic Routing with Generic Web Service Server Req

In Common Routing, you saw how message can be dynamically routed between JMS and Collaboration Services. In this article, we will see several different dynamic routing mechanisms by using Web Service Server Req Examples. You can apply this routing in any place within JCAPS.
  • Interface Key Based Routing
  • Common Header Based Routing
  • Content Based Routing
This articles has serveral examples for this dynamic routing.
For the detail things, refer to the below document.
Example5_6_RealTimeBatch(WebServiceServerReq).zip

Ex5. Generic Web Service Server Req in JCAPS

In this article, it will continuously cover a couple of things for Generic Web Service Server Req.
  • How to create WSDL for Web Service Server Req
  • Sample Example with PurchaseOrderReq Interface Key
 For the detail things, refer to the below document. Example5_6_RealTimeBatch(WebServiceServerReq).zip

CMAF4. Generic Web Service Server

I had another interesting thinking that 'Can I make generic web service server and client' so that our developer can only focus on its interface mapping? Initially it looked like dream. But this and the following articles will cover how 'Generic Web Service Server' can be exposed and 'Generic Web Service Client' can invoke to other Server, particularly over HTTP/HTTPS. With this approach, you don’t need to expose any addition web service.
This article will briefly cover the high level and peripheral OTDs for Web Service Server mode.
The next couple of articles will cover the examples for Web Services.

Refer to the below article for Generic Web Service Server
CMAF4_Generic_Web_Service_Server_For_JCAF.doc

Friday, October 21, 2011

CMAF3. JCAPS Common Routing

When I started the JCAF (JCAPS Common Architecture Framework) design, I deeply considered two factors.
    . What is the true reusable component?
    . How can the developer focus on interface transformation logic with this reusable component architecture?

This picture is the high level architecture diagram for CMAF (Common Architecture Framework).
The below example is from Batch Connectivity Map as part of examples for JCAF. There are two different things for JMS subscription and publication in Collaboration.  
· JMS Subscription
- In this example, there are 5 Collaborations subscribed to the same JMS queue, called queBatchTransform. How this scenario is possible? The answer is JMS message selector. Based on the transaction type, each Collaboration can share JMS queue or topic. To subscribe specific message to queBatchTransform, you can use JMS message selector.
- For Example, svcFileMappingExample uses JMS Message Selector Name with TARGET and its value with FileMappingExample.
- Most of Collaborations in JCAF are using JMS Message Selector Name with Target.
· JMS Publication
- In every Connectivity Map, Collaboration service seems to publish messages to the same JMS Queue, called queDummy. But this JMS Queue queDummy is actually dummy Queue.
- In the ustilities jar, it has static JMSOTD.sendTo() method in order to dynamically route message to a specific JMS Queue.

    public static void sendTo(JMS jms, String destinationName, String messageSelectorName, String messageSelectorValue, String correlationID, String message) throws JMSException
    public static void sendTo(JMS jms, String destinationName, String messageSelectorName, String messageSelectorValue, String correlationID, String message, String priority) throws
For the detail things, refer to the below document. There are a couple of examples in this blog. You can use the sample.
CMAF3_Common_Routing_For_JCAF.doc

Wednesday, October 19, 2011

CMAF2. MFT (Managed File Transfer)

Every business has a lot of file transferring applications. And also several commercial vendors have the dedicated file transferring products called MFT (Managed File Transfer). Even Gartner Group evaluates MFT products in Magic Quadrant. Let’s see what Gartner Group says.
According to Gartner Group:
Managed File Transfer (MFT)
suites allow businesses to manage and secure the transfer of data between two or more entities including applications and operating systems.
We use the term "managed file transfer" to reflect the growing desire of businesses to manage all aspects of a file transfer not just securing communication.
Gartner “firmly believe that 6570% of application integration, both internally and externally is being done using FTP.”
MFT Manages More Than You Think, and Governs Too.
  - Gartner ( Feb 3, 2010)
As one of architecture components in JCAF (JCAPS Common Architecture Framework), I developed MFT (Managed File Transfer). You don’t need to develop any batch applications to transfer files from/to Remote FTP/SFTP and DropZone area. Everything is configuration based. With Common Scheduler in JCAF, it will maximize your business investment and shorten your development life cycles.
Let's see what is MFT(Managed File Transfer) Framework Feature in JCAF.

  1. One of CMAF (Common Architecture Frameworks)
  2.  Based on JCAPS Batch eWays
  3.  Central Configuration Repository for MFT
  4.  Scheduling by single CMAF Common Scheduler (One of CMAF Frameworks)
  5.  Dynamic Common Routing for Down Stream Service
  6.  Supports 7 MFT Services
    - MFT DropZone
    - MFT SourcePattern (FTP / SFTP)
    - MFT Source (FTP/ SFTP)
    - MFT Destination (FTP / SFTP)
  7.  Integrated with CMSF (Common Service Framework) 
    - Alert, Log, Warn
    - MFT Message Tracking
  8.  Easy Transformation with JCAPS Collaboration
  9.  Automatic FTP/SFTP Connection Retry
  10.  Automatic File Retransferring
  11.  File Correlations Support
  12.  File Encryption / Decryption based on PGP
  13.  Runtime Change for MFT Configuration without Rebuilding or Redeploying
    - Through Reload utility, any changed information will be reflected on MFT
  14. No File Size Limitation – Depending on OS(Operating System)
    - Refer to Example3_Batch_BigFileHandling_For_JCAF.doc with 2GB file.
For the detail things, refer to the below document. There are a couple of examples in this blog. You can use the sample. If you want to know more such as File Correlations, let me know.
CMAF2_MFT(ManagedFileTransfer)_For_JCAF.doc

Monday, October 17, 2011

CMAF1. Common Scheduler

If you have 1000 interfaces which have different time schedule respectively, what's your solution in JCAPS?
·        Expose 1000 JCAPS Schedulers per each Interface
·        Use Unix Cron for Scheduling with 1000 registration
·        Use the commercial Job Scheduler
·        Other options which I don’t know.
Here is a good solution which you can use in JCAPS as a part of Collaboration Service. If you are familiar with Unix Crontab, you will quickly understand how to configure it. Whenever you add/update/delete the record in the table, you don’t need to redeploy or stop this JCAPS component.
1. Common Scheduler Characteristics
1.      Support Unix Crontab-like pattern
- * (Start wild character) support
- Multiple-Times Support with Common(,) or –(dash)
2.       With the different identifier, you can set the same interface key multiple times.
3.      In DAY_OF_MONTH column, you can include and exclude the following special day
- Company’s First Business Day of the Month
- Company’s Last Business Day of the Month
- Special Days of the Month for a Interface Key
*** In order to use it, you need to maintain FirstLastBusinessDay.properties file under $JCAPS_COMMON_ROOT/properties/CommonInterface directory.
4.      Enable and Disable the specific Interface key
- If you change ‘ENABLE’ column value to ‘N’, the interface will be disabled. Default is empty or ‘Y’
5.      Whenever you change or update the values, just run Reload Utility against svcCommonScheduler Service.
6.      Weekday : From Sun(0)  to Sat(6)
2. Example
For the more detailed information, refere to the below url document.
CMAF1_Common_Scheduler_For_JCAF.doc

Sunday, October 16, 2011

Ex4. PGP Cryptography

OpenPGP is a non-proprietary protocol for encrypting email and file using public key cryptography. It is based on PGP as originally developed by Phil Zimmermann. The OpenPGP protocol defines standard formats for encrypted messages, signatures, and certificates for exchanging public keys.
This article will cover PGP utilities in JCAF, and how to use PGP utilities in JCAPS Collaboration based on OpenPGP(Pretty Good Privacy).
The topic orders will be the followings.
1. Properties Files  - PGPKeyManagement.properties, PGPInterface.properties
2. PGP Batch Script Utilities
  - PGPKeyGenerationtUtil.bat, PGPEncryptUtil.bat, PGPDecryptAndVerifyUtil.bat, 
    PGPDecryptUtil.bat, PGPDecryptAndVerifyUtil.bat
3. PGP in JCAPS Collbaorations : Encrypt, Decrypt, SignAndEncrypt, DecryptAndVerify

For the detailed setup and test scenarios, refer to the below document and sample zip file.
Example4_Batch_PGP_Cryptography_For_JCAF.doc
Example4_Batch_PGP.zip

Ex3. Batch Big File Handling

FTP Big File Handling For JCAF

When I interviewed to JCAPS Candidates, I frequently asked the following question.

Source Application will generate 4 GB file and ask JCAPS to pick it up through FTP or SFTP. After transforming, JCAPS needs to do ftp the output file to target ftp server.
However, JCAPS domain has only 1GB memory configuration. Given this scenario, what is the best architecture you can provide, minimally giving impact on the other interfaces?

Most candidates gave wrong answers. Some of them said that Source Application needs to split the file into small ones for JCAPS. (No way. They don’t want to change anything)
Very few people said ‘Use Streaming adapter for FTP’. I believe most clients who need to handle the big file through FTP/SFTP used this approach. 
Personally, I think, this is not best approach. Because get() and put() ftp method is always loading data into memory after generating temporary file. Especially, if you have common MFT (Managed File Transfer) architecture, you don’t need to load any single pieces of source data into memory. 
We will explore how MFT(Managed File Transfer) retrieves and transfers Big File in JCAPS and how JCAPS transforms this file. To simplify my work, I will reuse jcdFileMappingExample Colloboration. Here is test environment information. 

  • Source FTP File
    ü      Record Size : 176 Bytes
    ü      Total Line Number : 10 Millions
    ü      Total File Size : 1,780,000,000 Bytes (1.66 GB)
  • Destination FTP File
    ü      Record Size : 205 Bytes
    ü      Total Line Number : 10 Millions
    ü      Total File Size : 2,070,000,000 Bytes (1.93 GB)
  • Memory Configuration in JCAPS Glassfish Domain : 512 MB

For the detailed setup and test scenarios, refer to the below document and sample zip file.
Example3_Batch_BigFileHandling_For_JCAF.doc
Example3_Batch_BigFileHandling.zip

Saturday, October 15, 2011

Tip1. Java using OTDs

Tip1 : Java With OTD and Big File Handling For JCAF
Somebody asks me why you like JCAPS. One of things is Java and OTD.
If you know Java, you can easily include any JCAPS OTD into your java program. If I have really complex interface, I always use this approach.
Big advantage with this approach is that ‘Your development cycle will be shortened with a couple of times faster’ and ultimately it saves a lot of money for your IT.
I will reuse jcdFileMappingExample collaboration in ‘Example2. Batch Transaction Type article.’ If you don’t have it, please refer to the following URL to download files.
http://commonserviceframework.blogspot.com/2011/10/ex2-batch-transaction-type.html

Java program will be tested with small and big file.
Big file will be generated with batch script called GenerateSampleFile.bat under $JCAPS_COMMON_ROOT\utilities directory.
Total Elpased time with FileMappingExample.java is 366531 milliseconds (6 minutes 6 seconds 531 milliseconds).

Input File
Output File
One Record Size
176 Bytes
205 Bytes
Total File Size
1,780,000,000 Bytes
(1.66 GB)
2,070,000,000 Bytes (1.93 GB)

For the detailed setup and test scenarios, refer to the below document and sample zip file.
Tip1_JavaWithOTD_BigFileHandling_For_JCAF.doc
Tip1_JavaWithOTD_BigFileHandling.zip

Ex2. Batch Transaction Type

In this example2, I will cover ‘Batch’ Transaction type for JCAF.
  • FTP File to FTP File : svcFileMappingExample
  • File to Database : svcDBTableMappingExample
Through this example of Batch Transaction Type, you can explore the following unique characteristics from other JCAPS implementation.
1. Dynamic Routing  
    1
.1 Subscribing to JMS with JMS Message Selector
    1.2 Publishing to JMS
          - In CM, it has only queDummy.
          - Actual dynamic routing is done in Collaboration level with the JMSOTD.sendTo() utility.
2. No Batch Adapter used to read / write files
    - In CM, there is no Batch adapter to read or write to/from a file.
    - BatchLocalFileUtil Class will be used to handle files.
Example:
        BatchLocalFileUtil batchLocalFileUtil = new BatchLocalFileUtil();
        batchLocalFileUtil.setFileName(inputFullPathFileName);
        while ((record = batchLocalFileUtil.readLine()) != null) {
            otdPurchaseOrderApprovalRequest.unmarshalFromString(record);
        }
3. Template based Collaboration
   - Based on 4 different transaction types, it has a different Collaboration template. So just simply copying it will dramatically reduce your development.
   - Tamplate Projects will be released in the future.
4. Exception Handler
   - handleException() method will capture every Exception and will send information to CMSF. It will send automatic Alert notification email to Support and User.
5. Minimize System Usage
   5.1 File reading and writing should be handled with line by line.
        while ((record = batchLocalFileUtil.readLine()) != null) {
           batchLocalOutputFileUtil.writeBufferedFile(OTD.marshalToString());
        }
-With this approach, JCAPS can handle unlimited file size as long as OS allows with a really small system resource.
5.2 Single Element in Custom OTD
- When you create Custom OTD, don’t use group and repeated elements if possible.
- Combined 5.1 approach, we can always protect JCAPS Environment with minimal system usage.
6. Use JDBC Database eWay(Adapter)
    - As long as Database supports JDBC, you don’t need to have specific database adapter. (Cost Saving)
7. Database Connection OTD
    6.1 For the same user database connection, create only one DB OTD and reuse it.
    6.2 Don’t put any detail SQL information in the OTD.
    - Why you create specific DB OTD over and over? Here is example how this approach works. (Refer to jcdDBTableMappingExample Collaboration)
transform(input, otdEAICommonHeaderIn, otdDataStorage.getConnection());

transform(……, Connection conDataStorage){
         String insert = “INSERT ……. VALUES(?,?,?,?)”;
         conDataStorage.setAutoCommit(false);
         preparedStatement = conDataStorage.prepareStatement(insert);
}
8. com.wwlee.jcaps.cs.connection.ExternalDatabaseConnection Java Utility    - Let’s assume you have so many different types of daily, weekly, or monthly Batch interfaces and  need to insert information to different databases such as SQL, Oracle, Teradata, DB2, etc.
    - In this case, do we need to create all of OTDs and put them in Connectivity Map? Answer is no. You don’t need to have Database Connection Pool because is batch.
    - If this is the interface which you have, you can use ExternalDatabaseConnection Java Utility. (Refer to jcdDBTableMappingExample)
8. Always close DB Cursor.
    - Whenever you create statement clause in JDBC, it opens cursor in database side. If you don’t close it and this number is reached to maximum, all of Collaborations which use the same database schema will get the JDBC cursor exception.
     - To prevent this critical issue, the best practice is ‘close the cursor’.
     - In addition, if you use ExternalDatabaseConnection Java Utility, DB Connection should be always closed.
     - I recommend Connection and PreparedStatement should be defined as global variables.
     - Here is example. (Refer to jcdDBTableMappingExample)
    private Connection conMimicBatchExternal;
    private PreparedStatement preparedStatement;
    public void receive(){
         try{
         }catch(Exception ex){
         } finally {
             finallyClose();
         }
    }
   private void finallyClose()
            throws Exception {
        if (preparedStatement != null) {
            preparedStatement.close();
            preparedStatement = null;
        }
        if (conMimicBatchExternal != null && !conMimicBatchExternal.isClosed()) {
            conMimicBatchExternal.close();
            conMimicBatchExternal = null;
        }
    }

For the detailed setup and test scenarios, refer to the below document and sample zip file.
Example2_Batch_For_JCAF.doc
Example2_Batch.zip

Friday, October 14, 2011

Ex1. PassThrough Scenarios

Evaluation Criteria for Example1
1.     Enough with the UNIX cron-style Common Scheduler in JCAF- Why you need commercial JOB Scheduler. Don’t waste your money.
2.     True Dynamic Routing mechanism through Common Routing
3.     No development, just configuration with MFT- MFT stands for Managed File Transfer and is industry standard terminology.
-
Even Gartner evaluates commercial MFT tool.
4.     Minimize Downtime for Service- With JMSQueueReloadUtil.bat utility, you can order reinitialize() to specific collaboration with out redeployment.
5.     Super Power CMSF (Common Service Framework)- Log/Warn/Alert
- Transaction Time and Component Level Time Tracking
Before we understand what is JCAF including CMAF and CMSF, let’s start with very simple examples, called pass through batch interfaces.
Through these examples, you will experience the following CMAF (Common Architecture Framework) components.
  • MFT(Managed File Transfer)
    - MFT Source Pattern with FTP/SFTP
    - MFT Source with FTP/SFTP
    - MFT Destination with FTP/SFTP
    - MFT DropZone with FTP/SFTP
  • Common Scheduler
  • Common Routing
In the JCAF, each interface needs to have its unique interface key.
Example1 contains 4 different scenarios with 4 different interface keys.
  • PTH_SOURCE_PATTERN
  • PTH_SOURCE
  • PTH_DROPZONE
  • PTH_SCHEDULER_DROPZONE
For the detailed setup and test scenarios, refer to the below document and sample zip file.
Example1_PassThrough_For_JCAF.doc
Example1_Passthrough.zip

Wednesday, October 12, 2011

CMAF and CMSF Projects

CMAF and CMSF Projects for JCAF

This article explains how to configure JCAF environment in JCAPS and how to deploy each projects for CMAF, CMSF, Interface Project examples.
Once you import three zip files, you will have the following projects for JCAF(JCAPS Common Architecture Framework) except prjJCAPSInterfaceTemplate(Future Release)

CMAF(Common Architecture Framework) will consist of the following projects.
  • prjCommonEmailApproval (Will not be deployed – Future Release)
  • prjCommonHTTP (Will not be deployed – Future Release)
  • prjCommonMFT
  • prjCommonRouting
  • prjCommonScheduler
  • prjCommonWebService
  • prjJCAPSScheduler
To complete this chapter, you need to download three JCAPS projects
1. prjJCAPSCMSF.zip for CMSF(Common Service Framework)
2. prjJCAPSCMArchFramework.zip for CMAF(Common Architecture Framework)
3. prjJCAPSInterface.zip including Interface Common projects and example projects

and the installation guideline document called CMAF_And_CMSF_Projects_For_JCAF.doc.
 

Tuesday, October 11, 2011

CMAF and CMSF Configuration

 CMAF And CMSF Configuration for JCAF

JCAF(JCAPS Common Architecture Framework) consists of two parts.
1. CMAF(Common Arechitecture Framework)- Common Scheduler
- Common Routing
- Common Generic Web Service Server / Client

- MFT (Managed File Transfer) for FTP/SFTP
- Common Email Approval
- Common HTTP

- JCAPS Scheduler

2. CMSF (Common Service Framework) - Log/Warn/Alert
 - Email Notification to Support and Business
 - Customized Interface Email with Attachment
 - Daily Transaction Report per interfaces.
 - Transaction Time Tracking per Collaboration for each message.
 - Reprocessing the message


Don't create any duplicate services for your business. CMAF and CMSF will be enough for you.

BTW, to have these CMAF and CMSF for JCAF, downoload three files and setup your environments based on Configuration_CMAF_And_CMSF_For_JCAF.doc documentation.

Configuration_CMAF_And_CMSF_For_JCAF.doc
JCAPS_COMMON_ROOT.zip
DBScript.zip

Other Softwares

Other Software Installations for JCAF

To fully test JCAF(JCAPS Common Architecture Framework),  the following third party software needs to be installed in your local machine.

  1. Oracle 11g Enterprise Version (Recommend)
  2. FileZilla Server (http://filezilla-project.org/download.php?type=server)
  3. File Zilla Client (http://filezilla-project.org/download.php)
  4. Java Mail Server 1.6.1 (Open Source)
  5. Mozilla Thunderbird 3.1.10 (Open Source) – Mail Client
  6. Open PGP
For the detailed configuration, refer to the attached file.

Sunday, October 9, 2011

JCAPS 6 CLI Installation

JCAPS 6 Customized CLI(Command-Line Interface) Installation for JCAF(JCAPS Common Architecture Framework)

When you upgrade JCAPS 5.1.X to JCAPS 6, you want to maintain the same JCAPS port numbers. This article will cover how to customize those information in JCAPS 6.  It describes how to install JCAPS 6.2 with CLI (Command-Line Interface) based on JCAPS Common Architecture Framework, called JCAF.


JCAPS6_Customized_CLI_on_Windows_For_JCAF.doc