Disclaimer The opinions expressed herein are author's opinions and do not represent e-Zest's view in anyway. © Copyright 2012
The next big thing is predicts as ‘Web 3.0’ is inseparably close to the term ‘Semantic Web’. Something which essentially means that search engine’s usability and effectiveness to be increased to the extent that it should make one believe that the whole internet is conspiring for you to reach to the information that you need at the least possible your keyboard, mouse or eyeball movement. There are many new promising search engines geared-up to ride on this next wave of IT revolution, with HTML 5 inherent capabilities and auto tagging techniques we hope to see more structured content generation, with web 2.0 phenomenon a lot of UGC and content tagging would further help the web transforming into a semantic web, however we can’t expect the legacy content to be tagged and structured at the same time we can’t live without that content.In this case I see only two directions:1. The content which is not accurately tagged is anyways old and might become irrelevant over a period of time, so it does its natural death (It will still be indexed and searched by our best friend google!)2. The content that’s useful and usable will be transformed into a structured content.What interests me how this transformation of content is going to happen? I think it’s going to happen in following ways:1. Next gen search engines are having NLP based categorization and auto tagging mechanism, that’s where we might see real-estate search engine, music search engine, video search engine, since it’s such a big world to categorize and arrange all the information in a reliable way. 2. Another way this is going to happen is new group of entrepreneurs are going to sought an opportunity to act as data aggregator, indexer and presenter, in short creating more friendly content for next gen search engines. Probably history is set to repeat itself, Yahoo style directory services where categorization of content ( instead of websites previously) is going to be back so will be data scraping, since all you wish to categorize is content and not the application/ program that is generating that output, recalls the days of mainframe based screen scraping, isn’t it?
Today, there is a high demand for Rich Internet Applications (RIA). RIAs combine the maturity, stability and scalability of service orientation with state of the art presentation layer technology to create the next wave of web based distributed applications. RIA applications are defined as the combination of beautiful aesthetics and the feel of desktop applications with the accessibility feature of the web applications. These applications include several features which counter the disadvantages of traditional websites. For an end user, RIA applications serves the best of client-server and web technology, making it imperative for all the small and mid-size businesses, large scale enterprises and even government entities to adopt.
RIAs are implemented into a working system to provide better results to all visitors. These applications are designed, executed and implemented with a view of increasing the overall productivity of the website. By adding RIAs, website developers append a number of flexible features to a website and make it more vivid and alive. With RIAs, websites become more appealing, interactive and responsive and hence have become cutting edge solutions to enhance the way a business operates.
Currently websites and desktops are rapidly moving in the RIA application development direction. Flex development along with many other platforms is used to add RIA applications to a website. In the present world many different types of platforms are available – Adobe Flex/Air, Google Web Toolkit (GWT), JavaFX and Microsoft Silverlight. Each have some of the best features making it difficult to judge which one is the best.
Adobe Flash and Adobe Flex applications are different from each other in many respects, even though they are developed in a way, look very much similar. Flex development is the process of using a collection of web tools, technologies and run time environments to create better RIA solutions. It includes Adobes Integrated Runtime (AIR), Flex SDK and Add-on Components, Adobe Flash Player Runtime, Flex Builder and Server Side Integration Service.
One of the reasons Adobe Flex has become so popular is because of its versatility. Adobe Flex is a software development kit (SDK) based on the Adobe Flash platform. Adobe Flex is used for the development and deployment of cross-platform RIA. The additional advantage of Adobe Flex is that it is an open source framework and by using flex compiler and adobe Flash builder RIAs can be easily developed. Flex development encourages better presentation of business information through rich graphical presentations, multimedia and animated displays. It is a program that can do extraordinary things. Adobe Flex can help build a website from the ground up or if you are trying to design intricate animations, design a highly interactive application or building interfaces for a variety of users, build on existing code or starting over from scratch.
Flex offers a number of remarkable benefits for both developers and end-users, including:
· Record development time due to powerful coding tools and extensive visual component library
· Innumerable good features make it ideal to develop enterprise level applications.
· Solution scalability and reliability due to a powerful and elegant Flex programming model.
· Flex-based solutions are easily re-designed or enhanced whenever it is necessary.
· Easy integration into a server application due to a high-performance data synchronization engine between the client and server sides.
· In-context interactivity due to video, audio, streaming, and messaging components.
· Flex components like Charts, DataGrid, RichTextEditor, ProgressBar, Accordion, Slider etc make Flex development very easy.
All this makes Adobe Flex one of the best RIA development platforms. RIAs have since been widely adopted and proven to deliver tangible ROI to the businesses that deploy them. Measurable benefits include higher customer conversion rates, increased user productivity and improved customer loyalty.
e-Zest’s (www.e-zest.net) dedicated team of (RIA) experts has extensive experience in building interactive & efficient Rich Internet Applications (RIA) development solutions to a global client base. e-Zest offers services that enable its clients to effectively communicate and share their ideas, products and services with their global customers. Our RIA services include Adobe Flex & AIR, Google Web Toolkit (GWT), Microsoft Silverlight, CURL, OpenLaszlo and JavaFX. We offer custom solutions according to needs of the clients.
This Blog is in continuation of my first blog on OSGi.
In the first part we saw what OSGi is and what benefits it offers. In this section I would like to share my experience in evaluating OSGi for developing a Web based application, the challenges I faced, Spring DM server and DM Server development tools for developing OSGi applications. Next I would also share some of my experience in using Spring DM Server for an actual development project
After doing my initial research of the OSGi framework I decided to start my journey on developing a sample Web based application on OSGi.
I soon realized my research is not complete and I still had to explore on how to integrate a Web based application within an OSGi container. I also had to explore on the development tools to be used.
Challenges in developing an OSGi based web application
I faced an interesting challenge here. OSGi applications need to work within an OSGi container whereas Web applications run within a Web Container.
To resolve this issue one can either embed the Web Container bundle (Tomcat bundle or Jetty bundle) within OSGi container or deploy the OSGi platform as a war within the Web Container. I particularly didn’t find these approaches amusing but with no other option left chose the first option.
Oops faced one more challenge here. Tomcat bundle was not readily available. I went through various forums and site where they explained how to build a tomcat bundle. Not to delay my progress I decided to use Jetty bundle which was readily available. It did take time for me to do the initial setup but finally I was set to start my development.
I was using PAX-Construct for handling the OSGi container and for deploying the various OSGi bundles. I went through the various steps that are required to develop a bundle and deploy it using PAX- Construct .I tried a few examples and found the steps to be too exhaustive and time consuming. Searching the open source library bundles manually, installing them and updating the Manifest file was becoming a nightmare. Instead of focusing on business logic my major time was getting spent in OSGi related activities.
My excitement about OSGi was coming down and I was thinking may be OSGi development tools are not matured enough and OSGi is best suited only for desktop based application. I wanted to have a simple deployment container for OSGi Web applications and easy to use development tools.
I wanted to do more research in this area before coming to a final conclusion and so I continued my research on OSGi in the web mode.
After going through several sites and forums I found the OSGi Enterprise Experts Group is working on the RFC66 standard for OSGi web container. I also came across several claims about Spring DM server being the best reference implementation of the standard. I didn’t come across any other implementation of the standard so couldn’t do much of the comparison here and finally decided to do more analysis of the DM Server.
Just after spending a couple of hours on the Spring DM server I found SpringSource has resolved both of my previous concerns. Spring DM Server served as a ready platform for deploying OSGi based web applications and Spring Source DM Server Tools provided very good Eclipse development environment for Spring DM server based applications.
Let’s have a look at what Spring DM Server and its development tools provides us
Spring DM Server
Key Capabilities Include:
Admin Console: deploy and manage artifacts, examine diagnostic dumps, and examine bundle wiring, either in the live system or from a resolution failure
Equinox console extension – manage DM Server and deployed artifacts
Plans - define the artifacts that comprise an application, optionally making the application atomic to tie the artifact lifecycles together, and scoped to isolate the application from other applications
Provisioning - automatically supply the dependencies of an application including bundles, plans, plan archives (PARs), and configurations, from both local and remote repositories
Web container - supports vanilla WAR files, with all their dependencies in WEB-INF/lib, and Web Application Bundles, that import their dependencies via OSGi manifest metadata, via the embedded Tomcat-based reference implementation of the OSGi Web Container specification, configured using the standard Tomcat server.xml
User Region - isolates the kernel from user-installed applications and enables admins to focus on application artifacts and their dependencies without seeing those of the kernel as well
Spring 3 –Spring DM Server packages Spring 3.0 final, but can easily be configured to use a different version of Spring.
Hot deployment - deploy artifacts to Virgo by copying them into the pickup directory, either in archive or exploded form, as an alternative to deploying via the admin console
Logging - via embedded LogBack, configured in config/serviceability.xml, with a rich set of appenders available out of the box
Spring Source Tool Suite
SpringSource provides a set of plug-ins for the Eclipse IDE that streamlines the development lifecycle of OSGi bundles and PAR applications. The SpringSource dm Server Tools build on top of the Eclipse Web Tools Project (WTP) and Spring IDE, the open-source Spring development tool set.
The SpringSource dm Server Tools support the creation of new OSGi bundle and PAR projects within Eclipse, and the conversion of existing projects into OSGi bundle projects. Projects can then be deployed and debugged on a running dm Server from within Eclipse.
Experience of using Spring DM Server in Live Project
I developed a sample Web application based on Spring DM server and its development tools. Once all stake holders were convinced we decided to use it for our next development project.
At the time of writing this blog its beings six months we have been using Spring DM server in actual development. Following are some of my experiences in this period:
To conclude OSGi provides a great platform for building modular Java applications in a true sense. OSGi is proven technology adapted by many open source and proprietary Java Enterprise servers and applications .Spring DM server looks promising as an OSGi web container and the DM server tools greatly simplify the OSGi development tasks. With the standardization of the OSGi web container specifications and Spring Source being actively involved in its implementation we would expect adaption of OSGi in many future Java Web application developments.
Finally I would support the quote posted on Spring Source site by Jan Hendrik Kuperus ‘ Spring DM Server is the future of Java EE’.
PS: At e-Zest, we work on emerging technologies & solutions based on OSGi component framework & Enterprise OSGi specification. Please feel free to email me your queries regarding OSGi on our corporate email id: info@e-zest.net
Nowadays I am doing requirement gathering and analysis for a good project here in Gibraltar.So you can imagine lot of user interactions ,taking interviews of end-users , sometimes shadowing them to their specific work function and lot of questioning etc are going on…at least project started off good and we are heading in correct direction.
For successful execution of project,the team which is going to implement or code,should get understanding of the ideas and concepts and functionality and thus the need of good mock up tool arise. These tools plays a vital role of explaining the ideas and bringing the life to boring documentation. It is truly said that “1 picture is equivalent to 1000 words!”.
In my previous projects,I had mostly used visio and its sort of standard at my workplace for mockups.Though recently I had also tried out serena prototype composer for one project.These tools have their advantages and disadvantages.
Visio is the huge software.It is not meant just for prototyping or diagramming.However,it comes at a price and it requires a lot of time to starting off and be expert with it.You can find massive features are poured on as just any other Microsoft stable software.After using visio ,I came to a conclusion that visio is good tool ,but still not a very handy tool for creating mockups quickly.
I explored a bit more on internet and found Serena Prototype composer.Serena prototype composer scores over visio ,when you want a clickable prototype.But then serena prototype composer needs to be installed where you want to run your prototype and seems to be pretty rigid kind of a tool.I didn’t like it much though it has unique advantage of creating clickable prototype.
Then again in search of perfect mockup tool,I downloaded and tried many. One day(actually night),when on the verge of just concluding that there is not so much great tool other than visio,I found the gold “Balsamiq Mockups”!!!
As a practice,Without much hopes,I downloaded and installed it.As a authentic software engineer,I never use manuals or help to use software [In fact,I had reached to conclusion that if you need help or manual for running a software,there is a problem with usability of that software]. Firing up balsamiq tools,I was just kind of landed in my dreams!! Since,it is just made for making mockups!!! Very no not friendly,I will say inviting user interface.there are all UI elements at the tops with really big and wide tool strip which shows of drag and drop user elements some common like buttons,text,all types of containers(i.e. group box,tabs etc) and some uncommon like accordion,cover flow,video player,street maps etc.The most surprising is I found sticky[comments as they call it ] and charts and graphs as well.Wow! pretty genius work.Since,many business software always need this and very few people do have mockups for this stuff.
You can create a new mockup and start building your mockup by dragging and dropping these elements.When you drag and drop the vertical and horizontal guard lines appear to assist you for placing the elements,taking care of alignments which is again cool feature.
You can set properties of individual element by selecting the element and then property bar appears out of nowhere.You can drag it anywhere so that it will not disturb you or obscure the view of element that you are working with.Also The properties are fantastic set,Just as what needed no extras .These things truly live “YAGNI(You aren’t gonna Need It!!) agile principal.
On top of this,the mock up you created can be saved or imported as XML file or can be exported as PNG files or pdf or clickable prototype.
Balsamiq Mockups team has really come up with really genius product !!
However,there is a saying that greedy man and end-user can never be satisfied
The community of Balsamiq Mockups is also good.And they had come up with several templates that you can find at http://www.mockupstogo.net .
All in all,It is insanely great tool built by genius people out there at Balsamiq.I think I can saved at least 40% of time required to create mockups with Basamiq compared to Visio.I will certainly recommend that try your hands on Balsamiq and you will be happy making your mockups ever after. We are also thinking of this tool to be "de-facto" replacement for visio.
BTW,on special note,We just done the event on "Agile" by well known speaker Stephan Forte. He has spoken on Balsamiq for more than 5 minutes in his speech. I think that proves the mettle this tool has!
RIA is already excelling in B2C environment with all sorts of applications being developed on it. Adobe AIR, Flex, JavaFX has contributed heavily to its popularity with their capability to animate, 3D UI with simple programming and lot many other things.
Enterprise applications’ RIA requirements are different than B2C applications. Enterprise RIA applications need complex graphics (charts, pie diagrams) and reports, large data sets, offline and online support through sync feature, high scalability, SOA and standards, platform independence, high performance, better security, and manageability with ease.
Curl is catering to enterprise RIA audience through its language built for text, graphics to computational logic. Curl has JIT compiler that compiles Curl applications to the native client hardware for fast runtime performance.
Curl offers better performance, better visualization, and low cost support. With proper development vendor enterprises can reap all its benefits.