+2

A importância da interoperabilidade.

criado por Rafael Ferreira Silva em 18/08/2004 11:05pm
Interoperabilidade é a capacidade de um sistema(informatizado ou não) de se comunicar de forma transparente(ou o mais próximo disso) com outro sistema (semelhante ou não). Para um sistema ser considerado interoperacionalizado é muito importante que ele trabalhe com padrões abertos. Seja um sistema de portal, seja um sistema educacional ou ainda um sistema de e-commerce, hoje em dia se caminha cada vez mais para a criação de padrões para sistemas.

Por mais que possamos pensar num "sistema revolucionário" toda vez que vamos desenvolver um novo sistema, é bom ter sempre em mente que alguém já passou por isso um dia, e essa pessoa também teve a idéia de fazer um "sistema revolucionário". O que fazer então? Você tem duas opções: optar por um sistema pronto (na maioria das vezes sem atender suas necessidades) ou desenvolver um próprio.

Se a sua opção for a primeira, você deve ter em mente que, por mais simples que seja o uso desse sistema em um dado momento, um dia ele poderá precisar se comunicar com outro sistema. Portanto, é bom que se escolha um sistema que trabalhe com padrões abertos, pois assim será mais fácil no momento em que você precisar interligar seus sistemas.

No entanto se a sua opção foi a segunda(desenvolver um próprio sistema), é hora de pensar no tipo do sistema que você deseja criar. Seja qual for a finalidade do seu sistema, deve haver um padrão aberto que define como implementar isso que você deseja criar. Por exemplo, digamos que você vá criar um sistema de notícias para o seu site. Ao criar esse sistema, você talvez pense que ele só será usado no seu site, mas digamos que no futuro você deseja liberá-lo com uma licença qualquer para que outras pessoas o usem. Pois bem, essas pessoas que um dia vão usar o seu sistema, talvez já tenham outros sistemas que elas desejem que se integrem com o que você desenvolveu e aí nós temos um problema: o seu sistema de notícias "conversa" em algum padrão aberto? Se não, provavelmente ele estará fadado ao fracasso, ou, na melhor das hipóteses, ele será usado por pessoas que não estão interessadas em contribuir para o desenvolvimento, provavelmente usando-o de forma muita restrita. Para um desenvolvedor que tem uma visão de Software Livre, ou que gosta de saber que seu software está sendo de alguma utilidade, isso é, no mínimo, frustrante.
Eu digo isso por experiência própria, pois como todo iniciante um dia já produzi software sem me preocupar com isso.

Alguns projetos começaram do nada, sem nenhum padrão e hoje caminham para uma padronização, porém de forma muito dolorosa e embaraçosa porque um dia não pensaram que isso seria importante, ou porque a emergência não deixou que fosse implementado. É o caso do PHPNuke, por exemplo. Apesar de, atualmente, apresentar alguma pouca padronização (por exemplo no que se refere a exportação de notícias em formato RSS), ainda tem muito a aprender.</p>

Comentários:

Mostrando 1 - 6 de 6 comentários
Olá Murilo,

Obrigado pelo seu comentário.

Penso bem parecido com você, quando dizes que muitas empresas(principalmente) optam por uma outra linguagem qualquer(Java é a mais comum), justamente por essa "obrigar" a se utlizar certos padrões.
Porém acredito que se os desenvolvedores PHP começarem a atentar mais para essa questão(como disse o Marcelio, alguns já estão atentando), certamente o PHP poderá se tornar uma dessa linguagens.

Um abraço,

Rafael
21/08/2004 12:28am (~12 anos atrás)

A falta de padrões de projeto é um dos motivos de muita gente usar outras linguagens como Java(na minha opinião) que é rigidamente vigiada pela http://www.jcp.org , não sou fã do java nem de qualquer outra linguagem ou plataforma , mais penso o php esta evoluindo que nem o java , tendo uma necessidade grande de padronização , mais organização para a tecnologia seja mais levada a serio por empresas (por exemplo) para ser mais usada para projetos mais complexos , pq já vi e vejo projetos inicialmente sendo desenvolvidos em php tendo a necessidade de utilizar outra linguagem para atender as necessidades , falo em projetos complexos pq em um projeto complexo é aonde vc ve a real potencia da linguagem(ou tecnologia) , o codigo em si é na minha opinião tem de 30% a 40% de importancia no projeto pq ?? existe muita mais coisas a se fazer antes de sair codificando.
Parabens pelo artigo.
21/08/2004 12:07am (~12 anos atrás)

Caro Roberto,

Obrigado pelo seu comentário.

Cocordo com vc quando diz que PHP é fantástica e etc...

Apesar de talvez não parecer, eu sou um entusiasta e amante de PHP. Adoraria ver essa linguagem crescer mais e mais(como ela já tem feito), e junto observar que os profissionais que a usam também estão evoluíndo e aprendendo mais, aumentando assim a qualidade do software produzido com ela, por isso escrevi esse artigo.

Espero que sirva para alguém ver que progamar em PHP(como em qualquer linguagem) exige mais do que boa vontade, exige conhecimento e dedicação. O nosso desejo de fazer algo deve ser um pouco contido em nome da coesão. Antes de meter a mão, pense bem antes no que vai fazer, e assim as chances de fazer besteiras será menor.

Um abraço,

Rafael
20/08/2004 8:22pm (~12 anos atrás)

"Existe mais de uma maneira de fazer"
-Larry Wall
Todos tem a possibilidade de fazer e aprender, abandonar, refazer ou reutilizar.
PHP é o que você quizer, ela é fantástica e melhor a cada dia, mesmo sem patrocinadores como a linguagem Java. Todo programador, penso eu, quer aquele gostinho do "feito por mim", isso é um estágio na caminhada do programador, ao avançar e trabalhar em equipe e projetos maiores os conceitos mudam e preocupações em diversos níveis tornam-se fundamentais.
A experiência vem com o tempo, então com ser experiente em menos tempo?
R: Aproveitando as dicas, como esta do Rafael e do Marcelio e outras tantas nesta comunidade, ou no sitepoint (http://www.sitepoint.com), imasters, phpbuilder, etc
20/08/2004 6:27pm (~12 anos atrás)

Olá Marcelio,

Obrigado pelo seu comentário.

Bom, realmente reconheço que em alguns pontos eu fui muito radical, e alguns dos exemplos que você citou(corrigiu) eu concordo com vc.

Concordo inteiramente quando você fala sobre a modelagem do projeto, acho fundamental a modelagem. Mais um ponto que esqueci de mencionar hehe (vou incluir isso na na nova revisão desse artigo).

A minha intenção com esse artigo, foi tentar mostrar que há ainda muito a se fazer por parte da comunidade de programadores em PHP(me incluo aqui).

Com relação aos seus comentários(das citações):

1) Quando coloquei a essência do php como um "problema" acho mesmo que me expressei mal, na verdade, não é um problema ela ser assim, mas é um problema quando os desenvolvedores não conseguem enxergar o contexto e a usam incorretamente.

2)Eu concordo em partes com você, mas veja que o que eu falo, falo com relação a software livre, e a reutilização aí é mínima quando o projeto está malfeito(na minha humilde opinião)

3)Quando eu falei da falta de comunidade séria, foi porque achei(e ainda acho) que a comunidade de PHP é muito mal organizada...
Concorodo que as comunidades que você citou são bons exemplos, mas ainda assim falta um ponto centralizador de idéias, e por isso citei a comunidade que espero q um dia terá mais força nesse sentido, a phpcommunity...

Novamente agradeço seu comentário, e parebenizo pelo mesmo, comentários como o seu fazem a gente rever, e repensar as coisas. Obrigado.

Um abraço,

Rafael
19/08/2004 8:42am (~12 anos atrás)

Marcelio Leal disse:
Rafael,

Importante o seu artigo por tocar em alguns assuntos bons e bem escrito...
É claro que a padronização, em qualquer nível é importante porém algumas de suas afirmações, na minha opinião, são irreais.
Atualmente o mais importante no sistema é a modelagem bem feita, se vc modela corretamente e tem um padrão(projeto, código, modelagem...) definido é fácil tornar um sistema que inicialmente não tem interoperabilidade, em um sistema que tem alto nível disto, simplesmente com Web services(SOAP ou XML-RPC), simplesmente criando interfaces, ou seja, que se adaptam a diversas aplicações.
E é neste ponto, interfaces, que reside toda interoperabilidade nos sistemas modernos, portanto você pode adaptar seu sistema escrito em PHP para se comunicar com outros sistemas desde que você modele razoavelmente bem.

Ainda cito e comento algumas afirmações:
---------------------------
"Essência do PHP. Pelo fato do PHP ser uma linguagem e não um framework (por exemplo) , ela não trata de assuntos específicos, e abrange muitas áreas, deixando os pontos específicos para o desenvolvedor. O que em si não é um defeito, pelo contrário. E como você já deve estar pensando, isso não é exclusividade do PHP, mas de qualquer linguagem. Mas em todo caso dificulta a aplicação de padrões quando deixa isso por conta do desenvolvedor. "
----------------------------
É interessante ressaltar que justamente é esse o papel de uma linguagem, e o PHP o faz bem e melhor do que a maioria das outras linguagens, e que o responsável é o desenvolvedor mesmo, e isso não é um erro, erro é o desenvolvedor não estudar e não desenvolver de maneira errada.
Quanto a questão de que PHP não é um framework, é importante observarmos o PHP de uma maneira geral, ou com a tecnologia PHP, e neste caso podemos visualizar diversos componentes que o completam e que fazem absolutamente sua função, como:
- PEAR, ADODB, Smarty, Classes(PHP Classes), Geradores(ClassGenerator),...

Ou seja, se alguém quiser encarar a tecnologia PHP como um "framework", também pode, e de maneira bem melhor, pois os hot-spots são ilimitados, por fazerem apenas sua função e por ser código aberto.

É importante ressaltar que justamente o PHP, como linguagem, não implementar coisas específicas, é o que dá a total liberdade para o desenvolvedor, ou seja, ele é o controlador da situação.

-------------------------
"Inexperiência. Devido ao fato do PHP ser uma linguagem relativamente simples de se aprender e implementar algo com ela, muitas pessoas sem conhecimento acabam produzindo softwares sem nenhum estudo, o que acaba dando em um sistema único e não reutilizável (ou no nosso caso, sem interoperabilidade)."
---------------------
Isso é realmente verdade, porém mesmo que ele desenvolva o sistema de maneira ruim ou único, ele pode ser reutilizável, porém é importante ressaltar que a modelagem tem que ter um mínimo de competencia.

----------------------
"Falta de uma comunidade séria. Apesar de haver uma grande quantidade de pessoas envolvidas com o PHP, não há uma comunidade séria que trabalha para tentar desenvolver soluções e suporte. O mais próximo disso é o site oficial, mas que passa longe de ser um centralizador de uma comunidade. Recentemente Chris Shiflett criou a PHP Community (http://www.phpcommunity.org">http://www.phpcommunity.org), o que parece ser a primeira iniciativa séria da "profissionalização" do uso do PHP. Como voluntário l, espero que consigamos relamente ajudar a comunidade. "
----------------------------

Eu discordo, acho que a comunidade é grande, boa e séria, exemplos são [phpespecialistas, phppaidegua]@yahoogroups.com, o própio phpbrasil.com, phpclasses.org, ...
O PHP, na minha opinião, é a melhor linguagem para a maioria das aplicações Web e para outros ramos da computação também, como geradores de artefatos, sendo assim ela é profissional, o que pode acontecer é que as pessoas que trabalham com este potencial não saibam utilizá-lo de maneira correta, por isso sua colocação, mas é importante ressaltar que quem é ou não profissional é o desenvolvedor e não uma linguagem do nível do PHP, Java, Phyton, C, ...

Com certeza seu artigo é de grande proveito, e ainda incluo alguns links e considerações:
- Procurem pelo Agata Report, muito bom, tanto implementação quanto funcionalidade;
- Ressaltar a técnica de Tableless, CSS...;


Ainda, é importante ressaltar que o desenvolvedor conheça cada vez mais a engenharia de software, suas técnicas e padrões, principalmente padrões de projeto, você pode começar pelo livro do presman(acho q eh assim que escreve) ou pelos artigos da série "Metodologias de desenvolvimento de software", publicados neste site.

Um abraço,

Marcelio Leal
19/08/2004 1:07am (~12 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)