|By Bill Dudney||
|October 13, 2005 10:15 AM EDT||
What about MDA
Model Driven Architecture, also known as MDA, started in late 2000 with a white paper. Basically the idea is that we define the software we want to build in sophisticated models that capture the detail of the application. Then from these abstract models a series of transformations is applied to turn that abstract model into a running application. The highest-level model is referred to as a Platform Independent Model (PIM). There is an even more abstract model called a Computational Independent Model but we won't discuss that model. The PIM is, as the name suggests, independent of the deployment platform (i.e. .NET Java EE 5 etc.) In this model the business is specified, classes that make up the domain are fleshed out and specified. This model is then transformed into one or more Platform Specific Models (PSM) that can be elaborated with more detail specific to the platform. From the PSM a running application can be generated.
Now of course there is a need to put in your own business logic. Most tools today provide a way for you to edit the 'business logic' apart from the fully generated code. For example AndroMDA (an open source MDA tool) will generate some files only once (where your business logic is written). Other tools like OptimalJ take a different approach giving you code you can edit and 'protected blocks' that are part of the generated code. I'm sure there are other approaches as well that are taken by other tools.
- Productivity - the ability to raise the level of abstraction so that developers can become more productive is one of the greatest promises of MDA. Just as Java raised the level of abstraction from C/C++ so MDA raises the level abstraction for Java EE / .NET.
- Portability - greater ease of migration between various technologies (such as .NET to Java EE) or between different versions of the same technology (i.e. EJB 2.1 to EJB 3.0). Once developed your PIM is the repository of knowledge about your application, so moving to another underlying technology is 'easy'.
- Consistency - greater consistency of application architectural principals. This feature is hard to ignore. Many enterprise level projects have divergent architectures on the same project. Maintenance is very difficult in these projects to be sure.
At its core MDA is about using meta-data to drive program creation. The idea is that if we can develop a sophisticated enough model to express software then we can fully generate the actual running program from the model (or even create a virtual machine that could execute the model). The problem with taking this idea too far of course is that we end up with just another platform. Probably even worse though is that it's 'programming with pictures' which was already tried at least once in the late 80s and failed miserably. Few are willing to try programming with pictures again.
Many proponents of the MDA approach like to say that given a PIM with sufficient detail one would be free to move between .NET, Java EE or to something like Hibernate & Spring assuming that you had the proper set of transformations for these other PSMs. While this is a great marketing pitch for MDA and the PIM it is just not that straightforward. A PSM has too much platform-specific knowledge buried in it to simply move between different technologies. After all the PSM is where the business logic that makes the application unique actually resides. In order to make this move all that logic must be changed to fit into the new target technology.
Finally, and probably most significantly, MDA must overcome the grass roots resistance to the idea. Developers like to develop. They don't like to have control taken from them. There is a fundamental distrust of code generation and a resistance to this type of abstraction.
There are a couple of moves afoot that make me think we might be on the verge of a change in perception about MDA. The first is a more pragmatic approach being taken by vendors. Instead of expecting developers to program in pictures, many vendors are taking a more pragmatic approach. Developers are expected to build more familiar UML class diagrams and annotate them. Few are expecting a full blown executable model.
Second and more significantly is the emergence of meta-data as a normal part of every day life for Java developers. Several years ago the XDoclet project started bringing meta-data into the mainstream. The 'killer-app' for XDoclet was that EJBs only needed the bean class, the rest of the required files (remote/local interfaces, deployment descriptor entries, value objects etc.) were updated/generated automatically by XDoclet. Many developers embraced this approach because of the reduced tedious work that had to be done. With XDoclet, developers no longer have to mess with keeping the remote and local interfaces in-sync with the implementation methods. Instead XDoclet automatically generates the remote and local interfaces.
At this point many MDA vendors and proponents should be saying to themselves, hey that is exactly what we have been doing for years! And it is, the difference is no visual model. The developers write the meta-data that would normally be in stereotypes and/or tagged values right into their code. For many this bridges a semantic gap that is missing in the visual modeling paradigm.
Back to the meta-data being more 'normal'. The other major change that has recently happened that brings meta-data front and center is the addition of Annotations to the Java SE 5 platform and especially the use of this meta-data in Java EE 5. Developers will be using meta-data on a daily basis.
Another thing that developers typically don't like about the MDA approach is the feeling of lack of control over what is generated. I have often heard the assertion that the developer could do better than the code generator and other such comments. While it is probably true that a hand-crafted piece of code would be 'better' in many respects, it is also true that the generated code can be done in a fraction of the time and is 'good enough'.
An area where developers have been resistant to adopt a meta-data driven approach in the past has been persistence. The same argument of 'I could do better' was used quite often. More recently though it seems that Object Relational Mapping frameworks like Hibernate and/or Cayenne have been gaining momentum. On the surface you might be thinking that I'm nuts to draw a comparison between R/O Mapping and MDA but the comparison is not that far off. Most MDA tools rely on code generation instead of a framework but basically it's the same kind of thing. Hibernate has a framework but could just as well generate code at run time (or imagine aspects being attached to your POJOs). Either way (framework or code generation) meta-data is driving the way objects are mapped to rows in tables.
With the current set of R/O mapping tools a lot of control is removed from the developer; what exact SQL is executed is no longer in the developers direct control. However many are willing to give up this control for the increased productivity gain allowed by using something like Hibernate. Who really wants to write all that JDBC code anyway?
So where does this leave us? Will MDA take its hoped -for place as the next level of abstraction for developers? Will MDA become the next best thing that is relegated to the dustbin of history? Hard to say for sure, one thing is for certain though, meta-data is becoming more a part of developers everyday lives.
|Joe Gaber 10/15/05 07:27:38 PM EDT|
Here are comments related to snippets of your article:
1. "Developers like to develop" - this is true; however, developers have developed using a wide variety of programming languages and OCL (instrumental to the fulfillment of MDA) is another programming language (in fact its similar to the much aclaimed language smalltalk), and in the same way that Java didn't become a big deal until Java 2, OCL and UML (now at 2.0) are likely to now gain the same acceptance. Also, see my blog for a way for developers and architects to work in pairs in a version of Agile Modeling that I am professing is the missing link between modeling and programming collaboration.
2. "There is a fundamental distrust of code generation and a resistance to this type of abstraction" - isn't any 3rd GL (i.e., Java) an abstraction, or two, from 0s and 1s?? And, doesn't the entire J2EE array of APIs provide even more abstraction from code writting?? And, doesn't every IDE on the market today provide all types of functionality that helps write and refactor code?? Conclusion: If it wasn't for increasing abstractions from the 0s and 1s a CPU uses, we would be producing the same amount of 0s and 1s today as 30 years ago. The fact that we (developers) produce vastly greater amounts of machine code through the "abstract" languages and tools of today then we did before is what produces "productivity". At the point productivity ceases to increase, programming (wirtting code) becomes a commodity given to the lowest bidder.
3. "The developers write the meta-data that would normally be in stereotypes and/or tagged values right into their code. For many this bridges a semantic gap that is missing in the visual modeling paradigm" - whether you write meta-data in the code or in a model it only matters from a business standpoint not an engineering standpoint. What I mean by this is that business models far outlive the applications that fulfill the business's objective. Modeling the business domain, its processes, and transforming that into code provides the business with a much longer lived artifact than code. You can use XDoclet, Java 5 annotation, or an external transformation/mapping file (as with MDA), it doesn't matter, the fact is you are still using the meta-data to generate specific code. Also, as far as the idea of a "visual modeling paradigm", once you add the rich semantics into the visual elements of the model, you know have much more than pictures. You have a programmically rich artifact with much more power than just written code.
4. "Another thing that developers typically don't like about the MDA approach is the feeling of lack of control over what is generated" - in the case of a MDA tool like the open-source Andromda, what is generated is exactly what you specify in the templates, metafades, and specific cartridge descripter files used. All of which is under the complete control of whoever the busines decides, including developers. I am currently writting a cartridge for Andromda to generate specific applications using the Sprng Framework, including Spring's MVC implementation as well as to include DWR(AJAX) integrated with Spring. There is no restrictions to the way I decide for the code to be generated as I am the one creating the templates that produce the code.
The arguements about how MDA, CASE tools, CORBA, Meta-data, etc have not been embraced in the past is an indication of the future of MDA is, IMO, absurd. In order for MDA to succeed, there has had to be, and continues to be, numerous different technologies and methodologies to converge. MDA is in its infancy in terms of being a practical approach to software development. The fact is that MDA is highly dependent upon tools, and quite frankly, no tool of the past has had the power, functionality, vision, etc to truly meet the needs of MDA. That is changing as we speak, with virtually every major tool vendor, and the two leading OS IDEs (Eclipse and Netbeans), introducing new products, or projects, which include UML modeling, OCL, BPM, and MDA functionality all wrapped up into a compete high productivity tool.
15th Cloud Expo, which took place Nov. 4-6, 2014, at the Santa Clara Convention Center in Santa Clara, CA, expanded the conference content of @ThingsExpo, Big Data Expo, and DevOps Summit to include two developer events. IBM held a Bluemix Developer Playground on November 5 and ElasticBox held a Hackathon on November 6. Both events took place on the expo floor. The Bluemix Developer Playground, for developers of all levels, highlighted the ease of use of Bluemix, its services and functionality and provide short-term introductory projects that developers can complete between sessions.
Mar. 26, 2015 06:30 PM EDT Reads: 4,571
Temasys has announced senior management additions to its team. Joining are David Holloway as Vice President of Commercial and Nadine Yap as Vice President of Product. Over the past 12 months Temasys has doubled in size as it adds new customers and expands the development of its Skylink platform. Skylink leads the charge to move WebRTC, traditionally seen as a desktop, browser based technology, to become a ubiquitous web communications technology on web and mobile, as well as Internet of Things compatible devices.
Mar. 26, 2015 06:00 PM EDT Reads: 1,614
SYS-CON Events announced today that robomq.io will exhibit at SYS-CON's @ThingsExpo, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. robomq.io is an interoperable and composable platform that connects any device to any application. It helps systems integrators and the solution providers build new and innovative products and service for industries requiring monitoring or intelligence from devices and sensors.
Mar. 26, 2015 06:00 PM EDT Reads: 1,180
The list of ‘new paradigm’ technologies that now surrounds us appears to be at an all time high. From cloud computing and Big Data analytics to Bring Your Own Device (BYOD) and the Internet of Things (IoT), today we have to deal with what the industry likes to call ‘paradigm shifts’ at every level of IT. This is disruption; of course, we understand that – change is almost always disruptive.
Mar. 26, 2015 05:15 PM EDT Reads: 761
WebRTC is an up-and-coming standard that enables real-time voice and video to be directly embedded into browsers making the browser a primary user interface for communications and collaboration. WebRTC runs in a number of browsers today and is currently supported in over a billion installed browsers globally, across a range of platform OS and devices. Today, organizations that choose to deploy WebRTC applications and use a host machine that supports audio through USB or Bluetooth can use Plantronics products to connect and transit or receive the audio associated with the WebRTC session.
Mar. 26, 2015 05:00 PM EDT Reads: 1,444
The WebRTC Summit 2014 New York, to be held June 9-11, 2015, at the Javits Center in New York, NY, announces that its Call for Papers is open. Topics include all aspects of improving IT delivery by eliminating waste through automated business models leveraging cloud technologies. WebRTC Summit is co-located with 16th International Cloud Expo, @ThingsExpo, Big Data Expo, and DevOps Summit.
Mar. 26, 2015 04:45 PM EDT Reads: 960
Docker is an excellent platform for organizations interested in running microservices. It offers portability and consistency between development and production environments, quick provisioning times, and a simple way to isolate services. In his session at DevOps Summit at 16th Cloud Expo, Shannon Williams, co-founder of Rancher Labs, will walk through these and other benefits of using Docker to run microservices, and provide an overview of RancherOS, a minimalist distribution of Linux designed expressly to run Docker. He will also discuss Rancher, an orchestration and service discovery platf...
Mar. 26, 2015 04:15 PM EDT Reads: 2,268
Sonus Networks introduced the Sonus WebRTC Services Solution, a virtualized Web Real-Time Communications (WebRTC) offer, purpose-built for the Cloud. The WebRTC Services Solution provides signaling from WebRTC-to-WebRTC applications and interworking from WebRTC-to-Session Initiation Protocol (SIP), delivering advanced real-time communications capabilities on mobile applications and on websites, which are accessible via a browser.
Mar. 26, 2015 04:00 PM EDT Reads: 1,591
SYS-CON Events announced today that Aria Systems, the leading innovator in recurring revenue, has been named “Bronze Sponsor” of SYS-CON's @ThingsExpo, which will take place on June 9–11, 2015, at the Javits Center in New York, NY. Proven by the world’s most demanding enterprises, including AAA NCNU, Constant Contact, Falck, Hootsuite, Pitney Bowes, Telekom Denmark, and VMware, Aria helps enterprises grow their recurring revenue businesses. With Aria’s end-to-end active monetization platform, global brands can get to market faster with a wider variety of products and services, while maximizin...
Mar. 26, 2015 04:00 PM EDT Reads: 1,433
SYS-CON Media announced today that @WebRTCSummit Blog, the largest WebRTC resource in the world, has been launched. @WebRTCSummit Blog offers top articles, news stories, and blog posts from the world's well-known experts and guarantees better exposure for its authors than any other publication. @WebRTCSummit Blog can be bookmarked ▸ Here @WebRTCSummit conference site can be bookmarked ▸ Here
Mar. 26, 2015 04:00 PM EDT Reads: 1,538
SYS-CON Events announced today that Alert Logic, the leading provider of Security-as-a-Service solutions for the cloud, has been named “Bronze Sponsor” of SYS-CON's 16th International Cloud Expo® and DevOps Summit 2015 New York, which will take place June 9-11, 2015, at the Javits Center in New York City, NY, and the 17th International Cloud Expo® and DevOps Summit 2015 Silicon Valley, which will take place November 3–5, 2015, at the Santa Clara Convention Center in Santa Clara, CA.
Mar. 26, 2015 04:00 PM EDT Reads: 1,443
SYS-CON Events announced today that Vitria Technology, Inc. will exhibit at SYS-CON’s @ThingsExpo, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. Vitria will showcase the company’s new IoT Analytics Platform through live demonstrations at booth #330. Vitria’s IoT Analytics Platform, fully integrated and powered by an operational intelligence engine, enables customers to rapidly build and operationalize advanced analytics to deliver timely business outcomes for use cases across the industrial, enterprise, and consumer segments.
Mar. 26, 2015 03:30 PM EDT Reads: 2,028
Wearable technology was dominant at this year’s International Consumer Electronics Show (CES) , and MWC was no exception to this trend. New versions of favorites, such as the Samsung Gear (three new products were released: the Gear 2, the Gear 2 Neo and the Gear Fit), shared the limelight with new wearables like Pebble Time Steel (the new premium version of the company’s previously released smartwatch) and the LG Watch Urbane. The most dramatic difference at MWC was an emphasis on presenting wearables as fashion accessories and moving away from the original clunky technology associated with t...
Mar. 26, 2015 03:30 PM EDT Reads: 862
SYS-CON Events announced today that Solgenia will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY, and the 17th International Cloud Expo®, which will take place on November 3–5, 2015, at the Santa Clara Convention Center in Santa Clara, CA. Solgenia is the global market leader in Cloud Collaboration and Cloud Infrastructure software solutions. Designed to “Bridge the Gap” between Personal and Professional Social, Mobile and Cloud user experiences, our solutions help large and medium-sized organizations dr...
Mar. 26, 2015 03:00 PM EDT Reads: 2,503
SYS-CON Events announced today that Liaison Technologies, a leading provider of data management and integration cloud services and solutions, has been named "Silver Sponsor" of SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York, NY. Liaison Technologies is a recognized market leader in providing cloud-enabled data integration and data management solutions to break down complex information barriers, enabling enterprises to make smarter decisions, faster.
Mar. 26, 2015 03:00 PM EDT Reads: 3,293
Connected devices and the Internet of Things are getting significant momentum in 2014. In his session at Internet of @ThingsExpo, Jim Hunter, Chief Scientist & Technology Evangelist at Greenwave Systems, examined three key elements that together will drive mass adoption of the IoT before the end of 2015. The first element is the recent advent of robust open source protocols (like AllJoyn and WebRTC) that facilitate M2M communication. The second is broad availability of flexible, cost-effective storage designed to handle the massive surge in back-end data in a world where timely analytics is e...
Mar. 26, 2015 02:45 PM EDT Reads: 4,623
SYS-CON Events announced today that Akana, formerly SOA Software, has been named “Bronze Sponsor” of SYS-CON's 16th International Cloud Expo® New York, which will take place June 9-11, 2015, at the Javits Center in New York City, NY. Akana’s comprehensive suite of API Management, API Security, Integrated SOA Governance, and Cloud Integration solutions helps businesses accelerate digital transformation by securely extending their reach across multiple channels – mobile, cloud and Internet of Things. Akana enables enterprises to share data as APIs, connect and integrate applications, drive part...
Mar. 26, 2015 02:15 PM EDT Reads: 1,299
SYS-CON Events announced today that CommVault has been named “Bronze Sponsor” of SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY, and the 17th International Cloud Expo®, which will take place on November 3–5, 2015, at the Santa Clara Convention Center in Santa Clara, CA. A singular vision – a belief in a better way to address current and future data management needs – guides CommVault in the development of Singular Information Management® solutions for high-performance data protection, universal availability and sim...
Mar. 26, 2015 02:00 PM EDT Reads: 1,382
Cloud is not a commodity. And no matter what you call it, computing doesn’t come out of the sky. It comes from physical hardware inside brick and mortar facilities connected by hundreds of miles of networking cable. And no two clouds are built the same way. SoftLayer gives you the highest performing cloud infrastructure available. One platform that takes data centers around the world that are full of the widest range of cloud computing options, and then integrates and automates everything. Join SoftLayer on June 9 at 16th Cloud Expo to learn about IBM Cloud's SoftLayer platform, explore se...
Mar. 26, 2015 02:00 PM EDT Reads: 1,460
SYS-CON Media announced today that @ThingsExpo Blog launched with 7,788 original stories. @ThingsExpo Blog offers top articles, news stories, and blog posts from the world's well-known experts and guarantees better exposure for its authors than any other publication. @ThingsExpo Blog can be bookmarked. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago.
Mar. 26, 2015 01:45 PM EDT Reads: 2,104