Voy a ser la creación de una interna de la aplicación para el iPhone y el iPad que hará un seguimiento de las llamadas de ventas, las citas asociados, fotos y dibujos para esas citas. Todavía estoy en la fase de diseño conceptual y estoy tratando de leer sobre las diferentes maneras de comunicarse entre mis app y el servicio web. Obviamente, ya que este será utilizado en su mayoría a través de 3G o … Borde quiero un protocolo eficiente por lo que mi reacción instintiva es permanecer lejos de XML basado en cosas como XML-RPC o SOAP. Me gustaría usar PHP y MySQL en el servidor y el plan sobre el uso de los Datos de los núcleos en iOS.

Así que tengo un par de preguntas específicas:

  1. ¿Qué programa puedo utilizar para el rendimiento?
  2. Esquema de lo que se debe utilizar para la facilidad de trabajar con en el servidor?
  3. Esquema de lo que se debe utilizar para la facilidad de trabajar con iOS?
  4. Esquema de lo que debo usar considerar el proyecto como un todo?
  5. Es el uso de un XML esquema basado mejor a pesar de la sobrecarga de la red? Por qué?
  • Estoy interesado en cuanto al resultado de esta discusión, voy a estar de frente a la misma situación bastante pronto.
  • Si estás decidido a evitar XML, es posible que desee investigar JSON. Hay bibliotecas para el manejo de JSON en Objective-C.
  • Yo no soy la intención de evitar XML, de hecho, a partir de la lectura ya he hecho yo al igual que la RPC-XML sin embargo soy consciente de que tendrá un costo de ancho de banda. Así que estoy interesado en ver si el costo vale la pena el uso de XML, así como qué tipo de esquema sería mejor y / o más fácil.
  • No es sólo que XML es beefier de JSON, también es más difícil de analizar (memoria, tiempo) de JSON en el dispositivo.
  • Si los datos es enorme, a continuación, el objeto jSon puede tomar una gran cantidad de memoria en el dispositivo, mientras que el uso de algunos de los analizadores se pueden analizar sólo trozos de código xml sobre la marcha, con el consiguiente ahorro de memoria en el dispositivo.
InformationsquelleAutor jamone | 2010-06-30

2 Comentarios

  1. 39

    Dada la forma en que usted ha pedido varias preguntas que probablemente cuenta de que la solución definitiva va a ser un acto de equilibrio entre los diferentes objetivos.

    1: es necesario definir el concepto de «rendimiento» mejor. Estoy asumiendo que usted se refiere a la transmisión de la red de tiempo que significa mantener la latencia del servidor bajo y el número de bytes transmitidos bajo. El último es, probablemente, un binario personalizado protocolo de cable que también ha sido analizado por la compresibilidad y la compresión aplicada cuando proceda (por ejemplo, repite cadenas o secuencias). La desventaja de este protocolo es que es probable que sea más difícil de código en el servidor & cliente ya que no será capaz de utilizar el SDK de apoyo para la normalización de las codificaciones, y menos cuidadosamente diseñado protocolos binarios tienden a ser frágiles para apoyo a los futuros cambios y extensiones para su aplicación.

    También debe considerar cómo se definen las transacciones de su protocolo, incluso con una codificación eficiente si su protocolo requiere de muchos viajes de ida y vuelta frente a un único viaje de ida, será lento.

    Por último, dependiendo del tamaño de los datos que está enviando, la sobrecarga de una codificación puede ser irrelevante en comparación con el tamaño de los datos.

    Recomiendo pegarse con un estándar de formato de codificación que puede ser analizado con el soporte de la biblioteca, que limita el campo de los dos principales gramáticas: XML o JSON.

    2: XML y JSON ambos estén bien apoyados en el servidor de marcos. Cuando el uso de XML services recomiendo un RESTO patrón de estilo como son generalmente fáciles de construir y usted no tiene que conformarse con su aplicación al de otro estilo.

    Me quedaría lejos de los servicios web basados en SOAP aunque la construcción de ellos puede estar bien apoyado (especialmente en las plataformas de Windows), debido a la complejidad de realizar una completa basados en SOAP analizar en el cliente móvil es alta y no se admite también allí. No me parece que genera automáticamente la serialización de objetos de WSDL compiladores a ser tan grande de un triunfo para ahorrar tiempo a la hora de la codificación, que normalmente es bastante fácil para serializar un DESCANSO de estilo XML o incluso a menudo más simple para JSON.

    3: iOS soporta un built-en SAX estilo XML parser, y hay una variedad de bibliotecas de clases disponibles que apoyan en la memoria DOM implementaciones con diferentes características y niveles de velocidad. Elige el mejor para sus necesidades. Yo personalmente prefiero TBXML que es rápido, bastante ligero, y fácil de programar, pero porque no validar los esquemas y es un árbol de la memoria, no es apropiado en algunas situaciones. Aquí está un tiroteo de iOS XML rendimiento de la biblioteca.

    Hay varios JSON bibliotecas disponibles para iOS si Google alrededor. O mira en esta respuesta.

    JABÓN no está bien apoyado y no están limitadas biblioteca de decisiones. Usted puede siempre a mano analizar el JABÓN respuestas generadas por un servidor, pero es frágil a los cambios del lado del servidor que son legales JABÓN (por ejemplo, diferentes prefijos de espacio de nombres) que podría romper un codificados en XML parser.

    4: Difícil de contestar sin saber más acerca de su proyecto y sus detalles, pero me gustaría que se inclinan hacia un JSON o XML simple basado en la codificación porque: ambos son generalmente fáciles de programa en el cliente y el servidor, que tanto se puede hacer con una eficiencia razonable en el cable, y es probable que sea extensible para la futura aplicación de iteraciones.

    JSON tiene ventajas de ser un poco más sencillo de analizar, puede ser menos prolijo, y también puede ser más fácil para volver a la tarea para otros fines, tales como la construcción de un cliente web Ajax en la parte superior de sus servicios.

    5: XML vs JSON en comparación con las otras codificaciones? Creo que esto es una preferencia personal. XML puede ser más auto-descripción de JSON pero es probable que sea más trabajo para analizar. JSON puede ser menor sobrecarga en raw bytes y es fácil de analizar. De nuevo la codificación de sobrecarga puede ser significativo o puede ser insignificante, dependiendo del tamaño de su contenido. También puede aplicar la compresión externa en cualquier caso.

    • Muy completa la respuesta con un excelente consejo.
    • Wow, esa es una respuesta completa. No ves que muchos de los que están tan bien hecho. Gracias. Creo que es JSON vs XML, he hecho el análisis de XML en el iphone antes y así iknow cómo va eso, creo que voy a tratar de una simple aplicación de prueba para comparar JSON vs XMl, y tiene que comparar el rendimiento con mis datos reales. Esto me dará una oportunidad de tratar de trabajar con JSON analizar y ver lo que me gusta. Me doy cuenta de una costumbre formato binario es más pequeño, pero prefiero que se adhieren a los estándares. Gracias de nuevo.
    • Después de experimentar un poco me decidí a ir con JSON, utilizando JSON firmware de http://code.google.com/p/json-framework/ es tan simple de usar tanto el cliente como el servidor.

Dejar respuesta

Please enter your comment!
Please enter your name here