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 Abel Avram on Aug 19, 2008
Microsoft has released .NET Framework 3.5 SP1 which includes a security change from previous versions allowing to run managed applications from network shares.
According to Microsoft, one of the .NET Framework 3.5 SP1 features is:
Managed applications that are opened from network shares have the same behavior as native applications by running with full trust.
In the past, one could not run managed code from network shares due to security reasons. That feature was introduced in .NET from the beginning to prevent security attacks coming from network locations. The feature did not resolve the respective security threats because unmanaged code always was allowed to run in such a circumstance.
A pool organized by Brad Adams, Program Manager at Microsoft, shows that many people would like to have the possibility to run managed code from network shares. Microsoft responded to the general request enabling the feature in .NET 3.5 SP1.
Vance Morrison, Architect on the .NET Runtime Team, comments on the security change:
We made a mistake. In 2001 we believed we are the avant-guard in making things 'secure by default' and thus biased our decisions believing that we would eventually 'plug' the hole of unmanaged code running from a network share. We also did not appreciate the pain this decision would cause.
However over time, we realized that we were naive. The cost/benefit of changing the behavior of unmanaged code is simply too high. Moreover it also become clear that for security to work, it must be simple, which means treating cases uniformly. Thus if you want to disallow launching exes off the network you should not have one way of doing it for managed code, and a completely different way for unmanaged code.
Vance also downplays the security risks introduced by the change:
For those of you who are concerned that we have opened security holes by doing this, we have tried to be VERY careful not to do this. The basic rationale is that we are not opening any holes that were not already there because Windows allows non-managed exes to run from a network share.
Shawn Farkas, a software engineer on the CLR team responsible for the cryptography classes, explains how the new feature works:
The core of this change is a modification in how we assign evidence to network launched applications. When we see an .exe launched directly off a network share, rather than giving that .exe Zone evidence of LocalInranet, we instead give the .exe Zone evidence of MyComputer. This causes the .exe to match the default MyComputer code group rather than the LocalIntranet group, and in default CAS policy that code group grants FullTrust.
For those who want to forbid running managed code from network locations Shawn advises:
You can set the DWORD registry value LegacyMyComputerZone to 1 in the HKLM\Software\Microsoft\.NETFramework registry key.
The assemblies will receive the rights to run in the following scenarios, according to Shawn:
In the next scenarios assemblies will not receive the rights to run:
Federated Identity Management and Single Sign On
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
Complimentary Gartner (Hype Cycle for Cloud Security) Report
agility@scale eKit: 10 Principles, Scaling Model, Metrics, Collaboration
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.
No comments
Watch Thread Reply