成大電腦網路服務課程 報告者: 陳明輝

Download Report

Transcript 成大電腦網路服務課程 報告者: 陳明輝

成大電腦網路服務課程
報告者: 陳明輝
§§I.
成大計算機與網路中心
§§II. E-mail:[email protected]
§§III
Tel : 886-6-2757575 ext. 61034
Course Objectives
1. To help IT AP to know
What Domain Applications can Be Developed
2. To Assist IT SP to Guide
What Architecture can Be Directed
3. To Support IT OP to View
What Devices can Be Designed
4. To Motivate IT User to See
What Benefits Will get from IT in Their Life
PS.1. IT(Information Technology)
is composed of
computer,
communication
and consumer-electronics.
PS.2. AP, SP and OP
is made up of
the scope of
Computer-work traditionally.
成大電腦網路服務課程
JAVA 簡介之大綱
§§I.
§§II.
§§III
§§IV
§§V.
JAVA 之由來與比較
JAVA 語言之特色
JAVA 架構與其體系
JAVA 實作之準備
JAVA 相關技術之發展
§ § I. Java 之 由 來 與 比 較
$
•
•
•
•
•
•
•
Java
語 言 定 義 :
一. 由 C++ 語言參考發展出
二. 以網路為中心並可在不同系統平台執行
三. 先編譯成與系統機器無關之位元碼
(Bytecode)
四. 再在支援JAVA Virtual Machine之各系
統平台上解譯(Interpret)並執行
五. 美Sun Microsystem發展之Internet語言
$ 抽象化資料型別
語言 資 料 型 別
變 數
C
int, float,
x, y
stru
語言 抽象化資料型別 物 件
C++, (類別)屬性
電子雞()
成大人()
Visual
xxx
運算函式庫
+, -, *, /, %
方法類別庫
輸出入,
計算總平均,
Insert,Delete
Update,Query
$ 網路主要需求表
•網路種類
網際網 企業網 商業網
•
Internet Intranet Extranet
•網路主要需求
•跨平台
V
V
•CGI豐富化
V
V
•安全性
V
V
•效率性
V
•簡易性
V
V
•
=> Java Makes It !!
$程式語言的演進:抽象化程度
A. 第一代語言:
(1)、語言典範:FORTRAN1(FORmula
TRANslator 1)為代表
(2)、運作觀念:直接輸入,不必再從硬體的
觀點去考慮問題。
(3)、抽象程度:數學運算的抽象化
B. 第二代語言:
(1)、語言典範:FORTRAN Ⅱ, Algol60 ,
COBOL, LISP。
(2)、運作觀念:開始有程式區塊及副程式
的觀念。
(3)、抽象觀念:演算法則的抽象化。
C. 第三代語言:
(1)、語言典範:包括了PL/1, Pascal,
Simula, C, Prolog等語言。
(2)、運作觀念:集中放在同一個記錄
(Record)或結構(Structure)中。
(3)、抽象觀念:資料結構的抽象化。
D. 第四代語言:
(1)、語言典範:如SQL, INFORMIX 4GL,
CASE等等。
(2)、運作觀念:接近自然語言(即口語化),
只要列出需要哪些功能,系統就會自動
運算並產生結果,甚至可以用選單及表
格做輸入。
(3)、抽象觀念:程式設計的抽象化。
E. 新一代語言:
(1)、語言典範:有Ada, Modula, Smalltalk,
Object Pascal, C++等。
(2)、運作觀念:運用自行定義資料型別的
觀念,發揮封裝、繼承、多面性之特性,
模組重用、功能擴充、程式修改及維護
上所面臨的各項難題。
(3)、抽象觀念:物件操作的抽象化。
$ 與其他語言之比較
[C++的前身-C語言]
一、算符(operator)除了一般語言都具有的算術、
比較、邏輯、指定等之外,有較為低階的功
能,如取址算符,指位算符,左旋、右旋算
符,位元式的AND、OR 、XOR算符等等。
二、C語言的指令很少,大部分的功能都是以
函式呼叫的方式來達成,
三、所有的C語言編譯器都會提供一個標準的
函式庫(Library),以提高其可攜性。
[C++的演進及設計目標]
Bjarne Stroustrup:C++主要的設計目標:
(1) 一個更好的C語言
(2) 可支援抽象化資料型別
(3) 可實現物件導向程式設計
$ JavaScript 和 Java的屬性比較
JavaScript
Java
手稿語言
程式語言
變數型別檢查鬆散
變數型別檢查嚴謹
初步存取控制
階層式存取控制定義
沒有引出能力的型別
完整物件導向能力或屬性繼承
沒有陣列檢查
嚴格地陣列存取檢查
執行副本階層
物件階層
JavaScript 物件
Java 類別
§§II.. Java語言的特色:
$ 特色之彙總
• 『Write once, Run anywhere.』
•
『 Unique program, Do anything』
•
•
•
•
•
•
•
1.物件導向-沿用C/C++的習慣語法
2.跨平台執行功能-平台中立性
3.具有下載程式的功能-網路功能
4.具有安全的執行環境
5.多緒執行(multi-threaded)
6.穩固性
7.具自動記憶體管理功能
$1. 物件導向沿用C/C++的習慣語法(1)
• 除了下列各項外, 其餘相同:
• Java 的函式(method)、介面(interface)全
都包在物件中。Java它支援單一的繼承,
Java 物件的根類別是java.lang.Object 。
$1. 物件導向沿用C/C++的習慣語法(2)
•
•
•
•
•
•
•
•
A. Java沒有前置處理器 (preprocessor)
B. Java沒有指標 (pointer)
C. Java沒有goto敘述,也沒有 struct與
union語法
D. Java沒有多重繼承與運算子覆載
(operator overloading)
E. Java具有記憶體回收(garbage
collection) 功能
$2. 跨平台執行功能平台中立性
•
•
•
• =>
Java Bytecode Runs
at JavaVM( Java Virtual Machine )
on Various Types of OS
Java Is Not Language Only
$3. 具下載程式的功能-網路
功能
• 配合 Web Server 及 Browser 之運作,可
將 Applet 自Web Server 下載到 Browser
上之電腦執行,增加其應用的空間。
• Java提供便利的網路程式設計工具
$4. 具有安全的執行環境
•
•
•
•
•
•
•
•
(1) 語言文法上的設計
(2) Java compiler的設計
(3) Java程式碼之載入以至執行 時的系統
支援
(4) Java系統相關之各層軟體均加入安全
性之檢查
(5) 容許Java applet自一個遠端的電腦下
載執行
$4. (5) 容許Java applet自一個
遠端的電腦下載執行
• (a) 記憶體分隔-Java 語言沒有指標,無法
•
利用指標指到程式外記憶體進行破壞
(b) Java在程式執行時才確立實際記憶體
•
的配置情形,事先不能預測
• (c) 執行前先檢查此 bytecode 是否有違反
•
Java 的安全限制
$5. 多緒執行
(multi-threaded)
• Java定義多緒執行
• 為語言的一部份,
• 可以在不同的支援多緒的作業系統上
執行,
• 而不必考慮不同系統中不同的多緒系
統呼叫。
$6. 穩固性
• (1) Java沒有指標
• (2) Java資料型別的轉換有十分嚴格的檢
•
查
• (3) Java提供例外處理的機制來防護當程
•
式發生錯誤時的破壞情況
$7. 具自動記憶體管理功能
• Java中不提供類似 C 中 malloc ( ) 及 free( )
之函數。
• 利用 new( ) 產生新物件,程式設計師不
必擔心何時應收回無用的記憶體空間,
Java 之執行系統執行 garbage collection ,
自動回收已不再使用的物件。
§§ III . JAVA架構體系:
§1. 整體彙總
全方位之發展與應用已形成 :
1.J2EE(Java 2 Enterprise Edition,企業用):可運用於大系統中大主機環
境,如Oracle、Informix、Sun、IBM..等。
2.J2ME(Java 2 Standard Edition,一般或教育用):可運用於中小系統一
般平台(含pc),如"Informix、Silver Stream
3.J2ME(Java 2 Micro Edition,迷你用,含無線世界應用):可運用於為小
型電腦、通訊及資訊家電平台,如Oracle、Palm、Sun
4.Jini(超為小型用):可運用於超微小世界(如資料與科學之Nano
design)之相關設計,很適合於研發與學界之理論探索
Java IDE
Java Compiler “javac”
Other Dev. Tools
Java Debugger
Client Compiler
Java Plug-in
Sound
Java
Hot
Spot
runtime
Solaris
Applet awt
math
net
text
untl
Win32
naming
beans
rmi
accessilility
Linux
Mac
io
security
swing
Other
lang
sql
corba
§§ IV. Java Implementation:
$1. 實作彙總
• 除Jini系統外,其他各個版本之研究已經有相當成熟穩
定之商品化出爐,亦即從
•
(1) 主機端伺服器設計
•
(2) 中介轉換環境
•
(3) 跨平台整合環境;乃至
•
(4) 前台開發與設計環境等之系統開發與維護工具
•
乃至應用程式一一出爐,尤其更成熟至
•
(5) 電子商務之具體平台完整推出,如iPlant、Sliver
•
Stream、CA、Kana eBusiness Platform for Unix
•
(Kana Communication)、Jcanvas Sudio (Artistic
•
System)
$2. JDK(JAVA開發工具)
•
•
•
•
•
•
•
•
•
•
(1).
(2).
(3).
(4).
(5).
(6).
(7).
(8).
(9).
Java編譯器──javac
Java解譯器──java
Java Applet瀏覽器──Appletviewer
Java除錯器──jdb
C標頭產生器──javah
Java反組譯器──javap
Java API文件產生器──javadoc
classes.zip
src.zip
$3. Development Termnology
• JAVA 2 Platform, Standard Edition : J2SE
• JAVA 2 Software Development Kit : SDK
• JAVA 2 Software Developer Kit:JDK
• JAVA Runtime Environment : JRE
$4. Open Developmnet Source
• 以J2SE(Java 2 標準版) 為例 :
• 在 Win32平台:(如,win98/winNT)
• 傳檔 j2sdk-1_3_0_01-win.exe(約68MB)
• 解壓縮,產生 \jdk1.3.0_01\ 子目錄群
• 在 Unix平台:(如,Linux Red-Hat 7.x)
• 傳檔 j2sdk-1_3_0_02-linux-rpm.bin(67MB
• 解壓縮,產生 /usr/jdk1.3.0_02/子目錄群
§§ V. Java相關技術之發展
$. 技術發展彙總(1)
•
•
•
•
•
•
•
A. Java Beans
B. Java Servlet
C. JDBC (Java DataBase Connetivity)
D. RMI (Remote Method Invocation)
E. Java IDL(Interface Definition Language)
F. JSP(JavaServer Page)
G. JavaChipset and OS
§§V. Java相關技術之發展
$. 技術發展彙總(2)
•
•
•
•
•
•
H. Java CARD
I. JNDI (Naming and Directory Interface)
J. Mobile Agent:(Wireless Communication)
K. JTS(Java Transaction Service)
L. JMAPI(Java Management API)
M. 系統相關的安全及認證問題
• N. Business to Business E-Commerce
• O. Game
$ Java 相關技術之發展
A. Java Beans:
Java Beans 是用於Java 程式設計中可
重用軟元件(reusable software component)
的一種工具。類似Delphi 或 Visual Basic
$ Java 相關技術之發展
B. Java Servlet
Java applets 是自Web Server下載到瀏
覽器執行的程式,而 Servlet 則是可在
Web Server 上動態執行的 Java 程式。
Java Servlet 與 Java applet 最大的不同在
前者不具圖形化人機介面。
$Java 相關技術之發展
C. JDBC(JavaDataBase Connetivity)
• JDBC(Java DataBase Connetivity) API
(Application Programming Interface) 是一
套API,供Java應用程式對各種資料庫做
存取的操作。
$Java 相關技術之發展
D. RMI(Remote Method Invocation)
• 分散式系統中常利用RPC(Remote
Procedure Call) 做client/server 之溝通管道,
RMI可視為 Java系統中類似 RPC 的機制。
$ Java 相關技術之發展
E. Java IDL:
Java IDL(Interface Definition Language)
為 Java 語言在CORBA (Common Object
Request Broker Architecture) 環境上運作
的介面語言。利用 Java IDL 之工具,程
式設計師可利用Java 設計CORBA系統中
之物件,並與其他語言所寫的 CORBA
物件做結合。
$ Java 相關技術之發展
F. JSP(JavaServer Page):
•
•
•
•
•
•
•
•
1. 伺服器端執行之語言
2. 不但包含HTML,且包含一些在伺服器
端 執行之Java程式碼
3. 當使用者要求JSP網頁時,Web伺服器
JSP引擎先動態產生Servlet程式碼,然
後再交由Servlet引擎編譯並執行,最後
將網頁回傳瀏覽器
4. 類似MS之ASP;有unix與win32版本
$ Java 相關技術之發展
G. JavaChipset and OS:
GENEVA (OneEighty Co.) -- Support IA and
Mobile
iButton key ( Dallas Semiconductor) -- 64KB
ROM ,134KB RAM on 16mm JavaChipset
即時編譯技術(Just-In-Time Compiler)
$Java 相關技術之發展
H. Java CARD
交易上,Java Card API之製造是為了
Smart Card 市場應用之需。Java Card 系
統上之 Java可視為一簡化形的 Java環境。
$Java 相關技術之發展
I. JNDI(Naming and Directory Interface)
• 在分散式系統中命名(naming) 及目錄
(directory)服務是很重要的項目,在一些
應用上對某些長期性的物件,其名稱及
相關屬性常考量儲存於name server上,
以方便做查詢。
$ Java 相關技術之發展
J. Mobile Agent : (Wireless Commumication)
• 1. Java Native Processor
•
( Zucotto Co )Bluetooth ( Alcatel )
• 2. Air Browsing
•
( Tenzing Co )
3. Lava Platform
( Jsrel Niragongo Co )
=> improve browsing efficiency and speed
4. Open Multimedia Application Platform
•
( TI )
$ Java 相關技術之發展
J. Mobile Agent : (Wireless Commumication)
• 5. Java WAP Gatewdy
•
( Empower Jnterative Co )
Fully Compatible WAP 1.1 stack
Support WTLS Security Layer ( I, II )
SSL Security Layer Config
Support UDP cross platform run on JVM
Linkable to any HTTP 1.0, 1.1 Host
Fully events log
$ Java 相關技術之發展
J. Mobile Agent : (Wireless Commumication)
6. 行動代理人執行環境,
如 IBM之 Aglet 工作,
如 IC 卡,
如 PDA,
如 Set-top-box 等。
$ Java 相關技術之發展
K/L/M. 其他
K. JTS ( Java Transaction Service)
用於交易服務
L. JMAPI (Java Management API)
用於網路及系統管理之
M. 系統相關的安全及認證問題
電子商業交易,網路上資訊擷取等
$ Java 相關技術之發展
N. Business to Business e-commerce
• (壹)、J2EE architecture
• (貳)、XML(Extensible Markup Language)
• (參)、Application transport technology for
B2B(Business to Business)
• (肆)、Organizations and Standards
$ Java 相關技術之發展
O. Game
• (1). Motorola & SEGA( next-generation
•
multiple communication phones,
•
JAVA )
• (2). i- appli of Java ( NTT Docomo )
§§ VI . Java 可參考資料來源(1)
• 網站 :
•
http://www.sun.com/software
•
http://www.sun.com/tech
•
http://java.sun.com
•
http://ftp.ee.ncku.edu.tw
•
§§ VI . Java 可參考資料來源(2)
• 書刊 :
• (一) Suitable for Developer
•
JavaWorld IDG;
Web Developer Online
•
Java Report Online; Java Pro
•
Java Developer’s Journal
• (二) Suitable for General User
•
Dr. Dobb’s Journal; Forcus on Java
•
Wandering Man
•