![Page 1: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/1.jpg)
Arsitektur Aplikasi
Perangkat Enterprise #5
Antonius Rachmat C, S.Kom, M.CsAntonius Rachmat C, S.Kom, M.Cs
![Page 2: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/2.jpg)
Company ACompany A
Consumers, PartnersConsumers, Partners
MobileMobileEmployeesEmployees
Company BCompany B
Consumers, PartnersConsumers, Partners
MobileMobileEmployeesEmployees
Enterprise Demand
Customers Customers Partners Partners SuppliersSuppliers
![Page 3: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/3.jpg)
Enterprise Application Inside
![Page 4: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/4.jpg)
Application Platforms Today
BrowserApps
Web ServicesApps
OtherApps
LocalApps
Standard Library
GUI Services
Transaction Services
Web Scripting
Data Access
More
Operating System
Runtime Environment
![Page 5: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/5.jpg)
What is Microsoft .Net?
� .NET is microsoft technolgy and platform for developing and integrating services in the digital world� To unify Desktop, Web, and Mobile programming
� Diperkenalkan oleh Microsoft sejak Feb � Diperkenalkan oleh Microsoft sejak Feb 2002
![Page 6: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/6.jpg)
.NET FRAMEWORK
� Bersifat independen dalam hal bahasa� Aplikasi dapat dikembangkan di beberapa bahasa yang
didukung oleh .NET:� C#� Managed Extensions for C++� Java - Visual J# .NET� Java - Visual J# .NET� JavaScript - JScript .NET� Perl� Pascal, Delphi� PHP� Smalltalk
� Programmer dapat memilih salah satu bahasa yang paling dikuasainya.
� Mampu dijalankan beberapa platform (tidaksemua)
![Page 7: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/7.jpg)
Keuntungan .NET
![Page 8: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/8.jpg)
Visual Visual Studio.NETStudio.NET
Visual Visual Studio.NETStudio.NET
ApplicationsApplicationsUsing Your Using Your
ServiceService
ApplicationsApplicationsUsing Your Using Your
ServiceService
Your Internal ServicesYour Internal Services
.NET Enterprise Servers.NET Enterprise Servers.NET Enterprise Servers.NET Enterprise ServersSQL ServerSQL Server
BizTalk ServerBizTalk Server
Application CenterApplication Center
Commerce ServerCommerce Server
Host Integration ServerHost Integration Server
Internet Security and AccelerationInternet Security and Acceleration
Sales Data ServiceSales Data ServiceCorporate Fullfilment ServiceCorporate Fullfilment Service
Smart ClientsSmart ClientsSmart ClientsSmart Clients
.NET Blueprint
Your Your application application
and web and web serviceservice
Your Your application application
and web and web serviceservice
Open Internet ProtocolsOpen Internet Protocols
XML, XSLT, XSD, SOAP, XML, XSLT, XSD, SOAP,
DISCO, UDDI, XHTML, DISCO, UDDI, XHTML,
HTTP, SSL, WAPHTTP, SSL, WAP
Simple Simple BrowsersBrowsersSimple Simple
BrowsersBrowsers
33rdrd Party Web ServicesParty Web Services33rdrd Party Web ServicesParty Web ServicesGeographic Mapping ServiceGeographic Mapping ServiceCredit Card Statement ServiceCredit Card Statement Service
… [ActiveX Paradigm]… [ActiveX Paradigm]
Building Block ServicesBuilding Block ServicesBuilding Block ServicesBuilding Block ServicesPassport Passport –– Identity ServiceIdentity ServiceCalendaring ServiceCalendaring Service
… [myServices]… [myServices]
WindowsWindows
Internet Security and AccelerationInternet Security and Acceleration
Exchange ServerExchange Server
Smart Smart DevicesDevicesSmart Smart
DevicesDevices
Smart ClientsSmart ClientsSmart ClientsSmart Clients
.NET FW.NET FW
WindowsWindows
.NET FW.NET FW
Windows Windows CE, XP, 2000, .NETCE, XP, 2000, .NET
Windows Windows CE, XP, 2000, .NETCE, XP, 2000, .NET
.NET .NET FrameworkFramework
.NET .NET FrameworkFramework .NET FW.NET FW
![Page 9: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/9.jpg)
.NET Framework in General
![Page 10: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/10.jpg)
.NET Framework 4.0
![Page 11: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/11.jpg)
.NET Framework class
System.WebSystem.Web
CachingCaching SecuritySecurity
ServicesServicesDescriptionDescription
DiscoveryDiscovery
ProtocolsProtocols
UIUIHtmlControlsHtmlControls
WebControlsWebControls
System.DrawingSystem.Drawing
Drawing2DDrawing2D
TextText
PrintingPrinting
System.WinFormsSystem.WinForms
DesignDesign ComponentModelComponentModel
SystemSystem
System.DataSystem.Data System.XmlSystem.Xml
GlobalizationGlobalization
TextText
SecuritySecurity
CollectionsCollections
ResourcesResources
ReflectionReflection
NetNet
IOIO
ThreadingThreading
DiagnosticsDiagnostics
ServiceProcessServiceProcess
ConfigurationConfiguration
DesignDesign
ADO.NETADO.NET SqlClientSqlClient
Xslt/XPathXslt/XPath
XmlDocumentXmlDocument
RuntimeRuntimeInteropServicesInteropServices
RemotingRemoting
SerializationSerialization
SerializationSerialization
ConfigurationConfiguration SessionStateSessionState ImagingImaging TextText
Reader/WritersReader/WritersOleDB, odbc, Oracle OleDB, odbc, Oracle
![Page 12: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/12.jpg)
.NET Compact Framework class
System.WebSystem.Web
CachingCaching SecuritySecurity
ServicesServicesDescriptionDescription
DiscoveryDiscovery
ProtocolsProtocols
UIUIHtmlControlsHtmlControls
WebControlsWebControls
System.DrawingSystem.Drawing
Drawing2DDrawing2D
TextText
PrintingPrinting
System.WinFormsSystem.WinForms
DesignDesign ComponentModelComponentModel
SystemSystem
System.DataSystem.Data System.XmlSystem.Xml
GlobalizationGlobalization
TextText
SecuritySecurity
CollectionsCollections
ResourcesResources
ReflectionReflection
NetNet
IOIO
ThreadingThreading
DiagnosticsDiagnostics
ServiceProcessServiceProcess
ConfigurationConfiguration
DesignDesign
ADO.NETADO.NET SqlClientSqlClient
Xslt/XPathXslt/XPath
XmlDocumentXmlDocument
RuntimeRuntimeInteropServicesInteropServices
RemotingRemoting
SerializationSerialization
SerializationSerialization
ConfigurationConfiguration SessionStateSessionState ImagingImaging TextText
Reader/WritersReader/WritersSqlServerCeSqlServerCe
![Page 13: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/13.jpg)
Common Language Runtime� Bagian utama dari framework yang akan
mengkompilasi dan mengeksekusi program yang ditulis dengan bahasa yang mendukung .NET
� Compilation process� Pertama program di compile menjadi Microsoft Intermediate
Language (MSIL) / Common Intermediate Language (CIL)
� Mendefinisikan instruksi untuk CLR
� Kemudian MSIL code diterjemahkan kedalam machine code
� Machine code untuk platform yang khusus
� Mengapa dua proses kompilasi ?� Agar platformnya bersifat independence
� .NET Framework dapat diinstal di platform berbeda� Mengeksekusi program .NET tanpa modifikasi kode-nya
� Language independence� .NET program tidak terikat dengan bahasa tertentu
� Komponen yang lama dan baru dapat terintegrasi
![Page 14: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/14.jpg)
MSIL
.assembly hello {}
.assembly extern mscorlib {}
.method static public void main() il managed {
HelloWorld:HelloWorld:
{.entrypoint.maxstack 1ldstr "Hello World from IL!"call void [mscorlib]System.Console::WriteLine(class System.String)ret
}
![Page 15: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/15.jpg)
Common Language Runtime� Keuntungan lain dari CLR
� Execution-management features� Manages memory
� Programmer lebih berkonsentrasi pada program logic
� CLR menyediakan JIT compilation. � JIT hanya akan mengkompilasi method-method � JIT hanya akan mengkompilasi method-method
yang memang digunakan dalam suatu bagianaplikasi pada saat tertentu, dan hasil kompilasiini sendiri di cache di dalam mesin dan akandikompile kembali jika memang ada perubahanpada kode aplikasi kita. � Jadi tidak semua method diload ke-memori pada saat
yang sama
� CLR disimpan pada file: mscoree.dll� C:\windows\System32
![Page 16: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/16.jpg)
Common Language Runtime
Type CheckerType Checker Exception ManagerException Manager
Thread SupportThread Support COM MarshalerCOM Marshaler
Base Class Library SupportBase Class Library Support
Class LoaderClass Loader
IL to NativeIL to NativeCompilersCompilers
CodeCodeManagerManager
GarbageGarbageCollectorCollector
Security EngineSecurity Engine Debug EngineDebug Engine
![Page 17: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/17.jpg)
DevelopmentDevelopment
CLR Execution Model
VBVB C#C# ScriptScript ......
Assembly: Assembly: MSIL + MetadataMSIL + Metadata
NativeNativeCodeCode
Install timeInstall timeCode GenCode Gen
DeploymentDeployment
DevelopmentDevelopment
JITJITCode GenCode Gen
NativeNativeCodeCode
CommonCommonLanguageLanguageRuntimeRuntime
![Page 18: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/18.jpg)
Compiling & Executing Managed
Code
Source Code
Language Compiler
Microsoft Intermediate
Language (MSIL)
Compilation
JIT Compiler
NativeCode
The first time each method is called
Execution
![Page 19: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/19.jpg)
Data Types in the CLR
� The CLR mendefinisikan Common Type System (CTS)
� All languages built on the CLR use the CTS (managed code)
� Ada 2 kategori:� Ada 2 kategori:
� Value types:
� Relatively simple types
� Allocated on the stack
� Reference types:
� More complex types
� Allocated on the heap
� Destroyed through garbage collection
![Page 20: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/20.jpg)
Illustrating the Common Type System
Object
ValueType
Byte Int16 SingleUInt16
Class
Interface
Boolean
Byte
Char
Decimal
Double
Int16
Int32
Single
Int64
UInt16
UInt32
UInt64String
Array
Delegate
Reference Types Value Types
Enum
Structure
Others Others
![Page 21: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/21.jpg)
CTS Data Type
![Page 22: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/22.jpg)
.NET Class Library� Sering disebut sebagai Base Class Library.� Class library bersifat berorientasi objek yang
akan menyediakan types dan fungsi-fungsi managed code.
� Dengan BCL kita dapat membuat:� Aplikasi console � Aplikasi console � Aplikasi berbasis windowd (Windows Form) � Aplikasi ASP.NET (berbasis web) � Aplikasi Web Services XML
� Aplikasi berbasis Windows Services
![Page 23: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/23.jpg)
.NET Class Library (2)
�Tampilan ILDASM – assembly view
![Page 24: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/24.jpg)
.NET assembly
� Private assemblies are required to be located in application’s directory or subdirectory
� The disadvantage is that each time a copy of the Assembly is created which in turn occupies more memory and reduces the performance
Output: .dll� Output: .dll
� Must be imported
� Shared assemblies� installing an assembly:
� gacutil.exe –i MyAssembly.dll
� Two or more assemblies of the same name can coexist in the GAC (must have different versions)
� the end of "DLL hell"
![Page 25: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/25.jpg)
Adding external assembly to ur
application (on C#)
![Page 26: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/26.jpg)
Obfuscation� Entity renaming
� changing names of namespaces, classes, methods, properties, fields, enumerations
� Control flow obfuscation� modifying the original code (e.g. transforming if or while
statements by using goto statement)
Removal of unused members� Removal of unused members� String encryption� Breaking IL Disassembler
� injecting code into the obfuscated assembly that is designed to break IL Disassembler so that it won’t open the assembly at all
� Compiling into native code
![Page 27: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/27.jpg)
Hasil Obfuscation
![Page 28: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/28.jpg)
C++ .NET
� C++ with Managed Extensions can be used to create .NET applications
� Managed C++ provides:
� Garbage collection support
� Built-in support for interfaces, properties, and events� Built-in support for interfaces, properties, and events
� Access to all other CLR features
� C++ can still create native binaries if desired
� All other Visual Studio.NET languages produce only MSIL
![Page 29: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/29.jpg)
Database Access in .NET
� In .NET there is ADO.NET
� “connectionless”
DataSet
Client
Data Adapter
Data Source
DataSetCommandCommand
Connection
DataReader
Managed Provider
Data Adapter
![Page 30: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/30.jpg)
ASP.NET
(Server-Side Scripting)
� ASP.NET Architecture:
IIS WebServer
Client
(1) get a.apx(1) get a.apx(1) get a.apx(1) get a.apx (2) process(2) process(2) process(2) process .NETAssembly
OtherAssemblies
(4) HTTP file(4) HTTP file(4) HTTP file(4) HTTP file
.NETEngine
Database
(3) result(3) result(3) result(3) result
(4) HTTP file(4) HTTP file(4) HTTP file(4) HTTP file
![Page 31: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/31.jpg)
.NET framework
� .NET Framework 1.1 was included in Windows Server 2003 and was an optional component of Windows XP Service Pack 1 Redistributable packages (dotnetfx.exe)� .NET Framework 1.1
� 23.1 MB� 23.1 MB
� Windows 98/Me/NT/2000/XP/2003, IE 5.01
� .NET Framework 2.0� 22.4 MB
� Windows 98/Me/NT/2000/XP SP2/2003, IE 5.01
� Windows Installer 3.0
� disk space: 280 MB (x86), 610 MB (x64)
� .NET 3.5 -> 197 MB
![Page 32: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/32.jpg)
MONO
� Mono project (http://www.mono-project.com)� support for .NET client and server applications on Linux,
Solaris, Mac OS X, Windows and Unix
� sponsored by Novell
� LGPL (Lesser General Public Licence)supported systems: GNU/Linux, NetBSD, FreeBSD, � supported systems: GNU/Linux, NetBSD, FreeBSD,
� 120,000 lines of C code and 600,000 lines of C# code.
� Cygwin/Mingw32, Mac OS X, Solaris, AIX � GPL (General Public Licence)
� Official international standards:� ECMA-334: The C# Language Specification
� ECMA-335: The Common Language Infrastructure (CLI)
![Page 33: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/33.jpg)
ASP.NETEvolution#
Mono Architecture
MySQL/Postgress
Novell iFolderMozilla
Gtk#Apache Mono
Gnome#Novell LDAP
ADO.NET
Windows.Form
Mono Runtime
(Implementation of ECMA #335)
ZipLibJava CompatibilityWindows.Form
Microsoft Compatibility Libraries Mono Libraries
![Page 34: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/34.jpg)
Windows Phone 7 Architecture
![Page 35: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/35.jpg)
Java 2 Platform
� Dimulai tahun 1995 pada browser HotJava – Netscape
� Platform diperkenalkan pada June, 1999
� WORE – Write Once Run Everywhere
![Page 36: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/36.jpg)
Java 2 Platform
![Page 37: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/37.jpg)
J2SE Platform
![Page 38: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/38.jpg)
Java system overview
![Page 39: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/39.jpg)
Yang dibutuhkan?
� J2RE untuk menjalankan Java.
� J2RE akan berisi Java Virtual Machine.
� J2SDK untuk mendevelop Java.
� J2SDK akan berisi JVM dan SDK� J2SDK akan berisi JVM dan SDK
� J2ME untuk mendevelop aplikasi Mobile
� J2EE untuk mendevelop aplikasi Enterprise
� J2EE berisi seluruh komponen Java 2 Platform
![Page 40: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/40.jpg)
Proses Kompilasi
� Pada kompilasi Java, terdapat 2 bagian penting yaitu: Java Compiler dan Java Interpreter
� Java compiler mengenerate bytecode (sekumpulan instruksi yang me-ressemble kode mesin, tetapi tidak spesifik pada prosesor) yang bersifat “cross-platform intermediary, bersifat “cross-platform intermediary, halfway between source code and machine language”.
� Java interpreter akan meng-interpret Java bytecode yang ada untuk eksekusi program.
� Kekurangan dari bytecode terletak pada kecepatan eksekusi, karena tidak bersifat native
![Page 41: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/41.jpg)
Proses Kompilasi
Kode Java Java bytecode
Win32
HP-UX
Intermediate compilation
Solaris
compilation
Runtime VM Intepretation
Mac
![Page 42: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/42.jpg)
The Java Virtual Machine
� An abstract computing machine that executes bytecode programs� An instruction set and the meaning of those instructions
� An algorithm to verify the class file
� InterpreterSimple, compact� Simple, compact
� Slow
� Just-in-time compilation� Hanya mengkompilasi “bagian” yg dibutuhkan saja
![Page 43: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/43.jpg)
A Bytecode Examplepublic class X {
public static void
main(String[] args) {
add(1, 2);
}
public static int
add(int a, int b) {
public static void main(java.lang.String[]);
Code:
0: iconst_1
1: iconst_2
//Method add:(II)I
2: invokestatic #2; 5: pop
6: return
add(int a, int b) {
return a+b;
}
}
public static int add(int,int);
Code:
0: iload_0
1: iload_1
2: iadd
3: ireturn
![Page 44: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/44.jpg)
Introduction to the JVM
� JVM is a component of the Java system that
interprets and executes the instructions in our
class files.
Memory configuration by the JVM.
![Page 45: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/45.jpg)
� Each instance of the JVM has one method area, one heap, and one or more stacks - one for each thread
� When JVM loads a class file, it puts its information in the method area
Introduction to the JVM (Cont’d)
� As the program runs, all objects instantiated are stored in the heap
� The stack area is used to store activation records as a program runs
![Page 46: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/46.jpg)
Introduction to the JVM (Cont’d)
Content of Memory Blocks at runtime.
![Page 47: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/47.jpg)
The Class Loader Subsystem
� The class loader performs three main functions of
JVM, namely: loading, linking and initialization
� The linking process consists of three sub-tasks,
verification, preparation, and resolution
Class loading process.
![Page 48: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/48.jpg)
Tahap Compile & Execute� Loading means reading the class file for a type, parsing it
to get its information, and storing the information in the method area.
� Verification is the process of ensuring that binary representation of a class is structurally correct
� In preparation, the JVM allocates memory for the class � In preparation, the JVM allocates memory for the class
(i.e static) variables and sets them to default initial values.
� Resolution is the process of replacing symbolic names for
types, fields and methods used by a loaded type with their
actual references.
� Class initialization, This is the process of setting class
variables to their proper initial values - initial values desired
by the programmer.
![Page 49: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/49.jpg)
J2EE� Stands for “Java 2, Enterprise Edition”� Superset of Java 2 Standard Edition (J2SE)� J2EE (1.4+) is an infrastructure specification for:
� Components ("Beans")� Data Source Connectivity� XML and Messaging� XML and Messaging� Web Pages and Web Services
![Page 50: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/50.jpg)
Class-class Java
� Java Servlets (menggunakan Apache-Tomcat): javax.servlet
� JSP (menggunakan Apache-Tomcat): javax.servlet.jsp
� EJB (menggunakan JBoss): javax.ejb.*� JMS: javax.jms.*� JMS: javax.jms.*� JDBC (J2SDK): java.sql.*, javax.sql.*� JNDI (J2SDK): javax.naming.*� JTA / JTS: java.transaction.*� JavaMail (Java MailAPI): javax.mail.*� XML: javax.xml.*� JavaNet: java.net
![Page 51: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/51.jpg)
J2EE Architecture
![Page 52: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/52.jpg)
4 Aplikasi Java
� Applications: program standalone di komputer, dari aplikasi console sampai dengan GUI yang kompleks yang menggunakan javax.swing
� Applet: program Java yang dijalankan di web browser dengan menggunakan HTML. browser dengan menggunakan HTML.
� Servlet: program yang melakukan generating isi webpage namun berjalan di java-enabled web server yang kemudian akan dikirimkan hasilnya ke client.
� JSP / JSF: aplikasi web yang berjalan di sisi server.
![Page 53: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/53.jpg)
J2EE Server Technologies
� Servlets
� Server side Java code
� Java Server Pages (JSP) dan Java Server Faces
� Server side Java code
� Enterprise JavaBeans (EJB)� Enterprise JavaBeans (EJB)
� Java server components that encapsulate business logic to be shared across the enterprise
![Page 54: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/54.jpg)
Database Access in Java
� Java provides JDBC to access relational data
Application
ODBCDB
ODBC Driver
JDBC/ODBC Bridge
Driver ManagerConnection
Statement
PreparedStatement
CallableStatement
Resultset
![Page 55: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/55.jpg)
Java Server Pages and Servlets
� Java also allows for server-side scripting
� JSPs are based on Servlets
WebServer
Client
(1) get a.jsp(1) get a.jsp(1) get a.jsp(1) get a.jsp (2) process(2) process(2) process(2) processJSP
OtherComponents
Server
JVM
Database
(4) result(4) result(4) result(4) result
(5) HTTP file(5) HTTP file(5) HTTP file(5) HTTP file
Servlet
(3) gen. Servlet(3) gen. Servlet(3) gen. Servlet(3) gen. Servlet ServletImpl.
![Page 56: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/56.jpg)
Perbandingan J2EE dan .NET
Framework
![Page 57: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/57.jpg)
A typical .NET Enterprise Solution
IIS on W2k Server
SQLServer
IIS on W2k Server
.NET managed
componentASP.NET
WindowsClient
Browser
![Page 58: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/58.jpg)
A typical J2EE Enterprise Solution
Java App
DB Server
Java App Server
EJBServlet
JSP
Java Client
Browser
![Page 59: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/59.jpg)
The .NET Framework
BrowserApps
Web ServicesApps
OtherApps
LocalApps
.NET Framework Class Library
Windows Forms
Enterprise Services
ASP.NET ADO.NET More
Windows
Common Language Runtime
![Page 60: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/60.jpg)
The Java Environment
BrowserApps
OtherApps
LocalApps
Web ServicesApps
Standard Java Packages
Swing Enterprise JavaBeans
JavaServer Pages
JDBC More
Windows, Solaris, Linux, others
Java Virtual Machine (VM)
![Page 61: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/61.jpg)
J2EE Server
CORBAServer
RDBMS
MessageQueueJMS
EJB ContainerRMI
Client
EJB Container
IIOPClient
JSP ServletServlet Container
HTTPClient Other
Resource
HTTP Engine
CLR Platform
OtherServer
RDBMS
Messagequeue
SOAPClient
HTTPClient Other
Resource
Comp. Services
ComponentComponentComponent
ASMXASPX
ASP.NET
Controls
.NETApp
CLR Host
ComponentComponentComponent
CLR Host
IIS –
HTTP Engine
![Page 62: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/62.jpg)
J2EE Solutions
vs Microsoft .Net Solutions
� Both multi-tiered, similar computing technologies
� Both support “standards”
Both offer different tools & ways to � Both offer different tools & ways to achieve the same goal.
� Very difficult to compare and qualify the comparison because each has its own advantages & disadvantages.
![Page 63: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/63.jpg)
Python
…
Visual S
tudio.net
ASP.NetASP.Net
P&P blocksP&P blocks
Third party extensionsThird party extensions
Comparing the stacks
JSP JSP
StrutsStruts
ExtensionsExtensions : : Phoenix, Tiles, Java FacesPhoenix, Tiles, Java Faces
Enterprise solutionsEnterprise solutionsW
ebshpereE
clipse…
VB
C++
C#
Perl
Visual S
tudio.net/ M
ono
Win32 / Linux
MSMQ, COM+, IIS, WMI, AD, ADAM,Indexing, UDDI, etc.
CLRCLR
Base Class LibraryBase Class Library
ADO.NETADO.NET
Win32, Unix, Linux
JMS Apache
J2EE App Servers Websphere, Weblogic, Tomcat, etc.
Java runtimeJava runtime
J2EE Class LibraryJ2EE Class Library
JDBCJDBC
Servlets Servlets
BE
A W
eblogicW
ebshpereS
tudio
Java
![Page 64: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/64.jpg)
CLR vs JVM
C# ManagedC/C++
Lots of otherLanguages
VB.Net
CLR
CTS GC Security
MSIL
Java
JRE (JVM)
GC Security
Byte Codes
CTS GC Security Runtime Services
Windows OS
GC Security Runtime Services
Mac Unix LinuxWin
Both are ‘middle layers’ between an intermediate language & the underlying OS
![Page 65: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/65.jpg)
JVM vs. CLR
JVM CLR
Managed execution
environmentX X
Garbage Collection X X
Metadata and
BytecodeX X
Platform-abstraction
class libraryX X
Runtime-level
securityX X
Runs across
hardware platformsX ?
![Page 66: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/66.jpg)
Choosing between Java/J2EE and .Net
� The ultimate choice usually depends not on technical superiority, but on:
� cultural/”religious”/political preferences
� Customer preference
� Vendor relations
� Skill set of your developers
� You are most likely to be developing in both environments for the foreseeable future
� Look out for “The third way”: Linux, Apache, MySQL, PHP, …
![Page 67: Arsitektur Aplikasi Perangkat Enterprise #5lecturer.ukdw.ac.id/anton/download/enterprise5.pdf · Arsitektur Aplikasi Perangkat Enterprise #5 Antonius ... Employees Company B Consumers,](https://reader031.vdocuments.us/reader031/viewer/2022021817/5a8f1f8a7f8b9abb068d70db/html5/thumbnails/67.jpg)
NEXT
� Database for Enterprise: JDBC, ADO.NET dan LINQ