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.

openFrame
Arquitectura del framework openFrame 2.0
Tipusentorn de treball
Versió estable2.0 / 4 de Novembre del 2008
LlicènciaGPL
Característiques tècniques
Sistema operatiuMultiplataforma
Equip
Desenvolupador(s)openTrends
Més informació
Lloc webwww.openTrends.net

Arquitectura Openframe

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