The document describes research on data model evolution. It discusses how data models change over time through the addition, removal, and modification of entities and properties. The research aims to specify data model evolutions through a language that describes transformations at the level of entities and properties. This includes basic transformations like adding/removing entities/properties as well as more advanced transformations like moving properties. The transformations are applied using program rewriting to migrate data between different versions of a data model.
This document discusses software language evolution and coupled heterogeneous evolution. It presents a generic architecture for specifying data model evolutions using a domain-specific transformation language. This includes basic transformations, a positioning language, and syntax for specifying model evolutions. The architecture generates interpreters for automatic migration between heterogeneous models. The work focuses on evolution across multiple domains and software languages.
Building Your First MongoDB App ~ Metadata Cataloghungarianhc
These are the slides I used for a MongoDB webinar about creating your first application with MongoDB. They start with a general MongoDB overview, continuing onto how to model data for a metadata catalog. At this point in the presentation, I break to do a live demonstration. Afterwards, I touch on scaling your application with MongoDB.
Building a complete social networking platform presents many challenges at scale. Socialite is a reference architecture and open source Java implementation of a scalable social feed service built on DropWizard and MongoDB. We'll provide an architectural overview of the platform, explaining how you can store an infinite timeline of data while optimizing indexing and sharding configuration for access to the most recent window of data. We'll also dive into the details of storing a social user graph in MongoDB.
Socialite, the Open Source Status Feed Part 3: Scaling the Data FeedMongoDB
Scaling the delivery of posts and content to the follower networks of millions of users has many challenges. In this section we look at the various approaches to fanning out posts and look at a performance comparison between them. We will highlight some tricks for caching the recent timeline of active users to drive down read latency. We will also look at overall performance metrics from Socialite as we scale from a single replica set to a large sharded environment using MMS Automation.
MongoDB San Francisco 2013: Data Modeling Examples From the Real World presen...MongoDB
In this session, we'll examine schema design insights and trade-offs using real world examples. We'll look at three example applications: building an email inbox, selecting a shard key for a large scale web application, and using MongoDB to store user profiles. From these examples you should leave the session with an idea of the advantages and disadvantages of various approaches to modeling your data in MongoDB. Attendees should be well versed in basic schema design and familiar with concepts in the morning's basic schema design talk. No beginner topics will be covered in this session.
Schema Design by Example ~ MongoSF 2012hungarianhc
This document summarizes a presentation about schema design in MongoDB. It discusses embedding documents, linking documents through references, and using geospatial data for check-ins. Examples are given for modeling blog posts and comments, places with metadata, and user profiles with check-in histories. The document emphasizes designing schemas based on application needs rather than relational normalization.
This document discusses humongous data and how MongoDB and Hadoop can be used together to process large datasets. It begins with defining humongous data and how the amount of data being created is growing exponentially. It then demonstrates how MongoDB can be used for operational databases and basic data processing but is limited, while Hadoop is designed for large-scale data processing. The document concludes by discussing how technologies like MongoDB and Hadoop will continue to evolve to handle the growing sizes of data being created.
MongoDB, Hadoop and humongous data - MongoSV 2012Steven Francia
Learn how to integrate MongoDB with Hadoop for large-scale distributed data processing. Using tools like MapReduce, Pig and Streaming you will learn how to do analytics and ETL on large datasets with the ability to load and save data against MongoDB. With Hadoop MapReduce, Java and Scala programmers will find a native solution for using MapReduce to process their data with MongoDB. Programmers of all kinds will find a new way to work with ETL using Pig to extract and analyze large datasets and persist the results to MongoDB. Python and Ruby Programmers can rejoice as well in a new way to write native Mongo MapReduce using the Hadoop Streaming interfaces.
This document discusses software language evolution and coupled heterogeneous evolution. It presents a generic architecture for specifying data model evolutions using a domain-specific transformation language. This includes basic transformations, a positioning language, and syntax for specifying model evolutions. The architecture generates interpreters for automatic migration between heterogeneous models. The work focuses on evolution across multiple domains and software languages.
Building Your First MongoDB App ~ Metadata Cataloghungarianhc
These are the slides I used for a MongoDB webinar about creating your first application with MongoDB. They start with a general MongoDB overview, continuing onto how to model data for a metadata catalog. At this point in the presentation, I break to do a live demonstration. Afterwards, I touch on scaling your application with MongoDB.
Building a complete social networking platform presents many challenges at scale. Socialite is a reference architecture and open source Java implementation of a scalable social feed service built on DropWizard and MongoDB. We'll provide an architectural overview of the platform, explaining how you can store an infinite timeline of data while optimizing indexing and sharding configuration for access to the most recent window of data. We'll also dive into the details of storing a social user graph in MongoDB.
Socialite, the Open Source Status Feed Part 3: Scaling the Data FeedMongoDB
Scaling the delivery of posts and content to the follower networks of millions of users has many challenges. In this section we look at the various approaches to fanning out posts and look at a performance comparison between them. We will highlight some tricks for caching the recent timeline of active users to drive down read latency. We will also look at overall performance metrics from Socialite as we scale from a single replica set to a large sharded environment using MMS Automation.
MongoDB San Francisco 2013: Data Modeling Examples From the Real World presen...MongoDB
In this session, we'll examine schema design insights and trade-offs using real world examples. We'll look at three example applications: building an email inbox, selecting a shard key for a large scale web application, and using MongoDB to store user profiles. From these examples you should leave the session with an idea of the advantages and disadvantages of various approaches to modeling your data in MongoDB. Attendees should be well versed in basic schema design and familiar with concepts in the morning's basic schema design talk. No beginner topics will be covered in this session.
Schema Design by Example ~ MongoSF 2012hungarianhc
This document summarizes a presentation about schema design in MongoDB. It discusses embedding documents, linking documents through references, and using geospatial data for check-ins. Examples are given for modeling blog posts and comments, places with metadata, and user profiles with check-in histories. The document emphasizes designing schemas based on application needs rather than relational normalization.
This document discusses humongous data and how MongoDB and Hadoop can be used together to process large datasets. It begins with defining humongous data and how the amount of data being created is growing exponentially. It then demonstrates how MongoDB can be used for operational databases and basic data processing but is limited, while Hadoop is designed for large-scale data processing. The document concludes by discussing how technologies like MongoDB and Hadoop will continue to evolve to handle the growing sizes of data being created.
MongoDB, Hadoop and humongous data - MongoSV 2012Steven Francia
Learn how to integrate MongoDB with Hadoop for large-scale distributed data processing. Using tools like MapReduce, Pig and Streaming you will learn how to do analytics and ETL on large datasets with the ability to load and save data against MongoDB. With Hadoop MapReduce, Java and Scala programmers will find a native solution for using MapReduce to process their data with MongoDB. Programmers of all kinds will find a new way to work with ETL using Pig to extract and analyze large datasets and persist the results to MongoDB. Python and Ruby Programmers can rejoice as well in a new way to write native Mongo MapReduce using the Hadoop Streaming interfaces.
This document discusses using MongoDB and Mongoid with Ruby on Rails. It covers why MongoDB was chosen, how to set up Mongoid, different types of relationships and queries, and testing. Embedded and referenced relationships are described. Versioning, indexing and other features like callbacks are demonstrated. Hosting options like Heroku, MongoHQ and MongoLab are also mentioned.
This document discusses different design options for modeling messaging inboxes in MongoDB. It describes three main approaches: fan out on read, fan out on write, and fan out on write with bucketing. Fan out on read involves storing a single document per message with all recipients, requiring a scatter-gather query to read an inbox. Fan out on write stores one document per recipient but still involves random I/O to read an inbox. Bucketed fan out on write stores inbox messages in arrays within "inbox" documents for each user, allowing an entire inbox to be read with one or two documents. This provides the best read performance while also distributing writes across shards. The document concludes that bucketed fan out on write is typically the better
Relational databases are central to web applications, but they have also been the primary source of pain when it comes to scale and performance. Recently, non-relational databases (also referred to as NoSQL) have arrived on the scene. This session explains not only what MongoDB is and how it works, but when and how to gain the most benefit.
This talk examines four real-world use cases for MongoDB document-based data modeling. We examine the implications of several possible solutions for each problem.
This document provides an overview of Ajax and common techniques for using Ajax. It discusses using the XMLHttpRequest object to make asynchronous HTTP requests, common response types like HTML, JSON, and XML, and Ajax toolkits like Prototype and jQuery that simplify working with Ajax. Tips are provided for using Ajax responsibly on both the client-side and server-side of an application.
MongoDB London 2013: Data Modeling Examples from the Real World presented by ...MongoDB
In this session, we'll examine schema design insights and trade-offs using real world examples. We'll look at three example applications: building an email inbox, selecting a shard key for a large scale web application, and using MongoDB to store user profiles. From these examples you should leave the session with an idea of the advantages and disadvantages of various approaches to modeling your data in MongoDB. Attendees should be well versed in basic schema design and familiar with concepts in the morning's basic schema design talk. No beginner topics will be covered in this session.
Map/Confused? A practical approach to Map/Reduce with MongoDBUwe Printz
Talk given at MongoDb Munich on 16.10.2012 about the different approaches in MongoDB for using the Map/Reduce algorithm. The talk compares the performance of built-in MongoDB Map/Reduce, group(), aggregate(), find() and the MongoDB-Hadoop Adapter using a practical use case.
This document discusses how Eventbrite built a social network using MongoDB to provide event recommendations. It stores user, event, and order data in MongoDB collections with indexes. It generates recommendations by querying neighbors' attended events and scoring events based on neighbor attendance. It also discusses challenges around dynamic neighbor relationships and performance needs that led it to choose MongoDB.
Webinar: Data Modeling Examples in the Real WorldMongoDB
This document discusses different data modeling approaches for common use cases in MongoDB. It presents four examples: an inbox with messages, retaining historical data, storing variable attributes, and supporting multiple user identities. For each, it outlines the design goals, proposes 2-3 modeling approaches, and considers the advantages and disadvantages of each in terms of write and read performance, indexing strategies, and data distribution across a sharded cluster. The conclusion emphasizes choosing a model that balances query ease with write ease while avoiding random I/O.
MongoDB World 2018: Time for a Change Stream - Using MongoDB Change Streams t...MongoDB
Change streams allow applications to access real-time data changes without complexity. The document discusses how a company called Hubba used change streams to add versioning to their data without significant architecture changes. This allowed existing services and queries to continue working as before. They created a History service to consume all change events from MongoDB and mirror the data with versions. This provided an isolated record of changes over time while keeping raw queries functional. While change streams introduced some challenges around consistency and performance, overall it was a beneficial way to non-invasively add versioning to their system.
This talk will introduce the philosophy and features of the open source, NoSQL MongoDB. We’ll discuss the benefits of the document-based data model that MongoDB offers by walking through how one can build a simple app to store books. We’ll cover inserting, updating, and querying the database of books.
This document provides an introduction and overview of MongoDB. It discusses how MongoDB is a document-oriented database that is open source, high performance, and horizontally scalable. It provides examples of using MongoDB with the mongo shell to create, query, update and index data. Key points covered include how MongoDB uses documents rather than tables, how data can be embedded or referenced between collections, and how to perform queries, sorting, pagination and more. Official drivers are available for connecting applications to MongoDB databases from many programming languages.
Socialite, the Open Source Status Feed Part 2: Managing the Social GraphMongoDB
There are many possible approaches to storing and querying relationships between users in social networks. This section will dive into the details of storing a social user graph in MongoDB. It will cover the various schema designs for storing the follower networks of users and propose an optimal design for insert and query performance, as well as looking at performance differences between them.
The document discusses schema design basics for MongoDB, including terms, considerations for schema design, and examples of modeling different types of data structures like trees, single table inheritance, and many-to-many relationships. It provides examples of creating indexes, evolving schemas, and performing queries and updates. Key topics covered include embedding data versus normalization, indexing, and techniques for modeling one-to-many and many-to-many relationships.
Sharding with MongoDB allows scaling a database horizontally across multiple servers. It involves splitting data into chunks and distributing those chunks across shards. The mongos router directs read and write operations to the appropriate shards. Documents are sharded based on a shard key to ensure related data resides on the same shard. Queries are routed efficiently based on the shard key. Splits and migrations balance data as needs change over time.
CosmosDB service is a NoSQL is a globally distributed, multi-model database database service designed for scalable and high performance modern applications. CosmosDB is delivered as a fully managed service with an enterprise grade SLA. It supports querying of documents using a familiar SQL over hierarchical JSON documents. Azure Cosmos DB is a superset of the DocumentDB service. It allows you to store and query noSQL data, regardless of schema. In this presentation, you will learn: • How to get started with DocumentDB you provision a new database account. • How to index documents • How to create applications using CosmosDb (using REST API or programming libraries for several popular language) • Best practices designing applications with CosmosDB • Best practices creating queries.
Mongoid is an object document mapper (ODM) for MongoDB that allows developers to work with MongoDB documents as objects. Some key features of Mongoid include defining document schemas with fields and associations like references and embeds, validation support, indexing, integration with Rails caching and authentication frameworks like Devise, and dropping down to the lower-level MongoDB driver when needed for performance. Mongoid aims to provide an everyday ORM solution for MongoDB along with features for testing, searching, and file uploads.
MongoDB Schema Design: Four Real-World ExamplesMike Friedman
This document discusses different schema designs for common use cases in MongoDB. It presents four cases: (1) modeling a message inbox, (2) retaining historical data within limits, (3) storing variable attributes efficiently, and (4) looking up users by multiple identities. For each case, it analyzes different modeling approaches, considering factors like query performance, write performance, and whether indexes can be used. The goal is to help designers choose an optimal schema based on their application's access patterns and scale requirements.
NoSQL databases only unfold their entire strength when also embracing the their concepts regarding usage and schema design. These slides give some overview of features and concepts of MongoDB.
Model-Driven Software Development 2.0
Slides of Etienne Juliot at the Atsen Keynote, Istanbul, 2014: http://atsen-conferences.org/
My vision about the need to think generic and infrastructure to create innovations with modeling.
Israel redefining innovation at International CES 2015FSJU AUJF
This document provides information on 13 Israeli technology companies that will be exhibiting at CES 2015 in Las Vegas. It includes brief 1-3 sentence descriptions of each company's product or solution and highlights what makes it innovative and impactful in the market. The companies cover a range of technologies including virtual reality cameras, personalized video marketing platforms, mobile entertainment for kids, automated translation for phone calls, and wearable devices for interacting with projected digital content.
This document discusses using MongoDB and Mongoid with Ruby on Rails. It covers why MongoDB was chosen, how to set up Mongoid, different types of relationships and queries, and testing. Embedded and referenced relationships are described. Versioning, indexing and other features like callbacks are demonstrated. Hosting options like Heroku, MongoHQ and MongoLab are also mentioned.
This document discusses different design options for modeling messaging inboxes in MongoDB. It describes three main approaches: fan out on read, fan out on write, and fan out on write with bucketing. Fan out on read involves storing a single document per message with all recipients, requiring a scatter-gather query to read an inbox. Fan out on write stores one document per recipient but still involves random I/O to read an inbox. Bucketed fan out on write stores inbox messages in arrays within "inbox" documents for each user, allowing an entire inbox to be read with one or two documents. This provides the best read performance while also distributing writes across shards. The document concludes that bucketed fan out on write is typically the better
Relational databases are central to web applications, but they have also been the primary source of pain when it comes to scale and performance. Recently, non-relational databases (also referred to as NoSQL) have arrived on the scene. This session explains not only what MongoDB is and how it works, but when and how to gain the most benefit.
This talk examines four real-world use cases for MongoDB document-based data modeling. We examine the implications of several possible solutions for each problem.
This document provides an overview of Ajax and common techniques for using Ajax. It discusses using the XMLHttpRequest object to make asynchronous HTTP requests, common response types like HTML, JSON, and XML, and Ajax toolkits like Prototype and jQuery that simplify working with Ajax. Tips are provided for using Ajax responsibly on both the client-side and server-side of an application.
MongoDB London 2013: Data Modeling Examples from the Real World presented by ...MongoDB
In this session, we'll examine schema design insights and trade-offs using real world examples. We'll look at three example applications: building an email inbox, selecting a shard key for a large scale web application, and using MongoDB to store user profiles. From these examples you should leave the session with an idea of the advantages and disadvantages of various approaches to modeling your data in MongoDB. Attendees should be well versed in basic schema design and familiar with concepts in the morning's basic schema design talk. No beginner topics will be covered in this session.
Map/Confused? A practical approach to Map/Reduce with MongoDBUwe Printz
Talk given at MongoDb Munich on 16.10.2012 about the different approaches in MongoDB for using the Map/Reduce algorithm. The talk compares the performance of built-in MongoDB Map/Reduce, group(), aggregate(), find() and the MongoDB-Hadoop Adapter using a practical use case.
This document discusses how Eventbrite built a social network using MongoDB to provide event recommendations. It stores user, event, and order data in MongoDB collections with indexes. It generates recommendations by querying neighbors' attended events and scoring events based on neighbor attendance. It also discusses challenges around dynamic neighbor relationships and performance needs that led it to choose MongoDB.
Webinar: Data Modeling Examples in the Real WorldMongoDB
This document discusses different data modeling approaches for common use cases in MongoDB. It presents four examples: an inbox with messages, retaining historical data, storing variable attributes, and supporting multiple user identities. For each, it outlines the design goals, proposes 2-3 modeling approaches, and considers the advantages and disadvantages of each in terms of write and read performance, indexing strategies, and data distribution across a sharded cluster. The conclusion emphasizes choosing a model that balances query ease with write ease while avoiding random I/O.
MongoDB World 2018: Time for a Change Stream - Using MongoDB Change Streams t...MongoDB
Change streams allow applications to access real-time data changes without complexity. The document discusses how a company called Hubba used change streams to add versioning to their data without significant architecture changes. This allowed existing services and queries to continue working as before. They created a History service to consume all change events from MongoDB and mirror the data with versions. This provided an isolated record of changes over time while keeping raw queries functional. While change streams introduced some challenges around consistency and performance, overall it was a beneficial way to non-invasively add versioning to their system.
This talk will introduce the philosophy and features of the open source, NoSQL MongoDB. We’ll discuss the benefits of the document-based data model that MongoDB offers by walking through how one can build a simple app to store books. We’ll cover inserting, updating, and querying the database of books.
This document provides an introduction and overview of MongoDB. It discusses how MongoDB is a document-oriented database that is open source, high performance, and horizontally scalable. It provides examples of using MongoDB with the mongo shell to create, query, update and index data. Key points covered include how MongoDB uses documents rather than tables, how data can be embedded or referenced between collections, and how to perform queries, sorting, pagination and more. Official drivers are available for connecting applications to MongoDB databases from many programming languages.
Socialite, the Open Source Status Feed Part 2: Managing the Social GraphMongoDB
There are many possible approaches to storing and querying relationships between users in social networks. This section will dive into the details of storing a social user graph in MongoDB. It will cover the various schema designs for storing the follower networks of users and propose an optimal design for insert and query performance, as well as looking at performance differences between them.
The document discusses schema design basics for MongoDB, including terms, considerations for schema design, and examples of modeling different types of data structures like trees, single table inheritance, and many-to-many relationships. It provides examples of creating indexes, evolving schemas, and performing queries and updates. Key topics covered include embedding data versus normalization, indexing, and techniques for modeling one-to-many and many-to-many relationships.
Sharding with MongoDB allows scaling a database horizontally across multiple servers. It involves splitting data into chunks and distributing those chunks across shards. The mongos router directs read and write operations to the appropriate shards. Documents are sharded based on a shard key to ensure related data resides on the same shard. Queries are routed efficiently based on the shard key. Splits and migrations balance data as needs change over time.
CosmosDB service is a NoSQL is a globally distributed, multi-model database database service designed for scalable and high performance modern applications. CosmosDB is delivered as a fully managed service with an enterprise grade SLA. It supports querying of documents using a familiar SQL over hierarchical JSON documents. Azure Cosmos DB is a superset of the DocumentDB service. It allows you to store and query noSQL data, regardless of schema. In this presentation, you will learn: • How to get started with DocumentDB you provision a new database account. • How to index documents • How to create applications using CosmosDb (using REST API or programming libraries for several popular language) • Best practices designing applications with CosmosDB • Best practices creating queries.
Mongoid is an object document mapper (ODM) for MongoDB that allows developers to work with MongoDB documents as objects. Some key features of Mongoid include defining document schemas with fields and associations like references and embeds, validation support, indexing, integration with Rails caching and authentication frameworks like Devise, and dropping down to the lower-level MongoDB driver when needed for performance. Mongoid aims to provide an everyday ORM solution for MongoDB along with features for testing, searching, and file uploads.
MongoDB Schema Design: Four Real-World ExamplesMike Friedman
This document discusses different schema designs for common use cases in MongoDB. It presents four cases: (1) modeling a message inbox, (2) retaining historical data within limits, (3) storing variable attributes efficiently, and (4) looking up users by multiple identities. For each case, it analyzes different modeling approaches, considering factors like query performance, write performance, and whether indexes can be used. The goal is to help designers choose an optimal schema based on their application's access patterns and scale requirements.
NoSQL databases only unfold their entire strength when also embracing the their concepts regarding usage and schema design. These slides give some overview of features and concepts of MongoDB.
Model-Driven Software Development 2.0
Slides of Etienne Juliot at the Atsen Keynote, Istanbul, 2014: http://atsen-conferences.org/
My vision about the need to think generic and infrastructure to create innovations with modeling.
Israel redefining innovation at International CES 2015FSJU AUJF
This document provides information on 13 Israeli technology companies that will be exhibiting at CES 2015 in Las Vegas. It includes brief 1-3 sentence descriptions of each company's product or solution and highlights what makes it innovative and impactful in the market. The companies cover a range of technologies including virtual reality cameras, personalized video marketing platforms, mobile entertainment for kids, automated translation for phone calls, and wearable devices for interacting with projected digital content.
Auf der Cloudforce 2011 präsentiert Claus Schmälzle, Salesforce, die Service Cloud Roadmap für 2012 mit den Themen Multi-Channel Social Contact Center, Self-Service Communities und Social Customer Service.
iPhonical and model-driven software development for the iPhoneHeiko Behrens
These are the slides of my talk "iPhonical and model-driven software development on the iPhone" at the German iPhone Developer Conference 2009 in Cologne. Unfortunately, this version does not include the 25+ minutes demos I presented during the talk.
Getting Started with Big Data for Business ManagersDatameer
Big Data has become critical to the enterprise because of the massive amount of untapped data sources, and the potential to gain new insights that were previously not possible. So, how to get started with Big Data and Hadoop becomes a question more pertinent than ever before.
Listen to leading analyst at Ovum, Tony Baer, as he discusses answers to the key questions around how to:
Approach Big Data and associated business challenges
-- Identify what types of new insights can be revealed by Big Data
-- Staff for this undertaking and implement the technology necessary to be successful
-- Take the first steps toward getting started with Big Data on Hadoop
This document discusses how model-driven development (MDD) can help balance architectural integrity and rapid delivery for agile projects. MDD uses models to represent problem and solution knowledge, provide a common lexicon, and serve as the basis for conversations about system relationships. Models and transformations can automate implementation knowledge to continually increase development velocity. The document provides examples of how to structure models and transformations simply and integrate MDD into agile processes and continuous integration/delivery practices. Case studies demonstrate how MDD rescued a failed project and bootstrapped a new development team.
Modell-getriebene Softwareentwicklung für Lego Mindstorms NXTjoergreichert
Model driven software development for Lego Mindstorm NXT (as it was possible in 2008).
Now the tooling is much sophisticated, check out: http://www.statecharts.org/
Analyzing Unstructured Data in Hadoop WebinarDatameer
Unstructured data is growing 62% per year faster than structured data. According to Gartner, data volumes are set to grow 800% in aggregate over the next 5 years, and 80% of it will be unstructured data.
This on-demand webinar will highlight and discuss:
How applying big data analytics to unstructured data can help you gain richer, deeper and more accurate insights to gain competitive advantages
The sources of unstructured data which include email, social media platforms, CRM systems, call center platforms (including notes and speech-to-text transcripts), and web scrapes
How monitoring the communications of your customers and prospects enables you to make time-sensitive decisions and jump on new business opportunities
This document provides an introduction to model-driven software development (MDSD). It discusses what MDSD is, why organizations adopt it, and how it can be applied. Key aspects of MDSD covered include code generation, domain-specific languages, separation of concerns, and economic benefits such as reduced costs from economies of scale and scope. The document also reviews various tools and approaches used in MDSD, including those based on UML, EMF, and DSLs. It concludes by emphasizing that MDSD can help improve software productivity and help establish true software engineering practices.
Software is eating the world and MDD should be in the driving seatJohan den Haan
Software is eating the world! Every company is becoming a software company. If companies don’t, they cease to exist. Just imagine: you are a thermostat maker and suddenly you have Google as a competitor (via its Nest acquisition). This is just one of the many recent examples.
Interestingly a lot of the innovations in the software industry are fuelled by abstraction and automation, concepts that are well-known in the MDD community. As the world is awakening to these concepts there is a clear opportunity (and need!) to bring MDD to a much broader audience.
In this keynote we will analyse what’s happening on all layers of the software stack. We will also explore how we can become more relevant as an MDD community. There is a ton of knowledge and experience in our community that could move the needle for a lot of companies, but are we using it? We need to stop doing what we always do. We need bold ideas and the courage to start a journey with no clear endpoint!
paydirekt, ein nationales Online-Bezahlverfahren entwickelt von der deutschen Kreditwirtschaft. Neben den Genossenschaftsbanken sind auch Sparkassen und private Banken an paydirekt beteiligt. Über das Online-Banking der Hausbank können sich Kunden bei paydirekt anmelden und in ausgewählten Onlineshops bezahlen. paydirekt unterstützt ca. 20 Shops wie z.B. Haribo, Alternate und Deichmann. Händler wie Amazon, Zalando oder Otto unterstützen paydirekt als Online-Bezahlverfahren nicht. Die Folien zeigen ein kurzes Walkthrough
Why there is no future for Model Driven DevelopmentJohan den Haan
Talk at Ecole des Mines de Nantes: In this talk I will tell you my story of developing a successful Model Driven Software Factory with a fast growing user base.
I will cover topics like selecting a domain, designing DSLs, growing a DSL (evolution), generating the application, quality and testing, release planning, and creating a user base.
I will also tell you how I came to the conclusion that there is no future for Model-Driven Development.
Payment und Fintech in Deutschland. Versuch einer ÜbersichtMaik Klotz
Der Versuch einer Übersicht von Anbieter im der Payment und Fintech Landschaft. Kein Anspruch auf Vollständigkeit. Meine Sichtweise. Wird ständig ergänzt. (08.02.16)
Caserta Concepts, Datameer and Microsoft shared their combined knowledge and a use case on big data, the cloud and deep analytics. Attendes learned how a global leader in the test, measurement and control systems market reduced their big data implementations from 18 months to just a few.
Speakers shared how to provide a business user-friendly, self-service environment for data discovery and analytics, and focus on how to extend and optimize Hadoop based analytics, highlighting the advantages and practical applications of deploying on the cloud for enhanced performance, scalability and lower TCO.
Agenda included:
- Pizza and Networking
- Joe Caserta, President, Caserta Concepts - Why are we here?
- Nikhil Kumar, Sr. Solutions Engineer, Datameer - Solution use cases and technical demonstration
- Stefan Groschupf, CEO & Chairman, Datameer - The evolving Hadoop-based analytics trends and the role of cloud computing
- James Serra, Data Platform Solution Architect, Microsoft, Benefits of the Azure Cloud Service
- Q&A, Networking
For more information on Caserta Concepts, visit our website: http://casertaconcepts.com/
This document summarizes MongoMapper, an ORM for MongoDB. MongoMapper allows modeling of objects and relationships like ActiveRecord but for MongoDB. It supports common data types, custom types, validations, associations like many-to-many and polymorphic relationships, querying, and modifiers like increment. Some gotchas include lack of transactions, uniqueness being per class not collection, and needing type hints for forms. Reflection on the switch notes acceptance tests were valuable while unit tests were painful to migrate. The document recommends decoupling behavior from persistence.
Webinar: Build an Application Series - Session 2 - Getting StartedMongoDB
This session - presented by Matthew Bates, Solutions Architect & Consulting Engineer at MongoDB - will cover an outline of an application, schema design decisions, application functionality and design for scale out.
About the speaker
Matthew Bates is a Solutions Architect in the EMEA region for MongoDB and helps advise customers how to best use and make the most out of MongoDB in their organisations. He has a background in solutions for the acquisition, management and exploitation of big data in government and public sector and telco industries through his previous roles at consultancy firms and a major European telco. He's a Java and Python coder and has a BSc(Hons) in Computer Science from the University of Nottingham.
Next in the Series:
February 20th 2014
Build an Application Series - Session 3 - Interacting with the database:
This webinar will discuss queries and updates and the interaction between an application and a database
March 6th 2014
Build an Application Series - Session 4 - Indexing:
This session will focus on indexing strategies for the application, including geo spatial and full text search
March 20th 2014
Build an Application Series - Session 5 - Reporting in your application:
This session covers Reporting and Aggregation Framework and Building application usage reports
April 3th 2014
Operations for your application - Session 6 - Deploying the application:
By this stage, we will have built the application. Now we need to deploy it. We will discuss architecture for High Availability and scale out
April 17th 2014
Operations for your application - Session 7 - Backup and DR:
This webinar will discuss back up and restore options. Learn what you should do in the event of a failure and how to perform a backup and recovery of the data in your applications
May 6th 2014
Operations for your application - Session 8 - Monitoring and Performance Tuning:
The final webinar of the series will discuss what metrics are important and how to manage and monitor your application for key performance.
Speaker: Scott Nichols
One of the techniques developed inside the Knative Project is the concept of duck typing control plane resources. This enables a loose coupling not only between Knative and third party extensions, but between the Knative components themselves. Duck typing is broadly applicable to the Kubernetes ecosystem as a way to enable this loose coupling, and we are seeing interest and adoption in projects like Cluster API, Crossplane, and many others. Let's look at some examples and then deep dive to understand how this works and how you might leverage the techniques yourself.
This document summarizes a project analyzing GitHub user connection data to identify influential users and communities. The project processed over 1TB of GitHub event data from the past 6 months involving over 2 million users and 16 million events to construct a user collaboration graph. Insights from the graph found on average each user collaborates with 6 others, with some users connected to over 1,700 others. Challenges included the unstructured data and optimizing Spark jobs to handle the large data volumes within memory constraints.
This document summarizes a presentation on MongoDB basics, including:
1) Discussing schema design in MongoDB and how it differs from relational databases, with examples of embedding vs referencing data.
2) Describing the requirements and data model for a sample "myCMS" application with different article types, users, and interactions.
3) Showing how to model comments in different ways like embedding, referencing, or using a hybrid approach.
4) Demonstrating how to build a RESTful API and Python/Flask code to interact with MongoDB documents.
Script Fragmentation - Stephan Chenette - OWASP/RSA 2008Stephan Chenette
ERA 2008 - Stephan Chenette, Presentation on Script Fragmentation attack
Abstract: This presentation will introduce a new web-based attack vector which utilizes client-side scripting to fragment malicious web content.
This involves distributing web exploits in a asynchronous manner to evade signature detection. Similar to TCP fragmentation attacks, which are still an issue in current IDS/IPS products, This attack vector involves sending any web exploit in fragments and uses the already existing components within the web browser to reassemble and execute the exploit.
Our presentation will discuss this attack vector used to evade both gateway and client side detection. We will show several proof of concepts containing common readily available web exploits.
This document provides an introduction to JavaScript and its uses for web programming. It explains that JavaScript is a client-side scripting language that allows web pages to become interactive. Some key points covered include:
- JavaScript can change HTML content, styles, validate data, and make calculations.
- Functions are blocks of code that perform tasks when invoked by events or called in code.
- Events like clicks or keyboard presses trigger JavaScript code.
- The DOM (Document Object Model) represents an HTML document that JavaScript can access and modify.
- Forms and user input can be accessed and processed using the DOM.
- Programming flow can be controlled with conditional and loop statements.
-
Media owners are turning to MongoDB to drive social interaction with their published content. The way customers consume information has changed and passive communication is no longer enough. They want to comment, share and engage with publishers and their community through a range of media types and via multiple channels whenever and wherever they are. There are serious challenges with taking this semi-structured and unstructured data and making it work in a traditional relational database. This webinar looks at how MongoDB’s schemaless design and document orientation gives organisation’s like the Guardian the flexibility to aggregate social content and scale out.
The document discusses best practices for crafting evolvable API responses. It advocates taking back control of representations by thinking of responses as messages rather than objects. This allows APIs to build payloads with just enough data to solve the problem and survive changes over time. The document explores using attribute groups, links, and established formats like HAL and JSON-LD to build representations that are minimal yet provide essential context.
The document summarizes the evolution and future directions of the C# programming language. It discusses new features in recent versions such as generics in C# 2.0, language integrated query in C# 3.0, and dynamic programming in C# 4.0. It also covers trends toward declarative programming, concurrency, and compiler as a service. The presentation provides examples and demos of new C# 4.0 features like dynamic typing, optional and named parameters, and covariance and contravariance.
MongoDB Introduction talk at Dr Dobbs Conference, MongoDB Evenings at Bangalo...Prasoon Kumar
MongoDB is a leading nosql database. It is horizonatally scalable, document datastore. In this introduction given at Dr Dobbs Conference, Bangalore and Pune in April 2014, I show schema design with an example blog application and Python code snippets. I delivered the same in the maiden MongoDB Evening event at Delhi and Gurgaon in May 2014.
When constructing a data model for your MongoDB collection for CMS, there are various options you can choose from, each of which has its strengths and weaknesses. The three basic patterns are:
1.Store each comment in its own document.
2.Embed all comments in the “parent” document.
3.A hybrid design, stores comments separately from the “parent,” but aggregates comments into a small number of documents, where each contains many comments.
Code sample and wiki documentation is available on https://github.com/prasoonk/mycms_mongodb/wiki.
HSC INFORMATION TECHNOLOGY CHAPTER 3 ADVANCED JAVASCRIPTAAFREEN SHAIKH
This document provides information about JavaScript including:
- JavaScript is a client-side scripting language used to make web pages dynamic. It was created by Brendan Eich at Netscape.
- There are two types of scripting languages - client-side (JavaScript, VBScript) and server-side (ASP, PHP, Perl). Client-side scripts run on the browser while server-side scripts run on the web server.
- JavaScript has various data types including strings, numbers, Booleans, undefined and null. It also has operators like arithmetic, comparison, logical and assignment operators.
- Functions, objects, and events are important concepts in JavaScript. Functions allow code to be reused, objects bundle data
Webinarserie: Einführung in MongoDB: “Back to Basics” - Teil 3 - Interaktion ...MongoDB
The document discusses MongoDB basics including:
1) Inserting and querying documents using operators like $lt and $in
2) Returning documents through cursors and using projections to select attributes
3) Updating documents using operators like $push, $inc, and $addToSet along with bucketing and pre-aggregated reports
It also covers durability options like acknowledged writes and waiting for replication.
The document discusses MongoDB basics including:
1) Inserting and querying documents using operators like $lt and $in
2) Returning documents through cursors and using projections to select attributes
3) Updating documents using operators like $push, $inc, and $addToSet for bucketing and incrementing counters
4) The tradeoff between durability and performance using different write concerns like acknowledged, journal sync, and replication.
The document introduces Dojo, an open source JavaScript toolkit for building modern web applications. It provides core libraries for DOM manipulation, events, Ajax, and more. Dojo also includes pre-built widgets (Dijit) and mechanisms for creating custom widgets. The document discusses Dojo's namespaces, communication capabilities, objects and classes, internationalization support, and themes.
Tame Accidental Complexity with Ruby and MongoMapperGiordano Scalzo
The document introduces MongoMapper, an ORM for MongoDB that aims to simplify Rails application development by avoiding accidental complexity. It discusses how MongoMapper handles object persistence, embedded documents, validation and callbacks. It also covers querying capabilities via Plucky and available plugins. The goal is to provide a familiar ActiveRecord-like interface while taking advantage of MongoDB's flexible data model.
JavaScript is an object-based scripting language used to add interactivity to web pages in browsers by manipulating HTML objects and handling events. It was originally developed at Netscape to enable dynamic and interactive pages but is now supported by all major browsers. The document provides an overview of JavaScript objects, events, and how to get started using it with HTML.
MongoDB is a document-oriented, open source database that is high performing, horizontally scalable, and full featured. It uses a flexible schema and stores data in flexible JSON-like documents which allows for an evolving schema. MongoDB can be easily scaled out across commodity servers and provides high availability with automatic replication and recovery. It supports dynamic queries and indexing and has drivers for many languages.
The document describes the design of a mobile scavenger hunt app. It includes 3 parts: 1) architecture and design, 2) geo-spatial indexing and queries, and 3) deployment readiness. The app allows users to create scavenger hunts by pinning waypoints. Players can search for hunts near their location and track their progress. The design involves collections for waypoints, users, messages, and notifications to support location-based games and social features.
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...Neo4j
Leonard Jayamohan, Partner & Generative AI Lead, Deloitte
This keynote will reveal how Deloitte leverages Neo4j’s graph power for groundbreaking digital twin solutions, achieving a staggering 100x performance boost. Discover the essential role knowledge graphs play in successful generative AI implementations. Plus, get an exclusive look at an innovative Neo4j + Generative AI solution Deloitte is developing in-house.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
UiPath Test Automation using UiPath Test Suite series, part 5
Model Driven Software Development - Data Model Evolution
1. Sander Vermolen
Eelco Visser
Data
Model
Evolution
This research is supported by NWO/JACQUARD project
638.001.610, MoDSE: ModelDriven Software Evolution.
9. No page count
No revisions
User 1
name bob
real name Bob Johnson
email b.johnson@mail.com
Page 1
title "The first page"
isRedirect false
text "Hello world"
13. Costly
High risk
Holds back the development process
Large infrequent development steps
14. User
id : integer
name : varchar
realName : varchar
email : tinytext
Page
id : integer
title : varchar
author - User *
isRedirect : boolean
content : text
set of
15. User
id : integer Unique
name : varchar
realName : varchar ?
email : tinytext
Page : Medium
author - User min(1) max(8)
content : text
refs : url * Indexed
abstract Medium
id : integer Unique
title : ANY_NAME
22. User User
id :: integer id :: integer
name :: varchar name :: varchar
realName :: varchar realName :: varchar
email :: tinytext email :: tinytext
Page Page
id :: integer id :: integer
title :: varchar title :: varchar
author User counter :: biginteger
isRedirect :: boolean isRedirect :: boolean
content :: text revisions set of Revision
Revision
id :: integer
page Page
comment :: tinyblob
timestamp :: time
revisionText :: text
author User
23. What happened?
Added type revisions Revision
id :: integer
page Page
comment :: tinyblob
timestamp :: time
author User
Added attribute revisions Page
revisions set of Revision
Moved content to revision text Revision
revisionText :: text
Added attribute counter Page
counter :: biginteger
24. 8 Basic Transformations
add or remove entity add or remove property
change name of entity change name of property
change type of set change type of property
31. Revision
revisionText :: text
At / Entity Revision / Property timeStamp
move page.content
to revisionText :: text
32. at Entity Page / Property Title
add counter :: biginteger
;
at Entity Revision / Property timeStamp
add revisionText :: text
from page.content
33. Evolving
Data Models
8 basic transformations
1 advanced transformation
Language to specify transformations
Positioning sub language
Specify data model evolutions
37. Program transformation for data migration
Because
we really like program transformations
generally richer than regular data acessing languages (SQL)
data migration = model transformation
38. User( User
id(1), id :: integer
name(“John”), name :: varchar
email(“johnnyboy@mail.com”) email :: tinytext
)
Page( Page
id(2), id :: integer
title(“Hello World”), title :: varchar
[author(1)] author User
)
40. Remove Attribute (1)
User( User
id(1), id :: integer
name(“John”), name :: varchar
..... email :: tinytext
)
Page( Page
id(2), id :: integer
title(“Hello World”), title :: varchar
[author(1)] author User
)
Signature:
User := Id * Name * Email
41. Remove Attribute (2)
User( User
id(1), id :: integer
name(“John”), name :: varchar
email(“johnnyboy@mail.com”) email :: tinytext
)
Page( Page
id(2), id :: integer
title(“Hello World”), title :: varchar
[author(1)] author User
)
42. Generic Aterm (GTerm)
User( 0, User
[ id :: integer
id(1), name :: varchar
name(“John”), email :: tinytext
email(“johnnyboy@mail.com”)
]
)
Page( 1, Page
[ id :: integer
id(2), title :: varchar
title(“Hello World”), author User
author(0)
]
)
45. GTerm Transformation
Gterm library
Object creation
Modifying attributes
(add, remove, change, rename, ...)
Object equivalence
Object traversals
(Object graph traversals)
Data model library
Type examination
Super/Sub type handling
Abstract type handling
46. GTerm Storage
Large quantities of data...
Storage engine:
In memory list based ~10K
In memory hash table based ~500K
In database ~25M ...
47. GTerm Storage – In database (1)
User( 0,
[
0 User id 1
id(1),
0 User name John
name(“John”),
0 User email jb@m.com
email(“jb@m.com”)
1 Page id 2
]
1 Page title Hello World
)
1 Page author 0
Page( 1,
[
id(2),
0 User
title(“Hello World”),
1 Page
author(0)
]
)
48. GTerm Storage – In database
GTerm Storage – In database (2)
CREATE TABLE Attributes ( CREATE TABLE Objects (
id varchar(16), id varchar(16),
type varchar(30), type varchar(30)
name varchar(30), )
value text,
INDEX USING HASH (id (5)),
INDEX USING BTREE (v(10))
)
50. GTerm Storage – Regular database
0 User id 1 User:
0 User name John 1 John jb@m.com
0 User email jb@m.com
1 Page id 2 Page:
1 Page title Hello World 2 Hello World
1 Page author 0
PageUser:
2 1
51. Data model
SQL Script GTerm 2 SQL
Old Database Generic Database SQL Script
Migration (Stratego) New Database
64. onType
1. find objects of type
2. divide into chunks
3. per chunk in parallel
Load objects in chunk
per object
s
save object if changed
65. Publication { Publication {
key : string Unique key : string Unique
title : string ? title : string ?
authors : string + Indexed authors - Author + Indexed
year : string year : string
... ...
} }
Author {
alias : string
}
?Transformation(path, Substitution(DeclType(Name(newTypeName))), _)
...
Author alias mandatory
Author alias not unique
onType(
for each author
create author object
set author attribute
)
66. Author { Author {
alias : string alias : Alias
} }
Alias {
name : string Unique
?Transformation(path, Substitution(DeclType(Name(newTypeName))), _)
...
Alias name mandatory
Alias name unique
onType(
if alias exists then
set alias attribute to existing id
else
create alias object
set alias attribute to new id
)
67. Supported transformations
Identity
Primitive attribute addition (3)
Complex attribute addition
Attribute removal
Attribute name change
Attribute move (2)
Primitive type change
Implicit reference resolution
Attribute wrapping
Type addition
Type removal
Type name change
Abstract type handling
Inverse annotation handling (2)
Cardinality changes (2)
68. In memory vs. Database transformations
Easy to define Hard to define
Easy to optimize No need to optimize
Expressive Limited expressiveness
Easy to abstract Abstraction near impossible
Performance OK Performance great
87. User
name :: varchar
realName :: varchar
email :: tinytext Entities
Properties
Page
title :: varchar Types
author User
isRedirect :: boolean
Meta model / Grammar
88.
89. Lists
More types
Inverse associations
Abstract types
101. Entity* > DataM Model
Id "{" Prop* "}" > Entity Entity
Id "::" Type > Prop Prop
"int" > Type Int
"bool" > Type Bool
Id > Type
"set of" Type > Type Set
NAME > Id Id
103. Lexicals ''...''
NAME > Id Id
"substitute" NAME > LocalTransformation
104. Multiple productions >*
"int" > Type Int
"bool" > Type Bool
Id > Type
"set of" Type > Type Set
"substitute" Type > LocalTransformation
105. Type checking .../...
"at" APath LocalTransformation > Transformation
Generation of local transformation domains
APath type derivation
Type checking