SOFIA 2.3 released with Hibernate and Dynamic HTML components


News: SOFIA 2.3 released with Hibernate and Dynamic HTML components

  1. Salmon LLC is pleased to announce the release of SOFIA 2.3, The Salmon Open Framework for Internet Applications. SOFIA is an open source GUI and data access tool-kit for building high quality, database driven, web based applications in Java.

    SOFIA 2.3 adds these new features:

    Dynamic HTML Rich Client:

    If you don't want to write applets, complex JavaScript or spend a fortune on closed-source proprietary tools, but still want a browser based “rich client” user interface, you can use SOFIA's new DHTML components for things such as: drop down or popup calendars, calculators and search boxes , web data grids with scroll bars , nested reports with row folding and desktop style table row selection. That's in addition to the rich set of existing components such as navigation bars, trees/tree tables and calendars, as well as high end business components for SCRUD (Search,Create, Read, Update, Delete) and reporting. And if your development does require database driven applets, SOFIA supports those as well.
    Hibernate Integration:
    Use SOFIA's rich set of GUI components to build a front end for your Hibernate domain model in no time. SOFIA's built-in search and data entry components allow Hibernate developers to build powerful and flexible search, list and detail pages with little or no code.

    Support for the latest tools:

    Plug-Ins for Eclipse 3, IntelliJ 4.5, and Dreamweaver MX 2004.

    Many other enhancements:
    Improved web application encapsulation, client side J2EE session management, fast volume database inserts, automatic master-detail table database updates, enhanced applet support and many other enhancements provided by Salmon LLC and the open source community.

    Where to find SOFIA:

    SOFIA can be downloaded free from SourceForge at Additional information can be found at including documentation and code samples. Help from the SOFIA community can be found on the SOFIA forum on SourceForge.
  2. About the time to have a decent persistence mechanism. Now that you integrate with hibernate (and given the fact that you have so tight IDE integration) I might give it another try.

    Last time I checked it didn't scale at all.
  3. We've never had much trouble with scalability, but the Hibernate integration does offer data caching options that SOFIA didn't have before so it should help.
    I think Hibernate is more of a design thing though. The SOFIA built-in persistance mechanism is set oriented rather then object oriented (using something similar to a JDBC row set), but it is pretty easy to use and accesses data with the fewest number of SQL statements possible I think.

    The problem came in if developers wanted to build an object based domain model. Before I think the common approach was to design SOFIA apps starting with the user interface and data model and the persistance kind of designed itself from the connection between the two. But in that scenario, persistence wasn't really a layer unto itself. Now with Hibernate integration I think now it also makes sense to design your a domain model and database design first and then build the GUI second if that's what you prefer. I think it may add some development time to build the domain model and database mapping, but then you will have a domain model you can reuse in other projects.
  4. We've never had much trouble with scalability, but the Hibernate integration does offer data caching options that SOFIA didn't have before so ...

    One of the main reasons middleware was invented is to avoid unnecessary database hits. Not having *the choice* of a cache doesn't sound good. Reducing the number of SQL statements also doesn't help much if those statements are issued often. Sooner or later the database becomes the problem.

    I had BIG scalability problems with a SOFIA application. And you know what ? They weren't from the code. SOFIA was crushing internally when we were over 100 concurrent simulated clients or so. Which sux. But as I said. Updating to year 2004 and plugging in something like Hibernate might help.
  5. I guess it depends on how early on you were using SOFIA. We had a few memory leaks in earlier versions that only appeared under stress so now we stress test before each release. I can tell you that we do run SOFIA apps on big systems and small and have always managed to get it to work (one SOFIA site gets around 2,000,000 page hits per day).

    We've also done some stress testing with our pet store app and found that it works better then the one from Sun on on the same hardware and app server. It starts choking at a lot fewer threads. Although maybe it's not a good comparison since it seems everybody else has also written a faster pet store.
  6. Last time I checked it didn't scale at all.

    Are you alluding to SOFIA caching each PageController the user has visited in their session? (I haven't looked at SOFIA in a while...might be off on what exactly is cached, but I do know that there is *something* cached in session for every page visited) If so, I had the same concerns.

    When I posed this question on the mailing list a while back, someone mentioned that it wasn't as big of a problem as you would initially fear. Moreover, they claim that they've been able to scale by adding more servers.

    Have never tested that claim myself, just wanted to relay some additional information as I heard it.
  7. Please help[ Go to top ]

    Hi Dan, 

    Woudl it be possible for you to let me know if collabsable sub pages or frames are possible to be included in a page using SOFIA's components. Where can I get the list of supported UI components of SOFIA, there site has been restructured and the SOFIA section does not talk of any documentation or features supported. 

    It would be really great if you could shed some light in this area. 

    Awaiting your response, 


    Thanks and regards,