O próprio Oracle copiou a API do Amazon S3, e está perfeitamente bem


Advogados da Oracle comparam a reimplementação da API Java no Android com a cópia do conteúdo de Harry Potter, pdf

No início deste ano, a Suprema Corte dos EUA considerará um importante caso da Oracle contra o Google , que determinará o status legal da API de acordo com a lei de propriedade intelectual. Se o tribunal tomar o lado da Oracle em seu processo de bilhões de dólares, poderá sufocar a concorrência e consolidar o domínio de gigantes da tecnologia, possivelmente incluindo o próprio Google.

Ao mesmo tempo, o negócio da Oracle foi originalmente desenvolvido com a implementação da linguagem de programação SQL desenvolvida pela IBM, e mesmo agora a empresa oferece um serviço em nuvem com APIs do Amazon S3, e isso é completamente normal. A reimplementação da API tem sido uma parte natural do desenvolvimento da ciência da computação desde o início da indústria.

A Oracle acusa o Google de copiar ilegalmente a API Java, incluindo uma lista de comandos nomeados vinculados a estruturas gramaticais. O sistema operacional Android é especificamente compatível com a API Java, para facilitar aos programadores Java a transferência de software e conhecimento para a nova plataforma. Para fazer isso, o Android copiou com precisão os comandos e as estruturas gramaticais da API Java correspondentes. O argumento da Oracle é que essa "reimplementação" da API Java pode ser comparada à cópia do trabalho de um autor, como o romance literário Harry Potter (este é um exemplo real citado pelos advogados da Oracle ), e o Google viola os direitos autorais da Oracle sobre os nomes dos comandos e estruturas Java API

Mas a API Java não é a única API e o Android não é a única reimplementação. Na indústria moderna de TI, as APIs são onipresentes e a reimplementação é fundamental para manter a concorrência, a fim de evitar o monopólio de grandes empresas, disse Charles Duan, diretor de política de tecnologia e inovação do R Street Institute.

Duan dá um exemplo da popular plataforma de armazenamento Amazon S3. Para permitir a gravação e a extração de arquivos do S3, a Amazon desenvolveu uma API abrangente e detalhada para interagir com o serviço. Por exemplo, para obter uma lista de arquivos salvos ( ListObjects ), enviamos um comando GET com o host e os parâmetros do tipo tipo de codificação , token de continuação e x-amz-date . Para trabalhar com o Amazon S3, o software deve usar exatamente esses e muitos outros nomes 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 

A Amazon é uma líder clara no mercado de serviços em nuvem, e seus concorrentes oferecem a reimplementação da API S3, enquanto eles precisam imitar nomes de equipes, tags de parâmetros, prefixos x-amz , estrutura gramatical e organização geral da API S3. Em outras palavras, tudo o que, de acordo com a Oracle, é protegido por direitos autorais.

Entre as empresas que oferecem uma cópia da API do Amazon S3, existe o próprio Oracle . Para compatibilidade, a API de compatibilidade do Amazon S3 copia vários elementos da API do Amazon, até tags x-amz.



A Oracle garante que a legalidade de suas ações se baseie na licença de código aberto Apache 2.0, que permite cópia e modificação gratuitas do código. Por exemplo, o Amazon SDK para Java também vem com uma licença Apache 2.0.

Mas a questão é se a lei de propriedade intelectual é geralmente aplicável a objetos como a API. É isso que a Suprema Corte deve estabelecer.

Quem inventou a API?


O termo e o conceito de uma “biblioteca de sub-rotinas” apareceram pela primeira vez no livro de Hermann Goldstein e John von Neumann, “Planejando e codificando problemas para uma ferramenta de computação eletrônica” - Parte II, Volume III (Instituto de Pesquisa Avançada da Universidade de Princeton, 1948), cópia de arquivo .org . O conteúdo do terceiro volume:



Esta é a primeira descrição de uma metodologia de programação para computadores com programas de armazenamento em memória (anteriormente não existia). Ela se espalhou amplamente pelas universidades, que na época tentavam criar seus próprios computadores. E o mais importante, o livro contém uma idéia-chave: a maioria dos programas usa operações comuns e as bibliotecas com rotinas reduzem a quantidade de novos códigos e erros . Essa idéia foi finalizada por Maurice Wilkes e posta em prática na máquina EDSAC, pela qual recebeu o Prêmio Turing de 1967.


A biblioteca de rotina EDSAC está à esquerda

O próximo passo foi criar funções de ordem superior e interfaces de software completas, que Maurice Wilkes e David Wheeler fizeram no livro "Preparando programas para um computador digital eletrônico" (1951).

O próprio termo Application Program Interface (API) apareceu em algum lugar no final dos anos 60.

O autor da apresentação " Uma Breve História Subjetiva da API" Joshua Block fornece vários exemplos de interfaces de programas, conjuntos de instruções e bibliotecas de subprogramas: como eles foram criados e usados ​​posteriormente. A idéia é que reutilizar é o significado da API. É por isso que eles foram criados em primeiro lugar. E os desenvolvedores sempre tiveram a oportunidade de copiar e refazer as APIs de outras pessoas:

APICriadorAnoRe implementaçãoAno
Biblioteca FORTRANIbm1958Univac1961
IBM S / 360 ISAIbm1964Amdahl corp.1970
Biblioteca Padrão CAT&T / Bell Labs1976Mark Williams Co.1980
Chamadas do sistema UnixAT&T / Bell Labs1976Mark Williams Co.1980
VT100 Esc SeqsDez1978Heathkit1980
IBM PC BIOSIbm1981Tecnologias Phoenix1984
CLI do MS-DOSMicrosoft1981Projeto FreeDOS1998
Conjunto de comandos Hayes ATHayes micro1982Automação de âncoras1985
PostScriptAdobe1985GNU / GhostScript1988
SMBMicrosoft1992Projeto Samba1993
Win32Microsoft1993Projeto Vinho1996
Bibliotecas de classes Java 2Sol1998Google / android2008
API da web deliciosaDelicioso2003Quadro de anúncios2009
Fonte: Uma Breve História Subjetiva da API”

Copiar e reutilizar APIs (bibliotecas, conjuntos de instruções) não é apenas correto, mas tal metodologia de programação é diretamente recomendada nos cânones da ciência da computação. Mesmo antes de copiar as interfaces de programação S3, a própria Oracle fazia isso várias vezes. Além disso, o negócio da Oracle foi originalmente desenvolvido com a implementação da linguagem de programação SQL desenvolvida pela IBM. O primeiro produto principal do Oracle foi o DBMS, amplamente copiado do IBM System R. Nesse caso, estamos falando sobre a reimplementação do SQL como uma "API padrão" para o DBMS.

A sobreposição de direitos de propriedade intelectual em APIs pode criar um campo minado legal do qual todos sofrerão. APIs também implementam outros serviços em nuvem . Muitos padrões técnicos, como protocolos Wi-Fi e Internet, incluem APIs. As interfaces do programa são necessariamente reimplementadas de alguma forma em cada computador e servidor na Internet. A Oracle Copyright Theory pode transformar quase tudo o que você faz com seu computador em um ato ilegal.

Para evitar essas conseqüências de longo alcance, a Oracle e o Court of Appeal, que sustentaram seus argumentos, tentaram limitar a violação de direitos autorais a apenas algumas reimplementações da API "incompatíveis" com o original. Mas reimplementações parciais também são comuns . Mesmo em sua cópia da API S3, a Oracle observou inúmeras “diferenças” e incompatibilidades com as APIs originais da Amazon.

O principal perigo do processo da Oracle é que ele pode impedir que pequenas empresas de tecnologia criem versões de sistemas compatíveis com plataformas dominantes, como o S3. Sem essa compatibilidade, os programadores serão praticamente bloqueados nas ofertas desta empresa.

Representantes e desenvolvedores da indústria só podem esperar que a mente triunfe e os juízes conheçam o básico da programação .

Source: https://habr.com/ru/post/pt482980/


All Articles