Yaseen L Meridja 7 Years Ago Hello David,Thanks for sharing your experiences with what looks like a very good framework that's well integrated with Liferay portal.Although there are concerns that you and other people have raised such as the need for additional logic to handle foreign keys and may-to-many relationships, I am wondering how well does the Service Builder framework scale? In other words is it, in your opinion, suitable for medium to large scale projects?The other concern is whether the framework is suitable for existing applications with existing databases or is it only suitable for greenfield projects?Many thanksYaseen Please sign in to reply. Reply as... Cancel David H Nebinger Yaseen L Meridja 7 Years Ago Service Builder code leverages Liferay caching based on ehcache and also works well dealing with cluster changes. SB adds layers on top of Hibernate so the performance characteristics at that level are on par with pure Hibernate, so scaling is not an issue. Liferay itself uses SB for every aspect of the portal data access, so they are very concerned about SB performance in general and have tuned it appropriately.SB works with both new and existing tables. In the <entity /> tags you can add attributes for existing tables and the <column /> tags also have a db-name attribute to map to an existing column name. Plus you can connect to any external database so you are not limited to the Liferay database.Many, many large scale Liferay projects have successfully leveraged Service Builder for their data access needs. Please sign in to reply. Reply as... Cancel
David H Nebinger Yaseen L Meridja 7 Years Ago Service Builder code leverages Liferay caching based on ehcache and also works well dealing with cluster changes. SB adds layers on top of Hibernate so the performance characteristics at that level are on par with pure Hibernate, so scaling is not an issue. Liferay itself uses SB for every aspect of the portal data access, so they are very concerned about SB performance in general and have tuned it appropriately.SB works with both new and existing tables. In the <entity /> tags you can add attributes for existing tables and the <column /> tags also have a db-name attribute to map to an existing column name. Plus you can connect to any external database so you are not limited to the Liferay database.Many, many large scale Liferay projects have successfully leveraged Service Builder for their data access needs. Please sign in to reply. Reply as... Cancel
Dimitris Menounos 7 Years Ago Service Builder indeed handles the weird runtime class loading issues that you have to deal with a portal environment. However all of the features pale in comparison with the fact that you become dependent on a proprietary piece of tech that has dozens of painful little peculiarities. Of course as you become more familiar with each one of them, the hard way, you gain experience with the tool and the Liferay platform. However, and this is my main gripe, in the end your project will have become tightly coupled to a non standard tech, with its own APIs and schemas and behaviors and everything.We just finished a migration of a medium to big project from Liferay 6.1 to 6.2. Service builder was one of the major headaches we had to deal with - the other was alloy ui. Here is another drawback of SB. Code built for Liferay version X works only with that exact version. Even a minor .1 Liferay upgrade will require a migration of the whole service codebase - which is absurd if you think about it. Please sign in to reply. Reply as... Cancel David H Nebinger Dimitris Menounos 7 Years Ago Yes you are tethered to Liferay. But honestly if you believe you could pick up your non-SB code and move it to some other platform and get it to work, well then you're fooling yourself. You are developing for Liferay. It's only going to run on Liferay and, regardless how closely you code to the portlet specs, you're never going to run your portlets on some other platform.Once you can accept that, you can embrace all that Liferay has to offer and build cohesive and integrated solutions. That's the key part. Your site visitors don't care about what technologies you used, how hard your upgrade was, etc - they just care about site usability and cohesion. When you don't have these things, that's when you get complaints about the site.All of that aside, I feel your upgrade pain. I too have hit that, and I've been doing upgrades since Liferay 4. That was much harder, 4->5 was Prototype -> jQuery, 5->6 was jQuery to AUI, ...Each upgrade is a pain. If you think about it, it's hard to integrate the latest web trends and maintain backwards compatibility to an old JS framework that has not been updated.I'm sorry you found the 6.1 to 6.2 migration so hard; outside of the AUI changes, that has been one of the easier upgrades I've gone through. The SB part of the migration should not have been as difficult though, especially since there weren't many changes there as I recall... Please sign in to reply. Reply as... Cancel
David H Nebinger Dimitris Menounos 7 Years Ago Yes you are tethered to Liferay. But honestly if you believe you could pick up your non-SB code and move it to some other platform and get it to work, well then you're fooling yourself. You are developing for Liferay. It's only going to run on Liferay and, regardless how closely you code to the portlet specs, you're never going to run your portlets on some other platform.Once you can accept that, you can embrace all that Liferay has to offer and build cohesive and integrated solutions. That's the key part. Your site visitors don't care about what technologies you used, how hard your upgrade was, etc - they just care about site usability and cohesion. When you don't have these things, that's when you get complaints about the site.All of that aside, I feel your upgrade pain. I too have hit that, and I've been doing upgrades since Liferay 4. That was much harder, 4->5 was Prototype -> jQuery, 5->6 was jQuery to AUI, ...Each upgrade is a pain. If you think about it, it's hard to integrate the latest web trends and maintain backwards compatibility to an old JS framework that has not been updated.I'm sorry you found the 6.1 to 6.2 migration so hard; outside of the AUI changes, that has been one of the easier upgrades I've gone through. The SB part of the migration should not have been as difficult though, especially since there weren't many changes there as I recall... Please sign in to reply. Reply as... Cancel