El propio Oracle copió la API de Amazon S3, y esto es completamente normal

El propio Oracle copió la API de Amazon S3, y esto es completamente normal
Los abogados de Oracle comparan la reimplementación de la API de Java en Android con copiar el contenido de “Harry Potter”. pdf

La Corte Suprema de Estados Unidos conocerá un caso importante a principios de este año. Oráculo frente a Google, que determinará el estatus legal de la API según la ley de propiedad intelectual. Si el tribunal se pone del lado de Oracle en su demanda multimillonaria, podría sofocar la competencia y consolidar el dominio de los gigantes tecnológicos, incluido quizás el propio Google.

Al mismo tiempo, el negocio de Oracle se basó inicialmente en la implementación del lenguaje de programación SQL desarrollado por IBM, y ahora la empresa ofrece un servicio en la nube con una API de Amazon S3, y esto es completamente normal. La reimplementación de API ha sido una parte natural del desarrollo de la informática desde el comienzo de la industria.

Oracle acusa a Google de copiar ilegalmente la API de Java, incluida una lista de comandos con nombre vinculados a estructuras gramaticales. El sistema operativo Android es específicamente compatible con la API de Java para facilitar a los programadores de Java la transferencia de software y conocimientos a la nueva plataforma. Para hacer esto, Android copió exactamente los comandos API de Java y las estructuras gramaticales correspondientes. Argumento Oracle es que tal "reimplementación" de la API de Java se puede comparar con copiar el trabajo de un autor, como la novela literaria "Harry Potter" (este un ejemplo real dado por los abogados de Oracle), y Google viola los derechos de autor de Oracle sobre los nombres y estructuras de los comandos de la API de Java.

Pero las API de Java no son las únicas API y Android no es la única reimplementación. En la industria de TI actual, las API son omnipresentes y su reintroducción es fundamental para mantener la competencia y evitar que las grandes empresas monopolicen. dijo Charles Duane es director de políticas de tecnología e innovación del R Street Institute.

Duane pone el ejemplo de la popular plataforma de almacenamiento Amazon S3. Para permitir la escritura y recuperación de archivos desde S3, Amazon ha desarrollado una herramienta integral, API detallada para interactuar con el servicio. Por ejemplo, para obtener una lista de archivos guardados (Lista de objetos) enviamos un comando GET especificando los parámetros de host y tipo tipo de codificación, ficha de continuación и fecha-x-amz. Para funcionar con Amazon S3, el software debe utilizar exactamente estos y muchos otros nombres de parámetros específicos.

GET /?Delimiter=Delimiter&EncodingType=EncodingType&Marker=Marker&MaxKeys=MaxKeys&Prefix=Prefix HTTP/1.1
Host: Bucket.s3.amazonaws.com
x-amz-request-payer: RequestPayer

Amazon es el líder indiscutible en el mercado de servicios en la nube y sus competidores ofrecen reimplementaciones de la API S3, mientras que tienen que imitar nombres de comandos, etiquetas de parámetros y prefijos de tipo. x-amz, estructura gramatical y organización general de la API de S3. En otras palabras, todo lo que Oracle afirma tiene derechos de autor.

Entre las empresas que ofrecen una copia de la API de Amazon S3 se encuentran también está el propio Oracle. Por motivos de compatibilidad, la API de compatibilidad de Amazon S3 copia numerosos elementos de la API de Amazon, hasta las etiquetas x-amz.

El propio Oracle copió la API de Amazon S3, y esto es completamente normal

Oracle afirma que la legalidad de sus acciones se basa en la licencia de código abierto Apache 2.0, que permite la copia y modificación de código de forma gratuita. Por ejemplo, SDK de Amazon para Java También viene con una licencia Apache 2.0.

Pero la pregunta es si la ley de propiedad intelectual se aplica siquiera a cosas como las API. Esto es lo que debe determinar el Tribunal Supremo.

¿Quién inventó la API?

El término y concepto de "biblioteca de subrutinas" apareció por primera vez en el libro Problemas de planificación y codificación para un instrumento de computación electrónica - Parte II, Volumen III (Instituto de Estudios Avanzados de la Universidad de Princeton, 1948) de Herman Goldstein y John von Neumann. copiar en archive.org. Contenido del tercer volumen:

El propio Oracle copió la API de Amazon S3, y esto es completamente normal

Esta es la primera descripción de una metodología de programación para computadoras que almacena programas en memoria (anteriormente esto no existía). Se distribuyó ampliamente entre las universidades, que en ese momento intentaban crear sus propias computadoras. Y lo más importante, el libro contiene una idea clave: la mayoría de los programas utilizarán operaciones comunes y las bibliotecas con rutinas reducirán la cantidad de código nuevo y errores.. Maurice Wilkes perfeccionó esta idea y la puso en práctica en la máquina EDSAC, por la que recibió el Premio Turing en 1967.

El propio Oracle copió la API de Amazon S3, y esto es completamente normal
La biblioteca de subrutinas EDSAC está a la izquierda.

El siguiente paso fue crear funciones de orden superior e interfaces de software completas, como hicieron Maurice Wilkes y David Wheeler en Preparación de programas para la computadora digital electrónica (1951).

El término Interfaz del programa de aplicación (API) apareció a finales de los años 60.

Autor de la presentación "Una breve historia subjetiva de API" Joshua Block ofrece varios ejemplos de interfaces de programación, conjuntos de instrucciones y bibliotecas de subrutinas: cómo se crearon y utilizaron posteriormente. La idea es que la reutilización es el objetivo de una API. Para esto fueron creados en primer lugar. Y los desarrolladores siempre han tenido la oportunidad de copiar y rehacer las API de otras personas:

API
Creador
Año
Reimplementación
Año

biblioteca FORTRAN
IBM
1958
Univac
1961

IBM S/360 ISA
IBM
1964
Amdahl Corp.
1970

Biblioteca C estándar
AT&T/laboratorios Bell
1976
Mark Williams Co.
1980

llamadas al sistema Unix
AT&T/laboratorios Bell
1976
Mark Williams Co.
1980

Secuencias de salida de VT100
Diciembre
1978
Heathkit
1980

BIOS de PC IBM
IBM
1981
Phoenix Technologies
1984

CLI de MS-DOS
Microsoft
1981
Proyecto FreeDOS
1998

Conjunto de comandos AT de Hayes
Hayes Micro
1982
Automatización de anclajes
1985

PostScript
adobe
1985
GNU/GhostScript
1988

PYME
Microsoft
1992
Proyecto Samba
1993

Win32
Microsoft
1993
Proyecto Vino
1996

Bibliotecas de clases Java 2
Dom
1998
Google/Android
2008

API web deliciosa
Deliciosa
2003
Pizarra
2009

Fuente: "Una breve historia subjetiva de API"

Copiar y reutilizar API (bibliotecas, conjuntos de instrucciones) no solo es correcto, sino que esta metodología de programación está directamente recomendada en los cánones de la informática. Incluso antes de copiar las interfaces de programación de S3, el propio Oracle lo hizo muchas veces. Además, el negocio de Oracle se basó inicialmente en la implementación del lenguaje de programación SQL desarrollado por IBM. El primer producto estrella de Oracle fue un DBMS, copiado en gran medida de IBM System R. En este caso, estamos hablando de la reimplementación de SQL como una "API estándar" para un DBMS.

Imponer derechos de propiedad intelectual a las API puede crear un campo minado legal que afecta a todos. Las API implementan y otros servicios en la nube. Muchos estándares técnicos, como los protocolos Wi-Fi y de Internet, incluyen API. Las interfaces de programación necesariamente se vuelven a implementar de alguna forma en cada computadora y servidor de Internet. La teoría de los derechos de autor de Oracle puede hacer que casi cualquier cosa que haga con su computadora sea ilegal.

Para evitar estas consecuencias de gran alcance, Oracle y el tribunal de apelaciones que confirmó sus argumentos intentaron limitar la infracción de derechos de autor a ciertas reimplementaciones de API que son "incompatibles" con el original. Pero también reimplementaciones parciales son comunes. Incluso en su copia de la API S3, Oracle señala numerosas "diferencias" e incompatibilidades con las API originales de Amazon.

El principal peligro de la demanda de Oracle es que podría impedir que las empresas de tecnología más pequeñas creen versiones de sistemas que sean compatibles con plataformas dominantes como S3. Sin dicha compatibilidad, los programadores quedarán efectivamente excluidos de las ofertas de esta empresa.

Los representantes de la industria y los desarrolladores sólo pueden esperar que aquí prevalezca la razón y Los jueces conocen los conceptos básicos de la programación..

Fuente: habr.com

Añadir un comentario