The social intranet software that me and my team is developing obviously contains a wiki component (which is btw. one of the most frequently used components of our software at our customers, along with the microblog). But ever since I joined the company I didn’t quite like the look and feel of our wiki pages. What bugs me most is the fact that we only have a rich text editor which stores the pages’ text as HTML.
The architecture for the webapp we’re building at work is layered in the typical way for Java applications: Our main layers are presentation, RPC, business and persistence. So when a user clicks some button on our app in his browser his request will most commonly pass all these named layers; the presentation layer (which actually runs on his browser since we’re using Google Web Toolkit) passes some value to the RPC layer which does authorization checks for the action the user would like to perform, transforms the value and passes it to the business layer which eventually passes it to persistence causing sth.
At Just Software we are building our software Just Connect using Google’s awesome Web Toolkit which lets us build the software almost entirely in Java, even the Web UI. For the layout part we’re building templates using the UiBinder framework of GWT which lets you build templates in XML and fill them with data from the Java class backing it (called the owner class). Today I was faced with the task of building a GWT widget which has rather an amount of logic in it and has a different layout depending on a boolean value.
The newest feature in the software I’m developing at Just Software is a workstream, which is our aggregate name for microblog and activity stream functionality. Since we’re using a relational DB we’ve modeled this module in the way that every workstream message is attached to a user’s stream in a simple m:n relation manner. To reduce the number of INSERT statements the list of streams is assembled in the business service and then handed over to the database service which does sth.