A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Qué es ActivityPub

Símbolo de ActivityPub en turquesa Definición:

ActivityPub es un protocolo abierto para redes sociales descentralizadas que define cómo las aplicaciones y los servidores representan e intercambian actividades como publicar, seguir, compartir o indicar que gusta un contenido. Fue publicado como recomendación del World Wide Web Consortium, W3C, en 2018.

El protocolo facilita que servicios administrados de forma independiente puedan comunicarse. Es una base técnica del fediverso, pero no constituye por sí mismo una red social, una plataforma ni un directorio universal de servidores.

Cómo funciona ActivityPub

La unidad principal es el actor, que puede representar una persona, un servicio, una aplicación, un grupo o una organización. Cada actor tiene una dirección propia en la web y dispone de puntos de recepción y publicación que permiten intercambiar actividades con otros sistemas compatibles.

La bandeja de salida, denominada outbox, reúne las actividades creadas por el actor. Cuando una cuenta publica contenido, su servidor puede generar una actividad Create que contiene o referencia el objeto publicado. La publicación y la actividad no son exactamente lo mismo: una describe el contenido y la otra expresa la acción realizada sobre él.

La bandeja de entrada, o inbox, recibe las actividades destinadas a un actor. El servidor de origen determina los destinatarios y envía la actividad a los servidores correspondientes. Cada receptor valida la petición, aplica sus propias reglas y decide cómo guardar o mostrar la información.

La especificación del W3C utiliza HTTP y el formato ActivityStreams 2.0 para describir estos intercambios. La entrega federada evita que todas las cuentas y publicaciones tengan que almacenarse en una única base de datos central.

Dos formas de comunicación

ActivityPub contempla dos interfaces relacionadas, aunque los proyectos no tienen que ofrecer ambas de la misma manera:

  • Cliente a servidor: permite que una aplicación cliente actúe sobre la cuenta de una persona, por ejemplo para crear una publicación o consultar su bandeja de salida.
  • Servidor a servidor: permite que servidores diferentes entreguen actividades entre sí y constituye la parte más visible de la federación.

Muchas plataformas se centran en la comunicación entre servidores y utilizan sus propias API para las aplicaciones móviles o web. Por eso dos servicios pueden federarse mediante ActivityPub sin compartir el mismo cliente ni admitir todas las operaciones definidas para la interfaz cliente-servidor.

Actores y actividades

ActivityPub emplea un vocabulario común para expresar acciones sociales. Entre las actividades más habituales se encuentran las siguientes:

  • Create: comunica la creación de una publicación u otro objeto.
  • Follow: solicita seguir a otro actor.
  • Accept y Reject: aceptan o rechazan una solicitud, como el seguimiento de una cuenta.
  • Like: expresa una reacción positiva sobre un objeto.
  • Announce: vuelve a difundir un objeto, de forma similar a compartir una publicación.
  • Update y Delete: comunican cambios o la retirada de un objeto.

Los objetos y actividades se representan mediante ActivityStreams 2.0, un modelo de datos que utiliza JSON-LD. El vocabulario incluye tipos como personas, notas, imágenes, vídeos y colecciones, y puede ampliarse con propiedades adicionales cuando una aplicación necesita expresar funciones propias.

La dirección @usuario@dominio utilizada por numerosos servicios suele resolverse mediante WebFinger antes de localizar el actor de ActivityPub. WebFinger es una especificación independiente: ayuda a descubrir la identidad asociada a un dominio, pero no sustituye el intercambio de actividades.

Interoperabilidad en el fediverso

La interoperabilidad práctica depende de que dos aplicaciones comprendan las actividades y los objetos que intercambian. Utilizar ActivityPub crea una base común, pero no obliga a que todas las plataformas tengan la misma interfaz, los mismos formatos ni idénticas funciones.

Mastodon se orienta a publicaciones y conversaciones; Pixelfed, a contenido visual; PeerTube, a vídeo; y Friendica, a redes sociales con gestión de contactos. Estos servicios pueden intercambiar actividades compatibles aunque presenten el contenido de forma distinta.

Una cuenta de Mastodon puede seguir un perfil de Pixelfed o un canal de PeerTube y recibir algunas de sus publicaciones. La compatibilidad parcial explica que determinadas encuestas, ediciones, reacciones, audiencias o funciones de moderación se muestren de manera diferente o no estén disponibles en la aplicación receptora.

No existe un índice que contenga todas las cuentas y publicaciones. Cada servidor descubre información mediante las relaciones federadas de sus usuarios, las búsquedas resueltas y las actividades recibidas. Por ello, dos instancias pueden conocer conjuntos distintos de contenido.

Alcance del protocolo

ActivityPub define el intercambio de actividades, pero no establece un sistema único de moderación, una política de contenidos, un modelo de negocio ni una administración central. Cada servicio y cada servidor conserva sus propias normas y decisiones operativas.

La federación tampoco equivale a confidencialidad. Los destinatarios incluidos en una actividad orientan su distribución, pero los servidores participantes procesan la información y pueden conservar registros o copias. ActivityPub no aporta por sí solo cifrado de extremo a extremo.

Las actividades Update y Delete permiten comunicar modificaciones y eliminaciones. Su recepción no garantiza que desaparezcan todas las copias remotas, capturas, archivos o referencias que ya existan fuera del servidor de origen.

La autenticación de peticiones, la autorización, la prevención del abuso y la gestión de bloqueos dependen de la implementación y de otras piezas técnicas. La seguridad efectiva surge del protocolo junto con la configuración, el software y las políticas de los servidores.

Diferencias frente al fediverso

ActivityPub forma parte de una arquitectura compuesta por capas diferentes que conviene separar:

  • ActivityPub: protocolo que define API y entrega de actividades sociales.
  • Fediverso: ecosistema de servicios y servidores federados, algunos de los cuales pueden emplear otros protocolos.
  • ActivityStreams: modelo y vocabulario utilizado para representar actores, objetos y actividades.
  • WebFinger: mecanismo de descubrimiento utilizado habitualmente para resolver identidades basadas en un dominio.
  • Aplicaciones federadas: programas como Mastodon, Pixelfed, PeerTube o Friendica que implementan el protocolo con funciones distintas.

La relación complementaria entre estos elementos permite que productos diferentes intercambien información sin convertirse en una sola plataforma. ActivityPub aporta reglas de comunicación; el fediverso es el entorno social y técnico que se forma cuando numerosos servicios independientes las utilizan.