TECHNODIGITAL > STRENGTH > Webシステム開発
強み
KnowledgeWebシステム開発
テクノデジタルでは、Webシステムの開発を数多く手掛けています。その開発方法を一部ご紹介します。
1、ネットワーク/サーバー/ミドルウェア
Webシステムといってもアプリケーションだけでは最適なシステム構築はできません。当社ではインフラ構築から行うことにより、ハードウェア含めたシステム全体での最適化を目指します。
ネットワーク
ネットワーク構築でも、最適な設計を行うためには、いくつかの工夫が必要です。
- 冗長性
- ネットワークに物理的に障害が発生した場合でもサービス障害を回避する仕組みを検討します。サーバーではbondingデバイスを用いて、ネットワークカード(NIC)を束ねることが可能です。またサーバーから接続するスイッチにおいても、リンクアグリケーションにより複数の接続を1本に束ねて、冗長性を最大にすることが可能です。
- 疎結合性
- 複数のサーバー群で構成する場合、ブロードキャストによる非効率なパケットを抑制し、機密情報などが格納されたサーバーを分離するなど、性能面での向上や、障害影響範囲の最小化、機密情報の隠蔽化等を考えて、開放型システム間相互接続(OSI)第3層:ネットワーク層でしっかりと分離する必要があります。
- ファイアウォール
- 外部、内部からの攻撃に対し、アクセス可能な範囲を最小限にし、セキュアな環境を構築する必要があります。攻撃検知や、パケットフィルタリングは、インターネットとローカルネットワークの境目にファイアウォール製品を設置することと、OS側でもポートフィルタリングを行うことにより、不必要なアクセスに対し最大限ブロックする仕組みを構築します
サーバー/OS
サーバーの選定から、OSインストール・セットアップまでを行っています。OSは主にオープンソースのFreeBSD、Linuxを利用しています。また障害を検知するための監視ツールも導入します。不必要なプロセスは切り、サーバーリソースを目的のプロセスに最大限割り当てるチューニングなどを行います。
ミドルウェア
当社では、Webシステムに関するミドルウェアについて数多くの実績を保有しています。また、システムの目的に応じ、カスタマイズを行うこともあります。
実績例)
- PostgreSQLデータ障害に対するデータ解析
- MySQLストレージエンジンの調査、検証Webサーバーのプラグインモジュールの開発、カスタマイズ
- メールサーバー(MTA)を大量配信のためにカスタマイズ
- Tomcatの性能限界に対するパフォーマンスチューニング、ボトルネック調査
- マニュアルからは読み取れない仕様や、ボトルネックなど、ソースコードから調査
を行うことが可能です。詳細はこちらをご参照ください。
それぞれが、Webシステムを成り立たせるために必要不可欠となってきます。
2、OSI第7層:アプリケーション層(フレームワーク/ライブラリ)
PHP
- フレームワーク
- 軽量なシステムから大規模システムまで、既存システムとの親和性などを考慮し、選定しています。
FuelPHP、CakePHP、CodeIgniter、Symfony - ライブラリ
-
log4php:JavaのLog4jと同様のログフォーマットの制御が可能で、言語依存なくログフォーマットを合わせることができます。
eAccelerator /Xcache/APC:PHPコードキャッシュエンジン。PHP処理の高速化と、データキャッシュに利用されます。
TCPDF+FPDI:PDF出力ライブラリ
Json:JavaScript Object Notation(JSON)フォーマットを取り扱うためのライブラリ
Smarty:メジャーなテンプレートエンジン
PHPUnit:ユニットテストライブラリ
WordPress:ブログツール。簡易コンテンツマネジメントシステムとしても利用できます。ただしカスタマイズする場合は処理性能や、脆弱性などを考慮する必要があります。
Java
- フレームワーク
- Model View Controller(MVC)のシンプルなものから、Dependency Injection(DI)、Aspect Oriented Programming(AOP)をサポートした軽量コンテナ系フレームワークをシステムによって選定しています。
Struts/Spring/Seasar2/PlayFramework - ライブラリ
-
log4j:メジャーなログ出力ライブラリ
Velocity:テンプレートエンジン
Hibernate:Object-Relational(O/R)マッピングライブラリ
MyBatis:O/Rマッピングとは異なり、SQLとオブジェクトのマッピングを行うData Access Object(DAO)ライブラリ
Junit:ユニットテストライブラリ
Ehcache:キャッシュライブラリ
Java Script
- MVC系フレームワーク
- AngularJS:Document Object Model(DOM)を直接操作せず、HTMLとJavascriptをマッピングさせるフレームワーク
- DOM操作
- jQuery:DOM、Ajax、イベント操作などを簡略化して記述できるライブラリ
- モバイル系
- jQuery Mobile:スマートフォンなどのタッチ操作や画面遷移など、デバイス依存を吸収したモバイル向けのユーザインターフェース(UI)ライブラリ
3、高トラフィック
当社では、数多くの高トラフィックサービスを手掛けています。当社では以下のような仕組みで、高トラフィックをさばくシステム構成をご提供しています。
- OSI第4層から第7層(L4~L7)クラスタリング、DNSラウンドロビン、ロードバランサの導入・構築
- Akamai、Amazon CloudFrontなどのContents Delivery Network(CDN)
- リバースプロキシサーバー
- クラウドによるスケールアップ、スケールアウト
- オンメモリキャッシュストレージ/Key-Value Store (KVS)の利用
- データベースの分散、チューニング
4、WebAPI/マッシュアップ
近年、Webで提供される範囲がブラウザのみではなく、他のサービスや、デバイスとの連携においても必要とされる場面が多くなってきています。当社ではこのアプリケーションプログラミングインターフェース(API)実装において数多く実績を保有しており、オープンなAPIから、サブシステム間に対してのAPIなど、ご要望に応じて設計・実装を行っています。
5、レスポンシブデザイン
Webでのサービスを行う場合、タブレットやスマートフォンにおいても考慮が不可欠です。最大限ワンソースで表示させるコンテンツを一元化することにより、開発効率と運用後の労力を削減することが可能です。1つのHTMLで複数のデバイスに対応できるレスポンシブデザインでの可能/不可能性を設計時に考慮し、レスポンシブ思想だけに頼らないアーキテクチャを実現しています。
6、各データベース
当社では、Oracle、MySQL(MariaDB)、PostgreSQLでのシステム構築をご提案することがほとんどです。各データベースにはメリット/デメリットがあり、目的に応じて選定しています。他には、既存システムとの親和性を考慮したMicrosoft SQL Serverや、簡易な利用目的でのSQLiteなども利用しています。
7、オープンソースの活用
当社では、基本的にはオープンソースソフトウェアを用いたアーキテクチャをご提案しています。商用ソフトウェアと比べてサポートが弱い面を当社が吸収し、十分な検証や、当社実績をベースにご提案していますので、ご安心して導入が可能です。
8、クラウド
サーバー・インフラ環境において、クラウド環境は検討すべきポイントであり、コスト削減や、性能限界の最大化、柔軟性などメリット/デメリットをしっかりとご提案いたします。
9、その他
技術についてはこちらをご参照ください。
RELATED STRENGTH INDEX
STRENGTH > 先端技術とアイデアを融合 > 新技術への取り組み
STRENGTH > 個の強み&スキル > プログラミング言語
STRENGTH > 個の強み&スキル > Award(受賞歴)
SERVICE > アプリ・Webシステム開発 > システム受託開発