The starting presentation for Project Managers who need to manage Microsoft .NET and J2EE Projects.
1. December 7, 2008
Welcome and Introductions
Computer Networking Basics
Distributed Computing Fundamentals
Platform Wars Java, .NET and the 3 rd front
You the techie, manager and salesperson
President and Founder of Emjive Consulting LLC.
Working on various technologies including Java and Microsoft .NET on Windows and Linux platforms since 1999.
Masters degree in Computer Applications from Devi Ahliya University, Indore, Madhya Pradesh (INDIA)
Wrote my first piece of useful code in 1983 using BASIC on a 8-bit Atari computer.
Ask questions or comment at any time.
Fact: I do NOT know everything and can and probably will make things up!!!!
Feel free to share your experience.
Take notes to check later if you know things differently.
5. Section 1:
De-facto Standard of Computer to Computer Communication TCP/IP.
Reason for the rise dot com boom of the 1990s.
Replaced many proprietary protocols such as IPX/SPX (Novell), NetBIOS (Microsoft), Banyan Vines etc on LAN.
Relevance: Foundation of all new applications enterprise or consumer.
No major application today can afford to exist in a silo.
Higher level application protocols depend upon TCP/IP stack to exchange information including Web (HTTP), Mail (SMTP, IMAP) and Instant Messaging (XMPP)
IPv4 Addressing 32 bit address. Presented in canonical form as xxx.xxx.xxx.xxx, where xxx: 0-255.
2 32 = about 4 billion computers on the Internet.
Classes of IP Addresses A, B and C based on network size. D and E (Special Purpose)
Internal LAN IP address 10.0.x.x, 172.16.x.x and 192.168.x.x
Types of TCP/IP communication Stream and Datagram
Transport Layer: TCP = Stream; UDP = Datagram
Application bind to ports or channels on the transport layer.
Reserved Ports 0 1024
Max Port number 2 16 = 65536
Well known reserved port
TCP /80 HTTP/Web
UDP/226 Windows File share
TCP Applications telnet, FTP, Web
UDP Applications VoIP, Video Streaming, Network File sharing
Client Computer initiates communications over a known port Server designates a free port to continue communications. Client continues communication on the new port. Client Computer and server continue conversation. Client or server computer close communication port to end communication.
TCP based protocol
Default port: 80; Popular ports: 8000, 8080, 8090
Stateless in nature
Client and Server may exchange or store information to maintain state and keep in sync.
Session ID is a commonly used information.
Secure Cousin HTTPS uses encryption
13. Section 2:
Early Days - Concept originated in mid 1980s with large proliferation of PCs at workplace
Departmental servers become powerful enough to run multitasking OS such as UNIX, Netware OS.
Single Tier Application file sharing, applications shared the same server (e.g. Unix shells) or bring over a local copy to the network node (e.g. DOS executables)
Next Evolution Two tier Client/Server applications.
Divided the application logic and database services at the minimum.
Typical Applications built on Visual BASIC, PowerBuilder, Oracle Forms
Limitation not very scalable or manageable.
Limitation - Entire application built on single core language and platform.
First true industry standard for distributed computing CORBA
CORBA Common Object Request Broker Architecture.
Allowed developers to transcend language and platform.
Example a Java developer on Unix platform could utilize objects of a C++ class on Windows platform REMOTELY!!!
Microsoft in early 1990s came out with its own specification for distributed objects called DCOM or Distributed Component Object Model based on their previous COM model
Similar in concept and intent to CORBA, DCOM works only on Windows platform.
18. Local Application calls a Proxy Object Proxy Object calls connects to remote object container Proxy Object may utilize the services of an object broker to locate the remote container Remote container instantiates the remote object and provides the communication channel
Some popular technologies today :
Web Services SOAP/REST (cross platform/most popular)
Remote Method Invocation (RMI) and Java Message Service (J2EE environments)
.NET Remoting (Windows Environment)
Enterprise/Internet Service Bus
Concept to keep in mind
20. Section 3:
Initially developed by Sun Microsystems to run on set top boxes.
First public implementation 1995 with promise of Write Once, Run Anywhere principle.
First wave of programming capability was on Desktop and small downloadable programs on browser called Applets.
By 1997, became the leading language to program on the internet browsers.
Server side component Servlet, in June 1997 were introduced to generate to publish dynamic content based on user input.
Soon there was push for more complex and functional server side components like Java Server Pages, EJBs etc.
Java WORA magic
Java 2 Standard Edition (J2SE)
Targets Client Applications Desktop, Browser
Current version Version 6.0 (7.0 in early beta)
Java 2 Enterprise Edition (J2EE)
Large scale enterprise applications
Current Version 5.0
Java 2 Micro Edition (J2ME)
Mobile and low powered devices
Current Version 3.0
Popular Tools and Solutions
JDK/JVM Sun JVM, IBM, Apache Harmony
IDEs Eclipse, NetBeans, JBuilder, WSAD
J2EE Servers - Apache Tomcat, Sun - Glassfish, IBM Websphere, BEA/Oracle Weblogic
Just in Time (JIT) Complier
Prior to Microsoft .NET Development on Windows Platform was very fragmented.
Client Applications Visual BASIC, Visual C++ and MFC, Borland C++ and Delphi with OWL
System Applications Win32 API with Visual C++ and Borland C++
Enterprise Applications DCOM/COM+, DDE
Web Based Application Active Server Pages, ISAPI (using C++ and COM/DCOM), ActiveX
Microsoft .NET was a opportunity to consolidate competing APIs on the Windows platform and respond to threat of Java in the enterprise arena.
Promise Code in ANY language but RUN on Microsoft .NET platform.
Reason - Windows platform is the lifeline for Microsoft revenue.
Cornerstones of the .NET platform
Common Type System (CTS)
Common Language Runtime (CLR)
IL Intermediary Language
Common Type System allows for unified representation of data expressed in different languages such that it been used across the .NET platform.
Microsoft .NET Development Stack
Microsoft .NET Framework
Targets for client and server software
Current Version 3.5 (Version 4.0 in CTP)
Microsoft .NET Compact Framework (CF)
Targets handheld and mobile devices
Current Version 3.0
Microsoft .NET Micro Framework (MF)
Targets low powered and embedded devices
Latest release 3.0 in October 2008
Microsoft .NET platforms also runs on non- Windows platform.
Result of Microsoft opening up the CTS and CLR specification to ISO for standardization and an Open Source effort called the MONO project.
IDEs: Microsoft Visual Studio .NET 2008 (Free Express Editions available), MonoDevelop from Mono Project
Servers: Microsoft IIS (on Windows), Apache with mono_mod module (on Linux, MacOS)
While J2EE and Microsoft .NET technologies compete in broad fronts, there are some other popular options on specific areas:
Web based development PHP, Ruby on Rails
Client technologies including RIA Python and Flex
Mobile Symbian (Nokia), Palm OS and Mac OS
Most of the competition is from open source product and contributors.
Companies like Sun, Oracle and IBM has embraced open source a big way.
Apache Software Foundation and MuleSource are two large non profit foundations hosts of open source projects.
35. Section 4:
Choice of core Platform
Ability to leverage the investment on existing infrastructure.
Choices available for integration
Choice of a framework
Basic operations such as data access, data caching, logging, input validation and security
Use of mix of third party components to supplement framework based on requirements.
Budget Cost of acquisition, training and maintenance
Availability of skills and resources
On going challenges
Project Tracking and conflict resolution
Co-ordination of activities across departments
Communication of challenges and priorities
Talent acquisition and skill upgradation
Making the right pitch
Gaining fundamental understanding of the platform and framework feature
Prepare a cost benefit analysis of using a specific technology platform or framework.
Factor in things like - time to market, stability of the end product and end user acceptance
Determine alternatives, whenever possible.
39. Section 4:
No Industry standard definition.
It is a combination of trends and technology fuelling collaboration and communication across the globe leveraging the Internet.
According to presenter it is a realization that everything cannot be done by single entity or organization and expertise should be leveraged.
Typical application Composite applications, SaaS, Social Networking
Big players MySpace, Facebook, LinkedIn, Tweeter, Trip Advisor.
How active are you on Web 2.0?
Do you have Facebook or LinkedIn profile?
Ability to run several virtual machines on single physical machine utilizing hardware simulation.
Provides ability to maximize CPU and resource utilization on the physical box.
Driven by Datacenter consolidation. Initial push was in Server consolidation.
More recent driver Green Computing and Desktop conslidation