Generally there are 2 major components involved while making any Java web application to go live.
o Application OR Servlet container
o Database
Now, we will be focusing more on open source items while going through the check list. So mainly the focus will be on Tomcat, JBOSS, MySQL.
Things to be considered while making Java web application go-live.
So let’s get started:
o Make sure that you have allocated enough JVM heap size to your application server. This will depend on your application server, but general recommendation is to give at least 1 GB heap size to your Java server.
Like example: “ –Xms1014m –Xmx1024m”
o Make sure that you keep the minimum and maximum heap size values same.
o Allocate the proper PermGem memory to your Java web application server. You should allocate at least 512 MB size if you are using modern frameworks like Struts, Spring as they do require dynamic class loading and reflection.
Example: “-XX:MaxPermSize=512m”
o Allocate the value for –Xss to your java process. Example “-Xss256k”
o Enable GC logs.
Example “-Xloggc:D:\spec1\jvmgc.log -verbose:gc -XX:+PrintGCDateStamps”
o Enable heap dump on out of memory and path for heap dump. Example
? -XX:+HeapDumpOnOutOfMemoryError
? -XX:HeapDumpPath=D:\ tomcat\webapps
o Enable automatic log rotate of your application server log files.
o Enable automatic back-up of your application server configuration file at certain predefined interval times.
o Enable automatic back-up of your database.
o Write the script which will check at predefined internal that weather the tomcat is running ok or not. If not then script should restart the tomcat server.
o Make sure that you have strong monitoring mechanism in place for production server. Use open source tools like JavaMelody or RHQ.
We expect above mentioned information is enough to bring any application go live. If you have any question or comments related to how to enable best practices for making Java application go-live, feel free to contact us at lead@spec-india.com
Apple is a leading providing of mobile devices which include iPhone, iPad, iPod and many other devices and gadgets, which make our life easy. Like any other gadgets, these devices too can be used for useful and helpful intentions or for illegal activities. Hence for security reasons and to avoid these types of illegal activities or to keep track of these types of activities apple uses a mechanism called “UDID” (Unique Device Identifier).
This mechanism is used to keep track of each device like iPhone or iPad. This UDID is provided uniquely to each device. So it is like secret information that should not be published anywhere or should not be available to anybody at any cost. But some hacker group has hacked this information and published over a million UDIDs over the Internet. These UDIDs were taken from app publishing company Blue Toad. This becomes a security issue for all the apple users. So apple decided to deprecate the use of UDID from all the apps that are directly using UDID of device in that.
First of all let’s understand what is an UDID? UDID is an alphanumeric string, which is unique to each apple device. All iOS developers use this UDID in some wrong way. They use this UDID to keep track of user’s choice about the other apps. They collect this information and then sell it to the third party. So this way it becomes an illegal activity to sell this type of secret information and user’s privacy does not stay safe. So apple started rejecting apps, which are using UDIDs directly. User’s privacy is more important and if it is not secured then users device can be opened for unwanted attacks.
Apple has banned the direct use of UDIDs but there are some situations where unique identifiers are required to be generated for each app. If there is no functionality to generate unique identifiers then it can be a very difficult task for the developers to generate and keep track of each unique identifier. But apple has provided a mechanism to create unique identifiers from iOS6 release.
This can be done using CFUUIDCreate function. This function generates unique identifier, which will be an alphanumeric string. Now you can generate UDID using below lines of code.
This identifierString will be generated uniquely each time. So an identifier generated once can persist with the application as long as you want. If other application is generating unique identifier then also the identifiers will be unique because this function monitors each identifier generated by it. So next generated identifier can also work as long as you want. You can store this unique identifier into the NSUserDefaults and can also retrieve also. As per shown below code you can store the identifier into the NSUserDefaults.
The above code will store your identifierString into NSUserDefaults and will remain permanent until it is changed or application uninstalled. The unique identifier stored in NSUserDefaults can be retrieved very easily.
With iOS6, apple has introduced three new APIs to handle unique identifier and to restrict the use of UDID. These APIs are as below.
1) Application Identifier
2) Vendor Identifier
3) Advertising Identifier
These three categories have been defined for which the UDID was mostly used. Using these categories application iOS developers can identify the users uniquely and can track the users but it will not allow accessing the user’s data from other application. Let’s have a close look at these APIs.
1) Application Identifier
Application Identifier, it’s a new API in iOS6 and has been introduced to identify something uniquely. Now, how to generate application identifier and how to use it? Let’s see it.
This way you can generate the application identifier that will be unique and you can simply store it into the NSString. Here, a unique string of 128 bits is generated and it never contains any information regarding hardware. Now you may be thinking that what is the use of this application identifier? The answer is very simple. It can be used for anything. It can be stored in NSUserDefaults and it can persist into the memory as long as the application is installed into the device. It can also be backed up and restored among the devices also. In short, we can say that it works as other items work for NSUserDefaults.
2) Vendor Identifier
Vendor identifier is assigned to each device uniquely for each development team. A team can be of one developer or many iOS developers. When an app is installed on device, a unique identifier for vendor is generated and it remains in the device until the app is uninstalled. It can be backed up but cannot be restored into other device because vendor identifier is generated unique for each device. You can access vendor identifier as described below.
iOS also manages the number of counts for a particular app installed on the device. It is generated randomly when an app is installed on the device for the first time.
3) Advertising Identifier
As the name suggest, it may be used for advertising purpose. It can be used to keep track of how many times a user has tapped on the advertisement. iAd, is a big advertising network handled by apple. In iOS6 apple has changed the UDID to advertising identifier to remove the use of UDID. Advertising identifier is unique to each device and can be available to each app. This identifier is unique to each device and available to any application. It is backed up but is not restored on to other devices. If user executes “Erase All Contents and Settings”, the advertising identifier will be removed. It will not be available after the execution of that command. This makes it possible because the software generates advertising identifier and it is not dependent on the hardware or does not contain any hardware information. If you want to access advertising identifier, just write the below code.
To access advertising identifier, you need to include AdSupport.framework into your project. The major difference between the Vendor Identifier and Advertising Identifier is that only the developer of the app can access vendor identifier and advertising identifier is accessible to any developer. Users have option to limit the track the add. If user makes it enable then only following features can be accessed.
- Frequency Capping
- Conversion Events
- Estimating number of unique users
- Security and Fraud detection
- Debugging
Developer can check this by advertisingTrackingEnabled of ASIdentifierManager class.
Smart phones are not mere phones which are simply used to place a call and nothing else. We play games, listen to music, take pictures, browse the net and do a lot of other things with a smart phone. With the increase in the significance of smart phones in our day-to-day lives - mobile testing has also become an important part of the mobile industry. The ever rising demand of mobile phones and new mobile applications has made ‘Mobile Testing’ into a very necessary task which needs to be undertaken before launching any product. This is because before releasing a device in the market or before uploading an application for public use, it is very necessary to be completely sure of its workings and productivity.
Mobile testing helps the developer to verify the productivity of the created product. Mobile testing is not an easy process as it requires an application to be tested on a number of devices, in different languages and at various locations.
For automated mobile testing the developer has to use external tools for performing per-devised steps to ensure the optimal performance of your product. To ensure that your product is fully functional even under heavy traffic you need to conduct a series of tests to determine its capacity to withstand pressure under all circumstances. For this purpose you can use an automated testing tool – it can run on several devices at one time. With the help of automated testing tools you can determine the application issues occurring in the system; you will get a clear idea about whether your mobile will function as desired in the targeted field. It’ll also reduce the cost of further testing and will lessen the time spent in ‘Quality Assurance’.
• If you need to perform a particular series of test repeatedly then automated testing will save you from having to continuously provide manual input. It will function according to the per-set instructions.
• Automated mobile testing saves time and is an economical method of confirming that the product is functioning at its optimal level at all times.
• Any possible errors or issues which might arise are detected during the automated testing and all the required rectifications are carried on immediately so that no further errors occur. Due to the early analysis of occurring problems, required modifications can be made in quite a less amount of time.
The automated mobile testing is usually used for applications which have a long development cycle and require a lot of maintenance.
The most popular automated testing tools are - See Test (used by Cisco, Microsoft, NYSE, Marvell), Flex Monkey, Money Talk, Test Complete and Device Anywhere.
Due to its advantages, there is a lot of demand of automated mobile testing tools in the market. Spending your finances on automated testing is a wise move because launching your product without prior testing might result in the absolute failure of its functioning. No one wants to launch a faulty device in the market – it will malign your reputation in the field. Automated mobile testing will guarantee a successful run for your product.