Title: Diciembre 2002
1Interoperabilidad e Integración ILa plataforma
de desarrollo Microsoft .NET una sencilla
comparación con J2EEMSDN Regional Director
2Avisos y Aclaraciones
- Punto de Partida
- .NET es un conjunto de productos reales
- J2EE es un conjunto de especificaciones
3Comparaciones Técnicas
- Arquitectura
- Servicios de Componentes
- Aplicaciones Distribuidas
- Acceso a datos
- Servicios Web XML
- Aplicaciones Web
- Integración
4Plataforma Java 2
Desde el 99 el foco de Java es la Empresa
5Que es J2EE?
- Conjunto de
- Modelo de programación de aplicaciones
- Especificación de una plataforma APIs y
servicios (1600 páginas) - Conjunto de Test 5000 tests
- Implementación de referencia
- Todo incluido en un programa de MARCA
- La plataforma une todas las APIs empresariales
de JAVA - EJB, Servlet, JSP, Java Web Server, JNDI, JDBC,
JTA, JMS, JavaMail, CORBA - NO Incluye
- APIs para Servicios Web XML, XML Data binding,
clustering, session state sharing, y mas. - Herramientas de desarrollo, Servidores,
herramientas de administración
6Aplicación J2EE
Firewall
Application Server
Client
Enterprise Information Systems (EIS)
CORBA
EJB
Client
Client
JSP/ Servlet
Relational-Database, Legacy Applications, ERP
Systems
EJB
HTTP
Client
XML
Client
Other Services JNDI, JMS, JavaMail, XML
Client Tier
EIS Tier
Middle Tier
Igual que Windows DNA / .NET
7El Modelo J2EE
JDBC
HTTP Engine
HTTP Client
JSP
Servlet
Servlet Container
J2EE Server
8.NET usa ASP.NET para aplicaciones Web
.NET App
IIS HTTP Engine
SOAP Client
CLR Host
HTTP Client
CLR Platform
9(No Transcript)
10Licencias Autorizadas de J2EE
- SilverStream
- Fujitsu
- Nokia
- NEC
- Tibco
- Brokat (Gemstone)
- Hitachi
- Supercede
- Sybase
- Persistence
- BoradVision
- BEA WebLogic
- IBM WebSphere
- Suns iPlanet
- Oracle9iAS
- HP Bluestone
- Borland
- IONA iPoartal
- CA
- Allaire/Macromedia
- ATG
- Compaq
WebSphere (27) WebLogic (39) Suns iPlanet
(15) Oracle9iAS (14) 95
11Qué es EJB?Suns Enterprise JavaBeans
- Modelo de componentes en el servidor
- No es una extensión de los JavaBeans
- Servicios ciclo de vida, transacciones,
seguridad, conectividad, acceso de bases de
datos, pooling, etc - No es CORBA
- Aunque usa CORBA IIOP
Como COM permite al desarrollador concentrarse
en la PURA lógica de negocio
12Escogiendo un modelo de Bean
Tipos de Bean
Session
Entity
Container Managed CMP
Bean Managed BMP
Stateful
Stateless
La elección no es fácil Casi siempre utilizamos
los Stateless Session Beans
13Qué es JSP ?Java Server Pages Codigo Java en
paginas HTML
2
.jsp
3
1
Servlet (Bytecode)
HTTP request(JSP)
HTML
Solo se recompila si la página cambia
4
5
HTTP response(HTML)
Client
Server
Como ASP pero mas rápido, usa un mejor lenguaje
y mas facil de mantener - MVC
14Model-View-Controller
JSP
Browser
Data
HTTP
Servlet
Business Logic
Code-Behind el final del spaghetti code El
servlet llama al JSP correcto muchos
prefieren JSP/Servlets than EJBs
15Qué es JMS ?Java Message Service
- Clases Java que definen un API a cualquier
sistema de colas de mensajes - Soportado por IBM MQseries y otros
Qué es JCA ?J2EE Connectors Architecture Spec
- Como escribir conectores enchufables a un
servidor de aplicaciones y asà poder comunicarse
con sistemas de terceras partes.
Como MSMQ, HIS (COMTI), BizTalky los Web Services
16La Plataforma
Cache / Proxy / Fwall
Commerce
Integration
Tools
Management
Collaboration
Content Mgmt
Wireless/Mobile
Data
Application Server
17La Plataforma Microsoft
ISA Server
VisualStudioVisio 3rd party Add-ons
App CenterMOM
CS2000
BizTalk / HIS
Exchange / SPS
Content Mgmt Server
Mobile Info Server
SQL Server
Windows Server
18Dónde cabe J2EE?
J2EE
J2EE
J2EE
19La Plataforma IBM
Cache / Proxy / Fwall
WebSphere Edge Server
VisualAgeforJavaWebSphereStudio
WebSphereBusiness Components
Tivoli
Commerce
WebSphere Commerce Srvr
WebSphere Integration
Integration
Tools
Management
Collaboration
Lotus / WebSphere Portal
Content Mgmt
Content Mgmt Server
Wireless/Mobile
Mobile Info Server
Data
DB2 UDB
Application Server
WebSphere App Server (TXSeries, CICS, Encina)
Multiples Sistemas Operativos
20La plataforma Sun / iPlanet
Cache / Proxy / Fwall
iPlanet Web Proxy Server
ForteforJavaNetBeansiPlanet AppBuilder
?
Commerce
iPlanet ECXpert
iPlanet Integration Srvr Enterprise Connectors
Integration
Tools
Management
iPlanet Msging / Portal
Collaboration
Content Mgmt
?
Wireless/Mobile
iPlanet Wireless Server
Data
Oracle?
Application Server
iPlanet App Server
Solaris
21La plataforma BEA
Cache / Proxy / Fwall
?
WebGainStudio Cajun
?
Commerce
WebLogic Commerce Personalization
WebLogic Integration
Integration
Tools
Management
Collaboration
WebLogic Integration
Content Mgmt
Vignette?
Wireless/Mobile
?
Data
Oracle?
Application Server
WebLogic Server
Multiple Operating Systems
22La Plataforma Oracle
Cache / Proxy / Fwall
?
OracleDeveloper
?
Commerce
Oracle Applications
Integration
Tools
Management
Collaboration
Content Mgmt
Vignette?
Wireless/Mobile
?
Data
Oracle
Application Server
Oracle9i App Server
Multiple Operating Systems
23 Que es Microsoft .NET ?
PCs Dispositivos
Experiencia de usuario
Visual Studio.NET .NET Framework
Web Services
Servidores
24Distribución de Aplicaciones
- J2EE
- Distribución usando el Application Server
- Metadata en los descriptores de despliegue
- Ficheros JAR, WAR, EAR
- Versionado no soportado por el cargador de Java
- .NET
- XCOPY
- Metadata puede estar en el
- código o en los ficheros
- de configuración
- Global Assemblies y GAC
- Strong Names evitan conflictos de nombres
- Incorpora versionado
25Capacidades orientadas a Servidor
- .NET Component Services
- COM Services expuestos a .NET
- Ofrece contexto, seguridad, transacciones,
pooling, eventos libremente acoplados, activación
asÃncrona - Integrado en el sistema operativo altamente
optimizado - Condicionado al sistema operativo
- J2EEs EJB
- EJB Server / Container gestiona los EJBs
- Ofrece contexto, seguridad, transacciones,
pooling, gestión de persistencia ( asincronismo
en J2EE v1.3) - Incluido en el Servidor de Aplicaciones J2EE
Sistuado sobre el Sistema Operativo - Condicionado al Servidor de Aplicaciones
26Invocación remota
- .NET Remoting
- Basado en estándares (HTTP, TCP)
- Funciona directamente pero es altamente
extensible y securizable - Soporta invocaciones de métodos sincronas y
asÃncronas - Totalmente integrado con SOAP
- J2EE Remoting
- RMI/IIOP
- RMI esta destinado a Java únicamente
- Interoperabilidad entre lenguajes a través de
CORBA - Requiere un registro RMI o JNDI
- Extensibleusando Socket Factories y Custom
Sockets - Servicios Web no es una parte de J2EE
especifico del vendedor, o lo puede añadir usted
27Mensajeria y Colas
- .NET
- API System.Messaging
- Mensajeria Persistente y Asincrona
- Ofrece eventos, prioridades, trasacionalidad, ,
seguridad, formatos de mensajes a medida (XML
por defecto) - Actualmente el MSMQ es el único proveedor
- J2EE
- Java Messaging Service (JMS) API
- Requiere un proveedor JMS
- MQSeries, Sonic, Fiorano, BEA, Oracle, ?
- Los proveedores JMS no interoperan o intercambian
mensajes
28El Modelo ADO.NET
29ADO.NET versus JDBC2
- JDBC esta basado en ODBC
- Familiar, pero de bajo nivel, requiere mas código
- Orientado a SQL (Que pasa con las fuentes no
SQL?) - Implementaciones varÃan (IBMs DataAccessBeans)
- JDBC RowSets vs ADO.NET DataSets
- JDBC mas datos para marshal, Código mas complejo
- JDBC no soporta datos desconectados
- XML Data Binding (JAXB)
- Solo serializacion / deserializacion, no
presentación - próxima versión v0.2 spec no es parte de
J2EE - ADO.NET permite todo lo anterior
- JDBC v3.0 también llegara pronto, como J2EE
v1.4?) - Savepoints, portabilidad, result sets múltiples
30Protocolo Universal de Conexión
- J2EE
- JAXP requerido en J2EE v1.3, opcional antes
- API Parser para DOM Level 2, SAX 2.0, XSLT 1.0
- JAXM todavia en borrador
- Java XML Pack
- APIs de servicios Web de bajo nivel
- Vendedores extienden J2EE en diferentes formas
- .NET incluido en el , parte fundamental
- Soporte XML 1.0 DTD, Schemas, XPath, XSLT, DOM
Level 1 y 2 Core, SOAP 1.1, WSDL - Soporte de herramientas sencillez
- La fontanerÃa esta oculta
31ASP.NET vs JSP/Servlet
- Ambos
- Compilación Just-in-time rápido a muy rápido
- Distribución vÃa Xcopy
- Separación de la lógica (MVC) Code-behind
- Página inteligente o cache de fragmentos de
página (para JSP thru vendors) - Pueden generar y servir XML
- ASP.NET
- LibrerÃa de controles de servidor (Web Forms) con
estado - Servicios Web muy facil
- Multi-lenguaje C, J, C, VB, COBOL, Jscript,
more - Acceso a los recursos del sistema (logs,
ficheros, perf counters, etc.) - Excelentes capacidades de tracing
- JSP/Servlet
- Multi-vendor, multi-OS
32ASP.NET vs JSP/Servlet Perf
more comparisons from Microsoft
http//www.gotdotnet.com/team/compare
33Diferencias entre Microsofty los vendedores de
infraestructura
34Conexión con Código heredado
- .NET Interop
- .NET a COM vÃa Runtime Callable Wrappers (RCW)
- COM a .NET vÃa COM Callable Wrappers (CCW)
- MQSeries, SAP, Siebel, Clarify, Onyx, many others
- Platform Invocation Services (PInvoke)
cualquier DLL - Creación de Servicios Windows
- Java Interop
- JNI llamada a código no Java desde Java no
permitido en in EJB - Invocar Java desde no-Java en un proceso es un
desafÃo - Java Connector Architecture (J2EE 1.3)
- No ampliamente distribuido
- Se cuestiona el modelo
- Ambos
- Amplio soporte de bases de datos
- Integración de Brokers (vendor-specific Biztalk,
MQ Integrator, etc) - Ficheros XML / intercambio de documentos via
XML parsing code
35El proyecto Mono .NET multiplataforma?
- Mono Implementación Open-Source de .NET
- Implementación del CLI y del C (ECMA Standard)
- Extensiones
- Algunas en la librerÃa de clases del Framework
- IL Interpreter
- Patrocinado por Ximian, una compañÃa de
distribución de Linux - .NET resuelve el multi lenguaje, el GC, los
problemas de threading en Linux - Eso no significa que .NET es ahora multi
Plataforma (Esto no es una equivalencia a Java) - .NET es todavÃa plataforma Microsoft
- No es un competidor de Microsoft .NET
- Microsoft espera y fomenta esto vÃa ECMA
- Ximian reconoce el valor del soporte multi
lenguaje.
36.NET vs. J2EE
- Common Services
- WebForms now equivalent to JSP/Servlet
- Parallels in many other services
- .NET Differentiators
- VS.NET Great toolset
- ADO.NET, ASP.NET function and developer
productivity - CLR reaching out to all developers, all
languages - Web Services built-in (but Java vendors are
adding this on) - System access
- Single platform Windows only
37Dynamic Server PagesASP.NET vs JSP/Servlet
- Both
- Just-in-time compiled, reasonably fast
- Xcopy deployment
- Separation of logic (MVC) Code-behind
- Intelligent page caching
- XML friendly
- ASP.NET only
- Server-side controls (Web Forms) with state
- Web Services so easy
- Multi-language
- Get access to system resources (logs, files,
perf counters, etc.)
38Data AccessMS ADO.NET vs. EJB, JDBC, JDO?
- J2EEs data access strategy is not so clear
- EJB
- Tight coupling of data store
- Problems with XML support
- JDBC quite limited, static, no XML
- JDO concept, no product yet
- ADO.NET
- Common data access across the enterprise
- Simple, Elegant not burdened with mandatory
remote interfaces - High-performance
- Expose data object model directly
- Loosely coupled model
- XML is integral
- A big achievement for programmer productivity
39(No Transcript)
40Forum de Desarrolladores Corporativos
INTEROPERABILIDAD E INTEGRACIÓN I La plataforma
de desarrollo Microsoft .NET una sencilla
comparación con J2EE