Saturday, February 6, 2010

Microsoft Dreams Big, Dreams of Oslo


The Dream
Microsoft started dreaming of Oslo back in 2007. Its aim was to empower nondevelopers the ability to build distributed applications from models or diagrams. Oslo was supposed to be a general purpose software modeling platform for application modeling and SOA(Service Oriented Architecture). The initial goal was to deliver a visual tool for creating models along with a repository to store the models and metadata. Oslo is designed to capture people’s ideas and allow them to work with and create data requirements. Oslo is a set of technologies that will help take model driven design mainstream.The tool enables users to capture domain knowledge in domain-specific views. It will also be useful for more advanced diagramming, such as enabling the development of BPMN (Business Process Modeling Notification) workflows and UML (Unified Modeling Language) services.

Microsoft is making investments aligned with a vision to simplify the effort needed to build, deploy, and manage composite applications within and across organizations. The effort builds on model driven and service enabled principles and extends SOA beyond the firewall. Designing, developing, and deploying applications will be facilitated by a simpler process.

The Reality
As of the November CTP (Community Technology Preview) 2009, the "Oslo" project codename was renamed SQL Sever Modeling CTP. There are 3 technical components to the SQL Server Modeling CTP:

SQL Server Modeling Services: this includes a SQL Server database with enhanced functionality that allows the storage of model schemas. It is built on SQL Server 2008 and serves as a platform to manage application metadata. This allows easy leverage to the existing SQL Server database ecosystem. The modeling service supports all editions of SQL Server except for SQL Server Compact.

M Modeling Language: a textual language for defining model schema and instances. “M” is being developed as a complement to visual modeling tools so that developers can choose the format (text or diagrams) that are best suited for their task. It is a declarative language that provides an approachable, textual format for authoring models and domain-specific languages (DSLs). The “M” language also allows specification of structural types and values (storing and queries), all of which enable the developers to have a natural development experience for building models.


Here is an example of some M language code. I am not at all familiar with it so I cannot begin to tell you what this code means. What M language aims for is to map to a T-SQL query to a relational database by way of textual representation.









Quadrant Modeling Tool: a tool for visualizing and interacting with relational data stored in SQL Server databases. Quadrant is focused on a modeling technology that enables developers to describe parts of their application in data. It is intended to be a graphical tool for editing and exploring data in any SQL Server database. These include tools for viewing, querying and editing data. Enabling the ability to modify built-in viewers with simple UI-based customization functionality and being able to create domain-specific browsing and editing experience by configuring and extending “Quadrant”.


Microsoft wants to unify the approach to modeling by building a modeling language, a set of tools, and a unified repository. Microsoft's modeling language provides a way to unify existing modeling languages, similar to Microsoft's Common Language Runtime for application development. The model is to expand beyond UML to cover deployment as well as management. The key to Microsoft's effort is a unified metadata repository. Deployment, policy information, workflow, and rules are all maintained in one location to prevent data loss when deploying and managing an application or writing business rules against it. I have no experience using Microsoft's .Net framework, so I neither know it's strengths nor weaknesses. I can understand the impetus behind the idea and if it creates an easier way to develop in a model driven methodology, I'm all for it.

No comments:

Post a Comment