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 desenvol

Openframe
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

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 Openframe

Enfocament

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

Els tres mòduls principals d'openFrame són Struts, Spring i Hibernate.

Struts

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

Spring proporciona, entre d'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

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

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

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.