You are currently viewing the archive of Mohammed Khan's posts.
-
ESPortlets for Liferay
As we have been working on developing the Esberi Enterprise Suite, we have two parallel tracks of development ongoing, one for the Portal Core development and the other for the Portlets development (we are still to find a name for them). It seems that the portlet development is pretty fast and they are a bit ahead in terms with portal core development, and as we are offering JSR-168 compatibility, we wanted to test them in Liferay. This is when we noticed that as Liferay uses its own custom portlet container, it adds extra files into portlet definitions.
So we got shaped a decent form of a protlet tempalte which is Flex-BlazeDS-Spring based and is generated by using the liferay plugin sdk. To differentiate from the ordinary JSP portlets that liferay plugin sdk creates, we will refer to our kind as ESPortlets. You can go here to download zip file called es-portlets-1.0-SNAPSHOT.zip, download it and unzip it into your liferay plugin sdk (I assume that you are aware of how to work with Liferay Plugin SDK) at the same level where you will find the folder called portlets. And then just follow the below steps to create an ESPortlet which displays a string in the flex ui fetched from a spring bean through remoting:
1. Define your FLEX_HOME path in your build.{username}.properties. Without this the mxmlc compiler wouldn’t work.
2. Navigate into the esportlets folder and from you terminal say
./create.sh helloWorld “Hello World”
Note here that kindly don’t use hyphens between the portlet name as you do while creating liferay portlets (ex hello-world). If you use hyphens between the esportlets name, then you shall have build error.
3. If at step 2 you get success, navigate into the helloWorld esportlet and at the terminal say
ant build-flex
At this point the flex part of the esportlet compiles and builds the swf.
4. After success at step 3, within the helloWorld esposrtlet at the terminal say
ant deploy
This shall deploy the portlet on to the Liferay server and you shall find it under ES SDK Portlet category while adding applications.
Demystifying the ESPortlet structure:
If you look into WEB-INF folder under helloWorld docroot, you shall notice few additions which are:
1. In the libs foler you shall find jar files used for flex remoting and messaging.
2. There would be a flex folder which contains two files :
services-config.xml: Used to declare the esportlet AMF channels and the spring factory class.
remoting-config.xml: Used to declare esportlet service destinations.
3. There would be a helloWorldPortletContext.xml file which is used to expose esportles spring beans.
So now you can try to explore the esportlet yourself and try creating something different with it. Also I would love to read your comments and feedback if any in regard to esportlets. So thanks and Happy Flexing !!!
-
ES: Portal & Portlet Container Dilemma
As we are currently working on architecture for the snapshot version of Enterprise Suite which is scheduled for release at the end of June 2009, its getting hard to nail on the solution for the Portal & Portlet Container. As we are trying to have JSR-168 portlets compatible with app, it becomes mandatory to have Portal/Portlet container incorporated within the ES. Now here are the following options available for us to work with on ES:
1. Develop a own Portal/Porlet Container: This sounds great but if we adopt to this solution then we would have to extend release dates, which is quite not possible at this point of time. And we are still working on this.
2. Use Pluto based Portlet container, with this in hand we would have to adapt to open source portal container like Apache JetSpeed2 (based on cocoon framework), Pluto Portal Driver, InfoGlue, uPortal or Jahia.
3. Use custom available open source Portal/Portlet containers like Liferay or GridSphere. if we are to adopt to this kind of solution, I would be very excited to work and integrate Liferay Portal Engine as its kind of my favorite Portal Server. Its basically because of all available portal/portlets containers available under open source, Liferay is very easy to work, deploy, configure and extensible. In fact to get started with Liferay, you don’t need to have pre portal administration knowledge. And this is what we wish to deliver for the Enterprise Suite at Esberi.
Anyways in the coming days we would be locking upon either one of the solutions stated above and I shall post a blog on the considered solution and why we tend to go with it. If you have any suggestions kindly email me or leave a comment here, which would be great.
-
Esberi Enterprise Suite : UI Sneak Peak
As the Esberi Enterprise Suite v1.0 M1 is well on schedule to be delivered by early September 2009, I thought it would be better if I could share some UI designs and get some feedback. Anyways more details about Esberi Enterprse Suite will be posted soon, so watch out for this space.
-
Seam Flex Integration
Off late there has been lot of integrations happening between Adobe Flex and other J2EE technologies, Flex-Spring, Flex-POJO, Flex-Hibernate, Flex-Struts and many more which have evolved maturely and have been stable over last two years. But there has been very little work on Flex-Seam integration, Seam is a very robust framework for server side technology but i have hardly seen developers working or talking about Flex-Seam integration. This was quite left topic because RichFaces has been native support with Seam frameworks apart from JSF, and you can pretty much to do a lot with them as you do in Flex except that in Flex you have a single page interaction. Also another reason was the current remoting connectors like BlazeDS or GraniteDS didn’t have AMF serialization implemented for Seam framework. Well this not the case now, major work to make Seam based apps to work Flex based apps has been initiated by Exadel, also now GraniteDS Tide supports Seam based backends and also BlazeDS can be made to work with Seam EJBs . With current introduction of work by developers like Max Katz from Exadel, it is now very much possible to develop and deploy stable Flex-Seam based Apps.
Among all possible scenarios to make Flex-Seam work, I would appreciate Exadel Flamingo connector, for the following reasons:
1. Firstly it helps me build all server side classes required for plumbing the server side with the Flex UI framework.
2. Secondly it uses Maven to work on, which i am very comfortable with and i would say even other J2EE developers would be as it gives the freedom change the structures as we want to.
3. Usually in case of BlazeDS or GraniteDS, we have only two components to work with at client side RemoteObject and Producers/Consumers for AMF remoting. But when working with Flamingo, it just does not provide server side jar files but also an AS3 library SWC file, which when included in your flex project, lets you use some Flamingo Client Side Components like Validator, CallSet, SeamBinding and SeamRemoteobject. What would this mean is you don’t have to right custom classes at your flex side to do things like string validation based on business policy or you wouldn’t have to write wrapper classes for VO.
4. It lets me use either of the protocols AMF or Hessian for serialization. Though we all have been using more AMF for data remoting, giving a try Hessian is worth (but setting it up sometime can be very tricky) also Hessian is light weight. One difference you will notice is that when working with AMF you use remote-config.xml to define destinations but when working with Hessian you will need to define destinations in web.xml.
5. Also i dont think any tool which doesnt save time is a good tool (no matter how extensible and robust it is). So when working with Flamingo i noticed that i had very little to do on coding extra classes to bind data sets, which i think is very crucial at service integration point.
With these few highlights on Flamingo, do check out Max Katz blogs as he is a commandable authority on Flamingo or anything with Seam and RichFaces. Also in coming days i would post a blog on how to start and work with Flex-Seam based projects using both BlazeDS and Flamingo.
-
The Penne Pasta for Flex 3
As i mentioned in my earlier post that i wanted to write about how i enjoyed having penne pasta. So here it is. A few days back i had some new developers joined in Rajan and Saravanan, who had previously tried only having dishes listed on menu prepared by chefs from Adobe. Now preparing dishes (writing code) for my guest (clients) using the Cairngorm spice takes up a lot of time. And to work with cairngorm based dishes (projects) requires a real good taste and understanding of MVC. Just to prepare an appetizer (small project) with cairngorm spice requires one to prepare several garnishing (write classes) items for it. And this could get worse when you want to prepare a menu which has lot of appetizers, soups, main course and desserts (ui interactions, classes, functions). And also my new helping hands (team members) Rajan and Saravanan wanted some time to understand the real recipe (code structure) behind a main course (already developed project) and they came back with a timeline as 10 days to understand all the ingredients used in the recipe. And my guest (client) couldn’t wait that long. So i had to look for ingredients which are simple, adds good taste (improves the code) to the main recipe and also my existing kitchen helpers (existing project team) could work with it. (I think I should now stop speaking Gordon Ramsay’s language)
So i had started evaluating frameworks which i had used earlier and are new on web. During this i hit upon the Penne Framework which is quite new on the web but it immediately grabbed my interest for the following reasons :
1. As my project team members have experience with Cairngorm, i had to look for something which was very much inline with it and reduces time to implement. Penne could just do that.
2. Also for large projects the cairngorm framework simply adds up several unnecessary classes which affects the final build size. By unnecessary classes I mean are the controller and command class ( I always hated this part of Cairngorm). And Penne was just filling my appetite rightly. It gives me the freedom for not using the command and controller classes and directly dispatching the services from my view classes while still maintaing the mvc pattern.
3. Also i had one member on team who was working with only design related work with Flex, and whenever i introduced him to Cairngorm he hardly showed any progress on it, because it was too hard from him to digest all the classes involved with Cairngorm based projects. But when I ran a session with my team members on Penne, even this guy quickly adopted. When i asked him how was he finally able to do it, he said he hardly had to learn anything. He was now able to work on service integration tier without worrying about the service wrapper classes.
Once I was confident that my other team members would be able to work with it, we started using it on our current assignment and believe me I had a positive result and a good response from my client. To know more about Penne framework and how it works out you can visit this site , this site also has the penne diagram explorer, as you have one for the cairngorm. So Bon Appetit !!!
-
ActionScript Frameworks
I wanted to write a blog today on Penne framework, as i have been using it currently for a flex project, but i thought it would be worth to first list out available frameworks for ActionScript and write some notes about it. Also i wanted to maintain this as a list which can be updated as and as on I or you discover new frameworks available for AS2/AS3. So below is the list and some thoughts about it, also feel free to comment about what i am missing in this list and i will added it up here.
1. Cairngorm Framework : Cairngorm framework is maintained by Adobe and is kind of most widely used framework for AS3. Its very comprehensive to implement MVC but makes a developer do more routine job to implement even a small functionality. And it doesn’t allow you to setup easily for Flash based applications, which i feel is a constraint.
2. PureMVC : PureMVC framework comes in two flavours STANDARD and MULTICORE and its not just for AS2/AS3, it has been ported for C#, ColdFusion, haXe, Java, PHP and Python. It almost has everything to implement MVC framework and allows features like Deferred Instantiation to be implemented. Also this framework can be used for Flash, Flex or Apollo based applications.
3. Gaia : I think anyone who wants to implement Flash based apps and wants to have mvc structured code should use Gaia. This framework is generally for Adobe Flash platform, and allows developers with rails like scaffolding feature. In my past work i have used it to build flash based apps, and believe me it has saved me a good amount of time hence making my client feel good (which hardly happens in my case). Anyone working on Flash based apps, and still not tried, give it a look at least.
4. VEGAS : A framework not just for building apps compatible with Flash Player 9 runtime but also for legacy developers who still use ActionScript 1 (maybe for mobile games development). With VEGAS you can use other libraries AndromedAS, PEGAS, ASGard, LunaAS and CalistA.
5. Penne : About this framework all i would say is that if you are hungry have it, without preparing much. What I mean is that it requires not much of learning curve. Recently I had a situation where I had to deploy new developers on an existing project (which was using cairngorm) and had to restructure it. Well i didn’t have much time due to deadlines and also didn’t want to go with Cairngorm as it was time consuming and also requires hell lot of time to work with it (to get started). We had few debates and as always Vineet Sharma was advocating for Cairngorm. We started evaluating frameworks which would require low learning curve and we finally hit upon Penne. Its for AS3 but i think its worth looking at it.
6. GUASAX : GUASAX framework is for building Flex/AIR apps and i think the part i like about it is that its non intrusive which would mean that i dont have to extend my classes in the framework to use it again and also it allows me to to user role definitions. It requires a bit of time to understand and i think can be useful for building apps where your interface interactions depend on the user profiles.
7. Model-Glue : Originally started for ColdFusion and now can be used to build Flex applications. For some ColdFusion developers in Esberi this has been a favorite, but the advantage with Model-Glue when using with Flex is that it lets the UI components and consumers dispatch events which are more streamlined.
8. Mate: Like other frameworks, Mate is a event-driven AS3 framework, but the differentiator here is that its a tag-based even driven framework. The central element of the framework is the Event Map aligned with invokers. Apart from just the framework library, other interesting aspect of the framework are the extensions like SQLServiceInvoker, StyleLoader and WeatherLoader (Yahoo Weather API), these extensions are more like pre built classes that can be forked with the framework and lets you save up time.
9. Swiz: Meant for Flex applications, it provides an inversion control and allows to simplify asynchronous remote methods. Unlike other frameworks, Swiz doesn’t adhere to J2EE framework patterns which would mean things like no common folder structures to be used in code.
-
Integrating Voice and Messaging with Flash and AIR
Chuck Freedman, Director of Ribbit’s Developer Platform will be keynoting on how to add communication APIs to Flash and Air. Freedman’s speech at the AJAX World RIA Conference this October 20-22 will highlight on how users can check their voicemail and even read text messages with their application.
Another significant topic Freedman will be discussing at the conference will be about a highly sophisticated application that will allow customers to make and receive calls from Flash without the need to leave the web page or to pick up the phone.
Chuck Freedman is is a leading Flash Platform Engineer. Being the Director of Developer Platform of Ribbit, he integrated his knowledge in multimedia with his proficiency in content management, server-side scripting and database and interactive design.
-
OpenAjax Alliance Backs Up AJAX IDE Interoperability
OpenAJAX Alliance pledged to facilitate interoperability across AJAX IDE through OpenAJAX Metadata.
The OpenAjax Alliance is an organization of leading vendors, open source projects, and companies using Ajax that are keen to the thriving adoption of open and interoperable Ajax-based Web technologies. Its main goal is to speed up customer success with Ajax by promoting a customer’s ability to mix and match solutions from Ajax technology providers and by aiding to drive the future of the Ajax ecosystem.
The organization has published draft specifications for strategies to create an interoperable AJAX Integrated Development Environments. Furthermore, it aims to secure the creation of widgets and to make widgets more interoperable for use in mashups.
-
Zend PHP and Adobe Flex Combined to Create RIAs
Building rich internet applications has become a lot easier these days especially with the emergence of various technologies. One perfect case in point is the use of Flex on the userend as well as PHP on the backend to develop RIAs.
Zend Technologies Inc. has announced its alliance with Adobe Systems Inc. to speed up rich web application development with the deployment of PHP and Open Source Flex Framework. Zend has become popular for providing products and services used for developing, deploying, and managing Web based applications. The company builds application servers, development tools, and programming platforms that support the PHP application lifecycle.
The collaboration of the two huge companies aims to integrate the flexibility, productivity and enterprise reliability of PHP and Zend Platform with the user experience benefits of the open source Flex framework. Both companies also hope to provide technologies, content and services, to allow enterprise developers to create web applications with Flex on the client and PHP on the server. Furthermore, the team up is expected to give developers a more enhanced experience using their own development environments.
-
AJAX and RIAs Pave the Way for the Enterprise Software Suite
At the AJAX World RIA conference and expo on October 20-22, David Knight will present how the availability of an AJAX platform for collecting and monetizing content can significantly alter the enterprise software business. He will be scrutinizing on the ability of AJAX-enabled platforms to remake the suite experience in various application areas. In addition, Knight will be hashing out on AJAX’s capacity to reinvent the desktop experience and improve worker productivity with combined applications.
AJAX is a group of interrelated web development techniques used for creating interactive web applications or rich Internet applications. With this, web applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page.
The AJAX World RIA conference and expo will be held in San Jose, California which will feature more than 90 keynotes, power panels, and general session demos. The program aims to provide information on specific implementation plans that should be taken to survive in the business and gain web success in the years to come.




