OpenEdge 11 Update Scandi PUG 2011 Jarmo Nieminen Solution Consultant / TAM - Nordics March 31, 2011 Vilket språk låter bra? “Saari, saari, heinäsaari; heinäsaaren neito.” “Island, island, grassy island; grassy island's maiden.” “Ö, ö, hö ö; hö ö mö” 2 © 2011 Progress Software Corporation. All rights reserved. Notice D I S C L A I M E R This roadmap is for informational purposes only, and you are hereby cautioned that actual product development can, and often does, vary significantly from roadmaps. This roadmap may not be interpreted as any commitment on behalf of Progress, and future development, timing and release of any features or functionality described in this roadmap remains at our sole discretion. D 3 I S C © 2011 Progress Software Corporation. All rights reserved. L A I M E R Agenda Background and Overview of Multi-tenancy Multi-tenancy “Workaround” Theory/Reality OpenEdge 11.0 Multi-tenant Tables • Data Access and Queries • Data Model • Operation Features • Provisioning and Configuration • OpenEdge 11 demo – tools for MT Summary 4 © 2011 Progress Software Corporation. All rights reserved. Background and Overview of Multi-tenancy Why are we talking about Multi-tenancy? Focus on costs and operational excellence Reduce machine resource requirements Require fewer administration staff Reduce operational costs Gain economies of scale Reduce the number of Become more cost effective instances Make it easy to manage One good way to make that happen for application delivery is with Multi-tenancy. 6 © 2011 Progress Software Corporation. All rights reserved. But what is Multi-tenancy…in simple terms? 9 Tenant = Customer Multiple tenants experience application as dedicated only to them Allow computing resources to be shared among tenants Multiple implementation models © 2011 Progress Software Corporation. All rights reserved. The Multi-tenancy Continuum Isolated Tenancy Infrastructure Tenancy Application Tenancy Shared Tenancy Tenant1 Tenant2 Tenant3 Tenant1 Tenant2 Tenant3 Tenant1 Tenant2 Tenant3 Tenant1 Tenant2 Tenant3 App App App App App App App App DB DB DB DB DB DB Infra. Infra. Infra. Infrastructure Isolating • Easier customization, security • Simpler throttling control • Target dissimilar customers • No transformation 10 © 2011 Progress Software Corporation. All rights reserved. DB DB DB DB Infrastructure Infrastructure Sharing • Better economy of scale • Simpler management • Target like-customers • Least cost to serve Business Considerations for Multi-tenancy – Traditional 11 Isolated Tenancy Infrastructure Tenancy Application Tenancy Shared Tenancy Time to market Short Short Long Longest Infrastructure costs High High Low Low Economies of scale Very poor Poor High Highest Scalability Poor Poor High Highest Provisioning Difficult Difficult Easy Easiest Admin/Mgmt costs Very high High Low Lowest Target type of tenants Dissimilar Dissimilar Similar Similar Multi-tenant App Changes No No Yes Yes Coding difficulty Easy Easy Less complex More complex Implement SLAs Easier Easy Less complex More complex Containment Easier Easy Less complex More complex (except DBs) © 2011 Progress Software Corporation. All rights reserved. Is Multi-tenancy a Vendor or User benefit? Vendor User Reduced Operating Costs Lower fees Lower management overhead Economies of Scale Standardized development and delivery of services Higher quality of service delivery More timely upgrades The answer: BOTH! • Vendor: operational efficiency • Users: lower cost of service 12 © 2011 Progress Software Corporation. All rights reserved. Multi-tenancy “Workaround” Theory/Reality Multi-tenancy “Workaround” - Theory Create an extra “Tenant ID" column for Multi-tenancy Tenant A Rows Tenant B Rows Tenant C Rows Tenant ID Cust ID Name A 1 Lift Line Skiing A 2 Urban Frisbee A 3 Hoops Croquet B 1 Fanatical Athletes B 8 Game Set Match B 9 Lift Line Skiing C 2 High Tide Sailing C 7 Pedal Power C 9 Hoops Croquet FOR EACH CUSTOMER WHERE Tenant ID = A 14 © 2011 Progress Software Corporation. All rights reserved. Multi-tenancy “Workaround” - Reality Coding concerns: • Invasive - you have to change a lot of ABL code • Coding mistakes could result in data going to wrong tenant!!! Lock conflicts can occur among tenants Performance is sub-optimal: • Low locality of reference • Low I/O efficiency 15 © 2011 Progress Software Corporation. All rights reserved. Common bulk operations become very difficult: • • • • • • Backup Restore Index rebuild Delete Copy Move Tenant management and analysis are difficult: • Performance analysis • Resource consumption metrics • Resource utilization controls OpenEdge 11.0 – Multi-tenant Tables No extra column needed for “Tenant ID”… Tenant A Rows Tenant B Rows Tenant C Rows Tenant ID Cust ID Name A 1 Lift Line Skiing A 2 Urban Frisbee A 3 Hoops Croquet B 1 Fanatical Athletes B 8 Game Set Match B 9 Lift Line Skiing C 2 High Tide Sailing C 7 Pedal Power C 9 Hoops Croquet FOR EACH CUSTOMER WHERE Tenant ID = A 16 © 2011 Progress Software Corporation. All rights reserved. OpenEdge 11.0 Multi-tenant Tables What is Progress doing about it? The industry’s first true multi-tenant database “Progress has started several initiatives to enable the migration into a software-as-a-service (SaaS) deployment model. The sophisticated and recently developed multi-tenant capability of the OpenEdge database demonstrates this commitment.” Stephan Reid September 20, 2010 18 © 2011 Progress Software Corporation. All rights reserved. OpenEdge 11.0 – Multi-tenant Tables Customer feedback for development Flexible data sharing model in same DB Multi-tenancy built into the application stack Easy migration of existing applications and data Choice of wide range of deployment scenarios 19 © 2011 Progress Software Corporation. All rights reserved. OpenEdge 11.0 – Multi-tenant Tables Data physically partitioned by tenant identity Tenant authentication is built-in Virtually no application changes required Utilities and operational features also tenant-aware Tenant-aware monitoring and analysis tools 20 © 2011 Progress Software Corporation. All rights reserved. Multi-tenant Tables: Data Access Multi-tenancy Simplifies Development of Multi-tenant Applications Online Seed Application Shared Tables (same as in 10.2B and earlier) • No tenant-specific mapping • No implicit tenant-row identity • In 10.2B all tables are shared tables • Still available in OpenEdge 11.0 Data available to all users Great for commonly shared information 21 © 2011 Progress Software Corporation. All rights reserved. Catalog Schema • Catalog tables 1 2 3 4 5 6 7 8 9 10 11 Alfalfa Asparagus Beans Beets Broccoli Brussels Sprouts Cabbage Carrots Cauliflower Celery Zucchini Multi-tenant Tables: Data Access Multi-tenancy Simplifies Development of Multi-tenant Applications Car Rental Application Basic multi-tenant paradigm • Multi-tenant tables built into the DB Tenants share same schema definition Data physically partitioned by tenant identity Minimal application changes required to achieve multitenancy • "Simply check the ID at the door…" 22 © 2011 Progress Software Corporation. All rights reserved. Customer Schema Tenant 1 (Hertz Boston) 1 Lance Armstrong 2 John Cleese 3 Tipper Gore Tenant 2 (Hertz Chicago) 4 Shaquille O’Neal 7 Ben Stein 8 William Shatner Tenant 3 (Rent-a-wreck) 2 7 9 10 Dennis Rodman Nick Nolte Lindsay Lohan Charlie Sheen Multi-tenant Tables: Data Access Multi-tenancy Simplifies Development of Multi-tenant Applications Car Rental Application Keys unique per tenant partition Tenant 1: Query is tenant specific • Same application code find.r • Data retrieved based on tenant identity FIND CUSTOMER WHERE cust-num=2. Tenant 2 (Hertz Chicago) Example: Tenant #1 Authenticates… Tenant 3 (Rent-a-wreck) 23 © 2011 Progress Software Corporation. All rights reserved. Customer Schema 1 Lance Armstrong 2 John Cleese 3 Tipper Gore 4 Shaquille O’Neal 7 Ben Stein 8 William Shatner 2 7 9 10 Dennis Rodman Nick Nolte Lindsay Lohan Charlie Sheen Multi-tenant Tables: Data Access Multi-tenancy Simplifies Development of Multi-tenant Applications Car Rental Application Keys unique per tenant partition Query is tenant specific Tenant 1: • Same application code • Data retrieved based on tenant identity find.r FIND CUSTOMER WHERE cust-num=2. Tenant 2 (Hertz Chicago) Example: Tenant #3 Authenticates… find.r 24 © 2011 Progress Software Corporation. All rights reserved. Customer Schema Tenant 3: FIND CUSTOMER WHERE cust-num=2. 1 Lance Armstrong 2 John Cleese 3 Tipper Gore 4 Shaquille O’Neal 7 Ben Stein 8 William Shatner 2 7 9 10 Dennis Rodman Nick Nolte Lindsay Lohan Charlie Sheen Multi-tenant Tables: Data Access Multi-tenancy Simplifies Development of Multi-tenant Applications Car Rental Application Keys unique per tenant partition Query is tenant specific “Super-tenant" query • Authenticate & assert identity Super-tenant: • No data of their “own” FOR EACH customer TENANT-WHERE Tenant-id > 0: DISPLAY cust-num, name. • Access to all tenant data by tenant ID or name Think: “Landlord” 25 © 2011 Progress Software Corporation. All rights reserved. Customer Schema 1 Lance Armstrong 2 John Cleese 3 Tipper Gore 4 Shaquille O’Neal 7 Ben Stein 8 William Shatner 2 7 9 10 Dennis Rodman Nick Nolte Lindsay Lohan Charlie Sheen Multi-tenant Tables: Data Access Multi-tenancy Simplifies Development of Multi-tenant Applications Car Rental Application Keys unique per tenant partition Query is tenant specific Schema “Super-tenant" query • Row-level tenant identification • Virtual column available for display or selection Super-tenant: FOR EACH customer TENANT-WHERE Tenant-id > 0: DISPLAY BUFFER-TENANT-ID(cust), cust-num, name. • Not stored in table definition 26 © 2011 Progress Software Corporation. All rights reserved. Customer 1 1 Lance Armstrong 1 2 John Cleese 1 3 Tipper Gore 2 4 Shaquille O’Neal 2 7 Ben Stein 2 8 William Shatner 3 2 Dennis Rodman 3 7 Nick Nolte 3 9 Lindsay Lohan 3 10 Charlie Sheen Multi-tenant Tables: Data Access Group Tenancy Multiple tenants share same data/partition Car Rental Application • Employee access to shared customer list Customer Schema Tenant 1 (Hertz Boston) 1 Lance Armstrong 2 John Cleese 3 Tipper Gore Tenant 2 (Hertz Chicago) 4 Shaquille O’Neal 7 Ben Stein 8 William Shatner Tenant 3 (Rent-a-wreck) 27 © 2011 Progress Software Corporation. All rights reserved. 2 7 9 10 Dennis Rodman Nick Nolte Lindsay Lohan Charlie Sheen Multi-tenant Tables: Data Access Group Tenancy Multiple tenants share same data/partition Car Rental Application • For example, employee access to a shared customer list Schema Per-table group membership Data ownership shared Tenant 1 (Hertz Boston) • Owned by group identity Tenant 2 (Hertz Chicago) Tenant 3 (Rent-a-wreck) 28 © 2011 Progress Software Corporation. All rights reserved. Customer Hertz Customer Group 1 2 3 4 7 8 Lance Armstrong John Cleese Tipper Gore Shaquille O”Neil Ben Stein William Shatner 2 7 9 10 Dennis Rodman Nick Nolte Lindsay Lohan Charlie Sheen Multi-tenant Tables: Data Model Data Model Multi-tenant or Shared objects Car Rental Application • Tables and associated indexes & LOBs • Sequences Shared only – never defined per Tenant 1 tenant (Hertz Boston) • Triggers & stored procedures • Default values Limits • Support for 32,767 tenants!!! 29 © 2011 Progress Software Corporation. All rights reserved. Customer Schema Tenant 2 (Hertz Chicago) Tenant 3 (Rent-a-wreck) 1 Lance Armstrong 2 John Cleese 3 Tipper Gore 4 Shaquille O’Neal 7 Ben Stein 8 William Shatner 2 7 9 10 Dennis Rodman Nick Nolte Lindsay Lohan Charlie Sheen Multi-tenant Tables: Tenant Provisioning Car Rental Application Tenant creation: ABL, APIs, DDL & GUI • Programmatic tenant provisioning • Tenant partition creation is optional • Tenant-level activation/deactivation Identification (via “_Tenant” table) • Database specific tenant ID • User friendly name: “Hertz Boston” • App specific ID (could be UUID) Customer Schema 1 Lance Armstrong Tenant 1 2 John Cleese (Hertz Boston) 3 Tipper Gore 4 Shaquille O’Neal Tenant 2 (Hertz Chicago) 7 Ben Stein 8 William Shatner 2 Tenant 3 7 (Rent-a-wreck) 9 10 30 © 2011 Progress Software Corporation. All rights reserved. Dennis Rodman Nick Nolte Lindsay Lohan Charlie Sheen Multi-tenant Tables: Operational Features Car Rental Application Customer Schema Tenant 1 (Hertz Boston) 1 Lance Armstrong 2 John Cleese 3 Tipper Gore Tenant 2 (Hertz Chicago) 4 Shaquille O’Neal 7 Ben Stein 8 William Shatner 2 Tenant 3 7 (Rent-a-wreck) 9 10 Dennis Rodman Nick Nolte Lindsay Lohan Charlie Sheen Operational Features Tenant-aware partition maintenance • Tenant specific object move • Add/drop tenants/objects • Data dump/load • .df support • Index maintenance tools Tenant-aware Monitoring • Promon, VSTs • Analysis tools • .lg file (other log files) Note: Auditing and TDE are not tenant-aware (all of nothing) 31 © 2011 Progress Software Corporation. All rights reserved. Tenant Provisioning and Configuration GUI Tool for Managing Multi-tenancy – less code! • Integrated with OE Explorer and OE Management • Web-based interface – Easy to configure from anywhere • Template concept – Reduces complexity – Increases productivity • Flexible sorting and filtering 32 © 2011 Progress Software Corporation. All rights reserved. Summary Multi-tenant Application Deployments Almost no changes to the application • Data access logic remains unchanged • Same compiled code • Additional code: – Tenant authentication – Super-tenant queries and processing 34 © 2011 Progress Software Corporation. All rights reserved. Business Considerations for Multi-tenancy (OpenEdge Multi-Tenant Tables) 35 Isolated Tenancy Infrastructure Tenancy Application Tenancy Shared Tenancy Time to market Short Short Short Short Infrastructure costs High High Low Low Economies of scale Very poor Poor High Highest Scalability Poor Poor High Highest Provisioning Difficult Difficult Easy Easiest Admin/Mgmt costs Very high High Low Lowest Target type of tenants Dissimilar Dissimilar Similar Similar Multi-tenant App Changes No No No No Coding difficulty Easy Easy Easy Easy Implement SLAs Easier Easy Easy Easy Containment Easier Easy Easy Easy © 2011 Progress Software Corporation. All rights reserved. Summary Reduce costs with simplified development • Minimal application changes • No tenant-based customizations for queries or other data access Deploy new customers faster • Tenant access to data is transparent, based on identity • Tenants can be quickly and efficiently added, removed, and managed Decrease maintenance overhead • Fewer databases to manage, better resource utilization • Tenant-based utilities and tools make maintenance tasks easier Maintain security of tenant data • Physical separation within database – NOT virtual! • Tenant authentication required for data access 36 © 2011 Progress Software Corporation. All rights reserved. ABL Syntax Examples /**** Examples where a super tenant wants to perform actions on tenant **** specific data and sequences. ****/ /* Assume super tenant identity already asserted via Client Principle * or via SET-USERID */ /* Retrieve tenant #3’s customers with cust-num < 100 */ SET-EFFECTIVE-TENANT(TENANT-NAME(3)). FOR EACH customer WHERE cust-num < 100 : … /* Retrieve tenant “Progress”’s customers with cust-num < 100 */ SET-EFFECTIVE-TENANT(“Progress”). FOR EACH customer WHERE cust-num < 100: … 38 © 2011 Progress Software Corporation. All rights reserved. Operational maintenance tools Multi-tenant support from the existing database maintenance tools abides by the following rules: • Database-wide tools continue to be database-wide (e.g., backup/restore, after imaging) • Offline utilities continue to be offline (e.g., db repair, roll forward) with the exception of index rebuild. Index rebuild of tenant local indexes is allowed while the database is online. The tenant whose indexes are being rebuilt are offline until the process completes, but other tenants of the database are not affected and can continue towork actively with the database. • Object-specific tools are tenant-aware (e.g., table move, dbanalys) 39 © 2011 Progress Software Corporation. All rights reserved. Tenant partition tool support The following tools have been enhanced in OpenEdge 11.0 to perform their object-specific actions on an object/tenant partition basis: Binary dump Binary dump specified Binary load Bulk data load Chain analysis Create/Toss limits assignment Display create/toss limits Data dump Data load Database analysis Database repair dbtool 40 © 2011 Progress Software Corporation. All rights reserved. .df definition Index activate Index analysis Index check Index compact Index fix Index rebuild (online by tenant) Index move Sql Dump Sql Load Table analysis Table move Multi-tenant Configuration and Data Administration Tool A web-based multi-tenant configuration tool has been created to manage and configure tenants of the database as well as to perform other multi-tenant data administration tasks. • • • • • • • • • • • • • • 41 Create new tenants in the database Create new multi-tenant tables in the database Create new multi-tenant sequences Configure storage area locations for each partition of a multi-tenant object (tables, indexes and LOBs) when creating a new tenant Configure storage area locations for each new tenant partition when creating a new multi-tenant object (tables, indexes and LOBs). Support .df load and maintenance Present a visualization of the tenants’ access paradigms in conjunction with the associated storage locations of the multi-tenant objects Create new multi-tenant groups and assign tenants to those groups. Migrate an existing tenant into a tenant group. Perform data administration on multi-tenant data for dump and load. Manage security associated with tenants of the database, including creating and deleting domains and maintaining authentication and authorization. Enable and disable a tenant’s access to all their data through a tenant activation/deactivation option. Manage alternate buffer pool settings on a per-object, per-tenant basis Display and report on multi-tenant-specific schema configurations. © 2011 Progress Software Corporation. All rights reserved. OpenEdge 11.x Overview of New Capabilities OpenEdge Takes You There Continuous Evolution through the IT paradigms Service Oriented Architecture Process-Oriented Applications Business Process Business Process Simplify your business Business Process Service-Oriented Architecture Standards Platform Integration User Interface Methods 35 © 2003 Progress Software Corporation OpenEdge 11 Eases SaaS/Cloud Computing! Packaged Apps Legacy XML Java Email 4GL Active-X Client Smart Adapters XML EJB XML JMS Server Smart Adapters System Smart Adapters Progress Oracle SQL Server DB2/400 ODBC JDBC Universal Application Architecture 1998 43 2000 2002 © 2011 Progress Software Corporation. All rights reserved. OpenEdge 10 Enabled SOA V9 Delivered Distributed Computing V8 was Client/Server 2004 2006 2008 2010 OpenEdge is open and modern 44 © 2011 Progress Software Corporation. All rights reserved. Taking You Higher With OpenEdge 11 User Interface Flexibility Pick the UI That Meets the Needs of the Customer Silverlight Adapter (target OE11.1) • Easily connect your Silverlight UI to your application • Part of our Open Client strategy • Based on Microsoft RIA Services JSON Parser • Great for building AJAX-based UIs in web applications • JSON data trivial to manipulate in Web browser UI logic • Easily create and parse JSON documents in ABL 45 © 2011 Progress Software Corporation. All rights reserved. Taking You Higher With OpenEdge 11 Integration REST interface for AppServer (target OE 11.1) • Providing the “adapter” to make it easier • Avoids extra “layer” of web services (SOAP) Improved ProDataSet to XML support • Improved to include “edge cases” • Valuable “best practice” 46 © 2011 Progress Software Corporation. All rights reserved. Taking You Higher With OpenEdge 11 Productivity OpenEdge Architect – best tool moving forward • Ease of use improvements • Runs on Linux platform • Support WebSpeed programming models – Incorporate WebSpeed Workshop capabilities – Most web-based and UI work done here • Remote server support for AppServer & WebSpeed development – Start/stop from OEA – automatically Object-oriented language extensions • Interface inheritance • Dynamic properties 47 © 2011 Progress Software Corporation. All rights reserved. Taking You Higher With OpenEdge 11 Operational Excellence Actional – database interceptor, payload capture • Trace transactions as they flow to the DB AppServer diagnostics • Improved error handling • What code is running? AppServer network compression • for state-free mode • for Java clients • for .Net clients OpenEdge Management • Remote jobs 48 © 2011 Progress Software Corporation. All rights reserved. Table Partitioning (OpenEdge 11.1) Operational Excellence Maximize Operating Performance Table Partitioning Types – tailor to your needs • Range of values, e.g. year, invoice amount, etc. • List of values, e.g. sales region, country, etc. • Composite: a combination of the above Query Partition Pruning • More efficient query engine to improve performance across multiple partitions Local and Global Index Support 49 © 2011 Progress Software Corporation. All rights reserved. Operational Features of Table Partitioning Operational Excellence Maximize Operating Performance Partition Maintenance • • • • • • • Object move Add/drop objects Backup/restore, recovery Data dump/load .df support Index maintenance tools Read-only partitions Monitoring • Promon, VSTs • Analysis tools • .lg file (other log files) 50 © 2011 Progress Software Corporation. All rights reserved. Taking You Higher With OpenEdge 11 More great features 50-60+ enhancements in OpenEdge 11.x – can’t review every one! Performance • Auto Update of OpenEdge SQL statistics – helps self-tune/optimize Security • • • RC4 for ENCRYPT() SHA-256, SHA-512 More SSL certificate support Data servers – keep on pace with OpenEdge DB • • MS SQL Server DataServer CLOB support DataServer dynamic query join optimization Others • • • • 51 Bug fixes 64-bit ODBC for Linux Sonic 8.x support for Sonic adpater (MQ and ESB) asbman, wsbman show what .r an agent is executing (think “task manager”) © 2011 Progress Software Corporation. All rights reserved. OpenEdge 11.0 Release Plans OpenEdge 11.0 Release Plans and Status Technology Preview for Multi-tenancy – hosted in the Amazon Cloud • Phase 2 (March) – Demonstrating multi-tenancy with AutoEdge, including transforming a single-tenant AutoEdge to multi-tenant • Phase 3 (May) – Migrating your own application to 11.0 multitenancy (includes kit for local install) • Phase 4 (July) – “Alpha” release with full 11.0 multi-tenant capability (includes kit for local install) • Enroll by completing the registration survey: http://www.surveymonkey.com/s/oe11techpreview 11.0 Beta (August 2011 with registration in July 2011) • Multi-tenancy plus other new features of OpenEdge 11.0 • Enable notifications on the OpenEdge Beta page to be alerted when registration is open! http://communities.progress.com/pcom/community/psdn/openedge/ oebeta?view=overview 11.0 Commercial Release (December 2011) 53 © 2011 Progress Software Corporation. All rights reserved.