Componsant de Synchronisation hautement évolutif de la solution SQL Anywhere
En savoir plusSQL Anywhere est une base relationnelle fournissant des nombreuses fonctionnalités avancées telles que: intégrité référentielle, procédures stockées, tables proxy, verrouillage au niveau de la ligne, haute disponibilité, gestion des évènements systèmes et utilisateurs, in-memory mode, intra-query parallelism, database mirroring, integration aux annuaires LDAP, cryptage fort, support de multiples interfaces, etc.
Elle peut fonctionner comme serveur local, de groupe de travail, d'entreprise de taille petites ou moyennes, pour la distribution d'applications à large échelle et pour le support des environnements zéro-administration.
SQL Anywhere s'installe facilement en 15 minutes, sans impact sur les autres applications et bases de données. Une “installation silencieuse” est possible lorsque SQL anywhere est embarqué dans une applications.
Le code génétique de SQL Anywhere est issu des produits hautes performances développés dans les années 90 par la société Canadienne Watcom, tel que le compilateur Watcom C++. Dès les premières versions de SQL Anywhere, cette optimisation du code s'est traduite par de très hautes performances, associées à une très faible consommation de RAM et de disque dur. Cette faible utilisation des ressources matérielles permet d'utiliser un parc de machines existantes aux performances limitées, et réduira fortement les besoins d'investissements matériels lorsque le système montera en charge.
Un autre avantage de cette faible consommation de ressource, est la capacité de SQL Anywhere à fonctionner sur toute sorte de terminaux mobiles, ce qui facilite la distribution de l'information sur des bases locales, et garanti un accès au données partout et à tout moment, quel que soit la qualité et la nature de l'environnement réseau.
A l'autre extrémité du spectre des besoins se trouvent les système à hautes performances. SQL Anywhere représente une excellente solution à coûts réduit pour des business de tailles moyenne ou grande.
SQL Anywhere est compatible avec de nombreux systèmes d'exploitation: Windows x86 / x64, Windows CE / Mobile, Linux x86 / x64, UNIX, Mac OS…
SQL Anywhere permet très facilement de passer d'un OS à l'autre, ou de déployer une même base sur plusieurs OS, puisqu'il suffit simplement de copier les fichiers de base de données!
Cela permet par exemple de développer une application sur Windows, puis de la déployer dans un environnement de production différent, ou de monter en charge plus tard vers d'autres OS.
C'est aussi une excellente solution pour les éditeurs de logiciels qui doivent installer leur solutions dans des environnements clients très variables.
Plus d'information sur les plate-formes supportées sur cette page
SQL Anywhere automatise la plupart des tâches d'administration, pour minimiser le besoins d'intervention de la part d'un administrateur, tout en garantissant des performances stables.
L'effort d'administration et les coûts d'exploitation s'en trouvent fortement réduits. C'est particulièrement importants pour des petites et moyennes entreprises, ainsi que pour l'administration de sites distants ou de systèmes distribués, pour lesquels un administrateur n'est pas toujours disponible, mais qui doivent garantir le bon fonctionnement du système à plein temps.
Bien sûr, le tuning de performance reste disponible à tout moment.
Fonctionnalités | Description |
---|---|
Optimiseur de requêtes | Choisit automatiquement et le plus rapidement possible le meilleur plan d'exécution pour la requête SQL. L'optimiseur cherchera le meilleur compromis entre délai d'optimisation et délai d'exécution. |
Gestion automatique de l'espace | Quand la taille des données à stocker en base augmentera, la taille de la base sera automatiquement ajustée. SQL Anywhere va aussi libérer de l'espace et le réutiliser à chaque fois que cela sera possible. |
Arrêt/démarrage automatique | La base va automatiquement démarrer ou s'arrêter quand cela sera nécessaire. Ni l'application, ni les utilisateurs ne devront surveiller si la base est déjà démarrée avant de s'en servir. |
Planification des tâches et gestion des événements | Les administrateurs peuvent planifier des tâches qui seront exécutées automatiquement. Les événements aussi seront gérés automatiquement. |
Rétablissement automatique | En cas d'arrêt imprévu de la base, par exemple après une panne de courant, le système se rétablira automatiquement lors du prochain démarrage de la base. |
Redimensionnement automatique du cache | Les performances sont automatiquement optimisées, en ajustant la taille du cache en fonction des statistiques d'utilisation de la base. |
Défragmentation des tables et index | Lorsque la base est en production, la défragmentation automatique des tables et Index réduit leur taille. |
La console SQL Anywhere permet d’explorer la structure de la base et ses principaux objets : procédures stockées, fonctions, événements.
Elle affiche aussi le plan d’exécution des requêtes SQL, le nombre d’appels et le temps d'exécution des triggers, et le temps d'exécution de chaque ligne de code d’une procédure, ce qui facilite leur tuning et l’optimisation des performances.
SQL Anywhere permet de faire évoluer facilement l'architecture du système, pour passer par exemple d'une application standalone à une application client/serveur, puis vers un système distribué, composé de multiples bases synchronisées entre elles.
Ces évolutions ne nécessitent aucune modification de la base de données ou des applications qui les utilisent, ce qui simplifie grandement la montée en charge des applications d'entreprise, ainsi que le déploiement d'applications commerciales packagées qui doivent s'adapter automatiquement a des environnements clients très variés.
SQL Anywhere utilise la technologie de synchronisation de MobiLink pour se synchroniser avec des base de données tiers telles que Oracle, Microsoft SQL Server, IBM DB2, MySQL, SAP Adaptive Server Enterprise, SQL Anywhere Server, ainsi que toutes les bases compatibles ODBC telles que SAP HANA.
Plus d'info
Pour prévenir la fuite de données sensibles (data leakage) ou les accès malicieux, SQL Anywhere embarque une série de fonctionnalités de sécurité.
SQL Anywhere supporte un large éventail de technologies de développements:
Sous Windows, vous pouvez appeler le setup d'installation de SQL Anywhere (InstallShield) depuis le setup de votre application. Dans ce cas, SQL Anywhere s'installera en même temps que l'application de façon totalement transparente pour l'utilisateur, ce qui simplifie grandement son déploiement.
SQL Anywhere est la solution idéale pour les applications commerciales dont l'installation est automatisée pour minimiser l'effort des utilisateurs finaux.
Le serveur SQL Anywhere peut agir en tant que serveur HTTP / HTTPS. Il supporte aussi les requêtes SOAP.
SQL Anywhere peut traiter extrêmement rapidement de gros volumes de données, en utilisant des fonctionnalités de niveau Entreprise telles que l'isolation de capture instantanée (snapshot isolation) ou les vues matérialisées.
SQL anywhere supporte aussi le parallélisme intra-query et le mode 64 bits sous Windows et Linux, pour optimiser l'utilisation de plusieurs CPU. Il permet ainsi la montée en charge vers des systèmes de hautes performances tels des sauvegardes en parallèle pour l'archivage rapide de gros volumes de données.
Il est aussi optimisé pour les requêtes OLAP facilitant ainsi la consultation, le reporting et l'analyse de bases volumineuses.
SQL Anywhere supporte ainsi des milliers d'utilisateurs interrogeant des bases de plusieurs Terabytes, contenant des millards d'enregistrements.
Vous pouvez aussi consulter sur cette page, les résultats obtenus avec le Benchmark TPC-C: SQL Anywhere se classe premier pour le rapport performance/prix.
SQL Anywhere offre des fonctionnalités de mirroring et clustering pour garantir une haute disponibilité de la base de données. Plus d'information concernant la haute disponibilité de SQL Anywhere sur cette page
SQL Anywhere supporte les configurations Read-only scale-out permettant de décharger la base de production des opérations de reporting et de consultation (read-only).
SQL Anywhere fournit un utilitaire qui simplifie la migration depuis une base Oracle, Microsoft SQL Server, IBM DB2, ou SAP Adaptive Server Enterprise, etc.
Ultralite est une version allégée de SQL Anywhere, d’utilisation très simple, et générant une très faible empreinte mémoire. Elle comporte les principales fonctionnalités nécessaires aux appareils mobiles (smartphones, systèmes de navigation, terminaux manuels, distributeurs automatiques…) et supporte des interfaces standard (ODBC, ADO.NET, JDBC…).
Ultralite inclut plusieurs SDK supportant de nombreuses langues, APIs, langages et outils de développements:
Dans un environnement .NET, Ultralite s’intègre facilement à du code C# ou VB.NET, ainsi qu’avec les applications utilisant le .NET Compact Framework.
En prenant en compte Ultralite dès la phase de développement, il n’est plus nécessaire de prévoir une installation spécifique pour la base de données : il suffit de copier quelques fichiers dans un répertoire, qui sera ensuite déployé avec les autres fichiers de l’application.
Ultralite hérite des très hautes performances de SQL Anywhere, et optimise la gestion des ressources grâce à sa légèreté. Il supporte les appareils sans disque dur, avec mémoire limitée et CPU à basse vitesse : smartphones, terminaux manuels (handheld devices), distributeurs automatiques, électronique grand public, système embarqués, Internet of Things (IoT)…
Grâce à la technologie MobiLink, Ultralite se synchronise facilement avec un Serveur de bases données tiers : SQL Anywhere, Oracle, Microsoft SQL Server, IBM DB2, MySQL, SAP Adaptive Server Enterprise, ainsi que les bases de données compatibles ODBC, telles que SAP IQ.
Ultralite encrypte les fichiers de données avec un algorithme 128 bits. De plus, les flux de communication entre le client Ultralite et le serveur de synchronisation MobiLink sont cryptés en HTTPS, ce qui garantit la sécurité du processus de synchronisation.
Une alternative possible à Ultralite est le développement d’un système de gestion fichiers propriétaires, pour gérer les données sur les mobiles.
Voici une comparaison des avantages et inconvénients des 2 solutions :
Système de Fichiers |
UltraLite |
|
---|---|---|
Coût de développement |
Elevé |
Faible (achat d'une licence). Aucun autre effort à prévoir, Ultralite est un outil à l'emploi. |
Coût de maintenance |
Elevé. Nécessite des tâches manuelles, récurrentes et coûteuses. |
Faible – Ultralite automatise les opérations de maintenance et d'administration. |
Sécurité |
Nécessite des technologies ou outils tiers. |
En standard : cryptage des données 128 bits et chiffrement des communications avec le serveur. |
Haute disponibilité (High availability)
Failover |
Nécessite des développements supplémentaires |
Les fonctionnalités de Haute disponibilité de SQL Anywhere et Ultralite sont éprouvées et bénéficient de plus de 20 ans de savoir-faire. |
Intégration et API |
Nécessite de développer une logique spécifique |
Le support de ADO.NET ou ODBC simplifie l'intégration avec d'autres programmes, en particulier des applications de gestion (data driven applications). |
Synchronisation des données avec le serveur |
Synchronisations manuelles, ou développements supplémentaires |
Ultralite synchronise en standard des dizaines de milliers de clients avec un même serveur, grâce à une excellente gestion des conflits. La synchronisation est paramétrable et s'adapte à la plupart des serveurs de base de données, Oracle ou autres. |
La solution SQL Anywhere inclut le composant Mobilink, une technologie hautement évolutive (“highly-scalable”), basée sur la session (“session-based”), qui permet de synchroniser les informations entre une entreprise et des systèmes distants, ou entre plusieurs bases de données - relationnelles ou non - de façon très flexible et robuste.
La technologie Mobilink garantit l'intégrité des transaction en cas de perte de connection, et propose des stratégies avancées pour la résolution de conflits lors de la mise à jour des données.
Reference Article: “High Availability Data Synchronization Architecture”
La technologie avancée de Mobilink permet de synchroniser une base SQL Anywhere avec des bases Oracle, Microsoft SQL Server, IBM DB2, MySQL, SAP ASE, SAP IQ, ou SAP HANA, ainsi qu'avec de nombreuses bases supportant ODBC.
MobiLink permet aussi de synchroniser des données en provenance d'autres sources de données:
Le serveur de synchronization Mobilink (“Mobilink Synchronization Server”) communique avec la base consolidée via ODBC, tandis que le client Mobilink se connecte au serveur de synchronization Mobilink par Internet.
Cette configuration offre de nombreuses possibilités pour construire des systèmes utilisant des bases de données tiers, et pour optimiser vos investissements matériels et logiciels existants.
La technologie Mobilink permet aux utilisateurs de mobiles de disposer d'informations à jour, même s'ils sont sur le terrain et utilisent des connexions intermittentes.
Mobilink va identifier les données mises à jour sur chaque base (base consolidée et base distante) et va synchroniser uniquement les données nécessaires. Ce processus va réduire au minimum les échanges, donc la consommation de bande passante, ainsi que les délais et coûts de communications.
Lorsque les même données sont modifiées simultanément dans plusieurs bases, Mobilink détecte le conflit potentiel et garantit l'intégrité des données en appliquant des règles de résolution facilement paramétrables.
Il n'est pas toujours pertinent de synchroniser toute la base de données vers des systèmes distants.
C'est pourquoi Mobilink permet de définir des sous-ensemble de données, pour choisir quelles information sera envoyée vers quel système distant. cette partition peut-être verticale (certaines tables par exemple), horizontale (les enregistrements correspondant à certains critères par exemple) ou une combinaison plus complexe.
On pourra ainsi optimiser l'utilisation de la bande passante, ainsi que les coûts et durées de communication.
On évitera aussi de surcharger les systèmes distants avec des informations volumineuses et inutiles.
Mobilink permet de définir des priorité de synchronisation entre plusieurs sous-ensemble de la base de données. Par exemple, des données de production relatives aux ventes et factures seront synchronisées en temps réel, alors que des données de références sur des pays ou des produits seront synchronisées tous les jours ou tous les mois seulements.
Vous contrôlez totalement la synchronisation, pour vous assurer que les données importantes seront disponibles à temps pour tous les utilisateurs, et optimiser les ressources et la bande passante disponible, ce qui est particulièrement important dans le cas d’utilisateurs mobiles et de communications sans fil.
Un seul serveur de synchronisation Mobilink peut supporter des milliers d'utilisateurs synchronisés.
Il est aussi possible d'utiliser plusieurs serveurs Mobilink pour répartir la charge de travail (load balancing) et permettre de monter en charge vers de systèmes de très grande taille.