Oggetti Web
| Oggetti Web | ||
|---|---|---|
| Informazione Generale | ||
| tipo di programma | framework per applicazioni web mobile | |
| Autore | NeXT Software Inc. | |
| sviluppatore | La società Apple. | |
| Interruzione | 1 maggio 2016 | |
| Licenza | Proprietario | |
| Informazioni tecniche | ||
| Previsto in | Giava | |
| Versioni | ||
| Ultima versione stabile | 5.4.3 (15 settembre 2008) | |
| Collegamenti | ||
WebObjects è un server Web di applicazioni Java e un framework di applicazioni Web basato su server originariamente sviluppato da NeXT Software, Inc. Dal 2009, il software è stato gestito in modo indipendente da volontari.
Le caratteristiche distintive di WebObject sono l' orientamento agli oggetti , la connettività al database e gli strumenti di prototipazione. Le applicazioni create con WebObjects possono essere implementate come siti Web basati su standard, applicazioni desktop e/o servizi Web .
Il runtime di distribuzione è Java puro e consente agli sviluppatori di distribuire applicazioni WebObjects su piattaforme abilitate a Java. È possibile utilizzare WebObjects Java SE come server delle applicazioni (incluso) o implementare server delle applicazioni Java EE di terze parti come JBoss , Apache Tomcat , WebLogic Server o IBM WebSphere .
Storia
WebObjects è stato creato da NeXT Software, Inc. , è stato mostrato pubblicamente per la prima volta alla conferenza Object World del 1995 ed è stato rilasciato al pubblico nel marzo 1996. I vantaggi in termini di tempo e costi del rapido sviluppo orientato agli oggetti hanno attirato le principali aziende verso WebObjects. i primi giorni del commercio elettronico , con clienti tra cui BBC News , Dell Computer , Disney , DreamWorks SKG , Fannie Mae , GE Capital, Merrill Lynch e Motorola . Tuttavia, in seguito alla fusione di NeXT con Apple Inc. nel 1997, il profilo pubblico di WebObjects languiva. Molti dei primi utilizzatori sono passati in seguito a tecnologie alternative e oggi Apple rimane il maggiore cliente del software, facendo affidamento su di esso per alimentare parti di Apple Store e iTunes Store , l'implementazione di più alto livello di WebObjects.
WebObjects faceva parte della strategia di Apple di utilizzare il software per promuovere le vendite di hardware e nel 2000 il prezzo è stato ridotto da $ 50.000 (licenza di distribuzione completa) a $ 699. A partire da maggio 2001, WebObjects è stato incluso in Mac OS X Server e non richiede più una chiave di licenza per lo sviluppo o la distribuzione.
WebObjects è passato dall'essere un prodotto autonomo all'essere parte di Mac OS X con il rilascio della versione 5.3 nel giugno 2005. Gli strumenti di sviluppo e i framework, che in precedenza venivano venduti per 699 dollari, sono stati inclusi nell'IDE di Mac OS .Xcode Il supporto per Windows è stato successivamente interrotto. Apple ha affermato che integrerà ulteriormente gli strumenti di sviluppo WebObjects con Xcode nelle versioni future. Ciò includeva un nuovo plug-in EOModeler per Xcode. Tuttavia, questa strategia non è stata seguita.
Nel 2006, Apple ha annunciato che il bridge Cocoa-Java di MacOS X sarebbe stato deprecato con il rilascio di Xcode 2.4 alla Worldwide Developers Conference nell'agosto 2006 e con tutte le funzionalità dipendenti, inclusa la suite completa di applicazioni per sviluppatori WebObjects. : EOModeler, EOModeler Plugin , WebObjects Builder, WebServices Assistant, RuleEditor e WOALauncher. Apple aveva deciso di concentrare le proprie risorse ingegneristiche sul runtime WebObjects, lasciando la responsabilità dello sviluppo di applicazioni alla comunità open source. La principale alternativa open source, l' IDE Eclipse con la suite di plug-in WOLips, è maturata al punto che le sue capacità avevano, in molte aree, superato quelle degli strumenti Apple, che non vedevano aggiornamenti significativi da diversi anni.
Apple ha promesso di assistere la comunità nei suoi sforzi per estendere questi strumenti e svilupparne di nuovi. In un post sulla mailing list webobjects-dev, [ 1 ] Daryl Lee del team WebObjects di Apple ha rivelato pubblicamente la nuova strategia dell'azienda per WebObjects. Ha promesso di "rendere WebObjects il miglior ambiente di esecuzione lato server" da:
- Prestazioni, gestibilità e conformità agli standard migliorate
- Fai in modo che WebObjects funzioni bene con Ant e gli IDE più popolari, inclusi Xcode ed Eclipse
- Apri e rendi pubblici tutti gli standard e i formati da cui dipende WebObjects
WebObjects 5.4, distribuito con Mac OS X Leopard nell'ottobre 2007, ha rimosso il requisito della chiave di licenza per lo sviluppo e la distribuzione di applicazioni WebObjects su tutte le piattaforme. Tutti i metodi per il controllo delle limitazioni delle licenze sono stati deprecati.
Nel 2009, Apple ha smesso di rilasciare nuove versioni di WebObjects al di fuori di Apple. La comunità ha deciso di continuare lo sviluppo con Project Wonder, un framework open source basato sui framework WebObjects di base, ed estenderlo. Ad esempio, Project Wonder ha aggiornato gli strumenti di sviluppo e fornisce un framework REST che non faceva parte del pacchetto WebObjects originale.
Sebbene una volta incluso nell'installazione predefinita di Mac OS X Server, WebObjects non era più installato per impostazione predefinita a partire da Mac OS X Snow Leopard Server e subito dopo Apple ha smesso di promuovere o vendere WebObjects. A partire dal 2016, WebObjects è attivamente supportato dalla sua comunità di sviluppatori, la "WOCommunity Association", estendendo i framework principali e fornendo correzioni con Project Wonder. L'organizzazione ha tenuto per l'ultima volta una World Wide WebObjects Developers Conference, WOWODC, nel 2013. [ 2 ] [ 3 ]
Nel maggio 2016, Apple ha confermato che WebObjects era stato interrotto. [ 4 ]
Strumenti
A partire dal 2016, la maggior parte degli architetti e ingegneri WebObjects utilizza gli strumenti sviluppati dalla community di WebObjects. Questi strumenti vengono eseguiti all'interno dell'IDE Eclipse e sono open source. I plug-in WebObjects per Eclipse sono noti come WOLips.
La creazione di framework e applicazioni WebObjects per la distribuzione viene in genere eseguita utilizzando il set di strumenti WOProject per Apache Ant o Apache Maven , che sono distribuiti con WOLips.
Cornici di base
Un'applicazione WebObjects è essenzialmente un eseguibile lato server, creato combinando oggetti framework applicativi predefiniti con il codice personalizzato dello sviluppatore. I framework WebObjects possono essere suddivisi in tre parti principali:
- WebObjects Framework (WOF) è al livello più alto del sistema. È responsabile dell'interfaccia utente dell'applicazione e della gestione dello stato. Utilizza un approccio basato su modelli per prendere quell'oggetto grafico e convertirlo in HTML o in un altro tipo di tag. Standard di visualizzazione delle informazioni, come XML o SMIL . Fornisce un ambiente in cui è possibile utilizzare e creare componenti riutilizzabili. I componenti sono frammenti di presentazione (HTML) e funzionalità (codice Java), spesso con un elenco di parametri per migliorare la riutilizzabilità. WebObjects Builder viene utilizzato per creare i modelli HTML e crea il collegamento da file .wod, ad esempio un oggetto stringa Java per interfacciare oggetti come un campo di input in un modulo Web .
- Enterprise Objects Framework (EOF) è forse la caratteristica distintiva di WebObjects. EOF comunica con i database relazionali e converte le righe del database in un grafico a oggetti. Con EOModeler, lo sviluppatore può creare un'astrazione del database sotto forma di oggetti Java. Per accedere o inserire informazioni nel database, lo sviluppatore accede semplicemente a Java Enterprise Objects (EO) dall'interno della propria logica di business. Successivamente, EOF gestisce gli EO e crea automaticamente il codice SQL necessario per eseguire il commit delle modifiche al database.
- Java Foundation . Sia Enterprise Objects che WebObjects sono basati sulle classi Java Foundation opportunamente denominate. Questo framework contiene le implementazioni e le utilità fondamentali della struttura dei dati che vengono utilizzate nel resto di WebObjects. Gli esempi includono raccolte di base e classi di valori, come array , dizionari. Java Foundation è simile al framework Foundation contenuto nell'API Cocoa di Apple per applicazioni desktop macOS, tuttavia, Java Foundation è scritto in Java puro anziché in Objective-C di Cocoa (con il suo wrapper di runtime Java Bridge). ). Le classi Foundation sono precedute da "NS" (un riferimento alla loro eredità dal sistema operativo NeXTSTEP ). Dalla transizione da WebObjects a Java nel 2000, la funzionalità di molte classi Java Foundation di Apple è stata replicata nel JDK di Sun. Tuttavia, persistono in gran parte per motivi di compatibilità con le versioni precedenti e gli sviluppatori sono liberi di utilizzare qualsiasi framework preferiscano.
Sviluppo rapido di applicazioni basato su regole (RBRAD)
WebObjects introduce una serie di tecnologie di sviluppo rapido in grado di creare automaticamente un'applicazione Web senza la necessità di scrivere codice Java . Dato un file modello per un database, WebObjects creerà un'interfaccia che supporta nove attività di database comuni, tra cui query, modifica ed elenco. Queste applicazioni sono utili per la prototipazione o meno di un database, magari per verificare le relazioni o seminare il database con i dati.
L'interfaccia utente viene generata dinamicamente, al volo in fase di esecuzione utilizzando un sistema basato su regole, non viene generato alcun codice. Pertanto, è possibile modificare la configurazione di un'applicazione in fase di esecuzione (utilizzando un programma di supporto) senza ricompilare o riavviare l'applicazione.
Gli sviluppatori possono utilizzare una delle tre diverse tecnologie, a seconda del tipo di interfaccia che desiderano utilizzare:
- Direct To Web (D2W) consente agli sviluppatori di creare rapidamente un'applicazione Web basata su HTML che accede a un database.
- Direct To Java Client consente agli sviluppatori di creare rapidamente un'applicazione desktop client utilizzando il toolkit Java Swing . Un vantaggio delle applicazioni client Java è che possono sfruttare la potenza di elaborazione del computer client per eseguire operazioni come l'ordinamento di un elenco di elementi ricevuti dal server.
- Direct To Web Services consente agli sviluppatori di sviluppare rapidamente applicazioni basate su servizi Web che forniscono l'accesso a un archivio dati.
Vantaggi di RBRAD
- Tempi di sviluppo e debug notevolmente ridotti;
- Maggiore stabilità attraverso l'uso di codice altamente esercitato;
- Utilizzando le informazioni contenute nel file del modello di dati, le applicazioni non violeranno l'integrità del database. Normalmente, dovresti scrivere codice per evitare tali situazioni e gestire gli errori generati da dati errati.
- Fa pieno uso dei servizi di convalida forniti da WebObjects ed Enterprise Objects.
Compatibilità Java
WebObjects è un prodotto Java al 100% con le seguenti funzionalità basate su Java:
- Distribuzione: le applicazioni possono essere distribuite su qualsiasi sistema operativo che esegue Java 1.3 o versioni successive. Molti sviluppatori lo hanno implementato con successo su Windows e vari sistemi Linux come Red Hat Linux , Debian e SUSE . Le applicazioni possono anche essere ospitate su qualsiasi server di applicazioni compatibile con Java EE , come JBoss .
- Integrazione Java EE: le applicazioni WebObjects possono essere impacchettate in un'unica directory (un file .war esteso) che ne semplifica la distribuzione in un contenitore servlet Java EE .
- JDBC: poiché WebObjects utilizza JDBC per la connettività del database, qualsiasi DBMS che dispone di un driver JDBC può essere utilizzato all'interno di WebObjects.
- Interfaccia Swing: le applicazioni WebObjects possono essere fornite all'utente come "applicazione client Java" o come applet Java.
Cronologia delle versioni
WebObjects è stato originariamente rilasciato da NeXT Computer nel marzo 1996, ma è stato acquisito da Apple Inc. con l'acquisizione di NeXT nel dicembre dello stesso anno.
WOWODC
Dal 2007, la comunità tiene una conferenza annuale per gli sviluppatori WebObjects, WOWODC. Nel 2007 e nel 2008, la conferenza si è tenuta il fine settimana prima del WWDC e nel 2009 la comunità ha promosso due conferenze: WOWODC West a San Francisco il 6 e 7 giugno, immediatamente prima del WWDC, e WOWODC East a Montreal il 29 e 30 agosto . WOWODC 2010 si è tenuto a Montreal il 27, 28 e 29 agosto 2010. WOWODC 2011 si è tenuto a Montreal l'1, 2 e 3 luglio 2011. WOWODC 2012 si è tenuto a Montreal il 30, 1 giugno e 2 luglio 2012. WOWODC Il 2013 si è tenuto a Montreal. WOWODC 2014 si è tenuto a Montreal (12, 13 e 14 aprile). WOWODC 2015 si è tenuto ad Amburgo il 25, 26 e 27 aprile. WOWODC 2016 si è tenuto a Montreal il 24, 25 e 26 giugno
Alternative open source
L' interesse per le alternative open source a WebObjects che utilizzano il linguaggio Objective-C è cresciuto con il cambiamento di WebObjects da Objective-C (ultima versione WO 4.5.1) a Java (prima versione WO 5.0). I due framework disponibili sono SOPE, [ 5 ] che è stato utilizzato come base per il server di gruppo OpenGroupware.org per circa otto anni, e GNUstepWeb, che fa parte del progetto GNUstep. Esistono anche riscritture open source dei framework EOF (AJRDatabase, AJRDatabase, GDL2). [ 6 ] [ 7 ]
Esistono anche alternative basate su Java:
- Wotonomy è un progetto, ospitato su Sourceforge , che implementa una versione open source per camere bianche del sistema WebObjects 5.x. [ 8 ] Fornisce un'implementazione quasi completa del framework Web MVC, nonché implementazioni parziali di Foundation, Control, livelli di dati e altre funzionalità. È sufficientemente funzionale per un volume di transazioni ridotto, applicazioni di database a singola origine. Sebbene la struttura del progetto sia stata riorganizzata nel 2006 attorno a un framework di build Apache Maven [ 9 ] e migrata al sistema di controllo della revisione di Subversion , [ 10 ] non ci sono stati aggiornamenti sostanziali alla base di codice dal 2003.
- Apache Tapestry ha un design e una filosofia simili a quelli di WebObjects. [ 11 ] Tapestry è spesso combinato con Apache Cayenne , un framework di persistenza ispirato a EOF.
Un tentativo di creare una versione Swift basata su SOPE/GETobjects è disponibile come SwiftObjects. [ 14 ] L'implementazione di Swift 4 è limitata a causa delle capacità di riflessione di quella versione di Swift.
Riferimenti
- ↑ Elenco messaggi Apple: RE: Xcode 2.4 Annunci di annullamento dell'iscrizione di Daryl Lee
- ↑ WebObjects Community Association (WOCommunity) (sito ufficiale).
- ↑ [1] (WOWODC '12) sito ufficiale.
- ^ Leswing, Kif. "Apple uccide uno dei progetti per animali domestici di Steve Jobs" . Business Insider . Business Insider . Estratto il 5 maggio 2016 .
- ↑ Quadri SOPE per l'Obiettivo-C
- ↑ Database AJRD
- ↑ DOF2
- ↑ Progetto Wotonomia
- ↑ Wotonomy si trasferisce a Maven - Christian Gruber
- ↑ Wotonomy spiazza Subversion - Christian Gruber
- ^ Arazzo in azione - Prefazione ( ISBN 9781932394115 )
- ↑ GETobjects
- ↑ Quadri SOPE per l'Obiettivo-C
- ↑ SwiftObjects