¿Cómo puedo compartir datos en varios sitios web?

8

Estoy intentando desarrollar un sistema simple para compartir datos en varios sitios web. La mayoría de ellos se desarrollan en PHP, mientras que algunos se desarrollan en Wordpress / Drupal. La información redundante se distribuye en varios sitios web y esto ha causado un problema en el que tenemos que actualizar la información en varios sitios web por separado.

Estoy tratando de proporcionar una solución donde incluso las páginas estáticas pueden obtener datos compartidos. Aquí está mi arquitectura propuesta:

Estoyhaciendoestoparaunainstituciónacadémica.Losdatosvaríandesdeestructurasdetarifassimpleshastapolíticasacadémicas.Porejemplo,considereloscostosacadémicos.

Costesacadémicos->ug,graduados,farmacias...cadaunodelosdepartamentostendráunaestructuradetarifasclasificadaporfueradelcampus,enelcampus,decercanías.

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

Para el uso frontal del bigote, solo tienen que incluir los js y usar algo como abajo para obtener los valores,

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

Mis preguntas:

  • ¿Es este diseño escalable?

  • ¿Cómo otorgar a los propietarios de datos la capacidad de editar los datos?

  • ¿Cómo almacenar los datos en SQL?

pregunta NEO 11.01.2014 - 20:23

4 respuestas

1

En lugar de intentar responder a la pregunta completa, permítame ofrecerle una forma concreta de compartir datos: simplemente use cualquier mecanismo (jQuery, ajax) disponible en su lenguaje de implementación que le permita llamar a su servidor web. Use una llamada GET para obtener datos constantes con almacenamiento en caché automático. Use una llamada POST / PUT para obtener / configurar datos variables. También puede utilizar otros métodos de solicitud, como BORRAR para eliminar el almacenamiento de datos. Consulte Wikipedia: Request Methods Para muchas más llamadas de datos para construir su API de datos compartidos. La página a la que llama no necesita tener ningún HTML en ella; puede ser un tipo de servidor de datos que se escribe en cualquier idioma del lado del servidor disponible.

    
respondido por el David Spector 12.06.2016 - 23:27
0
  

¿Es este diseño escalable?

Todos los diseños son potencialmente escalables. Una regla antigua (y obsoleta) es agregar más recursos de hardware , y eso es todo.

Lamentablemente, esta regla no funciona muy bien en el mundo real (la que pagamos por los recursos que ponemos a disposición para ejecutar el software, incluso si está en las nubes).

En este caso, el diseño del software es absolutamente escalable, pero tal vez la pregunta sea: ¿ es sostenible?

Cómo prevenir el estrés

En el contexto de un proveedor de datos (público o mediante autenticación), quizás sea más prudente incluir un sistema de caché. Para evitar una situación de alta carga en la base de datos, sería apropiado agregar un editor en su diseño.

Supongo que su "Generador JSON" es un componente que interpreta la solicitud del cliente, lee los datos de la base de datos y finalmente envía la respuesta.

Si es así, es fácil comprender que cuando necesite escalar el sistema, el primero en solicitar recursos será la base de datos.

Distribuir

Al agregar un sistema de caché, probablemente los nuevos recursos se asignarán a los editores. Un editor puede ser un sistema de datos desconectados, que recibe (o obtiene) información sobre el estado de los datos que posee.

En este punto, es fácil considerar a un editor como un " host de bajo costo " separado del sistema, distribuido (tal vez incluso a través de CDN), que utiliza un mecanismo para actualizar continuamente sus datos. (pero a bajo costo para la base de datos), para proporcionar datos nuevos al cliente.

Mecanismo: Tal vez un simple sistema hash, o una " última fecha de modificación "

incluso más simple
  

¿Cómo proporcionar a los propietarios de datos la capacidad de editar los datos?

La pregunta parece tener una respuesta simple. Necesitarán una interfaz.

  

¿Cómo almacenar los datos en sql?

Los comentarios son correctos, tal vez sea offtopic

    
respondido por el marcocs 14.01.2014 - 20:44
0

Q. ¿Cómo hacer que los datos estén disponibles para múltiples sitios web? A. Un servicio web de su elección. Puede comunicarse con él utilizando técnicas de sitio web sensibles o no sensibles. No responde significa que usualmente utiliza un sistema no basado en ajax (javascript asynchronious post) donde se actualiza la página web completa con cada llamada de su servicio web a través de un formulario o puede usar AJAX (Javascript del lado del cliente, Jquery o un framework) para comunicarse con el servicio web de forma asincrónica para obtener datos o actualizarlos.

Q. ¿Cómo hacer editables los datos? A. Cree sus propias páginas web con formularios para editar los datos.

Q. ¿Cómo almacenar los datos en SQL? A. Formularios seguros (o no seguros si los datos no son confidenciales o sujetos a las leyes de privacidad de protección de datos) en su servicio web que se convierten en inserciones SQL, estados de actualización dentro del funcionamiento de su servicio web.

Siempre se obtiene algo "listo para usar" para el servicio web, hay varios marcos de trabajo, etc. si no eres un gran programador.

    
respondido por el user236029 05.07.2016 - 22:07
-2

¿Es este diseño escalable?

No, a menos que alojes en una base de datos MySQL en la nube. JSON Builder puede ser, depende de cómo lo codifiques y de la interfaz web.

¿Cómo otorgar a los propietarios de datos la capacidad de editar los datos?

Simplemente cree una aplicación PHP CRUD con algún marco, por ejemplo, CakePHP, etc.

¿Cómo almacenar los datos en sql?

Use la aplicación CRUD para tener un convertidor de JSON a / desde SQL. Cargas de ejemplos de PHP en línea. JSON a PHP Array / MySQL y viceversa.

    
respondido por el user127379 15.01.2014 - 13:50

Lea otras preguntas en las etiquetas