Skip to main content

still crunching....

I got to work today as soon as I got back from my morning run and was ready to go after a nice power breakfast. As mentioned in the last post I spent yesterday working on the dashboard template. It required addition of a new method for retrieving the extant guest private message requests on the participant_queue table. This new method was made with three attributes, the new site_id column , the conversation_id (used as the guest pm uniqueness specifier) and a boolean attribute that determines if engaged (meaning a User is conversing with the guest) or unengaged rows are returned. The returned rows are extracted as an Object[] of String[] objects. In other classes of the API I've found it useful to return specific sets of data from the db in an object array when there is no formal need for a managing class. In this case, we only use the participant_queue rows to display in the dashboard, all other use of rows (public/private, user/guest conversations) is implicitly performed by the other API code. Thus the time benefit is optimal (since it is fast) and the memory hit is optimal since we don't have additional object instance and destroy actions to incur processing and memory load during the dashboard view action. I partially finished the implementation and called it a night ...

Today, I started by analyzing the problem of concurrent guest requests across multiple sites, since the framework is a multi tenant frame work it is possible for multiple sites to provide guest PM capability independently. The addition of site_id to the participant_queue table thus gives us support of multi tenancy for free. (This happens often with symmetry observant designs) I had to go into the conversation db access class and update the add,update and remove methods to support the new site_id field by simply expanding the attribute lists of the existing methods in new overloaded methods. This will allow multiple sites to enable guest private message requests and allow a single guest (IP) the ability to make requests to multiple sites hosted on the framework. In multi tenant design this is not only important it is critical, for it enables the possibility of a user making a guest request to one site that might be licensing the use of guest functionality while simultaneously making a request to another site and converse with both sites unaware of the fact that the guest private message facility they are using comes from one provider. ;)

I compiled and tested the changes made , many - small as opposed to few - large, and was able to engage normal User or Guest conference sessions without issue. Next stop is adding in the actual guest session tear up an tear down code which will require a little bit more brain work...

Comments

Popular posts from this blog

the attributes of web 3.0...

As the US economy continues to suffer the doldrums of stagnant investment in many industries, belt tightening budgets in many of the largest cities and continuous rounds of lay offs at some of the oldest of corporations, it is little comfort to those suffering through economic problems that what is happening now, has happened before. True, the severity of the downturn might have been different but the common factors of people and businesses being forced to do more with less is the theme of the times. Like environmental shocks to an ecosystem, stresses to the economic system lead to people hunkering down to last the storm, but it is instructive to realize that during the storm, all that idle time in the shelter affords people the ability to solve previous or existing problems. Likewise, economic downturns enable enterprising individuals and corporations the ability to make bold decisions with regard to marketing , sales or product focus that can lead to incredible gains as the economic ...

Engineers versus Programmers

I have found as more non formally trained people enter the coding space, the quality of code that results varies in an interesting way. The formalities of learning to code in a structured course at University involve often strong focus on "correctness" and efficiency in the form of big O representations for the algorithms created. Much less focus tends to be placed on what I'll call practical programming, which is the type of code that engineers (note I didn't use "programmers" on purpose) must learn to write. Programmers are what Universities create, students that can take a defined development environment and within in write an algorithm for computing some sequence or traversing a tree or encoding and decoding a string. Efficiency and invariant rules are guiding development missions. Execution time for creating the solution is often a week or more depending on the professor and their style of teaching code and giving out problems. This type of coding is d...

AgilEntity Architecture: Action Oriented Workflow

Permissions, fine grained versus management headache The usual method for determining which users can perform a given function on a given object in a managed system, employs providing those Users with specific access rights via the use of permissions. Often these permissions are also able to be granted to collections called Groups, to which Users are added. The combination of Permissions and Groups provides the ability to provide as atomic a dissemination of rights across the User space as possible. However, this granularity comes at the price of reduced efficiency for managing the created permissions and more importantly the Groups that collect Users designated to perform sets of actions. Essentially the Groups serve as access control lists in many systems, which for the variable and often changing environment of business applications means a need to constantly update the ACL’s (groups) in order to add or remove individuals based on their ability to perform cert...