<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1587607050533309232</id><updated>2012-01-18T07:43:13.389-08:00</updated><category term='ecm'/><category term='workflow'/><category term='space based architecture'/><category term='jibe'/><category term='javaspaces'/><category term='page refresh'/><category term='document management'/><category term='soa'/><category term='annotations'/><category term='java business integration'/><category term='jbi'/><category term='call contact center'/><category term='eda'/><category term='alfresco 3'/><category term='grails'/><category term='webscript'/><category term='cms'/><category term='slee'/><category term='spring'/><category term='rapid development'/><category term='user interface'/><category term='sca'/><category term='ria web2.0'/><category term='business process'/><category term='call center'/><category term='repository'/><category term='icodix'/><category term='rich internet application'/><category term='alfresco'/><category term='java'/><category term='event driven architecture'/><category term='ajax'/><category term='alfext'/><category term='jain slee'/><category term='esb'/><category term='service orchestration'/><category term='jbpm'/><category term='jibeframewok'/><category term='voip'/><category term='BPM'/><category term='call centre'/><category term='webscripts'/><category term='refresh'/><category term='jibe framework'/><category term='web flow'/><category term='web services'/><category term='mvc'/><category term='rest'/><category term='asterisk'/><category term='ui'/><category term='integration'/><category term='groovy'/><category term='presentation flow'/><category term='service oriented architecture'/><category term='book review'/><category term='sba'/><category term='content management system'/><category term='jibe source'/><category term='jibesource'/><category term='Svarog'/><title type='text'>Daniel Gradecak's Blog</title><subtitle type='html'>talking 'bout (J)evolution ...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-3861375017791671136</id><published>2010-12-09T12:57:00.000-08:00</published><updated>2010-12-14T14:05:57.055-08:00</updated><title type='text'>Alfresco @MVC part 2 - views</title><content type='html'>As explained in &lt;a href="http://gradecak.blogspot.com/2010/11/alfresco-mvc.html"&gt;my previous post&lt;/a&gt;, the idea behind &lt;a href="http://code.google.com/p/alfresco-mvc/wiki/QuickStart"&gt;Alfresco @MVC&lt;/a&gt; is to provide spring annotations through an Alfresco webscript. Why a webscript? Well, simply because it avoids changing the web.xml file and to use AMPs (alfresco module packages).&lt;br /&gt;&lt;br /&gt;A part from that, all this would allow to use spring views and all the features spring @MVC has to offer, like annotated parameters, return methods types and so on. I do not have to preach for spring @MVC but I like using it on my projects and know I can use it with Alfresco ... cool.&lt;br /&gt;&lt;br /&gt;Many of you know about the framework I developed for Alfresco (Jibe) but what Jibe does is imitating Spring in a lot of features and one thing that is helpful is having conditions to evaluate a role or group for instance. Meaning that a specific view is shown to that group of people.&lt;br /&gt;&lt;br /&gt;What about JSPs? At the end that is the solution I appreciate as it is standard and many developers know it, opposed to learning a new framework. Using a tag library is the solution. I have many tag libraries defining different needs like roles, groups, permissions and it is easily extendable in a standard way.&lt;br /&gt;&lt;br /&gt;One more thing to note is the usage of JSON. Again a simple spring annotation @ResponseBody allows to return a JSON representation of your model.&lt;br /&gt;&lt;br /&gt;Soon I will show some examples but for now &lt;a href="http://code.google.com/p/alfresco-mvc/wiki/QuickStart"&gt;Alfresco @MVC&lt;/a&gt; has some previews and a starting documentation, what is good is that there is no need for a lot of documentation as Spring has it:)&lt;br /&gt;&lt;br /&gt;More info can be found &lt;a href="http://code.google.com/p/alfresco-mvc/wiki/Views"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Cheers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-3861375017791671136?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/3861375017791671136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=3861375017791671136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/3861375017791671136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/3861375017791671136'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2010/12/alfresco-mvc-part-2-views.html' title='Alfresco @MVC part 2 - views'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-6303614927217014184</id><published>2010-11-18T02:00:00.000-08:00</published><updated>2010-12-02T02:08:48.086-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webscript'/><category scheme='http://www.blogger.com/atom/ns#' term='rapid development'/><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><category scheme='http://www.blogger.com/atom/ns#' term='content management system'/><category scheme='http://www.blogger.com/atom/ns#' term='annotations'/><category scheme='http://www.blogger.com/atom/ns#' term='alfresco'/><title type='text'>Alfresco @MVC</title><content type='html'>I was never happy with webscripts and I always preferred using Java to Javascript server-side programming ... but that is just a personal opinion and preferences.&lt;br /&gt;&lt;br /&gt;Alfresco 3.4 came with Springframework 3, I have to say that Alfresco has been really slow in adapting newer versions of different technologies and probably they will remain, but this move is a good one and I was waiting for that for a long time. A lot of people are using Springframewok and especially the @MVC annotations and now we can do the same with Alfresco, of course not out of the box.&lt;br /&gt;&lt;br /&gt;To achieve that I wrote a webscript which enables the usage of Spring @MVC inside of any Alfresco modules (AMP). Sure, I must admit that Alfresco Share is using it but I am a partisan of using Alfresco as a platform and not only as a repository, therefore I prefer writing java code integrated with the Alfresco Java API. This way of working opens huge possibilities and you can be much faster in developing new controllers than new webscripts. This approach is a standalone webscript design and let Spring @MVC do the rest for you.&lt;br /&gt;&lt;br /&gt;I did not yet published the code but will be done soon at &lt;a href="http://code.google.com/p/alfresco-mvc/"&gt;Google code&lt;/a&gt;. However here is a preview of what you can do ...&lt;br /&gt;&lt;br /&gt;Firstly you need to initialize the webscript as you would do with any other webscript&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;bean id="webscript.com.gradecak.spring.dispatch.post" class="com.gradecak.spring.webscript.DispatcherWebScript" parent="webscript" scope="prototype"&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;property name="contextConfigLocation" value="/WEB-INF/classes/alfresco/module/com.gradecak.spring/context/dispatcher/servlet-context.xml"&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/property&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/bean&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;than in the servlet-context.xml you simply enable Spring annotations and use all the Spring config you want ...&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;...&lt;br /&gt;&amp;lt;context:annotation-config /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;context:component-scan base-package="com.gradecak.spring.controller" /&amp;gt;&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;and than in the controller you are free to use Alfresco's Java API or any library that you want&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;@Controller&lt;br /&gt;@RequestMapping("/user/*")&lt;br /&gt;public class UserController {&lt;br /&gt;&lt;br /&gt;    @RequestMapping(value = "get", method = RequestMethod.GET)&lt;br /&gt;&lt;br /&gt;    public String getUser(@RequestParam String userId) {&lt;br /&gt;         ....&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Sure, some minor problems appear if you want to use Freemarker as the view but that is just a matter of having Alfresco include a newer Freemarker JAR file and if you want to use a JSON view, Spring is coming with Jackson, but for a higher integration we need a later version of Spring than 3.0.0 provided by Alfresco ... so let's the show go on ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-6303614927217014184?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/6303614927217014184/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=6303614927217014184' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/6303614927217014184'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/6303614927217014184'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2010/11/alfresco-mvc.html' title='Alfresco @MVC'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-8270725075796795469</id><published>2010-09-01T06:19:00.000-07:00</published><updated>2010-09-01T06:29:45.964-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jibe source'/><category scheme='http://www.blogger.com/atom/ns#' term='icodix'/><category scheme='http://www.blogger.com/atom/ns#' term='jibesource'/><category scheme='http://www.blogger.com/atom/ns#' term='jibe framework'/><category scheme='http://www.blogger.com/atom/ns#' term='ui'/><category scheme='http://www.blogger.com/atom/ns#' term='jibe'/><category scheme='http://www.blogger.com/atom/ns#' term='jibeframewok'/><category scheme='http://www.blogger.com/atom/ns#' term='alfresco'/><title type='text'>Content repositories and their user interface</title><content type='html'>After a long time I decided to write my thoughts about enterprise content management systems (CMS) like Alfresco and the user interface that is distributed with it.&lt;br /&gt;&lt;br /&gt;In an effort to simplify their IT architectures and optimize systems company-wide, many businesses are standardizing on a single content- management platform for document management, Web-content management, imaging and intranet publishing. To do so there are plenty of solutions and technologies on the market allowing users to save, update and find their content but many of them lack of a suitable user interface nor a fluid accessibility.&lt;br /&gt;&lt;br /&gt;Traditional solutions offer a strong central content repository and an enterprise database without satisfying user's actual needs like effectiveness or simple usability. On the other hand, the user interface is rarely given such attention and I do think there is a huge gap between repositories and the way they interact with the user.&lt;br /&gt;&lt;br /&gt;As I am in that business I might sound subjective and probably that I am, but for a couple of years my company (&lt;a href="http://jibesource.com/"&gt;Jibe Source&lt;/a&gt; also used to be named iCodix) is targeting especially that market.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-8270725075796795469?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/8270725075796795469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=8270725075796795469' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/8270725075796795469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/8270725075796795469'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2010/09/content-repositories-and-their-user.html' title='Content repositories and their user interface'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-7178610145433270851</id><published>2009-09-04T06:18:00.000-07:00</published><updated>2009-09-04T06:27:12.832-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='alfresco 3'/><category scheme='http://www.blogger.com/atom/ns#' term='alfresco'/><title type='text'>Review : Alfresco 3 Enterprise Content Management Implementation</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.packtpub.com/alfresco-3-enterprise-content-management-implementation/book"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 162px; height: 200px;" src="http://3.bp.blogspot.com/_VLMOOxDw-zQ/SqEVmNJLiGI/AAAAAAAAAAU/jzS3aFYYfZY/s200/Alfresco+image.jpg" alt="" id="BLOGGER_PHOTO_ID_5377603176164460642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When I started reading &lt;a href="http://www.packtpub.com/alfresco-3-enterprise-content-management-implementation/book"&gt;this book (Alfresco 3 Enterprise Content Management Implementation)&lt;/a&gt; I had the sentiment it will be a comparison between the JSF UI client and Share. However, the authors guide the reader through the complete deployment lifecycle, from the installation of Alfresco and MySql to the usage of the exposed interfaces or protocols like CIFS, CMIS and the new Sharepoint protocol.&lt;br /&gt;&lt;br /&gt;If you are new to Alfresco you can learn how to customize Alfresco UI or how to configure a SMTP server to work with Alfresco. Users, groups, permissions, roles, authentication and security are well explained, and there are enterprise use cases that can help the reader to put his hands in practice. Integration with LDAP (OpenLDAP and AD, chaining), JAAS, Kerberos, NTLM is completely described and SSO with CAS will help you to round the picture.&lt;br /&gt;&lt;br /&gt;This book is not only about explaining what Alfresco is and can do, but it will help the reader to chose the best solution for his installation. Users migration is a big thing for a lot of companies and you will not regret to read this book in order to learn how to do that.&lt;br /&gt;&lt;br /&gt;There are also advanced parts like creating custom models, categories, workflows with jBPM. In the chapter 9, the authors show how to integrate external applications with Alfresco. Integrations through webscripts with Droopal, Joomla, FLEX, emails, iPhone, Google, Facebook are very attractive and could be easily extended to a high level enterprise application.&lt;br /&gt;&lt;br /&gt;In the next chapter (10), it is clearly explained how one can benefit from the MS Office integration with Alfresco and how to use the Sharepoint protocol, in order to be able to use several repositories with one user interface.&lt;br /&gt;&lt;br /&gt;What I did like, simply because I do not have much experience with yet, is the OCR integration the chapter 13. So, scanning and optically recognizing text in documents could be one of the last steps in your document management integration and if you need video or audio transcoding than I can only recommend this book.&lt;br /&gt;&lt;br /&gt;In my opinion this book could be useful for system administrators, new and advanced users, as well as managers willing to use a open source content management system in their company.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-7178610145433270851?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/7178610145433270851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=7178610145433270851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/7178610145433270851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/7178610145433270851'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2009/09/review-alfresco-3-enterprise-content_04.html' title='Review : Alfresco 3 Enterprise Content Management Implementation'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_VLMOOxDw-zQ/SqEVmNJLiGI/AAAAAAAAAAU/jzS3aFYYfZY/s72-c/Alfresco+image.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-2675238246019020531</id><published>2009-07-18T05:43:00.000-07:00</published><updated>2009-07-18T05:56:33.859-07:00</updated><title type='text'>Book : Alfresco 3 Enterprise Content Management Implementation</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);"&gt;I received a new book for review and before I read it and publish my comments here is &lt;/span&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;an extracted article titled &lt;a style="font-weight: bold;" href="http://www.gradecak.com/resources/Alfresco%20Implementing%20Document%20Management.html"&gt;"&lt;/a&gt;&lt;/span&gt;&lt;a style="color: rgb(0, 0, 0); font-weight: bold;" href="http://www.gradecak.com/resources/Alfresco%20Implementing%20Document%20Management.html"&gt;&lt;span style="font-family:arial;"&gt;Implementing Alfresco 3.0 Documentation&lt;/span&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;a style="color: rgb(0, 0, 0);" href="http://www.gradecak.com/resources/Alfresco%20Implementing%20Document%20Management.html"&gt;&lt;span style="font-weight: bold;"&gt;"&lt;/span&gt; &lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;that could be of interest for some of you.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-2675238246019020531?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/2675238246019020531/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=2675238246019020531' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/2675238246019020531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/2675238246019020531'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2009/07/book-implementing-document-management.html' title='Book : Alfresco 3 Enterprise Content Management Implementation'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-5825542235400647741</id><published>2009-01-02T02:25:00.000-08:00</published><updated>2009-01-02T03:34:50.317-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javaspaces'/><category scheme='http://www.blogger.com/atom/ns#' term='sba'/><category scheme='http://www.blogger.com/atom/ns#' term='eda'/><category scheme='http://www.blogger.com/atom/ns#' term='space based architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='event driven architecture'/><title type='text'>Are Javaspaces recognized?</title><content type='html'>After some long discussions with my partner about the JavaSpaces topic I still have no clue why &lt;a href="http://en.wikipedia.org/wiki/JavaSpaces#JavaSpaces"&gt;JavaSpaces &lt;/a&gt;or at least the &lt;a href="http://en.wikipedia.org/wiki/Space_based_architecture"&gt;Space Based Architecture (SBA)&lt;/a&gt; is not adopted by the developers and/or the "architects".&lt;br /&gt;&lt;br /&gt;Personally, when it comes only to Java, I think that JavaSpaces could offer a complete stack from the event driven approach to rule engines, with including transactions (local and XA). My question is, am I under/over seeing something or the JavaSpaces and &lt;a href="http://www.jini.org/"&gt;JINI&lt;/a&gt; are not being enough marketed by SUN, or the technology is too complicated for us the "developers". For the integration with other technologies or programming languages I for sure do opt for REST or for an ESB.&lt;br /&gt;&lt;br /&gt;I see the JavaSpaces as an Object-oriented DataBase and also that some other technologies could almost perfectly fit in, like JMS and maybe even a workflow engine. What is surprising to me is that JavaSpaces are not a new technology and that today when most people are talking about grid or cloud computing, nobody is mentioning JavaSpaces. For sure it is much easier to distribute an existing application with &lt;a href="http://www.terracotta.org/"&gt;Teracotta&lt;/a&gt; than writing a highly scalable application with a good architecture behind.&lt;br /&gt;&lt;br /&gt;I also wrote about JAIN SLEE in a &lt;a href="http://gradecak.blogspot.com/2007/09/jain-slee-or-esbjbisca.html"&gt;previous post&lt;/a&gt; and such a "soft real time" technology could also fit in JavaSpaces, at least in my opinion. JavaSpaces seem to be used only in highly scalable environments like Banks need, but what is the difference with Document Management, there we also do need a highly scalable environment.&lt;br /&gt;&lt;br /&gt;There is an open source project &lt;a href="http://www.dancres.org/blitz/"&gt;Blitz&lt;/a&gt; and a commercial vendor &lt;a href="http://www.gigaspaces.com/"&gt;GigaSpaces&lt;/a&gt; providing a community edition, personally I would chose GigaSpaces as it is a company with a big knowledge on the matter and their engine offers a lot of interfaces and features than the JavaSpaces specification describes.&lt;br /&gt;&lt;br /&gt;Well, I just wanted to put my thoughts in this post and to make a relation between those kind of possibilities, maybe I am totally wrong but I would like to hear or find a good reason for that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-5825542235400647741?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/5825542235400647741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=5825542235400647741' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/5825542235400647741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/5825542235400647741'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2009/01/are-javaspaces-recognized.html' title='Are Javaspaces recognized?'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-3476219206450971868</id><published>2008-12-16T22:41:00.000-08:00</published><updated>2008-12-17T01:24:32.449-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jbpm'/><category scheme='http://www.blogger.com/atom/ns#' term='cms'/><category scheme='http://www.blogger.com/atom/ns#' term='webscripts'/><category scheme='http://www.blogger.com/atom/ns#' term='ecm'/><category scheme='http://www.blogger.com/atom/ns#' term='workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='alfresco'/><title type='text'>Book review : Alfresco Developer Guide</title><content type='html'>You think you are an Alfresco expert ... well, read this book and think again. This is actually my conclusion and I was thinking about only having that sentence in this review, because while reading this you are wasting your precious time as you could read the &lt;a href="http://www.packtpub.com/alfresco-developer-guide/book"&gt;Alfresco Developer Guide&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For sure this is not a book for "Java enterprise" novice people and some knowledge and understanding of the Java enterprise stack is required to fully enjoy your reading time. Since I am working with Alfresco for more than 3 years now, I had some development habits that sometimes were not that good, which I realized after reading this book.&lt;br /&gt;&lt;br /&gt;You know or you heard about JBPM, the workflow engine Alfresco is using, it is not a problem, a complete guide is explaining all you need to know to start writing your own flow and to get it deployed. Creating your application model, customizing actions, localizing your messages ... nothing is a secret any more.&lt;br /&gt;&lt;br /&gt;If you want to learn how to get all the benefits out of your "electronical" content then check out the "chapter 4" and see how to add your own content extraction, create business specific content transformation or use Alfresco's Java behavior cut points. After all, an enterprise solution should be able to provide easy integrations with other systems, especially for SSO and LDAP - you want it, Alfresco's has it, Jeff Potts explains it.&lt;br /&gt;&lt;br /&gt;If you are still fan of JSF than you could learn how to customize the default Alfresco User Interface, which is JSF based or learn how to write a custom UI using the webscript framework.&lt;br /&gt;&lt;br /&gt;Jeff also helps you to bring some best practices in your Alfresco development and deployment lifecycle. However, I would prefer to see some more words about Alfresco Module Packages.&lt;br /&gt;&lt;br /&gt;This book was published just before Alfresco 3.0 Enterprise edition was released and is based on Alfresco 2.2 and 3.0 Labs (or community version). Alfresco did some refactoring but nothing was changed that should bother you. Do not be afraid of getting the book as this is probably the best Alfresco book written for developers by a, more than professional, developer.&lt;br /&gt;&lt;br /&gt;Alfresco's ECM capabilities are explained by example but you would like to see Alfesco's WCM possibilities, simply check the "chapter 8" and you will find anything you need to start using it.&lt;br /&gt;&lt;br /&gt;Do you still think you are an expert ? :) I do not ...&lt;br /&gt;&lt;br /&gt;Book details could be found at &lt;a href="http://www.packtpub.com/alfresco-developer-guide/book"&gt;http://www.packtpub.com/alfresco-developer-guide/book&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-3476219206450971868?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/3476219206450971868/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=3476219206450971868' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/3476219206450971868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/3476219206450971868'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2008/12/book-review-alfresco-developer-guide.html' title='Book review : Alfresco Developer Guide'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-6978359239784459420</id><published>2008-09-02T03:55:00.000-07:00</published><updated>2008-09-04T23:45:22.687-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jbpm'/><category scheme='http://www.blogger.com/atom/ns#' term='integration'/><category scheme='http://www.blogger.com/atom/ns#' term='cms'/><category scheme='http://www.blogger.com/atom/ns#' term='voip'/><category scheme='http://www.blogger.com/atom/ns#' term='alfext'/><category scheme='http://www.blogger.com/atom/ns#' term='content management system'/><category scheme='http://www.blogger.com/atom/ns#' term='repository'/><category scheme='http://www.blogger.com/atom/ns#' term='asterisk'/><category scheme='http://www.blogger.com/atom/ns#' term='jibe'/><category scheme='http://www.blogger.com/atom/ns#' term='alfresco'/><title type='text'>Startup company : iCodix and the Jibe framework</title><content type='html'>I was pretty busy these days with being involved in a startup openings and now as a co-founder I am glad to announce its name &lt;a href="http://www.icodix.com/"&gt;iCodix&lt;/a&gt;. Our aim is to provide Java consulting services and Enterprise Content Management (ECM) solutions, especially based on the &lt;a href="http://www.alfresco.com/"&gt;Alfresco&lt;/a&gt; platform. At this stage, where iCodix is just starting, we have an ajax based UI framework for Alfresco called &lt;a href="http://icodix.com/products.php"&gt;Jibe &lt;/a&gt;(former AlfExt).&lt;br /&gt;&lt;br /&gt;Jibe is a complete UI framework based on the javascript ExtJS library. It is tight to the Alfresco configuration and each UI component is configured on the server side and thus is easily reusable.&lt;br /&gt;A lot of components are already implemented and some of them can be seen in the demos available &lt;a href="http://www.icodix.com/products.php#alfext"&gt;here.&lt;/a&gt; However, one could add very quickly new components or layouts as there are a lot of 'cut' points' on which it is possible to attach any behavior or interaction with other systems.&lt;br /&gt;&lt;br /&gt;Jibe's architecture was thought the way to easy the developer's work and to allow the developer to concentrate on the real problem and not to play around with javascripts anymore.  Although, if new components are needed than for sure you have to write some javascript, but at least the need is minimum as there are existing components which are used the most in the business world, like panels, tabs, grids, labels, combo boxes, date pickers, tree lists and a few others.&lt;br /&gt;&lt;br /&gt;Jibe is an addon to the Alfresco platform and we consider it as a UI framework for Alfresco, which is not yet replacing the complete Alfresco feature set but it is not said it will not. Alfresco is also working on some new UIs but they do not target the same market and the same level of integration. Jibe's components are all linked by events and thus it is easy to catch an event on some node or properties and to show or to act in any other component.&lt;br /&gt;&lt;br /&gt;An integration with Groovy is implemented in Jibe and from now on if you are using Jibe, it is not needed to restart the server as far as the UI components configuration is concerned as well as the Groovy services that are integrating third party codes with the Jibe UI.&lt;br /&gt;&lt;br /&gt;The deployment is done as any other Alfresco modules and Jibe coexists with the exiting Alfresco JSF client as well as with any other Alfresco UI clients. The Jibe framework contains a core module and other modules which are enabling different parts of the system like repository browsing  or workflow management.&lt;br /&gt;&lt;br /&gt;As an example of how an application could reuse Jibe and its powerful integration aspect, we integrated the opensource VoIP Asterisk server as a module where Alfresco is turned into a call/contact center, where Alfresco users are becoming agents and where documents are linked to incoming or outgoing calls. With the power of jBPM it is not that hard to implement a predictive dialer within the same and user friendly UI.&lt;br /&gt;&lt;br /&gt;Well, our opinion is that Jibe is the UI layer where you could integrate different applications and to allow it to look as one. It comes out of the box with a powerful content management system which is Alfresco and it can turn on your world and your business :)&lt;br /&gt;&lt;br /&gt;More about Jibe architecture can be found &lt;a href="http://alfext.blogspot.com/"&gt;here.&lt;/a&gt; Although it is an old description but it could give you some ideas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-6978359239784459420?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/6978359239784459420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=6978359239784459420' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/6978359239784459420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/6978359239784459420'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2008/09/startup-company-icodix-and-jibe.html' title='Startup company : iCodix and the Jibe framework'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-2149183508606015325</id><published>2008-05-19T01:00:00.000-07:00</published><updated>2008-05-19T01:56:33.168-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jbpm'/><category scheme='http://www.blogger.com/atom/ns#' term='integration'/><category scheme='http://www.blogger.com/atom/ns#' term='service orchestration'/><category scheme='http://www.blogger.com/atom/ns#' term='business process'/><category scheme='http://www.blogger.com/atom/ns#' term='esb'/><category scheme='http://www.blogger.com/atom/ns#' term='document management'/><category scheme='http://www.blogger.com/atom/ns#' term='BPM'/><category scheme='http://www.blogger.com/atom/ns#' term='soa'/><category scheme='http://www.blogger.com/atom/ns#' term='alfresco'/><title type='text'>Service Orchestration and BPM</title><content type='html'>There is a lot of noise about the Service Oriented Architecture (SOA) and much less about how to coordinate those services or how to assemble them in a logical structure. A business has no gain if SOA is implemented and that those different services are not linked to each other or orchestrated.&lt;br /&gt;The Service Orchestration concept is something that exists for a long time but it seems to me that it is not applied within a lot of organizations. One thing is to have a Service Oriented Architecture implemented for you business and the other is to really reuse and orchestrate automatically your business around those services.&lt;br /&gt;&lt;br /&gt;Service orchestration is a concept mainly used in ESBs but I do not think it should only be used and implemented there. Business Process Management (BPM) is a technology that could orchestrate the services without any problems and some ESBs are using BPM to provide the service orchestration.&lt;br /&gt;&lt;br /&gt;A service should be seen as a step in a business process and there you go, you are free to model your services as a unique business process that suites your needs. A business process mainly needs two kind of steps, which could be manual or automatic. A manual step is where an action is needed by someone from your company or a third party.&lt;br /&gt;&lt;br /&gt;As I am working in document management for a longer period now, I am trying to explain to my clients that they could reuse their existing services in a newly created business process where document management is also completely integrated with the whole solution. Specifically, Alfresco has a BPM solution based on the jBPM implementation and thus document management is already integrated with BPM. The only thing to do is to integrate your existing service within your business process and benefit from it as an added value to your business.&lt;br /&gt;&lt;br /&gt;This kind of integration does not need an ESB and I am not saying that this kind of solution is equivalent to a an ESB implementation. ESBs allows you to do much more than just service orchestration but this is just to explain that SOA is not really an added value to your business if you do not have a business process management around the services.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-2149183508606015325?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/2149183508606015325/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=2149183508606015325' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/2149183508606015325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/2149183508606015325'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2008/05/service-orchestration-and-bpm.html' title='Service Orchestration and BPM'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-4763099138829852934</id><published>2008-04-23T14:30:00.000-07:00</published><updated>2008-04-28T03:26:22.718-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='service oriented architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='book review'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><category scheme='http://www.blogger.com/atom/ns#' term='java business integration'/><category scheme='http://www.blogger.com/atom/ns#' term='jbi'/><category scheme='http://www.blogger.com/atom/ns#' term='soa'/><title type='text'>Book review : Service Oriented Java Business Integration</title><content type='html'>I took some time to read &lt;a href="http://www.packtpub.com/service-oriented-java-business-integration/book"&gt;this book&lt;/a&gt; and I do not think I lost my so "precious" time. I would say that the book is not intended for Java beginners but more for people with a good technical background and especially with at least, some knowledge of the Java Enterprise world. Never the less, if you are not a specialist, just like I am not one, you could still read the book and you could learn a lot of new stuff.&lt;br /&gt;&lt;br /&gt;Indeed, the book is taking you from the beginning and tries to lead you through different technologies like Java Messaging service (JMS), Enterprise Java Beans (EJB), WebServices (WS) and a few more. The author is clearly explaining how to use those different technologies within an Enterprise Service Bus (ESB) and how to implement it using the Java Business Integration (JBI) specification. The aim is to make you understand of how you could use any technology to achieve  the  Service Oriented  Architecture.&lt;br /&gt;&lt;br /&gt;A good point is that the theory is accompanied with a lot of examples based on &lt;a href="http://servicemix.apache.org/home.html"&gt;Service Mix&lt;/a&gt;, which is an Apache JBI implementation. Those samples are insisting on EJB and WS, I would qualify them as realistic or real world samples. My opinion is that it could help a lot of people and companies not to rewrite their existing code but to rather reuse the code they already have and to make it working within a JBI container. You could find some explanations on how to make a real enterprise application using Service Mix and a huge assortment of useful packages like XStream or Axis. Also, on how to expose your EJBs as WSDL, which I find interesting. The samples provided in the book are accompanied with a lot of code and the whole build process. Thus even if you are not familiar with all those technologies you will be able to test and see the samples running.&lt;br /&gt;&lt;br /&gt;All that is strengthen by the link to the Java Connector Architecture and to the point on how to exchange the information between all those different/heterogeneous systems.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;While the book is correctly explaining the point of JBI, I would really appreciate to hear some words about the Service Component Architecture (SCA) and to see something about REST, but not only about WS. There are also a couple of references to VoIP and probably that a parallel could be shown with the SLEE (or JAIN SLEE) specification.&lt;br /&gt;&lt;br /&gt;I also think there should be less explanation about WebServices and especially about the WS versioning, but some more words about XA transactions and services orchestration.&lt;br /&gt;&lt;br /&gt;Finally, I really do recommend the book to those who are not familiar with ESBs or SOA and that want to learn something without investigating a lot on the web alone. Also, as I already mentioned to those who want to use a JBI container but have a lot of EJB and WS implementations around.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-4763099138829852934?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/4763099138829852934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=4763099138829852934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/4763099138829852934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/4763099138829852934'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2008/04/book-review-service-oriented-java.html' title='Book review : Service Oriented Java Business Integration'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-7256948265134431138</id><published>2008-04-16T09:28:00.000-07:00</published><updated>2008-04-16T10:04:30.370-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='webscripts'/><category scheme='http://www.blogger.com/atom/ns#' term='groovy'/><category scheme='http://www.blogger.com/atom/ns#' term='alfresco'/><title type='text'>Alfresco webscripts with Groovy</title><content type='html'>After being a little bit disappointed about using Grails in Alfresco (&lt;a href="http://gradecak.blogspot.com/2008/04/grails-integration-nice-but.html"&gt;see my post below&lt;/a&gt;), I decided to see how could Alfresco be integrated with Groovy.&lt;br /&gt;&lt;br /&gt;Alfresco introduced a while ago the "webscripts", with that they added a powerful scripting API based on JavaScript and the Rhino engine. When you add FreeMarker templates to that, what you could get is a nice output that you could customize to be some JSON data, XML or whatever suites you. That is amazing but I was not that happy as we have to wait for Alfresco to expose more of their services via the scripting API. Adding Groovy capabilities to any application and not only to Alfresco seems "natural" and I think that it helps in prototyping without having to recompile.&lt;br /&gt;&lt;br /&gt;I took the groovy.servlet.GroovyServlet implementation and added a few lines that allows to configure a Spring bean as servlet parameters and to make  them available in the groovy scripts.&lt;br /&gt;The code is not yet published somewhere as a forge project but you can find it &lt;a href="http://www.gradecak.com/resources/groovy-servlet/GroovyServlet.java"&gt;here&lt;/a&gt;. All you have to do is have Spring and Spring MVC on your classpath (Alfresco already has it) add Groovy libraries (groovy-all is a good solution, at least version 1.5.x) and configure your web.xml with the Groovy servlet that I am providing, an example could be found &lt;a href="http://www.gradecak.com/resources/groovy-servlet/web.xml"&gt;here&lt;/a&gt;. That example is using spring's DispatcherServlet but you could use the GroovyServlet as any other servlet, directly in your web.xml. If your are also using the DispatcherServlet then you have to configure it correctly as shown &lt;a href="http://www.gradecak.com/resources/groovy-servlet/groovy.xml"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Once you are done with those configuration just add the desired beans to the servlet configuration and you are on "rails" with Alfresco.&lt;br /&gt;&lt;br /&gt;The samples provided &lt;a href="http://www.gradecak.com/resources/groovy-servlet/"&gt;here&lt;/a&gt; are using the ServiceRegistry bean and it is mapped in Groovy as registry, so to get any other Alfresco service you have to start from there. But you are free to map whatever bean you want.&lt;br /&gt;&lt;br /&gt;Although, some people are saying that there are problems using Alfresco beans with Groovy, I did not have those problems till now, but I am not saying it will happen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-7256948265134431138?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/7256948265134431138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=7256948265134431138' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/7256948265134431138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/7256948265134431138'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2008/04/alfresco-webscripts-with-groovy.html' title='Alfresco webscripts with Groovy'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-7551881989256617319</id><published>2008-04-15T06:38:00.000-07:00</published><updated>2008-04-15T07:39:07.099-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='integration'/><category scheme='http://www.blogger.com/atom/ns#' term='grails'/><category scheme='http://www.blogger.com/atom/ns#' term='alfresco'/><title type='text'>Grails integration ... nice but ...</title><content type='html'>These days I was trying &lt;a href="http://grails.codehaus.org/"&gt;Grails&lt;/a&gt; and I have to say that coding by convention with &lt;a href="http://groovy.codehaus.org/"&gt;Groovy&lt;/a&gt; is very powerful and allows to create new web applications very quickly. It is very helpful when you create a new application because you can change the code without redeploying the whole application as you have to do with a WAR when you change a Java class. Grails has different environment and one of them is development, which is using embedded Jetty. The feature I really like is the integration with the Spring framework and especially the autowiring by name in Grails controllers.&lt;br /&gt;&lt;br /&gt;Although, autowiring is not so new, it is not that easy to have it within an existing application which is using Spring and to integrate it with Groovy i.e. So, I saw in Grails a big big thing. The difference with the development environment and production is that in the dev environment, groovy files are recompiled and as soon as you change something, they are "redeployed". What a great feature, if only I could use it in another web or application  container. Imagine that you have an application and that you could include a framework which is exposing all the beans that you need to your scripts, just by autowiring them.&lt;br /&gt;&lt;br /&gt;You could be able to write a script, and expose some data to the rest of the world from your application without any problem. I already blogged about &lt;a href="http://wiki.alfresco.com/"&gt;Alfresco&lt;/a&gt; (the opensource CMS) and its webscripts, but those webscripts are exposing Java through &lt;a href="http://www.mozilla.org/rhino/"&gt;Rhino&lt;/a&gt; and you have to write some Javascript on the server side. What if we could do the same via Grails (I would say ... WoOoW ...)?&lt;br /&gt;&lt;br /&gt;Although, you can create a WAR file containing your Grails application and just deploy it to Tomcat for instance and you could still benefit of all the Grails feature but not of being able to recompile your "scripts". Yes, it is possible somehow but not that easily. You could still have your dev environment and tell Grails as soon as a script changes to publish it to the production environment, but that is not what I want.&lt;br /&gt;&lt;br /&gt;Another possibility would be to use the features of the dev environment, is to integrate your existing application into Grails. You could expand all the sources and run it via Grails, I am saying that because I want to reuse all the configuration files (Spring, JSF, ...) of the existing application. But, really I do not appreciate that way.&lt;br /&gt;&lt;br /&gt;Also something that attracted my attention were Grails plugins. There is a possibility to know that a plugin has changed and that event could be handled in your groovy code and used for reloading of the necessary scripts. More information could be found at &lt;a href="http://docs.codehaus.org/display/GRAILS/Auto+Reloading+Plugins"&gt;http://docs.codehaus.org/display/GRAILS/Auto+Reloading+Plugins&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Well, I guess that for the needs I have, I do not need to use Grails and I could simply use Groovy with somehow the autowiring enabled in groovy scripts. Probably that would be enough. But the REST approach of Grails is also a nice feature that could just be reused without having your own code or dispatcher servlets.&lt;br /&gt;&lt;br /&gt;So, go with Grails if you need to quickly develop a Java based web application. But I would like to be able to reuse the Grails development environment in another container too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-7551881989256617319?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/7551881989256617319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=7551881989256617319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/7551881989256617319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/7551881989256617319'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2008/04/grails-integration-nice-but.html' title='Grails integration ... nice but ...'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-1668818460241502670</id><published>2008-02-15T13:21:00.000-08:00</published><updated>2008-02-15T15:08:49.035-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='business process'/><category scheme='http://www.blogger.com/atom/ns#' term='document management'/><category scheme='http://www.blogger.com/atom/ns#' term='workflow'/><category scheme='http://www.blogger.com/atom/ns#' term='alfresco'/><title type='text'>Document Management with Alfresco "on rails"</title><content type='html'>For a couple of month I am working for a large international company, where I am helping on introducing a new and open source document management system. The power of open source and thus of Alfresco opposed to other closed source packages, is the open interfaces and the easiness of adding custom features. Whatever solution you chose, you should be sure that the package is enterprise ready. A document management system should provide a way to automate your business processes, to make the document transformations needed, provide metadata management and especially provide a friendly user interface.&lt;br /&gt;&lt;br /&gt;My opinion is that Alfresco has a really powerful core but is still lacking some of enterprise level services. For document transformations Alfresco uses OpenOffice which is used as a server side application while OpenOffice was developed to be more client side oriented. The primary Alfresco user interface is implemented with Java Server Faces (JSF) and does not provide a nice and usable front end for the common user.&lt;br /&gt;&lt;br /&gt;A cool feature of Alfresco that I really do appreciate are webscripts, through which are/will be exposed all the Alfresco functionalities via a REST like interface. This kind of approach will allow Alfresco to be easily decoupled from the JSF user interface.&lt;br /&gt;&lt;br /&gt;It seems to me that Alfresco is trying to be a collaboration platform and not only a document management system. As I already said, Alfresco has a really good core and I would like to know why do they not focus on improving it and on providing an easy way to create new models via a user interface for example and not through several xml and configuration files. The first thing to provide in  order to be a collaboration platform is to have a calendaring system, which Alfresco does not have. Wouldn't implementing CalDAV over their WebDAV implementation be a good start? Sometimes ago I tried to implement it and it does not seem complicated, if somebody is interested I would like to share that idea and the implementation.&lt;br /&gt;&lt;br /&gt;To conclude, soon Alfresco will probably offer a new user interface implementation based on web scripts and AJAX and they will provide some Flex components which is a very good thing, that will be a nice move. Finally, I would like that they stop implementing some pseudo collaboration and just focus on real enterprise collaboration.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-1668818460241502670?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/1668818460241502670/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=1668818460241502670' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/1668818460241502670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/1668818460241502670'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2008/02/document-management-with-alfresco-on.html' title='Document Management with Alfresco &quot;on rails&quot;'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-4475754050843167277</id><published>2008-01-11T15:05:00.000-08:00</published><updated>2008-01-19T02:59:23.933-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ria web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='esb'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='ui'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><category scheme='http://www.blogger.com/atom/ns#' term='rich internet application'/><title type='text'>REST and integration ... ?</title><content type='html'>Since REST has been adopted for a long time now it seems that applications integrations are the next step. Usually I thought that integrating different applications should be done via an ESB I am sure now that it is not true.&lt;br /&gt;&lt;br /&gt;In my opinion any decent application should have different interfaces exposed to the world. One may consider WebServices and some others REST or any other technology or interface.  To keep the focus on integration I will not discuss what is better even if I think that one should use the right tool for the right job.&lt;br /&gt;&lt;br /&gt;Once an application has a REST interface it is very easy to access that information directly from the browser for example, even if you can use it on the server side too. The information provided might be in different format such as XML or JSON. JSON is very suitable for browsers and XML is better handled by the server side.&lt;br /&gt;&lt;br /&gt;To get the data from the application and to make the user experience much better, people are using AJAX today, and that is for sure a must have. There are a lot of Javascript frameworks out there, opensource and commercials ones, that offers AJAX functionalities and also nice widgets or UI components. It is up to everyone to chose the framework that suites the best your needs.&lt;br /&gt;&lt;br /&gt;At the end the integration is very easy to be done. It is true that security is a weak point in such an integration but that can be solved too.&lt;br /&gt;&lt;br /&gt;To enable REST in your application it is good to consider the integration of a server side scripting language and of a templating framework. The templates should allow you to output different formats such as XML or JSON.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-4475754050843167277?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/4475754050843167277/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=4475754050843167277' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/4475754050843167277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/4475754050843167277'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2008/01/rest-and-integration.html' title='REST and integration ... ?'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-5415068497811357341</id><published>2007-12-11T12:56:00.000-08:00</published><updated>2007-12-11T13:15:32.213-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ria web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='page refresh'/><category scheme='http://www.blogger.com/atom/ns#' term='refresh'/><title type='text'>The refresh problem of a web page?</title><content type='html'>I heard many time that people have problems when refreshing a web page. Well, I really do not understand it and I would like that someone points me to a concrete example.&lt;br /&gt;&lt;br /&gt;I agree totally that a stateless application has problems when doing a page refresh but then I would not call it an application but a service or something like that. My opinion is that an application needs some state representation and according to that state you can access stateless services. Thus, when doing a refresh you just show the same things that the user was seeing before the refresh.&lt;br /&gt;&lt;br /&gt;Ok ok, what if you have 10000000 .... users ? What if an atomic bomb .... ? :)  I have read a nice post about user data management sometimes ago but I forgot where I saw it. I will post the link as soon as I find it.&lt;br /&gt;&lt;br /&gt;Actually, the article was stating that with 256 megs you can have a loooot of users, on which I agree totally. Of course, you can have a lot of data in the user session but what about load balancing, caches and ...&lt;br /&gt;&lt;br /&gt;So, is memory the real problem for saving the state on the server side?&lt;br /&gt;&lt;br /&gt;I think that on a technical level using AOP, Spring AOP / interceptors can be considered and used to solve the refresh problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-5415068497811357341?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/5415068497811357341/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=5415068497811357341' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/5415068497811357341'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/5415068497811357341'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2007/12/refresh-problem-on-web-page.html' title='The refresh problem of a web page?'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-1267994986991734993</id><published>2007-10-13T16:43:00.000-07:00</published><updated>2007-11-14T00:16:02.872-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web flow'/><category scheme='http://www.blogger.com/atom/ns#' term='ria web2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='presentation flow'/><category scheme='http://www.blogger.com/atom/ns#' term='mvc'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><category scheme='http://www.blogger.com/atom/ns#' term='ui'/><category scheme='http://www.blogger.com/atom/ns#' term='user interface'/><category scheme='http://www.blogger.com/atom/ns#' term='rich internet application'/><title type='text'>Rich Internet Application (RIA)</title><content type='html'>A non-expert talking about user interfaces should not be taken seriously, but here is some thoughts that came to my mind.&lt;br /&gt;Well, a RIA is in fact a Web Application that has the features like a desktop application.&lt;br /&gt;&lt;br /&gt;A classical web application (let's call it Web1.0 application) has something that we call web flows, presentations flows or whatever how else somebody use to call it. Those flows are page based flows and they dictate the way a user is browsing from one page to another and so on.&lt;br /&gt;I would even say that the page flow is dictated by end user requirements for the usability of the application (i.e a real state application, bank application ... ).&lt;br /&gt;&lt;br /&gt;A RIA (or Web2.0 apps) should not limit users to a predefined flow. I think there should be no flow at all, because the user should be able to do whatever he/she wants at any moment and in any way. For example, one should be able to lookup a contact information while writing an email.&lt;br /&gt;&lt;br /&gt;Actually, MVC (model view controller) pattern helps in separating the user interface from the business logic. But, MVC has not much to do within this article so I will not discuss about it more.&lt;br /&gt;In my mind a RIA should be totally decoupled from the server presentation flow, and there should be no presentation flow, as I said already.&lt;br /&gt;&lt;br /&gt;What about loading the whole user interface at the startup time and let the user navigate through the application just the way he would do it in a desktop application? Well, there should be a possibility to enable some components to be loaded later for example the less used components. The communication with the server should be done using AJAX of course, but the presentation layer is entirely managed by the client side.&lt;br /&gt;&lt;br /&gt;I agree that there are a lot of applications written following this principle already, but I guess  there is some place to think about this and maybe add enhancements to this way of programming.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-1267994986991734993?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/1267994986991734993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=1267994986991734993' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/1267994986991734993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/1267994986991734993'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2007/10/rich-application-interface-ria.html' title='Rich Internet Application (RIA)'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-7496007255021088292</id><published>2007-09-14T15:17:00.000-07:00</published><updated>2007-09-15T14:41:03.517-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='call contact center'/><category scheme='http://www.blogger.com/atom/ns#' term='Svarog'/><category scheme='http://www.blogger.com/atom/ns#' term='call centre'/><category scheme='http://www.blogger.com/atom/ns#' term='call center'/><title type='text'>Svarog - call center</title><content type='html'>Svarog (http://sourceforge.net/projects/svarog/)  is an open source web based call contact center. It is a "real time" application that shows informations happening on a PBX. The only implementation till now is done for Asterix PBX using asterisk-java library (http://asterisk-java.org/). Actually it receives all the informations from the PBX and can send actions to it such as making a call, hangup or transfer. Telephony is not the only way of communication used in Svarog, email and chat should be supported. Emails are queued and so, they are delivered in a FIFO way to different agents in the call center. There is a possibility to give different events (emails, telephony ... ) a higher priority so, if there is an email coming from a VIP client it should be possible to make it come directly to the first place.&lt;br /&gt;&lt;br /&gt;As I said it is a web based application which shows everything in real time in your browser, meaning there is no need to install any software on your desktop. It is an AJAX application using DWR (http://getahead.org/dwr) for the javascript and server side java communication, coupled to  the Springframework (http://www.springframework.org/) it offers solid bases for an application.&lt;br /&gt;&lt;br /&gt;Well, Svarog is in fact developed as EDA (event driven architecture/application) but without using special frameworks for that, just java 5 queues to make the application asynchronous. These days I was looking if that could be improve with an embedded ESB as Mule but I am still not sure if this is a good idea to do that.&lt;br /&gt;&lt;br /&gt;In this blog http://gradecak.blogspot.com/2007/09/jain-slee-or-esbjbisca.html I wrote my thoughts about SLEE and as I said SLEE is something like ESB + JBI + JCA for me. So, probably that I will give it a try very soon.&lt;br /&gt;&lt;br /&gt;Svarog uses DOJO for javascript widgets, DWR for AJAX and Spring on the server side. And all deployed inside the Liferay portal. There is several portlets that are in fact not really independent portlets but each portlet is more like a "widget". I also think that portlets will become something like widget containers in the future. As the first portlet specification does not help in portlet communication I am using dojo topics, which does it pretty well. There is also a possibility to use DWR reverse ajax capabilities but I did not have the time to implement that, but probably that it will be done in the next months. Right now the browser polls each seconds for informations and show it in real time.&lt;br /&gt;&lt;br /&gt;At the beginning  I used MyFaces JSF components but as it lacks (and I think is still lacking) of ajax components I decided to go with DOJO (as I am not a javascript guru... nor Java) I chose DOJO for its simplicity.&lt;br /&gt;&lt;br /&gt;Sometimes after Svarog was working within Liferay portal I decided to make it a separate webapp, just to see if that could be easily done and yes it can be done pretty fast because all those technologies are not tight to portals and may work very well as pure webapps or within portals. With probably a little of refactoring a fat client could be wrote for Svarog presentation layer this is something that I will keep in mind.&lt;br /&gt;&lt;br /&gt;I just decided to blog about Svarog because maybe there would be some people that are interested in it, so the can see the possibilities. There is the mobicents project (&lt;span style=""&gt;&lt;span class="a"&gt;www.&lt;b&gt;mobicents&lt;/b&gt;.org/) which is an open source SLEE implementation, and I would like make Svarog something ala SLEE LIKE ... I will follow may blog about SLEE and ESB and I hope that it will become a nice product soon.&lt;br /&gt;&lt;br /&gt;At the end, Svarog helped me to work with a lot of technologies and I will share my founds like inter portlet communication and other things some other day.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-7496007255021088292?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/7496007255021088292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=7496007255021088292' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/7496007255021088292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/7496007255021088292'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2007/09/svarog-call-center.html' title='Svarog - call center'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1587607050533309232.post-375790899140051921</id><published>2007-09-02T03:29:00.000-07:00</published><updated>2007-09-02T15:15:49.085-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jain slee'/><category scheme='http://www.blogger.com/atom/ns#' term='esb'/><category scheme='http://www.blogger.com/atom/ns#' term='jbi'/><category scheme='http://www.blogger.com/atom/ns#' term='slee'/><category scheme='http://www.blogger.com/atom/ns#' term='sca'/><title type='text'>JAIN SLEE or ESB + JBI + JCA ?</title><content type='html'>I was looking what SLEE (Service Logic Execution Environment) or in the java world JAIN SLEE could offer in a telephony world. I am working on an open source  telephony application called Svarog (http://sourceforge.net/projects/svarog/)  based on Asterisk PBX (http://www.asterisk.org/) and I wanted to see how I could improve it in a next step.&lt;br /&gt;&lt;br /&gt;Well, there is the SLEE specification and a java open source implementation sponsored by RedHat and JBoss called Mobicents (http://www.mobicents.org-a.googlepages.com/index.html). I am not an expert in telephony nor in SLEE specification, but what I understood is that this is something to do with EDA (Event Driven Architecture).  We also have a reference implementation of SLEE, which is done by OpenCloud (http://www.opencloud.com/ ). And SLEE is often considered to be in telephony what EJB is in JEE.&lt;br /&gt;&lt;br /&gt;SLEE is also "service" oriented where it has its own SBB (Service Building Blocks) which are resource adaptors. It does not seem to be specified for the telephony world only and it should be possible to inlcude any kind of services into the SLEE environment. It is specific because it offers a scalable, robust, reliable and transacted environment for "real time" applications. Probably that is why it is tight to the telephony world.&lt;br /&gt;&lt;br /&gt;If this is not wrong, what I said till there, I see no reason why this kind of environment could not be setup using some open source projects such as ESB (Enterprise Service Bus), JMS (Java Messaging Service), rule engines and workflow engines. What I do think is that SLEE is maybe more complicated than setting up all those different projects. There is JBI (Java Business Integration) which already has several implementations in the open source community and IBM has its own standard SCA (Service Component Architecture) which seems to be adapted as well and which should not be an opponent to the JBI specification. I think that the Springframework could offer a base for writing something "ala" SLEE and to get a good support for Java Transactions and other services needed to write a scalable, robust, reliable and transacted environment. I mentioned JMS but I know it is not event based, but could be used and I think is used in some EDA. I forget to say that there is also JCA (JEE Connector Architecture) which is here in purpose to be used for resource adapters.&lt;br /&gt;&lt;br /&gt;Well, the point is that it seems Mobicents cannot be used without the JBoss Application Server, and I think SLEE specifies that the implementation should not be tight to JEE.&lt;br /&gt;&lt;br /&gt;We do not have specifications for ESB but we do have for JBI, which are also used in ESB such as Mule or ServiceMix. Both of them offers integrations with workflow and rule engines and are based on events ... so, how is SLEE different in it? In my opinion, SLEE could be a standard way to do ESB.&lt;br /&gt;&lt;br /&gt;To conclude, an ESB coupled with JCA with a good support for transactions is really a god environment for a real time event based driven  architecture, could be the thing that is needed for a telecom service platform.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1587607050533309232-375790899140051921?l=gradecak.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://gradecak.blogspot.com/feeds/375790899140051921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1587607050533309232&amp;postID=375790899140051921' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/375790899140051921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1587607050533309232/posts/default/375790899140051921'/><link rel='alternate' type='text/html' href='http://gradecak.blogspot.com/2007/09/jain-slee-or-esbjbisca.html' title='JAIN SLEE or ESB + JBI + JCA ?'/><author><name>Daniel Gradecak</name><uri>http://www.blogger.com/profile/06676453907449710096</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry></feed>
