New-age Transactional Systems - Not Your Grandpa's OLTP
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Floyd Marinescu on Nov 14, 2006
We create .NET proxy classes representing the Java GUI classes. In the .NET code, calls to the proxies get directed transparently to underlying Java objects. In our new version 3.1, we've created special wrapper classes that wrap the proxies for the Java components and make them look like .NET WinForms controls (that is, the wrapped class inherits from the WinForms UserControl class) so that they can be used wherever a WinForms control is expected. The implementation of these wrapper classes is the key to achieving the embedding interoperability; they retrieve the Win32 window handles from the underlying Java classes, and manage them in the context of the WinForms application, making the Java components (or, rather, their Windows peers) children of the surrounding WinForms components. That way, when the WinForms windows move or are minimized, the embedded Java components move or are minimized, too.But why would one want to make cross-technology mixed UI components anyway? Wayne explained some of the usecases:
Clearly, if you're going to be embedding WinForms in a Java rich client, you're running in a Windows environment. Deciding whether to embed a WinForms control in a Java rich client will depend on the tools you have at hand. Many WinForms controls are closely coupled to the underlying Windows environment. For example, the WinForms DataGrid control has integration with SQL Server data sources. If you are operating in a Windows environment and you have such integrated controls, and you also have a Java-based client solution like IBM's WebSphere Everywhere Deployment, it may make sense to embed the WinForms controls inside the Java-based client.JNBridge works with JDK 1.3.1+ and .NET 1.0+. In-process communications as an interop mechanism is a high performant option for Java and .NET integration, and is one of many approaches, as described in Ted Neward's article Java and .NET, but why together? See you can see more content about Java and .NET integration at InfoQ's Java + NET Integration Scenarios topic.
For the case of embedding Swing inside WinForms, the sweet spot involves use of Swing custom controls. Some users have created their own controls, and others have bought controls. Up until now, those controls could only be used in the context of Java rich clients. This meant that if users wanted to migrate to WinForms (because they preferred the programming model, or the development tools), they would either have to discard their investment in Java controls, or forego the migration and keep the investment in Java controls. Now, users can keep the controls they've found useful, and at the same time migrate to WinForms if that seems appropriate.
Software vendors who offer Java controls can now also use our UI embedding capability to offer the controls to both .NET-based and Java-based customers. As the market in .NET-based controls matures, we see .NET control vendors using our capabilities to offer their controls to Java-based customers, too.
18 agile and lean practices for effective software development governance
Monitor your Production Java App - includes JMX! Low Overhead - Free download
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.
Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.
Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.
Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).
Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.
Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.
One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.
InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.
1 comment
Watch Thread Reply