domingo, enero 21, 2007

1

ORM (Object Relational Mapping) Reloaded

Desde hace unos meses estoy usando el Google Analytics, y me dió un análisis sobre el blog: hay muchos accesos buscando información sobre el Object Relational Mapping.

Originalmente, fué un trabajo para la universidad en formato .Doc. No me gustó pasarlo a un formato HTML (formato actual en el blog) pues se hizo un post muy largo, . Así que lo republico aquí con un formato PDF.

Espero que este documento resulte útil.

ORM, Object Relational Mapping

La persistencia de la información es la parte más crítica en una aplicación de software. Si la aplicación está diseñada con orientación a objetos, la persistencia se logra por: serialización del objeto o, almacenando en una base de datos. Las bases de datos más populares hoy en día son relacionales. El modelo de objetos difiere en muchos aspectos del modelo relacional. La interfase que une esos dos modelos se llama marco de mapeo relacional-objeto (ORM en inglés).
En este documento describo el mapeo de un modelo de objetos hacia un modelo relacional. También, los aspectos a considerar cuando se elige un marco ORM: caché, transacciones, carga retardada, concurrencia. Y por último, una descripción de los 2 marcos ORM más usados en la tecnología Microsoft.Net: Ojb.Net y NHibernate.
Organicé el trabajo en 3 partes. En la primera parte, hablaré sobre el paso del modelo de objetos al modelo relacional. Introduciré el tema. Luego, describiré las técnicas de mapeo entre las tablas y los atributos de un objeto. Entonces, trataré sobre la complejidad de los ORM. Finalmente, describiré brevemente las tecnologías más usadas en la plataforma Micorosoft.Net.

Versión en pdf: pizarropablo.googlepages.com/ORM-ObjectRelationalMapping-PizarroP.pdf



 


Sobre el autor


Pablo Pizarro es un Ingeniero en Informática que se especializa en
aplicaciones web empresariales. Está radicado en Mendoza, Argentina. Su
objetivo profesional es "mejorar la competitividad de las organizaciones a
través de la integración de la información". Actualmente, trabaja en el
área de I+D de la consultora minera Rojas y Asociados. Antes, trabajó en el área
de tecnología de Tarjeta Nevada (tarjeta de crédito). Hoy en día, se encuentra
desarrollando un proyecto sobre aplicaciones empresariales junto a otros
profesionales. Puede ser contactado a través de su email:
pizarropablo@gmail.com.


About the author


Pablo Pizarro is an Engineer in Information Technology, which specializes in
enterprise web applications. He lives in Mendoza, Argentina. His professional
objective is "Enhance competitiveness of organizations through the integration
of the information". Actually, he works in I+D department in Rojas & Associates
mining consultancy. Prior, he worked in the area of Technology in Tarjeta
Nevada (credit card). Today, he is developing a project about enterprise
applications with other professionals. He can be contacted at
pizarropablo@gmail.com.

miércoles, diciembre 20, 2006

1

Qué es un arquitecto de software?

Algunos me preguntaron que era un arquitecto de software y cuál era la diferencia entre un lider de proyecto o jefe de desarrollo.

Pues bien, en mis palabras, un arquitecto de software es aquel que está involucrado con 1 o varios desarrollos de software, pero desde un punto de vista macro. Es decir, comenzando por los requisitos (funcionales y no funcionales) y hasta llegar a conocer el impacto que tendrá en el hardware del cliente.


El arquitecto de software tiene tres variables principales sobre cuales moverse: tiempo, satisfacción del cliente y, principalmente, costo de los desarrollos.

Una definición de arquitectura de software, según "El proceso unificado de desarrollo de software" de Jacobson-Grady-Rumbaugh, lo compara a la arquitectura en la construcción. La aquitectura de software es el conjunto de planos de un desarrollo de software. Planos con las características más importantes resaltadas dejando de lado los detalles. Caraterísticas como requisitos de los usuarios e inversores, plataforma (sistema operativo, harware, base de datos, protocolos de red), bloques de construcción reutilizables, condideraciones de implantación, sistemas heredados y requisitos no funcionales.

Finalmente, transcribo otra definición para arquitecto de software que puede ser encontrada en "What Does it Mean to be a Software Architect? - Part III" by Rob Daigneau ( http://www.designpatternsfor.net/default.aspx?pid=75 ):... a very simple starting definition for an architect:


1. A person who designs software systems and advises in the design of such systems.

2. A person who designs and guides a plan or undertaking related to software systems design.

I must emphasize that this was only a starting point. The follow-up question to this definition might be, “What do we mean by design, guide, and plan?” In response to this question, here are a few things that the architect might provide guidance and plans for:

The Creation, Capture, and Management of Business Requirements.
Software architects oftentimes play an integral role in the elicitation and organization of business requirements. The premise here is that the purpose of architecture is to ensure that the business needs are fulfilled, and the resulting architecture must be directly influenced by the business requirements. Architects should, at the very least, be well-informed concerning the scope of business requirements to be addressed, must understand how product features map back to business requirements and their associated benefits, and must also be kept up-to-date concerning the evolution of the functional specifications for the proposed software product.

Project Management Plans.
Software architects typically have a unique perspective on the factors that impact the project’s schedule, budget, risks, and required resources. These factors include aspects of the solution design (discussed in the following section), the true nature of the business requirements, and the most effective means to staff development efforts to build what is described in the solution architecture.

Architecture Plans.
This is the key concern of the architect. Here are some components of a typical architecture plan:
  1. The creation of a solution design intended to achieve the desired business requirements.

    • The software design

    • The evaluation and selection of various technologies used to achieve certain functional or technical requirements

    • Trade-off decisions that affect software design or the selection of various technologies

    • Application integration strategies

    • Physical deployment strategies

    • "Buy, Borrow, or Build" decisions

  2. Recommendations on product release strategies and versioning approaches.

  3. The design of logical environments, and the processes that govern the flow of software deliverables from one environment to the next. This also typically includes capacity planning requirements, and recommendations for the specific software and hardware to be used along with associated configurations for each logical environment.

  4. Strategies to ensure proper governance of IT assets.

  5. The definition of standards and guidelines for design, coding, unit-testing, and build processes for the project or the organization.

  6. The evaluation and selection of development related tools and technologies, and the definition of related processes.

  7. Data conversion requirements.



La diferencia entre un líder de proyecto y un arquitecto está en el foco: generalmente el líder de proyecto se concentra en resolver las cuestiones más específicas del 1 o más proyectos. El arquitecto tiene la visión global de los proyectos.

En cuanto a las diferencias entre un Jefe de Desarrollo y un arquitecto está en las competencias: mientras que un Jefe de Desarrollo se desempeña mucho mejor guiando procesos de desarrollos, el arquitecto se desempeña mejor gestionando los proyectos que se llevan a cabo y la tecnología donde deberá aplicarse.

 


Sobre el autor


Pablo Pizarro es un Ingeniero en Informática que se especializa en
aplicaciones web empresariales. Está radicado en Mendoza, Argentina. Su
objetivo profesional es "mejorar la competitividad de las organizaciones a
través de la integración de la información". Actualmente, trabaja en el
área de I+D de la consultora minera Rojas y Asociados. Antes, trabajó en el área
de tecnología de Tarjeta Nevada (tarjeta de crédito). Hoy en día, se encuentra
desarrollando un proyecto sobre aplicaciones empresariales junto a otros
profesionales. Puede ser contactado a través de su email:
pizarropablo@gmail.com.


About the author


Pablo Pizarro is an Engineer in Information Technology, which specializes in
enterprise web applications. He lives in Mendoza, Argentina. His professional
objective is "Enhance competitiveness of organizations through the integration
of the information". Actually, he works in I+D department in Rojas & Associates
mining consultancy. Prior, he worked in the area of Technology in Tarjeta
Nevada (credit card). Today, he is developing a project about enterprise
applications with other professionals. He can be contacted at
pizarropablo@gmail.com.

lunes, noviembre 27, 2006

2

JBoss y EJBQL

Hay un post bastatnte bueno sobre como JBoss resuelve los querys.
Es de Sebastian Arbona, del Grupo J2EE de la UTN Mendoza.

¿Que tan bien hace las cosas JBoss?
http://jroller.com/page/javillion?entry=que_tan_bien_hace_las

El Servidor de Aplicaciones JBoss es sin lugar a dudas la plataforma más popular y elegida dentro de la comunidad Java, en gran medida se debe a que fue el primer Servidor de Aplicaciones de código abierto certificado en J2EE 1.4 y que detrás de el existe una gran comunidad activa de desarrolladores que apoyan el proyecto de JBoss.

¿Pero que tan bien hace las cosas JBoss?

Comencé a realizarme esta pregunta hace un tiempo atrás cuando integré JBoss a una base de datos Oracle e implemente sobre esta plataforma el sistema de gestión de la empresa de seguros en donde trabajo, realizado con EJB 2. Al realizar tareas de administración de bases de datos, más específicamente cuando observé las estadísticas de los querys que más tiempo de procesador consumieron, encontré el motivo de mi pequeña y humilde investigación.


 


Sobre el autor


Pablo Pizarro es un Ingeniero en Informática que se especializa en
aplicaciones web empresariales. Está radicado en Mendoza, Argentina. Su
objetivo profesional es "mejorar la competitividad de las organizaciones a
través de la integración de la información". Actualmente, trabaja en el
área de I+D de la consultora minera Rojas y Asociados. Antes, trabajó en el área
de tecnología de Tarjeta Nevada (tarjeta de crédito). Hoy en día, se encuentra
desarrollando un proyecto sobre aplicaciones empresariales junto a otros
profesionales. Puede ser contactado a través de su email:
pizarropablo@gmail.com.


About the author


Pablo Pizarro is an Engineer in Information Technology, which specializes in
enterprise web applications. He lives in Mendoza, Argentina. His professional
objective is "Enhance competitiveness of organizations through the integration
of the information". Actually, he works in I+D department in Rojas & Associates
mining consultancy. Prior, he worked in the area of Technology in Tarjeta
Nevada (credit card). Today, he is developing a project about enterprise
applications with other professionals. He can be contacted at
pizarropablo@gmail.com.

jueves, noviembre 16, 2006

0

Modelos de despacho Electrico usando Algoritmos Genéticos

En Octubre, presenté mi tesis para obtener el título de Ingeniero en Informática.
En ella traté un modelo de Algoritmos Genéticos para simular el despacho de energía eléctrica.
Estos son los archivos:
* La tésis completa
* La presentación (pdf)

Agradezco a todos los que me acompañaron en esta etapa de mi vida: familiares, amigos, colegas y, la Universidad.
A continuación, el resumen del trabajo:

"Cada día la generación eléctrica tiene un mayor impacto en la contaminación ambiental. La producción de energía eléctrica aporta gran parte de esa contaminación.

El presente trabajo analiza el despachos de energía eléctrica considerando cuatro contaminantes: dióxido de carbono (CO2), óxido de nitrógeno (NOx), partículas de materias (PM) y óxido de azufre (SOx). Se presenta un modelo simple y linealizado del despacho real de carga eléctrica. La resolución del modelo se logra a través de dos técnicas: Método Revisado del Simplex y Algoritmo Genético.

Se simulan tres escenarios en base a la situación energética argentina: un escenario normal de generación de energía, un escenario donde el gas natural tiene un incremento de costo en un 50% y un escenario donde se reemplaza el gas natural por otros combustibles.

Los resultados obtenidos en cada escenario se analizan desde tres perspectivas: el despacho producido, los costos incurridos, y el impacto de las emisiones producidas. "

 


Sobre el autor


Pablo Pizarro es un Ingeniero en Informática que se especializa en
aplicaciones web empresariales. Está radicado en Mendoza, Argentina. Su
objetivo profesional es "mejorar la competitividad de las organizaciones a
través de la integración de la información". Actualmente, trabaja en el
área de I+D de la consultora minera Rojas y Asociados. Antes, trabajó en el área
de tecnología de Tarjeta Nevada (tarjeta de crédito). Hoy en día, se encuentra
desarrollando un proyecto sobre aplicaciones empresariales junto a otros
profesionales. Puede ser contactado a través de su email:
pizarropablo@gmail.com.


About the author


Pablo Pizarro is an Engineer in Information Technology, which specializes in
enterprise web applications. He lives in Mendoza, Argentina. His professional
objective is "Enhance competitiveness of organizations through the integration
of the information". Actually, he works in I+D department in Rojas & Associates
mining consultancy. Prior, he worked in the area of Technology in Tarjeta
Nevada (credit card). Today, he is developing a project about enterprise
applications with other professionals. He can be contacted at
pizarropablo@gmail.com.

sábado, septiembre 30, 2006

0

Donde se Juzga a Internet?

Brasil obliga a Google a delatar a uno de sus usuariospor El equipo de The Inquirer: Martes 5 Septiembre 2006, 9:06Un juzgado del país brasileiro ha ordenado a la empresa de Brin y Page que proporcione detalles de un miembro de una de sus comunidades sociales en Orkut, o de lo contrario pagará más de 20.000 dólares diarios.

The Inquirer ES : Brasil obliga a Google a delatar a uno de sus usuarios


Desde hace un tiempo le doy vueltas a la pregunta: donde se debería juzgar un cibercrimen?

Hoy en día, empresas como Google, tienen sus servidores distribuidos alrededor del mundo. No solo eso, la información también está distribuida. Es así que tu información personal, puede estar en EEUU o en China. Si alguien te acusa de un ciberdelito, donde es correcto q te juzguen? Mis opciones:

  • País del cracker. En este caso, el juicio debería ser según la legislación en el país de residencia del atacante.
  • País de la sede central de la empresa dañada.
  • País donde efectivamente se cometió el incidente, por ejemplo si la información se encontraba en servidores chilenos.
  • Finalmente, lo que me gustaría que se regulase en el futuro: Internet debe poseer su propia legislación de ciberdelitos. Me imagino un organismo internacional, similar a la "Corte de la Haya", donde los países deberían adherirse a esa legislación sin importar en que lugar del planeta ocurrió el incidente.

En fin, el futuro se ve amenazante en materia de ciberdelitos, debemos preparar las legislaciones que nos guiarán en la convivencia en la red. q opinás?

PD: El caso de Yahoo y el periodista chino, fué un ciberdelito? (un periodista que publicó una crítica sobre el gobierno chino, y éste obligó a Yahoo a entregar información personal. actualmente el periodista está preso).


technorati tags:

Blogged with Flock



 


Sobre el autor


Pablo Pizarro es un Ingeniero en Informática que se especializa en
aplicaciones web empresariales. Está radicado en Mendoza, Argentina. Su
objetivo profesional es "mejorar la competitividad de las organizaciones a
través de la integración de la información". Actualmente, trabaja en el
área de I+D de la consultora minera Rojas y Asociados. Antes, trabajó en el área
de tecnología de Tarjeta Nevada (tarjeta de crédito). Hoy en día, se encuentra
desarrollando un proyecto sobre aplicaciones empresariales junto a otros
profesionales. Puede ser contactado a través de su email:
pizarropablo@gmail.com.


About the author


Pablo Pizarro is an Engineer in Information Technology, which specializes in
enterprise web applications. He lives in Mendoza, Argentina. His professional
objective is "Enhance competitiveness of organizations through the integration
of the information". Actually, he works in I+D department in Rojas & Associates
mining consultancy. Prior, he worked in the area of Technology in Tarjeta
Nevada (credit card). Today, he is developing a project about enterprise
applications with other professionals. He can be contacted at
pizarropablo@gmail.com.