Transcript Document

iNET
Java implementation of
Microsoft .NET Framework
About Stryon
• Don Hsi, Chief Technology Officer
• Stryon is the merger of Halcyon Software
and CyberNet Engineering in 6/2002
• Headquarter in Grand Rapids, Michigan.
Product division in San Jose, CA
• Development centers in U.S., China, and
Pakistan
• 200+ employees
Service & Products
• Service
– System Integration (CyberNetEngineering.com)
– Software Migration/Transformation
– Managed Services
– Server Consolidation
• Products
– VBIX. Visual Basic for UNIX
– Instant BASIC 4 Java
– iASP. Java based Active Server Pages implementation
– RJAX/iHUB. COM+, .NET Remoting, Java bridging
middleware
Microsoft .NET
• ECMA Standard (334, 335)
• Visual Studio.Net Development Tool
• Multiple programming language support; VB, C#, C++,
Perl, Cobol, Java (J#), JavaScript (Jscript)
• Web Service XML/SOAP centric
• Integrated with Microsoft server technology; SQL Server,
BizTalk, Exchange, Great Plains
.NET Application Types
• Windows application
– WinForm, GUI.NET
• Web application
– ASP.NET, WebForm
• Web service
– ASP.NET Web Service
– XML, WSDL, SOAP
• Mobile application
– .NET Compact Framework
– Pocket PC, SmartPhone, WinCE
.NET is Cross Platforms….
On different flavors of Windows…
SQL Server
Computing Framework
MTS
Microsoft
MSMQ
BizTalk
.NET
IIS
Devices
Browser
Fat Client
Exchange
.NET
Web Services
Computing Framework
Devices
Browser
Fat Client
JDBC
Database
Java
JTS/JMS
WebLogic,
WebSphere,
SunOne, Oracle
Web
Services
EJB
App
Server
J2EE
J2SE
J2ME
Java
Web Services
Computing Framework
Devices
Browser
Fat Client
JDBC
Database
JTS/JMS
WebLogic,
WebSphere,
SunOne, Oracle
Web
Services
EJB
Java
App
Server
+ iNET
J2EE
J2SE
J2ME
.NET
Web Services
Java
Web Services
SQL Server
Computing Framework
MTS
Microsoft
MSMQ
BizTalk
.NET
IIS
Devices
Browser
Fat Client
Office
JDBC
Database
JTS/JMS
WebLogic,
WebSphere,
SunOne, Oracle
Web
Services
EJB
iNET Bridge
Java
App
Server
+ iNET
J2EE
J2SE
J2ME
.NET
Web Services
Java
Web Services
iNET Overview
C#, VB, C++,
Jscript, J#, …
VisualStudio.NET
3
2
MSIL
iNET Bridge
1
iNET Runtime
WINFORM
ADO.NET
ASP.NET
GUI.NET
Java Platforms
IL2JAVA
JAVA Source
Java
Byte Code
Java Compiler
JAVA
Write Once, Run Anywhere
iNET
Write Once In .NET, Run Anywhere
Windows Platforms, Linux, Solaris, OS/390,
Mac OS X, Palm, Pocket PC, Cell phones…
Target Audience
• ISV
–
–
–
–
Expand platform coverage
Increase revenue
Minimize risk with minimum porting overhead
Maintain single source code
• OS / Platform Vendors
– Mac OS X, Linux, IBM s390/as400/rs6000, Solaris
– Offer deployment/migration solution for .NET developers
• ISP/ASP
– Server consolidation with high power system
– Reduce NT server farm overhead
• Enterprise
– .NET & Java integration, collaboration
– Cross platform deployment, migration
Similar Effort
• Microsoft “Rotor”
• Shared Source CLI Implementation
• http://msdn.microsoft.com/library/default.asp?url=/library/enus/dndotnet/html/mssharsourcecli.asp
• mono
• http://www.go-mono.org
• Open source .NET Development Framework
• JIT for Linux/x86
• Portable.Net
• http://www.southern-storm.com.au/portable_net.html
• Support GNU/Linux
• Open source
IL2JAVA
• Translate IL Code to Java source
• Translate .NET deployment information
to J2EE deployment information
• Translate .NET Metadata to iNET
Metadata
• Products:
– VB.NET-to-Java converter
– C# -to- Java converter
– Runtime Classes [Required]
Application Isolation - AppDomain
• Code in one application domain cannot
make direct calls into another
application domain.
• To implement application isolation,
iNET calls the methods between
different AppDomain by Remoting
mechanisms.
Application Isolation example
//Create AppDomain1 in default application domain, return value is a proxy of
//new AppDomain object
AppDomain Domain1 = AppDomain.CreateDomain(“AppDomain1", 0, 0);
//Create New Instance by the AppDomain proxy object, return value from the
//new application domain is a proxy of new AppIsolation.Test object in new
//application domain
AppIsolation.Test isotest = Domain1.CreateInstance(“AppIsolation.Test”).unwrop();
//Call method of the new instance by proxy in default application domain
Isotest.checkappdomain();
Application Isolation example:
Application Host
1
1
Generate proxy
2
Return reference
Forward createinstance
method call to Appdomain1
Generate proxy
2
Return reference
3
Forward checkappdomain 3
mehtod call to Appdomain1
Default AppDomain
Note: the communication between defalut appdomain and
appdomain1 are using remoting.
New Instance of
AppIsolation.Test
in this domain
Execute
checkappdomain
Appdomain1
Security
• Evidence-based Security by extends Java
ProtectionDomain and Permission checking
• Role-based security by JAAS
• Cryptographic Security by JCE and Java
GSS-API
• Algorithms
•
•
•
•
•
Hashing: SHA1/256/384/512, MD5
Asymmetric: RSA, DSA
Symmetric: AES, TripleDES, DES, RC2
MAC: HMACSHA1, MACTripleDES
Random Number Generator
• XML Support
• W3C/IETF XML Signature
• Active in W3C XML Encryption WG
Loading Assembly
Loading a1.jar
Trusted Host
JIT Compiler/Verifier
Evidence
Information
about an
Assembly
iNET Classloader
Policy
Create ProtectionDomain
a1.jar
Grant permission
Policy
determines
Permissions
granted
iASP.NET
• Java implementation of ASP.NET
• Java Servlet 2.3
• Http Pipeline
• Web Form
• Web Service
iASP.NET Implementation
• Translate HttpModule to Servlet 2.3
• Translate HttpHandler to Servlet 2.3
HttpServlet
• Leverage ServletContext to
implement HttpApplication
Management.
• Application Event with
ServletContextListener
• Session Event by HttpSessionListener
iNET Remoting
• The Java implementation of MS .NET
Remoting
• Support dynamic proxy generation
• Support Sink, Channel, and Channel
registry
• Support SOAP and binary format.
• Support TCP & HTTP protocol
iNET Remoting Architecture
Remote Object
Transparent Proxy
envelop
Instance Object
unenvelop
Real Proxy
Message sink
Message sink
Channels
Channels
Message
Microsoft .NET Compatibility
.NET APP
.NET Framework
Transaction/
ADSI/MSMQ
il2java
JMS
JDBC
Remoting/COM+
XML/ADO
JFC
WINFORM
ASP.NET
MOBILE APP
Base class library
Windows.NET
Java APP
iNET Framework
iHUB
iADO.NET
IGUI.NET
iASP.NET
Servlet
J2ME
Base class library
Any OS
Roadmap
• Conversion
– VB.NET, C# to Java
– Integration with Eclipse, JBuilder, SunONE
Studio, …
• ASP.NET/Web Service
• GUI/WINFORM (fat) client applications
• Mobile (.NET Compact Framework) Apps
– Symbian
– J2ME, P-Java, Java Phone
Q&A
Don Hsi
[email protected]
+1 (408) 891-2023
SQL Server
MTS
Microsoft
MSMQ
BizTalk
.NET
IIS
Devices
Browser
Fat Client
Office
JDBC
Database
iNET Bridge
Java Platform
JTS/JMS
WebLogic,
WebSphere,
SunOne, Oracle
Web
Services
EJB
App
Server
+ iNET
J2EE
J2SE
J2ME
.NET
Web Services
Java
Web Services