As we plan for our V1 release, we have been engaging with many customers to discuss their requirements and incorporate their feedback into our plans. Some customers have told us that name "SQL Server Modeling Services" doesn't reflect the true nature of what it really is. And its obvious short form SSMS conflicts with SQL Server Management Studio. We have been referring to it as SSMoS for that very same reason. Anyways, here is a little writeup to explain what we have been upto and hopefully get your feedback on various aspects of the SQL Server Modeling Services, including the name, current CTP bits and vision.
What is SQL Server Modeling Services?
SQL Server Modeling Services is a component of SQL Server Modeling (nee Oslo) technologies and was referred to as "Repository" in previous CTPs. It will be a new role in next version of Microsoft SQL Server and provides a shared application lifecycle metadata platform over which people, tools and runtimes can rendezvous in an application lifecycle. It provides a foundation for customers (such as ISVs and Systems Integrators) to productively build metadata-driven application lifecycle solutions.
SQL Server Modeling Services platform consists of:
- SQL Server database for storing the structure of an application and its interdependencies
- Model schemas and associated load/export API to bootstrap the data modeling ecosystem for application lifecycle artifacts
- Core services to promote a consistent experience for users, tools and runtimes that interact with the database
- SDK for customers to easily create/extend model schemas and associated artifact load/extract API
SQL Server Modeling Services take advantage of the features of SQL Server ecosystem to deliver on critical areas such as data access, scalability, security, performance, reporting and integration.
Why should you use SQL Server Modeling Services?
Different types of artifacts are created and consumed in a typical application design, development, deployment and servicing lifecycle, such as requirements, design decisions, source code, assemblies, configuration files, application packages and deployment scripts. Enterprises increasingly have a need to record what IT pieces are there and how they inter-relate with each other for knowledge management and business intelligence. Currently the knowledge about an application and its relationship to the business and data center are spread out over several tools, databases and repositories in a typical IT environment.
The same artifact in the lifecycle may not have a uniform data model across these multiple databases: a Web Service interface may be stored as a C# or WSDL file in the SCM database, have a more richer data structure in a SOA repository and be just a configuration item in an enterprise CMDB. The difference in the format of the data and their data access mechanism leads to low degree of sharing and reuse of database schemas for these application lifecycle artifacts. If the reuse does happen, that's typically done using siloed repositories and point-to-point tool integrations.
With SQL Server Modeling Services, different application lifecycle tools can leverage the common data schema and access mechanisms for interacting with metadata about application lifecycle artifacts. Microsoft will ship with many application lifecycle model schemas and we expect our partners to create other schemas.
If you are a developer who wants to create an end-to-end BI solution over application lifecycle metadata or an ISV building model-driven applications that use a metadata repository or a Systems Integrator wanting to build an asset management system, do you think you can use SQL Server Modeling Services? With SQL Server Modeling Services, you can levarage the out-of-box application lifecycle artifact metadata schemas that we will ship AND you can also build-upon the platform by adding your own schemas using "M" toolkit.
Download November 2009 SQL Server Modeling CTP to get a preview of the model schemas and loaders for .NET assemblies (System.Runtime) and UML XMI model files (Microsoft.Uml2). We are planning additional models for our V1.
For more information about SQL Server Modeling Services, see SQL Server Modeling Services Questions and Answers.
What are examples of real-world use cases for SQL Server Modeling Services?
There are many different applications of SQL Server Modeling Services and they can provide varying capabilities depending upon the type of metadata stored in the database.
One of the examples is to use this for software asset repository. An instance of SQL Server Modeling Services database can be used as a software asset repository to provide a system of record for various application lifecycle assets. Let's say, an IT decision maker wants to understand what software systems are in place, in which data centers and for which line-of-business applications. And if a change was being made to one component, what will be impacted. When the data is spread out over multiple different databases and locked in individual files, this makes it difficult for decisions makers to query the data consistently, analyze it and make timely business decisions and plan for change. The software asset repository can be used by various application lifecycle users to query information about dependencies that would otherwise be more difficult:
- An architect for a particular line-of-business application can find out which machines (physical or virtual) in data center have pieces of his application running.
- A systems administrator responsible for maintaining a set of machine can quickly find out the development contact to notify them about the patch he is about to apply on that machine.
Here are some concrete examples just for the System.Runtime model - imagine the power if there were even other models available such as WCF, WF, Identity and Environment models.
- Al, a systems administrator, is going to patch a .NET Framework 3.5 assembly in production. He uses the software asset repository to find all the applications that depend on this .NET Framework 3.5 assembly.
- CIO of XYZ inc would like to reduce spending on in-house frameworks and libraries. Software asset repository can be used to find the common libraries being utilized within his IT environment in the enterprise.
- Joe, the solution architect, is working on V2.5 of a common framework library. He uses the software asset repository database to find all the consuming applications that will be impacted, if he changes one of his interfaces.
- Al is doing application inventory in the staging datacenter. He would like to uninstall older versions of the .NET Framework that are not being used by any application in the enterprise. He uses the repository to find all different versions of .NET Frameworks and their consumers.
In this community article titled, SQL Server Modeling Services with Microsoft Visual Studio 2010 Beta 2, the author also noted how having assembly metadata in the database can allow one to get broader insight into the applications behavior (without requiring source code and/or use of a reflector).
Instead of having users to use different tools to browse and publish metadata to the repository, specific application lifecycle tool-specific plugins (e.g. a repository browser plug-in for Visual Studio or even Eclipse) can be created that let users interact with the database without having to leave the tool they love. For example, the Architecture Explorer tool in Visual Studio 2010 can easily be extended to do code analysis over a broader set of data in the SQL Server Modeling Services database.
With SQL Server Modeling Services, we are building a platform! We want customers to build their metadata-driven solutions over this platform. We want to know what features you would like so you can take a bet on this platform.
If you are interested in participating in our early engagement and feedback programs, please contact us.