I think u r good enough to understand the english words....I never ask someone to write code for me....even I admitted that in the first reply. n I dont understand why u take this so seriously ...u forcefully put ur assumption ..if u r interested to help me anyway ..do this otherwise leave it n I have changed the post .i think it is fine enough now.
I'm working on a new design for our old (25+) application. In this design should be more than one SQL servers (synchronized via replication). Each SQL server wrapped inside a DAL layer, and those DAL's are grouped using load balancing.
I looking to add cache to this design, and at first I thought that the best place to do so is at the individual DAL, however in this case I have to design a synchronization method between separated DALs.
To solve this synchronization problem I thought about a cache service to serve all the DALs (and maybe other parts of the design).
My question is, according to your knowledge and experience, will it be still effective to use a remote service to cache, or better to design cache synchronization that cross DALs?
Persumably you have 25 or more applications. And each of those use 1 or more databases.
After that your explanation loses me.
Do you intend, at some future time to consolidate databases? And that is a hard plan driven by business reasons? Because if not then they is absolutely no reason why any of these should be combined into a single cache.
Is there a distributed transaction model in play? If not then there is no need for "synchronization". And if there is then you should look into an actual distributed transaction model.
And why do you think you need to cache everything? Or even anything for that matter?
And I have no idea what you think "load balancing" means in this context. That term means a way of balancing requests across different servers. A DAL (Data Access Layer) exists within the application and unless all of the applications run on one machine load balancing across multiple applications would be difficult.
First of all thank you for your time...
and now some explanations to make it clear...
There is only one app - a web one. The application is distributed so the DAL is only a part of it (there are many layers between the UI that sits in the web server and the DAL which is combined, if not necessary physically, with the actual DB). The DAL is designed in a stateless way so we can lunch infinite number of DALs. In case of multiple DALs they grouped with load balancing. And when I say load balancing I mean exactly what you mean...
I thought about cache to improve performance of the DAL, but after looking into it I saw that I must
or make some synchronization between local caches
or make some cache server.
My question was about the usefulness of such cache server...
The DAL is designed in a stateless way so we can lunch infinite number of DALs
Then you have a server, not a DAL.
Kornfeld Eliyahu Peter wrote:
My question was about the usefulness of such cache server..
Depends on the data and the nature of the business.
If, for example, you have some small set of data that is used a lot and doesn't change often then caching is doable even with the complication of cross server syncing. As long as there is some allowed latency in the timeliness.
Conversely if you are loading billions of customer records by request from a user then there isn't much point because each request by itself likely has a very limited lifespan in the cache. And you would also need to implement sticky sessions for it to be useful.
We're developing a couple of web applications and want to allow users some advanced options if they've identified themselves.
The goal is that the user should only remember one username/password for all our applications (and services, we provide all kinds of newsletters and alerts as well).
SSO (Single-Sign On) was the first thing that came to mind, so my question is: what kind of recommendations can you give? I read a little about OpenId, but I know Google, Yahoo, windows live, ... also provides this.
Should we choose an existing service, and wich one is the best or should we write something for ourselves for our company only?
In the (near or further) future I would like to add the personnel as well through ldap or something.
This stuff is completely new to me so any advice, tutorials, recommendations would be helpful.