Attuazione di una architettura SOAHo toccato il tema di utilizzo di un service-oriented architecture (SOA), servizi Web, e Ajax per costruire un client da un punto di vista teorico, ma io non entrare nei dettagli pratici di come implementare l'architettura SOA. In questa festa di un articolo, mi coprono come implementare un'architettura SOA utilizzando i servizi Web e Ajax. La soluzione risolve anche il problema di come aggiornare un'architettura già esistente a un'architettura SOA. Questo articolo tratta i seguenti argomenti:
• Progettazione Representational State Transfer (REST) basato su URL per il contenuto che viene descritto come un insieme • Creazione di una nuova architettura SOA, senza gettare via tutti i architettura originale • Convalida e servizio AWeb test • Picking a parte i dati • Implementazione di un servizio basato su REST-Web • HTML • Really Simple Syndication (RSS) • Atom Ciascuno dei formati è unico, ma la struttura del contenuto entro i formati è la stessa. Da una prospettiva di programmazione, la soluzione comporterebbe una Model-View-Controller La nuova domanda di un'architettura ha solo un URL e un formato dei dati, Atom , in modo che il codice che sta dietro l'URL deve generare contenuti solo per quel formato. Nel caso della nuova domanda di un'architettura, il formato Atom è considerato il servizio AWeb, l'idea che è quello di presentare un formato universale, compreso da un vasto pubblico. E se il dispositivo finale non riesce a capire il formato, quindi spetta al dispositivo di navigazione per capirlo. Naturalmente, chiedendo il dispositivo fine a capire il formato potrebbe sembrare dura, ma non è in realtà ogni volta che si sta generando HTML usando il protocollo HTTP, si sta chiedendo il dispositivo fine a capire come visualizzare i dati. Se HTML e HTTP sono quasi universale, perché non solo creare ben strutturato HTML e lasciare che il dispositivo finale Atom figure it out? La risposta è che non funziona altrettanto agevolmente come quella. HTML è una tecnologia di interfaccia utente che non è universalmente compreso in tutti i dispositivi. Un dispositivo di fine Atom potrebbe probabilmente stimarne la struttura del formato, ma probabilmente sapete il sudore e il dolore associato con la scrittura di codice HTML che possono essere visualizzati su tutti i dispositivi. Con il servizio AWeb base sul formato Atom, è avere una chiara comprensione di ciò che i dati è e rappresenta. Per cominciare, il servizio AWeb dice al server, "Ecco i dati di capire come per visualizzarla." Se il dispositivo finale è un lettore di Atom, è facile capire cosa fare con i dati, ma se il dispositivo finale è browser AWeb, si dispone di una sfida. La maggior parte dei nuovi browser capiscono Atom servizi Web, ma un'altra opzione è quella di avere l'Ajax a portata di mano per aiutare e, in particolare l'oggetto XMLHttpRequest, che può generare una richiesta di chiamare il servizio Web. Il servizio Web fornisce i dati, che viene quindi elaborato dal l'oggetto XMLHttpRequest, e perché la stragrande maggioranza dei servizi Web sono basati su XML, per capire il formato dei dati forniti dal servizio Web è banale. Delegando il lavoro di creazione di un GUI di distanza dal server, vi è una netta separazione tra i ruoli client e server di gioco. Questa separazione è assolutamente fondamentale, in quanto consente agli sviluppatori di concentrarsi sui server di prestazioni, la scalabilità, la robustezza, e lo stoccaggio, mentre il cliente può concentrarsi su usabilità, estetica visiva, e la comprensibilità. Il progettista e il programmatore hanno due insiemi di competenze molto diverse, e non dovrebbe interferire con l'altro. L'attuazione del Server L'architettura ha modificato i processi di due database, ed i due processi sono collegati utilizzando il meccanismo di sincronizzazione del database. Dal punto di vista dell'utente, sviluppatore e amministratore, ogni applicazione utilizza la propria banca dati. I due processi di gestione del database esattamente le stesse tabelle, viste e stored procedure. Si presume che questa nuova architettura utilizzerà le stesse tabelle, viste, e stored procedure, ma in realtà questo non è sempre il caso, perché una nuova domanda comporta in genere l'aggiunta di tabelle, colonne e dati. La soluzione a questo problema è quello di utilizzare l'incapsulamento database, che è possibile con viste e stored procedure. Sincronizzazione del database riduce la complessità di un minimo assoluto. La ragione per l'utilizzo di sincronizzazione del database è quello di iniziare il processo di separazione di due applicazioni, senza perdere l'integrità dei dati. Quanto sta nuova architettura, il wp_authors e le tabelle wp_users sono solo le dipendenze del database originale. Così, quando una sincronizzazione database è definito, solo il wp_authors e le tabelle wp_users sono sincronizzati. Qualsiasi altra tabella utilizzata l'architettura originale blog non è sincronizzato e quindi non pregiudica l'architettura della nuova applicazione. Lo sviluppatore può andare avanti e creare la sua progettazione dei database, senza doversi preoccupare di danneggiare la progettazione del database precedente. E 'ovvio che il vecchio disegno del database non viene modificato, ma questo progetto non si ferma la creazione di stored procedure che potrebbero danneggiare i dati presenti nel progetto originale del database. Per prevenire o almeno ridurre al minimo il potenziale di corruzione dei dati, è assolutamente indispensabile che i vincoli di progettazione di database uso e convalide. La maggior parte dei database SQL consente la definizione di vincoli. Passo indietro e guardare a questa architettura, si deve notare che essa si basi su capacità del database relazionale. Ci potrebbero essere situazioni in cui uno sviluppatore non utilizza un database relazionale. Per tali situazioni, non ho la soluzione, come per la maggior parte che ho a che fare con database relazionali, e sono tentati di credere maggior parte dei lettori hanno lo stesso problema. Basandosi sulla capacità del database relazionale richiede che si capisce il database. Con l'introduzione di object-relational mapping (ORM) gli strumenti, la necessità di conoscere SQL è ridotta. Ad esempio, utilizzando strumenti ORM come Hibernate non richiede conoscenze di viste o stored procedure. Strumenti ORM creare "viste" in forma di gerarchie di oggetti. Utilizzando uno strumento ORM consente di implementare la stessa architettura, tuttavia, significa che probabilmente non utilizzare le stored procedure e viste. La vera differenza tra l'utilizzo di un ORM e il database relazionale stored procedure e la soluzione di vista è lo spostamento del giunto tra il codice e la persistenza dei dati. Per contro, il livello di database relazionale utilizza visualizzazioni e le stored procedure di interagire con i dati. Il codificatore ha bisogno di conoscere le colonne ei tipi di database relazionale ed è di fornire una mappatura tra il suo linguaggio di programmazione e il linguaggio di programmazione SQL. Utilizzando linguaggi di programmazione classici, Java e C # coinvolge un po 'di noia, in termini di preparazione di comandi e Recupero dei dati. Utilizzando un linguaggio di programmazione come Ruby, Python o PHP, l'interazione con un database relazionale è banale in quanto le lingue di cui sopra non devono dichiarare i tipi di dati. Utilizzo di un ORM, il codificatore o si lava le mani del problema e pone l' focus sul livello ORM. Per Java e C # programmatori, un ORM elimina la fatica di interagire con un database, con l'unico costo è la mancanza dei programmatori 'di controllo delle operazioni e manipolazioni della banca dati, anche se nella maggior parte dei casi, che la mancanza di controllo è accettabile, tenuto conto del fatica di scrivere il codice di database relazionali. La questione è che l'architettura si dovrebbe utilizzare? Personalmente, io uso tutto ciò che è più semplice nel linguaggio di programmazione sono in via di sviluppo al momento. Così, quando scrivo codice in Java e C #, tendo a usare ORME, e quando sto scrivendo codice Python, ho l'accesso al database relazionale direttamente. È necessario garantire che il livello ORM non impone la progettazione della banca dati, in qualsiasi circostanza. La progettazione del database è determinata dal database e dei dati che vengono persisteva, quindi significa che è necessario per capire tabella, vista, la costrizione, e la progettazione del trigger. Questo potrebbe diventare difficile se l'ORM dettami della progettazione di database, e potrebbe risultare in un database e inefficiente. Ricorda che in qualsiasi applicazione, la parte più lenta sarà la base di dati. Il database deve pori attraverso milioni di documenti, gestire le transazioni, e inviare i dati attraverso una rete. Se si progetta una domanda per essere efficienti a scapito di progettazione del database, quindi non c'è modo si può magicamente accelerare le prestazioni del database. un articolo presentato da Sonja Lande Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni. Importante: Questo articolo "Implementazione di una architettura SOA" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.
|
|||||
| Online: 355 users browsing the articles directory |
|
|