Fórum

RE: CIFS implementation for Liferay

thumbnail
Janne Hietala, modificado 14 Anos atrás.

CIFS implementation for Liferay - Released

Junior Member Postagens: 97 Data de Entrada: 16/06/09 Postagens Recentes
Hi all,

We've started to develope Liferay features as addition to our own customer project development. Currently one of our projects is Liferay CIFS support. We've had lot of requests from customers either to implement better Webdav support or possibility to use CIFS to gain access to Liferay document library.

Previously we've worked on trying to integrate Alfresco and Liferay to share common JCR store but have faced quite a lot of difficulties in doing so.

Better solution was to start from fresh and implement CIFS functionality as Alfresco has. Alfresco uses previously closed source CIFS server implementation called JLAN which was recently released under GPL license.

Alfresco's description of JLAN features:

Alfresco JLAN uses a virtual file system interface that allows you to plug in your own file system implementation with the core server handling all of the network protocol exchange between the client and server. JLAN is also the only Java implementation of Window’s CIFS (Common Internet File System), in addition to supporting NFS and FTP.

Technical Specifications

Pure Java

* Pure Java implementations of CIFS, NFS and FTP server, with optional JNI code on Windows to allow the Alfresco JLAN server to run alongside the Windows file server.

High performance

* Offers the same level of performance as a native file system.

Object oriented pluggable design

* Allows a filesystem driver to be developed in stages with optional interfaces added at a later date, such as NTFS streams support.
* Many core components can be easily replaced including filesystem drivers, authentication handling, user details, shared filesystem mapping, configuration.

Enterprise authentication support

* The CIFS implementation includes support for NTLMv1, NTLMv2, NTLMSSP, SPNEGO and Kerberos/AD to allow integration into Enterprise networks.


Basically what we are currently doing is implementing our own JLAN driver to access Liferay document libarary services. We currently have working 0.1 version which uses SOAP to access Liferay API. In next version we are working directly with Jackrabbit JCR-RMI interface for more performance critical environments.

We will be releasing this functionality with documentation and open source for free use. Currently we are concentrating on CIFS functionality, but basically after JLAN driver development and integration this should also provide NFS and FTP support / connection to Liferay.

I will keep this thread updated of our development progress and releases. If someone at Liferay is intrested of this contribution, please feel free to contact me. Also any suggestions and feedback is highly appreciated!


Best regards,
Janne Hietala
Consultant, partner
Arcusys Oy
+358 (0) 40 831 42 45
janne.hietala(at)arcusys.fi
thumbnail
Shagul Khaja, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Liferay Master Postagens: 758 Data de Entrada: 27/09/07 Postagens Recentes
Hi,

I think this will be a wonderful contribution and the community will appreciate your work.

Thanks,
Shagul
thumbnail
Jorge Ferrer, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Liferay Legend Postagens: 2871 Data de Entrada: 31/08/06 Postagens Recentes
Hi Janne,

Liferay 6 will already have CIFS support. In any case I've forwarded your post to Alex Chow, who leaded this implementation so that you guys can look for ways of collaborating.
thumbnail
Janne Hietala, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Junior Member Postagens: 97 Data de Entrada: 16/06/09 Postagens Recentes
Hi Jorge,

Thanks for the information. I could not find issue for this at issues.liferay.com. Was this planned as feature of EE version or available for community also?
thumbnail
Jorge Ferrer, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Liferay Legend Postagens: 2871 Data de Entrada: 31/08/06 Postagens Recentes
Hi Janne,

AFAIK, it will be part of Liferay 6 CE and was already included in teh preview.

A search for CMIS in issues.liferay.com returns several results but I think this is the most important: http://issues.liferay.com/browse/LPS-6885
thumbnail
Ray Augé, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Liferay Legend Postagens: 1197 Data de Entrada: 08/02/05 Postagens Recentes
Forgive me Jorge, but CMIS and CIFS are two wholly different things.

CIFS is the protocol implementing MS Windows File sharing.
thumbnail
Jorge Ferrer, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Liferay Legend Postagens: 2871 Data de Entrada: 31/08/06 Postagens Recentes
Arghh! My bad. Sorry Janne and thanks for noticing Ray.

Having CIFS support would be awesome, I've been wanting to have that for a long time.

Coincidentally Alex is also the person to talk about this too, since he implemented and is in charge of the WebDAV support.
thumbnail
Arcko Duan, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Regular Member Postagens: 213 Data de Entrada: 15/10/07 Postagens Recentes
cool
thumbnail
Björn Ryding, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Liferay Master Postagens: 582 Data de Entrada: 16/05/07 Postagens Recentes
Hi Janne,

It would be great if you could put the current SOAP version on Google Code or GitHub. I would like to try and build an integration using Hessian 2 instead of SOAP.

BTW, while JLAN 4.0 and 5.0 was released under GPL Alfresco recently shifted from GPL to LGPL and the JLAN source code in SVN is LGPL.

Cheers,
Björn
thumbnail
Alexander Chow, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Liferay Master Postagens: 518 Data de Entrada: 20/07/05 Postagens Recentes
Hi Janne,

This sounds quite exciting. I am constantly working to improve our WebDAV support and have also looked at other alternatives like CIFS. JLAN provides an interesting solution and I would love to speak with you further on this. Out of curiosity, how is your performance over SOAP?

Alex
thumbnail
Janne Hietala, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Junior Member Postagens: 97 Data de Entrada: 16/06/09 Postagens Recentes
Björn Ryding:

It would be great if you could put the current SOAP version on Google Code or GitHub. I would like to try and build an integration using Hessian 2 instead of SOAP.

BTW, while JLAN 4.0 and 5.0 was released under GPL Alfresco recently shifted from GPL to LGPL and the JLAN source code in SVN is LGPL.


Using Hessian 2 would be great. We're trying to push the initial release. As I described in opening post the current version does not yet unfortunately do any file operations. Currently we're implementing mapping of shares, listing folders and files, showing properties of files. We're trying to finish the next version asap with complete suppor for file operations over SOAP. I try to sort out initial version to either Google code or to GitHub.

Licensing is one of the issues I have to sort out. Of course we will follow the original license, but Alfresco's shift to LGPL was news to me. Basically what we are doing is just plain driver development (implement DiskInterface) for JLAN. Does LGPL just enforce that we have to make code available or should we submit it back to Alfresco for their use? Currently there are no code changes needed for Liferay side. What else should we take into consideration when releasing the code?

Alexander Chow:
Hi Janne,

This sounds quite exciting. I am constantly working to improve our WebDAV support and have also looked at other alternatives like CIFS. JLAN provides an interesting solution and I would love to speak with you further on this. Out of curiosity, how is your performance over SOAP?

Alex


Please feel free to send me email so we can talk over skype or phone. Exchanging ideas would be very intresting (janne.hietala(at)arcusys.fi and janne-at-arcusys on skype).

We havent been able to do any real benchmarks over SOAP yet. There is implementation of caching in the driver, so there is no constant polling. Table testing shows okay performance in desktop environment, but we definetely need to develop some real life benchmark framework for testing. SOAP definetely will be bottleneck on real life implementations, but at least works great for lightweight and proof-of-concept implementation. One of our next development steps would be to implement I/O operations using JCR-RMI directly to Jackrabbit. I am not sure if using Liferay API over RMI is possible on current version?

-Janne
thumbnail
Janne Hietala, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Junior Member Postagens: 97 Data de Entrada: 16/06/09 Postagens Recentes
I re-checked the licensing and version of JLAN (because I was pretty sure it was GPL). JLAN version we are currently using is 4.0 and it has GPL licensing.
thumbnail
Janne Hietala, modificado 13 Anos atrás.

RE: CIFS implementation for Liferay

Junior Member Postagens: 97 Data de Entrada: 16/06/09 Postagens Recentes
We have made initial release of Liferay CIFS add-on. Currently only 5.2.3 is supported. This is based on Alfresco JLAN as described in initial post. Liferay connector is developed as an driver for JLAN, so CIFS server works as an independent module from Liferay (and also Alfresco). Connection to Liferay is made using web services and SOAP. Individual shares and connection paremeters are configured jlanConfig.xml. If you want to use CIFS server separated from Liferay server, you have to configure Liferay to allow connections from other hosts than localhost to it's services.

Basically current version works as proof of concept and is not ready for any kind of production environment. It contains basic file operations, but for example is lacking proper authentication methods.

Source code is released under LGPL and you can find built version and source on github
http://github.com/arcusys/Liferay-CIFS

We are happy for all the support so far. Please continue to give us your feedback and suggestions.
Ace Man, modificado 13 Anos atrás.

RE: CIFS implementation for Liferay

New Member Postagens: 14 Data de Entrada: 29/10/09 Postagens Recentes
I want this CIFS sooo bad because WebDAV is so buggy on several platforms (Windows) emoticon

@Janne: What is still to do and when do you think a stable version for production use is released? Is it going to be free of charge?

Will CIFS or SAMBA be integrated in next version of Liferay?
thumbnail
Bryan Cheung, modificado 13 Anos atrás.

RE: CIFS implementation for Liferay

Expert Postagens: 373 Data de Entrada: 27/08/04 Postagens Recentes
Hi Janne,

Very interesting to hear you are trying to tackle CIFS support. Is this being created as a Liferay plug-in?
Claas Ruschmeyer, modificado 13 Anos atrás.

RE: CIFS implementation for Liferay

New Member Postagens: 15 Data de Entrada: 02/12/08 Postagens Recentes
Hi Janne,

great work, thanks a lot!! (The JLAN documentation gives not much hints for beginning.)

A comment to your plans:
(...) In next version we are working directly with Jackrabbit JCR-RMI interface for more performance critical environments.

But: some people changes the default DL-Hook from Jackrabbit to FileSystem, Amazon S3 or a DMS Archive (Documentum (LPE-1415) or Saperion DMS like us). Working directly with Jackrabbit you have to manage lucene indexing in Liferay too, etc.


For own proof-of-concept I changed your code to startup the JLANServer on Liferay-startup (with ServletContextListener; can't find a good PlugIn-HOWTO) and direct usage of the DL xyzLocalServiceUtil-classes. It should be much more faster (because not using SOAP) and is deeper integrated in Liferay.
Additional I changed the diskshare-config to a user independent config. Depending on the users portal-rights all his groups (plus "guest" group) are shown as root-paths. (like WebDav) My code changings are still a little buggy but downloading, folder-browsing, folder-renaming and file/folder-deleting works well. (If someone wants the code, please contact me.)


Ok, CIFS to DocumentLibrary is possible, but what about the JLAN license? Can we use JLAN 4.0? (Not 5.0?)


Regards
Claas
thumbnail
Janne Hietala, modificado 13 Anos atrás.

RE: CIFS implementation for Liferay

Junior Member Postagens: 97 Data de Entrada: 16/06/09 Postagens Recentes
Hi all,

Thanks for all the support. It's really nice to hear that someone has already continued to work on CIFS.

Claas: your implementation sounds intresting and more suitable for pre-bundling to Liferay. Our goal was to have separate installation, which could work on different server for added performance. Of course native Liferay API would be the most proficient. JCR-RMI is developed from customer requirement perspective and might not sound the most feasible overall solution.

We can create own branch for you to our github if you want contribute your code back.

Also, we definetely want to contribute this to Liferay. At the moment we are unsure that how "mature" the code should be that Liferay accepts it. As for now it's free to be used as is. Official talks seems to run a bit slow due to everybodys busyness ;) I think this would be good feature to be implemented to Liferay soon as possible...
thumbnail
Janne Hietala, modificado 13 Anos atrás.

RE: CIFS implementation for Liferay

Junior Member Postagens: 97 Data de Entrada: 16/06/09 Postagens Recentes
I actually noticed that our readme was missing. I've re-added it to github:

http://github.com/arcusys/Liferay-CIFS/blob/master/README

This should ease you getting started.
thumbnail
Jignesh Vachhani, modificado 13 Anos atrás.

RE: CIFS implementation for Liferay

Liferay Master Postagens: 803 Data de Entrada: 10/03/08 Postagens Recentes
Hi Janne,

Thanks you so much for sharing such a nice feature.

Can you please share details steps for integrating this module(arcusys-Liferay-CIFS-4b6bed9) with liferay.

Thanks
thumbnail
Jonas Yuan, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Liferay Master Postagens: 993 Data de Entrada: 27/04/07 Postagens Recentes
Hi Alex, Thank you.

It is good news that Liferay 6 will support CIFS.

What's JIRA ticket number for CIFS?

JLAN - pure Java implementations of CIFS, NFS and FTP server, with optional JNI code on Windows - is interesting ....

Best Regards,

Jonas Yuan
---------------------------
The Author of Liferay Books:
Liferay Portal 6 Enterprise Intranets
Liferay Portal 5.2 Systems Development
Liferay Portal Enterprise Intranets
thumbnail
Alexander Chow, modificado 14 Anos atrás.

RE: CIFS implementation for Liferay

Liferay Master Postagens: 518 Data de Entrada: 20/07/05 Postagens Recentes
@Jonas Sorry, there was confusion in this thread over whether CIFS = CMIS (which it isn't). So, no, 6 will not support CIFS.