Openframe
openFrame és un entorn de treball de desenvolupament J2EE, orientat a serveis (SOA), basat en components de software lliure, estàndard de facto en el desenvolupament professional, que permeten realitzar aplicacions crítiques de negoci, disminuint els costs de disseny, desenvolupament i manteniment d'aplicacions.
Arquitectura del framework openFrame 2.0 | |
Tipus | entorn de treball |
---|---|
Versió estable | 2.0 / 4 de Novembre del 2008 |
Llicència | GPL |
Característiques tècniques | |
Sistema operatiu | Multiplataforma |
Equip | |
Desenvolupador(s) | openTrends |
Més informació | |
Lloc web | www.openTrends.net |
| |
Enfocament modifica
Aplica d'estàndards comunament acceptats per a formar una arquitectura oberta (Model View Controller, ús de patrons de disseny i patrons J2EE-Blue Prints) i integra de solucions de codi obert que han estat provades i certificades per l'equip de desenvolupament del framework (cost reduït de les solucions amb la fiabilitat i prestacions dels paquets comercials).
Components base modifica
Els tres mòduls principals d'openFrame són Struts, Spring i Hibernate.
Struts modifica
Struts proporciona les següents facilitats:
- Un Controlador principal ja implementat (patró Front Controller amb Dispatcher View)
- Gestió automàtica dels formularis amb refresc entre pantalles i la seva possible validació
- Gestió dels errors presentant-los a la vista
- Internacionalització de l'aplicatiu (multiidioma)
- Llibreria de tags per a poder ser utilitzats a les vistes
- Permet afegir filtres de procés (patró Decorating Filter)
- Un únic fitxer de configuració que lliga els controladors amb els formularis de l'aplicació i deixa clara la seva interacció i temps de vida
Spring modifica
Spring proporciona, entre altres, les següents facilitats:
- Un contenidor centralitzat d'objectes i serveis, totalment configurable amb fitxers XML
- Mitjançant l'ús de la inversió de control, en particular la injecció de dependències permet la configuració d'objectes fora del codi de l'aplicació (el contenidor s'encarrega de la instanciació) i de manera no intrusiva (els objectes configurats no estan lligats a spring, ni han de conèixer les seves classes)
- Redueix el codi d'aplicació dedicat a configurar i localitzar recursos (JNDI, JTA,..) en encarregar-se el framework. El codi de l'aplicació així es fa més llegible en tenir principalment lògica d'aplicació
- Facilita best practices com ara programar contra interfícies en lloc de contra classes
- Això promou el desacoblament de serveis (pensar en els objectes de l'aplicació com serveis, que expressen la seva funcionalitat com interfícies i abstreuen els seus detalls de configuració de la vista del programador, facilita el canvi d'una implementació concreta a una altra)
- Estructurar en serveis la lògica d'aplicació basant-se només en POJO’s e interfícies facilita els tests unitaris (no és necessari el contenidor d'EJB per a les proves i els serveis són fàcils d'emular amb MockObjects)
- Gestió de transaccions sense ús d'API’s específiques mitjançant l'ús d'Aspect Oriented Programming (AOP pot utilitzar-se també a altres serveis como ara gestió de logs, seguretat o excepcions)
Hibernate modifica
Hibernate com a capa d'accés a dades proporciona les següents facilitats:
- Un mapeig objecte-relacional flexible (taula per classe, múltiples objectes per registre, múltiples taules per objecte, tota mena de relacions 1-n, n-m,…)
- Persistència d'objectes de manera transparent (no intrusiu, sense imposar interfícies o classes estranyes, només arrays i collections estàndard java)
- Llenguatge de querys independent de la BD (HQL)
- Possibilitat d'accés natiu tradicional (T-SQL, PL-SQL, …) i crides a lògica a la BD (stored procedures, packages)
- Toda la configuració (mapejos, querys HQL, querys natives,…) pot definir-se a fitxers de configuració XML, no hardcoded al codi java
- Catxé (multi-layer, threadsafe, non-blocking, clusterable)
- Altres optimitzacions (lazy initialization, subselect fetching, …)
- Integració J2EE (EJB 3.0, JMX, JTA,…)
- Extensible (nous dialectes sql, generadors de claus propis,…)
- Suporta múltiples DB (Oracle, DB2, Sybase, MS SQL Server, PostgreSQL, MySQL, HypersonicSQL, SAP DB, Interbase, Ingres, Informix)
openFrame utilitza com a base aquests tres mòduls i els estén, afegint un conjunt de serveis addicionals i patrons seleccionats entre les millors iniciatives opensource de cada àrea (log4j, tiles, hibernate, quartz, digester, tiles, validator, xerces, cocoon, jasper, openJMS,…) i fent que funcionin de manera conjunta. Això ofereix al desenvolupador una visió única i coherent de l'ús de la plataforma.
Nova release 2.0 modifica
Es troba disponible la nova release 2.0 del framework J2EE openFrame. (vegeu la notícia Arxivat 2009-01-23 a Wayback Machine.)
Enllaços externs modifica
- Web del Projecte openFrame Arxivat 2009-03-02 a Wayback Machine.
- SourceForge del Projecte openFrame
- openTrends Arxivat 2009-03-02 a Wayback Machine.