apollo編譯器
㈠ C++IO流中怎樣把double型的數據轉換成字元型的
編譯器可以自動把char轉換成float,但不能反過來。因為char其實是一個asii碼,可以看做是一個整數。
lz可以試試強制類型轉換,如ch=(char)f;
㈡ 請問一下,我國有哪些自動駕駛平台
1.谷歌TPU
谷歌的TPU(Tensor Processing Unit,張量處理單元)起初是計算神經網路的專用晶元,目前正在研發第四代,將採用 7納米製程,每秒矩陣乘法相當於2萬多億次浮點運算,相比同期的CPU和GPU,能夠提供更高的性能。Waymo作為谷歌的姊妹公司,使用TPU進行訓練,但是公開信息上顯示,Waymo實車上採用的卻是英特爾的Xeon處理器。
地平線公司2019年發布了國內第一款車規級AI晶元,之後征程2、征程3在長安、理想、長城、上汽等多家自主品牌車企的20+款車型上實現了前裝量產。最新發布的征程5系列單顆晶元AI算力最高可達128Tops,主要面向L4高級別自動駕駛。地平線在2021年4月與造車新勢力理想汽車達成深度合作,將為理想汽車提供高性能的智能計算平台。
除此之外,特斯拉、德州儀器、黑芝麻等一批企業也在從事晶元平台的設計,並有對應的計算平台發布,限於篇幅,不再一一進行介紹。
㈢ 懂ASP.NET的請進!
label4.text="您好," & textbox1.text & " 您說的話是:<hr><p>" & replace(textbox2.text,chr(13),"<br>") & "<hr>"
㈣ 監測CPU溫度和降溫的軟體哪個好的,推薦兩個,謝謝
大夏天的,推薦幾個監控cpu溫度和降溫的軟體
最近我的Duron 1G燒了,郁悶,不是因為天氣熱,而是我不小心,沒有打開bios裡面的保護,然後忘了插上cpu風扇的電源就開機了,結果可想而知……現在新買了一塊XP1800+用上了。不過為了以防萬一我還是找了些相關的軟體,為方便後來人,小結一下。
一般大家都用lm-sensors來監控系統溫度,大家可以apt-cache search lm-sensors看一下,基本上要打i2c和lm-sensors的內核補丁(debian自帶了patch),然後才能用。這里有一個howto:http://www.linux-1u.net/LCD/i2c_lm_sensors.uHowTO.txt
但是我現在沒有用它,覺得步驟有些麻煩,google了一會兒,小有發現。如果你用的是下列主板,那試試mbmon也許是個不錯的選擇:
ABIT: VP6(ApolloPro133A(VIA686B)), KT7A(KT133A),
KG7(AMD761+VIA686A), NF7(nForce2/ISA+W83627HF)
ASUS: P2B,P2B-F,P2B-B(440BX+W83781D), P3B-F(440BX+AS99127F),
K7VM(KT133+W83782D), A7V,A7V133(KT133/A+AS99127F),
A7A266(ALi M1535D++AS99127F), A7V266(KT266/A+AS99127F),
A7N266(nForce+AS99127F), A7M266-D(AMD768+AS99127F),
A7V333(KT333+ASB100), A7V8X(KT400+ASB100),
CUSL(Intel815E+AS99127F), P4B533-VM(Intel845(ICH4)+ASM58)
EpoX: BX6SE(440BX/ISA+W83782D), 8KHA+(KT266A/ISA+W83697HF)
ECS: K7S5A(Sis735/ISA+IT8705F), D6VAA(AppoloPro133A(VIA686B))
Soltek: SL75DRV2(KT266+IT8705F)
Freeway: FW-6280BXDR/155(440BX+W83781D/W83782S)
Aopen: MX3S (i815E(ICH2)+W83627H), MX36LE (PLE133(VIA686B))
Shuttle: FV24 (PLE133(VIA686B))
MSI: K7N2 Delta-L(nForce2/ISA+W83627HF)
Tyan: TigerMP/MPX(S2460/S2462) (AMD766+W83782D+W83627HF)[Note]
Gigabyte: GA-7VAXP (KT400/ISA+IT8705F+LM90)
Leadtek: K7NCR18D (nForce2+W83783S+W83L785TS-S)
Albatron: KX400+Pro (KT333/ISA+W83697HF + W83L785TS-S)
這東東不用打內核補丁,使用比較簡單,還帶一個圖形界面,xmbmon,不過我編譯的時候沒通過,懶得搞了,哪位搞定了可以補充一下。編譯完以後./mbmon -d先看看,像我的結果就是:
Using VIA686 HWM directly!!
* VIA Chip VT82C686A/B found.
說明找到啦,然後就可以./mbmon
Temp.= 41.5, 44.3, 21.1; Rot.= 0, 4354, 0
Vcore = 1.63, 2.63; Volt. = 3.45, 5.03, 12.13, 0.00, 0.00
溫度,風扇轉速,電壓啥的就都出來啦。
另外,上面那些只是測試過有效的主板,你的板子不在裡面的話,可以再到這里找找晶元型號,也許會有也說不定:http://www.nt.phys.kyushu-u.ac.jp/s...-xmbmon202.html
其它信息請看:http://www.nt.phys.kyushu-u.ac.jp/s...d/download.html
最後說一個AMD晶元專用的降溫軟體了:LVCool。硬體fans應該有不少人知道Win下的VCool吧,降溫效果驚人,LVCool當然就是Linux版的VCool嘍,這里應該是主頁吧,可以下載內核補丁跟軟體本身:http://vcool.occludo.net/VC_Linux.html
支持的主板晶元類型主頁上第一句說明了:This little utility will cool your Athlon/Duron processor on Via KT133 or KX133 (VT8363 or VT8371/VT82C686x) chipsets ring idle.
介紹完畢,希望對大家有用。不完善的地方請有心人補充。
--------------------------------------------------------------------------------
由 carlos 在 07-13-2003 06:25 發表:
ibm thinkpad用戶使用lm_sensor要小心
有可能燒主板
__________________
Aoccdrnig to a rscheearch at an Elingsh uinervtisy,
it deosn't mttaer in waht oredr the ltteers in a wrod are,
the olny iprmoetnt tihng is taht frist and lsat ltteer is at the rghit pclae.
--------------------------------------------------------------------------------
由 chainsaw 在 07-13-2003 08:31 發表:
我以前寫的如何在debian下實現監測功能的貼子,供參考
gkrellm - debian上系統狀態監視的實現,
http://www.linuxsir.com/bbs/showthr...ghlight=gkrellm
__________________
debian
kernel 2.6.0-test7
--------------------------------------------------------------------------------
由 QuickTime 在 07-14-2003 00:26 發表:
athcool很不錯,基於LVcool做出來的
__________________
我的網站 http://chunfu.d3eye.com OS: Mandrake 10.1 kernel:2.6.8.1-Xmdk Opera 7.60TP1::Qt 3.3.2::KDE 3.3 @Duron 1.6G &384M
Vitis is my devel name.
--------------------------------------------------------------------------------
由 Apollo 在 07-14-2003 04:22 發表:
gkrellm對於cpu溫度的監控也是基於lm的。
可惜我的lm編譯通過,運行時缺少一個moles,按照其實去下載回頭這個模塊怎麼也編譯不過去,於是作罷。
--------------------------------------------------------------------------------
由 FlawZero 在 07-17-2003 11:32 發表:
athcool不錯:-)安裝使用都很簡單,也不用重編內核,我用了以後cpu溫度由43度降到36度左右,這里有個鏈接:http://members.jcom.home.ne.jp/jaco.../softwares.html
--------------------------------------------------------------------------------
由 sev3n 在 07-17-2003 12:26 發表:
我上次拆開機箱,
發現CPU風扇壞了,
看樣子早就壞了,
這一兩年使用電腦風扇就沒轉過,
還是好好的。 哈,還是celeron好
--------------------------------------------------------------------------------
由 FlawZero 在 07-17-2003 13:02 發表:
補充一下,上面第一篇提到的那個xmbmon編譯通不過的問題,裝上libXaw7-dev的包就行了,不過xmbmon的界面土點,我寧願用mbmon在命令行下顯示得了,呵呵
--------------------------------------------------------------------------------
由 lucida 在 07-17-2003 17:41 發表:
差不多
降溫我用lvcool,監控是superkaramba和mrtg,當然後台還是lm_sensors
穩定運行有半年了 :-)
pic...
__________________
1600+/512M/250G/64M R8500/1702FP/AU8830/HD-457
M$ Digital Media Pro KB/IE 3.0
XP sp2/Gentoo Dual Boot
PM2 1.6G/1024M/5K80 60G/128M R9600/SWXGA+/802.11g
Windows XP w/SP2 ONLY
㈤ 前百度、華為技術大咖加盟嬴徹科技!自動駕駛卡車量產穩步前行
▲嬴徹科技副總裁田琛
三、「技術+運營」模式雙管齊下?自動駕駛卡車量產穩步前進
放眼整個自動駕駛貨運領域,嬴徹科技已經成為了該領域的頭部玩家。
在技術方面,其自動駕駛卡車量產正在穩步推進中。據嬴徹科技透露,目前來看,與整車廠、Tier1的合作進展十分順利,量產項目的階段性目標均已如期完成。
此番楊睿剛博士、田琛博士的加入,將會進一步強化嬴徹科技在AI、軟體架構上的實力,並使其在中美兩地雙線展開的自動駕駛研發之路跑得更快、更好。
與此同時,在運營方面,嬴徹同步搭建的智能卡車運營平台業務基本已經覆蓋全國,客戶已接近百家。
技術與運營齊頭並進,嬴徹科技在自動駕駛貨運領域具備了獨特的競爭力,其自動駕駛卡車量產之路將會走得更為順暢。
本文來源於汽車之家車家號作者,不代表汽車之家的觀點立場。
㈥ 機群系統的基本體系結構
機群系統包括下列組件:
·高性能的計算結點機(PC、工作站或SMP)。
·具有較強網路功能的微內核操作系統。
·高效的網路/交換機(如千兆位乙太網和Myrinet)。
·網卡(NICs)。
·快速傳輸協議和服務。
·中間件層,其中包括某些支持硬體,如數字存儲通道、硬體分布共享存儲器及SMP技術;應用,如系統管理工具和電子表格;運行系統,如軟體分布共享存儲器和並行文件系統;資源管理和調度軟體等。
·並行程序設計環境與工具,如編譯器、語言環境、並行虛擬機(PVM)和消息傳遞介面(MPI)等。
·應用,包括串列和並行應用程序。 機群組建時應考慮下面的需求和功能:
·較高帶寬的網路,以支持通信需求;
·低延遲的通信機制;
·支持高帶寬的多點傳送通信方式;
·自動恢復網路和結點錯誤的能力;
·標準的低級原語,支持通信、同步和時序;
·異構的遠程過程調用,以隱藏體系結構、協議和系統的不同性;
·實時性能監視器;
·可靠的批處理工作調度程序;
·分布應用程序開發工具;
·支持傳統的高級語言進行異構計算;
·能夠開發工作站機群的應用程序;
·新的系統管理工具;
·發展標准化,以保護軟體投資。 一個典型機群系統和其他類型系統的對比可參看下錶。
基本類型
機群系統可以按照應用或結構進行分類。
1.按應用目標
可分為面向科學計算型或面向關鍵任務應用型:
·高性能機群(high performance cluster);
·高可用性機群(high availability cluster)。
2.按組成機群的處理機類型
·PC機群;
·工作站機群;
·SMP(對稱多處理器)機群。
3.按處理機操作系統
·Linux機群,如Beowulf;
·Solaris機群,如Berkeley NOW;
·NT機群,如HPVM;
·AIX機群,如IBM SP2;
·數字VMS(虛擬存儲機)機群;
·HP-UX機群;
·微軟Wolfpack機群。
4.按處理機的配置
·同構型機群:所有結點擁有近似的構造和相同的操作系統;
·非同構型機群:所有結點擁有不同的構造和不同的操作系統。
5.按處理機的位置和數量
·組機群,結點數量為2~99,通過SANs(系統級網路),如Myrinet,機群實際上裝入一個機箱中或存在一個范圍之內;
·部門機群,結點數量為幾十或幾百;
·企業機群,結點數量為幾百。
6.按構築機群的方式
·專用機群;
·非專用機群。
極高的性能價格比使專用機群深受歡迎。
專用機群
專用機群一般由一組同構的處理機組成(有時也有異構情況),通常安裝在一個機房內,或者將主板等安裝在一個機櫃的各機箱中(商業機群常用這種方式),或像圖中那樣簡單地把PC機堆砌在機架上(Piles of PC)。在這種機群中,每個處理機都是專用的、無屬主的,由系統管理員統一管理,用戶可通過前端機進行訪問,用戶無需知道機群的詳情,就像使用MPP機一樣,易於配置和管理,不受外界干擾,通信可靠且延遲小,適合於面向加速比的並行任務和面向吞吐量批處理作業。專用機群具有相對結構和管理簡單、易於擴展等特點,用途極廣。 ·I/O方式 包括普通用LAN、FDDI、ATM等網路連接和共享磁碟連接兩種方式。
·共享存儲器方式 包括全局共享存儲器方式和分布式共享存儲器方式。分布式存儲器指沒有一個集中的存儲器,由各處理機內一部分存儲器通過軟體機制形成。
1994年夏,美國的研究人員建成了第一個Beowulf機群,它由16個DX4處理機組成。1997年,又推出了16個基於PⅡ的機群,只需花費5萬美元卻具有每秒10億次的浮點運算能力,而購買具有相同能力並行機的投資數卻是它的10倍。 Berkeley的NOW系統也是較早的工作站機群,由上百個Sun Ultra工作站組成,集成到19 英寸機箱中,可使用Myrinet、ATM和終端集中器等多種互聯手段,每個結點自帶512K緩存、128M內存及2個2.3G硬碟。
此外,各大公司推出的商業專用機群還有很多,如DEC 的VMS機群和TruCluster、惠普的Apollo 9000機群、IBM的Sysplex、Sun的Solaris MC 等。
在國內,曙光公司最新推出了基於NT的天潮系列機群產品,是採用分布式存儲的可擴展機群體系。其結點處理器為Intel PⅡ和PⅢ,通過千兆位乙太網互聯,擴展性好,結點可根據不同的應用,動態地分為多個結點池,如可用兩個結點作為伺服器、四個結點運行資料庫、其他結點用於計算等,結點數量可靈活配置。應用范圍包括:
科學計算 支持PVM和MPI,使用優化的BLAS庫;事務處理 在線事務處理(OLTP),如電子商務、證券交易和在線分析處理(OLAP);並行資料庫 支持Oracle、DB2等分布式資料庫應用;
網路伺服器 運行各種Internet服務。 非專用機群是由分散互聯的處理機或在網上尋找到的空閑處理機組成的機群,這些處理機可能分屬於不同的個人、組織或單位。據資料統計,一般計算機系統平均使用率僅為30%左右,有的空閑率竟達91%,而許多桌面網路工作站和微機的CPU利用率都小於10%,因此,人們自然想到要利用這些閑散的CPU處理能力,這被稱為CPU周期竊取。
通常,網路上計算單元都是擁有者各自孤立地使用其擁有的計算單元,一般處於下列狀態:
·處於空閑或等待狀態,如夜間;
·文檔編輯工作,包括收發E-mail、閱讀文檔和信息等;
·開發工作,包括編輯、編程、編譯、調試等;
·完成某種定時、守候服務和功能;
·運行計算型的程序。
所謂竊取CPU周期就是要竊取上述前四類處理機的CPU 周期給最後一類工作用。顯然,被竊取CPU周期的處理機包括空閑的處理機和CPU負載較輕的處理機兩類。
非專用機群地理上分布於不同的所有者,由異構系統組成,大部分通過乙太網連接,適用於企業級區域網范圍,技術難度要高於專用機群。工作站的主人與需佔用工作站資源運行程序的遠程用戶之間存在著矛盾,前者希望與工作站快速交互,而後者只關心能否利用所有的共享CPU來快速運行程序。機器的所有者必須具有參加機群的動機,這意味著他們相信貢獻他們的資源是有意義的。但是,這些所有者不希望在他們工作時或他們的系統過於飽和時,受到其他干擾,一個解決的策略是允許所有者退出機群。目前,國際上正在形成一種計算資源的買賣市場,以刺激資源擁有者加入網上機群。此外,由於當前網路通信速度和質量的瓶頸所限及由通信競爭造成的網路不確定性的存在,對非專用機群技術提出了更高的要求,如對進程遷移、負載平衡等技術的需求。但此類系統最為貼近普通用戶,可以充分利用網上無窮無盡的資源,而組建投資幾乎可忽略不計。可以預見,隨著網路瓶頸問題的緩解,非專用機群必然是極有發展前途的一種計算形式。
㈦ 阿波羅11源代碼 什麼程序語言寫的
Delphi,是Windows平台下著名的快速應用程序開發工具(Rapid Application Development,簡稱RAD)。它的前身,即是DOS時代盛行一時的「BorlandTurbo Pascal」,最早的版本由美國Borland(寶蘭)公司於1995年開發。主創者為Anders Hejlsberg。經過數年的發展,此產品也轉移至Embarcadero公司旗下。Delphi是一個集成開發環境(IDE),使用的核心是由傳統Pascal語言發展而來的Object Pascal,以圖形用戶界面為開發環境,透過IDE、VCL工具與編譯器,配合連結資料庫的功能,構成一個以面向對象程序設計為中心的應用程序開發工具。
在古希臘神話里,DELPHI是智慧女神,米開朗基羅在義大利有著名的DELPHI雕像。
Delphi也是一個希臘地名,那裡的阿波羅神廟神諭非常靈驗,所以古希臘各個城邦都信奉delphi那裡阿波羅神廟預言,
由Borland公司推出的Delphi是全新的可視化編程環境,為我們提供了一種方便、快捷的Windows應用程序開發工具。它使用了MicrosoftWindows圖形用戶界面的許多先進特性和設計思想,採用了彈性可重復
㈧ 如何在c++定義一個學生類以實現平均成績的計算和查詢功能
一.中間件的定義與作用
1.什麼是中間件?
圖片摘自公眾號「筋斗雲與自動駕駛」
筆者在交流中發現,不同的人對中間件的理解並不一樣,甚至可以說,到現在,這個概念還是模糊不清的。比如:
(1)有的人認為中間件僅指位於OS內核之上、功能軟體之下的那部分組件,為上層提供進程管理、升級管理等服務;而有的人則認為中間件還應包括功能軟體和應用軟體中間的那部分(參見上圖)。按茅海燕的說法,前者是「通用中間件」,而後者是「專用中間件」。本文中提到的「中間件」,若不做專門說明,便特指「通用中間件」。
(2)有一些人提到的自動駕駛中間件,包括了AUTOSAR(又分為AUTOSAR CP和AUTOSAR AP),還有一些人口中的中間件,特指ROS2、Cyber RT、DDS等。
(3)未動科技VP蕭猛認為,「中間」一詞是相對的,當有多層堆疊的時候,每一層都是其上下兩層的中間層,因此,在用「中間件」這個詞的時候,我們需要特別指明它究竟位於「哪兩層之間」。按蕭猛的說法,當我們稱「ROS/ROS2 為中間件」時,其含義與 「AUTOSAR AP為中間件」並不是對等的關系。
(4)Vector產品專家蔡守群說,他理解的中間件,「是給App開發提供功能支撐的,對外是沒有功能表徵的;但是站在操作系統內核的角度,中間件跟App並沒有本質的區別」。
2.中間件的作用
汪浩偉說:「專用中間件原本是應用程序的一部分,只是很多公司做自動駕駛都需要用到,就被抽象出來了。」
那麼,它究竟有什麼用?
畢曉鵬認為,自動駕駛中間件最主要的作用是:對下,它能夠去適配不同的OS內核和架構;對上,它能夠提供一個統一的標准介面,負責各類應用軟體模塊之間的通信以及對底層系統資源的調度。
據畢曉鵬解釋,前者,使開發者們無需考慮底層的OS內核是什麼,也無需考慮硬體環境是什麼,即不僅實現了應用軟體與OS的解耦,也實現了應用軟體與硬體的解耦;而後者則確保了數據能夠安全實時地傳輸、資源進行合理的調度。
為什麼要通過中間件來支持軟硬體解耦?畢曉鵬解釋道:
我開發一個應用軟體,其中很多內容都是與具體應用邏輯無關的,包括數據通信、通信安全、系統資源調度等,比如,有十個進程需要數據交互,完全沒有必要在十個程序的軟體代碼里各自進行實現和配置。針對這種情況,我們就可以把重復的部分抽象成一種服務,單獨封成一層東西(這就是中間件),並提供統一的庫、介面和配置方法,供上層去調用。這樣的話,有一部分人專門去做中間件的,而做上層應用的人也不需要考慮跟底層交互的事情。
舉例說,如果要做一個自動泊車系統,它有各個模塊或業務邏輯獨立的不同軟體,在進行通信、數據交互,或者調用底層資源時,只需要中間件的一個介面就可以實現,其他事情不需要考慮,這樣開發人員就可以專注於自己的業務邏輯。
又比如,一個攝像頭需要感知前面的車道線、紅綠燈等,開發人員就專門做紅綠燈和車道線檢測演算法,與外界的數據交互只需要使用中間件的通信服務(例如訂閱攝像頭信息,發布檢測結果),而不必關心數據從哪裡來、發給誰。
Nullmax紐勱科技系統平台總監苗乾坤博士在此前的一篇文章中寫道:
「晶元算力大幅增長,攝像頭像素呈翻倍之勢,激光雷達出現在更多新車規劃上……沒有誰能夠斷言車上的感測器應該有多少,又或者是將來的汽車還會增加哪些硬體,但所有人都知道硬體的變化將會來得更加猛烈。
「所以我們也可以看到,汽車對軟硬體架構的要求也越來越高,既要能滿足當下的需求,還要具備相當的前瞻性、兼容性和擴展性,能夠支持接下來軟硬體升級換代、增減模塊的需求。而自動駕駛的中間件,就正是這樣一個可以按需調整、滿足各樣需求的現代溫室。
「在早期開發中,中間件可以化整為零,將巨大的軟體工程分解成若干小任務,分散解決。在後期應用時,它又可以化零為整,像拼積木一樣,根據需求將一個個模塊組合成一個整體,嚴絲合縫。」
在春節前的一場直播中,東軟睿馳產品銷售總監安志鵬說,在軟硬體解耦、模塊化管理後,再遇到問題,就不用整個系統都改,只改相對應的部分就行了。這樣,軟體的可復用程度就極大地提升了,同時,驗證的工作量也會減少許多,整體開發效率也會因此提升。
相反,沒有中間件的話,應用層就得直接調用操作系統的介面,後期要是換了操作系統,應用層的代碼和演算法可能就要推倒重來。
簡言之,中間件通過對計算平台、感測器等資源進行抽象,對演算法、子系統、功能採取模塊化的管理,並提供統一介面,讓開發人員能夠專注於各自業務層面的開發,無需了解無關細節。
按東軟睿馳產品銷售總監安志鵬的說法,搞AUTSOAR這樣的中間件,並不是只對OEM有利,「零部件供應商的選擇面也大了——應用做好了,下面的軟體、晶元可以選好幾家供應商的,要比傳統的開發模式快很多,因而,零部件供應商也是受益者」。
用蕭猛的話說,中間件最直接的好處就是「為上層屏蔽底層的復雜性」,軟體開發人員可以忽略晶元、感測器等硬體的差異,從而高效、靈活地將上層應用及功能演算法在不同平台上實現、迭代、移植。蕭猛認為,中間件可以看做是自動駕駛應用背景下的一項「新基建」。
(圖片摘自馮占軍博士的《AUTOSAR對基礎軟體開發是喜還是憂?》一文。AUTOSAR只是中間件的一種,但這里寫的「AUTOSAR開發優勢」基本也適用於其他中間件。)
不過,站在開發者的角度看,中間件的意義也未必全部是正面的。如馮占軍博士在《AUTOSAR對基礎軟體開發是喜還是憂?》一文中就提到了如下兩點:
底層軟體工程師變成了工具人,「只要你去點點滑鼠,用工具配合就可以了」,很多原本由自己做的測試也改由供應商來做,進而導致工程師的成就感嚴重降低;時間久了,工程師從0到1開發的能力也會降低。
(圖片摘自馮占軍博士的文章。盡管文章說的是Autosar,但實際上這些問題在ROS等其他中間件的使用過程中也會存在。)
對軟體工程師來說,中間件造成的「能力退化」這一問題幾乎是無解的。但馮占軍博士認為,「如果這個中間件在開發過程中,有使用公司的工程師深度參與,提出需求並一起實施,會好一些」。
此外,殷瑋在一篇文章提到,使用AUTOSAR這樣的中間件,Tier 1們應該是很不情願的,「因為不到增加了成本,還有可能逐步淪為硬體生產商」。但這個也不能說是中間件的鍋,在軟體定義汽車大大趨勢下,這幾乎是必然的。
二.常見的基本概念
1. AUTOSAR CP 與 AUTOSAR AP
在所有的中間件方案中,最著名的非AUTOSAR莫屬了。
嚴格地說,AUTOSAR並非特指由某一家軟體公司開發出來的某款操作系統或中間件產品,而是由全球的主要汽車生產廠商、零部件供應商、軟硬體和電子工業等企業共同制定的汽車開放式系統架構標准。不過,在實踐中,各公司基於AUTOSAR標准開發出來的中間件也被被稱為「AUTOSAR」。
當前,AUTOSAR可分為Classic Platform和Adaptive Platform兩個平台,兩者分別被簡稱為AUTOSAR CP與AUTOSAR AP。
簡單地說,AUTOSAR CP主要跑在8bit、16bit、32bit的MCU上,對應傳統的車身控制、底盤控制、動力系統等功能,如果涉及到自動駕駛的話,AUTOSAR CP可能無法實現;而AUTOSAR AP主要跑在64bit以上的高性能MPU/SOC上,對應自動駕駛的高性能電子系統。
嚴格地說,AUTOSAR CP並不只是個「中間件」,它是相當於「OS內核+中間件」的一套完整的「操作系統」。 AUTOSAR CP定義了基本的上層任務調度、優先順序調度等。
在基於分布式架構的ADAS功能中,AUOTSAR CP便是最常見的「操作系統」。在AUTOSAR的生態形成後,很多晶元廠商的MCU上標配的就是AUTOSAR CP,主機廠沒有什麼選擇權。
由於分布式架構下的晶元主要是MCU,因此,便有了「AUTOSAR CP主要跑在MCU上」的說法。
在分布式架構下,不同的功能對應著不同的MCU,而每一個MCU上都需要跑一套AUTOSAR CP,若感測器的類型比較多,則僅ADAS相關功能就需要很多套AUTOSAR CP,那怎麼收費呢?
常規的做法是:根據MCU的類型來收費——如果MCU是兩個異構的MCU,那AUTOSAR CP就按兩套來收費;如果MCU是同構的,那AUTOSAR CP就按一套來收費。
隨著EE架構從分布式向集中式演進、晶元由MCU向SOC演進,計算量及通信量成數量級地上升,另外,多核處理器、GPU、FPGA以及專用加速器的需求,還有OTA等,都超出了AUTOSAR CP的支持范圍。
(圖片摘自安志鵬的直播課)
2017年,為更好地滿足集中式架構+SOC時代的高等級自動駕駛對中間件的需求,AUTOSAR聯盟推出了通信能力更強、軟體可配置性更靈活、安全機制要求更高的AUTOSAR AP平台。
需要強調的是,不同於AUTOSAR CP自身已經包含了基於OSEK標準的OS,AUTOSAR AP只是一個跑在Lunix、QNX等基於POSIX標準的OS上面的中間件——它自身並不包含OS。
結合aFakeProgramer於2020年發表在CSDN上的《為什麼要用AP?Adaptive AutoSAR到底給企業提供了一些什麼?》一文及東軟睿馳安志鵬在2022年春節前的一場直播中講的內容,AUTOSAR CP與AUTOSAR AP最主要的區別有如下幾點:
1).編程語言不同——AUTOSAR CP基於C語言,而AUTOSAR AP基於C++語言;
2).架構不同——AUTOSAR CP 採用的是FOA架構(function-oriented architecture),而AUTOSAR AP採用的則是SOA架構(service-oriented architecture);
3).通信方式不同——AUTOAR CP採用的是基於信號的靜態配置通信方式(LIN\CAN...通信矩陣),而AUTOSAR AP採用的是基於服務的SOA動態通信方式(SOME/IP);
4).連接關系不同——在AUTOSAR CP中,硬體資源的連接關系受限於線束的連接,而在AUTOSAR AP中,硬體資源間的連接關系虛擬化,不局限於通信線束的連接關系;
5).調度方式不同——AUTOSAR CP採用固定的任務調度配置,模塊和配置在發布前進行靜態編譯、鏈接,按既定規則順序執行,而AUTOSAR CP則支持多種動態調度策略,服務可根據應用需求動態載入,並可進行單獨更新。
6).代碼執行和地址空間不同——AUTOSAR CP中,大部分代碼靜態運行在ROM,所有application共用一個地址空間,而在AUTOSAR AP中,應用載入到RAM運行,每個application獨享(虛擬)一個地址空間。
這些區別,帶給AUTOSAR AP的優勢有如下幾點——
1).ECU更加智能:基於SOA通信使得AP中ECU可以動態的同其他ECU同其他ECU進行連接,提供或獲取服務;
2).更強大的計算能力:基於SOA架構使得AP能夠更好地支持多核、多ECU、多SoCs並行處理,從而提供更強大的計算能力;
3).更加安全:基於SOA架構使得AP中各個服務模塊獨立,可獨立載入,IAM管理訪問許可權;
4).敏捷開發:Adaptive AUTOSAR服務不局限於部署在ECU本地可分布於車載網路中,使得系統模塊可靈活部署,後期也能靈活獨立更新(FOTA);
5).高通信帶寬:可實現基於Ethernet等高通信帶寬的匯流排通信;
6).更易物聯:基於乙太網的SOA通信,更易實現無線、遠程、雲連接,方便部署V-2-X應用。
(圖片摘自東軟睿馳)
當然了,在某些方面,AUTOSAR AP與AUTOSAR CP相比是有一些「劣勢」的。比如,AUTOSAR CP的時延可低至微秒級、功能安全等級達到了ASIL-D,硬實時;而AUTOSAR AP的時延則在毫秒級,功能安全等級則為ASIL-B,軟實時。
上述區別也導致了兩者應用領域的不同:AUTOSAR CP一般應用在對實時性和功能安全要求較高、對算力要求較低的場景中,如引擎控制、制動等傳統ECU;而AUTOSAR則應用在對實時性和功能安全有一定要求,但對算力要求更高的場景中,如ADAS、自動駕駛,以及在動態部署方面追求較高自由度的信息娛樂場景。
盡管AUTOSAR AP有種種優點,但總的來說,它目前還不夠成熟——主要是信息安全及UCM等模塊不成熟。量產車上裝AUTOSAR AP的不少,但主要用在娛樂場景,真正用在自動駕駛場景的還很少。
此外,由於SOC+MCU組合的現象會長期存在,因而,在今後相當長一段時間內,AUTOSAR AP都不可能徹底取代AUTOSAR CP——最常見的分工會是,需要高算力的工作交給AUTOSAR AP,而需要高實時性的工作則交給AUTOSAR CP。
(圖片摘自超星未來)
2.ROS 2
ROS是機器人操作系統(Robot Operating System)的英文縮寫,原生的ROS本是機器人OS,並不能直接滿足無人駕駛的所有需求,用作自動駕駛中間件的是ROS 2。
ROS 2與ROS 1的主要區別如下:
(1).ROS 1主要構建於Linux系統之上,主要支持Ubuntu;ROS 2採用全新的架構,底層基於DDS(Data Distribution Service)通信機制,支持實時性、嵌入式、分布式、多操作系統,ROS 2支持的系統包括Linux、windows、Mac、RTOS,甚至是單片機等沒有操作系統的裸機。
(2).ROS 1的通訊系統基於TCPROS/UDPROS,強依賴於master節點的處理;ROS 2的通訊系統是基於DDS,取消了master,同時在內部提供了DDS的抽象層實現,有了這個抽象層,用戶就可以不去關注底層的DDS使用了哪個商家的API。
(3).ROS運行時要依賴roscore,一旦roscore出現問題就會造成較大的系統災難,同時由於安裝與運行體積較大,對很多低資源系統會造成負擔;ROS2基於DDS進行數據傳輸,而DDS基於RTPS的去中心化的通信框架,這就去除了對roscore的依賴,系統的穩定性強,對資源的消耗也得到了降低。
(4).由於ROS 缺少Qos機制,topic的穩定性與質量難以保證;ROS2則提供了Qos機制,對通信的實時性、完整性、歷史追溯等功能有了支持,這便大幅加強了框架功能,避免了高速系統難以適用等問題。
不過,ROS2的QoQ配置較為復雜,目前主要是國外一些專業的大學或實驗室在使用,國內僅有極少數公司在嘗試;此外,ROS 2的生態成熟度遠不如ROS,這也給推廣應用帶來了不便。
跟AUTOSAR AP一樣,ROS 2也是跑在soc晶元上、用於滿足高等級自動駕駛的需求的。不過,蕭猛在去年的一批文章中卻特別強調:當我們稱 「ROS/ROS2 為中間件」時,其含義與 「AUTOSAR AP為 中間件」並不是對等的關系。
蕭猛的文章稱:
當我們說 AutoSar是中間件時,這個中間件是很明確的 L.BSW層語義,即處於計算機OS與車載ECU特定功能實現之間,為 ECU功能實現層屏蔽掉特定處理器和計算機OS相關的細節,並提供與車輛網路、電源等系統交互所需的基礎服務;
ROS/ROS2 是作為機器人開發的應用框架,在機器人應用和計算機OS之間提供了通用的中間層框架和常用軟體模塊(ROS Package),而且, ROS團隊認為這個框架做得足夠好,可以稱作操作系統(OS)了。
ROS 2盡管在功能上跟AUTOSAR AP有不少重疊之處,但兩者的思路是不一樣的:
(1).從表現形式上看,AUTOSAR AP首先是一套標准,這個標準定義了一系列基礎平台組件,每個平台組件定義了對應用的標准介面,但沒有定義實現細節,和平台組件之間的交互介面(這些部分留給AUTOSAR AP供應商實現);ROS2則從一開始就是代碼優先,每個版本都有完整的代碼實現,也定義有面向應用標准API介面。
(2)AUTOSAR AP從一開始就面向ASIL-B應用;ROS 2不是根據ASIL的標准設計的,ROS 2實現功能安全的解決方案是,把底層換為滿足ASIL要求的RTOS和商用工具鏈(編譯器)。
ROS 2「過不了車規」似乎已成為一個很廣泛的行業共識。但在蕭猛看來,ROS2本來就不是為實時域設計的,如果一定要把實時性要求高的車輛控制演算法運行在 ROS2中,「那是軟體設計的錯誤,而不是ROS2的問題」。
蕭猛認為,只要能補齊 L.BSW層所需要完成的所有功能、補齊 A 軸所有切面要求的特性,ROS 2就能用於自動駕駛量產車。如前段時間剛拿到采埃孚等多家巨頭投資的Apex.AI公司基於ROS 2定製開發的Apex.OS就已經通過了最高等級的ASIL D認證。
蕭猛說:「這實際上是基於 ROS 2的架構去實現一套 AUTOSAR AP 規范。這可以成為一個單獨的產品,投入時間+人+錢可以開發出來,只是看有沒有必要,值不值得」。
在具體的實踐中,ROS 2跟AUTOSAR AP存在直接競爭關系——盡管對用戶來說,並不存在嚴格意義上的「二選一」問題,但通常來說,若選了ROS 2,就不會選AUTOSAR AP了;若選了AUTOSAR AP,就不會選ROS 2了。
3. CyberRT
Cyber RT是網路Apollo開發出來的中間件,在Apollo 3.5中正式發布。Cyber RT和ROS2是比較像的, 其底層也是使用了一個開源版本的DDS。
網路最早用的是ROS 1,但在使用的過程中逐漸發現了ROS 1存在「若ROS Master出故障了,則任何兩個節點之間的通信便受到影響」的問題,所以就希望使用一個「沒有中間節點」的通信中間件來代替ROS 1,那時還沒有ROS2,所以自己去做了一個Cyber RT。
為了解決 ROS 遇到的問題,Cyber RT刪除了master機制,用自動發現機制代替,這個通信組網機制和汽車網路CAN完全一致。此外,Cyber RT的核心設計將調度、任務從內核空間搬到了用戶空間。
(圖片出處:https://blog.csdn.net/xhtchina/article/details/118151673)
其相對於其他系統,Cyber RT的一大優勢是,專為無人架駛設計。網路已將Cyber RT開源,某互聯網巨頭的自動駕駛團隊使用的中間件便是網路開源出來的Cyber RT。
Cyber RT跟ROS 2之間也存在競爭關系。
在談到AUTOSAR AP、ROS 2與Cyber RT這些中間件的關系時,Vector產品專家蔡守群的解釋是:
「不需要很機械地去分類,你可以把AUTOSAR AP, ROS和Cyber RT都想像成一個提供一組中間件的超市,用戶可以按需從不同的超市購買,並不是說從一個超市買過一個中間件,就不能從其他超市買了。
蔡守群說:AUTOSAR AP中也包含了對ROS介面的支持。說不準哪天ROS和Cyber RT就會加入AUTOSAR AP的組件,或者 AUTOSAR AP會引入Cyber RT的組件。
4.DDS(通信中間件)
(1)什麼是DDS?
在自動駕駛領域,中間件的功能涉及到通信、模塊升級、任務調度、執行管理,但其最主要的功能就是通信。當前市場上,無論是Cyber RT還是 ROS,基本上90%的功能就是通信,狹義上說就是通信中間件。
通信中間可以分成開源和閉源的兩種。開源的為OPEN DDS、FAST DDS、Cyclone等,閉源的就RTI的DDS和Vector的SOME/IP。DDS的全稱為Data Distribution Service ,指一種數據分發服務標准,由對象管理組織(OMG)制定。
DDS能夠實現低延遲、高可靠、高實時性的數據融合服務,能夠從根本上降低軟體的耦合性、復雜性,提高軟體的模塊化特性。高等級自動駕駛現在基本上都在探索依靠DDS來解決異構通信、低時延等CP解決不了的挑戰。
融合了DDS的汽車軟體能夠更好地運行在下一代汽車的體系架構中,更能降低開發的成本、縮短研發的時間,更快地將產品推向市場。
(2)DDS與ROS 2、AUTOSAR AP之間的關系
ROS 2和Cyber RT的底層都使用了開源的DDS,將DDS作為最重要的通信機制。但也有自動駕駛公司的工程師認為,DDS可以起到替代ROS 2的作用,站在用戶的角度看,兩者之間其實存在「二選一」的關系。
AUTOSAR CP里一直沒有包含跟DDS有關的東西,但AUTOSAR AP在 2018年3月的最新版(版本18-10)里開始支持DDS標准。將DDS與AUTOSAR AP結合使用,不僅可以保證和擴展AUTOSAR AP系統內部互操作性的功能,而且還可以將其開放給來自不同的生態系統(即ROS 2)。
從工程角度來看,將AUTOSAR和DDS結合起來的最大優勢是,功能域和網路拓撲不再是對手,而是車輛中的盟友。網路拓撲結構能夠更好地適應車輛的物理約束,功能域在物理車輛的頂部提供了一個靈活的覆蓋層,這就是所謂的分區體系結構。
當然,DDS僅是通信中間件的一種。關於各類通信中間件之間的異同,我們將在本系列的第二篇做更詳細的闡釋。
三.AUTOSAR AP的地位正在弱化?
盡管AUTOSAR是當下最有名的自動駕駛中間件,但《九章智駕》在對諸多中間件廠商們的調研中得出一個結論:AUTOSAR在產業鏈中的地位可能正在弱化。 當然了,那些專注於AUTOSAR系統的廠商們並不認同這一觀點。
我們在上文已經提到,隨著EE架構從分布式向集中式演進、MCU被SOC取代,CP AUTSAR被AUTOSAR AP、ROS 2和Cyber RT等取代已是大勢所趨,在下文,我們主要談的是「AUTOSAR AP的地位會不會弱化」。
2021年12月中旬,兩家AUTOSAR發起公司大陸集團、豐田聯合採埃孚、捷豹路虎、沃爾沃、海拉等多家汽車行業龍頭企業宣布投資車載操作系統初創公司Apex.AI,而Apex.AI的主力產品Apex.OS則是基於ROS 2發展起來的。
拿到了Apex.AI公司15%股權的采埃孚方面在接受媒體采訪時說:「這意味著,我們可以為客戶提供AUTOSAR AP的替代方案。」
盡管AUTOSAR AP已經有了標准,但還沒有落地。安波福、采埃孚、大陸這些公司提供的方案,仍然是基於AUTOSAR CP標準的介面。事實上,越來越多的OEM不太想完全用AUTOSAR去解決智能駕駛操作系統的問題。
不僅特斯拉沒有用AUTOSAR AP,國內的幾大造車新勢力也沒有用(他們用的是AUTOSAR CP+DDS)。甚至,連一些正在轉型的傳統車企也沒打算用AUTOSAR AP。
從產業鏈中各方的反應來看,AUTOSAR AP「地位不穩」的原因主要有以下幾個:
1.使用成本太高
馮占軍博士在《AUTOSAR對基礎軟體開發是喜還是憂?》一文中透露,AUTOSAR的費用通常是「幾百萬起」,並且,針對不同的域控制器、不同的晶元需要「重復收費」,一般小廠根本吃不消。「可能還沒有什麼產出,幾百萬就花出去了」。
除購買成本高外,畢曉鵬和蕭猛都提到,AUTOSAR前期的學習難度很大、學習成本也非常高。為了學會如何使用AUTOSAR,企業甚至不得不專門培訓一批人,如果受培訓的人臨時離職了,那培訓費用就打了水漂。
2.效率不高
畢曉鵬認為,AUTOSAR AP的配置非常多,它是通過配置加上一部分代碼去實現自己的功能,但配置多了之後,效率不高,而且代碼臃腫。
3.靜態部署與動態部署的理念沖突
畢曉鵬博士提到,AUTOSAR AP其實是從AUTOSAR CP發展而來的,AUTOSAR CP是靜態部署,只適用於相對簡單的業務邏輯和功能,其代碼是固化的,有點像以前的功能手機——功能無法改變,不可能往裡面再加一個APP;但AUTOSAR AP有點像現在的智能手機,軟體開發人員開發一個APP,跨平台就可以用不同手機上了,這種動態部署的理念和之前的靜態部署概念不甚相同,而其方法論卻是基於靜態部署衍生而來的,因此在實踐層面會遇到不少問題。
4.無法滿足智能網聯的需求
由於雲端跟車端所使用的操作系統不一樣,AUTOSAR只能負責車內的通信,不能支持車端到雲端的通信,因而無法支持車路協同場景(車端跟雲端的通信,是通過MQTT、kafka等中間件來實現的)。除此之外,AUTOSAR能否兼容車輛網聯化中需要用到的數據平台、通信平台和地圖平台,也存在很大的疑問。
畢曉鵬說,在發現了這些問題後,有一些OEM開始逐漸放棄AUTOSAR架構,「轉而自己去研發一套更適合動態部署、成本較低的新型軟體架構」。
傳統車廠是從使用CP過來的,所以在慣性上,他們可能還會考慮AP是否適合智能駕駛,但慢慢地也在嘗試轉型。如奧迪和TTTech合作做的通信中間件——zFAS,也沒有採用AP。
不同於AUTOSAR CP已經是非常標准化的東西,大家用起來沒什麼問題,AUTOSAR AP現在的標准也不是很完善,每年也在更新,具體AP能發展成什麼樣,這個誰也不知道,大家更多也是觀望的態度。
畢曉鵬認為,AUTOSAR標准並不能很好地支撐自動駕駛應用和創新的發展,因此,我們有必要建立一套更適合中國智能駕駛發展、且自主可控的技術架構和生態體系。
蕭猛認為,由於從AUTOSAR CP到AUTOSAR AP一脈相承,一些已經對AUTOSAR形成路徑依賴的公司會堅持使用AUTOSAR AP,但在經歷過招人難、開發周期長等教訓之後,他們有可能轉向ROS 2。
當然,以AUTOSAR為主業的公司,顯然不會認可上述「涉嫌唱衰」AUTOSAR AP的觀點的。
比如,Vector蔡守群就認為,AUTOSAR AP只會越來越重要,因為它是順應車載技術不斷發展的一套規范,覆蓋面會越來越廣。
東軟睿馳茅海燕也認為,要將整車域控制器和智駕域控制器合並到統一的中央計算平台上,沒有AUTOSAR AP的支持很難搞定。「不是每家公司都能像特斯拉一樣自己從頭搭建系統的,目前,最好的工具還是AUTOSAR AP」。
㈨ 3D的修改面板中flex到底是什麼意思
軟體技巧 眾說紛紜 休閑娛樂 笑話大全 飲食 文化 美容綜合信息 工具 內存 病毒 光碟機 辦公軟體
--------------------------------------------------------------------------------
目 錄
摘要………………………………………………………………………………………1
Abstract…………………………………………………………………………………2
第1章 緒論 ……………………………………………………………………………3
1.1 多媒體課件概述……………………………………………………………………3
1.2 各種課件製作軟體簡介……………………………………………………………3
1.3 flash課件的優勢……………………………………………………………………4
1.4 flash運用的一些缺陷………………………………………………………………5
第2章 flash基礎知識介紹…………………………………………………………6
2.1 flash概述……………………………………………………………………………6
2.1.1 入門概述……………………………………………………………………………………6
2.1.2關於flash……………………………………………………………………………………6
2.1.3 flash發展趨勢………………………………………………………………………………7
2.2 flash動作腳本………………………………………………………………………8
2.2.1 ActionScript概述…………………………………………………………………………8
2.2.2 ActionScript3.0介紹………………………………………………………………………9
第3章 flash製作基礎與進階……………………………………………………12
3.1 運算符………………………………………………………………………12
3.1.1算術運算符………………………………………………………………12
3.1.2羅輯運算符……………………………………………………………………12
3.1.3字元串運算符…………………………………………………………………12
3.1.4位運算符………………………………………………………………………13
3.1.5賦值運算符…………………………………………………………………13
3.1.6括弧運算符…………………………………………………………………14
3.1.7其他運算符…………………………………………………………………14
3.2常量及全局函數…………………………………………………………………15
3.2.1常量………………………………………………………………………………15
3.2.2數值運算函數………………………………………………………………………15
3.2.3字元串運算函數……………………………………………………………………16
3.2.4其他函數……………………………………………………………………………17
第4章 flash常用指令函數和語句………………………………………………18
4.1常用動作指令函數………………………………………………………………18
4.1.1影片片段操控動作……………………………………………………………………18
4.1.2影片片段相關動作………………………………………………………………………18
4.1.3其他動作……………………………………………………………………………19
4.2 flash的AS語句總結……………………………………………………………21
4.2.1指令語句………………………………………………………………………………21
4.2.2判斷語句…………………………………………………………………………………22
4.2.3循環語句………………………………………………………………………………22
4.2.4對象操作語句……………………………………………………………………………23
4.2.5函數及事件語句…………………………………………………………………………23
第5章 電力電子課件波形製作的實現………………………………………25
5.1 電力電子波形抽象分析與實現…………………………………………………25
5.1.1需求波形分析…………………………………………………………………………25
5.1.2 flash生成波形…………………………………………………………………………27
5.1.3 flash完整製作…………………………………………………………………………29
5.2 flash與其它環境集成…………………………………………………………29
5.2.1flash與powerpoint集成……………………………………………………………29
5.2.2 flash與網頁集成………………………………………………………………………30
第6章 Flash編程的總結…………………………………………………………25
6.1 flash程序的優化設計…………………………………………………………25
6.1.1優化函數簡化程序………………………………………………………………………25
6.1.2組件的介紹和運用………………………………………………………………………27
6.2 flash生成軟體…………………………………………………………………25
參考文獻………………………………………………………………………………31
致謝………………………………………………………………………………………32
摘 要:隨著計算機多媒體發展和普及,計算機輔助教育(CAI)已成為一種現代教學手段.它使傳統的教學方式發生了深刻的變革.這種教學方式打破了時間和空間的限制,將教學內容與教學所涉及到的事物,通過聲音,圖像,動畫等形式表現出來.增強教學效果,提高教學效率,具有傳統教學所不能比擬的優越性.
本文詳細介紹了flash在課件製作方面的基礎和高級的運用.Flash在課件製作方面有著獨有的優勢,通過添加圖片,聲音和視頻,可以使課件內容和畫面都豐富多彩.Flash 包含了許多種功能,如拖放用戶界面組件,將動作腳本添加到文檔的內置行為,以及可以添加到對象的特殊效果.這些功能使課件的動畫能夠產生復雜而精確的效果,如本課件需要動態生成正餘弦曲線.
本文對flash基礎和高級運用分章作了詳細介紹,對一些基本概念也作了詳細探討.並且介紹了flash的actionscript功能,它可以使動畫的表現更加豐富多彩.作為一門語言,actionscript在動畫方面的強大實用功能是其它語言無法比擬的
本文對電力電子學教材中的三相全控橋式整流電路波形的生成方法及步驟作了仔細講解,這個是對flash的AS的具體運用.相信flash的引進,教師的講課將更加生動,學生也能更好的理解教師講課的內容.最後還分別介紹了flash插入powerpoint和網頁的方法,鑒於此課件是上課教學之用,故將其插入powerpoint中.
關鍵詞:課件,flash,電力電子技術
Abstract:Along with computer's multi-media development and popularization, the Computer Assistant Instruction (CAI) has become a kind of modern teaching means. It makes traditional teaching method taken place deeply. This kind of teaching method broke time with the spatial restrict, content of course and teaching a thing for involving, coming out with the voice, picture, animation and so on. It could increase the teaching effect, increasing teaching efficiency through the thing, color, voice, that the traditional teaching can't comparing to.
In this paper, the base and advance application in the aspects of making courseware with the software of flash was detailed to introce. The Flash has got the advantage in making courseware, by adding the picture, voice and video which can make courseware's contents and appearance abundant and colorful. The Flash included many a function, such as dragging along to put the customer interface mole, adding the acting script to the inside of the text file, and adding the special effect of the object. These functions can make the courseware to proce the complicacy but accurate effect, such as sinusoid and cosine curve which this courseware demanded.
This article makes detailed introction to the base and advance application indivially, also makes the detailed study to the some basic concept. The function of the flash's actionscript is introced. The other language can't compare to the actionscript which has the strong, big and practical function in animation. It makes the performance of the animation more abundant and colorful.
This article explains in detail how to form a wave of three-phase bridge fully-controlled rectifier in the power electronics. It is the concrete application of the AS to the flash. To believe of flash ushers in, the teacher prelects much more vivid, student also can better understanding the contents. This article respectively introced finally the method of flash inserting the PowerPoint and the web page at last. This courseware is used in class, so it is inserted into the PowerPoint.
Keyword: Courseware, Flash, Power electronics technology
第1章 緒 論
第1.1節 多媒體課件概述
課件是根據教學大綱的要求,經過教學目標確定,教學內容和任務分析,教學活動結構及界面設計等環節,而加以製作的課程軟體.它與課程內容有著直接聯系.
課件(Courseware),指專門為進行教學活動而設計的計算機軟體,包括用於控制和進行教育活動的程序,幫助開發維護程序的文檔資料以及幫助教師和學習者使用程序學習的課本和練習冊等.網路課件,就是應用於網路環境的課件.而網路課程是通過網路表現的某門學科的教學內容及實施的教學活動的總和.課程與課件的出發點不同,課件是從教學活動出發,課程是從社會需求出發,但他們的教育目標是一致的,都是使學習者的認知結構發生一定的改變,使他們學會認知,學會生存,學會做事和學會與人共事.課件把課程中所規定的教學內容,教學活動用軟體的方式實現出來,但缺失了很多課程的內涵,如社會需求分析,課程規劃等,而這些缺失在教學中不能顯現出來,因此也造成了這兩種概念的混淆,有些網校或網路學院就把某些章節,某些知識點的材料作為網路課程了.
多媒體課件:所謂多媒體課件是根據教學大綱的要求和教學的需要,經過嚴格的教學設計,並以多種媒體的表現方式和超文本結構製作而成的課程軟體
第1.2節各種課件製作軟體簡介
Powerpoint介紹:
PowerPoint是微軟的Office系列組件之一,是幻燈片製作工具.由於它編輯多媒體的功能很強大,很多教師將其作為課件製作的工具.PowerPoint最大的特點是簡單易學,即使沒有基礎的教師在經過幾個小時的培訓後,就能做了一個不錯的課件,所以很多教師都是以PowerPoint起步來製作課件的.
PowerPoint內置豐富的動畫,過渡效果和幾十種聲音效果,並有強大的超級鏈接以及由此帶來的交互功能,可以直接調用外部媒體文件,能夠滿足一般教學要求.然而在課件製作方面,它的缺陷也是顯而易見的:幻燈片形式的播放使得課件缺乏流暢性,動畫也有些生硬,交互功能實際上是簡單的鏈接,對於要求較高的課件顯得有些力不從心,這時那就需要使用其他的課件製作工具了.
Authorware介紹:
Authorware是課件製作工具是應用比較廣泛的平台,它的最大特點是創造了基於圖標的創作方式,用可見的流程貫穿課件製作的整個過程,清晰有序.您只需對13種圖標進行拖放及設置,就可以完成課件的開發,無需編程.Authroware內置40多種過渡效果(利用插件,可產生更多的效果),5種基本運動形態,再利用層和Alpha通道,幾乎能完成所有的動畫效果.對於外部流行的各種格式的文本,圖片,聲音,影像等,都可直接調用,並能集成獨立播放的多媒體程序.Authorware的靈魂是它的交互功能和函數庫,11種交互方式使您輕松實現各種隨心所欲的交互效果,豐富的函數庫讓您的課件如虎添翼.但Authorqare對於多聲道支持不算理想,而且圖標方式有時又顯得很繁瑣.
課件王:
《課件王》—蒙泰瑤光多媒體課件製作系統,集中了部分Authorware和PowerPoint製作課件的優點.Authorware所有的交互方式它都可以輕松實現,實現的方式也很簡單,只需在對象上按下右鍵,彈出菜單,便可定義各種交互方式.它可以運動對象,與Authorware運動功能相比,《課件王》的運動功能更趨於完美.路徑設置使用專門的窗口,可以用繪畫方式畫出路徑,既直觀又方便.Authorware不能畫的折線,任意曲線,弧線,不規則圖形,借用《課件王》繪圖工具都可以搞定.值得一提的是,《課件王》使用了與PowerPoint相似的頁面組織形式和管理方式,使得課件脈絡清晰,結構明了,初學者非常容易使用.頁面及頁面中的對象都可以與PowerPoint中一樣,在目錄區選定並設定入場順序,效果,路徑及聲音等效果.
其它課件製作軟體:
科教2000課件製作工具,ChinaSchool2000備課平台,翰林匯多媒體課件製作系統,方正奧思多媒體創作工具,凱迪多媒體創作系統,深藍易思課件製作工具,金海航網路多媒體教學平台,速龍易之課件製作系統等等.
第1.3節flash課件的優勢
1. 使用矢量圖形和流式播放技術.與點陣圖圖形不同的是,矢量圖形可以任意縮放尺寸而不影響圖形的質量;流式播放技術使得動畫可以邊播放邊下載,從而緩解了網頁瀏覽者焦急等待的情緒.
2. 通過使用關鍵幀和圖符使得所生成的動畫(.swf)文件非常小,幾K位元組的動畫文件已經可以實現許多令人心動的動畫效果,用在網頁設計上不僅可以使網頁更加生動,而且小巧玲瓏下載迅速,使得動畫可以在打開網頁很短的時間里就得以播放.
3. 把音樂,動畫,聲效,交互方式融合在一起,越來越多的人已經把Flash作為網頁動畫設計的首選工具,並且創作出了許多令人嘆為觀止的動畫(電影)效果.支持MP3音樂格式,AVI視頻格式等,這使得加入音樂和視頻的動畫文件也能保持小巧的"身材".
4. 強大的動畫編輯功能使得設計者可以隨心所欲地設計出高品質的動畫,通過ACTION和FS COMMAND可以實現交互性,使Flash具有更大的設計自由度,另外,它與當今最流行的網頁設計工具Dreamweaver配合默契,可以直接嵌入網頁的任一位置,非常方便.
總之,Flash已經慢慢成為動畫製作的標准,成為一種新興的技術發展方向.對於動畫製作,flash絕對是首選的優秀製作工具.
第1.4節 flash運用的一些缺陷
雖然flash具有強大動畫製作功能,但是如用以製作普通文字課件,效果以翻頁為主,那麼flash並不是理想的選擇,用powerpoint更為簡便易用.具體問題具體分析,選擇什麼樣的課件製作工具要視課件類型而定,不可偏執一見,要懂得靈活運用.
完成的flash作品是以.swf文件發布,這個文件是通過源文件.fla生成的,如果要修改flash裡面的東西,必須修改源文件,然後再次生成,所以修改flash文件比較麻煩,但powerpoint等可以隨時隨地修改.
個人認為Flash對3D的處理不是很理想,所謂flash處理的一般都是2D動畫,如需製作3D動畫,最好結合其它軟體處理,如3D MAX.
還有一些細節問題,我在製作過程說明中會指出,flash隨著版本的升高越來越完善,所謂瑕不掩瑜,flash依然是動畫製作的霸主!
第2章flash基礎知識介紹
第2.1節 flash概述
2.1.1 入門概述
Flash是美國的MACROMEDIA公司於1999年6月推出的優秀網頁動畫設計軟體.它是一種互動式動畫設計工具,用它可以將音樂,聲效,動畫以及富有新意的界面融合在一起,以製作出高品質的網頁動態效果.Flash 提供了創建和發布豐富的 Web 內容和強大的應用程序所需的所有功能.不管是設計動畫還是構建數據驅動的應用程序,Flash 都為您提供了創作出色作品和為使用不同平台和設備的用戶提供最佳體驗的工具.
2.1.2 關於flash
Flash 最早期的版本稱為 Future Splash Animator ,當時 Future Splash Animator 最大的兩個用戶是微軟( Microsoft )和迪斯尼( Disney ). 1996 年 11 月, Future Splash Animator 賣給了 MM ( Macromedia.com ),同時改名為 Flash1.0 .這里不得不提到的人物是喬納森·蓋伊 (Jonathan Gay) ,是他和他的六人小組首先創造了 Future Splash Animator ,也就是現在 Flash 的真正前身了.
Macromedia 公司在 1997 年 6 月推出了 Flash 2.0 , 1998 年 5 月推出了 Flash3.0 .但是這些早期版本的 Flash 所使用的都是 Shockwave 播放器.自 Flash 進入 4.0 版以後,原來所使用的 Shockwave 播放器便僅供 Director 使用. Flash 4.0 開始有了自己專用的播放器,稱為" Flash Player ",但是為了保持向下相容性, Flash 仍然沿用了原有的擴展名: .SWF ( Shockwave Flash ).
2000 年 8 月 Macromedia 推出了 Flash5.0 ,它所支持的播放器為 Flash Player 5 . Flash 5.0 中的 ActionScript 已有了長足的進步,並且開始了對 XML 和 Smart Clip (智能影片剪輯)的支持. ActionScript 的語法已經開始定位為發展成為一種完整的面向對象的語言,並且遵循 ECMAScript 的標准,就像 javascript 那樣.
2002 年 3 月 Macromedia 推出了 Flash MX 支持的播放器為 Flash Player 6 . Flash 6 開始了對外部 jpg 和 MP3 調入的支持,同時也增加了更多的內建對象,提供了對 HTML 文本更精確的控制,並引如 SetInterval 超頻幀的概念.同時也改進了 swf 文件的壓縮技術.那麼," MX "究竟是什麼意思呢 到目前為止,還沒有一個官方的證實,如果一定要認為是某個單詞的縮寫,那麼可以把 Macromedia Experience 作為最好的答案.最權威答案來自 Macromedia Designer & Developer Center ( Macromedia 設計師和開發者中心)負責人的說法:
1 ,所有的產品都搭載上 MX 綽號,是因為它們都是一個完整產品家族的一部分,而且,我們相信通過整套前台和後台綜合的產品,可以讓用戶更高效得完成各種復雜項目.
2 ,比起僅僅從版本號升級,例如 Flash 由 5 升級到 6 ,用 MX 標簽可以體現更重要的升級,看起來用戶好象得到了全新的產品,從 5 到了 MX !
3 , MX 意味著 Macromedia 以此嘗試一些新的事物,就我的觀點來看, Flash MX 不僅僅是一次革命性的升級,還是 Macromedia 一個重大演變的一部分.我不能說得太多,因為 Flash MX 僅僅是一個開始,接下來的幾個月中會更有體現.
雖然他依舊沒有回答 MX 到底是什麼意思,而最後一句" MX 意味著 Macromedia 以此嘗試一些新的事物",暴露出 Macromedia Experience 的意思,也就有理由猜測, MX 可能是 Macromedia X 的意思,即 Macromedia 的未來之路, Macromedia 正試圖展開一次全新的革命.
2003 年 8 月 Macromedia 推出了 Flash MX 2004 ,其播放器的版本被命名為 Flash Player 7 . Flash MX 2004 增加了許多新的功能:
A ,對移動設備和手機, Pocket PC 的支持(以及像素字體的清晰顯示);
B , Flash Player 運行時性能提高了 2 至 5 倍;
C ,對 HTML 文本中內嵌圖像和 swf ( swf 中的獨立 swf )的支持;
D , FLV 外部視頻的支持(與 QuickTime 的集成);
E ,對 Adobe PDF 及其它文檔的支持;
F ,基於屏幕的可視開發環境;
G ,可視編程環境;
H ,高級可控制外觀組件支持;
I ,數據綁定;
J , Web 服務和 XML 的預建數據連接器;
K ,項目管理功能;
L ,源代碼控制系統;
M ,其它
同時開始了對 Flash 本身製作軟體的控制和插件開放 JSFL ( Macromedia Flash javascript API ), Macromedia 無疑在開始調動 Internet 上 Flasher 們的巨大力量和集體智慧 .
2.1.3 flash發展趨勢
Macromedia 被 Adobe 收購後,原來的拳頭產品 Flash 在新的一年裡將會如何發展呢 Lynda.com 及 the Flashforward Conference & Film Festival 創始人Lynda Weinman 對2006年 Flash 的走勢進行了5大預測.
1,Flash很可能被整合到PDF中
Flash很可能被整合到PDF之中,這將大大增強PDF格式的功能.互動式PDF文檔正是當 前所缺乏的功能.它將成為分發桌面應用程序的好方法.最近在會議中的公告,在Macromedia Blogs以及在Macromedia Labs上描述的一種代號Apollo的新產品,看起來就像是下一代PDF/Flash產品的基本原型.
2,Adobe軟體有望直接輸出FLA文件
將來Adobe應用程序除了SWF文件外,還有望輸出FLA文件.這意味著flash項目能夠在Photoshop, Illustrator, After Effects, Audition或 Premiere中生成,並完全能夠在Flash編輯.而Adobe工具當前只能輸出SWF文件,如果能夠輸出FLA文件將會更加通用和強大.此外,Macromedia與Adobe工具之間的協同工作能力應該也會得到大大改進.以前困擾專業Flash設計者和開發者之間的問題將會隨之消逝.
3,輕松開發Flex RIA
ActionScript已經內建到Macromedia Flex之中.現有的Flash用戶將能夠輕松運用他們掌握的Flash技巧進行Flex應用程序的開發.Flex能夠讓開發者創建運行於桌面,互聯網以及移動設備中的RIA(富互聯網應用程序).這些應用程序還能跨平台以及與其他標准技術互動.
4,全新的代碼執行引擎
下一代Flash Player 8.5,結合ActionScript 3,擁有一個完全重寫的,比以前版本更快的全新代碼執行引擎.這將是一個受開發者歡迎的改變,並將吸引到原來對它的執行效率不滿意的開發人員.
5,成為視頻發布的首選格式
Flash將趕超QuickTime和Windows Media Player成為Web,桌面應用程序和device delivery的首選視頻格式.Flash視頻提供了Quick和Windows Media所不具有的豐富的交互性,加上它獨特的程序運行時Alpha合成功能,自然會令許多視頻發布者採用Flash而放棄其他的選擇.
第2.2節 flash動作腳本
2.2.1 ActionScript概述
Action Script簡稱為AS,是Flash產品平台的腳本解釋語言.該語言可以實現Flash中內容與內容,內容與用戶之間的交互.AS的解釋工作由Action Virtual Machine(AVM)來解釋,AVM可以稱之為AS虛擬機,類似於JVM,AVM是Flash Player播放器中的一部分.AS語句要想起作用是要通過Flash創作工具或Flex伺服器將其編譯生成2進制代碼格式方可,而編譯過的2進制代碼格式將成為SWF文件中的一部分,被Flash播放器執行.AS1.0起源於ECMAScript標准,由於ECMA的語法的兼容性和Flash Player播放器的大小和渲染引擎的需要,AS可以稱之為是語法來源於ECMAScript.
說到AS不得不說Flash4的AS集合,它曾經讓Flash4兼容格式的內容變化多端.但是從一定程度上,Flash4的AS不能稱之為成熟的並且為開發者所承認的腳本語言集合.它的語法方式完全不同於ECMAScript.雖然我們可以在Flash5的時代可以向它添加一些ECMA效仿的語句上去,但是AS在Flash4中是完全於ECMAScript標准相左的.現在Flash4的AS仍然可以被應用在Flash Lite1.1的內容之上.
AS1.0是從Flash5的時代誕生的,這時的版本就已經具備了ECMAScript標準的語法格式和語義解釋.盡管後來的Flash Player5/6的播放器版本(Build)的一再更新,使得越來越多的ECMA語法和語義被納入到AS1.0的API當中去,但是核心語言的編譯處理及表現方式都是延續了Flash5的AS1.0的標准.甚至於到後來的Flash7,對於AS1.0的核心解釋機制,仍然與Flash Player5有著很多相同之處.
AS2.0是在MX時代被慢慢引入的,而在MX 2004版本被開發者全面採納.AS2.0的運行則是完全在Flash Player6以上的版本中才具備的機制.AS2.0在Flash6中都可以運行,是因為AS2.0語句在運行時(runtime)環境下仍然採用了AS1.0的模型.這也是骨子裡為什麼AS2.0的運行性能並不比AS1.0優秀的重要原因.AS2.0的編寫方式則是更加成熟,引入了面向對象編程的方式,並且有良好的類型聲明,而且分離了運行時和編譯時的異常處理.AS2在格式上遵從了ECMA4 Netscape的語言方案,但是並不是完全兼容ECMAScript標准.雖然基於AS2的開發方式從眾多開發者眼中褒貶不一,但是不可否認的是,AS2為了AS3.0的誕生鋪設了一條康莊大道.
AS3.0的規范已經出來了,而AS3.0也是未來Flash開發腳本的核心.AS3的播放器只有從Flash Player 8.5以上版本開始支持,也就是我們現在用到的Flex 2.0 Beta才可以對AS3進行編譯的工作.AS3有著很多不同之處,它將全面支持ECMA4的語言標准,意味著AS3將具有ECMAScript中的Package/命名空間namespace等多項AS2不具備的特點.AS3將全面支持E4X,也就是支持ECMAScrpit for XML的標准.AS3將採用全新的AVM來進行解釋,與AS1/2的AVM將完全不同.此外AS3的編譯器也是完全和AS2的編譯器有所不同.此外,AS3的API將更加直觀,會去除很多容易讓人混淆的部分,添加對ECMA全面的兼容性,目的就是讓基於AS3的內容更加快速與強壯.
2.2.2 ActionScript3.0介紹
ActionScript 3.0演變成一門強大的面向對象的編程語言意味著flash平台的重大變革.這種變化也意味著ActionScript 3.0將創造性地將語言理想地迅速地建立出適應網路的豐富應用程序,成為豐富網路應用(RichInternetApplication)項目的本質部分.比較早期的ActionScript版本就已經提供了這種要求為創造真實地參與在線體驗的力量和靈活性.ActionScript3.0將促進和發展這種性能, 提供發展強大表現和舒適的先進的高度復雜應用,結合大型資料庫以及可移值性的面象對象的代碼.擁有ActionScript 3.0,開發者可能達到高效執行效率和表現同一的平台.ActionScript 3.0基於ECMAScript,ECMAScript是所有編程語言的國際規范化的語言.ActionScript3.
㈩ java 目前市面上比較火的框架有哪些
Java 始終排在第一位,這使它成為有史以來最著名的軟體編程語言之一。及時的更新和新版本發布使它成為一種充滿活力的、有競爭力的編程語言。
2020年最常用的java框架
十大常用框架:
一、SpringMVC
二、Spring
三、Mybatis
四、Dubbo
五、Maven
六、RabbitMQ
七、Log4j
八、Ehcache
九、Redis
十、Shiro
模型(Model )封裝了應用程序的數據和一般他們會組成的POJO。
視圖(View)是負責呈現模型數據和一般它生成的HTML輸出,客戶端的瀏覽器能夠解釋。
控制器(Controller )負責處理用戶的請求,並建立適當的模型,並把它傳遞給視圖渲染。
Spring的web模型 - 視圖 - 控制器(MVC)框架是圍繞著處理所有的HTTP請求和響應的DispatcherServlet的設計。
Authentication 許可權
Caching 緩存
Context passing 內容傳遞
Error handling 錯誤處理
Lazy loading懶載入
Debugging 調試
logging, tracing, profiling and monitoring記錄跟蹤優化校準
Performance optimization性能優化
Persistence 持久化
Resource pooling資源池
Synchronization同步
Transactions 事務
Provider: 暴露服務的服務提供方。
Consumer: 調用遠程服務的服務消費方。
Registry: 服務注冊與發現的注冊中心。
Monitor: 統計服務的調用次調和調用時間的監控中心。
Container: 服務運行容器。
一、SpringMVC
Spring Web MVC是一種基於Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將web層進行職責解耦,基於請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發,Spring Web MVC也是要簡化我們日常Web開發的。
Spring Web MVC處理請求的流程
具體執行步驟如下:
1、 首先用戶發送請求————>前端控制器,前端控制器根據請求信息(如URL)來決定選擇哪一個頁面控制器進行處理並把請求委託給它,即以前的控制器的控制邏輯部分;圖2-1中的1、2步驟;
2、 頁面控制器接收到請求後,進行功能處理,首先需要收集和綁定請求參數到一個對象,這個對象在Spring Web MVC中叫命令對象,並進行驗證,然後將命令對象委託給業務對象進行處理;處理完畢後返回一個ModelAndView(模型數據和邏輯視圖名);圖2-1中的3、4、5步驟;
3、 前端控制器收回控制權,然後根據返回的邏輯視圖名,選擇相應的視圖進行渲染,並把模型數據傳入以便視圖渲染;圖2-1中的步驟6、7;
4、 前端控制器再次收回控制權,將響應返回給用戶,圖2-1中的步驟8;至此整個結束。
二、Spring
2.1、IOC容器:
IOC容器就是具有依賴注入功能的容器,IOC容器負責實例化、定位、配置應用程序中的對象及建立這些對象間的依賴。應用程序無需直接在代碼中new相關的對象,應用程序由IOC容器進行組裝。在Spring中BeanFactory是IOC容器的實際代表者。
2.2、AOP:
簡單地說,就是將那些與業務無關,卻為業務模塊所共同調用的邏輯或責任封裝起來,便於減少系統的重復代碼,降低模塊間的耦合度,並有利於未來的可操作性和可維護性。AOP代表的是一個橫向的關系
AOP用來封裝橫切關注點,具體可以在下面的場景中使用:
三、Mybatis
MyBatis 是支持普通 SQL查詢,存儲過程和高級映射的優秀持久層框架。MyBatis 消除了幾乎所有的JDBC代碼和參數的手工設置以及結果集的檢索。MyBatis 使用簡單的 XML或註解用於配置和原始映射,將介面和 Java 的POJOs(Plain Old Java Objects,普通的 Java對象)映射成資料庫中的記錄。
總體流程:
(1)載入配置並初始化
觸發條件:載入配置文件
將SQL的配置信息載入成為一個個MappedStatement對象(包括了傳入參數映射配置、執行的SQL語句、結果映射配置),存儲在內存中。
(2)接收調用請求
觸發條件:調用Mybatis提供的API
傳入參數:為SQL的ID和傳入參數對象
處理過程:將請求傳遞給下層的請求處理層進行處理。
(3)處理操作請求
觸發條件:API介面層傳遞請求過來
傳入參數:為SQL的ID和傳入參數對象
處理過程:
(A)根據SQL的ID查找對應的MappedStatement對象。
(B)根據傳入參數對象解析MappedStatement對象,得到最終要執行的SQL和執行傳入參數。
©獲取資料庫連接,根據得到的最終SQL語句和執行傳入參數到資料庫執行,並得到執行結果。
(D)根據MappedStatement對象中的結果映射配置對得到的執行結果進行轉換處理,並得到最終的處理結果。
(E)釋放連接資源。
(4)返回處理結果將最終的處理結果返回
MyBatis 最強大的特性之一就是它的動態語句功能。如果您以前有使用JDBC或者類似框架的經歷,您就會明白把SQL語句條件連接在一起是多麼的痛苦,要確保不能忘記空格或者不要在columns列後面省略一個逗號等。動態語句能夠完全解決掉這些痛苦。
四、Dubbo
Dubbo是一個分布式服務框架,致力於提供高性能和透明化的RPC(遠程過程調用協議)遠程服務調用方案,以及SOA服務治理方案。簡單的說,bbo就是個服務框架,如果沒有分布式的需求,其實是不需要用的,只有在分布式的時候,才有bbo這樣的分布式服務框架的需求,並且本質上是個服務調用的東東,說白了就是個遠程服務調用的分布式框架。
1、透明化的遠程方法調用,就像調用本地方法一樣調用遠程方法,只需簡單配置,沒有任何API侵入。
2、軟負載均衡及容錯機制,可在內網替代F5等硬體負載均衡器,降低成本,減少單點。
3、 服務自動注冊與發現,不再需要寫死服務提供方地址,注冊中心基於介面名查詢服務提供者的IP地址,並且能夠平滑添加或刪除服務提供者。
節點角色說明:
五、Maven
Maven這個個項目管理和構建自動化工具,越來越多的開發人員使用它來管理項目中的jar包。但是對於我們程序員來說,我們最關心的是它的項目構建功能。
六、RabbitMQ
消息隊列一般是在項目中,將一些無需即時返回且耗時的操作提取出來,進行了非同步處理,而這種非同步處理的方式大大的節省了伺服器的請求響應時間,從而提高了系統的吞吐量。
RabbitMQ是用Erlang實現的一個高並發高可靠AMQP消息隊列伺服器。
Erlang是一門動態類型的函數式編程語言。對應到Erlang里,每個Actor對應著一個Erlang進程,進程之間通過消息傳遞進行通信。相比共享內存,進程間通過消息傳遞來通信帶來的直接好處就是消除了直接的鎖開銷(不考慮Erlang虛擬機底層實現中的鎖應用)。
AMQP(Advanced Message Queue Protocol)定義了一種消息系統規范。這個規范描述了在一個分布式的系統中各個子系統如何通過消息交互。
七、Log4j
日誌記錄的優先順序,分為OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定義的級別。
八、Ehcache
EhCache 是一個純Java的進程內緩存框架,具有快速、精乾等特點,是Hibernate中默認的CacheProvider。Ehcache是一種廣泛使用的開源Java分布式緩存。主要面向通用緩存,Java EE和輕量級容器。它具有內存和磁碟存儲,緩存載入器,緩存擴展,緩存異常處理程序,一個gzip緩存servlet過濾器,支持REST和SOAP api等特點。
優點:
1、 快速
2、 簡單
3、 多種緩存策略
4、緩存數據有兩級:內存和磁碟,因此無需擔心容量問題
5、 緩存數據會在虛擬機重啟的過程中寫入磁碟
6、可以通過RMI、可插入API等方式進行分布式緩存
7、 具有緩存和緩存管理器的偵聽介面
8、支持多緩存管理器實例,以及一個實例的多個緩存區域
9、提供Hibernate的緩存實現
缺點:
1、使用磁碟Cache的時候非常佔用磁碟空間:這是因為DiskCache的演算法簡單,該演算法簡單也導致Cache的效率非常高。它只是對元素直接追加存儲。因此搜索元素的時候非常的快。如果使用DiskCache的,在很頻繁的應用中,很快磁碟會滿。
2、不能保證數據的安全:當突然kill掉java的時候,可能會產生沖突,EhCache的解決方法是如果文件沖突了,則重建cache。這對於Cache數據需要保存的時候可能不利。當然,Cache只是簡單的加速,而不能保證數據的安全。如果想保證數據的存儲安全,可以使用Bekeley DB Java Edition版本。這是個嵌入式資料庫。可以確保存儲安全和空間的利用率。
九、Redis
redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字元串)、list(鏈表)、set(集合)、zset(sorted set –有序集合)和hash(哈希類型)。這些數據類型都支持push/pop、add/remove及取交集並集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redis支持各種不同方式的排序。與memcached一樣,為了保證效率,數據都是緩存在內存中。區別的是redis會周期性的把更新的數據寫入磁碟或者把修改操作寫入追加的記錄文件,並且在此基礎上實現了master-slave(主從)同步。
Redis資料庫完全在內存中,使用磁碟僅用於持久性。相比許多鍵值數據存儲,Redis擁有一套較為豐富的數據類型。Redis可以將數據復制到任意數量的從伺服器。
1.2、Redis優點:
(1)異常快速:Redis的速度非常快,每秒能執行約11萬集合,每秒約81000+條記錄。
(2)支持豐富的數據類型:Redis支持最大多數開發人員已經知道像列表,集合,有序集合,散列數據類型。這使得它非常容易解決各種各樣的問題,因為我們知道哪些問題是可以處理通過它的數據類型更好。
(3)操作都是原子性:所有Redis操作是原子的,這保證了如果兩個客戶端同時訪問的Redis伺服器將獲得更新後的值。
(4)多功能實用工具:Redis是一個多實用的工具,可以在多個用例如緩存,消息,隊列使用(Redis原生支持發布/訂閱),任何短暫的數據,應用程序,如Web應用程序會話,網頁命中計數等。
1.3、Redis缺點:
(1)單線程
(2)耗內存
十、Shiro
Apache Shiro是Java的一個安全框架,旨在簡化身份驗證和授權。Shiro在JavaSE和JavaEE項目中都可以使用。它主要用來處理身份認證,授權,企業會話管理和加密等。Shiro的具體功能點如下:
(1)身份認證/登錄,驗證用戶是不是擁有相應的身份;
(2)授權,即許可權驗證,驗證某個已認證的用戶是否擁有某個許可權;即判斷用戶是否能做事情,常見的如:驗證某個用戶是否擁有某個角色。或者細粒度的驗證某個用戶對某個資源是否具有某個許可權;
(3)會話管理,即用戶登錄後就是一次會話,在沒有退出之前,它的所有信息都在會話中;會話可以是普通JavaSE環境的,也可以是如Web環境的;
(4)加密,保護數據的安全性,如密碼加密存儲到資料庫,而不是明文存儲;
(5)Web支持,可以非常容易的集成到Web環境;
Caching:緩存,比如用戶登錄後,其用戶信息、擁有的角色/許可權不必每次去查,這樣可以提高效率;
(6)shiro支持多線程應用的並發驗證,即如在一個線程中開啟另一個線程,能把許可權自動傳播過去;
(7)提供測試支持;
(8)允許一個用戶假裝為另一個用戶(如果他們允許)的身份進行訪問;
(9)記住我,這個是非常常見的功能,即一次登錄後,下次再來的話不用登錄了。
文字描述可能並不能讓猿友們完全理解具體功能的意思。下面我們以登錄驗證為例,向猿友們介紹Shiro的使用。至於其他功能點,猿友們用到的時候再去深究其用法也不遲。
十一、設計模式
這個算不上框架,可自行忽略,不過我認為設計模式的思想很有必要了解一下。
思想:
開閉原則:
開閉原則就是說對擴展開放,對修改關閉。在程序需要進行拓展的時候,不能去修改原有的代碼。
針對介面編程,針對介面編程,依賴於抽象而不依賴於具體。
盡量使用合成/聚合的方式,而不是使用繼承。
一個實體應當盡量少的與其他實體之間發生相互作用,使得系統功能模塊相對獨立。
使用多個隔離的介面,比使用單個介面要好。
里氏代換原則:
(1)子類的能力必須大於等於父類,即父類可以使用的方法,子類都可以使用。
(2)返回值也是同樣的道理。假設一個父類方法返回一個List,子類返回一個ArrayList,這當然可以。如果父類方法返回一個ArrayList,子類返回一個List,就說不通了。這里子類返回值的能力是比父類小的。
(3)還有拋出異常的情況。任何子類方法可以聲明拋出父類方法聲明異常的子類。 而不能聲明拋出父類沒有聲明的異常。