If you already have an Apache Tomcat server with SSL Enable then Jump to STEP.
#1. To Enable SSL we will create a keystore file to store the server’s private key and self-signed certificate by executing the following command:
Windows: %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA
Unix:$JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA
and specify a password value of “changeit”.
#2. Uncomment the “SSL HTTP/1.1 Connector” entry in $CATALINA_BASE/conf/server.xml and modify as
<Connector executor=”tomcatThreadPool”
port=”8443″ protocol=”org.apache.coyote.http11.Http11NioProtocol”
connectionTimeout=”20000″
redirectPort=”8443″ SSLEnabled=”true”
maxThreads=”150″ scheme=”https” secure=”true” keystoreFile=”${user.home}/.keystore”
keystorePass=”changeit”
clientAuth=”false” sslProtocol=”TLS”/>
Tomcat can use two different implementations of SSL:
The exact configuration details depend on which implementation is being used. The implementation used by Tomcat is chosen automatically unless it is overridden as described below. If the installation uses APR - i.e. you have installed the Tomcat native library - then it will use the APR SSL implementation, otherwise it will use the Java JSSE implementation. Make sure that you use the correct attributes for the connector you are using. The BIO and NIO connectors use JSSE whereas the APR/native connector uses APR.
#3. After completing these configuration changes, you must restart Tomcat as you normally do. You should be able to access any web application supported by Tomcat via SSL. For example, try: https://localhost:8443
Mobile development is one of the hottest areas of software development these days. Every website and business wants a mobile app to compliment their web presence which they are fulfilling by taking the assistance from mobile application development companies. There’s tremendous opportunity for growth in the mobile apps industry and we are right in the middle of a booming industry.
Cross platform development may be defined as a concept in computer software development where you write application code once, and it runs on multiple platforms. This is based on the theory of “write once, run everywhere” concept pioneered in the 90s, and brought to a mainstream reality with Flash in the browser, and AIR on the desktop. The standard evolution of technology has been to make everything faster, smaller, and more portable, and it is only natural that this concept has now come into the mobile development world. In mobile scenarios, it is applied by writing an application using codebase & technology that allows the application to be deployed and distributed across multiple disparate platforms/operating systems/devices.
The biggest problem with mobile development is the fragmentation of platforms that exists. In order to hit most of your audience, you must have to deal with iOS and Android development, and depending on your target audience may be Blackberry application development and Windows mobile development as well. This means learning three different programming languages and four mobile SDKs. All this adds up to more development time and higher development costs. Until the platforms can consolidate on a single technology we have to look elsewhere for tools that can help to simplify the dilemma of all these platforms.
Fortunately, there are frameworks available that can help to make the cross-platform problem a bit less of a burden. Some of them are mentioned below:
Advantages of Cross Platform Development:
1. Lower Barrier of Entry: Due to the ease of use of the development tooling and familiarity of the languages, cross platform technologies lower the technical barriers which may have prevented adoption of native development. This enables your team to focus on what matters – the application; not the skills required to develop on multiple disparate platforms.
2. Reduce the Number of Required Skills for the Development Team: Using cross-platform development technologies, your team only needs to be proficient with one language/skill set. Knowledge of the native development paradigms and languages are always a plus, but are no longer a requirement.
3. Reduced Development & Long Term Maintenance Costs: Cross-platform mobile applications can originate from a single codebase, which requires a single development skill set. You don’t need to have staff for each individual platform. Instead, resources working on the shared codebase can cover all target platforms. Having a single codebase also reduces long term maintenance costs.
4. Play the Strengths of a Technology: Some technologies make tasks easier than others. For example, programmatic drawing and data visualization are very easy using Flex & Action Script. Developing equivalent experiences in native code can be significantly more complex and time consuming. Use the features of the language to their fullest potential, to your advantage- that’s why they exist.
There are other frameworks available similar to both Titanium and PhoneGap; however, another option for cross-platform development is HTML5 application development. An HTML5 web app is built using technologies like HTML, CSS and JavaScript. These apps are accessed through the browser and are not installed through the app store. This can be both positive and negative depending on your goals and how you want to market the app.
Today you will find people who will proclaim that native apps will be dead in the coming years while others say that web apps will never perform as well as a native app can. Regardless of what the future holds, today we are left with this array of disparate platforms that we must support. There is not one best solution that will make this easier for you. The best way is to consider your app requirements, your target audience and how you intend to distributing the app and look at the frameworks available.
Performance—responsiveness and scalability—is a make-or-break quality for software. Software Performance Engineering companies (SPE) provides a systematic, quantitative approach to constructing software systems that meets the ultimate performance objectives. It prescribes ways to build performance into new systems rather than trying to fix them later.
Software Performance Engineering is a software-oriented approach; it focuses on architecture, design, and implementation choices. Performance Engineering companies uses model predictions to evaluate trade-offs in software functions, hardware size, quality of results, and resource requirements. The models assist developers in controlling resource requirements by enabling them to select architecture and design alternatives with acceptable performance characteristics. The models aid in tracking performance throughout the development process and prevent problems from surfacing late in the life cycle (typically during final testing).
Performance Engineering Objectives:
What Does It Cost?
The cost of using SPE to proactively manage software performance depends on the size and complexity of the system under development, the level of performance risk, and the expertise and experience of the development team, as well as other factors. If not meeting your performance goals would endanger the success of your project, you have a performance risk. Factors that increase performance risk include: the use of new technologies, lack of experience in the application area, schedule, market factors, and others.
Conclusion
Performance failures occur when a software product is unable to meet its overall objectives due to inadequate performance. Performance failures negatively impact your bottom line by increasing costs, decreasing revenue or both.
The primary cause of performance failures is a reactive approach to performance during the development process. Cost and schedule pressures encourage project managers to adopt a “fix-it later” approach in which performance is ignored until there is a problem. When a problem is discovered, developers must try to “tune” the software to meet performance objectives if, indeed, they can be met.
The key to preventing performance failures and the resulting project crises is to adopt a proactive approach to performance management that anticipates potential performance problems and includes techniques for identifying and responding to those problems early in the process. With a proactive approach, you avoid the project crises brought about by discovering performance problems late and produce software that meets performance objectives and is delivered on time and within budget.
SCORM, today’s e-learning standard, is a collection of specifications adapted from multiple sources to provide a comprehensive suite of e-learning capabilities that enable interoperability, accessibility, and reusability of Web-based learning content. Organizations adopt SCORM to create efficiencies, lower costs, reduce risk, and increase overall learning effectiveness and return on investment.
SCORM is probably the most important and widely emerging e-learning standard today, whose ultimate goal is ensuring ubiquitous access to the highest quality education and training, tailored to individual needs, and delivered cost-effectively anywhere in the world at anytime.
It is a set of technical standards for e-learning software products. SCORM tells programmers how to write their code so that it can “play well” with other e-learning software. Specifically, SCORM governs how online learning content and Learning Management System (LMS) communicate with each other.
The major benefits of SCORM in E-Learning platform are outlined below:
The internet standards have changed considerably over the last decade. Technology has shifted from Web 1.0 to Web 2.0 and now towards Web 3.0.
While Web 1.0 was very basic in its approach, Web 2.0 worked on a concept called Folksonomy. Today, Web 3.0 works on Me-onomy, meaning relating to the individual or the organization.
| Points of Difference | Web 2.0 | Web 3.0 |
|
Meaning |
Web 2.0 is wildly read-write web |
Web 3.0 is portable personal web |
|
Focus |
Focused on communities |
Focused on individuals |
|
Applications |
Blogs |
Lifestream |
|
Content |
Sharing content |
Consolidating Dynamic content |
|
Formats |
XML, RSS |
The Semantic Web |
|
Features |
Web Applications |
Widgets, Drag & Drop Mashups |
|
Concept |
Tagging (Folksonomy) |
User Behavior (Me-onomy) |
|
Example |
|
NetVibes |
|
Costing |
Cost per click |
User Engagement |
|
Media |
Rich Media, Viral |
Advertisement |
|
Attributes |
Web 2.0 have attributes such as information sharing, interoperability, user-centered design and collaboration |
Web 3.0 have attributes like Deductive Reasoning, Contextual Search, Evolution of 3D web, Personalized search and Tailor made search |
|
Usability |
Web 2.0 app may use online knowledge community, which involves people tagging of content and its categorization |
Web 3.0 app uses content management systems along with artificial intelligence. These systems are capable of answering your questions because it can think on its own and find the most probable answer to the query. This signifies that web 3.0 can also be termed as “machine to user” standard |
Final Thoughts
No matter what the terms or how things are explained, one thing is certain: the future of the Internet and technology is extremely exciting! Things will only continue to evolve into more collaborative and personal ways which is great for everyone on a personal and professional level.
| Key Differentiators | Native Apps | Web Apps |
|
Meaning |
Native Applications are specifically designed to run on a device’s operating system and machine firmware It typically needs to be adapted/adjusted for different devices |
Web Applications are those in which all or some parts of the software are downloaded from the web each time it is run It can usually be accessed from all web-capable mobile devices |
|
Technical Difference |
A native application developed for the iPhone will need to run on its proprietary iOS platform or on Symbian for many Nokia devices, and so forth |
A web app, however, is typically coded in a browser - rendered language such as HTML combined with JavaScript |
|
Internet Access |
Not Required |
Required, except for rare apps with offline capability |
|
User Interface |
Native apps are responsive and functional |
Browsers can be clunky, but new advancements in JavaScript like jQuery Mobile are catching up fast |
|
Installation/Updates |
It should be deployed or downloaded |
Hit refresh |
|
Device Compatibility |
Platform and Hardware dependent |
Platform-agnostic, content can be reformatted with CSS to suit any device |
|
Media Streaming |
There are few problems with audio and video. Flash works, but only if the device supports it |
Browser-based audio and video are getting there, but still there is a compatibility issue. Flash works where supported |
|
Discussion and collaboration |
Permits only if you build it, and it’s more difficult if data is disparate |
Discussion is easy, as all data is stored on a server |
|
Fonts |
Tight control over typefaces, layout |
Almost on par, thanks to advancements in web standards. Give it six months |
|
Security |
Native apps definitely enjoy an architectural advantage in security, as they do not need to connect with the network as frequently as Web apps |
Web apps are less secured as compared to native apps due to their network connectivity |
|
Sharable/Tweetable |
Only if you build it in |
Web links are shared freely. Social APIs and widgets allow easy one-click posting |
|
Development |
Specific tools are required for some platforms (like Apple’s). A new app needs to be built for each target platform |
Write once, publish once, and view it anywhere. Multiple tools and libraries are available to choose from |
|
Distribution |
Most app stores require approval. And so, long waiting time |
No such issues |
So far we have been mainly discussing the choice between native and Web apps for mobile devices. Personally I believe Web apps will take on a larger mind share among both publishers and consumers, as hardware complexity grows and the desire for immediacy increasingly dominates modern media consumption behavior.
Liferay Social Office is an enterprise social collaboration solution for document sharing and team collaboration that streamlines communication, saves time, builds group cohesion and raises productivity. It offers team calendaring, blogs, forums, task management, and more. It can be integrated with Microsoft Office, and runs on a combination of MySQL and Tomcat.
Liferay positions the software as a budget alternative to Microsoft’s Sharepoint. Social Office supports SharePoint’s protocols, so that documents can be opened, saved, locked and edited in MS Office.
The various features offered by Liferay Social Office are outlined below:
Document Library: Liferay Social Office acts as a web-based shared drive. It is being used to centralize and organize all the files. Time-saving features are built in, including multiple file uploads and familiar desktop folders. File’s format can also be changed at the time of upload (i.e., .doc to .pdf).
Work from the Desktop: Liferay Social Office allows the user to work from desktop. It features integration with Microsoft Office, which means that when files and documents are uploaded from the local drive, they can be automatically uploaded to the Social Office online.
Team Calendar:This feature allows creating, managing, and searching for group events using the community-based calendar with task lists. Events can be shared across different departments, and event reminders can be set up to alert users of upcoming events by email, IM, or SMS.
Profile: Each user can fill out their own online resume-style profile that can help members discover expertise in the organization. Support project profiles, profile tagging, and personal information.
Wikis: Beyond document sharing, Social Office provides full-featured Wikis to facilitate communal information capture and gathering. Team members can easily start new wiki entries to build up a team’s personal online encyclopedia.
Blogs: This feature facilitates conveying information and conversations around blogs directly. Liferay’s Blogs provide the best features of modern blogging tools and allow keeping up with everyone’s thoughts and activities via dynamic RSS feeds to your email or a “Recent Blogs” display.
Activity Tracking: Activity tracking keeps tabs on personal and team activity and displays this information in various “Recent Activity” viewers for each specific tool, for all items tagged with a certain key word and on a Facebook-style Activity Wall.
Instant Messaging (Chat): Built-in Instant Messaging gives the access to all logged-in team mates. Chat boxes stay at the bottom of the screen as you navigate through Social Office and conversations remain secure behind the firewall.
Sites: Users can create sites which are separate and secured areas in Social Office that can be used for the various departments or teams within your organization. Each Site has its own set of collaboration tools (message boards, blogs), RSS feeds, shared document librarym, and a shared calendar showing the events for the day.
Contacts: This allows users to keep track of people both inside and outside the organization and automatically adds colleagues that share Site membership. Users can email an entire group of Site members all at once.
Related Content: Sites in Social Office automatically display related documents, forum threads, blogs, wiki entries, and users based on the tags found on the content currently being browsed.
| Comparison Parameter | MS Dynamics | Salesforce.Com |
|
Choice of Deployment Model |
Microsoft Dynamics CRM offers a hosted, on-premise, or hybrid deployment models. Not locking in their customers gives Microsoft a unique advantage here. |
Salesforce does not offer multiple deployment options. |
|
Editions and Pricing |
There is only one edition of Microsoft Dynamics CRM Online. The subscription cost is $44 per user per month. |
Salesforce is currently available in five different editions, which range in price from $2 per user per month to $250 per user per month. |
|
Browser Support |
Microsoft CRM’s full Web client currently only runs under recent versions of Internet Explorer. This is due to the fact that MS CRM relies on the Behavior Property. |
Salesforce supports recent versions of Google Chrome, Mozilla Firefox, Microsoft Internet Explorer and Apple Safari. Salesforce publishes a list of supported browser version. |
|
Point & Click Configuration and Customization |
In Microsoft CRM, a System Administrator or System Customizer can add new fields to an entity via point and click. |
In Salesforce, an administrator can add new fields to an object via point and click. |
|
Email Merge |
In Microsoft CRM, email templates can be created by users or administrators. Emails can be sent to one or more people. Email merge in Microsoft CRM is client side. Emails are sent via a user’s local, Outlook client. |
Salesforce allows administrators and users to create email templates. Email merges are server side - they are processed and sent from Salesforce servers. Salesforce also offers tracking for HTML emails and will track each open by the recipient. There is a daily mass email limit of 1,000. There is also a per send limit of 250 for the Professional Edition and 500 for the Enterprise Edition. |
|
Data Import Tools |
Microsoft CRM’s Import Data Wizard allows for importing data to any Record Type in the database. |
Salesforce has a wizard for importing records into the Lead object. It also has a wizard for importing records as Accounts and Contacts as a single operation. In the Salesforce Enterprise and Unlimited Editions, an application called the Data Loader can be used for importing data into any Salesforce object. The Data Loader has a graphical user interface, but can also be run in command line mode, which supports using relational databases as sources and targets. |
|
Outlook Attachments |
This is standard functionality with Microsoft Dynamics CRM and Outlook. |
Outlook attachments aren’t captured in Salesforce. |
|
Multiple Profiles |
It allows users to have multiple roles. In Microsoft Dynamics CRM, this is standard functionality. |
Salesforce.com doesn’t allow multiple profiles. Users must create profiles for every situation. |
These are just a few of the comparison points between Salesforce and Microsoft Dynamics CRM. The year 2012 will be an interesting one for observing the online CRM industry. Corporate buyers will ultimately determine the outcome of the Salesforce vs. MS Dynamics competition for CRM market share.
Mobile devices are becoming an essential part of our day to day life whether it is for personal or business use. Mobile phones, wireless PDAs, and specialized wireless devices are being used to read email, perform inventory, get GPS location, and many more applications. As applications are pushed to the mobile environments, there are a number of challenges that need to be addressed. Traditionally, the challenges of mobile devices dealt with issues like size, weight, power, and connectivity. This has not really changed, but is complicated by layering additional requirements like XML Digital Signature on top of an already challenging problem.
The Challenge
Digital signatures provide mobile devices with two main challenges: increased size of data package (transaction) and the need for additional processing. Increased size of the data package ties directly into network connectivity and bandwidth. As the size of data packages decreases the signature becomes a very large part of the overall package and requires more connectivity and time to transmit the data. Digitally signing or verifying digital signatures also places a significant burden on a mobile device. In both operations, the XML data must be normalized using a canonicalization transform and then cryptographically processed. Both of these operations are very computationally intensive and have the potential of injecting enough latency to make the end user experience unacceptable.
Positions
There are several activities underway that are attempting to address issues in the mobile computing environment that have the potential to be impacted by XML Digital Signature in a positive or negative way. If these technologies cannot work successfully with XML Digital Signature then there is a risk that either XML Digital Signature or the other activities themselves will not be adopted. W3C should evaluate mobile initiatives to determine with which activities XML Digital Signature should be harmonized. There are still other technologies that target XML efficiency which should be evaluated for inclusion in the XML Digital Signature specification. Then again maybe the specification as written may not be well suited for mobile environments and other alternatives should be explored.
Harmonization
Two of the initiatives under the W3C are Efficient XML and the W3C Mobile Web Initiative. Efficient XML has been developed to address throughput and performance issues related to the concerns of limited bandwidth and processing power in mobile platforms. The Mobile Web Initiative is aimed at making web browsing more useful for mobile users. Initiatives like these and others may be worthy of harmonization with XML Digital Signature.
Exploration
XML Digital Signature may not be suited for all mobile applications. Canonicalization is very costly with regard to processing power and time. XML digital signatures add size to documents (and packets) and can more than double the size of certain transactions. If XML is to be used securely in these environments then maybe a different solution needs to be sought for these applications or maybe a new approach would be warranted in general.
Conclusion
Mobile devices are a part of everyday life and users expect to be able to perform the same functions securely in mobile environments, as they perform in tethered environments. Consideration of mobile environment requirements when updating the specifications is prudent and should further the acceptance and implementation of specifications like XML Digital Signature.
HTML 5 is one of the hottest growing web development platforms. Technology leaders like Apple and Google have been revolutionizing the community at such a pace that market has been flooded with the iPhone/iPad/Android applications. According to many web development professionals and experts, HTML 5 will gain a lot of importance quickly due to the upsurge in demand and requirements of mobile web development. The rising number of mobile websites for businesses are being developed all over the world as companies are considering mobile commerce a remarkable strategy that brings a new era of opportunities.
Why to opt for HTML 5:
HTML5 is revolutionizing the way the internet will look and feel. Programmers and coders will have more control of the pages they are creating, and they won’t need so many plug-ins.
Web browsers are also beginning to support HTML5. Mozilla Firefox, Google Chrome, Apple’s Safari and Opera and four major players in this game.
The main benefit everyone is talking about is the simplicity of HTML5. While XHTML was not adopted by a lot of larger web browsers, HTML5 has promise of streamlining coding language, media, and overall user experience.
Key Benefits:
Drawbacks:
Despite of numerous benefits, it has gaps between native and HTML-based mobile applications:
Path going forward:
Due to the limited browser’s support to HTML5 standards, it is difficult to interpret whether Native application development or HTML5 applications are more efficient. It totally depends on the browsers/market segment targeted for a particular application.