A Data API for Drupal 7: Key steps to enabling transactional web service support
|
|
|
- Darleen Day
- 10 years ago
- Views:
Transcription
1 A Data API for Drupal 7: Key steps to enabling transactional web service support Written by: Nedjo Rogers and Henrique Recidive Sponsored by: CivicSpace Date: October 25, Need and Moment The powerful and flexible open source Drupal content management system (CMS) rapidly is being adopted for high performance web applications. Drupal has a slim and elegantly coded core, an active worldwide developer community, strong and inspired leadership, and a wealth of contributed plugins (modules) providing extended functionality. Yet there are key legacy limitations to Drupal s design and core APIs that present barriers to building distributed applications on the platform. Specifically, there is significant unevenness in internal data handling APIs and no comprehensive built-in support for web services. The leading edge of web development is no longer centrally concerned (if it ever was) with a discrete site and its features, no matter how rich. Rather, it s the structured and nuanced ability selectively to pool information, ideas, images, and contexts seamlessly across many sites regardless of details like platform or implementation. Drawing profile information from social networking sites, pulling placebased attributes from map services, distributing photo and video Drupal is up to the challenge, but needs some focused renewal to fully realize its potential. Drupal evolved out of one programmer s student project. Core object types and their accompanying APIs were added one by one in a relatively piecemeal way. Some were treated as objects, others as arrays, others as a combination of the two depending on the context. Primary focus was given to the content (node) object type. A database abstraction library adapted from the PEAR repository provided some limited multiple database support. Later, developers contributed a new and relatively fully fleshed API for managing user input (the Forms API). The result is a set of core APIs that are uneven between object types (node, user, file, term, etc.), mixed in data handling, and deeply tied to the logic of user input. Solutions designed to act on multiple object types and to conduct direct data transactions not mediated by user actions face major headaches. In the Drupal 6 development cycle, productive discussions and development helped prepare the way for data API improvements. Developers drafted more consistent data APIs which, while not adopted, provided valuable insight into tasks at hand. Late in the development cycle, Drupal got a new Schema API, providing a key missing piece in enabling introspective data transactions. Outside of Drupal core, a new and robustly designed web services framework emerged. Many of Drupal s core systems (e.g., code-level database abstraction, minimal use of object properties) reflect the time they were authored in combination with the minimum versions supported for A Data API for Drupal Nedjo Rogers and Henrique Recidive
2 underlying databases and PHP. Major new horizons are opened by shifting to newer dependency versions, particularly PHP 5. A guiding idea and main source of strength in Drupal is that the drop is always moving ( drop being a reference to origin of the term Drupal ). In contrast to many other softwares, there is a firm commitment to continual improvement and renewal, even if it means challenging long-accepted truths and scrapping backward compatibility. There is an emerging consensus in the Drupal developer community that the core data APIs need to be fundamentally reconceived that only this renewal will enable Drupal to continue to fulfil its tremendous promise. And the pieces are coming rapidly into place. This discussion paper aims to sketch in some detail the place we are and the work at hand. 2. Puzzle There are several components to fully enabling distributed applications on Drupal (five points, below), but the core challenge is in data APIs. So, to start off, some idea of what a Data API needs to accomplish: 1. All data transactions are completely independent of form/user input. 2. Data have a consistent structure in all their forms. E.g., what's returned by a load operation can be sent directly to an update operation without change of format. 3. All objects are of a single data format. Here we need to choose between our two current forms: array and object. 4. Rather than disparate methods for individual object types, we need a single set of CRUD (create, read, update, delete) methods that can be applied uniformly to all object types (node, user, etc.). 5. Create and update operations can accept data without IDs set and respond appropriately. For example, we can save a node with an associated user (author), that user being identified not by ID but by an array of properties. If the user does not exist, she/he will be created as a user. If the user does exist already, the corresponding user id will be saved. 6. Data API implementations, e.g., save a node, include no direct SQL. All needed database operations are handled by the API. 3. Puzzle Pieces The problem of fully facilitating web services in Drupal divides into five (easy?) pieces, which we ll take as our organizing frame, following them from the old through the new to what s still to do. 1 Schema modelling A Data API for Drupal Nedjo Rogers and Henrique Recidive
3 Old Hard coded CREATE TABLE and ALTER TABLE SQL statements. Schema-related attributes hard-coded into SQL selects, joins, etc. New Schema modelled in PHP arrays by Barry Jaspan. Schema creation and updating done on this basis. Recent introduction of schema-based drupal_write_record and drupal_get_fields methods by Earl Miles, Moshe Weitzman and others, Several addition methods and features available in contrib Schema module. Still to do: Additional attributes to add to Schema API foreign key mapping, implementation discussion at and in Record module by Henrique Recidive, title field: boolean, should this field be used as a title? rewrite_sql: boolean, should e.g. load operations based on this object type be passed through SQL rewriting? serialize (half-added recently, needs completion): boolean, is this field serialized on saving and unserialized on loading? encrypt: boolean, should this field be passed through encryption (md5) before being saved? validate: where should this field be validated? title: title to use for e.g. form elements based on this field description: description to use for e.g. form elements based on this field Additional generic transaction handlers: load: load an existing object, if found delete: delete an existing object, if found, optionally with all its related data validate: validate an object e.g. prior to saving new: create a new empty object with default properties. 2 Database abstraction Old Custom PHP database abstraction functions adapted originally from the PEAR DB package. Focus on MySQL support, Postgresql more limited, others sketchy and in contrib. New PHP 5 as minimal requirement for Drupal 7 would open the way to using PHP s native PDO methods. Discussion and ideas: Larry Garfield, Patch, Add PDO support to Drupal: Record module by Henrique Recidive (first version committed October 07), A Data API for Drupal Nedjo Rogers and Henrique Recidive
4 includes PDO implementation. A key benefit of PDO is the ability to load/process fields "on demand". For example, for a node, we can load only the direct properties first. Then, on referencing $node->user, the dataapi will query the users table automaticaly, returning the user object. Still to do Replace custom DB abstraction in Drupal core with PDO. Note: This is not strictly necessary to renew Drupal data APIs, but will open new efficiencies and options, like lazy loading of nested (foreign) objects using PHP5 magic methods get and set in conjunction with PDO 'load into object' features. 3 Data APIs Old Custom non-parallel implementations, see Appendix. New Outside of core, CivicSpace produced a packages system for Drupal providing a full set of methods for saving and updating all core Drupal (and many CiviCRM) object types: Authors, Nedjo Rogers and Henrique Recidive. This packages system includes solutions to key Data API problems, among them: creation of parallel methods for all object types; support for external (non-drupal) APIs; and programmatic export of existing objects (nodes, taxonomy terms, users, etc.) into generic and portable structured objects. Several patches and discussions that have helped map out needed steps. Data API: first steps, begun Jan. 07 by Nedjo Rogers, Data API: further steps, May 07 by Nedjo Rogers Creating a library of CRUD API functions for Drupal, begun Aug. 06 by Angela Byron and others, Deletion API, by Chad Phillips, applied but then rolled back, Restructure node object, by Derek Wright and others, Consistent table names to facilitate CRUD operations, by Nedjo Rogers and Angela Byron, Still to do 1. Rename tables and fields for consistency. E.g. to be able to drupal_load( term, 21) based on the schema, we need a term table rather than the current term_data. 2. Define a consistent data type for objects (object or array). Arrays are the default candidate following the current forms API design and historical precedence. However, there are strong reasons to consider objects, since PHP5 has powerful OOP features and 'magic' methods. Justifying a fuller use of object types will require some sound arguments in terms of both performance and code elegance. Henrique Recidive s Record A Data API for Drupal Nedjo Rogers and Henrique Recidive
5 module is a significant step in this direction (see accompanying writeup on the Record module). 3. Recast the way we current load properties into objects to reflect their data structure. Currently we have two ways we load relational data into objects: directly, and as a nested array or object. For example, for a book node, the 'parent' property goes directly in the $node object. Some other properties, though, are nested in an array or object (e.g., organic group properties of a node). We need to move consistently to this nested approach. To enable schema-aware handling of a data item array, we need to mirror the relationships in the data structure. The most obvious way is an approach analogous to the Forms API. That is, when loading data (or directly creating a data array), we mark keys in a way to identify them as foreign references. A node, then, would have direct properties from its primary table--the node table. All of its other properties would be in arrays associated with their respective tables of origin. E.g., a book with a parent have, instead of a 'parent' key, a '#book' key, which is an array of properties held in the book table, in this case, the parent. 4. Implement a set of API methods (load, save, delete, validate, new) that can handle all object types. A full data operation should be possible by calling these methods alone. We remove all existing object-type-specific methods, e.g., node_load. However, we still pass the results through dataapi hooks, allowing modules to e.g. add additional properties. Aside from major performance and code footprint improvements, introducing a unified set of methods will make it possible to generalize several systems that have so far been limited to nodes. E.g., it will be possible (outside the scope of this present work) to translate the node_access system into a general system for object access, including files, users, etc. 4 User and group level authentication and access control Old The traditional Drupal user authentication system assumes form-based user authentication through a web browser, using cookies to maintain a session. A rudimentary inter-site authentication system as implemented in the core drupal module sent user name and password in plain text between Drupal sites. Access restrictions implemented through two primary means: (a) user authentication (b) path based restrictions as implemented in the menu system. New As of version 6, Drupal gets an OpenID implementation and drops the legacy drupal module. Authentication routines in Services module. Still to do Relatively little, but some further work on exposing authentication to remote applications. A Data API for Drupal Nedjo Rogers and Henrique Recidive
6 5 Web service support Old Implementations for XMLRPC, RSS, and JSON in core. XMLRPC implemented through parallel system bypassing the regular Drupal menu-based handling. RSS and JSON implemented through the menu system via custom menu items and rendering overrides. New Services module in Drupal contributions repository by Scott Nelson, Patch, enable dynamic page loading and rendering into different formats (JSON, XML) by Nedjo Rogers, outlined relevant approaches. Still to do Bring Services module into core. Rewrite existing XMLRPC, RSS, and AJAX implementations to use Services module. Implement RESTful APIs. 4. Work plan 1. Enhance Schema API with additional required properties foreign key mapping, implementation discussion at title field: should this field be used as a title? rewrite_sql: should e.g. load operations based on this object type be passed through SQL rewriting? serialize (half-added recently, needs completion): is this field serialized on saving and unserialized on loading? encrypt: should this field be passed through md5 before being saved? validation: provide per field validation. 2. Complete patch: Consistent table names to facilitate CRUD operations, Meantime, in contrib, implement schema altering to map object types to their corresponding tables, e.g., term is the object type linked with the table term_data. 3. Drop existing DB abstraction library in Drupal core, replacing with native PHP PDO Write generic data handling functions to complement the existing drupal_write_record: drupal_read_record: reads a record based on the schema drupal_delete_record deletes a record based on schema A Data API for Drupal Nedjo Rogers and Henrique Recidive
7 5. Define loaded object structure as nested arrays, following Forms API model or, preferably, as nested objects with help of new PHP5 OOP features. 6. Write set of methods for object handling: drupal_load, drupal_save, drupal_delete, drupal_validate, drupal_new. (Rename existing drupal_load to drupal_load_file.) Some of this is mapped out in the patch at and roughly sketched out in the conceptual code at and the existing Schema module in contrib. The new Record module begins to map this out in better detail. drupal_new will return an empty object, but with the schema information attached to it. Then we can fill out the fields programatically, e.g. $new_node = drupal_new('node'); $new_node->title = 'some title'; drupal_save($new_node); 7. Rewrite index.php (the file that handles almost all Drupal page requests). Draft code is available in the patch at 8. Add hook_service and hook_server to core, enabling modules to expose/implement external APIs and implement new webservice services types. 5. Anticipated Outcomes Renewing Drupal s core data APIs, taking full advantage of new possibilities in PHP 5, and exposing these newly flexible APIs through web services will result in major benefits to the Drupal platform and those developing on it. Increased code flexibility based on parallel forms. E.g., a single load method for all object types means we don t need different hook implementations for each. New horizons for programmatic creation of much that is now hand-coded. E.g., methods for generating default input forms from schema information. Efficiency improvements accruing from increased reliance on inbuilt PHP functionality rather than code-level implementations. Seamless integration of web services, support for data transactions in multiple XML, JSON, and other formats. Significantly lower barrier to entry for new Drupal developers due to improved consistency in APIs. 6. About the Authors Nedjo Rogers and Henrique Recidive have collaborated for the past two years as lead developers of the CivicSpace hosting platform, where their work included a focus on data API development. Solving the challenges of producing a consistent set of data handling methods for all Drupal (and many CiviCRM) object types has given them detailed and specific insights into the work needed to improve Drupal core. A Data API for Drupal Nedjo Rogers and Henrique Recidive
8 Their collaborative projects range from AJAX, e-commerce, and social networking applications to a new AJAX-ready Javascript behaviours registry for Drupal 6, Nedjo Rogers, has been active in the Drupal community for over four years. He has written over thirty modules in diverse areas, contributed documentation and organizational expertise, and authored various core patches, e.g., the theme region system. Data API improvements have been a significant focus for the past year and a half, during which time he has contributed several relevant core patches and contributed to improving the Schema API and related pieces. Nedjo lives in Victoria, BC, Canada. Henrique Recidive, has contributed to Drupal over the past three years, beginning with Brazilian Portuguese localization and moving on to module development and core contributions. As a CivicSpace developer Henrique wrote several key pieces of the CivicSpace On Demand hosting platform including integration of external services (payment gateways, domain name registration, etc.), generalized APIs for deploying and upgrading pre-configurated Drupal and CiviCRM sites and theme development modules. Also Henrique developed numerous modules for client sites, including e-commerce, user profiles and AJAX. A current focus is his new Record module, introducing Active Records Pattern to Drupal. Henrique lives in Belo Horizonte, MG, Brazil. 7. Appendix: Existing methods for selected Drupal data types Object type create read update delete node node_save, hook_nodeapi reference no return value accepts object node type (content type) node_type_save accepts object node_load, hook_nodeapi reference node_get_types( ) returns all types, or a single type either as array of objects or array of strings accepts node object node_save, hook_nodeapi reference no return value object accepted node_type_save accepts object node_delete, hook_user and hook_nodeapi no return value user id accepted node_type_delet e accepts string: node type A Data API for Drupal Nedjo Rogers and Henrique Recidive
9 Object type create read update delete user user_save, hook_user reference to hook_user but not to user_save returns object three arguments: user object, array with values and category role user_admin_rol e_submit it relies on forms actions taxonomy vocabulary taxonomy_save _vocabulary accepts array: form values taxonomy term taxonomy_save _term accepts form values (array) hook_taxonomy user_load, hook_user reference user_roles accepts two arguments: membersonly (boolean) and permission (filters roles which contain a permission) taxonomy_voca bulary_load accepts vocabulary id returns object taxonomy_get_t erm accepts term id returns object user_save, hook_user reference to hook_user but not to user_save returns object three arguments: user object, array with values and category user_admin_rol e_submit it relies on forms actions taxonomy_save _vocabulary accepts array: form values taxonomy_save _term accepts form values (array) hook_taxonomy user_delete, hook_user arguments are form values and user id user_admin_rol e_submit relies on forms actions taxonomy_del_ vocabulary accepts vocabulary id taxonomy_del_t erm accepts term id hook_taxonomy comment comment_save, hook_comment( ) accepts array comment_rende r accepts node object and comment id returns themed comments comment_save, hook_comment( ) accepts array comment_delete accepts comment id A Data API for Drupal Nedjo Rogers and Henrique Recidive
10 Object type create read update delete custom block (box) block_box_save accepts array block_box_get accepts block id block_box_save accepts array block_box_dele te_submit relies on forms variable variable_set variable_get variable_set variable_del A Data API for Drupal Nedjo Rogers and Henrique Recidive
Drupal 8 The site builder's release
Drupal 8 The site builder's release Antje Lorch @ifrik DrupalCamp Vienna 2015 #dcvie drupal.org/u/ifrik about me Sitebuilder Building websites for small NGOs and grassroots organisations Documentation
Who? Wolfgang Ziegler (fago) Klaus Purer (klausi) Sebastian Gilits (sepgil) epiqo Austrian based Drupal company Drupal Austria user group
Who? Wolfgang Ziegler (fago) Klaus Purer (klausi) Sebastian Gilits (sepgil) epiqo Austrian based Drupal company Drupal Austria user group Rules!?!? Reaction rules or so called ECA-Rules Event-driven conditionally
Beyond The Web Drupal Meets The Desktop (And Mobile) Justin Miller Code Sorcery Workshop, LLC http://codesorcery.net/dcdc
Beyond The Web Drupal Meets The Desktop (And Mobile) Justin Miller Code Sorcery Workshop, LLC http://codesorcery.net/dcdc Introduction Personal introduction Format & conventions for this talk Assume familiarity
MASTER DRUPAL 7 MODULE DEVELOPMENT
MASTER DRUPAL 7 MODULE DEVELOPMENT by blair wadman sample available for purchase at http://befused.com/master-drupal/ LESSON 1 INTRODUCTION In this section, you will be introduced to the core Drupal concepts
How does Drupal 7 Work? Tess Flynn, KDØPQK www.deninet.com
How does Drupal 7 Work? Tess Flynn, KDØPQK www.deninet.com About the Author Bachelor of Computer Science Used Drupal since 4.7 Switched from self-built PHP CMS Current Job: Not in Drupal! But she d like
Commerce Services Documentation
Commerce Services Documentation This document contains a general feature overview of the Commerce Services resource implementation and lists the currently implemented resources. Each resource conforms
Sisense. Product Highlights. www.sisense.com
Sisense Product Highlights Introduction Sisense is a business intelligence solution that simplifies analytics for complex data by offering an end-to-end platform that lets users easily prepare and analyze
Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms
Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms Mohammed M. Elsheh and Mick J. Ridley Abstract Automatic and dynamic generation of Web applications is the future
Software Development & Education Center PHP 5
Software Development & Education Center PHP 5 (ADVANCE) Detailed Curriculum Advance PHP JQuery Basics Of JQuery Including the JQuery Library Code in an HTML Page JQuery Utilities Faster, Simpler, More
Advanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY
Advanced Web Development Duration: 6 Months SCOPE OF WEB DEVELOPMENT INDUSTRY Web development jobs have taken thе hot seat when it comes to career opportunities and positions as a Web developer, as every
Trainer name is P. Ranjan Raja. He is honour of www.php2ranjan.com and he has 8 years of experience in real time programming.
Website: http://www.php2ranjan.com/ Contact person: Ranjan Mob: 09347045052, 09032803895 Domalguda, Hyderabad Email: [email protected] Trainer name is P. Ranjan Raja. He is honour of www.php2ranjan.com
Framework as a master tool in modern web development
Framework as a master tool in modern web development PETR DO, VOJTECH ONDRYHAL Communication and Information Systems Department University of Defence Kounicova 65, Brno, 662 10 CZECH REPUBLIC [email protected],
Content Management Software Drupal : Open Source Software to create library website
Content Management Software Drupal : Open Source Software to create library website S.Satish, Asst Library & Information Officer National Institute of Epidemiology (ICMR) R-127, Third Avenue, Tamil Nadu
ANNEX B TERMS OF REFERENCE. Assignment Name: IT service provider/partner for iknow politics website Our ref no: 258-11/23
INTERNATIONAL INSTITUTE FOR DEMOCRACY AND ELECTORAL ASSISTANCE ANNEX B TERMS OF REFERENCE Assignment Name: IT service provider/partner for iknow politics website Our ref no: 258-11/23 1. Background The
DreamFactory & Modus Create Case Study
DreamFactory & Modus Create Case Study By Michael Schwartz Modus Create April 1, 2013 Introduction DreamFactory partnered with Modus Create to port and enhance an existing address book application created
Deployment Guide: Unidesk and Hyper- V
TECHNICAL WHITE PAPER Deployment Guide: Unidesk and Hyper- V This document provides a high level overview of Unidesk 3.x and Remote Desktop Services. It covers how Unidesk works, an architectural overview
Certified PHP/MySQL Web Developer Course
Course Duration : 3 Months (120 Hours) Day 1 Introduction to PHP 1.PHP web architecture 2.PHP wamp server installation 3.First PHP program 4.HTML with php 5.Comments and PHP manual usage Day 2 Variables,
5 Mistakes to Avoid on Your Drupal Website
5 Mistakes to Avoid on Your Drupal Website Table of Contents Introduction.... 3 Architecture: Content.... 4 Architecture: Display... 5 Architecture: Site or Functionality.... 6 Security.... 8 Performance...
WebLink 3 rd Party Integration Guide
1. Introduction WebLink provides the world s leading online Chamber and Association Management Software: WebLink Connect. While WebLink does provide custom website design and hosting services, WebLink
Drupal CMS for marketing sites
Drupal CMS for marketing sites Intro Sample sites: End to End flow Folder Structure Project setup Content Folder Data Store (Drupal CMS) Importing/Exporting Content Database Migrations Backend Config Unit
Is Drupal secure? A high-level perspective on web vulnerabilities, Drupal s solutions, and how to maintain site security
Is Drupal secure? A high-level perspective on web vulnerabilities, Drupal s solutions, and how to maintain site security Presented 2009-05-29 by David Strauss Thinking Securely Security is a process, not
Drupal 8 Development Retrospective. A timeline and retrospective from a core contributor
Drupal 8 Development Retrospective A timeline and retrospective from a core contributor 2011 2016 Drupal 7, Gates & Initiatives DrupalCon Chicago 2011, Drupal 8 development starts immediately. Dries discusses
Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications
Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications White Paper Table of Contents Overview...3 Replication Types Supported...3 Set-up &
Content Management Systems: Drupal Vs Jahia
Content Management Systems: Drupal Vs Jahia Mrudula Talloju Department of Computing and Information Sciences Kansas State University Manhattan, KS 66502. [email protected] Abstract Content Management Systems
Author: Ryan J Adams. Overview. Central Management Server. Security. Advantages
Author: Ryan J Adams Overview In this paper we will look at Central Management Server and how it can help you manage a disperse environment. We will look at the requirements for setting up a CMS, the advantages
Database Management System Choices. Introduction To Database Systems CSE 373 Spring 2013
Database Management System Choices Introduction To Database Systems CSE 373 Spring 2013 Outline Introduction PostgreSQL MySQL Microsoft SQL Server Choosing A DBMS NoSQL Introduction There a lot of options
An Introduction to Drupal Architecture. John VanDyk DrupalCamp Des Moines, Iowa September 17, 2011
An Introduction to Drupal Architecture John VanDyk DrupalCamp Des Moines, Iowa September 17, 2011 1 PHP 5.2.5 Apache OS IIS Nginx Stack with OS, webserver and PHP. Most people use mod_php but deployments
Cloud Powered Mobile Apps with Azure
Cloud Powered Mobile Apps with Azure Malte Lantin Technical Evanglist Microsoft Azure Agenda Mobile Services Features and Demos Advanced Features Scaling and Pricing 2 What is Mobile Services? Storage
database abstraction layer database abstraction layers in PHP Lukas Smith BackendMedia [email protected]
Lukas Smith database abstraction layers in PHP BackendMedia 1 Overview Introduction Motivation PDO extension PEAR::MDB2 Client API SQL syntax SQL concepts Result sets Error handling High level features
ORACLE DATABASE 10G ENTERPRISE EDITION
ORACLE DATABASE 10G ENTERPRISE EDITION OVERVIEW Oracle Database 10g Enterprise Edition is ideal for enterprises that ENTERPRISE EDITION For enterprises of any size For databases up to 8 Exabytes in size.
Leveraging Service Oriented Architecture (SOA) to integrate Oracle Applications with SalesForce.com
Leveraging Service Oriented Architecture (SOA) to integrate Oracle Applications with SalesForce.com Presented by: Shashi Mamidibathula, CPIM, PMP Principal Pramaan Systems [email protected] www.pramaan.com
Power Tools for Pivotal Tracker
Power Tools for Pivotal Tracker Pivotal Labs Dezmon Fernandez Victoria Kay Eric Dattore June 16th, 2015 Power Tools for Pivotal Tracker 1 Client Description Pivotal Labs is an agile software development
The following is a comparison between CiviCRM, RedHen and CRM Core which are the leading option for CRM in the Drupal Community.
The following is a comparison between CiviCRM, RedHen and CRM Core which are the leading option for CRM in the Drupal Community. Feature CiviCRM RedHen CRM Core Create contacts for individuals, organizations
Getting started with API testing
Technical white paper Getting started with API testing Test all layers of your composite applications, not just the GUI Table of contents Executive summary... 3 Introduction... 3 Who should read this document?...
Oracle Identity Analytics Architecture. An Oracle White Paper July 2010
Oracle Identity Analytics Architecture An Oracle White Paper July 2010 Disclaimer The following is intended to outline our general product direction. It is intended for information purposes only, and may
About This Document 3. Integration and Automation Capabilities 4. Command-Line Interface (CLI) 8. API RPC Protocol 9.
Parallels Panel Contents About This Document 3 Integration and Automation Capabilities 4 Command-Line Interface (CLI) 8 API RPC Protocol 9 Event Handlers 11 Panel Notifications 13 APS Packages 14 C H A
PHP Language Binding Guide For The Connection Cloud Web Services
PHP Language Binding Guide For The Connection Cloud Web Services Table Of Contents Overview... 3 Intended Audience... 3 Prerequisites... 3 Term Definitions... 3 Introduction... 4 What s Required... 5 Language
Things Made Easy: One Click CMS Integration with Solr & Drupal
May 10, 2012 Things Made Easy: One Click CMS Integration with Solr & Drupal Peter M. Wolanin, Ph.D. Momentum Specialist (principal engineer), Acquia, Inc. Drupal contributor drupal.org/user/49851 co-maintainer
Indian Journal of Science International Weekly Journal for Science ISSN 2319 7730 EISSN 2319 7749 2015 Discovery Publication. All Rights Reserved
Indian Journal of Science International Weekly Journal for Science ISSN 2319 7730 EISSN 2319 7749 2015 Discovery Publication. All Rights Reserved Analysis Drupal as a Content Management System in Libraries:
Ektron to EPiServer Digital Experience Cloud: Information Architecture
Ektron to EPiServer Digital Experience Cloud: Information Architecture This document is intended for review and use by Sr. Developers, CMS Architects, and other senior development staff to aide in the
How to Prepare for the Upgrade to Microsoft Dynamics CRM 2013 (On-premises)
How to Prepare for the Upgrade to Microsoft Dynamics CRM 2013 (On-premises) COMPANY: Microsoft Corporation RELEASED: September 2013 VERSION: 1.0 Copyright This document is provided "as-is". Information
Business Application Development Platform
Business Application Development Platform Author Copyright Last update Version Document type Sclable Business Solutions GmbH Attribution-NonCommercial-NoDerivatives 4.0 International 01/28/2014 1.0 Technical
WEB DEVELOPMENT COURSE (PHP/ MYSQL)
WEB DEVELOPMENT COURSE (PHP/ MYSQL) COURSE COVERS: HTML 5 CSS 3 JAVASCRIPT JQUERY BOOTSTRAP 3 PHP 5.5 MYSQL SYLLABUS HTML5 Introduction to HTML Introduction to Internet HTML Basics HTML Elements HTML Attributes
Database Extension 1.5 ez Publish Extension Manual
Database Extension 1.5 ez Publish Extension Manual 1999 2012 ez Systems AS Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,Version
J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX
Oracle Application Express 3 The Essentials and More Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX Arie Geller Matthew Lyon J j enterpririse PUBLISHING BIRMINGHAM
Selecting the Right NAS File Server
Selecting the Right NAS File Server As the network administrator for a workgroup LAN, consider this scenario: once again, one of your network file servers is running out of storage space. You send out
Introduction to IBM Worklight Mobile Platform
Introduction to IBM Worklight Mobile Platform The Worklight Mobile Platform The Worklight Mobile Platform is an open, complete and advanced mobile application platform for HTML5, hybrid and native apps.
LAMP [Linux. Apache. MySQL. PHP] Industrial Implementations Module Description
LAMP [Linux. Apache. MySQL. PHP] Industrial Implementations Module Description Mastering LINUX Vikas Debnath Linux Administrator, Red Hat Professional Instructor : Vikas Debnath Contact
Everything you ever wanted to know about Drupal 8*
Everything you ever wanted to know about Drupal 8* but were too afraid to ask *conditions apply So you want to start a pony stud small horses, big hearts Drupal 8 - in a nutshell Learn Once - Apply Everywhere*
Migrating into Drupal 8 Migrando a Drupal 8
Migrating into Drupal 8 Migrando a Drupal 8 Ryan Weal // Novella Chiechi Kafei Interactive Inc. Montréal Québec Canada [email protected] // [email protected] https://www.drupal.org/node/2348505 http://twitter.com/ryan_weal
Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports Server 6i
Oracle Forms Services Secure Web.Show_Document() calls to Oracle Reports Server 6i $Q2UDFOH7HFKQLFDO:KLWHSDSHU 0DUFK Secure Web.Show_Document() calls to Oracle Reports Server 6i Introduction...3 solution
Optimizing Drupal Performance. Benchmark Results
Benchmark Results February 2010 Table of Contents Overview 3 Test Environment 3 Results Summary 4 Configurations and Test Details 8 Bytecode Caching 12 Improving Drupal Code with Partial Caching 13 Full
BarTender Integration Methods. Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER
BarTender Integration Methods Integrating BarTender s Printing and Design Functionality with Your Custom Application WHITE PAPER Contents Introduction 3 Integrating with External Data 4 Importing Data
How to Use PIPS Access to/from SQL Database Utility Program. By PIPSUS Support Team Dr. Chouikha ([email protected])
How to Use PIPS Access to/from SQL Database Utility Program By PIPSUS Support Team Dr. Chouikha ([email protected]) 1. Introduction PIPS (Price Index Processor Software) data transfer utility program
NS DISCOVER 4.0 ADMINISTRATOR S GUIDE. July, 2015. Version 4.0
NS DISCOVER 4.0 ADMINISTRATOR S GUIDE July, 2015 Version 4.0 TABLE OF CONTENTS 1 General Information... 4 1.1 Objective... 4 1.2 New 4.0 Features Improvements... 4 1.3 Migrating from 3.x to 4.x... 5 2
Workshop on Using Open Source Content Management System Drupal to build Library Websites Hasina Afroz Auninda Rumy Saleque
Workshop on Using Open Source Content Management System Drupal to build Library Websites Hasina Afroz Auninda Rumy Saleque Funded by: INASP, UK October 7, 2012 Ayesha Abed Library http://library.bracu.ac.bd
TSM Studio Server User Guide 2.9.0.0
TSM Studio Server User Guide 2.9.0.0 1 Table of Contents Disclaimer... 4 What is TSM Studio Server?... 5 System Requirements... 6 Database Requirements... 6 Installing TSM Studio Server... 7 TSM Studio
TYPO3 6.x Enterprise Web CMS
An Acira Group Whitepaper April 2013 TYPO3 6.x Enterprise Web CMS A cloud ready open source web platform with enterprise systems integration Executive Summary TYPO3 separates content from design and function,
owncloud Architecture Overview
owncloud Architecture Overview owncloud, Inc. 57 Bedford Street, Suite 102 Lexington, MA 02420 United States phone: +1 (877) 394-2030 www.owncloud.com/contact owncloud GmbH Schloßäckerstraße 26a 90443
Module developer s tutorial
Module developer s tutorial Revision: May 29, 2011 1. Introduction In order to keep future updates and upgrades easy and simple, all changes to e-commerce websites built with LiteCommerce should be made
Magento Extension Developer s Guide
Magento Extension Developer s Guide Copyright 2012 X.commerce, Inc. All rights reserved. No part of this Guide shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic,
Avaya Inventory Management System
Avaya Inventory Management System June 15, 2015 Jordan Moser Jin Oh Erik Ponder Gokul Natesan Table of Contents 1. Introduction 1 2. Requirements 2-3 3. System Architecture 4 4. Technical Design 5-6 5.
Q&A for Zend Framework Database Access
Q&A for Zend Framework Database Access Questions about Zend_Db component Q: Where can I find the slides to review the whole presentation after we end here? A: The recording of this webinar, and also the
CSCI-UA:0060-02. Database Design & Web Implementation. Professor Evan Sandhaus [email protected] [email protected]
CSCI-UA:0060-02 Database Design & Web Implementation Professor Evan Sandhaus [email protected] [email protected] Lecture #27: DB Administration and Modern Architecture:The last real lecture. Database
Multilingual content in Drupal 8: a highly evolved permutated API. DrupalCamp Vienna 2013 Francesco Placella
Multilingual content in Drupal 8: a highly evolved permutated API DrupalCamp Vienna 2013 Francesco Placella Francesco Placella // plach From Venice, Italy Studied at Ca' Foscari University Owner at PSEGNO
Data Migration from Magento 1 to Magento 2 Including ParadoxLabs Authorize.Net CIM Plugin Last Updated Jan 4, 2016
Data Migration from Magento 1 to Magento 2 Including ParadoxLabs Authorize.Net CIM Plugin Last Updated Jan 4, 2016 This guide was contributed by a community developer for your benefit. Background Magento
How to pull content from the PMP into Core Publisher
How to pull content from the PMP into Core Publisher Below you will find step-by-step instructions on how to set up pulling or retrieving content from the Public Media Platform, or PMP, and publish it
phpservermon Documentation
phpservermon Documentation Release 3.1.0-dev Pepijn Over May 11, 2014 Contents 1 Introduction 3 1.1 Summary................................................. 3 1.2 Features..................................................
McAfee Agent Handler
McAfee Agent Handler COPYRIGHT Copyright 2009 McAfee, Inc. All Rights Reserved. No part of this publication may be reproduced, transmitted, transcribed, stored in a retrieval system, or translated into
Electronic Ticket and Check-in System for Indico Conferences
Electronic Ticket and Check-in System for Indico Conferences September 2013 Author: Bernard Kolobara Supervisor: Jose Benito Gonzalez Lopez CERN openlab Summer Student Report 2013 Project Specification
Building Library Website using Drupal
Building Library Website using Drupal Building the Library Web Site "The Web is quickly becoming the world's fastest growing repository of data." [Tim Berners-Lee, W3C director and creator of the World
DIGIPASS Authentication for Citrix Access Gateway VPN Connections
DIGIPASS Authentication for Citrix Access Gateway VPN Connections With VASCO Digipass Pack for Citrix 2006 VASCO Data Security. All rights reserved. Page 1 of 31 Integration Guideline Disclaimer Disclaimer
QAD BPM Release Notes
September 2014 The release notes include information about the latest QAD BPM fixes and changes. Review this document before proceeding with any phase of a QAD BPM implementation. These release notes are
5.1 Features 1.877.204.6679. [email protected] Denver CO 80202
1.877.204.6679 www.fourwindsinteractive.com 3012 Huron Street [email protected] Denver CO 80202 5.1 Features Copyright 2014 Four Winds Interactive LLC. All rights reserved. All documentation
Faichi Solutions. The Changing Face of Drupal with Drupal 8
Faichi Solutions The Changing Face of Drupal with Drupal 8 Whitepaper published on Dec. 17, 2014 Compiled & Written by: Team Drupal, Faichi Edited by: Payal Mathur, Communication Manager, Faichi CONTENTS
(An) Optimal Drupal 7 Module Configuration for Site Performance JOE PRICE
(An) Optimal Drupal 7 Module Configuration for Site Performance JOE PRICE Intro I m a performance junkie. My top three non-drupal performance tools are Apache Bench, Google PageSpeed Insights, and NewRelic.
VIVO Dashboard A Drupal-based tool for harvesting and executing sophisticated queries against data from a VIVO instance
VIVO Dashboard A Drupal-based tool for harvesting and executing sophisticated queries against data from a VIVO instance! Paul Albert, Miles Worthington and Don Carpenter Chapter I: The Problem Administrators
Products that are referred to in this document may be trademarks and/or registered trademarks of the respective owners.
2015 GEOVAP, spol. s r. o. All rights reserved. GEOVAP, spol. s r. o. Cechovo nabrezi 1790 530 03 Pardubice Czech Republic +420 466 024 618 http://www.geovap.cz Products that are referred to in this document
Elgg 1.8 Social Networking
Elgg 1.8 Social Networking Create, customize, and deploy your very networking site with Elgg own social Cash Costello PACKT PUBLISHING open source* community experience distilled - BIRMINGHAM MUMBAI Preface
Pre-authentication XXE vulnerability in the Services Drupal module
Pre-authentication XXE vulnerability in the Services Drupal module Security advisory 24/04/2015 Renaud Dubourguais www.synacktiv.com 14 rue Mademoiselle 75015 Paris 1. Vulnerability description 1.1. The
Application layer Web 2.0
Information Network I Application layer Web 2.0 Youki Kadobayashi NAIST They re revolving around the web, after all Name any Internet-related buzz: Cloud computing Smartphone Social media... You ll end
E-Commerce: Designing And Creating An Online Store
E-Commerce: Designing And Creating An Online Store Introduction About Steve Green Ministries Solo Performance Artist for 19 Years. Released over 26 Records, Several Kids Movies, and Books. My History With
<Insert Picture Here> Michael Hichwa VP Database Development Tools [email protected] Stuttgart September 18, 2007 Hamburg September 20, 2007
Michael Hichwa VP Database Development Tools [email protected] Stuttgart September 18, 2007 Hamburg September 20, 2007 Oracle Application Express Introduction Architecture
Drupal and ArcGIS Yes, it can be done. Frank McLean Developer
Drupal and ArcGIS Yes, it can be done Frank McLean Developer Who we are NatureServe is a conservation non-profit Network of member programs Track endangered species and habitats Across North America Environmental
Example for Using the PrestaShop Web Service : CRUD
Example for Using the PrestaShop Web Service : CRUD This tutorial shows you how to use the PrestaShop web service with PHP library by creating a "CRUD". Prerequisites: - PrestaShop 1.4 installed on a server
CiviCRM for Drupal Developers
+ CiviCRM for Drupal Developers Coleman Watts CiviCRM user since 2010 Found Civi through Drupal Implemented Civi for Woolman School Author of Webform Integration, and a few other CiviCRM modules and APIs
Using your Drupal Website Book 1 - Drupal Basics
Book 1 - Drupal Basics By Karl Binder, The Adhere Creative Ltd. 2010. This handbook was written by Karl Binder from The Adhere Creative Ltd as a beginners user guide to using a Drupal built website. It
Welcome The webinar will begin shortly
Welcome The webinar will begin shortly Angela Chumley [email protected] 08.18.15 Engagement Tip Mute Button Listen Actively Ask Questions 2 AGENDA Getting Started Web Content Management (WCMS)
Inside the Digital Commerce Engine. The architecture and deployment of the Elastic Path Digital Commerce Engine
Inside the Digital Commerce Engine The architecture and deployment of the Elastic Path Digital Commerce Engine Contents Executive Summary... 3 Introduction... 4 What is the Digital Commerce Engine?...
Category: Business Process and Integration Solution for Small Business and the Enterprise
Home About us Contact us Careers Online Resources Site Map Products Demo Center Support Customers Resources News Download Article in PDF Version Download Diagrams in PDF Version Microsoft Partner Conference
Enterprise Application Development in SharePoint 2010
Artifacts, Components and Resources that Comprise the Employee Absence Tracking Application 11 Enterprise Application Development in SharePoint 2010 Development Note below, a version of this Employee Absence
