第1回 2007年4月13日 応用Java (Java/XML)
この講義の目的 JavaのアプリケーションでXMLを処理するには? サーバサイドの開発の基礎 Webサービス エンタープライズ・アプリケーション
本日の講義内容 JavaとXMLはどんな技術か? JavaとXMLの関係 Java SE 6 のXML関連のパッケージ 2007年度の開発環境の確認(実習) *実際のプログラミングは次回から
Javaとはどんな技術か? プログラミング言語としてのJava インターネット時代の新しい言語 優れた開発効率 実行環境としてのJava 携帯電話からスパコンまで あらゆる装置をネットワーク化
Javaは誰が作っているのか? Sun Microsystems 社の製品(1995年) http://java.sun.com/ http://java.sun.com/ 開発環境は無償で提供(当初から) オープンソースに移行!(2006年) http://openjdk.dev.java.net/
言語としてのJavaの特徴 オブジェクト指向(Object Oriented) 仮想マシン(JVM)による実行 スレッドによる並列処理 簡潔な言語仕様 豊富なクラスライブラリ 開発環境は無償、ソース公開
現在のJavaの存在 インターネット上の標準言語 (特にサーバサイド) 異なるシステム間に共通の実行環境 ソースコード共有の新たな運動 apache.org, eclipse.org dev.java.net
Javaの登場と発展の背景 Java誕生以前 (1969-1994) 最初のJava (1995) 実用的開発言語へ (1996) 拡大する応用範囲 (1997~ 99) B2BとWebサービス(2000~) 文法の拡張とオープンソース化へ (2004 ~)
Java誕生以前 1969 ARPAnet(インターネットの原型) 1970 UNIX と C言語 1975 最初のパソコン 1977 アップルコンピュータ誕生 1977 BSDの登場 -- ソースコードの配布・公開 1981 BSDに TCP/IP実装 1982 ビル・ジョイら Sun Microsystemsを設立 1984 ストールマン本格的に活動開始 1987 稚内北星学園短期大学開学 1991 Linux と FreeBSD 誕生 1993 最初のWebブラウザ登場 1994 Netscape Comunications社誕生
リチャード・ストールマン 「ハッカー」の中の「ハッカー」 Free Software Foundation (オープンソフト運動) GNUプロジェクト(1984) ソフトウェア生成の共同体 emacs, gcc(g++) http://www.stallman.org GPL(Gnu Public License)
Javaの歴史 1995 α版、β版、HotJava 1996 JDK1.0 1997 JDK1.1 1998 Java2, 3つのJava 1999 J2SDK 1.3 2001 i503にJava搭載 2002 J2SDK 1.4 2004 J2SDK 5.0 (Tiger) 2005 Java 10周年 2006 Java SE 6 (Mustang) オープンソースへ
Javaの祖先? C (1970) 手続き指向、アルゴリズムの構造化(関数、ループと条件分岐)、データ型の導入(原始型と構造体)
Java登場の背景 C++の機能の肥大化の弊害 開発者の負担軽減 教育コストの軽減 シンプルでかつ多様な環境に対応できるオブジェクト指向言語
「オープン」な性格のルーツ Sun Microsystemsの戦略の要 仕様の公開、開発環境の無償配布 背景に UNIX文化、オープンソース運動の影響 インターネットの普及 (異機種・異OSのネットワーク) が、最初は本物のオープンソースではなかった
最初のJava (1995) α、β、JDK 1.0 8個のパッケージ:java.applet, java.awt, java.awt.image, java.awt.peer, java.lang, java.io, java.net, java.util HotJavaブラウザとアプレット 玩具? 入門教育用には最適だった
実用的な開発言語へ (1997) JDK 1.1 国際化対応、Unicodeの採用 セキュリティ機能の強化 JavaBeans RMI (分散オブジェクト) Jarアーカイブ
拡大する応用範囲 (98-99) Java 2 の登場 (J2EE, J2SE, J2ME) 基幹システムから携帯電話まで 「ミドルウェア」の提供 単なる言語ではなく実行環境の標準
サーバサイドの標準(2000以降) XMLとの融合 B2BとWebサービスの普及 システムの違いを越えてサービス提供 サービス提供の自動化 言語の違いも超越?
Javaの現状と将来(2004~) J2SE 5.0 で大きな言語仕様拡張 (1つの曲がり角) 新しい開発スタイル EOD(Ease of Development) IDE(Integrated Development Environment) Java SE 6 でのアノテーションの活用 オープンソースコミュニティからの寄与
XMLの登場と発展 XML以前 XMLの多様な用途 データ交換の標準に
XML(1998~)以前 アプリケーション独自のデータ形式 Tex, PostScript SGML (1986) 非常に柔軟な機能、完全な対応は高価、DTDによる記述 HTML (1992~) タグの拡張と統一、HTML 4.0(1997) シンプルかつ拡張可能なMLの必要性
XMLの多様な用途 電子文書(官公庁、企業) 出版物(DOM) Webページ(XHTML、XSLT) 数式(MathML) グラフィックス(SVG, X3D) マルチメディアの操作と連携(SMIL) ソフトウェアのビルトツール(Ant)
データ交換の標準に W3Cによる標準化 XML Schema SGML(DTD)から自立,自己記述性 B2B, P2Pアプリケーションの普及 XMLデータの動的生成、パイプライン処理(XSLT, Axis)
JavaとXMLに共通するもの 先行する技術の蓄積の上に出現した「成熟した技術」 シンプルかつ高機能 「規格公開」と「標準化」へのこだわり 活用範囲の爆発的な拡大(進行中)
JavaとXMLの融合 JavaとXMLは「相性」がいい? アプリケーション(Java)とデータ(XML)
アプリケーションとデータ Javaのクラス <-> 要素の定義 Javaのインスタンス <-> 個々の要素
XML処理用パッケージ(1) JAXPパッケージ(J2SDK 1.4よりcore) SAX(Simple API for XML) と DOM DTD、XML Schema:妥当性の検証 名前空間、XPath, XSLTの処理 javax.xml.parsers javax.xml.transform javax.xml.transform.dom javax.xml.transform.sax javax.xml.transform.stream
XML処理用パッケージ(2) J2SE 5.0 でさらに拡張 XPath, XML Schemaの検証 javax.xml javax.xml.namespace javax.xml.xpath javax.xml.validation javax.xml.datatype
XML処理用パッケージ(3) Java SE 6 でさらにさらに拡張 JAXB, Webサービス、XML電子署名 javax.xml.bind javax.xml.soap javax.xml.stream javax.xml.ws javax.xml.crypto
2007 年度の開発環境について Linux は ubunts Linuxの日本語環境は UTF-8 Javaは Java SE 6 (PATHの設定はやり直す必要なし) 講義内容は LMS に http://lms.wakhok.ac.jp/