2010-10-04 45 views
0

Je pense à certains problèmes qui pourraient correspondre au mieux au terme d'intégration logicielle. Supposons qu'une machine exécute un système d'exploitation et quelques programmes A, B et C. Maintenant, tous les programmes stockent en quelque sorte des données sur le système de fichiers. Disons que A utilise Apache Derby, B utilise PostgreSQL et B utilise des fichiers XML.Intégration logicielle homogène

Il existe maintenant trois façons de stocker des données. La question évidente est la suivante: Pourquoi ne pas utiliser un seul moyen de stocker des données pour tous les programmes? Au début, quelqu'un pourrait dire: Il n'y a aucun moyen de configurer la façon de stocker des données pour la plupart des programmes. Il est construit dans les programmes lui-même. C'est une décision de développeur, basée sur les exigences du logiciel.

Cela peut être vrai, mais je ne pense pas que la plupart des programmes ont des exigences spéciales sur la façon de stocker des données. Il n'y a qu'une minorité de programmes qui ont besoin d'un moyen spécifique de stocker des données. Tous les développeurs de la majorité des logiciels peuvent convenir d'une manière spécifique de stocker des données, par ex. PostgreSQL. Maintenant, l'administrateur pourrait installer PostgreSQL et tous les programmes pourraient l'utiliser ensemble.

Cela pourrait être encore plus flexible. Je ne sais pas s'il y a quelque chose de similaire pour les programmes natifs, mais pour les programmes Java, vous pouvez utiliser quelque chose comme JDO pour stocker les données. JDO est un framework de persistance standardisé, qui est agnostique de banque de données. Il est possible d'utiliser RDBMS, XML, bases de données de bases de données ou autre. Le programme est presque 100% indépendant de la façon de stocker des données! Vous pouvez configurer la façon dont le programme utilise pour stocker des données via un fichier de configuration.

Si tous les programmes utilisaient JDO, tous les programmes pourraient être configurés pour utiliser le même magasin de données, sans être fixés à un magasin spécial. Cela simplifierait le paysage logiciel sur une telle machine.

Ceci n'est pas limité aux banques de données. Il y a peut-être d'autres logiciels redondants sur ce système, qui sont encore plus intégrés dans le logiciel et ne peuvent pas être configurés de l'extérieur, faute d'abstraction.

Y a-t-il des approches connues pour intégrer tous les différents logiciels de façon plus homogène?

Merci à l'avance

Répondre

0

Il a été essayé.

En fait, il a été essayé encore et encore.

Mais pour le faire fonctionner, vous devez

  1. Anticiper tous les cas d'utilisation possibles. Parce que si vous ne faites pas rouler les leurs plutôt que d'attendre que vous ajoutiez une nouvelle fonctionnalité pour répondre à leurs besoins.
  2. Gérez tous ces cas d'utilisation avec une efficacité maximale. Parce que si vous ne le faites pas, quelqu'un va rouler le sien plutôt que d'attendre que vous répariez un casse-tête dont il a besoin mais court lentement dans votre implémentation.
  3. Contrôlez la plate-forme, ou incluez tout le monde dans le processus (et gardez-les heureux!). Parce que si vous ne faites pas rouler les gens à la recherche d'un avantage concurrentiel.

Commencez-vous à voir l'échelle de l'entreprise? Voyez-vous à quel point il serait difficile de progresser en informatique?

En fait, il est assez difficile de le faire seulement dans un projet de taille moyenne.

+0

Oui, je vois. Peut-être que la normalisation est la clé. Comme JDO, qui est une norme. Donc, tous les développeurs pourraient utiliser JDO. Ils l'ont compris, c'est moins de travail pour eux, car ils n'ont pas à se soucier de tous les détails. JDO s'en occupe. Ou peut-être devrait-il y avoir une interface de banque de données abstraite construite dans les systèmes d'exploitation. Quelque chose comme ODBC, mais plate-forme et datastore indépendant. – PageFault

+0

@PageFault: [Aujourd'hui xkcd] (http://xkcd.com/801/) est curieusement approprié. La JVM ne couvre pas tous les cas d'utilisation, donc le JDO ne couvre pas tous les cas d'utilisation (et surtout ne les couvre pas tous d'une efficacité maximale) donc il * ne peut pas * être universel. Oui, la programmation sur une machine virtuelle adaptée est une bonne idée et de plus en plus adéquate pour la plupart des tâches, mais elle ne peut pas être la fin tout et être tout. – dmckee