Da dove viene la reputazione SOA di Java?

3

Vedo molti libri SOA che circondano Java e ho sempre avuto l'idea subliminale che Java sia il linguaggio "giusto" per SOA robusto / di classe, anche se so cosa implica la SOA e che è perfettamente possibile usando altri linguaggi e ampli; quadri.

Quali caratteristiche esclusive che Java ha che le altre lingue / piattaforme non hanno, questo lo rende così popolare per gli SOA?

    
posta dukeofgaming 28.08.2012 - 10:12
fonte

5 risposte

9

What exclusive traits Java has that other languages/platforms don't, that makes it so popular for SOAs?

Non c'è molto nella stessa Java che lo rende particolarmente adatto agli SOA. Certo, offre garbage collection e caricamento dinamico del codice e simili, e sono tutti utili, ma sono caratteristiche difficilmente uniche di Java.

Ciò che ha fatto la differenza è stata la specifica di Enterprise Bean (che si è evoluta in EJB e JEE). Si trattava fondamentalmente di un adattamento di concetti che esistevano da un bel po 'di tempo nello spazio di grandi dimensioni (monitor delle transazioni, quel genere di cose) a un modello OO, insieme all'aggiunta di stato d'animo in modo tale che alcuni tipi di modelli erano un molto più facile da esprimere. La cosa interessante è che EJB era uno sforzo multi-vendor; Sì, Sun l'ha promosso molto, ma c'erano molti venditori commerciali che ne facevano implementazioni nei loro prodotti abbastanza presto nel ciclo di vita delle specifiche. Ciò ha incoraggiato un sacco di adozione; l'esperienza nei monitor di transazione basati su Java è diventata improvvisamente una buona abilità trasferibile.

Una volta stabilita la base, è cresciuta (ad es. con un eccellente supporto per gli strumenti SOAP, che ha sostituito l'uso di CORBA in molte implementazioni) e Java è stato davvero cementato. La cosa che mantiene Java come il re dello spazio SOA per ora è l'enorme ecosistema di librerie di terze parti che rendono facile lavorare nell'area purché tu usi Java (o una delle altre JVM lingue basate su Groovy o Scala). È del tutto possibile avere tali librerie in altri linguaggi, in altri ambienti - mi aspetto che C # e .NET facciano abbastanza bene su questa metrica - ma in genere devi scrivere una porzione molto più grande del livello di supporto da te stesso, e parte di questo è sia difficile e noioso da fare bene; sfruttare Java ha molto senso se ti consente di concentrarti sulla logica di business dell'applicazione e non sul framework di supporto.

In breve, Java è buono per SOA per te perché è buono per SOA per molte altre persone (e sì, è auto-rinforzante e suona tautologico); sono gli effetti di rete.

    
risposta data 28.08.2012 - 23:43
fonte
13

Java era (ed è tuttora) semplicemente la lingua più popolare per il tipo di applicazione in cui il concetto di SOA è più attraente, vale a dire sistemi eterogenei distribuiti e integrati con requisiti in continuo mutamento noti anche come "applicazioni aziendali". Quindi tutti stavano già utilizzando Java per tali sistemi prima che SOA diventasse una parola d'ordine esattamente nella stessa area.

Per quanto riguarda la ragione per cui Java è diventato così popolare in quell'area, ci sono molte cose che probabilmente hanno contribuito: indipendente dalla piattaforma, eccellente compatibilità tra versioni, budget di marketing di Sun e precedente presenza sul mercato (tramite Solaris e hardware), il focus su API standardizzate, essendo il primo garbage collection e linguaggio basato su VM per offrire prestazioni accettabili ...

    
risposta data 28.08.2012 - 10:17
fonte
5

Semplicemente perché molti dei primi sistemi che venivano collegati usando le tecniche SOA erano già costruiti in Java. Non c'è nulla di ereditario in Java che lo rende un linguaggio superiore per le soluzioni SOA.

Qualcuno potrebbe obiettare che è un ricco ecosistema di framework BDD / TDD e comunità intorno che ha contribuito a costruire soluzioni SOA più robuste, ma poi di nuovo ne ho viste molte terribili: -).

In breve, SOA è un modello di progettazione architettonica indipendente dal linguaggio.

    
risposta data 28.08.2012 - 10:58
fonte
2

Tutti gli altri stanno facendo SOA senza nominarlo esplicitamente, senza una formalizzazione rigorosa, ecc. Le persone creano servizi RESTful e back-end usando code di messaggi senza menzionare "SOA" anche una sola volta. Le parole chiave sono piuttosto "accoppiamento lento" o "servizi web".

D'altro canto, sembra che nel mondo Java ci sia bisogno di buzzword (o piuttosto di buzz-acronym) per ogni cosa, ogni modello di design, ogni architettura, ecc. Così tanti libri in cui Java e SOA sono menzionati insieme.

    
risposta data 28.08.2012 - 12:35
fonte
1

IDE e annotazioni Java semplificano la creazione di servizi Web. Quindi chiunque voglia conoscere SOA e servizi web tende a imbattersi in molte esercitazioni basate su Java (probabilmente da dove è venuta fuori la "nozione subliminale"), e chiunque desideri bagnarsi con una semplice implementazione del servizio diventa veloce gratificazione dalla sperimentazione con Java. Non credo che Java sia "migliore" di altri linguaggi in SOA, ma è probabilmente più facile iniziare a utilizzare SOA con Java.

    
risposta data 28.08.2012 - 17:43
fonte

Leggi altre domande sui tag