Upload
shashank-banerjea
View
344
Download
2
Embed Size (px)
DESCRIPTION
The starting presentation for Project Managers who need to manage Microsoft .NET and J2EE Projects.
Citation preview
December 7, 2008
Welcome and IntroductionsComputer Networking BasicsDistributed Computing
FundamentalsPlatform Wars – Java, .NET and the
3rd frontYou – the techie, manager and
salesperson Technology Buzzwords
Shashank Banerjea▪ 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.
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.
232 = 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 – 1024Max Port number – 216= 65536
Well known reserved port – TCP /80 – HTTP/Web TCP/23 – Telnet TCP/21 – FTP UDP/226 – Windows File share
TCP Applications – telnet, FTP, WebUDP Applications – VoIP, Video
Streaming, Network File sharing
Typical CommunicationClient 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.
HTTP Communication: TCP based protocol Default port: 80; Popular ports: 8000, 8080,
8090 Request/Response only. 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
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.
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 N-tier architecture
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
Related Concepts: Just in Time (JIT) Complier Garbage Collector
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.
Popular Tools: 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.
Section 4:
Decision 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.
Decisions▪ Budget – Cost of acquisition, training and
maintenance▪ Availability of skills and resources▪ Market Intelligence
On going challenges▪ Effort distribution▪ 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.
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.
Discussion: 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
Pioneer – VMWare (now part of EMC Corp)
More recent entrants – Citrix, Microsoft, Oracle, Red Hat and Sun Microsystems.
Side industry to manage virtual machines is also cropping up.
Discussion: Are you even aware that some of the servers
you log on to remotely are virtual machines?
Like the fashion industry, things in IT come back a circle packaged in a new vibrant color and fabric.
Cloud computing is primarily aiming to reduce IT infrastructure and maintenance cost.
Business Model – Pay as you go/Pay for what you use. (Like the erstwhile mainframe area)
Pioneers – Amazon, SalesforceMost recent entrants – Microsoft,
RackspaceSide Industry – manage and speed
up cloud access. Majority companies are Startups.
Discussion: Do you think will this model succeed?
Promise to access information anywhere
Initial applications – e-mail and WAP based application designed for limited capabilities of a mobile device.
J2ME allowed development of interactive applications on the phone
Windows CE/Mobile (Microsoft), Brew (Qualcomm) and Symbian (Nokia) were dominant platforms till…
Apple iPhone came along in 2006 and it was game changer.
Google Android followed in 2007-2008. Challenges – disconnected mode of
operation and security. Major Players –Nokia, Qualcomm,
Apple, Microsoft, Sun Microsystems , Google
Discussion: How mobile savvy are you?
On the web:▪ http://www.w3c.com▪ http://msdn.microsoft.com▪ http://java.sun.com▪ http://wikipedia.com/▪ http://www.asp.net▪ http://www.php.net▪ http://www.apache.org▪ http://mulesource.org
Feedback form will be available as online to be filled out
Follow up with Shashank at [email protected]| 678.439.5337