Title: iNET
1 - iNET
- Java implementation of Microsoft .NET Framework
2About 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
3Service 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
4Microsoft .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
5.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
6.NET is Cross Platforms.
- On different flavors of Windows
7Computing Framework
Microsoft
Devices Browser Fat Client
IIS
.NET
.NET Web Services
8Computing Framework
Devices Browser Fat Client
Java
App Server
J2EE J2SE J2ME
Java Web Services
9Computing Framework
Devices Browser Fat Client
Java
App Server iNET
J2EE J2SE J2ME
.NET Web Services
Java Web Services
10Computing Framework
Microsoft
Devices Browser Fat Client
IIS
.NET
iNET Bridge
Java
App Server iNET
J2EE J2SE J2ME
.NET Web Services
Java Web Services
11iNET Overview
C, VB, C, Jscript, J,
MSIL
VisualStudio.NET
3
iNET Bridge
1
2
iNET Runtime
IL2JAVA
ADO.NET
WINFORM
JAVA Source
GUI.NET
ASP.NET
Java Byte Code
Java Compiler
Java Platforms
12JAVA
13iNET
- Write Once In .NET, Run Anywhere
Windows Platforms, Linux, Solaris, OS/390, Mac OS
X, Palm, Pocket PC, Cell phones
14Target 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
15Similar Effort
- Microsoft Rotor
- Shared Source CLI Implementation
- http//msdn.microsoft.com/library/default.asp?url
/library/en-us/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
16IL2JAVA
- 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
17Application 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.
18Application Isolation example
- //Create AppDomain1 in default application
domain, return value is a proxy of - //new AppDomain object
- AppDomain Domain1 AppDomain.CreateDomain(AppDom
ain1", 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()
19Application Isolation example
Application Host
1
Request to create Appdomain
Create new AppDomain
1
Generate proxy
Return reference
Forward createinstance method call to Appdomain1
New Instance of AppIsolation.Test in this domain
2
2
Generate proxy
Return reference
Forward checkappdomain mehtod call to Appdomain1
Execute checkappdomain
3
3
Default AppDomain
Appdomain1
Note the communication between defalut appdomain
and appdomain1 are using remoting.
20Security
- 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
21Loading Assembly
Loading a1.jar
Trusted Host
JIT Compiler/Verifier
Evidence
Information about an Assembly
iNET Classloader
Policy
Policy determines Permissions granted
Create ProtectionDomain
a1.jar
Grant permission
22iASP.NET
- Java implementation of ASP.NET
- Java Servlet 2.3
- Http Pipeline
- Web Form
- Web Service
23iASP.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
24iNET 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
25iNET Remoting Architecture
Remote Object
Transparent Proxy
Instance Object
unenvelop
envelop
Real Proxy
Message sink
Message sink
Channels
Channels
Message
26Microsoft .NET Compatibility
.NET APP
Java APP
.NET Framework
iNET Framework
iHUB
Transaction/ ADSI/MSMQ
iADO.NET
Remoting/COM
IGUI.NET
XML/ADO
iASP.NET
WINFORM
ASP.NET
MOBILE APP
Base class library
Base class library
Windows.NET
Any OS
27Roadmap
- 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
28 - QA
- Don Hsi
- Dhsi_at_stryon.com
- 1 (408) 891-2023
29Microsoft
Devices Browser Fat Client
IIS
.NET
iNET Bridge
Java Platform
App Server iNET
J2EE J2SE J2ME
.NET Web Services
Java Web Services