Como posso compartilhar dados em vários sites?


8

Estou tentando desenvolver um sistema simples para compartilhar dados em vários sites. Muitos deles são desenvolvidos em PHP, enquanto outros são desenvolvidos em Wordpress / Drupal. As informações redundantes estão espalhadas por vários sites e isso causou um problema no qual precisamos atualizar as informações em vários sites separadamente.

Estou tentando fornecer uma solução em que mesmo páginas estáticas possam obter dados compartilhados. Aqui está minha arquitetura proposta:

insira a descrição da imagem aqui

Estou fazendo isso para uma instituição acadêmica. Os dados variam de estruturas simples de taxas a políticas acadêmicas. Por exemplo, considere os custos acadêmicos.

Custos acadêmicos -> ug, pós-graduação, farmácia ... cada um dos departamentos terá uma estrutura de taxas categorizada por fora do campus, no campus ou no trabalho.

"Undergraduate": {
    "metaid": "0770",
    "Offcampus": {
      "FeesItems": {
        "comprehensive": {
          "label": "Comprehensive Fees",
          "value": "2,141"
      }
    }
  }
}

Para front end usando bigode, eles apenas precisam incluir os js e usar algo como abaixo para obter valores,

<td>{{Undergraduate.Offcampus.FeesItems.comprehensive.label}} </td>
<td>{{Undergraduate.Offcampus.FeesItems.comprehensive.value}}</td>

Minhas perguntas:

  • Esse design é escalável?

  • Como dar aos proprietários dos dados a capacidade de editar os dados?

  • Como armazenar os dados no SQL?


Por _ "armazenar os dados no SQL", você quer dizer o Microsoft SQL-Server RDBMS ou qualquer RDBMS?
Tulains Córdova

Respostas:


1

Em vez de tentar responder a toda a pergunta, deixe-me oferecer uma maneira concreta de compartilhar dados: basta usar qualquer mecanismo (jQuery, ajax) disponível na sua linguagem de implementação que permita chamar seu servidor da web. Use uma chamada GET para obter dados constantes com o cache automático. Use as chamadas POST / PUT para obter / definir dados variáveis. Você também pode usar outros métodos de solicitação, como DELETE, para excluir o armazenamento de dados. Consulte Wikipedia: Métodos de solicitação Para muito mais chamadas de dados para criar sua API de dados compartilhados. A página que você chama não precisa ter HTML; pode ser um tipo de servidor de dados que você escreve em qualquer idioma disponível no servidor.


0

Esse design é escalável?

Todos os designs são potencialmente escaláveis. Uma regra antiga (e desatualizada) é adicionar mais recursos de hardware , e é isso.

Infelizmente, essa regra não funciona muito bem no mundo real (aquele em que pagamos pelos recursos que disponibilizamos para executar o software, mesmo que nas nuvens).

Nesse caso, o design do software é absolutamente escalável, mas talvez a pergunta seja: isso é sustentável?

Como prevenir o estresse

No contexto de um provedor de dados (público ou por meio de autenticação), talvez seja mais prudente incluir um sistema de cache. Para evitar uma situação de alta carga no banco de dados, seria apropriado adicionar um editor ao seu design.

Estou assumindo que o seu "JSON Builder" é um componente que interpreta a solicitação do cliente, lê dados do banco de dados e finalmente envia a resposta.

Nesse caso, é fácil entender que, quando você precisar dimensionar o sistema, o primeiro a solicitar recursos será o banco de dados.

Distribuir

Adicionando um sistema de cache, provavelmente os novos recursos serão alocados aos editores. Um publicador pode ser um sistema de dados desconectados, que recebe (ou busca) informações sobre o status dos dados que possui.

Nesse ponto, é fácil considerar um editor como um " host de baixo custo " separado do sistema, distribuído (talvez até por meio da CDN), que usa um mecanismo para atualizar continuamente seus dados (mas a baixo custo para o banco de dados), para fornecer dados atualizados ao cliente.

Mecanismo: talvez um sistema simples de hash ou uma " data da última modificação " ainda mais simples

Como dar aos proprietários dos dados a capacidade de editar os dados?

A pergunta parece ter uma resposta simples. Eles precisarão de uma interface.

Como armazenar os dados em sql?

Os comentários estão certos, talvez seja offtopic


0

Q. Como disponibilizar dados para vários sites? A. Um serviço web de sua escolha. Você pode se comunicar com ele usando técnicas de site responsivas ou não responsivas. Não responsivo significa que você normalmente usa um sistema não baseado em ajax (postagem assíncrona de javascript) em que toda a página da Web é atualizada a cada chamada de seu serviço da web por meio de uma publicação de formulário ou pode usar o AJAX (Javascript, Jquery ou uma estrutura) do cliente para comunicar-se com o serviço da Web de forma assíncrona para obter dados ou atualizá-los.

Q. Como tornar os dados editáveis? A. Crie suas próprias páginas da web com formulários para editar os dados.

P. como armazenar os dados no SQL? R. Seguras (ou não seguras, se os dados não forem sensíveis ou estão sujeitos às leis de privacidade de proteção de dados) formam postagens no seu serviço da Web que são transformadas em inserção SQL, atualize as instruções dentro do funcionamento do seu serviço da Web.

Você sempre obtém algo "pronto para uso" para o serviço da Web, existem várias estruturas, etc., se você não é muito programador.


-2

Esse design é escalável?

Não, a menos que você hospede em um banco de dados MySQL na nuvem. O construtor JSON pode ser, depende de como você o codifica e da interface da web.

Como dar aos proprietários dos dados a capacidade de editar os dados?

Basta criar um aplicativo PHP CRUD com alguma estrutura, por exemplo, CakePHP etc.

Como armazenar os dados em sql?

Use o aplicativo CRUD para ter um JSON para / do conversor SQL. Cargas de exemplos online de PHP. JSON para PHP Array / MySQL e vice-versa.


essas declarações são meramente suas opiniões ou você pode apoiá-las de alguma forma?
mosquito

Sim e sim. Ele pode pesquisar no resto.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.