10 tips on how to prevent business value risk
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.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Abel Avram on Apr 23, 2009
Axum, previously known as Maestro, is a Microsoft incubation language project meant to provide a parallel programming model for .NET through isolation, actors and message passing. The language borrows many concepts from Erlang but with a C#-like syntax.
Axum is an imperative language with a C#-like syntax. While it is aware of objects, classes cannot be defined, because the language is domain and actor-oriented instead of being object-oriented. Axum is not a general purpose language being targeted at solving concurrency tasks and is built upon Concurrency and Coordination Runtime (CCR) from Microsoft Robotics. The idea is to make calls to Axum code from other .NET languages when parallelism is necessary.
Shared state is considered the main roadblock for safe parallelism. To use shared state in Axum, one needs to declare he is using it and the runtime controls the serialization process of accessing data stored in it. Concurrency is built right in the language.
The main concept in Axum is the domain. A domain is a repository of resources, a collection of data, agents and functions. Domains are isolated from each other and offer protection of their respective data or shared state. The state can be shared by agents of the same domain. The functions of a domain are pure functions which do not keep state between calls. Inside of a domain, agents exchange messages with each other through channels. A schema is introduced to facilitate the communication between agents that have no relationships to each other, so they need some sort of metadata to be able to properly communicate.
An agent is basically a thread that can communicate with other agents and their access to the shared state is controlled by adding reader/writer declarations:
domain A {
int i;
int func(int k){}
writer agent X: Channel1 {}
reader agent Y: Channel2{}
}
domain B {
int j;
agent Z: Channel1 {}
}
Graphically, the communication between domain agents looks like this:
While there is no official word on Microsoft’s plans with Axum, it looks like the Axum team is getting ready to ship the product. There are still documentation issues to solve, making the integration with Visual Studio work flawlessly, creating a MSI package.
Improve Java Garbage Collection, Runtime Execution, and JVM visibility with Zing
Using Drools? See what you're missing! Get the Power of Drools with the Assurance of Red Hat
18 agile and lean practices for effective software development governance
Agile Practices to Improve Project Management Organization (PMO) Effectiveness
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.
Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.
John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.
Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.
Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.
Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?
Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.
No comments
Watch Thread Reply