Dr. Dobb's Journal - December 2008 - (Page 39) d11haas_p5db 10/13/08 7:26 AM Page 39 collection. This is achieved by holding a static reference to the remote registry in the registry implementation class itself. • In order to garbage collect outdated bindings, the validity of each binding is periodically checked by connecting with the RMI object’s server socket. If a registered stub contains a custom client socket factory, then this factory must be used for the attempt to set up a connection to the registered RMI server object. If the connection attempt fails, the respective binding is removed from the list of valid bindings. • Because a remote registry must be able to dynamically download the implementation classes of the RMI objects to be registered, it must be run under the control of a security manager. We have included the policy file (Listing Two) in the executable jar file that contains the remote registry (available online; see “Resource Center,” page 5). The SocketPermission is necessary for clients to be able to contact the remote registry. The RuntimePemission lets the remote registry dynamically download code; the FilePermission is needed for the persistent storage of the bindings in file .rrrbindings in the current directory. code. With the standard RMI registry, how, ever, the call registry.rebind(“hello” stub); would have thrown an AccessException. With our custom RMI Registry, RMI servers are allowed to invoke bind, rebind, and unbind methods of a remote RMI Registry. Listing Four shows a sample RMI client that uses the hello RMI server object. Exactly as with the standard RMI architecture, the client locates the RMI Registry, looks up the hello server object, and then invokes methods at the server object. Conclusion A remote RMI registry is useful in many distribution scenarios. A completely transparent custom registry implementation needs to resolve several interesting technical obstacles, such as how to export a remote object with a given ObjID, or how to check the validity of an existing binding. The complete source code as well as the executable jar file can be found at the RRR project homepage (www-home.htwg-konstanz .de/~haase/hp/RRR.html). DDJ Living in a Digital Imaging World WHERE IT ALL BEGAN Founded in 1991 and headquartered in Tampa, Florida, Pegasus Imaging Corporation delivers digital imaging software development components, image compression and image editing technologies. The company exceeds speed and quality requirements for document imaging, forms processing, medical imaging, color/photo imaging, video applications and more. Technology is delivered as Microsoft .NET controls, COM controls, DLLs and applications. Multiple platforms are supported, including Windows, LINUX, Solaris, IBM AIX and Mac OS X. Living in a Digital Imaging World WHERE IT ALL BEGAN Founded in 1991 and headquartered in Tampa, Florida, Pegasus Imaging Corporation delivers digital imaging software development components, image compression and image editing technologies. The company exceeds speed and quality requirements for document imaging, forms processing, medical imaging, color/photo imaging, video applications and more. Technology is delivered as Microsoft .NET controls, COM controls, DLLs and applications. Multiple platforms are supported, including Windows, LINUX, Solaris, IBM AIX and Mac OS X. SCANNED TIFF This image is here to show how incredible the compression is for the Pegasus imaging products. It handles images as well as text. This image is here to show how incredible the compression is for the Pegasus imaging products. It handles images as well as text. AN EYE ON GROWTH Pegasus Imaging Corporation was founded in 1991 as a reseller of fractal image compression and decompression toolkits and digital image compression applications. The company entered the imaging marketplace at a very early stage with a far-reaching vision. To satisfy customer demand for well-supported commercial image compression technologies, the company focused on optimizing standards-based compression technology for speed and quality. Pegasus was rapidly shifting from being a provider of end user utilities to marketing business-to-business solutions. A testament to the company’s technology leadership, Pegasus Imaging is the only surviving commercial supplier of JPEG compression technology in the world. Well known photo imaging customers of Pegasus JPEG today include Kodak, Canon, Nikon, Fujifilm, Konica Minolta, and many others. The company’s strategy in the mid-1990s was to clearly differentiate Pegasus from its competition through investment in digital imaging research and development. The company’s senior scientists joined the team at this time. They are recognized throughout the industry, and provide Pegasus with a solid competitive edge. Pegasus Imaging is distinguished by its ability to deliver multiple interfaces to advanced technologies based on an extensive collection of intellectual capital, scientific research, and product innovations. Today, the company holds a portfolio of 11 patents granted, 12 patents pending, and a AN EYE ON GROWTH Pegasus Imaging Corporation was founded in 1991 as a reseller of fractal image compression and decompression toolkits and digital image compression applications. The company entered the imaging marketplace at a very early stage with a far-reaching vision. To satisfy customer demand for well-supported commercial image compression technologies, the company focused on optimizing standards-based compression technology for speed and quality. Pegasus was rapidly shifting from being a provider of end user utilities to marketing business-to-business solutions. A testament to the company’s technology leadership, Pegasus Imaging is the only surviving commercial supplier of JPEG compression technology in the world. Well known photo imaging customers of Pegasus JPEG today include Kodak, Canon, Nikon, Fujifilm, Konica Minolta, and many others. The company’s strategy in the mid-1990s was to clearly differentiate Pegasus from its competition through investment in digital imaging research and development. The company’s senior scientists joined the team at this time. They are recognized throughout the industry, and provide Pegasus with a solid competitive edge. Pegasus Imaging is distinguished by its ability to deliver multiple interfaces to advanced technologies based on an extensive collection of intellectual capital, scientific research, and product innovations. Today, the company holds a portfolio of 11 patents granted, 12 patents pending, and a SEARCHABLE PDF ONE OF THESE IMAGES IS 66% * THAN THE OTHER. With Pegasus Imaging SDKs, you can turn a scanned TIFF into a searchable image-over-text PDF and make the file a fraction of its original size. Save server space and search documents that were originally not searchable. We’ll show you how we do it, and give you the sample code in C#. Challenge our support team with your next imaging question. If they can’t answer it, our scientists surely will. CHECK OUT OUR NEW WHITE PAPER & FREE SAMPLE CODE. PEGASUSIMAGING.COM/TIFF-TO-PDF SMALLER Usage Listings Three and Four illustrate the server and client side usage of our remote RMI registry (also see Figure 2). Listing Three is a complete example for the definition of a simple RMI server object. It comprises the remote interface Hello, the implementation class HelloImpl, as well as the class HelloSetup. The latter class contains the code for startup—setting the code base from where RMI clients can download server object’s code, instantiating and exporting the RMI server object, locating the remote registry, and (re)binding the server object with the remote RMI registry. The use of our remote RMI registry is completely transparent to the RMI server; no modifications have been made to the standard RMI PEGASUSIMAGING.COM (800) 875-7009 Pegasus is a registered trademark of Pegasus Imaging Corporation in the United States. *Results vary depending on image content. December 2008 l www.ddj.com l Dr. Dobb’s Journal http://www-home.htwg-konstanz.de/~haase/hp/RRR.html http://www-home.htwg-konstanz.de/~haase/hp/RRR.html http://www.PEGASUSIMAGING.COM/TIFF-TO-PDF http://www.PEGASUSIMAGING.COM http://www.PEGASUSIMAGING.COM http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - December 2008 Dr. Dobb's Journal - December 2008 Contents Friday Night Fish Fry Alia Vox Developer Diaries Conversations The Man Who Sold the Sky Performance on Rails LINQ-to-SQL and T-SQL A Remote Java RMI Registry Beyond B-Trees File Descriptors and Multithreaded Programs Effective Concurrency The Agile Edge Swaine's Flames Dr. Dobb's Journal - December 2008 Dr. Dobb's Journal - December 2008 - Dr. Dobb's Journal - December 2008 (Page Cover1) Dr. Dobb's Journal - December 2008 - Dr. Dobb's Journal - December 2008 (Page Cover2) Dr. Dobb's Journal - December 2008 - Dr. Dobb's Journal - December 2008 (Page 1) Dr. Dobb's Journal - December 2008 - Dr. Dobb's Journal - December 2008 (Page 2) Dr. Dobb's Journal - December 2008 - Dr. Dobb's Journal - December 2008 (Page 3) Dr. Dobb's Journal - December 2008 - Contents (Page 4) Dr. Dobb's Journal - December 2008 - Contents (Page 5) Dr. Dobb's Journal - December 2008 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - December 2008 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - December 2008 - Friday Night Fish Fry (Page 8) Dr. Dobb's Journal - December 2008 - Friday Night Fish Fry (Page 9) Dr. Dobb's Journal - December 2008 - Alia Vox (Page 10) Dr. Dobb's Journal - December 2008 - Alia Vox (Page 11) Dr. Dobb's Journal - December 2008 - Developer Diaries (Page 12) Dr. Dobb's Journal - December 2008 - Developer Diaries (Page 13) Dr. Dobb's Journal - December 2008 - Conversations (Page 14) Dr. Dobb's Journal - December 2008 - Conversations (Page 15) Dr. Dobb's Journal - December 2008 - The Man Who Sold the Sky (Page 16) Dr. Dobb's Journal - December 2008 - The Man Who Sold the Sky (Page 17) Dr. Dobb's Journal - December 2008 - The Man Who Sold the Sky (Page 18) Dr. Dobb's Journal - December 2008 - The Man Who Sold the Sky (Page 19) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 20) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 21) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 22) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 23) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 24) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 25) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 26) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 27) Dr. Dobb's Journal - December 2008 - Performance on Rails (Page 28) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 29) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 30) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 31) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 32) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 33) Dr. Dobb's Journal - December 2008 - LINQ-to-SQL and T-SQL (Page 34) Dr. Dobb's Journal - December 2008 - A Remote Java RMI Registry (Page 35) Dr. Dobb's Journal - December 2008 - A Remote Java RMI Registry (Page 36) Dr. Dobb's Journal - December 2008 - A Remote Java RMI Registry (Page 37) Dr. Dobb's Journal - December 2008 - A Remote Java RMI Registry (Page 38) Dr. Dobb's Journal - December 2008 - A Remote Java RMI Registry (Page 39) Dr. Dobb's Journal - December 2008 - Beyond B-Trees (Page 40) Dr. Dobb's Journal - December 2008 - Beyond B-Trees (Page 41) Dr. Dobb's Journal - December 2008 - File Descriptors and Multithreaded Programs (Page 42) Dr. Dobb's Journal - December 2008 - File Descriptors and Multithreaded Programs (Page 43) Dr. Dobb's Journal - December 2008 - File Descriptors and Multithreaded Programs (Page 44) Dr. Dobb's Journal - December 2008 - File Descriptors and Multithreaded Programs (Page 45) Dr. Dobb's Journal - December 2008 - Effective Concurrency (Page 46) Dr. Dobb's Journal - December 2008 - Effective Concurrency (Page 47) Dr. Dobb's Journal - December 2008 - Effective Concurrency (Page 48) Dr. Dobb's Journal - December 2008 - The Agile Edge (Page 49) Dr. Dobb's Journal - December 2008 - The Agile Edge (Page 50) Dr. Dobb's Journal - December 2008 - The Agile Edge (Page 51) Dr. Dobb's Journal - December 2008 - Swaine's Flames (Page 52) Dr. Dobb's Journal - December 2008 - Swaine's Flames (Page Cover3) Dr. Dobb's Journal - December 2008 - Swaine's Flames (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.