| Component | Pros | Cons |
|---|---|---|
| Direct/Direct VM |
|
|
| SEDA /VM |
|
|
Sunday, November 8, 2015
In-Memory Components
Saturday, July 4, 2015
Improving performance by keeping payload simple and small
The size and complexity of the payload have immense impact on the performance. If the payload is huge and complex it would affect the performance as it takes long time to parse the content.
It is often observed that the payload usually has many fields with only a few being populated. Reducing the payload to include only the fields with values would help to reduce the network traffic and increase the processing speed. This can be achieved by explicitly setting the minOccurs value to 0.By default this is set to 1 in XSD.
The following example shows the definition of Meal type schema.
(i) A sample payload with all fields populated would be as follows:
(ii )A sample payload with only few fields populated would be as follows:
Saturday, May 9, 2015
Kick-start Guide for JBoss Fuse Development
![]() |
Ref : http://www.jboss.org/products/fuse/overview/ |
Prerequisite
JBoss Fuse is based on Apache Camel so it is better to have an understanding on Camel before exploring Fuse.
Requirements
Hardware
- Download JBoss Fuse 6.1.0.GA Full Zip (latest as of Apr/2015).
- Need to be a registered user of JBoss Developer to have access to download the file.
- Extract the downloaded file into a local folder. It is preferable to extract the file into a folder which does not have space in its path
- The Fuse server can be started using the
<
>/bin/fuse.bat. The following screen shows up if the server is successfully up.
Ø Maven 3.3.1
Ø JDK 1.6 or 1.7
Installation Steps
- If maven is already installed in your system, then take a backup of the repository and settings.xml and delete these files. The fuse download has issues with the incompatible jars which are in the repository.
- In the settings.xml, configure the JBoss EAP Maven repository,JBoss Community Maven repository and make the repositories active by default.
- Download the stable jar from http://www.jboss.org/products/devstudio/download/ The stable jar as of Apr/2015 is Red Hat JBoss Developer Studio 8.1.0.GA jar file (jboss-devstudio-8.1.0.GA-installer-eap)
- Install the jar (java -jar
<
> < >). - Follow the instructions in the wizard. The installation may take 10 to 15 minutes.
- After this step Integration Stack can be updated.
- Select Software/Update from the JBoss Splash screen and choose the options as shown in the snapshot below.
- For the IDE version 8.1.0,the updates are available on Early access basis, so ensure to select the Enable Early access Check box.
Sunday, March 24, 2013
Identifying Classes using modelling
When designing a system,always believe that the best design is yet to come.Revisiting and Refining the proposed design will always aid to carve out the best design.The domain knowledge is essential key factor to come up with a good design.
Since it may not be feasible for a Designer to be a domain expert right from the begining ,there are some design guidelines to identify the classes.The most commonly used approaches are
1.Noun/Noun Pharses approach:
In this approach ,all the noun and noun phrases are identified from the requirements.
2. CRC card approach:
Using the Class Responsibility Collaborator approach,address a single requirement ,identify the similar objects and group them into a class .Add the responsibility and collaborations for this class.Extending the same to each requirement will render a list of Candidate classes.
Using these approaches,the list of candidate classes can be identified.From the list remove the classes which are duplicate and those which are not related to the system.On analysing the classes,if you find that the class does have significant purpose then define it as an attibute instead of a class .At the end of this analysis a number of candidate classes would be eliminated and the design classes would be derived from this list.
As the design progresses its very common to find that a few of the classes which were identified as the core classes may not be actually required .Having said that it is also possible to come up with totally new classes which were missed in the initial candidate class.
The right set of classes would eventually emerge after a number of interative and incremental cycles.
Saturday, January 19, 2013
Apache Hadoop
It is based on Google's MapReduce algorithm which is a parallel and distributed solution approach for processing large datasets. MapReduce is utilized by Google and Yahoo for their websearch.Using MapReduce,data is transformed into a set of Key/Value pairs and later these are aggregated to provide the search results.
Data in Hadoop is broken down into smaller blocks and distributed throughout the cluster.This aids to execute the MapReduce functions on smaller subsets of the large data set.Apart from Java,Hadoop also provides linker for C++ ,Perl,etc.
Hadoop is ideal for storing large amounts of data, like terabytes and petabytes.The Hadoop Distributed File System(HDFS) is employed as the storage system which is highly fault-tolerant and is designed to be deployed on low-cost hardware.It manages storage on the cluster by breaking incoming data into pieces, called “blocks,” and storing each of the blocks redundantly across the pool of servers. By default,
HDFS stores three complete copies of each file by copying each piece to three different servers but the number of copies is configurable.
Hadoop is very flexible,scalable and can process large amount of data in parallel .This can be deployed on large clusters of commodity hardware,hence it is very cost effective.
Its ideal to use Hadoop when there is a need to analyze enormous amount of information to understand the usage pattern and to predict demand.
Sunday, November 11, 2012
Nailing the Root Cause in Java Exceptions
Packages like Apache's common lang provides convenience method to get the root cause.
(http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/exception/ExceptionUtils.html)
The root cause can also be retrieved by manually iterating down the stack trace using getCause().
The following snippet is a recursive method that is used to retrieve the Root Cause.
public Throwable getMostSpecificException( Throwable exp ) {
Throwable t = exp;
logger.debug( "exp.getMessage()-->" + exp.getMessage( ) );
if ( exp.getCause( ) != null ) {
t = exp.getCause( );
// recursive call
getMostSpecificException( t );
}
return t;
}
Monday, February 6, 2012
Integrating with PayPal
PayPal is one of the largest online payment processors in the world.
It serves as a digital wallet which allows to purchase online in a secured manner. The PayPal System stores the User details and provides the flexibility to purchase by just using the PayPal Account Id .
To use PayPal,the user should create a PayPal account and provide information about the modes which they would like to use for payment like Credit Card ,Bank account etc. The preference order can be configured for the Payment Options. If the user has insufficient fund in their preferred option then the next available option would be used to complete the transaction.
The PayPal services can be integrated with the web applications by using either HTML or using API integration. PayPal SDK is another option to integrate with API.
Sandbox is an isolated test environment provided by PayPal to test its functionality. This is claimed to be an identical copy of PayPal Live Site and it is recommended verify all the PayPal calls in the Sandbox before deploying in the Live environment.
Its easy to get lost in the vast documentation of PayPal ,I feel it could have been organized better. The developer community and forums are better options to seek to sort out issues.


