|
|
Choosing A Webhost: |
Re: Java OpenGroupware API - annotations: msg#00018cms.opengroupware.xmlrpc.devel
On Mittwoch, Sep 3, 2003, at 15:38 Europe/Berlin, Werner Schuster wrote: Hmm... one thing I noted in this conversation, Yes. Enumerators and Arrays are just concepts living at the same level of "abstractness" (Stack would be another one). Yet in the actual case (records fetched using XML-RPC over high latency and slow links), enumerators match the actual data flow while arrays do not. So arrays should be build upon a stream (stream=enumerator). I personally think of Enumerator as more high-level than Lists; the idea If you work on streamed data, the list needs to be build upon an enumerator. If you have indexed data, the enumerator needs to build upon a list. ;-) Of course it depends on the underlying data structure which is a stream in case of HTTP. It may certainly be less obvious that XML-RPC results should also be treated as a stream - but for practical purposes it should be done that way. (well, one could then claim that HTTP/XML-RPC then is the wrong base technology ;-) - this may even be true, yet SQL databases also work in a sequential way, so this matches pretty well) A List, for me, is lower level, as it is more similar to the actual Of course. If you have a linked list, the enumerator will be more like the datastructure and indexed access be unnatural ;-) Now don't tell me that you never need linked lists ;-) So, in my eyes, the Enumerator (Iterator) is more of a convenience No. Its just a different approach of accessing data. I have a problem with only offering an Enumerator and basing all You decide, I only want to bring up issues you'll run into ;-) ...image sample... But its a real pain in the neck, if you want to access a specific pixel; Yes, enumerators are usually more difficult to use. But scalable APIs *are* difficult to use ;-) If network IO is as inexpensive as direct memory access and if we have 100GB RAM machines, enumerators may not be worth the effort. But we have practical constraints. This is getting theoretical, but interesting nevertheless ;-): I suppose, the programmers of this lib realized this and added some Whether or not this makes sense heavily on the application *and* on the data format in memory. In case the whole image (eg consider a digital camera, high resolution image which easily has hundreds of megabytes) is really in memory as a 1:1 matrix, direct access of course makes more sense. But if it is kept eg in RLE encoding to reduce the memory requirement (in RAM!) by factor 50 - enumerators actually *do* make a lot sense. Scanning the data with a GHz CPU will be way faster than consuming 50times more memory. I know, that DB and Image Manipulations are different domains and whats No, it pretty much shows the same issues. You are assuming that the image is kept completely in memory as a 1:1 matrix - but for a lot of digital media or print applications it often is not. And while providing indexed access may be more convenient, it is very likely to be much slower - often with results so slow that it can't be used in practice. Its just about choosing the right algorithm/abstraction for the task at hand. If you only want to deal with 100 contact records in JOGI - indexed access is just fine and way easier (and probably faster as well). If you want to deal with larger databases, it still will be easier, but load times and memory requirements will be abysmal. If you strictly focus on an OGo specific GUI client, this may be true. I guess at least something like 100.000-1.000.000 objects. This obviously depends on the installation. Note: the issue is not only about RAM (though thats probably the bigger problem). It is also about retrieval speed/API-latency over HTTP/XML. JSP pages Of course. Glow GUI Client That would be highly inefficient for larger datasets. Hmm... it seems, like there might actually be some need for ... hm... Again, the comparison of SAX and DOM is excellent :-) DOM is just fine for small documents, but for big ones it doesn't scale. But I do not agree that we need two separate APIs. The fetch API using the list can be easily layered upon the Enumerator one since this is natural (results coming in a streamed way, the list is being built). Although... offering a streaming API that really uses the advantages of Well, why break the JOGI API just because the initial backend implementation is broken ;-) Anyway, I have made all my points. Decide now but don't complain later - after all its established practice that Java stuff is rewritten from scratch every six months ;-) regards, Helge -- OpenGroupware.org - http://www.opengroupware.org -- OpenGroupware.org XML-RPC xmlrpc@xxxxxxxxxxxxxxxxx http://mail.opengroupware.org/mailman/listinfo/xmlrpc
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: Java OpenGroupware API - annotations, Werner Schuster |
|---|---|
| Next by Date: | 'startDate' attribute in appointment is not a date-value, Jonathon Sim |
| Previous by Thread: | Re: Java OpenGroupware API - annotations, Werner Schuster |
| Next by Thread: | Re: Java OpenGroupware API - annotations, Burkhard Sell |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
Free MagazinesCisco NewsReceive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business. subscribe Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field. subscribe The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business. subscribe Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company. subscribe Total Telecom Total Telecom is "The Economist of the communications industry". subscribe |