You are on page 1of 12

ACTIVIDAD 1

Cuadro comparativo entre estilo de arquitectura, patrn arquitectnico, arquitectura de referencia y arquitectura de software.
Estilo de arquitectura Contiene componentes, conectores o patrones. La solucin pueda ser usada ms de un milln de veces sin hacerlo siquiera dos veces de la misma forma. Contempla las restricciones. Se encuentran ya probados. Cierto nmero de partes que cooperativamente resuelven el mismo. Determinan ventajas e inconvenientes. Patrn arquitectnico Arquitectura de referencia Arquitectura de software

X X

X X X X X

Estilo de arquitectura
Describe un conjunto de componentes (con sus responsabilidades). Un conjunto de conectores entre componentes (comunicacin, coordinacin, cooperacin, etctera). Restricciones que definen cmo se integran los componentes para formar el sistema. Modelos que permiten comprender las propiedades de un sistema general en funcin de las propiedades conocidas de las partes que lo integran.

Patrn arquitectnico
Cada patrn describe un problema que ocurre una y otra vez en nuestro entorno, para describir despus el ncleo de la solucin a ese problema, de tal manera que esa solucin

pueda ser usada ms de un milln de veces sin hacerlo siquiera dos veces de la misma forma. Los patrones estn ya probados, son reutilizables y son expresivos (cuando un equipo de desarrolladores tiene un vocabulario comn de patrones, se puede comunicar de manera fluida y precisa las ideas fundamentales sobre el diseo de una aplicacin.

Arquitectura de referencia
Un modelo de referencia es una descomposicin de un problema en un cierto nmero de partes que cooperativamente resuelven el mismo. Es un modelo de referencia planeado sobre elementos de software y el flujo de datos entre ellos. Un elemento de software puede implementar parte de una funcin o de varias funciones.

Arquitectura de software
Proporciona cierta informacin: La naturaleza de los elementos. Si los elementos son procesos, programas, objetos, etc. Las funciones de los elementos. El significado de las relaciones entre cada elemento. El significado de la distribucin de los elementos. Por ejemplo. Elementos localizados en diferentes niveles.

Conclusin
Como se puede ver en el cuadro comparativo de acuerdo a la investigacin que se hizo en internet y con apoyo del material en clase se estima que las arquitecturas ms completas serian: Estilo de arquitectura y arquitectura de referencia, cabe destacar que no se tom en cuanta en casos especficos si no que se tom de forma general a donde se aplicaran pues de ser as no se podra cuantificar de manera adecuada pues cada una obtiene su mximo potencial de acuerdo a un problema especfico.

Que ofrece la tecnologa Java y .Net Java


Conozca ms sobre la tecnologa Java
Java es la base para prcticamente todos los tipos de aplicaciones de red, adems del estndar global para desarrollar y distribuir aplicaciones mviles, juegos, contenido basado en web y software de empresa. Con ms de 9 millones de desarrolladores en todo el mundo, Java le permite desarrollar, implementar y utilizar de forma eficaz interesantes aplicaciones y servicios.

Desde porttiles hasta centros de datos, desde consolas para juegos hasta sper computadoras, desde telfonos mviles hasta Internet, Java est en todas partes.

Logotipo de Java
1,100 millones de escritorios ejecutan Oracle Java 930 millones de descargas de Java Runtime Environment cada ao 3 mil millones de telfonos mviles ejecutan Java Se entregan 31 veces ms al ao telfonos Java que Apple y Android juntos El 100% de los reproductores de Blu-ray ejecutan Java Se fabrican 1400 millones de tarjetas Java cada ao Java se incluye en decodificadores, impresoras, juegos, sistemas de navegacin en vehculos, cajeros automticos, terminales de loteras, dispositivos mdicos, estaciones de pago de aparcamientos y mucho ms.

Por qu los desarrolladores de software eligen Java?


Java ha sido probado, ajustado, ampliado y probado por toda una comunidad de desarrolladores, arquitectos de aplicaciones y entusiastas de Java. Java est diseado para permitir el desarrollo de aplicaciones porttiles de elevado rendimiento para el ms amplio rango de plataformas informticas posible. Al poner a disposicin de todo el mundo aplicaciones en entornos heterogneos, las empresas pueden proporcionar ms servicios y mejorar la productividad, las comunicaciones y colaboracin del usuario final y reducir drsticamente el costo de propiedad tanto para aplicaciones de usuario como de empresa. Java se ha convertido en un valor impagable para los desarrolladores, ya que les permite:

Escribir software en una plataforma y ejecutarla virtualmente en otra Crear programas que se puedan ejecutar en un explorador y acceder a servicios Web disponibles Desarrollar aplicaciones de servidor para foros en lnea, almacenes, encuestas, procesamiento de formularios HTML y mucho ms Combinar aplicaciones o servicios que utilizan el lenguaje Java para crear aplicaciones o servicios con un gran nivel de personalizacin Escribir aplicaciones potentes y eficaces para telfonos mviles, procesadores remotos, productos de consumo y prcticamente cualquier otro dispositivo electrnico Formas en las que los desarrolladores de software aprenden a utilizar Java Registrarse en JavaOne 2012 Muchas universidades ofrecen cursos de programacin sobre la plataforma Java. Oracle Academy ofrece una completa cartera de software, plan de estudios, tecnologa alojada, formacin de profesorado, soporte y recursos de certificacin para instituciones educativas de primaria y secundaria, escuelas taller y centros de enseanza superior para uso del profesorado, entre otras, una oferta Java con capacidad para cientos de miles de alumnos. Adems, los desarrolladores tambin pueden mejorar sus conocimientos de programacin Java consultando el sitio web de desarrolladores de Java de Oracle, suscribindose a los boletines orientados a la tecnologa Java y Java Magazine, utilizando el tutorial de Java y el centro para nuevos usuarios de programacin Java, adems de suscribirse a cursos web, virtuales o dirigidos por instructores especializados.

Logotipo de OTNOracle Technology Network es la comunidad ms grande del mundo de desarrolladores de aplicacin, administradores del sistema, administradores de bases de datos, desarrolladores/administradores de sistemas y arquitectos que utilizan las tecnologas estndar del sector en combinacin con productos de Oracle. Tambin es donde est java.oracle.com, la fuente ms actualizada, de mayor fiabilidad y completa de informacin tcnica sobre Java. La suscripcin es gratuita, participe ya (En el Perfil, active la casilla Oracle Technology Network que aparece debajo de Miembros de mi comunidad.)

Programa de formacin en Java para jvenes desarrolladores


Desde pequeos, vamos aprendiendo lenguajes de programacin. Herramientas educativas visuales como, por ejemplo, Alice, Greenfoot y BlueJ ensean a los jvenes a programar con el lenguaje de programacin Java y otros lenguajes de programacin basados en ste y pensados para facilitar su uso.

Qu es JavaFX?
JavaFX est basado en Java. La plataforma JavaFX permite a los desarrolladores de la aplicacin crear e implementar fcilmente aplicaciones de Internet enriquecidas (RIA) que se comportan de la misma forma en distintas plataformas. JavaFX ampla la potencia de Java permitiendo a los desarrolladores utilizar cualquier biblioteca de Java en aplicaciones JavaFX. De esta forma, los desarrolladores pueden ampliar sus capacidades en Java y utilizar la tecnologa de presentacin que JavaFX proporciona para crear atractivo visual.

Caractersticas
Independencia de la plataforma
Java funciona con las principales plataformas de hardware y sistemas operativos, o bien con el software JVM directamente desde Oracle, a travs de uno de los muchos partners del ecosistema de Java, o como parte de la comunidad OpenJDK.

Alto rendimiento
HotSpot y JRockit son ejemplos de tecnologas de equipos virtuales de interpretacin dinmica (JIT) y de eficacia probada que hacen de Java uno de los entornos de programacin ms rpidos. Las optimizaciones integradas para entornos multiproceso lo hacen an ms rpido.

Fcil de aprender
Java es el lenguaje de programacin preferido por las universidades y las instituciones de enseanza de todo el mundo.

El modelo de Java para la gestin de la memoria, los procesos mltiples y la gestin de excepciones lo convierte en un lenguaje eficaz para los desarrolladores nuevos y para los ms experimentados.

Basado en estndares
El lenguaje Java y la tecnologa relacionada evolucionan a travs de Java Community Process, un mecanismo que permite desarrollar especificaciones tcnicas para la tecnologa Java.

Prevalencia mundial
Java es la plataforma de aplicaciones ms popular del planeta y proporciona un interesante ecosistema de desarrolladores impulsado por herramientas eficaces, libros, bibliotecas, muestras de cdigo y mucho ms.

Entornos de ejecucin coherentes


Java permite realizar despliegues con confianza con entornos de tiempo de ejecucin que van de Java SE en equipos de sobremesa a Java SE for Embedded Devices y Oracle Java Micro Edition Embedded Client.

Optimizado para los dispositivos integrados


Java SE for Embedded Devices incluye compatibilidad con requisitos clave, como la compatibilidad con procesadores integrados, la gestin de potencia, los despliegues con huella pequea y mucho ms. Oracle Java ME Embedded Client se basa en Connected Device Configuration (CDC), un subconjunto de la plataforma Java SE, y proporciona rendimiento Java para los dispositivos con recursos restringidos.

Aplicaciones porttiles con alto rendimiento


Java alcanza un rendimiento nativo y proporciona portabilidad en una amplia gama de procesadores y sistemas operativos integrados.

Modelo con seguridad probada


Java ofrece un entorno de aplicaciones avanzado con un alto nivel de seguridad que es idneo para las aplicaciones de red.

Java Platform, Enterprise Edition (Java EE) 6


Java EE 6 incluye el nuevo y ligero Web Profile para crear las aplicaciones web de ltima generacin, as como toda la eficacia de la plataforma Java EE 6 para las aplicaciones empresariales. Los desarrolladores se benefician de ms anotaciones, ms POJO, empaquetado simplificado y menos configuracin XML.

IDE (Entorno de Desarrollo Integrado) para java


JDeveloper
El de oracle, la verdad comparado con NetBeans y Eclipse se siente un poco sencillo, pero es muy poderoso y aunque no es tan rico en funcionalidades sirve para crear prcticamente cualquier proyecto de software, adems tiene integrado ADF que es una tecnologa propia de ORACLE.

Netbeans
Muy interesante y con muchas funcionalidades de un solo click, web services con un solo click, EJB con un solo click muy entretenido de usar y contiene una alta variedad de plug in hechos por la comunidad.

Eclipse
Uno de los mejores ide para java, no por nada es utilizados en Rational de IBM.

Rational
Basado en eclipse pero con el poderoso servidor de websphere, uno de los mas usados en empresas de alto nivel que tienen varia tecnologa IBM, si quieren utilizarlo pueden bajar el trial o utilizar eclipse.

BlueJ
Para los que empiezan, en teora te ayuda para la programacin orientada a objetos y otras buenas practicas de la programacin.

.Net
.NET es un framework de Microsoft que hace un nfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rpido desarrollo de aplicaciones. Basado en ella, la empresa intenta desarrollar una estrategia horizontal que integre todos sus productos, desde el sistema operativo hasta las herramientas de mercado. .NET podra considerarse una respuesta de Microsoft al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java de Oracle Corporation y a los

diversos framework de desarrollo web basados en PHP. Su propuesta es ofrecer una manera rpida y econmica, a la vez que segura y robusta, de desarrollar aplicaciones o como la misma plataforma las denomina, soluciones permitiendo una integracin ms rpida y gil entre empresas y un acceso ms simple y universal a todo tipo de informacin desde cualquier tipo de dispositivo.

Consideraciones
La plataforma .NET de Microsoft es un componente de software que puede ser aadido al sistema operativo Windows. Provee un extenso conjunto de soluciones predefinidas para necesidades generales de la programacin de aplicaciones, y administra la ejecucin de los programas escritos especficamente con la plataforma. Esta solucin es el producto principal en la oferta de Microsoft, y pretende ser utilizada por la mayora de las aplicaciones creadas para la plataforma Windows. .NET Framework se incluye en Windows Server 2008, Windows Vista y Windows 7. De igual manera, la versin actual de dicho componente puede ser instalada en Windows XP, y en la familia de sistemas operativos Windows Server 2003. Una versin "reducida" de .NET Framework est disponible para la plataforma Windows Mobile, incluyendo telfonos inteligentes. La norma (incluido en ECMA-335, ISO/IEC 23271) que define el conjunto de funciones que debe implementar la biblioteca de clases base (BCL por sus siglas en ingls, tal vez el ms importante de los componentes de la plataforma), define un conjunto funcional mnimo que debe implementarse para que el marco de trabajo sea soportado por un sistema operativo. Aunque Microsoft implement esta norma para su sistema operativo Windows, la publicacin de la norma abre la posibilidad de que sea implementada para cualquier otro sistema operativo existente o futuro, permitiendo que las aplicaciones corran sobre la plataforma independientemente del sistema operativo para el cual haya sido implementada. El Proyecto Mono emprendido por Ximian pretende realizar la implementacin de la norma para varios sistemas operativos adicionales bajo el marco del cdigo abierto.

Componentes
Los principales componentes del marco de trabajo son: El conjunto de lenguajes de programacin. La biblioteca de clases base o BCL. El entorno comn de ejecucin para lenguajes, o CLR por sus siglas en ingls. Debido a la publicacin de la norma para la infraestructura comn de lenguajes (CLI por sus siglas en ingls), el desarrollo de lenguajes se facilita, por lo que el marco de trabajo .NET soporta ya ms de 20 lenguajes de programacin y es posible desarrollar cualquiera de los tipos de aplicaciones soportados en la plataforma con cualquiera de ellos, lo que elimina las diferencias que existan entre lo que era posible hacer con uno u otro lenguaje.

Algunos de los lenguajes desarrollados para el marco de trabajo .NET son: C#, Visual Basic .NET, Delphi (Object Pascal), C++, F#, J#, Perl, Python, Fortran, Prolog (existen al menos dos implementaciones, el P#1 y el Prolog.NET2 ), Cobol y PowerBuilder.

Common Language Runtime


Estructura interna del entorno de ejecucin en lenguaje comn. El CLR es el verdadero ncleo del framework de .NET, entorno de ejecucin en el que se cargan las aplicaciones desarrolladas en los distintos lenguajes, ampliando el conjunto de servicios del sistema operativo (W2k y W2003). Permite integrar proyectos en distintos lenguajes soportados por la plataforma .Net, como C++, Visual Basic, C#, entre otros. La herramienta de desarrollo compila el cdigo fuente de cualquiera de los lenguajes soportados por .NET en un cdigo intermedio, el CIL (Common Intermediate Language) antes conocido como MSIL (Microsoft Intermediate Language), similar al BYTECODE de Java. Para generarlo, el compilador se basa en la especificacin CLS (Common Language Specification) que determina las reglas necesarias para crear el cdigo MSIL compatible con el CLR. Para ejecutarse se necesita un segundo paso, un compilador JIT (Just-In-Time) es el que genera el cdigo mquina real que se ejecuta en la plataforma del cliente. De esta forma se consigue con .NET independencia de la plataforma de hardware. La compilacin JIT la realiza el CLR a medida que el programa invoca mtodos. El cdigo ejecutable obtenido se almacena en la memoria cach del ordenador, siendo recompilado de nuevo slo en el caso de producirse algn cambio en el cdigo fuente.

Caractersticas
Es el encargado de proveer lo que se llama cdigo administrado, es decir, un entorno que provee servicios automticos al cdigo que se ejecuta. Los servicios son variados: Cargador de clases: permite cargar en memoria las clases. Compilador MSIL a nativo: transforma cdigo intermedio de alto nivel independiente del hardware que lo ejecuta a cdigo de mquina propio del dispositivo que lo ejecuta. Administrador de cdigo: coordina toda la operacin de los distintos subsistemas del Common Language Runtime. Recolector de basura: elimina de memoria objetos no utilizados automticamente. Motor de seguridad: administra la seguridad del cdigo que se ejecuta. Motor de depuracin: permite hacer un seguimiento de la ejecucin del cdigo an cuando se utilicen lenguajes distintos. Verificador de tipos: controla que las variables de la aplicacin usen el rea de memoria que tienen asignado.

Administrador de excepciones: maneja los errores que se producen durante la ejecucin del cdigo. Soporte de multiproceso (hilos): permite desarrollar aplicaciones que ejecuten cdigo en forma paralela. Empaquetador de COM: coordina la comunicacin con los componentes COM para que puedan ser usados por el .NET Framework. Biblioteca de Clases Base que incluye soporte para muchas funcionalidades comunes en las aplicaciones.

Biblioteca de Clases Base de .NET


Diagrama bsico de la Biblioteca de Clases Base. La Biblioteca de Clases Base (BCL por sus siglas en ingls) maneja la mayora de las operaciones bsicas que se encuentran involucradas en el desarrollo de aplicaciones, incluyendo entre otras: Interaccin con los dispositivos perifricos Manejo de datos (ADO.NET) Administracin de memoria Cifrado de datos Transmisin y recepcin de datos por distintos medios (XML, TCP/IP) Administracin de componentes Web que corren tanto en el servidor como en el cliente (ASP.NET) Manejo y administracin de excepciones Manejo del sistema de ventanas Herramientas de despliegue de grficos (GDI+) Herramientas de seguridad e integracin con la seguridad del sistema operativo Manejo de tipos de datos unificado Interaccin con otras aplicaciones Manejo de cadenas de caracteres y expresiones regulares Operaciones aritmticas Manipulacin de fechas, zonas horarias y periodos de tiempo Manejo de arreglos de datos y colecciones Manipulacin de archivos de imgenes

Aleatoriedad Generacin de cdigo Manejo de idiomas Auto descripcin de cdigo Interaccin con el API Win32 o Windows API. Compilacin de cdigo Esta funcionalidad se encuentra organizada por medio de espacios de nombres jerrquicos. La Biblioteca de Clases Base se clasifica, en cuatro grupos clave: ASP.NET y Servicios Web XML Windows Forms ADO.NET .NET

IDE (Entorno de Desarrollo Integrado) para .Net


Visual Studio .NET. Actualmente en la versin 2010, tenemos a nuestra disposicin las ediciones Express que podemos descargar libremente en las versiones Visual C#, Visual Basic .NET, Windows Phone y Web Developer. En el apartado de IDE para Linux y MacOS encontramos MonoDevelop. En su ltima versin la 2.4, da soporte para C# y otros lenguajes .NET como Nemerle, Boo, Java (va IKVM.NET) y Python. MonoDevelop fue una adaptacin de SharpDevelop para Gtk#.

Clientes base de datos


Otros de los IDEs si estamos desarrollando con SQL Server, es el SQL Server Management Studio el cual, igual que en Visual Studio, tenemos una versin Express de libre descarga. Se trata de un IDE que ha evolucionado positivamente en las ltimas versiones incorporando adems del Intellisense, compatibilidad con el control de cdigo fuentede Team Foundation Server.

Otros editores
Si es cierto que el famoso Notepad es un apoyo para el almacenamiento de informacin almacenada en el clipboard, le falta lo que Notepad++ aporta, es decir una forma de manipular cdigo de forma avanzada.

Para los que usualmente utilizan LINQ, LINQPad se ha convertido en una herramienta tremendamente til a la hora de generar consultas contra todo tipo de proveedores LINQ la cual ofrece, adems, la posibilidad de compilar cdigo y ejecutar las consultas.

Gestin ciclo de vida / cdigo fuente


Visual Studio Team Foundation Server es sin duda el servidor de gestin del ciclo de vida de aplicaciones por excelencia para entornos .NET. Sin embargo, otras alternativas como Github tambin tienen su espacio.

Virtualizacin
En el apartado de virtualizacin, adems del cliente de conexin remota que ofrece la plataforma Windows, me gustara destacar a Royal TS, la cual ofrece una versin freeware limitada a 10 conexiones y que ofrece la posibilidad de mantener varias conexiones remotas al mismo tiempo. Una de las caractersticas interesantes tambin es XP Mode de Windows 7 la cual te permite crear una imagen de un Windows XP en cuestin ideal para los test de despliegue, por ejemplo.

Diseo
Mitad IDE de desarrollo mitad software de diseo, Microsoft Expression Blend es una herramienta obligatoria para todos aquellos que desarrollan para Silverlight o WPF, tanto para aplicaciones RIA como para Windows Phone. Cabe destacar la integracin de proyectos con Visual Studio .NET lo cual hace de ambas herramientas un tandem altamente eficaz. Instant EyeDropper es ampliamente utilizado por desarrolladores Web para la captura de colores en pantalla en formatos html, HEX, RGB, HSB. Hablando en esta linea tampoco debemos olvidar tanto a MS Paint como a Paint.NET para manipular imgenes de una forma sencilla si no necesitamos utilizar tcnicas avanzadas de diseo y/o manipulacin de imgenes, claro.

Web
De la misma forma que Expression Blend es un must-have para los desarrolladores de Silverlight, Expression Web lo es para los desarrolladores de Web ofreciendo un conjunto de funcionalidades orientadas especficamente a este entorno de desarrollo. Si lo que queremos es depurar aplicaciones Web, entonces fiddler2. Con esta herramienta podemos sacar un log de todas la peticiones http y https que se generan en nuestro equipo con un potente subsistema de scripting basado en eventos.

Otros
.NET Reflector ha sido considerado durante mucho tiempo el desensamblador por excelencia de binarios en .NET hasta que sus propietarios decidieron cambiar su licencia y pasar a ser de pago. Sin embargo, no ha pasado mucho tiempo hasta que Jetbrains ha lanzado su propia versin de una herramienta llamada dotPeek que adems se integra con otras del mismo fabricante como Resharper o dotTrace. Para los que hemos vivido y sufrido el infierno de las DLL en Visual Basic 6.0 alabamos en su momento a Mark Russinovich por desarrollar Process Explorer el cual nos ofrece toda la informacin de archivos DLL, librerias nativas y subprocesos que se ejecutan dentro de un mismo proceso.

Bibliografa
http://www.genbetadev.com/herramientas/herramientas-imprescindibles-para-undesarrollador-de-net http://es.wikipedia.org/wiki/Microsoft_.NET http://msdn.microsoft.com/es-es/library/ms644566(v=vs.85).aspx http://www.oracle.com/es/technologies/java/resources/index.html http://www.slideshare.net/mstabare/arquitecturas-de-software-parte-2

You might also like